Skip to content

Commit a0a7e63

Browse files
committed
Fix incorrect comparison of scan key in GIN. Per report from
Vyacheslav Kalinin <vka@mgcp.com>
1 parent 376c620 commit a0a7e63

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/backend/access/gin/ginscan.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
* Portions Copyright (c) 1994, Regents of the University of California
99
*
1010
* IDENTIFICATION
11-
* $PostgreSQL: pgsql/src/backend/access/gin/ginscan.c,v 1.25 2010/01/02 16:57:33 momjian Exp $
11+
* $PostgreSQL: pgsql/src/backend/access/gin/ginscan.c,v 1.26 2010/01/18 11:50:43 teodor Exp $
1212
*-------------------------------------------------------------------------
1313
*/
1414

@@ -74,7 +74,9 @@ fillScanKey(GinState *ginstate, GinScanKey key, OffsetNumber attnum, Datum query
7474
/* link to the equals entry in current scan key */
7575
key->scanEntry[i].master = NULL;
7676
for (j = 0; j < i; j++)
77-
if (compareEntries(ginstate, attnum, entryValues[i], entryValues[j]) == 0)
77+
if (compareEntries(ginstate, attnum, entryValues[i], entryValues[j]) == 0 &&
78+
key->scanEntry[i].isPartialMatch == key->scanEntry[j].isPartialMatch &&
79+
key->scanEntry[i].strategy == key->scanEntry[j].strategy)
7880
{
7981
key->scanEntry[i].master = key->scanEntry + j;
8082
break;

0 commit comments

Comments
 (0)