Summary
grid_filter_engine builds _likeToRegExp(...) inside the per-row evaluation for LIKE / NOT LIKE / ILIKE / NOT ILIKE. A 5000-row scan recompiles the same pattern 5000 times (AST depth × rows). Filter bar is already debounced 150ms; the scan itself is still O(R × regex compile).
Scope
- Compile the LIKE regex at parse / bind time and reuse it in the evaluator.
- Tests: LIKE
%foo% still matches; case sensitivity for ILIKE unchanged.
Summary
grid_filter_enginebuilds_likeToRegExp(...)inside the per-row evaluation for LIKE / NOT LIKE / ILIKE / NOT ILIKE. A 5000-row scan recompiles the same pattern 5000 times (AST depth × rows). Filter bar is already debounced 150ms; the scan itself is still O(R × regex compile).Scope
%foo%still matches; case sensitivity for ILIKE unchanged.