/* 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 "HugoAsynchTransactions.hpp" #include "UtilTransactions.hpp" #define GETNDB(ps) ((NDBT_NdbApiStep*)ps)->getNdb() int runLoadTable(NDBT_Context* ctx, NDBT_Step* step){ int records = ctx->getNumRecords(); int batchSize = ctx->getProperty("BatchSize", 1); int transactions = (records / 100) + 1; int operations = (records / transactions) + 1; HugoAsynchTransactions hugoTrans(*ctx->getTab()); if (hugoTrans.loadTableAsynch(GETNDB(step), records, batchSize, transactions, operations) != 0){ return NDBT_FAILED; } return NDBT_OK; } int runInsert(NDBT_Context* ctx, NDBT_Step* step){ int records = ctx->getNumRecords(); int batchSize = ctx->getProperty("BatchSize", 1); int transactions = (records / 100) + 1; int operations = (records / transactions) + 1; HugoAsynchTransactions hugoTrans(*ctx->getTab()); // Insert records, dont allow any // errors(except temporary) while inserting if (hugoTrans.loadTableAsynch(GETNDB(step), records, batchSize, transactions, operations) != 0){ return NDBT_FAILED; } return NDBT_OK; } int runVerifyInsert(NDBT_Context* ctx, NDBT_Step* step){ int records = ctx->getNumRecords(); int batchSize = ctx->getProperty("BatchSize", 1); int transactions = (records / 100) + 1; int operations = (records / transactions) + 1; HugoAsynchTransactions hugoTrans(*ctx->getTab()); if (hugoTrans.pkDelRecordsAsynch(GETNDB(step), records, batchSize, transactions, operations) != 0){ return NDBT_FAILED; } return NDBT_OK; } int runClearTable(NDBT_Context* ctx, NDBT_Step* step){ int records = ctx->getNumRecords(); int batchSize = ctx->getProperty("BatchSize", 1); int transactions = (records / 100) + 1; int operations = (records / transactions) + 1; HugoAsynchTransactions hugoTrans(*ctx->getTab()); if (hugoTrans.pkDelRecordsAsynch(GETNDB(step), records, batchSize, transactions, operations) != 0){ return NDBT_FAILED; } return NDBT_OK; } int runPkDelete(NDBT_Context* ctx, NDBT_Step* step){ int loops = ctx->getNumLoops(); int records = ctx->getNumRecords(); int batchSize = ctx->getProperty("BatchSize", 1); int transactions = (records / 100) + 1; int operations = (records / transactions) + 1; int i = 0; HugoAsynchTransactions hugoTrans(*ctx->getTab()); while (igetNumLoops(); int records = ctx->getNumRecords(); int batchSize = ctx->getProperty("BatchSize", 1); int transactions = (records / 100) + 1; int operations = (records / transactions) + 1; int i = 0; HugoAsynchTransactions hugoTrans(*ctx->getTab()); while (igetNumLoops(); int records = ctx->getNumRecords(); int batchSize = ctx->getProperty("BatchSize", 1); int transactions = (records / 100) + 1; int operations = (records / transactions) + 1; int i = 0; HugoAsynchTransactions hugoTrans(*ctx->getTab()); while (i