diff --git a/src/hnswscan.c b/src/hnswscan.c index fd8faca..3cf2fd3 100644 --- a/src/hnswscan.c +++ b/src/hnswscan.c @@ -185,6 +185,9 @@ hnswgettuple(IndexScanDesc scan, ScanDirection dir) Datum value = PointerGetDatum(hc->element->vec); bool isnull = false; + if (scan->xs_itup) + pfree(scan->xs_itup); + scan->xs_itup = index_form_tuple(scan->xs_itupdesc, &value, &isnull); scan->xs_itup->t_tid = *tid; } @@ -229,6 +232,9 @@ hnswendscan(IndexScanDesc scan) if (BufferIsValid(so->buf)) ReleaseBuffer(so->buf); + if (scan->xs_itup) + pfree(scan->xs_itup); + MemoryContextDelete(so->tmpCtx); pfree(so);