Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
ROOT::Experimental::Internal::RNTupleMerger Class Referencefinal

Given a set of RPageSources merge them into an RPagePersistentSink, optionally changing their compression.

This can also be used to change the compression of a single RNTuple by just passing a single source.

Definition at line 111 of file RNTupleMerger.hxx.

Public Member Functions

 RNTupleMerger (std::unique_ptr< ROOT::Internal::RPagePersistentSink > destination)
 Creates a RNTupleMerger with the given destination.
RResult< void > Merge (std::span< ROOT::Internal::RPageSource * > sources, const RNTupleMergeOptions &mergeOpts=RNTupleMergeOptions())
 Merge a given set of sources into the destination.

Private Member Functions

 RNTupleMerger (std::unique_ptr< ROOT::Internal::RPagePersistentSink > destination, std::unique_ptr< ROOT::RNTupleModel > model)
 Creates a RNTupleMerger with the given destination.
ROOT::RResult< void > MergeCommonColumns (ROOT::Internal::RClusterPool &clusterPool, const ROOT::RClusterDescriptor &clusterDesc, std::span< const RColumnMergeInfo > commonColumns, const ROOT::Internal::RCluster::ColumnSet_t &commonColumnSet, std::size_t nCommonColumnsInCluster, RSealedPageMergeData &sealedPageData, const RNTupleMergeData &mergeData, ROOT::Internal::RPageAllocator &pageAlloc)
ROOT::RResult< void > MergeSourceClusters (ROOT::Internal::RPageSource &source, std::span< const RColumnMergeInfo > commonColumns, std::span< const RColumnMergeInfo > extraDstColumns, RNTupleMergeData &mergeData)

Private Attributes

std::unique_ptr< ROOT::Internal::RPagePersistentSinkfDestination
std::unique_ptr< ROOT::RNTupleModelfModel
std::unique_ptr< ROOT::Internal::RPageAllocatorfPageAlloc
std::optional< TTaskGroupfTaskGroup

Friends

class ROOT::RNTuple

#include <ROOT/RNTupleMerger.hxx>

Constructor & Destructor Documentation

◆ RNTupleMerger() [1/2]

RNTupleMerger::RNTupleMerger ( std::unique_ptr< ROOT::Internal::RPagePersistentSink > destination,
std::unique_ptr< ROOT::RNTupleModel > model )
private

Creates a RNTupleMerger with the given destination.

The model must be given if and only if destination has been initialized with that model (i.e. in case of incremental merging).

Definition at line 1206 of file RNTupleMerger.cxx.

◆ RNTupleMerger() [2/2]

RNTupleMerger::RNTupleMerger ( std::unique_ptr< ROOT::Internal::RPagePersistentSink > destination)
explicit

Creates a RNTupleMerger with the given destination.

Definition at line 1222 of file RNTupleMerger.cxx.

Member Function Documentation

◆ Merge()

ROOT::RResult< void > RNTupleMerger::Merge ( std::span< ROOT::Internal::RPageSource * > sources,
const RNTupleMergeOptions & mergeOpts = RNTupleMergeOptions() )

Merge a given set of sources into the destination.

Note that sources with an empty schema (i.e. created from a Model that had no fields added to it) are in general valid (depending on the merging mode) but add no entries to the destination.

Definition at line 1227 of file RNTupleMerger.cxx.

◆ MergeCommonColumns()

ROOT::RResult< void > RNTupleMerger::MergeCommonColumns ( ROOT::Internal::RClusterPool & clusterPool,
const ROOT::RClusterDescriptor & clusterDesc,
std::span< const RColumnMergeInfo > commonColumns,
const ROOT::Internal::RCluster::ColumnSet_t & commonColumnSet,
std::size_t nCommonColumnsInCluster,
RSealedPageMergeData & sealedPageData,
const RNTupleMergeData & mergeData,
ROOT::Internal::RPageAllocator & pageAlloc )
nodiscardprivate

Definition at line 827 of file RNTupleMerger.cxx.

◆ MergeSourceClusters()

ROOT::RResult< void > RNTupleMerger::MergeSourceClusters ( ROOT::Internal::RPageSource & source,
std::span< const RColumnMergeInfo > commonColumns,
std::span< const RColumnMergeInfo > extraDstColumns,
RNTupleMergeData & mergeData )
nodiscardprivate

Definition at line 983 of file RNTupleMerger.cxx.

◆ ROOT::RNTuple

friend class ROOT::RNTuple
friend

Definition at line 112 of file RNTupleMerger.hxx.

Member Data Documentation

◆ fDestination

std::unique_ptr<ROOT::Internal::RPagePersistentSink> ROOT::Experimental::Internal::RNTupleMerger::fDestination
private

Definition at line 114 of file RNTupleMerger.hxx.

◆ fModel

std::unique_ptr<ROOT::RNTupleModel> ROOT::Experimental::Internal::RNTupleMerger::fModel
private

Definition at line 117 of file RNTupleMerger.hxx.

◆ fPageAlloc

std::unique_ptr<ROOT::Internal::RPageAllocator> ROOT::Experimental::Internal::RNTupleMerger::fPageAlloc
private

Definition at line 115 of file RNTupleMerger.hxx.

◆ fTaskGroup

std::optional<TTaskGroup> ROOT::Experimental::Internal::RNTupleMerger::fTaskGroup
private

Definition at line 116 of file RNTupleMerger.hxx.


The documentation for this class was generated from the following files: