You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/FEATURE_MATRIX.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@ coverage; PostgreSQL rows marked live also run against PostgreSQL 16 in CI.
20
20
| Native PostgreSQL driver | Complete | full-open `connect_timeout`; ordered grammar-validated SCRAM attributes/nonces, allocator-bounded salt handling, constant-time raw verifier comparison, and secure secret erasure; endpoint-owning `CancelHandle`; owned notifications; clean pooled listeners; direct and short-lease pooled COPY with owned output; lifecycle-aware command recovery and failure-safe teardown after transport loss | SCRAM ordering/grammar/extension/ambiguity/error/base64/password-erasure and exhaustive allocation-failure tests; cancellation/notification/COPY ownership and OOM tests; loopback drain-loss teardown regression; live post-teardown ownership, clean pool reuse, cancellation/COPY/notification recovery in CI |
21
21
| Prepared statements | Complete | driver-selected `Statement(D)`; reusable ownership-safe SQLite query borrows with busy/deferred-close state and leak-free cache-copy bind scratch; explicit PostgreSQL direct/pool owners; owned prepared-query rows survive statement/pool teardown; consuming pooled-statement recovery when explicit Close fails; reusable named-bind scratch; session-monotonic PostgreSQL names; allocation-free cache teardown; unsigned OID metadata; narrow invalidation recovery | external façade contract; SQLite reuse/OOM/teardown/text-bind-cache/schema-change tests, deterministic PostgreSQL pooled-close-failure lease cleanup, and PostgreSQL protocol/direct/pool/cache/OOM/lifetime tests |
22
22
| Safe parameter binding | Complete | positional/named APIs; two-allocation SQLite named-index resolution with one unbounded shared marker probe and exact OOM errors; single-allocation PostgreSQL Bind packets; typed canonical UUID and explicit ISO date/time/UTC-timestamp binding with optional-null support across direct and batched builder paths; full unsigned 16-bit parameter count; strict protocol C-strings | long-name/allocation-boundary/failure-atomicity, typed-wrapper batch/OOM, temporal-format/state/OOM, byte-parity, NUL, driver, and PostgreSQL live tests |
23
-
| Typed row decoding | Complete | `Row.as`, `Row.asName`, `Row.to`, `zsql.decode`; strict allocation-free opt-in ISO temporal parser/formatters with signed/expanded years, BC-era input, second-precision offsets, exact day-long offsets, offset-aware TimeTz plus UTC decomposition, shifted timestamp decomposition, first-class combined OffsetDateTime parsing and formatting, exact named buffer lengths, and wrapper-based row mapping (including UTC-offset normalization or explicit offset policy); allocation-free struct mapping without arbitrary result-width caps; owned PostgreSQL bytea hex/escape decode; single-schema query contract; failure-atomic PostgreSQL result finalization | temporal valid/invalid/precision/full-range/BC/TimeTz/day-boundary/day-offset/offset-decomposition/offset-formatting/offset-date-time-parsing/public-alias/deterministic-round-trip/wrapper-mapping/buffer-boundary tests; QueryBuilder joined-binding exhaustive-OOM tests; malformed/OOM unit tests; forced column-name append/final-transfer failures; wide-result mapping, multi-result recovery, and core/live driver tests |
23
+
| Typed row decoding | Complete | `Row.as`, `Row.asName`, `Row.to`, `zsql.decode`; strict allocation-free opt-in ISO temporal parser/formatters with signed/expanded years, BC-era input, second-precision offsets, exact day-long offsets, offset-aware TimeTz plus UTC decomposition, shifted timestamp decomposition, first-class combined OffsetDateTime parsing/formatting/offset conversion, exact named buffer lengths, and wrapper-based row mapping (including UTC-offset normalization or explicit offset policy); allocation-free struct mapping without arbitrary result-width caps; owned PostgreSQL bytea hex/escape decode; single-schema query contract; failure-atomic PostgreSQL result finalization | temporal valid/invalid/precision/full-range/BC/TimeTz/day-boundary/day-offset/offset-decomposition/offset-conversion/offset-formatting/offset-date-time-parsing/public-alias/deterministic-round-trip/wrapper-mapping/buffer-boundary tests; QueryBuilder joined-binding exhaustive-OOM tests; malformed/OOM unit tests; forced column-name append/final-transfer failures; wide-result mapping, multi-result recovery, and core/live driver tests |
24
24
| Explicit owned rows | Complete |`OwnedRow`, `Row.getOwned`, `zsql.freeOwnedRows`; direct PostgreSQL deep copies without staging arrays; failure-atomic cross-driver `queryAll` append; documented invalidation boundary for borrowed values | exhaustive partial-OOM core/driver and append-growth tests plus external SQLite survival after rows, connection, and database teardown |
25
25
| Connection pooling | Complete |`Pool(D)`, `Lease(D)`, allocator-owned connection configuration, health-aware consuming release, PostgreSQL protocol and SQLite setup/handle teardown outside the accounting mutex, opt-in PostgreSQL `DISCARD ALL` borrower isolation with pipelined restoration and a single asynchronous-event boundary, OOM-safe idle return and owned-result unwind, failed-open capacity wakeup, shutdown draining/wakeup, stats and timeouts | Cross-driver config-clone OOM/deferred-shutdown and deterministic failed-open infinite-waiter tests; SQLite release-OOM/result-unwind/responsive-setup-and-teardown/recovery tests; deterministic PostgreSQL stalled-peer mutex-liveness and stale-reset-notification regressions; PostgreSQL live session-state reset, reset-OOM consumption, release-OOM/result-unwind/shutdown tests |
26
26
| Transactions and savepoints | Complete | authoritative SQLite/raw-SQL and explicit PostgreSQL `transactionOpen` boundaries; nested/idle/aborted states; typed PostgreSQL isolation/access/deferrable options; PostgreSQL `25P02` mapping; prepared-statement transition safety; failed-state savepoint recovery; failed SQLite best-effort rollback retains retryable transaction ownership; cross-driver bounded savepoint IDs; direct and pooled failure-scoped `withSavepoint`; `Tx(D)`, `Savepoint(D)`, `withTx`| SQLite state/rollback-retry/savepoint-exhaustion plus cross-driver savepoint-exhaustion/transaction-view tests plus raw-SQL SQLite transaction-state/pool-reuse tests and deterministic direct/pool scoped-savepoint tests and PostgreSQL direct/pool/live scoped-savepoint and typed-transaction-option tests |
0 commit comments