[IOTDB-FIX] Fix LimitNode Serialization and Prevent NullPointerException in Relational Engine#17857
Closed
Muhammad-Ikhwan-Fathulloh wants to merge 1 commit into
Closed
Conversation
…gine This PR addresses a logical bug in the LimitNode where the tiesResolvingScheme field was being ignored during serialization and deserialization. It also fixes a potential NPE in deserialize().
Contributor
|
actually tiesResolvingScheme is never used in current implementation, so we didn't serialize it. |
Author
Thank you for the clarification, @JackieTien97. I misunderstood the purpose of tiesResolvingScheme and assumed it was an incomplete implementation that needed to be integrated. I apologize for the confusion and the breaking changes caused by this PR. Given that this field is intentionally left unused at this stage, I will close this PR to avoid any unnecessary modifications to the serialization logic. Thank you for your time and guidance. |
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.
This PR fixes an issue in
LimitNodewheretiesResolvingSchemewas not fully integrated into the node lifecycle.Previously, the field was ignored during serialization and deserialization, meaning its state could be lost when query plans were reconstructed. In addition, the deserialization logic passed
nullto anOptional<OrderingScheme>field, which could lead to potentialNullPointerExceptionissues. The field was also not included inequals()andhashCode(), resulting in incomplete object comparisons.Changes included
tiesResolvingScheme.nullassignments with properOptional.empty()/Optional.of(...)handling to improve null safety.equals()andhashCode()to includetiesResolvingScheme.Impact
This change helps ensure that:
NullPointerExceptionrisks are eliminated.LimitNodecomparisons accurately reflect the complete node state.tiesResolvingSchemeis present.Verification
SortNode.Optional<OrderingScheme>is handled safely without usingnull.