Skip to content

allow filters referencing parquet struct columns to be pushed down - #19556

Closed
adriangb wants to merge 17 commits into
apache:mainfrom
pydantic:parquet-struct-filter
Closed

allow filters referencing parquet struct columns to be pushed down#19556
adriangb wants to merge 17 commits into
apache:mainfrom
pydantic:parquet-struct-filter

Conversation

@adriangb

@adriangbadriangb commented Dec 30, 2025

Copy link
Copy Markdown
Contributor

A step towards #11745.

Depends on upstream arrow fixes..

Note that this does not do anything fancy with parquet struct access like actually generating the leaf mask to read only some fields, it reads the entire struct column and process it in memory much like currently happens. That should be an easy followup though.

Benchmark numbers:

parquet_struct_filter_pushdown/no_pushdown
time: [365.70 ms 420.66 ms 482.71 ms]
parquet_struct_filter_pushdown/with_pushdown
time: [40.418 ms 41.432 ms 43.279 ms]

@github-actionsgithub-actionsBot added sqllogictest SQL Logic Tests (.slt) datasource Changes to the datasource crate labels Dec 30, 2025
@github-actionsgithub-actionsBot added common Related to common crate proto Related to proto crate functions Changes to functions implementation physical-plan Changes to the physical-plan crate labels Jan 7, 2026
Comment threaddatafusion/common/src/scalar/mod.rs Outdated
ScalarValue::try_new_null(&DataType::Map(map_field_ref, false)).unwrap(),
ScalarValue::try_new_null(&DataType::Union(
UnionFields::new(vec![42], vec![field_ref]),
UnionFields::try_new(vec![42], vec![field_ref]).unwrap(),

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that this is just handling upstream changes in arrow, not actually related to this PR

@adriangb
adriangbforce-pushed the parquet-struct-filter branch 2 times, most recently from 8b0bd72 to 7568dedCompareJanuary 7, 2026 21:04
@adriangb
adriangbforce-pushed the parquet-struct-filter branch from 7568ded to 39b37afCompareJanuary 8, 2026 14:07
@adriangb

Copy link
Copy Markdown
ContributorAuthor

There's some test failures but I think those are all mostly unrelated to this change and are issues that need fixing with the update to arrow-rs/main.

@adriangb
adriangbforce-pushed the parquet-struct-filter branch from f56c2ad to 65426eaCompareJanuary 11, 2026 20:46
@github-actionsgithub-actionsBot added core Core DataFusion crate and removed common Related to common crate functions Changes to functions implementation physical-plan Changes to the physical-plan crate labels Jan 11, 2026
@adriangb

Copy link
Copy Markdown
ContributorAuthor

Closing in favor of #19538

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

coreCore DataFusion cratedatasourceChanges to the datasource crateprotoRelated to proto cratesqllogictestSQL Logic Tests (.slt)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@adriangb