Adding upstream version 25.1.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
91ffc387a9
commit
147b6e06e8
79 changed files with 28803 additions and 24929 deletions
|
@ -8,6 +8,7 @@ from sqlglot.dialects.dialect import (
|
|||
NormalizationStrategy,
|
||||
binary_from_function,
|
||||
build_default_decimal_type,
|
||||
build_timestamp_from_parts,
|
||||
date_delta_sql,
|
||||
date_trunc_to_time,
|
||||
datestrtodate_sql,
|
||||
|
@ -236,15 +237,6 @@ def _date_trunc_to_time(args: t.List) -> exp.DateTrunc | exp.TimestampTrunc:
|
|||
return trunc
|
||||
|
||||
|
||||
def _build_timestamp_from_parts(args: t.List) -> exp.Func:
|
||||
if len(args) == 2:
|
||||
# Other dialects don't have the TIMESTAMP_FROM_PARTS(date, time) concept,
|
||||
# so we parse this into Anonymous for now instead of introducing complexity
|
||||
return exp.Anonymous(this="TIMESTAMP_FROM_PARTS", expressions=args)
|
||||
|
||||
return exp.TimestampFromParts.from_arg_list(args)
|
||||
|
||||
|
||||
def _unqualify_unpivot_columns(expression: exp.Expression) -> exp.Expression:
|
||||
"""
|
||||
Snowflake doesn't allow columns referenced in UNPIVOT to be qualified,
|
||||
|
@ -391,8 +383,8 @@ class Snowflake(Dialect):
|
|||
"TIMEDIFF": _build_datediff,
|
||||
"TIMESTAMPADD": _build_date_time_add(exp.DateAdd),
|
||||
"TIMESTAMPDIFF": _build_datediff,
|
||||
"TIMESTAMPFROMPARTS": _build_timestamp_from_parts,
|
||||
"TIMESTAMP_FROM_PARTS": _build_timestamp_from_parts,
|
||||
"TIMESTAMPFROMPARTS": build_timestamp_from_parts,
|
||||
"TIMESTAMP_FROM_PARTS": build_timestamp_from_parts,
|
||||
"TRY_TO_DATE": _build_datetime("TRY_TO_DATE", exp.DataType.Type.DATE, safe=True),
|
||||
"TO_DATE": _build_datetime("TO_DATE", exp.DataType.Type.DATE),
|
||||
"TO_NUMBER": lambda args: exp.ToNumber(
|
||||
|
@ -446,7 +438,7 @@ class Snowflake(Dialect):
|
|||
"LOCATION": lambda self: self._parse_location_property(),
|
||||
}
|
||||
|
||||
TYPE_CONVERTER = {
|
||||
TYPE_CONVERTERS = {
|
||||
# https://docs.snowflake.com/en/sql-reference/data-types-numeric#number
|
||||
exp.DataType.Type.DECIMAL: build_default_decimal_type(precision=38, scale=0),
|
||||
}
|
||||
|
@ -510,15 +502,18 @@ class Snowflake(Dialect):
|
|||
self._retreat(self._index - 1)
|
||||
|
||||
if self._match_text_seq("MASKING", "POLICY"):
|
||||
policy = self._parse_column()
|
||||
return self.expression(
|
||||
exp.MaskingPolicyColumnConstraint,
|
||||
this=self._parse_id_var(),
|
||||
this=policy.to_dot() if isinstance(policy, exp.Column) else policy,
|
||||
expressions=self._match(TokenType.USING)
|
||||
and self._parse_wrapped_csv(self._parse_id_var),
|
||||
)
|
||||
if self._match_text_seq("PROJECTION", "POLICY"):
|
||||
policy = self._parse_column()
|
||||
return self.expression(
|
||||
exp.ProjectionPolicyColumnConstraint, this=self._parse_id_var()
|
||||
exp.ProjectionPolicyColumnConstraint,
|
||||
this=policy.to_dot() if isinstance(policy, exp.Column) else policy,
|
||||
)
|
||||
if self._match(TokenType.TAG):
|
||||
return self.expression(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue