Repository navigation
This release fixes transaction cleanup, search scoping, document-save atomicity, numeric encoding, connection ownership, streaming, and Unix-socket connections.
- Rejected parameters release the driver's parse transaction and table locks before the connection returns to the pool.
- Full-text search preserves preceding filters, parameters, joins where supported, sorting, limits, and offsets.
- Document writes and search-index updates commit or roll back together.
- Out-of-range numeric values are rejected rather than silently changed by binary encoding.
- Expired, cross-process, and cross-database transaction handles are rejected.
- Stream callbacks share their connection and transaction; consumer errors roll back their writes.
- Unix sockets connect using the correct transport port.
- Includes pending fixes for document atom safety and metadata, integer bounds, extended timestamp dates, COPY cleanup, and stray transactions.
Compatibility notes:
- Requires Decimal 3.x, excluding versions affected by CVE-2026-32686.
- Pooled connections now default to a 30-second statement timeout, 5-second lock timeout, and 30-second idle-transaction timeout. Override these for longer operations; zero disables a limit.
- Returning an error tuple from a transaction callback still commits normally. Call rollback/1 to abort an application-level failure.
- Raw SQL expression strings remain trusted-input APIs. Read Committed transactions still require atomic updates, row locking, or version checks to prevent lost updates.
Validation: 257 tests and doctests passed in 21 consecutive local runs; compilation with warnings treated as errors, format/Credo/Sobelow checks, Hex dependency audit, and documentation with warnings treated as errors passed. Unix-socket connectivity was verified against PostgreSQL 17.4.