From: Martin Zaun Date: October 19 2010 10:56pm Subject: bzr commit into mysql-5.1-telco-7.1 branch (martin.zaun:3868) List-Archive: http://lists.mysql.com/commits/121230 Message-Id: <201010192257.o9JKaU49013562@acsinet15.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0228356198==" --===============0228356198== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///Users/mz/mysql/ndb-7.1-opt64/ based on revid:martin.zaun@stripped 3868 Martin Zaun 2010-10-19 crund - preparations for code sharing between crund and tws. modified: storage/ndb/test/crund/Makefile storage/ndb/test/crund/src/com/mysql/cluster/crund/ClusterjLoad.java storage/ndb/test/crund/src/com/mysql/cluster/crund/CrundDriver.java storage/ndb/test/crund/src/com/mysql/cluster/crund/Driver.java storage/ndb/test/crund/src/com/mysql/cluster/crund/JdbcLoad.java storage/ndb/test/crund/src/com/mysql/cluster/crund/JpaLoad.java storage/ndb/test/crund/src/com/mysql/cluster/crund/NdbBase.java storage/ndb/test/crund/src/com/mysql/cluster/crund/NdbJTieLoad.java storage/ndb/test/crund/src/crundndb/CrundDriver.cpp storage/ndb/test/crund/src/crundndb/CrundDriver.hpp storage/ndb/test/crund/src/crundndb/Driver.cpp storage/ndb/test/crund/src/crundndb/Driver.hpp storage/ndb/test/crund/src/crundndb/Makefile storage/ndb/test/crund/src/crundndb/NdbApiDriver.cpp storage/ndb/test/crund/src/crundndb/com_mysql_cluster_crund_NdbApiLoad.cpp === modified file 'storage/ndb/test/crund/Makefile' --- a/storage/ndb/test/crund/Makefile 2010-10-08 11:17:35 +0000 +++ b/storage/ndb/test/crund/Makefile 2010-10-19 22:56:45 +0000 @@ -32,8 +32,10 @@ distclean: # read the generic settings include env.properties -run.driver: $(SRC)/crundndb/Driver - LD_LIBRARY_PATH=${NDB_LIBDIR} $(SRC)/crundndb/Driver \ +# not sure if needed: +# LD_LIBRARY_PATH=${NDB_LIBDIR}:$(SRC)/crundndb/Driver +run.driver: $(SRC)/crundndb/NdbApiDriver + $(SRC)/crundndb/NdbApiDriver \ -p crundRun.properties -p crundNdbapi.properties # #run.driver: === modified file 'storage/ndb/test/crund/src/com/mysql/cluster/crund/ClusterjLoad.java' --- a/storage/ndb/test/crund/src/com/mysql/cluster/crund/ClusterjLoad.java 2010-10-05 08:48:30 +0000 +++ b/storage/ndb/test/crund/src/com/mysql/cluster/crund/ClusterjLoad.java 2010-10-19 22:56:45 +0000 @@ -41,11 +41,10 @@ import java.util.Set; */ public class ClusterjLoad extends CrundDriver { - // ---------------------------------------------------------------------- - // ClusterJ resources - // ---------------------------------------------------------------------- - + // ClusterJ settings protected String mgmdConnect; + + // ClusterJ resources protected SessionFactory sessionFactory; protected Session session; === modified file 'storage/ndb/test/crund/src/com/mysql/cluster/crund/CrundDriver.java' --- a/storage/ndb/test/crund/src/com/mysql/cluster/crund/CrundDriver.java 2010-10-08 11:17:35 +0000 +++ b/storage/ndb/test/crund/src/com/mysql/cluster/crund/CrundDriver.java 2010-10-19 22:56:45 +0000 @@ -57,6 +57,7 @@ import java.io.InputStream; abstract public class CrundDriver extends Driver { // benchmark settings + protected boolean renewConnection; protected boolean renewOperations; protected boolean logSumOfOps; protected boolean allowExtendedPC; @@ -76,6 +77,16 @@ abstract public class CrundDriver extend // benchmark intializers/finalizers // ---------------------------------------------------------------------- + protected void init() throws Exception { + super.init(); + // do work here + } + + protected void close() throws Exception { + // do work here + super.close(); + } + protected void initProperties() { super.initProperties(); @@ -84,6 +95,7 @@ abstract public class CrundDriver extend final StringBuilder msg = new StringBuilder(); final String eol = System.getProperty("line.separator"); + renewConnection = parseBoolean("renewConnection", false); renewOperations = parseBoolean("renewOperations", false); logSumOfOps = parseBoolean("logSumOfOps", true); allowExtendedPC = parseBoolean("allowExtendedPC", false); @@ -167,6 +179,7 @@ abstract public class CrundDriver extend out.println(); out.println("crund settings ..."); + out.println("renewConnection: " + renewConnection); out.println("renewOperations: " + renewOperations); out.println("logSumOfOps: " + logSumOfOps); out.println("allowExtendedPC: " + allowExtendedPC); @@ -206,6 +219,7 @@ abstract public class CrundDriver extend abstract protected void closeOperations() throws Exception; protected void runTests() throws Exception { + out.println(); initConnection(); initOperations(); @@ -214,7 +228,7 @@ abstract public class CrundDriver extend for (int i = aStart; i <= aEnd; i *= aScale) { for (int j = bStart; j <= bEnd; j *= bScale) { try { - runOperations(i, j); + runLoads(i, j); } catch (Exception ex) { // already in rollback for database/orm exceptions throw ex; @@ -231,7 +245,7 @@ abstract public class CrundDriver extend closeConnection(); } - protected void runOperations(int countA, int countB) throws Exception { + protected void runLoads(int countA, int countB) throws Exception { out.println(); out.println("------------------------------------------------------------"); @@ -265,16 +279,7 @@ abstract public class CrundDriver extend } clearData(); - // run operations - for (Op op : ops) { - // pre-tx cleanup - if (!allowExtendedPC) { - // effectively prevent caching beyond Tx scope by clearing - // any data/result caches before the next transaction - clearPersistenceContext(); - } - runOp(op, countA, countB); - } + runOperations(countA, countB); if (logSumOfOps) { out.println(); @@ -298,10 +303,10 @@ abstract public class CrundDriver extend logHeader = false; } if (logRealTime) { - rtimes.append(endl); if (logSumOfOps) { rtimes.append("\t" + ta); } + rtimes.append(endl); } if (logMemUsage) { if (logSumOfOps) { @@ -311,12 +316,24 @@ abstract public class CrundDriver extend } } + protected void runOperations(int countA, int countB) throws Exception { + for (Op op : ops) { + // pre-tx cleanup + if (!allowExtendedPC) { + // effectively prevent caching beyond Tx scope by clearing + // any data/result caches before the next transaction + clearPersistenceContext(); + } + runOp(op, countA, countB); + } + } + protected void runOp(Op op, int countA, int countB) throws Exception { final String name = op.getName(); if (!exclude.contains(name)) { begin(name); op.run(countA, countB); - commit(name); + finish(name); } } @@ -324,7 +341,22 @@ abstract public class CrundDriver extend static protected final void verify(boolean cond) { //assert (cond); if (!cond) - throw new RuntimeException("wrong data; verification failed"); + throw new RuntimeException("data verification failed."); + } + + static protected final void verify(int exp, int act) { + if (exp != act) + throw new RuntimeException("data verification failed:" + + " expected = " + exp + + ", actual = " + act); + } + + static protected final void verify(String exp, String act) { + if ((exp == null && act != null) + || (exp != null && !exp.equals(act))) + throw new RuntimeException("data verification failed:" + + " expected = '" + exp + "'" + + ", actual = '" + act + "'"); } // ---------------------------------------------------------------------- @@ -388,4 +420,13 @@ abstract public class CrundDriver extend = { string1, string2, string3, string4, string5, string6, string7 }; static final protected byte[][] bytes = { bytes1, bytes2, bytes3, bytes4, bytes5, bytes6, bytes7 }; + + // ---------------------------------------------------------------------- + // datastore operations + // ---------------------------------------------------------------------- + + abstract protected void initConnection() throws Exception; + abstract protected void closeConnection() throws Exception; + abstract protected void clearPersistenceContext() throws Exception; + abstract protected void clearData() throws Exception; } === modified file 'storage/ndb/test/crund/src/com/mysql/cluster/crund/Driver.java' --- a/storage/ndb/test/crund/src/com/mysql/cluster/crund/Driver.java 2010-10-05 08:48:30 +0000 +++ b/storage/ndb/test/crund/src/com/mysql/cluster/crund/Driver.java 2010-10-19 22:56:45 +0000 @@ -71,7 +71,6 @@ abstract public class Driver { protected boolean logRealTime; protected boolean logMemUsage; protected boolean includeFullGC; - protected boolean renewConnection; protected int warmupRuns; protected int hotRuns; @@ -147,41 +146,48 @@ abstract public class Driver { try { init(); - // warmup runs - for (int i = 0; i < warmupRuns; i++) { - runTests(); - } + if (warmupRuns > 0) { + out.println(); + out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); + out.println("warmup runs ..."); + out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); - // truncate log file, reset log buffers - out.println(); - out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); - out.println("start logging results ..."); - out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); - out.println(); - logHeader = true; - header = new StringBuilder(); - rtimes = new StringBuilder(); - musage = new StringBuilder(); - closeLogFile(); - openLogFile(); - - // hot runs - for (int i = 0; i < hotRuns; i++) { - runTests(); - } + for (int i = 0; i < warmupRuns; i++) { + runTests(); + } - // write log buffers - if (logRealTime) { - log.println(descr + ", rtime[ms]" - + header.toString() + endl - + rtimes.toString() + endl + endl + endl); - } - if (logMemUsage) { - log.println(descr + ", net musage[KiB]" - + header.toString() + endl - + musage.toString() + endl + endl + endl); + // truncate log file, reset log buffers + closeLogFile(); + openLogFile(); + header = new StringBuilder(); + rtimes = new StringBuilder(); + musage = new StringBuilder(); + logHeader = true; } + + if (hotRuns > 0) { + out.println(); + out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); + out.println("hot runs ..."); + out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); + + for (int i = 0; i < hotRuns; i++) { + runTests(); + } + // write log buffers + if (logRealTime) { + log.println(descr + ", rtime[ms]" + + header.toString() + endl + + rtimes.toString() + endl + endl + endl); + } + if (logMemUsage) { + log.println(descr + ", net musage[KiB]" + + header.toString() + endl + + musage.toString() + endl + endl + endl); + } + } + close(); } catch (Exception ex) { // end the program regardless of threads @@ -262,6 +268,7 @@ abstract public class Driver { musage = null; closeLogFile(); + props.clear(); } // loads the benchmark's properties from properties files @@ -312,7 +319,6 @@ abstract public class Driver { logRealTime = parseBoolean("logRealTime", true); logMemUsage = parseBoolean("logMemUsage", false); includeFullGC = parseBoolean("includeFullGC", false); - renewConnection = parseBoolean("renewConnection", false); warmupRuns = parseInt("warmupRuns", 0); if (warmupRuns < 0) { @@ -341,7 +347,6 @@ abstract public class Driver { out.println("logRealTime: " + logRealTime); out.println("logMemUsage: " + logMemUsage); out.println("includeFullGC: " + includeFullGC); - out.println("renewConnection: " + renewConnection); out.println("warmupRuns: " + warmupRuns); out.println("hotRuns: " + hotRuns); } @@ -370,7 +375,7 @@ abstract public class Driver { abstract protected void runTests() throws Exception; - protected void begin(String name) throws Exception { + protected void begin(String name) { out.println(); out.println(name); @@ -387,7 +392,7 @@ abstract public class Driver { } } - protected void commit(String name) throws Exception { + protected void finish(String name) { // attempt one full GC, before timing tx end if (includeFullGC) { rt.gc(); @@ -421,13 +426,4 @@ abstract public class Driver { if (logHeader) header.append("\t" + name); } - - // ---------------------------------------------------------------------- - // datastore operations - // ---------------------------------------------------------------------- - - abstract protected void initConnection() throws Exception; - abstract protected void closeConnection() throws Exception; - abstract protected void clearPersistenceContext() throws Exception; - abstract protected void clearData() throws Exception; } === modified file 'storage/ndb/test/crund/src/com/mysql/cluster/crund/JdbcLoad.java' --- a/storage/ndb/test/crund/src/com/mysql/cluster/crund/JdbcLoad.java 2010-10-05 08:48:30 +0000 +++ b/storage/ndb/test/crund/src/com/mysql/cluster/crund/JdbcLoad.java 2010-10-19 22:56:45 +0000 @@ -35,15 +35,14 @@ import java.sql.ResultSet; */ public class JdbcLoad extends CrundDriver { - // ---------------------------------------------------------------------- - // JDBC resources - // ---------------------------------------------------------------------- - + // JDBC settings protected String driver; protected String url; protected String user; protected String password; protected boolean autoCommit; + + // JDBC resources protected Connection conn; protected PreparedStatement delAllA; protected PreparedStatement delAllB0; === modified file 'storage/ndb/test/crund/src/com/mysql/cluster/crund/JpaLoad.java' --- a/storage/ndb/test/crund/src/com/mysql/cluster/crund/JpaLoad.java 2010-10-05 08:48:30 +0000 +++ b/storage/ndb/test/crund/src/com/mysql/cluster/crund/JpaLoad.java 2010-10-19 22:56:45 +0000 @@ -37,10 +37,7 @@ import javax.persistence.PersistenceCont */ public class JpaLoad extends CrundDriver { - // ---------------------------------------------------------------------- - // JPA resources - // ---------------------------------------------------------------------- - + // JPA settings protected String driver; protected String url; protected String user; @@ -49,6 +46,8 @@ public class JpaLoad extends CrundDriver protected String brokerFactory; protected String ndbConnectString; protected String ndbDatabase; + + // JPA resources protected EntityManagerFactory emf; protected EntityManager em; protected Query delAllA; === modified file 'storage/ndb/test/crund/src/com/mysql/cluster/crund/NdbBase.java' --- a/storage/ndb/test/crund/src/com/mysql/cluster/crund/NdbBase.java 2010-10-08 11:17:35 +0000 +++ b/storage/ndb/test/crund/src/com/mysql/cluster/crund/NdbBase.java 2010-10-19 22:56:45 +0000 @@ -22,7 +22,7 @@ package com.mysql.cluster.crund; abstract public class NdbBase extends CrundDriver { - // NDB resources + // NDB settings protected String mgmdConnect; protected String catalog; protected String schema; @@ -30,8 +30,8 @@ abstract public class NdbBase extends Cr // so far, there's no NDB support for caching data beyond Tx scope protected void clearPersistenceContext() throws Exception {} - // ---------------------------------------------------------------------- - // JDBC intializers/finalizers + // ---------------------------------------------------------------------- + // NDB Base intializers/finalizers // ---------------------------------------------------------------------- protected void initProperties() { === modified file 'storage/ndb/test/crund/src/com/mysql/cluster/crund/NdbJTieLoad.java' --- a/storage/ndb/test/crund/src/com/mysql/cluster/crund/NdbJTieLoad.java 2010-10-05 08:48:30 +0000 +++ b/storage/ndb/test/crund/src/com/mysql/cluster/crund/NdbJTieLoad.java 2010-10-19 22:56:45 +0000 @@ -87,12 +87,11 @@ public class NdbJTieLoad extends NdbBase loadSystemLibrary("ndbclient"); // instantiate NDB cluster singleton - out.println(); - out.print("creating cluster conn ..."); + out.print("creating cluster connection ..."); out.flush(); mgmd = Ndb_cluster_connection.create(mgmdConnect); assert mgmd != null; - out.println(" [ok, mgmd=" + mgmd + "]"); + out.println(" [ok]"); // connect to cluster management node (ndb_mgmd) out.print("connecting to mgmd ..."); === modified file 'storage/ndb/test/crund/src/crundndb/CrundDriver.cpp' --- a/storage/ndb/test/crund/src/crundndb/CrundDriver.cpp 2010-10-08 11:17:35 +0000 +++ b/storage/ndb/test/crund/src/crundndb/CrundDriver.cpp 2010-10-19 22:56:45 +0000 @@ -43,6 +43,18 @@ using utils::toString; // ---------------------------------------------------------------------- void +CrundDriver::init() { + Driver::init(); + // do work here +} + +void +CrundDriver::close() { + // do work here + Driver::close(); +} + +void CrundDriver::initProperties() { Driver::initProperties(); @@ -50,6 +62,7 @@ CrundDriver::initProperties() { ostringstream msg; + renewConnection = toBool(props[L"renewConnection"], false); renewOperations = toBool(props[L"renewOperations"], false); string lm = toString(props[L"lockMode"]); @@ -172,6 +185,7 @@ CrundDriver::printProperties() { cout.flags(ios_base::boolalpha); cout << endl << "crund settings ..." << endl; + cout << "renewConnection: " << renewConnection << endl; cout << "renewOperations: " << renewOperations << endl; cout << "lockMode: " << toStr(lockMode) << endl; cout << "logSumOfOps: " << logSumOfOps << endl; @@ -195,6 +209,7 @@ CrundDriver::printProperties() { void CrundDriver::runTests() { + cout << endl; initConnection(); initOperations(); @@ -209,7 +224,6 @@ CrundDriver::runTests() { cout << endl << "------------------------------------------------------------" << endl << endl; - clearData(); closeOperations(); closeConnection(); === modified file 'storage/ndb/test/crund/src/crundndb/CrundDriver.hpp' --- a/storage/ndb/test/crund/src/crundndb/CrundDriver.hpp 2010-10-08 11:17:35 +0000 +++ b/storage/ndb/test/crund/src/crundndb/CrundDriver.hpp 2010-10-19 22:56:45 +0000 @@ -41,6 +41,7 @@ protected: static const char* toStr(LockMode mode); enum XMode { SINGLE, BULK, BATCH }; // XXX not used yet static const char* toStr(XMode mode); // XXX not used yet + bool renewConnection; bool renewOperations; LockMode lockMode; bool logSumOfOps; @@ -58,6 +59,8 @@ protected: set< string > exclude; // benchmark intializers/finalizers + virtual void init(); + virtual void close(); virtual void initProperties(); virtual void printProperties(); @@ -81,6 +84,12 @@ protected: virtual void runLoads(int countA, int countB); virtual void runOperations(int countA, int countB); virtual void runOp(const Op& op, int countA, int countB); + + // datastore operations + virtual void initConnection() = 0; + virtual void closeConnection() = 0; + //virtual void clearPersistenceContext() = 0; // not used + virtual void clearData() = 0; }; #endif // CrundDriver_hpp === modified file 'storage/ndb/test/crund/src/crundndb/Driver.cpp' --- a/storage/ndb/test/crund/src/crundndb/Driver.cpp 2010-10-08 11:17:35 +0000 +++ b/storage/ndb/test/crund/src/crundndb/Driver.cpp 2010-10-19 22:56:45 +0000 @@ -130,6 +130,7 @@ Driver::run() { openLogFile(); header.rdbuf()->str(""); rtimes.rdbuf()->str(""); + ctimes.rdbuf()->str(""); logHeader = true; } @@ -144,9 +145,16 @@ Driver::run() { } // write log buffers - log << descr << ", rtime[ms]" - << header.rdbuf()->str() << endl - << rtimes.rdbuf()->str() << endl << endl << endl; + if (logRealTime) { + log << descr << ", rtime[ms]" + << header.rdbuf()->str() << endl + << rtimes.rdbuf()->str() << endl << endl << endl; + } + if (logCpuTime) { + log << descr << ", ctime[ms]" + << header.rdbuf()->str() << endl + << ctimes.rdbuf()->str() << endl << endl << endl; + } } close(); @@ -193,7 +201,6 @@ Driver::initProperties() { logRealTime = toBool(props[L"logRealTime"], true); logCpuTime = toBool(props[L"logCpuTime"], false); - renewConnection = toBool(props[L"renewConnection"], false); warmupRuns = toInt(props[L"warmupRuns"], 0, -1); if (warmupRuns < 0) { @@ -227,7 +234,6 @@ Driver::printProperties() { cout << endl << "driver settings ..." << endl; cout << "logRealTime: " << logRealTime << endl; cout << "logCpuTime: " << logCpuTime << endl; - cout << "renewConnection: " << renewConnection << endl; cout << "warmupRuns: " << warmupRuns << endl; cout << "hotRuns: " << hotRuns << endl; === modified file 'storage/ndb/test/crund/src/crundndb/Driver.hpp' --- a/storage/ndb/test/crund/src/crundndb/Driver.hpp 2010-10-08 11:17:35 +0000 +++ b/storage/ndb/test/crund/src/crundndb/Driver.hpp 2010-10-19 22:56:45 +0000 @@ -72,7 +72,6 @@ protected: Properties props; bool logRealTime; bool logCpuTime; - bool renewConnection; int warmupRuns; int hotRuns; @@ -100,12 +99,6 @@ protected: virtual void runTests() = 0; virtual void begin(const string& name); virtual void commit(const string& name); - - // datastore operations - virtual void initConnection() = 0; - virtual void closeConnection() = 0; - //virtual void clearPersistenceContext() = 0; // not used - virtual void clearData() = 0; }; #endif // Driver_hpp === modified file 'storage/ndb/test/crund/src/crundndb/Makefile' --- a/storage/ndb/test/crund/src/crundndb/Makefile 2010-10-05 08:48:30 +0000 +++ b/storage/ndb/test/crund/src/crundndb/Makefile 2010-10-19 22:56:45 +0000 @@ -54,14 +54,18 @@ com_mysql_cluster_crund_NdbApiLoad.h: # $(API_PKG_PATH)/NdbApiLoad.java # $(COMPILE.java) $< +# not sure if needed: +# LD_LIBRARY_PATH=${NDB_LIBDIR}:./Driver run.driver: NdbApiDriver - LD_LIBRARY_PATH=${NDB_LIBDIR} ./NdbApiDriver \ + ./NdbApiDriver \ -p ../../crundRun.properties -p ../../crundNdbapi.properties # for JVM processes, try running valgrind with # --smc-check=all --trace-children=yes --leak-check=full --show-reachable=yes +# not sure if needed: +# LD_LIBRARY_PATH=${NDB_LIBDIR}:./Driver valgrind.driver: NdbApiDriver - LD_LIBRARY_PATH=${NDB_LIBDIR} valgrind \ + valgrind \ --leak-check=full --show-reachable=yes --trace-children=yes \ ./NdbApiDriver \ -p ../../crundRun.properties -p ../../crundNdbapi.properties === modified file 'storage/ndb/test/crund/src/crundndb/NdbApiDriver.cpp' --- a/storage/ndb/test/crund/src/crundndb/NdbApiDriver.cpp 2010-10-08 11:17:35 +0000 +++ b/storage/ndb/test/crund/src/crundndb/NdbApiDriver.cpp 2010-10-19 22:56:45 +0000 @@ -80,14 +80,14 @@ NdbApiDriver::init() { // initialize the benchmark's resources ops = new CrundNdbApiOperations(); - assert (!mgmdConnect.empty()); + assert(!mgmdConnect.empty()); ops->init(mgmdConnect.c_str()); } void NdbApiDriver::close() { // release the benchmark's resources - assert (!mgmdConnect.empty()); + assert(ops); ops->close(); delete ops; ops = NULL; @@ -170,7 +170,7 @@ struct NdbApiDriver::ADelAllOp : Op { virtual void run(int countA, int countB) const { int count; ops->delByScan(ops->model->table_A, count, OB); - assert (count == countA); + assert(count == countA); } }; @@ -183,7 +183,7 @@ struct NdbApiDriver::B0DelAllOp : Op { virtual void run(int countA, int countB) const { int count; ops->delByScan(ops->model->table_B0, count, OB); - assert (count == countB); + assert(count == countB); } }; === modified file 'storage/ndb/test/crund/src/crundndb/com_mysql_cluster_crund_NdbApiLoad.cpp' --- a/storage/ndb/test/crund/src/crundndb/com_mysql_cluster_crund_NdbApiLoad.cpp 2010-10-08 11:17:35 +0000 +++ b/storage/ndb/test/crund/src/crundndb/com_mysql_cluster_crund_NdbApiLoad.cpp 2010-10-19 22:56:45 +0000 @@ -40,7 +40,7 @@ Java_com_mysql_cluster_crund_NdbApiLoad_ jstring mgmd_jstr) { TRACE("ndbinit()"); - assert (mgmd_jstr); + assert(mgmd_jstr); // location of cluster management server (ndb_mgmd) // get a native string from the Java string @@ -77,8 +77,8 @@ Java_com_mysql_cluster_crund_NdbApiLoad_ jint defaultLockMode) { TRACE("initConnection()"); - assert (catalog_jstr); - assert (schema_jstr); + assert(catalog_jstr); + assert(schema_jstr); // get native strings from the Java strings const char* catalog_cstr = env->GetStringUTFChars(catalog_jstr, NULL); @@ -118,7 +118,7 @@ Java_com_mysql_cluster_crund_NdbApiLoad_ TRACE("delAllA()"); int count; ops->delByScan(ops->model->table_A, count, batch == JNI_TRUE); - assert (count == count_A); + assert(count == count_A); } JNIEXPORT void JNICALL @@ -131,7 +131,7 @@ Java_com_mysql_cluster_crund_NdbApiLoad_ TRACE("delAllB0()"); int count; ops->delByScan(ops->model->table_B0, count, batch == JNI_TRUE); - assert (count == count_B); + assert(count == count_B); } JNIEXPORT void JNICALL --===============0228356198== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/martin.zaun@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: martin.zaun@stripped # target_branch: file:///Users/mz/mysql/ndb-7.1-opt64/ # testament_sha1: 60dd5b54820ea39474c67f8556af471d4a1299c6 # timestamp: 2010-10-19 15:56:52 -0700 # base_revision_id: martin.zaun@stripped\ # aozm9ulyrr5g47fw # # Begin bundle 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 --===============0228356198==--