Adding upstream version 25.8.1.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
8356f462bb
commit
a500eebbbb
61 changed files with 50550 additions and 50354 deletions
|
@ -158,7 +158,7 @@ def _struct_sql(self: DuckDB.Generator, expression: exp.Struct) -> str:
|
|||
|
||||
def _datatype_sql(self: DuckDB.Generator, expression: exp.DataType) -> str:
|
||||
if expression.is_type("array"):
|
||||
return f"{self.expressions(expression, flat=True)}[]"
|
||||
return f"{self.expressions(expression, flat=True)}[{self.expressions(expression, key='values', flat=True)}]"
|
||||
|
||||
# Type TIMESTAMP / TIME WITH TIME ZONE does not support any modifiers
|
||||
if expression.is_type("timestamptz", "timetz"):
|
||||
|
@ -186,9 +186,14 @@ def _unix_to_time_sql(self: DuckDB.Generator, expression: exp.UnixToTime) -> str
|
|||
return self.func("TO_TIMESTAMP", exp.Div(this=timestamp, expression=exp.func("POW", 10, scale)))
|
||||
|
||||
|
||||
WRAPPED_JSON_EXTRACT_EXPRESSIONS = (exp.Binary, exp.Bracket, exp.In)
|
||||
|
||||
|
||||
def _arrow_json_extract_sql(self: DuckDB.Generator, expression: JSON_EXTRACT_TYPE) -> str:
|
||||
arrow_sql = arrow_json_extract_sql(self, expression)
|
||||
if not expression.same_parent and isinstance(expression.parent, (exp.Binary, exp.Bracket)):
|
||||
if not expression.same_parent and isinstance(
|
||||
expression.parent, WRAPPED_JSON_EXTRACT_EXPRESSIONS
|
||||
):
|
||||
arrow_sql = self.wrap(arrow_sql)
|
||||
return arrow_sql
|
||||
|
||||
|
@ -238,14 +243,15 @@ class DuckDB(Dialect):
|
|||
"POSITIONAL": TokenType.POSITIONAL,
|
||||
"SIGNED": TokenType.INT,
|
||||
"STRING": TokenType.TEXT,
|
||||
"UBIGINT": TokenType.UBIGINT,
|
||||
"UINTEGER": TokenType.UINT,
|
||||
"USMALLINT": TokenType.USMALLINT,
|
||||
"UTINYINT": TokenType.UTINYINT,
|
||||
"SUMMARIZE": TokenType.SUMMARIZE,
|
||||
"TIMESTAMP_S": TokenType.TIMESTAMP_S,
|
||||
"TIMESTAMP_MS": TokenType.TIMESTAMP_MS,
|
||||
"TIMESTAMP_NS": TokenType.TIMESTAMP_NS,
|
||||
"TIMESTAMP_US": TokenType.TIMESTAMP,
|
||||
"UBIGINT": TokenType.UBIGINT,
|
||||
"UINTEGER": TokenType.UINT,
|
||||
"USMALLINT": TokenType.USMALLINT,
|
||||
"UTINYINT": TokenType.UTINYINT,
|
||||
"VARCHAR": TokenType.TEXT,
|
||||
}
|
||||
KEYWORDS.pop("/*+")
|
||||
|
@ -744,10 +750,9 @@ class DuckDB(Dialect):
|
|||
def generateseries_sql(self, expression: exp.GenerateSeries) -> str:
|
||||
# GENERATE_SERIES(a, b) -> [a, b], RANGE(a, b) -> [a, b)
|
||||
if expression.args.get("is_end_exclusive"):
|
||||
expression.set("is_end_exclusive", None)
|
||||
return rename_func("RANGE")(self, expression)
|
||||
|
||||
return super().generateseries_sql(expression)
|
||||
return self.function_fallback_sql(expression)
|
||||
|
||||
def bracket_sql(self, expression: exp.Bracket) -> str:
|
||||
this = expression.this
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue