Skip to main content

ArpeMSSQL — Compatibility

Which SQL Server versions, editions, and cloud services ArpeMSSQL is known to work with. Three support states are used across the Arpeio driver family:

StateMeaning
✅ ValidatedExercised directly in live testing.
🟢 SupportedExpected to work and covered by the same protocol surface, but not run continuously. Report issues and they will be treated as bugs.
🟡 Not yet validatedShould be compatible on protocol grounds, but unverified. No promise yet.

ArpeMSSQL speaks MS-TDS 7.4 natively over TCP (+ optional TLS). Any SQL Server that negotiates TDS 7.4 is a candidate; the mapping details are in Data types.


SQL Server (on-premises / IaaS)​

VersionStateNotes
SQL Server 2025✅ ValidatedValidated live against 17.0.4065.4 (RTM-CU7; compat level 170), at parity with 2022. Adds native VECTOR(n) → Arrow fixed_size_list<float32>[n] (see Data types).
SQL Server 2022✅ ValidatedPrimary validation target.
SQL Server 2019🟢 SupportedSame TDS 7.4 surface.
SQL Server 2017🟢 SupportedSame TDS 7.4 surface; Linux and Windows.
SQL Server 2016🟢 SupportedFirst version with the full 7.4 feature set used here.
SQL Server 2014 / 2012🟡 Not yet validatedTDS 7.4 — expected to work for core types; untested.
SQL Server ≤ 2008 R2🟡 Not yet validatedOlder TDS; no testing, not a target.

Editions — Enterprise, Standard, Developer, Web, and Express all speak the same protocol; the driver does not depend on an edition-specific feature. Express named instances are reached via the SQL Server Browser (see Named instances). LocalDB is not supported — it is reached over a named pipe, not TCP.


Azure & Microsoft Fabric​

ServiceStateAuthNotes
Azure SQL Database✅ ValidatedSQL, Entra IDBoth Proxy and Redirect gateway policies verified live (Redirect needs outbound TCP 11000–11999).
Microsoft Fabric Warehouse🟡 Not yet validatedEntra ID*.datawarehouse.fabric.microsoft.com; Fabric accepts Microsoft Entra ID only (no SQL logins). Expected to work, untested.
Azure SQL Managed Instance🟡 Not yet validatedSQL, Entra IDStandard SQL Server surface; expected to work, untested.
Azure Synapse (dedicated SQL pool)🟡 Not yet validatedSQL, Entra IDTDS-compatible; some T-SQL/type restrictions apply server-side.

All Azure endpoints require encrypt=true (TLS 1.2+); this is the default-safe path (SNI + certificate + hostname verification).


Authentication methods​

MethodPlatformState
SQL login (username/password)all✅ Validated
Integrated / trusted — Windows SSPI (Kerberos)Windows client✅ Validated
Integrated / trustedLinux clientNot available — use SQL login or Entra ID
Entra ID — access-token passthroughAzure SQL✅ Validated
Entra ID — service principal (client credentials)Azure SQL✅ Validated
Entra ID — managed identityAzure host🟢 Supported (runs only on an Azure host)
Entra ID — ActiveDirectoryDefault chainAzure SQL✅ Validated

See Authentication and Connection for setup.


Client platforms​

PlatformStateNotes
Linux x64✅ ValidatedSelf-contained .so; runs on RHEL 8 / Rocky 8 and newer. No integrated auth.
Windows x64✅ ValidatedSelf-contained DLL (no OpenSSL or VC++ runtime DLLs needed). Integrated auth via SSPI.
macOS—No released binary.

ADBC conformance​

Run against the upstream adbc-drivers/validation conformance suite: every test passes except a few cases that test features SQL Server itself does not have, or that the driver handles differently by design:

  • Arrow nanosecond temporal precision (time_ns, timestamp_ns, timestamptz_ns) — SQL Server's scale-7 ceiling is 100 ns.
  • float16 bind — no SQL Server type maps to Arrow float16.
  • Negative-scale decimals — SQL Server has none; the driver stores them in a widened DECIMAL(p+|s|,0) column, so the exact schema does not round-trip.
  • mode=create with very long strings or binaries — create makes NVARCHAR(4000) / VARBINARY(8000) columns; longer values need a MAX column.
  • A few unsupported inputs (null-typed parameters, create_append schema mismatch).

The conformance suite was also run live against SQL Server 2025 (17.0.4065.4) with results identical to 2022.

See also​