From 2cbd08b6c027ead161bfbf30d24a06457aa98879 Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Thu, 10 Oct 2024 09:41:26 -0700 Subject: [PATCH] Moved unions and macros [skip ci] --- src/hnsw.h | 16 ++++++++++++++++ src/hnswutils.c | 16 ---------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/hnsw.h b/src/hnsw.h index e034068..b2614d1 100644 --- a/src/hnsw.h +++ b/src/hnsw.h @@ -88,6 +88,9 @@ /* Ensure fits on page and in uint8 */ #define HnswGetMaxLevel(m) Min(((BLCKSZ - MAXALIGN(SizeOfPageHeaderData) - MAXALIGN(sizeof(HnswPageOpaqueData)) - offsetof(HnswNeighborTupleData, indextids) - sizeof(ItemIdData)) / (sizeof(ItemPointerData)) / (m)) - 2, 255) +#define HnswGetSearchCandidate(membername, ptr) pairingheap_container(HnswSearchCandidate, membername, ptr) +#define HnswGetSearchCandidateConst(membername, ptr) pairingheap_const_container(HnswSearchCandidate, membername, ptr) + #define HnswGetValue(base, element) PointerGetDatum(HnswPtrAccess(base, (element)->value)) #if PG_VERSION_NUM < 140005 @@ -335,6 +338,19 @@ typedef struct HnswNeighborTupleData typedef HnswNeighborTupleData * HnswNeighborTuple; +typedef union +{ + struct pointerhash_hash *pointers; + struct offsethash_hash *offsets; + struct tidhash_hash *tids; +} visited_hash; + +typedef union +{ + HnswElement element; + ItemPointerData indextid; +} HnswUnvisited; + typedef struct HnswScanOpaqueData { const HnswTypeInfo *typeInfo; diff --git a/src/hnswutils.c b/src/hnswutils.c index fe2b16e..c51fe28 100644 --- a/src/hnswutils.c +++ b/src/hnswutils.c @@ -100,19 +100,6 @@ hash_offset(Size offset) #define SH_DEFINE #include "lib/simplehash.h" -typedef union -{ - pointerhash_hash *pointers; - offsethash_hash *offsets; - tidhash_hash *tids; -} visited_hash; - -typedef union -{ - HnswElement element; - ItemPointerData indextid; -} HnswUnvisited; - /* * Get the max number of connections in an upper layer for each element in the index */ @@ -606,9 +593,6 @@ HnswEntryCandidate(char *base, HnswElement entryPoint, HnswQuery * q, Relation i return sc; } -#define HnswGetSearchCandidate(membername, ptr) pairingheap_container(HnswSearchCandidate, membername, ptr) -#define HnswGetSearchCandidateConst(membername, ptr) pairingheap_const_container(HnswSearchCandidate, membername, ptr) - /* * Compare candidate distances */