Merging upstream version 18.2.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
985db29269
commit
53cf4a81a6
124 changed files with 60313 additions and 50346 deletions
|
@ -109,8 +109,7 @@ class _Dialect(type):
|
|||
for k, v in vars(klass).items()
|
||||
if not callable(v) and not isinstance(v, classmethod) and not k.startswith("__")
|
||||
},
|
||||
"STRING_ESCAPE": klass.tokenizer_class.STRING_ESCAPES[0],
|
||||
"IDENTIFIER_ESCAPE": klass.tokenizer_class.IDENTIFIER_ESCAPES[0],
|
||||
"TOKENIZER_CLASS": klass.tokenizer_class,
|
||||
}
|
||||
|
||||
if enum not in ("", "bigquery"):
|
||||
|
@ -345,7 +344,7 @@ def arrow_json_extract_scalar_sql(
|
|||
|
||||
|
||||
def inline_array_sql(self: Generator, expression: exp.Array) -> str:
|
||||
return f"[{self.expressions(expression)}]"
|
||||
return f"[{self.expressions(expression, flat=True)}]"
|
||||
|
||||
|
||||
def no_ilike_sql(self: Generator, expression: exp.ILike) -> str:
|
||||
|
@ -415,9 +414,9 @@ def str_position_sql(self: Generator, expression: exp.StrPosition) -> str:
|
|||
|
||||
|
||||
def struct_extract_sql(self: Generator, expression: exp.StructExtract) -> str:
|
||||
this = self.sql(expression, "this")
|
||||
struct_key = self.sql(exp.Identifier(this=expression.expression.copy(), quoted=True))
|
||||
return f"{this}.{struct_key}"
|
||||
return (
|
||||
f"{self.sql(expression, 'this')}.{self.sql(exp.to_identifier(expression.expression.name))}"
|
||||
)
|
||||
|
||||
|
||||
def var_map_sql(
|
||||
|
@ -722,3 +721,12 @@ def binary_from_function(expr_type: t.Type[B]) -> t.Callable[[t.List], B]:
|
|||
# Used to represent DATE_TRUNC in Doris, Postgres and Starrocks dialects
|
||||
def parse_timestamp_trunc(args: t.List) -> exp.TimestampTrunc:
|
||||
return exp.TimestampTrunc(this=seq_get(args, 1), unit=seq_get(args, 0))
|
||||
|
||||
|
||||
def any_value_to_max_sql(self: Generator, expression: exp.AnyValue) -> str:
|
||||
return self.func("MAX", expression.this)
|
||||
|
||||
|
||||
# Used to generate JSON_OBJECT with a comma in BigQuery and MySQL instead of colon
|
||||
def json_keyvalue_comma_sql(self, expression: exp.JSONKeyValue) -> str:
|
||||
return f"{self.sql(expression, 'this')}, {self.sql(expression, 'expression')}"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue