diff options
author | Tatsuo Ishii <ishii@postgresql.org> | 1999-10-16 09:32:23 +0000 |
---|---|---|
committer | Tatsuo Ishii <ishii@postgresql.org> | 1999-10-16 09:32:23 +0000 |
commit | 357231e68e5a9333904b1ebc6ac82410a4a21f0e (patch) | |
tree | 3ce87f432ec3fcd582d5d9ce5b820d29f81bfc6e /src/backend/access/transam/xlog.c | |
parent | 6fb3c3f78fbb2296894424f6e3183d339915eac7 (diff) |
Check RELSEG_SIZE when postmaster starting up.
this is neccesary to make sure that the backend and
the database uses same RELSEG_SIZE.
Diffstat (limited to 'src/backend/access/transam/xlog.c')
-rw-r--r-- | src/backend/access/transam/xlog.c | 10 |
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)); |