summaryrefslogtreecommitdiff
path: root/src/backend/access/transam/xlog.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/access/transam/xlog.c')
-rw-r--r--src/backend/access/transam/xlog.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index 592a3a5bf72..428ca7998e8 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -97,7 +97,13 @@ typedef struct ControlFileData
XLogRecPtr checkPoint; /* last check point record ptr */
time_t time; /* time stamp of last modification */
DBState state; /* */
+
+ /*
+ * following data used to make sure that configurations for this DB
+ * do not conflict with the backend
+ */
uint32 blcksz; /* block size for this DB */
+ uint32 relseg_size; /* segmented file's block number */
/* MORE DATA FOLLOWS AT THE END OF THIS STRUCTURE
* - locations of data dirs
*/
@@ -1164,6 +1170,7 @@ BootStrapXLOG()
ControlFile->time = time(NULL);
ControlFile->state = DB_SHUTDOWNED;
ControlFile->blcksz = BLCKSZ;
+ ControlFile->relseg_size = RELSEG_SIZE;
if (write(fd, buffer, BLCKSZ) != BLCKSZ)
elog(STOP, "BootStrapXLOG failed to write control file: %d", errno);
@@ -1254,6 +1261,9 @@ tryAgain:
if (ControlFile->blcksz != BLCKSZ)
elog(STOP, "database was initialized in BLCKSZ(%d), but the backend was compiled in BLCKSZ(%d)",ControlFile->blcksz,BLCKSZ);
+ if (ControlFile->relseg_size != RELSEG_SIZE)
+ elog(STOP, "database was initialized in RELSEG_SIZE(%d), but the backend was compiled in RELSEG_SIZE(%d)",ControlFile->relseg_size, RELSEG_SIZE);
+
if (ControlFile->state == DB_SHUTDOWNED)
elog(LOG, "Data Base System was shutdowned at %s",
str_time(ControlFile->time));