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

src/backend/optimizer/plan/planner.c

index 27d7b3dea26e6c80d03eb536360618b186b19fc7..cbd8d1b05d71ecf32b552d986809a0d423e8898c 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/optimizer/plan/planner.c,v 1.229 2008/03/28 02:00:11 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/optimizer/plan/planner.c,v 1.230 2008/03/29 00:15:28 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -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);