|
PostgreSQL Source Code git master
|
#include "access/transam.h"#include "storage/block.h"#include "storage/bufpage.h"#include "storage/itemptr.h"#include "storage/off.h"

Go to the source code of this file.
Data Structures | |
| struct | GinPageOpaqueData |
| struct | GinMetaPageData |
| struct | PostingItem |
| struct | GinPostingList |
Typedefs | |
| typedef struct GinPageOpaqueData | GinPageOpaqueData |
| typedef GinPageOpaqueData * | GinPageOpaque |
| typedef struct GinMetaPageData | GinMetaPageData |
| typedef signed char | GinNullCategory |
Functions | |
| bool | GinPageIsRecyclable (Page page) |
| #define GIN_CAT_EMPTY_ITEM 2 /* placeholder for zero-key item */ |
Definition at line 210 of file ginblock.h.
| #define GIN_CAT_EMPTY_QUERY (-1) /* placeholder for full-scan query */ |
Definition at line 212 of file ginblock.h.
Definition at line 208 of file ginblock.h.
| #define GIN_CAT_NULL_ITEM 3 /* placeholder for null item */ |
Definition at line 211 of file ginblock.h.
Definition at line 209 of file ginblock.h.
| #define GIN_COMPRESSED (1 << 7) |
Definition at line 48 of file ginblock.h.
| #define GIN_CURRENT_VERSION 2 |
Definition at line 102 of file ginblock.h.
| #define GIN_DATA (1 << 0) |
Definition at line 41 of file ginblock.h.
| #define GIN_DELETED (1 << 2) |
Definition at line 43 of file ginblock.h.
| #define GIN_INCOMPLETE_SPLIT |
Definition at line 47 of file ginblock.h.
Definition at line 235 of file ginblock.h.
| #define GIN_LEAF (1 << 1) |
Definition at line 42 of file ginblock.h.
| #define GIN_LIST (1 << 4) |
Definition at line 45 of file ginblock.h.
Definition at line 46 of file ginblock.h.
| #define GIN_META (1 << 3) |
Definition at line 44 of file ginblock.h.
| #define GIN_METAPAGE_BLKNO (0) |
Definition at line 51 of file ginblock.h.
| #define GIN_ROOT_BLKNO (1) |
Definition at line 52 of file ginblock.h.
| #define GIN_TREE_POSTING ((OffsetNumber)0xffff) |
Definition at line 230 of file ginblock.h.
| #define GinCategoryOffset | ( | itup, | |
| ginstate | |||
| ) |
Definition at line 217 of file ginblock.h.
| #define GinDataLeafPageGetFreeSpace | ( | page | ) | PageGetExactFreeSpace(page) |
Definition at line 286 of file ginblock.h.
| #define GinDataLeafPageGetPostingList | ( | page | ) | (GinPostingList *) ((PageGetContents(page) + MAXALIGN(sizeof(ItemPointerData)))) |
Definition at line 278 of file ginblock.h.
| #define GinDataLeafPageGetPostingListSize | ( | page | ) | (((PageHeader) page)->pd_lower - MAXALIGN(SizeOfPageHeaderData) - MAXALIGN(sizeof(ItemPointerData))) |
Definition at line 280 of file ginblock.h.
| #define GinDataLeafPageIsEmpty | ( | page | ) | (GinPageIsCompressed(page) ? (GinDataLeafPageGetPostingListSize(page) == 0) : (GinPageGetOpaque(page)->maxoff < FirstOffsetNumber)) |
Definition at line 283 of file ginblock.h.
| #define GinDataPageGetData | ( | page | ) | (PageGetContents(page) + MAXALIGN(sizeof(ItemPointerData))) |
Definition at line 295 of file ginblock.h.
| #define GinDataPageGetPostingItem | ( | page, | |
| i | |||
| ) | ((PostingItem *) (GinDataPageGetData(page) + ((i)-1) * sizeof(PostingItem))) |
Definition at line 298 of file ginblock.h.
| #define GinDataPageGetRightBound | ( | page | ) | ((ItemPointer) PageGetContents(page)) |
Definition at line 288 of file ginblock.h.
| #define GinDataPageMaxDataSize |
Definition at line 319 of file ginblock.h.
| #define GinDataPageSetDataSize | ( | page, | |
| size | |||
| ) |
Definition at line 309 of file ginblock.h.
| #define GinGetDownlink | ( | itup | ) | GinItemPointerGetBlockNumber(&(itup)->t_tid) |
Definition at line 257 of file ginblock.h.
| #define GinGetNPosting | ( | itup | ) | GinItemPointerGetOffsetNumber(&(itup)->t_tid) |
Definition at line 228 of file ginblock.h.
| #define GinGetNullCategory | ( | itup, | |
| ginstate | |||
| ) | (*((GinNullCategory *) ((char*)(itup) + GinCategoryOffset(itup,ginstate)))) |
Definition at line 220 of file ginblock.h.
| #define GinGetPosting | ( | itup | ) | ((Pointer) ((char*)(itup) + GinGetPostingOffset(itup))) |
Definition at line 238 of file ginblock.h.
| #define GinGetPostingOffset | ( | itup | ) | (GinItemPointerGetBlockNumber(&(itup)->t_tid) & (~GIN_ITUP_COMPRESSED)) |
Definition at line 236 of file ginblock.h.
| #define GinGetPostingTree | ( | itup | ) | GinItemPointerGetBlockNumber(&(itup)->t_tid) |
Definition at line 233 of file ginblock.h.
| #define GinIsPostingTree | ( | itup | ) | (GinGetNPosting(itup) == GIN_TREE_POSTING) |
Definition at line 231 of file ginblock.h.
| #define GinItemPointerGetBlockNumber | ( | pointer | ) | (ItemPointerGetBlockNumberNoCheck(pointer)) |
Definition at line 143 of file ginblock.h.
| #define GinItemPointerGetOffsetNumber | ( | pointer | ) | (ItemPointerGetOffsetNumberNoCheck(pointer)) |
Definition at line 146 of file ginblock.h.
| #define GinItemPointerSetBlockNumber | ( | pointer, | |
| blkno | |||
| ) | (ItemPointerSetBlockNumber((pointer), (blkno))) |
Definition at line 149 of file ginblock.h.
| #define GinItemPointerSetOffsetNumber | ( | pointer, | |
| offnum | |||
| ) | (ItemPointerSetOffsetNumber((pointer), (offnum))) |
Definition at line 152 of file ginblock.h.
| #define GinItupIsCompressed | ( | itup | ) | ((GinItemPointerGetBlockNumber(&(itup)->t_tid) & GIN_ITUP_COMPRESSED) != 0) |
Definition at line 239 of file ginblock.h.
| #define GinListPageSize ( BLCKSZ - SizeOfPageHeaderData - MAXALIGN(sizeof(GinPageOpaqueData)) ) |
Definition at line 327 of file ginblock.h.
| #define GinMaxItemSize |
Definition at line 248 of file ginblock.h.
| #define GinNextPostingListSegment | ( | cur | ) | ((GinPostingList *) (((char *) (cur)) + SizeOfGinPostingList((cur)))) |
Definition at line 343 of file ginblock.h.
| #define GinNonLeafDataPageGetFreeSpace | ( | page | ) |
Definition at line 315 of file ginblock.h.
| #define GinPageGetDeleteXid | ( | page | ) | ( ((PageHeader) (page))->pd_prune_xid ) |
Definition at line 135 of file ginblock.h.
| #define GinPageGetMeta | ( | p | ) | ((GinMetaPageData *) PageGetContents(p)) |
Definition at line 104 of file ginblock.h.
| #define GinPageGetOpaque | ( | page | ) | ( (GinPageOpaque) PageGetSpecialPointer(page) ) |
Definition at line 110 of file ginblock.h.
| #define GinPageHasFullRow | ( | page | ) | ( (GinPageGetOpaque(page)->flags & GIN_LIST_FULLROW) != 0 ) |
Definition at line 119 of file ginblock.h.
| #define GinPageIsCompressed | ( | page | ) | ( (GinPageGetOpaque(page)->flags & GIN_COMPRESSED) != 0 ) |
Definition at line 121 of file ginblock.h.
| #define GinPageIsData | ( | page | ) | ( (GinPageGetOpaque(page)->flags & GIN_DATA) != 0 ) |
Definition at line 115 of file ginblock.h.
| #define GinPageIsDeleted | ( | page | ) | ( (GinPageGetOpaque(page)->flags & GIN_DELETED) != 0 ) |
Definition at line 124 of file ginblock.h.
| #define GinPageIsIncompleteSplit | ( | page | ) | ( (GinPageGetOpaque(page)->flags & GIN_INCOMPLETE_SPLIT) != 0 ) |
Definition at line 127 of file ginblock.h.
| #define GinPageIsLeaf | ( | page | ) | ( (GinPageGetOpaque(page)->flags & GIN_LEAF) != 0 ) |
Definition at line 112 of file ginblock.h.
| #define GinPageIsList | ( | page | ) | ( (GinPageGetOpaque(page)->flags & GIN_LIST) != 0 ) |
Definition at line 117 of file ginblock.h.
| #define GinPageRightMost | ( | page | ) | ( GinPageGetOpaque(page)->rightlink == InvalidBlockNumber) |
Definition at line 129 of file ginblock.h.
| #define GinPageSetCompressed | ( | page | ) | ( GinPageGetOpaque(page)->flags |= GIN_COMPRESSED ) |
Definition at line 122 of file ginblock.h.
| #define GinPageSetData | ( | page | ) | ( GinPageGetOpaque(page)->flags |= GIN_DATA ) |
Definition at line 116 of file ginblock.h.
| #define GinPageSetDeleted | ( | page | ) | ( GinPageGetOpaque(page)->flags |= GIN_DELETED) |
Definition at line 125 of file ginblock.h.
| #define GinPageSetDeleteXid | ( | page, | |
| xid | |||
| ) | ( ((PageHeader) (page))->pd_prune_xid = xid) |
Definition at line 136 of file ginblock.h.
| #define GinPageSetFullRow | ( | page | ) | ( GinPageGetOpaque(page)->flags |= GIN_LIST_FULLROW ) |
Definition at line 120 of file ginblock.h.
| #define GinPageSetLeaf | ( | page | ) | ( GinPageGetOpaque(page)->flags |= GIN_LEAF ) |
Definition at line 113 of file ginblock.h.
| #define GinPageSetList | ( | page | ) | ( GinPageGetOpaque(page)->flags |= GIN_LIST ) |
Definition at line 118 of file ginblock.h.
| #define GinPageSetNonDeleted | ( | page | ) | ( GinPageGetOpaque(page)->flags &= ~GIN_DELETED) |
Definition at line 126 of file ginblock.h.
| #define GinPageSetNonLeaf | ( | page | ) | ( GinPageGetOpaque(page)->flags &= ~GIN_LEAF ) |
Definition at line 114 of file ginblock.h.
| #define GinSetDownlink | ( | itup, | |
| blkno | |||
| ) | ItemPointerSet(&(itup)->t_tid, blkno, InvalidOffsetNumber) |
Definition at line 258 of file ginblock.h.
| #define GinSetNPosting | ( | itup, | |
| n | |||
| ) | ItemPointerSetOffsetNumber(&(itup)->t_tid,n) |
Definition at line 229 of file ginblock.h.
| #define GinSetNullCategory | ( | itup, | |
| ginstate, | |||
| c | |||
| ) | (*((GinNullCategory *) ((char*)(itup) + GinCategoryOffset(itup,ginstate))) = (c)) |
Definition at line 222 of file ginblock.h.
| #define GinSetPostingOffset | ( | itup, | |
| n | |||
| ) | ItemPointerSetBlockNumber(&(itup)->t_tid,(n)|GIN_ITUP_COMPRESSED) |
Definition at line 237 of file ginblock.h.
| #define GinSetPostingTree | ( | itup, | |
| blkno | |||
| ) | ( GinSetNPosting((itup),GIN_TREE_POSTING), ItemPointerSetBlockNumber(&(itup)->t_tid, blkno) ) |
Definition at line 232 of file ginblock.h.
| #define ItemPointerIsLossyPage | ( | p | ) |
Definition at line 175 of file ginblock.h.
| #define ItemPointerIsMin | ( | p | ) |
Definition at line 168 of file ginblock.h.
| #define ItemPointerSetLossyPage | ( | p, | |
| b | |||
| ) | ItemPointerSet((p), (b), (OffsetNumber)0xffff) |
Definition at line 173 of file ginblock.h.
| #define ItemPointerSetMax | ( | p | ) | ItemPointerSet((p), InvalidBlockNumber, (OffsetNumber)0xffff) |
Definition at line 171 of file ginblock.h.
| #define ItemPointerSetMin | ( | p | ) | ItemPointerSet((p), (BlockNumber)0, (OffsetNumber)0) |
Definition at line 166 of file ginblock.h.
| #define PostingItemGetBlockNumber | ( | pointer | ) | BlockIdGetBlockNumber(&(pointer)->child_blkno) |
Definition at line 189 of file ginblock.h.
| #define PostingItemSetBlockNumber | ( | pointer, | |
| blockNumber | |||
| ) | BlockIdSet(&((pointer)->child_blkno), (blockNumber)) |
Definition at line 192 of file ginblock.h.
| #define SizeOfGinPostingList | ( | plist | ) | (offsetof(GinPostingList, bytes) + SHORTALIGN((plist)->nbytes) ) |
Definition at line 342 of file ginblock.h.
Definition at line 206 of file ginblock.h.
Definition at line 39 of file ginblock.h.
Definition at line 801 of file ginvacuum.c.
References fb(), GinPageGetDeleteXid, GinPageIsDeleted, GlobalVisCheckRemovableXid(), PageIsNew(), and TransactionIdIsValid.
Referenced by GinNewBuffer(), and ginvacuumcleanup().