From 2288d646a6a6d1f7cb35c35772cbcf9feb9b451a Mon Sep 17 00:00:00 2001 From: Magnus Hagander Date: Fri, 4 Apr 2008 11:47:19 +0000 Subject: [PATCH] Convert backslash_quote guc to use enum. --- src/backend/utils/misc/guc.c | 39 +++++++++++++++++++++++++++------------ src/include/parser/gramparse.h | 4 ++-- 2 files changed, 29 insertions(+), 14 deletions(-) diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 63615a885a..c44c6a56de 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -10,7 +10,7 @@ * Written by Peter Eisentraut . * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.444 2008/04/04 08:33:15 mha Exp $ + * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.445 2008/04/04 11:47:19 mha Exp $ * *-------------------------------------------------------------------- */ @@ -153,7 +153,6 @@ static bool assign_stage_log_stats(bool newval, bool doit, GucSource source); static bool assign_log_stats(bool newval, bool doit, GucSource source); static bool assign_transaction_read_only(bool newval, bool doit, GucSource source); static const char *assign_canonical_path(const char *newval, bool doit, GucSource source); -static const char *assign_backslash_quote(const char *newval, bool doit, GucSource source); static const char *assign_timezone_abbreviations(const char *newval, bool doit, GucSource source); static const char *show_archive_command(void); static bool assign_tcp_keepalives_idle(int newval, bool doit, GucSource source); @@ -254,6 +253,23 @@ static const struct config_enum_entry xmloption_options[] = { }; /* + * Although only "on", "off", and "safe_encoding" are documented, we + * accept all the likely variants of "on" and "off". + */ +static const struct config_enum_entry backslash_quote_options[] = { + {"safe_encoding", BACKSLASH_QUOTE_SAFE_ENCODING}, + {"on", BACKSLASH_QUOTE_ON}, + {"off", BACKSLASH_QUOTE_OFF}, + {"true", BACKSLASH_QUOTE_ON}, + {"false", BACKSLASH_QUOTE_OFF}, + {"yes", BACKSLASH_QUOTE_ON}, + {"no", BACKSLASH_QUOTE_OFF}, + {"1", BACKSLASH_QUOTE_ON}, + {"0", BACKSLASH_QUOTE_OFF}, + {NULL, 0} +}; + +/* * GUC option variables that are exported from this module */ #ifdef USE_ASSERT_CHECKING @@ -311,7 +327,6 @@ static char *syslog_ident_str; static bool phony_autocommit; static bool session_auth_is_superuser; static double phony_random_seed; -static char *backslash_quote_string; static char *client_encoding_string; static char *datestyle_string; static char *locale_collate; @@ -1960,15 +1975,6 @@ static struct config_string ConfigureNamesString[] = }, { - {"backslash_quote", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS, - gettext_noop("Sets whether \"\\'\" is allowed in string literals."), - gettext_noop("Valid values are ON, OFF, and SAFE_ENCODING.") - }, - &backslash_quote_string, - "safe_encoding", assign_backslash_quote, NULL - }, - - { {"client_encoding", PGC_USERSET, CLIENT_CONN_LOCALE, gettext_noop("Sets the client's character set encoding."), NULL, @@ -2420,6 +2426,15 @@ static struct config_string ConfigureNamesString[] = static struct config_enum ConfigureNamesEnum[] = { { + {"backslash_quote", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS, + gettext_noop("Sets whether \"\\'\" is allowed in string literals."), + gettext_noop("Valid values are ON, OFF, and SAFE_ENCODING.") + }, + &backslash_quote, + BACKSLASH_QUOTE_SAFE_ENCODING, backslash_quote_options, NULL, NULL + }, + + { {"client_min_messages", PGC_USERSET, LOGGING_WHEN, gettext_noop("Sets the message levels that are sent to the client."), gettext_noop("Valid values are DEBUG5, DEBUG4, DEBUG3, DEBUG2, " diff --git a/src/include/parser/gramparse.h b/src/include/parser/gramparse.h index 98128bb938..6bb87c6751 100644 --- a/src/include/parser/gramparse.h +++ b/src/include/parser/gramparse.h @@ -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/include/parser/gramparse.h,v 1.40 2008/01/01 19:45:58 momjian Exp $ + * $PostgreSQL: pgsql/src/include/parser/gramparse.h,v 1.41 2008/04/04 11:47:19 mha Exp $ * *------------------------------------------------------------------------- */ @@ -35,7 +35,7 @@ typedef enum } BackslashQuoteType; /* GUC variables in scan.l (every one of these is a bad idea :-() */ -extern BackslashQuoteType backslash_quote; +extern int backslash_quote; extern bool escape_string_warning; extern bool standard_conforming_strings; -- 2.11.0