Skip to content

Commit 3cc72e4

Browse files
committed
Remove PostgreSQL types from SQL Server integer detection and doc bit as integer
1 parent 9c00a87 commit 3cc72e4

1 file changed

Lines changed: 10 additions & 15 deletions

File tree

dbt/adapters/sqlserver/sqlserver_column.py

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -102,22 +102,17 @@ def is_float(self):
102102
return self.dtype.lower() in ["float", "real"]
103103

104104
def is_integer(self) -> bool:
105+
# SQL Server exact numeric integer types per MS docs (all versions back to 2017).
106+
# bit is classified as "an integer data type" by Microsoft in the Transact-SQL docs
107+
# (https://learn.microsoft.com/en-us/sql/t-sql/data-types/bit-transact-sql).
108+
# integer is a standard SQL synonym for int kept for ODBC compatibility.
105109
return self.dtype.lower() in [
110+
"bit",
111+
"tinyint",
106112
"smallint",
113+
"int",
107114
"integer",
108115
"bigint",
109-
"smallserial",
110-
"serial",
111-
"bigserial",
112-
"int2",
113-
"int4",
114-
"int8",
115-
"serial2",
116-
"serial4",
117-
"serial8",
118-
"int",
119-
"tinyint",
120-
"bit",
121116
]
122117

123118
def is_numeric(self) -> bool:
@@ -187,11 +182,11 @@ def _integer_digits(col: "SQLServerColumn") -> int:
187182
return 1
188183
if dtype in ("tinyint",):
189184
return 3
190-
if dtype in ("smallint", "int2"):
185+
if dtype in ("smallint",):
191186
return 5
192-
if dtype in ("bigint", "int8", "bigserial", "serial8"):
187+
if dtype in ("bigint",):
193188
return 19
194-
# int, integer, int4, serial, serial4, etc.
189+
# int, integer
195190
return 10
196191
return 0
197192

0 commit comments

Comments
 (0)