summaryrefslogtreecommitdiff
path: root/src/backend/optimizer/plan/planmain.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/optimizer/plan/planmain.c')
-rw-r--r--src/backend/optimizer/plan/planmain.c10
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;