diff options
Diffstat (limited to 'src/backend/optimizer/plan/planner.c')
-rw-r--r-- | src/backend/optimizer/plan/planner.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c index f01b9feffe2..ad68253109d 100644 --- a/src/backend/optimizer/plan/planner.c +++ b/src/backend/optimizer/plan/planner.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planner.c,v 1.143 2003/02/03 15:07:07 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planner.c,v 1.144 2003/02/04 00:50:00 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -623,11 +623,14 @@ grouping_planner(Query *parse, double tuple_fraction) * Will need actual number of aggregates for estimating costs. * Also, it's possible that optimization has eliminated all * aggregates, and we may as well check for that here. + * + * Note: we do not attempt to detect duplicate aggregates here; + * a somewhat-overestimated count is okay for our present purposes. */ if (parse->hasAggs) { - numAggs = length(pull_agg_clause((Node *) tlist)) + - length(pull_agg_clause(parse->havingQual)); + numAggs = count_agg_clause((Node *) tlist) + + count_agg_clause(parse->havingQual); if (numAggs == 0) parse->hasAggs = false; } |