|
PostgreSQL Source Code git master
|
#include "postgres.h"#include "access/bufmask.h"#include "access/spgist_private.h"#include "access/spgxlog.h"#include "access/xlogutils.h"#include "storage/standby.h"#include "utils/memutils.h"
Go to the source code of this file.
Functions | |
| static void | fillFakeState (SpGistState *state, spgxlogState stateSrc) |
| static void | addOrReplaceTuple (Page page, const void *tuple, int size, OffsetNumber offset) |
| static void | spgRedoAddLeaf (XLogReaderState *record) |
| static void | spgRedoMoveLeafs (XLogReaderState *record) |
| static void | spgRedoAddNode (XLogReaderState *record) |
| static void | spgRedoSplitTuple (XLogReaderState *record) |
| static void | spgRedoPickSplit (XLogReaderState *record) |
| static void | spgRedoVacuumLeaf (XLogReaderState *record) |
| static void | spgRedoVacuumRoot (XLogReaderState *record) |
| static void | spgRedoVacuumRedirect (XLogReaderState *record) |
| void | spg_redo (XLogReaderState *record) |
| void | spg_xlog_startup (void) |
| void | spg_xlog_cleanup (void) |
| void | spg_mask (char *pagedata, BlockNumber blkno) |
Variables | |
| static MemoryContext | opCtx |
|
static |
Definition at line 50 of file spgxlog.c.
References Assert, elog, ERROR, fb(), PageAddItem, PageGetItem(), PageGetItemId(), PageGetMaxOffsetNumber(), PageIndexTupleDelete(), SPGIST_PLACEHOLDER, and SpGistPageGetOpaque.
Referenced by spgRedoAddLeaf(), spgRedoAddNode(), spgRedoMoveLeafs(), spgRedoPickSplit(), and spgRedoSplitTuple().
|
static |
Definition at line 35 of file spgxlog.c.
References fb(), spgxlogState::isBuild, palloc0(), spgxlogState::redirectXid, and SGDTSIZE.
Referenced by spgRedoAddNode(), spgRedoMoveLeafs(), spgRedoPickSplit(), and spgRedoVacuumLeaf().
| void spg_mask | ( | char * | pagedata, |
| BlockNumber | blkno | ||
| ) |
Definition at line 986 of file spgxlog.c.
References fb(), mask_page_hint_bits(), mask_page_lsn_and_checksum(), mask_unused_space(), and SizeOfPageHeaderData.
| void spg_redo | ( | XLogReaderState * | record | ) |
Definition at line 927 of file spgxlog.c.
References elog, fb(), MemoryContextReset(), MemoryContextSwitchTo(), opCtx, PANIC, spgRedoAddLeaf(), spgRedoAddNode(), spgRedoMoveLeafs(), spgRedoPickSplit(), spgRedoSplitTuple(), spgRedoVacuumLeaf(), spgRedoVacuumRedirect(), spgRedoVacuumRoot(), XLOG_SPGIST_ADD_LEAF, XLOG_SPGIST_ADD_NODE, XLOG_SPGIST_MOVE_LEAFS, XLOG_SPGIST_PICKSPLIT, XLOG_SPGIST_SPLIT_TUPLE, XLOG_SPGIST_VACUUM_LEAF, XLOG_SPGIST_VACUUM_REDIRECT, XLOG_SPGIST_VACUUM_ROOT, and XLogRecGetInfo.
Definition at line 976 of file spgxlog.c.
References fb(), MemoryContextDelete(), and opCtx.
Definition at line 968 of file spgxlog.c.
References ALLOCSET_DEFAULT_SIZES, AllocSetContextCreate, CurrentMemoryContext, and opCtx.
|
static |
Definition at line 74 of file spgxlog.c.
References addOrReplaceTuple(), Assert, BLK_NEEDS_REDO, BufferGetPage(), BufferIsValid(), elog, XLogReaderState::EndRecPtr, ERROR, fb(), InvalidOffsetNumber, MarkBufferDirty(), PageAddItem, PageGetItem(), PageGetItemId(), PageIndexTupleDelete(), PageSetLSN(), SGLT_GET_NEXTOFFSET, SGLT_SET_NEXTOFFSET, SPGIST_LEAF, SPGIST_NULLS, SpGistInitBuffer(), spgUpdateNodeLink(), UnlockReleaseBuffer(), XLogInitBufferForRedo(), XLogReadBufferForRedo(), XLogRecGetBlockTag(), and XLogRecGetData.
Referenced by spg_redo().
|
static |
Definition at line 282 of file spgxlog.c.
References addOrReplaceTuple(), Assert, BLK_NEEDS_REDO, BufferGetPage(), BufferIsValid(), elog, XLogReaderState::EndRecPtr, ERROR, fb(), fillFakeState(), InvalidBlockNumber, InvalidOffsetNumber, MarkBufferDirty(), PageAddItem, PageGetItem(), PageGetItemId(), PageIndexTupleDelete(), PageSetLSN(), spgFormDeadTuple(), SPGIST_PLACEHOLDER, SPGIST_REDIRECT, SpGistInitBuffer(), SpGistPageGetOpaque, spgUpdateNodeLink(), UnlockReleaseBuffer(), XLogInitBufferForRedo(), XLogReadBufferForRedo(), XLogRecGetBlockTag(), XLogRecGetData, and XLogRecHasBlockRef.
Referenced by spg_redo().
|
static |
Definition at line 170 of file spgxlog.c.
References addOrReplaceTuple(), BLK_NEEDS_REDO, BufferGetPage(), BufferIsValid(), XLogReaderState::EndRecPtr, fb(), fillFakeState(), i, MarkBufferDirty(), PageGetItem(), PageGetItemId(), PageSetLSN(), SizeOfSpgxlogMoveLeafs, SPGIST_LEAF, SPGIST_NULLS, SPGIST_PLACEHOLDER, SPGIST_REDIRECT, SpGistInitBuffer(), spgPageIndexMultiDelete(), spgUpdateNodeLink(), UnlockReleaseBuffer(), XLogInitBufferForRedo(), XLogReadBufferForRedo(), XLogRecGetBlockTag(), and XLogRecGetData.
Referenced by spg_redo().
|
static |
Definition at line 523 of file spgxlog.c.
References addOrReplaceTuple(), Assert, BLK_NEEDS_REDO, BufferGetPage(), BufferIsValid(), XLogReaderState::EndRecPtr, fb(), fillFakeState(), i, InvalidBlockNumber, InvalidBuffer, InvalidOffsetNumber, MarkBufferDirty(), PageGetItem(), PageGetItemId(), PageSetLSN(), SizeOfSpgxlogPickSplit, SPGIST_LEAF, SPGIST_NULLS, SPGIST_PLACEHOLDER, SPGIST_REDIRECT, SpGistInitBuffer(), spgPageIndexMultiDelete(), spgUpdateNodeLink(), UnlockReleaseBuffer(), XLogInitBufferForRedo(), XLogReadBufferForRedo(), XLogRecGetBlockTag(), XLogRecGetData, and XLogRecHasBlockRef.
Referenced by spg_redo().
|
static |
Definition at line 448 of file spgxlog.c.
References addOrReplaceTuple(), BLK_NEEDS_REDO, BufferGetPage(), BufferIsValid(), elog, XLogReaderState::EndRecPtr, ERROR, fb(), MarkBufferDirty(), PageAddItem, PageIndexTupleDelete(), PageSetLSN(), SpGistInitBuffer(), UnlockReleaseBuffer(), XLogInitBufferForRedo(), XLogReadBufferForRedo(), and XLogRecGetData.
Referenced by spg_redo().
|
static |
Definition at line 743 of file spgxlog.c.
References Assert, BLK_NEEDS_REDO, BufferGetPage(), BufferIsValid(), XLogReaderState::EndRecPtr, fb(), fillFakeState(), i, InvalidBlockNumber, InvalidOffsetNumber, MarkBufferDirty(), PageGetItem(), PageGetItemId(), PageSetLSN(), SGLT_SET_NEXTOFFSET, SizeOfSpgxlogVacuumLeaf, SPGIST_DEAD, SPGIST_LIVE, SPGIST_PLACEHOLDER, spgPageIndexMultiDelete(), SpGistLeafTupleData::tupstate, UnlockReleaseBuffer(), XLogReadBufferForRedo(), and XLogRecGetData.
Referenced by spg_redo().
|
static |
Definition at line 852 of file spgxlog.c.
References Assert, BLK_NEEDS_REDO, BufferGetPage(), BufferIsValid(), XLogReaderState::EndRecPtr, fb(), i, InHotStandby, InvalidOffsetNumber, ItemPointerSetInvalid(), MarkBufferDirty(), SpGistPageOpaqueData::nPlaceholder, SpGistPageOpaqueData::nRedirection, spgxlogVacuumRedirect::offsets, PageGetItem(), PageGetItemId(), PageGetMaxOffsetNumber(), PageIndexMultiDelete(), PageSetLSN(), palloc_array, pfree(), ResolveRecoveryConflictWithSnapshot(), SPGIST_PLACEHOLDER, SPGIST_REDIRECT, SpGistPageGetOpaque, UnlockReleaseBuffer(), XLogReadBufferForRedo(), XLogRecGetBlockTag(), and XLogRecGetData.
Referenced by spg_redo().
|
static |
Definition at line 826 of file spgxlog.c.
References BLK_NEEDS_REDO, BufferGetPage(), BufferIsValid(), XLogReaderState::EndRecPtr, fb(), MarkBufferDirty(), spgxlogVacuumRoot::offsets, PageIndexMultiDelete(), PageSetLSN(), UnlockReleaseBuffer(), XLogReadBufferForRedo(), and XLogRecGetData.
Referenced by spg_redo().
|
static |
Definition at line 25 of file spgxlog.c.
Referenced by spg_redo(), spg_xlog_cleanup(), and spg_xlog_startup().