Commit d033448f authored by jonas@perch.ndb.mysql.com's avatar jonas@perch.ndb.mysql.com

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

into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new
parents 1246d2a2 8dce5e19
...@@ -216,3 +216,9 @@ show warnings; ...@@ -216,3 +216,9 @@ show warnings;
Level Code Message Level Code Message
Error 1296 Got error 743 'Unsupported character set in table or index' from NDB Error 1296 Got error 743 'Unsupported character set in table or index' from NDB
Error 1005 Can't create table 'test.t1' (errno: 140) Error 1005 Can't create table 'test.t1' (errno: 140)
create table t1 (
pk1 int primary key,
b bit(32) not null
) engine=ndbcluster;
insert into t1 values (1,1);
drop table t1;
...@@ -113,3 +113,12 @@ create table t1 ( ...@@ -113,3 +113,12 @@ create table t1 (
key(b) key(b)
) engine=ndbcluster; ) engine=ndbcluster;
show warnings; show warnings;
# bug#16125
create table t1 (
pk1 int primary key,
b bit(32) not null
) engine=ndbcluster;
insert into t1 values (1,1);
drop table t1;
...@@ -918,7 +918,7 @@ inline void ...@@ -918,7 +918,7 @@ inline void
BitmaskImpl::getField(unsigned size, const Uint32 src[], BitmaskImpl::getField(unsigned size, const Uint32 src[],
unsigned pos, unsigned len, Uint32 dst[]) unsigned pos, unsigned len, Uint32 dst[])
{ {
assert(pos + len < (size << 5)); assert(pos + len <= (size << 5));
src += (pos >> 5); src += (pos >> 5);
Uint32 offset = pos & 31; Uint32 offset = pos & 31;
...@@ -937,7 +937,7 @@ inline void ...@@ -937,7 +937,7 @@ inline void
BitmaskImpl::setField(unsigned size, Uint32 dst[], BitmaskImpl::setField(unsigned size, Uint32 dst[],
unsigned pos, unsigned len, const Uint32 src[]) unsigned pos, unsigned len, const Uint32 src[])
{ {
assert(pos + len < (size << 5)); assert(pos + len <= (size << 5));
dst += (pos >> 5); dst += (pos >> 5);
Uint32 offset = pos & 31; Uint32 offset = pos & 31;
......
...@@ -1859,6 +1859,16 @@ MgmtSrvr::alloc_node_id(NodeId * nodeId, ...@@ -1859,6 +1859,16 @@ MgmtSrvr::alloc_node_id(NodeId * nodeId,
m_connect_address[id_found].s_addr= 0; m_connect_address[id_found].s_addr= 0;
} }
m_reserved_nodes.set(id_found); m_reserved_nodes.set(id_found);
if (theFacade && id_found != theFacade->ownId())
{
/**
* Make sure we're ready to accept connections from this node
*/
theFacade->lock_mutex();
theFacade->doConnect(id_found);
theFacade->unlock_mutex();
}
char tmp_str[128]; char tmp_str[128];
m_reserved_nodes.getText(tmp_str); m_reserved_nodes.getText(tmp_str);
g_eventLogger.info("Mgmt server state: nodeid %d reserved for ip %s, m_reserved_nodes %s.", g_eventLogger.info("Mgmt server state: nodeid %d reserved for ip %s, m_reserved_nodes %s.",
......
...@@ -254,12 +254,6 @@ testcase(Ndb_cluster_connection&cc, int flag) ...@@ -254,12 +254,6 @@ testcase(Ndb_cluster_connection&cc, int flag)
ndbout << "tab=" << tab << " cols=" << attrcnt ndbout << "tab=" << tab << " cols=" << attrcnt
<< " size max=" << smax << " tot=" << stot << endl; << " size max=" << smax << " tot=" << stot << endl;
ndb = new Ndb(&cc, "TEST_DB");
if (ndb->init() != 0)
return ndberror("init");
if (ndb->waitUntilReady(30) < 0)
return ndberror("waitUntilReady");
if ((tcon = NdbSchemaCon::startSchemaTrans(ndb)) == 0) if ((tcon = NdbSchemaCon::startSchemaTrans(ndb)) == 0)
return ndberror("startSchemaTransaction"); return ndberror("startSchemaTransaction");
if ((top = tcon->getNdbSchemaOp()) == 0) if ((top = tcon->getNdbSchemaOp()) == 0)
...@@ -541,7 +535,6 @@ testcase(Ndb_cluster_connection&cc, int flag) ...@@ -541,7 +535,6 @@ testcase(Ndb_cluster_connection&cc, int flag)
return ndberror("key %d not found", k); return ndberror("key %d not found", k);
ndbout << "scanned " << key << endl; ndbout << "scanned " << key << endl;
ndb = 0;
ndbout << "done" << endl; ndbout << "done" << endl;
return 0; return 0;
} }
...@@ -605,6 +598,7 @@ NDB_COMMAND(testDataBuffers, "testDataBuffers", "testDataBuffers", "testDataBuff ...@@ -605,6 +598,7 @@ NDB_COMMAND(testDataBuffers, "testDataBuffers", "testDataBuffers", "testDataBuff
return NDBT_ProgramExit(NDBT_WRONGARGS); return NDBT_ProgramExit(NDBT_WRONGARGS);
} }
} }
unsigned ok = true; unsigned ok = true;
Ndb_cluster_connection con; Ndb_cluster_connection con;
...@@ -613,6 +607,20 @@ NDB_COMMAND(testDataBuffers, "testDataBuffers", "testDataBuffers", "testDataBuff ...@@ -613,6 +607,20 @@ NDB_COMMAND(testDataBuffers, "testDataBuffers", "testDataBuffers", "testDataBuff
return NDBT_ProgramExit(NDBT_FAILED); return NDBT_ProgramExit(NDBT_FAILED);
} }
ndb = new Ndb(&con, "TEST_DB");
if (ndb->init() != 0)
{
ndberror("init");
ok = false;
goto out;
}
if (ndb->waitUntilReady(30) < 0)
{
ndberror("waitUntilReady");
ok = false;
goto out;
}
for (i = 1; 0 == loopcnt || i <= loopcnt; i++) { for (i = 1; 0 == loopcnt || i <= loopcnt; i++) {
ndbout << "=== loop " << i << " ===" << endl; ndbout << "=== loop " << i << " ===" << endl;
for (int flag = 0; flag < (1<<testbits); flag++) { for (int flag = 0; flag < (1<<testbits); flag++) {
...@@ -621,9 +629,13 @@ NDB_COMMAND(testDataBuffers, "testDataBuffers", "testDataBuffers", "testDataBuff ...@@ -621,9 +629,13 @@ NDB_COMMAND(testDataBuffers, "testDataBuffers", "testDataBuffers", "testDataBuff
if (! kontinue) if (! kontinue)
goto out; goto out;
} }
NdbDictionary::Dictionary * dict = ndb->getDictionary();
dict->dropTable(tab);
} }
} }
out: out:
delete ndb;
return NDBT_ProgramExit(ok ? NDBT_OK : NDBT_FAILED); return NDBT_ProgramExit(ok ? NDBT_OK : NDBT_FAILED);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment