aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/nodeSubqueryscan.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/executor/nodeSubqueryscan.c')
-rw-r--r--src/backend/executor/nodeSubqueryscan.c28
1 files changed, 11 insertions, 17 deletions
diff --git a/src/backend/executor/nodeSubqueryscan.c b/src/backend/executor/nodeSubqueryscan.c
index 715a5b6a841..fa618847851 100644
--- a/src/backend/executor/nodeSubqueryscan.c
+++ b/src/backend/executor/nodeSubqueryscan.c
@@ -121,34 +121,28 @@ ExecInitSubqueryScan(SubqueryScan *node, EState *estate, int eflags)
ExecAssignExprContext(estate, &subquerystate->ss.ps);
/*
- * initialize child expressions
- */
- subquerystate->ss.ps.qual =
- ExecInitQual(node->scan.plan.qual, (PlanState *) subquerystate);
-
- /*
- * tuple table initialization
- */
- ExecInitResultTupleSlot(estate, &subquerystate->ss.ps);
- ExecInitScanTupleSlot(estate, &subquerystate->ss);
-
- /*
* initialize subquery
*/
subquerystate->subplan = ExecInitNode(node->subplan, estate, eflags);
/*
- * Initialize scan tuple type (needed by ExecAssignScanProjectionInfo)
+ * Initialize scan slot and type (needed by ExecInitResultTupleSlotTL)
*/
- ExecAssignScanType(&subquerystate->ss,
- ExecGetResultType(subquerystate->subplan));
+ ExecInitScanTupleSlot(estate, &subquerystate->ss,
+ ExecGetResultType(subquerystate->subplan));
/*
- * Initialize result tuple type and projection info.
+ * Initialize result slot, type and projection.
*/
- ExecAssignResultTypeFromTL(&subquerystate->ss.ps);
+ ExecInitResultTupleSlotTL(estate, &subquerystate->ss.ps);
ExecAssignScanProjectionInfo(&subquerystate->ss);
+ /*
+ * initialize child expressions
+ */
+ subquerystate->ss.ps.qual =
+ ExecInitQual(node->scan.plan.qual, (PlanState *) subquerystate);
+
return subquerystate;
}