@@ -342,13 +342,13 @@ public:
342342 RInterface<RDFDetail::RFilterWithMissingValues<Proxied>, DS_t> FilterAvailable (std::string_view column)
343343 {
344344 const auto columns = ColumnNames_t{column.data ()};
345- CheckAndFillDSColumns (columns, TTraits::TypeList<void >{});
346345 // For now disable this functionality in case of an empty data source and
347346 // the column name was not defined previously.
348347 if (ROOT::Internal::RDF::GetDataSourceLabel (*this ) == " EmptyDS" )
349348 GetValidatedColumnNames (1 , columns);
350349 using F_t = RDFDetail::RFilterWithMissingValues<Proxied>;
351350 auto filterPtr = std::make_shared<F_t>(/* discardEntry*/ true , fProxiedPtr , fColRegister , columns);
351+ CheckAndFillDSColumns (columns, TTraits::TypeList<void >{});
352352 return RInterface<F_t, DS_t>(std::move (filterPtr), *fLoopManager , fColRegister );
353353 }
354354
@@ -393,13 +393,13 @@ public:
393393 RInterface<RDFDetail::RFilterWithMissingValues<Proxied>, DS_t> FilterMissing (std::string_view column)
394394 {
395395 const auto columns = ColumnNames_t{column.data ()};
396- CheckAndFillDSColumns (columns, TTraits::TypeList<void >{});
397396 // For now disable this functionality in case of an empty data source and
398397 // the column name was not defined previously.
399398 if (ROOT::Internal::RDF::GetDataSourceLabel (*this ) == " EmptyDS" )
400399 GetValidatedColumnNames (1 , columns);
401400 using F_t = RDFDetail::RFilterWithMissingValues<Proxied>;
402401 auto filterPtr = std::make_shared<F_t>(/* discardEntry*/ false , fProxiedPtr , fColRegister , columns);
402+ CheckAndFillDSColumns (columns, TTraits::TypeList<void >{});
403403 return RInterface<F_t, DS_t>(std::move (filterPtr), *fLoopManager , fColRegister );
404404 }
405405
@@ -683,8 +683,6 @@ public:
683683 if (ROOT::Internal::RDF::GetDataSourceLabel (*this ) == " EmptyDS" )
684684 RDFInternal::CheckForDefinition (where, column, fColRegister , fLoopManager ->GetBranchNames (),
685685 GetDataSource () ? GetDataSource ()->GetColumnNames () : ColumnNames_t{});
686- const auto validColumnNames = ColumnNames_t{column.data ()};
687- CheckAndFillDSColumns (validColumnNames, TTraits::TypeList<T>{});
688686
689687 // Declare return type to the interpreter, for future use by jitted actions
690688 auto retTypeName = RDFInternal::TypeID2TypeName (typeid (T));
@@ -695,8 +693,10 @@ public:
695693 retTypeName = " CLING_UNKNOWN_TYPE_" + demangledType;
696694 }
697695
696+ const auto validColumnNames = ColumnNames_t{column.data ()};
698697 auto newColumn = std::make_shared<ROOT::Internal::RDF::RDefaultValueFor<T>>(
699698 column, retTypeName, defaultValue, validColumnNames, fColRegister , *fLoopManager );
699+ CheckAndFillDSColumns (validColumnNames, TTraits::TypeList<T>{});
700700
701701 RDFInternal::RColumnRegister newCols (fColRegister );
702702 newCols.AddDefine (std::move (newColumn));
0 commit comments