mirror of
https://github.com/postgres/postgres.git
synced 2025-07-08 11:42:09 +03:00
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
This commit is contained in:
@ -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))
|
||||
|
Reference in New Issue
Block a user