Commit b8812c85 authored by unknown's avatar unknown

ndb - add temporary tables to hugo

  and use it for testOperations/testTransactions


storage/ndb/test/include/NDBT_Test.hpp:
  Add support for temporary tables in hugo
storage/ndb/test/ndbapi/testOperations.cpp:
  Make testOperations use temporary tables
storage/ndb/test/ndbapi/testTransactions.cpp:
  Make testTransactions use temporary tables
storage/ndb/test/src/NDBT_Tables.cpp:
  Add support for temporary tables in hugo
storage/ndb/test/src/NDBT_Test.cpp:
  Add support for temporary tables in hugo
parent e4a398f1
...@@ -364,6 +364,9 @@ public: ...@@ -364,6 +364,9 @@ public:
// Table create tweaks // Table create tweaks
int createHook(Ndb*, NdbDictionary::Table&, int when); int createHook(Ndb*, NdbDictionary::Table&, int when);
Vector<BaseString> m_tables_in_test; Vector<BaseString> m_tables_in_test;
void setTemporaryTables(bool val);
bool getTemporaryTables() const;
private: private:
int executeOne(Ndb_cluster_connection&, int executeOne(Ndb_cluster_connection&,
const char* _tabname, const char* testname = NULL); const char* _tabname, const char* testname = NULL);
...@@ -390,6 +393,7 @@ private: ...@@ -390,6 +393,7 @@ private:
bool runonce; bool runonce;
const char* tsname; const char* tsname;
bool createAllTables; bool createAllTables;
bool temporaryTables;
}; };
......
...@@ -660,9 +660,11 @@ main(int argc, const char** argv){ ...@@ -660,9 +660,11 @@ main(int argc, const char** argv){
Vector<int> tmp; Vector<int> tmp;
generate(tmp, 5); generate(tmp, 5);
NDBT_TestSuite ts("testOperations"); NDBT_TestSuite ts("testOperations");
ts.setTemporaryTables(true);
for(Uint32 i = 0; i < 12; i++) for(Uint32 i = 0; i < 12; i++)
{ {
if(false && (i == 6 || i == 8 || i == 10)) if(false && (i == 6 || i == 8 || i == 10))
......
...@@ -372,6 +372,8 @@ main(int argc, const char** argv){ ...@@ -372,6 +372,8 @@ main(int argc, const char** argv){
ndb_init(); ndb_init();
NDBT_TestSuite ts("testOperations"); NDBT_TestSuite ts("testOperations");
ts.setTemporaryTables(true);
for(Uint32 i = 0; i<sizeof(matrix)/sizeof(matrix[0]); i++){ for(Uint32 i = 0; i<sizeof(matrix)/sizeof(matrix[0]); i++){
NDBT_TestCaseImpl1 *pt = new NDBT_TestCaseImpl1(&ts, matrix[i].name, ""); NDBT_TestCaseImpl1 *pt = new NDBT_TestCaseImpl1(&ts, matrix[i].name, "");
......
...@@ -1039,6 +1039,11 @@ loop: ...@@ -1039,6 +1039,11 @@ loop:
j++; j++;
} }
j++; j++;
if (tmpTab.getTemporary())
{
tmpIndx.setTemporary(true);
tmpIndx.setLogging(false);
}
if(pNdb->getDictionary()->createIndex(tmpIndx) != 0){ if(pNdb->getDictionary()->createIndex(tmpIndx) != 0){
ndbout << pNdb->getDictionary()->getNdbError() << endl; ndbout << pNdb->getDictionary()->getNdbError() << endl;
return NDBT_FAILED; return NDBT_FAILED;
......
...@@ -770,6 +770,7 @@ NDBT_TestSuite::NDBT_TestSuite(const char* pname):name(pname){ ...@@ -770,6 +770,7 @@ NDBT_TestSuite::NDBT_TestSuite(const char* pname):name(pname){
diskbased = false; diskbased = false;
tsname = NULL; tsname = NULL;
createAllTables = false; createAllTables = false;
temporaryTables = false;
} }
...@@ -791,6 +792,14 @@ void NDBT_TestSuite::setCreateAllTables(bool _flag){ ...@@ -791,6 +792,14 @@ void NDBT_TestSuite::setCreateAllTables(bool _flag){
createAllTables = _flag; createAllTables = _flag;
} }
void NDBT_TestSuite::setTemporaryTables(bool val){
temporaryTables = val;
}
bool NDBT_TestSuite::getTemporaryTables() const {
return temporaryTables;
}
bool NDBT_TestSuite::timerIsOn(){ bool NDBT_TestSuite::timerIsOn(){
return (timer != 0); return (timer != 0);
} }
...@@ -805,6 +814,7 @@ static int ...@@ -805,6 +814,7 @@ static int
g_create_hook(Ndb* ndb, NdbDictionary::Table& tab, int when, void* arg) g_create_hook(Ndb* ndb, NdbDictionary::Table& tab, int when, void* arg)
{ {
NDBT_TestSuite* ts = (NDBT_TestSuite*)arg; NDBT_TestSuite* ts = (NDBT_TestSuite*)arg;
return ts->createHook(ndb, tab, when); return ts->createHook(ndb, tab, when);
} }
...@@ -942,14 +952,23 @@ int ...@@ -942,14 +952,23 @@ int
NDBT_TestSuite::createHook(Ndb* ndb, NdbDictionary::Table& tab, int when) NDBT_TestSuite::createHook(Ndb* ndb, NdbDictionary::Table& tab, int when)
{ {
if (when == 0) { if (when == 0) {
if (diskbased) { if (diskbased)
for (int i = 0; i < tab.getNoOfColumns(); i++) { {
for (int i = 0; i < tab.getNoOfColumns(); i++)
{
NdbDictionary::Column* col = tab.getColumn(i); NdbDictionary::Column* col = tab.getColumn(i);
if (! col->getPrimaryKey()) { if (! col->getPrimaryKey())
{
col->setStorageType(NdbDictionary::Column::StorageTypeDisk); col->setStorageType(NdbDictionary::Column::StorageTypeDisk);
} }
} }
} }
else if (temporaryTables)
{
tab.setTemporary(true);
tab.setLogging(false);
}
if (tsname != NULL) { if (tsname != NULL) {
tab.setTablespace(tsname); 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