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()
andgetencoding()
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()
, andfetchval()
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
andmessages
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()
andtable()
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 usingexecutemany
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.