summaryrefslogtreecommitdiffstats
path: root/sqlglot/dialects/databricks.py
diff options
context:
space:
mode:
Diffstat (limited to 'sqlglot/dialects/databricks.py')
-rw-r--r--sqlglot/dialects/databricks.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/sqlglot/dialects/databricks.py b/sqlglot/dialects/databricks.py
index 2f93ee7..138f26c 100644
--- a/sqlglot/dialects/databricks.py
+++ b/sqlglot/dialects/databricks.py
@@ -9,6 +9,8 @@ from sqlglot.tokens import TokenType
class Databricks(Spark):
class Parser(Spark.Parser):
+ LOG_DEFAULTS_TO_LN = True
+
FUNCTIONS = {
**Spark.Parser.FUNCTIONS,
"DATEADD": parse_date_delta(exp.DateAdd),
@@ -16,13 +18,17 @@ class Databricks(Spark):
"DATEDIFF": parse_date_delta(exp.DateDiff),
}
- LOG_DEFAULTS_TO_LN = True
+ FACTOR = {
+ **Spark.Parser.FACTOR,
+ TokenType.COLON: exp.JSONExtract,
+ }
class Generator(Spark.Generator):
TRANSFORMS = {
**Spark.Generator.TRANSFORMS, # type: ignore
exp.DateAdd: generate_date_delta_with_unit_sql,
exp.DateDiff: generate_date_delta_with_unit_sql,
+ exp.JSONExtract: lambda self, e: self.binary(e, ":"),
exp.ToChar: lambda self, e: self.function_fallback_sql(e),
}
TRANSFORMS.pop(exp.Select) # Remove the ELIMINATE_QUALIFY transformation