PostgreSQL Source Code
git master
|
Go to the source code of this file.
Data Structures | |
struct | xl_hash_insert |
struct | xl_hash_add_ovfl_page |
struct | xl_hash_split_allocate_page |
struct | xl_hash_split_complete |
struct | xl_hash_move_page_contents |
struct | xl_hash_squeeze_page |
struct | xl_hash_delete |
struct | xl_hash_update_meta_page |
struct | xl_hash_init_meta_page |
struct | xl_hash_init_bitmap_page |
struct | xl_hash_vacuum_one_page |
Macros | |
#define | HASH_XLOG_FREE_OVFL_BUFS 6 |
#define | XLOG_HASH_INIT_META_PAGE 0x00 /* initialize the meta page */ |
#define | XLOG_HASH_INIT_BITMAP_PAGE 0x10 /* initialize the bitmap page */ |
#define | XLOG_HASH_INSERT 0x20 /* add index tuple without split */ |
#define | XLOG_HASH_ADD_OVFL_PAGE 0x30 /* add overflow page */ |
#define | XLOG_HASH_SPLIT_ALLOCATE_PAGE 0x40 /* allocate new page for split */ |
#define | XLOG_HASH_SPLIT_PAGE 0x50 /* split page */ |
#define | XLOG_HASH_SPLIT_COMPLETE 0x60 /* completion of split operation */ |
#define | XLOG_HASH_MOVE_PAGE_CONTENTS |
#define | XLOG_HASH_SQUEEZE_PAGE |
#define | XLOG_HASH_DELETE 0x90 /* delete index tuples from a page */ |
#define | XLOG_HASH_SPLIT_CLEANUP |
#define | XLOG_HASH_UPDATE_META_PAGE 0xB0 /* update meta page after vacuum */ |
#define | XLOG_HASH_VACUUM_ONE_PAGE |
#define | XLH_SPLIT_META_UPDATE_MASKS (1<<0) |
#define | XLH_SPLIT_META_UPDATE_SPLITPOINT (1<<1) |
#define | SizeOfHashInsert (offsetof(xl_hash_insert, offnum) + sizeof(OffsetNumber)) |
#define | SizeOfHashAddOvflPage (offsetof(xl_hash_add_ovfl_page, bmpage_found) + sizeof(bool)) |
#define | SizeOfHashSplitAllocPage (offsetof(xl_hash_split_allocate_page, flags) + sizeof(uint8)) |
#define | SizeOfHashSplitComplete (offsetof(xl_hash_split_complete, new_bucket_flag) + sizeof(uint16)) |
#define | SizeOfHashMovePageContents (offsetof(xl_hash_move_page_contents, is_prim_bucket_same_wrt) + sizeof(bool)) |
#define | SizeOfHashSqueezePage (offsetof(xl_hash_squeeze_page, is_prev_bucket_same_wrt) + sizeof(bool)) |
#define | SizeOfHashDelete (offsetof(xl_hash_delete, is_primary_bucket_page) + sizeof(bool)) |
#define | SizeOfHashUpdateMetaPage (offsetof(xl_hash_update_meta_page, ntuples) + sizeof(double)) |
#define | SizeOfHashInitMetaPage (offsetof(xl_hash_init_meta_page, ffactor) + sizeof(uint16)) |
#define | SizeOfHashInitBitmapPage (offsetof(xl_hash_init_bitmap_page, bmsize) + sizeof(uint16)) |
#define | SizeOfHashVacuumOnePage offsetof(xl_hash_vacuum_one_page, offsets) |
Typedefs | |
typedef struct xl_hash_insert | xl_hash_insert |
typedef struct xl_hash_add_ovfl_page | xl_hash_add_ovfl_page |
typedef struct xl_hash_split_allocate_page | xl_hash_split_allocate_page |
typedef struct xl_hash_split_complete | xl_hash_split_complete |
typedef struct xl_hash_move_page_contents | xl_hash_move_page_contents |
typedef struct xl_hash_squeeze_page | xl_hash_squeeze_page |
typedef struct xl_hash_delete | xl_hash_delete |
typedef struct xl_hash_update_meta_page | xl_hash_update_meta_page |
typedef struct xl_hash_init_meta_page | xl_hash_init_meta_page |
typedef struct xl_hash_init_bitmap_page | xl_hash_init_bitmap_page |
typedef struct xl_hash_vacuum_one_page | xl_hash_vacuum_one_page |
Functions | |
void | hash_redo (XLogReaderState *record) |
void | hash_desc (StringInfo buf, XLogReaderState *record) |
const char * | hash_identify (uint8 info) |
void | hash_mask (char *pagedata, BlockNumber blkno) |
#define HASH_XLOG_FREE_OVFL_BUFS 6 |
Definition at line 22 of file hash_xlog.h.
#define SizeOfHashAddOvflPage (offsetof(xl_hash_add_ovfl_page, bmpage_found) + sizeof(bool)) |
Definition at line 80 of file hash_xlog.h.
#define SizeOfHashDelete (offsetof(xl_hash_delete, is_primary_bucket_page) + sizeof(bool)) |
Definition at line 186 of file hash_xlog.h.
#define SizeOfHashInitBitmapPage (offsetof(xl_hash_init_bitmap_page, bmsize) + sizeof(uint16)) |
Definition at line 233 of file hash_xlog.h.
#define SizeOfHashInitMetaPage (offsetof(xl_hash_init_meta_page, ffactor) + sizeof(uint16)) |
Definition at line 217 of file hash_xlog.h.
#define SizeOfHashInsert (offsetof(xl_hash_insert, offnum) + sizeof(OffsetNumber)) |
Definition at line 61 of file hash_xlog.h.
#define SizeOfHashMovePageContents (offsetof(xl_hash_move_page_contents, is_prim_bucket_same_wrt) + sizeof(bool)) |
Definition at line 138 of file hash_xlog.h.
#define SizeOfHashSplitAllocPage (offsetof(xl_hash_split_allocate_page, flags) + sizeof(uint8)) |
Definition at line 100 of file hash_xlog.h.
#define SizeOfHashSplitComplete (offsetof(xl_hash_split_complete, new_bucket_flag) + sizeof(uint16)) |
Definition at line 117 of file hash_xlog.h.
#define SizeOfHashSqueezePage (offsetof(xl_hash_squeeze_page, is_prev_bucket_same_wrt) + sizeof(bool)) |
Definition at line 167 of file hash_xlog.h.
#define SizeOfHashUpdateMetaPage (offsetof(xl_hash_update_meta_page, ntuples) + sizeof(double)) |
Definition at line 200 of file hash_xlog.h.
#define SizeOfHashVacuumOnePage offsetof(xl_hash_vacuum_one_page, offsets) |
Definition at line 256 of file hash_xlog.h.
#define XLH_SPLIT_META_UPDATE_MASKS (1<<0) |
Definition at line 45 of file hash_xlog.h.
#define XLH_SPLIT_META_UPDATE_SPLITPOINT (1<<1) |
Definition at line 46 of file hash_xlog.h.
#define XLOG_HASH_ADD_OVFL_PAGE 0x30 /* add overflow page */ |
Definition at line 30 of file hash_xlog.h.
Definition at line 36 of file hash_xlog.h.
#define XLOG_HASH_INIT_BITMAP_PAGE 0x10 /* initialize the bitmap page */ |
Definition at line 28 of file hash_xlog.h.
#define XLOG_HASH_INIT_META_PAGE 0x00 /* initialize the meta page */ |
Definition at line 27 of file hash_xlog.h.
#define XLOG_HASH_INSERT 0x20 /* add index tuple without split */ |
Definition at line 29 of file hash_xlog.h.
#define XLOG_HASH_MOVE_PAGE_CONTENTS |
Definition at line 34 of file hash_xlog.h.
#define XLOG_HASH_SPLIT_ALLOCATE_PAGE 0x40 /* allocate new page for split */ |
Definition at line 31 of file hash_xlog.h.
#define XLOG_HASH_SPLIT_CLEANUP |
Definition at line 37 of file hash_xlog.h.
#define XLOG_HASH_SPLIT_COMPLETE 0x60 /* completion of split operation */ |
Definition at line 33 of file hash_xlog.h.
#define XLOG_HASH_SPLIT_PAGE 0x50 /* split page */ |
Definition at line 32 of file hash_xlog.h.
#define XLOG_HASH_SQUEEZE_PAGE |
Definition at line 35 of file hash_xlog.h.
#define XLOG_HASH_UPDATE_META_PAGE 0xB0 /* update meta page after vacuum */ |
Definition at line 38 of file hash_xlog.h.
#define XLOG_HASH_VACUUM_ONE_PAGE |
Definition at line 40 of file hash_xlog.h.
typedef struct xl_hash_add_ovfl_page xl_hash_add_ovfl_page |
typedef struct xl_hash_delete xl_hash_delete |
typedef struct xl_hash_init_bitmap_page xl_hash_init_bitmap_page |
typedef struct xl_hash_init_meta_page xl_hash_init_meta_page |
typedef struct xl_hash_insert xl_hash_insert |
typedef struct xl_hash_move_page_contents xl_hash_move_page_contents |
typedef struct xl_hash_split_allocate_page xl_hash_split_allocate_page |
typedef struct xl_hash_split_complete xl_hash_split_complete |
typedef struct xl_hash_squeeze_page xl_hash_squeeze_page |
typedef struct xl_hash_update_meta_page xl_hash_update_meta_page |
typedef struct xl_hash_vacuum_one_page xl_hash_vacuum_one_page |
void hash_desc | ( | StringInfo | buf, |
XLogReaderState * | record | ||
) |
Definition at line 20 of file hashdesc.c.
References appendStringInfo(), xl_hash_add_ovfl_page::bmpage_found, xl_hash_add_ovfl_page::bmsize, xl_hash_init_bitmap_page::bmsize, buf, xl_hash_delete::clear_dead_marking, xl_hash_init_meta_page::ffactor, xl_hash_split_allocate_page::flags, xl_hash_move_page_contents::is_prim_bucket_same_wrt, xl_hash_squeeze_page::is_prim_bucket_same_wrt, xl_hash_delete::is_primary_bucket_page, xl_hash_vacuum_one_page::isCatalogRel, xl_hash_split_allocate_page::new_bucket, xl_hash_split_complete::new_bucket_flag, xl_hash_squeeze_page::nextblkno, xl_hash_update_meta_page::ntuples, xl_hash_vacuum_one_page::ntuples, xl_hash_move_page_contents::ntups, xl_hash_squeeze_page::ntups, xl_hash_init_meta_page::num_tuples, xl_hash_insert::offnum, xl_hash_split_complete::old_bucket_flag, xl_hash_squeeze_page::prevblkno, xl_hash_vacuum_one_page::snapshotConflictHorizon, XLH_SPLIT_META_UPDATE_MASKS, XLH_SPLIT_META_UPDATE_SPLITPOINT, XLOG_HASH_ADD_OVFL_PAGE, XLOG_HASH_DELETE, XLOG_HASH_INIT_BITMAP_PAGE, XLOG_HASH_INIT_META_PAGE, XLOG_HASH_INSERT, XLOG_HASH_MOVE_PAGE_CONTENTS, XLOG_HASH_SPLIT_ALLOCATE_PAGE, XLOG_HASH_SPLIT_COMPLETE, XLOG_HASH_SQUEEZE_PAGE, XLOG_HASH_UPDATE_META_PAGE, XLOG_HASH_VACUUM_ONE_PAGE, XLogRecGetData, XLogRecGetInfo, and XLR_INFO_MASK.
const char* hash_identify | ( | uint8 | info | ) |
Definition at line 126 of file hashdesc.c.
References XLOG_HASH_ADD_OVFL_PAGE, XLOG_HASH_DELETE, XLOG_HASH_INIT_BITMAP_PAGE, XLOG_HASH_INIT_META_PAGE, XLOG_HASH_INSERT, XLOG_HASH_MOVE_PAGE_CONTENTS, XLOG_HASH_SPLIT_ALLOCATE_PAGE, XLOG_HASH_SPLIT_CLEANUP, XLOG_HASH_SPLIT_COMPLETE, XLOG_HASH_SPLIT_PAGE, XLOG_HASH_SQUEEZE_PAGE, XLOG_HASH_UPDATE_META_PAGE, XLOG_HASH_VACUUM_ONE_PAGE, and XLR_INFO_MASK.
void hash_mask | ( | char * | pagedata, |
BlockNumber | blkno | ||
) |
Definition at line 1121 of file hash_xlog.c.
References HashPageOpaqueData::hasho_flag, HashPageGetOpaque, LH_BUCKET_PAGE, LH_OVERFLOW_PAGE, LH_PAGE_HAS_DEAD_TUPLES, LH_PAGE_TYPE, LH_UNUSED_PAGE, mask_lp_flags(), mask_page_content(), mask_page_hint_bits(), mask_page_lsn_and_checksum(), and mask_unused_space().
void hash_redo | ( | XLogReaderState * | record | ) |
Definition at line 1067 of file hash_xlog.c.
References elog, hash_xlog_add_ovfl_page(), hash_xlog_delete(), hash_xlog_init_bitmap_page(), hash_xlog_init_meta_page(), hash_xlog_insert(), hash_xlog_move_page_contents(), hash_xlog_split_allocate_page(), hash_xlog_split_cleanup(), hash_xlog_split_complete(), hash_xlog_split_page(), hash_xlog_squeeze_page(), hash_xlog_update_meta_page(), hash_xlog_vacuum_one_page(), PANIC, XLOG_HASH_ADD_OVFL_PAGE, XLOG_HASH_DELETE, XLOG_HASH_INIT_BITMAP_PAGE, XLOG_HASH_INIT_META_PAGE, XLOG_HASH_INSERT, XLOG_HASH_MOVE_PAGE_CONTENTS, XLOG_HASH_SPLIT_ALLOCATE_PAGE, XLOG_HASH_SPLIT_CLEANUP, XLOG_HASH_SPLIT_COMPLETE, XLOG_HASH_SPLIT_PAGE, XLOG_HASH_SQUEEZE_PAGE, XLOG_HASH_UPDATE_META_PAGE, XLOG_HASH_VACUUM_ONE_PAGE, XLogRecGetInfo, and XLR_INFO_MASK.