Fix infinite-loop risk in fixempties() stage of regex compilation. The previous coding of this function could get into situations where it would never terminate, because successive passes would re-add EMPTY arcs that had been removed by the previous pass. Rewrite the function completely using a new algorithm that is guaranteed to terminate, and also seems to be usually faster than the old one. Per Tcl bugs 3604074 and 3606683.
Tom Lane and Don Porter Branch ------ REL9_2_STABLE Details ------- http://git.postgresql.org/pg/commitdiff/957b9c0c452ce166957c981c63c9a46fa32f64c1 Modified Files -------------- src/backend/regex/regc_nfa.c | 314 +++++++++++++++++++++++++++-------- src/backend/regex/regcomp.c | 12 +- src/test/regress/expected/regex.out | 20 +++ src/test/regress/sql/regex.sql | 7 + 4 files changed, 280 insertions(+), 73 deletions(-) -- Sent via pgsql-committers mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-committers
