postgresql/src
Tom Lane 677e64cb80 Improve performance of fixempties() pass in regular-expression compiler.
The previous coding took something like O(N^4) time to fully process a
chain of N EMPTY arcs.  We can't really do much better than O(N^2) because
we have to insert about that many arcs, but we can do lots better than
what's there now.  The win comes partly from using mergeins() to amortize
de-duplication of arcs across multiple source states, and partly from
exploiting knowledge of the ordering of arcs for each state to avoid
looking at arcs we don't need to consider during the scan.  We do have
to be a bit careful of the possible reordering of arcs introduced by
the sort-merge coding of the previous commit, but that's not hard to
deal with.

Back-patch to all supported branches.
2015-10-16 14:58:11 -04:00
..
backend Improve performance of fixempties() pass in regular-expression compiler. 2015-10-16 14:58:11 -04:00
bin Fix "pg_ctl start -w" to test child process status directly. 2015-10-12 18:30:37 -04:00
common Unlink static libraries before rebuilding them. 2015-03-01 13:06:39 -05:00
include Fix O(N^2) performance problems in regular-expression compiler. 2015-10-16 14:43:18 -04:00
interfaces Stamp 9.3.10. 2015-10-05 15:14:02 -04:00
makefiles Don't use deprecated dllwrap on Cygwin. 2014-02-01 16:13:32 -05:00
pl Translation updates 2015-10-05 11:01:00 -04:00
port Stamp 9.3.10. 2015-10-05 15:14:02 -04:00
template AIX: Test the -qlonglong option before use. 2015-07-17 03:02:03 -04:00
test Fix regular-expression compiler to handle loops of constraint arcs. 2015-10-16 14:14:41 -04:00
timezone Update time zone data files to tzdata release 2015g. 2015-10-02 19:16:06 -04:00
tools Turn install.bat into a pure one line wrapper fort he perl script. 2015-07-07 16:37:16 +03:00
tutorial Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
.gitignore Convert cvsignore to gitignore, and add .gitignore for build targets. 2010-09-22 12:57:04 +02:00
bcc32.mak Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
DEVELOPERS Replace a couple of references to files that no longer exist in the source 2009-05-04 08:08:47 +00:00
Makefile Create libpgcommon, and move pg_malloc et al to it 2013-02-12 11:21:05 -03:00
Makefile.global.in Make numeric form of PG version number readily available in Makefiles. 2015-07-05 12:01:01 -04:00
Makefile.shlib Unlink static libraries before rebuilding them. 2015-03-01 13:06:39 -05:00
nls-global.mk NLS: Use msgmerge --previous option 2012-12-13 23:12:12 -05:00
win32.mak Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00