Turn xmlbinary and xmloption GUC variables into enumsTurn xmlbinary and
authorMagnus Hagander
Fri, 4 Apr 2008 08:33:15 +0000 (08:33 +0000)
committerMagnus Hagander
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 .
  *
  * 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 */