diff options
Diffstat (limited to 'contrib/bloom/bloom.h')
-rw-r--r-- | contrib/bloom/bloom.h | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/contrib/bloom/bloom.h b/contrib/bloom/bloom.h index d5284f37253..cbf2eb78927 100644 --- a/contrib/bloom/bloom.h +++ b/contrib/bloom/bloom.h @@ -31,8 +31,13 @@ /* Opaque for bloom pages */ typedef struct BloomPageOpaqueData { - OffsetNumber maxoff; - uint16 flags; + OffsetNumber maxoff; /* number of index tuples on page */ + uint16 flags; /* see bit definitions below */ + uint16 unused; /* placeholder to force maxaligning of size + * of BloomPageOpaqueData and to place + * bloom_page_id exactly at the end of page + */ + uint16 bloom_page_id; /* for identification of BLOOM indexes */ } BloomPageOpaqueData; typedef BloomPageOpaqueData *BloomPageOpaque; @@ -41,6 +46,16 @@ typedef BloomPageOpaqueData *BloomPageOpaque; #define BLOOM_META (1<<0) #define BLOOM_DELETED (2<<0) +/* + * The page ID is for the convenience of pg_filedump and similar utilities, + * which otherwise would have a hard time telling pages of different index + * types apart. It should be the last 2 bytes on the page. This is more or + * less "free" due to alignment considerations. + * + * See comments above GinPageOpaqueData. + */ +#define BLOOM_PAGE_ID 0xFF83 + /* Macros for accessing bloom page structures */ #define BloomPageGetOpaque(page) ((BloomPageOpaque) PageGetSpecialPointer(page)) #define BloomPageGetMaxOffset(page) (BloomPageGetOpaque(page)->maxoff) |