@@ -477,7 +477,7 @@ void ROOT::Internal::RPageSourceFile::LoadStructureImpl()
477477 }
478478}
479479
480- ROOT ::RNTupleDescriptor ROOT::Internal::RPageSourceFile::AttachImpl (RNTupleSerializer::EDescriptorDeserializeMode mode )
480+ ROOT ::RNTupleDescriptor ROOT::Internal::RPageSourceFile::AttachImpl ()
481481{
482482 auto unzipBuf = reinterpret_cast <unsigned char *>(fStructureBuffer .fPtrFooter ) + fAnchor ->GetNBytesFooter ();
483483
@@ -489,33 +489,23 @@ ROOT::RNTupleDescriptor ROOT::Internal::RPageSourceFile::AttachImpl(RNTupleSeria
489489 unzipBuf);
490490 RNTupleSerializer::DeserializeFooter (unzipBuf, fAnchor ->GetLenFooter (), fDescriptorBuilder );
491491
492- auto desc = fDescriptorBuilder .MoveDescriptor ();
493-
494492 // fNTupleName is empty if and only if we created this source via CreateFromAnchor. If that's the case, this is the
495493 // earliest we can set the name.
496494 if (fNTupleName .empty ())
497- fNTupleName = desc.GetName ();
498-
499- std::vector<unsigned char > buffer;
500- for (const auto &cgDesc : desc.GetClusterGroupIterable ()) {
501- buffer.resize (std::max<size_t >(buffer.size (),
502- cgDesc.GetPageListLength () + cgDesc.GetPageListLocator ().GetNBytesOnStorage ()));
503- auto *zipBuffer = buffer.data () + cgDesc.GetPageListLength ();
504- fReader .ReadBuffer (zipBuffer, cgDesc.GetPageListLocator ().GetNBytesOnStorage (),
505- cgDesc.GetPageListLocator ().GetPosition <std::uint64_t >());
506- RNTupleDecompressor::Unzip (zipBuffer, cgDesc.GetPageListLocator ().GetNBytesOnStorage (),
507- cgDesc.GetPageListLength (), buffer.data ());
508-
509- RNTupleSerializer::DeserializePageList (buffer.data (), cgDesc.GetPageListLength (), cgDesc.GetId (), desc, mode);
510- }
495+ fNTupleName = fDescriptorBuilder .GetDescriptor ().GetName ();
511496
512497 // For the page reads, we rely on the I/O scheduler to define the read requests
513498 fFile ->SetBuffering (false );
514499
515500 // Set file size once after buffering is turned off
516501 fFileSize = fFile ->GetSize ();
517502
518- return desc;
503+ return fDescriptorBuilder .MoveDescriptor ();
504+ }
505+
506+ void ROOT::Internal::RPageSourceFile::LoadPageListImpl (const RNTupleLocator &locator, void *buffer)
507+ {
508+ fReader .ReadBuffer (buffer, locator.GetNBytesOnStorage (), locator.GetPosition <std::uint64_t >());
519509}
520510
521511void ROOT::Internal::RPageSourceFile::LoadSealedPageImpl (const RNTupleLocator &locator, RSealedPage &sealedPage)
0 commit comments