Releases: microsoft/mssql-python
v0.8.1-preview
Release Notes
Bug Fix:
-
Improves Windows support for interactive Azure AD authentication. #142
What changed:
- The PR makes a small change to the process_auth_parameters function in mssql_python/auth.py.
- It adjusts how the auth_type is handled for interactive authentication on Windows.
- Ensures compatibility with native handling of AADInteractive authentication.
Who benefits:
- Users who run interactive authentication workflows on Windows, especially those leveraging Azure Active Directory authentication (AADInteractive).
- Developers maintaining cross-platform authentication logic in the mssql-python library.
Impact:
- Improved reliability and compatibility for interactive authentication on Windows.
- Smoother user experience when using AADInteractive.
- Low risk: only 2 files changed with 7 additions and 7 deletions.
v0.8.0-preview
Release Notes
Features
- Authentication Module Added: (#135)
What changed:
A new authentication module was introduced, supporting Azure Active Directory authentication types: ActiveDirectoryInteractive for Mac and Linux, ActiveDirectoryDeviceCode, and ActiveDirectoryDefault.
Who benefits:
Developers integrating MSSQL with Azure services. Users requiring secure and flexible authentication options.
Impact:
Enables secure and varied authentication workflows for cloud-based environments.Simplifies integration with Azure AD, reducing custom code and setup.
Improvements
-
Batch Execution Refactor: (#138)
What changed:
Refactored Python executemany and C++ bindings to use column-wise parameter binding for batched SQL execution. Added helper functions for buffer allocation and exposed a new SQLExecuteMany method.
Who benefits:
Data engineers and developers running bulk operations.
Impact:
Faster, more efficient execution of bulk SQL operations. -
Logging System Overhaul: (#137)
What changed:
Replaced the global logging flag with a singleton LoggingManager, added dynamic logger configuration, sanitized sensitive information in logs, and improved Python exception handling in C++ logging.
Who benefits:
Teams monitoring and debugging connections and application behavior.
Impact:
Improved security and traceability in logs, reducing risk of exposing sensitive information and making error diagnosis easier. -
Row Object String Representation: (#136)
What changed:
Improved the Row class by adding a str method and updating repr for more user-friendly output and better debugging.
Who benefits:
Developers and testers interacting with row data.
Impact:
Easier debugging and more readable outputs, streamlining development and troubleshooting.
v0.7.0-preview
Release Notes
Features
-
Linux Support (manylinux2014 for Ubuntu, Debian, RHEL):
What changed:
The driver now supports Linux systems by adding manylinux2014-compatible wheel builds, Linux-specific driver logic, and architecture-aware ODBC path resolution.
Who benefits:
Python developers on Linux, including CI/CD and containerized environments.
Impact:
Enables cross-platform development and deployment with SQL Server. Devs can now use the driver on popular Linux distros without workarounds. Broader adoption expected in data science and server-side workloads.Support for other Linux based distros will come in subsequent releases.
-
Connection Pooling Support for MacOS and Linux:
What changed:
Unified connection pooling code across platforms and implemented it for macOS and Linux, with added test coverage.
Who benefits:
Developers on macOS and Linux working with high-performance, scalable or long-running applications.
Impact:
Brings parity with Windows support. Reduces connection overhead and improves performance for apps with frequent DB connections. -
Expanded Pipeline/Test Matrix:
What changed:
Extended CI pipelines to include Python versions < 3.13. Integrated test support for LocalDB and Docker-based SQL Server instances.
Who benefits:
Core contributors and testers ensuring reliability across Python versions and DB environments.
Impact:
Improves compatibility assurance, release confidence, and reduces risk of regressions across environments.
Improvements
-
Cross-Platform Code Unification:
What changed:
Removed OS-specific driver-loading logic and consolidated platform handling into shared code.
Who benefits:
Maintainers and contributors.
Impact:
Simplifies the codebase, improves maintainability, and reduces OS-specific bugs. -
Improved Logging and Diagnostics:
What changed:
Improved logging around driver loading, parameter binding, and platform-dependent behavior.
Who benefits:
Developers and support engineers debugging complex issues.
Impact:
Speeds up issue resolution, especially on unfamiliar platforms like Linux/macOS. -
PR Template and Automation:
What changed:
Introduced a new pull request template and added GitHub Actions to enforce formatting rules.
Who benefits:
Contributors and reviewers.
Impact:
Ensures consistent and high-quality contributions, reducing review time and human error.
Bug Fixes
- Dynamic Linking Fix for macOS (#98):
What changed:
Standardized dynamic linking using -undefined dynamic_lookup for Python extensions. Removed hardcoded lib paths.
Who benefits:
macOS developers, especially those using virtual environments.
Impact:
Improves compatibility and stability of the driver on macOS, especially during installs and builds.
v0.6.0-preview
Release Notes
Features
- MacOS universal2 Support: MacOS (version >=15.0 Sequoia) is now also supported for Intel based machines. Python wheels are now built and validated for macOS (M-Series and Intel), enhancing cross-platform support and allowing seamless development and testing on Apple machines.
Improvements
- Named Tuple Row Results: The fetch methods now returns named tuples for easier attribute-based access to query results. #65
- Test Refactor: Transitioned integration tests to use temporary tables, improving test isolation and preventing side effects.
- Type Safety & Error Handling: Enhanced C++ bindings with explicit type casting, improved string conversions, and robust error handling.
Bug Fixes
- Validation: Added range checks for numeric and date types to prevent out-of-range errors and ensure SQL Server compliance.
- Python Version Compatibility: Support for Python 3.13.5 is now available.
v0.5.0-preview
Release Notes
This is the public preview release of the Microsoft open-source mssql-python driver!
New features
- MacOS Support: The mssql-python driver now supports macOS on ARM-based systems, enabling seamless development on Apple Silicon (M-series) devices. This milestone strengthens our cross-platform capabilities—and we’re just getting started. Linux support is on the horizon!
- Connection Pooling: We've introduced a robust and configurable connection pooling system designed to significantly enhance performance and optimize resource utilization. This feature ensures more efficient management of database connections, especially under high-load scenarios
Issues Fixed
- Enhanced logging has been implemented, particularly for connection strings, where sensitive information such as user IDs and passwords is now obfuscated in error log files to ensure security and compliance.
v0.1.6-alpha
Release Notes
This is the second public alpha release of the Microsoft open-source mssql-python driver!
New features
-
Added support for ARM64 (Windows only)
Support for (macOS and Linux support is coming soon) -
Added support for Microsoft Entra ID Integrated authentication and access tokens
-
Backward compatibility with older python versions (>=3.10)
-
Introduced a new SqlHandle wrapper class in ddbc_bindings.cpp to manage the lifecycle of SQL handles, including a free() method for explicit resource cleanup. This avoids nondeterministic crashes during garbage collection or shutdown. Issue# #16
Issues Fixed
-
EntraID support using mssql-auth.dll. The file mssql-auth.dll is a dynamic link library introduced as part of Microsoft's newer authentication infrastructure for SQL Server drivers, particularly replacing the older ADAL (Azure Active Directory Authentication Library). It is used to support Microsoft Entra ID (formerly Azure AD) authentication.
-
A minor change to the mssql_python/type.py file. The change ensures compatibility by replacing datetime.UTC with datetime.timezone.utc in the TimestampFromTicks function. This was brought because of backward compatibility with python version 3.10.
Stay tuned for upcoming improvements and updates!
v0.1.5-alpha
This is the first public alpha release of the Microsoft open-source mssql-python driver!
Supported Platforms: Windows only (macOS and Linux support is coming soon)
Support for Microsoft Entra ID Authentication
DBAPI v2.0 Compliance: Fully compliant with the DB API 2.0 specification. Key aspects of DBAPI v2.0 compliance include:
- Connection Objects: Establishing and managing connections to the database.
- Cursor Objects: Executing SQL commands and retrieving results.
- Transaction Management: Supporting commit and rollback operations to ensure data integrity.
- Error Handling: Providing a consistent set of exceptions for handling database errors.
- Parameter Substitution: Allowing the use of placeholders in SQL queries to prevent SQL injection attacks.
Stay tuned for upcoming improvements and updates!