diff options
Diffstat (limited to 'src/backend/optimizer/plan/planmain.c')
-rw-r--r-- | src/backend/optimizer/plan/planmain.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/backend/optimizer/plan/planmain.c b/src/backend/optimizer/plan/planmain.c index 132cda732b2..e9f27cd5098 100644 --- a/src/backend/optimizer/plan/planmain.c +++ b/src/backend/optimizer/plan/planmain.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planmain.c,v 1.20 1998/02/26 04:32:50 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planmain.c,v 1.21 1998/03/31 23:30:49 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -187,7 +187,9 @@ query_planner(Query *root, */ if (constant_qual) { - subplan = (Plan *) make_result((!root->hasAggs && !root->groupClause) + subplan = (Plan *) make_result((!root->hasAggs && + !root->groupClause && + !root->havingQual) ? tlist : subplan->targetlist, (Node *) constant_qual, subplan); @@ -195,7 +197,7 @@ query_planner(Query *root, /* * Change all varno's of the Result's node target list. */ - if (!root->hasAggs && !root->groupClause) + if (!root->hasAggs && !root->groupClause && !root->havingQual) set_tlist_references(subplan); return subplan; @@ -216,7 +218,7 @@ query_planner(Query *root, */ else { - if (!root->hasAggs && !root->groupClause) + if (!root->hasAggs && !root->groupClause && !root->havingQual) subplan->targetlist = flatten_tlist_vars(tlist, subplan->targetlist); return subplan; |