16#ifndef ROOT7_RNTupleMerger
17#define ROOT7_RNTupleMerger
33namespace Experimental::Internal {
53struct RColumnMergeInfo;
54struct RNTupleMergeData;
55struct RSealedPageMergeData;
95 std::unique_ptr<RNTupleModel>
fModel;
Managed a set of clusters containing compressed and packed pages.
std::unordered_set< ROOT::DescriptorId_t > ColumnSet_t
Given a set of RPageSources merge them into an RPageSink, optionally changing their compression.
std::optional< TTaskGroup > fTaskGroup
RResult< void > Merge(std::span< RPageSource * > sources, const RNTupleMergeOptions &mergeOpts=RNTupleMergeOptions())
Merge a given set of sources into the destination.
void MergeSourceClusters(RPageSource &source, std::span< RColumnMergeInfo > commonColumns, std::span< RColumnMergeInfo > extraDstColumns, RNTupleMergeData &mergeData)
void MergeCommonColumns(RClusterPool &clusterPool, ROOT::DescriptorId_t clusterId, std::span< RColumnMergeInfo > commonColumns, const RCluster::ColumnSet_t &commonColumnSet, RSealedPageMergeData &sealedPageData, const RNTupleMergeData &mergeData)
std::unique_ptr< RNTupleModel > fModel
RNTupleMerger(std::unique_ptr< RPageSink > destination, std::unique_ptr< RNTupleModel > model)
Creates a RNTupleMerger with the given destination.
std::unique_ptr< RPageAllocator > fPageAlloc
std::unique_ptr< RPageSink > fDestination
Abstract interface to read data from an ntuple.
Representation of an RNTuple data set in a ROOT file.
@ kStrict
The merger will refuse to merge any 2 RNTuples whose schema doesn't match exactly.
@ kUnion
The merger will update the output model to include all columns from all sources.
@ kFilter
The merger will discard all columns that aren't present in the prototype model (i....
@ kAbort
The merger will abort merging as soon as an error is encountered.
@ kSkip
Upon errors, the merger will skip the current source and continue.
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
std::uint64_t DescriptorId_t
Distriniguishes elements of the same type within a descriptor, e.g. different fields.
Set of merging options to pass to RNTupleMerger.
ENTupleMergingMode fMergingMode
Determines how the merging treats sources with different models (.
ENTupleMergeErrBehavior fErrBehavior
Determines how the Merge function behaves upon merging errors.
std::optional< std::uint32_t > fCompressionSettings
If fCompressionSettings is empty (the default), the merger will not change the compression of any of ...
bool fExtraVerbose
If true, the merger will emit further diagnostics and information.