summaryrefslogtreecommitdiffstats
path: root/sqlglot/dialects/dialect.py
diff options
context:
space:
mode:
Diffstat (limited to 'sqlglot/dialects/dialect.py')
-rw-r--r--sqlglot/dialects/dialect.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/sqlglot/dialects/dialect.py b/sqlglot/dialects/dialect.py
index c87f8d8..e788852 100644
--- a/sqlglot/dialects/dialect.py
+++ b/sqlglot/dialects/dialect.py
@@ -198,7 +198,7 @@ class Dialect(metaclass=_Dialect):
def rename_func(name):
def _rename(self, expression):
args = flatten(expression.args.values())
- return f"{name}({self.format_args(*args)})"
+ return f"{self.normalize_func(name)}({self.format_args(*args)})"
return _rename
@@ -217,11 +217,11 @@ def if_sql(self, expression):
def arrow_json_extract_sql(self, expression):
- return f"{self.sql(expression, 'this')}->{self.sql(expression, 'path')}"
+ return self.binary(expression, "->")
def arrow_json_extract_scalar_sql(self, expression):
- return f"{self.sql(expression, 'this')}->>{self.sql(expression, 'path')}"
+ return self.binary(expression, "->>")
def inline_array_sql(self, expression):
@@ -373,3 +373,11 @@ def strposition_to_local_sql(self, expression):
expression.args.get("substr"), expression.this, expression.args.get("position")
)
return f"LOCATE({args})"
+
+
+def timestrtotime_sql(self, expression: exp.TimeStrToTime) -> str:
+ return f"CAST({self.sql(expression, 'this')} AS TIMESTAMP)"
+
+
+def datestrtodate_sql(self, expression: exp.DateStrToDate) -> str:
+ return f"CAST({self.sql(expression, 'this')} AS DATE)"