Commit cde8c0ed authored by monty@hundin.mysql.fi's avatar monty@hundin.mysql.fi

Fixed bug in wait_for_relay_log_space()

Added checking of sem_init() in configure.
parent 4eb3ce22
...@@ -2410,9 +2410,11 @@ int main(int argc, char** argv) ...@@ -2410,9 +2410,11 @@ int main(int argc, char** argv)
case Q_QUERY: case Q_QUERY:
case Q_REAP: case Q_REAP:
{ {
int flags = QUERY_REAP; /* we read the result always regardless /*
* of the mode for both full query and We read the result always regardless of the mode for both full
* read-result only ( reap) */ query and read-result only (reap)
*/
int flags = QUERY_REAP;
if (q->type != Q_REAP) /* for a full query, enable the send stage */ if (q->type != Q_REAP) /* for a full query, enable the send stage */
flags |= QUERY_SEND; flags |= QUERY_SEND;
if (q_send_flag) if (q_send_flag)
...@@ -2439,12 +2441,13 @@ int main(int argc, char** argv) ...@@ -2439,12 +2441,13 @@ int main(int argc, char** argv)
/* fix up query pointer if this is * first iteration for this line */ /* fix up query pointer if this is * first iteration for this line */
if (q->query == q->query_buf) if (q->query == q->query_buf)
q->query += q->first_word_len; q->query += q->first_word_len;
error |= run_query(&cur_con->mysql, q, QUERY_SEND); /*
/* run query can execute a query partially, depending on the flags run_query() can execute a query partially, depending on the flags
* QUERY_SEND flag without QUERY_REAP tells it to just send the QUERY_SEND flag without QUERY_REAP tells it to just send the
* query and read the result some time later when reap instruction query and read the result some time later when reap instruction
* is given on this connection is given on this connection.
*/ */
error |= run_query(&cur_con->mysql, q, QUERY_SEND);
break; break;
case Q_RESULT: case Q_RESULT:
get_file_name(save_file,q); get_file_name(save_file,q);
......
...@@ -687,6 +687,9 @@ AC_CHECK_FUNC(bind, , AC_CHECK_LIB(bind, bind)) ...@@ -687,6 +687,9 @@ AC_CHECK_FUNC(bind, , AC_CHECK_LIB(bind, bind))
AC_CHECK_LIB(crypt, crypt) AC_CHECK_LIB(crypt, crypt)
AC_CHECK_FUNC(crypt, AC_DEFINE(HAVE_CRYPT)) AC_CHECK_FUNC(crypt, AC_DEFINE(HAVE_CRYPT))
# For sem_xxx functions on Solaris 2.6
AC_CHECK_FUNC(sem_init, , AC_CHECK_LIB(posix4))
# For compress in zlib # For compress in zlib
MYSQL_CHECK_ZLIB_WITH_COMPRESS($with_named_zlib) MYSQL_CHECK_ZLIB_WITH_COMPRESS($with_named_zlib)
......
...@@ -57,8 +57,11 @@ void hostname_cache_refresh() ...@@ -57,8 +57,11 @@ void hostname_cache_refresh()
bool hostname_cache_init() bool hostname_cache_init()
{ {
host_entry *tmp;
uint offset= (uint) ((char*) (&tmp->ip) - (char*) &tmp);
(void) pthread_mutex_init(&LOCK_hostname,MY_MUTEX_INIT_SLOW); (void) pthread_mutex_init(&LOCK_hostname,MY_MUTEX_INIT_SLOW);
if (!(hostname_cache=new hash_filo(HOST_CACHE_SIZE,offsetof(host_entry,ip),
if (!(hostname_cache=new hash_filo(HOST_CACHE_SIZE, offset,
sizeof(struct in_addr),NULL, sizeof(struct in_addr),NULL,
(void (*)(void*)) free))) (void (*)(void*)) free)))
return 1; return 1;
......
...@@ -1118,11 +1118,11 @@ static inline int add_relay_log(RELAY_LOG_INFO* rli,LOG_INFO* linfo) ...@@ -1118,11 +1118,11 @@ static inline int add_relay_log(RELAY_LOG_INFO* rli,LOG_INFO* linfo)
static bool wait_for_relay_log_space(RELAY_LOG_INFO* rli) static bool wait_for_relay_log_space(RELAY_LOG_INFO* rli)
{ {
bool slave_killed; bool slave_killed=0;
LINT_INIT(slave_killed);
MASTER_INFO* mi = rli->mi; MASTER_INFO* mi = rli->mi;
const char* save_proc_info; const char* save_proc_info;
THD* thd = mi->io_thd; THD* thd = mi->io_thd;
DBUG_ENTER("wait_for_relay_log_space"); DBUG_ENTER("wait_for_relay_log_space");
pthread_mutex_lock(&rli->log_space_lock); pthread_mutex_lock(&rli->log_space_lock);
save_proc_info = thd->proc_info; save_proc_info = thd->proc_info;
......
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