aboutsummaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/utils/misc/guc.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 87bc6887046..68b62d523dc 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -5368,13 +5368,14 @@ add_guc_variable(struct config_generic *var, int elevel)
/*
* Decide whether a proposed custom variable name is allowed.
*
- * It must be "identifier.identifier", where the rules for what is an
- * identifier agree with scan.l.
+ * It must be two or more identifiers separated by dots, where the rules
+ * for what is an identifier agree with scan.l. (If you change this rule,
+ * adjust the errdetail in find_option().)
*/
static bool
valid_custom_variable_name(const char *name)
{
- int num_sep = 0;
+ bool saw_sep = false;
bool name_start = true;
for (const char *p = name; *p; p++)
@@ -5383,7 +5384,7 @@ valid_custom_variable_name(const char *name)
{
if (name_start)
return false; /* empty name component */
- num_sep++;
+ saw_sep = true;
name_start = true;
}
else if (strchr("ABCDEFGHIJKLMNOPQRSTUVWXYZ"
@@ -5400,8 +5401,8 @@ valid_custom_variable_name(const char *name)
}
if (name_start)
return false; /* empty name component */
- /* OK if we had exactly one separator */
- return (num_sep == 1);
+ /* OK if we found at least one separator */
+ return saw_sep;
}
/*
@@ -5516,7 +5517,7 @@ find_option(const char *name, bool create_placeholders, bool skip_errors,
(errcode(ERRCODE_INVALID_NAME),
errmsg("invalid configuration parameter name \"%s\"",
name),
- errdetail("Custom parameter names must be of the form \"identifier.identifier\".")));
+ errdetail("Custom parameter names must be two or more simple identifiers separated by dots.")));
return NULL;
}
}