Restored HnswNormValue [skip ci]

This commit is contained in:
Andrew Kane
2024-04-25 13:35:17 -07:00
parent 58ec5296b0
commit 38e365ed58
5 changed files with 13 additions and 3 deletions

View File

@@ -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);

View File

@@ -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 */

View File

@@ -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);

View File

@@ -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;

View File

@@ -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
*/