diff options
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/access/xlogutils.h | 7 | ||||
-rw-r--r-- | src/include/storage/bufmgr.h | 21 |
2 files changed, 18 insertions, 10 deletions
diff --git a/src/include/access/xlogutils.h b/src/include/access/xlogutils.h index 0c81d42e44d..53ce771f71c 100644 --- a/src/include/access/xlogutils.h +++ b/src/include/access/xlogutils.h @@ -6,12 +6,13 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/access/xlogutils.h,v 1.26 2008/08/11 11:05:11 heikki Exp $ + * $PostgreSQL: pgsql/src/include/access/xlogutils.h,v 1.27 2008/10/31 15:05:00 heikki Exp $ */ #ifndef XLOG_UTILS_H #define XLOG_UTILS_H #include "storage/buf.h" +#include "storage/bufmgr.h" #include "storage/relfilenode.h" #include "storage/block.h" #include "utils/relcache.h" @@ -25,8 +26,8 @@ extern void XLogTruncateRelation(RelFileNode rnode, ForkNumber forkNum, BlockNumber nblocks); extern Buffer XLogReadBuffer(RelFileNode rnode, BlockNumber blkno, bool init); -extern Buffer XLogReadBufferWithFork(RelFileNode rnode, ForkNumber forknum, - BlockNumber blkno, bool init); +extern Buffer XLogReadBufferExtended(RelFileNode rnode, ForkNumber forknum, + BlockNumber blkno, ReadBufferMode mode); extern Relation CreateFakeRelcacheEntry(RelFileNode rnode); extern void FreeFakeRelcacheEntry(Relation fakerel); diff --git a/src/include/storage/bufmgr.h b/src/include/storage/bufmgr.h index 72d4aec3979..56f584a78ba 100644 --- a/src/include/storage/bufmgr.h +++ b/src/include/storage/bufmgr.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/storage/bufmgr.h,v 1.115 2008/08/11 11:05:11 heikki Exp $ + * $PostgreSQL: pgsql/src/include/storage/bufmgr.h,v 1.116 2008/10/31 15:05:00 heikki Exp $ * *------------------------------------------------------------------------- */ @@ -31,6 +31,14 @@ typedef enum BufferAccessStrategyType BAS_VACUUM /* VACUUM */ } BufferAccessStrategyType; +/* Possible modes for ReadBufferExtended() */ +typedef enum +{ + RBM_NORMAL, /* Normal read */ + RBM_ZERO, /* Don't read from disk, caller will initialize */ + RBM_ZERO_ON_ERROR /* Read, but return an all-zeros page on error */ +} ReadBufferMode; + /* in globals.c ... this duplicates miscadmin.h */ extern PGDLLIMPORT int NBuffers; @@ -144,13 +152,12 @@ extern PGDLLIMPORT int32 *LocalRefCount; * prototypes for functions in bufmgr.c */ extern Buffer ReadBuffer(Relation reln, BlockNumber blockNum); -extern Buffer ReadBufferWithFork(Relation reln, ForkNumber forkNum, BlockNumber blockNum); -extern Buffer ReadBufferWithStrategy(Relation reln, BlockNumber blockNum, - BufferAccessStrategy strategy); -extern Buffer ReadOrZeroBuffer(Relation reln, ForkNumber forkNum, - BlockNumber blockNum); +extern Buffer ReadBufferExtended(Relation reln, ForkNumber forkNum, + BlockNumber blockNum, ReadBufferMode mode, + BufferAccessStrategy strategy); extern Buffer ReadBufferWithoutRelcache(RelFileNode rnode, bool isTemp, - ForkNumber forkNum, BlockNumber blockNum, bool zeroPage); + ForkNumber forkNum, BlockNumber blockNum, + ReadBufferMode mode, BufferAccessStrategy strategy); extern void ReleaseBuffer(Buffer buffer); extern void UnlockReleaseBuffer(Buffer buffer); extern void MarkBufferDirty(Buffer buffer); |