-
Differences from XQuery (LIKE_REGEX)
+
Differences from SQL Standard and XQuery
+
+
+
+
+
+
+
+
+
+
+
+
- Since SQL:2008, the SQL standard includes
- a LIKE_REGEX operator that performs pattern
+ Since SQL:2008, the SQL standard includes regular expression operators
+ and functions that performs pattern
matching according to the XQuery regular expression
- standard.
PostgreSQL does not yet
- implement this operator, but you can get very similar behavior using
- the regexp_match() function, since XQuery
- regular expressions are quite close to the ARE syntax described above.
+ standard:
+
+
+
PostgreSQL does not currently implement these
+ operators and functions. You can get approximately equivalent
+ functionality in each case as shown in
+ linkend="functions-regexp-sql-table"/>. (Various optional clauses on
+ both sides have been omitted in this table.)
+
+
+
+
Regular Expression Functions Equivalencies
+
+
+
+ |
+ SQL standard
+ PostgreSQL
+
+
+
+
+ |
+ string LIKE_REGEX pattern
+ regexp_like(string, pattern) or string ~ pattern
+
+
+ |
+ OCCURRENCES_REGEX(pattern IN string
+ regexp_count(string, pattern)
+
+
+ |
+ POSITION_REGEX(pattern IN string
+ regexp_instr(string, pattern)
+
+
+ |
+ SUBSTRING_REGEX(pattern IN string
+ regexp_substr(string, pattern)
+
+
+ |
+ TRANSLATE_REGEX(pattern IN string WITH replacement
+ regexp_replace(string, pattern, replacement)
+
+
+
+
+
+ Regular expression functions similar to those provided by PostgreSQL are
+ also available in a number of other SQL implementations, whereas the
+ SQL-standard functions are not as widely implemented. Some of the
+ details of the regular expression syntax will likely differ in each
+ implementation.
+ The SQL-standard operators and functions use XQuery regular expressions,
+ which are quite close to the ARE syntax described above.
Notable differences between the existing POSIX-based
regular-expression feature and XQuery regular expressions include:
F831 Full cursor update NO
F831 Full cursor update 01 Updatable scrollable cursors NO
F831 Full cursor update 02 Updatable ordered cursors NO
-F841 LIKE_REGEX predicate NO
-F842 OCCURRENCES_REGEX function NO
-F843 POSITION_REGEX function NO
-F844 SUBSTRING_REGEX function NO
-F845 TRANSLATE_REGEX function NO
+F841 LIKE_REGEX predicate NO consider regexp_like()
+F842 OCCURRENCES_REGEX function NO consider regexp_matches()
+F843 POSITION_REGEX function NO consider regexp_instr()
+F844 SUBSTRING_REGEX function NO consider regexp_substr()
+F845 TRANSLATE_REGEX function NO consider regexp_replace()
F846 Octet support in regular expression operators NO
F847 Nonconstant regular expressions NO
F850 Top-level in YES