You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2026-10-23 21:49:05 +03:00
* MCOL-5983: Add COMPARE_BITMASK primitive filter for bitwise AND optimization Add support for pushing down (col & mask) = mask patterns as primitive filters instead of evaluating them in FE1 (Function Expression Group 1). This optimization significantly improves query performance for Bloom filter lookups commonly used in chemical/molecular databases where a signature column stores precomputed bit patterns. Changes: - Add COMPARE_BITMASK (0x20) comparison operator to primitivemsg.h - Implement scalar and SIMD handling for COMPARE_BITMASK in column.cpp - Add pattern recognition for (col & mask) = mask in doSimpleFilter() - Add cost-based filter reordering in walkTree() to prioritize cheap bitmask filters before expensive LIKE filters Performance results (21M rows, TEXT column with LIKE, BIGINT signature): - Bitmask filter alone: 6s -> 0.23s (26x faster) - LIKE alone: 8.2s (baseline, scans all rows) - LIKE + bitmask combined: 8.2s -> 1.0s (8x faster) The bitmask filter now executes as a primitive filter with SIMD acceleration, filtering out non-matching rows before the expensive dictionary lookup required for LIKE on TEXT columns. * review comments addressed