Commit c755f602 authored by Thomas G. Lockhart's avatar Thomas G. Lockhart

Implement WAL log location control using "-X" or PGXLOG.

parent eb121ba2
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Header: /cvsroot/pgsql/src/backend/access/transam/xlog.c,v 1.98 2002/06/20 20:29:25 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/access/transam/xlog.c,v 1.99 2002/08/04 06:53:10 thomas Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -389,7 +389,7 @@ static ControlFileData *ControlFile = NULL; ...@@ -389,7 +389,7 @@ static ControlFileData *ControlFile = NULL;
/* File path names */ /* File path names */
static char XLogDir[MAXPGPATH]; static char XLogDir[MAXPGPATH] = "";
static char ControlFilePath[MAXPGPATH]; static char ControlFilePath[MAXPGPATH];
/* /*
...@@ -2065,11 +2065,28 @@ ValidXLOGHeader(XLogPageHeader hdr, int emode, bool checkSUI) ...@@ -2065,11 +2065,28 @@ ValidXLOGHeader(XLogPageHeader hdr, int emode, bool checkSUI)
* I/O and compatibility-check functions, but there seems no need currently. * I/O and compatibility-check functions, but there seems no need currently.
*/ */
void
SetXLogDir(char *path)
{
if (path != NULL)
{
if (strlen(path) >= MAXPGPATH)
elog(FATAL, "XLOG path '%s' is too long"
"; maximum length is %d characters", path, MAXPGPATH-1);
strcpy(XLogDir, path);
}
else
{
snprintf(XLogDir, MAXPGPATH, "%s/pg_xlog", DataDir);
}
}
void void
XLOGPathInit(void) XLOGPathInit(void)
{ {
/* Init XLOG file paths */ /* Init XLOG file paths */
snprintf(XLogDir, MAXPGPATH, "%s/pg_xlog", DataDir); if (strlen(XLogDir) <= 0)
SetXLogDir(NULL);
snprintf(ControlFilePath, MAXPGPATH, "%s/global/pg_control", DataDir); snprintf(ControlFilePath, MAXPGPATH, "%s/global/pg_control", DataDir);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment