mirror of
https://github.com/postgres/postgres.git
synced 2025-06-29 10:41:53 +03:00
Add a field to the first page of each WAL file to indicate the
XLOG_BLCKSZ. This ought to help in preventing configuration mismatch problems if anyone tries to ship PITR files between servers compiled with different XLOG_BLCKSZ settings. Simon Riggs
This commit is contained in:
@ -7,7 +7,7 @@
|
||||
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.233 2006/04/04 22:39:59 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.234 2006/04/05 03:34:05 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -1265,6 +1265,7 @@ AdvanceXLInsertBuffer(void)
|
||||
|
||||
NewLongPage->xlp_sysid = ControlFile->system_identifier;
|
||||
NewLongPage->xlp_seg_size = XLogSegSize;
|
||||
NewLongPage->xlp_xlog_blcksz = XLOG_BLCKSZ;
|
||||
NewPage ->xlp_info |= XLP_LONG_HEADER;
|
||||
|
||||
Insert->currpos = ((char *) NewPage) +SizeOfXLogLongPHD;
|
||||
@ -2994,6 +2995,13 @@ ValidXLOGHeader(XLogPageHeader hdr, int emode)
|
||||
errdetail("Incorrect XLOG_SEG_SIZE in page header.")));
|
||||
return false;
|
||||
}
|
||||
if (longhdr->xlp_xlog_blcksz != XLOG_BLCKSZ)
|
||||
{
|
||||
ereport(emode,
|
||||
(errmsg("WAL file is from different system"),
|
||||
errdetail("Incorrect XLOG_BLCKSZ in page header.")));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
recaddr.xlogid = readId;
|
||||
recaddr.xrecoff = readSeg * XLogSegSize + readOff;
|
||||
@ -3838,6 +3846,7 @@ BootStrapXLOG(void)
|
||||
longpage = (XLogLongPageHeader) page;
|
||||
longpage->xlp_sysid = sysidentifier;
|
||||
longpage->xlp_seg_size = XLogSegSize;
|
||||
longpage->xlp_xlog_blcksz = XLOG_BLCKSZ;
|
||||
|
||||
/* Insert the initial checkpoint record */
|
||||
record = (XLogRecord *) ((char *) page + SizeOfXLogLongPHD);
|
||||
|
Reference in New Issue
Block a user