Re-allow underscore as first character of custom GUC names.
authorTom Lane
Wed, 23 Feb 2022 16:10:46 +0000 (11:10 -0500)
committerTom Lane
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 b1d8317aa22bb02c02adead0c0ef518c1065a6eb..5eeb6500b0e58ed7a412ecd7676f0d35011b6889 100644 (file)
@@ -5390,13 +5390,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;