Builds a join table on one or several fields of an RNTuple so it can be joined onto other RNTuples.
Definition at line 36 of file RNTupleJoinTable.hxx.
Classes | |
class | REntryMapping |
Provides a mapping from one or several join field values to an entry index. More... | |
Public Types | |
using | JoinValue_t = std::uint64_t |
using | PartitionKey_t = std::uint64_t |
Static Public Member Functions | |
static std::unique_ptr< RNTupleJoinTable > | Create (const std::vector< std::string > &joinFieldNames) |
Create an RNTupleJoinTable from an existing RNTuple. | |
Static Public Attributes | |
static constexpr PartitionKey_t | kDefaultPartitionKey = PartitionKey_t(-1) |
Private Member Functions | |
RNTupleJoinTable (const std::vector< std::string > &joinFieldNames) | |
Create an a new RNTupleJoinTable for the RNTuple represented by the provided page source. | |
Private Attributes | |
std::vector< std::string > | fJoinFieldNames |
Names of the join fields used for the mapping to their respective entry indexes. | |
std::unordered_map< PartitionKey_t, std::vector< std::unique_ptr< REntryMapping > > > | fPartitions |
Partitions of one or multiple entry mappings. | |
#include <ROOT/RNTupleJoinTable.hxx>
using ROOT::Experimental::Internal::RNTupleJoinTable::JoinValue_t = std::uint64_t |
Definition at line 38 of file RNTupleJoinTable.hxx.
using ROOT::Experimental::Internal::RNTupleJoinTable::PartitionKey_t = std::uint64_t |
Definition at line 39 of file RNTupleJoinTable.hxx.
|
inlineprivate |
Create an a new RNTupleJoinTable for the RNTuple represented by the provided page source.
[in] | joinFieldNames | The names of the join fields to use for the join table. Only integral-type fields are allowed. |
Definition at line 115 of file RNTupleJoinTable.hxx.
|
delete |
|
delete |
|
default |
ROOT::Experimental::Internal::RNTupleJoinTable & ROOT::Experimental::Internal::RNTupleJoinTable::Add | ( | RPageSource & | pageSource, |
PartitionKey_t | partitionKey = kDefaultPartitionKey ) |
Add an entry mapping to the join table.
[in] | pageSource | The page source of the RNTuple with the entries to map. |
[in] | partitionKey | Which partition to add the mapping to. If not provided, it will be added to the default partition. |
Definition at line 118 of file RNTupleJoinTable.cxx.
|
static |
Create an RNTupleJoinTable from an existing RNTuple.
[in] | joinFieldNames | The names of the join fields to use for the join table. Only integral-type fields are allowed. |
Definition at line 112 of file RNTupleJoinTable.cxx.
std::vector< ROOT::NTupleSize_t > ROOT::Experimental::Internal::RNTupleJoinTable::GetEntryIndexes | ( | const std::vector< void * > & | valuePtrs, |
PartitionKey_t | partitionKey = kDefaultPartitionKey ) const |
Get all entry indexes for the given join field value(s) within a partition.
[in] | valuePtrs | A vector of pointers to the join field values to look up. |
[in] | partitionKey | The partition key to use for the lookup. If not provided, it will use the default partition key. |
valuePtrs
. When there are no corresponding entries, an empty vector is returned. Definition at line 127 of file RNTupleJoinTable.cxx.
std::unordered_map< ROOT::Experimental::Internal::RNTupleJoinTable::PartitionKey_t, std::vector< ROOT::NTupleSize_t > > ROOT::Experimental::Internal::RNTupleJoinTable::GetPartitionedEntryIndexes | ( | const std::vector< void * > & | valuePtrs | ) | const |
Get all entry indexes for the given join field value(s) for all partitions.
[in] | valuePtrs | A vector of pointers to the join field values to look up. |
valuePtrs
, grouped by partition. When there are no corresponding entries, an empty map is returned. Definition at line 163 of file RNTupleJoinTable.cxx.
std::unordered_map< ROOT::Experimental::Internal::RNTupleJoinTable::PartitionKey_t, std::vector< ROOT::NTupleSize_t > > ROOT::Experimental::Internal::RNTupleJoinTable::GetPartitionedEntryIndexes | ( | const std::vector< void * > & | valuePtrs, |
const std::vector< PartitionKey_t > & | partitionKeys ) const |
Get all entry indexes for the given join field value(s) for a specific set of partitions.
[in] | valuePtrs | A vector of pointers to the join field values to look up. |
[in] | partitionKeys | The partition keys to use for the lookup. |
valuePtrs
, grouped by partition. When there are no corresponding entries, an empty map is returned. Definition at line 146 of file RNTupleJoinTable.cxx.
|
delete |
|
delete |
|
private |
Names of the join fields used for the mapping to their respective entry indexes.
Definition at line 105 of file RNTupleJoinTable.hxx.
|
private |
Partitions of one or multiple entry mappings.
Definition at line 108 of file RNTupleJoinTable.hxx.
|
staticconstexpr |
Definition at line 40 of file RNTupleJoinTable.hxx.