Adding upstream version 11.3.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
45e5ab6eec
commit
fe959b0137
62 changed files with 26499 additions and 24781 deletions
|
@ -74,6 +74,7 @@ class Teradata(Dialect):
|
|||
|
||||
FUNCTION_PARSERS = {
|
||||
**parser.Parser.FUNCTION_PARSERS, # type: ignore
|
||||
"RANGE_N": lambda self: self._parse_rangen(),
|
||||
"TRANSLATE": lambda self: self._parse_translate(self.STRICT_CAST),
|
||||
}
|
||||
|
||||
|
@ -105,6 +106,15 @@ class Teradata(Dialect):
|
|||
},
|
||||
)
|
||||
|
||||
def _parse_rangen(self):
|
||||
this = self._parse_id_var()
|
||||
self._match(TokenType.BETWEEN)
|
||||
|
||||
expressions = self._parse_csv(self._parse_conjunction)
|
||||
each = self._match_text_seq("EACH") and self._parse_conjunction()
|
||||
|
||||
return self.expression(exp.RangeN, this=this, expressions=expressions, each=each)
|
||||
|
||||
class Generator(generator.Generator):
|
||||
TYPE_MAPPING = {
|
||||
**generator.Generator.TYPE_MAPPING, # type: ignore
|
||||
|
@ -114,7 +124,6 @@ class Teradata(Dialect):
|
|||
PROPERTIES_LOCATION = {
|
||||
**generator.Generator.PROPERTIES_LOCATION, # type: ignore
|
||||
exp.PartitionedByProperty: exp.Properties.Location.POST_INDEX,
|
||||
exp.VolatilityProperty: exp.Properties.Location.POST_CREATE,
|
||||
}
|
||||
|
||||
def partitionedbyproperty_sql(self, expression: exp.PartitionedByProperty) -> str:
|
||||
|
@ -137,3 +146,11 @@ class Teradata(Dialect):
|
|||
type_sql = super().datatype_sql(expression)
|
||||
prefix_sql = expression.args.get("prefix")
|
||||
return f"SYSUDTLIB.{type_sql}" if prefix_sql else type_sql
|
||||
|
||||
def rangen_sql(self, expression: exp.RangeN) -> str:
|
||||
this = self.sql(expression, "this")
|
||||
expressions_sql = self.expressions(expression)
|
||||
each_sql = self.sql(expression, "each")
|
||||
each_sql = f" EACH {each_sql}" if each_sql else ""
|
||||
|
||||
return f"RANGE_N({this} BETWEEN {expressions_sql}{each_sql})"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue