180 TSQLFile(
const char *dbname,
Option_t *option =
"read",
const char *user =
"user",
const char *pass =
"pass");
TSQLResult * GetBlobClassData(Long64_t objid, TSQLClassInfo *sqlinfo)
Method return request results for specified objid from streamer classtable.
friend class TSqlRegistry
const char ** fOtherTypes
! pointer on list of other SQL types like TEXT or blob
void StartLogFile(const char *fname)
start logging of all SQL statements in specified file
Bool_t fCanChangeConfig
! variable indicates can be basic configuration changed or not
Bool_t SQLApplyCommands(TObjArray *cmds)
supplies set of commands to server Commands is stored as array of TObjString
TString CodeLongString(Long64_t objid, Int_t strid)
Produces id which will be placed in column instead of string itself.
Long64_t SQLMaximumValue(const char *tablename, const char *columnname)
Returns maximum value, found in specified columnname of table tablename Column type should be numeric...
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...
void InitSqlDatabase(Bool_t create)
initialize sql database and correspondent structures identical to TFile::Init() function ...
const char * SQLCompatibleType(Int_t typ) const
Returns sql type name which is most closer to ROOT basic type.
void StopLogFile()
close logging file
virtual Int_t Recover()
Attempt to recover file if not correctly closed.
Bool_t SQLCommit()
Commit SQL transaction.
const char * SQLRawIdColumn() const
TSQLResult * GetNormalClassDataAll(Long64_t minobjid, Long64_t maxobjid, TSQLClassInfo *sqlinfo)
Return data for several objects from the range from normal class table.
std::ofstream * fLogFile
! log file with SQL statements
TSQLResult * GetNormalClassData(Long64_t objid, TSQLClassInfo *sqlinfo)
Method return request result for specified objid from normal classtable.
virtual Int_t SysRead(Int_t, void *, Int_t)
Interface to system read. All arguments like in POSIX read().
TString fUserName
! user name, used to access objects from database
Bool_t Rollback()
Rollback all operations, done after StartTransaction() call.
virtual Int_t ReOpen(Option_t *mode)
Reopen a file with a different access mode, like from READ to See TFile::Open() for details...
TSQLServer * fSQL
! interface to SQL database
const char * SQLDatetimeType() const
virtual Int_t SysStat(Int_t, Long_t *, Long64_t *, Long_t *, Long_t *)
Return file stat information.
TString fTablesType
! type, used in CREATE TABLE statements
TSQLFile()
default TSQLFile constructor
virtual void DirWriteHeader(TDirectory *)
Update dir header in the file.
virtual void Paint(Option_t *="")
Paint all objects in the file.
Int_t fUseTransactions
! use transaction statements for writing data into the tables
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format...
Bool_t SQLStartTransaction()
Start SQL transaction.
void SQLDeleteStatement(TSQLStatement *stmt)
delete statement and decrease counter
const char * GetTablesType() const
virtual Int_t SysSync(Int_t)
Interface to system fsync. All arguments like in POSIX fsync().
Int_t IsLongStringCode(Long64_t objid, const char *value)
Checks if this is long string code returns 0, if not or string id.
Int_t GetQuerisCounter() const
Contains information about tables specific to one class and version.
Bool_t UpdateKeyData(TKeySQL *key)
Updates (overwrites) key data in KeysTable.
Long64_t StoreObjectInTables(Long64_t keyid, const void *obj, const TClass *cl)
Store object in database. Return stored object id or -1 if error.
virtual void Flush()
Synchronize a file's in-memory and on-disk states.
const char * SQLStrIdColumn() const
TSQLClassInfo * RequestSQLClassInfo(const char *clname, Int_t version)
Search in database tables for specified class and return TSQLClassInfo object.
virtual Bool_t ReadBuffer(char *, Long64_t, Int_t)
Read a buffer from the file at the offset 'pos' in the file.
Int_t fStmtCounter
! count numbers of active statements
void CreateBasicTables()
Creates initial tables in database This is table with configurations and table with keys Function cal...
friend class TSqlCmdsBuffer
virtual void Map(Option_t *)
List the contents of a file sequentially.
Bool_t ReadConfigurations()
read table configurations as special table
virtual Int_t GetNbytesFree() const
virtual Int_t Write(const char *=0, Int_t=0, Int_t=0) const
One can not save a const TDirectory object.
Bool_t HasTable(const char *name)
Test if table name exists.
Int_t fQuerisCounter
! how many query was applied
virtual Long64_t GetEND() const
virtual void FillBuffer(char *&)
Encode file output buffer.
virtual void DrawMap(const char *="*", Option_t *="")
Draw map of objects in this file.
Int_t fSQLIOversion
! version of SQL I/O which is stored in configurations
Bool_t StartTransaction()
Start user transaction.
virtual Int_t GetNfree() const
const char ** fBasicTypes
! pointer on list of basic types specific for currently connected SQL server
Bool_t GetUseSuffixes() const
virtual Int_t GetErrno() const
Method returning errno. Is overriden in TRFIOFile.
Int_t GetUseTransactions() const
#define ClassDef(name, id)
void SetLocking(Int_t mode)
Set locking mode for current database.
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...
Int_t SQLSmallTextTypeLimit() const
TSQLResult * SQLQuery(const char *cmd, Int_t flag=0, Bool_t *res=0)
Submits query to SQL server.
This is hierarchical structure, which is created when data is written by TBufferSQL2.
Int_t fModifyCounter
! indicates how many changes was done with database tables
Bool_t CreateClassTable(TSQLClassInfo *sqlinfo, TObjArray *colinfos)
Create normal class table if required.
const char * SQLKeyIdColumn() const
virtual Int_t SysClose(Int_t)
Interface to system close. All arguments like in POSIX close().
TSQLStatement * SQLStatement(const char *cmd, Int_t bufsize=1000)
Produces SQL statement for currently conected DB server.
Book space in a file, create I/O buffers, to fill them, (un)compress them.
Bool_t IsTablesExists()
Checks if main keys table is existing.
virtual void DirWriteKeys(TDirectory *)
Write directory keys list to database.
virtual Bool_t IsOpen() const
return kTRUE if file is opened and can be accessed
void IncrementModifyCounter()
Update value of modify counter in config table Modify counter used to indicate that something was cha...
virtual Int_t Write(const char *=0, Int_t=0, Int_t=0)
Write memory objects to this file.
Bool_t SQLCanStatement()
Test if DB support statement and number of open statements is not exceeded.
Long64_t DefineNextKeyId()
Returns next possible key identifier.
Bool_t GetLongString(Long64_t objid, Int_t strid, TString &value)
Returns value of string, extracted from special table, where long strings are stored.
Int_t GetArrayLimit() const
virtual Long64_t GetSeekFree() const
Bool_t WriteKeyData(TKeySQL *key)
Add entry into keys table.
const char * GetDataBaseName() const
Return name of data base on the host For Oracle always return 0.
const char * SQLDirIdColumn() const
void ReadSQLClassInfos()
Read all class infos from IdsTable.
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.
virtual TKey * CreateKey(TDirectory *mother, const TObject *obj, const char *name, Int_t bufsize)
create SQL key, which will store object in data base
virtual void Print(Option_t *="") const
Print all objects in the file.
virtual Int_t SysWrite(Int_t, const void *, Int_t)
Interface to system write. All arguments like in POSIX write().
TString DefineTableName(const char *clname, Int_t version, Bool_t rawtable)
Proposes table name for class.
virtual ~TSQLFile()
destructor of TSQLFile object
Access an SQL db via the TFile interface.
Bool_t Commit()
Commit transaction, started by StartTransaction() call.
TSQLClassInfo * FindSQLClassInfo(const char *clname, Int_t version)
Return (if exists) TSQLClassInfo for specified class name and version.
Bool_t IsODBC() const
checks, if ODBC driver used for database connection
virtual void WriteFree()
Write FREE linked list on the file.
virtual void ReadFree()
Read the FREE linked list.
TSQLStatement * GetBlobClassDataStmt(Long64_t objid, TSQLClassInfo *sqlinfo)
Method return request results for specified objid from streamer classtable Data returned in form of s...
friend class TSqlRawBuffer
virtual TList * GetStreamerInfoList()
Read back streamer infos from database List of streamer infos is always stored with key:id 0...
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...
The ROOT global object gROOT contains a list of all defined classes.
void SetUseIndexes(Int_t use_type=kIndexesBasic)
Specify usage of indexes for data tables Index Description kIndexesNone = 0 no indexes are used kInd...
void operator=(const TSQLFile &)
make private to exclude copy operator
TString MakeSelectQuery(TClass *cl)
Produce SELECT statement which can be used to get all data of class cl in one SELECT statement...
void DeleteKeyFromDB(Long64_t keyid)
Remove key with specified id from keys table also removes all objects data, related to this table...
void SetArrayLimit(Int_t limit=20)
Defines maximum number of columns for array representation If array size bigger than limit...
virtual Long64_t GetSize() const
Returns the current file size.
const char * SQLBigTextType() const
Converts data to SQL statements or read data from SQL tables.
Bool_t IsOracle() const
checks, if Oracle database
Bool_t CreateRawTable(TSQLClassInfo *sqlinfo)
Create the raw table.
Int_t GetLocking()
Return current locking mode for that file.
const char * SQLValueQuote() const
virtual Bool_t WriteBuffer(const char *, Int_t)
Write a buffer to the file.
Describe directory structure in memory.
virtual void MakeProject(const char *, const char *="*", Option_t *="new")
Generate source code necessary to access the objects stored in the file.
Bool_t SQLTestTable(const char *tablename)
Test, if table of specified name exists.
virtual Bool_t ReadBuffer(char *, Int_t)
Read a buffer from the file.
virtual void Seek(Long64_t, ERelativeTo=kBeg)
Seek to a specific position in the file. Pos it either kBeg, kCur or kEnd.
const char * SQLNameSeparator() const
Bool_t IsMySQL() const
checks, if MySQL database
Mother of all ROOT objects.
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...
void SetTablesType(const char *table_type)
Defines tables type, which is used in CREATE TABLE statements Now is only used for MySQL database...
void SaveToDatabase()
save data which is not yet in Database Typically this is streamerinfos structures or ...
void SetUseTransactions(Int_t mode=kTransactionsAuto)
Defines usage of transactions statements for writing objects data to database.
Bool_t fIdsTableExists
! indicate if IdsTable exists
virtual void MakeFree(Long64_t, Long64_t)
Mark unused bytes on the file.
Bool_t SQLObjectInfo(Long64_t objid, TString &clname, Version_t &version)
Read from objects table data for specified objectid.
virtual void WriteStreamerInfo()
Store all TVirtualStreamerInfo, used in file, in sql database.
virtual void ResetErrno() const
Method resetting the errno. Is overridden in TRFIOFile.
Bool_t VerifyLongStringTable()
Checks that table for big strings is exists If not, will be created.
const char * SQLObjectIdColumn() const
virtual Long64_t DirCreateEntry(TDirectory *)
Create entry for directory in database.
virtual Long64_t GetSeekInfo() const
virtual Int_t SysOpen(const char *, Int_t, UInt_t)
Interface to system open. All arguments like in POSIX open().
TKeySQL represents meta-inforamtion about object, which was written to SQL database.
TObject * ReadSpecialObject(Long64_t keyid, TObject *obj=0)
Read data of special kind of objects.
virtual void WriteHeader()
Write file info like configurations, title, UUID and other.
Bool_t IsReadAccess()
dummy, in future should check about read access to database
virtual Int_t Sizeof() const
Return the size in bytes of the file header.
TKeySQL * FindSQLKey(TDirectory *dir, Long64_t keyid)
Search for TKeySQL object with specified keyid.
Bool_t fUseSuffixes
! use suffixes in column names like fValue:Int_t or fObject:pointer
TList * fSQLClassInfos
! list of SQL class infos
const char * SQLSmallTextType() const
void SQLDeleteAllTables()
Delete all tables in database.
void SetUseSuffixes(Bool_t on=kTRUE)
enable/disable uasge of suffixes in columns names can be changed before first object is saved into fi...
Abstract Interface class describing Streamer information for one class.
Int_t SQLMaxIdentifierLength()
returns maximum allowed length of identifiers
virtual Int_t DirReadKeys(TDirectory *)
Read directory list of keys from database.
Int_t fUseIndexes
! use indexes for tables: 0 - off, 1 - only for basic tables, 2 + normal class tables, 3 - all tables
Int_t fArrayLimit
! limit for array size. when array bigger, its content converted to raw format
const char * SQLIntType() const
return SQL integer type
Int_t GetUseIndexes() const
const char * SQLDefaultTableType() const
virtual Long64_t SysSeek(Int_t, Long64_t, Int_t)
Interface to system lseek.
virtual void SetEND(Long64_t)
const char * SQLIdentifierQuote() const
virtual Int_t GetNbytesInfo() const
virtual void Close(Option_t *option="")
Close a SQL file For more comments see TFile::Close() function.
Bool_t IsWriteAccess()
Checkis, if lock is free in configuration tables.
Long64_t VerifyObjectTable()
Checks that objects table is exists If not, table will be created Returns maximum value for existing ...
const char * Data() const