mirror of
https://github.com/postgres/postgres.git
synced 2025-07-03 20:02:46 +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:
@ -47,6 +47,7 @@
|
||||
#include "access/htup_details.h"
|
||||
#include "executor/executor.h"
|
||||
#include "executor/nodeSetOp.h"
|
||||
#include "miscadmin.h"
|
||||
#include "utils/memutils.h"
|
||||
|
||||
|
||||
@ -185,6 +186,8 @@ ExecSetOp(SetOpState *node)
|
||||
SetOp *plannode = (SetOp *) node->ps.plan;
|
||||
TupleTableSlot *resultTupleSlot = node->ps.ps_ResultTupleSlot;
|
||||
|
||||
CHECK_FOR_INTERRUPTS();
|
||||
|
||||
/*
|
||||
* If the previously-returned tuple needs to be returned more than once,
|
||||
* keep returning it.
|
||||
@ -428,6 +431,8 @@ setop_retrieve_hash_table(SetOpState *setopstate)
|
||||
*/
|
||||
while (!setopstate->setop_done)
|
||||
{
|
||||
CHECK_FOR_INTERRUPTS();
|
||||
|
||||
/*
|
||||
* Find the next entry in the hash table
|
||||
*/
|
||||
|
Reference in New Issue
Block a user