diff options
Diffstat (limited to '')
-rw-r--r-- | sqlglot/dialects/teradata.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/sqlglot/dialects/teradata.py b/sqlglot/dialects/teradata.py index 152afa6..e8162c2 100644 --- a/sqlglot/dialects/teradata.py +++ b/sqlglot/dialects/teradata.py @@ -38,12 +38,15 @@ class Teradata(Dialect): "^=": TokenType.NEQ, "BYTEINT": TokenType.SMALLINT, "COLLECT": TokenType.COMMAND, + "DEL": TokenType.DELETE, + "EQ": TokenType.EQ, "GE": TokenType.GTE, "GT": TokenType.GT, "HELP": TokenType.COMMAND, "INS": TokenType.INSERT, "LE": TokenType.LTE, "LT": TokenType.LT, + "MINUS": TokenType.EXCEPT, "MOD": TokenType.MOD, "NE": TokenType.NEQ, "NOT=": TokenType.NEQ, @@ -51,6 +54,7 @@ class Teradata(Dialect): "SEL": TokenType.SELECT, "ST_GEOMETRY": TokenType.GEOMETRY, "TOP": TokenType.TOP, + "UPD": TokenType.UPDATE, } # Teradata does not support % as a modulo operator @@ -181,6 +185,13 @@ class Teradata(Dialect): exp.Use: lambda self, e: f"DATABASE {self.sql(e, 'this')}", } + def cast_sql(self, expression: exp.Cast, safe_prefix: t.Optional[str] = None) -> str: + if expression.to.this == exp.DataType.Type.UNKNOWN and expression.args.get("format"): + # We don't actually want to print the unknown type in CAST(<value> AS FORMAT <format>) + expression.to.pop() + + return super().cast_sql(expression, safe_prefix=safe_prefix) + def tablesample_sql( self, expression: exp.TableSample, seed_prefix: str = "SEED", sep=" AS " ) -> str: |