PostgreSQL Source Code git master
Loading...
Searching...
No Matches
brin_page.h File Reference
#include "storage/block.h"
#include "storage/itemptr.h"
Include dependency graph for brin_page.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  BrinSpecialSpace
 
struct  BrinMetaPageData
 
struct  RevmapContents
 

Macros

#define BrinPageType(page)
 
#define BrinPageFlags(page)
 
#define BRIN_PAGETYPE_META   0xF091
 
#define BRIN_PAGETYPE_REVMAP   0xF092
 
#define BRIN_PAGETYPE_REGULAR   0xF093
 
#define BRIN_IS_META_PAGE(page)   (BrinPageType(page) == BRIN_PAGETYPE_META)
 
#define BRIN_IS_REVMAP_PAGE(page)   (BrinPageType(page) == BRIN_PAGETYPE_REVMAP)
 
#define BRIN_IS_REGULAR_PAGE(page)   (BrinPageType(page) == BRIN_PAGETYPE_REGULAR)
 
#define BRIN_EVACUATE_PAGE   (1 << 0)
 
#define BRIN_CURRENT_VERSION   1
 
#define BRIN_META_MAGIC   0xA8109CFA
 
#define BRIN_METAPAGE_BLKNO   0
 
#define REVMAP_CONTENT_SIZE
 
#define REVMAP_PAGE_MAXITEMS    (REVMAP_CONTENT_SIZE / sizeof(ItemPointerData))
 

Typedefs

typedef struct BrinSpecialSpace BrinSpecialSpace
 
typedef struct BrinMetaPageData BrinMetaPageData
 
typedef struct RevmapContents RevmapContents
 

Macro Definition Documentation

◆ BRIN_CURRENT_VERSION

#define BRIN_CURRENT_VERSION   1

Definition at line 72 of file brin_page.h.

◆ BRIN_EVACUATE_PAGE

#define BRIN_EVACUATE_PAGE   (1 << 0)

Definition at line 60 of file brin_page.h.

◆ BRIN_IS_META_PAGE

#define BRIN_IS_META_PAGE (   page)    (BrinPageType(page) == BRIN_PAGETYPE_META)

Definition at line 55 of file brin_page.h.

◆ BRIN_IS_REGULAR_PAGE

#define BRIN_IS_REGULAR_PAGE (   page)    (BrinPageType(page) == BRIN_PAGETYPE_REGULAR)

Definition at line 57 of file brin_page.h.

◆ BRIN_IS_REVMAP_PAGE

#define BRIN_IS_REVMAP_PAGE (   page)    (BrinPageType(page) == BRIN_PAGETYPE_REVMAP)

Definition at line 56 of file brin_page.h.

◆ BRIN_META_MAGIC

#define BRIN_META_MAGIC   0xA8109CFA

Definition at line 73 of file brin_page.h.

◆ BRIN_METAPAGE_BLKNO

#define BRIN_METAPAGE_BLKNO   0

Definition at line 75 of file brin_page.h.

◆ BRIN_PAGETYPE_META

#define BRIN_PAGETYPE_META   0xF091

Definition at line 51 of file brin_page.h.

◆ BRIN_PAGETYPE_REGULAR

#define BRIN_PAGETYPE_REGULAR   0xF093

Definition at line 53 of file brin_page.h.

◆ BRIN_PAGETYPE_REVMAP

#define BRIN_PAGETYPE_REVMAP   0xF092

Definition at line 52 of file brin_page.h.

◆ BrinPageFlags

#define BrinPageFlags (   page)
Value:
PageGetSpecialPointer(page))->vector[MAXALIGN(1) / sizeof(uint16) - 2])
#define PageGetSpecialPointer(page)
Definition bufpage.h:338
#define MAXALIGN(LEN)
Definition c.h:826
uint16_t uint16
Definition c.h:545

Definition at line 46 of file brin_page.h.

64{
65 uint32 brinMagic;
66 uint32 brinVersion;
67 BlockNumber pagesPerRange;
68 BlockNumber lastRevmapPage;
70
71#define BRIN_CURRENT_VERSION 1
72#define BRIN_META_MAGIC 0xA8109CFA
73
74#define BRIN_METAPAGE_BLKNO 0
75
76/* Definitions for revmap pages */
77typedef struct RevmapContents
78{
79 /*
80 * This array will fill all available space on the page. It should be
81 * declared [FLEXIBLE_ARRAY_MEMBER], but for some reason you can't do that
82 * in an otherwise-empty struct.
83 */
86
87#define REVMAP_CONTENT_SIZE \
88 (BLCKSZ - MAXALIGN(SizeOfPageHeaderData) - \
89 offsetof(RevmapContents, rm_tids) - \
90 MAXALIGN(sizeof(BrinSpecialSpace)))
91/* max num of items in the array */
92#define REVMAP_PAGE_MAXITEMS \
93 (REVMAP_CONTENT_SIZE / sizeof(ItemPointerData))
94
95#endif /* BRIN_PAGE_H */
uint32 BlockNumber
Definition block.h:31
uint32_t uint32
Definition c.h:546
ItemPointerData rm_tids[1]
Definition brin_page.h:85

◆ BrinPageType

#define BrinPageType (   page)
Value:
PageGetSpecialPointer(page))->vector[MAXALIGN(1) / sizeof(uint16) - 1])

Definition at line 42 of file brin_page.h.

◆ REVMAP_CONTENT_SIZE

#define REVMAP_CONTENT_SIZE
Value:
#define SizeOfPageHeaderData
Definition bufpage.h:216
static int fb(int x)

Definition at line 88 of file brin_page.h.

◆ REVMAP_PAGE_MAXITEMS

#define REVMAP_PAGE_MAXITEMS    (REVMAP_CONTENT_SIZE / sizeof(ItemPointerData))

Definition at line 93 of file brin_page.h.

Typedef Documentation

◆ BrinMetaPageData

◆ BrinSpecialSpace

◆ RevmapContents