53 VfsRootFile() =
default;
56 std::unique_ptr<ROOT::Internal::RRawFile> fRawFile;
65 VfsRootFile *
p =
reinterpret_cast<VfsRootFile *
>(pFile);
75 VfsRootFile *
p =
reinterpret_cast<VfsRootFile *
>(pFile);
105 VfsRootFile *
p =
reinterpret_cast<VfsRootFile *
>(pFile);
106 *
pSize =
p->fRawFile->GetSize();
183 VfsRootFile *
p =
new (pFile) VfsRootFile();
184 p->pFile.pMethods =
nullptr;
238 for (
int i = 0; i <
nBuf; ++i) {
277 *
prNow = i / 86400000.0;
291 vfs.szOsFile =
sizeof(VfsRootFile);
292 vfs.mxPathname = 2000;
332 : fType(
type), fIsActive(
false), fInteger(0), fReal(0.0), fText(), fBlob(), fNull(nullptr)
340 default:
throw std::runtime_error(
"Internal error");
353 :
fDataSet(std::make_unique<Internal::RSqliteDSDataSet>()),
fNRow(0)
357 throw std::runtime_error(
"Cannot register SQlite VFS in RSqliteDS");
385 for (
int i = 0; i <
colCount; ++i) {
406 throw std::runtime_error(
"Unexpected column decl type");
431 default:
throw std::runtime_error(
"Unhandled data type");
438RSqliteDS::~RSqliteDS()
451const std::vector<std::string> &RSqliteDS::GetColumnNames()
const
467std::vector<std::pair<ULong64_t, ULong64_t>> RSqliteDS::GetEntryRanges()
469 std::vector<std::pair<ULong64_t, ULong64_t>>
entryRanges;
486std::string RSqliteDS::GetTypeName(std::string_view
colName)
const
490 for (
unsigned i = 0; i <
N; ++i) {
495 throw std::runtime_error(
"Unknown column: " + std::string(
colName));
500bool RSqliteDS::HasColumn(std::string_view
colName)
const
507void RSqliteDS::Initialize()
512 throw std::runtime_error(
"SQlite error, reset");
515std::string RSqliteDS::GetLabel()
537 for (
unsigned i = 0; i <
N; ++i) {
561 default:
throw std::runtime_error(
"Unhandled column type");
569void RSqliteDS::SetNSlots(
unsigned int nSlots)
572 ::Warning(
"SetNSlots",
"Currently the SQlite data source faces performance degradation in multi-threaded mode. "
573 "Consider turning off IMT.");
582 std::string
errmsg =
"SQlite error: ";
583#if SQLITE_VERSION_NUMBER < 3007015
588 throw std::runtime_error(
errmsg);
595std::unique_ptr<ROOT::Detail::RDF::RColumnReaderBase>
600 throw std::runtime_error(
"Column \"" + std::string(
colName) +
"\" is not available in the SQLite table.");
609 throw std::runtime_error(
"The type selected for column \"" + std::string(
colName) +
615 return std::make_unique<ROOT::Internal::RDF::RSqliteDSColumnReader>(
fValues[
index].fPtr);
unsigned long long ULong64_t
Portable unsigned long integer 8 bytes.
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
void Warning(const char *location, const char *msgfmt,...)
Use this function in warning situations.
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h offset
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t index
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
R__EXTERN TRandom * gRandom
R__EXTERN TSystem * gSystem
static std::unique_ptr< RRawFile > Create(std::string_view url, ROptions options=ROptions())
Factory method that returns a suitable concrete implementation according to the transport in the url.
std::vector< void * > Record_t
static constexpr char const * fgTypeNames[]
Corresponds to the types defined in ETypes.
std::unique_ptr< ROOT::Detail::RDF::RColumnReaderBase > GetColumnReaders(unsigned int slot, std::string_view colName, const std::type_info &tid) final
If the other GetColumnReaders overload returns an empty vector, this overload will be called instead.
std::vector< std::string > fColumnNames
std::vector< ETypes > fColumnTypes
std::string GetTypeName(std::string_view colName) const final
Returns the C++ type for a given column name, implemented as a linear search through all the columns.
ETypes
All the types known to SQlite. Changes require changing fgTypeNames, too.
RSqliteDS(const std::string &fileName, const std::string &query)
Build the dataframe.
std::unique_ptr< Internal::RSqliteDSDataSet > fDataSet
void SqliteError(int errcode)
Helper function to throw an exception if there is a fatal sqlite error, e.g. an I/O error.
std::vector< Value_t > fValues
The data source is inherently single-threaded and returns only one row at a time. This vector holds t...
ROOT's RDataFrame offers a modern, high-level interface for analysis of data stored in TTree ,...
const_iterator begin() const
const_iterator end() const
virtual UInt_t Integer(UInt_t imax)
Returns a random integer uniformly distributed on the interval [ 0, imax-1 ].
virtual void Sleep(UInt_t milliSec)
Sleep milliSec milli seconds.
RDataFrame FromSqlite(std::string_view fileName, std::string_view query)
Factory method to create a SQlite RDataFrame.
Namespace for new ROOT classes and functions.
The state of an open dataset in terms of the sqlite3 C library.
void * fPtr
Points to one of the values; an address to this pointer is returned by GetColumnReadersImpl.
std::vector< unsigned char > fBlob