diff --git a/src/hnswutils.c b/src/hnswutils.c index 4261130..6603289 100644 --- a/src/hnswutils.c +++ b/src/hnswutils.c @@ -846,22 +846,15 @@ HnswInsertElement(HnswElement element, HnswElement entryPoint, Relation index, F HnswElement dup; BlockNumber *skipPage = vacuuming ? &element->neighborPage : NULL; OffsetNumber *skipOffno = vacuuming ? &element->neighborOffno : NULL; - bool removeEntryPoint; - HnswCandidate *entryCandidate; /* Get entry point and level */ if (entryPoint != NULL) { - entryCandidate = EntryCandidate(entryPoint, q, index, procinfo, collation, true); - ep = lappend(ep, entryCandidate); + ep = lappend(ep, EntryCandidate(entryPoint, q, index, procinfo, collation, true)); entryLevel = entryPoint->level; - removeEntryPoint = vacuuming && list_length(entryPoint->heaptids) == 0; } else - { entryLevel = -1; - removeEntryPoint = false; - } for (int lc = entryLevel; lc >= level + 1; lc--) { @@ -877,8 +870,6 @@ HnswInsertElement(HnswElement element, HnswElement entryPoint, Relation index, F int lm = GetLayerM(m, lc); w = SearchLayer(q, ep, efConstruction, lc, index, procinfo, collation, true, skipPage, skipOffno); - if (removeEntryPoint) - w = list_delete_ptr(w, entryCandidate); newNeighbors[lc] = SelectNeighbors(w, lm, lc, procinfo, collation, NULL); ep = w; }