diff --git a/tree/dataframe/inc/ROOT/RDF/RInterface.hxx b/tree/dataframe/inc/ROOT/RDF/RInterface.hxx index f411d35ab626f..7c95ff9e7fbde 100644 --- a/tree/dataframe/inc/ROOT/RDF/RInterface.hxx +++ b/tree/dataframe/inc/ROOT/RDF/RInterface.hxx @@ -342,13 +342,13 @@ public: RInterface, DS_t> FilterAvailable(std::string_view column) { const auto columns = ColumnNames_t{column.data()}; - CheckAndFillDSColumns(columns, TTraits::TypeList{}); // For now disable this functionality in case of an empty data source and // the column name was not defined previously. if (ROOT::Internal::RDF::GetDataSourceLabel(*this) == "EmptyDS") GetValidatedColumnNames(1, columns); using F_t = RDFDetail::RFilterWithMissingValues; auto filterPtr = std::make_shared(/*discardEntry*/ true, fProxiedPtr, fColRegister, columns); + CheckAndFillDSColumns(columns, TTraits::TypeList{}); return RInterface(std::move(filterPtr), *fLoopManager, fColRegister); } @@ -393,13 +393,13 @@ public: RInterface, DS_t> FilterMissing(std::string_view column) { const auto columns = ColumnNames_t{column.data()}; - CheckAndFillDSColumns(columns, TTraits::TypeList{}); // For now disable this functionality in case of an empty data source and // the column name was not defined previously. if (ROOT::Internal::RDF::GetDataSourceLabel(*this) == "EmptyDS") GetValidatedColumnNames(1, columns); using F_t = RDFDetail::RFilterWithMissingValues; auto filterPtr = std::make_shared(/*discardEntry*/ false, fProxiedPtr, fColRegister, columns); + CheckAndFillDSColumns(columns, TTraits::TypeList{}); return RInterface(std::move(filterPtr), *fLoopManager, fColRegister); } @@ -683,8 +683,6 @@ public: if (ROOT::Internal::RDF::GetDataSourceLabel(*this) == "EmptyDS") RDFInternal::CheckForDefinition(where, column, fColRegister, fLoopManager->GetBranchNames(), GetDataSource() ? GetDataSource()->GetColumnNames() : ColumnNames_t{}); - const auto validColumnNames = ColumnNames_t{column.data()}; - CheckAndFillDSColumns(validColumnNames, TTraits::TypeList{}); // Declare return type to the interpreter, for future use by jitted actions auto retTypeName = RDFInternal::TypeID2TypeName(typeid(T)); @@ -695,8 +693,10 @@ public: retTypeName = "CLING_UNKNOWN_TYPE_" + demangledType; } + const auto validColumnNames = ColumnNames_t{column.data()}; auto newColumn = std::make_shared>( column, retTypeName, defaultValue, validColumnNames, fColRegister, *fLoopManager); + CheckAndFillDSColumns(validColumnNames, TTraits::TypeList{}); RDFInternal::RColumnRegister newCols(fColRegister); newCols.AddDefine(std::move(newColumn));