From 89caf56b86393b1caf887294d000bbc983f16c70 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 14 Nov 2002 19:00:36 +0000 Subject: [PATCH] Fix planning bug introduced in recent code reorganization for hashed aggregates: tuple_fraction has to be adjusted before passing it to compare_fractional_path_costs(). --- src/backend/optimizer/plan/planner.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c index 7e722d6a099..ab51f0cedbb 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.127 2002/11/06 22:31:24 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planner.c,v 1.128 2002/11/14 19:00:36 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1257,6 +1257,9 @@ grouping_planner(Query *parse, double tuple_fraction) sorted_path->parent->rows, sorted_path->parent->width); sort_path.startup_cost += cheapest_path->total_cost; sort_path.total_cost += cheapest_path->total_cost; + /* Convert absolute-count tuple_fraction into a fraction */ + if (tuple_fraction >= 1.0) + tuple_fraction /= sorted_path->parent->rows; if (compare_fractional_path_costs(sorted_path, &sort_path, tuple_fraction) <= 0) {