pgsql: Amend recent fix for SIMILAR TO regex conversion.
От | Tom Lane |
---|---|
Тема | pgsql: Amend recent fix for SIMILAR TO regex conversion. |
Дата | |
Msg-id | E1uxXI7-000YwX-0G@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Amend recent fix for SIMILAR TO regex conversion. Commit e3ffc3e91 fixed the translation of character classes in SIMILAR TO regular expressions. Unfortunately the fix broke a corner case: if there is an escape character right after the opening bracket (for example in "[\q]"), a closing bracket right after the escape sequence would not be seen as closing the character class. There were two more oversights: a backslash or a nested opening bracket right at the beginning of a character class should remove the special meaning from any following caret or closing bracket. This bug suggests that this code needs to be more readable, so also rename the variables "charclass_depth" and "charclass_start" to something more meaningful, rewrite an "if" cascade to be more consistent, and improve the commentary. Reported-by: Dominique Devienne <ddevienne@gmail.com> Reported-by: Stephan Springl <springl-psql@bfw-online.de> Author: Laurenz Albe <laurenz.albe@cybertec.at> Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://postgr.es/m/CAFCRh-8NwJd0jq6P=R3qhHyqU7hw0BTor3W0SvUcii24et+zAw@mail.gmail.com Backpatch-through: 13 Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/cdf7feb96562071f15ceb070272d7e84246d943d Modified Files -------------- src/backend/utils/adt/regexp.c | 97 +++++++++++++++++++++++++---------- src/test/regress/expected/strings.out | 9 ++++ src/test/regress/sql/strings.sql | 3 ++ 3 files changed, 82 insertions(+), 27 deletions(-)
В списке pgsql-committers по дате отправления: