pgsql: Fix the general case of quantified regex back-references.
От | Tom Lane |
---|---|
Тема | pgsql: Fix the general case of quantified regex back-references. |
Дата | |
Msg-id | E1S0oqK-0006Nh-82@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Fix the general case of quantified regex back-references. Cases where a back-reference is part of a larger subexpression that is quantified have never worked in Spencer's regex engine, because he used a compile-time transformation that neglected the need to check the back-reference match in iterations before the last one. (That was okay for capturing parens, and we still do it if the regex has *only* capturing parens ... but it's not okay for backrefs.) To make this work properly, we have to add an "iteration" node type to the regex engine's vocabulary of sub-regex nodes. Since this is a moderately large change with a fair risk of introducing new bugs of its own, apply to HEAD only, even though it's a fix for a longstanding bug. Branch ------ master Details ------- http://git.postgresql.org/pg/commitdiff/173e29aa5deefd9e71c183583ba37805c8102a72 Modified Files -------------- src/backend/regex/README | 18 +- src/backend/regex/regcomp.c | 88 +++-- src/backend/regex/regexec.c | 764 ++++++++++++++++++++++++++++++++++- src/include/regex/regguts.h | 24 +- src/test/regress/expected/regex.out | 37 ++ src/test/regress/sql/regex.sql | 8 + 6 files changed, 884 insertions(+), 55 deletions(-)
В списке pgsql-committers по дате отправления: