]> 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:29:01 +0000 (21:29 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 5 Aug 2008 21:29:01 +0000 (21:29 +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 ca7797a37ed0ac23a27a6499204eb933d7fa6a05..6de11be5b1a5f6b75ab08cee1d1535348c20bd2d 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- *     $Header: /cvsroot/pgsql/src/backend/executor/execAmi.c,v 1.75.4.2 2004/03/02 18:56:28 tgl Exp $
+ *     $Header: /cvsroot/pgsql/src/backend/executor/execAmi.c,v 1.75.4.3 2008/08/05 21:29:01 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -338,9 +338,6 @@ ExecSupportsBackwardScan(Plan *node)
                case T_Sort:
                        return true;
 
-               case T_Unique:
-                       return ExecSupportsBackwardScan(outerPlan(node));
-
                case T_Limit:
                        return ExecSupportsBackwardScan(outerPlan(node));