diff --git a/src/hnswbuild.c b/src/hnswbuild.c index 7035840..808d8e6 100644 --- a/src/hnswbuild.c +++ b/src/hnswbuild.c @@ -328,7 +328,7 @@ HnswElementMemory(HnswElement e, int m) elementSize += sizeof(HnswNeighborArray) * (e->level + 1); elementSize += sizeof(HnswCandidate) * (m * (e->level + 2)); elementSize += sizeof(ItemPointerData); - elementSize += VARSIZE_ANY(e->value); + elementSize += VARSIZE_ANY(DatumGetPointer(e->value)); return elementSize; } diff --git a/src/hnswinsert.c b/src/hnswinsert.c index c9414af..873be3a 100644 --- a/src/hnswinsert.c +++ b/src/hnswinsert.c @@ -131,7 +131,7 @@ WriteNewElementPages(Relation index, HnswElement e, int m, BlockNumber insertPag BlockNumber newInsertPage = InvalidBlockNumber; /* Calculate sizes */ - etupSize = HNSW_ELEMENT_TUPLE_SIZE(VARSIZE_ANY(e->value)); + etupSize = HNSW_ELEMENT_TUPLE_SIZE(VARSIZE_ANY(DatumGetPointer(e->value))); 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 ea52b7f..836e95e 100644 --- a/src/hnswutils.c +++ b/src/hnswutils.c @@ -325,7 +325,7 @@ HnswSetElementTuple(HnswElementTuple etup, HnswElement element) else ItemPointerSetInvalid(&etup->heaptids[i]); } - memcpy(&etup->vec, DatumGetPointer(element->value), VARSIZE_ANY(element->value)); + memcpy(&etup->vec, DatumGetPointer(element->value), VARSIZE_ANY(DatumGetPointer(element->value))); } /*