diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2021-12-27 16:01:10 -0500 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2021-12-27 16:01:10 -0500 |
commit | cab5b9ab2c066ba904f13de2681872dcda31e207 (patch) | |
tree | c559d1f2e8c9546c2808cd663a77d8d4d3b927a5 /src/backend/utils/misc/guc.c | |
parent | 5609cc01c69b80f8788771dc6f5696a459469119 (diff) | |
download | postgresql-cab5b9ab2c066ba904f13de2681872dcda31e207.tar.gz postgresql-cab5b9ab2c066ba904f13de2681872dcda31e207.zip |
Revert changes about warnings/errors for placeholders.
Revert commits 5609cc01c, 2ed8a8cc5, and 75d22069e until we have
a less broken idea of how this should work in parallel workers.
Per buildfarm.
Discussion: https://postgr.es/m/1640909.1640638123@sss.pgh.pa.us
Diffstat (limited to 'src/backend/utils/misc/guc.c')
-rw-r--r-- | src/backend/utils/misc/guc.c | 63 |
1 files changed, 12 insertions, 51 deletions
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index d2390043479..f9504d3aec4 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -148,8 +148,6 @@ extern bool optimize_bounded_sort; static int GUC_check_errcode_value; -static List *reserved_class_prefix = NIL; - /* global variables for check hook support */ char *GUC_check_errmsg_string; char *GUC_check_errdetail_string; @@ -5569,44 +5567,18 @@ find_option(const char *name, bool create_placeholders, bool skip_errors, * doesn't contain a separator, don't assume that it was meant to be a * placeholder. */ - const char *sep = strchr(name, GUC_QUALIFIER_SEPARATOR); - - if (sep != NULL) + if (strchr(name, GUC_QUALIFIER_SEPARATOR) != NULL) { - size_t classLen = sep - name; - ListCell *lc; - - /* The name must be syntactically acceptable ... */ - if (!valid_custom_variable_name(name)) - { - if (!skip_errors) - ereport(elevel, - (errcode(ERRCODE_INVALID_NAME), - errmsg("invalid configuration parameter name \"%s\"", - name), - errdetail("Custom parameter names must be two or more simple identifiers separated by dots."))); - return NULL; - } - /* ... and it must not match any previously-reserved prefix */ - foreach(lc, reserved_class_prefix) - { - const char *rcprefix = lfirst(lc); - - if (strlen(rcprefix) == classLen && - strncmp(name, rcprefix, classLen) == 0) - { - if (!skip_errors) - ereport(elevel, - (errcode(ERRCODE_INVALID_NAME), - errmsg("invalid configuration parameter name \"%s\"", - name), - errdetail("\"%s\" is a reserved prefix.", - rcprefix))); - return NULL; - } - } - /* OK, create it */ - return add_placeholder_variable(name, elevel); + if (valid_custom_variable_name(name)) + return add_placeholder_variable(name, elevel); + /* A special error message seems desirable here */ + if (!skip_errors) + ereport(elevel, + (errcode(ERRCODE_INVALID_NAME), + errmsg("invalid configuration parameter name \"%s\"", + name), + errdetail("Custom parameter names must be two or more simple identifiers separated by dots."))); + return NULL; } } @@ -9360,21 +9332,15 @@ DefineCustomEnumVariable(const char *name, } /* - * Mark the given GUC prefix as "reserved". - * - * This prints warnings if there are any existing placeholders matching - * the prefix, and then prevents new ones from being created. * Extensions should call this after they've defined all of their custom * GUCs, to help catch misspelled config-file entries. */ void -MarkGUCPrefixReserved(const char *className) +EmitWarningsOnPlaceholders(const char *className) { int classLen = strlen(className); int i; - MemoryContext oldcontext; - /* Check for existing placeholders. */ for (i = 0; i < num_guc_variables; i++) { struct config_generic *var = guc_variables[i]; @@ -9389,11 +9355,6 @@ MarkGUCPrefixReserved(const char *className) var->name))); } } - - /* And remember the name so we can prevent future mistakes. */ - oldcontext = MemoryContextSwitchTo(TopMemoryContext); - reserved_class_prefix = lappend(reserved_class_prefix, pstrdup(className)); - MemoryContextSwitchTo(oldcontext); } |