Turn xmlbinary and xmloption GUC variables into enumsTurn xmlbinary and
authorMagnus Hagander <magnus@hagander.net>
Fri, 4 Apr 2008 08:33:15 +0000 (08:33 +0000)
committerMagnus Hagander <magnus@hagander.net>
Fri, 4 Apr 2008 08:33:15 +0000 (08:33 +0000)
xmloption GUC variables into enums..

src/backend/utils/adt/xml.c
src/backend/utils/misc/guc.c
src/include/utils/xml.h

index c4960bcecfbf3659feff0622cbd0c81b243776c2..ce1e4a4fdde61ee1cc1a999392da8082bf8f39bb 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/backend/utils/adt/xml.c,v 1.71 2008/03/25 22:42:44 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/xml.c,v 1.72 2008/04/04 08:33:15 mha Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -86,8 +86,8 @@
 
 
 /* GUC variables */
-XmlBinaryType xmlbinary;
-XmlOptionType xmloption;
+int xmlbinary;
+int xmloption;
 
 #ifdef USE_LIBXML
 
index 04934abd306baffc5521e45c40cd808039262117..63615a885a52df7488e9ab4c7643b5b4e02d9430 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.443 2008/04/03 13:25:02 mha Exp $
+ *       $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.444 2008/04/04 08:33:15 mha Exp $
  *
  *--------------------------------------------------------------------
  */
@@ -155,8 +155,6 @@ static bool assign_transaction_read_only(bool newval, bool doit, GucSource sourc
 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 *assign_xmlbinary(const char *newval, bool doit, GucSource source);
-static const char *assign_xmloption(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);
 static bool assign_tcp_keepalives_interval(int newval, bool doit, GucSource source);
@@ -243,6 +241,17 @@ static const struct config_enum_entry syslog_facility_options[] = {
 };
 #endif
 
+static const struct config_enum_entry xmlbinary_options[] = {
+       {"base64", XMLBINARY_BASE64},
+       {"hex", XMLBINARY_HEX},
+       {NULL, 0}
+};
+
+static const struct config_enum_entry xmloption_options[] = {
+       {"content", XMLOPTION_CONTENT},
+       {"document", XMLOPTION_DOCUMENT},
+       {NULL, 0}
+};
 
 /*
  * GUC option variables that are exported from this module
@@ -316,8 +325,6 @@ static char *timezone_abbreviations_string;
 static char *XactIsoLevel_string;
 static char *data_directory;
 static char *custom_variable_classes;
-static char *xmlbinary_string;
-static char *xmloption_string;
 static int     max_function_args;
 static int     max_index_keys;
 static int     max_identifier_length;
@@ -2382,25 +2389,6 @@ static struct config_string ConfigureNamesString[] =
                NULL, assign_canonical_path, NULL
        },
 
-       {
-               {"xmlbinary", PGC_USERSET, CLIENT_CONN_STATEMENT,
-                       gettext_noop("Sets how binary values are to be encoded in XML."),
-                       gettext_noop("Valid values are BASE64 and HEX.")
-               },
-               &xmlbinary_string,
-               "base64", assign_xmlbinary, NULL
-       },
-
-       {
-               {"xmloption", PGC_USERSET, CLIENT_CONN_STATEMENT,
-                       gettext_noop("Sets whether XML data in implicit parsing and serialization "
-                                                "operations is to be considered as documents or content fragments."),
-                       gettext_noop("Valid values are DOCUMENT and CONTENT.")
-               },
-               &xmloption_string,
-               "content", assign_xmloption, NULL
-       },
-
        {
                {"default_text_search_config", PGC_USERSET, CLIENT_CONN_LOCALE,
                        gettext_noop("Sets default text search configuration."),
@@ -2524,6 +2512,25 @@ static struct config_enum ConfigureNamesEnum[] =
                assign_session_replication_role, NULL
        },
 
+       {
+               {"xmlbinary", PGC_USERSET, CLIENT_CONN_STATEMENT,
+                       gettext_noop("Sets how binary values are to be encoded in XML."),
+                       gettext_noop("Valid values are BASE64 and HEX.")
+               },
+               &xmlbinary,
+               XMLBINARY_BASE64, xmlbinary_options, NULL, NULL
+       },
+
+       {
+               {"xmloption", PGC_USERSET, CLIENT_CONN_STATEMENT,
+                       gettext_noop("Sets whether XML data in implicit parsing and serialization "
+                                                "operations is to be considered as documents or content fragments."),
+                       gettext_noop("Valid values are DOCUMENT and CONTENT.")
+               },
+               &xmloption,
+               XMLOPTION_CONTENT, xmloption_options, NULL, NULL
+       },
+
 
        /* End-of-list marker */
        {
@@ -7172,42 +7179,6 @@ pg_timezone_abbrev_initialize(void)
        }
 }
 
-static const char *
-assign_xmlbinary(const char *newval, bool doit, GucSource source)
-{
-       XmlBinaryType xb;
-
-       if (pg_strcasecmp(newval, "base64") == 0)
-               xb = XMLBINARY_BASE64;
-       else if (pg_strcasecmp(newval, "hex") == 0)
-               xb = XMLBINARY_HEX;
-       else
-               return NULL;                    /* reject */
-
-       if (doit)
-               xmlbinary = xb;
-
-       return newval;
-}
-
-static const char *
-assign_xmloption(const char *newval, bool doit, GucSource source)
-{
-       XmlOptionType xo;
-
-       if (pg_strcasecmp(newval, "document") == 0)
-               xo = XMLOPTION_DOCUMENT;
-       else if (pg_strcasecmp(newval, "content") == 0)
-               xo = XMLOPTION_CONTENT;
-       else
-               return NULL;                    /* reject */
-
-       if (doit)
-               xmloption = xo;
-
-       return newval;
-}
-
 static const char *
 show_archive_command(void)
 {
index 99a46f8ef765fa9d8cbd50321fd50bd7962b35d0..0111bd3e082720abe4380316523579f37779c6f3 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/utils/xml.h,v 1.23 2008/01/15 18:57:00 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/xml.h,v 1.24 2008/04/04 08:33:15 mha Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -83,8 +83,8 @@ typedef enum
        XMLBINARY_HEX
 } XmlBinaryType;
 
-extern XmlBinaryType xmlbinary;
+extern int xmlbinary; /* XmlBinaryType, but int for guc enum */
 
-extern XmlOptionType xmloption;
+extern int xmloption; /* XmlOptionType, but int for guc enum */
 
 #endif   /* XML_H */