diff options
Diffstat (limited to 'src/include/access/xlogutils.h')
-rw-r--r-- | src/include/access/xlogutils.h | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/include/access/xlogutils.h b/src/include/access/xlogutils.h index 58f11d919b6..ad579083ab8 100644 --- a/src/include/access/xlogutils.h +++ b/src/include/access/xlogutils.h @@ -1,7 +1,7 @@ /* * xlogutils.h * - * PostgreSQL transaction log manager utility routines + * Utilities for replaying WAL records. * * Portions Copyright (c) 1996-2014, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California @@ -11,6 +11,7 @@ #ifndef XLOG_UTILS_H #define XLOG_UTILS_H +#include "access/xlog.h" #include "storage/bufmgr.h" @@ -22,6 +23,26 @@ extern void XLogDropDatabase(Oid dbid); extern void XLogTruncateRelation(RelFileNode rnode, ForkNumber forkNum, BlockNumber nblocks); +/* Result codes for XLogReadBufferForRedo[Extended] */ +typedef enum +{ + BLK_NEEDS_REDO, /* changes from WAL record need to be applied */ + BLK_DONE, /* block is already up-to-date */ + BLK_RESTORED, /* block was restored from a full-page image */ + BLK_NOTFOUND /* block was not found (and hence does not need to be + * replayed) */ +} XLogRedoAction; + +extern XLogRedoAction XLogReadBufferForRedo(XLogRecPtr lsn, XLogRecord *record, + int block_index, RelFileNode rnode, BlockNumber blkno, + Buffer *buf); +extern XLogRedoAction XLogReadBufferForRedoExtended(XLogRecPtr lsn, + XLogRecord *record, int block_index, + RelFileNode rnode, ForkNumber forkno, + BlockNumber blkno, + ReadBufferMode mode, bool get_cleanup_lock, + Buffer *buf); + extern Buffer XLogReadBuffer(RelFileNode rnode, BlockNumber blkno, bool init); extern Buffer XLogReadBufferExtended(RelFileNode rnode, ForkNumber forknum, BlockNumber blkno, ReadBufferMode mode); |