summaryrefslogtreecommitdiffstats
path: root/sqlglot/dialects/tsql.py
diff options
context:
space:
mode:
Diffstat (limited to 'sqlglot/dialects/tsql.py')
-rw-r--r--sqlglot/dialects/tsql.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/sqlglot/dialects/tsql.py b/sqlglot/dialects/tsql.py
new file mode 100644
index 0000000..68bb9bd
--- /dev/null
+++ b/sqlglot/dialects/tsql.py
@@ -0,0 +1,38 @@
+from sqlglot import exp
+from sqlglot.dialects.dialect import Dialect
+from sqlglot.generator import Generator
+from sqlglot.tokens import Tokenizer, TokenType
+
+
+class TSQL(Dialect):
+ null_ordering = "nulls_are_small"
+ time_format = "'yyyy-mm-dd hh:mm:ss'"
+
+ class Tokenizer(Tokenizer):
+ IDENTIFIERS = ['"', ("[", "]")]
+
+ KEYWORDS = {
+ **Tokenizer.KEYWORDS,
+ "BIT": TokenType.BOOLEAN,
+ "REAL": TokenType.FLOAT,
+ "NTEXT": TokenType.TEXT,
+ "SMALLDATETIME": TokenType.DATETIME,
+ "DATETIMEOFFSET": TokenType.TIMESTAMPTZ,
+ "TIME": TokenType.TIMESTAMP,
+ "VARBINARY": TokenType.BINARY,
+ "IMAGE": TokenType.IMAGE,
+ "MONEY": TokenType.MONEY,
+ "SMALLMONEY": TokenType.SMALLMONEY,
+ "ROWVERSION": TokenType.ROWVERSION,
+ "SQL_VARIANT": TokenType.SQL_VARIANT,
+ "UNIQUEIDENTIFIER": TokenType.UNIQUEIDENTIFIER,
+ "XML": TokenType.XML,
+ }
+
+ class Generator(Generator):
+ TYPE_MAPPING = {
+ **Generator.TYPE_MAPPING,
+ exp.DataType.Type.BOOLEAN: "BIT",
+ exp.DataType.Type.INT: "INTEGER",
+ exp.DataType.Type.DECIMAL: "NUMERIC",
+ }