Skip to content

Commit 1416632

Browse files
committed
ng -> base
1 parent 9a75a14 commit 1416632

File tree

7 files changed

+67
-64
lines changed

7 files changed

+67
-64
lines changed

Framework/Core/include/Framework/ASoA.h

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include "Framework/Pack.h"
1616
#include "Framework/FunctionalHelpers.h"
1717
#include "Headers/DataHeader.h"
18+
#include "Headers/DataHeaderHelpers.h"
1819
#include "Framework/CompilerBuiltins.h"
1920
#include "Framework/Traits.h"
2021
#include "Framework/Expressions.h"
@@ -313,7 +314,7 @@ template <typename T>
313314
concept ng_metadata = framework::is_base_of_template_v<TableMetadata, T>;
314315

315316
template <typename D>
316-
struct MetadataTraitNG {
317+
struct MetadataTrait {
317318
using metadata = void;
318319
};
319320

@@ -327,7 +328,7 @@ template <size_t N, std::array<soa::TableRef, N> ar, typename Key>
327328
consteval auto filterForKey()
328329
{
329330
constexpr std::array<bool, N> test = []<size_t... Is>(std::index_sequence<Is...>) {
330-
return std::array<bool, N>{(Key::template hasOriginal<ar[Is]>() || (o2::aod::MetadataTraitNG<o2::aod::Hash<ar[Is].desc_hash>>::metadata::template getIndexPosToKey<Key>() >= 0))...};
331+
return std::array<bool, N>{(Key::template hasOriginal<ar[Is]>() || (o2::aod::MetadataTrait<o2::aod::Hash<ar[Is].desc_hash>>::metadata::template getIndexPosToKey<Key>() >= 0))...};
331332
}(std::make_index_sequence<N>());
332333
constexpr int correct = std::ranges::count(test.begin(), test.end(), true);
333334
std::array<soa::TableRef, correct> out;
@@ -461,11 +462,11 @@ inline constexpr bool is_type_with_parent_v = false;
461462
template <typename T>
462463
inline constexpr bool is_type_with_parent_v<T, std::void_t<decltype(sizeof(typename T::parent_t))>> = true;
463464

464-
template <typename T>
465-
concept has_metadata = not_void<typename aod::MetadataTrait<std::decay_t<T>>::metadata>;
465+
// template <typename T>
466+
// concept has_metadata = not_void<typename aod::MetadataTrait<std::decay_t<T>>::metadata>;
466467

467468
template <typename T>
468-
concept has_ng_metadata = not_void<typename aod::MetadataTraitNG<o2::aod::Hash<std::decay_t<T>::ref.desc_hash>>::metadata>;
469+
concept has_metadata = not_void<typename aod::MetadataTrait<o2::aod::Hash<std::decay_t<T>::ref.desc_hash>>::metadata>;
469470

470471
template <typename T>
471472
concept spawnable = std::is_same_v<typename T::spawnable_t, std::true_type>;
@@ -1590,16 +1591,19 @@ concept ng_iterator = framework::is_base_of_template_v<TableIterator, T> || fram
15901591
// return false;
15911592
// }
15921593

1593-
template <typename A>
1594+
template <typename T>
15941595
concept with_originals = requires() {
1595-
A::originals.size();
1596+
T::originals.size();
15961597
};
15971598

15981599
template <typename T>
15991600
concept with_sources = requires() {
1600-
o2::aod::MetadataTraitNG<T>::metadata::sources.size();
1601+
T::sources.size();
16011602
};
16021603

1604+
template <typename T>
1605+
concept with_base_table = not_void<typename aod::MetadataTrait<o2::aod::Hash<T::ref.desc_hash>>::metadata::base_table_t>;
1606+
16031607
template <with_originals T, with_originals B>
16041608
consteval bool is_binding_compatible_v()
16051609
{
@@ -1661,7 +1665,7 @@ static constexpr std::string getLabelForTable()
16611665
}
16621666

16631667
template <soa::ng_table T>
1664-
requires (!index_table<T>)
1668+
requires (!(soa::index_table<T> || soa::with_base_table<T>))
16651669
static constexpr std::string getLabelFromType()
16661670
{
16671671
return getLabelForTable<T>();
@@ -1673,16 +1677,15 @@ static constexpr std::string getLabelFromType()
16731677
return getLabelForTable<typename std::decay_t<T>::parent_t>();
16741678
}
16751679

1676-
template <index_table T>
1680+
template <soa::index_table T>
16771681
static constexpr std::string getLabelFromType()
16781682
{
16791683
return getLabelForTable<typename std::decay_t<T>::first_t>();
16801684
}
1681-
template <with_sources T>
1682-
requires (not_void<typename aod::MetadataTraitNG<o2::aod::Hash<T::ref.desc_hash>>::metadata::base_table_t>)
1685+
template <soa::with_base_table T>
16831686
static constexpr std::string getLabelFromType()
16841687
{
1685-
return getLabelForTable<typename aod::MetadataTraitNG<o2::aod::Hash<T::ref.desc_hash>>::metadata::base_table_t>();
1688+
return getLabelForTable<typename aod::MetadataTrait<o2::aod::Hash<T::ref.desc_hash>>::metadata::base_table_t>();
16861689
}
16871690

16881691
template <typename... C>
@@ -1700,7 +1703,7 @@ static constexpr auto hasColumnForKey(framework::pack<C...>, std::string const&
17001703
template <TableRef ref>
17011704
static constexpr std::pair<bool, std::string> hasKey(std::string const& key)
17021705
{
1703-
return {hasColumnForKey(typename aod::MetadataTraitNG<o2::aod::Hash<ref.desc_hash>>::metadata::columns{}, key), o2::aod::Hash<ref.label_hash>::str};
1706+
return {hasColumnForKey(typename aod::MetadataTrait<o2::aod::Hash<ref.desc_hash>>::metadata::columns{}, key), o2::aod::Hash<ref.label_hash>::str};
17041707
}
17051708

17061709
template <typename... C>
@@ -2076,7 +2079,7 @@ consteval auto base_iter(framework::pack<C...>&&) -> TableIterator<D, O, IP, C..
20762079
template <TableRef ref>
20772080
consteval auto getColumns()
20782081
{
2079-
return typename aod::MetadataTraitNG<o2::aod::Hash<ref.desc_hash>>::metadata::columns{};
2082+
return typename aod::MetadataTrait<o2::aod::Hash<ref.desc_hash>>::metadata::columns{};
20802083
}
20812084

20822085
template <aod::aod_hash L, aod::aod_hash D, aod::origin_hash O, typename... Ts>
@@ -3884,7 +3887,7 @@ consteval auto getIndexTargets()
38843887

38853888
#define DECLARE_SOA_TABLE_METADATA_TRAIT(_Name_, _Desc_, _Version_)\
38863889
template <> \
3887-
struct MetadataTraitNG<Hash<_Desc_ "/" #_Version_ ""_h>> { \
3890+
struct MetadataTrait<Hash<_Desc_ "/" #_Version_ ""_h>> { \
38883891
using metadata = _Name_##Metadata; \
38893892
};
38903893

@@ -3894,7 +3897,7 @@ consteval auto getIndexTargets()
38943897
using _Name_##From = o2::soa::TableNG<Hash<_Label_ ""_h>, Hash<_Desc_ "/" #_Version_ ""_h>, O>; \
38953898
using _Name_ = _Name_##From<Hash<_Origin_ ""_h>>; \
38963899
template <> \
3897-
struct MetadataTraitNG<Hash<_Desc_ "/" #_Version_ ""_h>> { \
3900+
struct MetadataTrait<Hash<_Desc_ "/" #_Version_ ""_h>> { \
38983901
using metadata = _Name_##Metadata; \
38993902
};
39003903

@@ -3986,7 +3989,7 @@ consteval auto getIndexTargets()
39863989
}; \
39873990
using _Name_##ExtensionMetadata = _Name_##ExtensionMetadataFrom<o2::aod::Hash<_Origin_ ""_h>>; \
39883991
template <> \
3989-
struct MetadataTraitNG<o2::aod::Hash<_Desc_ "/" #_Version_ ""_h>> { \
3992+
struct MetadataTrait<o2::aod::Hash<_Desc_ "/" #_Version_ ""_h>> { \
39903993
using metadata = _Name_##ExtensionMetadata; \
39913994
}; \
39923995
template <typename O> \
@@ -4063,7 +4066,7 @@ consteval auto getIndexTargets()
40634066
using _Name_ = _Name_##From<o2::aod::Hash<_Origin_ ""_h>>; \
40644067
\
40654068
template <> \
4066-
struct MetadataTraitNG<o2::aod::Hash<_Desc_ "/" #_Version_ ""_h>> { \
4069+
struct MetadataTrait<o2::aod::Hash<_Desc_ "/" #_Version_ ""_h>> { \
40674070
using metadata = _Name_##Metadata; \
40684071
};
40694072

Framework/Core/include/Framework/AnalysisHelpers.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ class TableConsumer;
153153
// };
154154

155155
template <typename T>
156-
concept producable = soa::has_ng_metadata<T> || soa::has_ng_metadata<typename T::parent_t>;
156+
concept producable = soa::has_metadata<T> || soa::has_metadata<typename T::parent_t>;
157157

158158
template <producable T>
159159
struct WritingCursor {
@@ -241,7 +241,7 @@ struct WritingCursor {
241241
template <o2::soa::with_originals T>
242242
struct OutputForTable {
243243
using table_t = T;
244-
using metadata = aod::MetadataTraitNG<o2::aod::Hash<T::ref.desc_hash>>::metadata;
244+
using metadata = aod::MetadataTrait<o2::aod::Hash<T::ref.desc_hash>>::metadata;
245245

246246
static OutputSpec const spec()
247247
{
@@ -399,11 +399,11 @@ struct TableTransform {
399399
// };
400400

401401
template <typename T>
402-
concept spawnable = soa::ng_table<T> && soa::has_ng_metadata<T>;
402+
concept spawnable = soa::ng_table<T> && soa::has_metadata<T>;
403403

404404
template <spawnable T>
405-
struct Spawns : TableTransform<typename aod::MetadataTraitNG<o2::aod::Hash<T::ref.desc_hash>>::metadata, T::ref> {
406-
using metadata = TableTransform<typename aod::MetadataTraitNG<o2::aod::Hash<T::ref.desc_hash>>::metadata, T::ref>::metadata;
405+
struct Spawns : TableTransform<typename aod::MetadataTrait<o2::aod::Hash<T::ref.desc_hash>>::metadata, T::ref> {
406+
using metadata = TableTransform<typename aod::MetadataTrait<o2::aod::Hash<T::ref.desc_hash>>::metadata, T::ref>::metadata;
407407
using extension_t = typename metadata::extension_table_t;
408408
using base_table_t = typename metadata::base_table_t;
409409
using expression_pack_t = typename metadata::expression_pack_t;
@@ -546,7 +546,7 @@ struct IndexBuilder {
546546
SelfIndexColumnBuilder self{C1::columnLabel(), pool};
547547
std::unique_ptr<ChunkedArrayIterator> keyIndex = nullptr;
548548
if constexpr (!Key::template hasOriginal<refs[0]>()) {
549-
keyIndex = std::make_unique<ChunkedArrayIterator>(tables[0]->column(o2::aod::MetadataTraitNG<o2::aod::Hash<refs[0].desc_hash>>::metadata::template getIndexPosToKey<Key>()));
549+
keyIndex = std::make_unique<ChunkedArrayIterator>(tables[0]->column(o2::aod::MetadataTrait<o2::aod::Hash<refs[0].desc_hash>>::metadata::template getIndexPosToKey<Key>()));
550550
}
551551

552552
auto sq = std::make_index_sequence<sizeof...(Cs)>();
@@ -556,7 +556,7 @@ struct IndexBuilder {
556556
return {[](arrow::Table* table, arrow::MemoryPool* pool) {
557557
using T = framework::pack_element_t<Is, framework::pack<Cs...>>;
558558
if constexpr (!Key::template hasOriginal<refs[Is + 1]>()) {
559-
constexpr auto pos = o2::aod::MetadataTraitNG<o2::aod::Hash<refs[Is + 1].desc_hash>>::metadata::template getIndexPosToKey<Key>();
559+
constexpr auto pos = o2::aod::MetadataTrait<o2::aod::Hash<refs[Is + 1].desc_hash>>::metadata::template getIndexPosToKey<Key>();
560560
return std::make_shared<IndexColumnBuilder>(table->column(pos), T::columnLabel(), ColumnTrait<T>::listSize(), pool);
561561
} else {
562562
return std::make_shared<SelfIndexColumnBuilder>(T::columnLabel(), pool);
@@ -654,8 +654,8 @@ struct IndexBuilder {
654654
// };
655655

656656
template <soa::index_table T>
657-
struct Builds : TableTransform<typename aod::MetadataTraitNG<aod::Hash<T::ref.desc_hash>>::metadata, T::ref> {
658-
using metadata = TableTransform<typename aod::MetadataTraitNG<aod::Hash<T::ref.desc_hash>>::metadata, T::ref>::metadata;
657+
struct Builds : TableTransform<typename aod::MetadataTrait<aod::Hash<T::ref.desc_hash>>::metadata, T::ref> {
658+
using metadata = TableTransform<typename aod::MetadataTrait<aod::Hash<T::ref.desc_hash>>::metadata, T::ref>::metadata;
659659
using IP = std::conditional_t<metadata::exclusive, IndexBuilder<Exclusive>, IndexBuilder<Sparse>>;
660660
using Key = metadata::Key;
661661
using H = typename T::first_t;

Framework/Core/include/Framework/AnalysisManagers.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -448,7 +448,7 @@ struct OutputManager<Spawns<T>> {
448448

449449
static bool prepare(ProcessingContext& pc, Spawns<T>& what)
450450
{
451-
using metadata = o2::aod::MetadataTraitNG<o2::aod::Hash<T::ref.desc_hash>>::metadata;
451+
using metadata = o2::aod::MetadataTrait<o2::aod::Hash<T::ref.desc_hash>>::metadata;
452452
auto originalTable = soa::ArrowHelpers::joinTables(extractOriginals<metadata::sources.size(), metadata::sources>(pc));
453453
if (originalTable->schema()->fields().empty() == true) {
454454
using base_table_t = typename Spawns<T>::base_table_t::table_t;
@@ -531,7 +531,7 @@ struct OutputManager<Builds<T>> {
531531

532532
static bool prepare(ProcessingContext& pc, Builds<T>& what)
533533
{
534-
using metadata = o2::aod::MetadataTraitNG<o2::aod::Hash<T::ref.desc_hash>>::metadata;
534+
using metadata = o2::aod::MetadataTrait<o2::aod::Hash<T::ref.desc_hash>>::metadata;
535535
return what.template build<typename T::indexing_t>(what.pack(), extractOriginals<metadata::sources.size(), metadata::sources>(pc));
536536
}
537537

Framework/Core/include/Framework/AnalysisTask.h

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -104,24 +104,24 @@ struct AnalysisDataProcessorBuilder {
104104
template <soa::with_sources T>
105105
static inline auto getSources()
106106
{
107-
return []<size_t N>(std::array<soa::TableRef, N> const& refs){
108-
return [&refs]<size_t... Is>(std::index_sequence<Is...>){
107+
return []<size_t N, std::array<soa::TableRef, N> refs>(){
108+
return []<size_t... Is>(std::index_sequence<Is...>){
109109
return std::vector{soa::tableRef2ConfigParamSpec<refs[Is]>()...};
110110
}(std::make_index_sequence<N>());
111-
}(T::sources);
111+
}.template operator()<T::sources.size(), T::sources>();
112112
}
113113

114-
template <typename T>
115-
static auto getInputMetadata()
116-
{
117-
std::vector<ConfigParamSpec> inputMetadata;
118-
auto inputSources = getSources<T>();
119-
std::sort(inputSources.begin(), inputSources.end(), [](ConfigParamSpec const& a, ConfigParamSpec const& b) { return a.name < b.name; });
120-
auto last = std::unique(inputSources.begin(), inputSources.end(), [](ConfigParamSpec const& a, ConfigParamSpec const& b) { return a.name == b.name; });
121-
inputSources.erase(last, inputSources.end());
122-
inputMetadata.insert(inputMetadata.end(), inputSources.begin(), inputSources.end());
123-
return inputMetadata;
124-
}
114+
// template <typename T>
115+
// static auto getInputMetadata()
116+
// {
117+
// std::vector<ConfigParamSpec> inputMetadata;
118+
// auto inputSources = getSources<T>();
119+
// std::sort(inputSources.begin(), inputSources.end(), [](ConfigParamSpec const& a, ConfigParamSpec const& b) { return a.name < b.name; });
120+
// auto last = std::unique(inputSources.begin(), inputSources.end(), [](ConfigParamSpec const& a, ConfigParamSpec const& b) { return a.name == b.name; });
121+
// inputSources.erase(last, inputSources.end());
122+
// inputMetadata.insert(inputMetadata.end(), inputSources.begin(), inputSources.end());
123+
// return inputMetadata;
124+
// }
125125

126126
template <soa::with_sources T>
127127
static auto getInputMetadata()
@@ -157,23 +157,23 @@ struct AnalysisDataProcessorBuilder {
157157
}(framework::pack<Args...>{});
158158
}
159159

160-
template <soa::has_metadata O>
161-
static void addOriginal(const char* name, bool value, std::vector<InputSpec>& inputs)
162-
{
163-
using metadata = typename aod::MetadataTrait<std::decay_t<O>>::metadata;
164-
std::vector<ConfigParamSpec> inputMetadata;
165-
inputMetadata.emplace_back(ConfigParamSpec{std::string{"control:"} + name, VariantType::Bool, value, {"\"\""}});
166-
if constexpr (soa::extension_table<std::decay_t<O>>) {
167-
auto inputSources = getInputMetadata<std::decay_t<O>>();
168-
inputMetadata.insert(inputMetadata.end(), inputSources.begin(), inputSources.end());
169-
}
170-
DataSpecUtils::updateInputList(inputs, InputSpec{metadata::tableLabel(), metadata::origin(), metadata::description(), metadata::version(), Lifetime::Timeframe, inputMetadata});
171-
}
160+
// template <soa::has_metadata O>
161+
// static void addOriginal(const char* name, bool value, std::vector<InputSpec>& inputs)
162+
// {
163+
// using metadata = typename aod::MetadataTrait<std::decay_t<O>>::metadata;
164+
// std::vector<ConfigParamSpec> inputMetadata;
165+
// inputMetadata.emplace_back(ConfigParamSpec{std::string{"control:"} + name, VariantType::Bool, value, {"\"\""}});
166+
// if constexpr (soa::extension_table<std::decay_t<O>>) {
167+
// auto inputSources = getInputMetadata<std::decay_t<O>>();
168+
// inputMetadata.insert(inputMetadata.end(), inputSources.begin(), inputSources.end());
169+
// }
170+
// DataSpecUtils::updateInputList(inputs, InputSpec{metadata::tableLabel(), metadata::origin(), metadata::description(), metadata::version(), Lifetime::Timeframe, inputMetadata});
171+
// }
172172

173173
template <soa::TableRef R>
174174
static void addOriginalRef(const char* name, bool value, std::vector<InputSpec>& inputs)
175175
{
176-
using metadata = typename aod::MetadataTraitNG<o2::aod::Hash<R.desc_hash>>::metadata;
176+
using metadata = typename aod::MetadataTrait<o2::aod::Hash<R.desc_hash>>::metadata;
177177
std::vector<ConfigParamSpec> inputMetadata;
178178
inputMetadata.emplace_back(ConfigParamSpec{std::string{"control:"} + name, VariantType::Bool, value, {"\"\""}});
179179
if constexpr (soa::with_sources<metadata>) {

Framework/Core/include/Framework/TableBuilder.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -870,7 +870,7 @@ template <soa::TableRef R>
870870
auto makeEmptyTable()
871871
{
872872
TableBuilder b;
873-
[[maybe_unused]] auto writer = b.cursor(typename aod::MetadataTraitNG<aod::Hash<R.desc_hash>>::metadata::columns{});
873+
[[maybe_unused]] auto writer = b.cursor(typename aod::MetadataTrait<aod::Hash<R.desc_hash>>::metadata::columns{});
874874
b.setLabel(aod::Hash<R.label_hash>::str);
875875
return b.finalize();
876876
}
@@ -891,7 +891,7 @@ std::shared_ptr<arrow::Table> spawnerHelper(std::shared_ptr<arrow::Table> const&
891891
template <aod::aod_hash D>
892892
auto spawner(std::vector<std::shared_ptr<arrow::Table>>&& tables, const char* name)
893893
{
894-
using expression_pack_t = typename o2::aod::MetadataTraitNG<D>::metadata::expression_pack_t;
894+
using expression_pack_t = typename o2::aod::MetadataTrait<D>::metadata::expression_pack_t;
895895
auto fullTable = soa::ArrowHelpers::joinTables(std::move(tables));
896896
if (fullTable->num_rows() == 0) {
897897
return makeEmptyTable(name, expression_pack_t{});
@@ -909,7 +909,7 @@ auto spawner(std::vector<std::shared_ptr<arrow::Table>>&& tables, const char* na
909909
template <aod::aod_hash D>
910910
auto spawner(std::shared_ptr<arrow::Table> const& fullTable, const char* name)
911911
{
912-
using expression_pack_t = typename o2::aod::MetadataTraitNG<D>::metadata::expression_pack_t;
912+
using expression_pack_t = typename o2::aod::MetadataTrait<D>::metadata::expression_pack_t;
913913
if (fullTable->num_rows() == 0) {
914914
return makeEmptyTable(name,expression_pack_t{});
915915
}

Framework/Core/src/AODReaderHelpers.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ AlgorithmSpec AODReaderHelpers::aodSpawnerCallback(std::vector<InputSpec>& reque
160160
for (auto& input : requested) {
161161
auto&& [origin, description, version] = DataSpecUtils::asConcreteDataMatcher(input);
162162
auto maker = [&]<o2::aod::aod_hash D>() {
163-
using metadata_t = o2::aod::MetadataTraitNG<D>::metadata;
163+
using metadata_t = o2::aod::MetadataTrait<D>::metadata;
164164
constexpr auto sources = metadata_t::sources;
165165
return o2::framework::spawner<D>(extractOriginals<sources.size(), sources>(pc), input.binding.c_str());
166166
};

Framework/Core/test/test_IndexBuilder.cxx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ TEST_CASE("TestIndexBuilderNG")
188188
auto t4 = b4.finalize();
189189
CategoryNGs st4{t4};
190190

191-
using m1 = MetadataTraitNG<o2::aod::Hash<"Index1/0"_h>>::metadata;
191+
using m1 = MetadataTrait<o2::aod::Hash<"Index1/0"_h>>::metadata;
192192
auto t5 = IndexBuilder<Exclusive>::indexBuilder<PointNGs, m1::sources.size(), m1::sources>("test1a", {t1, t2, t3, t4}, typename IDXNGs::persistent_columns_t{});
193193
REQUIRE(t5->num_rows() == 4);
194194
IDXNGs idxt{t5};
@@ -199,7 +199,7 @@ TEST_CASE("TestIndexBuilderNG")
199199
REQUIRE(row.categoryng().pointngId() == row.pointngId());
200200
}
201201

202-
using m2 = MetadataTraitNG<o2::aod::Hash<"Index2/0"_h>>::metadata;
202+
using m2 = MetadataTrait<o2::aod::Hash<"Index2/0"_h>>::metadata;
203203
auto t6 = IndexBuilder<Sparse>::indexBuilder<PointNGs, m2::sources.size(), m2::sources>("test3", {t2, t1, t3, t4}, typename IDX2NGs::persistent_columns_t{});
204204
REQUIRE(t6->num_rows() == st2.size());
205205
IDX2NGs idxs{t6};
@@ -383,7 +383,7 @@ TEST_CASE("AdvancedIndexTablesNG")
383383
{14, 34},
384384
{8, 31, 42, 46, 58}}};
385385

386-
using m3 = MetadataTraitNG<o2::aod::Hash<"Index3/0"_h>>::metadata;
386+
using m3 = MetadataTrait<o2::aod::Hash<"Index3/0"_h>>::metadata;
387387
auto t3 = IndexBuilder<Sparse>::indexBuilder<PointNGs, m3::sources.size(), m3::sources>("test4", {t1, t2, tc}, typename IDX3NGs::persistent_columns_t{});
388388
REQUIRE(t3->num_rows() == st1.size());
389389
IDX3NGs idxs{t3};

0 commit comments

Comments
 (0)