-
Notifications
You must be signed in to change notification settings - Fork 80
Feature/page list envelope #342
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Conversation
modules/rntuple.mjs
Outdated
const recordSize = reader.readS64(), | ||
firstEntry = reader.readU64(), | ||
combined = reader.readU64(), | ||
flags = Number(combined & 0xFFn), // lower 8 bits |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
actually flags are the highest 8 bits, so you need to do flags = combined >> 56
(see DeserializeClusterSummary
in RNTupleSerialize.cxx); likewise numEntries
needs to mask out the most significant bits rather than being shifted by 8.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(Add tests as you go, it helps finding these mistakes early!)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK !! I will correct this code
5f08832
to
41649cb
Compare
…09/jsroot into feature/page-list-Envelope
modules/rntuple.mjs
Outdated
_readLocator(reader) { | ||
const sizeAndType = reader.readU32(), // 4 bytes: size + T bit | ||
type = sizeAndType & 1, // last bit | ||
size = sizeAndType >>> 1, // top 31 bits |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is wrong: the spec says:
Size: If T is zero, the number of bytes to read, i.e. the compressed size of the referenced block. Otherwise, the 16 least-significant bits, i.e. bits 0:15, specify the size of the locator itself.
So size
is actually equal to sizeAndType
if type === 0
(if it's not you throw the error so you don't have to handle it right now)
modules/rntuple.mjs
Outdated
const pageListLocator = this._readLocator(reader); | ||
|
||
// Seek to the page list offset | ||
reader.seek(pageListLocator.fOffset); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
reader.seek(pageListLocator.fOffset); | |
reader.seek(pageListLocator.offset); |
This above image is the cluster detail since the count is 1 only one can be seen
Can you please help me in specifying entry point for page list envelope so that i can see its result.