aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/execScan.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/executor/execScan.c')
-rw-r--r--src/backend/executor/execScan.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/backend/executor/execScan.c b/src/backend/executor/execScan.c
index 47a34a044a7..5dfc49deb95 100644
--- a/src/backend/executor/execScan.c
+++ b/src/backend/executor/execScan.c
@@ -27,7 +27,7 @@ static bool tlist_matches_tupdesc(PlanState *ps, List *tlist, Index varno, Tuple
/*
- * ExecScanFetch -- fetch next potential tuple
+ * ExecScanFetch -- check interrupts & fetch next potential tuple
*
* This routine is concerned with substituting a test tuple if we are
* inside an EvalPlanQual recheck. If we aren't, just execute
@@ -40,6 +40,8 @@ ExecScanFetch(ScanState *node,
{
EState *estate = node->ps.state;
+ CHECK_FOR_INTERRUPTS();
+
if (estate->es_epqTuple != NULL)
{
/*
@@ -133,6 +135,8 @@ ExecScan(ScanState *node,
projInfo = node->ps.ps_ProjInfo;
econtext = node->ps.ps_ExprContext;
+ /* interrupt checks are in ExecScanFetch */
+
/*
* If we have neither a qual to check nor a projection to do, just skip
* all the overhead and return the raw scan tuple.
@@ -157,8 +161,6 @@ ExecScan(ScanState *node,
{
TupleTableSlot *slot;
- CHECK_FOR_INTERRUPTS();
-
slot = ExecScanFetch(node, accessMtd, recheckMtd);
/*