Below is the list of changes that have just been committed into a local
5.1 repository of jmiller. When jmiller does a push these changes
will be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet@stripped, 2008-02-01 13:51:04-06:00, jmiller@stripped +1 -0
NdbRepStress.cpp:
Updated with new support function from Magnus push to dbutil
storage/ndb/test/ndbapi/acrt/NdbRepStress.cpp@stripped, 2008-02-01 13:39:53-06:00,
jmiller@stripped +29 -51
Updated with new support function from Magnus push to dbutil
diff -Nrup a/storage/ndb/test/ndbapi/acrt/NdbRepStress.cpp
b/storage/ndb/test/ndbapi/acrt/NdbRepStress.cpp
--- a/storage/ndb/test/ndbapi/acrt/NdbRepStress.cpp 2008-01-09 12:01:18 -06:00
+++ b/storage/ndb/test/ndbapi/acrt/NdbRepStress.cpp 2008-02-01 13:39:53 -06:00
@@ -58,14 +58,13 @@ syncSlaveWithMaster()
know when the slave has caught up
*/
- MYSQL_RES * result;
- MYSQL_ROW row;
+ SqlResultSet result;
unsigned int masterEpoch = 0;
unsigned int slaveEpoch = 0;
unsigned int slaveEpochOld = 0;
int maxLoops = 100;
int loopCnt = 0;
-
+
//Create a DbUtil object for the master
DbUtil master("mysql","");
@@ -75,16 +74,13 @@ syncSlaveWithMaster()
return NDBT_FAILED;
}
- //Get max epoch from master
- if(master.doQuery("SELECT MAX(epoch) FROM mysql.ndb_binlog_index"))
+ //Get max epoch from master
+ if(master.doQuery("SELECT MAX(epoch) FROM mysql.ndb_binlog_index", result))
{
return NDBT_FAILED;
}
- result = mysql_use_result(master.getMysql());
- row = mysql_fetch_row(result);
- masterEpoch = atoi(row[0]);
- mysql_free_result(result);
-
+ masterEpoch = result.columnAsInt("epoch");
+
/*
Now we will pull current epoch from slave. If not the
same as master, we will continue to retrieve the epoch
@@ -103,15 +99,12 @@ syncSlaveWithMaster()
while(slaveEpoch != masterEpoch && loopCnt < maxLoops)
{
- if(slave.doQuery("SELECT epoch FROM mysql.ndb_apply_status"))
+ if(slave.doQuery("SELECT epoch FROM mysql.ndb_apply_status",result))
{
return NDBT_FAILED;
}
- result = mysql_use_result(slave.getMysql());
- row = mysql_fetch_row(result);
- slaveEpoch = atoi(row[0]);
- mysql_free_result(result);
-
+ slaveEpoch = result.columnAsInt("epoch");
+
if(slaveEpoch != slaveEpochOld)
{
slaveEpochOld = slaveEpoch;
@@ -135,17 +128,15 @@ syncSlaveWithMaster()
}
int
-verifySlaveLoad(BaseString *table)
+verifySlaveLoad(BaseString &table)
{
- BaseString sqlStm;
+ //BaseString sqlStm;
BaseString db;
- MYSQL_RES * result;
- MYSQL_ROW row;
unsigned int masterCount = 0;
unsigned int slaveCount = 0;
db.assign("TEST_DB");
- sqlStm.assfmt("SELECT COUNT(*) FROM %s", table);
+ //sqlStm.assfmt("SELECT COUNT(*) FROM %s", table);
//First thing to do is sync slave
if(syncSlaveWithMaster())
@@ -163,15 +154,11 @@ verifySlaveLoad(BaseString *table)
return NDBT_FAILED;
}
- if(master.doQuery(sqlStm.c_str()))
+ if((masterCount = master.selectCountTable(table.c_str())) == 0 )
{
return NDBT_FAILED;
}
- result = mysql_use_result(master.getMysql());
- row = mysql_fetch_row(result);
- masterCount = atoi(row[0]);
- mysql_free_result(result);
-
+
//Create a DB Object for slave
DbUtil slave(db.c_str(),".slave");
@@ -181,15 +168,11 @@ verifySlaveLoad(BaseString *table)
return NDBT_FAILED;
}
- if(slave.doQuery(sqlStm.c_str()))
+ if((slaveCount = slave.selectCountTable(table.c_str())) == 0 )
{
return NDBT_FAILED;
}
- result = mysql_use_result(slave.getMysql());
- row = mysql_fetch_row(result);
- slaveCount = atoi(row[0]);
- mysql_free_result(result);
-
+
if(slaveCount != masterCount)
{
g_err << "Verify Load -> Slave Count != Master Count "
@@ -245,10 +228,9 @@ dropTEST_DB(NDBT_Context* ctx, NDBT_Step
}
int
-verifySlave(BaseString& sqlStm, BaseString& db)
+verifySlave(BaseString& sqlStm, BaseString& db, BaseString& column)
{
- MYSQL_RES* resource;
- MYSQL_ROW row;
+ SqlResultSet result;
float masterSum;
float slaveSum;
@@ -269,30 +251,24 @@ verifySlave(BaseString& sqlStm, BaseStri
return NDBT_FAILED;
}
- if(master.doQuery(sqlStm.c_str()) != NDBT_OK)
+ if(master.doQuery(sqlStm.c_str(),result) != NDBT_OK)
{
return NDBT_FAILED;
}
- resource = mysql_use_result(master.getMysql());
- row = mysql_fetch_row(resource);
- masterSum = atoi(row[0]);
- mysql_free_result(resource);
-
+ masterSum = result.columnAsInt(column.c_str());
+
//Login to slave
if (!slave.connect())
{
return NDBT_FAILED;
}
- if(slave.doQuery(sqlStm.c_str()) != NDBT_OK)
+ if(slave.doQuery(sqlStm.c_str(),result) != NDBT_OK)
{
return NDBT_FAILED;
}
- resource = mysql_use_result(slave.getMysql());
- row = mysql_fetch_row(resource);
- slaveSum = atoi(row[0]);
- mysql_free_result(resource);
-
+ slaveSum = result.columnAsInt(column.c_str());
+
if(masterSum != slaveSum)
{
g_err << "VerifySlave -> masterSum != slaveSum..." << endl;
@@ -364,7 +340,7 @@ createTable_rep1(NDBT_Context* ctx, NDBT
return NDBT_FAILED;
}
- if(verifySlaveLoad(&table)!= NDBT_OK)
+ if(verifySlaveLoad(table)!= NDBT_OK)
{
g_err << "Create Table -> Failed on verify slave load!"
<< endl;
@@ -429,11 +405,13 @@ verifySlave_rep1(NDBT_Context* ctx, NDBT
{
BaseString sql;
BaseString db;
+ BaseString column;
sql.assign("SELECT SUM(c3) FROM rep1");
db.assign("TEST_DB");
+ column.assign("c3");
- if (verifySlave(sql,db) != NDBT_OK)
+ if (verifySlave(sql,db,column) != NDBT_OK)
return NDBT_FAILED;
return NDBT_OK;
}
@@ -452,7 +430,7 @@ verifySlave_rep1(NDBT_Context* ctx, NDBT
dropTEST_DB()
{Drops TEST_DB database on master}
- verifySlave(BaseString& sql, BaseSting& db)
+ verifySlave(BaseString& sql, BaseSting& db, BaseSting& column)
{The SQL statement must sum a column and will verify
that the sum of the column is equal on master & slave}
*/
| Thread |
|---|
| • bk commit into 5.1 tree (jmiller:1.2669) | Jonathan Miller | 1 Feb |