![]() |
![]() |
#include <MultiRecordSelectOperation.h>
Public Member Functions | |
void | addBlobData (const std::string &columnName) |
void | addData (const std::string &columnName, const std::type_info &columnType) |
void | addId (const std::string &columnName) |
void | addOrderId (const std::string &columnName) |
void | addWhereId (const std::string &columnName) |
void | clear () |
coral::AttributeList & | data () |
void | execute () |
MultiRecordSelectOperation (const std::string &tableName, coral::ISchema &schema) | |
size_t | selectionSize (const std::vector< int > &selection, size_t numberOfIndexes) |
void | selectRow (const std::vector< int > &selection) |
std::string & | whereClause () |
coral::AttributeList & | whereData () |
~MultiRecordSelectOperation () | |
Private Attributes | |
MultiIndexDataTrie | m_cache |
std::vector< std::string > | m_idCols |
SelectOperation | m_query |
std::auto_ptr < coral::AttributeList > | m_row |
RecordSpec | m_spec |
Definition at line 10 of file MultiRecordSelectOperation.h.
ora::MultiRecordSelectOperation::MultiRecordSelectOperation | ( | const std::string & | tableName, |
coral::ISchema & | schema | ||
) |
ora::MultiRecordSelectOperation::~MultiRecordSelectOperation | ( | ) |
Definition at line 17 of file MultiRecordSelectOperation.cc.
{ }
void ora::MultiRecordSelectOperation::addBlobData | ( | const std::string & | columnName | ) | [virtual] |
Implements ora::IRelationalData.
Definition at line 59 of file MultiRecordSelectOperation.cc.
void ora::MultiRecordSelectOperation::addData | ( | const std::string & | columnName, |
const std::type_info & | columnType | ||
) | [virtual] |
Implements ora::IRelationalData.
Definition at line 53 of file MultiRecordSelectOperation.cc.
void ora::MultiRecordSelectOperation::addId | ( | const std::string & | columnName | ) | [virtual] |
Implements ora::IRelationalData.
Definition at line 48 of file MultiRecordSelectOperation.cc.
void ora::MultiRecordSelectOperation::addOrderId | ( | const std::string & | columnName | ) |
Definition at line 20 of file MultiRecordSelectOperation.cc.
void ora::MultiRecordSelectOperation::addWhereId | ( | const std::string & | columnName | ) | [virtual] |
Implements ora::IRelationalData.
Definition at line 64 of file MultiRecordSelectOperation.cc.
{ m_query.addWhereId( columnName ); }
void ora::MultiRecordSelectOperation::clear | ( | void | ) |
Definition at line 40 of file MultiRecordSelectOperation.cc.
coral::AttributeList & ora::MultiRecordSelectOperation::data | ( | ) | [virtual] |
Implements ora::IRelationalData.
Definition at line 69 of file MultiRecordSelectOperation.cc.
References ora::throwException().
{ //if(!m_row){ if(!m_row.get()){ throwException( "No record available.", "MultiRecordSelectOperation::data" ); } return *m_row; }
void ora::MultiRecordSelectOperation::execute | ( | ) |
Definition at line 86 of file MultiRecordSelectOperation.cc.
References i, and funct::true.
{ //m_row = 0; // m_row.reset(); m_cache.clear(); m_query.execute(); while( m_query.nextCursorRow() ){ std::vector<int> indexes; coral::AttributeList& row = m_query.data(); for(size_t i=0;i<m_idCols.size();i++){ indexes.push_back( row[m_idCols[i]].data<int>() ); } Record rec(m_spec); newRecordFromAttributeList(rec, row ); m_cache.push( indexes, rec ); } m_row.reset(new coral::AttributeList(m_query.attributeListSpecification(), true )); m_query.clear(); }
size_t ora::MultiRecordSelectOperation::selectionSize | ( | const std::vector< int > & | selection, |
size_t | numberOfIndexes | ||
) |
Definition at line 34 of file MultiRecordSelectOperation.cc.
void ora::MultiRecordSelectOperation::selectRow | ( | const std::vector< int > & | selection | ) |
Definition at line 25 of file MultiRecordSelectOperation.cc.
References ora::throwException().
std::string & ora::MultiRecordSelectOperation::whereClause | ( | ) | [virtual] |
Implements ora::IRelationalData.
Definition at line 82 of file MultiRecordSelectOperation.cc.
{ return m_query.whereClause(); }
coral::AttributeList & ora::MultiRecordSelectOperation::whereData | ( | ) | [virtual] |
Implements ora::IRelationalData.
Definition at line 78 of file MultiRecordSelectOperation.cc.
{ return m_query.whereData(); }
Definition at line 39 of file MultiRecordSelectOperation.h.
std::vector<std::string> ora::MultiRecordSelectOperation::m_idCols [private] |
Definition at line 38 of file MultiRecordSelectOperation.h.
Definition at line 37 of file MultiRecordSelectOperation.h.
std::auto_ptr<coral::AttributeList> ora::MultiRecordSelectOperation::m_row [private] |
Definition at line 41 of file MultiRecordSelectOperation.h.
Definition at line 40 of file MultiRecordSelectOperation.h.