aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2011-04-22 18:22:38 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2011-04-22 18:22:38 -0400
commit474ff212e5c2e89a9955cc2355cb96b2fe40398e (patch)
treeff8c0a7cd36c974d63e937c9475ffc00e40eea76
parent78e7e20afe768d9c5f6b4fbf30a2d7100d46bb2f (diff)
downloadpostgresql-474ff212e5c2e89a9955cc2355cb96b2fe40398e.tar.gz
postgresql-474ff212e5c2e89a9955cc2355cb96b2fe40398e.zip
De-kludge contrib/btree_gin for collations.
Using DEFAULT_COLLATION_OID in the comparePartial functions was not only a lame hack, but outright wrong, because the compare functions for collation-aware types were already responding to the declared index collation. So comparePartial would have the wrong expectation about the index's sort order, possibly leading to missing matches for prefix searches.
-rw-r--r--contrib/btree_gin/btree_gin.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/contrib/btree_gin/btree_gin.c b/contrib/btree_gin/btree_gin.c
index 7ca153e0928..5c4f58b8b1f 100644
--- a/contrib/btree_gin/btree_gin.c
+++ b/contrib/btree_gin/btree_gin.c
@@ -7,7 +7,6 @@
#include "fmgr.h"
#include "access/skey.h"
-#include "catalog/pg_collation.h"
#include "utils/builtins.h"
#include "utils/bytea.h"
#include "utils/cash.h"
@@ -123,7 +122,7 @@ gin_compare_prefix_##type(PG_FUNCTION_ARGS) \
\
cmp = DatumGetInt32(DirectFunctionCall2Coll( \
TypeInfo_##type.typecmp, \
- DEFAULT_COLLATION_OID, \
+ PG_GET_COLLATION(), \
(data->strategy == BTLessStrategyNumber || \
data->strategy == BTLessEqualStrategyNumber) \
? data->datum : a, \