pgsql: Handle interaction of regexp's makesearch and MATCHALL more hone - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Handle interaction of regexp's makesearch and MATCHALL more hone
Date
Msg-id E1mJeZP-0004r9-6p@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Handle interaction of regexp's makesearch and MATCHALL more honestly.

Second thoughts about commit 824bf7190: we apply makesearch() to
an NFA after having determined whether it is a MATCHALL pattern.
Prepending ".*" doesn't make it non-MATCHALL, but it does change the
maximum possible match length, and makesearch() failed to update that.
This has no ill effects given the stylized usage of search NFAs, but
it seems like it's better to keep the data structure consistent.  In
particular, fixing this allows more honest handling of the MATCHALL
check in matchuntil(): we can now assert that maxmatchall is infinity,
instead of lamely assuming that it should act that way.

In passing, improve the code in dump[c]nfa so that infinite maxmatchall
is printed as "inf" not a magic number.

Branch
------
REL_14_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/3068e45799327298a3f4c22b03db2aa48e2ab0da

Modified Files
--------------
src/backend/regex/regc_nfa.c | 18 ++++++++++++++----
src/backend/regex/regcomp.c  |  7 +++++++
src/backend/regex/rege_dfa.c |  8 ++------
3 files changed, 23 insertions(+), 10 deletions(-)


pgsql-committers by date:

Previous
From: Daniel Gustafsson
Date:
Subject: pgsql: Avoid invoking PQfnumber in loop constructs
Next
From: Peter Eisentraut
Date:
Subject: pgsql: Change Texinfo output to UTF-8