diff options
Diffstat (limited to 'src/backend/optimizer/plan/planagg.c')
-rw-r--r-- | src/backend/optimizer/plan/planagg.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/backend/optimizer/plan/planagg.c b/src/backend/optimizer/plan/planagg.c index 77ad0176db2..be26d17a28a 100644 --- a/src/backend/optimizer/plan/planagg.c +++ b/src/backend/optimizer/plan/planagg.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/optimizer/plan/planagg.c,v 1.26 2007/02/06 06:50:26 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/optimizer/plan/planagg.c,v 1.27 2007/02/19 07:03:29 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -450,6 +450,7 @@ make_agg_subplan(PlannerInfo *root, MinMaxAggInfo *info) */ memcpy(&subroot, root, sizeof(PlannerInfo)); subroot.parse = subparse = (Query *) copyObject(root->parse); + subroot.init_plans = NIL; subparse->commandType = CMD_SELECT; subparse->resultRelation = 0; subparse->resultRelations = NIL; @@ -524,6 +525,9 @@ make_agg_subplan(PlannerInfo *root, MinMaxAggInfo *info) info->param = SS_make_initplan_from_plan(&subroot, plan, exprType((Node *) tle->expr), -1); + + /* Make sure the InitPlan gets into the outer list */ + root->init_plans = list_concat(root->init_plans, subroot.init_plans); } /* |