Added check to confirm in deletion list before marking as deleted

This commit is contained in:
Andrew Kane
2026-06-30 01:15:38 -07:00
parent ecd413d0fe
commit ecddde963a

View File

@@ -637,6 +637,7 @@ MarkDeleted(HnswVacuumState * vacuumstate)
Page npage;
BlockNumber neighborPage;
OffsetNumber neighborOffno;
ItemPointerData indextid;
/* Skip neighbor tuples */
if (!HnswIsElementTuple(etup))
@@ -656,6 +657,18 @@ MarkDeleted(HnswVacuumState * vacuumstate)
if (ItemPointerIsValid(&etup->heaptids[0]))
continue;
/* Confirm in deletion list */
ItemPointerSet(&indextid, blkno, offno);
if (!DeletingElement(vacuumstate->deleting, &indextid))
{
/*
* Should not happen, but skip if it does since there may be
* connections from other elements
*/
elog(INFO, "hnsw element not in deletion list");
continue;
}
/* Get neighbor page */
neighborPage = ItemPointerGetBlockNumber(&etup->neighbortid);
neighborOffno = ItemPointerGetOffsetNumber(&etup->neighbortid);