+Implement core's ColumnTypeSupport protocol for SQL Server through SQLServerColumnTypeMixin and the SQLSERVER_COLUMN_TYPES table, an eighteen-entry answer for every common Python type — str is a StringColumn, list/dict/tuple/set/frozenset are JSONColumns (this server has no array type on any version, and a document is text in NVARCHAR(MAX) that the 2016 function family reads), uuid.UUID a UUIDColumn, enum.Enum a StringColumn and datetime.timedelta a NumericColumn (a span here is a DATEDIFF count) — with each deviation recorded against its measured 2019 / 2022 / 2025 evidence and each deliberate omission stated in the module docstring rather than left to be inferred. Also declare the SQLServerTypeSupport protocol, the stated shape of the sqlserver_-prefixed type family (whether xml is a real type here, whether BIT is a boolean, whether tinyint is signed); render the new trim node through SQLServerTrimMixin, which keeps the operand order this server had first (BOTH becomes TRIM(chars FROM x) / TRIM(x), LEADING becomes LTRIM, TRAILING becomes RTRIM) and records its compatibility-level limits instead of gating them; compose SQLServerUUIDMixin so this backend's NEWID and UNIQUEIDENTIFIER spellings win over core's single fixed spelling; declare STRING_CONCATENATION = "CONCAT", because T-SQL reads || as logical OR; and add the column-type table, node-class enumeration and table-type definition round-trip test coverage.
0 commit comments