Revert my erroneous fix for Taiki Yamaguchi's DISTINCT MAX() bug.
authorTom Lane <[email protected]>
Sat, 29 Mar 2008 00:15:37 +0000 (00:15 +0000)
committerTom Lane <[email protected]>
Sat, 29 Mar 2008 00:15:37 +0000 (00:15 +0000)
Whatever we do about that, this isn't the path to the solution.

src/backend/optimizer/plan/planner.c

index d8f49c1c6591230c433eae7d45f2e7bcd2bef100..8a569d7cbd468259e6bc6da031eb04c3d82bb631 100644 (file)
@@ -835,21 +835,6 @@ grouping_planner(PlannerInfo *root, double tuple_fraction)
 
                MemSet(&agg_counts, 0, sizeof(AggClauseCounts));
 
-               /*
-                * If the query involves ungrouped aggregation, then it can produce
-                * at most one row, so we can ignore any ORDER BY or DISTINCT
-                * request.  This isn't all that exciting as an optimization, but it
-                * prevents a corner case when optimize_minmax_aggregates succeeds:
-                * if ORDER BY or DISTINCT were present we'd try, and fail, to match
-                * the EquivalenceClasses we're about to build with the modified
-                * targetlist entries it will create.
-                */
-               if (parse->hasAggs && parse->groupClause == NIL)
-               {
-                       parse->sortClause = NIL;
-                       parse->distinctClause = NIL;
-               }
-
                /* Preprocess targetlist */
                tlist = preprocess_targetlist(root, tlist);