Skip to content

Support parent dynamic filters for more join types#20192

Draft
jackkleeman wants to merge 1 commit intoapache:mainfrom
restatedev:dynamic-filter-join-pushdown
Draft

Support parent dynamic filters for more join types#20192
jackkleeman wants to merge 1 commit intoapache:mainfrom
restatedev:dynamic-filter-join-pushdown

Conversation

@jackkleeman
Copy link
Contributor

@jackkleeman jackkleeman commented Feb 6, 2026

Which issue does this PR close?

Solves the simplest possible subset of #16973

Rationale for this change

Parent dynamic filters can be assessed for pushdown in much the same way as parent static filters. The essence of it is that you can push a filter into the preserved side if the filter only refers to preserved side columns. This PR makes no attempt to cover other cases (eg non preserved side filters or the self filters that hashjoin creates)

What changes are included in this PR?

  1. Allow a subset of parent dynamic filters for all join types except full depending on lr_is_preserved and which columns they refer to
  2. Sql logic tests for the above
  3. New helper ChildFilterDescription::all_unsupported and ChildFilterDescription::from_child_with_allowed_columns
  4. FilterColumnChecker needs to look at indices, not just column names, as the same name can be on both sides of a join

Are these changes tested?

Yes

Are there any user-facing changes?

No

@github-actions github-actions bot added sqllogictest SQL Logic Tests (.slt) physical-plan Changes to the physical-plan crate labels Feb 6, 2026
@jackkleeman jackkleeman force-pushed the dynamic-filter-join-pushdown branch from 81dbc8e to 02a9c18 Compare February 6, 2026 17:05
@github-actions github-actions bot added the core Core DataFusion crate label Feb 6, 2026
@jackkleeman jackkleeman force-pushed the dynamic-filter-join-pushdown branch 2 times, most recently from 5e8a33f to 4c4982e Compare February 6, 2026 22:37
@jackkleeman jackkleeman force-pushed the dynamic-filter-join-pushdown branch from 4c4982e to 859dbb7 Compare February 6, 2026 22:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core Core DataFusion crate physical-plan Changes to the physical-plan crate sqllogictest SQL Logic Tests (.slt)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant