Logo ROOT   6.08/07
Reference Guide
TSQLFile.h
Go to the documentation of this file.
1 // @(#)root/sql:$Id$
2 // Author: Sergey Linev 20/11/2005
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TSQLFile
13 #define ROOT_TSQLFile
14 
15 #ifndef ROOT_TFile
16 #include "TFile.h"
17 #endif
18 #include <stdlib.h>
19 
20 class TList;
21 class TStreamerElement;
23 
24 class TSQLServer;
25 class TSQLStatement;
26 class TSQLResult;
27 class TSQLRow;
28 class TKeySQL;
29 class TBufferSQL2;
30 class TSQLClassInfo;
31 
32 class TSQLFile : public TFile {
33 
34  friend class TBufferSQL2;
35  friend class TKeySQL;
36  friend class TSQLStructure;
37  friend class TSQLTableData;
38  friend class TSqlRegistry;
39  friend class TSqlRawBuffer;
40  friend class TSqlCmdsBuffer;
41 
42 protected:
44  kLockFree = 0,
46  };
47 
48  // Interface to basic system I/O routines, suppressed
49  virtual Int_t SysOpen(const char*, Int_t, UInt_t) { return 0; }
50  virtual Int_t SysClose(Int_t) { return 0; }
51  virtual Int_t SysRead(Int_t, void*, Int_t) { return 0; }
52  virtual Int_t SysWrite(Int_t, const void*, Int_t) { return 0; }
53  virtual Long64_t SysSeek(Int_t, Long64_t, Int_t) { return 0; }
54  virtual Int_t SysStat(Int_t, Long_t*, Long64_t*, Long_t*, Long_t*) { return 0; }
55  virtual Int_t SysSync(Int_t) { return 0; }
56 
57  // Overwrite methods for directory I/O
59  virtual Int_t DirReadKeys(TDirectory*);
60  virtual void DirWriteKeys(TDirectory*);
61  virtual void DirWriteHeader(TDirectory*);
62 
63  // functions to manipulate basic tables (Configurations, Objects, Keys) in database
64  void SaveToDatabase();
67  void InitSqlDatabase(Bool_t create);
68  void CreateBasicTables();
70  void SetLocking(Int_t mode);
71  Int_t GetLocking();
72 
73  // function for read/write access infos
76 
77  // generic sql functions
78  TSQLResult* SQLQuery(const char* cmd, Int_t flag = 0, Bool_t* res = 0);
80  TSQLStatement* SQLStatement(const char* cmd, Int_t bufsize = 1000);
83  Bool_t SQLTestTable(const char* tablename);
84  Long64_t SQLMaximumValue(const char* tablename, const char* columnname);
85  void SQLDeleteAllTables();
87  Bool_t SQLCommit();
90 
91  // operation with keys structures in database
92  void DeleteKeyFromDB(Long64_t keyid);
95  TKeySQL* FindSQLKey(TDirectory* dir, Long64_t keyid);
97  Int_t StreamKeysForDirectory(TDirectory* dir, Bool_t doupdate, Long64_t specialkeyid = -1, TKeySQL** specialkey = 0);
98 
99  // handling SQL class info structures
100  TSQLClassInfo* FindSQLClassInfo(const char* clname, Int_t version);
102  TSQLClassInfo* RequestSQLClassInfo(const char* clname, Int_t version);
104  Bool_t CreateClassTable(TSQLClassInfo* sqlinfo, TObjArray* colinfos);
106 
107  Bool_t ProduceClassSelectQuery(TVirtualStreamerInfo* info, TSQLClassInfo* sqlinfo, TString& columns, TString& tables, Int_t& tablecnt);
108  void AddIdEntry(Long64_t tableid, Int_t subid, Int_t type,
109  const char* name, const char* sqlname, const char* info);
110  void ReadSQLClassInfos();
111  TString DefineTableName(const char* clname, Int_t version, Bool_t rawtable);
112  Bool_t HasTable(const char* name);
113 
114  // operations with long string table
115  TString CodeLongString(Long64_t objid, Int_t strid);
116  Int_t IsLongStringCode(Long64_t objid, const char* value);
118  Bool_t GetLongString(Long64_t objid, Int_t strid, TString& value);
119 
120  // operation with object tables in database
122  Bool_t SQLObjectInfo(Long64_t objid, TString& clname, Version_t &version);
125  TSQLResult* GetNormalClassDataAll(Long64_t minobjid, Long64_t maxobjid, TSQLClassInfo* sqlinfo);
128  Long64_t StoreObjectInTables(Long64_t keyid, const void* obj, const TClass* cl);
129  Bool_t WriteSpecialObject(Long64_t keyid, TObject* obj, const char* name, const char* title);
130  TObject* ReadSpecialObject(Long64_t keyid, TObject* obj = 0);
131 
132  // sql specific types
133  const char* SQLCompatibleType(Int_t typ) const;
134  const char* SQLIntType() const;
135  const char* SQLSmallTextType() const { return fOtherTypes[0]; }
136  Int_t SQLSmallTextTypeLimit() const { return atoi(fOtherTypes[1]); }
137  const char* SQLBigTextType() const { return fOtherTypes[2]; }
138  const char* SQLDatetimeType() const { return fOtherTypes[3]; }
139  const char* SQLIdentifierQuote() const { return fOtherTypes[4]; }
140  const char* SQLDirIdColumn() const { return fOtherTypes[5]; }
141  const char* SQLKeyIdColumn() const { return fOtherTypes[6]; }
142  const char* SQLObjectIdColumn() const { return fOtherTypes[7]; }
143  const char* SQLRawIdColumn() const { return fOtherTypes[8]; }
144  const char* SQLStrIdColumn() const { return fOtherTypes[9]; }
145  const char* SQLNameSeparator() const { return fOtherTypes[10]; }
146  const char* SQLValueQuote() const { return fOtherTypes[11]; }
147  const char* SQLDefaultTableType() const { return fOtherTypes[12]; }
148 
149  TSQLServer* fSQL; ///<! interface to SQL database
150 
151  TList* fSQLClassInfos; ///<! list of SQL class infos
152 
153  Bool_t fUseSuffixes; ///<! use suffixes in column names like fValue:Int_t or fObject:pointer
154  Int_t fSQLIOversion; ///<! version of SQL I/O which is stored in configurations
155  Int_t fArrayLimit; ///<! limit for array size. when array bigger, its content converted to raw format
156  Bool_t fCanChangeConfig; ///<! variable indicates can be basic configuration changed or not
157  TString fTablesType; ///<! type, used in CREATE TABLE statements
158  Int_t fUseTransactions; ///<! use transaction statements for writing data into the tables
159  Int_t fUseIndexes; ///<! use indexes for tables: 0 - off, 1 - only for basic tables, 2 + normal class tables, 3 - all tables
160  Int_t fModifyCounter; ///<! indicates how many changes was done with database tables
161  Int_t fQuerisCounter; ///<! how many query was applied
162 
163  const char** fBasicTypes; ///<! pointer on list of basic types specific for currently connected SQL server
164  const char** fOtherTypes; ///<! pointer on list of other SQL types like TEXT or blob
165 
166  TString fUserName; ///<! user name, used to access objects from database
167 
168  std::ofstream* fLogFile; ///<! log file with SQL statements
169 
170  Bool_t fIdsTableExists; ///<! indicate if IdsTable exists
171  Int_t fStmtCounter; ///<! count numbers of active statements
172 
173 private:
174  //let the compiler do the job. gcc complains when the following line is activated
175  //TSQLFile(const TSQLFile &) {} //Files cannot be copied
176  void operator=(const TSQLFile &);
177 
178 public:
183  };
184 
190  };
191 
192  TSQLFile();
193  TSQLFile(const char* dbname, Option_t* option = "read", const char* user = "user", const char* pass = "pass");
194  virtual ~TSQLFile();
195 
196  // configuration of SQL
197  Bool_t GetUseSuffixes() const { return fUseSuffixes; }
198  void SetUseSuffixes(Bool_t on = kTRUE);
199  Int_t GetArrayLimit() const { return fArrayLimit; }
200  void SetArrayLimit(Int_t limit = 20);
202  void SetTablesType(const char* table_type);
203  const char* GetTablesType() const { return fTablesType.Data(); }
206  void SetUseIndexes(Int_t use_type = kIndexesBasic);
207  Int_t GetUseIndexes() const { return fUseIndexes; }
209 
212  Bool_t Commit();
213  Bool_t Rollback();
214 
215  // log file for SQL statements
216  void StartLogFile(const char* fname); // *MENU*
217  void StopLogFile(); // *MENU*
218 
219  virtual void Close(Option_t *option=""); // *MENU*
220  virtual TKey* CreateKey(TDirectory* mother, const TObject* obj, const char* name, Int_t bufsize);
221  virtual TKey* CreateKey(TDirectory* mother, const void* obj, const TClass* cl, const char* name, Int_t bufsize);
222  virtual void DrawMap(const char* ="*",Option_t* ="") {}
223  virtual void FillBuffer(char* &) {}
224  virtual void Flush() {}
225 
226  virtual Long64_t GetEND() const { return 0; }
227  virtual Int_t GetErrno() const { return 0; }
228  virtual void ResetErrno() const {}
229 
230  const char* GetDataBaseName() const;
231  virtual Int_t GetNfree() const { return 0; }
232  virtual Int_t GetNbytesInfo() const {return 0; }
233  virtual Int_t GetNbytesFree() const {return 0; }
234  virtual Long64_t GetSeekFree() const {return 0; }
235  virtual Long64_t GetSeekInfo() const {return 0; }
236  virtual Long64_t GetSize() const { return 0; }
237  virtual TList* GetStreamerInfoList();
238 
239  Bool_t IsMySQL() const;
240  virtual Bool_t IsOpen() const;
241  Bool_t IsOracle() const;
242  Bool_t IsODBC() const;
243 
244  virtual void MakeFree(Long64_t, Long64_t) {}
245  virtual void MakeProject(const char *, const char* ="*", Option_t* ="new") {} // *MENU*
246  virtual void Map() {} //
247  virtual void Paint(Option_t* ="") {}
248  virtual void Print(Option_t* ="") const {}
249  virtual Bool_t ReadBuffer(char*, Int_t) { return kFALSE; }
250  virtual Bool_t ReadBuffer(char*, Long64_t, Int_t) { return kFALSE; }
251  virtual void ReadFree() {}
252  virtual Int_t Recover() { return 0; }
253  virtual Int_t ReOpen(Option_t *mode);
254  virtual void Seek(Long64_t, ERelativeTo=kBeg) {}
255 
256  virtual void SetEND(Long64_t) {}
257  virtual Int_t Sizeof() const { return 0; }
258 
259  virtual Bool_t WriteBuffer(const char*, Int_t) { return kFALSE; }
260  virtual Int_t Write(const char* =0, Int_t=0, Int_t=0) { return 0; }
261  virtual Int_t Write(const char* =0, Int_t=0, Int_t=0) const { return 0; }
262  virtual void WriteFree() {}
263  virtual void WriteHeader();
264  virtual void WriteStreamerInfo();
265 
266  ClassDef(TSQLFile,1) // ROOT TFile interface to SQL database
267 };
268 
269 #endif
TSQLResult * GetBlobClassData(Long64_t objid, TSQLClassInfo *sqlinfo)
Method return request results for specified objid from streamer classtable.
Definition: TSQLFile.cxx:2485
friend class TSqlRegistry
Definition: TSQLFile.h:38
const char ** fOtherTypes
! pointer on list of other SQL types like TEXT or blob
Definition: TSQLFile.h:164
void StartLogFile(const char *fname)
start logging of all SQL statements in specified file
Definition: TSQLFile.cxx:477
An array of TObjects.
Definition: TObjArray.h:39
Bool_t fCanChangeConfig
! variable indicates can be basic configuration changed or not
Definition: TSQLFile.h:156
Bool_t SQLApplyCommands(TObjArray *cmds)
supplies set of commands to server Commands is stored as array of TObjString
Definition: TSQLFile.cxx:1498
TString CodeLongString(Long64_t objid, Int_t strid)
Produces id which will be placed in column instead of string itself.
Definition: TSQLFile.cxx:2245
Long64_t SQLMaximumValue(const char *tablename, const char *columnname)
Returns maximum value, found in specified columnname of table tablename Column type should be numeric...
Definition: TSQLFile.cxx:1533
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 upda...
Definition: TSQLFile.cxx:937
void InitSqlDatabase(Bool_t create)
initialize sql database and correspondent structures identical to TFile::Init() function ...
Definition: TSQLFile.cxx:1016
const char * SQLCompatibleType(Int_t typ) const
Returns sql type name which is most closer to ROOT basic type.
Definition: TSQLFile.cxx:2579
void StopLogFile()
close logging file
Definition: TSQLFile.cxx:486
long long Long64_t
Definition: RtypesCore.h:69
virtual Int_t Recover()
Attempt to recover file if not correctly closed.
Definition: TSQLFile.h:252
Bool_t SQLCommit()
Commit SQL transaction.
Definition: TSQLFile.cxx:1599
const char * SQLRawIdColumn() const
Definition: TSQLFile.h:143
TSQLResult * GetNormalClassDataAll(Long64_t minobjid, Long64_t maxobjid, TSQLClassInfo *sqlinfo)
Return data for several objects from the range from normal class table.
Definition: TSQLFile.cxx:2470
short Version_t
Definition: RtypesCore.h:61
std::ofstream * fLogFile
! log file with SQL statements
Definition: TSQLFile.h:168
TSQLResult * GetNormalClassData(Long64_t objid, TSQLClassInfo *sqlinfo)
Method return request result for specified objid from normal classtable.
Definition: TSQLFile.cxx:2456
ELockingKinds
Definition: TSQLFile.h:43
virtual Int_t SysRead(Int_t, void *, Int_t)
Interface to system read. All arguments like in POSIX read().
Definition: TSQLFile.h:51
const char Option_t
Definition: RtypesCore.h:62
TString fUserName
! user name, used to access objects from database
Definition: TSQLFile.h:166
Bool_t Rollback()
Rollback all operations, done after StartTransaction() call.
Definition: TSQLFile.cxx:619
virtual Int_t ReOpen(Option_t *mode)
Reopen a file with a different access mode, like from READ to See TFile::Open() for details...
Definition: TSQLFile.cxx:747
TSQLServer * fSQL
! interface to SQL database
Definition: TSQLFile.h:149
const char * SQLDatetimeType() const
Definition: TSQLFile.h:138
virtual Int_t SysStat(Int_t, Long_t *, Long64_t *, Long_t *, Long_t *)
Return file stat information.
Definition: TSQLFile.h:54
TString fTablesType
! type, used in CREATE TABLE statements
Definition: TSQLFile.h:157
TSQLFile()
default TSQLFile constructor
Definition: TSQLFile.cxx:278
virtual void DirWriteHeader(TDirectory *)
Update dir header in the file.
Definition: TSQLFile.cxx:2631
virtual void Paint(Option_t *="")
Paint all objects in the file.
Definition: TSQLFile.h:247
Int_t fUseTransactions
! use transaction statements for writing data into the tables
Definition: TSQLFile.h:158
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format...
Definition: TFile.h:50
Bool_t SQLStartTransaction()
Start SQL transaction.
Definition: TSQLFile.cxx:1591
void SQLDeleteStatement(TSQLStatement *stmt)
delete statement and decrease counter
Definition: TSQLFile.cxx:1485
const char * GetTablesType() const
Definition: TSQLFile.h:203
virtual Int_t SysSync(Int_t)
Interface to system fsync. All arguments like in POSIX fsync().
Definition: TSQLFile.h:55
Int_t IsLongStringCode(Long64_t objid, const char *value)
Checks if this is long string code returns 0, if not or string id.
Definition: TSQLFile.cxx:2256
Int_t GetQuerisCounter() const
Definition: TSQLFile.h:208
Contains information about tables specific to one class and version.
Definition: TSQLClassInfo.h:48
Basic string class.
Definition: TString.h:137
Bool_t UpdateKeyData(TKeySQL *key)
Updates (overwrites) key data in KeysTable.
Definition: TSQLFile.cxx:1739
int Int_t
Definition: RtypesCore.h:41
Long64_t StoreObjectInTables(Long64_t keyid, const void *obj, const TClass *cl)
Store object in database. Return stored object id or -1 if error.
Definition: TSQLFile.cxx:2532
bool Bool_t
Definition: RtypesCore.h:59
const Bool_t kFALSE
Definition: Rtypes.h:92
virtual void Flush()
Synchronize a file&#39;s in-memory and on-disk states.
Definition: TSQLFile.h:224
const char * SQLStrIdColumn() const
Definition: TSQLFile.h:144
TSQLClassInfo * RequestSQLClassInfo(const char *clname, Int_t version)
Search in database tables for specified class and return TSQLClassInfo object.
Definition: TSQLFile.cxx:1815
ERelativeTo
Definition: TFile.h:169
virtual Bool_t ReadBuffer(char *, Long64_t, Int_t)
Read a buffer from the file at the offset &#39;pos&#39; in the file.
Definition: TSQLFile.h:250
Int_t fStmtCounter
! count numbers of active statements
Definition: TSQLFile.h:171
void CreateBasicTables()
Creates initial tables in database This is table with configurations and table with keys Function cal...
Definition: TSQLFile.cxx:1133
friend class TSqlCmdsBuffer
Definition: TSQLFile.h:40
Bool_t ReadConfigurations()
read table configurations as special table
Definition: TSQLFile.cxx:1070
virtual Int_t GetNbytesFree() const
Definition: TSQLFile.h:233
virtual Int_t Write(const char *=0, Int_t=0, Int_t=0) const
One can not save a const TDirectory object.
Definition: TSQLFile.h:261
Bool_t HasTable(const char *name)
Test if table name exists.
Definition: TSQLFile.cxx:1893
Int_t fQuerisCounter
! how many query was applied
Definition: TSQLFile.h:161
virtual Long64_t GetEND() const
Definition: TSQLFile.h:226
virtual void FillBuffer(char *&)
Encode file output buffer.
Definition: TSQLFile.h:223
virtual void DrawMap(const char *="*", Option_t *="")
Draw map of objects in this file.
Definition: TSQLFile.h:222
Int_t fSQLIOversion
! version of SQL I/O which is stored in configurations
Definition: TSQLFile.h:154
Bool_t StartTransaction()
Start user transaction.
Definition: TSQLFile.cxx:591
virtual Int_t GetNfree() const
Definition: TSQLFile.h:231
const char ** fBasicTypes
! pointer on list of basic types specific for currently connected SQL server
Definition: TSQLFile.h:163
Bool_t GetUseSuffixes() const
Definition: TSQLFile.h:197
virtual Int_t GetErrno() const
Method returning errno. Is overriden in TRFIOFile.
Definition: TSQLFile.h:227
Int_t GetUseTransactions() const
Definition: TSQLFile.h:205
#define ClassDef(name, id)
Definition: Rtypes.h:254
void SetLocking(Int_t mode)
Set locking mode for current database.
Definition: TSQLFile.cxx:1366
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 TVirtualStreamer...
Definition: TSQLFile.cxx:1265
Int_t SQLSmallTextTypeLimit() const
Definition: TSQLFile.h:136
EIndexesKinds
Definition: TSQLFile.h:185
TSQLResult * SQLQuery(const char *cmd, Int_t flag=0, Bool_t *res=0)
Submits query to SQL server.
Definition: TSQLFile.cxx:1425
This is hierarhical structure, which is created when data is written by TBufferSQL2.
void SkipArrayLimit()
Definition: TSQLFile.h:201
Int_t fModifyCounter
! indicates how many changes was done with database tables
Definition: TSQLFile.h:160
Bool_t CreateClassTable(TSQLClassInfo *sqlinfo, TObjArray *colinfos)
Create normal class table if required.
Definition: TSQLFile.cxx:2074
const char * SQLKeyIdColumn() const
Definition: TSQLFile.h:141
virtual Int_t SysClose(Int_t)
Interface to system close. All arguments like in POSIX close().
Definition: TSQLFile.h:50
TSQLStatement * SQLStatement(const char *cmd, Int_t bufsize=1000)
Produces SQL statement for currently conected DB server.
Definition: TSQLFile.cxx:1467
Book space in a file, create I/O buffers, to fill them, (un)compress them.
Definition: TKey.h:30
Bool_t IsTablesExists()
Checks if main keys table is existing.
Definition: TSQLFile.cxx:1350
virtual void DirWriteKeys(TDirectory *)
Write directory keys list to database.
Definition: TSQLFile.cxx:2623
virtual Bool_t IsOpen() const
return kTRUE if file is opened and can be accessed
Definition: TSQLFile.cxx:738
void IncrementModifyCounter()
Update value of modify counter in config table Modify counter used to indicate that something was cha...
Definition: TSQLFile.cxx:1215
virtual Int_t Write(const char *=0, Int_t=0, Int_t=0)
Write memory objects to this file.
Definition: TSQLFile.h:260
Bool_t SQLCanStatement()
Test if DB support statement and number of open statements is not exceeded.
Definition: TSQLFile.cxx:1455
Long64_t DefineNextKeyId()
Returns next possible key identifier.
Definition: TSQLFile.cxx:1775
Bool_t GetLongString(Long64_t objid, Int_t strid, TString &value)
Returns value of string, extracted from special table, where long strings are stored.
Definition: TSQLFile.cxx:2293
Int_t GetArrayLimit() const
Definition: TSQLFile.h:199
virtual Long64_t GetSeekFree() const
Definition: TSQLFile.h:234
Bool_t WriteKeyData(TKeySQL *key)
Add entry into keys table.
Definition: TSQLFile.cxx:1708
const char * GetDataBaseName() const
Return name of data base on the host For Oracle always return 0.
Definition: TSQLFile.cxx:653
A doubly linked list.
Definition: TList.h:47
const char * SQLDirIdColumn() const
Definition: TSQLFile.h:140
void ReadSQLClassInfos()
Read all class infos from IdsTable.
Definition: TSQLFile.cxx:1918
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.
Definition: TSQLFile.cxx:2028
virtual TKey * CreateKey(TDirectory *mother, const TObject *obj, const char *name, Int_t bufsize)
create SQL key, which will store object in data base
Definition: TSQLFile.cxx:794
virtual void Print(Option_t *="") const
Print all objects in the file.
Definition: TSQLFile.h:248
virtual Int_t SysWrite(Int_t, const void *, Int_t)
Interface to system write. All arguments like in POSIX write().
Definition: TSQLFile.h:52
TString DefineTableName(const char *clname, Int_t version, Bool_t rawtable)
Proposes table name for class.
Definition: TSQLFile.cxx:1847
virtual ~TSQLFile()
destructor of TSQLFile object
Definition: TSQLFile.cxx:711
Access an SQL db via the TFile interface.
Definition: TSQLFile.h:32
Bool_t Commit()
Commit transaction, started by StartTransaction() call.
Definition: TSQLFile.cxx:605
virtual void Map()
List the contents of a file sequentially.
Definition: TSQLFile.h:246
TSQLClassInfo * FindSQLClassInfo(const char *clname, Int_t version)
Return (if exists) TSQLClassInfo for specified class name and version.
Definition: TSQLFile.cxx:1790
Bool_t IsODBC() const
checks, if ODBC driver used for database connection
Definition: TSQLFile.cxx:515
virtual void WriteFree()
Write FREE linked list on the file.
Definition: TSQLFile.h:262
virtual void ReadFree()
Read the FREE linked list.
Definition: TSQLFile.h:251
TSQLStatement * GetBlobClassDataStmt(Long64_t objid, TSQLClassInfo *sqlinfo)
Method return request results for specified objid from streamer classtable Data returned in form of s...
Definition: TSQLFile.cxx:2502
friend class TSqlRawBuffer
Definition: TSQLFile.h:39
virtual TList * GetStreamerInfoList()
Read back streamer infos from database List of streamer infos is always stored with key:id 0...
Definition: TSQLFile.cxx:905
Bool_t SQLRollback()
Rollback all SQL operations, done after start transaction.
Definition: TSQLFile.cxx:1607
unsigned int UInt_t
Definition: RtypesCore.h:42
TObjArray * SQLObjectsInfo(Long64_t keyid)
Produce array of TSQLObjectInfo objects for all objects, belong to that key Array should be deleted b...
Definition: TSQLFile.cxx:2393
The ROOT global object gROOT contains a list of all defined classes.
Definition: TClass.h:81
void SetUseIndexes(Int_t use_type=kIndexesBasic)
Specify usage of indexes for data tables Index Description kIndexesNone = 0 no indexes are used kInd...
Definition: TSQLFile.cxx:641
void operator=(const TSQLFile &)
make private to exclude copy operator
Definition: TSQLFile.cxx:731
TString MakeSelectQuery(TClass *cl)
Produce SELECT statement which can be used to get all data of class cl in one SELECT statement...
Definition: TSQLFile.cxx:1244
void DeleteKeyFromDB(Long64_t keyid)
Remove key with specified id from keys table also removes all objects data, related to this table...
Definition: TSQLFile.cxx:1629
void SetArrayLimit(Int_t limit=20)
Defines maximum number of columns for array representation If array size bigger than limit...
Definition: TSQLFile.cxx:542
virtual Long64_t GetSize() const
Returns the current file size.
Definition: TSQLFile.h:236
const char * SQLBigTextType() const
Definition: TSQLFile.h:137
Converts data to SQL statements or read data from SQL tables.
Definition: TBufferSQL2.h:36
long Long_t
Definition: RtypesCore.h:50
Bool_t IsOracle() const
checks, if Oracle database
Definition: TSQLFile.cxx:506
Bool_t CreateRawTable(TSQLClassInfo *sqlinfo)
Create the raw table.
Definition: TSQLFile.cxx:2163
Int_t GetLocking()
Return current locking mode for that file.
Definition: TSQLFile.cxx:1383
const char * SQLValueQuote() const
Definition: TSQLFile.h:146
ETransactionKinds
Definition: TSQLFile.h:179
virtual Bool_t WriteBuffer(const char *, Int_t)
Write a buffer to the file.
Definition: TSQLFile.h:259
Describe directory structure in memory.
Definition: TDirectory.h:44
virtual void MakeProject(const char *, const char *="*", Option_t *="new")
Generate source code necessary to access the objects stored in the file.
Definition: TSQLFile.h:245
int type
Definition: TGX11.cxx:120
Bool_t SQLTestTable(const char *tablename)
Test, if table of specified name exists.
Definition: TSQLFile.cxx:1516
virtual Bool_t ReadBuffer(char *, Int_t)
Read a buffer from the file.
Definition: TSQLFile.h:249
virtual void Seek(Long64_t, ERelativeTo=kBeg)
Seek to a specific position in the file. Pos it either kBeg, kCur or kEnd.
Definition: TSQLFile.h:254
const char * SQLNameSeparator() const
Definition: TSQLFile.h:145
Bool_t IsMySQL() const
checks, if MySQL database
Definition: TSQLFile.cxx:497
Mother of all ROOT objects.
Definition: TObject.h:37
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...
Definition: TSQLFile.cxx:854
void SetTablesType(const char *table_type)
Defines tables type, which is used in CREATE TABLE statements Now is only used for MySQL database...
Definition: TSQLFile.cxx:556
void SaveToDatabase()
save data which is not yet in Database Typically this is streamerinfos structures or ...
Definition: TSQLFile.cxx:924
void SetUseTransactions(Int_t mode=kTransactionsAuto)
Defines usage of transactions statements for writing objects data to database.
Definition: TSQLFile.cxx:574
Bool_t fIdsTableExists
! indicate if IdsTable exists
Definition: TSQLFile.h:170
virtual void MakeFree(Long64_t, Long64_t)
Mark unused bytes on the file.
Definition: TSQLFile.h:244
Bool_t SQLObjectInfo(Long64_t objid, TString &clname, Version_t &version)
Read from objects table data for specified objectid.
Definition: TSQLFile.cxx:2365
virtual void WriteStreamerInfo()
Store all TVirtualStreamerInfo, used in file, in sql database.
Definition: TSQLFile.cxx:818
virtual void ResetErrno() const
Method resetting the errno. Is overridden in TRFIOFile.
Definition: TSQLFile.h:228
Bool_t VerifyLongStringTable()
Checks that table for big strings is exists If not, will be created.
Definition: TSQLFile.cxx:2217
const char * SQLObjectIdColumn() const
Definition: TSQLFile.h:142
virtual Long64_t DirCreateEntry(TDirectory *)
Create entry for directory in database.
Definition: TSQLFile.cxx:2595
virtual Long64_t GetSeekInfo() const
Definition: TSQLFile.h:235
virtual Int_t SysOpen(const char *, Int_t, UInt_t)
Interface to system open. All arguments like in POSIX open().
Definition: TSQLFile.h:49
TKeySQL represents metainforamtion about object, which was written to SQL database.
Definition: TKeySQL.h:22
TObject * ReadSpecialObject(Long64_t keyid, TObject *obj=0)
Read data of special kind of objects.
Definition: TSQLFile.cxx:877
virtual void WriteHeader()
Write file info like configurations, title, UUID and other.
Definition: TSQLFile.cxx:810
Bool_t IsReadAccess()
dummy, in future should check about read access to database
Definition: TSQLFile.cxx:1409
virtual Int_t Sizeof() const
Return the size in bytes of the file header.
Definition: TSQLFile.h:257
TKeySQL * FindSQLKey(TDirectory *dir, Long64_t keyid)
Search for TKeySQL object with specified keyid.
Definition: TSQLFile.cxx:1689
Bool_t fUseSuffixes
! use suffixes in column names like fValue:Int_t or fObject:pointer
Definition: TSQLFile.h:153
TList * fSQLClassInfos
! list of SQL class infos
Definition: TSQLFile.h:151
const char * SQLSmallTextType() const
Definition: TSQLFile.h:135
void SQLDeleteAllTables()
Delete all tables in database.
Definition: TSQLFile.cxx:1569
void SetUseSuffixes(Bool_t on=kTRUE)
enable/disable uasge of suffixes in columns names can be changed before first object is saved into fi...
Definition: TSQLFile.cxx:526
Abstract Interface class describing Streamer information for one class.
const Bool_t kTRUE
Definition: Rtypes.h:91
Int_t SQLMaxIdentifierLength()
returns maximum allowed length of identifiers
Definition: TSQLFile.cxx:1615
virtual Int_t DirReadKeys(TDirectory *)
Read directory list of keys from database.
Definition: TSQLFile.cxx:2609
Int_t fUseIndexes
! use indexes for tables: 0 - off, 1 - only for basic tables, 2 + normal class tables, 3 - all tables
Definition: TSQLFile.h:159
Int_t fArrayLimit
! limit for array size. when array bigger, its content converted to raw format
Definition: TSQLFile.h:155
const char * SQLIntType() const
return SQL integer type
Definition: TSQLFile.cxx:2587
Int_t GetUseIndexes() const
Definition: TSQLFile.h:207
const char * SQLDefaultTableType() const
Definition: TSQLFile.h:147
virtual Long64_t SysSeek(Int_t, Long64_t, Int_t)
Interface to system lseek.
Definition: TSQLFile.h:53
virtual void SetEND(Long64_t)
Definition: TSQLFile.h:256
const char * SQLIdentifierQuote() const
Definition: TSQLFile.h:139
char name[80]
Definition: TGX11.cxx:109
virtual Int_t GetNbytesInfo() const
Definition: TSQLFile.h:232
virtual void Close(Option_t *option="")
Close a SQL file For more comments see TFile::Close() function.
Definition: TSQLFile.cxx:665
Bool_t IsWriteAccess()
Checkis, if lock is free in configuration tables.
Definition: TSQLFile.cxx:1358
Long64_t VerifyObjectTable()
Checks that objects table is exists If not, table will be created Returns maximum value for existing ...
Definition: TSQLFile.cxx:2322
const char * Data() const
Definition: TString.h:349