Fix old bug in _hash_first() for scan without keys:
authorVadim B. Mikheev
Wed, 30 Apr 1997 06:31:16 +0000 (06:31 +0000)
committerVadim B. Mikheev
Wed, 30 Apr 1997 06:31:16 +0000 (06:31 +0000)
if 1st bucket chain is empty then need to continue scan in the rest buckets.

src/backend/access/hash/hashsearch.c

index 459fbc3a167984af787857026091706a3d777256..f1450e1c1ca79f2d33aa2fcb714a8aa65f06dd5a 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/backend/access/hash/hashsearch.c,v 1.8 1996/11/21 06:06:52 vadim Exp $
+ *    $Header: /cvsroot/pgsql/src/backend/access/hash/hashsearch.c,v 1.9 1997/04/30 06:31:16 vadim Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -221,7 +221,13 @@ _hash_first(IndexScanDesc scan, ScanDirection dir)
    } else {
        ItemPointerSetInvalid(current);
        so->hashso_curbuf = InvalidBuffer;
-       return ((RetrieveIndexResult) NULL);
+       /* 
+        * If there is no scankeys, all tuples will satisfy 
+        * the scan - so we continue in _hash_step to get 
+        * tuples from all buckets. - vadim 04/29/97
+        */
+       if ( scan->numberOfKeys >= 1 )
+           return ((RetrieveIndexResult) NULL);
    }
     }
     if (ScanDirectionIsBackward(dir)) {