diff options
Diffstat (limited to 'src/backend/executor/nodeGroup.c')
-rw-r--r-- | src/backend/executor/nodeGroup.c | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/src/backend/executor/nodeGroup.c b/src/backend/executor/nodeGroup.c index 8f7bf459efe..c6efd64d00d 100644 --- a/src/backend/executor/nodeGroup.c +++ b/src/backend/executor/nodeGroup.c @@ -182,34 +182,28 @@ ExecInitGroup(Group *node, EState *estate, int eflags) ExecAssignExprContext(estate, &grpstate->ss.ps); /* - * tuple table initialization - */ - ExecInitScanTupleSlot(estate, &grpstate->ss); - ExecInitResultTupleSlot(estate, &grpstate->ss.ps); - - /* - * initialize child expressions - */ - grpstate->ss.ps.qual = - ExecInitQual(node->plan.qual, (PlanState *) grpstate); - - /* * initialize child nodes */ outerPlanState(grpstate) = ExecInitNode(outerPlan(node), estate, eflags); /* - * initialize tuple type. + * Initialize scan slot and type. */ - ExecAssignScanTypeFromOuterPlan(&grpstate->ss); + ExecCreateScanSlotFromOuterPlan(estate, &grpstate->ss); /* - * Initialize result tuple type and projection info. + * Initialize result slot, type and projection. */ - ExecAssignResultTypeFromTL(&grpstate->ss.ps); + ExecInitResultTupleSlotTL(estate, &grpstate->ss.ps); ExecAssignProjectionInfo(&grpstate->ss.ps, NULL); /* + * initialize child expressions + */ + grpstate->ss.ps.qual = + ExecInitQual(node->plan.qual, (PlanState *) grpstate); + + /* * Precompute fmgr lookup data for inner loop */ grpstate->eqfunction = |