Logo ROOT  
Reference Guide
 
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/RNTupleTypes.hxx>
#include <ROOT/RNTupleUtils.hxx>
#include <ROOT/RPageAllocator.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 <ROOT/RNTupleAttrUtils.hxx>
#include <TROOT.h>
#include <TFileMergeInfo.h>
#include <TFile.h>
#include <TKey.h>
#include <algorithm>
#include <deque>
#include <initializer_list>
#include <unordered_map>
#include <vector>
Include dependency graph for RNTupleMerger.cxx:

Classes

class  ROOT::Internal::RNTupleMergeStrategySlow
 

Namespaces

namespace  ROOT
 
namespace  ROOT::Internal
 

Macros

#define SKIP_OR_ABORT(errMsg)
 

Functions

static void AddColumnExtensionsInFieldOrder (const ROOT::RFieldDescriptor &field, const ROOT::RNTupleDescriptor &desc, const FieldCollectionMap_t< RColReprExtension > &extensions, std::vector< std::pair< const ROOT::RFieldDescriptor *, std::vector< RColReprExtension > > > &outExtensions, std::unordered_map< ROOT::DescriptorId_t, std::vector< const ROOT::RFieldDescriptor * > > &outProjectionPointees)
 
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, bool forAttributeMerging=false)
 Compares the top level fields of dst and src and determines whether they can be merged or not.
 
static ROOT::RResult< void > ExtendDestinationModel (RDescriptorsComparison &descCmp, ROOT::RNTupleModel &dstModel, ROOT::Internal::RPageSink &destination, const ROOT::RNTupleDescriptor &srcDesc, ROOT::NTupleSize_t nEntries, bool verbose, bool forSlowMerge)
 
static ROOT::RResult< RDescriptorsComparison > FillCommonAndExtraFields (const ROOT::RNTupleDescriptor &dst, const ROOT::RNTupleDescriptor &src, bool forAttributeMerging)
 
static void MatchColumnRepresentations (const ROOT::RNTupleDescriptor &srcDesc, const ROOT::RNTupleDescriptor &dstDesc, const ROOT::RFieldDescriptor &srcField, const ROOT::RFieldDescriptor &dstField, RDescriptorsComparison &result, std::vector< std::string > &errors)
 
static ROOT::RLogChannel & NTupleMergeLog ()
 
static std::optional< ENTupleMergeErrBehavior > ParseOptionErrBehavior (const TString &opts)
 
static std::optional< ENTupleMergingMode > ParseOptionMergingMode (const TString &opts)
 
static std::optional< ENTupleMergeVersionBehavior > ParseOptionVersionBehavior (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)
 
static void PrefillColumnMap (const ROOT::RNTupleDescriptor &desc, const ROOT::RFieldDescriptor &fieldDesc, ColumnIdMap_t &colIdMap, const std::string &prefix="")
 
static ROOT::RResult< void > RestoreRealFieldParams (ROOT::RFieldBase &field, const ROOT::RFieldDescriptor &fieldDesc, const ROOT::RNTupleDescriptor &srcDesc)
 
static void VerifyProjectedFieldsCompatibility (const ROOT::RNTupleDescriptor &dst, const ROOT::RNTupleDescriptor &src, const ROOT::RFieldDescriptor &dstField, const ROOT::RFieldDescriptor &srcField, std::vector< std::string > &errors)
 

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:
if (mergeOpts.fErrBehavior == ENTupleMergeErrBehavior::kSkip) { \
R__LOG_WARNING(NTupleMergeLog()) << "Skipping RNTuple due to: " << (errMsg); \
continue; \
} else { \
return R__FAIL(errMsg); \
}
#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:322
static ROOT::RLogChannel & NTupleMergeLog()

Function Documentation

◆ AddColumnExtensionsInFieldOrder()

static void AddColumnExtensionsInFieldOrder ( const ROOT::RFieldDescriptor & field,
const ROOT::RNTupleDescriptor & desc,
const FieldCollectionMap_t< RColReprExtension > & extensions,
std::vector< std::pair< const ROOT::RFieldDescriptor *, std::vector< RColReprExtension > > > & outExtensions,
std::unordered_map< ROOT::DescriptorId_t, std::vector< const ROOT::RFieldDescriptor * > > & outProjectionPointees )
static

Definition at line 979 of file RNTupleMerger.cxx.

◆ BeginsWithDelimitedWord()

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

Definition at line 63 of file RNTupleMerger.cxx.

◆ ColumnInMemoryType()

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

Definition at line 931 of file RNTupleMerger.cxx.

◆ CompareDescriptorStructure()

static ROOT::RResult< RDescriptorsComparison > CompareDescriptorStructure ( const ROOT::RNTupleDescriptor & dst,
const ROOT::RNTupleDescriptor & src,
bool forAttributeMerging = false )
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 606 of file RNTupleMerger.cxx.

◆ ExtendDestinationModel()

static ROOT::RResult< void > ExtendDestinationModel ( RDescriptorsComparison & descCmp,
ROOT::RNTupleModel & dstModel,
ROOT::Internal::RPageSink & destination,
const ROOT::RNTupleDescriptor & srcDesc,
ROOT::NTupleSize_t nEntries,
bool verbose,
bool forSlowMerge )
static

Definition at line 800 of file RNTupleMerger.cxx.

◆ FillCommonAndExtraFields()

static ROOT::RResult< RDescriptorsComparison > FillCommonAndExtraFields ( const ROOT::RNTupleDescriptor & dst,
const ROOT::RNTupleDescriptor & src,
bool forAttributeMerging )
static

Definition at line 534 of file RNTupleMerger.cxx.

◆ MatchColumnRepresentations()

static void MatchColumnRepresentations ( const ROOT::RNTupleDescriptor & srcDesc,
const ROOT::RNTupleDescriptor & dstDesc,
const ROOT::RFieldDescriptor & srcField,
const ROOT::RFieldDescriptor & dstField,
RDescriptorsComparison & result,
std::vector< std::string > & errors )
static

Definition at line 432 of file RNTupleMerger.cxx.

◆ NTupleMergeLog()

static ROOT::RLogChannel & NTupleMergeLog ( )
static

Definition at line 55 of file RNTupleMerger.cxx.

◆ ParseOptionErrBehavior()

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

Definition at line 101 of file RNTupleMerger.cxx.

◆ ParseOptionMergingMode()

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

Definition at line 91 of file RNTupleMerger.cxx.

◆ ParseOptionVersionBehavior()

static std::optional< ENTupleMergeVersionBehavior > ParseOptionVersionBehavior ( const TString & opts)
static

Definition at line 110 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 74 of file RNTupleMerger.cxx.

◆ PrefillColumnMap()

static void PrefillColumnMap ( const ROOT::RNTupleDescriptor & desc,
const ROOT::RFieldDescriptor & fieldDesc,
ColumnIdMap_t & colIdMap,
const std::string & prefix = "" )
static

Definition at line 960 of file RNTupleMerger.cxx.

◆ RestoreRealFieldParams()

static ROOT::RResult< void > RestoreRealFieldParams ( ROOT::RFieldBase & field,
const ROOT::RFieldDescriptor & fieldDesc,
const ROOT::RNTupleDescriptor & srcDesc )
static

Definition at line 745 of file RNTupleMerger.cxx.

◆ VerifyProjectedFieldsCompatibility()

static void VerifyProjectedFieldsCompatibility ( const ROOT::RNTupleDescriptor & dst,
const ROOT::RNTupleDescriptor & src,
const ROOT::RFieldDescriptor & dstField,
const ROOT::RFieldDescriptor & srcField,
std::vector< std::string > & errors )
static

Definition at line 579 of file RNTupleMerger.cxx.