Repository navigation
perf(layout): prune multi-field boolean predicates in the struct reader - #10689
MichaHoffmann wants to merge 1 commit into
Conversation
f058713 to
096e752
Compare
|
Thanks for the contribution. Does the conjunct partitioner not handle this in the ScanBuilder/exec_splits methods. Can we try and unify this logic with other parts of the StructLayoutReader |
Merging this PR will regress 5 benchmarks4 warnings, 1 note
Warning Please fix the performance issues or acknowledge them on CodSpeed. Performance Changes
Tip Investigate this regression by commenting Comparing Footnotes
|
Scan level conjunct splitting cannot seperate predicates such as a > 1 OR (a = 1 and b > 4), because the disjunction must remain intact. The struct reader previously skipped pruning for these multi-field predicates, forcing scans to decode zones that column statistics could rule out. Signed-off-by: Michael Hoffmann <mhoffmann@cloudflare.com>
096e752 to
95c03e1
Compare
No it doesnt because the condition contains a disjunction! But the AI helped me to unify the logic a little and simplfiy the PR drastically! |
Scan level conjunct splitting cannot seperate predicates such as a > 1
OR (a = 1 and b > 4), because the disjunction must remain intact.
The struct reader previously skipped pruning for these multi-field
predicates, forcing scans to decode zones that column statistics could
rule out.
Summary
Changes