Removed loaded

This commit is contained in:
Andrew Kane
2023-10-23 00:42:01 -07:00
parent d74139c447
commit 3ed582fe92
3 changed files with 6 additions and 6 deletions

View File

@@ -101,7 +101,6 @@ typedef struct HnswElementData
List *heaptids; List *heaptids;
uint8 level; uint8 level;
uint8 deleted; uint8 deleted;
bool loaded;
HnswNeighborArray *neighbors; HnswNeighborArray *neighbors;
BlockNumber blkno; BlockNumber blkno;
OffsetNumber offno; OffsetNumber offno;

View File

@@ -375,11 +375,13 @@ BuildCallback(Relation index, CALLBACK_ITEM_POINTER, Datum *values,
if (inserted) if (inserted)
{ {
element->value = datumCopy(element->value, false, -1); element->value = datumCopy(element->value, false, -1);
element->loaded = true;
buildstate->elements = lappend(buildstate->elements, element); buildstate->elements = lappend(buildstate->elements, element);
} }
else else
{
element->value = PointerGetDatum(NULL);
HnswFreeElement(element); HnswFreeElement(element);
}
/* Reset memory context */ /* Reset memory context */
MemoryContextReset(buildstate->tmpCtx); MemoryContextReset(buildstate->tmpCtx);

View File

@@ -202,7 +202,7 @@ HnswFreeElement(HnswElement element)
{ {
HnswFreeNeighbors(element); HnswFreeNeighbors(element);
list_free_deep(element->heaptids); list_free_deep(element->heaptids);
if (element->loaded) if (DatumGetPointer(element->value))
pfree(DatumGetPointer(element->value)); pfree(DatumGetPointer(element->value));
pfree(element); pfree(element);
} }
@@ -230,7 +230,7 @@ HnswInitElementFromBlock(BlockNumber blkno, OffsetNumber offno)
element->blkno = blkno; element->blkno = blkno;
element->offno = offno; element->offno = offno;
element->neighbors = NULL; element->neighbors = NULL;
element->loaded = false; element->value = PointerGetDatum(NULL);
return element; return element;
} }
@@ -466,7 +466,6 @@ HnswLoadElementFromTuple(HnswElement element, HnswElementTuple etup, bool loadHe
Datum value = PointerGetDatum(&etup->value); Datum value = PointerGetDatum(&etup->value);
element->value = datumCopy(value, false, -1); element->value = datumCopy(value, false, -1);
element->loaded = true;
} }
} }
@@ -954,7 +953,7 @@ HnswUpdateConnection(HnswElement element, HnswCandidate * hc, int m, int lc, int
{ {
HnswCandidate *hc3 = &currentNeighbors->items[i]; HnswCandidate *hc3 = &currentNeighbors->items[i];
if (!hc3->element->loaded) if (!DatumGetPointer(hc3->element->value))
HnswLoadElement(hc3->element, &hc3->distance, &q, index, procinfo, collation, true); HnswLoadElement(hc3->element, &hc3->distance, &q, index, procinfo, collation, true);
else else
hc3->distance = GetCandidateDistance(hc3, q, procinfo, collation); hc3->distance = GetCandidateDistance(hc3, q, procinfo, collation);