From ae901ac218e3bade9b0ba8c64e7cbe3f486a67ac Mon Sep 17 00:00:00 2001 From: funcpp Date: Tue, 31 Mar 2026 13:31:15 +0900 Subject: [PATCH] Enable numeric-prefix identifiers for Databricks dialect Databricks, built on Spark SQL, allows identifiers that start with digits. The Spark SQL ANTLR lexer defines IDENTIFIER as (UNICODE_LETTER | DIGIT | '_')+, with no restriction on the first character. Enable the existing supports_numeric_prefix() for DatabricksDialect. --- src/dialect/databricks.rs | 4 ++++ tests/sqlparser_databricks.rs | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/src/dialect/databricks.rs b/src/dialect/databricks.rs index 55e4f56cc..64c40211e 100644 --- a/src/dialect/databricks.rs +++ b/src/dialect/databricks.rs @@ -39,6 +39,10 @@ impl Dialect for DatabricksDialect { matches!(ch, 'a'..='z' | 'A'..='Z' | '0'..='9' | '_') } + fn supports_numeric_prefix(&self) -> bool { + true + } + fn supports_filter_during_aggregation(&self) -> bool { true } diff --git a/tests/sqlparser_databricks.rs b/tests/sqlparser_databricks.rs index 79b3d0654..e9b19fcce 100644 --- a/tests/sqlparser_databricks.rs +++ b/tests/sqlparser_databricks.rs @@ -644,3 +644,10 @@ fn parse_databricks_json_accessor() { "SELECT raw:store.bicycle.price::DOUBLE FROM store_data", ); } + +#[test] +fn parse_numeric_prefix_identifier() { + databricks().verified_stmt("SELECT * FROM catalog.schema.1st_table"); + + databricks().verified_stmt("SELECT * FROM a.b.1c"); +}