summaryrefslogtreecommitdiffstats
path: root/sqlglot/dialects/spark.py
diff options
context:
space:
mode:
Diffstat (limited to 'sqlglot/dialects/spark.py')
-rw-r--r--sqlglot/dialects/spark.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/sqlglot/dialects/spark.py b/sqlglot/dialects/spark.py
index 7c8982b..a4435f6 100644
--- a/sqlglot/dialects/spark.py
+++ b/sqlglot/dialects/spark.py
@@ -38,9 +38,15 @@ class Spark(Spark2):
class Parser(Spark2.Parser):
FUNCTIONS = {
**Spark2.Parser.FUNCTIONS,
+ "ANY_VALUE": lambda args: exp.AnyValue(
+ this=seq_get(args, 0), ignore_nulls=seq_get(args, 1)
+ ),
"DATEDIFF": _parse_datediff,
}
+ FUNCTION_PARSERS = Spark2.Parser.FUNCTION_PARSERS.copy()
+ FUNCTION_PARSERS.pop("ANY_VALUE")
+
class Generator(Spark2.Generator):
TYPE_MAPPING = {
**Spark2.Generator.TYPE_MAPPING,
@@ -56,9 +62,13 @@ class Spark(Spark2):
"DATEADD", e.args.get("unit") or "DAY", e.expression, e.this
),
}
+ TRANSFORMS.pop(exp.AnyValue)
TRANSFORMS.pop(exp.DateDiff)
TRANSFORMS.pop(exp.Group)
+ def anyvalue_sql(self, expression: exp.AnyValue) -> str:
+ return self.function_fallback_sql(expression)
+
def datediff_sql(self, expression: exp.DateDiff) -> str:
unit = self.sql(expression, "unit")
end = self.sql(expression, "this")