Convert backslash_quote guc to use enum.
authorMagnus Hagander <magnus@hagander.net>
Fri, 4 Apr 2008 11:47:19 +0000 (11:47 +0000)
committerMagnus Hagander <magnus@hagander.net>
Fri, 4 Apr 2008 11:47:19 +0000 (11:47 +0000)
src/backend/utils/misc/guc.c
src/include/parser/gramparse.h

index 63615a885a52df7488e9ab4c7643b5b4e02d9430..c44c6a56de4f50dba93085968ffa2dcfc126abf8 100644 (file)
@@ -10,7 +10,7 @@
  * Written by Peter Eisentraut <peter_e@gmx.net>.
  *
  * 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);
@@ -253,6 +252,23 @@ static const struct config_enum_entry xmloption_options[] = {
        {NULL, 0}
 };
 
+/*
+ * 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
  */
@@ -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;
@@ -1959,15 +1974,6 @@ static struct config_string ConfigureNamesString[] =
                "", NULL, show_archive_command
        },
 
-       {
-               {"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."),
@@ -2419,6 +2425,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."),
index 98128bb938811060b29a92a53de4c67e7dbfc4b2..6bb87c67515830985909b54b9a673d5ec085f700 100644 (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/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;