]> granicus.if.org Git - postgresql/commitdiff
Fix strategy propagation to scanEntry for partial match by moving propagation
authorTeodor Sigaev <teodor@sigaev.ru>
Thu, 4 Sep 2008 11:47:05 +0000 (11:47 +0000)
committerTeodor Sigaev <teodor@sigaev.ru>
Thu, 4 Sep 2008 11:47:05 +0000 (11:47 +0000)
to initializaion of scanEntry.

src/backend/access/gin/ginget.c
src/backend/access/gin/ginscan.c

index 9648d5ea289f4fec067b813a8f77a81ebf811ae0..c4619a614603f77e53e8e450c7b31b822040113a 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *                     $PostgreSQL: pgsql/src/backend/access/gin/ginget.c,v 1.18 2008/07/11 21:06:29 tgl Exp $
+ *                     $PostgreSQL: pgsql/src/backend/access/gin/ginget.c,v 1.19 2008/09/04 11:47:05 teodor Exp $
  *-------------------------------------------------------------------------
  */
 
@@ -395,14 +395,7 @@ startScanKey(Relation index, GinState *ginstate, GinScanKey key)
                return;
 
        for (i = 0; i < key->nentries; i++)
-       {
                startScanEntry(index, ginstate, key->scanEntry + i);
-               /*
-                * Copy strategy number to each entry of key to
-                * use in comparePartialFn call
-                */
-               key->scanEntry[i].strategy = key->strategy;
-       }
 
        memset(key->entryRes, TRUE, sizeof(bool) * key->nentries);
        key->isFinished = FALSE;
index b81ba0c12e146d8833a17fb4449f076136042680..7a1cac08cdbbe5e6fbd8ea4e5e31f728459339c5 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *                     $PostgreSQL: pgsql/src/backend/access/gin/ginscan.c,v 1.17 2008/07/11 21:06:29 tgl Exp $
+ *                     $PostgreSQL: pgsql/src/backend/access/gin/ginscan.c,v 1.18 2008/09/04 11:47:05 teodor Exp $
  *-------------------------------------------------------------------------
  */
 
@@ -61,6 +61,7 @@ fillScanKey(GinState *ginstate, GinScanKey key, OffsetNumber attnum, Datum query
                key->scanEntry[i].offset = InvalidOffsetNumber;
                key->scanEntry[i].buffer = InvalidBuffer;
                key->scanEntry[i].partialMatch = NULL;
+               key->scanEntry[i].strategy = strategy;
                key->scanEntry[i].list = NULL;
                key->scanEntry[i].nlist = 0;
                key->scanEntry[i].isPartialMatch = ( ginstate->canPartialMatch[attnum - 1] && partial_matches )