diff --git a/src/hnswbuild.c b/src/hnswbuild.c index 8caf1f3..e1c3bd6 100644 --- a/src/hnswbuild.c +++ b/src/hnswbuild.c @@ -378,6 +378,7 @@ BuildCallback(Relation index, CALLBACK_ITEM_POINTER, Datum *values, if (inserted) { element->value = datumTransfer(element->value, false, -1); + element->loaded = true; buildstate->elements = lappend(buildstate->elements, element); } else diff --git a/src/hnswutils.c b/src/hnswutils.c index 2bb40f3..de816e2 100644 --- a/src/hnswutils.c +++ b/src/hnswutils.c @@ -188,6 +188,8 @@ HnswFreeElement(HnswElement element) { HnswFreeNeighbors(element); list_free_deep(element->heaptids); + if (element->loaded) + pfree(DatumGetPointer(element->value)); pfree(element); }