ndb - add temporary tables to hugo

  and use it for testOperations/testTransactions
parent 5f697414
......@@ -364,6 +364,9 @@ public:
// Table create tweaks
int createHook(Ndb*, NdbDictionary::Table&, int when);
Vector<BaseString> m_tables_in_test;
void setTemporaryTables(bool val);
bool getTemporaryTables() const;
private:
int executeOne(Ndb_cluster_connection&,
const char* _tabname, const char* testname = NULL);
......@@ -390,6 +393,7 @@ private:
bool runonce;
const char* tsname;
bool createAllTables;
bool temporaryTables;
};
......
......@@ -660,9 +660,11 @@ main(int argc, const char** argv){
Vector<int> tmp;
generate(tmp, 5);
NDBT_TestSuite ts("testOperations");
ts.setTemporaryTables(true);
for(Uint32 i = 0; i < 12; i++)
{
if(false && (i == 6 || i == 8 || i == 10))
......
......@@ -372,6 +372,8 @@ main(int argc, const char** argv){
ndb_init();
NDBT_TestSuite ts("testOperations");
ts.setTemporaryTables(true);
for(Uint32 i = 0; i<sizeof(matrix)/sizeof(matrix[0]); i++){
NDBT_TestCaseImpl1 *pt = new NDBT_TestCaseImpl1(&ts, matrix[i].name, "");
......
......@@ -1039,6 +1039,11 @@ loop:
j++;
}
j++;
if (tmpTab.getTemporary())
{
tmpIndx.setTemporary(true);
tmpIndx.setLogging(false);
}
if(pNdb->getDictionary()->createIndex(tmpIndx) != 0){
ndbout << pNdb->getDictionary()->getNdbError() << endl;
return NDBT_FAILED;
......
......@@ -770,6 +770,7 @@ NDBT_TestSuite::NDBT_TestSuite(const char* pname):name(pname){
diskbased = false;
tsname = NULL;
createAllTables = false;
temporaryTables = false;
}
......@@ -791,6 +792,14 @@ void NDBT_TestSuite::setCreateAllTables(bool _flag){
createAllTables = _flag;
}
void NDBT_TestSuite::setTemporaryTables(bool val){
temporaryTables = val;
}
bool NDBT_TestSuite::getTemporaryTables() const {
return temporaryTables;
}
bool NDBT_TestSuite::timerIsOn(){
return (timer != 0);
}
......@@ -805,6 +814,7 @@ static int
g_create_hook(Ndb* ndb, NdbDictionary::Table& tab, int when, void* arg)
{
NDBT_TestSuite* ts = (NDBT_TestSuite*)arg;
return ts->createHook(ndb, tab, when);
}
......@@ -942,14 +952,23 @@ int
NDBT_TestSuite::createHook(Ndb* ndb, NdbDictionary::Table& tab, int when)
{
if (when == 0) {
if (diskbased) {
for (int i = 0; i < tab.getNoOfColumns(); i++) {
if (diskbased)
{
for (int i = 0; i < tab.getNoOfColumns(); i++)
{
NdbDictionary::Column* col = tab.getColumn(i);
if (! col->getPrimaryKey()) {
if (! col->getPrimaryKey())
{
col->setStorageType(NdbDictionary::Column::StorageTypeDisk);
}
}
}
else if (temporaryTables)
{
tab.setTemporary(true);
tab.setLogging(false);
}
if (tsname != NULL) {
tab.setTablespace(tsname);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment