Expand description
Vectorized predicate evaluation on dictionary-encoded columns.
Implements late materialization for DictEncoded columns: predicates are
evaluated on compact integer IDs rather than decompressed strings. This
turns O(N * string_len) evaluation into O(dict_size * string_len + N)
— a large win when cardinality is low (the common case for dict-encoded
columns).
§Short-circuit paths
- eq, not-in-dict: return all-zero mask immediately (O(1) reject)
- ne, not-in-dict: return all-ones mask immediately (O(1) accept)
- contains, empty-match-set: return all-zero mask immediately
§Bitmask encoding
Results are returned as Vec<u64> packed bitmasks: bit i is set if row
i passes the predicate. Use words_for(row_count) to size the output.
Functions§
- bitmask_
all - All-ones bitmask for
row_countrows. - bitmask_
and - Bitwise AND of two equal-length bitmasks.
- decoded_
dict_ eval_ contains - Evaluate a substring-contains predicate on a
DecodedColumn::DictEncoded. - decoded_
dict_ eval_ eq - Evaluate an equality predicate on a
DecodedColumn::DictEncoded. - decoded_
dict_ eval_ like - Evaluate a LIKE predicate on a
DecodedColumn::DictEncoded. - decoded_
dict_ eval_ ne - Evaluate a not-equal predicate on a
DecodedColumn::DictEncoded. - dict_
eval_ contains - Evaluate a substring-contains predicate on a memtable
DictEncodedcolumn. - dict_
eval_ eq - Evaluate an equality predicate on a memtable
DictEncodedcolumn. - dict_
eval_ like - Evaluate a LIKE predicate on a memtable
DictEncodedcolumn. - dict_
eval_ ne - Evaluate a not-equal predicate on a memtable
DictEncodedcolumn. - words_
for - Number of
u64words needed to holdrow_countbits.