Skip to content

[branch-54] Revert "Add ExecutionPlan::apply_expressions() (#20337)" (#22437)#22445

Merged
alamb merged 1 commit into
apache:branch-54from
alamb:alamb/backport_22437
May 22, 2026
Merged

[branch-54] Revert "Add ExecutionPlan::apply_expressions() (#20337)" (#22437)#22445
alamb merged 1 commit into
apache:branch-54from
alamb:alamb/backport_22437

Conversation

@alamb
Copy link
Copy Markdown
Contributor

@alamb alamb commented May 22, 2026

This PR cherry-picks the revert of ExecutionPlan::apply_expressions() (#20337) onto branch-54 so that DataFusion 54.0 does not ship the new public API.

…che#22437)

- Reverts apache#20337
- Addresses concerns raised in
apache#22415
- Closes apache#22415

`ExecutionPlan::apply_expressions()` was added in apache#20337 with no default
implementation, forcing every custom `ExecutionPlan`, `FileSource`, and
`DataSource` implementor to add the method as part of upgrading to
DataFusion 54.

As discussed on apache#22415, per @LiaCastaneda and @adriangb the method is
not yet called from anywhere in DataFusion and the originally intended
use (dynamic-filter discovery/serialization for distributed scenarios)
is blocked on other in-progress work (apache#20009, apache#21350).

The combined effect on downstream users is a required code change with
no immediate benefit, and ambiguity about what a "correct"
implementation even means today (e.g. is returning
`Ok(TreeNodeRecursion::Continue)` is safe right now but becomes
incorrect as soon as the method starts being used by an optimizer pass?.

The plan agreed in the discussion is to remove the API from the 54.0
release and re-add it together with the concrete consumer that needs it.
cc @adriangb @LiaCastaneda @milenkovicm.

`git revert -m 1` of the merge commit, with the following manual
conflict resolutions and follow-ups:

By CI

Yes -- this removes the new public API:

- `ExecutionPlan::apply_expressions`
- `FileSource::apply_expressions`
- `DataSource::apply_expressions`

These were only added in 54 and are not yet released. Custom
implementors no longer need to implement these methods.
@github-actions github-actions Bot added documentation Improvements or additions to documentation optimizer Optimizer rules core Core DataFusion crate catalog Related to the catalog crate datasource Changes to the datasource crate ffi Changes to the ffi crate physical-plan Changes to the physical-plan crate labels May 22, 2026
@alamb alamb merged commit 858ad6b into apache:branch-54 May 22, 2026
37 checks passed
@alamb
Copy link
Copy Markdown
Contributor Author

alamb commented May 22, 2026

Thank you @adriangb

FYI @milenkovicm and @LiaCastaneda

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

Labels

catalog Related to the catalog crate core Core DataFusion crate datasource Changes to the datasource crate documentation Improvements or additions to documentation ffi Changes to the ffi crate optimizer Optimizer rules physical-plan Changes to the physical-plan crate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants