mirror of
https://github.com/pgvector/pgvector.git
synced 2026-07-09 14:20:57 +08:00
Always use tuple for duplicates [skip ci]
This commit is contained in:
@@ -330,7 +330,6 @@ static bool
|
|||||||
FindDuplicateInMemory(char *base, HnswElement element, bool useIndexTuple, TupleDesc tupdesc)
|
FindDuplicateInMemory(char *base, HnswElement element, bool useIndexTuple, TupleDesc tupdesc)
|
||||||
{
|
{
|
||||||
HnswNeighborArray *neighbors = HnswGetNeighbors(base, element, 0);
|
HnswNeighborArray *neighbors = HnswGetNeighbors(base, element, 0);
|
||||||
Datum value = HnswGetValue(base, element);
|
|
||||||
IndexTuple itup = HnswPtrAccess(base, element->itup);
|
IndexTuple itup = HnswPtrAccess(base, element->itup);
|
||||||
|
|
||||||
for (int i = 0; i < neighbors->length; i++)
|
for (int i = 0; i < neighbors->length; i++)
|
||||||
@@ -338,18 +337,9 @@ FindDuplicateInMemory(char *base, HnswElement element, bool useIndexTuple, Tuple
|
|||||||
HnswCandidate *neighbor = &neighbors->items[i];
|
HnswCandidate *neighbor = &neighbors->items[i];
|
||||||
HnswElement neighborElement = HnswPtrAccess(base, neighbor->element);
|
HnswElement neighborElement = HnswPtrAccess(base, neighbor->element);
|
||||||
|
|
||||||
if (useIndexTuple)
|
/* Exit early since ordered by distance */
|
||||||
{
|
if (!HnswIndexTupleIsEqual(itup, HnswPtrAccess(base, neighborElement->itup), tupdesc))
|
||||||
/* Exit early since ordered by distance */
|
return false;
|
||||||
if (!HnswIndexTupleIsEqual(itup, HnswPtrAccess(base, neighborElement->itup), tupdesc))
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* Exit early since ordered by distance */
|
|
||||||
if (!datumIsEqual(value, HnswGetValue(base, neighborElement), false, -1))
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Check for space */
|
/* Check for space */
|
||||||
if (AddDuplicateInMemory(element, neighborElement))
|
if (AddDuplicateInMemory(element, neighborElement))
|
||||||
|
|||||||
Reference in New Issue
Block a user