github microsoft/mssql-python 0.10.0-preview

pre-releaseone day ago

Release Notes - Version 0.10.0

Features

  • Linux SUSE Support (#210)

    What changed: Added support for SUSE and openSUSE Linux distributions with automatic driver detection
    Who benefits: Developers using SUSE-based systems and containers
    Impact: Broader enterprise Linux deployment compatibility

  • Context Manager Support (#160)

    What changed: Added with statement support for Connection and Cursor classes with automatic transaction handling
    Who benefits: Developers wanting cleaner resource management
    Impact: Automatic commit/rollback behavior and improved code reliability

  • Large Text Streaming (#176, #206)

    What changed: Implemented Data At Execution (DAE) for streaming large text.
    Who benefits: Applications handling large data exceeding parameter limits
    Impact: Eliminates memory constraints for bulk data operations

  • Connection Encoding API (#172)

    What changed: Added setencoding() and getencoding() methods with configurable text encoding
    Who benefits: Applications requiring specific character encoding control
    Impact: Enhanced internationalization and encoding flexibility

  • Cursor Navigation APIs (#178 , #180, #181, #162)

    What changed: Introduced navigation methods including next(), __iter__(), scroll(), skip(), and fetchval()
    Who benefits: Developers needing fine-grained cursor traversal
    Impact: More intuitive row access and flexible result set navigation

  • Cursor Attributes (#184, #163)

    What changed: Added attributes rownumber and messages to cursor objects
    Who benefits: Applications requiring better debugging and row tracking
    Impact: Simplifies state inspection and enhances transparency during query execution

  • Additional Cursor and Table Methods (#179 , #190, #185)

    What changed: Added cursor.commit(), cursor.rollback() and table() helper method for simplified workflows
    Who benefits: Developers seeking more convenience methods for cursor and schema interaction
    Impact: Streamlined database operations and table discovery

Improvements

  • Enhanced Unicode Support (#166)

    What changed: Improved emoji and special character handling using UTF-16 code unit length calculation
    Who benefits: Applications processing international content and social media data
    Impact: Reliable Unicode content handling without corruption

  • Parameter Type Detection (#208)

    What changed: Added SQLDescribeParam API integration for automatic type inference of None parameters
    Who benefits: Developers working with dynamic queries and NULL values
    Impact: More accurate parameter binding with automatic type detection

  • DB-API 2.0 Compliance (#164)

    What changed: Added standard exception classes as Connection attributes (e.g., connection.Error)
    Who benefits: Developers migrating from other Python database drivers
    Impact: Improved standards compliance and intuitive exception handling

  • Execute Return Value (#161)

    What changed: Fixed execute() to return cursor object correctly
    Who benefits: All applications using execute method
    Impact: Proper method chaining and consistent API behavior

Bug Fixes

  • Binary Data Handling Improvements (#218) → Fixes Issue #226

    What changed: Enhanced binary data (bytes/bytearray) handling by standardizing on VARBINARY type mapping, improved empty binary value processing, and fixed mixed type handling in columns
    Who benefits: Applications working with binary data, BLOBs, or mixed binary content types
    Impact: More reliable binary data storage and retrieval, proper handling of empty binaries vs NULL values, and better support for variable-length binary data

  • Executemany String Corruption (#217) → Fixes Issue #227

    What changed: Fixed string data corruption in batch operations on Unix systems with proper UTF conversion
    Who benefits: Applications using executemany on Linux/macOS
    Impact: Eliminates data corruption in batch string operations

  • Empty Data Handling (#212) → Fixes Issue #205

    What changed: Proper handling of empty strings/binary values to distinguish from NULL
    Who benefits: Applications dealing with empty data columns
    Impact: Prevents crashes and ensures correct empty value representation

  • Cursor Lifecycle (#183) → Fixes Issue #182

    What changed: Improved cursor cleanup during garbage collection
    Who benefits: All cursor usage patterns
    Impact: Enhanced stability during cursor destruction

This release significantly improves platform compatibility, Unicode handling, and overall robustness while maintaining backward compatibility.

Don't miss a new mssql-python release

NewReleases is sending notifications on new releases.