aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2011-03-27 13:29:52 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2011-03-27 13:29:52 -0400
commitd0dd5c73527d4adc11211bd6ad43e3be121842f9 (patch)
treebe68b2421ad2fa069367be81c880c6a734b52147
parent87f2ad1326bff5cd37dde6fbf024137a2243efea (diff)
downloadpostgresql-d0dd5c73527d4adc11211bd6ad43e3be121842f9.tar.gz
postgresql-d0dd5c73527d4adc11211bd6ad43e3be121842f9.zip
Fix check_exclusion_constraint() to insert correct collations in ScanKeys.
-rw-r--r--src/backend/executor/execUtils.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/backend/executor/execUtils.c b/src/backend/executor/execUtils.c
index 6cf692a956d..7e84ccdd9cd 100644
--- a/src/backend/executor/execUtils.c
+++ b/src/backend/executor/execUtils.c
@@ -1158,6 +1158,7 @@ check_exclusion_constraint(Relation heap, Relation index, IndexInfo *indexInfo,
{
Oid *constr_procs = indexInfo->ii_ExclusionProcs;
uint16 *constr_strats = indexInfo->ii_ExclusionStrats;
+ Oid *index_collations = index->rd_indcollation;
int index_natts = index->rd_index->indnatts;
IndexScanDesc index_scan;
HeapTuple tup;
@@ -1188,11 +1189,14 @@ check_exclusion_constraint(Relation heap, Relation index, IndexInfo *indexInfo,
for (i = 0; i < index_natts; i++)
{
- ScanKeyInit(&scankeys[i],
- i + 1,
- constr_strats[i],
- constr_procs[i],
- values[i]);
+ ScanKeyEntryInitialize(&scankeys[i],
+ 0,
+ i + 1,
+ constr_strats[i],
+ InvalidOid,
+ index_collations[i],
+ constr_procs[i],
+ values[i]);
}
/*