brainy/tests/unit/indexes/columnStore
David Snelling af5d2f389b fix: surface segment/entity read faults loudly instead of masking as absent
ColumnStore silently skipped a manifest-listed segment it could not load: a
corrupt or missing segment dropped every one of its entities out of
filter/rangeQuery/sortTopK with no error, so an inconsistent index read as a
merely short result. It now throws a typed ColumnSegmentLoadError when a listed
segment yields undecodable or no bytes, and lets a genuine storage IO fault
propagate verbatim. Only a field with no manifest at all stays benign (nothing
was ever written for it).

baseStorage.getNoun_internal / getVerb_internal likewise caught every error and
returned null, reporting a present-but-unreadable entity as "not found". They
now return null only for genuine ENOENT-class absence (via isAbsentError) and
rethrow real faults and deserialize errors.

Pattern-B (blind catch) hardening: absence -> null, fault -> loud.
2026-07-13 09:14:52 -07:00
..
column-store-interchange.test.ts feat(8.0): u64 BigInt graph provider contract — punch list a-d,g,h 2026-06-10 10:45:45 -07:00
column-store.test.ts fix(8.0): column-store range queries honor exclusive bounds (lessThan/greaterThan) 2026-06-19 11:01:41 -07:00
manifest.test.ts feat: unified column store for filtering + sorting at billion scale 2026-04-10 11:22:19 -07:00
segment-cursor.test.ts feat: unified column store for filtering + sorting at billion scale 2026-04-10 11:22:19 -07:00
segment-format.test.ts feat: unified column store for filtering + sorting at billion scale 2026-04-10 11:22:19 -07:00
segment-load-fault.test.ts fix: surface segment/entity read faults loudly instead of masking as absent 2026-07-13 09:14:52 -07:00
tail-buffer.test.ts feat: unified column store for filtering + sorting at billion scale 2026-04-10 11:22:19 -07:00