diff options
Diffstat (limited to 'ndb/test/ndbapi/testScanInterpreter.cpp')
-rw-r--r-- | ndb/test/ndbapi/testScanInterpreter.cpp | 281 |
1 files changed, 0 insertions, 281 deletions
diff --git a/ndb/test/ndbapi/testScanInterpreter.cpp b/ndb/test/ndbapi/testScanInterpreter.cpp deleted file mode 100644 index 5a7ca30cd2a..00000000000 --- a/ndb/test/ndbapi/testScanInterpreter.cpp +++ /dev/null @@ -1,281 +0,0 @@ -/* 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; either version 2 of the License, or - (at your option) any later version. - - 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_Test.hpp" -#include "NDBT_ReturnCodes.h" -#include "HugoTransactions.hpp" -#include "UtilTransactions.hpp" -#include "NdbRestarter.hpp" -#include <Vector.hpp> -#include "ScanFilter.hpp" -#include "ScanInterpretTest.hpp" - -int runLoadTable(NDBT_Context* ctx, NDBT_Step* step){ - - int records = ctx->getNumRecords(); - HugoTransactions hugoTrans(*ctx->getTab()); - if (hugoTrans.loadTable(GETNDB(step), records) != 0){ - return NDBT_FAILED; - } - return NDBT_OK; -} - -int runClearTable(NDBT_Context* ctx, NDBT_Step* step){ - int records = ctx->getNumRecords(); - - UtilTransactions utilTrans(*ctx->getTab()); - if (utilTrans.clearTable2(GETNDB(step), records) != 0){ - return NDBT_FAILED; - } - return NDBT_OK; -} - -int runClearResTable(NDBT_Context* ctx, NDBT_Step* step){ - int records = ctx->getNumRecords(); - const NdbDictionary::Table* pResTab = - GETNDB(step)->getDictionary()->getTable(ctx->getProperty("ResultTabName", "NULL")); - - UtilTransactions utilTrans(*pResTab); - if (utilTrans.clearTable2(GETNDB(step), records) != 0){ - return NDBT_FAILED; - } - return NDBT_OK; -} - -int runScanRead(NDBT_Context* ctx, NDBT_Step* step){ - int loops = ctx->getNumLoops(); - int records = ctx->getNumRecords(); - int parallelism = ctx->getProperty("Parallelism", 1); - - int i = 0; - HugoTransactions hugoTrans(*ctx->getTab()); - while (i<loops) { - g_info << i << ": "; - if (hugoTrans.scanReadRecords(GETNDB(step), records, 0, parallelism) != 0){ - return NDBT_FAILED; - } - i++; - } - return NDBT_OK; -} - -int runScanReadResTable(NDBT_Context* ctx, NDBT_Step* step){ - int records = ctx->getNumRecords(); - int parallelism = ctx->getProperty("Parallelism", 1); - const NdbDictionary::Table* pResTab = - NDBT_Table::discoverTableFromDb(GETNDB(step), - ctx->getProperty("ResultTabName", "NULL")); - - HugoTransactions hugoTrans(*pResTab); - if (hugoTrans.scanReadRecords(GETNDB(step), records, 0, parallelism) != 0){ - return NDBT_FAILED; - } - return NDBT_OK; -} - -int runCreateResultTable(NDBT_Context* ctx, NDBT_Step* step){ - - const NdbDictionary::Table* pTab = ctx->getTab(); - char newTabName[256]; - BaseString::snprintf(newTabName, 256, "%s_RES", pTab->getName()); - ctx->setProperty("ResultTabName", newTabName); - - NdbDictionary::Table resTab(* pTab); - resTab.setName(newTabName); - - if (GETNDB(step)->getDictionary()->createTable(resTab) != 0){ - g_err << newTabName << " creation failed!"<< endl; - return NDBT_FAILED; - }else{ - g_info << newTabName << " created!"<< endl; - return NDBT_OK; - } -} - -int scanWithFilter(NDBT_Context* ctx, NDBT_Step* step, ScanFilter& filt){ - int records = ctx->getNumRecords(); - const char* resTabName = ctx->getProperty("ResultTabName", "NULL"); - if (strcmp(resTabName, "NULL") == 0) - return NDBT_FAILED; - const NdbDictionary::Table* pTab = ctx->getTab(); - const NdbDictionary::Table* pResTab = NDBT_Table::discoverTableFromDb(GETNDB(step), resTabName); - if (pResTab == NULL) - return NDBT_FAILED; - - ScanInterpretTest interpretTest(*pTab, *pResTab); - if (interpretTest.scanRead(GETNDB(step), - records, - 16, - filt) != 0){ - return NDBT_FAILED; - } - return NDBT_OK; -} -int runScanLessThan(NDBT_Context* ctx, NDBT_Step* step){ - int records = ctx->getNumRecords(); - LessThanFilter filt(records); - return scanWithFilter(ctx, step, filt); -} -int runScanEqual(NDBT_Context* ctx, NDBT_Step* step){ - EqualFilter filt; - return scanWithFilter(ctx, step, filt); -} - -int scanVerifyWithFilter(NDBT_Context* ctx, NDBT_Step* step, ScanFilter& filt){ - int records = ctx->getNumRecords(); - const char* resTabName = ctx->getProperty("ResultTabName", "NULL"); - if (strcmp(resTabName, "NULL") == 0) - return NDBT_FAILED; - const NdbDictionary::Table* pTab = ctx->getTab(); - const NdbDictionary::Table* pResTab = NDBT_Table::discoverTableFromDb(GETNDB(step), resTabName); - if (pResTab == NULL) - return NDBT_FAILED; - - ScanInterpretTest interpretTest(*pTab, *pResTab); - if (interpretTest.scanReadVerify(GETNDB(step), - records, - 16, - filt) != NDBT_OK){ - return NDBT_FAILED; - } - return NDBT_OK; -} -int runScanLessThanVerify(NDBT_Context* ctx, NDBT_Step* step){ - int records = ctx->getNumRecords(); - LessThanFilter filt(records); - return scanVerifyWithFilter(ctx, step, filt); -} -int runScanEqualVerify(NDBT_Context* ctx, NDBT_Step* step){ - EqualFilter filt; - return scanVerifyWithFilter(ctx, step, filt); -} - -int runScanEqualLoop(NDBT_Context* ctx, NDBT_Step* step){ - int loops = ctx->getNumLoops(); - int l = 0; - EqualFilter filt; - while(l < loops){ - if (scanWithFilter(ctx, step, filt) != NDBT_OK) - return NDBT_FAILED; - if (runClearResTable(ctx, step) != NDBT_OK) - return NDBT_FAILED; - l++; - } - return NDBT_OK; -} - - -int runScanEqualVerifyLoop(NDBT_Context* ctx, NDBT_Step* step){ - int loops = ctx->getNumLoops(); - int l = 0; - EqualFilter filt; - while(l < loops){ - if (scanWithFilter(ctx, step, filt) != NDBT_OK) - return NDBT_FAILED; - if (scanVerifyWithFilter(ctx, step, filt) != NDBT_OK) - return NDBT_FAILED; - if (runClearResTable(ctx, step) != NDBT_OK) - return NDBT_FAILED; - l++; - } - return NDBT_OK; -} - -int runScanLessThanLoop(NDBT_Context* ctx, NDBT_Step* step){ - int loops = ctx->getNumLoops(); - int records = ctx->getNumRecords(); - int l = 0; - LessThanFilter filt(records); - while(l < loops){ - if (scanWithFilter(ctx, step, filt) != NDBT_OK) - return NDBT_FAILED; - if (runClearResTable(ctx, step) != NDBT_OK) - return NDBT_FAILED; - l++; - } - return NDBT_OK; -} - -NDBT_TESTSUITE(testScanInterpreter); -TESTCASE("ScanLessThan", - "Read all records in table TX with attrX less "\ - "than a value and store the resultset in TX_RES."\ - "Then compare records in TX_RES with records in TX."){ - // TABLE("T1"); - // TABLE("T2"); - INITIALIZER(runLoadTable); - INITIALIZER(runCreateResultTable); - STEP(runScanLessThan); - VERIFIER(runScanLessThanVerify); - FINALIZER(runClearTable); - FINALIZER(runClearResTable); -} -TESTCASE("ScanEqual", - "Read all records in table TX with attrX equal "\ - "to a value and store the resultset in TX_RES."\ - "Then compare records in TX_RES with records in TX."){ - // TABLE("T1"); - // TABLE("T2"); - INITIALIZER(runLoadTable); - INITIALIZER(runCreateResultTable); - STEP(runScanEqual); - VERIFIER(runScanEqualVerify); - FINALIZER(runClearTable); - FINALIZER(runClearResTable); -} -TESTCASE("ScanEqualLoop", - "Scan all records in TX equal to a value."\ - "Do this loop number of times"){ - // TABLE("T1"); - // TABLE("T2"); - INITIALIZER(runLoadTable); - INITIALIZER(runCreateResultTable); - STEP(runScanEqualLoop); - FINALIZER(runClearTable); - FINALIZER(runClearResTable); -} -TESTCASE("ScanEqualVerifyLoop", - "Scan all records in TX equal to a value."\ - "Verify record in TX_RES table"\ - "Do this loop number of times"){ - // TABLE("T1"); - // TABLE("T2"); - INITIALIZER(runLoadTable); - INITIALIZER(runCreateResultTable); - STEP(runScanEqualVerifyLoop); - FINALIZER(runClearTable); - FINALIZER(runClearResTable); -} -TESTCASE("ScanLessThanLoop", - "Scan all records in TX less than a value."\ - "Do this loop number of times"){ - // TABLE("T1"); - // TABLE("T2"); - INITIALIZER(runLoadTable); - INITIALIZER(runCreateResultTable); - STEP(runScanLessThanLoop); - FINALIZER(runClearTable); - FINALIZER(runClearResTable); -} -NDBT_TESTSUITE_END(testScanInterpreter); - -int main(int argc, const char** argv){ - ndb_init(); - return testScanInterpreter.execute(argc, argv); -} - - - |