diff options
-rw-r--r-- | src/backend/regex/regcomp.c | 2 | ||||
-rw-r--r-- | src/test/regress/expected/regex.out | 5 | ||||
-rw-r--r-- | src/test/regress/sql/regex.sql | 4 |
3 files changed, 10 insertions, 1 deletions
diff --git a/src/backend/regex/regcomp.c b/src/backend/regex/regcomp.c index aa759c26486..a165b3b1ca5 100644 --- a/src/backend/regex/regcomp.c +++ b/src/backend/regex/regcomp.c @@ -951,7 +951,7 @@ parseqatom(struct vars * v, EMPTYARC(lp, s); EMPTYARC(s2, rp); NOERR(); - atom = parse(v, ')', PLAIN, s, s2); + atom = parse(v, ')', type, s, s2); assert(SEE(')') || ISERR()); NEXT(); NOERR(); diff --git a/src/test/regress/expected/regex.out b/src/test/regress/expected/regex.out index f0e2fc9eb89..07fb023534f 100644 --- a/src/test/regress/expected/regex.out +++ b/src/test/regress/expected/regex.out @@ -490,3 +490,8 @@ select 'a' ~ '()+\1'; t (1 row) +-- Error conditions +select 'xyz' ~ 'x(\w)(?=\1)'; -- no backrefs in LACONs +ERROR: invalid regular expression: invalid backreference number +select 'xyz' ~ 'x(\w)(?=(\1))'; +ERROR: invalid regular expression: invalid backreference number diff --git a/src/test/regress/sql/regex.sql b/src/test/regress/sql/regex.sql index d3030af295d..c45bdc91d85 100644 --- a/src/test/regress/sql/regex.sql +++ b/src/test/regress/sql/regex.sql @@ -117,3 +117,7 @@ select 'a' ~ '$()|^\1'; select 'a' ~ '.. ()|\1'; select 'a' ~ '()*\1'; select 'a' ~ '()+\1'; + +-- Error conditions +select 'xyz' ~ 'x(\w)(?=\1)'; -- no backrefs in LACONs +select 'xyz' ~ 'x(\w)(?=(\1))'; |