From d918cdca09c043fa1b113cf20ec12741f5e0658a Mon Sep 17 00:00:00 2001 From: Vincenzo Eduardo Padulano Date: Thu, 6 Mar 2025 17:14:11 +0100 Subject: [PATCH] [df] Simplify nslots in RDataSource The fNSlots data member is used by all data sources, thus it can be upstreamed to the base class. --- tree/dataframe/inc/ROOT/RArrowDS.hxx | 1 - tree/dataframe/inc/ROOT/RCsvDS.hxx | 1 - tree/dataframe/inc/ROOT/RDF/RLazyDSImpl.hxx | 1 - tree/dataframe/inc/ROOT/RDataSource.hxx | 2 ++ tree/dataframe/inc/ROOT/RNTupleDS.hxx | 1 - tree/dataframe/inc/ROOT/RRootDS.hxx | 1 - tree/dataframe/inc/ROOT/RSqliteDS.hxx | 1 - tree/dataframe/inc/ROOT/RTrivialDS.hxx | 1 - tree/dataframe/inc/ROOT/RVecDS.hxx | 1 - tree/dataframe/src/RSqliteDS.cxx | 2 +- tree/dataframe/test/RStreamingDS.hxx | 1 - 11 files changed, 3 insertions(+), 10 deletions(-) diff --git a/tree/dataframe/inc/ROOT/RArrowDS.hxx b/tree/dataframe/inc/ROOT/RArrowDS.hxx index dc2006e94b4c9..4eb038be463af 100644 --- a/tree/dataframe/inc/ROOT/RArrowDS.hxx +++ b/tree/dataframe/inc/ROOT/RArrowDS.hxx @@ -32,7 +32,6 @@ private: std::shared_ptr fTable; std::vector> fEntryRanges; std::vector fColumnNames; - size_t fNSlots = 0U; std::vector> fGetterIndex; // (columnId, visitorId) std::vector> fValueGetters; // Visitors to be used to track and get entries. One per column. diff --git a/tree/dataframe/inc/ROOT/RCsvDS.hxx b/tree/dataframe/inc/ROOT/RCsvDS.hxx index 70e6056f088fd..b6195a7be9283 100644 --- a/tree/dataframe/inc/ROOT/RCsvDS.hxx +++ b/tree/dataframe/inc/ROOT/RCsvDS.hxx @@ -73,7 +73,6 @@ private: std::int64_t fDataLineNumber = 0; std::int64_t fLineNumber = 0; // used to skip the last lines std::int64_t fMaxLineNumber = -1; // set to non-negative if fOptions.fSkipLastNLines is set - unsigned int fNSlots = 0U; std::unique_ptr fCsvFile; ULong64_t fEntryRangesRequested = 0ULL; ULong64_t fProcessedLines = 0ULL; // marks the progress of the consumption of the csv lines diff --git a/tree/dataframe/inc/ROOT/RDF/RLazyDSImpl.hxx b/tree/dataframe/inc/ROOT/RDF/RLazyDSImpl.hxx index a6ccb1984e29e..ef82e737a6de6 100644 --- a/tree/dataframe/inc/ROOT/RDF/RLazyDSImpl.hxx +++ b/tree/dataframe/inc/ROOT/RDF/RLazyDSImpl.hxx @@ -51,7 +51,6 @@ class RLazyDS final : public ROOT::RDF::RDataSource { const PointerHolderPtrs_t fPointerHoldersModels; std::vector fPointerHolders; std::vector> fEntryRanges{}; - unsigned int fNSlots{0}; Record_t GetColumnReadersImpl(std::string_view colName, const std::type_info &id) final { diff --git a/tree/dataframe/inc/ROOT/RDataSource.hxx b/tree/dataframe/inc/ROOT/RDataSource.hxx index f45cb489b733a..b981d359fa81b 100644 --- a/tree/dataframe/inc/ROOT/RDataSource.hxx +++ b/tree/dataframe/inc/ROOT/RDataSource.hxx @@ -114,6 +114,8 @@ protected: virtual std::string AsString() { return "generic data source"; }; + unsigned int fNSlots{}; + public: RDataSource() = default; // Rule of five diff --git a/tree/dataframe/inc/ROOT/RNTupleDS.hxx b/tree/dataframe/inc/ROOT/RNTupleDS.hxx index 5b0d72da542d9..7af2d075cf94c 100644 --- a/tree/dataframe/inc/ROOT/RNTupleDS.hxx +++ b/tree/dataframe/inc/ROOT/RNTupleDS.hxx @@ -101,7 +101,6 @@ class RNTupleDS final : public ROOT::RDF::RDataSource { /// to new page sources when the files in the chain change. std::vector> fActiveColumnReaders; - unsigned int fNSlots = 0; ULong64_t fSeenEntries = 0; ///< The number of entries so far returned by GetEntryRanges() std::vector fCurrentRanges; ///< Basis for the ranges returned by the last GetEntryRanges() call std::vector fNextRanges; ///< Basis for the ranges populated by the PrepareNextRanges() call diff --git a/tree/dataframe/inc/ROOT/RRootDS.hxx b/tree/dataframe/inc/ROOT/RRootDS.hxx index c3adedfe4dd40..970296376e845 100644 --- a/tree/dataframe/inc/ROOT/RRootDS.hxx +++ b/tree/dataframe/inc/ROOT/RRootDS.hxx @@ -27,7 +27,6 @@ namespace RDF { /// It shows how to implement the RDataSource API for a complex kind of source such as TTrees. class RRootDS final : public ROOT::RDF::RDataSource { private: - unsigned int fNSlots = 0U; std::string fTreeName; std::string fFileNameGlob; mutable TChain fModelChain; // Mutable needed for getting the column type name diff --git a/tree/dataframe/inc/ROOT/RSqliteDS.hxx b/tree/dataframe/inc/ROOT/RSqliteDS.hxx index a095c61d63bb3..05c47ce841ef8 100644 --- a/tree/dataframe/inc/ROOT/RSqliteDS.hxx +++ b/tree/dataframe/inc/ROOT/RSqliteDS.hxx @@ -78,7 +78,6 @@ private: void SqliteError(int errcode); std::unique_ptr fDataSet; - unsigned int fNSlots; ULong64_t fNRow; std::vector fColumnNames; std::vector fColumnTypes; diff --git a/tree/dataframe/inc/ROOT/RTrivialDS.hxx b/tree/dataframe/inc/ROOT/RTrivialDS.hxx index 1f1f8344a1bdf..dfd32b6c6bcca 100644 --- a/tree/dataframe/inc/ROOT/RTrivialDS.hxx +++ b/tree/dataframe/inc/ROOT/RTrivialDS.hxx @@ -25,7 +25,6 @@ namespace RDF { /// it returns entries from GetEntryRanges forever or until a Range stops the event loop (for test purposes). class RTrivialDS final : public ROOT::RDF::RDataSource { private: - unsigned int fNSlots = 0U; ULong64_t fSize = 0ULL; bool fSkipEvenEntries = false; std::vector> fEntryRanges; diff --git a/tree/dataframe/inc/ROOT/RVecDS.hxx b/tree/dataframe/inc/ROOT/RVecDS.hxx index 2a0faca41929a..4f380547f2718 100644 --- a/tree/dataframe/inc/ROOT/RVecDS.hxx +++ b/tree/dataframe/inc/ROOT/RVecDS.hxx @@ -55,7 +55,6 @@ class RVecDS final : public ROOT::RDF::RDataSource { const PointerHolderPtrs_t fPointerHoldersModels; std::vector fPointerHolders; std::vector> fEntryRanges{}; - unsigned int fNSlots{0}; std::function fDeleteRVecs; Record_t GetColumnReadersImpl(std::string_view colName, const std::type_info &id) diff --git a/tree/dataframe/src/RSqliteDS.cxx b/tree/dataframe/src/RSqliteDS.cxx index 13d6d2ae107c6..d11be5e08f1dd 100644 --- a/tree/dataframe/src/RSqliteDS.cxx +++ b/tree/dataframe/src/RSqliteDS.cxx @@ -350,7 +350,7 @@ constexpr char const *RSqliteDS::fgTypeNames[]; /// /// The constructor opens the sqlite file, prepares the query engine and determines the column names and types. RSqliteDS::RSqliteDS(const std::string &fileName, const std::string &query) - : fDataSet(std::make_unique()), fNSlots(0), fNRow(0) + : fDataSet(std::make_unique()), fNRow(0) { static bool hasSqliteVfs = RegisterSqliteVfs(); if (!hasSqliteVfs) diff --git a/tree/dataframe/test/RStreamingDS.hxx b/tree/dataframe/test/RStreamingDS.hxx index b5cbfb43e6af0..6b99618b647e0 100644 --- a/tree/dataframe/test/RStreamingDS.hxx +++ b/tree/dataframe/test/RStreamingDS.hxx @@ -8,7 +8,6 @@ /// A RDataSource that provides multiple entry ranges class RStreamingDS final : public ROOT::RDF::RDataSource { - unsigned int fNSlots = 0u; unsigned int fCounter = 0u; const int fAns = 42; const int *fAnsPtr = &fAns;