aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2003-12-01 16:53:19 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2003-12-01 16:53:19 +0000
commit0902ece5b925c80b026fd98c3a014be15c720b94 (patch)
tree4c9894bf0de4bc23a6e782299fdc947cdce5e810 /src
parent64e5a85625731af150403d8346e6bb0f2c7acde2 (diff)
downloadpostgresql-0902ece5b925c80b026fd98c3a014be15c720b94.tar.gz
postgresql-0902ece5b925c80b026fd98c3a014be15c720b94.zip
Force zero_damaged_pages to be effectively ON during recovery from WAL,
since there is no need to worry about damaged pages when we are going to overwrite them anyway from the WAL. Per recent discussion.
Diffstat (limited to 'src')
-rw-r--r--src/backend/storage/buffer/bufmgr.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c
index e363180d661..c0c35613208 100644
--- a/src/backend/storage/buffer/bufmgr.c
+++ b/src/backend/storage/buffer/bufmgr.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/storage/buffer/bufmgr.c,v 1.147 2003/11/29 19:51:56 pgsql Exp $
+ * $PostgreSQL: pgsql/src/backend/storage/buffer/bufmgr.c,v 1.148 2003/12/01 16:53:19 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -231,7 +231,13 @@ ReadBufferInternal(Relation reln, BlockNumber blockNum,
if (status == SM_SUCCESS &&
!PageHeaderIsValid((PageHeader) MAKE_PTR(bufHdr->data)))
{
- if (zero_damaged_pages)
+ /*
+ * During WAL recovery, the first access to any data page should
+ * overwrite the whole page from the WAL; so a clobbered page
+ * header is not reason to fail. Hence, when InRecovery we may
+ * always act as though zero_damaged_pages is ON.
+ */
+ if (zero_damaged_pages || InRecovery)
{
ereport(WARNING,
(errcode(ERRCODE_DATA_CORRUPTED),