]> granicus.if.org Git - postgresql/commitdiff
Fix planning bug introduced in recent code reorganization for hashed
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 14 Nov 2002 19:00:36 +0000 (19:00 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 14 Nov 2002 19:00:36 +0000 (19:00 +0000)
aggregates: tuple_fraction has to be adjusted before passing it to
compare_fractional_path_costs().

src/backend/optimizer/plan/planner.c

index 7e722d6a099fd61205136ab45eeff863f2831556..ab51f0cedbb2cf8c39c39c1925d70683e7791bad 100644 (file)
@@ -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)
                        {