postgresql/src/backend/regex
Tom Lane ee3a81f0a0 Change regexp engine's ccondissect/crevdissect routines to perform DFA
matching before recursing instead of after.  The DFA match eliminates
unworkable midpoint choices a lot faster than the recursive check, in most
cases, so doing it first can speed things up; particularly in pathological
cases such as recently exhibited by Michael Glaesemann.

In addition, apply some cosmetic changes that were applied upstream (in the
Tcl project) at the same time, in order to sync with upstream version 1.15
of regexec.c.

Upstream apparently intends to backpatch this, so I will too.  The
pathological behavior could be unpleasant if encountered in the field,
which seems to justify any risk of introducing new bugs.

Tom Lane, reviewed by Donal K. Fellows of Tcl project
2010-02-01 02:45:29 +00:00
..
COPYRIGHT Replace regular expression package with Henry Spencer's latest version 2003-02-05 17:41:33 +00:00
Makefile Refactor backend makefiles to remove lots of duplicate code 2008-02-19 10:30:09 +00:00
re_syntax.n Replace regular expression package with Henry Spencer's latest version 2003-02-05 17:41:33 +00:00
regc_color.c Sync our regex code with upstream changes since last time we did this, which 2008-02-14 17:33:37 +00:00
regc_cvec.c Sync our regex code with upstream changes since last time we did this, which 2008-02-14 17:33:37 +00:00
regc_lex.c 8.4 pgindent run, with new combined Linux/FreeBSD/MinGW typedef list 2009-06-11 14:49:15 +00:00
regc_locale.c Teach the regular expression functions to do case-insensitive matching and 2009-12-01 21:00:24 +00:00
regc_nfa.c 8.4 pgindent run, with new combined Linux/FreeBSD/MinGW typedef list 2009-06-11 14:49:15 +00:00
regcomp.c Fix some comments that got mangled by pgindent. 2010-01-30 04:18:00 +00:00
rege_dfa.c Adjust some regex debugging printouts to not give wrong-format-width 2007-10-06 16:05:54 +00:00
regerror.c Sync our regex code with upstream changes since last time we did this, which 2008-02-14 17:33:37 +00:00
regexec.c Change regexp engine's ccondissect/crevdissect routines to perform DFA 2010-02-01 02:45:29 +00:00
regfree.c $Header: -> $PostgreSQL Changes ... 2003-11-29 19:52:15 +00:00