]> granicus.if.org Git - postgresql/commitdiff
Check RELSEG_SIZE when postmaster starting up.
authorTatsuo Ishii <ishii@postgresql.org>
Sat, 16 Oct 1999 09:32:23 +0000 (09:32 +0000)
committerTatsuo Ishii <ishii@postgresql.org>
Sat, 16 Oct 1999 09:32:23 +0000 (09:32 +0000)
this is neccesary to make sure that the backend and
the database uses same RELSEG_SIZE.

src/backend/access/transam/xlog.c

index 592a3a5bf724e194ef3aabb5a36395459b9cc069..428ca7998e85a4a23d41ffa52f891220ded06d75 100644 (file)
@@ -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));