Move Pruning Logic to a Dedicated datafusion-pruning Crate for Improved Modularity #16549
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Which issue does this PR close?
Closes #16542
Rationale for this change
This change modularizes the pruning functionality currently embedded within the core DataFusion codebase. By isolating the pruning logic into its own crate (
datafusion-pruning
), we enable reuse outside of DataFusion, simplify maintenance, and establish a cleaner architectural separation.What changes are included in this PR?
PruningPredicate
and associated logic fromdatafusion/physical-optimizer/src/pruning.rs
.datafusion/pruning
with its ownCargo.toml
.datafusion-pruning
as a dependency in relevant modules.Are these changes tested?
Yes, the pruning logic has been transferred along with its test coverage. Additional integration tests will ensure the new crate works as intended within the DataFusion ecosystem.
Are there any user-facing changes?
There are no functional changes for end users. However, developers using or extending pruning logic will now interact with the
datafusion-pruning
crate instead of internal modules within DataFusion.