Commit 222883b0 authored by Michael Widenius's avatar Michael Widenius

Added multi-source support to show relaylog events

parent 1864d959
...@@ -2022,6 +2022,7 @@ bool mysql_show_binlog_events(THD* thd) ...@@ -2022,6 +2022,7 @@ bool mysql_show_binlog_events(THD* thd)
File file = -1; File file = -1;
MYSQL_BIN_LOG *binary_log= NULL; MYSQL_BIN_LOG *binary_log= NULL;
int old_max_allowed_packet= thd->variables.max_allowed_packet; int old_max_allowed_packet= thd->variables.max_allowed_packet;
Master_info *mi= 0;
LOG_INFO linfo; LOG_INFO linfo;
DBUG_ENTER("mysql_show_binlog_events"); DBUG_ENTER("mysql_show_binlog_events");
...@@ -2051,10 +2052,15 @@ bool mysql_show_binlog_events(THD* thd) ...@@ -2051,10 +2052,15 @@ bool mysql_show_binlog_events(THD* thd)
} }
else /* showing relay log contents */ else /* showing relay log contents */
{ {
if (!active_mi) mysql_mutex_lock(&LOCK_active_mi);
if (!(mi= master_info_index->
get_master_info(&thd->variables.default_master_connection,
MYSQL_ERROR::WARN_LEVEL_ERROR)))
{
mysql_mutex_unlock(&LOCK_active_mi);
DBUG_RETURN(TRUE); DBUG_RETURN(TRUE);
}
binary_log= &(active_mi->rli.relay_log); binary_log= &(mi->rli.relay_log);
} }
if (binary_log->is_open()) if (binary_log->is_open())
...@@ -2068,6 +2074,13 @@ bool mysql_show_binlog_events(THD* thd) ...@@ -2068,6 +2074,13 @@ bool mysql_show_binlog_events(THD* thd)
mysql_mutex_t *log_lock = binary_log->get_log_lock(); mysql_mutex_t *log_lock = binary_log->get_log_lock();
Log_event* ev; Log_event* ev;
if (mi)
{
/* We can unlock the mutex as we have a lock on the file */
mysql_mutex_unlock(&LOCK_active_mi);
mi= 0;
}
unit->set_limit(thd->lex->current_select); unit->set_limit(thd->lex->current_select);
limit_start= unit->offset_limit_cnt; limit_start= unit->offset_limit_cnt;
limit_end= unit->select_limit_cnt; limit_end= unit->select_limit_cnt;
...@@ -2162,6 +2175,9 @@ bool mysql_show_binlog_events(THD* thd) ...@@ -2162,6 +2175,9 @@ bool mysql_show_binlog_events(THD* thd)
mysql_mutex_unlock(log_lock); mysql_mutex_unlock(log_lock);
} }
else if (mi)
mysql_mutex_unlock(&LOCK_active_mi);
// Check that linfo is still on the function scope. // Check that linfo is still on the function scope.
DEBUG_SYNC(thd, "after_show_binlog_events"); DEBUG_SYNC(thd, "after_show_binlog_events");
......
...@@ -11453,7 +11453,7 @@ show_param: ...@@ -11453,7 +11453,7 @@ show_param:
LEX *lex= Lex; LEX *lex= Lex;
lex->sql_command= SQLCOM_SHOW_BINLOG_EVENTS; lex->sql_command= SQLCOM_SHOW_BINLOG_EVENTS;
} opt_limit_clause_init } opt_limit_clause_init
| RELAYLOG_SYM EVENTS_SYM binlog_in binlog_from | RELAYLOG_SYM optional_connection_name EVENTS_SYM binlog_in binlog_from
{ {
LEX *lex= Lex; LEX *lex= Lex;
lex->sql_command= SQLCOM_SHOW_RELAYLOG_EVENTS; lex->sql_command= SQLCOM_SHOW_RELAYLOG_EVENTS;
......
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