postgresql/src/include
Tom Lane a9eb4924a5 Allow regex operations to be terminated early by query cancel requests.
The regex code didn't have any provision for query cancel; which is
unsurprising given its non-Postgres origin, but still problematic since
some operations can take a long time.  Introduce a callback function to
check for a pending query cancel or session termination request, and
call it in a couple of strategic spots where we can make the regex code
exit with an error indicator.

If we ever actually split out the regex code as a standalone library,
some additional work will be needed to let the cancel callback function
be specified externally to the library.  But that's straightforward
(certainly so by comparison to putting the locale-dependent character
classification logic on a similar arms-length basis), and there seems
no need to do it right now.

A bigger issue is that there may be more places than these two where
we need to check for cancels.  We can always add more checks later,
now that the infrastructure is in place.

Since there are known examples of not-terribly-long regexes that can
lock up a backend for a long time, back-patch to all supported branches.
I have hopes of fixing the known performance problems later, but adding
query cancel ability seems like a good idea even if they were all fixed.
2014-03-01 15:21:07 -05:00
..
access Fix multiple bugs in index page locking during hot-standby WAL replay. 2014-01-14 17:34:57 -05:00
bootstrap Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
catalog Avoid repeated name lookups during table and index DDL. 2014-02-17 09:33:36 -05:00
commands Avoid repeated name lookups during table and index DDL. 2014-02-17 09:33:36 -05:00
executor Install defenses against overflow in BuildTupleHashTable(). 2011-05-23 12:52:46 -04:00
foreign pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
lib Use a macro variable PG_PRINTF_ATTRIBUTE for the style used for checking printf type functions. 2011-04-28 10:56:14 -04:00
libpq Produce a more useful error message for over-length Unix socket paths. 2012-11-29 19:57:17 -05:00
mb Back-patch addition of pg_wchar-to-multibyte conversion functionality. 2012-07-10 16:53:27 -04:00
nodes Avoid repeated name lookups during table and index DDL. 2014-02-17 09:33:36 -05:00
optimizer Fix generation of MergeAppend plans for optimized min/max on expressions. 2013-11-07 13:13:47 -05:00
parser Avoid repeated name lookups during table and index DDL. 2014-02-17 09:33:36 -05:00
port Unconditionally use the WSA equivalents of Socket error constants. 2013-08-26 14:55:00 -04:00
portability Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
postmaster Improve coding around the fsync request queue. 2012-07-17 16:57:22 -04:00
regex Allow regex operations to be terminated early by query cancel requests. 2014-03-01 15:21:07 -05:00
replication Fix typo in comment. 2013-05-23 11:35:39 -04:00
rewrite Prevent CREATE TABLE LIKE/INHERITS from (mis) copying whole-row Vars. 2012-06-30 16:44:03 -04:00
snowball Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
storage Fix multiple bugs in index page locking during hot-standby WAL replay. 2014-01-14 17:34:57 -05:00
tcop Avoid repeated name lookups during table and index DDL. 2014-02-17 09:33:36 -05:00
tsearch Predict integer overflow to avoid buffer overruns. 2014-02-17 09:33:37 -05:00
utils Predict integer overflow to avoid buffer overruns. 2014-02-17 09:33:37 -05:00
.gitignore Convert cvsignore to gitignore, and add .gitignore for build targets. 2010-09-22 12:57:04 +02:00
c.h Use a macro variable PG_PRINTF_ATTRIBUTE for the style used for checking printf type functions. 2011-04-28 10:56:14 -04:00
fmgr.h Prevent privilege escalation in explicit calls to PL validators. 2014-02-17 09:33:36 -05:00
funcapi.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
getaddrinfo.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
getopt_long.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
Makefile Fix server header file installation with vpath builds 2011-11-10 20:54:50 +02:00
miscadmin.h Make REPLICATION privilege checks test current user not authenticated user. 2013-04-01 13:09:35 -04:00
pg_config.h.in Make configure probe for mbstowcs_l as well as wcstombs_l. 2012-08-31 14:18:08 -04:00
pg_config.h.win32 Stamp 9.1.12. 2014-02-17 14:40:10 -05:00
pg_config_manual.h Revert accidental change to pg_config_manual.h. 2011-10-09 22:23:30 -04:00
pg_trace.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
pgstat.h Fix VACUUM so that it always updates pg_class.reltuples/relpages. 2011-05-30 17:06:52 -04:00
pgtime.h Fix some odd behaviors when using a SQL-style simple GMT offset timezone. 2013-11-01 12:13:29 -04:00
port.h Use correct output device for Windows prompts. 2013-01-24 16:01:31 -05:00
postgres.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
postgres_ext.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
postgres_fe.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
rusagestub.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
windowapi.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00