aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/nodeTableFuncscan.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/executor/nodeTableFuncscan.c')
-rw-r--r--src/backend/executor/nodeTableFuncscan.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/backend/executor/nodeTableFuncscan.c b/src/backend/executor/nodeTableFuncscan.c
index a9fd3fda6be..b0c94d7e063 100644
--- a/src/backend/executor/nodeTableFuncscan.c
+++ b/src/backend/executor/nodeTableFuncscan.c
@@ -150,9 +150,9 @@ ExecInitTableFuncScan(TableFuncScan *node, EState *estate, int eflags)
ExecInitScanTupleSlot(estate, &scanstate->ss, tupdesc);
/*
- * Initialize result slot, type and projection.
+ * Initialize result type and projection.
*/
- ExecInitResultTupleSlotTL(estate, &scanstate->ss.ps);
+ ExecInitResultTypeTL(&scanstate->ss.ps);
ExecAssignScanProjectionInfo(&scanstate->ss);
/*
@@ -221,7 +221,8 @@ ExecEndTableFuncScan(TableFuncScanState *node)
/*
* clean out the tuple table
*/
- ExecClearTuple(node->ss.ps.ps_ResultTupleSlot);
+ if (node->ss.ps.ps_ResultTupleSlot)
+ ExecClearTuple(node->ss.ps.ps_ResultTupleSlot);
ExecClearTuple(node->ss.ss_ScanTupleSlot);
/*
@@ -243,7 +244,8 @@ ExecReScanTableFuncScan(TableFuncScanState *node)
{
Bitmapset *chgparam = node->ss.ps.chgParam;
- ExecClearTuple(node->ss.ps.ps_ResultTupleSlot);
+ if (node->ss.ps.ps_ResultTupleSlot)
+ ExecClearTuple(node->ss.ps.ps_ResultTupleSlot);
ExecScanReScan(&node->ss);
/*