Skip to content

Commit 05888fa

Browse files
dfa1claude
andcommitted
docs(adr): cross-link ADR 0026's narrowing of ADR 0010's Fsst exclusion
ADR 0010 named Fsst among the encodings that "must remain eager"; ADR 0026 found that reasoning didn't hold for Fsst specifically (its per-row code range is independent of its neighbors, unlike Bitpacked/Pco/Zstd). Historical ADR bodies stay as-is, but a Related link and a one-line pointer at the claim itself save a future reader from following stale guidance. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01P4ijFsGW1MHEcGiu26vNzi
1 parent f694fe7 commit 05888fa

1 file changed

Lines changed: 7 additions & 0 deletions

File tree

adr/0010-lazy-decode.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
- **Superseded by:**
99
- **Related:** [ADR 0005 — Vector API adoption](0005-vector-api-adoption.md),
1010
[ADR 0012 — Zero-copy layout decoding: lazy Chunked / Dict](0012-zero-copy-layout-decoding.md),
11+
[ADR 0026 — FSST per-row lazy decode](0026-fsst-per-row-lazy-decode.md) (narrows the
12+
"Fsst stays eager" exclusion below),
1113
[CLAUDE.md §Memory model](../CLAUDE.md)
1214

1315
## Context
@@ -79,6 +81,11 @@ array), so element-at-i requires unpacking a window. They must remain
7981
eager. `Dict` is a special case (lazy is trivial — `getDouble(i) =
8082
values[indices[i]]`) but is already O(1) per access.
8183

84+
> **Narrowed by [ADR 0026](0026-fsst-per-row-lazy-decode.md):** `Fsst` turned out not to belong in
85+
> this group after all — its wire format already carries a per-row code range independent of every
86+
> other row, so element-at-`i` does *not* require unpacking a window the way the other three do.
87+
> `Bitpacked`/`Pco`/`Zstd` remain eager for the reason given above.
88+
8289
## Decision
8390

8491
**Adopt lazy decode + compute pushdown in two phases.** Phase 0 (bench)

0 commit comments

Comments
 (0)