Commit bb074466 authored by unknown's avatar unknown
Browse files

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

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


libmysql/libmysql.c:
  Auto merged
mysql-test/mysql-test-run.pl:
  Auto merged
sql-common/client.c:
  Auto merged
storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
  Auto merged
storage/ndb/include/kernel/signaldata/StopReq.hpp:
  Auto merged
storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp:
  Auto merged
storage/ndb/src/mgmclient/CommandInterpreter.cpp:
  Auto merged
storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp:
  Auto merged
storage/ndb/src/mgmsrv/MgmtSrvr.hpp:
  Auto merged
storage/ndb/src/mgmsrv/MgmtSrvr.cpp:
  Auto merged
storage/ndb/src/mgmsrv/Services.cpp:
  Auto merged
parents 7a098d1a 978c18b6
Loading
Loading
Loading
Loading
+0 −29
Original line number Diff line number Diff line
@@ -1380,35 +1380,6 @@ mysql_get_server_info(MYSQL *mysql)
}


/*
  Get version number for server in a form easy to test on

  SYNOPSIS
    mysql_get_server_version()
    mysql		Connection

  EXAMPLE
    4.1.0-alfa ->  40100
  
  NOTES
    We will ensure that a newer server always has a bigger number.

  RETURN
   Signed number > 323000
*/

ulong STDCALL
mysql_get_server_version(MYSQL *mysql)
{
  uint major, minor, version;
  char *pos= mysql->server_version, *end_pos;
  major=   (uint) strtoul(pos, &end_pos, 10);	pos=end_pos+1;
  minor=   (uint) strtoul(pos, &end_pos, 10);	pos=end_pos+1;
  version= (uint) strtoul(pos, &end_pos, 10);
  return (ulong) major*10000L+(ulong) (minor*100+version);
}


const char * STDCALL
mysql_get_host_info(MYSQL *mysql)
{
+33 −0
Original line number Diff line number Diff line
@@ -2817,6 +2817,36 @@ const char * STDCALL mysql_error(MYSQL *mysql)
  return mysql->net.last_error;
}


/*
  Get version number for server in a form easy to test on

  SYNOPSIS
    mysql_get_server_version()
    mysql		Connection

  EXAMPLE
    4.1.0-alfa ->  40100
  
  NOTES
    We will ensure that a newer server always has a bigger number.

  RETURN
   Signed number > 323000
*/

ulong STDCALL
mysql_get_server_version(MYSQL *mysql)
{
  uint major, minor, version;
  char *pos= mysql->server_version, *end_pos;
  major=   (uint) strtoul(pos, &end_pos, 10);	pos=end_pos+1;
  minor=   (uint) strtoul(pos, &end_pos, 10);	pos=end_pos+1;
  version= (uint) strtoul(pos, &end_pos, 10);
  return (ulong) major*10000L+(ulong) (minor*100+version);
}


/* 
   mysql_set_character_set function sends SET NAMES cs_name to
   the server (which changes character_set_client, character_set_result
@@ -2836,6 +2866,9 @@ int STDCALL mysql_set_character_set(MYSQL *mysql, const char *cs_name)
  {
    char buff[MY_CS_NAME_SIZE + 10];
    charsets_dir= save_csdir;
    /* Skip execution of "SET NAMES" for pre-4.1 servers */
    if (mysql_get_server_version(mysql) < 40100)
      return 0;
    sprintf(buff, "SET NAMES %s", cs_name);
    if (!mysql_real_query(mysql, buff, strlen(buff)))
    {
+2 −1
Original line number Diff line number Diff line
@@ -92,7 +92,7 @@ class StopRef
  friend class Ndbcntr;

public:
  STATIC_CONST( SignalLength = 2 );
  STATIC_CONST( SignalLength = 3 );
  
  enum ErrorCode {
    OK = 0,
@@ -107,6 +107,7 @@ public:
public:
  Uint32 senderData;
  Uint32 errorCode;
  Uint32 masterNodeId;
};

inline
+5 −0
Original line number Diff line number Diff line
@@ -2165,6 +2165,7 @@ Ndbcntr::execSTOP_REQ(Signal* signal){
    else
      ref->errorCode = StopRef::NodeShutdownInProgress;
    ref->senderData = senderData;
    ref->masterNodeId = cmasterNodeId;
    
    if (senderRef != RNIL)
      sendSignal(senderRef, GSN_STOP_REF, signal, StopRef::SignalLength, JBB);
@@ -2176,6 +2177,7 @@ Ndbcntr::execSTOP_REQ(Signal* signal){
    jam();
    ref->errorCode = StopRef::UnsupportedNodeShutdown;
    ref->senderData = senderData;
    ref->masterNodeId = cmasterNodeId;
    if (senderRef != RNIL)
      sendSignal(senderRef, GSN_STOP_REF, signal, StopRef::SignalLength, JBB);
    return;
@@ -2186,6 +2188,7 @@ Ndbcntr::execSTOP_REQ(Signal* signal){
    jam();
    ref->errorCode = StopRef::MultiNodeShutdownNotMaster;
    ref->senderData = senderData;
    ref->masterNodeId = cmasterNodeId;
    if (senderRef != RNIL)
      sendSignal(senderRef, GSN_STOP_REF, signal, StopRef::SignalLength, JBB);
    return;
@@ -2329,6 +2332,7 @@ Ndbcntr::StopRecord::checkNodeFail(Signal* signal){
  
  ref->senderData = stopReq.senderData;
  ref->errorCode = StopRef::NodeShutdownWouldCauseSystemCrash;
  ref->masterNodeId = cntr.cmasterNodeId;
  
  const BlockReference bref = stopReq.senderRef;
  if (bref != RNIL)
@@ -2477,6 +2481,7 @@ void Ndbcntr::execABORT_ALL_REF(Signal* signal){
  StopRef * const stopRef = (StopRef *)&signal->theData[0];
  stopRef->senderData = c_stopRec.stopReq.senderData;
  stopRef->errorCode = StopRef::TransactionAbortFailed;
  stopRef->masterNodeId = cmasterNodeId;
  sendSignal(c_stopRec.stopReq.senderRef, GSN_STOP_REF, signal, StopRef::SignalLength, JBB);
}

+89 −91
Original line number Diff line number Diff line
@@ -653,7 +653,6 @@ void Qmgr::execCM_REGREQ(Signal* signal)
	jam();
	c_start.m_president_candidate = addNodePtr.i;
	c_start.m_president_candidate_gci = gci;
	ndbout_c("assign candidate: %u %u", addNodePtr.i, gci);
      }
      sendCmRegrefLab(signal, Tblockref, CmRegRef::ZELECTION);
      return;
@@ -1106,7 +1105,6 @@ void Qmgr::execCM_REGREF(Signal* signal)
      signal->theData[3] = 2;
      c_start.m_president_candidate = candidate;
      c_start.m_president_candidate_gci = candidate_gci;
      ndbout_c("assign candidate: %u %u", candidate, candidate_gci);
    } else {
      signal->theData[3] = 4;
    }//if
@@ -1216,6 +1214,7 @@ Qmgr::check_startup(Signal* signal)
      goto start_report;
    }
  }
  {
    const bool all = c_start.m_starting_nodes.equal(c_definedNodes);
    CheckNodeGroups* sd = (CheckNodeGroups*)&signal->theData[0];

@@ -1324,7 +1323,7 @@ Qmgr::check_startup(Signal* signal)
      retVal = 1;
      goto start_report;
    }

  }
  ndbrequire(false);

start_report:
@@ -1409,7 +1408,6 @@ void Qmgr::regreqTimeLimitLab(Signal* signal)
    {
      jam();
      c_start.m_president_candidate = getOwnNodeId();
      ndbout_c("Assigning candidate to self: %d", getOwnNodeId());
    }
    
    cmInfoconf010Lab(signal);
Loading