11 #ifndef ROOT_RSQLITEDS
12 #define ROOT_RSQLITEDS
30 struct RSqliteDSDataSet;
53 class RSqliteDS final :
public ROOT::RDF::RDataSource {
68 explicit Value_t(ETypes type);
75 std::vector<unsigned char> fBlob;
80 void SqliteError(
int errcode);
82 std::unique_ptr<Internal::RSqliteDSDataSet> fDataSet;
85 std::vector<std::string> fColumnNames;
86 std::vector<ETypes> fColumnTypes;
88 std::vector<Value_t> fValues;
92 static constexpr
char const *fgTypeNames[] = {
96 "std::vector<unsigned char>",
102 RSqliteDS(
const std::string &fileName,
const std::string &query);
104 void SetNSlots(
unsigned int nSlots)
final;
105 const std::vector<std::string> &GetColumnNames() const final;
106 bool HasColumn(std::string_view colName) const final;
107 std::
string GetTypeName(std::string_view colName) const final;
108 std::vector<std::pair<ULong64_t, ULong64_t>> GetEntryRanges() final;
109 bool SetEntry(
unsigned int slot, ULong64_t entry) final;
110 void Initialise() final;
111 std::
string GetLabel() final;
114 Record_t GetColumnReadersImpl(std::string_view name, const std::type_info &) final;
117 RDataFrame MakeSqliteDataFrame(std::string_view fileName, std::string_view query);