Skip to main content

Module filter

Module filter 

Source
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_count rows.
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 DictEncoded column.
dict_eval_eq
Evaluate an equality predicate on a memtable DictEncoded column.
dict_eval_like
Evaluate a LIKE predicate on a memtable DictEncoded column.
dict_eval_ne
Evaluate a not-equal predicate on a memtable DictEncoded column.
words_for
Number of u64 words needed to hold row_count bits.