Remove GroupsAccumulator::supports_convert_to_state and require convert_to_state#23489
Open
lyne7-sc wants to merge 1 commit into
Open
Remove GroupsAccumulator::supports_convert_to_state and require convert_to_state#23489lyne7-sc wants to merge 1 commit into
GroupsAccumulator::supports_convert_to_state and require convert_to_state#23489lyne7-sc wants to merge 1 commit into
Conversation
|
Thank you for opening this pull request! Reviewer note: cargo-semver-checks reported the current version number is not SemVer-compatible with the changes in this pull request (compared against the base branch). Details |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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?
GroupsAccumulator::supports_convert_to_stateand makeconvert_to_statemandatory #23081.Rationale for this change
Following #23275, all
GroupsAccumulatorimplementations now provideconvert_to_state.The
supports_convert_to_statecapability flag is therefore no longer needed.What changes are included in this PR?
Make
GroupsAccumulator::convert_to_statea required trait method.Remove
GroupsAccumulator::supports_convert_to_stateand its implementations.Remove the corresponding capability checks from hash aggregation.
Simplify skip-partial aggregation to use the required
convert_to_stateimplementation directly.Add a regression test covering the partial hash aggregation skip path.
Document the breaking trait change in the 55.0.0 upgrading guide.
Remove
FFI_GroupsAccumulator::supports_convert_to_state. This changes the FFI ABI layout, so providers and consumers must be rebuilt against DataFusion 55.Are these changes tested?
Yes. Added a regression test verifying that skip-partial aggregation uses the required
convert_to_stateimplementation without a capability flag.Existing physical-plan and FFI tests continue to pass.
Are there any user-facing changes?
Yes. This is a breaking Rust API change for external
GroupsAccumulatorimplementations:convert_to_statemust now be implemented.supports_convert_to_stateshould be removed.The migration is documented in the 55.0.0 upgrading guide.
The
FFI_GroupsAccumulatorlayout has changed. FFI providers and consumers must be rebuilt against DataFusion 55 and must not exchange this struct with older major versions.