mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
ndb - add temporary tables to hugo
and use it for testOperations/testTransactions
This commit is contained in:
@ -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:
|
|||||||
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){
|
|||||||
|
|
||||||
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){
|
|||||||
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:
|
|||||||
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){
|
|||||||
diskbased = false;
|
diskbased = false;
|
||||||
tsname = NULL;
|
tsname = NULL;
|
||||||
createAllTables = false;
|
createAllTables = false;
|
||||||
|
temporaryTables = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -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
|
|||||||
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
|
|||||||
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);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user