aboutsummaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
authorTeodor Sigaev <teodor@sigaev.ru>2010-01-18 11:53:10 +0000
committerTeodor Sigaev <teodor@sigaev.ru>2010-01-18 11:53:10 +0000
commit59dbd542ab18f557a88caa8a4c7279a4bb7e82e8 (patch)
tree6a2de257c885ab400e732a8f4c4134717d7bc300 /src/backend
parent524d357d09cd42a1e88636f2bc6a66bc402ca0a1 (diff)
downloadpostgresql-59dbd542ab18f557a88caa8a4c7279a4bb7e82e8.tar.gz
postgresql-59dbd542ab18f557a88caa8a4c7279a4bb7e82e8.zip
Fix incorrect comparison of scan key in GIN. Per report from
Vyacheslav Kalinin <vka@mgcp.com>
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/access/gin/ginscan.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/backend/access/gin/ginscan.c b/src/backend/access/gin/ginscan.c
index bda97033adc..6090c4f1e24 100644
--- a/src/backend/access/gin/ginscan.c
+++ b/src/backend/access/gin/ginscan.c
@@ -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.24 2009/06/11 14:48:53 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/access/gin/ginscan.c,v 1.24.2.1 2010/01/18 11:53:10 teodor Exp $
*-------------------------------------------------------------------------
*/
@@ -74,7 +74,9 @@ fillScanKey(GinState *ginstate, GinScanKey key, OffsetNumber attnum, Datum query
/* link to the equals entry in current scan key */
key->scanEntry[i].master = NULL;
for (j = 0; j < i; j++)
- if (compareEntries(ginstate, attnum, entryValues[i], entryValues[j]) == 0)
+ if (compareEntries(ginstate, attnum, entryValues[i], entryValues[j]) == 0 &&
+ key->scanEntry[i].isPartialMatch == key->scanEntry[j].isPartialMatch &&
+ key->scanEntry[i].strategy == key->scanEntry[j].strategy)
{
key->scanEntry[i].master = key->scanEntry + j;
break;