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

values as postgresql.conf.
This commit is contained in:
Bruce Momjian 2008-06-30 22:10:43 +00:00
parent 5ce521f648
commit 6b797c852b
3 changed files with 13 additions and 18 deletions

View File

@ -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)));
}

View File

@ -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);

View File

@ -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);