Commit 46a96105 authored by unknown's avatar unknown
Browse files

Merge perch.ndb.mysql.com:/home/jonas/src/51-work

into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new


storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
  Auto merged
storage/ndb/src/ndbapi/NdbScanOperation.cpp:
  Auto merged
parents 8a2744da 8029838f
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -34,7 +34,8 @@ public:
		bool allowConstraintViolation = true,
		int doSleep = 0,
                bool oneTrans = false,
		int updateValue = 0);
		int updateValue = 0,
		bool abort = false);

  int scanReadRecords(Ndb*, 
		      int records,
+18 −5
Original line number Diff line number Diff line
@@ -519,7 +519,8 @@ HugoTransactions::loadTable(Ndb* pNdb,
			    bool allowConstraintViolation,
			    int doSleep,
                            bool oneTrans,
			    int value){
			    int value,
			    bool abort){
  int             check, a;
  int             retryAttempt = 0;
  int             retryMax = 5;
@@ -585,10 +586,22 @@ HugoTransactions::loadTable(Ndb* pNdb,
    if (!oneTrans || (c + batch) >= records) {
      //      closeTrans = true;
      closeTrans = false;
      if (!abort)
      {
	check = pTrans->execute( Commit );
	if(check != -1)
	  m_latest_gci = pTrans->getGCI();
	pTrans->restart();
      }
      else
      {
	check = pTrans->execute( NoCommit );
	if (check != -1)
	{
	  check = pTrans->execute( Rollback );	
	  closeTransaction(pNdb);
	}
      }
    } else {
      closeTrans = false;
      check = pTrans->execute( NoCommit );
+9 −2
Original line number Diff line number Diff line
@@ -31,6 +31,8 @@ int main(int argc, const char** argv){
  int _batch = 512;
  int _loops = -1;
  int _rand = 0;
  int _onetrans = 0;
  int _abort = 0;
  const char* db = 0;

  struct getargs args[] = {
@@ -39,7 +41,9 @@ int main(int argc, const char** argv){
    { "loops", 'l', arg_integer, &_loops, "Number of loops", "" },
    { "database", 'd', arg_string, &db, "Database", "" },
    { "usage", '?', arg_flag, &_help, "Print help", "" },
    { "rnd-rows", 0, arg_flag, &_rand, "Rand number of records", "recs" }
    { "rnd-rows", 0, arg_flag, &_rand, "Rand number of records", "recs" },
    { "one-trans", 0, arg_flag, &_onetrans, "Insert as 1 trans", "" },
    { "abort", 0, arg_integer, &_abort, "Abort probability", "" }
  };
  int num_args = sizeof(args) / sizeof(args[0]);
  int optind = 0;
@@ -92,10 +96,13 @@ int main(int argc, const char** argv){
    HugoTransactions hugoTrans(*pTab);
loop:    
    int rows = (_rand ? rand() % _records : _records);
    int abort = (rand() % 100) < _abort ? 1 : 0;
    if (abort)
      ndbout << "load+abort" << endl;
    if (hugoTrans.loadTable(&MyNdb, 
			    rows,
			    _batch,
			    true, 0, false, _loops) != 0){
			    true, 0, _onetrans, _loops, abort) != 0){
      return NDBT_ProgramExit(NDBT_FAILED);
    }