mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
f0886a4d9d
files NOTE: this is the backport to next-mr. SHOW BINLOG EVENTS does not work with relay log files. If issuing "SHOW BINLOG EVENTS IN 'relay-log.000001'" in a non-empty relay log file (relay-log.000001), mysql reports empty set. This patch addresses this issue by extending the SHOW command with RELAYLOG. Events in relay log files can now be inspected by issuing SHOW RELAYLOG EVENTS [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count]. mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc: Shared part of the test case. mysql-test/include/show_binlog_events.inc: Added options $binary_log_file, $binary_log_limit_row, $binary_log_limit_offset so that show_binlog_events can take same parameters as SHOW BINLOG EVENTS does. mysql-test/include/show_relaylog_events.inc: Clone of show_binlog_events for relaylog events. mysql-test/suite/rpl/t/rpl_row_show_relaylog_events.test: Test case for row based replication. mysql-test/suite/rpl/t/rpl_stm_mix_show_relaylog_events.test: Test case for statement and mixed mode replication. sql/lex.h: Added RELAYLOG symbol. sql/mysqld.cc: Added "show_relaylog_events" to status_vars. sql/sp_head.cc: Set SQLCOM_SHOW_RELAYLOG_EVENTS to return flags= sp_head::MULTI_RESULTS; in sp_get_flags_for_command as SQLCOM_SHOW_BINLOG_EVENTS does. sql/sql_lex.h: Added sql_command SQLCOM_SHOW_RELAYLOG_EVENTS to lex enum_sql_command. sql/sql_parse.cc: Added handling of SQLCOM_SHOW_RELAYLOG_EVENTS. sql/sql_repl.cc: mysql_show_binlog_events set to choose the log file to use based on the command issued (SHOW BINLOG|RELAYLOG EVENTS). sql/sql_yacc.yy: Added RELAYLOG to the grammar.
35 lines
1.1 KiB
PHP
35 lines
1.1 KiB
PHP
# $binlog_start can be set by caller or take a default value
|
|
# $binary_log_file the name of the log file show
|
|
# $binary_log_limit_row - sets the number of binlog rows to be returned
|
|
# $binary_log_limit_offset - sets the offset where to start returning events
|
|
|
|
let $show_binlog_events= show binlog events;
|
|
|
|
if (!$binlog_start)
|
|
{
|
|
# defaults to chop the first event in the binary log
|
|
let $binlog_start=106;
|
|
}
|
|
|
|
if (!`SELECT '$binary_log_file' = ''`)
|
|
{
|
|
let $show_binlog_events= $show_binlog_events in '$binary_log_file';
|
|
}
|
|
let $show_binlog_events= $show_binlog_events from $binlog_start;
|
|
|
|
if ($binary_log_limit_row)
|
|
{
|
|
let $limit= limit;
|
|
if ($binary_log_limit_offset)
|
|
{
|
|
let $limit= $limit $binary_log_limit_offset, ;
|
|
}
|
|
|
|
let $limit= $limit $binary_log_limit_row;
|
|
let $show_binlog_events= $show_binlog_events $limit;
|
|
}
|
|
|
|
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $binlog_start <binlog_start>
|
|
--replace_column 2 # 4 # 5 #
|
|
--replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/ /file_id=[0-9]+/file_id=#/ /block_len=[0-9]+/block_len=#/
|
|
--eval $show_binlog_events
|