]> granicus.if.org Git - postgresql/commitdiff
Fixes:
authorMarc G. Fournier <scrappy@hub.org>
Fri, 19 Jul 1996 06:27:59 +0000 (06:27 +0000)
committerMarc G. Fournier <scrappy@hub.org>
Fri, 19 Jul 1996 06:27:59 +0000 (06:27 +0000)
'select distinct on' causes backend to crash

submitted by: Chris Dunlop    chris@onthe.net.au

src/backend/executor/nodeUnique.c

index 8be0bd8497cf6a8a06f9f749312b93a30e41f0d1..8e81b95d8a83a26e0a76a2fa2344195190c27019 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/backend/executor/nodeUnique.c,v 1.1.1.1 1996/07/09 06:21:27 scrappy Exp $
+ *    $Header: /cvsroot/pgsql/src/backend/executor/nodeUnique.c,v 1.2 1996/07/19 06:27:59 scrappy Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -124,7 +124,7 @@ ExecUnique(Unique *node)
 
     if (uniqueAttr) {
       tupDesc = ExecGetResultType(uniquestate);
-      typoutput = typtoout((Oid)tupDesc->attrs[uniqueAttrNum]->atttypid);
+      typoutput = typtoout((Oid)tupDesc->attrs[uniqueAttrNum-1]->atttypid);
     }
       
     /* ----------------
@@ -174,8 +174,8 @@ ExecUnique(Unique *node)
          if (isNull1 == isNull2) {
            if (isNull1) /* both are null, they are equal */
              continue;
-           val1 = fmgr(typoutput, attr1, gettypelem(tupDesc->attrs[uniqueAttrNum]->atttypid));
-           val2 = fmgr(typoutput, attr2, gettypelem(tupDesc->attrs[uniqueAttrNum]->atttypid));
+           val1 = fmgr(typoutput, attr1, gettypelem(tupDesc->attrs[uniqueAttrNum-1]->atttypid));
+           val2 = fmgr(typoutput, attr2, gettypelem(tupDesc->attrs[uniqueAttrNum-1]->atttypid));
            /* now, val1 and val2 are ascii representations so we can
               use strcmp for comparison */
            if (strcmp(val1,val2) == 0) /* they are equal */