Skip to content

Commit 167c547

Browse files
Fix(tsql): ALTER COLUMN syntax (#5051)
* Addressing spacing for dialects wtihout ALTER_SET_TYPE. * Set ALTER_SET_TYPE to empty string for tsql generator, with tests.
1 parent eb0a989 commit 167c547

File tree

3 files changed

+13
-1
lines changed

3 files changed

+13
-1
lines changed

sqlglot/dialects/tsql.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -910,6 +910,7 @@ class Generator(generator.Generator):
910910
COPY_PARAMS_EQ_REQUIRED = True
911911
PARSE_JSON_NAME = None
912912
EXCEPT_INTERSECT_SUPPORT_ALL_CLAUSE = False
913+
ALTER_SET_TYPE = ""
913914

914915
EXPRESSIONS_WITHOUT_NESTED_CTES = {
915916
exp.Create,

sqlglot/generator.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3346,7 +3346,8 @@ def altercolumn_sql(self, expression: exp.AlterColumn) -> str:
33463346
collate = f" COLLATE {collate}" if collate else ""
33473347
using = self.sql(expression, "using")
33483348
using = f" USING {using}" if using else ""
3349-
return f"ALTER COLUMN {this} {self.ALTER_SET_TYPE} {dtype}{collate}{using}"
3349+
alter_set_type = self.ALTER_SET_TYPE + " " if self.ALTER_SET_TYPE else ""
3350+
return f"ALTER COLUMN {this} {alter_set_type}{dtype}{collate}{using}"
33503351

33513352
default = self.sql(expression, "default")
33523353
if default:

tests/dialects/test_tsql.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1062,6 +1062,16 @@ def test_ddl(self):
10621062
"tsql": "ALTER TABLE a ADD b INTEGER, c INTEGER",
10631063
},
10641064
)
1065+
self.validate_all(
1066+
"ALTER TABLE a ALTER COLUMN b INTEGER",
1067+
read={
1068+
"": "ALTER TABLE a ALTER COLUMN b INT",
1069+
},
1070+
write={
1071+
"": "ALTER TABLE a ALTER COLUMN b SET DATA TYPE INT",
1072+
"tsql": "ALTER TABLE a ALTER COLUMN b INTEGER",
1073+
},
1074+
)
10651075
self.validate_all(
10661076
"CREATE TABLE #mytemp (a INTEGER, b CHAR(2), c TIME(4), d FLOAT(24))",
10671077
write={

0 commit comments

Comments
 (0)