Merging upstream version 21.0.1.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
3759c601a7
commit
96b10de29a
115 changed files with 66603 additions and 60920 deletions
|
@ -6,7 +6,7 @@ from sqlglot import exp, generator, parser, tokens, transforms
|
|||
from sqlglot.dialects.dialect import (
|
||||
Dialect,
|
||||
NormalizationStrategy,
|
||||
arrow_json_extract_scalar_sql,
|
||||
arrow_json_extract_sql,
|
||||
date_add_interval_sql,
|
||||
datestrtodate_sql,
|
||||
format_time_lambda,
|
||||
|
@ -19,8 +19,8 @@ from sqlglot.dialects.dialect import (
|
|||
no_pivot_sql,
|
||||
no_tablesample_sql,
|
||||
no_trycast_sql,
|
||||
parse_date_delta,
|
||||
parse_date_delta_with_interval,
|
||||
path_to_jsonpath,
|
||||
rename_func,
|
||||
strposition_to_locate_sql,
|
||||
)
|
||||
|
@ -306,6 +306,7 @@ class MySQL(Dialect):
|
|||
format=exp.Literal.string("%B"),
|
||||
),
|
||||
"STR_TO_DATE": _str_to_date,
|
||||
"TIMESTAMPDIFF": parse_date_delta(exp.TimestampDiff),
|
||||
"TO_DAYS": lambda args: exp.paren(
|
||||
exp.DateDiff(
|
||||
this=exp.TsOrDsToDate(this=seq_get(args, 0)),
|
||||
|
@ -357,6 +358,7 @@ class MySQL(Dialect):
|
|||
"CREATE TRIGGER": _show_parser("CREATE TRIGGER", target=True),
|
||||
"CREATE VIEW": _show_parser("CREATE VIEW", target=True),
|
||||
"DATABASES": _show_parser("DATABASES"),
|
||||
"SCHEMAS": _show_parser("DATABASES"),
|
||||
"ENGINE": _show_parser("ENGINE", target=True),
|
||||
"STORAGE ENGINES": _show_parser("ENGINES"),
|
||||
"ENGINES": _show_parser("ENGINES"),
|
||||
|
@ -630,6 +632,8 @@ class MySQL(Dialect):
|
|||
VALUES_AS_TABLE = False
|
||||
NVL2_SUPPORTED = False
|
||||
LAST_DAY_SUPPORTS_DATE_PART = False
|
||||
JSON_TYPE_REQUIRED_FOR_EXTRACTION = True
|
||||
JSON_PATH_BRACKETED_KEY_SUPPORTED = False
|
||||
JSON_KEY_VALUE_PAIR_SEP = ","
|
||||
|
||||
TRANSFORMS = {
|
||||
|
@ -646,10 +650,10 @@ class MySQL(Dialect):
|
|||
exp.DayOfMonth: _remove_ts_or_ds_to_date(rename_func("DAYOFMONTH")),
|
||||
exp.DayOfWeek: _remove_ts_or_ds_to_date(rename_func("DAYOFWEEK")),
|
||||
exp.DayOfYear: _remove_ts_or_ds_to_date(rename_func("DAYOFYEAR")),
|
||||
exp.GetPath: path_to_jsonpath(),
|
||||
exp.GroupConcat: lambda self, e: f"""GROUP_CONCAT({self.sql(e, "this")} SEPARATOR {self.sql(e, "separator") or "','"})""",
|
||||
exp.GroupConcat: lambda self,
|
||||
e: f"""GROUP_CONCAT({self.sql(e, "this")} SEPARATOR {self.sql(e, "separator") or "','"})""",
|
||||
exp.ILike: no_ilike_sql,
|
||||
exp.JSONExtractScalar: arrow_json_extract_scalar_sql,
|
||||
exp.JSONExtractScalar: arrow_json_extract_sql,
|
||||
exp.Max: max_or_greatest,
|
||||
exp.Min: min_or_least,
|
||||
exp.Month: _remove_ts_or_ds_to_date(),
|
||||
|
@ -672,6 +676,9 @@ class MySQL(Dialect):
|
|||
exp.TableSample: no_tablesample_sql,
|
||||
exp.TimeFromParts: rename_func("MAKETIME"),
|
||||
exp.TimestampAdd: date_add_interval_sql("DATE", "ADD"),
|
||||
exp.TimestampDiff: lambda self, e: self.func(
|
||||
"TIMESTAMPDIFF", e.text("unit"), e.expression, e.this
|
||||
),
|
||||
exp.TimestampSub: date_add_interval_sql("DATE", "SUB"),
|
||||
exp.TimeStrToUnix: rename_func("UNIX_TIMESTAMP"),
|
||||
exp.TimeStrToTime: lambda self, e: self.sql(exp.cast(e.this, "datetime", copy=True)),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue