Skip to content

Release v0.0.14

Choose a tag to compare

@github-actions github-actions released this 08 Aug 16:37
· 29 commits to main since this release

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.