Logo ROOT  
Reference Guide
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Loading...
Searching...
No Matches
RNTupleMerger.cxx File Reference
#include <ROOT/RError.hxx>
#include <ROOT/RNTuple.hxx>
#include <ROOT/RNTupleDescriptor.hxx>
#include <ROOT/RNTupleMerger.hxx>
#include <ROOT/RNTupleModel.hxx>
#include <ROOT/RNTupleUtil.hxx>
#include <ROOT/RPageStorageFile.hxx>
#include <ROOT/RPageStorage.hxx>
#include <ROOT/RClusterPool.hxx>
#include <ROOT/RNTupleSerialize.hxx>
#include <ROOT/RNTupleZip.hxx>
#include <ROOT/RColumnElementBase.hxx>
#include <TROOT.h>
#include <TFileMergeInfo.h>
#include <TError.h>
#include <TFile.h>
#include <TKey.h>
#include <algorithm>
#include <deque>
#include <inttypes.h>
#include <initializer_list>
#include <unordered_map>
#include <vector>
Include dependency graph for RNTupleMerger.cxx:

Classes

struct  ROOT::Experimental::Internal::RColumnMergeInfo
 
struct  ROOT::Experimental::Internal::RNTupleMergeData
 
struct  ROOT::Experimental::Internal::RSealedPageMergeData
 

Namespaces

namespace  ROOT
 tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tbb::task_arena without forward declaring tbb::interface7
 
namespace  ROOT::Experimental
 
namespace  ROOT::Experimental::Internal
 

Macros

#define SKIP_OR_ABORT(errMsg)
 

Functions

static void AddColumnsFromField (std::vector< RColumnMergeInfo > &columns, const ROOT::RNTupleDescriptor &srcDesc, RNTupleMergeData &mergeData, const ROOT::RFieldDescriptor &srcFieldDesc, const ROOT::RFieldDescriptor &dstFieldDesc, const std::string &prefix="")
 
static bool BeginsWithDelimitedWord (const TString &str, const char *word)
 
static std::optional< std::type_index > ColumnInMemoryType (std::string_view fieldType, ENTupleColumnType onDiskType)
 
static ROOT::RResult< RDescriptorsComparison > CompareDescriptorStructure (const ROOT::RNTupleDescriptor &dst, const ROOT::RNTupleDescriptor &src)
 Compares the top level fields of dst and src and determines whether they can be merged or not.
 
static void ExtendDestinationModel (std::span< const ROOT::RFieldDescriptor * > newFields, RNTupleModel &dstModel, RNTupleMergeData &mergeData, std::vector< RCommonField > &commonFields)
 
static RColumnInfoGroup GatherColumnInfos (const RDescriptorsComparison &descCmp, const ROOT::RNTupleDescriptor &srcDesc, RNTupleMergeData &mergeData)
 
static void GenerateZeroPagesForColumns (size_t nEntriesToGenerate, std::span< const RColumnMergeInfo > columns, RSealedPageMergeData &sealedPageData, const ROOT::RNTupleDescriptor &srcDescriptor, const ROOT::RNTupleDescriptor &dstDescriptor)
 
static bool IsSplitOrUnsplitVersionOf (ENTupleColumnType a, ENTupleColumnType b)
 
std::ostream & ROOT::Experimental::Internal::operator<< (std::ostream &os, const std::optional< ROOT::RColumnDescriptor::RValueRange > &x)
 
static std::optional< ENTupleMergeErrBehaviorParseOptionErrBehavior (const TString &opts)
 
static std::optional< ENTupleMergingModeParseOptionMergingMode (const TString &opts)
 
template<typename T >
static std::optional< T > ParseStringOption (const TString &opts, const char *pattern, std::initializer_list< std::pair< const char *, T > > validValues)
 

Detailed Description

Author
Jakob Blomer jblom.nosp@m.er@c.nosp@m.ern.c.nosp@m.h, Max Orok maxwe.nosp@m.llor.nosp@m.ok@gm.nosp@m.ail..nosp@m.com, Alaettin Serhan Mete amete.nosp@m.@anl.nosp@m..gov, Giacomo Parolini giaco.nosp@m.mo.p.nosp@m.aroli.nosp@m.ni@c.nosp@m.ern.c.nosp@m.h
Date
2020-07-08
Warning
This is part of the ROOT 7 prototype! It will change without notice. It might trigger earthquakes. Feedback is welcome!

Definition in file RNTupleMerger.cxx.

Macro Definition Documentation

◆ SKIP_OR_ABORT

#define SKIP_OR_ABORT ( errMsg)
Value:
do { \
if (mergeOpts.fErrBehavior == ENTupleMergeErrBehavior::kSkip) { \
Warning("RNTuple::Merge", "Skipping RNTuple due to: %s", (errMsg).c_str()); \
continue; \
} else { \
return R__FAIL(errMsg); \
} \
} while (0)
#define R__FAIL(msg)
Short-hand to return an RResult<T> in an error state; the RError is implicitly converted into RResult...
Definition RError.hxx:299
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.

Function Documentation

◆ AddColumnsFromField()

static void AddColumnsFromField ( std::vector< RColumnMergeInfo > & columns,
const ROOT::RNTupleDescriptor & srcDesc,
RNTupleMergeData & mergeData,
const ROOT::RFieldDescriptor & srcFieldDesc,
const ROOT::RFieldDescriptor & dstFieldDesc,
const std::string & prefix = "" )
static

Definition at line 902 of file RNTupleMerger.cxx.

◆ BeginsWithDelimitedWord()

static bool BeginsWithDelimitedWord ( const TString & str,
const char * word )
static

Definition at line 51 of file RNTupleMerger.cxx.

◆ ColumnInMemoryType()

static std::optional< std::type_index > ColumnInMemoryType ( std::string_view fieldType,
ENTupleColumnType onDiskType )
static

Definition at line 867 of file RNTupleMerger.cxx.

◆ CompareDescriptorStructure()

static ROOT::RResult< RDescriptorsComparison > CompareDescriptorStructure ( const ROOT::RNTupleDescriptor & dst,
const ROOT::RNTupleDescriptor & src )
static

Compares the top level fields of dst and src and determines whether they can be merged or not.

In addition, returns the differences between dst and src's structures

Definition at line 381 of file RNTupleMerger.cxx.

◆ ExtendDestinationModel()

static void ExtendDestinationModel ( std::span< const ROOT::RFieldDescriptor * > newFields,
RNTupleModel & dstModel,
RNTupleMergeData & mergeData,
std::vector< RCommonField > & commonFields )
static

Definition at line 544 of file RNTupleMerger.cxx.

◆ GatherColumnInfos()

static RColumnInfoGroup GatherColumnInfos ( const RDescriptorsComparison & descCmp,
const ROOT::RNTupleDescriptor & srcDesc,
RNTupleMergeData & mergeData )
static

Definition at line 977 of file RNTupleMerger.cxx.

◆ GenerateZeroPagesForColumns()

static void GenerateZeroPagesForColumns ( size_t nEntriesToGenerate,
std::span< const RColumnMergeInfo > columns,
RSealedPageMergeData & sealedPageData,
const ROOT::RNTupleDescriptor & srcDescriptor,
const ROOT::RNTupleDescriptor & dstDescriptor )
static

Definition at line 605 of file RNTupleMerger.cxx.

◆ IsSplitOrUnsplitVersionOf()

static bool IsSplitOrUnsplitVersionOf ( ENTupleColumnType a,
ENTupleColumnType b )
static

Definition at line 351 of file RNTupleMerger.cxx.

◆ ParseOptionErrBehavior()

static std::optional< ENTupleMergeErrBehavior > ParseOptionErrBehavior ( const TString & opts)
static

Definition at line 89 of file RNTupleMerger.cxx.

◆ ParseOptionMergingMode()

static std::optional< ENTupleMergingMode > ParseOptionMergingMode ( const TString & opts)
static

Definition at line 79 of file RNTupleMerger.cxx.

◆ ParseStringOption()

template<typename T >
static std::optional< T > ParseStringOption ( const TString & opts,
const char * pattern,
std::initializer_list< std::pair< const char *, T > > validValues )
static

Definition at line 62 of file RNTupleMerger.cxx.