pypi mssql-python 1.17.0
v1.17.0

one hour ago

mssql-python 1.17.0

This release makes bulk copy more reliable, improves connection-pool performance and recovery, corrects multi-result row counts, and restores PEP 249 Timestamp() compatibility.

Release Highlights

More Reliable Bulk Copy (#860, #875)

  • What changed: Bulk copy now works reliably after package upgrades, handles UTF-8 text correctly, rejects unsupported destination names early, and preserves full SQL Server datetime precision.
  • Who benefits: Applications using bulkcopy() or bulkcopy_arrow(), especially after an upgrade or when loading Unicode and high-precision temporal data.
  • Impact: Fewer upgrade failures, correct Unicode values, clearer destination-name errors, and no silent loss of datetime precision.

PR #860 | PR #875 | GitHub Issues #855, #843, #849, #869 | Thanks @Jhonatas2 and @oscarrobertson for the contributions.

pip install --upgrade mssql-python

View mssql-python 1.17.0 on PyPI

Enhancements

Faster Connection Pool Reuse (#820)

  • What changed: Clean pooled connections can be returned and reused with less redundant cleanup work.
  • Who benefits: Applications that frequently acquire and return pooled connections.
  • Impact: Lower connection-reuse overhead while preserving transaction safety.

PR #820

Bug Fixes

Faster Recovery from Dead Pooled Connections (#859)

  • What changed: Connection checkout stops waiting on an unresponsive pooled connection after the configured login timeout and opens a replacement.
  • Who benefits: Applications using connection pooling across unreliable or interrupted network connections.
  • Impact: Applications recover predictably instead of hanging for many minutes on a dead pooled connection.

PR #859 | GitHub Issue #854

Accurate nextset() Row Counts (#864)

  • What changed: Cursor.nextset() now refreshes rowcount for each subsequent data-modification result and resets it for row-producing results.
  • Who benefits: Applications processing multi-statement batches, stored procedures, or T-SQL loops with multiple results.
  • Impact: Each result reports its own affected-row count instead of retaining the count from the first statement.

PR #864 | GitHub Issue #863 | Thanks @phelipelui for the contribution.

PEP 249 Timestamp() Compatibility (#872)

  • What changed: The microsecond argument is optional and defaults to zero.
  • Who benefits: Applications using the standard six-argument DB-API Timestamp(year, month, day, hour, minute, second) constructor.
  • Impact: PEP 249-compatible calls no longer fail with a missing-argument TypeError.

PR #872 | GitHub Issue #871 | Thanks @austinaviv for the contribution.

Don't miss a new mssql-python release

NewReleases is sending notifications on new releases.