PostgreSQL Source Code git master
|
#include "postgres.h"
#include "access/bufmask.h"
#include "access/gist_private.h"
#include "access/gistxlog.h"
#include "access/transam.h"
#include "access/xloginsert.h"
#include "access/xlogutils.h"
#include "storage/standby.h"
#include "utils/memutils.h"
#include "utils/rel.h"
Go to the source code of this file.
Variables | |
static MemoryContext | opCtx |
|
static |
Definition at line 223 of file gistxlog.c.
References Assert, i, IndexTupleSize, len, and palloc().
Referenced by gistRedoPageSplitRecord().
void gist_mask | ( | char * | pagedata, |
BlockNumber | blkno | ||
) |
Definition at line 453 of file gistxlog.c.
References GistClearPageHasGarbage, GistMarkFollowRight, GistPageIsLeaf, GistPageSetNSN, mask_lp_flags(), MASK_MARKER, mask_page_hint_bits(), mask_page_lsn_and_checksum(), and mask_unused_space().
void gist_redo | ( | XLogReaderState * | record | ) |
Definition at line 397 of file gistxlog.c.
References elog, gistRedoDeleteRecord(), gistRedoPageDelete(), gistRedoPageReuse(), gistRedoPageSplitRecord(), gistRedoPageUpdateRecord(), MemoryContextReset(), MemoryContextSwitchTo(), opCtx, PANIC, XLOG_GIST_ASSIGN_LSN, XLOG_GIST_DELETE, XLOG_GIST_PAGE_DELETE, XLOG_GIST_PAGE_REUSE, XLOG_GIST_PAGE_SPLIT, XLOG_GIST_PAGE_UPDATE, and XLogRecGetInfo.
void gist_xlog_cleanup | ( | void | ) |
void gist_xlog_startup | ( | void | ) |
|
static |
Definition at line 40 of file gistxlog.c.
References generate_unaccent_rules::action, BLK_NEEDS_REDO, BLK_RESTORED, BufferGetPage(), BufferIsValid(), XLogReaderState::EndRecPtr, GistClearFollowRight, GistPageSetNSN, MarkBufferDirty(), PageSetLSN(), UnlockReleaseBuffer(), and XLogReadBufferForRedo().
Referenced by gistRedoPageSplitRecord(), and gistRedoPageUpdateRecord().
|
static |
Definition at line 172 of file gistxlog.c.
References BLK_NEEDS_REDO, BufferGetPage(), BufferIsValid(), XLogReaderState::EndRecPtr, GistClearPageHasGarbage, GistMarkTuplesDeleted, InHotStandby, gistxlogDelete::isCatalogRel, MarkBufferDirty(), gistxlogDelete::ntodelete, gistxlogDelete::offsets, PageIndexMultiDelete(), PageSetLSN(), ResolveRecoveryConflictWithSnapshot(), gistxlogDelete::snapshotConflictHorizon, UnlockReleaseBuffer(), XLogReadBufferForRedo(), XLogRecGetBlockTag(), and XLogRecGetData.
Referenced by gist_redo().
|
static |
Definition at line 342 of file gistxlog.c.
References BLK_NEEDS_REDO, BufferGetPage(), BufferIsValid(), gistxlogPageDelete::deleteXid, gistxlogPageDelete::downlinkOffset, XLogReaderState::EndRecPtr, GistPageSetDeleted(), MarkBufferDirty(), PageIndexTupleDelete(), PageSetLSN(), UnlockReleaseBuffer(), XLogReadBufferForRedo(), and XLogRecGetData.
Referenced by gist_redo().
|
static |
Definition at line 376 of file gistxlog.c.
References InHotStandby, gistxlogPageReuse::isCatalogRel, gistxlogPageReuse::locator, ResolveRecoveryConflictWithSnapshotFullXid(), gistxlogPageReuse::snapshotConflictHorizon, and XLogRecGetData.
Referenced by gist_redo().
|
static |
Definition at line 247 of file gistxlog.c.
References Assert, BufferGetPage(), data, decodePageSplitRecord(), XLogReaderState::EndRecPtr, F_LEAF, FirstOffsetNumber, GIST_ROOT_BLKNO, GistClearFollowRight, gistfillbuffer(), GISTInitBuffer(), GistMarkFollowRight, GistPageGetOpaque, GistPageSetNSN, gistRedoClearFollowRight(), i, InvalidBlockNumber, InvalidBuffer, MarkBufferDirty(), gistxlogPageSplit::markfollowright, gistxlogPageSplit::npage, gistxlogPageSplit::origleaf, gistxlogPageSplit::orignsn, gistxlogPageSplit::origrlink, PageSetLSN(), UnlockReleaseBuffer(), XLogInitBufferForRedo(), XLogRecGetBlockData(), XLogRecGetBlockTag(), XLogRecGetData, and XLogRecHasBlockRef.
Referenced by gist_redo().
|
static |
Definition at line 70 of file gistxlog.c.
References Assert, BLK_NEEDS_REDO, BufferGetPage(), BufferIsValid(), data, elog, XLogReaderState::EndRecPtr, ERROR, FirstOffsetNumber, GistMarkTuplesDeleted, GistPageIsLeaf, gistRedoClearFollowRight(), IndexTupleSize, InvalidOffsetNumber, MarkBufferDirty(), gistxlogPageUpdate::ntodelete, gistxlogPageUpdate::ntoinsert, OffsetNumberNext, PageAddItem, PageGetMaxOffsetNumber(), PageIndexMultiDelete(), PageIndexTupleOverwrite(), PageIsEmpty(), PageSetLSN(), PG_USED_FOR_ASSERTS_ONLY, UnlockReleaseBuffer(), XLogReadBufferForRedo(), XLogRecGetBlockData(), XLogRecGetData, and XLogRecHasBlockRef.
Referenced by gist_redo().
XLogRecPtr gistXLogAssignLSN | ( | void | ) |
Definition at line 576 of file gistxlog.c.
References XLOG_GIST_ASSIGN_LSN, XLOG_MARK_UNIMPORTANT, XLogBeginInsert(), XLogInsert(), XLogRegisterData(), and XLogSetRecordFlags().
Referenced by gistGetFakeLSN().
XLogRecPtr gistXLogDelete | ( | Buffer | buffer, |
OffsetNumber * | todelete, | ||
int | ntodelete, | ||
TransactionId | snapshotConflictHorizon, | ||
Relation | heaprel | ||
) |
Definition at line 670 of file gistxlog.c.
References gistxlogDelete::isCatalogRel, gistxlogDelete::ntodelete, REGBUF_STANDARD, RelationIsAccessibleInLogicalDecoding, SizeOfGistxlogDelete, gistxlogDelete::snapshotConflictHorizon, XLOG_GIST_DELETE, XLogBeginInsert(), XLogInsert(), XLogRegisterBuffer(), and XLogRegisterData().
Referenced by gistprunepage().
XLogRecPtr gistXLogPageDelete | ( | Buffer | buffer, |
FullTransactionId | xid, | ||
Buffer | parentBuffer, | ||
OffsetNumber | downlinkOffset | ||
) |
Definition at line 552 of file gistxlog.c.
References gistxlogPageDelete::deleteXid, gistxlogPageDelete::downlinkOffset, REGBUF_STANDARD, SizeOfGistxlogPageDelete, XLOG_GIST_PAGE_DELETE, XLogBeginInsert(), XLogInsert(), XLogRegisterBuffer(), and XLogRegisterData().
Referenced by gistdeletepage().
void gistXLogPageReuse | ( | Relation | rel, |
Relation | heaprel, | ||
BlockNumber | blkno, | ||
FullTransactionId | deleteXid | ||
) |
Definition at line 594 of file gistxlog.c.
References gistxlogPageReuse::block, gistxlogPageReuse::isCatalogRel, gistxlogPageReuse::locator, RelationData::rd_locator, RelationIsAccessibleInLogicalDecoding, SizeOfGistxlogPageReuse, gistxlogPageReuse::snapshotConflictHorizon, XLOG_GIST_PAGE_REUSE, XLogBeginInsert(), XLogInsert(), and XLogRegisterData().
Referenced by gistNewBuffer().
XLogRecPtr gistXLogSplit | ( | bool | page_is_leaf, |
SplitPageLayout * | dist, | ||
BlockNumber | origrlink, | ||
GistNSN | orignsn, | ||
Buffer | leftchildbuf, | ||
bool | markfollowright | ||
) |
Definition at line 495 of file gistxlog.c.
References SplitPageLayout::block, SplitPageLayout::buffer, BufferIsValid(), i, SplitPageLayout::lenlist, SplitPageLayout::list, gistxlogPageSplit::markfollowright, SplitPageLayout::next, gistxlogPageSplit::npage, gistxlogPage::num, gistxlogPageSplit::origleaf, gistxlogPageSplit::orignsn, gistxlogPageSplit::origrlink, REGBUF_STANDARD, REGBUF_WILL_INIT, XLOG_GIST_PAGE_SPLIT, XLogBeginInsert(), XLogInsert(), XLogRegisterBufData(), XLogRegisterBuffer(), and XLogRegisterData().
Referenced by gistplacetopage().
XLogRecPtr gistXLogUpdate | ( | Buffer | buffer, |
OffsetNumber * | todelete, | ||
int | ntodelete, | ||
IndexTuple * | itup, | ||
int | ituplen, | ||
Buffer | leftchildbuf | ||
) |
Definition at line 629 of file gistxlog.c.
References BufferIsValid(), i, IndexTupleSize, gistxlogPageUpdate::ntodelete, gistxlogPageUpdate::ntoinsert, REGBUF_STANDARD, XLOG_GIST_PAGE_UPDATE, XLogBeginInsert(), XLogInsert(), XLogRegisterBufData(), XLogRegisterBuffer(), and XLogRegisterData().
Referenced by gistplacetopage(), and gistvacuumpage().
|
static |
Definition at line 26 of file gistxlog.c.
Referenced by gist_redo(), gist_xlog_cleanup(), and gist_xlog_startup().