Commit 6b797c85 authored by Bruce Momjian's avatar Bruce Momjian

Fix recovery.conf boolean variables to take the same range of string

values as postgresql.conf.
parent 5ce521f6
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * 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) ...@@ -4523,13 +4523,10 @@ readRecoveryCommandFile(void)
/* /*
* does nothing if a recovery_target is not also set * does nothing if a recovery_target is not also set
*/ */
if (strcmp(tok2, "true") == 0) if (!parse_bool(tok2, &recoveryTargetInclusive))
recoveryTargetInclusive = true; ereport(ERROR,
else (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
{ errmsg("parameter \"recovery_target_inclusive\" requires a Boolean value")));
recoveryTargetInclusive = false;
tok2 = "false";
}
ereport(LOG, ereport(LOG,
(errmsg("recovery_target_inclusive = %s", tok2))); (errmsg("recovery_target_inclusive = %s", tok2)));
} }
...@@ -4538,13 +4535,10 @@ readRecoveryCommandFile(void) ...@@ -4538,13 +4535,10 @@ readRecoveryCommandFile(void)
/* /*
* does nothing if a recovery_target is not also set * does nothing if a recovery_target is not also set
*/ */
if (strcmp(tok2, "true") == 0) if (!parse_bool(tok2, &recoveryLogRestartpoints))
recoveryLogRestartpoints = true; ereport(ERROR,
else (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
{ errmsg("parameter \"log_restartpoints\" requires a Boolean value")));
recoveryLogRestartpoints = false;
tok2 = "false";
}
ereport(LOG, ereport(LOG,
(errmsg("log_restartpoints = %s", tok2))); (errmsg("log_restartpoints = %s", tok2)));
} }
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
* Written by Peter Eisentraut <peter_e@gmx.net>. * Written by Peter Eisentraut <peter_e@gmx.net>.
* *
* IDENTIFICATION * 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) ...@@ -3991,7 +3991,7 @@ ReportGUCOption(struct config_generic * record)
* If the string parses okay, return true, else false. * If the string parses okay, return true, else false.
* If okay and result is not NULL, return the value in *result. * If okay and result is not NULL, return the value in *result.
*/ */
static bool bool
parse_bool(const char *value, bool *result) parse_bool(const char *value, bool *result)
{ {
size_t len = strlen(value); size_t len = strlen(value);
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* Copyright (c) 2000-2008, PostgreSQL Global Development Group * Copyright (c) 2000-2008, PostgreSQL Global Development Group
* Written by Peter Eisentraut <peter_e@gmx.net>. * 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 #ifndef GUC_H
...@@ -223,6 +223,7 @@ extern int NewGUCNestLevel(void); ...@@ -223,6 +223,7 @@ extern int NewGUCNestLevel(void);
extern void AtEOXact_GUC(bool isCommit, int nestLevel); extern void AtEOXact_GUC(bool isCommit, int nestLevel);
extern void BeginReportingGUCOptions(void); extern void BeginReportingGUCOptions(void);
extern void ParseLongOption(const char *string, char **name, char **value); 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, extern bool set_config_option(const char *name, const char *value,
GucContext context, GucSource source, GucContext context, GucSource source,
GucAction action, bool changeVal); GucAction action, bool changeVal);
......
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