diff --git a/pkg/sqlcmd/variables.go b/pkg/sqlcmd/variables.go index e86a5b5e..32cfcdd6 100644 --- a/pkg/sqlcmd/variables.go +++ b/pkg/sqlcmd/variables.go @@ -285,7 +285,7 @@ func ValidIdentifier(name string) error { first := true for _, c := range name { - if !unicode.IsLetter(c) && (first || (!unicode.IsDigit(c) && !strings.ContainsRune(validVariableRunes, c))) { + if !unicode.IsLetter(c) && c != '_' && (first || (!unicode.IsDigit(c) && !strings.ContainsRune(validVariableRunes, c))) { return fmt.Errorf("Invalid variable identifier %s", name) } first = false diff --git a/pkg/sqlcmd/variables_test.go b/pkg/sqlcmd/variables_test.go index cf4de871..b30cc53f 100644 --- a/pkg/sqlcmd/variables_test.go +++ b/pkg/sqlcmd/variables_test.go @@ -104,6 +104,7 @@ func TestValidIdentifier(t *testing.T) { {"A1", true}, {"A+", false}, {"A-_b", true}, + {"__X", true}, } for _, tst := range tests { err := ValidIdentifier(tst.raw)