diff --git a/src/backend/utils/adt/xml.c b/src/backend/utils/adt/xml.c index c4960bcecf..ce1e4a4fdd 100644 --- a/src/backend/utils/adt/xml.c +++ b/src/backend/utils/adt/xml.c @@ -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 diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 04934abd30..63615a885a 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.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) { diff --git a/src/include/utils/xml.h b/src/include/utils/xml.h index 99a46f8ef7..0111bd3e08 100644 --- a/src/include/utils/xml.h +++ b/src/include/utils/xml.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/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 */