fix(table): align bitmap index ordering with Java#601
Merged
Conversation
Bitmap lookup mixed serialized and logical key order, while floating-point keys did not follow Java's canonical NaN contract. This could select the wrong dictionary block and made equality pruning unnecessarily conservative. Use a Bitmap-specific Java key codec and logical ordering, keep residual-sensitive floating predicates fail-open, and cover the behavior with Java and current-format fixtures. Signed-off-by: QuakeWang <wangfuzheng0814@foxmail.com>
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.
Purpose
Bitmap lookup mixed serialized byte ordering with logical key ordering. This could select the wrong dictionary block for little-endian numeric keys. Floating-point handling also did not follow Java's canonical NaN contract, making Eq/In candidates and metadata pruning unnecessarily conservative.
Brief change log
Tests
cargo test -p paimon --libcargo clippy -p paimon --lib --tests -- -D warningscargo fmt --all -- --checkgit diff --checkAPI and Format
Documentation