From 1e075e0c3f73ace04e06a6c5d3479b1c174cc15a Mon Sep 17 00:00:00 2001 From: Andrei-hub11 Date: Mon, 21 Jul 2025 15:12:30 -0300 Subject: [PATCH] fix: correct rune handling in shouldQuoteIdentifier --- internal/jet/sql_builder.go | 13 ++----------- internal/jet/sql_builder_test.go | 1 - 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/internal/jet/sql_builder.go b/internal/jet/sql_builder.go index e404527..8764dd7 100644 --- a/internal/jet/sql_builder.go +++ b/internal/jet/sql_builder.go @@ -303,24 +303,15 @@ func integerTypesToString(value interface{}) string { } func shouldQuoteIdentifier(identifier string) bool { - if len(identifier) == 0 { - return true - } - _, err := strconv.ParseInt(identifier, 10, 64) if err == nil { // if it is a number we should quote it return true } - firstChar := rune(identifier[0]) - if unicode.IsNumber(firstChar) { - return true - } - // check if contains non ascii characters - for _, c := range identifier { - if unicode.IsNumber(c) || c == '_' { + for i, c := range identifier { + if (unicode.IsNumber(c) && i > 0) || c == '_' { continue } if c > unicode.MaxASCII || !unicode.IsLetter(c) || unicode.IsUpper(c) { diff --git a/internal/jet/sql_builder_test.go b/internal/jet/sql_builder_test.go index f283da6..fc6e326 100644 --- a/internal/jet/sql_builder_test.go +++ b/internal/jet/sql_builder_test.go @@ -60,5 +60,4 @@ func TestShouldQuote(t *testing.T) { require.Equal(t, shouldQuoteIdentifier("Abc_123"), true) require.Equal(t, shouldQuoteIdentifier("DŽƜĐǶ"), true) require.Equal(t, shouldQuoteIdentifier("1test"), true) - require.Equal(t, shouldQuoteIdentifier(""), true) }