Release v0.0.14
Release Notes for v0.0.14 - 0.0.14-test
Summary
This release introduces full PostgreSQL binary protocol support, delivering massive performance improvements with psycopg3-binary achieving ~139x overhead for SELECT queries (5x better than target). Major SQLAlchemy compatibility fixes ensure all tests pass for both psycopg2 and psycopg3 drivers, making pgsqlite production-ready for Python ORMs.
New Features
- Binary Protocol Support: Full implementation of PostgreSQL binary format encoders for Numeric/Decimal, UUID, JSONJSONB, Money, and other types
- psycopg3-binary Driver Support: Native binary encoding provides 19x faster SELECT performance compared to psycopg2
- Enhanced Type Inference: Proper PostgreSQL type OIDs for aliased columns, aggregates, and empty result sets
- Multi-Row INSERT RETURNING: Bulk insert operations now return correct row counts with proper rowid range queries
Improvements
- Performance Breakthrough: SELECT queries now achieve ~139x overhead (0.139ms) with psycopg3-binary, exceeding all performance
targets - SQLAlchemy Full Compatibility: All 8 ORM test scenarios pass including transactions, relationships, and cascade deletes
- Aggregate Function Types: SUM/AVG/MAX/MIN now return proper NUMERIC types instead of TEXT for better driver compatibility
- DateTime Handling: Binary timestamp parameters properly converted between PostgreSQL and Unix epochs
- Connection Isolation: Schema lookups now use session connections for proper transaction visibility
Bug Fixes
- Fixed json_object_agg returning JSON type instead of TEXT type
- Fixed timestamp conversion in VALUES clauses and scalar subqueries
- Fixed parameter cast queries bypassing ultra-fast path optimizations
- Fixed column alias type inference for
table.column AS alias
patterns - Fixed date function translation creating malformed julianday syntax
- Fixed empty result sets defaulting all columns to TEXT type
- Fixed psycopg3 binary parameters returning 0 rows in queries
- Fixed aggregate aliases like
sum_1
returning TEXT instead of NUMERIC
Breaking Changes
None - This release maintains backward compatibility while adding new binary protocol capabilities.