]> granicus.if.org Git - postgresql/commitdiff
Do not allow Unique nodes to be scanned backwards. The code claimed that it
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 5 Aug 2008 21:28:48 +0000 (21:28 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 5 Aug 2008 21:28:48 +0000 (21:28 +0000)
would work, but in fact it didn't return the same rows when moving backwards
as when moving forwards.  This would have no visible effect in a DISTINCT
query (at least assuming the column datatypes use a strong definition of
equality), but it gave entirely wrong answers for DISTINCT ON queries.

src/backend/executor/execAmi.c

index be65336c109fbe6af0613a52ae77af5320c1e111..3a8e3f0d5174a35cc37ddede240b982ba5ab55c6 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- *     $PostgreSQL: pgsql/src/backend/executor/execAmi.c,v 1.85.2.2 2008/07/10 01:17:52 tgl Exp $
+ *     $PostgreSQL: pgsql/src/backend/executor/execAmi.c,v 1.85.2.3 2008/08/05 21:28:48 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -383,9 +383,6 @@ ExecSupportsBackwardScan(Plan *node)
                case T_Sort:
                        return true;
 
-               case T_Unique:
-                       return ExecSupportsBackwardScan(outerPlan(node));
-
                case T_Limit:
                        return ExecSupportsBackwardScan(outerPlan(node));