Adding upstream version 23.13.1.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
5d33af745d
commit
e47608846f
85 changed files with 53899 additions and 50390 deletions
|
@ -289,6 +289,7 @@ class Snowflake(Dialect):
|
|||
SUPPORTS_SEMI_ANTI_JOIN = False
|
||||
PREFER_CTE_ALIAS_COLUMN = True
|
||||
TABLESAMPLE_SIZE_IS_PERCENT = True
|
||||
COPY_PARAMS_ARE_CSV = False
|
||||
|
||||
TIME_MAPPING = {
|
||||
"YYYY": "%Y",
|
||||
|
@ -439,7 +440,7 @@ class Snowflake(Dialect):
|
|||
|
||||
PROPERTY_PARSERS = {
|
||||
**parser.Parser.PROPERTY_PARSERS,
|
||||
"LOCATION": lambda self: self._parse_location(),
|
||||
"LOCATION": lambda self: self._parse_location_property(),
|
||||
}
|
||||
|
||||
SHOW_PARSERS = {
|
||||
|
@ -675,10 +676,13 @@ class Snowflake(Dialect):
|
|||
self._match_text_seq("WITH")
|
||||
return self.expression(exp.SwapTable, this=self._parse_table(schema=True))
|
||||
|
||||
def _parse_location(self) -> exp.LocationProperty:
|
||||
def _parse_location_property(self) -> exp.LocationProperty:
|
||||
self._match(TokenType.EQ)
|
||||
return self.expression(exp.LocationProperty, this=self._parse_location_path())
|
||||
|
||||
def _parse_file_location(self) -> t.Optional[exp.Expression]:
|
||||
return self._parse_table_parts()
|
||||
|
||||
def _parse_location_path(self) -> exp.Var:
|
||||
parts = [self._advance_any(ignore_reserved=True)]
|
||||
|
||||
|
@ -715,10 +719,7 @@ class Snowflake(Dialect):
|
|||
"SQL_DOUBLE": TokenType.DOUBLE,
|
||||
"SQL_VARCHAR": TokenType.VARCHAR,
|
||||
"STORAGE INTEGRATION": TokenType.STORAGE_INTEGRATION,
|
||||
"TIMESTAMP_LTZ": TokenType.TIMESTAMPLTZ,
|
||||
"TIMESTAMP_NTZ": TokenType.TIMESTAMP,
|
||||
"TIMESTAMP_TZ": TokenType.TIMESTAMPTZ,
|
||||
"TIMESTAMPNTZ": TokenType.TIMESTAMP,
|
||||
"TOP": TokenType.TOP,
|
||||
}
|
||||
|
||||
|
@ -745,6 +746,8 @@ class Snowflake(Dialect):
|
|||
JSON_KEY_VALUE_PAIR_SEP = ","
|
||||
INSERT_OVERWRITE = " OVERWRITE INTO"
|
||||
STRUCT_DELIMITER = ("(", ")")
|
||||
COPY_PARAMS_ARE_WRAPPED = False
|
||||
COPY_PARAMS_EQ_REQUIRED = True
|
||||
|
||||
TRANSFORMS = {
|
||||
**generator.Generator.TRANSFORMS,
|
||||
|
@ -845,7 +848,6 @@ class Snowflake(Dialect):
|
|||
**generator.Generator.TYPE_MAPPING,
|
||||
exp.DataType.Type.NESTED: "OBJECT",
|
||||
exp.DataType.Type.STRUCT: "OBJECT",
|
||||
exp.DataType.Type.TIMESTAMP: "TIMESTAMPNTZ",
|
||||
}
|
||||
|
||||
STAR_MAPPING = {
|
||||
|
@ -1038,3 +1040,11 @@ class Snowflake(Dialect):
|
|||
values.append(e)
|
||||
|
||||
return self.func("OBJECT_CONSTRUCT", *flatten(zip(keys, values)))
|
||||
|
||||
def copyparameter_sql(self, expression: exp.CopyParameter) -> str:
|
||||
option = self.sql(expression, "this")
|
||||
if option.upper() == "FILE_FORMAT":
|
||||
values = self.expressions(expression, key="expression", flat=True, sep=" ")
|
||||
return f"{option} = ({values})"
|
||||
|
||||
return super().copyparameter_sql(expression)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue