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.
This commit is contained in:
Tom Lane 2011-04-22 18:22:38 -04:00
parent 78e7e20afe
commit 474ff212e5
1 changed files with 1 additions and 2 deletions

View File

@ -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, \