#include <OraDatabaseSchema.h>
Public Member Functions | |
void | create () |
void | drop () |
bool | exists () |
bool | getParameters (std::map< std::string, std::string > &destination) |
std::string | name () |
OraMainTable (coral::ISchema &dbSchema) | |
std::string | schemaVersion () |
void | setParameter (const std::string ¶mName, const std::string ¶mValue) |
virtual | ~OraMainTable () |
Static Public Member Functions | |
static std::string | parameterNameColumn () |
static std::string | parameterValueColumn () |
static std::string | tableName () |
static std::string | version () |
Definition at line 10 of file OraDatabaseSchema.h.
ora::OraMainTable::OraMainTable | ( | coral::ISchema & | dbSchema | ) | [explicit] |
Definition at line 36 of file OraDatabaseSchema.cc.
: IMainTable( dbSchema ){ }
ora::OraMainTable::~OraMainTable | ( | ) | [virtual] |
Definition at line 40 of file OraDatabaseSchema.cc.
{ }
void ora::OraMainTable::create | ( | ) | [virtual] |
Implements ora::IDatabaseTable.
Definition at line 84 of file OraDatabaseSchema.cc.
References python::IdGenerator::schema, asciidump::table, ora::throwException(), BeamSplash_cfg::version, and ora::IMainTable::versionParameterName().
{ if( schema().existsTable( tableName() )){ throwException( "ORA database main table already exists in this schema.", "OraMainTable::create"); } coral::TableDescription descr( "OraDb" ); descr.setName( tableName() ); descr.insertColumn( parameterNameColumn(), coral::AttributeSpecification::typeNameForType<std::string>() ); descr.insertColumn( parameterValueColumn(), coral::AttributeSpecification::typeNameForType<std::string>() ); descr.setNotNullConstraint( parameterNameColumn() ); descr.setNotNullConstraint( parameterValueColumn() ); descr.setPrimaryKey( std::vector<std::string>( 1, parameterNameColumn() ) ); coral::ITable& table = schema().createTable( descr ); //table.privilegeManager().grantToPublic( coral::ITablePrivilegeManager::Select ); coral::AttributeList dataToInsert; dataToInsert.extend<std::string>( parameterNameColumn()); dataToInsert.extend<std::string>( parameterValueColumn()); dataToInsert[ parameterNameColumn() ].data<std::string>() = IMainTable::versionParameterName(); dataToInsert[ parameterValueColumn() ].data<std::string>() = version(); table.dataEditor().insertRow( dataToInsert ); }
void ora::OraMainTable::drop | ( | ) | [virtual] |
Implements ora::IDatabaseTable.
Definition at line 111 of file OraDatabaseSchema.cc.
References python::IdGenerator::schema.
bool ora::OraMainTable::exists | ( | ) | [virtual] |
Implements ora::IDatabaseTable.
Definition at line 80 of file OraDatabaseSchema.cc.
References python::IdGenerator::schema.
Referenced by ora::OraDatabaseSchema::existsMainTable().
bool ora::OraMainTable::getParameters | ( | std::map< std::string, std::string > & | destination | ) | [virtual] |
Implements ora::IMainTable.
Definition at line 56 of file OraDatabaseSchema.cc.
References o2o::query, runTheMatrix::ret, and python::IdGenerator::schema.
{ bool ret = false; coral::ITable& mainTable = schema().tableHandle( tableName() ); std::auto_ptr<coral::IQuery> query(mainTable.newQuery()); coral::ICursor& cursor = query->execute(); while ( cursor.next() ) { ret = true; const coral::AttributeList& row = cursor.currentRow(); std::string paramName = row[ parameterNameColumn()].data< std::string >(); std::string paramValue = row[ parameterValueColumn()].data< std::string >(); dest.insert( std::make_pair( paramName, paramValue ) ); } return ret; }
std::string ora::OraMainTable::name | ( | ) | [virtual] |
Implements ora::IDatabaseTable.
Definition at line 76 of file OraDatabaseSchema.cc.
{ return tableName(); }
std::string ora::OraMainTable::parameterNameColumn | ( | ) | [static] |
Definition at line 26 of file OraDatabaseSchema.cc.
{ static std::string s_column("PARAMETER_NAME"); return s_column; }
std::string ora::OraMainTable::parameterValueColumn | ( | ) | [static] |
Definition at line 31 of file OraDatabaseSchema.cc.
{ static std::string s_column("PARAMETER_VALUE"); return s_column; }
std::string ora::OraMainTable::schemaVersion | ( | ) | [virtual] |
Implements ora::IMainTable.
Definition at line 71 of file OraDatabaseSchema.cc.
References BeamSplash_cfg::version.
{ // could be replaced by a call to getParameters in case of needs to distinguish between ora db schema versions... return version(); }
void ora::OraMainTable::setParameter | ( | const std::string & | paramName, |
const std::string & | paramValue | ||
) | [virtual] |
Implements ora::IMainTable.
Definition at line 43 of file OraDatabaseSchema.cc.
References python::IdGenerator::schema, and asciidump::table.
{ if( !paramName.empty() && !paramValue.empty() ){ coral::ITable& table = schema().tableHandle( tableName() ); coral::AttributeList dataToInsert; dataToInsert.extend<std::string>( parameterNameColumn()); dataToInsert.extend<std::string>( parameterValueColumn()); dataToInsert[ parameterNameColumn() ].data<std::string>() = paramName; dataToInsert[ parameterValueColumn() ].data<std::string>() = paramValue; table.dataEditor().insertRow( dataToInsert ); } }
std::string ora::OraMainTable::tableName | ( | ) | [static] |
Definition at line 21 of file OraDatabaseSchema.cc.
{ static std::string s_name("ORA_DB"); return s_name; }
std::string ora::OraMainTable::version | ( | ) | [static] |
Definition at line 16 of file OraDatabaseSchema.cc.
{ static std::string s_version("1.1.0"); return s_version; }