Release Notes - Version 0.13.0
Features
-
Enhanced executemany() Support for Complex Data Types (#245, #260)
What changed: Added full support for UNIQUEIDENTIFIER and DATETIMEOFFSET in batch operations with proper type inference and NULL handling
Who benefits: Applications performing bulk inserts with UUIDs and timezone-aware datetime values
Impact: Seamless batch operations with complex data types, improving performance for bulk data processing -
Streaming Support in executemany() (#251)
What changed: Implemented robust handling of large values (NVARCHAR/VARCHAR/VARBINARY(MAX)) with automatic Data-At-Execution (DAE) detection and fallback
Who benefits: Applications working with large text or binary data in batch operations
Impact: Efficient streaming inserts and fetches for massive datasets without memory constraints
Improvements
-
Enhanced Cursor Reliability (#263)
What changed: Improved consistency and correctness of
cursor.rowcount
attribute across fetchone(), fetchmany(), and fetchall() operations, including empty result sets
Who benefits: Applications relying on accurate row count information for business logic
Impact: More reliable rowcount reporting for all cursor operations and fetch scenarios
Bug Fixes
-
Type Inference Bug Fix (#252)
What changed: Resolved type inference issues in executemany() by refactoring sample value selection logic
Who benefits: Applications using executemany() with diverse data types
Impact: More accurate automatic type detection in batch operations -
Memory Leak and Security Fix (#264)
What changed: Replaced static token buffer with stack-allocated buffer to prevent memory leaks and ensure sensitive data is securely erased after use
Who benefits: Security-conscious applications and long-running services
Impact: Improved memory management and enhanced security for sensitive connection data -
Resource Cleanup on Python Shutdown (#255)
What changed: Added proper cleanup mechanisms to prevent segmentation faults during Python interpreter shutdown
Who benefits: All applications, especially those with complex shutdown sequences
Impact: Enhanced stability and elimination of shutdown-related crashes
Infrastructure
-
Testing Enhancements (#245, #260, #251, #263)
What changed: Added comprehensive test coverage for UUID/GUID, DATETIMEOFFSET, streaming operations, and cursor.rowcount behavior
Who benefits: Contributors and maintainers
Impact: Improved code quality assurance and regression prevention
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.