From cc5b865c33e0f078dc60e41f008156d61f567ec3 Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Thu, 18 Jun 2026 11:49:29 -0700 Subject: [PATCH] Added itemsize to IvfflatBuildState [skip ci] --- src/ivfbuild.c | 6 ++++-- src/ivfflat.h | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/ivfbuild.c b/src/ivfbuild.c index b5e6da3..17f300b 100644 --- a/src/ivfbuild.c +++ b/src/ivfbuild.c @@ -388,8 +388,10 @@ InitBuildState(IvfflatBuildState * buildstate, Relation heap, Relation index, In buildstate->slot = MakeSingleTupleTableSlot(buildstate->sortdesc, &TTSOpsVirtual); + buildstate->itemsize = buildstate->typeInfo->itemSize(buildstate->dimensions); + /* TODO Ensure within maintenance_work_mem */ - buildstate->centers = VectorArrayInit(buildstate->lists, buildstate->dimensions, buildstate->typeInfo->itemSize(buildstate->dimensions)); + buildstate->centers = VectorArrayInit(buildstate->lists, buildstate->dimensions, buildstate->itemsize); buildstate->listInfo = palloc(sizeof(ListInfo) * buildstate->lists); buildstate->tmpCtx = AllocSetContextCreate(CurrentMemoryContext, @@ -444,7 +446,7 @@ ComputeCenters(IvfflatBuildState * buildstate) /* Sample rows */ /* TODO Ensure within maintenance_work_mem */ - buildstate->samples = VectorArrayInit(numSamples, buildstate->dimensions, buildstate->centers->itemsize); + buildstate->samples = VectorArrayInit(numSamples, buildstate->dimensions, buildstate->itemsize); if (buildstate->heap != NULL) { IvfflatBench("sample rows", SampleRows(buildstate)); diff --git a/src/ivfflat.h b/src/ivfflat.h index 87f6328..c41e90c 100644 --- a/src/ivfflat.h +++ b/src/ivfflat.h @@ -204,6 +204,7 @@ typedef struct IvfflatBuildState VectorArray samples; VectorArray centers; ListInfo *listInfo; + Size itemsize; #ifdef IVFFLAT_KMEANS_DEBUG double inertia;