diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2006-04-14 20:27:24 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2006-04-14 20:27:24 +0000 |
commit | defe93463c69f8e0bb717294a34d67c34ac0b03f (patch) | |
tree | 110d957ae6e376ac6c6ceed323be70c03ea55c40 /src/include/access/xlogutils.h | |
parent | 0fcc3c2f1d3cc71aa8affe082568b6e033ffa429 (diff) | |
download | postgresql-defe93463c69f8e0bb717294a34d67c34ac0b03f.tar.gz postgresql-defe93463c69f8e0bb717294a34d67c34ac0b03f.zip |
Make the world safe for full_page_writes. Allow XLOG records that try to
update no-longer-existing pages to fall through as no-ops, but make a note
of each page number referenced by such records. If we don't see a later
XLOG entry dropping the table or truncating away the page, complain at
the end of XLOG replay. Since this fixes the known failure mode for
full_page_writes = off, revert my previous band-aid patch that disabled
that GUC variable.
Diffstat (limited to 'src/include/access/xlogutils.h')
-rw-r--r-- | src/include/access/xlogutils.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/include/access/xlogutils.h b/src/include/access/xlogutils.h index a684656d035..6c2db1dc7b5 100644 --- a/src/include/access/xlogutils.h +++ b/src/include/access/xlogutils.h @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/access/xlogutils.h,v 1.20 2006/03/29 21:17:39 tgl Exp $ + * $PostgreSQL: pgsql/src/include/access/xlogutils.h,v 1.21 2006/04/14 20:27:24 tgl Exp $ */ #ifndef XLOG_UTILS_H #define XLOG_UTILS_H @@ -16,11 +16,13 @@ extern void XLogInitRelationCache(void); +extern void XLogCheckInvalidPages(void); extern void XLogCloseRelationCache(void); extern Relation XLogOpenRelation(RelFileNode rnode); extern void XLogDropRelation(RelFileNode rnode); extern void XLogDropDatabase(Oid dbid); +extern void XLogTruncateRelation(RelFileNode rnode, BlockNumber nblocks); extern Buffer XLogReadBuffer(Relation reln, BlockNumber blkno, bool init); |