Summary
This release focuses on enhanced data type support, improved connection management, and better compliance with Python DB-API 2.0 standards.
The addition of context manager support and timezone-aware datetime handling improves the developer experience.
Migration Notes:
- Review exception handling code due to DB-API 2.0 compliance changes
- Test compatibility with date/time data types
- Consider adopting context manager pattern for connection management
BREAKING CHANGES
- Exception Hierarchy Update: Adjusted exception hierarchy to match DB-API 2.0 specification - existing exception handling code may need updates
- Timezone-Aware DateTime: Full support for timezone-aware datetime objects with server/client sync
Features
- Context Manager Support: Added context manager (
withstatement) support for database connections - Vector Data Types: Added support for
VECTOR(<dim>,DOUBLE)data type ([DB-40533]) - Enhanced Cryptography: Add support for SRP-over-AES (in addition to existing TLS and SRP-over-RC4 support)
- Protocol Enhancements:
- Full support for
protocol.LAST_COMMIT_INFO - Support for prepared statements returning metadata
- Full support for
- Connection Configuration: New
Connection.connection_config()method to access connection details
Improvements
- Data Type Support:
- Added support for
<null>type columns - Enhanced ScaledCount3 encoded values support
- Missing SQL data types now supported
- Added support for
- Session Management:
- Improved partial-buffer send algorithm
- Better handling of commit sequences
- Unicode address support
- Column Metadata: Use column labels instead of column names in descriptions
- Socket Handling: Improved incomplete socket send() operations
- Code Quality: Enhanced logging practices and cleaned up imports
Technical Updates
- Testing Framework: Migrated test suite from unittest to pytest
- CI/CD: Updated CircleCI configuration to use latest NuoDB Docker images
- Dependencies: Updated cryptography module compatibility
- Performance: Optimized session and connection handling algorithms