Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
3576d7e
perf(parquet): add adaptive row filter fallback
hhhizzz May 10, 2026
5592f85
fix(parquet): address auto fallback review issues
hhhizzz May 10, 2026
22b2911
fix(parquet): harden auto fallback review fixes
hhhizzz May 10, 2026
713979e
fix(parquet): address CI failures
hhhizzz May 10, 2026
a5f3a17
refactor(parquet): split row filter fallback helpers
hhhizzz May 10, 2026
5db1ea7
docs(parquet): explain row filter fallback design
hhhizzz May 10, 2026
e5c2f9d
Merge origin/main into parquet-reader-auto-fallback-pr
May 16, 2026
a809215
docs: design row filter fallback readability refactor
May 16, 2026
f747e49
refactor(parquet): clarify row filter fallback transition
May 16, 2026
d31e805
fix(parquet): address row filter CI failures
hhhizzz May 16, 2026
bbf7064
refactor(parquet): frame auto post-filter as cost model
hhhizzz May 17, 2026
55341f4
fix(parquet): gate row filter profiling by async feature
hhhizzz May 17, 2026
235bf05
bench(parquet): add focused row filter cost model cases
hhhizzz May 17, 2026
d03f920
Optimize post-filter selection resolve
May 17, 2026
61078c9
bench(parquet): add row filter cost model focus cases
hhhizzz May 17, 2026
6a0c4f6
refactor(parquet): clarify reader cost model flow
hhhizzz May 19, 2026
7ea8132
fix(parquet): clean rustdoc link
hhhizzz May 19, 2026
fd650e4
Merge origin/main into parquet-reader-auto-fallback-pr
May 19, 2026
5b9576b
refactor(parquet): clarify row filter cost model
May 20, 2026
bfee76e
fix(parquet): keep cost model test feature neutral
May 20, 2026
bd48c95
fix(parquet): satisfy row filter bench clippy
May 20, 2026
7c5fde8
fix(parquet): keep sparse projected filters on pushdown
May 20, 2026
75f0d9f
Limit projected predicate cost model switch
May 20, 2026
eab1642
Support post-filter for whole nested projections
hhhizzz May 21, 2026
269a84e
Refine post-filter root projection planning
hhhizzz May 21, 2026
891aa5e
perf(parquet): start post-filter for cheap projected reads
hhhizzz May 22, 2026
cefef89
Merge remote-tracking branch 'origin/main' into codex/parquet-reader-…
hhhizzz May 22, 2026
7db5c9e
test(parquet): update row filter expectations for post-filter auto
hhhizzz May 22, 2026
f8e9e47
fix(parquet): satisfy clippy and rustdoc checks
hhhizzz May 22, 2026
b024d07
fix(parquet): observe cacheable projected predicates
May 22, 2026
1227872
Merge remote-tracking branch 'hhhizzz/codex/parquet-reader-auto-fallb…
May 22, 2026
51d5abe
test(parquet): update async row filter snapshots
May 22, 2026
ef1fa0b
Refactor row filter execution planning
May 22, 2026
c8bf3bb
Merge remote-tracking branch 'origin/main' into codex/parquet-reader-…
May 22, 2026
1ad89d7
Merge remote-tracking branch 'origin/main' into codex/parquet-reader-…
May 24, 2026
d6838a1
Add row filter regression benchmarks
May 25, 2026
3088783
perf(parquet): gate projected predicate post-filter by deferred outpu…
May 26, 2026
c487b8c
Merge remote-tracking branch 'origin/main' into codex/parquet-reader-…
May 27, 2026
4d59bcd
Format parquet tests after main merge
May 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,345 changes: 1,312 additions & 33 deletions parquet/benches/arrow_reader_row_filter.rs

Large diffs are not rendered by default.

8 changes: 8 additions & 0 deletions parquet/src/arrow/arrow_reader/filter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,14 @@ impl RowFilter {
pub fn new(predicates: Vec<Box<dyn ArrowPredicate>>) -> Self {
Self { predicates }
}
/// Returns the union of all predicate projections, if there are any predicates
pub(crate) fn union_projection(&self) -> Option<crate::arrow::ProjectionMask> {
let mut projection = self.predicates.first()?.projection().clone();
for predicate in self.predicates.iter().skip(1) {
projection.union(predicate.projection());
}
Some(projection)
}
/// Returns the inner predicates
pub fn predicates(&self) -> &Vec<Box<dyn ArrowPredicate>> {
&self.predicates
Expand Down
Loading
Loading