tag:github.com,2008:https://github.com/microsoft/mssql-python/releasesRelease notes from mssql-python2026-02-27T08:35:37Ztag:github.com,2008:Repository/921684538/v1.4.02026-02-27T08:40:13Zv1.4.0<h1>Release Notes - Version 1.4.0</h1>
<h2>Enhancements</h2>
<ul>
<li>
<p><strong>Bulk Copy Support (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3987440429" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/449" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/449/hovercard" href="https://github.com/microsoft/mssql-python/pull/449">#449</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3932968431" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/430" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/430/hovercard" href="https://github.com/microsoft/mssql-python/pull/430">#430</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3917758466" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/426" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/426/hovercard" href="https://github.com/microsoft/mssql-python/pull/426">#426</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3875514675" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/420" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/420/hovercard" href="https://github.com/microsoft/mssql-python/pull/420">#420</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3957191771" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/439" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/439/hovercard" href="https://github.com/microsoft/mssql-python/pull/439">#439</a>)</strong></p>
<p><strong><em>What changed</em></strong>: The <code>bulkcopy()</code> method on the Cursor object is now a public API, providing high-performance bulk data loading into SQL Server. Added comprehensive logging support for bulk copy operations with configurable log levels. Enhanced type hints and explicit parameter definitions for better IDE support and type checking. This feature is powered by a new mssql-py-core native extension, please read here <a href="https://github.com/microsoft/mssql-rs">https://github.com/microsoft/mssql-rs</a>.<br>
<strong><em>Who benefits</em></strong>: Developers performing ETL operations, applications requiring high-throughput data imports, teams needing detailed bulk copy operation logging for debugging<br>
<strong><em>Impact</em></strong>: Enables production use of high-performance bulk inserts, provides visibility into bulk copy operations through logging, ensures secure authentication with EntraID tokens, improves developer experience with better type hints and parameter documentation</p>
<blockquote>
<p>Implements <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3987440429" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/449" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/449/hovercard" href="https://github.com/microsoft/mssql-python/pull/449">#449</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3932968431" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/430" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/430/hovercard" href="https://github.com/microsoft/mssql-python/pull/430">#430</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3917758466" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/426" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/426/hovercard" href="https://github.com/microsoft/mssql-python/pull/426">#426</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3875514675" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/420" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/420/hovercard" href="https://github.com/microsoft/mssql-python/pull/420">#420</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3957191771" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/439" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/439/hovercard" href="https://github.com/microsoft/mssql-python/pull/439">#439</a></p>
</blockquote>
</li>
<li>
<p><strong>Spatial Type Support (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3911313825" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/423" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/423/hovercard" href="https://github.com/microsoft/mssql-python/pull/423">#423</a>)</strong></p>
<p><strong><em>What changed</em></strong>: Added native support for SQL Server spatial data types including <code>geography</code>, <code>geometry</code>, and <code>hierarchyid</code>. These types are now automatically handled during query execution and result fetching, with proper Python type conversions. Includes comprehensive test coverage for spatial operations.<br>
<strong><em>Who benefits</em></strong>: Applications working with geospatial data, GIS integrations, users storing location-based information, developers working with hierarchical data structures<br>
<strong><em>Impact</em></strong>: Enables direct use of SQL Server spatial features from Python, eliminates need for manual type conversions, provides seamless integration with geospatial applications</p>
<blockquote>
<p>Implements <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3911313825" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/423" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/423/hovercard" href="https://github.com/microsoft/mssql-python/pull/423">#423</a></p>
</blockquote>
</li>
<li>
<p><strong>Type Annotations with py.typed Marker (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3710900626" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/367" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/367/hovercard" href="https://github.com/microsoft/mssql-python/pull/367">#367</a>)</strong></p>
<p><strong><em>What changed</em></strong>: Added <code>py.typed</code> marker file to the package, enabling full type checking support for static type checkers like mypy, pylance, and pyright. This makes all type hints in the package discoverable and verifiable by type checking tools.<br>
<strong><em>Who benefits</em></strong>: Developers using static type checkers, teams enforcing type safety in codebases, IDE users wanting better autocomplete and inline documentation<br>
<strong><em>Impact</em></strong>: Enables compile-time type checking for mssql-python usage, improves IDE intelligence and error detection, enhances code quality through static analysis</p>
<blockquote>
<p>Implements <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3710900626" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/367" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/367/hovercard" href="https://github.com/microsoft/mssql-python/pull/367">#367</a></p>
</blockquote>
</li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li>
<p><strong>VARCHAR Fetch Failure with Non-ASCII CP1252 Characters (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3977688366" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/444" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/444/hovercard" href="https://github.com/microsoft/mssql-python/pull/444">#444</a>)</strong></p>
<p><strong><em>What changed</em></strong>: Fixed a critical bug where fetching VARCHAR columns failed when the data length exactly equaled the column size and contained non-ASCII CP1252 characters (e.g., extended Latin characters like é, ñ, ü). The issue was caused by incorrect buffer size calculations for multi-byte character encodings.<br>
<strong><em>Who benefits</em></strong>: Applications storing international text data, databases with CP1252 collations, users in European and Latin American regions<br>
<strong><em>Impact</em></strong>: Prevents data fetch failures for international characters, ensures reliable VARCHAR handling across all character sets, eliminates data truncation issues</p>
<blockquote>
<p>Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3977688366" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/444" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/444/hovercard" href="https://github.com/microsoft/mssql-python/pull/444">#444</a></p>
</blockquote>
</li>
<li>
<p><strong>Segmentation Fault with Interleaved Fetch Calls (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3967282165" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/441" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/441/hovercard" href="https://github.com/microsoft/mssql-python/pull/441">#441</a>)</strong></p>
<p><strong><em>What changed</em></strong>: Fixed a segmentation fault that occurred when interleaving calls to <code>fetchmany()</code> and <code>fetchone()</code> on the same cursor. The issue was caused by improper state management in the underlying result set iterator. Added comprehensive test coverage for various fetch operation sequences.<br>
<strong><em>Who benefits</em></strong>: Applications using mixed fetch strategies, developers iterating through result sets with different batch sizes, tools dynamically adjusting fetch patterns<br>
<strong><em>Impact</em></strong>: Eliminates crash risk when mixing fetch methods, ensures stable cursor iteration, improves overall driver reliability</p>
<blockquote>
<p>Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3918516130" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/427" data-hovercard-type="issue" data-hovercard-url="/microsoft/mssql-python/issues/427/hovercard" href="https://github.com/microsoft/mssql-python/issues/427">#427</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3967282165" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/441" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/441/hovercard" href="https://github.com/microsoft/mssql-python/pull/441">#441</a></p>
</blockquote>
</li>
<li>
<p><strong>Date/Time Type Code Alignment with ODBC 18 Driver (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3682025748" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/355" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/355/hovercard" href="https://github.com/microsoft/mssql-python/pull/355">#355</a>)</strong></p>
<p><strong><em>What changed</em></strong>: Aligned date and time type code mappings with the official ODBC 18 driver source code. This ensures consistent behavior when working with SQL Server date/time types (DATE, TIME, DATETIME2, DATETIMEOFFSET) across Python and other language drivers.<br>
<strong><em>Who benefits</em></strong>: Applications using temporal data types, developers migrating from ODBC-based solutions, cross-platform applications requiring consistent date/time handling<br>
<strong><em>Impact</em></strong>: Ensures accurate date/time type handling, eliminates subtle type conversion discrepancies, improves compatibility with other SQL Server drivers</p>
<blockquote>
<p>Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3669645652" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/352" data-hovercard-type="issue" data-hovercard-url="/microsoft/mssql-python/issues/352/hovercard" href="https://github.com/microsoft/mssql-python/issues/352">#352</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3682025748" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/355" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/355/hovercard" href="https://github.com/microsoft/mssql-python/pull/355">#355</a></p>
</blockquote>
</li>
</ul>
<h2>Developer Experience</h2>
<ul>
<li>
<p><strong>Development Container Configuration (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3245000014" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/147" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/147/hovercard" href="https://github.com/microsoft/mssql-python/pull/147">#147</a>)</strong></p>
<p><strong><em>What changed</em></strong>: Added devcontainer configuration for VS Code, providing a complete, pre-configured development environment with all necessary dependencies, tools, and extensions. Includes Python environment setup, SQL Server instance configuration, and recommended VS Code extensions.<br>
<strong><em>Who benefits</em></strong>: New contributors setting up development environments, developers wanting consistent cross-platform setups, remote development scenarios<br>
<strong><em>Impact</em></strong>: Reduces environment setup time from hours to minutes, ensures consistent development environments across team, eliminates "works on my machine" issues</p>
<blockquote>
<p>Implements <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3245000014" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/147" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/147/hovercard" href="https://github.com/microsoft/mssql-python/pull/147">#147</a></p>
</blockquote>
</li>
</ul>gargsaumyatag:github.com,2008:Repository/921684538/v1.3.02026-01-30T15:17:44Zv1.3.0<h2>Release Notes - Version 1.3.0</h2>
<h2>Bug Fixes</h2>
<ul>
<li>
<p><strong>Segmentation Fault in libmsodbcsql-18.5 during SQLFreeHandle() (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3860061736" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/415" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/415/hovercard" href="https://github.com/microsoft/mssql-python/pull/415">#415</a>)</strong></p>
<p><strong><em>What changed</em></strong>: Fixed a segmentation fault that occurred in libmsodbcsql-18.5 when calling SQLFreeHandle() during connection cleanup. The issue was related to improper handle lifecycle management during driver shutdown.<br>
<strong><em>Who benefits</em></strong>: Applications experiencing crashes during connection cleanup, long-running applications with frequent connection cycling, multi-threaded applications managing multiple connections<br>
<strong><em>Impact</em></strong>: Eliminates driver crashes during connection teardown, improves stability for production workloads, ensures proper resource cleanup without segmentation faults</p>
<blockquote>
<p>Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3651851039" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/341" data-hovercard-type="issue" data-hovercard-url="/microsoft/mssql-python/issues/341/hovercard" href="https://github.com/microsoft/mssql-python/issues/341">#341</a></p>
</blockquote>
</li>
</ul>gargsaumyatag:github.com,2008:Repository/921684538/v1.2.02026-01-16T13:58:25Zv1.2.0<h2>Release Notes - Version 1.2.0</h2>
<h2>Enhancements</h2>
<ul>
<li>
<p><strong>Connection.closed Property (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3792379329" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/398" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/398/hovercard" href="https://github.com/microsoft/mssql-python/pull/398">#398</a>)</strong></p>
<p><strong><em>What changed</em></strong>: Added a new <code>closed</code> property to the <code>Connection</code> class that returns <code>True</code> if <code>close()</code> was called, and <code>False</code> otherwise. This property provides a clear and explicit way to check if a connection has been closed. Comprehensive tests ensure correct behavior including idempotency when calling <code>close()</code> multiple times and proper state tracking with context managers.<br>
<strong><em>Who benefits</em></strong>: Applications needing to check connection state, developers implementing connection lifecycle management, applications using context managers for database connections<br>
<strong><em>Impact</em></strong>: Enables explicit connection state checking, improves API clarity for connection management, ensures consistent behavior with context manager usage</p>
<blockquote>
<p>Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3781583852" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/394" data-hovercard-type="issue" data-hovercard-url="/microsoft/mssql-python/issues/394/hovercard" href="https://github.com/microsoft/mssql-python/issues/394">#394</a></p>
</blockquote>
</li>
<li>
<p><strong>Parameter as Dictionary - Pyformat Support (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3752436299" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/385" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/385/hovercard" href="https://github.com/microsoft/mssql-python/pull/385">#385</a>)</strong></p>
<p><strong><em>What changed</em></strong>: Introduced support for both <code>qmark</code> (<code>?</code>) and <code>pyformat</code> (<code>%(name)s</code>) parameter styles in SQL queries. Changed the default <code>paramstyle</code> from <code>"qmark"</code> to <code>"pyformat"</code>. Added new <code>parameter_helper.py</code> module with helper functions to parse, detect, and convert parameter styles. Updated <code>execute</code> and <code>executemany</code> methods to auto-detect and convert parameter styles as needed.<br>
<strong><em>Who benefits</em></strong>: Developers preferring named parameters, applications migrating from other database libraries, users wanting more readable SQL queries with named placeholders<br>
<strong><em>Impact</em></strong>: Improves query readability with named parameters, provides seamless compatibility with both parameter styles, reduces migration effort from other Python database drivers</p>
<blockquote>
<p>Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2911709719" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/20" data-hovercard-type="issue" data-hovercard-url="/microsoft/mssql-python/issues/20/hovercard" href="https://github.com/microsoft/mssql-python/issues/20">#20</a></p>
</blockquote>
</li>
<li>
<p><strong>Copilot Prompts for AI-Assisted Development (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3781566242" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/393" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/393/hovercard" href="https://github.com/microsoft/mssql-python/pull/393">#393</a>)</strong></p>
<p><strong><em>What changed</em></strong>: Added VS Code Copilot on-demand prompts in prompts to streamline developer workflows. Includes 4 prompts: <code>setup-dev-env.prompt.md</code> for environment setup, <code>build-ddbc.prompt.md</code> for rebuilding C++ extensions, <code>run-tests.prompt.md</code> for running pytest, and <code>create-pr.prompt.md</code> for creating well-structured PRs. Features agent mode, cross-referenced prompts, team-specific branch naming, and platform-specific guidance.<br>
<strong><em>Who benefits</em></strong>: New contributors setting up the development environment, maintainers building and testing changes, developers creating pull requests<br>
<strong><em>Impact</em></strong>: Reduces onboarding friction for new contributors, provides consistent guidance for common development tasks, improves PR quality with standardized templates</p>
</li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li>
<p><strong>FetchMany Ignores Batch Size with LOB Columns (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3661231306" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/346" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/346/hovercard" href="https://github.com/microsoft/mssql-python/pull/346">#346</a>)</strong></p>
<p><strong><em>What changed</em></strong>: Fixed <code>fetchmany(n)</code> to respect the specified batch size when the result set contains LOB (Large Object) columns. Previously, the batch size parameter was ignored when LOB columns were present.<br>
<strong><em>Who benefits</em></strong>: Applications fetching large result sets with LOB columns in batches, memory-constrained applications processing large text or binary data<br>
<strong><em>Impact</em></strong>: Enables proper batch processing of LOB data, improves memory efficiency when handling large objects, ensures consistent behavior of <code>fetchmany()</code> across all column types</p>
<blockquote>
<p>Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3661211175" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/345" data-hovercard-type="issue" data-hovercard-url="/microsoft/mssql-python/issues/345/hovercard" href="https://github.com/microsoft/mssql-python/issues/345">#345</a></p>
</blockquote>
</li>
<li>
<p><strong>Non-ASCII Path Resolution on Windows (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3734116044" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/376" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/376/hovercard" href="https://github.com/microsoft/mssql-python/pull/376">#376</a>)</strong></p>
<p><strong><em>What changed</em></strong>: Fixed path resolution for files with non-ASCII characters (e.g., Unicode, international characters) in Windows environments. Ensures proper handling of paths containing special characters in directory names or filenames.<br>
<strong><em>Who benefits</em></strong>: Users with non-English usernames or directory paths, applications deployed in internationalized environments, developers working with files containing Unicode characters in paths<br>
<strong><em>Impact</em></strong>: Enables driver usage in paths with international characters, resolves import and loading failures on localized Windows systems, improves cross-locale compatibility</p>
</li>
</ul>
<h2>CI/Infrastructure</h2>
<ul>
<li>
<p><strong>SQL Server 2025 Test Support (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3759475357" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/389" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/389/hovercard" href="https://github.com/microsoft/mssql-python/pull/389">#389</a>)</strong></p>
<p><strong><em>What changed</em></strong>: Added support for testing against SQL Server 2025 across Windows, macOS, and Linux CI pipelines. Introduced new matrix configurations for SQL Server 2025 with Python 3.14 on Windows, added installation and setup scripts for SQL Server 2025 Express, and updated Docker commands to use matrix-provided SQL Server images on macOS and Linux. Enhanced test result publishing to include SQL Server version in run titles for better traceability.<br>
<strong><em>Who benefits</em></strong>: Maintainers validating compatibility with upcoming SQL Server releases, contributors ensuring cross-version compatibility, users planning to upgrade to SQL Server 2025<br>
<strong><em>Impact</em></strong>: Ensures driver is validated against SQL Server 2025 before GA, improves release confidence for new SQL Server versions, provides early detection of compatibility issues</p>
</li>
<li>
<p><strong>Forked PR Coverage Comment Workflow (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3733995291" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/375" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/375/hovercard" href="https://github.com/microsoft/mssql-python/pull/375">#375</a>)</strong></p>
<p><strong><em>What changed</em></strong> Implemented workflow_run solution for posting code coverage comments on pull requests from forked repositories. This enables coverage reporting for external contributors whose PRs originate from forks.<br>
<strong><em>Who benefits</em></strong>: External contributors submitting PRs from forked repositories, maintainers reviewing community contributions, open source collaboration workflows<br>
<strong><em>Impact</em></strong>: Provides visibility into code coverage for forked PRs, improves review process for external contributions, enhances community contribution experience</p>
</li>
</ul>gargsaumyatag:github.com,2008:Repository/921684538/v1.1.02025-12-19T12:50:45Zv1.1.0<h2>Release Notes - Version 1.1.0</h2>
<h2>Enhancements</h2>
<ul>
<li>
<p><strong>Thread-Safe Encoding/Decoding (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3657132131" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/342" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/342/hovercard" href="https://github.com/microsoft/mssql-python/pull/342">#342</a>)</strong></p>
<p><strong><em>What changed</em></strong>: Introduced re-entrant lock to protect encoding and decoding settings across all connection methods (<code>setencoding</code>, <code>setdecoding</code>, <code>getencoding</code>, <code>getdecoding</code>). Enforced strict validation allowing only <code>utf-16le</code> and <code>utf-16be</code> for SQL_WCHAR types, explicitly rejecting <code>utf-16</code> with BOM due to byte order ambiguity. Added security validation to ensure encoding names contain only safe characters and reasonable lengths.<br>
<strong><em>Who benefits</em></strong>: Multi-threaded applications with concurrent connections, applications processing Unicode data from SQL Server, security-conscious deployments preventing encoding-based attacks<br>
<strong><em>Impact</em></strong>: Prevents race conditions in encoding/decoding configuration, eliminates encoding-related data corruption in concurrent scenarios, and blocks potential denial-of-service attacks through malicious encoding specifications</p>
<blockquote>
<p>Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3443608746" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/250" data-hovercard-type="issue" data-hovercard-url="/microsoft/mssql-python/issues/250/hovercard" href="https://github.com/microsoft/mssql-python/issues/250">#250</a></p>
</blockquote>
</li>
<li>
<p><strong>Comprehensive Linting and Code Quality (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3632762736" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/331" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/331/hovercard" href="https://github.com/microsoft/mssql-python/pull/331">#331</a>)</strong></p>
<p><strong><em>What changed</em></strong>: Added GitHub Actions workflow for automated Python (flake8) and C++ (clang-format) linting. Introduced <code>.flake8</code> and updated <code>.clang-format</code> configuration files. Applied comprehensive formatting to all Python and C++ files following project style guidelines.<br>
<strong><em>Who benefits</em></strong>: All contributors, code reviewers, maintainers ensuring consistent code quality<br>
<strong><em>Impact</em></strong>: Enforces consistent code style across the codebase, catches style violations early in CI, improves code readability and maintainability.</p>
<blockquote>
<p>Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2921193802" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/22" data-hovercard-type="issue" data-hovercard-url="/microsoft/mssql-python/issues/22/hovercard" href="https://github.com/microsoft/mssql-python/issues/22">#22</a></p>
</blockquote>
</li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li>
<p><strong>Segmentation Fault on Linux During Garbage Collection (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3694298610" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/361" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/361/hovercard" href="https://github.com/microsoft/mssql-python/pull/361">#361</a>)</strong></p>
<p><strong><em>What changed</em></strong>: Fixed critical double-free issue in <code>SqlHandle::free()</code> by preventing handle cleanup during Python interpreter shutdown for both statement (<code>SQL_HANDLE_STMT</code>) and database connection (<code>SQL_HANDLE_DBC</code>) handles<br>
<strong><em>Who benefits</em></strong>: All Linux users, long-running applications with frequent connection cycles, applications experiencing crashes during shutdown<br>
<strong><em>Impact</em></strong>: Eliminates segmentation faults during Python garbage collection, improves application stability and reliability on Linux platforms</p>
<blockquote>
<p>Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3651851039" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/341" data-hovercard-type="issue" data-hovercard-url="/microsoft/mssql-python/issues/341/hovercard" href="https://github.com/microsoft/mssql-python/issues/341">#341</a></p>
</blockquote>
</li>
<li>
<p><strong>Connection Pooling Isolation Level Leak (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3659181354" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/343" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/343/hovercard" href="https://github.com/microsoft/mssql-python/pull/343">#343</a>)</strong></p>
<p><strong><em>What changed</em></strong>: Transaction isolation level now explicitly reset to <code>READ COMMITTED</code> when pooled connections are reused. Added logic to <code>Connection::reset()</code> method to prevent isolation level settings from leaking between connection usages, addressing limitation of <code>SQL_ATTR_RESET_CONNECTION</code> which does not reset isolation level.<br>
<strong><em>Who benefits</em></strong>: Applications using connection pooling with different isolation level requirements, multi-tenant applications sharing connection pools, systems requiring predictable transaction isolation behavior<br>
<strong><em>Impact</em></strong>: Prevents unexpected transaction behavior from inherited isolation levels, ensures consistent database state across pooled connection reuse, eliminates hard-to-debug isolation level conflicts</p>
<blockquote>
<p>Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3643789966" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/337" data-hovercard-type="issue" data-hovercard-url="/microsoft/mssql-python/issues/337/hovercard" href="https://github.com/microsoft/mssql-python/issues/337">#337</a></p>
</blockquote>
</li>
<li>
<p><strong>UTF-16 String Decoding from SQL Server (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3651251900" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/340" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/340/hovercard" href="https://github.com/microsoft/mssql-python/pull/340">#340</a>)</strong></p>
<p><strong><em>What changed</em></strong>: Enhanced getinfo()method to properly decode UTF-16LE strings from SQL Server with fallback to UTF-8 encoding. Added comprehensive test coverage for string encoding validation.<br>
<strong><em>Who benefits</em></strong>: Applications retrieving driver or connection metadata, systems processing non-ASCII characters in connection info, developers troubleshooting encoding issues<br>
<strong><em>Impact</em></strong>: Eliminates data corruption when retrieving string metadata from SQL Server, ensures proper character encoding across all platforms, prevents silent encoding failures</p>
<blockquote>
<p>Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3598036230" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/318" data-hovercard-type="issue" data-hovercard-url="/microsoft/mssql-python/issues/318/hovercard" href="https://github.com/microsoft/mssql-python/issues/318">#318</a></p>
</blockquote>
</li>
<li>
<p><strong>Improved UTF-16/UTF-32 Conversion Performance (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3704638827" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/365" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/365/hovercard" href="https://github.com/microsoft/mssql-python/pull/365">#365</a>)</strong></p>
<p><strong><em>What changed</em></strong>: Replaced deprecated <code>std::wstring_convert</code> with optimized direct UTF-16 to UTF-32 conversion. Implemented explicit surrogate pair handling, removed intermediate buffers, and streamlined conversion logic for better performance and branch prediction. Added robust handling for invalid surrogate pairs and code points.<br>
<strong><em>Who benefits</em></strong>: All macOS/Linux users processing Unicode data, applications handling characters outside Basic Multilingual Plane (BMP), performance-sensitive workloads<br>
<strong><em>Impact</em></strong>: Greater than 10x performance improvement for UTF-8/16 conversions, eliminates deprecation warnings from modern compilers, improves robustness with malformed Unicode input</p>
</li>
<li>
<p><strong>Connection String Escaping Rules (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3703614942" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/364" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/364/hovercard" href="https://github.com/microsoft/mssql-python/pull/364">#364</a>)</strong></p>
<p><strong><em>What changed</em></strong>: Fixed parser and builder to correctly handle ODBC connection string curly brace escaping rules. Only closing braces inside curlies require escaping (e.g., <code>{pw}}d}</code> for literal <code>pw}d</code>). Opening braces don't require escaping when wrapped in curlies.<br>
<strong><em>Who benefits</em></strong>: Users with special characters in passwords or connection string values, applications migrating from other database drivers, developers troubleshooting connection string issues<br>
<strong><em>Impact</em></strong>: Enables correct handling of passwords and values containing curly braces, aligns with official ODBC specification (MS-ODBCSTR), prevents connection failures due to incorrect escaping</p>
<blockquote>
<p>Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3698114144" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/363" data-hovercard-type="issue" data-hovercard-url="/microsoft/mssql-python/issues/363/hovercard" href="https://github.com/microsoft/mssql-python/issues/363">#363</a></p>
</blockquote>
</li>
<li>
<p><strong>IntegrityError Detection with OUTPUT Clause (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3645616046" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/338" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/338/hovercard" href="https://github.com/microsoft/mssql-python/pull/338">#338</a>)</strong></p>
<p><strong><em>What changed</em></strong>: Fixed error handling in <code>fetchall()</code> method to properly check and handle errors from <code>DDBCSQLFetchAll</code>. Added explicit <code>check_error</code> call after fetch operation.<br>
<strong><em>Who benefits</em></strong>: Applications using INSERT statements with OUTPUT clause and multiple VALUES entries, developers expecting proper IntegrityError exceptions on constraint violations<br>
<strong><em>Impact</em></strong>: Ensures errors are properly detected and raised during batch inserts with OUTPUT clause, improves error handling reliability and debugging experience</p>
<blockquote>
<p>Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3633942689" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/333" data-hovercard-type="issue" data-hovercard-url="/microsoft/mssql-python/issues/333/hovercard" href="https://github.com/microsoft/mssql-python/issues/333">#333</a></p>
</blockquote>
</li>
<li>
<p><strong>Query Timeout During Cursor Creation (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3662200036" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/348" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/348/hovercard" href="https://github.com/microsoft/mssql-python/pull/348">#348</a>)</strong></p>
<p><strong><em>What changed</em></strong>: Refactored timeout handling by introducing <code>_set_timeout()</code> method to set query timeout attribute during cursor initialization rather than on each <code>execute()</code> call. Centralizes timeout management in cursor lifecycle following performance best practices.<br>
<strong><em>Who benefits</em></strong>: Applications with strict query timeout requirements, performance-sensitive workloads executing many queries, developers experiencing timeout-related issues<br>
<strong><em>Impact</em></strong>: Improves consistency of timeout application, reduces overhead by setting timeout once during cursor creation, ensures timeout is active for entire cursor lifecycle</p>
<blockquote>
<p>Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3510489594" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/291" data-hovercard-type="issue" data-hovercard-url="/microsoft/mssql-python/issues/291/hovercard" href="https://github.com/microsoft/mssql-python/issues/291">#291</a></p>
</blockquote>
</li>
<li>
<p><strong>NULL Parameter Array Handling (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3633641590" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/332" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/332/hovercard" href="https://github.com/microsoft/mssql-python/pull/332">#332</a>)</strong></p>
<p><strong><em>What changed</em></strong>: Added logic to <code>BindParameterArray</code> in <code>ddbc_bindings.cpp</code> to handle <code>SQL_C_DEFAULT</code> type for arrays containing only NULL values. Validates that all values are NULL and throws exception if any non-NULL value is detected. Added comprehensive test coverage.<br>
<strong><em>Who benefits</em></strong>: Applications using <code>executemany()</code> with NULL values, batch insert operations with nullable columns, data migration scenarios<br>
<strong><em>Impact</em></strong>: Enables correct insertion of rows with all NULL values via <code>executemany()</code>, prevents type inference errors, improves batch operation reliability</p>
</li>
<li>
<p><strong>Sensitive Parameter Filtering (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3714802513" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/368" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/368/hovercard" href="https://github.com/microsoft/mssql-python/pull/368">#368</a>)</strong></p>
<p><strong><em>What changed</em></strong>: Updated <code>remove_sensitive_params</code> function in authentication module to exclude <code>Trusted_Connection</code> instead of <code>Encrypt</code> and <code>TrustServerCertificate</code> when filtering connection parameters<br>
<strong><em>Who benefits</em></strong>: Applications using integrated authentication, security auditing systems, compliance frameworks tracking authentication methods<br>
<strong><em>Impact</em></strong>: Correctly filters sensitive authentication parameters while preserving encryption settings, improves security parameter handling accuracy</p>
<blockquote>
<p>Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3695004961" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/362" data-hovercard-type="issue" data-hovercard-url="/microsoft/mssql-python/issues/362/hovercard" href="https://github.com/microsoft/mssql-python/issues/362">#362</a></p>
</blockquote>
</li>
<li>
<p><strong>CMake Build Warnings and Errors (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3671335082" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/353" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/353/hovercard" href="https://github.com/microsoft/mssql-python/pull/353">#353</a>)</strong></p>
<p><strong><em>What changed</em></strong>: Enforced CMake warnings and deprecated features as errors (<code>CMAKE_ERROR_DEPRECATED</code>, <code>CMAKE_WARN_DEPRECATED</code>). Added strict compiler flags for GCC/Clang (<code>-Werror</code>, <code>-Wattributes</code>, <code>-Wint-to-pointer-cast</code>). Suppressed visibility attribute warnings for <code>ParamInfo</code> struct on Linux. Improved type casting safety in parameter binding using <code>reinterpret_cast</code> and <code>static_cast</code>.<br>
<strong><em>Who benefits</em></strong>: Build system maintainers, developers contributing C++ code, CI/CD pipelines ensuring code quality<br>
<strong><em>Impact</em></strong>: Catches deprecated API usage and build warnings early, improves code safety through strict type casting, ensures cross-platform build quality</p>
</li>
</ul>gargsaumyatag:github.com,2008:Repository/921684538/v1.0.02025-11-18T18:14:42Zv1.0.0 - General Availability Release<h2><strong>Release Notes - Version 1.0.0</strong></h2>
<p>We are thrilled to announce the General Availability (GA) of mssql-python, Microsoft’s official Python driver for SQL Server, Azure SQL, and SQL databases in Fabric. This milestone makes the driver production-ready for enterprise workloads.</p>
<h3>Features</h3>
<p><strong>Python 3.14 support</strong><br>
Ensuring compatibility with the latest Python ecosystem so developers can confidently adopt new language features.</p>
<p><strong>GA stability</strong><br>
Hardened release engineering, expanded test coverage, and compliance checks for enterprise readiness. This includes:</p>
<ul>
<li>Robust CI/CD pipelines for consistent builds.</li>
<li>Comprehensive unit and integration tests across platforms.</li>
<li>Security and compliance validation aligned with Microsoft standards.</li>
</ul>sumitmsfttag:github.com,2008:Repository/921684538/v0.14.0-preview2025-11-15T06:19:58Zv0.14.0-preview<h2>Release Notes - Version 0.14.0</h2>
<h3>Features</h3>
<ul>
<li>
<p><strong>Major Fetch Performance Optimizations (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3607352092" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/320" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/320/hovercard" href="https://github.com/microsoft/mssql-python/pull/320">#320</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3560921185" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/304" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/304/hovercard" href="https://github.com/microsoft/mssql-python/pull/304">#304</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Implemented direct UTF-16 decoding for NVARCHAR on Linux/macOS, direct Python C API usage for numeric types, batch row allocation, function pointer dispatch table (major reduction in type dispatch overhead), and cached output converters/column maps<br>
<strong><em>Who benefits:</em></strong> All applications fetching result sets, analytics workloads processing large datasets, and performance-sensitive applications<br>
<strong><em>Impact:</em></strong> <strong>Faster</strong> for large result sets (100K+ rows), <strong>Significant improvement</strong> for very large result sets (~1.2M rows).</p>
</li>
<li>
<p><strong>Connection String Parser and Validation (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3563892183" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/307" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/307/hovercard" href="https://github.com/microsoft/mssql-python/pull/307">#307</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Implemented comprehensive ODBC connection string parser per MS-ODBCSTR specification with parameter allowlist validation, synonym normalization (e.g., <code>host</code>→<code>Server</code>, <code>user</code>→<code>UID</code>), and clear error messages for malformed strings<br>
<strong><em>Who benefits:</em></strong> All users connecting to SQL Server, developers troubleshooting connection string issues, and applications migrating from other database systems<br>
<strong><em>Impact:</em></strong> Catches connection string errors early with actionable messages and prevents silent failures.<br>
<strong>Breaking change:</strong> Unknown parameters now raise <code>ConnectionStringParseError</code> instead of being silently ignored</p>
<blockquote>
<p>Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3563785309" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/306" data-hovercard-type="issue" data-hovercard-url="/microsoft/mssql-python/issues/306/hovercard" href="https://github.com/microsoft/mssql-python/issues/306">#306</a></p>
</blockquote>
</li>
<li>
<p><strong>Enhanced DECIMAL Precision (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3498547417" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/287" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/287/hovercard" href="https://github.com/microsoft/mssql-python/pull/287">#287</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Increased precision support from 15 to 38 digits (SQL Server maximum) with proper binary representation for high-precision decimals via SQL_NUMERIC_STRUCT<br>
<strong><em>Who benefits:</em></strong> Financial applications requiring maximum precision, scientific/engineering applications with high-precision calculations, and data migration scenarios<br>
<strong><em>Impact:</em></strong> Eliminates precision loss for large decimal values and ensures full compliance with SQL Server's DECIMAL(38, scale) capabilities</p>
</li>
<li>
<p><strong>Comprehensive Logging Framework (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3573843119" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/312" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/312/hovercard" href="https://github.com/microsoft/mssql-python/pull/312">#312</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Unified Python-C++ logging bridge with performance-optimized implementation, new <code>setup_logging()</code> API for DEBUG-level diagnostic logging, ~150 strategic LOG statements across C++ layer, and zero overhead when disabled via atomic level checks<br>
<strong><em>Who benefits:</em></strong> Developers troubleshooting connection or query issues, support teams diagnosing production problems, and contributors debugging driver behavior<br>
<strong><em>Impact:</em></strong> Enables detailed diagnostic logging for issue investigation with minimal performance impact when disabled (default state)</p>
</li>
<li>
<p><strong>Connection Attribute Control (<code>set_attr</code>) (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3316876325" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/177" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/177/hovercard" href="https://github.com/microsoft/mssql-python/pull/177">#177</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Added <code>Connection.set_attr()</code> method for configuring ODBC connection attributes including transaction isolation levels, timeouts, access modes, and other connection options with pyodbc-compatible API<br>
<strong><em>Who benefits:</em></strong> Applications requiring fine-grained connection control, developers migrating from pyodbc, and systems needing custom isolation levels or timeout configurations<br>
<strong><em>Impact:</em></strong> Provides full control over connection behavior and enables advanced scenarios while improving pyodbc compatibility</p>
</li>
<li>
<p><strong>XML Data Type Support (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3512320305" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/293" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/293/hovercard" href="https://github.com/microsoft/mssql-python/pull/293">#293</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Added comprehensive support for SQL Server <code>XML</code> data type with proper handling for insertion, retrieval, batching, and streaming of XML data<br>
<strong><em>Who benefits:</em></strong> Applications processing structured or semi-structured XML data, systems integrating with XML-based APIs, and developers using SQL Server's native XML features<br>
<strong><em>Impact:</em></strong> Enables native XML storage and retrieval with efficient streaming for large documents, supporting all CRUD operations</p>
</li>
<li>
<p><strong>DECIMAL Scientific Notation Support (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3574400590" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/313" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/313/hovercard" href="https://github.com/microsoft/mssql-python/pull/313">#313</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Improved handling of decimal values in scientific notation when converting to SQL VARCHAR types, using fixed-point formatting to prevent SQL Server conversion errors<br>
<strong><em>Who benefits:</em></strong> Applications working with very large or very small decimal values that may be represented in scientific notation<br>
<strong><em>Impact:</em></strong> Prevents conversion errors and ensures consistent decimal formatting across all value ranges</p>
</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>
<p><strong>Access Token Buffer Management (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3616300003" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/323" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/323/hovercard" href="https://github.com/microsoft/mssql-python/pull/323">#323</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Refactored access token handling from static vectors to instance-level buffers in Connection class, improving memory safety and encapsulation for Microsoft Entra ID authentication<br>
<strong><em>Who benefits:</em></strong> Applications using Microsoft Entra ID (Azure AD) authentication, multi-threaded applications with concurrent connections, and users experiencing intermittent authentication failures<br>
<strong><em>Impact:</em></strong> Fixes authentication token corruption in concurrent scenarios and enhances thread safety for connection attributes</p>
</li>
<li>
<p><strong>Decimal Type Inference for executemany (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3612318195" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/322" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/322/hovercard" href="https://github.com/microsoft/mssql-python/pull/322">#322</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Improved <code>_compute_column_type</code> logic to better handle <code>Decimal</code> values with proper sample value selection for type inference, preferring longer/higher-precision values<br>
<strong><em>Who benefits:</em></strong> Applications using batch inserts with Decimal values, financial systems using executemany for performance, and developers encountering type inference errors<br>
<strong><em>Impact:</em></strong> Eliminates exceptions during batch Decimal inserts and improves reliability for executemany operations</p>
<blockquote>
<p>Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3477090708" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/272" data-hovercard-type="issue" data-hovercard-url="/microsoft/mssql-python/issues/272/hovercard" href="https://github.com/microsoft/mssql-python/issues/272">#272</a></p>
</blockquote>
</li>
</ul>
<p>This release delivers significant performance improvements, new data type support, enhanced security, and a robust logging framework while maintaining backward compatibility (except for connection string validation). Much faster fetch performance gains and expanded SQL Server compatibility make this a compelling upgrade for production deployments.</p>
<h3>Breaking Changes</h3>
<p><g-emoji class="g-emoji" alias="warning">⚠️</g-emoji> <strong>Connection String Validation</strong> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3563892183" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/307" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/307/hovercard" href="https://github.com/microsoft/mssql-python/pull/307">#307</a>): Unknown or misspelled connection parameters now raise <code>ConnectionStringParseError</code> instead of being silently ignored. Reserved parameters (<code>Driver</code>, <code>APP</code>) cannot be set by users. Review connection strings for typos or unknown parameters before upgrading.</p>
<h3>Migration Notes</h3>
<ul>
<li>Connection string errors will now be caught early with clear error messages</li>
<li>Remove any attempts to set <code>Driver</code> or <code>APP</code> parameters (managed by the driver)</li>
<li>Example: <code>ConnectionStringParseError: Unknown keyword 'Servr'</code> → Fix typo to <code>Server</code></li>
</ul>bewithgauravtag:github.com,2008:Repository/921684538/v0.13.1-preview2025-10-14T15:08:35Zv0.13.1-preview<h2>Release Notes - Version 0.13.1</h2>
<h3>Bug Fixes</h3>
<ul>
<li>
<p><strong>Access Token Issue (EntraID Auth) (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3497697050" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/285" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/285/hovercard" href="https://github.com/microsoft/mssql-python/pull/285">#285</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Fixed authentication token handling to resolve connection failures with Microsoft Entra ID<br>
<strong><em>Who benefits:</em></strong> Applications using Microsoft Entra ID (formerly Azure Active Directory) authentication<br>
<strong><em>Impact:</em></strong> Restored reliable authentication for EntraID-based connections</p>
<blockquote>
<p>Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3497729163" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/286" data-hovercard-type="issue" data-hovercard-url="/microsoft/mssql-python/issues/286/hovercard" href="https://github.com/microsoft/mssql-python/issues/286">#286</a></p>
</blockquote>
</li>
<li>
<p><strong>Timezone Preservation in DATETIMEOFFSET (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3490034258" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/281" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/281/hovercard" href="https://github.com/microsoft/mssql-python/pull/281">#281</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Removed forced UTC conversion when reading <code>datetimeoffset</code> values, preserving original timezone information in Python <code>datetime</code> objects<br>
<strong><em>Who benefits:</em></strong> Applications working with timezone-aware data across multiple time zones<br>
<strong><em>Impact:</em></strong> Accurate timezone representation without data loss from UTC conversion</p>
<blockquote>
<p>Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3367397033" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/213" data-hovercard-type="issue" data-hovercard-url="/microsoft/mssql-python/issues/213/hovercard" href="https://github.com/microsoft/mssql-python/issues/213">#213</a></p>
</blockquote>
</li>
<li>
<p><strong>Connection Pooling Resource Cleanup (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3472083071" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/268" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/268/hovercard" href="https://github.com/microsoft/mssql-python/pull/268">#268</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Added shutdown tracking to prevent multiple pool cleanup operations and resource leaks, ensuring cleanup executes only once<br>
<strong><em>Who benefits:</em></strong> Applications using connection pooling, especially long-running services<br>
<strong><em>Impact:</em></strong> Improved pool shutdown reliability and prevention of resource leaks</p>
<blockquote>
<p>Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3472028706" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/267" data-hovercard-type="issue" data-hovercard-url="/microsoft/mssql-python/issues/267/hovercard" href="https://github.com/microsoft/mssql-python/issues/267">#267</a></p>
</blockquote>
</li>
<li>
<p><strong>UUID String Mapping Removal (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3479995495" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/274" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/274/hovercard" href="https://github.com/microsoft/mssql-python/pull/274">#274</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Removed automatic string-to-UUID conversion logic in parameter binding, treating UUID strings as regular strings<br>
<strong><em>Who benefits:</em></strong> Applications passing UUID strings that should be handled as text rather than binary GUIDs<br>
<strong><em>Impact:</em></strong> More predictable string parameter handling without automatic type coercion</p>
<blockquote>
<p>Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3427548919" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/241" data-hovercard-type="issue" data-hovercard-url="/microsoft/mssql-python/issues/241/hovercard" href="https://github.com/microsoft/mssql-python/issues/241">#241</a></p>
</blockquote>
</li>
</ul>
<h3>Infrastructure</h3>
<ul>
<li>
<p><strong>Enhanced Pooling Test Coverage (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3472083071" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/268" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/268/hovercard" href="https://github.com/microsoft/mssql-python/pull/268">#268</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Added comprehensive test suite for connection pooling with 421 new test lines and testing utilities for reliable test isolation<br>
<strong><em>Who benefits:</em></strong> Contributors and maintainers<br>
<strong><em>Impact:</em></strong> Improved quality assurance for connection pooling functionality</p>
</li>
</ul>
<p>This hotfix release addresses critical authentication, timezone handling, and resource management issues discovered in v0.13.0, ensuring production stability for enterprise deployments.</p>bewithgauravtag:github.com,2008:Repository/921684538/v0.13.0-preview2025-10-14T15:06:29Zv0.13.0-preview<h2>Release Notes - Version 0.13.0</h2>
<h3>Features</h3>
<ul>
<li>
<p><strong>Enhanced executemany() Support for Complex Data Types (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3433403104" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/245" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/245/hovercard" href="https://github.com/microsoft/mssql-python/pull/245">#245</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3453088620" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/260" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/260/hovercard" href="https://github.com/microsoft/mssql-python/pull/260">#260</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Added full support for UNIQUEIDENTIFIER and DATETIMEOFFSET in batch operations with proper type inference and NULL handling<br>
<strong><em>Who benefits:</em></strong> Applications performing bulk inserts with UUIDs and timezone-aware datetime values<br>
<strong><em>Impact:</em></strong> Seamless batch operations with complex data types, improving performance for bulk data processing</p>
</li>
<li>
<p><strong>Streaming Support in executemany() (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3447744235" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/251" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/251/hovercard" href="https://github.com/microsoft/mssql-python/pull/251">#251</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Implemented robust handling of large values (NVARCHAR/VARCHAR/VARBINARY(MAX)) with automatic Data-At-Execution (DAE) detection and fallback<br>
<strong><em>Who benefits:</em></strong> Applications working with large text or binary data in batch operations<br>
<strong><em>Impact:</em></strong> Efficient streaming inserts and fetches for massive datasets without memory constraints</p>
</li>
</ul>
<h3>Improvements</h3>
<ul>
<li>
<p><strong>Enhanced Cursor Reliability (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3465230464" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/263" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/263/hovercard" href="https://github.com/microsoft/mssql-python/pull/263">#263</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Improved consistency and correctness of <code>cursor.rowcount</code> attribute across fetchone(), fetchmany(), and fetchall() operations, including empty result sets<br>
<strong><em>Who benefits:</em></strong> Applications relying on accurate row count information for business logic<br>
<strong><em>Impact:</em></strong> More reliable rowcount reporting for all cursor operations and fetch scenarios</p>
</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>
<p><strong>Type Inference Bug Fix (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3447788138" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/252" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/252/hovercard" href="https://github.com/microsoft/mssql-python/pull/252">#252</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Resolved type inference issues in executemany() by refactoring sample value selection logic<br>
<strong><em>Who benefits:</em></strong> Applications using executemany() with diverse data types<br>
<strong><em>Impact:</em></strong> More accurate automatic type detection in batch operations</p>
</li>
<li>
<p><strong>Memory Leak and Security Fix (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3465641218" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/264" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/264/hovercard" href="https://github.com/microsoft/mssql-python/pull/264">#264</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Replaced static token buffer with stack-allocated buffer to prevent memory leaks and ensure sensitive data is securely erased after use<br>
<strong><em>Who benefits:</em></strong> Security-conscious applications and long-running services<br>
<strong><em>Impact:</em></strong> Improved memory management and enhanced security for sensitive connection data</p>
</li>
<li>
<p><strong>Resource Cleanup on Python Shutdown (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3449598367" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/255" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/255/hovercard" href="https://github.com/microsoft/mssql-python/pull/255">#255</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Added proper cleanup mechanisms to prevent segmentation faults during Python interpreter shutdown<br>
<strong><em>Who benefits:</em></strong> All applications, especially those with complex shutdown sequences<br>
<strong><em>Impact:</em></strong> Enhanced stability and elimination of shutdown-related crashes</p>
</li>
</ul>
<h3>Infrastructure</h3>
<ul>
<li>
<p><strong>Testing Enhancements (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3433403104" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/245" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/245/hovercard" href="https://github.com/microsoft/mssql-python/pull/245">#245</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3453088620" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/260" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/260/hovercard" href="https://github.com/microsoft/mssql-python/pull/260">#260</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3447744235" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/251" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/251/hovercard" href="https://github.com/microsoft/mssql-python/pull/251">#251</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3465230464" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/263" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/263/hovercard" href="https://github.com/microsoft/mssql-python/pull/263">#263</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Added comprehensive test coverage for UUID/GUID, DATETIMEOFFSET, streaming operations, and cursor.rowcount behavior<br>
<strong><em>Who benefits:</em></strong> Contributors and maintainers<br>
<strong><em>Impact:</em></strong> Improved code quality assurance and regression prevention</p>
</li>
</ul>
<p>This release focuses on enhancing batch operation capabilities with complex data types and streaming support, while addressing critical stability and security issues to ensure robust production deployments.</p>bewithgauravtag:github.com,2008:Repository/921684538/v0.12.0-preview2025-09-26T10:16:34Zv0.12.0-preview<h2>Release Notes - Version 0.12.0</h2>
<h3>Features</h3>
<ul>
<li>
<p><strong>Complex Data Type Support (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3430743518" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/243" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/243/hovercard" href="https://github.com/microsoft/mssql-python/pull/243">#243</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3417236125" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/236" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/236/hovercard" href="https://github.com/microsoft/mssql-python/pull/236">#236</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3427548919" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/241" data-hovercard-type="issue" data-hovercard-url="/microsoft/mssql-python/issues/241/hovercard" href="https://github.com/microsoft/mssql-python/issues/241">#241</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3367397033" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/213" data-hovercard-type="issue" data-hovercard-url="/microsoft/mssql-python/issues/213/hovercard" href="https://github.com/microsoft/mssql-python/issues/213">#213</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Added native support for DATETIMEOFFSET and UNIQUEIDENTIFIER data types with full round-trip handling<br>
<strong><em>Who benefits:</em></strong> Applications working with timezone-aware dates and UUID-based identifiers<br>
<strong><em>Impact:</em></strong> Seamless integration with Python's <code>datetime</code> (timezone-aware) and <code>uuid.UUID</code> objects</p>
</li>
<li>
<p><strong>Enhanced Financial Data Operations (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3433613932" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/246" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/246/hovercard" href="https://github.com/microsoft/mssql-python/pull/246">#246</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Extended MONEY and SMALLMONEY support to <code>executemany</code> operations with proper NULL handling and decimal conversion<br>
<strong><em>Who benefits:</em></strong> Financial applications using batch operations for monetary data<br>
<strong><em>Impact:</em></strong> Improved performance and reliability for bulk financial data processing</p>
</li>
<li>
<p><strong>Comprehensive Code Coverage Integration (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3424770799" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/238" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/238/hovercard" href="https://github.com/microsoft/mssql-python/pull/238">#238</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Implemented unified Python and C++ code coverage reporting with automated build instrumentation and pipeline integration<br>
<strong><em>Who benefits:</em></strong> Development teams and maintainers ensuring code quality<br>
<strong><em>Impact:</em></strong> Enhanced testing visibility and quality assurance across the entire codebase</p>
</li>
</ul>
<h3>Improvements</h3>
<ul>
<li>
<p><strong>Enhanced Database Metadata API (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3438364741" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/249" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/249/hovercard" href="https://github.com/microsoft/mssql-python/pull/249">#249</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Refactored <code>getinfo()</code> API with improved ODBC metadata retrieval, consistent type handling, and expanded constant exposure<br>
<strong><em>Who benefits:</em></strong> Applications requiring detailed database and driver metadata<br>
<strong><em>Impact:</em></strong> More reliable and comprehensive access to database information with better error handling</p>
</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>
<p><strong>DateTime Parsing Optimization (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3410103562" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/235" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/235/hovercard" href="https://github.com/microsoft/mssql-python/pull/235">#235</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Removed aggressive datetime parsing to prevent incorrect type conversions and improve data integrity<br>
<strong><em>Who benefits:</em></strong> Applications handling diverse datetime formats and string data<br>
<strong><em>Impact:</em></strong> More accurate data type handling and reduced unexpected parsing behavior</p>
<blockquote>
<p>Thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/arvis108/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/arvis108">@arvis108</a> for this contribution!</p>
</blockquote>
</li>
</ul>
<h3>Infrastructure</h3>
<ul>
<li>
<p><strong>Development Workflow Enhancements (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3452974452" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/259" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/259/hovercard" href="https://github.com/microsoft/mssql-python/pull/259">#259</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3424770799" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/238" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/238/hovercard" href="https://github.com/microsoft/mssql-python/pull/238">#238</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Added CodeQL analysis integration and optimized PR automation with improved labeling and coverage reporting<br>
<strong><em>Who benefits:</em></strong> Contributors and maintainers<br>
<strong><em>Impact:</em></strong> Enhanced security analysis and streamlined development processes</p>
</li>
</ul>
<p>This release focuses on expanding complex data type support, improving financial data operations, and strengthening development infrastructure while maintaining backward compatibility.</p>bewithgauravtag:github.com,2008:Repository/921684538/v0.11.0-preview2025-09-19T06:18:33Zv0.11.0-preview<h2>Release Notes - Version 0.11.0</h2>
<h3>Features</h3>
<ul>
<li>
<p><strong>Database Metadata & Catalog APIs (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3345301201" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/201" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/201/hovercard" href="https://github.com/microsoft/mssql-python/pull/201">#201</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3342237724" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/192" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/192/hovercard" href="https://github.com/microsoft/mssql-python/pull/192">#192</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Added comprehensive <code>getInfo()</code> method for database information retrieval and extensive metadata APIs including <code>getTypeInfo()</code>, <code>procedures()</code>, <code>foreignKeys()</code>, <code>primaryKeys()</code>, <code>columns()</code>, <code>statistics()</code>, <code>rowIdColumns()</code> and, <code>rowVerColumns()</code>.<br>
<strong><em>Who benefits:</em></strong> Developers building database introspection tools and applications requiring schema discovery<br>
<strong><em>Impact:</em></strong> Complete database metadata access and improved schema management capabilities</p>
</li>
<li>
<p><strong>Advanced Parameter Management (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3342237724" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/192" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/192/hovercard" href="https://github.com/microsoft/mssql-python/pull/192">#192</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Implemented <code>setinputsizes()</code> method with SQL type constants export and enhanced parameter validation through the <code>SQLTypes</code> class<br>
<strong><em>Who benefits:</em></strong> Applications requiring precise parameter type control and validation<br>
<strong><em>Impact:</em></strong> Better performance and type safety in parameterized queries</p>
</li>
<li>
<p><strong>Connection-Level Execute & BatchExecute (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3340823383" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/189" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/189/hovercard" href="https://github.com/microsoft/mssql-python/pull/189">#189</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Added <code>execute()</code> & <code>batchexecute()</code> method directly to Connection class for simplified & faster query execution<br>
<strong><em>Who benefits:</em></strong> Developers seeking streamlined database operations without explicit cursor management<br>
<strong><em>Impact:</em></strong> More convenient & fast API for simple query operations</p>
</li>
<li>
<p><strong>Output Data Conversion System (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3341003991" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/190" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/190/hovercard" href="https://github.com/microsoft/mssql-python/pull/190">#190</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Introduced flexible output converter system with <code>add_output_converter()</code>, <code>get_output_converter()</code>, <code>remove_output_converter()</code>, and <code>clear_output_converters()</code> methods<br>
<strong><em>Who benefits:</em></strong> Applications requiring custom data type transformations during result fetching<br>
<strong><em>Impact:</em></strong> Customizable data processing pipeline for specialized use cases</p>
</li>
<li>
<p><strong>Global Configuration APIs (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3340511633" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/188" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/188/hovercard" href="https://github.com/microsoft/mssql-python/pull/188">#188</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3337271047" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/187" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/187/hovercard" href="https://github.com/microsoft/mssql-python/pull/187">#187</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Added <code>getDecimalSeperator()</code>, <code>setDecimalSeperator()</code> global functions and lowercase support for global variables<br>
<strong><em>Who benefits:</em></strong> Applications requiring locale-specific decimal formatting and configuration management<br>
<strong><em>Impact:</em></strong> Enhanced internationalization and global configuration control</p>
</li>
<li>
<p><strong>Connection Timeout Control & Searchescape (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3341217518" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/191" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/191/hovercard" href="https://github.com/microsoft/mssql-python/pull/191">#191</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Added timeout & searchescape attribute for connection-level timeout & escape management<br>
<strong><em>Who benefits:</em></strong> Applications requiring fine-grained connection timeout & escaping control<br>
<strong><em>Impact:</em></strong> Better connection reliability and timeout handling</p>
</li>
</ul>
<h3>Improvements</h3>
<ul>
<li>
<p><strong>Large Binary Data Streaming (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3398511574" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/232" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/232/hovercard" href="https://github.com/microsoft/mssql-python/pull/232">#232</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3398116346" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/231" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/231/hovercard" href="https://github.com/microsoft/mssql-python/pull/231">#231</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Enhanced VARBINARY(MAX) streaming support in all fetch operations with improved chunked retrieval and LOB handling<br>
<strong><em>Who benefits:</em></strong> Applications processing large binary objects like images, documents, and media files<br>
<strong><em>Impact:</em></strong> Efficient memory usage and reliable handling of large binary data</p>
</li>
<li>
<p><strong>Money Data Type Support (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3397645688" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/230" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/230/hovercard" href="https://github.com/microsoft/mssql-python/pull/230">#230</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Added comprehensive support for SQL Server MONEY and SMALLMONEY types with proper boundary value handling and decimal conversion<br>
<strong><em>Who benefits:</em></strong> Financial applications requiring precise monetary calculations<br>
<strong><em>Impact:</em></strong> Native support for SQL Server financial data types with accurate precision</p>
</li>
<li>
<p><strong>VARCHAR(MAX) Fetch Streaming (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3379652398" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/219" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/219/hovercard" href="https://github.com/microsoft/mssql-python/pull/219">#219</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Implemented streaming support for large text columns in <code>fetchone()</code> operations<br>
<strong><em>Who benefits:</em></strong> Applications handling large text content exceeding standard buffer limits<br>
<strong><em>Impact:</em></strong> Improved memory efficiency for large text data retrieval</p>
</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>
<p><strong>Parameter Type Inference (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3374297996" data-permission-text="Title is private" data-url="https://github.com/microsoft/mssql-python/issues/215" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/mssql-python/pull/215/hovercard" href="https://github.com/microsoft/mssql-python/pull/215">#215</a>)</strong></p>
<p><strong><em>What changed:</em></strong> Improved parameter type inference for batch operations with accurate integer range-based type selection<br>
<strong><em>Who benefits:</em></strong> Applications using <code>executemany</code> with varied data ranges<br>
<strong><em>Impact:</em></strong> More accurate SQL type mapping and better performance in batch operations</p>
</li>
</ul>
<p>This release significantly enhances database introspection capabilities, streaming performance for large data, and provides comprehensive metadata access while maintaining backward compatibility.</p>bewithgaurav