Commit 8e56426c authored by unknown's avatar unknown
Browse files

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

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


ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp:
  Auto merged
ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
  Auto merged
ndb/src/kernel/vm/SimulatedBlock.cpp:
  Auto merged
ndb/src/ndbapi/NdbTransaction.cpp:
  Auto merged
ndb/src/ndbapi/ndberror.c:
  Auto merged
ndb/test/run-test/daily-basic-tests.txt:
  Auto merged
parents 8e0f8a62 a29f5276
Loading
Loading
Loading
Loading
+12 −7
Original line number Diff line number Diff line
@@ -136,7 +136,7 @@ NdbSqlUtil::m_typeList[] = {
  },
  { // 22
    Type::Bit,
    NULL,
    cmpBit,
    NULL
  },
  { // 23
@@ -678,6 +678,17 @@ NdbSqlUtil::cmpText(const void* info, const void* p1, unsigned n1, const void* p
  return 0;
}

int
NdbSqlUtil::cmpBit(const void* info, const void* p1, unsigned n1, const void* p2, unsigned n2, bool full)
{ 
  Uint32 n = (n1 < n2) ? n1 : n2;
  char* c1 = (char*)p1;
  char* c2 = (char*)p2;
  int ret = memcmp(p1, p2, n);
  return ret;
}


int
NdbSqlUtil::cmpTime(const void* info, const void* p1, unsigned n1, const void* p2, unsigned n2, bool full)
{
@@ -698,12 +709,6 @@ NdbSqlUtil::cmpTime(const void* info, const void* p1, unsigned n1, const void* p
}

// not yet
int
NdbSqlUtil::cmpBit(const void* info, const void* p1, unsigned n1, const void* p2, unsigned n2, bool full)
{
  assert(false);
  return 0;
}

int
NdbSqlUtil::cmpLongvarchar(const void* info, const void* p1, unsigned n1, const void* p2, unsigned n2, bool full)
+6 −1
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ Next DBTUP 4014
Next DBLQH 5043
Next DBDICT 6007
Next DBDIH 7178
Next DBTC 8038
Next DBTC 8039
Next CMVMI 9000
Next BACKUP 10022
Next DBUTIL 11002
@@ -287,6 +287,11 @@ ABORT OF TCKEYREQ

8037 : Invalid schema version in TCINDXREQ

------

8038 : Simulate API disconnect just after SCAN_TAB_REQ


CMVMI
-----
9000 Set RestartOnErrorInsert to restart -n
+28 −16
Original line number Diff line number Diff line
@@ -91,6 +91,7 @@ Cmvmi::Cmvmi(const Configuration & conf) :
  addRecSignal(GSN_DUMP_STATE_ORD, &Cmvmi::execDUMP_STATE_ORD);

  addRecSignal(GSN_TESTSIG, &Cmvmi::execTESTSIG);
  addRecSignal(GSN_NODE_START_REP, &Cmvmi::execNODE_START_REP, true);
  
  subscriberPool.setSize(5);

@@ -340,6 +341,16 @@ void Cmvmi::execSTTOR(Signal* signal)
  jamEntry();
  if (theStartPhase == 1){
    jam();

    if(theConfig.lockPagesInMainMemory())
    {
      int res = NdbMem_MemLockAll();
      if(res != 0){
	g_eventLogger.warning("Failed to memlock pages");
	warningEvent("Failed to memlock pages");
      }
    }
    
    sendSTTORRY(signal);
    return;
  } else if (theStartPhase == 3) {
@@ -359,18 +370,6 @@ void Cmvmi::execSTTOR(Signal* signal)
    signal->theData[2] = NodeInfo::REP;
    execOPEN_COMREQ(signal);    
    globalData.theStartLevel = NodeState::SL_STARTED;
    sendSTTORRY(signal);
  } else {
    jam();

    if(theConfig.lockPagesInMainMemory()){
      int res = NdbMem_MemLockAll();
      if(res != 0){
	g_eventLogger.warning("Failed to memlock pages");
	warningEvent("Failed to memlock pages");
      }
    }
    
    sendSTTORRY(signal);
  }
}
@@ -425,7 +424,8 @@ void Cmvmi::execOPEN_COMREQ(Signal* signal)
  if(len == 2){

#ifdef ERROR_INSERT
    if (! (ERROR_INSERTED(9000) && c_error_9000_nodes_mask.get(tStartingNode)))
    if (! ((ERROR_INSERTED(9000) || ERROR_INSERTED(9002)) 
	   && c_error_9000_nodes_mask.get(tStartingNode)))
#endif
    {
      globalTransporterRegistry.do_connect(tStartingNode);
@@ -446,7 +446,8 @@ void Cmvmi::execOPEN_COMREQ(Signal* signal)
	jam();

#ifdef ERROR_INSERT
	if (ERROR_INSERTED(9000) && c_error_9000_nodes_mask.get(i))
	if ((ERROR_INSERTED(9000) || ERROR_INSERTED(9002))
	    && c_error_9000_nodes_mask.get(i))
	  continue;
#endif
	
@@ -1145,9 +1146,9 @@ Cmvmi::execDUMP_STATE_ORD(Signal* signal)
  }

#ifdef ERROR_INSERT
  if (arg == 9000)
  if (arg == 9000 || arg == 9002)
  {
    SET_ERROR_INSERT_VALUE(9000);
    SET_ERROR_INSERT_VALUE(arg);
    for (Uint32 i = 1; i<signal->getLength(); i++)
      c_error_9000_nodes_mask.set(signal->theData[i]);
  }
@@ -1194,6 +1195,17 @@ Cmvmi::execDUMP_STATE_ORD(Signal* signal)
#endif
}//Cmvmi::execDUMP_STATE_ORD()

void
Cmvmi::execNODE_START_REP(Signal* signal)
{
#ifdef ERROR_INSERT
  if (ERROR_INSERTED(9002) && signal->theData[0] == getOwnNodeId())
  {
    signal->theData[0] = 9001;
    execDUMP_STATE_ORD(signal);
  }
#endif
}

BLOCK_FUNCTIONS(Cmvmi)

+2 −1
Original line number Diff line number Diff line
@@ -72,6 +72,7 @@ private:
  void handleSET_VAR_REQ(Signal* signal);

  void execTESTSIG(Signal* signal);
  void execNODE_START_REP(Signal* signal);
  
  char theErrorMessage[256];
  void sendSTTORRY(Signal* signal);
+1 −1
Original line number Diff line number Diff line
@@ -1602,7 +1602,7 @@ private:
  void startInfoReply(Signal *, Uint32 nodeId);

  // DIH specifics for execNODE_START_REP (sendDictUnlockOrd)
  void exec_node_start_rep(Signal* signal);
  void execNODE_START_REP(Signal* signal);

  /*
   * Lock master DICT.  Only current use is by starting node
Loading