From 99d367edc07446b139e63d5da3056e8a19022bd1 Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Tue, 23 Apr 2024 15:53:12 -0700 Subject: [PATCH] Improved code [skip ci] --- src/ivfkmeans.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ivfkmeans.c b/src/ivfkmeans.c index 774c98e..8d2c793 100644 --- a/src/ivfkmeans.c +++ b/src/ivfkmeans.c @@ -443,6 +443,8 @@ ElkanKmeans(Relation index, VectorArray samples, VectorArray centers, IvfflatTyp newcdist = palloc(newcdistSize); aggCenters = VectorArrayInit(numCenters, dimensions, VECTOR_SIZE(dimensions)); + aggCenters->length = numCenters; + for (int j = 0; j < numCenters; j++) { Vector *vec = (Vector *) VectorArrayGet(aggCenters, j); @@ -459,6 +461,7 @@ ElkanKmeans(Relation index, VectorArray samples, VectorArray centers, IvfflatTyp else if (type == IVFFLAT_TYPE_HALFVEC) { newCenters = VectorArrayInit(numCenters, dimensions, centers->itemsize); + newCenters->length = numCenters; for (int j = 0; j < numCenters; j++) { @@ -471,6 +474,7 @@ ElkanKmeans(Relation index, VectorArray samples, VectorArray centers, IvfflatTyp else if (type == IVFFLAT_TYPE_BIT) { newCenters = VectorArrayInit(numCenters, dimensions, centers->itemsize); + newCenters->length = numCenters; for (int j = 0; j < numCenters; j++) { @@ -483,9 +487,6 @@ ElkanKmeans(Relation index, VectorArray samples, VectorArray centers, IvfflatTyp else elog(ERROR, "Unsupported type"); - aggCenters->length = aggCenters->maxlen; - newCenters->length = newCenters->maxlen; - #ifdef IVFFLAT_MEMORY ShowMemoryUsage(oldCtx, totalSize); #endif