- The first SQL-backed column: the default-build production shape
(kv = sqlite + large = local, feature sqlite default-on) runs the
form-independent reference rows verbatim (INV-1, INV-6, the
NoLivenessSources/ProtectFailed abort shapes, the kv-only rejection
row against kv-only(sqlite)) and grows the durable-schedule sweep
rows — exact counts asserted relative to the staged schedule
(ADR-012 §6.7): two-sweep counts over the full protection set, the
race across the window delay (a re-put landing during the window
survives the executing sweep), the holder-stages-only lease shape,
INV-5 through durable-schedule outcomes, and the schedule-relative
INV-2/INV-3 readings
- Dispatch rows mirror the local column's family with the placement
oracle adapted by medium: the sqlite file's pool/window rows vs the
root's committed files; virgin-store reads as no-ops on a fresh file
(the no-tables-yet tolerance engine-instrumented, this row its
facade form)
- Factories: dual-tier sqlite+local and kv-only(sqlite), instance-
tracked temp sites (fresh sqlite file + private root per open;
idempotent panicking-row-safe teardown), the column-tuned threshold
and the test window-delay tuning (Duration::ZERO — execute-on-next-
sweep); the module is cfg(feature = "sqlite"), default-on — the
column runs in every default cargo test, server-less, never skips
- Shared fixtures moved to rows.rs (committed_file_count,
staging_file_count, slice_digest, LatchProtect pub(crate)) so the
columns share them without the mem gate
- README: the schedule-relative reading for SQL-backed columns
recorded (citing ADR-012 §6.7), the sqlite rows table inventory,
Current state (three columns)
Verification: cargo test (default) green — 69 lib + 19 conformance +
3 git-interop; cargo test --features mem green (124 lib + 54
conformance); cargo check --all-features --tests green; cargo clippy
--all-targets -- -D warnings green; cargo fmt --check green.
- tests/conformance/local_column.rs: the first dual-tier column, run
against the kv = mem + large = local factory (ADR-012 §6.3) — fresh
temp-root store per open, per-instance tracked roots, idempotent
teardown safe against abandoned/panicking rows (structural tests
included); never skips (mem-gated — the dual-tier constructor rides
feature mem until wave 3 provides an ungated kv engine)
- the reference INV row set (rows.rs) mirrored against the dual-tier
factory at a column-declared tuned threshold (1024), so the shared
matrix and race fixtures exercise both tiers' bodies (INV-7)
- dispatch rows grown: pure-function routing across put paths and
re-puts with an on-disk placement oracle (tier residency is
facade-invisible; with kv = mem the medium is the oracle), threshold
boundary legs at the tuned and shipped-default thresholds with the
constructor-tuned re-route leg, and fall-through per op with
both-tier miss shapes (ADR-003/ADR-012 §6.1/§6.3/§6.5)
- local-specific rows: on-disk stage-hygiene exact counts over both
put paths (the real stage form, INV-3), pread windows over committed
files with slice digests verified independently (ADR-006/ADR-010),
virgin-store no-ops on a fresh root, and exact sweep counts over a
both-tiers pool (INV-4/INV-5's both-tiers form)
- rows.rs shared fixtures made pub(crate); README records the column's
row inventory (§Columns beyond the reference set), the declared-
threshold posture, and the new current state
- stat-as-stat rides the mirrored INV-6 row's over-threshold legs;
the Drop-cancellation hygiene form stays per-engine (recorded)
Verification: cargo test (default) green; cargo test --features mem
green (97 lib + 37 conformance + 4 git-interop); cargo test
--all-features green; clippy --all-targets -D warnings green in both
feature shapes (default + all-features); cargo fmt --check green;
cargo doc --no-deps shows only the pre-existing warning class
- rows.rs: the reference row set (INV-1…6 + two constructor-mode rows),
factory-generic and engine-uniform, every row ADR-stamped and traced
to the backlog: round-trips over the content matrix on both put
paths, dedup (same/cross-path), stage hygiene (both paths, both
injectable failure modes, kv-degenerate residue via sweep outcomes),
sweep safety (full-protection-set happy shape, all three
GcAbortCause abort shapes incl. the single-flight SweeperLock lease,
the sweep-vs-pinned-put race), list correctness through exact sweep
outcomes only, stat discipline, mem-only posture, and kv-only
put-time rejection (threshold discovered by free probes; immediate/
mid-stream rejections and at-threshold-lands legs)
- mem_column.rs: the column's factories — mem-only (reference host)
and kv-only(mem) at a declared threshold — fresh isolated opens,
no-op idempotent teardown; structural factory-contract tests cover
isolation and teardown against a panicking row
- README: the reference row set recorded (INV-7's basis — what other
columns mirror), the row-lifecycle convention, column plan and
current state updated
- task suite-column-mem: status completed, notes and summary filled
Verification: cargo test --features mem (97 lib + 18 conformance +
4 git-interop), cargo test (default), cargo test --all-features,
clippy --all-features --all-targets -D warnings, fmt --check, and
cargo doc --no-deps — all green