-
Notifications
You must be signed in to change notification settings - Fork 18
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
[WIP] add minimal RNTuple files to probe writing situation #293
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅ see 4 files with indirect coverage changes 📢 Thoughts on this report? Let us know! |
Thanks! |
4f2bdf7
to
e762633
Compare
e762633
to
9e30d59
Compare
I'm update the file to use https://root.cern/doc/v624/namespaceROOT_1_1Experimental.html#a27e0535a55521c5e8f050fc92840e110 |
idk what they mean by "thin envelope", currently trying to reverse engineering from know header location: julia> f = UnROOT.MmapStream("./test/samples/RNTuple/test_ntuple_min1.root");
julia> seek(f, 0x92)
UnROOT.MmapStream(UInt8[0x72, 0x6e, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x00, 0x00, 0xf6 … 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x1c, 0xe8, 0x9a, 0x3f], 146, 494)
julia> UnROOT._rntuple_read(f, UnROOT.RNTupleHeader)
UnROOT.RNTupleHeader(0x0000000000000000, 0x00000001, "ntuple", "", "ROOT v6.31/01", UnROOT.FieldRecord[parent=00, role=0, name=one_uint , type=std::uint32_t repetition=0,], UnROOT.ColumnRecord[type=20, nbits=32, field_id=00, flags=0], UnROOT.AliasRecord[], UnROOT.ExtraTypeInfo[]) judging by the lack of |
is a useful pattern. This is what an empty |
via almost brute force, I also figured out where footer is: julia> seek(f, 366)
UnROOT.MmapStream(UInt8[0x72, 0x6e, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x00, 0x00, 0xf6 … 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x1c, 0xe8, 0x9a, 0x3f], 366, 494)
julia> footer = UnROOT._rntuple_read(f, UnROOT.RNTupleFooter)
UnROOT.RNTupleFooter(0x0000000000000000, 0x47a1a5ae, UnROOT.RNTupleSchemaExtension(UnROOT.FieldRecord[], UnROOT.ColumnRecord[], UnROOT.AliasRecord[], UnROOT.ExtraTypeInfo[]), UnROOT.ColumnGroupRecord[], UnROOT.ClusterSummary[ClusterSummary(num_first_entry=0, num_entries=1)], UnROOT.ClusterGroupRecord[UnROOT.ClusterGroupRecord(0x00000001, UnROOT.EnvLink(0x0000003c, UnROOT.Locator(60, 0x000000000000012e)))], UnROOT.EnvLink[])
julia> position(f)
490 # there are only 4 bytes left after this, probably CRC32 of footer |
looks like we won't have bare RNTuple in production :( |
here are two files written out each contain a single number (but different)
DO NOT conda root-nighly, it hasn't been building properly since 6.27 (Nov 2022)
I'm doing this for now:
cc. @tamasgal