From 8d09de7467b906b9cc0efe3af733034ca287d57c Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Wed, 4 Oct 2023 16:47:47 -0700 Subject: [PATCH] Improved logic --- src/hnswutils.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/hnswutils.c b/src/hnswutils.c index e25fdfb..910ba11 100644 --- a/src/hnswutils.c +++ b/src/hnswutils.c @@ -769,11 +769,19 @@ SelectNeighbors(List *c, int m, int lc, FmgrInfo *procinfo, Oid collation, HnswE w = list_delete_last(w); - if (!mustCalculate) - mustCalculate = e->element == e2->neighbors[lc].firstPruned || e == newCandidate; - if (mustCalculate) closer = CheckElementCloser(e, r, lc, procinfo, collation); + else if (e->element == e2->neighbors[lc].firstPruned) + { + closer = false; + /* TODO Store multiple pruned and only calculate when exhausted */ + mustCalculate = true; + } + else if (e == newCandidate) + { + closer = CheckElementCloser(e, r, lc, procinfo, collation); + mustCalculate = true; + } else closer = true;