Skip to main content

build

Function build 

Source
pub fn build(ids: &FixedSizeBinaryArray) -> Option<Vec<u8>>
Expand description

Build a filter over a FixedSizeBinary(16) column. None when there is nothing to index, in which case no file is written and the reader’s fail-open path scans the block.

The column holds one row per span, and a trace is eight of them. Sizing on the row count would make every filter eight times bigger than the key set it holds, and the read path pays that on every block it probes. Runs of the same id collapse — spans of a trace arrive in one export and land adjacent — which is a 16-byte compare per row against a hash set that would cost an allocation and a probe. Interleaved traces just fall back to the row count, which is the size we would have had anyway.