mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Merge mskold@build.mysql.com:/home/bk/mysql-4.1
into mysql.com:/usr/local/home/marty/MySQL/test/mysql-4.1 ndb/include/mgmcommon/ConfigRetriever.hpp: Auto merged ndb/src/common/debugger/signaldata/ScanTab.cpp: Auto merged ndb/src/common/mgmcommon/ConfigRetriever.cpp: Auto merged ndb/src/common/mgmcommon/LocalConfig.cpp: Auto merged ndb/src/ndbapi/Ndb.cpp: Auto merged ndb/src/ndbapi/NdbDictionary.cpp: Auto merged ndb/src/ndbapi/NdbDictionaryImpl.cpp: Auto merged ndb/src/ndbapi/Ndbif.cpp: Auto merged ndb/src/ndbapi/Ndbinit.cpp: Auto merged sql/ha_ndbcluster.cc: Auto merged sql/handler.cc: Auto merged
This commit is contained in:
@@ -95,7 +95,7 @@ private:
|
|||||||
|
|
||||||
BaseString _localConfigFileName;
|
BaseString _localConfigFileName;
|
||||||
struct LocalConfig _localConfig;
|
struct LocalConfig _localConfig;
|
||||||
int _ownNodeId;
|
Uint32 _ownNodeId;
|
||||||
|
|
||||||
BaseString m_connectString;
|
BaseString m_connectString;
|
||||||
|
|
||||||
|
@@ -67,7 +67,7 @@ printSCANTABCONF(FILE * output, const Uint32 * theData, Uint32 len, Uint16 recei
|
|||||||
fprintf(output, " Operation(s) [api tc rows len]:\n");
|
fprintf(output, " Operation(s) [api tc rows len]:\n");
|
||||||
ScanTabConf::OpData * op = (ScanTabConf::OpData*)
|
ScanTabConf::OpData * op = (ScanTabConf::OpData*)
|
||||||
(theData + ScanTabConf::SignalLength);
|
(theData + ScanTabConf::SignalLength);
|
||||||
for(int i = 0; i<op_count; i++){
|
for(size_t i = 0; i<op_count; i++){
|
||||||
if(op->info != ScanTabConf::EndOfData)
|
if(op->info != ScanTabConf::EndOfData)
|
||||||
fprintf(output, " [0x%x 0x%x %d %d]",
|
fprintf(output, " [0x%x 0x%x %d %d]",
|
||||||
op->apiPtrI, op->tcPtrI,
|
op->apiPtrI, op->tcPtrI,
|
||||||
|
@@ -94,7 +94,7 @@ ConfigRetriever::do_connect(int exit_on_connect_failure){
|
|||||||
while(retry < retry_max){
|
while(retry < retry_max){
|
||||||
Uint32 type = CR_ERROR;
|
Uint32 type = CR_ERROR;
|
||||||
BaseString tmp;
|
BaseString tmp;
|
||||||
for (int i = 0; i<_localConfig.ids.size(); i++){
|
for (unsigned int i = 0; i<_localConfig.ids.size(); i++){
|
||||||
MgmtSrvrId * m = &_localConfig.ids[i];
|
MgmtSrvrId * m = &_localConfig.ids[i];
|
||||||
switch(m->type){
|
switch(m->type){
|
||||||
case MgmId_TCP:
|
case MgmId_TCP:
|
||||||
@@ -139,7 +139,7 @@ ConfigRetriever::getConfig() {
|
|||||||
if(m_handle != 0){
|
if(m_handle != 0){
|
||||||
p = getConfig(m_handle);
|
p = getConfig(m_handle);
|
||||||
} else {
|
} else {
|
||||||
for (int i = 0; i<_localConfig.ids.size(); i++){
|
for (unsigned int i = 0; i<_localConfig.ids.size(); i++){
|
||||||
MgmtSrvrId * m = &_localConfig.ids[i];
|
MgmtSrvrId * m = &_localConfig.ids[i];
|
||||||
switch(m->type){
|
switch(m->type){
|
||||||
case MgmId_File:
|
case MgmId_File:
|
||||||
|
@@ -241,7 +241,7 @@ bool LocalConfig::readFile(const char * filename, bool &fopenError)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
int sz = 1024;
|
unsigned int sz = 1024;
|
||||||
char* theString = (char*)NdbMem_Allocate(sz);
|
char* theString = (char*)NdbMem_Allocate(sz);
|
||||||
theString[0] = 0;
|
theString[0] = 0;
|
||||||
|
|
||||||
|
@@ -1141,7 +1141,7 @@ void Ndb::setCatalogName(const char * a_catalog_name)
|
|||||||
int len = snprintf(prefixName, sizeof(prefixName), "%s%c%s%c",
|
int len = snprintf(prefixName, sizeof(prefixName), "%s%c%s%c",
|
||||||
theDataBase, table_name_separator,
|
theDataBase, table_name_separator,
|
||||||
theDataBaseSchema, table_name_separator);
|
theDataBaseSchema, table_name_separator);
|
||||||
prefixEnd = prefixName + (len < sizeof(prefixName) ? len :
|
prefixEnd = prefixName + (len < (int) sizeof(prefixName) ? len :
|
||||||
sizeof(prefixName) - 1);
|
sizeof(prefixName) - 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1160,7 +1160,7 @@ void Ndb::setSchemaName(const char * a_schema_name)
|
|||||||
int len = snprintf(prefixName, sizeof(prefixName), "%s%c%s%c",
|
int len = snprintf(prefixName, sizeof(prefixName), "%s%c%s%c",
|
||||||
theDataBase, table_name_separator,
|
theDataBase, table_name_separator,
|
||||||
theDataBaseSchema, table_name_separator);
|
theDataBaseSchema, table_name_separator);
|
||||||
prefixEnd = prefixName + (len < sizeof(prefixName) ? len :
|
prefixEnd = prefixName + (len < (int) sizeof(prefixName) ? len :
|
||||||
sizeof(prefixName) - 1);
|
sizeof(prefixName) - 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -229,7 +229,8 @@ NdbDictionary::Table::Table(const char * name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
NdbDictionary::Table::Table(const NdbDictionary::Table & org)
|
NdbDictionary::Table::Table(const NdbDictionary::Table & org)
|
||||||
: m_impl(* new NdbTableImpl(* this))
|
: NdbDictionary::Object(),
|
||||||
|
m_impl(* new NdbTableImpl(* this))
|
||||||
{
|
{
|
||||||
m_impl.assign(org.m_impl);
|
m_impl.assign(org.m_impl);
|
||||||
}
|
}
|
||||||
|
@@ -383,7 +383,7 @@ void
|
|||||||
NdbTableImpl::buildColumnHash(){
|
NdbTableImpl::buildColumnHash(){
|
||||||
const Uint32 size = m_columns.size();
|
const Uint32 size = m_columns.size();
|
||||||
|
|
||||||
size_t i;
|
int i;
|
||||||
for(i = 31; i >= 0; i--){
|
for(i = 31; i >= 0; i--){
|
||||||
if(((1 << i) & size) != 0){
|
if(((1 << i) & size) != 0){
|
||||||
m_columnHashMask = (1 << (i + 1)) - 1;
|
m_columnHashMask = (1 << (i + 1)) - 1;
|
||||||
@@ -393,7 +393,7 @@ NdbTableImpl::buildColumnHash(){
|
|||||||
|
|
||||||
Vector<Uint32> hashValues;
|
Vector<Uint32> hashValues;
|
||||||
Vector<Vector<Uint32> > chains; chains.fill(size, hashValues);
|
Vector<Vector<Uint32> > chains; chains.fill(size, hashValues);
|
||||||
for(i = 0; i<size; i++){
|
for(i = 0; i< (int) size; i++){
|
||||||
Uint32 hv = Hash(m_columns[i]->getName()) & 0xFFFE;
|
Uint32 hv = Hash(m_columns[i]->getName()) & 0xFFFE;
|
||||||
Uint32 bucket = hv & m_columnHashMask;
|
Uint32 bucket = hv & m_columnHashMask;
|
||||||
bucket = (bucket < size ? bucket : bucket - size);
|
bucket = (bucket < size ? bucket : bucket - size);
|
||||||
@@ -407,7 +407,7 @@ NdbTableImpl::buildColumnHash(){
|
|||||||
m_columnHash.fill((unsigned)size-1, tmp); // Default no chaining
|
m_columnHash.fill((unsigned)size-1, tmp); // Default no chaining
|
||||||
|
|
||||||
Uint32 pos = 0; // In overflow vector
|
Uint32 pos = 0; // In overflow vector
|
||||||
for(i = 0; i<size; i++){
|
for(i = 0; i< (int) size; i++){
|
||||||
Uint32 sz = chains[i].size();
|
Uint32 sz = chains[i].size();
|
||||||
if(sz == 1){
|
if(sz == 1){
|
||||||
Uint32 col = chains[i][0];
|
Uint32 col = chains[i][0];
|
||||||
@@ -1389,7 +1389,7 @@ NdbDictInterface::createOrAlterTable(Ndb & ndb,
|
|||||||
internalName);
|
internalName);
|
||||||
|
|
||||||
bool haveAutoIncrement = false;
|
bool haveAutoIncrement = false;
|
||||||
Uint64 autoIncrementValue;
|
Uint64 autoIncrementValue = 0;
|
||||||
for(i = 0; i<sz; i++){
|
for(i = 0; i<sz; i++){
|
||||||
const NdbColumnImpl * col = impl.m_columns[i];
|
const NdbColumnImpl * col = impl.m_columns[i];
|
||||||
if(col == 0)
|
if(col == 0)
|
||||||
|
@@ -392,7 +392,8 @@ Ndb::handleReceivedSignal(NdbApiSignal* aSignal, LinearSectionPtr ptr[3])
|
|||||||
break;
|
break;
|
||||||
case NdbReceiver::NDB_SCANRECEIVER:
|
case NdbReceiver::NDB_SCANRECEIVER:
|
||||||
tCon->theScanningOp->receiver_delivered(tRec);
|
tCon->theScanningOp->receiver_delivered(tRec);
|
||||||
theWaiter.m_state = (tWaitState == WAIT_SCAN ? NO_WAIT : tWaitState);
|
theWaiter.m_state = (((WaitSignalType) tWaitState) == WAIT_SCAN ?
|
||||||
|
(Uint32) NO_WAIT : tWaitState);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
goto InvalidSignal;
|
goto InvalidSignal;
|
||||||
@@ -764,7 +765,8 @@ Ndb::handleReceivedSignal(NdbApiSignal* aSignal, LinearSectionPtr ptr[3])
|
|||||||
switch(com){
|
switch(com){
|
||||||
case 1:
|
case 1:
|
||||||
tCon->theScanningOp->receiver_delivered(tRec);
|
tCon->theScanningOp->receiver_delivered(tRec);
|
||||||
theWaiter.m_state = (tWaitState == WAIT_SCAN ? NO_WAIT : tWaitState);
|
theWaiter.m_state = (((WaitSignalType) tWaitState) == WAIT_SCAN ?
|
||||||
|
(Uint32) NO_WAIT : tWaitState);
|
||||||
break;
|
break;
|
||||||
case 0:
|
case 0:
|
||||||
break;
|
break;
|
||||||
@@ -888,8 +890,8 @@ Ndb::completedTransaction(NdbConnection* aCon)
|
|||||||
return;
|
return;
|
||||||
}//if
|
}//if
|
||||||
} else {
|
} else {
|
||||||
ndbout << "theNoOfSentTransactions = " << theNoOfSentTransactions;
|
ndbout << "theNoOfSentTransactions = " << (int) theNoOfSentTransactions;
|
||||||
ndbout << " theListState = " << aCon->theListState;
|
ndbout << " theListState = " << (int) aCon->theListState;
|
||||||
ndbout << " theTransArrayIndex = " << aCon->theTransArrayIndex;
|
ndbout << " theTransArrayIndex = " << aCon->theTransArrayIndex;
|
||||||
ndbout << endl << flush;
|
ndbout << endl << flush;
|
||||||
#ifdef VM_TRACE
|
#ifdef VM_TRACE
|
||||||
@@ -940,7 +942,7 @@ Ndb::pollCompleted(NdbConnection** aCopyArray)
|
|||||||
aCopyArray[i] = theCompletedTransactionsArray[i];
|
aCopyArray[i] = theCompletedTransactionsArray[i];
|
||||||
if (aCopyArray[i]->theListState != NdbConnection::InCompletedList) {
|
if (aCopyArray[i]->theListState != NdbConnection::InCompletedList) {
|
||||||
ndbout << "pollCompleted error ";
|
ndbout << "pollCompleted error ";
|
||||||
ndbout << aCopyArray[i]->theListState << endl;
|
ndbout << (int) aCopyArray[i]->theListState << endl;
|
||||||
abort();
|
abort();
|
||||||
}//if
|
}//if
|
||||||
theCompletedTransactionsArray[i] = NULL;
|
theCompletedTransactionsArray[i] = NULL;
|
||||||
|
@@ -163,7 +163,7 @@ void Ndb::setup(Ndb_cluster_connection *ndb_cluster_connection,
|
|||||||
int len = snprintf(prefixName, sizeof(prefixName), "%s%c%s%c",
|
int len = snprintf(prefixName, sizeof(prefixName), "%s%c%s%c",
|
||||||
theDataBase, table_name_separator,
|
theDataBase, table_name_separator,
|
||||||
theDataBaseSchema, table_name_separator);
|
theDataBaseSchema, table_name_separator);
|
||||||
prefixEnd = prefixName + (len < sizeof(prefixName) ? len :
|
prefixEnd = prefixName + (len < (int) sizeof(prefixName) ? len :
|
||||||
sizeof(prefixName) - 1);
|
sizeof(prefixName) - 1);
|
||||||
|
|
||||||
NdbMutex_Lock(&createNdbMutex);
|
NdbMutex_Lock(&createNdbMutex);
|
||||||
|
@@ -1981,8 +1981,8 @@ int ha_ndbcluster::index_end()
|
|||||||
|
|
||||||
|
|
||||||
int ha_ndbcluster::index_read(byte *buf,
|
int ha_ndbcluster::index_read(byte *buf,
|
||||||
const byte *key, uint key_len,
|
const byte *key, uint key_len,
|
||||||
enum ha_rkey_function find_flag)
|
enum ha_rkey_function find_flag)
|
||||||
{
|
{
|
||||||
DBUG_ENTER("index_read");
|
DBUG_ENTER("index_read");
|
||||||
DBUG_PRINT("enter", ("active_index: %u, key_len: %u, find_flag: %d",
|
DBUG_PRINT("enter", ("active_index: %u, key_len: %u, find_flag: %d",
|
||||||
@@ -1992,7 +1992,7 @@ int ha_ndbcluster::index_read(byte *buf,
|
|||||||
start_key.key= key;
|
start_key.key= key;
|
||||||
start_key.length= key_len;
|
start_key.length= key_len;
|
||||||
start_key.flag= find_flag;
|
start_key.flag= find_flag;
|
||||||
DBUG_RETURN(read_range_first(&start_key, NULL, false, true));
|
DBUG_RETURN(read_range_first_to_buf(&start_key, NULL, false, true, buf));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -2059,10 +2059,25 @@ int ha_ndbcluster::read_range_first(const key_range *start_key,
|
|||||||
const key_range *end_key,
|
const key_range *end_key,
|
||||||
bool eq_range, bool sorted)
|
bool eq_range, bool sorted)
|
||||||
{
|
{
|
||||||
KEY* key_info;
|
|
||||||
int error= 1;
|
|
||||||
byte* buf= table->record[0];
|
byte* buf= table->record[0];
|
||||||
DBUG_ENTER("ha_ndbcluster::read_range_first");
|
DBUG_ENTER("ha_ndbcluster::read_range_first");
|
||||||
|
|
||||||
|
DBUG_RETURN(read_range_first_to_buf(start_key,
|
||||||
|
end_key,
|
||||||
|
eq_range,
|
||||||
|
sorted,
|
||||||
|
buf));
|
||||||
|
}
|
||||||
|
|
||||||
|
inline
|
||||||
|
int ha_ndbcluster::read_range_first_to_buf(const key_range *start_key,
|
||||||
|
const key_range *end_key,
|
||||||
|
bool eq_range, bool sorted,
|
||||||
|
byte* buf)
|
||||||
|
{
|
||||||
|
KEY* key_info;
|
||||||
|
int error= 1;
|
||||||
|
DBUG_ENTER("ha_ndbcluster::read_range_first_to_buf");
|
||||||
DBUG_PRINT("info", ("eq_range: %d, sorted: %d", eq_range, sorted));
|
DBUG_PRINT("info", ("eq_range: %d, sorted: %d", eq_range, sorted));
|
||||||
|
|
||||||
if (m_active_cursor)
|
if (m_active_cursor)
|
||||||
|
@@ -93,6 +93,10 @@ class ha_ndbcluster: public handler
|
|||||||
int read_range_first(const key_range *start_key,
|
int read_range_first(const key_range *start_key,
|
||||||
const key_range *end_key,
|
const key_range *end_key,
|
||||||
bool eq_range, bool sorted);
|
bool eq_range, bool sorted);
|
||||||
|
int read_range_first_to_buf(const key_range *start_key,
|
||||||
|
const key_range *end_key,
|
||||||
|
bool eq_range, bool sorted,
|
||||||
|
byte* buf);
|
||||||
int read_range_next();
|
int read_range_next();
|
||||||
|
|
||||||
bool get_error_message(int error, String *buf);
|
bool get_error_message(int error, String *buf);
|
||||||
|
@@ -1434,9 +1434,9 @@ int handler::read_range_first(const key_range *start_key,
|
|||||||
start_key->length,
|
start_key->length,
|
||||||
start_key->flag);
|
start_key->flag);
|
||||||
if (result)
|
if (result)
|
||||||
DBUG_RETURN((result == HA_ERR_KEY_NOT_FOUND ||
|
DBUG_RETURN((result == HA_ERR_KEY_NOT_FOUND)
|
||||||
result == HA_ERR_END_OF_FILE) ? HA_ERR_END_OF_FILE :
|
? HA_ERR_END_OF_FILE
|
||||||
result);
|
: result);
|
||||||
|
|
||||||
DBUG_RETURN (compare_key(end_range) <= 0 ? 0 : HA_ERR_END_OF_FILE);
|
DBUG_RETURN (compare_key(end_range) <= 0 ? 0 : HA_ERR_END_OF_FILE);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user