From df238b2c06b6ea5cdbae7263cfbe9ead277d2908 Mon Sep 17 00:00:00 2001
From: "Vadim B. Mikheev" <vadim4o@yahoo.com>
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 e8d909f71ef..7d197cb5a3a 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 <fcntl.h>
 #include <unistd.h>
 #include <errno.h>
@@ -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);
-- 
GitLab