PostgreSQL Source Code
git master
|
#include "access/ginblock.h"
#include "access/itup.h"
#include "access/xlogreader.h"
#include "lib/stringinfo.h"
#include "storage/off.h"
Go to the source code of this file.
Data Structures | |
struct | ginxlogCreatePostingTree |
struct | ginxlogInsert |
struct | ginxlogInsertEntry |
struct | ginxlogRecompressDataLeaf |
struct | ginxlogSegmentAction |
struct | ginxlogInsertDataInternal |
struct | ginxlogSplit |
struct | ginxlogVacuumDataLeafPage |
struct | ginxlogDeletePage |
struct | ginxlogUpdateMeta |
struct | ginxlogInsertListPage |
struct | ginxlogDeleteListPages |
Macros | |
#define | XLOG_GIN_CREATE_PTREE 0x10 |
#define | XLOG_GIN_INSERT 0x20 |
#define | GIN_SEGMENT_UNMODIFIED 0 /* no action (not used in WAL records) */ |
#define | GIN_SEGMENT_DELETE 1 /* a whole segment is removed */ |
#define | GIN_SEGMENT_INSERT 2 /* a whole segment is added */ |
#define | GIN_SEGMENT_REPLACE 3 /* a segment is replaced */ |
#define | GIN_SEGMENT_ADDITEMS 4 /* items are added to existing segment */ |
#define | XLOG_GIN_SPLIT 0x30 |
#define | GIN_INSERT_ISDATA 0x01 /* for both insert and split records */ |
#define | GIN_INSERT_ISLEAF 0x02 /* ditto */ |
#define | GIN_SPLIT_ROOT 0x04 /* only for split records */ |
#define | XLOG_GIN_VACUUM_PAGE 0x40 |
#define | XLOG_GIN_VACUUM_DATA_LEAF_PAGE 0x90 |
#define | XLOG_GIN_DELETE_PAGE 0x50 |
#define | XLOG_GIN_UPDATE_META_PAGE 0x60 |
#define | XLOG_GIN_INSERT_LISTPAGE 0x70 |
#define | XLOG_GIN_DELETE_LISTPAGE 0x80 |
#define | GIN_NDELETE_AT_ONCE Min(16, XLR_MAX_BLOCK_ID - 1) |
Typedefs | |
typedef struct ginxlogCreatePostingTree | ginxlogCreatePostingTree |
typedef struct ginxlogSplit | ginxlogSplit |
typedef struct ginxlogVacuumDataLeafPage | ginxlogVacuumDataLeafPage |
typedef struct ginxlogDeletePage | ginxlogDeletePage |
typedef struct ginxlogUpdateMeta | ginxlogUpdateMeta |
typedef struct ginxlogInsertListPage | ginxlogInsertListPage |
typedef struct ginxlogDeleteListPages | ginxlogDeleteListPages |
Functions | |
void | gin_redo (XLogReaderState *record) |
void | gin_desc (StringInfo buf, XLogReaderState *record) |
const char * | gin_identify (uint8 info) |
void | gin_xlog_startup (void) |
void | gin_xlog_cleanup (void) |
void | gin_mask (char *pagedata, BlockNumber blkno) |
#define GIN_NDELETE_AT_ONCE Min(16, XLR_MAX_BLOCK_ID - 1) |
#define GIN_SEGMENT_ADDITEMS 4 /* items are added to existing segment */ |
#define GIN_SEGMENT_DELETE 1 /* a whole segment is removed */ |
#define GIN_SEGMENT_INSERT 2 /* a whole segment is added */ |
#define GIN_SEGMENT_UNMODIFIED 0 /* no action (not used in WAL records) */ |
typedef struct ginxlogCreatePostingTree ginxlogCreatePostingTree |
typedef struct ginxlogDeleteListPages ginxlogDeleteListPages |
typedef struct ginxlogDeletePage ginxlogDeletePage |
typedef struct ginxlogInsertListPage ginxlogInsertListPage |
typedef struct ginxlogSplit ginxlogSplit |
typedef struct ginxlogUpdateMeta ginxlogUpdateMeta |
typedef struct ginxlogVacuumDataLeafPage ginxlogVacuumDataLeafPage |
void gin_desc | ( | StringInfo | buf, |
XLogReaderState * | record | ||
) |
Definition at line 72 of file gindesc.c.
References appendStringInfo(), appendStringInfoString(), BlockIdGetBlockNumber(), buf, ginxlogVacuumDataLeafPage::data, desc_recompress_leaf(), ginxlogInsert::flags, ginxlogSplit::flags, GIN_INSERT_ISDATA, GIN_INSERT_ISLEAF, GIN_SPLIT_ROOT, ItemPointerGetBlockNumber(), ItemPointerGetOffsetNumber(), PostingItem::key, ginxlogInsertDataInternal::newitem, PostingItemGetBlockNumber, XLOG_GIN_CREATE_PTREE, XLOG_GIN_DELETE_LISTPAGE, XLOG_GIN_DELETE_PAGE, XLOG_GIN_INSERT, XLOG_GIN_INSERT_LISTPAGE, XLOG_GIN_SPLIT, XLOG_GIN_UPDATE_META_PAGE, XLOG_GIN_VACUUM_DATA_LEAF_PAGE, XLOG_GIN_VACUUM_PAGE, XLogRecBlockImageApply, XLogRecGetBlockData(), XLogRecGetData, XLogRecGetInfo, XLogRecHasBlockImage, and XLR_INFO_MASK.
const char* gin_identify | ( | uint8 | info | ) |
Definition at line 180 of file gindesc.c.
References XLOG_GIN_CREATE_PTREE, XLOG_GIN_DELETE_LISTPAGE, XLOG_GIN_DELETE_PAGE, XLOG_GIN_INSERT, XLOG_GIN_INSERT_LISTPAGE, XLOG_GIN_SPLIT, XLOG_GIN_UPDATE_META_PAGE, XLOG_GIN_VACUUM_DATA_LEAF_PAGE, XLOG_GIN_VACUUM_PAGE, and XLR_INFO_MASK.
void gin_mask | ( | char * | pagedata, |
BlockNumber | blkno | ||
) |
Definition at line 793 of file ginxlog.c.
References GinPageOpaqueData::flags, GIN_DELETED, GinPageGetOpaque, mask_page_content(), mask_page_hint_bits(), mask_page_lsn_and_checksum(), mask_unused_space(), PageHeaderData::pd_lower, and SizeOfPageHeaderData.
void gin_redo | ( | XLogReaderState * | record | ) |
Definition at line 726 of file ginxlog.c.
References elog, ginRedoCreatePTree(), ginRedoDeleteListPages(), ginRedoDeletePage(), ginRedoInsert(), ginRedoInsertListPage(), ginRedoSplit(), ginRedoUpdateMetapage(), ginRedoVacuumDataLeafPage(), ginRedoVacuumPage(), MemoryContextReset(), MemoryContextSwitchTo(), opCtx, PANIC, XLOG_GIN_CREATE_PTREE, XLOG_GIN_DELETE_LISTPAGE, XLOG_GIN_DELETE_PAGE, XLOG_GIN_INSERT, XLOG_GIN_INSERT_LISTPAGE, XLOG_GIN_SPLIT, XLOG_GIN_UPDATE_META_PAGE, XLOG_GIN_VACUUM_DATA_LEAF_PAGE, XLOG_GIN_VACUUM_PAGE, XLogRecGetInfo, and XLR_INFO_MASK.
void gin_xlog_cleanup | ( | void | ) |
void gin_xlog_startup | ( | void | ) |
Definition at line 775 of file ginxlog.c.
References ALLOCSET_DEFAULT_SIZES, AllocSetContextCreate, CurrentMemoryContext, and opCtx.