summaryrefslogtreecommitdiff
path: root/storage/ndb/test/ndbapi
diff options
context:
space:
mode:
authorunknown <msvensson@shellback.(none)>2008-01-18 22:55:02 +0100
committerunknown <msvensson@shellback.(none)>2008-01-18 22:55:02 +0100
commit4789e3f60669904a3032b59c6fb25f7ba6966bfe (patch)
tree95b16767294e7498d81f2ba918f2f9241d89b8f3 /storage/ndb/test/ndbapi
parent24e10360d42b54dd29ed1238a0cc1aa4cb0ffd87 (diff)
downloadmariadb-git-4789e3f60669904a3032b59c6fb25f7ba6966bfe.tar.gz
Add SqlResultSet
storage/ndb/test/include/DbUtil.hpp: Add support for SqlResultSet storage/ndb/test/ndbapi/Makefile.am: Add testNDBT storage/ndb/test/src/DbUtil.cpp: Add support for SqlResultSet storage/ndb/test/src/Makefile.am: Build AtrtClient storage/ndb/test/include/AtrtClient.hpp: New BitKeeper file ``storage/ndb/test/include/AtrtClient.hpp'' storage/ndb/test/ndbapi/testNDBT.cpp: New BitKeeper file ``storage/ndb/test/ndbapi/testNDBT.cpp'' storage/ndb/test/src/AtrtClient.cpp: New BitKeeper file ``storage/ndb/test/src/AtrtClient.cpp''
Diffstat (limited to 'storage/ndb/test/ndbapi')
-rw-r--r--storage/ndb/test/ndbapi/Makefile.am3
-rw-r--r--storage/ndb/test/ndbapi/testNDBT.cpp173
2 files changed, 176 insertions, 0 deletions
diff --git a/storage/ndb/test/ndbapi/Makefile.am b/storage/ndb/test/ndbapi/Makefile.am
index 9f83b061403..81bb346417f 100644
--- a/storage/ndb/test/ndbapi/Makefile.am
+++ b/storage/ndb/test/ndbapi/Makefile.am
@@ -53,6 +53,7 @@ DbCreate DbAsyncGenerator \
testSRBank \
test_event_merge \
testIndexStat \
+testNDBT \
NdbRepStress
EXTRA_PROGRAMS = \
@@ -99,6 +100,8 @@ ndbapi_slow_select_SOURCES = slow_select.cpp
testReadPerf_SOURCES = testReadPerf.cpp
testLcp_SOURCES = testLcp.cpp
testPartitioning_SOURCES = testPartitioning.cpp
+testNDBT_SOURCES = testNDBT.cpp
+testNDBT_LDADD = $(LDADD) $(top_srcdir)/libmysql_r/libmysqlclient_r.la
testBitfield_SOURCES = testBitfield.cpp
NdbRepStress_SOURCES = acrt/NdbRepStress.cpp
DbCreate_SOURCES = bench/mainPopulate.cpp bench/dbPopulate.cpp bench/userInterface.cpp bench/dbPopulate.h bench/userInterface.h bench/testData.h bench/testDefinitions.h bench/ndb_schema.hpp bench/ndb_error.hpp
diff --git a/storage/ndb/test/ndbapi/testNDBT.cpp b/storage/ndb/test/ndbapi/testNDBT.cpp
new file mode 100644
index 00000000000..9c911b9a9d9
--- /dev/null
+++ b/storage/ndb/test/ndbapi/testNDBT.cpp
@@ -0,0 +1,173 @@
+/* Copyright (C) 2003 MySQL AB
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+#include <NDBT.hpp>
+#include <NDBT_Test.hpp>
+#include <DbUtil.hpp>
+#include <AtrtClient.hpp>
+
+
+int runTestAtrtClient(NDBT_Context* ctx, NDBT_Step* step){
+ AtrtClient atrt;
+
+ SqlResultSet clusters;
+ if (!atrt.getClusters(clusters))
+ return NDBT_FAILED;
+
+ int i= 0;
+ while(clusters.next())
+ {
+ ndbout << clusters.column("name") << endl;
+ if (i++ == 1){
+ ndbout << "removing: " << clusters.column("name") << endl;
+ clusters.remove();
+ }
+ }
+
+ clusters.reset();
+ while(clusters.next())
+ {
+ ndbout << clusters.column("name") << endl;
+ }
+
+ return NDBT_OK;
+}
+
+
+int runTestDbUtil(NDBT_Context* ctx, NDBT_Step* step){
+ DbUtil sql;
+
+ {
+ // Select all rows from mysql.user
+ SqlResultSet result;
+ if (!sql.doQuery("SELECT * FROM mysql.user", result))
+ return NDBT_FAILED;
+ // result.print();
+
+ while(result.next())
+ {
+ ndbout << result.column("host") << ", "
+ << result.column("uSer") << ", "
+ << result.columnAsInt("max_updates") << ", "
+ << endl;
+ }
+
+ result.reset();
+ while(result.next())
+ {
+ ndbout << result.column("host") << endl;
+ }
+ }
+
+ {
+ // No column name, query should fail
+ Properties args;
+ SqlResultSet result;
+ if (sql.doQuery("SELECT * FROM mysql.user WHERE name=?", args, result))
+ return NDBT_FAILED;
+ result.print();
+ }
+
+ {
+ // Select nonexisiting rows from mysql.user
+ Properties args;
+ SqlResultSet result;
+ args.put("0", "no_such_host");
+ if (!sql.doQuery("SELECT * FROM mysql.user WHERE host=?", args, result))
+ return NDBT_FAILED;
+ ndbout << "no rows" << endl;
+ result.print();
+
+ // Change args to an find one row
+ args.clear();
+ args.put("0", "localhost");
+ if (!sql.doQuery("SELECT host, user FROM mysql.user WHERE host=?",
+ args, result))
+ return NDBT_FAILED;
+ result.print();
+ }
+
+ {
+ if (!sql.doQuery("CREATE TABLE sql_client_test (a int, b varchar(255))"))
+ return NDBT_FAILED;
+
+ if (!sql.doQuery("INSERT INTO sql_client_test VALUES(1, 'hello'), (2, 'bye')"))
+ return NDBT_FAILED;
+
+ // Select all rows from sql_client_test
+ SqlResultSet result;
+ if (!sql.doQuery("SELECT * FROM sql_client_test", result))
+ return NDBT_FAILED;
+ // result.print();
+
+ while(result.next())
+ {
+ }
+
+ // Select second row from sql_client_test
+ Properties args;
+ args.put("0", 2);
+ if (!sql.doQuery("SELECT * FROM sql_client_test WHERE a=?", args,result))
+ return NDBT_FAILED;
+ result.print();
+
+ result.reset();
+ while(result.next())
+ {
+ ndbout << "a: " << result.columnAsInt("a") << endl;
+ ndbout << "b: " << result.column("b") << endl;
+ if (result.columnAsInt("a") != 2){
+ ndbout << "hepp1" << endl;
+ return NDBT_FAILED;
+ }
+
+ if (strcmp(result.column("b"), "bye")){
+ ndbout << "hepp2" << endl;
+ return NDBT_FAILED;
+ }
+
+ }
+
+ if (sql.selectCountTable("sql_client_test") != 2)
+ {
+ ndbout << "Got wrong count" << endl;
+ return NDBT_FAILED;
+ }
+
+
+ if (!sql.doQuery("DROP TABLE sql_client_test"))
+ return NDBT_FAILED;
+
+ }
+
+ return NDBT_OK;
+}
+
+NDBT_TESTSUITE(testNDBT);
+TESTCASE("AtrtClient",
+ "Test AtrtClient class"){
+ INITIALIZER(runTestAtrtClient);
+}
+TESTCASE("DbUtil",
+ "Test DbUtil class"){
+ INITIALIZER(runTestDbUtil);
+}
+NDBT_TESTSUITE_END(testNDBT);
+
+int main(int argc, const char** argv){
+ ndb_init();
+ return testNDBT.execute(argc, argv);
+}
+