github microsoft/mssql-python v1.15.0

4 hours ago

Enhancements

• Faster setinputsizes() Execution (#736)

What changed: Routed setinputsizes() parameter handling through the native C++ execution pipeline.
Who benefits: Applications with wide, batched, or frequently executed parameterized statements.
Impact: These workloads spend less time in Python-side parameter processing.

PR #736

memoryview Support in Binary() (#741)

What changed: Extended Binary() to accept memoryview objects as binary inputs.
Who benefits: Applications working with zero-copy views and other buffer-protocol data sources.
Impact: Binary values can be passed without first converting a memoryview to bytes.

PR #741

• Module-Level SQL Server Type Constants (#764)

What changed: Exposed SQL Server-specific type constants directly from the mssql_python module.
Who benefits: Developers using SQL Server type metadata and parameter declarations.
Impact: Type constants are easier to discover and access through the public package API.

PR #764

Bug Fixes

• Concurrent Logging No Longer Deadlocks (#678)

What changed: Corrected GIL and mutex lock ordering in native logging paths used concurrently by multiple threads.
Who benefits: Multithreaded applications with driver logging enabled.
Impact: Concurrent logging no longer risks hanging the process.

PR #678

• Correct Rust Core in Windows ARM64 Wheels (#737)

What changed: Windows ARM64 wheels now vendor the matching ARM64 mssql_py_core binary.
Who benefits: Windows ARM64 users, especially applications using bulk copy.
Impact: Installed wheels contain architecture-compatible native components and can use bulk copy correctly.

PR #737

• Reliable Package-Local DLL Loading on Windows (#735)

What changed: Bundled Windows driver and authentication DLLs are loaded from package-local directories.
Who benefits: Windows applications deployed in environments with varying DLL search paths.
Impact: Native dependencies resolve reliably without relying on process-wide search-path configuration.

PR #735

• Consistent Decimal Parameter Binding (#742)

What changed: Decimal parameters are now bound as SQL_NUMERIC regardless of their runtime value.
Who benefits: Applications that send decimal values through parameterized queries or batches.
Impact: Decimal parameter typing remains stable across values and execution paths.

PR #742

• ODBC 3.x Parameter Types (#758)

What changed: Replaced obsolete ODBC 2.x parameter type identifiers with their ODBC 3.x equivalents.
Who benefits: Applications using typed parameters across current SQL Server driver configurations.
Impact: Parameter binding follows the current ODBC standard and avoids legacy type mismatches.

PR #758 - Thanks @Theekshna for the contribution!

• Database Name Metadata Is Decoded (#771)

What changed: Added decoding for the value returned by Connection.getinfo(SQL_DATABASE_NAME).
Who benefits: Applications that inspect the active database through connection metadata.
Impact: Database names are returned as correct Python text values.

PR #771

• Mixed Cursor Cleanup No Longer Crashes at Shutdown (#772)

What changed: Corrected native cleanup ordering for connections containing cursors in mixed lifecycle states.
Who benefits: Applications that create multiple cursors and allow some cursor cleanup to occur during shutdown.
Impact: Process shutdown completes without a native crash from mixed cursor cleanup.

PR #772

Don't miss a new mssql-python release

NewReleases is sending notifications on new releases.