diff options
Diffstat (limited to 'sqlglot/dialects/tsql.py')
-rw-r--r-- | sqlglot/dialects/tsql.py | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/sqlglot/dialects/tsql.py b/sqlglot/dialects/tsql.py index 867e4e4..a281297 100644 --- a/sqlglot/dialects/tsql.py +++ b/sqlglot/dialects/tsql.py @@ -11,7 +11,6 @@ from sqlglot.dialects.dialect import ( generatedasidentitycolumnconstraint_sql, max_or_greatest, min_or_least, - move_insert_cte_sql, parse_date_delta, rename_func, timestrtotime_sql, @@ -158,8 +157,6 @@ def _format_sql(self: TSQL.Generator, expression: exp.NumberToStr | exp.TimeToSt def _string_agg_sql(self: TSQL.Generator, expression: exp.GroupConcat) -> str: - expression = expression.copy() - this = expression.this distinct = expression.find(exp.Distinct) if distinct: @@ -246,6 +243,7 @@ class TSQL(Dialect): "MMM": "%b", "MM": "%m", "M": "%-m", + "dddd": "%A", "dd": "%d", "d": "%-d", "HH": "%H", @@ -596,6 +594,8 @@ class TSQL(Dialect): ALTER_TABLE_ADD_COLUMN_KEYWORD = False LIMIT_FETCH = "FETCH" COMPUTED_COLUMN_WITH_TYPE = False + SUPPORTS_NESTED_CTES = False + CTE_RECURSIVE_KEYWORD_REQUIRED = False TYPE_MAPPING = { **generator.Generator.TYPE_MAPPING, @@ -622,7 +622,6 @@ class TSQL(Dialect): exp.GeneratedAsIdentityColumnConstraint: generatedasidentitycolumnconstraint_sql, exp.GroupConcat: _string_agg_sql, exp.If: rename_func("IIF"), - exp.Insert: move_insert_cte_sql, exp.Max: max_or_greatest, exp.MD5: lambda self, e: self.func("HASHBYTES", exp.Literal.string("MD5"), e.this), exp.Min: min_or_least, @@ -685,7 +684,6 @@ class TSQL(Dialect): return sql def create_sql(self, expression: exp.Create) -> str: - expression = expression.copy() kind = self.sql(expression, "kind").upper() exists = expression.args.pop("exists", None) sql = super().create_sql(expression) @@ -714,7 +712,7 @@ class TSQL(Dialect): elif expression.args.get("replace"): sql = sql.replace("CREATE OR REPLACE ", "CREATE OR ALTER ", 1) - return sql + return self.prepend_ctes(expression, sql) def offset_sql(self, expression: exp.Offset) -> str: return f"{super().offset_sql(expression)} ROWS" |