@@ -854,41 +854,43 @@ auto makeEmptyTable(const char* name, framework::pack<Cs...> p)
854854 return b.finalize ();
855855}
856856
857- std::shared_ptr<arrow::Table> spawnerHelper (std::shared_ptr<arrow::Table>& fullTable, std::shared_ptr<arrow::Schema> newSchema, size_t nColumns,
857+ std::shared_ptr<arrow::Table> spawnerHelper (std::shared_ptr<arrow::Table> const & fullTable, std::shared_ptr<arrow::Schema> newSchema, size_t nColumns,
858858 expressions::Projector* projectors, std::vector<std::shared_ptr<arrow::Field>> const & fields, const char * name);
859859
860860// / Expression-based column generator to materialize columns
861861template <aod::aodHash D>
862862auto spawner (std::vector<std::shared_ptr<arrow::Table>>&& tables, const char * name)
863863{
864+ using expression_pack_t = typename o2::aod::MetadataTraitNG<D>::metadata::expression_pack_t ;
864865 auto fullTable = soa::ArrowHelpers::joinTables (std::move (tables));
865866 if (fullTable->num_rows () == 0 ) {
866- return makeEmptyTable (name, typename o2::aod::MetadataTraitNG<D>:: expression_pack_t {});
867+ return makeEmptyTable (name, expression_pack_t {});
867868 }
868- static auto fields = o2::soa::createFieldsFromColumns (typename o2::aod::MetadataTraitNG<D>:: expression_pack_t {});
869+ static auto fields = o2::soa::createFieldsFromColumns (expression_pack_t {});
869870 static auto new_schema = std::make_shared<arrow::Schema>(fields);
870- auto projectors = []<typename ... C>() -> std::array<expressions::Projector, sizeof ...(C)>
871+ auto projectors = []<typename ... C>(framework::pack<C...> ) -> std::array<expressions::Projector, sizeof ...(C)>
871872 {
872873 return {{std::move (C::Projector ())...}};
873- }
874- ( typename o2::aod::MetadataTraitNG<D>:: expression_pack_t {}); // ;
875- return spawnerHelper (fullTable, new_schema, framework::pack_size (typename o2::aod::MetadataTraitNG<D>:: expression_pack_t {}), projectors.data (), fields, name);
874+ }( expression_pack_t {});
875+
876+ return spawnerHelper (fullTable, new_schema, framework::pack_size (expression_pack_t {}), projectors.data (), fields, name);
876877}
877878
878879template <aod::aodHash D>
879880auto spawner (std::shared_ptr<arrow::Table> const & fullTable, const char * name)
880881{
882+ using expression_pack_t = typename o2::aod::MetadataTraitNG<D>::metadata::expression_pack_t ;
881883 if (fullTable->num_rows () == 0 ) {
882- return makeEmptyTable (name, typename o2::aod::MetadataTraitNG<D>:: expression_pack_t {});
884+ return makeEmptyTable (name,expression_pack_t {});
883885 }
884- static auto fields = o2::soa::createFieldsFromColumns (typename o2::aod::MetadataTraitNG<D>:: expression_pack_t {});
886+ static auto fields = o2::soa::createFieldsFromColumns (expression_pack_t {});
885887 static auto new_schema = std::make_shared<arrow::Schema>(fields);
886- auto projectors = []<typename ... C>() -> std::array<expressions::Projector, sizeof ...(C)>
888+ auto projectors = []<typename ... C>(framework::pack<C...> ) -> std::array<expressions::Projector, sizeof ...(C)>
887889 {
888890 return {{std::move (C::Projector ())...}};
889- }
890- ( typename o2::aod::MetadataTraitNG<D>:: expression_pack_t {}); // ;
891- return spawnerHelper (fullTable, new_schema, framework::pack_size (typename o2::aod::MetadataTraitNG<D>:: expression_pack_t {}), projectors.data (), fields, name);
891+ }( expression_pack_t {});
892+
893+ return spawnerHelper (fullTable, new_schema, framework::pack_size (expression_pack_t {}), projectors.data (), fields, name);
892894}
893895
894896template <soa::OriginEnc ORIGIN, typename ... C>
0 commit comments