Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
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#include "TFile.h"
16#include <stdlib.h>
17
18class TList;
21
22class TSQLServer;
23class TSQLStatement;
24class TSQLResult;
25class TSQLRow;
26class TKeySQL;
27class TBufferSQL2;
28class TSQLClassInfo;
29
30class TSQLFile final : public TFile {
31
32 friend class TBufferSQL2;
33 friend class TKeySQL;
34 friend class TSQLStructure;
35 friend class TSQLTableData;
36 friend class TSqlRegistry;
37 friend class TSqlRawBuffer;
38 friend class TSqlCmdsBuffer;
39
40protected:
42
43 // Interface to basic system I/O routines, suppressed
44 Int_t SysOpen(const char *, Int_t, UInt_t) final { return 0; }
45 Int_t SysClose(Int_t) final { return 0; }
46 Int_t SysRead(Int_t, void *, Int_t) final { return 0; }
47 Int_t SysWrite(Int_t, const void *, Int_t) final { return 0; }
48 Long64_t SysSeek(Int_t, Long64_t, Int_t) final { return 0; }
49 Int_t SysStat(Int_t, Long_t *, Long64_t *, Long_t *, Long_t *) final { return 0; }
50 Int_t SysSync(Int_t) final { return 0; }
51
52 // Overwrite methods for directory I/O
55 void DirWriteKeys(TDirectory *) final;
56 void DirWriteHeader(TDirectory *) final;
57
58 InfoListRet GetStreamerInfoListImpl(bool) final;
59
60 // functions to manipulate basic tables (Configurations, Objects, Keys) in database
61 void SaveToDatabase();
65 void CreateBasicTables();
67 void SetLocking(Int_t mode);
69
70 // function for read/write access infos
73
74 // generic sql functions
75 TSQLResult *SQLQuery(const char *cmd, Int_t flag = 0, Bool_t *res = nullptr);
77 TSQLStatement *SQLStatement(const char *cmd, Int_t bufsize = 1000);
80 Bool_t SQLTestTable(const char *tablename);
81 Long64_t SQLMaximumValue(const char *tablename, const char *columnname);
82 void SQLDeleteAllTables();
87
88 // operation with keys structures in database
89 void DeleteKeyFromDB(Long64_t keyid);
94 Int_t StreamKeysForDirectory(TDirectory *dir, Bool_t doupdate, Long64_t specialkeyid = -1, TKeySQL **specialkey = nullptr);
95
96 // handling SQL class info structures
97 TSQLClassInfo *FindSQLClassInfo(const char *clname, Int_t version);
99 TSQLClassInfo *RequestSQLClassInfo(const char *clname, Int_t version);
101 Bool_t CreateClassTable(TSQLClassInfo *sqlinfo, TObjArray *colinfos);
103
105 Int_t &tablecnt);
106 void AddIdEntry(Long64_t tableid, Int_t subid, Int_t type, const char *name, const char *sqlname, const char *info);
107 void ReadSQLClassInfos();
108 TString DefineTableName(const char *clname, Int_t version, Bool_t rawtable);
109 Bool_t HasTable(const char *name);
110
111 // operations with long string table
112 TString CodeLongString(Long64_t objid, Int_t strid);
113 Int_t IsLongStringCode(Long64_t objid, const char *value);
116
117 // operation with object tables in database
119 Bool_t SQLObjectInfo(Long64_t objid, TString &clname, Version_t &version);
122 TSQLResult *GetNormalClassDataAll(Long64_t minobjid, Long64_t maxobjid, TSQLClassInfo *sqlinfo);
125 Long64_t StoreObjectInTables(Long64_t keyid, const void *obj, const TClass *cl);
126 Bool_t WriteSpecialObject(Long64_t keyid, TObject *obj, const char *name, const char *title);
127 TObject *ReadSpecialObject(Long64_t keyid, TObject *obj = nullptr);
128
129 // sql specific types
130 const char *SQLCompatibleType(Int_t typ) const;
131 const char *SQLIntType() const;
132 const char *SQLSmallTextType() const { return fOtherTypes[0]; }
133 Int_t SQLSmallTextTypeLimit() const { return atoi(fOtherTypes[1]); }
134 const char *SQLBigTextType() const { return fOtherTypes[2]; }
135 const char *SQLDatetimeType() const { return fOtherTypes[3]; }
136 const char *SQLIdentifierQuote() const { return fOtherTypes[4]; }
137 const char *SQLDirIdColumn() const { return fOtherTypes[5]; }
138 const char *SQLKeyIdColumn() const { return fOtherTypes[6]; }
139 const char *SQLObjectIdColumn() const { return fOtherTypes[7]; }
140 const char *SQLRawIdColumn() const { return fOtherTypes[8]; }
141 const char *SQLStrIdColumn() const { return fOtherTypes[9]; }
142 const char *SQLNameSeparator() const { return fOtherTypes[10]; }
143 const char *SQLValueQuote() const { return fOtherTypes[11]; }
144 const char *SQLDefaultTableType() const { return fOtherTypes[12]; }
145
146 TSQLServer *fSQL; ///<! interface to SQL database
147
148 TList *fSQLClassInfos; ///<! list of SQL class infos
149
150 Bool_t fUseSuffixes; ///<! use suffixes in column names like fValue:Int_t or fObject:pointer
151 Int_t fSQLIOversion; ///<! version of SQL I/O which is stored in configurations
152 Int_t fArrayLimit; ///<! limit for array size. when array bigger, its content converted to raw format
153 Bool_t fCanChangeConfig; ///<! variable indicates can be basic configuration changed or not
154 TString fTablesType; ///<! type, used in CREATE TABLE statements
155 Int_t fUseTransactions; ///<! use transaction statements for writing data into the tables
156 Int_t fUseIndexes; ///<! use indexes for tables: 0 - off, 1 - only for basic tables, 2 + normal class tables, 3 - all tables
157 Int_t fModifyCounter; ///<! indicates how many changes was done with database tables
158 Int_t fQuerisCounter; ///<! how many query was applied
159
160 const char **fBasicTypes; ///<! pointer on list of basic types specific for currently connected SQL server
161 const char **fOtherTypes; ///<! pointer on list of other SQL types like TEXT or blob
162
163 TString fUserName; ///<! user name, used to access objects from database
164
165 std::ofstream *fLogFile; ///<! log file with SQL statements
166
167 Bool_t fIdsTableExists; ///<! indicate if IdsTable exists
168 Int_t fStmtCounter; ///<! count numbers of active statements
169
170private:
171 TSQLFile(const TSQLFile &) = delete; //Files cannot be copied - not implemented
172 void operator=(const TSQLFile &) = delete; //Files cannot be copied - not implemented
173
174public:
176
178
179 TSQLFile();
180 TSQLFile(const char *dbname, Option_t *option = "read", const char *user = "user", const char *pass = "pass");
181 ~TSQLFile() override;
182
183 // configuration of SQL
186 Int_t GetArrayLimit() const { return fArrayLimit; }
187 void SetArrayLimit(Int_t limit = 20);
189 void SetTablesType(const char *table_type);
190 const char *GetTablesType() const { return fTablesType.Data(); }
193 void SetUseIndexes(Int_t use_type = kIndexesBasic);
194 Int_t GetUseIndexes() const { return fUseIndexes; }
196 Int_t GetIOVersion() const { return fSQLIOversion; }
197
200 Bool_t Commit();
202
203 // log file for SQL statements
204 void StartLogFile(const char *fname); // *MENU*
205 void StopLogFile(); // *MENU*
206
207 void Close(Option_t *option = "") final; // *MENU*
208 TKey *CreateKey(TDirectory *mother, const TObject *obj, const char *name, Int_t bufsize) final;
209 TKey *CreateKey(TDirectory *mother, const void *obj, const TClass *cl, const char *name, Int_t bufsize) final;
210 void DrawMap(const char * = "*", Option_t * = "") final {}
211 void FillBuffer(char *&) final {}
212 void Flush() final {}
213
214 Long64_t GetEND() const final { return 0; }
215 Int_t GetErrno() const final { return 0; }
216 void ResetErrno() const final {}
217
218 const char *GetDataBaseName() const;
219 Int_t GetNfree() const final { return 0; }
220 Int_t GetNbytesInfo() const final{ return 0; }
221 Int_t GetNbytesFree() const final { return 0; }
222 Long64_t GetSeekFree() const final { return 0; }
223 Long64_t GetSeekInfo() const final { return 0; }
224 Long64_t GetSize() const final { return 0; }
225
226 Bool_t IsOpen() const final;
227 Bool_t IsMySQL() const;
228 Bool_t IsOracle() const;
229 Bool_t IsODBC() const;
230
231 void MakeFree(Long64_t, Long64_t) final {}
232 void MakeProject(const char *, const char * = "*", Option_t * = "new") final {} // *MENU*
233 void Map(Option_t *) final {} //
234 void Map() final {} //
235 void Paint(Option_t * = "") final {}
236 void Print(Option_t * = "") const final {}
237 Bool_t ReadBuffer(char *, Int_t) final { return kFALSE; }
238 Bool_t ReadBuffer(char *, Long64_t, Int_t) final { return kFALSE; }
239 void ReadFree() final {}
240 Int_t Recover() final { return 0; }
241 Int_t ReOpen(Option_t *mode) final;
242 void Seek(Long64_t, ERelativeTo = kBeg) final {}
243
244 void SetEND(Long64_t) final {}
245 Int_t Sizeof() const final { return 0; }
246
247 Bool_t WriteBuffer(const char *, Int_t) final { return kFALSE; }
248 Int_t Write(const char * = nullptr, Int_t = 0, Int_t = 0) final { return 0; }
249 Int_t Write(const char * = nullptr, Int_t = 0, Int_t = 0) const final { return 0; }
250 void WriteFree() final {}
251 void WriteHeader() final;
252 void WriteStreamerInfo() final;
253
254 ClassDefOverride(TSQLFile, 1) // ROOT TFile interface to SQL database
255};
256
257#endif
virtual RooAbsTestStatistic * create(const char *name, const char *title, RooAbsReal &real, RooAbsData &data, const RooArgSet &projDeps, Configuration const &cfg)=0
bool Bool_t
Definition RtypesCore.h:63
int Int_t
Definition RtypesCore.h:45
short Version_t
Definition RtypesCore.h:65
long Long_t
Definition RtypesCore.h:54
constexpr Bool_t kFALSE
Definition RtypesCore.h:101
long long Long64_t
Definition RtypesCore.h:80
constexpr Bool_t kTRUE
Definition RtypesCore.h:100
const char Option_t
Definition RtypesCore.h:66
#define ClassDefOverride(name, id)
Definition Rtypes.h:341
Option_t Option_t option
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void on
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
Option_t Option_t TPoint TPoint const char mode
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
char name[80]
Definition TGX11.cxx:110
Converts data to SQL statements or read data from SQL tables.
Definition TBufferSQL2.h:27
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition TClass.h:81
Describe directory structure in memory.
Definition TDirectory.h:45
A ROOT file is an on-disk file, usually with extension .root, that stores objects in a file-system-li...
Definition TFile.h:53
ERelativeTo
Definition TFile.h:199
@ kBeg
Definition TFile.h:199
TKeySQL represents meta-information about object, which was written to SQL database.
Definition TKeySQL.h:19
Book space in a file, create I/O buffers, to fill them, (un)compress them.
Definition TKey.h:28
A doubly linked list.
Definition TList.h:38
An array of TObjects.
Definition TObjArray.h:31
Mother of all ROOT objects.
Definition TObject.h:41
Contains information about tables specific to one class and version.
Access an SQL db via the TFile interface.
Definition TSQLFile.h:30
Int_t Sizeof() const final
Return the size in bytes of the file header.
Definition TSQLFile.h:245
Bool_t CreateClassTable(TSQLClassInfo *sqlinfo, TObjArray *colinfos)
Create normal class table if required.
TString MakeSelectQuery(TClass *cl)
Produce SELECT statement which can be used to get all data of class cl in one SELECT statement.
const char * SQLIdentifierQuote() const
Definition TSQLFile.h:136
void DrawMap(const char *="*", Option_t *="") final
Draw map of objects in this file.
Definition TSQLFile.h:210
Int_t DirReadKeys(TDirectory *) final
Read directory list of keys from database.
Int_t SysWrite(Int_t, const void *, Int_t) final
Interface to system write. All arguments like in POSIX write().
Definition TSQLFile.h:47
Long64_t VerifyObjectTable()
Checks that objects table is exists If not, table will be created Returns maximum value for existing ...
ELockingKinds
Definition TSQLFile.h:41
@ kLockBusy
Definition TSQLFile.h:41
@ kLockFree
Definition TSQLFile.h:41
void SkipArrayLimit()
Definition TSQLFile.h:188
TSQLResult * GetNormalClassData(Long64_t objid, TSQLClassInfo *sqlinfo)
Method return request result for specified objid from normal classtable.
Int_t GetIOVersion() const
Definition TSQLFile.h:196
TSQLFile()
default TSQLFile constructor
Definition TSQLFile.cxx:271
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:829
void StartLogFile(const char *fname)
start logging of all SQL statements in specified file
Definition TSQLFile.cxx:447
Bool_t fUseSuffixes
! use suffixes in column names like fValue:Int_t or fObject:pointer
Definition TSQLFile.h:150
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.
TKey * CreateKey(TDirectory *mother, const TObject *obj, const char *name, Int_t bufsize) final
create SQL key, which will store object in data base
Definition TSQLFile.cxx:766
Bool_t ReadConfigurations()
read table configurations as special table
Int_t SysSync(Int_t) final
Interface to system fsync. All arguments like in POSIX fsync().
Definition TSQLFile.h:50
TSQLFile(const TSQLFile &)=delete
const char * GetTablesType() const
Definition TSQLFile.h:190
Int_t IsLongStringCode(Long64_t objid, const char *value)
Checks if this is long string code returns 0, if not or string id.
void CreateBasicTables()
Creates initial tables in database This is table with configurations and table with keys Function cal...
Int_t GetUseTransactions() const
Definition TSQLFile.h:192
void WriteHeader() final
Write file info like configurations, title, UUID and other.
Definition TSQLFile.cxx:782
TSQLClassInfo * FindSQLClassInfo(const char *clname, Int_t version)
Return (if exists) TSQLClassInfo for specified class name and version.
TSQLResult * SQLQuery(const char *cmd, Int_t flag=0, Bool_t *res=nullptr)
Submits query to SQL server.
Long64_t GetEND() const final
Definition TSQLFile.h:214
const char * SQLDatetimeType() const
Definition TSQLFile.h:135
void ReadSQLClassInfos()
Read all class infos from IdsTable.
@ kIndexesNone
Definition TSQLFile.h:177
@ kIndexesAll
Definition TSQLFile.h:177
@ kIndexesBasic
Definition TSQLFile.h:177
@ kIndexesClass
Definition TSQLFile.h:177
Bool_t Commit()
Commit transaction, started by StartTransaction() call.
Definition TSQLFile.cxx:579
void IncrementModifyCounter()
Update value of modify counter in config table Modify counter used to indicate that something was cha...
Int_t fArrayLimit
! limit for array size. when array bigger, its content converted to raw format
Definition TSQLFile.h:152
void operator=(const TSQLFile &)=delete
void SetLocking(Int_t mode)
Set locking mode for current database.
Int_t ReOpen(Option_t *mode) final
Reopen a file with a different access mode, like from READ to See TFile::Open() for details.
Definition TSQLFile.cxx:719
Int_t GetNbytesFree() const final
Definition TSQLFile.h:221
ETransactionKinds
Definition TSQLFile.h:175
@ kTransactionsUser
Definition TSQLFile.h:175
@ kTransactionsAuto
Definition TSQLFile.h:175
@ kTransactionsOff
Definition TSQLFile.h:175
void Map() final
Definition TSQLFile.h:234
Bool_t SQLRollback()
Rollback all SQL operations, done after start transaction.
TObjArray * SQLObjectsInfo(Long64_t keyid)
Produce array of TSQLObjectInfo objects for all objects, belong to that key Array should be deleted b...
Bool_t GetUseSuffixes() const
Definition TSQLFile.h:184
Bool_t SQLCanStatement()
Test if DB support statement and number of open statements is not exceeded.
Bool_t CreateRawTable(TSQLClassInfo *sqlinfo)
Create the raw table.
Long64_t StoreObjectInTables(Long64_t keyid, const void *obj, const TClass *cl)
Store object in database. Return stored object id or -1 if error.
void InitSqlDatabase(Bool_t create)
initialize sql database and correspondent structures identical to TFile::Init() function
Definition TSQLFile.cxx:998
const char * SQLStrIdColumn() const
Definition TSQLFile.h:141
Bool_t IsOpen() const final
return kTRUE if file is opened and can be accessed
Definition TSQLFile.cxx:710
Bool_t SQLObjectInfo(Long64_t objid, TString &clname, Version_t &version)
Read from objects table data for specified objectid.
void MakeFree(Long64_t, Long64_t) final
Mark unused bytes on the file.
Definition TSQLFile.h:231
void MakeProject(const char *, const char *="*", Option_t *="new") final
Generate source code necessary to access the objects stored in the file.
Definition TSQLFile.h:232
Int_t GetNfree() const final
Definition TSQLFile.h:219
Int_t fQuerisCounter
! how many query was applied
Definition TSQLFile.h:158
const char * SQLValueQuote() const
Definition TSQLFile.h:143
const char * SQLBigTextType() const
Definition TSQLFile.h:134
Int_t GetLocking()
Return current locking mode for that file.
Bool_t HasTable(const char *name)
Test if table name exists.
TKeySQL * FindSQLKey(TDirectory *dir, Long64_t keyid)
Search for TKeySQL object with specified keyid.
Long64_t SysSeek(Int_t, Long64_t, Int_t) final
Interface to system lseek.
Definition TSQLFile.h:48
Bool_t ReadBuffer(char *, Long64_t, Int_t) final
Read a buffer from the file at the offset 'pos' in the file.
Definition TSQLFile.h:238
const char * SQLDefaultTableType() const
Definition TSQLFile.h:144
Bool_t Rollback()
Rollback all operations, done after StartTransaction() call.
Definition TSQLFile.cxx:593
Bool_t IsWriteAccess()
Checkis, if lock is free in configuration tables.
void ResetErrno() const final
Method resetting the errno.
Definition TSQLFile.h:216
Bool_t IsMySQL() const
checks, if MySQL database
Definition TSQLFile.cxx:467
InfoListRet GetStreamerInfoListImpl(bool) final
Read back streamer infos from database List of streamer infos is always stored with key:id 0,...
Definition TSQLFile.cxx:882
Bool_t ReadBuffer(char *, Int_t) final
Read a buffer from the file.
Definition TSQLFile.h:237
void SQLDeleteAllTables()
Delete all tables in database.
Bool_t IsOracle() const
checks, if Oracle database
Definition TSQLFile.cxx:477
Int_t SysClose(Int_t) final
Interface to system close. All arguments like in POSIX close().
Definition TSQLFile.h:45
Int_t GetErrno() const final
Method returning errno.
Definition TSQLFile.h:215
void Seek(Long64_t, ERelativeTo=kBeg) final
Seek to a specific position in the file. Pos it either kBeg, kCur or kEnd.
Definition TSQLFile.h:242
const char * SQLNameSeparator() const
Definition TSQLFile.h:142
void Paint(Option_t *="") final
Paint all objects in the file.
Definition TSQLFile.h:235
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:528
Int_t SQLSmallTextTypeLimit() const
Definition TSQLFile.h:133
const char * SQLKeyIdColumn() const
Definition TSQLFile.h:138
Long64_t GetSize() const final
Returns the current file size.
Definition TSQLFile.h:224
Bool_t WriteKeyData(TKeySQL *key)
Add entry into keys table.
void SetUseTransactions(Int_t mode=kTransactionsAuto)
Defines usage of transactions statements for writing objects data to database.
Definition TSQLFile.cxx:548
Int_t fStmtCounter
! count numbers of active statements
Definition TSQLFile.h:168
Bool_t fCanChangeConfig
! variable indicates can be basic configuration changed or not
Definition TSQLFile.h:153
TString CodeLongString(Long64_t objid, Int_t strid)
Produces id which will be placed in column instead of string itself.
void Map(Option_t *) final
List the contents of a file sequentially.
Definition TSQLFile.h:233
const char * SQLObjectIdColumn() const
Definition TSQLFile.h:139
Int_t Recover() final
Attempt to recover file if not correctly closed.
Definition TSQLFile.h:240
const char ** fOtherTypes
! pointer on list of other SQL types like TEXT or blob
Definition TSQLFile.h:161
Bool_t WriteBuffer(const char *, Int_t) final
Write a buffer to the file.
Definition TSQLFile.h:247
Bool_t fIdsTableExists
! indicate if IdsTable exists
Definition TSQLFile.h:167
TSQLStatement * GetBlobClassDataStmt(Long64_t objid, TSQLClassInfo *sqlinfo)
Method return request results for specified objid from streamer classtable Data returned in form of s...
TSQLResult * GetBlobClassData(Long64_t objid, TSQLClassInfo *sqlinfo)
Method return request results for specified objid from streamer classtable.
TObject * ReadSpecialObject(Long64_t keyid, TObject *obj=nullptr)
Read data of special kind of objects.
Definition TSQLFile.cxx:851
void DeleteKeyFromDB(Long64_t keyid)
Remove key with specified id from keys table also removes all objects data, related to this table.
void Flush() final
Synchronize a file's in-memory and on-disk states.
Definition TSQLFile.h:212
Long64_t GetSeekFree() const final
Definition TSQLFile.h:222
void Close(Option_t *option="") final
Close a SQL file For more comments see TFile::Close() function.
Definition TSQLFile.cxx:641
Bool_t SQLTestTable(const char *tablename)
Test, if table of specified name exists.
const char * SQLIntType() const
return SQL integer type
TSQLStatement * SQLStatement(const char *cmd, Int_t bufsize=1000)
Produces SQL statement for currently conected DB server.
void SQLDeleteStatement(TSQLStatement *stmt)
delete statement and decrease counter
TList * fSQLClassInfos
! list of SQL class infos
Definition TSQLFile.h:148
void FillBuffer(char *&) final
Encode file output buffer.
Definition TSQLFile.h:211
void DirWriteKeys(TDirectory *) final
Write directory keys list to database.
std::ofstream * fLogFile
! log file with SQL statements
Definition TSQLFile.h:165
Long64_t DefineNextKeyId()
Returns next possible key identifier.
Int_t SysStat(Int_t, Long_t *, Long64_t *, Long_t *, Long_t *) final
Return file stat information.
Definition TSQLFile.h:49
TSQLResult * GetNormalClassDataAll(Long64_t minobjid, Long64_t maxobjid, TSQLClassInfo *sqlinfo)
Return data for several objects from the range from normal class table.
Int_t SysRead(Int_t, void *, Int_t) final
Interface to system read. All arguments like in POSIX read().
Definition TSQLFile.h:46
Int_t GetUseIndexes() const
Definition TSQLFile.h:194
Int_t GetNbytesInfo() const final
Definition TSQLFile.h:220
void ReadFree() final
Read the FREE linked list.
Definition TSQLFile.h:239
void WriteStreamerInfo() final
Store all TVirtualStreamerInfo, used in file, in sql database.
Definition TSQLFile.cxx:790
void SaveToDatabase()
save data which is not yet in Database Typically this is streamerinfos structures or
Definition TSQLFile.cxx:906
Bool_t SQLApplyCommands(TObjArray *cmds)
supplies set of commands to server Commands is stored as array of TObjString
Int_t GetQuerisCounter() const
Definition TSQLFile.h:195
const char ** fBasicTypes
! pointer on list of basic types specific for currently connected SQL server
Definition TSQLFile.h:160
Long64_t DirCreateEntry(TDirectory *) final
Create entry for directory in database.
Bool_t IsReadAccess()
dummy, in future should check about read access to database
Int_t SQLMaxIdentifierLength()
returns maximum allowed length of identifiers
Bool_t GetLongString(Long64_t objid, Int_t strid, TString &value)
Returns value of string, extracted from special table, where long strings are stored.
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...
void WriteFree() final
Write FREE linked list on the file.
Definition TSQLFile.h:250
Bool_t SQLCommit()
Commit SQL transaction.
const char * SQLRawIdColumn() const
Definition TSQLFile.h:140
Bool_t UpdateKeyData(TKeySQL *key)
Updates (overwrites) key data in KeysTable.
TString fUserName
! user name, used to access objects from database
Definition TSQLFile.h:163
Int_t fUseIndexes
! use indexes for tables: 0 - off, 1 - only for basic tables, 2 + normal class tables,...
Definition TSQLFile.h:156
const char * GetDataBaseName() const
Return name of data base on the host For Oracle always return 0.
Definition TSQLFile.cxx:627
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:498
void SetEND(Long64_t) final
Definition TSQLFile.h:244
Int_t Write(const char *=nullptr, Int_t=0, Int_t=0) final
Write memory objects to this file.
Definition TSQLFile.h:248
Int_t fUseTransactions
! use transaction statements for writing data into the tables
Definition TSQLFile.h:155
Int_t StreamKeysForDirectory(TDirectory *dir, Bool_t doupdate, Long64_t specialkeyid=-1, TKeySQL **specialkey=nullptr)
read keys for specified directory (when update == kFALSE) or update value for modified keys when upda...
Definition TSQLFile.cxx:920
void Print(Option_t *="") const final
Print all objects in the file.
Definition TSQLFile.h:236
Int_t SysOpen(const char *, Int_t, UInt_t) final
Interface to system open. All arguments like in POSIX open().
Definition TSQLFile.h:44
TString DefineTableName(const char *clname, Int_t version, Bool_t rawtable)
Proposes table name for class.
Long64_t GetSeekInfo() const final
Definition TSQLFile.h:223
Bool_t IsTablesExists()
Checks if main keys table is existing.
Int_t Write(const char *=nullptr, Int_t=0, Int_t=0) const final
One can not save a const TDirectory object.
Definition TSQLFile.h:249
void StopLogFile()
close logging file
Definition TSQLFile.cxx:456
void SetArrayLimit(Int_t limit=20)
Defines maximum number of columns for array representation If array size bigger than limit,...
Definition TSQLFile.cxx:514
Long64_t SQLMaximumValue(const char *tablename, const char *columnname)
Returns maximum value, found in specified columnname of table tablename Column type should be numeric...
TSQLServer * fSQL
! interface to SQL database
Definition TSQLFile.h:146
TString fTablesType
! type, used in CREATE TABLE statements
Definition TSQLFile.h:154
TSQLClassInfo * RequestSQLClassInfo(const char *clname, Int_t version)
Search in database tables for specified class and return TSQLClassInfo object.
Int_t GetArrayLimit() const
Definition TSQLFile.h:186
Bool_t IsODBC() const
checks, if ODBC driver used for database connection
Definition TSQLFile.cxx:487
void DirWriteHeader(TDirectory *) final
Update dir header in the file.
Int_t fModifyCounter
! indicates how many changes was done with database tables
Definition TSQLFile.h:157
~TSQLFile() override
destructor of TSQLFile object
Definition TSQLFile.cxx:689
const char * SQLDirIdColumn() const
Definition TSQLFile.h:137
Int_t fSQLIOversion
! version of SQL I/O which is stored in configurations
Definition TSQLFile.h:151
Bool_t StartTransaction()
Start user transaction.
Definition TSQLFile.cxx:565
const char * SQLSmallTextType() const
Definition TSQLFile.h:132
void SetUseIndexes(Int_t use_type=kIndexesBasic)
Specify usage of indexes for data tables.
Definition TSQLFile.cxx:615
const char * SQLCompatibleType(Int_t typ) const
Returns sql type name which is most closer to ROOT basic type.
Bool_t VerifyLongStringTable()
Checks that table for big strings is exists If not, will be created.
Bool_t SQLStartTransaction()
Start SQL transaction.
This is hierarchical structure, which is created when data is written by TBufferSQL2.
Basic string class.
Definition TString.h:139
const char * Data() const
Definition TString.h:376
Abstract Interface class describing Streamer information for one class.