PostgreSQL Source Code
git master
|
#include "postgres.h"
#include "access/bufmask.h"
#include "access/generic_xlog.h"
#include "access/xlogutils.h"
#include "miscadmin.h"
#include "utils/memutils.h"
Go to the source code of this file.
Data Structures | |
struct | PageData |
struct | GenericXLogState |
Macros | |
#define | FRAGMENT_HEADER_SIZE (2 * sizeof(OffsetNumber)) |
#define | MATCH_THRESHOLD FRAGMENT_HEADER_SIZE |
#define | MAX_DELTA_SIZE (BLCKSZ + 2 * FRAGMENT_HEADER_SIZE) |
Functions | |
static void | writeFragment (PageData *pageData, OffsetNumber offset, OffsetNumber length, const char *data) |
static void | computeRegionDelta (PageData *pageData, const char *curpage, const char *targetpage, int targetStart, int targetEnd, int validStart, int validEnd) |
static void | computeDelta (PageData *pageData, Page curpage, Page targetpage) |
static void | applyPageRedo (Page page, const char *delta, Size deltaSize) |
GenericXLogState * | GenericXLogStart (Relation relation) |
Page | GenericXLogRegisterBuffer (GenericXLogState *state, Buffer buffer, int flags) |
XLogRecPtr | GenericXLogFinish (GenericXLogState *state) |
void | GenericXLogAbort (GenericXLogState *state) |
void | generic_redo (XLogReaderState *record) |
void | generic_mask (char *page, BlockNumber blkno) |
#define FRAGMENT_HEADER_SIZE (2 * sizeof(OffsetNumber)) |
Definition at line 46 of file generic_xlog.c.
#define MATCH_THRESHOLD FRAGMENT_HEADER_SIZE |
Definition at line 47 of file generic_xlog.c.
#define MAX_DELTA_SIZE (BLCKSZ + 2 * FRAGMENT_HEADER_SIZE) |
Definition at line 48 of file generic_xlog.c.
Definition at line 229 of file generic_xlog.c.
References applyPageRedo(), computeRegionDelta(), PGAlignedBlock::data, PageData::delta, PageData::deltaLen, elog(), and ERROR.
Referenced by GenericXLogFinish().
|
static |
Definition at line 122 of file generic_xlog.c.
References i, MATCH_THRESHOLD, Min, and writeFragment().
Referenced by computeDelta().
void generic_mask | ( | char * | page, |
BlockNumber | blkno | ||
) |
Definition at line 544 of file generic_xlog.c.
References mask_page_lsn_and_checksum(), and mask_unused_space().
void generic_redo | ( | XLogReaderState * | record | ) |
Definition at line 483 of file generic_xlog.c.
References generate_unaccent_rules::action, applyPageRedo(), Assert(), BLK_NEEDS_REDO, BufferGetPage(), BufferIsValid(), XLogReaderState::EndRecPtr, InvalidBuffer, MarkBufferDirty(), MAX_GENERIC_XLOG_PAGES, PageSetLSN(), PageHeaderData::pd_lower, PageHeaderData::pd_upper, UnlockReleaseBuffer(), XLogReadBufferForRedo(), XLogRecGetBlockData(), XLogRecHasBlockRef, and XLogRecMaxBlockId.
void GenericXLogAbort | ( | GenericXLogState * | state | ) |
Definition at line 449 of file generic_xlog.c.
References pfree().
Referenced by blbulkdelete(), and blinsert().
XLogRecPtr GenericXLogFinish | ( | GenericXLogState * | state | ) |
Definition at line 338 of file generic_xlog.c.
References PageData::buffer, BufferGetPage(), BufferIsInvalid, computeDelta(), PageData::delta, PageData::deltaLen, END_CRIT_SECTION, PageData::flags, GENERIC_XLOG_FULL_IMAGE, i, if(), PageData::image, InvalidXLogRecPtr, MarkBufferDirty(), MAX_GENERIC_XLOG_PAGES, PageSetLSN(), PageHeaderData::pd_lower, PageHeaderData::pd_upper, pfree(), REGBUF_FORCE_IMAGE, REGBUF_STANDARD, START_CRIT_SECTION, XLogBeginInsert(), XLogInsert(), XLogRegisterBufData(), and XLogRegisterBuffer().
Referenced by blbulkdelete(), blinsert(), BloomInitMetapage(), and flushCachedPage().
Page GenericXLogRegisterBuffer | ( | GenericXLogState * | state, |
Buffer | buffer, | ||
int | flags | ||
) |
Definition at line 300 of file generic_xlog.c.
References PageData::buffer, BufferGetPage(), BufferIsInvalid, elog(), ERROR, PageData::flags, PageData::image, and MAX_GENERIC_XLOG_PAGES.
Referenced by blbulkdelete(), blinsert(), BloomInitMetapage(), and flushCachedPage().
GenericXLogState* GenericXLogStart | ( | Relation | relation | ) |
Definition at line 270 of file generic_xlog.c.
References i, InvalidBuffer, MAX_GENERIC_XLOG_PAGES, palloc_aligned(), PG_IO_ALIGN_SIZE, and RelationNeedsWAL.
Referenced by blbulkdelete(), blinsert(), BloomInitMetapage(), and flushCachedPage().
|
static |
Definition at line 91 of file generic_xlog.c.
References Assert(), data, PageData::delta, and PageData::deltaLen.
Referenced by computeRegionDelta().