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/nodeHash.h"
|
||||
#include "executor/nodeHashjoin.h"
|
||||
#include "miscadmin.h"
|
||||
#include "utils/memutils.h"
|
||||
|
||||
|
||||
@ -262,6 +263,13 @@ ExecHashJoin(HashJoinState *node)
|
||||
|
||||
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
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user