diff options
Diffstat (limited to 'src/backend/utils/misc/guc.c')
-rw-r--r-- | src/backend/utils/misc/guc.c | 91 |
1 files changed, 31 insertions, 60 deletions
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 04934abd306..63615a885a5 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -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; @@ -2383,25 +2390,6 @@ static struct config_string ConfigureNamesString[] = }, { - {"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."), NULL @@ -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 */ { @@ -7173,42 +7180,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) { if (XLogArchiveMode) |