Add assorted new regexp_xxx SQL functions.
This patch adds new functions regexp_count(), regexp_instr(),
regexp_like(), and regexp_substr(), and extends regexp_replace()
with some new optional arguments. All these functions follow
the definitions used in Oracle, although there are small differences
in the regexp language due to using our own regexp engine -- most
notably, that the default newline-matching behavior is different.
Similar functions appear in DB2 and elsewhere, too. Aside from
easing portability, these functions are easier to use for certain
tasks than our existing regexp_match[es] functions.
Gilles Darold, heavily revised by me
Discussion: https://postgr.es/m/fc160ee0-c843-b024-29bb-97b5da61971f@darold.net
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/6424337073589476303b10f6d7cc74f501b8d9d7
Modified Files
--------------
doc/src/sgml/func.sgml | 352 +++++++++++++++++++++++--
src/backend/utils/adt/regexp.c | 473 ++++++++++++++++++++++++++++++++--
src/backend/utils/adt/varlena.c | 33 ++-
src/include/catalog/catversion.h | 2 +-
src/include/catalog/pg_proc.dat | 64 +++++
src/include/utils/varlena.h | 3 +-
src/test/regress/expected/strings.out | 371 ++++++++++++++++++++++++++
src/test/regress/sql/strings.sql | 89 +++++++
8 files changed, 1340 insertions(+), 47 deletions(-)