Skip to content

mssql-python 1.15.0: Faster, More Reliable, and Built for Your Applications

I am excited to share the release of mssql-python 1.15.0, our 15th release since General Availability.


We build mssql-python for Python developers connecting their applications to SQL Server, Azure SQL, and Azure Synapse. Every release is an opportunity to make that experience faster, simpler, and more dependable. Version 1.15.0 delivers improvements across all three.


Faster parameterized execution


setinputsizes() parameter handling now runs through the native C++ execution pipeline.


If your application uses wide statements, batches, or frequently executed parameterized queries, it will spend less time processing parameters in Python. This work moves more of the execution path into the native driver, where it can be handled more efficiently.


We also made decimal parameter binding more consistent. Python Decimal values are now bound as SQL_NUMERIC regardless of their runtime value, so parameter types remain stable across queries and batches.


The driver now uses current ODBC 3.x parameter type identifiers in place of obsolete ODBC 2.x identifiers. This brings parameter binding in line with the current ODBC standard and avoids mismatches caused by legacy type definitions.


Better support for Python data


Binary() now accepts memoryview objects directly.


Applications using buffer-protocol data sources and zero-copy views no longer need to convert a memoryview to bytes before sending binary data. You can pass the value you already have.


SQL Server-specific type constants are also available directly from the mssql_python module. This makes them easier to discover and use when working with parameter declarations or SQL Server type metadata.


More reliable production behavior


Several fixes in this release address failures that can be difficult to diagnose because they occur under concurrency, during deployment, or while a process is shutting down.


We corrected GIL and mutex lock ordering in the native logging path. Multithreaded applications can now use driver logging without risking a deadlock when multiple threads log concurrently.


We also corrected native cleanup ordering for connections containing cursors in different lifecycle states. Applications that create multiple cursors and leave some cleanup to process shutdown will no longer encounter the native crash addressed by this fix.


On Windows, bundled driver and authentication DLLs are now loaded from directories inside the installed package. Applications no longer have to depend on process-wide DLL search path configuration for those components to resolve correctly.


Windows ARM64 wheels now include the matching ARM64 Rust core used by bulk copy. This gives Windows ARM64 applications architecture-compatible native components and working bulk-copy support from the installed wheel.


Finally, Connection.getinfo(SQL_DATABASE_NAME) now decodes the returned value correctly, so applications inspecting the active database receive a Python string as expected.


Thank you


Thank you to everyone who reported an issue, tested a fix, contributed code, or told us where the driver was getting in your way.


We are building this driver for you, and your feedback continues to shape what we improve next.


Install or upgrade today:


pip install –upgrade mssql-python

Read the mssql-python 1.15.0 release notes, visit the package on PyPI, or explore the mssql-python repository.

Microsoft Tech Community originally posted this article on 11 September 2026 at 9:00 PM.

Leave a Reply