ResultAgg is a concrete sub-class of TDbiResultSet. More...
#include <TDbiResultSetAgg.hxx>
Public Member Functions | |
TDbiResultSetAgg (const string &tableName="Unknown", const TDbiTableRow *tableRow=0, TDbiCache *cache=0, const TDbiValidityRecBuilder *vrecBuilder=0, const TDbiDBProxy *proxy=0, const string &sqlQualifiers="") | |
virtual | ~TDbiResultSetAgg () |
virtual TDbiResultKey * | CreateKey () const |
virtual UInt_t | GetNumAggregates () const |
virtual UInt_t | GetNumRows () const |
virtual const TDbiTableRow * | GetTableRow (UInt_t row) const |
virtual const TDbiValidityRec & | GetValidityRec (const TDbiTableRow *row=0) const |
virtual Bool_t | Satisfies (const string &sqlQualifiers) |
Purpose: Return true if result satisfies extended context query. | |
virtual void | Streamer (TDbiBinaryFile &bf) |
virtual Bool_t | CanReuse () const |
virtual Bool_t | CanSave () const |
virtual void | Connect () const |
virtual void | Disconnect () const |
const TDbiExceptionLog & | GetExceptionLog () const |
Int_t | GetID () const |
virtual const TDbiResultKey * | GetKey () const |
virtual UInt_t | GetNumClients () const |
const string & | GetSqlQualifiers () const |
virtual const TDbiTableRow * | GetTableRowByIndex (UInt_t index) const |
virtual const TDbiValidityRec & | GetValidityRecGlobal () const |
Bool_t | IsExtendedContext () const |
virtual Bool_t | Owns (const TDbiTableRow *) const |
Bool_t | ResultsFromDb () const |
virtual const string & | TableName () const |
void | CaptureExceptionLog (UInt_t startFrom) |
virtual Bool_t | CanDelete (const TDbiResultSet *res=0) |
Return true if no clients and unlikely to be reused. | |
virtual Bool_t | Satisfies (const TVldContext &vc, const TDbi::Task &task) |
virtual Bool_t | Satisfies (const TDbiValidityRec &, const string &="") |
virtual void | GenerateKey () |
Key handling. | |
virtual void | SetCanReuse (Bool_t reuse) |
Protected Member Functions | |
void | SetResultsFromDb () |
void | BuildLookUpTable () const |
Bool_t | LookUpBuilt () const |
virtual void | SetTableName (const string &tableName) |
virtual void | SetValidityRec (const TDbiValidityRec &vRec) |
Private Attributes | |
std::vector< const TDbiResultSet * > | fResults |
std::vector< const TDbiTableRow * > | fRowKeys |
Look-up: Row no. -> TableRow. | |
UInt_t | fSize |
Current set size. |
ResultAgg is a concrete sub-class of TDbiResultSet.
Concept ResultAgg is a concrete sub-class of TDbiResultSet that represents a single database query for either:-
1) A specific context with aggregated data (i.e. rows with AggNo != -1)
or:-
2) Any extended context query, even if that only produces a single row of unaggregated data.
The table is indexed using the index returned by TDbiTableRow::GetIndex which can be overridden by concrete subclasses.
Purpose To present the user with a single logical table even though the component parts may held in multiple TDbiResultSets and be loaded by separate I/O operations.
Contact: A.Finch@lancaster.ac.uk
Definition at line 50 of file TDbiResultSetAgg.hxx.
TDbiResultSetAgg::TDbiResultSetAgg | ( | const string & | tableName = "Unknown" , |
|
const TDbiTableRow * | tableRow = 0 , |
|||
TDbiCache * | cache = 0 , |
|||
const TDbiValidityRecBuilder * | vrecBuilder = 0 , |
|||
const TDbiDBProxy * | proxy = 0 , |
|||
const string & | sqlQualifiers = "" | |||
) |
TDbiResultSetAgg::~TDbiResultSetAgg | ( | ) | [virtual] |
Purpose: Destructor Arguments: None. Return: n/a Contact: N. West Specification:- ============= o Destroy ResultAgg and disconnect all associated TDbiResultSets,
Definition at line 245 of file TDbiResultSetAgg.cxx.
References fResults, and SK_DBI_Trace.
00245 { 00246 00247 00248 // Program Notes:- 00249 // ============= 00250 00251 // None. 00252 00253 00254 SK_DBI_Trace( "Destroying TDbiResultSetAgg." << " "); 00255 00256 for ( ConstResultItr_t itr = fResults.begin(); 00257 itr != fResults.end(); 00258 ++itr) if ( *itr ) (*itr)->Disconnect(); 00259 00260 }
void TDbiResultSet::BuildLookUpTable | ( | ) | const [protected, inherited] |
Definition at line 133 of file TDbiResultSet.cxx.
References TDbiResultSet::fIndexKeys, TDbiTableRow::GetAggregateNo(), TDbiTableRow::GetIndex(), TDbiResultSet::GetNumRows(), TDbiTableRow::GetOwner(), TDbiValidityRec::GetSeqNo(), TDbiResultSet::GetTableRow(), TDbiResultSet::GetTableRowByIndex(), TDbiResultSet::GetValidityRec(), TDbiResultSet::IsExtendedContext(), SK_DBI_Severe, SK_DBI_Verbose, and TDbiResultSet::TableName().
Referenced by TDbiResultSetNonAgg::GetTableRowByIndex(), and TDbiResultSetNonAgg::Streamer().
00133 { 00134 // 00135 // 00136 // Purpose: Build look-up Natural Index -> TableRow. 00137 // 00138 // Contact: N. West 00139 // 00140 // Program Notes:- 00141 // ============= 00142 // 00143 // This member function assumes that the sub-class can support 00144 // the GetTableRow(...) and GetNumRows methods so take care if 00145 // called in the sub-class ctor. 00146 00147 // Extended Context serach can produce duplicates. 00148 Bool_t duplicatesOK = this->IsExtendedContext(); 00149 00150 SK_DBI_Verbose( "Building look-uptable. Allow duplicates: " 00151 << duplicatesOK << " "); 00152 00153 for ( Int_t rowNo = this->GetNumRows()-1; 00154 rowNo >= 0; 00155 --rowNo ) { 00156 const TDbiTableRow* row = this->GetTableRow(rowNo); 00157 UInt_t index = row->GetIndex(rowNo); 00158 // Ensure we use this class's GetTableRowByIndex, the method is 00159 // virtual but if the subclass has called this method then it must 00160 // be the right one to use. [Actually TDbiResultSetAgg overrides 00161 // GetTableRowByIndex, but only to make building lazy]. 00162 const TDbiTableRow* row2 = this->TDbiResultSet::GetTableRowByIndex(index); 00163 00164 SK_DBI_Verbose( "Look-up. Row no " << rowNo 00165 << " index " << index 00166 << " row,row2 " << (void*) row << "," << (void*) row2 << " "); 00167 00168 if ( row2 != 0 && row2 != row && ! duplicatesOK ) { 00169 std::ostringstream msg; 00170 msg << "Duplicated row natural index: " << index 00171 << " Found at row " << rowNo 00172 << " of table " << this->TableName() 00173 << ":-\n index of agg " << row->GetAggregateNo(); 00174 if ( row->GetOwner() ) msg << "(SEQNO " << row->GetOwner()->GetValidityRec(row).GetSeqNo() << ")"; 00175 msg << " matches agg " << row2->GetAggregateNo(); 00176 if ( row2->GetOwner() ) msg << "(SEQNO " << row2->GetOwner()->GetValidityRec(row2).GetSeqNo() << ")"; 00177 SK_DBI_Severe( msg.str() << " "); 00178 } 00179 00180 else fIndexKeys[index] = row; 00181 } 00182 00183 }
Bool_t TDbiResultSet::CanDelete | ( | const TDbiResultSet * | res = 0 |
) | [virtual, inherited] |
Return true if no clients and unlikely to be reused.
Definition at line 187 of file TDbiResultSet.cxx.
References TDbiResultSet::CanReuse(), TDbiResultSet::GetNumClients(), TDbiResultSet::GetValidityRec(), and TDbiResultSet::SetCanReuse().
Referenced by TDbiCache::Purge().
00187 { 00188 // 00189 // 00190 // Purpose: See if suitable for deleting. 00191 // 00192 // Arguments: 00193 // res in A TDbiResultSet that is currently used. 00194 // Optional: default = 0. 00195 00196 // If the query would be satisfied apart from the date, then 00197 // assume we have moved out of the validity window, never 00198 // to return! 00199 00200 if ( res 00201 && this->CanReuse() 00202 && this->GetValidityRec().HasExpired(res->GetValidityRec()) 00203 ) this->SetCanReuse(kFALSE); 00204 00205 return ! this->GetNumClients() && ! this->CanReuse(); 00206 }
virtual Bool_t TDbiResultSet::CanReuse | ( | ) | const [inline, virtual, inherited] |
Definition at line 62 of file TDbiResultSet.hxx.
References TDbiResultSet::fCanReuse.
Referenced by TDbiResultSet::CanDelete(), TDbiResultSetNonAgg::Satisfies(), Satisfies(), and TDbiResultSet::Satisfies().
00062 { return fCanReuse; }
virtual Bool_t TDbiResultSet::CanSave | ( | ) | const [inline, virtual, inherited] |
Definition at line 63 of file TDbiResultSet.hxx.
Referenced by TDbiTableProxy::SaveToL2Cache().
void TDbiResultSet::CaptureExceptionLog | ( | UInt_t | startFrom | ) | [inherited] |
Definition at line 210 of file TDbiResultSet.cxx.
References TDbiExceptionLog::Clear(), TDbiExceptionLog::Copy(), TDbiResultSet::fExceptionLog, and TDbiExceptionLog::GetGELog().
Referenced by TDbiTableProxy::Query().
00210 { 00211 // 00212 // 00213 // Purpose: Capture Exception Log from latest entries in Global Exception Log. 00214 00215 fExceptionLog.Clear(); 00216 TDbiExceptionLog::GetGELog().Copy(fExceptionLog,startFrom); 00217 00218 }
virtual void TDbiResultSet::Connect | ( | ) | const [inline, virtual, inherited] |
Definition at line 64 of file TDbiResultSet.hxx.
References TDbiResultSet::fNumClients.
00064 { ++fNumClients; }
TDbiResultKey * TDbiResultSetAgg::CreateKey | ( | ) | const [virtual] |
Purpose: Create a key that corresponds to this result. Caller must take ownership.
Implements TDbiResultSet.
Definition at line 267 of file TDbiResultSetAgg.cxx.
References TDbiResultKey::AddVRecKey(), TDbiResultSet::CreateKey(), fResults, TDbiValidityRec::GetCreationDate(), TDbiValidityRec::GetSeqNo(), and TDbiResultSet::GetValidityRec().
00267 { 00268 00269 TDbiResultKey* key = 0; 00270 for ( ConstResultItr_t itr = fResults.begin(); 00271 itr != fResults.end(); 00272 ++itr ) { 00273 const TDbiResultSet* result = *itr; 00274 if ( result ) { 00275 // Create key from first result. 00276 if ( ! key ) key = result->CreateKey(); 00277 // Extend key from the remainder. 00278 else { 00279 const TDbiValidityRec& vrec = result->GetValidityRec(); 00280 key->AddVRecKey(vrec.GetSeqNo(),vrec.GetCreationDate()); 00281 } 00282 } 00283 } 00284 00285 // Should not have an empty set, but just in case. 00286 if ( ! key ) key = new TDbiResultKey(); 00287 00288 return key; 00289 00290 }
virtual void TDbiResultSet::Disconnect | ( | ) | const [inline, virtual, inherited] |
Definition at line 66 of file TDbiResultSet.hxx.
References TDbiResultSet::fNumClients.
00066 { --fNumClients; }
void TDbiResultSet::GenerateKey | ( | ) | [virtual, inherited] |
Key handling.
Definition at line 222 of file TDbiResultSet.cxx.
References TDbiResultSet::CreateKey(), TDbiResultSet::fKey, and TDbiResultSet::GetNumRows().
Referenced by TDbiCache::Adopt().
00222 { 00223 // 00224 // 00225 // Purpose: Create key if set not empty and not already done. 00226 00227 if ( fKey || this->GetNumRows() == 0) return; 00228 fKey = this->CreateKey(); 00229 00230 }
const TDbiExceptionLog& TDbiResultSet::GetExceptionLog | ( | ) | const [inline, inherited] |
Definition at line 67 of file TDbiResultSet.hxx.
References TDbiResultSet::fExceptionLog.
00067 { return fExceptionLog; }
Int_t TDbiResultSet::GetID | ( | ) | const [inline, inherited] |
Definition at line 68 of file TDbiResultSet.hxx.
References TDbiResultSet::fID.
00068 { return fID; }
const TDbiResultKey * TDbiResultSet::GetKey | ( | ) | const [virtual, inherited] |
Definition at line 234 of file TDbiResultSet.cxx.
References TDbiResultSet::fKey, and TDbiResultKey::GetEmptyKey().
Referenced by TDbiCache::Adopt().
00234 { 00235 00236 // Purpose: Get the associated TDbiResultKey, or an empty one if none exists. 00237 00238 return fKey ? fKey : TDbiResultKey::GetEmptyKey(); 00239 00240 }
virtual UInt_t TDbiResultSetAgg::GetNumAggregates | ( | ) | const [inline, virtual] |
Implements TDbiResultSet.
Definition at line 71 of file TDbiResultSetAgg.hxx.
References fResults.
00071 { 00072 return 1 + fResults.size(); };
virtual UInt_t TDbiResultSet::GetNumClients | ( | ) | const [inline, virtual, inherited] |
Definition at line 71 of file TDbiResultSet.hxx.
References TDbiResultSet::fNumClients.
Referenced by TDbiResultSet::CanDelete(), TDbiCache::Purge(), and TDbiResultSet::Satisfies().
00071 { 00072 return fNumClients; }
virtual UInt_t TDbiResultSetAgg::GetNumRows | ( | ) | const [inline, virtual] |
Implements TDbiResultSet.
Definition at line 73 of file TDbiResultSetAgg.hxx.
References fSize.
00073 { 00074 return fSize; }
const string& TDbiResultSet::GetSqlQualifiers | ( | ) | const [inline, inherited] |
Definition at line 74 of file TDbiResultSet.hxx.
References TDbiResultSet::fSqlQualifiers.
Referenced by TDbiResultSet::IsExtendedContext(), TDbiResultSetNonAgg::Satisfies(), and Satisfies().
00074 { return fSqlQualifiers; }
const TDbiTableRow * TDbiResultSetAgg::GetTableRow | ( | UInt_t | row | ) | const [virtual] |
Purpose: Return TableRow from last query. Arguments: row in Required row. Return: TableRow ptr, or =0 if no row.
Implements TDbiResultSet.
Definition at line 301 of file TDbiResultSetAgg.cxx.
References fRowKeys.
const TDbiTableRow * TDbiResultSet::GetTableRowByIndex | ( | UInt_t | index | ) | const [virtual, inherited] |
Reimplemented in TDbiResultSetNonAgg.
Definition at line 244 of file TDbiResultSet.cxx.
References TDbiResultSet::fIndexKeys.
Referenced by TDbiResultSet::BuildLookUpTable().
00244 { 00245 // 00246 // 00247 // Purpose: Return row corresponding to Natural Index (or 0 if none) 00248 // 00249 // Contact: N. West 00250 // 00251 00252 // Use Find rather than operator[] to avoid creating entry 00253 // if index missing 00254 IndexToRow_t::const_iterator idx = fIndexKeys.find(index); 00255 return ( idx == fIndexKeys.end() ) ? 0 : (*idx).second; 00256 00257 }
const TDbiValidityRec & TDbiResultSetAgg::GetValidityRec | ( | const TDbiTableRow * | row = 0 |
) | const [virtual] |
Purpose: Get TDbiValidityRec associated with table or row. Arguments: row in The table row or null (default) to get table TDbiValidityRec Program Notes:- ============= The TDbiValidityRec for the in-memory table is effectively an AND of the TDbiValidityRecs of the individual rows.
Reimplemented from TDbiResultSet.
Definition at line 329 of file TDbiResultSetAgg.cxx.
References TDbiTableRow::GetOwner(), and TDbiResultSet::GetValidityRecGlobal().
00330 { 00331 00332 // Contact: N. West 00333 // 00334 00335 00336 if ( ! row ) return this->GetValidityRecGlobal(); 00337 TDbiResultSet* owner = row->GetOwner(); 00338 return owner ? owner->GetValidityRecGlobal() : this->GetValidityRecGlobal(); 00339 00340 }
virtual const TDbiValidityRec& TDbiResultSet::GetValidityRecGlobal | ( | ) | const [inline, virtual, inherited] |
Definition at line 80 of file TDbiResultSet.hxx.
References TDbiResultSet::fEffVRec.
Referenced by TDbiCache::Adopt(), GetValidityRec(), TDbiResultSet::GetValidityRec(), and Streamer().
00080 { 00081 return fEffVRec; }
Bool_t TDbiResultSet::IsExtendedContext | ( | ) | const [inline, inherited] |
Definition at line 82 of file TDbiResultSet.hxx.
References TDbiResultSet::GetSqlQualifiers().
Referenced by TDbiResultSet::BuildLookUpTable(), and TDbiResultSet::Satisfies().
00082 { 00083 return this->GetSqlQualifiers() != ""; }
Bool_t TDbiResultSet::LookUpBuilt | ( | ) | const [inline, protected, inherited] |
Definition at line 116 of file TDbiResultSet.hxx.
References TDbiResultSet::fIndexKeys.
Referenced by TDbiResultSetNonAgg::GetTableRowByIndex().
00116 { return fIndexKeys.size() > 0; }
virtual Bool_t TDbiResultSet::Owns | ( | const TDbiTableRow * | ) | const [inline, virtual, inherited] |
Reimplemented in TDbiResultSetNonAgg.
Definition at line 84 of file TDbiResultSet.hxx.
Bool_t TDbiResultSet::ResultsFromDb | ( | ) | const [inline, inherited] |
Definition at line 85 of file TDbiResultSet.hxx.
References TDbiResultSet::fResultsFromDb.
Referenced by TDbiTableProxy::SaveToL2Cache().
00085 { return fResultsFromDb; }
virtual Bool_t TDbiResultSet::Satisfies | ( | const TDbiValidityRec & | , | |
const string & | = "" | |||
) | [inline, virtual, inherited] |
Reimplemented in TDbiResultSetNonAgg.
Definition at line 101 of file TDbiResultSet.hxx.
Bool_t TDbiResultSet::Satisfies | ( | const TVldContext & | vc, | |
const TDbi::Task & | task | |||
) | [virtual, inherited] |
All TDbiResultSet classes can satisfy this type of primary query so impliment here.
Definition at line 261 of file TDbiResultSet.cxx.
References TDbiResultSet::CanReuse(), TDbiResultSet::GetNumClients(), TDbiResultSet::GetValidityRec(), TDbiValidityRec::HasExpired(), TDbiValidityRec::IsCompatible(), TDbiResultSet::IsExtendedContext(), TDbiResultSet::SetCanReuse(), and SK_DBI_Debug.
Referenced by TDbiCache::Search().
00262 { 00263 // 00264 // 00265 // Purpose: Check to see if this Result satisfies specific context query. 00266 // 00267 // Arguments: 00268 // vc in Context of query 00269 // task in Task of query 00270 // 00271 // Return: kTRUE if can satisfy query. 00272 // 00273 // Contact: N. West 00274 // 00275 // Program Notes:- 00276 // ============= 00277 00278 // If it cannot satisfy the query in a way that suggests 00279 // that its unlikely that it will satisfy future queries 00280 // then mark as cannot reuse so that it becomes eligible 00281 // for purging. 00282 00283 // Extended Context queries cannot satisfy specific context queries. 00284 00285 Bool_t isExtendedContext = this->IsExtendedContext(); 00286 Bool_t canReuse = this->CanReuse(); 00287 Bool_t isCompatible = this->GetValidityRec().IsCompatible(vc,task); 00288 Bool_t hasExpired = this->GetValidityRec().HasExpired(vc,task); 00289 UInt_t numClients = this->GetNumClients(); 00290 SK_DBI_Debug( " Checking result with TDbiValidityRec:- \n " << this->GetValidityRec() 00291 << " With extended context: " << isExtendedContext 00292 << " CanReuse: " << canReuse 00293 << " Is Compatible: " << isCompatible 00294 << " HasExpired: " << hasExpired 00295 << " number of clients: " << numClients 00296 << " "); 00297 00298 if ( isExtendedContext ) return kFALSE; 00299 00300 if ( canReuse && isCompatible ) return kTRUE; 00301 00302 // If the query would be satisfied apart from the date, then 00303 // assume we have moved out of the validity window, never 00304 // to return! 00305 00306 if ( canReuse && hasExpired && numClients == 0 ) { 00307 SK_DBI_Debug( " Marking result as not reusable" << " "); 00308 this-> SetCanReuse(kFALSE); 00309 } 00310 00311 return kFALSE; 00312 00313 }
Bool_t TDbiResultSetAgg::Satisfies | ( | const string & | sqlQualifiers | ) | [virtual] |
Purpose: Return true if result satisfies extended context query.
Reimplemented from TDbiResultSet.
Definition at line 343 of file TDbiResultSetAgg.cxx.
References TDbiResultSet::CanReuse(), TDbiResultSet::GetSqlQualifiers(), and SK_DBI_Debug.
00343 { 00344 // 00345 // 00346 00347 // 00348 00349 SK_DBI_Debug( "Trying to satisfy: SQL: " << sqlQualifiers 00350 << "\n with CanReuse: " << this->CanReuse() 00351 << " sqlQualifiers: " << this->GetSqlQualifiers() 00352 << " "); 00353 return this->CanReuse() 00354 && this->GetSqlQualifiers() == sqlQualifiers; 00355 }
virtual void TDbiResultSet::SetCanReuse | ( | Bool_t | reuse | ) | [inline, virtual, inherited] |
Definition at line 108 of file TDbiResultSet.hxx.
References TDbiResultSet::fCanReuse.
Referenced by TDbiResultSet::CanDelete(), TDbiTableProxy::Query(), and TDbiResultSet::Satisfies().
00108 { fCanReuse = reuse ; }
void TDbiResultSet::SetResultsFromDb | ( | ) | [inline, protected, inherited] |
Definition at line 111 of file TDbiResultSet.hxx.
References TDbiResultSet::fResultsFromDb.
00111 { fResultsFromDb = kTRUE; }
virtual void TDbiResultSet::SetTableName | ( | const string & | tableName | ) | [inline, protected, virtual, inherited] |
Definition at line 120 of file TDbiResultSet.hxx.
References TDbiResultSet::fTableName.
00120 { 00121 fTableName = tableName; }
virtual void TDbiResultSet::SetValidityRec | ( | const TDbiValidityRec & | vRec | ) | [inline, protected, virtual, inherited] |
Definition at line 122 of file TDbiResultSet.hxx.
References TDbiResultSet::fEffVRec.
00122 { 00123 fEffVRec = vRec; }
void TDbiResultSetAgg::Streamer | ( | TDbiBinaryFile & | bf | ) | [virtual] |
Purpose: I/O to binary file
Reimplemented from TDbiResultSet.
Definition at line 362 of file TDbiResultSetAgg.cxx.
References fResults, TDbiResultSet::GetValidityRecGlobal(), and TDbiValidityRec::IsGap().
00362 { 00363 00364 // Specification:- 00365 // ============= 00366 00367 // Output constituent non-gap TDbiResultSetNonAgg objects. 00368 00369 vector<const TDbiResultSet*>::const_iterator itr = fResults.begin(); 00370 vector<const TDbiResultSet*>::const_iterator end = fResults.end(); 00371 00372 UInt_t numNonAgg = 0; 00373 for (; itr != end; ++itr) { 00374 const TDbiResultSetNonAgg* rna = dynamic_cast<const TDbiResultSetNonAgg*>(*itr); 00375 if ( rna && ! rna->GetValidityRecGlobal().IsGap() ) ++numNonAgg; 00376 } 00377 bf << numNonAgg; 00378 00379 00380 for (itr = fResults.begin(); itr != end; ++itr) { 00381 const TDbiResultSetNonAgg* rna = dynamic_cast<const TDbiResultSetNonAgg*>(*itr); 00382 if ( rna && ! rna->GetValidityRecGlobal().IsGap() ) bf << *rna; 00383 } 00384 }
virtual const string& TDbiResultSet::TableName | ( | ) | const [inline, virtual, inherited] |
Definition at line 86 of file TDbiResultSet.hxx.
References TDbiResultSet::fTableName.
Referenced by TDbiCache::Adopt(), TDbiResultSet::BuildLookUpTable(), TDbiResultSetNonAgg::CreateKey(), TDbiValRecSet::GetTableName(), and TDbiCache::Purge().
00086 { return fTableName; }
std::vector<const TDbiResultSet*> TDbiResultSetAgg::fResults [private] |
Array of TDbiResultSets (vector<TDbiResultSet*>). The array index is NOT the aggregate number; it simply matches the rows are supplied by the TDbiValidityRecBuilder with first row of TDbiValidityRecBuilder excluded i.e. row n of builder creates a TDbiResultSet pointed to by fResults[n-1];
Definition at line 94 of file TDbiResultSetAgg.hxx.
Referenced by CreateKey(), GetNumAggregates(), Streamer(), and ~TDbiResultSetAgg().
std::vector<const TDbiTableRow*> TDbiResultSetAgg::fRowKeys [private] |
Look-up: Row no. -> TableRow.
Definition at line 97 of file TDbiResultSetAgg.hxx.
Referenced by GetTableRow().
UInt_t TDbiResultSetAgg::fSize [private] |