diff options
Diffstat (limited to 'src/backend/executor/execScan.c')
-rw-r--r-- | src/backend/executor/execScan.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/backend/executor/execScan.c b/src/backend/executor/execScan.c index 5089616f595..e90058847d9 100644 --- a/src/backend/executor/execScan.c +++ b/src/backend/executor/execScan.c @@ -120,13 +120,17 @@ ExecScan(ScanState *node, */ qual = node->ps.qual; projInfo = node->ps.ps_ProjInfo; + econtext = node->ps.ps_ExprContext; /* * If we have neither a qual to check nor a projection to do, just skip * all the overhead and return the raw scan tuple. */ if (!qual && !projInfo) + { + ResetExprContext(econtext); return ExecScanFetch(node, accessMtd, recheckMtd); + } /* * Check to see if we're still projecting out tuples from a previous scan @@ -148,7 +152,6 @@ ExecScan(ScanState *node, * storage allocated in the previous tuple cycle. Note this can't happen * until we're done projecting out tuples from a scan tuple. */ - econtext = node->ps.ps_ExprContext; ResetExprContext(econtext); /* |