diff --git a/src/backend/executor/execUtils.c b/src/backend/executor/execUtils.c
index 6cf692a956d7aee7b69194fd475aefbee386a117..7e84ccdd9cd65033e6c8689357570e497207d7ef 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]);
 	}
 
 	/*