diff --git a/src/hnsw.h b/src/hnsw.h index 8a9a2db..7ec79ce 100644 --- a/src/hnsw.h +++ b/src/hnsw.h @@ -377,7 +377,7 @@ typedef struct HnswVacuumState int HnswGetM(Relation index); int HnswGetEfConstruction(Relation index); FmgrInfo *HnswOptionalProcInfo(Relation index, uint16 procnum); -Datum HnswNormValue(const HnswTypeInfo * typeInfo, Datum value); +Datum HnswNormValue(const HnswTypeInfo * typeInfo, Oid collation, Datum value); bool HnswCheckNorm(FmgrInfo *procinfo, Oid collation, Datum value); Buffer HnswNewBuffer(Relation index, ForkNumber forkNum); void HnswInitPage(Buffer buf, Page page); diff --git a/src/hnswbuild.c b/src/hnswbuild.c index d6c3f1f..ee94ed9 100644 --- a/src/hnswbuild.c +++ b/src/hnswbuild.c @@ -498,7 +498,7 @@ InsertTuple(Relation index, Datum *values, bool *isnull, ItemPointer heaptid, Hn if (!HnswCheckNorm(buildstate->normprocinfo, buildstate->collation, value)) return false; - value = HnswNormValue(typeInfo, value); + value = HnswNormValue(typeInfo, buildstate->collation, value); } /* Get datum size */ diff --git a/src/hnswinsert.c b/src/hnswinsert.c index ad75fa5..0023024 100644 --- a/src/hnswinsert.c +++ b/src/hnswinsert.c @@ -630,7 +630,7 @@ HnswInsertTuple(Relation index, Datum *values, bool *isnull, ItemPointer heap_ti if (!HnswCheckNorm(normprocinfo, collation, value)) return; - value = HnswNormValue(typeInfo, value); + value = HnswNormValue(typeInfo, collation, value); } HnswInsertTupleOnDisk(index, value, values, isnull, heap_tid, false); diff --git a/src/hnswscan.c b/src/hnswscan.c index 34bb6dd..6daf34d 100644 --- a/src/hnswscan.c +++ b/src/hnswscan.c @@ -61,7 +61,7 @@ GetScanValue(IndexScanDesc scan) /* Fine if normalization fails */ if (so->normprocinfo != NULL) - value = HnswNormValue(so->typeInfo, value); + value = HnswNormValue(so->typeInfo, so->collation, value); } return value; diff --git a/src/hnswutils.c b/src/hnswutils.c index d1ada70..48acef0 100644 --- a/src/hnswutils.c +++ b/src/hnswutils.c @@ -156,9 +156,9 @@ HnswOptionalProcInfo(Relation index, uint16 procnum) * Normalize value */ Datum -HnswNormValue(const HnswTypeInfo * typeInfo, Datum value) +HnswNormValue(const HnswTypeInfo * typeInfo, Oid collation, Datum value) { - return DirectFunctionCall1(typeInfo->normalize, value); + return DirectFunctionCall1Coll(typeInfo->normalize, collation, value); } /*