postgresql/src
Tom Lane f2ec57dee9 Make sure that hash join's bulk-tuple-transfer loops are interruptible.
The loops in ExecHashJoinNewBatch(), ExecHashIncreaseNumBatches(), and
ExecHashRemoveNextSkewBucket() are all capable of iterating over many
tuples without ever doing a CHECK_FOR_INTERRUPTS, so that the backend
might fail to respond to SIGINT or SIGTERM for an unreasonably long time.
Fix that.  In the case of ExecHashJoinNewBatch(), it seems useful to put
the added CHECK_FOR_INTERRUPTS into ExecHashJoinGetSavedTuple() rather
than directly in the loop, because that will also ensure that both
principal code paths through ExecHashJoinOuterGetTuple() will do a
CHECK_FOR_INTERRUPTS, which seems like a good idea to avoid surprises.

Back-patch to all supported branches.

Tom Lane and Thomas Munro

Discussion: https://postgr.es/m/6044.1487121720@sss.pgh.pa.us
2017-02-15 16:40:05 -05:00
..
backend Make sure that hash join's bulk-tuple-transfer loops are interruptible. 2017-02-15 16:40:05 -05:00
bin Fix tab completion for "ALTER SYSTEM SET variable ...". 2017-02-15 15:23:19 -05:00
common Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
fe_utils Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
include Add optimizer and executor support for parallel index scans. 2017-02-15 13:53:24 -05:00
interfaces libpq: Make target_session_attrs=read-write consume empty result. 2017-02-15 11:05:44 -05:00
makefiles Try to fix non-MSVC Windows builds in the wake of logical replication. 2017-01-20 12:51:31 -05:00
pl Fix typos in comments. 2017-02-06 11:33:58 +02:00
port Attempt to handle pending-delete files on Windows 2017-01-04 10:48:30 +01:00
template Remove "sco" and "unixware" ports. 2016-10-11 11:26:04 -04:00
test Add optimizer and executor support for parallel index scans. 2017-02-15 13:53:24 -05:00
timezone Update time zone data files to tzdata release 2016j. 2017-01-30 11:40:22 -05:00
tools btree: Support parallel index scans. 2017-02-15 07:41:14 -05:00
tutorial Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
.gitignore
bcc32.mak Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
DEVELOPERS
Makefile Logical replication 2017-01-20 09:04:49 -05:00
Makefile.global.in Fix cross-shlib linking in temporary installs on HPUX 10. 2017-01-21 15:15:39 -05:00
Makefile.shlib Fix typos in comments. 2017-02-06 11:33:58 +02:00
nls-global.mk nls-global.mk: search build dir for source files, too 2016-06-07 18:55:18 -04:00
win32.mak Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00