ROOT
6.07/01
Reference Guide
|
Access an SQL db via the TFile interface.
The main motivation for the TSQLFile development is to have "transparent" access to SQL data base via standard TFile interface. The main approach that each class (but not each object) has one or two tables with names like _vermaster and _rawmaster For example: TAxis_ver8 or TList_raw5 Second kind of tables appears, when some of class members can not be converted to normalized form or when class has custom streamer. For instance, for TH1 class two tables are required: TH1_ver4 and TH1_raw4 Most of memebers are stored in TH1_ver4 table columnwise, and only memeber: Double_t* fBuffer; //[fBufferSize] can not be represented as column while size of array is not known apriory. Therefore, fBuffer will be written as list of values in TH1_raw4 table. All objects, stored in the DB, will be registered in table "ObjectsTable". In this there are following columns:
Name | Description |
---|---|
"key:id" | key identifier to which belong object |
"obj:id" | object identifier |
"Class" | object class name |
"Version" | object class version |
Data in each "ObjectsTable" row uniqly identify, in which table and which column object is stored.
In normal situation all class data should be sorted columnwise. Up to now following member are supported:
All conversion to SQL statements are done with help of TSQLStructure class. This is special hierarchical structure wich internally is very similar to XML structures. TBufferSQL2 creates these structures, when object data is streamed by ROOT and only afterwards all SQL statements will be produced and applied all together. When data is reading, TBufferSQL2 will produce requests to database during unstreaming of object data. Optionally (default this options on) name of column includes suffix which indicates type of column. For instance:
Name | Description |
---|---|
*:parent | parent class, column contain class version |
*:object | other object, column contain object id |
*:rawdata | raw data, column contains id of raw data from streamer table |
*:Int_t | column with integer value |
Use TSQLFile::SetUseSuffixes(kFALSE) to disable suffixes usage. This and several other options can be changed only when TSQLFile created with options "CREATE" or "RECREATE" and only before first write operation. These options are:
Name | Description |
---|---|
SetUseSuffixes() | suffix usage in column names (default - on) |
SetArrayLimit() | defines maximum array size, which can has column for each element (default 21) |
SetTablesType() | table type name in MySQL database (default "InnoDB") |
SetUseIndexes() | usage of indexes in database (default kIndexesBasic) |
Normally these functions should be called immidiately after TSQLFile constructor. When objects data written to database, by default START TRANSACTION/COMMIT SQL commands are used before and after data storage. If TSQLFile detects any problems, ROLLBACK command will be used to restore previous state of data base. If transactions not supported by SQL server, they can be disabled by SetUseTransactions(kTransactionsOff). Or user can take responsibility to use transactions function to hime By default only indexes for basic tables are created. In most cases usage of indexes increase perfomance to data reading, but it also can increase time of writing data to database. There are several modes of index usage available in SetUseIndexes() method There is MakeSelectQuery(TClass*) method, which produces SELECT statement to get objects data of specified class. Difference from simple statement like: mysql> SELECT * FROM TH1I_ver1 that not only data for that class, but also data from parent classes will be extracted from other tables and combined in single result table. Such select query can be usufull for external access to objects data.
Up to now MySQL 4.1 and Oracle 9i were tested. Some extra work is required for other SQL databases. Hopefully, this should be straigthforward.
Known problems and open questions.
The "SQL I/O" package is currently under development. Any bug reports and suggestions are welcome. Author: S.Linev, GSI Darmstadt, S.Lin ev@g si.de
Definition at line 32 of file TSQLFile.h.
Public Types | |
enum | ETransactionKinds { kTransactionsOff = 0, kTransactionsAuto = 1, kTransactionsUser = 2 } |
enum | EIndexesKinds { kIndexesNone = 0, kIndexesBasic = 1, kIndexesClass = 2, kIndexesAll = 3 } |
Public Types inherited from TFile | |
enum | EAsyncOpenStatus { kAOSNotAsync = -1, kAOSFailure = 0, kAOSInProgress = 1, kAOSSuccess = 2 } |
Asynchronous open request status. More... | |
enum | EOpenTimeOut { kInstantTimeout = 0, kEternalTimeout = 999999999 } |
Open timeout constants. More... | |
enum | ECacheAction { kDisconnect = 0, kDoNotDisconnect = 1 } |
TTreeCache flushing semantics. More... | |
enum | EStatusBits { kRecovered = BIT(10), kHasReferences = BIT(11), kDevNull = BIT(12), kWriteError = BIT(14), kBinaryFile = BIT(15), kRedirected = BIT(16) } |
TFile status bits. BIT(13) is taken up by TObject. More... | |
enum | ERelativeTo { kBeg = 0, kCur = 1, kEnd = 2 } |
enum | { kStartBigFile = 2000000000 } |
enum | EFileType { kDefault = 0, kLocal = 1, kNet = 2, kWeb = 3, kFile = 4, kMerge = 5 } |
File type. More... | |
Public Types inherited from TDirectoryFile | |
enum | { kCloseDirectory = BIT(7) } |
Public Types inherited from TObject | |
enum | EStatusBits { kCanDelete = BIT(0), kMustCleanup = BIT(3), kObjInCanvas = BIT(3), kIsReferenced = BIT(4), kHasUUID = BIT(5), kCannotPick = BIT(6), kNoContextMenu = BIT(8), kInvalidObject = BIT(13) } |
enum | { kIsOnHeap = 0x01000000, kNotDeleted = 0x02000000, kZombie = 0x04000000, kBitMask = 0x00ffffff } |
enum | { kSingleKey = BIT(0), kOverwrite = BIT(1), kWriteDelete = BIT(2) } |
Public Member Functions | |||||||||||
TSQLFile () | |||||||||||
default TSQLFile constructor More... | |||||||||||
TSQLFile (const char *dbname, Option_t *option="read", const char *user="user", const char *pass="pass") | |||||||||||
Connects to SQL server with provided arguments. More... | |||||||||||
virtual | ~TSQLFile () | ||||||||||
destructor of TSQLFile object More... | |||||||||||
Bool_t | GetUseSuffixes () const | ||||||||||
void | SetUseSuffixes (Bool_t on=kTRUE) | ||||||||||
enable/disable uasge of suffixes in columns names can be changed before first object is saved into file More... | |||||||||||
Int_t | GetArrayLimit () const | ||||||||||
void | SetArrayLimit (Int_t limit=20) | ||||||||||
Defines maximum number of columns for array representation If array size bigger than limit, array data will be converted to raw format This is usefull to prevent tables with very big number of columns If limit==0, all arrays will be stored in raw format If limit<0, all array values will be stored in column form Default value is 21. More... | |||||||||||
void | SkipArrayLimit () | ||||||||||
void | SetTablesType (const char *table_type) | ||||||||||
Defines tables type, which is used in CREATE TABLE statements Now is only used for MySQL database, where following types are supported: "BDB", "HEAP", "ISAM", "InnoDB", "MERGE", "MRG_MYISAM", "MYISAM" Default for TSQLFile is "InnoDB". More... | |||||||||||
const char * | GetTablesType () const | ||||||||||
void | SetUseTransactions (Int_t mode=kTransactionsAuto) | ||||||||||
Defines usage of transactions statements for writing objects data to database. More... | |||||||||||
Int_t | GetUseTransactions () const | ||||||||||
void | SetUseIndexes (Int_t use_type=kIndexesBasic) | ||||||||||
Specify usage of indexes for data tables
| |||||||||||
Int_t | GetUseIndexes () const | ||||||||||
Int_t | GetQuerisCounter () const | ||||||||||
TString | MakeSelectQuery (TClass *cl) | ||||||||||
Produce SELECT statement which can be used to get all data of class cl in one SELECT statement. More... | |||||||||||
Bool_t | StartTransaction () | ||||||||||
Start user transaction. More... | |||||||||||
Bool_t | Commit () | ||||||||||
Commit transaction, started by StartTransaction() call. More... | |||||||||||
Bool_t | Rollback () | ||||||||||
Rollback all operations, done after StartTransaction() call. More... | |||||||||||
void | StartLogFile (const char *fname) | ||||||||||
start logging of all SQL statements in specified file More... | |||||||||||
void | StopLogFile () | ||||||||||
close logging file More... | |||||||||||
virtual void | Close (Option_t *option="") | ||||||||||
Close a SQL file For more comments see TFile::Close() function. More... | |||||||||||
virtual TKey * | CreateKey (TDirectory *mother, const TObject *obj, const char *name, Int_t bufsize) | ||||||||||
create SQL key, which will store object in data base More... | |||||||||||
virtual TKey * | CreateKey (TDirectory *mother, const void *obj, const TClass *cl, const char *name, Int_t bufsize) | ||||||||||
create SQL key, which will store object in data base More... | |||||||||||
virtual void | DrawMap (const char *="*", Option_t *="") | ||||||||||
Draw map of objects in this file. More... | |||||||||||
virtual void | FillBuffer (char *&) | ||||||||||
Encode file output buffer. More... | |||||||||||
virtual void | Flush () | ||||||||||
Synchronize a file's in-memory and on-disk states. More... | |||||||||||
virtual Long64_t | GetEND () const | ||||||||||
virtual Int_t | GetErrno () const | ||||||||||
Method returning errno. Is overriden in TRFIOFile. More... | |||||||||||
virtual void | ResetErrno () const | ||||||||||
Method resetting the errno. Is overridden in TRFIOFile. More... | |||||||||||
const char * | GetDataBaseName () const | ||||||||||
Return name of data base on the host For Oracle always return 0. More... | |||||||||||
virtual Int_t | GetNfree () const | ||||||||||
virtual Int_t | GetNbytesInfo () const | ||||||||||
virtual Int_t | GetNbytesFree () const | ||||||||||
virtual Long64_t | GetSeekFree () const | ||||||||||
virtual Long64_t | GetSeekInfo () const | ||||||||||
virtual Long64_t | GetSize () const | ||||||||||
Returns the current file size. More... | |||||||||||
virtual TList * | GetStreamerInfoList () | ||||||||||
Read back streamer infos from database List of streamer infos is always stored with key:id 0, which is not shown in normal keys list. More... | |||||||||||
Bool_t | IsMySQL () const | ||||||||||
checks, if MySQL database More... | |||||||||||
virtual Bool_t | IsOpen () const | ||||||||||
return kTRUE if file is opened and can be accessed More... | |||||||||||
Bool_t | IsOracle () const | ||||||||||
checks, if Oracle database More... | |||||||||||
Bool_t | IsODBC () const | ||||||||||
checks, if ODBC driver used for database connection More... | |||||||||||
virtual void | MakeFree (Long64_t, Long64_t) | ||||||||||
Mark unused bytes on the file. More... | |||||||||||
virtual void | MakeProject (const char *, const char *="*", Option_t *="new") | ||||||||||
Generate source code necessary to access the objects stored in the file. More... | |||||||||||
virtual void | Map () | ||||||||||
List the contents of a file sequentially. More... | |||||||||||
virtual void | Paint (Option_t *="") | ||||||||||
Paint all objects in the file. More... | |||||||||||
virtual void | Print (Option_t *="") const | ||||||||||
Print all objects in the file. More... | |||||||||||
virtual Bool_t | ReadBuffer (char *, Int_t) | ||||||||||
Read a buffer from the file. More... | |||||||||||
virtual Bool_t | ReadBuffer (char *, Long64_t, Int_t) | ||||||||||
Read a buffer from the file at the offset 'pos' in the file. More... | |||||||||||
virtual void | ReadFree () | ||||||||||
Read the FREE linked list. More... | |||||||||||
virtual Int_t | Recover () | ||||||||||
Attempt to recover file if not correctly closed. More... | |||||||||||
virtual Int_t | ReOpen (Option_t *mode) | ||||||||||
Reopen a file with a different access mode, like from READ to See TFile::Open() for details. More... | |||||||||||
virtual void | Seek (Long64_t, ERelativeTo=kBeg) | ||||||||||
Seek to a specific position in the file. Pos it either kBeg, kCur or kEnd. More... | |||||||||||
virtual void | SetEND (Long64_t) | ||||||||||
virtual Int_t | Sizeof () const | ||||||||||
Return the size in bytes of the file header. More... | |||||||||||
virtual Bool_t | WriteBuffer (const char *, Int_t) | ||||||||||
Write a buffer to the file. More... | |||||||||||
virtual Int_t | Write (const char *=0, Int_t=0, Int_t=0) | ||||||||||
Write memory objects to this file. More... | |||||||||||
virtual Int_t | Write (const char *=0, Int_t=0, Int_t=0) const | ||||||||||
One can not save a const TDirectory object. More... | |||||||||||
virtual void | WriteFree () | ||||||||||
Write FREE linked list on the file. More... | |||||||||||
virtual void | WriteHeader () | ||||||||||
Write file info like configurations, title, UUID and other. More... | |||||||||||
virtual void | WriteStreamerInfo () | ||||||||||
Store all TVirtualStreamerInfo, used in file, in sql database. More... | |||||||||||
Public Member Functions inherited from TFile | |||||||||||
TFile () | |||||||||||
File default Constructor. More... | |||||||||||
TFile (const char *fname, Option_t *option="", const char *ftitle="", Int_t compress=1) | |||||||||||
Opens or creates a local ROOT file. More... | |||||||||||
virtual | ~TFile () | ||||||||||
File destructor. More... | |||||||||||
virtual void | Copy (TObject &) const | ||||||||||
Copy this to obj. More... | |||||||||||
virtual Bool_t | Cp (const char *dst, Bool_t progressbar=kTRUE, UInt_t buffersize=1000000) | ||||||||||
Allows to copy this file to the dst URL. More... | |||||||||||
virtual void | Delete (const char *namecycle="") | ||||||||||
Delete object namecycle. More... | |||||||||||
virtual void | Draw (Option_t *option="") | ||||||||||
Fill Graphics Structure and Paint. More... | |||||||||||
TArchiveFile * | GetArchive () const | ||||||||||
Long64_t | GetArchiveOffset () const | ||||||||||
Int_t | GetBestBuffer () const | ||||||||||
Return the best buffer size of objects on this file. More... | |||||||||||
virtual Int_t | GetBytesToPrefetch () const | ||||||||||
Max number of bytes to prefetch. More... | |||||||||||
TFileCacheRead * | GetCacheRead (TObject *tree=0) const | ||||||||||
Return a pointer to the current read cache. More... | |||||||||||
TFileCacheWrite * | GetCacheWrite () const | ||||||||||
Return a pointer to the current write cache. More... | |||||||||||
TArrayC * | GetClassIndex () const | ||||||||||
Int_t | GetCompressionAlgorithm () const | ||||||||||
Int_t | GetCompressionLevel () const | ||||||||||
Int_t | GetCompressionSettings () const | ||||||||||
Float_t | GetCompressionFactor () | ||||||||||
Return the file compression factor. More... | |||||||||||
Int_t | GetFd () const | ||||||||||
virtual const TUrl * | GetEndpointUrl () const | ||||||||||
TObjArray * | GetListOfProcessIDs () const | ||||||||||
TList * | GetListOfFree () const | ||||||||||
virtual Int_t | GetNProcessIDs () const | ||||||||||
Option_t * | GetOption () const | ||||||||||
virtual Long64_t | GetBytesRead () const | ||||||||||
virtual Long64_t | GetBytesReadExtra () const | ||||||||||
virtual Long64_t | GetBytesWritten () const | ||||||||||
Return the total number of bytes written so far to the file. More... | |||||||||||
virtual Int_t | GetReadCalls () const | ||||||||||
Int_t | GetVersion () const | ||||||||||
Int_t | GetRecordHeader (char *buf, Long64_t first, Int_t maxbytes, Int_t &nbytes, Int_t &objlen, Int_t &keylen) | ||||||||||
Read the logical record header starting at a certain postion. More... | |||||||||||
virtual TString | GetNewUrl () | ||||||||||
Long64_t | GetRelOffset () const | ||||||||||
const TList * | GetStreamerInfoCache () | ||||||||||
Returns the cached list of StreamerInfos used in this file. More... | |||||||||||
virtual void | IncrementProcessIDs () | ||||||||||
virtual Bool_t | IsArchive () const | ||||||||||
Bool_t | IsBinary () const | ||||||||||
Bool_t | IsRaw () const | ||||||||||
virtual void | ls (Option_t *option="") const | ||||||||||
List file contents. More... | |||||||||||
virtual Bool_t | Matches (const char *name) | ||||||||||
Return kTRUE if 'url' matches the coordinates of this file. More... | |||||||||||
virtual Bool_t | MustFlush () const | ||||||||||
virtual Bool_t | ReadBufferAsync (Long64_t offs, Int_t len) | ||||||||||
virtual Bool_t | ReadBuffers (char *buf, Long64_t *pos, Int_t *len, Int_t nbuf) | ||||||||||
Read the nbuf blocks described in arrays pos and len. More... | |||||||||||
virtual TProcessID * | ReadProcessID (UShort_t pidf) | ||||||||||
The TProcessID with number pidf is read from this file. More... | |||||||||||
virtual void | ReadStreamerInfo () | ||||||||||
Read the list of StreamerInfo from this file. More... | |||||||||||
virtual void | SetCacheRead (TFileCacheRead *cache, TObject *tree=0, ECacheAction action=kDisconnect) | ||||||||||
Set a pointer to the read cache. More... | |||||||||||
virtual void | SetCacheWrite (TFileCacheWrite *cache) | ||||||||||
Set a pointer to the write cache. More... | |||||||||||
virtual void | SetCompressionAlgorithm (Int_t algorithm=0) | ||||||||||
See comments for function SetCompressionSettings. More... | |||||||||||
virtual void | SetCompressionLevel (Int_t level=1) | ||||||||||
See comments for function SetCompressionSettings. More... | |||||||||||
virtual void | SetCompressionSettings (Int_t settings=1) | ||||||||||
Used to specify the compression level and algorithm. More... | |||||||||||
virtual void | SetOffset (Long64_t offset, ERelativeTo pos=kBeg) | ||||||||||
Set position from where to start reading. More... | |||||||||||
virtual void | SetOption (Option_t *option=">") | ||||||||||
virtual void | SetReadCalls (Int_t readcalls=0) | ||||||||||
virtual void | ShowStreamerInfo () | ||||||||||
Show the StreamerInfo of all classes written to this file. More... | |||||||||||
void | SumBuffer (Int_t bufsize) | ||||||||||
Increment statistics for buffer sizes of objects in this file. More... | |||||||||||
virtual UShort_t | WriteProcessID (TProcessID *pid) | ||||||||||
Check if the ProcessID pidd is already in the file, if not, add it and return the index number in the local file list. More... | |||||||||||
Public Member Functions inherited from TDirectoryFile | |||||||||||
TDirectoryFile () | |||||||||||
TDirectoryFile (const char *name, const char *title, Option_t *option="", TDirectory *motherDir=0) | |||||||||||
Create a new TDirectoryFile. More... | |||||||||||
virtual | ~TDirectoryFile () | ||||||||||
Destructor. More... | |||||||||||
virtual void | Append (TObject *obj, Bool_t replace=kFALSE) | ||||||||||
Append object to this directory. More... | |||||||||||
void | Add (TObject *obj, Bool_t replace=kFALSE) | ||||||||||
Int_t | AppendKey (TKey *key) | ||||||||||
Insert key in the linked list of keys of this directory. More... | |||||||||||
virtual void | Browse (TBrowser *b) | ||||||||||
Browse the content of the directory. More... | |||||||||||
void | Build (TFile *motherFile=0, TDirectory *motherDir=0) | ||||||||||
Initialise directory to defaults. More... | |||||||||||
virtual TObject * | CloneObject (const TObject *obj, Bool_t autoadd=kTRUE) | ||||||||||
Make a clone of an object using the Streamer facility. More... | |||||||||||
virtual Bool_t | cd (const char *path=0) | ||||||||||
Change current directory to "this" directory. More... | |||||||||||
virtual TKey * | FindKey (const char *keyname) const | ||||||||||
Find key with name keyname in the current directory. More... | |||||||||||
virtual TKey * | FindKeyAny (const char *keyname) const | ||||||||||
Find key with name keyname in the current directory or its subdirectories. More... | |||||||||||
virtual TObject * | FindObjectAny (const char *name) const | ||||||||||
Find object by name in the list of memory objects of the current directory or its sub-directories. More... | |||||||||||
virtual TObject * | FindObjectAnyFile (const char *name) const | ||||||||||
Scan the memory lists of all files for an object with name. More... | |||||||||||
virtual TObject * | Get (const char *namecycle) | ||||||||||
Return pointer to object identified by namecycle. More... | |||||||||||
virtual TDirectory * | GetDirectory (const char *apath, Bool_t printError=false, const char *funcname="GetDirectory") | ||||||||||
Find a directory named "apath". More... | |||||||||||
template<class T > | |||||||||||
void | GetObject (const char *namecycle, T *&ptr) | ||||||||||
virtual void * | GetObjectChecked (const char *namecycle, const char *classname) | ||||||||||
See documentation of TDirectoryFile::GetObjectCheck(const char *namecycle, const TClass *cl) More... | |||||||||||
virtual void * | GetObjectChecked (const char *namecycle, const TClass *cl) | ||||||||||
Return pointer to object identified by namecycle if and only if the actual object is a type suitable to be stored as a pointer to a "expectedClass" If expectedClass is null, no check is performed. More... | |||||||||||
virtual void * | GetObjectUnchecked (const char *namecycle) | ||||||||||
Return pointer to object identified by namecycle. More... | |||||||||||
virtual Int_t | GetBufferSize () const | ||||||||||
Return the buffer size to create new TKeys. More... | |||||||||||
const TDatime & | GetCreationDate () const | ||||||||||
virtual TFile * | GetFile () const | ||||||||||
virtual TKey * | GetKey (const char *name, Short_t cycle=9999) const | ||||||||||
Return pointer to key with name,cycle. More... | |||||||||||
virtual TList * | GetListOfKeys () const | ||||||||||
const TDatime & | GetModificationDate () const | ||||||||||
virtual Int_t | GetNbytesKeys () const | ||||||||||
virtual Int_t | GetNkeys () const | ||||||||||
virtual Long64_t | GetSeekDir () const | ||||||||||
virtual Long64_t | GetSeekParent () const | ||||||||||
virtual Long64_t | GetSeekKeys () const | ||||||||||
Bool_t | IsModified () const | ||||||||||
Bool_t | IsWritable () const | ||||||||||
virtual TDirectory * | mkdir (const char *name, const char *title="") | ||||||||||
Create a sub-directory and return a pointer to the created directory. More... | |||||||||||
virtual TFile * | OpenFile (const char *name, Option_t *option="", const char *ftitle="", Int_t compress=1, Int_t netopt=0) | ||||||||||
Interface to TFile::Open. More... | |||||||||||
virtual void | Purge (Short_t nkeep=1) | ||||||||||
Purge lowest key cycles in a directory. More... | |||||||||||
virtual void | ReadAll (Option_t *option="") | ||||||||||
Read objects from a ROOT file directory into memory. More... | |||||||||||
virtual Int_t | ReadKeys (Bool_t forceRead=kTRUE) | ||||||||||
Read the linked list of keys. More... | |||||||||||
virtual Int_t | ReadTObject (TObject *obj, const char *keyname) | ||||||||||
Read object with keyname from the current directory. More... | |||||||||||
virtual void | ResetAfterMerge (TFileMergeInfo *) | ||||||||||
Reset the TDirectory after its content has been merged into another Directory. More... | |||||||||||
virtual void | rmdir (const char *name) | ||||||||||
Removes subdirectory from the directory. More... | |||||||||||
virtual void | Save () | ||||||||||
Save recursively all directory keys and headers. More... | |||||||||||
virtual void | SaveSelf (Bool_t force=kFALSE) | ||||||||||
Save Directory keys and header. More... | |||||||||||
virtual Int_t | SaveObjectAs (const TObject *obj, const char *filename="", Option_t *option="") const | ||||||||||
Save object in filename. More... | |||||||||||
virtual void | SetBufferSize (Int_t bufsize) | ||||||||||
Set the default buffer size when creating new TKeys. More... | |||||||||||
void | SetModified () | ||||||||||
void | SetSeekDir (Long64_t v) | ||||||||||
virtual void | SetTRefAction (TObject *ref, TObject *parent) | ||||||||||
Find the action to be executed in the dictionary of the parent class and store the corresponding exec number into fBits. More... | |||||||||||
void | SetWritable (Bool_t writable=kTRUE) | ||||||||||
Set the new value of fWritable recursively. More... | |||||||||||
virtual Int_t | WriteTObject (const TObject *obj, const char *name=0, Option_t *option="", Int_t bufsize=0) | ||||||||||
Write object obj to this directory. More... | |||||||||||
virtual Int_t | WriteObjectAny (const void *obj, const char *classname, const char *name, Option_t *option="", Int_t bufsize=0) | ||||||||||
Write object from pointer of class classname in this directory. More... | |||||||||||
virtual Int_t | WriteObjectAny (const void *obj, const TClass *cl, const char *name, Option_t *option="", Int_t bufsize=0) | ||||||||||
Write object of class with dictionary cl in this directory. More... | |||||||||||
virtual void | WriteDirHeader () | ||||||||||
Overwrite the Directory header record. More... | |||||||||||
virtual void | WriteKeys () | ||||||||||
Write Keys linked list on the file. More... | |||||||||||
Public Member Functions inherited from TDirectory | |||||||||||
TDirectory () | |||||||||||
TDirectory (const char *name, const char *title, Option_t *option="", TDirectory *motherDir=0) | |||||||||||
Create a new Directory. More... | |||||||||||
virtual | ~TDirectory () | ||||||||||
Destructor. More... | |||||||||||
virtual void | Clear (Option_t *option="") | ||||||||||
Delete all objects from a Directory list. More... | |||||||||||
virtual void | DeleteAll (Option_t *option="") | ||||||||||
Delete all objects from memory. More... | |||||||||||
virtual TObject * | FindObject (const char *name) const | ||||||||||
Find object by name in the list of memory objects. More... | |||||||||||
virtual TObject * | FindObject (const TObject *obj) const | ||||||||||
Find object in the list of memory objects. More... | |||||||||||
template<class T > | |||||||||||
void | GetObject (const char *namecycle, T *&ptr) | ||||||||||
virtual TList * | GetList () const | ||||||||||
virtual TObject * | GetMother () const | ||||||||||
virtual TDirectory * | GetMotherDir () const | ||||||||||
virtual const char * | GetPathStatic () const | ||||||||||
Returns the full path of the directory. More... | |||||||||||
virtual const char * | GetPath () const | ||||||||||
Returns the full path of the directory. More... | |||||||||||
TUUID | GetUUID () const | ||||||||||
virtual Bool_t | IsFolder () const | ||||||||||
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). More... | |||||||||||
virtual void | pwd () const | ||||||||||
Print the path of the directory. More... | |||||||||||
virtual TObject * | Remove (TObject *) | ||||||||||
Remove an object from the in-memory list. More... | |||||||||||
virtual void | RecursiveRemove (TObject *obj) | ||||||||||
Recursively remove object from a Directory. More... | |||||||||||
virtual void | SetMother (TObject *mother) | ||||||||||
virtual void | SetName (const char *newname) | ||||||||||
Set the name for directory If the directory name is changed after the directory was written once, ROOT currently would NOT change the name of correspondent key in the mother directory. More... | |||||||||||
template<class T > | |||||||||||
Int_t | WriteObject (const T *obj, const char *name, Option_t *option="", Int_t bufsize=0) | ||||||||||
Public Member Functions inherited from TNamed | |||||||||||
TNamed () | |||||||||||
TNamed (const char *name, const char *title) | |||||||||||
TNamed (const TString &name, const TString &title) | |||||||||||
TNamed (const TNamed &named) | |||||||||||
TNamed & | operator= (const TNamed &rhs) | ||||||||||
TNamed assignment operator. More... | |||||||||||
virtual | ~TNamed () | ||||||||||
virtual TObject * | Clone (const char *newname="") const | ||||||||||
Make a clone of an object using the Streamer facility. More... | |||||||||||
virtual Int_t | Compare (const TObject *obj) const | ||||||||||
Compare two TNamed objects. More... | |||||||||||
virtual const char * | GetName () const | ||||||||||
Returns name of object. More... | |||||||||||
virtual const char * | GetTitle () const | ||||||||||
Returns title of object. More... | |||||||||||
virtual ULong_t | Hash () const | ||||||||||
Return hash value for this object. More... | |||||||||||
virtual Bool_t | IsSortable () const | ||||||||||
virtual void | SetNameTitle (const char *name, const char *title) | ||||||||||
Change (i.e. set) all the TNamed parameters (name and title). More... | |||||||||||
virtual void | SetTitle (const char *title="") | ||||||||||
Change (i.e. set) the title of the TNamed. More... | |||||||||||
Public Member Functions inherited from TObject | |||||||||||
TObject () | |||||||||||
TObject (const TObject &object) | |||||||||||
TObject copy ctor. More... | |||||||||||
TObject & | operator= (const TObject &rhs) | ||||||||||
TObject assignment operator. More... | |||||||||||
virtual | ~TObject () | ||||||||||
TObject destructor. More... | |||||||||||
virtual void | AppendPad (Option_t *option="") | ||||||||||
Append graphics object to current pad. More... | |||||||||||
virtual const char * | ClassName () const | ||||||||||
Returns name of class to which the object belongs. More... | |||||||||||
virtual Int_t | DistancetoPrimitive (Int_t px, Int_t py) | ||||||||||
Computes distance from point (px,py) to the object. More... | |||||||||||
virtual void | DrawClass () const | ||||||||||
Draw class inheritance tree of the class to which this object belongs. More... | |||||||||||
virtual TObject * | DrawClone (Option_t *option="") const | ||||||||||
Draw a clone of this object in the current pad. More... | |||||||||||
virtual void | Dump () const | ||||||||||
Dump contents of object on stdout. More... | |||||||||||
virtual void | Execute (const char *method, const char *params, Int_t *error=0) | ||||||||||
Execute method on this object with the given parameter string, e.g. More... | |||||||||||
virtual void | Execute (TMethod *method, TObjArray *params, Int_t *error=0) | ||||||||||
Execute method on this object with parameters stored in the TObjArray. More... | |||||||||||
virtual void | ExecuteEvent (Int_t event, Int_t px, Int_t py) | ||||||||||
Execute action corresponding to an event at (px,py). More... | |||||||||||
virtual Option_t * | GetDrawOption () const | ||||||||||
Get option used by the graphics system to draw this object. More... | |||||||||||
virtual UInt_t | GetUniqueID () const | ||||||||||
Return the unique object id. More... | |||||||||||
virtual const char * | GetIconName () const | ||||||||||
Returns mime type name of object. More... | |||||||||||
virtual char * | GetObjectInfo (Int_t px, Int_t py) const | ||||||||||
Returns string containing info about the object at position (px,py). More... | |||||||||||
virtual Bool_t | HandleTimer (TTimer *timer) | ||||||||||
Execute action in response of a timer timing out. More... | |||||||||||
virtual Bool_t | InheritsFrom (const char *classname) const | ||||||||||
Returns kTRUE if object inherits from class "classname". More... | |||||||||||
virtual Bool_t | InheritsFrom (const TClass *cl) const | ||||||||||
Returns kTRUE if object inherits from TClass cl. More... | |||||||||||
virtual void | Inspect () const | ||||||||||
Dump contents of this object in a graphics canvas. More... | |||||||||||
virtual Bool_t | IsEqual (const TObject *obj) const | ||||||||||
Default equal comparison (objects are equal if they have the same address in memory). More... | |||||||||||
Bool_t | IsOnHeap () const | ||||||||||
Bool_t | IsZombie () const | ||||||||||
virtual Bool_t | Notify () | ||||||||||
This method must be overridden to handle object notification. More... | |||||||||||
virtual void | Pop () | ||||||||||
Pop on object drawn in a pad to the top of the display list. More... | |||||||||||
virtual Int_t | Read (const char *name) | ||||||||||
Read contents of object with specified name from the current directory. More... | |||||||||||
virtual void | SaveAs (const char *filename="", Option_t *option="") const | ||||||||||
Save this object in the file specified by filename. More... | |||||||||||
virtual void | SavePrimitive (std::ostream &out, Option_t *option="") | ||||||||||
Save a primitive as a C++ statement(s) on output stream "out". More... | |||||||||||
virtual void | SetDrawOption (Option_t *option="") | ||||||||||
Set drawing option for object. More... | |||||||||||
virtual void | SetUniqueID (UInt_t uid) | ||||||||||
Set the unique object id. More... | |||||||||||
virtual void | UseCurrentStyle () | ||||||||||
Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. More... | |||||||||||
void * | operator new (size_t sz) | ||||||||||
void * | operator new[] (size_t sz) | ||||||||||
void * | operator new (size_t sz, void *vp) | ||||||||||
void * | operator new[] (size_t sz, void *vp) | ||||||||||
void | operator delete (void *ptr) | ||||||||||
Operator delete. More... | |||||||||||
void | operator delete[] (void *ptr) | ||||||||||
Operator delete []. More... | |||||||||||
void | SetBit (UInt_t f, Bool_t set) | ||||||||||
Set or unset the user status bits as specified in f. More... | |||||||||||
void | SetBit (UInt_t f) | ||||||||||
void | ResetBit (UInt_t f) | ||||||||||
Bool_t | TestBit (UInt_t f) const | ||||||||||
Int_t | TestBits (UInt_t f) const | ||||||||||
void | InvertBit (UInt_t f) | ||||||||||
virtual void | Info (const char *method, const char *msgfmt,...) const | ||||||||||
Issue info message. More... | |||||||||||
virtual void | Warning (const char *method, const char *msgfmt,...) const | ||||||||||
Issue warning message. More... | |||||||||||
virtual void | Error (const char *method, const char *msgfmt,...) const | ||||||||||
Issue error message. More... | |||||||||||
virtual void | SysError (const char *method, const char *msgfmt,...) const | ||||||||||
Issue system error message. More... | |||||||||||
virtual void | Fatal (const char *method, const char *msgfmt,...) const | ||||||||||
Issue fatal error message. More... | |||||||||||
void | AbstractMethod (const char *method) const | ||||||||||
Use this method to implement an "abstract" method that you don't want to leave purely abstract. More... | |||||||||||
void | MayNotUse (const char *method) const | ||||||||||
Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary). More... | |||||||||||
void | Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const | ||||||||||
Use this method to declare a method obsolete. More... | |||||||||||
Protected Types | |
enum | ELockingKinds { kLockFree = 0, kLockBusy = 1 } |
Protected Member Functions | |
virtual Int_t | SysOpen (const char *, Int_t, UInt_t) |
Interface to system open. All arguments like in POSIX open(). More... | |
virtual Int_t | SysClose (Int_t) |
Interface to system close. All arguments like in POSIX close(). More... | |
virtual Int_t | SysRead (Int_t, void *, Int_t) |
Interface to system read. All arguments like in POSIX read(). More... | |
virtual Int_t | SysWrite (Int_t, const void *, Int_t) |
Interface to system write. All arguments like in POSIX write(). More... | |
virtual Long64_t | SysSeek (Int_t, Long64_t, Int_t) |
Interface to system lseek. More... | |
virtual Int_t | SysStat (Int_t, Long_t *, Long64_t *, Long_t *, Long_t *) |
Return file stat information. More... | |
virtual Int_t | SysSync (Int_t) |
Interface to system fsync. All arguments like in POSIX fsync(). More... | |
virtual Long64_t | DirCreateEntry (TDirectory *) |
Create entry for directory in database. More... | |
virtual Int_t | DirReadKeys (TDirectory *) |
Read directory list of keys from database. More... | |
virtual void | DirWriteKeys (TDirectory *) |
Write directory keys list to database. More... | |
virtual void | DirWriteHeader (TDirectory *) |
Update dir header in the file. More... | |
void | SaveToDatabase () |
save data which is not yet in Database Typically this is streamerinfos structures or More... | |
Bool_t | ReadConfigurations () |
read table configurations as special table More... | |
Bool_t | IsTablesExists () |
Checks if main keys table is existing. More... | |
void | InitSqlDatabase (Bool_t create) |
initialize sql database and correspondent structures identical to TFile::Init() function More... | |
void | CreateBasicTables () |
Creates initial tables in database This is table with configurations and table with keys Function called once when first object is stored to the file. More... | |
void | IncrementModifyCounter () |
Update value of modify counter in config table Modify counter used to indicate that something was changed in database. More... | |
void | SetLocking (Int_t mode) |
Set locking mode for current database. More... | |
Int_t | GetLocking () |
Return current locking mode for that file. More... | |
Bool_t | IsWriteAccess () |
Checkis, if lock is free in configuration tables. More... | |
Bool_t | IsReadAccess () |
dummy, in future should check about read access to database More... | |
TSQLResult * | SQLQuery (const char *cmd, Int_t flag=0, Bool_t *res=0) |
Submits query to SQL server. More... | |
Bool_t | SQLCanStatement () |
Test if DB support statement and number of open statements is not exceeded. More... | |
TSQLStatement * | SQLStatement (const char *cmd, Int_t bufsize=1000) |
Produces SQL statement for currently conected DB server. More... | |
void | SQLDeleteStatement (TSQLStatement *stmt) |
delete statement and decrease counter More... | |
Bool_t | SQLApplyCommands (TObjArray *cmds) |
supplies set of commands to server Commands is stored as array of TObjString More... | |
Bool_t | SQLTestTable (const char *tablename) |
Test, if table of specified name exists. More... | |
Long64_t | SQLMaximumValue (const char *tablename, const char *columnname) |
Returns maximum value, found in specified columnname of table tablename Column type should be numeric. More... | |
void | SQLDeleteAllTables () |
Delete all tables in database. More... | |
Bool_t | SQLStartTransaction () |
Start SQL transaction. More... | |
Bool_t | SQLCommit () |
Commit SQL transaction. More... | |
Bool_t | SQLRollback () |
Rollback all SQL operations, done after start transaction. More... | |
Int_t | SQLMaxIdentifierLength () |
returns maximum allowed length of identifiers More... | |
void | DeleteKeyFromDB (Long64_t keyid) |
Remove key with specified id from keys table also removes all objects data, related to this table. More... | |
Bool_t | WriteKeyData (TKeySQL *key) |
Add entry into keys table. More... | |
Bool_t | UpdateKeyData (TKeySQL *key) |
Updates (overwrites) key data in KeysTable. More... | |
TKeySQL * | FindSQLKey (TDirectory *dir, Long64_t keyid) |
Search for TKeySQL object with specified keyid. More... | |
Long64_t | DefineNextKeyId () |
Returns next possible key identifier. More... | |
Int_t | StreamKeysForDirectory (TDirectory *dir, Bool_t doupdate, Long64_t specialkeyid=-1, TKeySQL **specialkey=0) |
read keys for specified directory (when update == kFALSE) or update value for modified keys when update == kTRUE Returns number of successfully read keys or -1 if error More... | |
TSQLClassInfo * | FindSQLClassInfo (const char *clname, Int_t version) |
Return (if exists) TSQLClassInfo for specified class name and version. More... | |
TSQLClassInfo * | FindSQLClassInfo (const TClass *cl) |
return (if exists) TSQLClassInfo for specified class More... | |
TSQLClassInfo * | RequestSQLClassInfo (const char *clname, Int_t version) |
Search in database tables for specified class and return TSQLClassInfo object. More... | |
TSQLClassInfo * | RequestSQLClassInfo (const TClass *cl) |
Search in database tables for specified class and return TSQLClassInfo object. More... | |
Bool_t | CreateClassTable (TSQLClassInfo *sqlinfo, TObjArray *colinfos) |
Create normal class table if required. More... | |
Bool_t | CreateRawTable (TSQLClassInfo *sqlinfo) |
Create the raw table. More... | |
Bool_t | ProduceClassSelectQuery (TVirtualStreamerInfo *info, TSQLClassInfo *sqlinfo, TString &columns, TString &tables, Int_t &tablecnt) |
used by MakeClassSelectQuery method to add columns from table of class, specified by TVirtualStreamerInfo structure More... | |
void | AddIdEntry (Long64_t tableid, Int_t subid, Int_t type, const char *name, const char *sqlname, const char *info) |
Add entry into IdsTable, where all tables names and columns names are listed. More... | |
void | ReadSQLClassInfos () |
Read all class infos from IdsTable. More... | |
TString | DefineTableName (const char *clname, Int_t version, Bool_t rawtable) |
Proposes table name for class. More... | |
Bool_t | HasTable (const char *name) |
Test if table name exists. More... | |
TString | CodeLongString (Long64_t objid, Int_t strid) |
Produces id which will be placed in column instead of string itself. More... | |
Int_t | IsLongStringCode (Long64_t objid, const char *value) |
Checks if this is long string code returns 0, if not or string id. More... | |
Bool_t | VerifyLongStringTable () |
Checks that table for big strings is exists If not, will be created. More... | |
Bool_t | GetLongString (Long64_t objid, Int_t strid, TString &value) |
Returns value of string, extracted from special table, where long strings are stored. More... | |
Long64_t | VerifyObjectTable () |
Checks that objects table is exists If not, table will be created Returns maximum value for existing objects id. More... | |
Bool_t | SQLObjectInfo (Long64_t objid, TString &clname, Version_t &version) |
Read from objects table data for specified objectid. More... | |
TObjArray * | SQLObjectsInfo (Long64_t keyid) |
Produce array of TSQLObjectInfo objects for all objects, belong to that key Array should be deleted by calling function afterwards. More... | |
TSQLResult * | GetNormalClassData (Long64_t objid, TSQLClassInfo *sqlinfo) |
Method return request result for specified objid from normal classtable. More... | |
TSQLResult * | GetNormalClassDataAll (Long64_t minobjid, Long64_t maxobjid, TSQLClassInfo *sqlinfo) |
Return data for several objects from the range from normal class table. More... | |
TSQLResult * | GetBlobClassData (Long64_t objid, TSQLClassInfo *sqlinfo) |
Method return request results for specified objid from streamer classtable. More... | |
TSQLStatement * | GetBlobClassDataStmt (Long64_t objid, TSQLClassInfo *sqlinfo) |
Method return request results for specified objid from streamer classtable Data returned in form of statement, where direct access to values are possible. More... | |
Long64_t | StoreObjectInTables (Long64_t keyid, const void *obj, const TClass *cl) |
Store object in database. Return stored object id or -1 if error. More... | |
Bool_t | WriteSpecialObject (Long64_t keyid, TObject *obj, const char *name, const char *title) |
write special kind of object like streamer infos or file itself keys for that objects should exist in tables but not indicated in list of keys, therefore users can not get them with TDirectoryFile::Get() method More... | |
TObject * | ReadSpecialObject (Long64_t keyid, TObject *obj=0) |
Read data of special kind of objects. More... | |
const char * | SQLCompatibleType (Int_t typ) const |
Returns sql type name which is most closer to ROOT basic type. More... | |
const char * | SQLIntType () const |
return SQL integer type More... | |
const char * | SQLSmallTextType () const |
Int_t | SQLSmallTextTypeLimit () const |
const char * | SQLBigTextType () const |
const char * | SQLDatetimeType () const |
const char * | SQLIdentifierQuote () const |
const char * | SQLDirIdColumn () const |
const char * | SQLKeyIdColumn () const |
const char * | SQLObjectIdColumn () const |
const char * | SQLRawIdColumn () const |
const char * | SQLStrIdColumn () const |
const char * | SQLNameSeparator () const |
const char * | SQLValueQuote () const |
const char * | SQLDefaultTableType () const |
Protected Member Functions inherited from TFile | |
virtual EAsyncOpenStatus | GetAsyncOpenStatus () |
virtual void | Init (Bool_t create) |
Initialize a TFile object. More... | |
Bool_t | FlushWriteCache () |
Flush the write cache if active. More... | |
Int_t | ReadBufferViaCache (char *buf, Int_t len) |
Read buffer via cache. More... | |
Int_t | WriteBufferViaCache (const char *buf, Int_t len) |
Write buffer via cache. More... | |
Int_t | MakeProjectParMake (const char *packname, const char *filename) |
Create makefile at 'filemake' for PAR package 'pack'. More... | |
Int_t | MakeProjectParProofInf (const char *packname, const char *proofinfdir) |
Create BUILD.sh and SETUP.C under 'proofinf' for PAR package 'pack'. More... | |
Protected Member Functions inherited from TDirectoryFile | |
virtual void | CleanTargets () |
Clean the pointers to this object (gDirectory, TContext, etc.) More... | |
void | Init (TClass *cl=0) |
Initialize the key associated with this directory (and the related data members. More... | |
Protected Member Functions inherited from TDirectory | |
Bool_t | cd1 (const char *path) |
flag to add histograms, graphs,etc to the directory More... | |
void | FillFullPath (TString &buf) const |
Recursive method to fill full path for directory. More... | |
void | RegisterContext (TContext *ctxt) |
Register a TContext pointing to this TDirectory object. More... | |
void | UnregisterContext (TContext *ctxt) |
UnRegister a TContext pointing to this TDirectory object. More... | |
TDirectory (const TDirectory &directory) | |
Copy constructor. More... | |
void | operator= (const TDirectory &) |
Protected Member Functions inherited from TObject | |
void | MakeZombie () |
virtual void | DoError (int level, const char *location, const char *fmt, va_list va) const |
Interface to ErrorHandler (protected). More... | |
Protected Attributes | |
TSQLServer * | fSQL |
! interface to SQL database More... | |
TList * | fSQLClassInfos |
! list of SQL class infos More... | |
Bool_t | fUseSuffixes |
! use suffixes in column names like fValue:Int_t or fObject:pointer More... | |
Int_t | fSQLIOversion |
! version of SQL I/O which is stored in configurations More... | |
Int_t | fArrayLimit |
! limit for array size. when array bigger, its content converted to raw format More... | |
Bool_t | fCanChangeConfig |
! variable indicates can be basic configuration changed or not More... | |
TString | fTablesType |
! type, used in CREATE TABLE statements More... | |
Int_t | fUseTransactions |
! use transaction statements for writing data into the tables More... | |
Int_t | fUseIndexes |
! use indexes for tables: 0 - off, 1 - only for basic tables, 2 + normal class tables, 3 - all tables More... | |
Int_t | fModifyCounter |
! indicates how many changes was done with database tables More... | |
Int_t | fQuerisCounter |
! how many query was applied More... | |
const char ** | fBasicTypes |
! pointer on list of basic types specific for currently connected SQL server More... | |
const char ** | fOtherTypes |
! pointer on list of other SQL types like TEXT or blob More... | |
TString | fUserName |
! user name, used to access objects from database More... | |
std::ofstream * | fLogFile |
! log file with SQL statements More... | |
Bool_t | fIdsTableExists |
! indicate if IdsTable exists More... | |
Int_t | fStmtCounter |
! count numbers of active statements More... | |
Protected Attributes inherited from TFile | |
Double_t | fSumBuffer |
Sum of buffer sizes of objects written so far. More... | |
Double_t | fSum2Buffer |
Sum of squares of buffer sizes of objects written so far. More... | |
Long64_t | fBytesWrite |
Number of bytes written to this file. More... | |
Long64_t | fBytesRead |
Number of bytes read from this file. More... | |
Long64_t | fBytesReadExtra |
Number of extra bytes (overhead) read by the readahead buffer. More... | |
Long64_t | fBEGIN |
First used byte in file. More... | |
Long64_t | fEND |
Last used byte in file. More... | |
Long64_t | fSeekFree |
Location on disk of free segments structure. More... | |
Long64_t | fSeekInfo |
Location on disk of StreamerInfo record. More... | |
Int_t | fD |
File descriptor. More... | |
Int_t | fVersion |
File format version. More... | |
Int_t | fCompress |
Compression level and algorithm. More... | |
Int_t | fNbytesFree |
Number of bytes for free segments structure. More... | |
Int_t | fNbytesInfo |
Number of bytes for StreamerInfo record. More... | |
Int_t | fWritten |
Number of objects written so far. More... | |
Int_t | fNProcessIDs |
Number of TProcessID written to this file. More... | |
Int_t | fReadCalls |
Number of read calls ( not counting the cache calls ) More... | |
TString | fRealName |
Effective real file name (not original url) More... | |
TString | fOption |
File options. More... | |
Char_t | fUnits |
Number of bytes for file pointers. More... | |
TList * | fFree |
Free segments linked list table. More... | |
TArrayC * | fClassIndex |
!Index of TStreamerInfo classes written to this file More... | |
TObjArray * | fProcessIDs |
!Array of pointers to TProcessIDs More... | |
Long64_t | fOffset |
!Seek offset cache More... | |
TArchiveFile * | fArchive |
!Archive file from which we read this file More... | |
TFileCacheRead * | fCacheRead |
!Pointer to the read cache (if any) More... | |
TMap * | fCacheReadMap |
!Pointer to the read cache (if any) More... | |
TFileCacheWrite * | fCacheWrite |
!Pointer to the write cache (if any) More... | |
Long64_t | fArchiveOffset |
!Offset at which file starts in archive More... | |
Bool_t | fIsArchive: 1 |
!True if this is a pure archive file More... | |
Bool_t | fNoAnchorInName: 1 |
!True if we don't want to force the anchor to be appended to the file name More... | |
Bool_t | fIsRootFile: 1 |
!True is this is a ROOT file, raw file otherwise More... | |
Bool_t | fInitDone: 1 |
!True if the file has been initialized More... | |
Bool_t | fMustFlush: 1 |
!True if the file buffers must be flushed More... | |
Bool_t | fIsPcmFile: 1 |
!True if the file is a ROOT pcm file. More... | |
TFileOpenHandle * | fAsyncHandle |
!For proper automatic cleanup More... | |
EAsyncOpenStatus | fAsyncOpenStatus |
!Status of an asynchronous open request More... | |
TUrl | fUrl |
!URL of file More... | |
TList * | fInfoCache |
!Cached list of the streamer infos in this file More... | |
TList * | fOpenPhases |
!Time info about open phases More... | |
Protected Attributes inherited from TDirectoryFile | |
Bool_t | fModified |
True if directory has been modified. More... | |
Bool_t | fWritable |
True if directory is writable. More... | |
TDatime | fDatimeC |
Date and time when directory is created. More... | |
TDatime | fDatimeM |
Date and time of last modification. More... | |
Int_t | fNbytesKeys |
Number of bytes for the keys. More... | |
Int_t | fNbytesName |
Number of bytes in TNamed at creation time. More... | |
Int_t | fBufferSize |
Default buffer size to create new TKeys. More... | |
Long64_t | fSeekDir |
Location of directory on file. More... | |
Long64_t | fSeekParent |
Location of parent directory on file. More... | |
Long64_t | fSeekKeys |
Location of Keys record on file. More... | |
TFile * | fFile |
Pointer to current file in memory. More... | |
TList * | fKeys |
Pointer to keys list in memory. More... | |
Protected Attributes inherited from TDirectory | |
TObject * | fMother |
TList * | fList |
TUUID | fUUID |
TString | fPathBuffer |
TContext * | fContext |
Buffer for GetPath() function. More... | |
Protected Attributes inherited from TNamed | |
TString | fName |
TString | fTitle |
Private Member Functions | |
void | operator= (const TSQLFile &) |
make private to exclude copy operator More... | |
Friends | |
class | TBufferSQL2 |
class | TKeySQL |
class | TSQLStructure |
class | TSQLTableData |
class | TSqlRegistry |
class | TSqlRawBuffer |
class | TSqlCmdsBuffer |
Additional Inherited Members | |
Static Public Member Functions inherited from TFile | |
static TFile *& | CurrentFile () |
Return the current ROOT file if any. More... | |
static TFileOpenHandle * | AsyncOpen (const char *name, Option_t *option="", const char *ftitle="", Int_t compress=1, Int_t netopt=0) |
Submit an asynchronous open request. More... | |
static TFile * | Open (const char *name, Option_t *option="", const char *ftitle="", Int_t compress=1, Int_t netopt=0) |
Create / open a file. More... | |
static TFile * | Open (TFileOpenHandle *handle) |
Waits for the completion of an asynchronous open request. More... | |
static EFileType | GetType (const char *name, Option_t *option="", TString *prefix=0) |
Resolve the file type as a function of the protocol field in 'name'. More... | |
static EAsyncOpenStatus | GetAsyncOpenStatus (const char *name) |
Get status of the async open request related to 'name'. More... | |
static EAsyncOpenStatus | GetAsyncOpenStatus (TFileOpenHandle *handle) |
Get status of the async open request related to 'handle'. More... | |
static const TUrl * | GetEndpointUrl (const char *name) |
Get final URL for file being opened asynchronously. More... | |
static Long64_t | GetFileBytesRead () |
Static function returning the total number of bytes read from all files. More... | |
static Long64_t | GetFileBytesWritten () |
Static function returning the total number of bytes written to all files. More... | |
static Int_t | GetFileReadCalls () |
Static function returning the total number of read calls from all files. More... | |
static Int_t | GetReadaheadSize () |
Static function returning the readahead buffer size. More... | |
static void | SetFileBytesRead (Long64_t bytes=0) |
static void | SetFileBytesWritten (Long64_t bytes=0) |
static void | SetFileReadCalls (Int_t readcalls=0) |
static void | SetReadaheadSize (Int_t bufsize=256000) |
static void | SetReadStreamerInfo (Bool_t readinfo=kTRUE) |
Specify if the streamerinfos must be read at file opening. More... | |
static Bool_t | GetReadStreamerInfo () |
If the streamerinfos are to be read at file opening. More... | |
static Long64_t | GetFileCounter () |
static void | IncrementFileCounter () |
static Bool_t | SetCacheFileDir (const char *cacheDir, Bool_t operateDisconnected=kTRUE, Bool_t forceCacheread=kFALSE) |
Sets the directory where to locally stage/cache remote files. More... | |
static const char * | GetCacheFileDir () |
Get the directory where to locally stage/cache remote files. More... | |
static Bool_t | ShrinkCacheFileDir (Long64_t shrinkSize, Long_t cleanupInteval=0) |
Try to shrink the cache to the desired size. More... | |
static Bool_t | Cp (const char *src, const char *dst, Bool_t progressbar=kTRUE, UInt_t buffersize=1000000) |
Allows to copy file from src to dst URL. More... | |
static UInt_t | SetOpenTimeout (UInt_t timeout) |
Sets open timeout time (in ms). Returns previous timeout value. More... | |
static UInt_t | GetOpenTimeout () |
Returns open timeout (in ms). More... | |
static Bool_t | SetOnlyStaged (Bool_t onlystaged) |
Sets only staged flag. More... | |
static Bool_t | GetOnlyStaged () |
Returns staged only flag. More... | |
Static Public Member Functions inherited from TDirectory | |
static void | AddDirectory (Bool_t add=kTRUE) |
Sets the flag controlling the automatic add objects like histograms, TGraph2D, etc in memory. More... | |
static Bool_t | AddDirectoryStatus () |
Static function: see TDirectory::AddDirectory for more comments. More... | |
static TDirectory *& | CurrentDirectory () |
Return the current directory for the current thread. More... | |
static Bool_t | Cd (const char *path) |
Change current directory to "path". More... | |
static void | DecodeNameCycle (const char *namecycle, char *name, Short_t &cycle, const size_t namesize=0) |
Decode a namecycle "aap;2" into name "aap" and cycle "2". More... | |
static void | EncodeNameCycle (char *buffer, const char *name, Short_t cycle) |
Encode the name and cycle into buffer like: "aap;2". More... | |
Static Public Member Functions inherited from TObject | |
static Long_t | GetDtorOnly () |
Return destructor only flag. More... | |
static void | SetDtorOnly (void *obj) |
Set destructor only flag. More... | |
static Bool_t | GetObjectStat () |
Get status of object stat flag. More... | |
static void | SetObjectStat (Bool_t stat) |
Turn on/off tracking of objects in the TObjectTable. More... | |
Static Protected Member Functions inherited from TDirectory | |
static Bool_t | Cd1 (const char *path) |
Change current directory to "path". More... | |
Static Protected Attributes inherited from TFile | |
static TList * | fgAsyncOpenRequests = 0 |
static TString | fgCacheFileDir |
Directory where to locally stage files. More... | |
static Bool_t | fgCacheFileDisconnected = kTRUE |
Indicates, we trust in the files in the cache dir without stat on the cached file. More... | |
static Bool_t | fgCacheFileForce = kFALSE |
Indicates, to force all READ to CACHEREAD. More... | |
static UInt_t | fgOpenTimeout = TFile::kEternalTimeout |
Timeout for open operations in ms - 0 corresponds to blocking i/o. More... | |
static Bool_t | fgOnlyStaged = 0 |
Before the file is opened, it is checked, that the file is staged, if not, the open fails. More... | |
static std::atomic< Long64_t > | fgBytesWrite {0} |
Number of bytes written by all TFile objects. More... | |
static std::atomic< Long64_t > | fgBytesRead |
Number of bytes read by all TFile objects. More... | |
static std::atomic< Long64_t > | fgFileCounter {0} |
Counter for all opened files. More... | |
static std::atomic< Int_t > | fgReadCalls {0} |
Number of bytes read from all TFile objects. More... | |
static Int_t | fgReadaheadSize = 256000 |
Readahead buffer size. More... | |
static Bool_t | fgReadInfo = kTRUE |
if true (default) ReadStreamerInfo is called when opening a file More... | |
Static Protected Attributes inherited from TDirectory | |
static Bool_t | fgAddDirectory = kTRUE |
Pointer to a list of TContext object pointing to this TDirectory. More... | |
#include <TSQLFile.h>
Enumerator | |
---|---|
kIndexesNone | |
kIndexesBasic | |
kIndexesClass | |
kIndexesAll |
Definition at line 185 of file TSQLFile.h.
|
protected |
Enumerator | |
---|---|
kLockFree | |
kLockBusy |
Definition at line 43 of file TSQLFile.h.
Enumerator | |
---|---|
kTransactionsOff | |
kTransactionsAuto | |
kTransactionsUser |
Definition at line 179 of file TSQLFile.h.
TSQLFile::TSQLFile | ( | ) |
default TSQLFile constructor
Definition at line 278 of file TSQLFile.cxx.
TSQLFile::TSQLFile | ( | const char * | dbname, |
Option_t * | option = "read" , |
||
const char * | user = "user" , |
||
const char * | pass = "pass" |
||
) |
Connects to SQL server with provided arguments.
If the constructor fails in any way IsZombie() will return true. Use IsOpen() to check if the file is (still) open.
Option | Description |
---|---|
NEW or CREATE | Create a ROOT tables in database if the tables already exists connection is not opened. |
RECREATE | Create completely new tables. Any existing table will be deleted. |
UPDATE | Open an existing database for writing. If data base open by other TSQLFile instance for writing, write access will be rejected. |
BREAKLOCK | Special case when lock was not correctly released by TSQLFile instance. This may happen if program crashed when TSQLFile was open with write access mode. |
READ / OPEN | Open an existing data base for reading. |
For more details see comments for TFile::TFile() constructor. For a moment TSQLFile does not support TTree objects and subdirectories.
Definition at line 317 of file TSQLFile.cxx.
|
virtual |
destructor of TSQLFile object
Definition at line 711 of file TSQLFile.cxx.
|
protected |
Add entry into IdsTable, where all tables names and columns names are listed.
Definition at line 2028 of file TSQLFile.cxx.
Referenced by CreateClassTable(), and CreateRawTable().
Close a SQL file For more comments see TFile::Close() function.
Reimplemented from TFile.
Definition at line 665 of file TSQLFile.cxx.
Referenced by InitSqlDatabase(), and ~TSQLFile().
Produces id which will be placed in column instead of string itself.
Definition at line 2245 of file TSQLFile.cxx.
Bool_t TSQLFile::Commit | ( | ) |
Commit transaction, started by StartTransaction() call.
Only after that call data will be written and visible on database side.
Definition at line 605 of file TSQLFile.cxx.
|
protected |
Creates initial tables in database This is table with configurations and table with keys Function called once when first object is stored to the file.
Definition at line 1133 of file TSQLFile.cxx.
Referenced by WriteKeyData().
|
protected |
Create normal class table if required.
Definition at line 2074 of file TSQLFile.cxx.
|
virtual |
create SQL key, which will store object in data base
Reimplemented from TFile.
Definition at line 794 of file TSQLFile.cxx.
|
virtual |
create SQL key, which will store object in data base
Reimplemented from TFile.
Definition at line 802 of file TSQLFile.cxx.
|
protected |
Create the raw table.
Definition at line 2163 of file TSQLFile.cxx.
|
protected |
Returns next possible key identifier.
Definition at line 1775 of file TSQLFile.cxx.
Referenced by TKeySQL::StoreKeyObject().
Proposes table name for class.
Definition at line 1847 of file TSQLFile.cxx.
Referenced by RequestSQLClassInfo().
Remove key with specified id from keys table also removes all objects data, related to this table.
Definition at line 1629 of file TSQLFile.cxx.
Referenced by TKeySQL::Delete(), TKeySQL::StoreKeyObject(), and WriteSpecialObject().
|
protectedvirtual |
Create entry for directory in database.
Reimplemented from TFile.
Definition at line 2595 of file TSQLFile.cxx.
|
protectedvirtual |
Read directory list of keys from database.
Reimplemented from TFile.
Definition at line 2609 of file TSQLFile.cxx.
|
protectedvirtual |
Update dir header in the file.
Reimplemented from TFile.
Definition at line 2631 of file TSQLFile.cxx.
|
protectedvirtual |
Write directory keys list to database.
Reimplemented from TFile.
Definition at line 2623 of file TSQLFile.cxx.
Draw map of objects in this file.
Reimplemented from TFile.
Definition at line 222 of file TSQLFile.h.
|
inlinevirtual |
Encode file output buffer.
The file output buffer contains only the FREE data record.
Reimplemented from TFile.
Definition at line 223 of file TSQLFile.h.
|
protected |
Return (if exists) TSQLClassInfo for specified class name and version.
Definition at line 1790 of file TSQLFile.cxx.
Referenced by DirWriteHeader(), FindSQLClassInfo(), TSQLStructure::LocateElementColumn(), MakeSelectQuery(), ProduceClassSelectQuery(), ReadSQLClassInfos(), RequestSQLClassInfo(), TBufferSQL2::SqlReadObjectDirect(), TSQLStructure::UnpackTObject(), TSQLStructure::UnpackTString(), and TBufferSQL2::WorkWithClass().
|
protected |
return (if exists) TSQLClassInfo for specified class
Definition at line 1807 of file TSQLFile.cxx.
|
protected |
Search for TKeySQL object with specified keyid.
Definition at line 1689 of file TSQLFile.cxx.
Referenced by DirWriteHeader(), and StreamKeysForDirectory().
|
inlinevirtual |
Synchronize a file's in-memory and on-disk states.
Reimplemented from TFile.
Definition at line 224 of file TSQLFile.h.
|
inline |
Definition at line 199 of file TSQLFile.h.
Referenced by TSQLStructure::DefineElementColumnType().
|
protected |
Method return request results for specified objid from streamer classtable.
Definition at line 2485 of file TSQLFile.cxx.
Referenced by TBufferSQL2::SqlObjectData().
|
protected |
Method return request results for specified objid from streamer classtable Data returned in form of statement, where direct access to values are possible.
Definition at line 2502 of file TSQLFile.cxx.
Referenced by TBufferSQL2::SqlObjectData().
const char * TSQLFile::GetDataBaseName | ( | ) | const |
Return name of data base on the host For Oracle always return 0.
Definition at line 653 of file TSQLFile.cxx.
|
inlinevirtual |
Reimplemented from TFile.
Definition at line 226 of file TSQLFile.h.
|
inlinevirtual |
Method returning errno. Is overriden in TRFIOFile.
Reimplemented from TFile.
Definition at line 227 of file TSQLFile.h.
|
protected |
Return current locking mode for that file.
Definition at line 1383 of file TSQLFile.cxx.
Referenced by IsWriteAccess().
Returns value of string, extracted from special table, where long strings are stored.
Definition at line 2293 of file TSQLFile.cxx.
Referenced by TSQLStructure::LocateElementColumn(), and TBufferSQL2::SqlReadCharStarValue().
|
inlinevirtual |
Reimplemented from TFile.
Definition at line 233 of file TSQLFile.h.
|
inlinevirtual |
Reimplemented from TFile.
Definition at line 232 of file TSQLFile.h.
|
inlinevirtual |
Reimplemented from TFile.
Definition at line 231 of file TSQLFile.h.
|
protected |
Method return request result for specified objid from normal classtable.
Definition at line 2456 of file TSQLFile.cxx.
|
protected |
Return data for several objects from the range from normal class table.
Definition at line 2470 of file TSQLFile.cxx.
Referenced by TBufferSQL2::SqlObjectData().
|
inline |
Definition at line 208 of file TSQLFile.h.
|
inlinevirtual |
Reimplemented from TFile.
Definition at line 234 of file TSQLFile.h.
|
inlinevirtual |
Reimplemented from TFile.
Definition at line 235 of file TSQLFile.h.
|
inlinevirtual |
Returns the current file size.
Returns -1 in case the file could not be stat'ed.
Reimplemented from TFile.
Definition at line 236 of file TSQLFile.h.
|
virtual |
Read back streamer infos from database List of streamer infos is always stored with key:id 0, which is not shown in normal keys list.
Reimplemented from TFile.
Definition at line 905 of file TSQLFile.cxx.
|
inline |
Definition at line 203 of file TSQLFile.h.
|
inline |
Definition at line 207 of file TSQLFile.h.
Referenced by CreateBasicTables(), CreateClassTable(), CreateRawTable(), and VerifyObjectTable().
|
inline |
Definition at line 197 of file TSQLFile.h.
Referenced by TSQLStructure::DefineElementColumnName(), and DirWriteHeader().
|
inline |
Definition at line 205 of file TSQLFile.h.
Referenced by Commit(), Rollback(), StartTransaction(), and StoreObjectInTables().
|
protected |
Test if table name exists.
Definition at line 1893 of file TSQLFile.cxx.
Referenced by DefineTableName().
|
protected |
Update value of modify counter in config table Modify counter used to indicate that something was changed in database.
It will be used when multiple instances of TSQLFile for the same data base will be connected.
Definition at line 1215 of file TSQLFile.cxx.
Referenced by DeleteKeyFromDB(), UpdateKeyData(), and WriteKeyData().
initialize sql database and correspondent structures identical to TFile::Init() function
Definition at line 1016 of file TSQLFile.cxx.
Referenced by TSQLFile().
Checks if this is long string code returns 0, if not or string id.
Definition at line 2256 of file TSQLFile.cxx.
Referenced by TSQLStructure::LocateElementColumn(), and TBufferSQL2::SqlReadCharStarValue().
Bool_t TSQLFile::IsMySQL | ( | ) | const |
checks, if MySQL database
Definition at line 497 of file TSQLFile.cxx.
Referenced by AddIdEntry(), CreateBasicTables(), CreateClassTable(), CreateRawTable(), and VerifyObjectTable().
Bool_t TSQLFile::IsODBC | ( | ) | const |
checks, if ODBC driver used for database connection
Definition at line 515 of file TSQLFile.cxx.
|
virtual |
return kTRUE if file is opened and can be accessed
Reimplemented from TFile.
Definition at line 738 of file TSQLFile.cxx.
Bool_t TSQLFile::IsOracle | ( | ) | const |
checks, if Oracle database
Definition at line 506 of file TSQLFile.cxx.
Referenced by CreateClassTable(), and GetDataBaseName().
|
protected |
dummy, in future should check about read access to database
Definition at line 1409 of file TSQLFile.cxx.
Referenced by TSQLFile().
|
protected |
Checks if main keys table is existing.
Definition at line 1350 of file TSQLFile.cxx.
Referenced by TSQLFile(), WriteKeyData(), and WriteStreamerInfo().
|
protected |
Checkis, if lock is free in configuration tables.
Definition at line 1358 of file TSQLFile.cxx.
Referenced by ReOpen(), and TSQLFile().
Mark unused bytes on the file.
The list of free segments is in the fFree linked list. When an object is deleted from the file, the freed space is added into the FREE linked list (fFree). The FREE list consists of a chain of consecutive free segments on the file. At the same time, the first 4 bytes of the freed record on the file are overwritten by GAPSIZE where GAPSIZE = -(Number of bytes occupied by the record).
Reimplemented from TFile.
Definition at line 244 of file TSQLFile.h.
|
inlinevirtual |
Generate source code necessary to access the objects stored in the file.
Generate code in directory dirname for all classes specified in argument classes If classes = "*" (default and currently the only supported value), the function generates an include file for each class in the StreamerInfo list for which a TClass object does not exist.
The code generated includes:
In the generated classes, map, multimap when the first template parameter is a class are replaced by a vector of pair. set and multiset when the tempalte parameter is a class are replaced by a vector. This is required since we do not have the code needed to order and/or compare the object of the classes. This is a quick explanation of the options available:
Option | Details |
---|---|
new (default) | A new directory dirname is created. If dirname already exist, an error message is printed and the function returns. |
recreate | If dirname does not exist, it is created (like in "new"). If dirname already exist, all existing files in dirname are deleted before creating the new files. |
update | New classes are added to the existing directory. Existing classes with the same name are replaced by the new definition. If the directory dirname doest not exist, same effect as "new". |
genreflex | Use genreflex rather than rootcint to generate the dictionary. |
par | Create a PAR file with the minimal set of code needed to read the content of the ROOT file. The name of the PAR file is basename(dirname), with extension '.par' enforced; the PAR file will be created at dirname(dirname). |
If, in addition to one of the 3 above options, the option "+" is specified, the function will generate:
gSystem->load("demo/demo.so");
The following feature is not yet enabled: One can restrict the list of classes to be generated by using expressions like:
classes = "Ali*" generate code only for classes starting with Ali classes = "myClass" generate code for class MyClass only.
Reimplemented from TFile.
Definition at line 245 of file TSQLFile.h.
Produce SELECT statement which can be used to get all data of class cl in one SELECT statement.
This statement also can be used to create VIEW by command like mysql> CREATE VIEW TH1I_view AS $CLASSSELECT$ Where $CLASSSELECT$ argument should be produced by call f->MakeSelectQuery(TH1I::Class()); VIEWs supported by latest MySQL 5 and Oracle
Definition at line 1244 of file TSQLFile.cxx.
Referenced by tables_read().
|
inlinevirtual |
List the contents of a file sequentially.
For each logical record found, it prints:
Date/Time Record_Adress Logical_Record_Length ClassName CompressionFactor
Example of output
20010404/150437 At:64 N=150 TFile 20010404/150440 At:214 N=28326 TBasket CX = 1.13 20010404/150440 At:28540 N=29616 TBasket CX = 1.08 20010404/150440 At:58156 N=29640 TBasket CX = 1.08 20010404/150440 At:87796 N=29076 TBasket CX = 1.10 20010404/150440 At:116872 N=10151 TBasket CX = 3.15 20010404/150441 At:127023 N=28341 TBasket CX = 1.13 20010404/150441 At:155364 N=29594 TBasket CX = 1.08 20010404/150441 At:184958 N=29616 TBasket CX = 1.08 20010404/150441 At:214574 N=29075 TBasket CX = 1.10 20010404/150441 At:243649 N=9583 TBasket CX = 3.34 20010404/150442 At:253232 N=28324 TBasket CX = 1.13 20010404/150442 At:281556 N=29641 TBasket CX = 1.08 20010404/150442 At:311197 N=29633 TBasket CX = 1.08 20010404/150442 At:340830 N=29091 TBasket CX = 1.10 20010404/150442 At:369921 N=10341 TBasket CX = 3.09 20010404/150442 At:380262 N=509 TH1F CX = 1.93 20010404/150442 At:380771 N=1769 TH2F CX = 4.32 20010404/150442 At:382540 N=1849 TProfile CX = 1.65 20010404/150442 At:384389 N=18434 TNtuple CX = 4.51 20010404/150442 At:402823 N=307 KeysList 20010404/150443 At:403130 N=4548 StreamerInfo CX = 3.65 20010404/150443 At:407678 N=86 FreeSegments 20010404/150443 At:407764 N=1 END
Reimplemented from TFile.
Definition at line 246 of file TSQLFile.h.
make private to exclude copy operator
Definition at line 731 of file TSQLFile.cxx.
|
protected |
used by MakeClassSelectQuery method to add columns from table of class, specified by TVirtualStreamerInfo structure
Definition at line 1265 of file TSQLFile.cxx.
Referenced by MakeSelectQuery().
Read a buffer from the file.
This is the basic low level read operation. Returns kTRUE in case of failure.
Reimplemented from TFile.
Definition at line 249 of file TSQLFile.h.
Read a buffer from the file at the offset 'pos' in the file.
Returns kTRUE in case of failure. Compared to ReadBuffer(char*, Int_t), this routine does not change the cursor on the physical file representation (fD) if the data is in this TFile's cache.
Reimplemented from TFile.
Definition at line 250 of file TSQLFile.h.
|
protected |
read table configurations as special table
Definition at line 1070 of file TSQLFile.cxx.
Referenced by InitSqlDatabase().
|
inlinevirtual |
Read the FREE linked list.
Every file has a linked list (fFree) of free segments. This linked list has been written on the file via WriteFree as a single data record.
Reimplemented from TFile.
Definition at line 251 of file TSQLFile.h.
Read data of special kind of objects.
Definition at line 877 of file TSQLFile.cxx.
Referenced by GetStreamerInfoList(), and InitSqlDatabase().
|
protected |
Read all class infos from IdsTable.
Definition at line 1918 of file TSQLFile.cxx.
Referenced by InitSqlDatabase().
|
inlinevirtual |
Attempt to recover file if not correctly closed.
The function returns the number of keys that have been recovered. If no keys can be recovered, the file will be declared Zombie by the calling function. This function is automatically called when opening a file. If the file is open in read only mode, the file is not modified. If open in update mode and the function finds something to recover, a new directory header is written to the file. When opening the file gain no message from Recover will be reported. If keys have been recovered, the file is usable and you can safely read the corresponding objects. If the file is not usable (a zombie), you can test for this case with code like:
If the file has been recovered, the bit kRecovered is set in the TFile object in memory. You can test if the file has been recovered with
if (f.TestBit(TFile::kRecovered)) {... the file has been recovered}
When writing TTrees to a file, it is important to save the Tree header at regular intervals (see TTree::AutoSave). If a file containing a Tree is recovered, the last Tree header written to the file will be used. In this case all the entries in all the branches written before writing the header are valid entries. One can disable the automatic recovery procedure by setting
TFile.Recover 0
in the system.rootrc file.
Reimplemented from TFile.
Definition at line 252 of file TSQLFile.h.
Reopen a file with a different access mode, like from READ to See TFile::Open() for details.
Reimplemented from TFile.
Definition at line 747 of file TSQLFile.cxx.
|
protected |
Search in database tables for specified class and return TSQLClassInfo object.
Definition at line 1815 of file TSQLFile.cxx.
Referenced by RequestSQLClassInfo().
|
protected |
Search in database tables for specified class and return TSQLClassInfo object.
Definition at line 1910 of file TSQLFile.cxx.
|
inlinevirtual |
Method resetting the errno. Is overridden in TRFIOFile.
Reimplemented from TFile.
Definition at line 228 of file TSQLFile.h.
Bool_t TSQLFile::Rollback | ( | ) |
Rollback all operations, done after StartTransaction() call.
Database should return to initial state.
Definition at line 619 of file TSQLFile.cxx.
|
protected |
save data which is not yet in Database Typically this is streamerinfos structures or
Definition at line 924 of file TSQLFile.cxx.
|
inlinevirtual |
Seek to a specific position in the file. Pos it either kBeg, kCur or kEnd.
Reimplemented from TFile.
Definition at line 254 of file TSQLFile.h.
Defines maximum number of columns for array representation If array size bigger than limit, array data will be converted to raw format This is usefull to prevent tables with very big number of columns If limit==0, all arrays will be stored in raw format If limit<0, all array values will be stored in column form Default value is 21.
Definition at line 542 of file TSQLFile.cxx.
Referenced by SkipArrayLimit(), and tables_write().
Reimplemented from TFile.
Definition at line 256 of file TSQLFile.h.
Set locking mode for current database.
Definition at line 1366 of file TSQLFile.cxx.
Referenced by Close(), ReOpen(), and TSQLFile().
void TSQLFile::SetTablesType | ( | const char * | tables_type | ) |
Defines tables type, which is used in CREATE TABLE statements Now is only used for MySQL database, where following types are supported: "BDB", "HEAP", "ISAM", "InnoDB", "MERGE", "MRG_MYISAM", "MYISAM" Default for TSQLFile is "InnoDB".
For more detailes see MySQL docs.
Definition at line 556 of file TSQLFile.cxx.
void TSQLFile::SetUseIndexes | ( | Int_t | use_type = kIndexesBasic | ) |
Specify usage of indexes for data tables
Index | Description |
---|---|
kIndexesNone = 0 | no indexes are used |
kIndexesBasic = 1 | indexes used only for keys list and objects list tables (default) |
kIndexesClass = 2 | index also created for every normal class table |
kIndexesAll = 3 | index created for every table, including streamer tables |
Indexes in general should increase speed of access to objects data, but they required more operations and more disk space on server side
Definition at line 641 of file TSQLFile.cxx.
Referenced by tables_write().
enable/disable uasge of suffixes in columns names can be changed before first object is saved into file
Definition at line 526 of file TSQLFile.cxx.
Referenced by tables_write().
void TSQLFile::SetUseTransactions | ( | Int_t | mode = kTransactionsAuto | ) |
Defines usage of transactions statements for writing objects data to database.
| Index | Description | |----—|----------—| | kTransactionsOff=0 - no transaction operation are allowed | | kTransactionsAuto=1 - automatic mode. Each write operation, produced by TSQLFile, will be supplied by START TRANSACTION and COMMIT calls. If any error happen, ROLLBACK will returns database to previous state | | kTransactionsUser=2 - transactions are delegated to user. Methods StartTransaction(), Commit() and Rollback() should be called by user. |
Default UseTransactions option is kTransactionsAuto
Definition at line 574 of file TSQLFile.cxx.
|
inlinevirtual |
Return the size in bytes of the file header.
Reimplemented from TFile.
Definition at line 257 of file TSQLFile.h.
|
inline |
Definition at line 201 of file TSQLFile.h.
supplies set of commands to server Commands is stored as array of TObjString
Definition at line 1498 of file TSQLFile.cxx.
Referenced by StoreObjectInTables().
|
inlineprotected |
Definition at line 137 of file TSQLFile.h.
Referenced by VerifyLongStringTable().
|
protected |
Test if DB support statement and number of open statements is not exceeded.
Definition at line 1455 of file TSQLFile.cxx.
|
protected |
Commit SQL transaction.
Definition at line 1599 of file TSQLFile.cxx.
Referenced by Commit(), and StoreObjectInTables().
|
protected |
Returns sql type name which is most closer to ROOT basic type.
typ should be from TVirtualStreamerInfo:: constansts like TVirtualStreamerInfo::kInt
Definition at line 2579 of file TSQLFile.cxx.
Referenced by SQLIntType().
|
inlineprotected |
Definition at line 138 of file TSQLFile.h.
Referenced by CreateBasicTables().
|
inlineprotected |
Definition at line 147 of file TSQLFile.h.
Referenced by TSQLFile().
|
protected |
Delete all tables in database.
Definition at line 1569 of file TSQLFile.cxx.
Referenced by TSQLFile().
|
protected |
delete statement and decrease counter
Definition at line 1485 of file TSQLFile.cxx.
|
inlineprotected |
Definition at line 140 of file TSQLFile.h.
Referenced by CreateBasicTables(), and StreamKeysForDirectory().
|
inlineprotected |
Definition at line 139 of file TSQLFile.h.
Referenced by AddIdEntry(), CreateBasicTables(), CreateClassTable(), CreateRawTable(), DeleteKeyFromDB(), DirWriteHeader(), GetBlobClassData(), GetBlobClassDataStmt(), GetLocking(), GetLongString(), GetNormalClassData(), GetNormalClassDataAll(), IncrementModifyCounter(), ProduceClassSelectQuery(), ReadConfigurations(), ReadSQLClassInfos(), SetLocking(), SQLDeleteAllTables(), SQLMaximumValue(), SQLObjectInfo(), SQLObjectsInfo(), StreamKeysForDirectory(), UpdateKeyData(), VerifyLongStringTable(), VerifyObjectTable(), and WriteKeyData().
|
protected |
return SQL integer type
Definition at line 2587 of file TSQLFile.cxx.
Referenced by AddIdEntry(), CreateBasicTables(), CreateRawTable(), VerifyLongStringTable(), and VerifyObjectTable().
|
inlineprotected |
Definition at line 141 of file TSQLFile.h.
Referenced by CreateBasicTables(), DefineNextKeyId(), DeleteKeyFromDB(), SQLObjectsInfo(), StreamKeysForDirectory(), UpdateKeyData(), and VerifyObjectTable().
|
protected |
returns maximum allowed length of identifiers
Definition at line 1615 of file TSQLFile.cxx.
Referenced by TSQLTableData::DefineSQLName(), and DefineTableName().
|
protected |
Returns maximum value, found in specified columnname of table tablename Column type should be numeric.
Definition at line 1533 of file TSQLFile.cxx.
Referenced by DefineNextKeyId(), and VerifyObjectTable().
|
inlineprotected |
Definition at line 145 of file TSQLFile.h.
Referenced by TSQLStructure::DefineElementColumnName().
|
inlineprotected |
Definition at line 142 of file TSQLFile.h.
Referenced by CreateBasicTables(), CreateClassTable(), CreateRawTable(), DeleteKeyFromDB(), DirWriteHeader(), GetBlobClassData(), GetBlobClassDataStmt(), GetLongString(), GetNormalClassData(), GetNormalClassDataAll(), ProduceClassSelectQuery(), SQLObjectInfo(), SQLObjectsInfo(), VerifyLongStringTable(), and VerifyObjectTable().
Read from objects table data for specified objectid.
Definition at line 2365 of file TSQLFile.cxx.
Produce array of TSQLObjectInfo objects for all objects, belong to that key Array should be deleted by calling function afterwards.
Definition at line 2393 of file TSQLFile.cxx.
Referenced by TBufferSQL2::SqlReadAny().
|
protected |
Submits query to SQL server.
Flag Value | Effect |
---|---|
0 | result is not interesting and will be deleted |
1 | return result of submitted query |
2 | results is may be necessary for long time Oracle plugin do not support working with several TSQLResult objects, therefore explicit deep copy will be produced |
If ok!=0, it will contains kTRUE is Query was successfull, otherwise kFALSE
Definition at line 1425 of file TSQLFile.cxx.
Referenced by AddIdEntry(), CreateBasicTables(), CreateClassTable(), CreateRawTable(), DeleteKeyFromDB(), DirWriteHeader(), GetBlobClassData(), GetLocking(), GetLongString(), GetNormalClassData(), GetNormalClassDataAll(), IncrementModifyCounter(), ReadConfigurations(), ReadSQLClassInfos(), SetLocking(), SQLApplyCommands(), SQLDeleteAllTables(), SQLMaximumValue(), SQLObjectInfo(), SQLObjectsInfo(), StreamKeysForDirectory(), UpdateKeyData(), VerifyLongStringTable(), VerifyObjectTable(), and WriteKeyData().
|
inlineprotected |
Definition at line 143 of file TSQLFile.h.
Referenced by CreateRawTable(), GetBlobClassData(), and GetBlobClassDataStmt().
|
protected |
Rollback all SQL operations, done after start transaction.
Definition at line 1607 of file TSQLFile.cxx.
Referenced by Rollback(), and StoreObjectInTables().
|
inlineprotected |
Definition at line 135 of file TSQLFile.h.
Referenced by AddIdEntry(), CreateBasicTables(), CreateRawTable(), and VerifyObjectTable().
|
inlineprotected |
Definition at line 136 of file TSQLFile.h.
|
protected |
Start SQL transaction.
Definition at line 1591 of file TSQLFile.cxx.
Referenced by StartTransaction(), and StoreObjectInTables().
|
protected |
Produces SQL statement for currently conected DB server.
Definition at line 1467 of file TSQLFile.cxx.
Referenced by GetBlobClassDataStmt(), and SQLObjectsInfo().
|
inlineprotected |
Definition at line 144 of file TSQLFile.h.
Referenced by GetLongString(), and VerifyLongStringTable().
|
protected |
Test, if table of specified name exists.
Definition at line 1516 of file TSQLFile.cxx.
Referenced by AddIdEntry(), CreateBasicTables(), DefineNextKeyId(), GetLongString(), IsTablesExists(), ReadSQLClassInfos(), VerifyLongStringTable(), and VerifyObjectTable().
|
inlineprotected |
Definition at line 146 of file TSQLFile.h.
Referenced by AddIdEntry(), CreateBasicTables(), DirWriteHeader(), GetLocking(), IncrementModifyCounter(), SetLocking(), UpdateKeyData(), and WriteKeyData().
void TSQLFile::StartLogFile | ( | const char * | fname | ) |
start logging of all SQL statements in specified file
Definition at line 477 of file TSQLFile.cxx.
Bool_t TSQLFile::StartTransaction | ( | ) |
Start user transaction.
This can be usesful, when big number of objects should be stored in data base and commitment required only if all operations were successful. In that case in the end of all operations method Commit() should be called. If operation on user-level is looks like not successful, method Rollback() will return database data and TSQLFile instance to previous state. In MySQL not all tables types support transaction mode of operation. See SetTablesType() method for details .
Definition at line 591 of file TSQLFile.cxx.
void TSQLFile::StopLogFile | ( | ) |
close logging file
Definition at line 486 of file TSQLFile.cxx.
Referenced by StartLogFile(), and ~TSQLFile().
|
protected |
Store object in database. Return stored object id or -1 if error.
Definition at line 2532 of file TSQLFile.cxx.
Referenced by TKeySQL::StoreKeyObject(), and WriteSpecialObject().
|
protected |
read keys for specified directory (when update == kFALSE) or update value for modified keys when update == kTRUE Returns number of successfully read keys or -1 if error
Definition at line 937 of file TSQLFile.cxx.
Referenced by DirReadKeys(), DirWriteKeys(), InitSqlDatabase(), and ReadSpecialObject().
Interface to system close. All arguments like in POSIX close().
Reimplemented from TFile.
Definition at line 50 of file TSQLFile.h.
|
inlineprotectedvirtual |
Interface to system open. All arguments like in POSIX open().
Reimplemented from TFile.
Definition at line 49 of file TSQLFile.h.
Interface to system read. All arguments like in POSIX read().
Reimplemented from TFile.
Definition at line 51 of file TSQLFile.h.
|
inlineprotectedvirtual |
Interface to system lseek.
All arguments like in POSIX lseek() except that the offset and return value are of a type which are able to handle 64 bit file systems.
Reimplemented from TFile.
Definition at line 53 of file TSQLFile.h.
|
inlineprotectedvirtual |
Return file stat information.
The interface and return value is identical to TSystem::GetPathInfo(). The function returns 0 in case of success and 1 if the file could not be stat'ed.
Reimplemented from TFile.
Definition at line 54 of file TSQLFile.h.
Interface to system fsync. All arguments like in POSIX fsync().
Reimplemented from TFile.
Definition at line 55 of file TSQLFile.h.
Interface to system write. All arguments like in POSIX write().
Reimplemented from TFile.
Definition at line 52 of file TSQLFile.h.
Updates (overwrites) key data in KeysTable.
Definition at line 1739 of file TSQLFile.cxx.
Referenced by StreamKeysForDirectory().
|
protected |
Checks that table for big strings is exists If not, will be created.
Definition at line 2217 of file TSQLFile.cxx.
|
protected |
Checks that objects table is exists If not, table will be created Returns maximum value for existing objects id.
Definition at line 2322 of file TSQLFile.cxx.
Referenced by StoreObjectInTables().
|
inlinevirtual |
Write memory objects to this file.
Loop on all objects in memory (including subdirectories). A new key is created in the KEYS linked list for each object. The list of keys is then saved on the file (via WriteKeys) as a single data record. For values of opt see TObject::Write(). The directory header info is rewritten on the directory header record. The linked list of FREE segments is written. The file header is written (bytes 1->fBEGIN).
Reimplemented from TFile.
Definition at line 260 of file TSQLFile.h.
|
inlinevirtual |
One can not save a const TDirectory object.
Reimplemented from TFile.
Definition at line 261 of file TSQLFile.h.
Write a buffer to the file.
This is the basic low level write operation. Returns kTRUE in case of failure.
Reimplemented from TFile.
Definition at line 259 of file TSQLFile.h.
|
inlinevirtual |
Write FREE linked list on the file.
The linked list of FREE segments (fFree) is written as a single data record.
Reimplemented from TFile.
Definition at line 262 of file TSQLFile.h.
|
virtual |
Write file info like configurations, title, UUID and other.
Reimplemented from TFile.
Definition at line 810 of file TSQLFile.cxx.
Referenced by SaveToDatabase().
Add entry into keys table.
Definition at line 1708 of file TSQLFile.cxx.
Referenced by TKeySQL::StoreKeyObject(), and WriteSpecialObject().
|
protected |
write special kind of object like streamer infos or file itself keys for that objects should exist in tables but not indicated in list of keys, therefore users can not get them with TDirectoryFile::Get() method
Definition at line 854 of file TSQLFile.cxx.
Referenced by WriteHeader(), and WriteStreamerInfo().
|
virtual |
Store all TVirtualStreamerInfo, used in file, in sql database.
Reimplemented from TFile.
Definition at line 818 of file TSQLFile.cxx.
Referenced by SaveToDatabase().
|
friend |
Definition at line 34 of file TSQLFile.h.
|
friend |
Definition at line 35 of file TSQLFile.h.
Referenced by CreateKey(), DirCreateEntry(), StreamKeysForDirectory(), and WriteSpecialObject().
|
friend |
Definition at line 40 of file TSQLFile.h.
|
friend |
Definition at line 39 of file TSQLFile.h.
|
friend |
Definition at line 38 of file TSQLFile.h.
|
friend |
Definition at line 36 of file TSQLFile.h.
|
friend |
Definition at line 37 of file TSQLFile.h.
|
protected |
! limit for array size. when array bigger, its content converted to raw format
Definition at line 155 of file TSQLFile.h.
Referenced by CreateBasicTables(), GetArrayLimit(), ReadConfigurations(), SetArrayLimit(), and TSQLFile().
|
protected |
! pointer on list of basic types specific for currently connected SQL server
Definition at line 163 of file TSQLFile.h.
Referenced by SQLCompatibleType(), and TSQLFile().
|
protected |
! variable indicates can be basic configuration changed or not
Definition at line 156 of file TSQLFile.h.
Referenced by CreateBasicTables(), SetArrayLimit(), SetTablesType(), SetUseIndexes(), SetUseSuffixes(), and TSQLFile().
|
protected |
! indicate if IdsTable exists
Definition at line 170 of file TSQLFile.h.
Referenced by AddIdEntry(), and ReadSQLClassInfos().
|
protected |
! log file with SQL statements
Definition at line 168 of file TSQLFile.h.
Referenced by GetBlobClassDataStmt(), SQLObjectsInfo(), SQLQuery(), StartLogFile(), and StopLogFile().
|
protected |
! indicates how many changes was done with database tables
Definition at line 160 of file TSQLFile.h.
Referenced by CreateBasicTables(), IncrementModifyCounter(), and ReadConfigurations().
|
protected |
! pointer on list of other SQL types like TEXT or blob
Definition at line 164 of file TSQLFile.h.
Referenced by SQLBigTextType(), SQLDatetimeType(), SQLDefaultTableType(), SQLDirIdColumn(), SQLIdentifierQuote(), SQLKeyIdColumn(), SQLNameSeparator(), SQLObjectIdColumn(), SQLRawIdColumn(), SQLSmallTextType(), SQLSmallTextTypeLimit(), SQLStrIdColumn(), SQLValueQuote(), and TSQLFile().
|
protected |
! how many query was applied
Definition at line 161 of file TSQLFile.h.
Referenced by GetBlobClassDataStmt(), GetQuerisCounter(), SQLObjectsInfo(), SQLQuery(), and SQLStatement().
|
protected |
! interface to SQL database
Definition at line 149 of file TSQLFile.h.
Referenced by AddIdEntry(), DeleteKeyFromDB(), InitSqlDatabase(), IsMySQL(), IsODBC(), IsOpen(), IsOracle(), ReadSQLClassInfos(), RequestSQLClassInfo(), SaveToDatabase(), SQLApplyCommands(), SQLCanStatement(), SQLCommit(), SQLDeleteAllTables(), SQLMaxIdentifierLength(), SQLMaximumValue(), SQLObjectInfo(), SQLObjectsInfo(), SQLQuery(), SQLRollback(), SQLStartTransaction(), SQLStatement(), SQLTestTable(), StoreObjectInTables(), TSQLFile(), UpdateKeyData(), VerifyLongStringTable(), VerifyObjectTable(), WriteKeyData(), and ~TSQLFile().
|
protected |
! list of SQL class infos
Definition at line 151 of file TSQLFile.h.
Referenced by DeleteKeyFromDB(), FindSQLClassInfo(), HasTable(), ReadSQLClassInfos(), RequestSQLClassInfo(), and ~TSQLFile().
|
protected |
! version of SQL I/O which is stored in configurations
Definition at line 154 of file TSQLFile.h.
Referenced by CreateBasicTables(), and ReadConfigurations().
|
protected |
! count numbers of active statements
Definition at line 171 of file TSQLFile.h.
Referenced by SQLDeleteStatement(), and SQLStatement().
|
protected |
! type, used in CREATE TABLE statements
Definition at line 157 of file TSQLFile.h.
Referenced by AddIdEntry(), CreateBasicTables(), CreateClassTable(), CreateRawTable(), GetTablesType(), ReadConfigurations(), SetTablesType(), TSQLFile(), VerifyLongStringTable(), and VerifyObjectTable().
|
protected |
! use indexes for tables: 0 - off, 1 - only for basic tables, 2 + normal class tables, 3 - all tables
Definition at line 159 of file TSQLFile.h.
Referenced by CreateBasicTables(), GetUseIndexes(), ReadConfigurations(), SetUseIndexes(), and TSQLFile().
|
protected |
! user name, used to access objects from database
Definition at line 166 of file TSQLFile.h.
|
protected |
! use suffixes in column names like fValue:Int_t or fObject:pointer
Definition at line 153 of file TSQLFile.h.
Referenced by CreateBasicTables(), GetUseSuffixes(), ReadConfigurations(), and SetUseSuffixes().
|
protected |
! use transaction statements for writing data into the tables
Definition at line 158 of file TSQLFile.h.
Referenced by CreateBasicTables(), GetUseTransactions(), ReadConfigurations(), SetUseTransactions(), and TSQLFile().