aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas G. Lockhart <lockhart@fourpalms.org>2002-08-05 01:24:16 +0000
committerThomas G. Lockhart <lockhart@fourpalms.org>2002-08-05 01:24:16 +0000
commitac1a3dcf24e182a1cc9a136246b7f18a8a64bbd5 (patch)
tree4e776754602fe672dc5a1d6f87158a7877ee851e
parent0fe931a3e0f259bd2933e48ee09bd3d7435149b4 (diff)
downloadpostgresql-ac1a3dcf24e182a1cc9a136246b7f18a8a64bbd5.tar.gz
postgresql-ac1a3dcf24e182a1cc9a136246b7f18a8a64bbd5.zip
Fix compilation problem with assert checking enabled for recent xlog
location feature.
-rw-r--r--src/backend/access/transam/xlog.c16
-rw-r--r--src/include/access/xlog.h4
2 files changed, 11 insertions, 9 deletions
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index fa9cc90dd53..872722b856c 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Header: /cvsroot/pgsql/src/backend/access/transam/xlog.c,v 1.99 2002/08/04 06:53:10 thomas Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/transam/xlog.c,v 1.100 2002/08/05 01:24:13 thomas Exp $
*
*-------------------------------------------------------------------------
*/
@@ -389,7 +389,8 @@ static ControlFileData *ControlFile = NULL;
/* File path names */
-static char XLogDir[MAXPGPATH] = "";
+char *XLogDir = NULL;
+
static char ControlFilePath[MAXPGPATH];
/*
@@ -2068,16 +2069,17 @@ ValidXLOGHeader(XLogPageHeader hdr, int emode, bool checkSUI)
void
SetXLogDir(char *path)
{
+ char *xsubdir = "/pg_xlog";
+
if (path != NULL)
{
- if (strlen(path) >= MAXPGPATH)
- elog(FATAL, "XLOG path '%s' is too long"
- "; maximum length is %d characters", path, MAXPGPATH-1);
+ XLogDir = malloc(strlen(path)+1);
strcpy(XLogDir, path);
}
else
{
- snprintf(XLogDir, MAXPGPATH, "%s/pg_xlog", DataDir);
+ XLogDir = malloc(strlen(DataDir)+strlen(xsubdir)+1);
+ snprintf(XLogDir, MAXPGPATH, "%s%s", DataDir, xsubdir);
}
}
@@ -2085,7 +2087,7 @@ void
XLOGPathInit(void)
{
/* Init XLOG file paths */
- if (strlen(XLogDir) <= 0)
+ if (XLogDir == NULL)
SetXLogDir(NULL);
snprintf(ControlFilePath, MAXPGPATH, "%s/global/pg_control", DataDir);
}
diff --git a/src/include/access/xlog.h b/src/include/access/xlog.h
index 19ff8dd2ce8..4b661f53d32 100644
--- a/src/include/access/xlog.h
+++ b/src/include/access/xlog.h
@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: xlog.h,v 1.32 2002/08/04 06:26:38 thomas Exp $
+ * $Id: xlog.h,v 1.33 2002/08/05 01:24:16 thomas Exp $
*/
#ifndef XLOG_H
#define XLOG_H
@@ -176,7 +176,7 @@ typedef struct XLogRecData
} XLogRecData;
/* XLOG directory name */
-extern char XLogDir[];
+extern char *XLogDir;
extern StartUpID ThisStartUpID; /* current SUI */
extern bool InRecovery;