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
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/d47cfef7116fb36349949f5c757aa2112c249804
Modified Files
--------------
src/backend/executor/execProcnode.c | 2 --
src/backend/executor/nodeAgg.c | 8 ++++++++
src/backend/executor/nodeAppend.c | 3 +++
src/backend/executor/nodeBitmapHeapscan.c | 3 +++
src/backend/executor/nodeCustom.c | 3 +++
src/backend/executor/nodeGather.c | 4 ++++
src/backend/executor/nodeGatherMerge.c | 4 ++++
src/backend/executor/nodeGroup.c | 3 +++
src/backend/executor/nodeHash.c | 6 ++++++
src/backend/executor/nodeHashjoin.c | 15 ++++++++-------
src/backend/executor/nodeIndexonlyscan.c | 3 +++
src/backend/executor/nodeIndexscan.c | 7 +++++++
src/backend/executor/nodeLimit.c | 3 +++
src/backend/executor/nodeLockRows.c | 3 +++
src/backend/executor/nodeMaterial.c | 2 ++
src/backend/executor/nodeMergeAppend.c | 4 +++-
src/backend/executor/nodeMergejoin.c | 3 +++
src/backend/executor/nodeModifyTable.c | 2 ++
src/backend/executor/nodeNestloop.c | 3 +++
src/backend/executor/nodeProjectSet.c | 3 +++
src/backend/executor/nodeRecursiveunion.c | 2 ++
src/backend/executor/nodeResult.c | 3 +++
src/backend/executor/nodeSetOp.c | 5 +++++
src/backend/executor/nodeSort.c | 2 ++
src/backend/executor/nodeSubplan.c | 5 +++++
src/backend/executor/nodeTableFuncscan.c | 2 ++
src/backend/executor/nodeTidscan.c | 3 +++
src/backend/executor/nodeUnique.c | 3 +++
src/backend/executor/nodeWindowAgg.c | 5 +++++
29 files changed, 104 insertions(+), 10 deletions(-)