- The column (tests/conformance/postgres_column.rs, feature `postgres`,
default-off): the factories are the alkstore pg-factory pattern reused —
`dual-tier postgres+local` (kv = postgres + large = local at the
column-declared threshold 1024, window delay `Duration::ZERO`) and
`kv-only(postgres)` at 1024 (the rejection row's host); a fresh
engine-owned schema per `open()` (unique per call, seeded per
tag/pid/time — racing opens included), registry-tracked per instance,
teardown `DROP SCHEMA IF EXISTS … CASCADE` over exactly the minted
schemas + the vended temp roots (idempotent, owned, panicking-row-safe)
- The SKIP posture: connection settings ride the environment
(ALKBLOBS_PG_HOST/PORT/USER/PASSWORD/DB), every runner gates behind a
reachability probe, server-less runs skip cleanly (a skip is not a
failure); the acceptance run is green against the harness server
(dockerized `pglo-poc`, :15432 — the alkstore harness's same server)
- Rows: the form-independent reference rows mirror verbatim (INV-1,
INV-6, the NoLivenessSources/ProtectFailed abort shapes, the kv-only
rejection row); the sqlite column's durable-schedule sweep family
mirrors (schedule-relative INV-2/INV-3 readings, the two-sweep exact
counts over the full protection set, the race across the window
delay, the holder-stages-only lease shape, INV-5 list correctness);
the dispatch rows adapt the placement oracle by medium (independent-
connection counts of the schema's rows vs the root's committed files)
plus the virgin-store row; every row ADR-stamped, traced to the
backlog
- Structural factory tests: fresh isolated opens (two opens mint
distinct schemas and share nothing) and teardown against a panicking
row (schemas really dropped, pg_namespace-verified)
- README amended: the postgres rows table in §Columns beyond the
reference set; the column plan's SKIP-posture note names the landed
column; current state (four columns, waves 2–4)
Verification: cargo test (default) 69/19/3 ok — the column compiles
out; cargo test --features postgres 102/36/3 ok against the harness
server (and green skipping server-less); cargo clippy --all-targets --
-D warnings green (default, postgres, all-features); cargo fmt --check
green; pg_namespace verified schema-clean after live runs.
Five tasks against the wave-3 contract surface as reviewed (no
amendments from the gate):
- engine-postgres: the fleet-capable kv engine — the B5 row shape
(fillfactor 90) in one engine-owned schema, the deadpool pool with
per-connection prepared-statement discipline, the synchronous_commit
parity knob wired per-connection, ON CONFLICT DO NOTHING CAS, the
stable MVCC-snapshot list cursor, the batch-delete helper
(key = ANY($1), consumer wave 6), the read-only virgin-store split
- engine-postgres-fleet: the engine-state seam's full clause families
(ADR-012 §5's postgres row — every family yes): gc_pins + gc_window,
the joint tx ownership rule in the JointTx shape, pin_commit
atomicity, pin_renew/pin_check/arbitrate, the pg advisory lock as
the sweep lease's shipped provider; fleet activation stays wave 6
- store-postgres-construction: KvEngine::Postgres slots in, the
KvCursor arm, the dual-tier/kv-only constructors (DSN + opts +
threshold + window delay), the non-fleet posture recorded, the
pg-pure build verified
- suite-column-postgres: the first SKIP-posture column — the alkstore
pg-factory pattern reused (fresh schema per open, CASCADE teardown,
env-driven ALKBLOBS_PG_* settings), durable-schedule sweep rows,
acceptance green against the harness server (pglo-poc :15432,
verified live)
- review-wave-4: the engine-wave gate (engine-vs-contract conformance)
Verification: dependency graph validated (all ids resolve, no cycles,
topological order clean); docs-only change.
Refs: docs/plans/implementation.md §Wave 4