Commit fd6aa55b authored by unknown's avatar unknown
Browse files

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

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

parents bbaa46be 44e5052f
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -500,6 +500,12 @@ int runEventMixedLoad(NDBT_Context* ctx, NDBT_Step* step)
  int records = ctx->getNumRecords();
  HugoTransactions hugoTrans(*ctx->getTab());
  
  if(ctx->getPropertyWait("LastGCI", ~(Uint32)0))
  {
    g_err << "FAIL " << __LINE__ << endl;
    return NDBT_FAILED;
  }

  while(loops -- && !ctx->isTestStopped())
  {
    hugoTrans.clearTable(GETNDB(step), 0);
@@ -606,9 +612,11 @@ int runEventApplier(NDBT_Context* ctx, NDBT_Step* step)
    goto end;
  }

  ctx->setProperty("LastGCI", ~(Uint32)0);
  ctx->broadcast();

  while(!ctx->isTestStopped())
  {
    int r;
    int count= 0;
    Uint32 stop_gci= ~0;
    Uint64 curr_gci = 0;
@@ -778,7 +786,7 @@ int runEventApplier(NDBT_Context* ctx, NDBT_Step* step)

	  if (trans->getNdbError().status == NdbError::PermanentError)
	  {
	    g_err << "Ignoring execute " << r << " failed "
	    g_err << "Ignoring execute failed "
		  << trans->getNdbError().code << " "
		  << trans->getNdbError().message << endl;
	  
@@ -788,7 +796,7 @@ int runEventApplier(NDBT_Context* ctx, NDBT_Step* step)
	  }
	  else if (noRetries++ == 10)
	  {
	    g_err << "execute " << r << " failed "
	    g_err << "execute failed "
		  << trans->getNdbError().code << " "
		  << trans->getNdbError().message << endl;
	    trans->close();
+23 −2
Original line number Diff line number Diff line
@@ -89,6 +89,27 @@ HugoCalculator::float calcValue(int record, int attrib, int updates) const;
HugoCalculator::double calcValue(int record, int attrib, int updates) const;
#endif

static
Uint32
calc_len(Uint32 rvalue, int maxlen)
{
  Uint32 minlen = 25;
  
  if ((rvalue >> 16) < 4096)
    minlen = 15;
  else if ((rvalue >> 16) < 8192)
    minlen = 25;
  else if ((rvalue >> 16) < 16384)
    minlen = 35;
  else
    minlen = 64;

  if (maxlen <= minlen)
    return maxlen;

  return minlen + (rvalue % (maxlen - minlen));
}

const char* 
HugoCalculator::calcValue(int record, 
			  int attrib, 
@@ -178,7 +199,7 @@ HugoCalculator::calcValue(int record,
    break;
  case NdbDictionary::Column::Varbinary:
  case NdbDictionary::Column::Varchar:
    len = 1 + (myRand(&seed) % (len - 1));
    len = calc_len(myRand(&seed), len - 1);
    assert(len < 256);
    * outlen = len + 1;
    * buf = len;
@@ -186,7 +207,7 @@ HugoCalculator::calcValue(int record,
    goto write_char;
  case NdbDictionary::Column::Longvarchar:
  case NdbDictionary::Column::Longvarbinary:
    len = 1 + (myRand(&seed) % (len - 2));
    len = calc_len(myRand(&seed), len - 2);
    assert(len < 65536);
    * outlen = len + 2;
    int2store(buf, len);