Turn XLOG off (do not create log file).
authorVadim B. Mikheev
Mon, 20 Mar 2000 07:25:39 +0000 (07:25 +0000)
committerVadim B. Mikheev
Mon, 20 Mar 2000 07:25:39 +0000 (07:25 +0000)
src/backend/access/transam/xlog.c

index e8d909f71efd649f7b941d0649b51ed8153e0107..7d197cb5a3a36b89e0dfa6fe35c308facc887a55 100644 (file)
@@ -6,10 +6,11 @@
  * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Header: /cvsroot/pgsql/src/backend/access/transam/xlog.c,v 1.11 2000/03/07 23:49:31 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/transam/xlog.c,v 1.12 2000/03/20 07:25:39 vadim Exp $
  *
  *-------------------------------------------------------------------------
  */
+
 #include 
 #include 
 #include 
@@ -76,6 +77,13 @@ typedef struct XLogCtlWrite
    uint16          curridx;    /* index of next block to write */
 } XLogCtlWrite;
 
+
+#ifndef HAS_TEST_AND_SET
+#define    TAS(lck)        0
+#define    S_UNLOCK(lck)
+#define    S_INIT_LOCK(lck)
+#endif
+
 typedef struct XLogCtlData
 {
    XLogCtlInsert   Insert;
@@ -1153,9 +1161,12 @@ BootStrapXLOG()
 {
    int             fd;
    char            buffer[BLCKSZ];
-   XLogPageHeader  page = (XLogPageHeader)buffer;
    CheckPoint      checkPoint;
+
+#ifdef NOT_USED
+   XLogPageHeader  page = (XLogPageHeader)buffer;
    XLogRecord     *record;
+#endif
 
 #ifndef __CYGWIN__
    fd = open(ControlFilePath, O_RDWR|O_CREAT|O_EXCL, S_IRUSR|S_IWUSR);
@@ -1166,14 +1177,14 @@ BootStrapXLOG()
        elog(STOP, "BootStrapXLOG failed to create control file (%s): %d", 
                    ControlFilePath, errno);
 
-   logFile = XLogFileInit(0, 0);
-
    checkPoint.redo.xlogid = 0;
    checkPoint.redo.xrecoff = SizeOfXLogPHD;
    checkPoint.undo = checkPoint.redo;
    checkPoint.nextXid = FirstTransactionId;
    checkPoint.nextOid =  BootstrapObjectIdData;
 
+#ifdef NOT_USED
+
    memset(buffer, 0, BLCKSZ);
    page->xlp_magic = XLOG_PAGE_MAGIC;
    page->xlp_info = 0;
@@ -1186,6 +1197,8 @@ BootStrapXLOG()
    record->xl_rmid = RM_XLOG_ID;
    memcpy((char*)record + SizeOfXLogRecord, &checkPoint, sizeof(checkPoint));
 
+   logFile = XLogFileInit(0, 0);
+
    if (write(logFile, buffer, BLCKSZ) != BLCKSZ)
        elog(STOP, "BootStrapXLOG failed to write logfile: %d", errno);
 
@@ -1195,6 +1208,8 @@ BootStrapXLOG()
    close(logFile);
    logFile = -1;
 
+#endif
+
    memset(buffer, 0, BLCKSZ);
    ControlFile = (ControlFileData*) buffer;
    ControlFile->logId = 0;
@@ -1233,15 +1248,17 @@ str_time(time_t tnow)
 void
 StartupXLOG()
 {
+#ifdef NOT_USED
    XLogCtlInsert      *Insert;
    CheckPoint          checkPoint;
    XLogRecPtr          RecPtr,
                        LastRec;
    XLogRecord         *record;
    char                buffer[MAXLOGRECSZ+SizeOfXLogRecord];
-   int                 fd;
    int                 recovery = 0;
    bool                sie_saved = false;
+#endif
+   int                 fd;
 
    elog(LOG, "Data Base System is starting up at %s", str_time(time(NULL)));
 
@@ -1321,6 +1338,8 @@ tryAgain:
        elog(LOG, "Data Base System was interrupted being in production at %s",
                    str_time(ControlFile->time));
 
+#ifdef NOT_USED
+
    LastRec = RecPtr = ControlFile->checkPoint;
    if (!XRecOffIsValid(RecPtr.xrecoff))
        elog(STOP, "Invalid checkPoint in control file");
@@ -1460,6 +1479,8 @@ tryAgain:
        StopIfError = sie_saved;
    }
 
+#endif /* NOT_USED */
+
    ControlFile->state = DB_IN_PRODUCTION;
    ControlFile->time = time(NULL);
    UpdateControlFile();
@@ -1486,6 +1507,7 @@ ShutdownXLOG()
 void
 CreateCheckPoint(bool shutdown)
 {
+#ifdef NOT_USED
    CheckPoint          checkPoint;
    XLogRecPtr          recptr;
    XLogCtlInsert      *Insert = &XLogCtl->Insert;
@@ -1548,10 +1570,19 @@ CreateCheckPoint(bool shutdown)
 
    XLogFlush(recptr);
 
+#endif /* NOT_USED */
+
    SpinAcquire(ControlFileLockId);
    if (shutdown)
        ControlFile->state = DB_SHUTDOWNED;
+
+#ifdef NOT_USED
    ControlFile->checkPoint = MyLastRecPtr;
+#else
+   ControlFile->checkPoint.xlogid = 0;
+   ControlFile->checkPoint.xrecoff = SizeOfXLogPHD;
+#endif
+
    ControlFile->time = time(NULL);
    UpdateControlFile();
    SpinRelease(ControlFileLockId);