From df238b2c06b6ea5cdbae7263cfbe9ead277d2908 Mon Sep 17 00:00:00 2001 From: "Vadim B. Mikheev" Date: Mon, 20 Mar 2000 07:25:39 +0000 Subject: [PATCH] Turn XLOG off (do not create log file). --- src/backend/access/transam/xlog.c | 41 ++++++++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index e8d909f71e..7d197cb5a3 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -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); -- 2.11.0