1
0
Fork 0

Merging upstream version 25.16.1.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-13 21:52:32 +01:00
parent 7688e2bdf8
commit bad79d1f7c
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
110 changed files with 75353 additions and 68092 deletions

View file

@ -302,6 +302,9 @@ class MySQL(Dialect):
FUNCTIONS = {
**parser.Parser.FUNCTIONS,
"CONVERT_TZ": lambda args: exp.ConvertTimezone(
source_tz=seq_get(args, 1), target_tz=seq_get(args, 2), timestamp=seq_get(args, 0)
),
"DATE": lambda args: exp.TsOrDsToDate(this=seq_get(args, 0)),
"DATE_ADD": build_date_delta_with_interval(exp.DateAdd),
"DATE_FORMAT": build_formatted_time(exp.TimeToStr, "mysql"),
@ -724,6 +727,7 @@ class MySQL(Dialect):
transforms.eliminate_semi_and_anti_joins,
transforms.eliminate_qualify,
transforms.eliminate_full_outer_join,
transforms.unnest_generate_date_array_using_recursive_cte,
]
),
exp.StrPosition: strposition_to_locate_sql,
@ -1213,3 +1217,10 @@ class MySQL(Dialect):
dateadd = build_date_delta_with_interval(exp.DateAdd)([start_ts, interval])
return self.sql(dateadd)
def converttimezone_sql(self, expression: exp.ConvertTimezone) -> str:
from_tz = expression.args.get("source_tz")
to_tz = expression.args.get("target_tz")
dt = expression.args.get("timestamp")
return self.func("CONVERT_TZ", dt, from_tz, to_tz)