Merging upstream version 23.7.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
ebba7c6a18
commit
d26905e4af
187 changed files with 86502 additions and 71397 deletions
|
@ -92,23 +92,6 @@ class Redshift(Postgres):
|
|||
|
||||
return self.expression(exp.Pivot, this=table, unpivot=True) if unpivot else table
|
||||
|
||||
def _parse_types(
|
||||
self, check_func: bool = False, schema: bool = False, allow_identifiers: bool = True
|
||||
) -> t.Optional[exp.Expression]:
|
||||
this = super()._parse_types(
|
||||
check_func=check_func, schema=schema, allow_identifiers=allow_identifiers
|
||||
)
|
||||
|
||||
if (
|
||||
isinstance(this, exp.DataType)
|
||||
and this.is_type("varchar")
|
||||
and this.expressions
|
||||
and this.expressions[0].this == exp.column("MAX")
|
||||
):
|
||||
this.set("expressions", [exp.var("MAX")])
|
||||
|
||||
return this
|
||||
|
||||
def _parse_convert(
|
||||
self, strict: bool, safe: t.Optional[bool] = None
|
||||
) -> t.Optional[exp.Expression]:
|
||||
|
@ -153,6 +136,7 @@ class Redshift(Postgres):
|
|||
NVL2_SUPPORTED = True
|
||||
LAST_DAY_SUPPORTS_DATE_PART = False
|
||||
CAN_IMPLEMENT_ARRAY_ANY = False
|
||||
MULTI_ARG_DISTINCT = True
|
||||
|
||||
TYPE_MAPPING = {
|
||||
**Postgres.Generator.TYPE_MAPPING,
|
||||
|
@ -187,9 +171,13 @@ class Redshift(Postgres):
|
|||
),
|
||||
exp.SortKeyProperty: lambda self,
|
||||
e: f"{'COMPOUND ' if e.args['compound'] else ''}SORTKEY({self.format_args(*e.this)})",
|
||||
exp.StartsWith: lambda self,
|
||||
e: f"{self.sql(e.this)} LIKE {self.sql(e.expression)} || '%'",
|
||||
exp.TableSample: no_tablesample_sql,
|
||||
exp.TsOrDsAdd: date_delta_sql("DATEADD"),
|
||||
exp.TsOrDsDiff: date_delta_sql("DATEDIFF"),
|
||||
exp.UnixToTime: lambda self,
|
||||
e: f"(TIMESTAMP 'epoch' + {self.sql(e.this)} * INTERVAL '1 SECOND')",
|
||||
}
|
||||
|
||||
# Postgres maps exp.Pivot to no_pivot_sql, but Redshift support pivots
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue