1
0
Fork 0

Adding upstream version 26.0.0.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-13 21:58:31 +01:00
parent 2ebe732d69
commit 522374f608
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
57 changed files with 26226 additions and 25977 deletions

View file

@ -453,6 +453,7 @@ class Generator(metaclass=_Generator):
ARRAY_SIZE_DIM_REQUIRED: t.Optional[bool] = None
TYPE_MAPPING = {
exp.DataType.Type.DATETIME2: "TIMESTAMP",
exp.DataType.Type.NCHAR: "CHAR",
exp.DataType.Type.NVARCHAR: "VARCHAR",
exp.DataType.Type.MEDIUMTEXT: "TEXT",
@ -463,6 +464,7 @@ class Generator(metaclass=_Generator):
exp.DataType.Type.TINYBLOB: "BLOB",
exp.DataType.Type.INET: "INET",
exp.DataType.Type.ROWVERSION: "VARBINARY",
exp.DataType.Type.SMALLDATETIME: "TIMESTAMP",
}
TIME_PART_SINGULARS = {
@ -2829,13 +2831,14 @@ class Generator(metaclass=_Generator):
def foreignkey_sql(self, expression: exp.ForeignKey) -> str:
expressions = self.expressions(expression, flat=True)
expressions = f" ({expressions})" if expressions else ""
reference = self.sql(expression, "reference")
reference = f" {reference}" if reference else ""
delete = self.sql(expression, "delete")
delete = f" ON DELETE {delete}" if delete else ""
update = self.sql(expression, "update")
update = f" ON UPDATE {update}" if update else ""
return f"FOREIGN KEY ({expressions}){reference}{delete}{update}"
return f"FOREIGN KEY{expressions}{reference}{delete}{update}"
def primarykey_sql(self, expression: exp.ForeignKey) -> str:
expressions = self.expressions(expression, flat=True)
@ -3693,6 +3696,9 @@ class Generator(metaclass=_Generator):
then = self.sql(then_expression)
return f"WHEN {matched}{source}{condition} THEN {then}"
def whens_sql(self, expression: exp.Whens) -> str:
return self.expressions(expression, sep=" ", indent=False)
def merge_sql(self, expression: exp.Merge) -> str:
table = expression.this
table_alias = ""
@ -3705,16 +3711,17 @@ class Generator(metaclass=_Generator):
this = self.sql(table)
using = f"USING {self.sql(expression, 'using')}"
on = f"ON {self.sql(expression, 'on')}"
expressions = self.expressions(expression, sep=" ", indent=False)
whens = self.sql(expression, "whens")
returning = self.sql(expression, "returning")
if returning:
expressions = f"{expressions}{returning}"
whens = f"{whens}{returning}"
sep = self.sep()
return self.prepend_ctes(
expression,
f"MERGE INTO {this}{table_alias}{sep}{using}{sep}{on}{sep}{expressions}",
f"MERGE INTO {this}{table_alias}{sep}{using}{sep}{on}{sep}{whens}",
)
@unsupported_args("format")
@ -4056,7 +4063,7 @@ class Generator(metaclass=_Generator):
if to.this == exp.DataType.Type.DATE:
transformed = exp.StrToDate(this=value, format=fmt)
elif to.this == exp.DataType.Type.DATETIME:
elif to.this in (exp.DataType.Type.DATETIME, exp.DataType.Type.DATETIME2):
transformed = exp.StrToTime(this=value, format=fmt)
elif to.this in self.PARAMETERIZABLE_TEXT_TYPES:
transformed = cast(this=exp.TimeToStr(this=value, format=fmt), to=to, safe=safe)