int runDDL(NDBT_Context* ctx, NDBT_Step* step){ Ndb* pNdb= GETNDB(step); NdbDictionary::Dictionary* pDict = pNdb->getDictionary(); const int tables = NDBT_Tables::getNumTables(); while(!ctx->isTestStopped()) { const int tab_no = rand() % (tables); NdbDictionary::Table tab = *NDBT_Tables::getTable(tab_no); BaseString name= tab.getName(); name.appfmt("-%d", step->getStepNo()); tab.setName(name.c_str()); if(pDict->createTable(tab) == 0) { HugoTransactions hugoTrans(* pDict->getTable(name.c_str())); if (hugoTrans.loadTable(pNdb, 10000) != 0){ return NDBT_FAILED; } while(pDict->dropTable(tab.getName()) != 0 && pDict->getNdbError().code != 4009) g_err << pDict->getNdbError() << endl; sleep(1); } } return NDBT_OK; }
int CMT_createTableHook(Ndb* ndb, NdbDictionary::Table& table, int when, void* arg) { if (when == 0) { Uint32 num = ((Uint32*) arg)[0]; Uint32 fragCount = ((Uint32*) arg)[1]; /* Substitute a unique name */ char buf[100]; BaseString::snprintf(buf, sizeof(buf), "%s_%u", table.getName(), num); table.setName(buf); if (fragCount > 0) table.setFragmentCount(fragCount); ndbout << "Creating " << buf << " with fragment count " << fragCount << endl; } return 0; }
int create100Tables(NDBT_Context* ctx, NDBT_Step* step) { Ndb* pNdb = GETNDB(step); const NdbDictionary::Table* pTab= ctx->getTab(); /* Run as a 'T1' testcase - do nothing for other tables */ if (strcmp(pTab->getName(), "T1") != 0) return NDBT_OK; for (Uint32 t=0; t < 100; t++) { char tabnameBuff[10]; snprintf(tabnameBuff, sizeof(tabnameBuff), "TAB%u", t); NdbDictionary::Table tab; tab.setName(tabnameBuff); NdbDictionary::Column pk; pk.setName("PK"); pk.setType(NdbDictionary::Column::Varchar); pk.setLength(20); pk.setNullable(false); pk.setPrimaryKey(true); tab.addColumn(pk); pNdb->getDictionary()->dropTable(tab.getName()); if(pNdb->getDictionary()->createTable(tab) != 0) { ndbout << "Create table failed with error : " << pNdb->getDictionary()->getNdbError().code << " " << pNdb->getDictionary()->getNdbError().message << endl; return NDBT_FAILED; } ndbout << "Created table " << tabnameBuff << endl; } return NDBT_OK; }