diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-09-07 11:39:48 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-09-07 11:39:48 +0000 |
commit | f73e9af131151f1e058446361c35b05c4c90bf10 (patch) | |
tree | ed425b89f12d3f5e4709290bdc03d876f365bc97 /sqlglot/dialects/dialect.py | |
parent | Releasing debian version 17.12.0-1. (diff) | |
download | sqlglot-f73e9af131151f1e058446361c35b05c4c90bf10.tar.xz sqlglot-f73e9af131151f1e058446361c35b05c4c90bf10.zip |
Merging upstream version 18.2.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'sqlglot/dialects/dialect.py')
-rw-r--r-- | sqlglot/dialects/dialect.py | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/sqlglot/dialects/dialect.py b/sqlglot/dialects/dialect.py index 132496f..1bfbfef 100644 --- a/sqlglot/dialects/dialect.py +++ b/sqlglot/dialects/dialect.py @@ -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')}" |