Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
796be47
feat: add MSSQL (SQL Server) support via tiberius driver
pabl-o-ce Feb 15, 2026
6dc8265
feat: add chrono datetime Encode/Decode support to sqlx-mssql
pabl-o-ce Feb 15, 2026
fd9e436
feat: add UUID and rust_decimal Encode/Decode support to sqlx-mssql
pabl-o-ce Feb 15, 2026
04f556d
feat: add time, bigdecimal, and JSON Encode/Decode support to sqlx-mssql
pabl-o-ce Feb 15, 2026
df5b9af
feat: add comprehensive test coverage for sqlx-mssql types, errors, d…
pabl-o-ce Feb 15, 2026
809fbf5
feat: add SSL mode enum, advisory locks, and MONEY type support to sq…
pabl-o-ce Feb 15, 2026
119107d
feat: add isolation levels, connection options, and bulk insert to sq…
pabl-o-ce Feb 15, 2026
e0e67f4
feat: add auth methods, QueryBuilder placeholder fix, and XML type to…
pabl-o-ce Feb 15, 2026
ac12b95
feat: add compile-time query macros and Any type mappings for MSSQL
pabl-o-ce Feb 15, 2026
68942d6
feat: add Docker/CI, no_tx migrations, ColumnOrigin, Any types, and D…
pabl-o-ce Feb 15, 2026
252bf14
feat: add RAII advisory lock guard, DateTime<FixedOffset> support, an…
pabl-o-ce Feb 16, 2026
926722e
feat: fix SMALLMONEY type mapping, expand test coverage, and document…
pabl-o-ce Feb 16, 2026
4c1827d
docs: mssql docs support markdown
pabl-o-ce Feb 19, 2026
87cc695
fix: escape SQL identifiers, add SMALLMONEY compat, and harden migrat…
pabl-o-ce Feb 23, 2026
a968252
Merge branch 'launchbadge:main' into feat/mssql-support
pabl-o-ce Feb 25, 2026
3ec1422
Merge branch 'launchbadge:main' into feat/mssql-support
pabl-o-ce Mar 3, 2026
a758707
fix: add explicit parentheses for operator precedence in nanosecond c…
pabl-o-ce Mar 3, 2026
9e85668
refactor: extract time binding and document infallible unwrap
pabl-o-ce Mar 3, 2026
a904b91
fix: replace unchecked i64→u32 casts in date encoding with validated …
pabl-o-ce Mar 4, 2026
2f816bc
fix: replace unchecked i32→i16 cast in timezone offset encoding with …
pabl-o-ce Mar 4, 2026
adace6d
fix: escape table_name in MSSQL migration SQL to prevent injection
pabl-o-ce Mar 4, 2026
597166b
fix: use context-specific escaping in drop_database and create_schema…
pabl-o-ce Mar 4, 2026
7b1d04d
fix: replace panicking unwrap/expect calls in column_data_to_mssql_da…
pabl-o-ce Mar 4, 2026
eea0c7d
fix: eliminate client-side SQL escaping in DDL functions using parame…
pabl-o-ce Mar 4, 2026
bd2756d
fix: replace silent NULL catch-all with explicit None enumeration in …
pabl-o-ce Mar 4, 2026
192eb59
fix: validate BigDecimal scale before u8 cast to prevent silent trunc…
pabl-o-ce Mar 4, 2026
46cc155
fix: handle BigDecimal negative exponents and correct scale boundary …
pabl-o-ce Mar 4, 2026
470362a
fix: use parameterized queries for sp_describe stored procedure calls
pabl-o-ce Mar 4, 2026
cd02dda
fix: correct Datetime4 mapping, guard rust_decimal scale, and remove …
pabl-o-ce Mar 4, 2026
d51b828
fix: resolve clippy deny violations, parameterize SQL, and clean up w…
pabl-o-ce Mar 5, 2026
0e42f0e
fix: safe UTF-8 truncation, handle XML, take ColumnData by value, use…
pabl-o-ce Mar 5, 2026
ce69e2a
docs: rewrite MSSQL_SUPPORT.md as a complete developer guide
pabl-o-ce Mar 10, 2026
3ed869d
fix: address code review findings across MSSQL driver
pabl-o-ce Mar 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 81 additions & 0 deletions .github/workflows/sqlx.yml
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,12 @@ jobs:
-p sqlx-sqlite
--all-features

- name: Test sqlx-mssql
run: >
cargo test
-p sqlx-mssql
--all-features

- name: Test sqlx-macros-core
run: >
cargo test
Expand Down Expand Up @@ -514,3 +520,78 @@ jobs:
env:
DATABASE_URL: mysql://root@localhost:3306/sqlx?sslmode=verify_ca&ssl-ca=.%2Ftests%2Fcerts%2Fca.crt&ssl-key=.%2Ftests%2Fcerts%2Fkeys%2Fclient.key&ssl-cert=.%2Ftests%2Fcerts%2Fclient.crt
RUSTFLAGS: --cfg mariadb="${{ matrix.mariadb }}"

mssql:
name: MSSQL
runs-on: ubuntu-24.04
strategy:
matrix:
mssql: [ 2022, 2019 ]
runtime: [ async-global-executor, smol, tokio ]
tls: [ native-tls, rustls-aws-lc-rs, rustls-ring, none ]
needs: check
timeout-minutes: 30
steps:
- uses: actions/checkout@v4

- name: Setup Rust
run: rustup show active-toolchain || rustup toolchain install

- uses: Swatinem/rust-cache@v2

- run: >
cargo build
--no-default-features
--features mssql,_unstable-all-types,runtime-${{ matrix.runtime }},tls-${{ matrix.tls }},macros,migrate

- run: docker compose -f tests/docker-compose.yml run -d -p 1433:1433 --name mssql_${{ matrix.mssql }} mssql_${{ matrix.mssql }}
- run: sleep 60

# Create data dir for offline mode
- run: mkdir .sqlx

- run: >
cargo test
--no-default-features
--features any,mssql,macros,migrate,_unstable-all-types,runtime-${{ matrix.runtime }},tls-${{ matrix.tls }}
env:
DATABASE_URL: mssql://sa:YourStrong!Passw0rd@localhost:1433/sqlx
SQLX_OFFLINE_DIR: .sqlx
RUSTFLAGS: --cfg mssql_${{ matrix.mssql }}

# Run the `test-attr` test again to cover cleanup.
- run: >
cargo test
--test mssql-test-attr
--no-default-features
--features any,mssql,macros,migrate,_unstable-all-types,runtime-${{ matrix.runtime }},tls-${{ matrix.tls }}
env:
DATABASE_URL: mssql://sa:YourStrong!Passw0rd@localhost:1433/sqlx
SQLX_OFFLINE_DIR: .sqlx
RUSTFLAGS: --cfg mssql_${{ matrix.mssql }}

# Remove test artifacts
- run: cargo clean -p sqlx

# Build the macros-test in offline mode (omit DATABASE_URL)
- run: >
cargo build
--no-default-features
--test mssql-macros
--features any,mssql,macros,migrate,_unstable-all-types,runtime-${{ matrix.runtime }},tls-${{ matrix.tls }}
env:
SQLX_OFFLINE: true
SQLX_OFFLINE_DIR: .sqlx
RUSTFLAGS: -D warnings --cfg mssql_${{ matrix.mssql }}

# Test macros in offline mode (still needs DATABASE_URL to run)
- run: >
cargo test
--no-default-features
--test mssql-macros
--features any,mssql,macros,migrate,_unstable-all-types,runtime-${{ matrix.runtime }},tls-${{ matrix.tls }}
env:
DATABASE_URL: mssql://sa:YourStrong!Passw0rd@localhost:1433/sqlx
SQLX_OFFLINE: true
SQLX_OFFLINE_DIR: .sqlx
RUSTFLAGS: --cfg mssql_${{ matrix.mssql }}
Loading
Loading