47   TTree(table.Data(), 
"Database read from table: " + table, 0), fDB(DB),
 
   59      Error(
"TTreeSQL",
"No TSQLServer specified");
 
   74   Fatal(
"BranchImp",
"Not implemented yet");
 
   84   Fatal(
"BranchImp",
"Not implemented yet");
 
   93   Fatal(
"Branch",
"Not implemented yet");
 
  102   Fatal(
"Branch",
"Not implemented yet");
 
  112   Fatal(
"Branch",
"Not implemented yet");
 
  122   Fatal(
"Bronch",
"Not implemented yet");
 
  132   Fatal(
"BranchOld",
"Not implemented yet");
 
  142   Fatal(
"Branch",
"Not implemented yet");
 
  150                           const char *leaflist, 
Int_t bufsize)
 
  156   for (
int i=0;i<nb;i++) {
 
  165         Fatal(
"Branch()", 
"Duplicate branch!!!");
 
  187      if (basket==0) 
return;
 
  199   for (
int i=0;i<nb;i++) {
 
  223   if (!basket) 
return kFALSE;
 
  227      Error(
"CheckBranch",
"%s has basket but no resultset yet",tb->
GetName());
 
  233   for(
int j=0;j<nl;j++) {
 
  261   if (!tables) 
return kFALSE;
 
  263   while( (row = tables->
Next()) ) {
 
  288   if(typeName == 
"Char_t"){
 
  291   else if(typeName == 
"Int_t") {
 
  294   else if(typeName == 
"Short_t") {
 
  297   else if( typeName == 
"UShort_t") {
 
  298      tn = 
"SMALLINT UNSIGNED";
 
  300   else if(typeName == 
"Float_t"){
 
  303   else if(typeName == 
"Float16_t"){
 
  306   else if(typeName == 
"Double_t"){
 
  309   else if(typeName == 
"Double32_t"){
 
  312   else if(typeName == 
"UInt_t") {
 
  315   else if( typeName == 
"Long_t") {
 
  318   else if( typeName == 
"ULong_t") {
 
  319      tn = 
"INTEGER UNSIGNED";
 
  321   else if( typeName == 
"Long64_t") {
 
  324   else if( typeName == 
"ULong64_t") {
 
  325      tn = 
"BIGINT UNSIGNED";
 
  327   else if( typeName == 
"Bool_t") {
 
  330   else if( typeName == 
"TString") {
 
  335      Error(
"ConvertTypeName",
"TypeName (%s) not found",typeName.
Data());
 
  348      Error(
"CreateBasket",
"No TSQLServer specified");
 
  366      Error(
"CreateBranch",
"No TSQLServer specified");
 
  371   alterSQL = 
"ALTER TABLE ";
 
  374   alterSQL += branchName.
Data();;
 
  376   alterSQL += typeName;
 
  405          leafName = branchName(pos+2,branchName.
Length());
 
  408          leafName = branchName;
 
  464         Error(
"CreateBranches", 
"Skipped %s", branchName.
Data());
 
  485      Error(
"CreateTable",
"No TSQLServer specified");
 
  489   TString branchName, leafName, typeName;
 
  490   TString createSQL, alterSQL, str;
 
  499      branchName = branch->
GetName();
 
  507         if(i == 0 && j == 0) {
 
  509            createSQL += 
"CREATE TABLE ";
 
  512            createSQL += branchName;
 
  514            createSQL += leafName;
 
  516            createSQL += typeName;
 
  522               Error(
"CreateTable",
"May have failed");
 
  580   for (
int i=0;i<nb;i++) {
 
  586      for(
int i=0;i<nb;i++) {
 
  589            Error(
"Fill",
"CheckBranch for %s failed",branch->
GetName());
 
  620   std::vector<Int_t> *columns = 
new std::vector<Int_t>;
 
  624   std::vector<TString> names;
 
  632   std::pair<TString,Int_t> value;
 
  634   TIter next(col_list);
 
  638      names.push_back( cinfo->
GetName() );
 
  642   for(
int j=0;j<nl;j++) {
 
  653      for (
Int_t i=0;i<rows;++i) {
 
  661         for (
Int_t i=0;i<rows;++i) {
 
  669         columns->push_back(col);
 
  670      } 
else Error(
"GetColumnIndice",
"Error finding column %d %s",j,str.
Data());
 
  672   if (columns->empty()) {
 
  702         sscanf(val.
Data(), 
"%ld",&(ret) );
 
  759      if (
fRow==0 && !reset) {
 
  766   if (
fRow==0) 
return -1;
 
R__EXTERN Int_t gErrorIgnoreLevel
 
Implement TBasket for a SQL backend.
 
TSQLResult * GetResultSet()
 
void CreateBuffer(const char *name, TString title, std::vector< Int_t > *vc, TBranch *branch, TSQLResult **rs)
Create a TSQLBuffer for this basket.
 
Manages buffers for branches of a Tree.
 
A TTree is a list of TBranches.
 
virtual void ResetAddress()
Reset the address of the branch.
 
TObjArray * GetListOfBranches()
 
TBasket * GetBasket(Int_t basket)
 
TObjArray * GetListOfBaskets()
 
TObjArray * GetListOfLeaves()
 
virtual void SetEntries(Long64_t entries)
Set the number of entries in this branch.
 
Long64_t * GetBasketEntry() const
 
Buffer base class used for serializing objects.
 
TClass instances represent classes, structs and namespaces in the ROOT type system.
 
Collection abstract base class.
 
TBuffer * GetBufferRef() const
 
A TLeaf describes individual elements of a TBranch See TBranch structure in TTree.
 
virtual const char * GetTypeName() const
 
virtual const char * GetName() const
Returns name of object.
 
Int_t GetEntriesFast() const
 
virtual void AddAtAndExpand(TObject *obj, Int_t idx)
Add object at position idx.
 
TObject * UncheckedAt(Int_t i) const
 
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
 
virtual void Fatal(const char *method, const char *msgfmt,...) const
Issue fatal error message.
 
const char * GetTypeName() const
 
virtual const char * GetFieldName(Int_t field)=0
 
virtual Int_t GetRowCount() const
 
virtual TSQLRow * Next()=0
 
virtual Int_t GetFieldCount()=0
 
virtual const char * GetField(Int_t field)=0
 
virtual Int_t SelectDataBase(const char *dbname)=0
 
virtual TSQLTableInfo * GetTableInfo(const char *tablename)
Producec TSQLTableInfo object, which contain info about table itself and each table column Object mus...
 
virtual TSQLResult * Query(const char *sql)=0
 
virtual TSQLResult * GetTables(const char *dbname, const char *wild=0)=0
 
virtual TSQLResult * GetColumns(const char *dbname, const char *table, const char *wild=0)=0
 
TList * GetColumns() const
 
int CompareTo(const char *cs, ECaseCompare cmp=kExact) const
Compare a string to char *cs2.
 
const char * Data() const
 
TString & Remove(Ssiz_t pos)
 
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
 
Implement TTree for a SQL backend.
 
TString ConvertTypeName(const TString &typeName)
Convert from ROOT typename to SQL typename.
 
virtual Long64_t GetEntries() const
Get the number of rows in the database.
 
virtual Long64_t GetEntriesFast() const
Return the number of entries as of the last check.
 
Bool_t CheckTable(const TString &table) const
Check the table exist in the database.
 
virtual Int_t GetEntry(Long64_t entry=0, Int_t getall=0)
Load the data for the entry from the database.
 
void CreateBranches()
determine leaf description string
 
virtual Int_t Fill()
Copy the information from the user object to the TTree.
 
TSQLTableInfo * fTableInfo
 
void Init()
Initializeation routine.
 
std::vector< Int_t > * GetColumnIndice(TBranch *branch)
Return a vector of columns index corresponding to the current SQL table and the branch given as argum...
 
Bool_t CheckBranch(TBranch *tb)
Check if the table has a column corresponding the branch and that the resultset are properly setup.
 
virtual TBranch * Bronch(const char *name, const char *classname, void *addobj, Int_t bufsize=32000, Int_t splitlevel=99)
Not implemented yet.
 
virtual Long64_t PrepEntry(Long64_t entry)
Make sure the server and result set are setup for the requested entry.
 
virtual Long64_t LoadTree(Long64_t entry)
Setup the tree to the load the specified entry.
 
virtual Int_t Branch(TCollection *list, Int_t bufsize=32000, Int_t splitlevel=99, const char *name="")
Not implemented yet.
 
virtual TBranch * BranchOld(const char *name, const char *classname, void *addobj, Int_t bufsize=32000, Int_t splitlevel=1)
Not implemented yet.
 
virtual void CreateBranch(const TString &branchName, const TString &typeName)
Create the column(s) in the database that correspond to the branch/.
 
void Refresh()
Refresh contents of this Tree and its branches from the current Tree status in the database One can c...
 
void ResetQuery()
Reset the internal query.
 
TTreeSQL(TSQLServer *server, TString DB, const TString &table)
Constructor with an explicit TSQLServer.
 
virtual TBasket * CreateBasket(TBranch *br)
Create a TBasketSQL.
 
Bool_t CreateTable(const TString &table)
Create the database table corresponding to this TTree.
 
virtual TBranch * BranchImp(const char *branchname, const char *classname, TClass *ptrClass, void *addobj, Int_t bufsize, Int_t splitlevel)
Not implemented yet.
 
void CheckBasket(TBranch *tb)
Check if the basket is properly setup.
 
A TTree represents a columnar dataset.
 
virtual Int_t Fill()
Fill all branches.
 
TObjArray fBranches
List of Branches.
 
Long64_t fEntries
Number of entries.
 
TBranch * Branch(const char *name, T *obj, Int_t bufsize=32000, Int_t splitlevel=99)
Add a new branch, and infer the data type from the type of obj being passed.
 
virtual Int_t GetEntry(Long64_t entry=0, Int_t getall=0)
Read all branches of entry and return total number of bytes read.
 
Long64_t fReadEntry
! Number of the entry being processed