mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
Added multi-source support to show relaylog events
This commit is contained in:
@ -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)
|
|||||||
}
|
}
|
||||||
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)
|
|||||||
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)
|
|||||||
|
|
||||||
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:
|
|||||||
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;
|
||||||
|
Reference in New Issue
Block a user