pgvector.git / summary / log / commit / refs

commit    8a3ca2ed589b0a335aab1eaa48e9ea868cbd0a7b
Author:   Andrew Kane <andrew@ankane.org>
Date:     Fri Oct 30 21:42:57 2026 +0000

    Consolidated variables [skip ci]


src/hnswutils.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/hnswutils.c b/src/hnswutils.c index 41dbc655..17f4369a 100644 --- a/src/hnswutils.c +++ b/src/hnswutils.c @@ -831,10 +831,6 @@ HnswLoadUnvisitedFromDisk(HnswElement element, HnswUnvisited * unvisited, int *u } } - searchState->unvisited = unvisited; - searchState->unvisitedLength = *unvisitedLength; - searchState->visited = 0; - #ifdef HNSW_USE_READ_STREAM /* Restore read-ahead distance */ read_stream_resume(searchState->stream); @@ -1025,10 +1021,10 @@ HnswSearchLayer(char *base, HnswQuery * q, List *ep, int ef, int lc, Relation in HnswNeighborArray *localNeighborhood = NULL; Size neighborhoodSize = 0; int lm = HnswGetLayerM(m, lc); - HnswUnvisited *unvisited = palloc_array_checked(HnswUnvisited, lm); - int unvisitedLength; bool inMemory = index == NULL; + searchState->unvisited = palloc_array_checked(HnswUnvisited, lm); + if (v == NULL) { v = &vh; @@ -1089,15 +1085,17 @@ HnswSearchLayer(char *base, HnswQuery * q, List *ep, int ef, int lc, Relation in cElement = HnswPtrAccess(base, c->element); if (inMemory) - HnswLoadUnvisitedFromMemory(base, cElement, unvisited, &unvisitedLength, v, lc, localNeighborhood, neighborhoodSize); + HnswLoadUnvisitedFromMemory(base, cElement, searchState->unvisited, &searchState->unvisitedLength, v, lc, localNeighborhood, neighborhoodSize); else - HnswLoadUnvisitedFromDisk(cElement, unvisited, &unvisitedLength, v, index, m, lm, lc, searchState); + HnswLoadUnvisitedFromDisk(cElement, searchState->unvisited, &searchState->unvisitedLength, v, index, m, lm, lc, searchState); /* OK to count elements instead of tuples */ if (tuples != NULL) - (*tuples) += unvisitedLength; + (*tuples) += searchState->unvisitedLength; + + searchState->visited = 0; - for (int i = 0;; i++) + for (;;) { HnswElement eElement; HnswSearchCandidate *e; @@ -1108,10 +1106,10 @@ HnswSearchLayer(char *base, HnswQuery * q, List *ep, int ef, int lc, Relation in if (inMemory) { - if (i == unvisitedLength) + if (searchState->visited >= searchState->unvisitedLength) break; - eElement = unvisited[i].element; + eElement = searchState->unvisited[searchState->visited++].element; eDistance = GetElementDistance(base, eElement, q, support); } else [parent: 9fbe946b4519]