Allow hash joins to be interrupted while searching hash table for match.
Per experimentation with a recent example, in which unreasonable amounts of time could elapse before the backend would respond to a query-cancel. This might be something to back-patch, but the patch doesn't apply cleanly because this code was rewritten for 9.1. Given the lack of field complaints I won't bother for now. Cédric Villemain
This commit is contained in:
parent
596b0c213f
commit
0c99d41ec8
@ -19,6 +19,7 @@
|
|||||||
#include "executor/hashjoin.h"
|
#include "executor/hashjoin.h"
|
||||||
#include "executor/nodeHash.h"
|
#include "executor/nodeHash.h"
|
||||||
#include "executor/nodeHashjoin.h"
|
#include "executor/nodeHashjoin.h"
|
||||||
|
#include "miscadmin.h"
|
||||||
#include "utils/memutils.h"
|
#include "utils/memutils.h"
|
||||||
|
|
||||||
|
|
||||||
@ -262,6 +263,13 @@ ExecHashJoin(HashJoinState *node)
|
|||||||
|
|
||||||
case HJ_SCAN_BUCKET:
|
case HJ_SCAN_BUCKET:
|
||||||
|
|
||||||
|
/*
|
||||||
|
* We check for interrupts here because this corresponds to
|
||||||
|
* where we'd fetch a row from a child plan node in other
|
||||||
|
* join types.
|
||||||
|
*/
|
||||||
|
CHECK_FOR_INTERRUPTS();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Scan the selected hash bucket for matches to current outer
|
* Scan the selected hash bucket for matches to current outer
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user