diff options
-rw-r--r-- | doc/src/sgml/func.sgml | 32 | ||||
-rw-r--r-- | src/backend/utils/adt/regexp.c | 8 |
2 files changed, 32 insertions, 8 deletions
diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml index da558668c8a..211a450ce30 100644 --- a/doc/src/sgml/func.sgml +++ b/doc/src/sgml/func.sgml @@ -1,4 +1,4 @@ -<!-- $PostgreSQL: pgsql/doc/src/sgml/func.sgml,v 1.488 2009/10/09 21:02:55 petere Exp $ --> +<!-- $PostgreSQL: pgsql/doc/src/sgml/func.sgml,v 1.489 2009/10/10 03:50:15 tgl Exp $ --> <chapter id="functions"> <title>Functions and Operators</title> @@ -3156,6 +3156,31 @@ cast(-44 as bit(12)) <lineannotation>111111010100</lineannotation> </listitem> <listitem> <para> + <literal>?</literal> denotes repetition of the previous item zero + or one time. + </para> + </listitem> + <listitem> + <para> + <literal>{</><replaceable>m</><literal>}</literal> denotes repetition + of the previous item exactly <replaceable>m</> times. + </para> + </listitem> + <listitem> + <para> + <literal>{</><replaceable>m</><literal>,}</literal> denotes repetition + of the previous item <replaceable>m</> or more times. + </para> + </listitem> + <listitem> + <para> + <literal>{</><replaceable>m</><literal>,</><replaceable>n</><literal>}</> + denotes repetition of the previous item at least <replaceable>m</> and + not more than <replaceable>n</> times. + </para> + </listitem> + <listitem> + <para> Parentheses <literal>()</literal> can be used to group items into a single logical item. </para> @@ -3168,9 +3193,8 @@ cast(-44 as bit(12)) <lineannotation>111111010100</lineannotation> </listitem> </itemizedlist> - Notice that bounded repetition operators (<literal>?</> and - <literal>{...}</>) are not provided, though they exist in POSIX. - Also, the period (<literal>.</>) is not a metacharacter. + Notice that the period (<literal>.</>) is not a metacharacter + for <function>SIMILAR TO</>. </para> <para> diff --git a/src/backend/utils/adt/regexp.c b/src/backend/utils/adt/regexp.c index e4e3c776658..118d42d2a0a 100644 --- a/src/backend/utils/adt/regexp.c +++ b/src/backend/utils/adt/regexp.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/adt/regexp.c,v 1.82 2009/06/11 14:49:04 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/regexp.c,v 1.83 2009/10/10 03:50:15 tgl Exp $ * * Alistair Crooks added the code for the regex caching * agc - cached the regular expressions used - there's a good chance @@ -639,7 +639,7 @@ textregexreplace(PG_FUNCTION_ARGS) /* * similar_escape() - * Convert a SQL99 regexp pattern to POSIX style, so it can be used by + * Convert a SQL:2008 regexp pattern to POSIX style, so it can be used by * our regexp engine. */ Datum @@ -740,8 +740,8 @@ similar_escape(PG_FUNCTION_ARGS) } else if (pchar == '_') *r++ = '.'; - else if (pchar == '\\' || pchar == '.' || pchar == '?' || - pchar == '{') + else if (pchar == '\\' || pchar == '.' || + pchar == '^' || pchar == '$') { *r++ = '\\'; *r++ = pchar; |