diff --git a/src/dialect/databricks.rs b/src/dialect/databricks.rs index 3bc187a7f..00ab6e941 100644 --- a/src/dialect/databricks.rs +++ b/src/dialect/databricks.rs @@ -113,4 +113,24 @@ impl Dialect for DatabricksDialect { fn supports_select_item_multi_column_alias(&self) -> bool { true } + + fn supports_map_literal_with_angle_brackets(&self) -> bool { + true + } + + fn supports_string_literal_backslash_escape(&self) -> bool { + true + } + + fn supports_select_wildcard_replace(&self) -> bool { + true + } + + fn supports_from_first_select(&self) -> bool { + true + } + + fn supports_pipe_operator(&self) -> bool { + true + } } diff --git a/tests/sqlparser_common.rs b/tests/sqlparser_common.rs index 5792cf007..1833ccfc8 100644 --- a/tests/sqlparser_common.rs +++ b/tests/sqlparser_common.rs @@ -17551,7 +17551,7 @@ fn parse_pipeline_operator_negative_tests() { // Test that CALL with invalid function syntax fails assert!(dialects - .parse_sql_statements("SELECT * FROM users |> CALL 123invalid") + .parse_sql_statements("SELECT * FROM users |> CALL 123 invalid") .is_err()); // Test that CALL with malformed arguments fails diff --git a/tests/sqlparser_databricks.rs b/tests/sqlparser_databricks.rs index 7c582546f..62068ef51 100644 --- a/tests/sqlparser_databricks.rs +++ b/tests/sqlparser_databricks.rs @@ -737,3 +737,15 @@ fn parse_cte_without_as() { .parse_sql_statements("WITH cte (SELECT 1) SELECT * FROM cte") .is_err()); } + +#[test] +fn parse_databricks_query_entry_points() { + databricks().verified_stmt("CREATE TABLE t (attrs MAP>)"); + databricks().one_statement_parses_to(r#"SELECT 'it\'s'"#, "SELECT 'it''s'"); + databricks().verified_stmt("SELECT * REPLACE (upper(name) AS name) FROM source"); + databricks().verified_stmt( + "CREATE VIEW cross_product AS FROM main.raw.left_table, main.raw.right_table", + ); + databricks() + .verified_stmt("CREATE VIEW filtered AS FROM main.raw.source |> WHERE id > 0 |> SELECT id"); +}