mirror of
https://github.com/MariaDB/server.git
synced 2025-09-02 09:41:40 +03:00
Merge 4.1 with jonas irix clone
BitKeeper/etc/logging_ok: auto-union ndb/include/kernel/NodeState.hpp: Auto merged ndb/include/ndbapi/NdbDictionary.hpp: Auto merged ndb/include/util/Bitmask.hpp: Auto merged ndb/src/common/debugger/EventLogger.cpp: Auto merged ndb/src/common/transporter/TransporterRegistry.cpp: Auto merged ndb/src/common/util/SocketServer.cpp: Auto merged ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp: Auto merged ndb/src/kernel/blocks/dbacc/DbaccMain.cpp: Auto merged ndb/src/kernel/blocks/dbdict/Dbdict.cpp: Auto merged ndb/src/kernel/blocks/dbdih/DbdihInit.cpp: Auto merged ndb/src/kernel/blocks/dbdih/DbdihMain.cpp: Auto merged ndb/src/kernel/blocks/dblqh/DblqhMain.cpp: Auto merged ndb/src/kernel/main.cpp: Auto merged ndb/src/kernel/blocks/dbtc/DbtcMain.cpp: Auto merged ndb/src/kernel/blocks/qmgr/QmgrMain.cpp: Auto merged ndb/src/kernel/error/ErrorReporter.hpp: Auto merged ndb/src/mgmapi/mgmapi.cpp: Auto merged ndb/src/mgmclient/CpcClient.cpp: Auto merged ndb/src/mgmsrv/Services.cpp: Auto merged ndb/src/ndbapi/Ndb.cpp: Auto merged ndb/src/ndbapi/NdbDictionaryImpl.cpp: Auto merged ndb/src/ndbapi/NdbEventOperationImpl.cpp: Auto merged ndb/src/ndbapi/Ndbinit.cpp: Auto merged ndb/test/include/NDBT_Table.hpp: Auto merged ndb/test/include/NDBT_Test.hpp: Auto merged ndb/test/run-test/main.cpp: Auto merged ndb/test/src/HugoOperations.cpp: Auto merged ndb/test/src/HugoTransactions.cpp: Auto merged ndb/test/src/NDBT_Tables.cpp: Auto merged ndb/test/src/NDBT_Test.cpp: Auto merged ndb/test/src/NdbRestarter.cpp: Auto merged ndb/tools/waiter.cpp: Auto merged sql/ha_ndbcluster.cc: Auto merged
This commit is contained in:
@@ -383,7 +383,8 @@ void
|
||||
NdbTableImpl::buildColumnHash(){
|
||||
const Uint32 size = m_columns.size();
|
||||
|
||||
for(size_t i = 31; i >= 0; i--){
|
||||
size_t i;
|
||||
for(i = 31; i >= 0; i--){
|
||||
if(((1 << i) & size) != 0){
|
||||
m_columnHashMask = (1 << (i + 1)) - 1;
|
||||
break;
|
||||
@@ -392,7 +393,7 @@ NdbTableImpl::buildColumnHash(){
|
||||
|
||||
Vector<Uint32> hashValues;
|
||||
Vector<Vector<Uint32> > chains; chains.fill(size, hashValues);
|
||||
for(size_t i = 0; i<size; i++){
|
||||
for(i = 0; i<size; i++){
|
||||
Uint32 hv = Hash(m_columns[i]->getName()) & 0xFFFE;
|
||||
Uint32 bucket = hv & m_columnHashMask;
|
||||
bucket = (bucket < size ? bucket : bucket - size);
|
||||
@@ -406,7 +407,7 @@ NdbTableImpl::buildColumnHash(){
|
||||
m_columnHash.fill((unsigned)size-1, tmp); // Default no chaining
|
||||
|
||||
Uint32 pos = 0; // In overflow vector
|
||||
for(size_t i = 0; i<size; i++){
|
||||
for(i = 0; i<size; i++){
|
||||
Uint32 sz = chains[i].size();
|
||||
if(sz == 1){
|
||||
Uint32 col = chains[i][0];
|
||||
@@ -1314,6 +1315,7 @@ NdbDictInterface::createOrAlterTable(Ndb & ndb,
|
||||
NdbTableImpl & impl,
|
||||
bool alter)
|
||||
{
|
||||
unsigned i;
|
||||
if((unsigned)impl.getNoOfPrimaryKeys() > NDB_MAX_NO_OF_ATTRIBUTES_IN_KEY){
|
||||
m_error.code = 4317;
|
||||
return -1;
|
||||
@@ -1339,7 +1341,7 @@ NdbDictInterface::createOrAlterTable(Ndb & ndb,
|
||||
|
||||
bool haveAutoIncrement = false;
|
||||
Uint64 autoIncrementValue;
|
||||
for(unsigned i = 0; i<sz; i++){
|
||||
for(i = 0; i<sz; i++){
|
||||
const NdbColumnImpl * col = impl.m_columns[i];
|
||||
if(col == 0)
|
||||
continue;
|
||||
@@ -1383,7 +1385,7 @@ NdbDictInterface::createOrAlterTable(Ndb & ndb,
|
||||
abort();
|
||||
}
|
||||
|
||||
for(unsigned i = 0; i<sz; i++){
|
||||
for(i = 0; i<sz; i++){
|
||||
const NdbColumnImpl * col = impl.m_columns[i];
|
||||
if(col == 0)
|
||||
continue;
|
||||
@@ -1795,7 +1797,7 @@ NdbDictInterface::createIndex(Ndb & ndb,
|
||||
{
|
||||
//validate();
|
||||
//aggregate();
|
||||
|
||||
unsigned i;
|
||||
UtilBufferWriter w(m_buffer);
|
||||
const size_t len = strlen(impl.m_externalName.c_str()) + 1;
|
||||
if(len > MAX_TAB_NAME_SIZE) {
|
||||
@@ -1835,7 +1837,7 @@ NdbDictInterface::createIndex(Ndb & ndb,
|
||||
req->setOnline(true);
|
||||
AttributeList attributeList;
|
||||
attributeList.sz = impl.m_columns.size();
|
||||
for(unsigned i = 0; i<attributeList.sz; i++){
|
||||
for(i = 0; i<attributeList.sz; i++){
|
||||
const NdbColumnImpl* col =
|
||||
table.getColumn(impl.m_columns[i]->m_name.c_str());
|
||||
if(col == 0){
|
||||
@@ -1860,7 +1862,7 @@ NdbDictInterface::createIndex(Ndb & ndb,
|
||||
}
|
||||
if (it == DictTabInfo::UniqueHashIndex) {
|
||||
// Sort index attributes according to primary table (using insertion sort)
|
||||
for(unsigned i = 1; i < attributeList.sz; i++) {
|
||||
for(i = 1; i < attributeList.sz; i++) {
|
||||
unsigned int temp = attributeList.id[i];
|
||||
unsigned int j = i;
|
||||
while((j > 0) && (attributeList.id[j - 1] > temp)) {
|
||||
@@ -1870,7 +1872,7 @@ NdbDictInterface::createIndex(Ndb & ndb,
|
||||
attributeList.id[j] = temp;
|
||||
}
|
||||
// Check for illegal duplicate attributes
|
||||
for(unsigned i = 0; i<attributeList.sz; i++) {
|
||||
for(i = 0; i<attributeList.sz; i++) {
|
||||
if ((i != (attributeList.sz - 1)) &&
|
||||
(attributeList.id[i] == attributeList.id[i+1])) {
|
||||
m_error.code = 4258;
|
||||
@@ -2050,6 +2052,7 @@ NdbDictInterface::execDROP_INDX_REF(NdbApiSignal * signal,
|
||||
int
|
||||
NdbDictionaryImpl::createEvent(NdbEventImpl & evnt)
|
||||
{
|
||||
int i;
|
||||
NdbTableImpl* tab = getTable(evnt.getTable());
|
||||
|
||||
if(tab == 0){
|
||||
@@ -2072,7 +2075,7 @@ NdbDictionaryImpl::createEvent(NdbEventImpl & evnt)
|
||||
|
||||
int attributeList_sz = evnt.m_attrIds.size();
|
||||
|
||||
for (int i = 0; i < attributeList_sz; i++) {
|
||||
for (i = 0; i < attributeList_sz; i++) {
|
||||
NdbColumnImpl *col_impl = table.getColumn(evnt.m_attrIds[i]);
|
||||
if (col_impl) {
|
||||
evnt.m_facade->addColumn(*(col_impl->m_facade));
|
||||
@@ -2093,7 +2096,7 @@ NdbDictionaryImpl::createEvent(NdbEventImpl & evnt)
|
||||
int pk_count = 0;
|
||||
evnt.m_attrListBitmask.clear();
|
||||
|
||||
for(int i = 0; i<attributeList_sz; i++){
|
||||
for(i = 0; i<attributeList_sz; i++){
|
||||
const NdbColumnImpl* col =
|
||||
table.getColumn(evnt.m_columns[i]->m_name.c_str());
|
||||
if(col == 0){
|
||||
@@ -2111,7 +2114,7 @@ NdbDictionaryImpl::createEvent(NdbEventImpl & evnt)
|
||||
}
|
||||
|
||||
// Sort index attributes according to primary table (using insertion sort)
|
||||
for(int i = 1; i < attributeList_sz; i++) {
|
||||
for(i = 1; i < attributeList_sz; i++) {
|
||||
NdbColumnImpl* temp = evnt.m_columns[i];
|
||||
unsigned int j = i;
|
||||
while((j > 0) && (evnt.m_columns[j - 1]->m_attrId > temp->m_attrId)) {
|
||||
@@ -2121,7 +2124,7 @@ NdbDictionaryImpl::createEvent(NdbEventImpl & evnt)
|
||||
evnt.m_columns[j] = temp;
|
||||
}
|
||||
// Check for illegal duplicate attributes
|
||||
for(int i = 1; i<attributeList_sz; i++) {
|
||||
for(i = 1; i<attributeList_sz; i++) {
|
||||
if (evnt.m_columns[i-1]->m_attrId == evnt.m_columns[i]->m_attrId) {
|
||||
m_error.code = 4258;
|
||||
return -1;
|
||||
@@ -2818,3 +2821,9 @@ NdbDictInterface::execLIST_TABLES_CONF(NdbApiSignal* signal,
|
||||
m_waiter.signal(NO_WAIT);
|
||||
}
|
||||
}
|
||||
|
||||
template class Vector<Uint32>;
|
||||
template class Vector<Vector<Uint32> >;
|
||||
template class Vector<NdbTableImpl*>;
|
||||
template class Vector<NdbColumnImpl*>;
|
||||
|
||||
|
Reference in New Issue
Block a user