From 38e365ed589b5b1823f3142e08847727fd1abb3a Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Thu, 25 Apr 2024 13:35:17 -0700 Subject: [PATCH] Restored HnswNormValue [skip ci] --- src/hnsw.h | 1 + src/hnswbuild.c | 2 +- src/hnswinsert.c | 2 +- src/hnswscan.c | 2 +- src/hnswutils.c | 9 +++++++++ 5 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/hnsw.h b/src/hnsw.h index 2c1c495..8a9a2db 100644 --- a/src/hnsw.h +++ b/src/hnsw.h @@ -377,6 +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); 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 bfe1e75..d6c3f1f 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 = DirectFunctionCall1(typeInfo->normalize, value); + value = HnswNormValue(typeInfo, value); } /* Get datum size */ diff --git a/src/hnswinsert.c b/src/hnswinsert.c index 8c3c491..ad75fa5 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 = DirectFunctionCall1(typeInfo->normalize, value); + value = HnswNormValue(typeInfo, value); } HnswInsertTupleOnDisk(index, value, values, isnull, heap_tid, false); diff --git a/src/hnswscan.c b/src/hnswscan.c index b14eb7f..34bb6dd 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 = DirectFunctionCall1(so->typeInfo->normalize, value); + value = HnswNormValue(so->typeInfo, value); } return value; diff --git a/src/hnswutils.c b/src/hnswutils.c index 645faaf..d1ada70 100644 --- a/src/hnswutils.c +++ b/src/hnswutils.c @@ -152,6 +152,15 @@ HnswOptionalProcInfo(Relation index, uint16 procnum) return index_getprocinfo(index, 1, procnum); } +/* + * Normalize value + */ +Datum +HnswNormValue(const HnswTypeInfo * typeInfo, Datum value) +{ + return DirectFunctionCall1(typeInfo->normalize, value); +} + /* * Check if non-zero norm */