Re-allow underscore as first character of custom GUC names.
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 23 Feb 2022 16:10:46 +0000 (11:10 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 23 Feb 2022 16:10:46 +0000 (11:10 -0500)
Commit 3db826bd5 intended that valid_custom_variable_name's
rules for valid identifiers match those of scan.l.  However,
I (tgl) had some kind of brain fade and put "_" in the wrong
list.

Fix by Japin Li, per bug #17415 from Daniel Polski.

Discussion: https://postgr.es/m/17415-ebdb683d7e09a51c@postgresql.org

src/backend/utils/misc/guc.c

index e4afd07bfe1dad0ddd821d8baa4571ec771bfaf6..bf7ec0d4666022ccab930f1172dd0eba16bc1adf 100644 (file)
@@ -5474,13 +5474,13 @@ valid_custom_variable_name(const char *name)
            name_start = true;
        }
        else if (strchr("ABCDEFGHIJKLMNOPQRSTUVWXYZ"
-                       "abcdefghijklmnopqrstuvwxyz", *p) != NULL ||
+                       "abcdefghijklmnopqrstuvwxyz_", *p) != NULL ||
                 IS_HIGHBIT_SET(*p))
        {
            /* okay as first or non-first character */
            name_start = false;
        }
-       else if (!name_start && strchr("0123456789_$", *p) != NULL)
+       else if (!name_start && strchr("0123456789$", *p) != NULL)
             /* okay as non-first character */ ;
        else
            return false;