JingsongLi opened a new pull request, #10349:
URL: https://github.com/apache/paimon/pull/10349

   ### Purpose
   
   Compare composite BTree keys directly from their serialized slices during 
block-index and data-block binary searches. The current reader copies both 
encoded keys and materializes complete rows for each comparison.
   
   Expose a serialized-key comparator through `KeySerializer`, delegate 
composite key comparison to `RowCompactedSerializer.createSliceComparator()`, 
and use it in `BTreeIndexReader`. Scalar serializers retain their existing 
typed comparison through the default implementation. The persisted key and 
posting formats remain unchanged.
   
   ### Tests
   
   - Cover scalar and composite key ordering across 17 supported type cases, 
including NULLs, signed zero, NaN, UTF-8 strings, compact/noncompact decimals, 
timestamp precisions and slices with different nonzero offsets.
   - Extend shared-comparator concurrency coverage.
   - Exercise real multi-block BTree point lookups with Bloom enabled and both 
posting versions; verify that lookups add no full-row deserialization after 
metadata is read. This regression failed with the previous comparison path (20 
deserializations instead of the 2 needed at open).
   - Run focused JDK 8 tests for `CompositeKeySerializerTest`, 
`CompositeBTreeIndexTest`, `CompositeBTreeRangeTest` and 
`BTreeIndexReaderTest`, including Checkstyle, Spotless and Enforcer.
   
   JDK 8: `mvn -pl paimon-common -am -DfailIfNoTests=false 
-DwildcardSuites=none 
-Dtest=CompositeKeySerializerTest,CompositeBTreeIndexTest,CompositeBTreeRangeTest,BTreeIndexReaderTest
 test` — 170 tests pass. Rerun the concurrency test after simplifying its 
assertion. Root Apache RAT check passes with zero unknown or unapproved 
licenses.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to