diff options
author | Andres Freund <andres@anarazel.de> | 2017-07-25 17:37:17 -0700 |
---|---|---|
committer | Andres Freund <andres@anarazel.de> | 2017-07-30 16:06:42 -0700 |
commit | d47cfef7116fb36349949f5c757aa2112c249804 (patch) | |
tree | 8e75ba762674b200802a11a19edbc3b5777ed5ca /src/backend/executor/nodeGatherMerge.c | |
parent | 9dea962b3ef48f6e96172653b7cf80cb5f53e6b6 (diff) | |
download | postgresql-d47cfef7116fb36349949f5c757aa2112c249804.tar.gz postgresql-d47cfef7116fb36349949f5c757aa2112c249804.zip |
Move interrupt checking from ExecProcNode() to executor nodes.
In a followup commit ExecProcNode(), and especially the large switch
it contains, will largely be replaced by a function pointer directly
to the correct node. The node functions will then get invoked by a
thin inline function wrapper. To avoid having to include miscadmin.h
in headers - CHECK_FOR_INTERRUPTS() - move the interrupt checks into
the individual executor routines.
While looking through all executor nodes, I noticed a number of
arguably missing interrupt checks, add these too.
Author: Andres Freund, Tom Lane
Reviewed-By: Tom Lane
Discussion:
https://postgr.es/m/22833.1490390175@sss.pgh.pa.us
Diffstat (limited to 'src/backend/executor/nodeGatherMerge.c')
-rw-r--r-- | src/backend/executor/nodeGatherMerge.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/backend/executor/nodeGatherMerge.c b/src/backend/executor/nodeGatherMerge.c index 80ee1fc89b4..0aff3798f75 100644 --- a/src/backend/executor/nodeGatherMerge.c +++ b/src/backend/executor/nodeGatherMerge.c @@ -164,6 +164,8 @@ ExecGatherMerge(GatherMergeState *node) ExprContext *econtext; int i; + CHECK_FOR_INTERRUPTS(); + /* * As with Gather, we don't launch workers until this node is actually * executed. @@ -393,6 +395,8 @@ gather_merge_init(GatherMergeState *gm_state) reread: for (i = 0; i < nreaders + 1; i++) { + CHECK_FOR_INTERRUPTS(); + if (!gm_state->gm_tuple_buffers[i].done && (TupIsNull(gm_state->gm_slots[i]) || gm_state->gm_slots[i]->tts_isempty)) |