mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
Merge tulin@bk-internal.mysql.com:/home/bk/mysql-4.1
into poseidon.mysql.com:/home/tomas/mysql-4.1-ndb
This commit is contained in:
@@ -133,6 +133,21 @@ a b c
|
||||
6 7 2
|
||||
7 8 3
|
||||
8 2 3
|
||||
create unique index bi using hash on t2(b);
|
||||
insert into t2 values(9, 3, 1);
|
||||
ERROR 23000: Duplicate entry '' for key 0
|
||||
alter table t2 drop index bi;
|
||||
insert into t2 values(9, 3, 1);
|
||||
select * from t2 order by a;
|
||||
a b c
|
||||
2 3 5
|
||||
3 4 6
|
||||
4 5 8
|
||||
5 6 2
|
||||
6 7 2
|
||||
7 8 3
|
||||
8 2 3
|
||||
9 3 1
|
||||
drop table t2;
|
||||
CREATE TABLE t2 (
|
||||
a int unsigned NOT NULL PRIMARY KEY,
|
||||
|
||||
@@ -83,6 +83,14 @@ delete from t2 where a = 1;
|
||||
insert into t2 values(8, 2, 3);
|
||||
select * from t2 order by a;
|
||||
|
||||
# Bug #24818 CREATE UNIQUE INDEX (...) USING HASH on a NDB table crashes mysqld
|
||||
create unique index bi using hash on t2(b);
|
||||
-- error 1062
|
||||
insert into t2 values(9, 3, 1);
|
||||
alter table t2 drop index bi;
|
||||
insert into t2 values(9, 3, 1);
|
||||
select * from t2 order by a;
|
||||
|
||||
drop table t2;
|
||||
|
||||
-- error 1121
|
||||
|
||||
@@ -123,13 +123,25 @@ bool
|
||||
File_class::close()
|
||||
{
|
||||
bool rc = true;
|
||||
int retval = 0;
|
||||
|
||||
if (m_file != NULL)
|
||||
{
|
||||
::fflush(m_file);
|
||||
rc = (::fclose(m_file) == 0 ? true : false);
|
||||
m_file = NULL; // Try again?
|
||||
retval = ::fclose(m_file);
|
||||
while ( (retval != 0) && (errno == EINTR) ){
|
||||
retval = ::fclose(m_file);
|
||||
}
|
||||
if( retval == 0){
|
||||
rc = true;
|
||||
}
|
||||
else {
|
||||
rc = false;
|
||||
ndbout_c("ERROR: Close file error in File.cpp for %s",strerror(errno));
|
||||
}
|
||||
}
|
||||
|
||||
m_file = NULL;
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
@@ -658,24 +658,26 @@ SimulatedBlock::allocRecord(const char * type, size_t s, size_t n, bool clear)
|
||||
|
||||
void * p = NULL;
|
||||
size_t size = n*s;
|
||||
Uint64 real_size = (Uint64)((Uint64)n)*((Uint64)s);
|
||||
refresh_watch_dog();
|
||||
if (size > 0){
|
||||
if (real_size > 0){
|
||||
#ifdef VM_TRACE_MEM
|
||||
ndbout_c("%s::allocRecord(%s, %u, %u) = %u bytes",
|
||||
ndbout_c("%s::allocRecord(%s, %u, %u) = %llu bytes",
|
||||
getBlockName(number()),
|
||||
type,
|
||||
s,
|
||||
n,
|
||||
size);
|
||||
real_size);
|
||||
#endif
|
||||
p = NdbMem_Allocate(size);
|
||||
if( real_size == (Uint64)size )
|
||||
p = NdbMem_Allocate(size);
|
||||
if (p == NULL){
|
||||
char buf1[255];
|
||||
char buf2[255];
|
||||
BaseString::snprintf(buf1, sizeof(buf1), "%s could not allocate memory for %s",
|
||||
getBlockName(number()), type);
|
||||
BaseString::snprintf(buf2, sizeof(buf2), "Requested: %ux%u = %u bytes",
|
||||
(Uint32)s, (Uint32)n, (Uint32)size);
|
||||
BaseString::snprintf(buf2, sizeof(buf2), "Requested: %ux%u = %llu bytes",
|
||||
(Uint32)s, (Uint32)n, (Uint64)real_size);
|
||||
ERROR_SET(fatal, ERR_MEMALLOC, buf1, buf2);
|
||||
}
|
||||
|
||||
|
||||
@@ -1627,6 +1627,18 @@ CommandInterpreter::executeStatus(int processId,
|
||||
ndbout << processId << ": Node not found" << endl;
|
||||
return -1;
|
||||
}
|
||||
if (cl->node_states[i].node_type != NDB_MGM_NODE_TYPE_NDB){
|
||||
if (cl->node_states[i].version != 0){
|
||||
ndbout << "Node "<< cl->node_states[i].node_id <<": connected" ;
|
||||
ndbout_c(" (Version %d.%d.%d)",
|
||||
getMajor(version) ,
|
||||
getMinor(version),
|
||||
getBuild(version));
|
||||
|
||||
}else
|
||||
ndbout << "Node "<< cl->node_states[i].node_id <<": not connected" << endl;
|
||||
return 0;
|
||||
}
|
||||
status = cl->node_states[i].node_status;
|
||||
startPhase = cl->node_states[i].start_phase;
|
||||
version = cl->node_states[i].version;
|
||||
|
||||
Reference in New Issue
Block a user