[ntuple] Add RNTupleLocatorMulti class for kTypeMulti locator#22577
Open
JasMehta08 wants to merge 1 commit into
Open
[ntuple] Add RNTupleLocatorMulti class for kTypeMulti locator#22577JasMehta08 wants to merge 1 commit into
JasMehta08 wants to merge 1 commit into
Conversation
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 Pull request:
(Is a part of the GSoC 2026 project
S3 Backend for RNTuple.)Changes or fixes:
Follow-up to #22434. Introduces a dedicated
RNTupleLocatorMulticlass for thekTypeMultilocator, replacing the previous reuse ofRNTupleLocatorObject64.The new class stores the object identifier and byte offset as two explicit 32-bit fields plus a separate 4-bit reserved field.
GetLocation()returns the canonical packed 64-bit value (parallel toRNTupleLocatorObject64::GetLocation()), with the layout:The
(uint32_t, uint32_t)constructor andSetReserved()validate their inputs against the 30-bit and 4-bit ranges respectively. The0x03payload remains a 4/8-byte size followed by an 8-byte packed value, so the wire format stays identical.RNTupleLocator::SetPositionandGetPosition<>are split accordingly soRNTupleLocatorObject64is now reserved forkTypeObject64only, and the newRNTupleLocatorMultioverload/specialization handlekTypeMulti.Checklist:
This PR is a follow-up #22434