diff --git a/src/hnswinsert.c b/src/hnswinsert.c index ec17726..705b1f1 100644 --- a/src/hnswinsert.c +++ b/src/hnswinsert.c @@ -123,7 +123,6 @@ WriteNewElementPages(Relation index, HnswElement e, int m, BlockNumber insertPag Size minCombinedSize; HnswElementTuple etup; BlockNumber currentPage = insertPage; - int dimensions = e->vec->dim; HnswNeighborTuple ntup; Buffer nbuf; Page npage; @@ -132,7 +131,7 @@ WriteNewElementPages(Relation index, HnswElement e, int m, BlockNumber insertPag BlockNumber newInsertPage = InvalidBlockNumber; /* Calculate sizes */ - etupSize = HNSW_ELEMENT_TUPLE_SIZE(VECTOR_SIZE(dimensions)); + etupSize = HNSW_ELEMENT_TUPLE_SIZE(VARSIZE_ANY(e->vec)); ntupSize = HNSW_NEIGHBOR_TUPLE_SIZE(e->level, m); combinedSize = etupSize + ntupSize + sizeof(ItemIdData); maxSize = HNSW_MAX_SIZE; diff --git a/src/hnswutils.c b/src/hnswutils.c index e7d1705..0c82636 100644 --- a/src/hnswutils.c +++ b/src/hnswutils.c @@ -324,7 +324,7 @@ HnswSetElementTuple(HnswElementTuple etup, HnswElement element) else ItemPointerSetInvalid(&etup->heaptids[i]); } - memcpy(&etup->vec, element->vec, VECTOR_SIZE(element->vec->dim)); + memcpy(&etup->vec, element->vec, VARSIZE_ANY(element->vec)); } /* @@ -447,8 +447,8 @@ HnswLoadElementFromTuple(HnswElement element, HnswElementTuple etup, bool loadHe if (loadVec) { - element->vec = palloc(VECTOR_SIZE(etup->vec.dim)); - memcpy(element->vec, &etup->vec, VECTOR_SIZE(etup->vec.dim)); + element->vec = palloc(VARSIZE_ANY(&etup->vec)); + memcpy(element->vec, &etup->vec, VARSIZE_ANY(&etup->vec)); } }