Skip to content

feat(ios): SQL Server (MSSQL) driver via FreeTDS#1252

Merged
datlechin merged 5 commits into
mainfrom
feat/mssql-ios
May 13, 2026
Merged

feat(ios): SQL Server (MSSQL) driver via FreeTDS#1252
datlechin merged 5 commits into
mainfrom
feat/mssql-ios

Conversation

@datlechin
Copy link
Copy Markdown
Member

Summary

  • Adds SQL Server support to the iOS TableProMobile app via FreeTDS db-lib over TDS 7.4
  • Introduces TableProMSSQLCore SPM target with neutral types (MSSQLRawResult, MSSQLColumnType, MSSQLDatetimeFormatter, MSSQLSchemaQueries) shared between iOS app and future plugin refactor
  • Cross-compiles FreeTDS 1.4.22 for iOS arm64 (device + simulator) and macOS arm64+x86_64 into a unified FreeTDS.xcframework, uploaded to the libs-v1 release
  • Reuses the existing SSLConfiguration model from main (PR "Required (skip verify)" SSL mode does not actually skip certificate verification for Redis connections #1247) for TLS settings; no MSSQL-specific encryption enum
  • Fixes SQL Server dialect in the iOS data browser: bracket-quoted identifiers [name], OFFSET ... ROWS FETCH NEXT ... ROWS ONLY pagination, SELECT TOP 1 for cell value fetch
  • Enables database and schema switching for MSSQL in the iOS toolbar
  • Test plan: 7 integration tests against a Docker azure-sql-edge container exercise connect, query, schema browsing, transactions

Test plan

  • swift test --filter TableProMSSQLCoreTests in Packages/TableProCore (34 unit tests pass)
  • xcodebuild -project TableProMobile.xcodeproj -scheme TableProMobileTests test -only-testing:TableProMobileTests/MSSQLDriverTests (7 integration tests pass against Docker SQL Server)
  • iOS app builds clean on simulator (iPhone 17 Pro, iOS 26.5)
  • Manual smoke test: connect to local Docker SQL Server, browse tables/views, run queries, switch database
  • CI build on PR

What's NOT in scope

  • Desktop plugin's inline FreeTDSConnection is not refactored to use the new shared core. Follow-up PR can extract for code reuse.
  • ConnectionFormView iOS UI does not yet expose SSL mode picker for MSSQL. Defaults to .disable from existing connection form. Follow-up PR can add MSSQL-specific UI controls.

Release artifact

  • tablepro-libs-ios-v1.tar.gz re-uploaded to libs-v1 release: now contains FreeTDS.xcframework (macOS arm64+x86_64 universal, iOS arm64 device, iOS arm64 simulator) alongside the existing xcframeworks.

@datlechin datlechin merged commit 591767a into main May 13, 2026
3 checks passed
@datlechin datlechin deleted the feat/mssql-ios branch May 13, 2026 13:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant