aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2008-06-30 22:10:43 +0000
committerBruce Momjian <bruce@momjian.us>2008-06-30 22:10:43 +0000
commit6b797c852bd45a3c3ed5cd375513c542778a9e48 (patch)
treeed920b6d82a8ae17210dc438d0137440d806f217 /src
parent5ce521f648ad33d3c92b2459423151752f48f6dc (diff)
downloadpostgresql-6b797c852bd45a3c3ed5cd375513c542778a9e48.tar.gz
postgresql-6b797c852bd45a3c3ed5cd375513c542778a9e48.zip
Fix recovery.conf boolean variables to take the same range of string
values as postgresql.conf.
Diffstat (limited to 'src')
-rw-r--r--src/backend/access/transam/xlog.c24
-rw-r--r--src/backend/utils/misc/guc.c4
-rw-r--r--src/include/utils/guc.h3
3 files changed, 13 insertions, 18 deletions
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index 4c9b7872ca3..2e832db4b15 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.314 2008/06/12 09:12:30 heikki Exp $
+ * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.315 2008/06/30 22:10:43 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -4523,13 +4523,10 @@ readRecoveryCommandFile(void)
/*
* does nothing if a recovery_target is not also set
*/
- if (strcmp(tok2, "true") == 0)
- recoveryTargetInclusive = true;
- else
- {
- recoveryTargetInclusive = false;
- tok2 = "false";
- }
+ if (!parse_bool(tok2, &recoveryTargetInclusive))
+ ereport(ERROR,
+ (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
+ errmsg("parameter \"recovery_target_inclusive\" requires a Boolean value")));
ereport(LOG,
(errmsg("recovery_target_inclusive = %s", tok2)));
}
@@ -4538,13 +4535,10 @@ readRecoveryCommandFile(void)
/*
* does nothing if a recovery_target is not also set
*/
- if (strcmp(tok2, "true") == 0)
- recoveryLogRestartpoints = true;
- else
- {
- recoveryLogRestartpoints = false;
- tok2 = "false";
- }
+ if (!parse_bool(tok2, &recoveryLogRestartpoints))
+ ereport(ERROR,
+ (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
+ errmsg("parameter \"log_restartpoints\" requires a Boolean value")));
ereport(LOG,
(errmsg("log_restartpoints = %s", tok2)));
}
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 76c6843fd6c..44336b28329 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -10,7 +10,7 @@
* Written by Peter Eisentraut <peter_e@gmx.net>.
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.457 2008/06/30 10:58:47 heikki Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.458 2008/06/30 22:10:43 momjian Exp $
*
*--------------------------------------------------------------------
*/
@@ -3991,7 +3991,7 @@ ReportGUCOption(struct config_generic * record)
* If the string parses okay, return true, else false.
* If okay and result is not NULL, return the value in *result.
*/
-static bool
+bool
parse_bool(const char *value, bool *result)
{
size_t len = strlen(value);
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index 2337487d463..c6e42ef520e 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -7,7 +7,7 @@
* Copyright (c) 2000-2008, PostgreSQL Global Development Group
* Written by Peter Eisentraut <peter_e@gmx.net>.
*
- * $PostgreSQL: pgsql/src/include/utils/guc.h,v 1.96 2008/05/28 09:04:06 mha Exp $
+ * $PostgreSQL: pgsql/src/include/utils/guc.h,v 1.97 2008/06/30 22:10:43 momjian Exp $
*--------------------------------------------------------------------
*/
#ifndef GUC_H
@@ -223,6 +223,7 @@ extern int NewGUCNestLevel(void);
extern void AtEOXact_GUC(bool isCommit, int nestLevel);
extern void BeginReportingGUCOptions(void);
extern void ParseLongOption(const char *string, char **name, char **value);
+extern bool parse_bool(const char *value, bool *result);
extern bool set_config_option(const char *name, const char *value,
GucContext context, GucSource source,
GucAction action, bool changeVal);