Merge perch.ndb.mysql.com:/home/jonas/src/41-work
into perch.ndb.mysql.com:/home/jonas/src/mysql-4.1-ndb sql/log.cc: Auto merged
This commit is contained in:
commit
19dc0e4173
@ -504,6 +504,8 @@ int NdbScanOperation::nextResult(bool fetchAllowed, bool forceSend)
|
||||
|
||||
idx = m_current_api_receiver;
|
||||
last = m_api_receivers_count;
|
||||
|
||||
Uint32 timeout = tp->m_waitfor_timeout;
|
||||
|
||||
do {
|
||||
if(theError.code){
|
||||
@ -531,7 +533,7 @@ int NdbScanOperation::nextResult(bool fetchAllowed, bool forceSend)
|
||||
*/
|
||||
theNdb->theImpl->theWaiter.m_node = nodeId;
|
||||
theNdb->theImpl->theWaiter.m_state = WAIT_SCAN;
|
||||
int return_code = theNdb->receiveResponse(WAITFOR_SCAN_TIMEOUT);
|
||||
int return_code = theNdb->receiveResponse(3*timeout);
|
||||
if (return_code == 0 && seq == tp->getNodeSequence(nodeId)) {
|
||||
continue;
|
||||
} else {
|
||||
@ -1372,6 +1374,7 @@ NdbIndexScanOperation::next_result_ordered(bool fetchAllowed,
|
||||
return -1;
|
||||
Uint32 seq = theNdbCon->theNodeSequence;
|
||||
Uint32 nodeId = theNdbCon->theDBnode;
|
||||
Uint32 timeout = tp->m_waitfor_timeout;
|
||||
if(seq == tp->getNodeSequence(nodeId) &&
|
||||
!send_next_scan_ordered(s_idx, forceSend)){
|
||||
Uint32 tmp = m_sent_receivers_count;
|
||||
@ -1379,7 +1382,7 @@ NdbIndexScanOperation::next_result_ordered(bool fetchAllowed,
|
||||
while(m_sent_receivers_count > 0 && !theError.code){
|
||||
theNdb->theImpl->theWaiter.m_node = nodeId;
|
||||
theNdb->theImpl->theWaiter.m_state = WAIT_SCAN;
|
||||
int return_code = theNdb->receiveResponse(WAITFOR_SCAN_TIMEOUT);
|
||||
int return_code = theNdb->receiveResponse(3*timeout);
|
||||
if (return_code == 0 && seq == tp->getNodeSequence(nodeId)) {
|
||||
continue;
|
||||
}
|
||||
@ -1520,6 +1523,8 @@ NdbScanOperation::close_impl(TransporterFacade* tp, bool forceSend){
|
||||
return -1;
|
||||
}
|
||||
|
||||
Uint32 timeout = tp->m_waitfor_timeout;
|
||||
|
||||
/**
|
||||
* Wait for outstanding
|
||||
*/
|
||||
@ -1527,7 +1532,7 @@ NdbScanOperation::close_impl(TransporterFacade* tp, bool forceSend){
|
||||
{
|
||||
theNdb->theImpl->theWaiter.m_node = nodeId;
|
||||
theNdb->theImpl->theWaiter.m_state = WAIT_SCAN;
|
||||
int return_code = theNdb->receiveResponse(WAITFOR_SCAN_TIMEOUT);
|
||||
int return_code = theNdb->receiveResponse(3*timeout);
|
||||
switch(return_code){
|
||||
case 0:
|
||||
break;
|
||||
@ -1597,7 +1602,7 @@ NdbScanOperation::close_impl(TransporterFacade* tp, bool forceSend){
|
||||
{
|
||||
theNdb->theImpl->theWaiter.m_node = nodeId;
|
||||
theNdb->theImpl->theWaiter.m_state = WAIT_SCAN;
|
||||
int return_code = theNdb->receiveResponse(WAITFOR_SCAN_TIMEOUT);
|
||||
int return_code = theNdb->receiveResponse(3*timeout);
|
||||
switch(return_code){
|
||||
case 0:
|
||||
break;
|
||||
|
11
sql/log.cc
11
sql/log.cc
@ -409,12 +409,17 @@ shutdown the MySQL server and restart it.", log_name, errno);
|
||||
int MYSQL_LOG::get_current_log(LOG_INFO* linfo)
|
||||
{
|
||||
pthread_mutex_lock(&LOCK_log);
|
||||
strmake(linfo->log_file_name, log_file_name, sizeof(linfo->log_file_name)-1);
|
||||
linfo->pos = my_b_tell(&log_file);
|
||||
int ret = raw_get_current_log(linfo);
|
||||
pthread_mutex_unlock(&LOCK_log);
|
||||
return 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
int MYSQL_LOG::raw_get_current_log(LOG_INFO* linfo)
|
||||
{
|
||||
strmake(linfo->log_file_name, log_file_name, sizeof(linfo->log_file_name)-1);
|
||||
linfo->pos = my_b_tell(&log_file);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
Move all data up in a file in an filename index file
|
||||
|
@ -177,6 +177,7 @@ public:
|
||||
bool need_mutex);
|
||||
int find_next_log(LOG_INFO* linfo, bool need_mutex);
|
||||
int get_current_log(LOG_INFO* linfo);
|
||||
int raw_get_current_log(LOG_INFO* linfo);
|
||||
uint next_file_id();
|
||||
inline bool is_open() { return log_type != LOG_CLOSED; }
|
||||
inline char* get_index_fname() { return index_file_name;}
|
||||
|
@ -1359,10 +1359,14 @@ int show_binlogs(THD* thd)
|
||||
MYSQL_TYPE_LONGLONG));
|
||||
if (protocol->send_fields(&field_list, 1))
|
||||
DBUG_RETURN(1);
|
||||
|
||||
pthread_mutex_lock(mysql_bin_log.get_log_lock());
|
||||
mysql_bin_log.lock_index();
|
||||
index_file=mysql_bin_log.get_index_file();
|
||||
|
||||
mysql_bin_log.get_current_log(&cur);
|
||||
|
||||
mysql_bin_log.raw_get_current_log(&cur); // dont take mutex
|
||||
pthread_mutex_unlock(mysql_bin_log.get_log_lock()); // lockdep, OK
|
||||
|
||||
cur_dir_len= dirname_length(cur.log_file_name);
|
||||
|
||||
reinit_io_cache(index_file, READ_CACHE, (my_off_t) 0, 0, 0);
|
||||
|
Loading…
x
Reference in New Issue
Block a user