Merged BUG#11766427, BUG#59539 from 5.1 to 5.5.
No conflicts.
This commit is contained in:
commit
732992c693
@ -714,10 +714,18 @@ Exit_status process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev,
|
|||||||
*/
|
*/
|
||||||
start_datetime= 0;
|
start_datetime= 0;
|
||||||
offset= 0; // print everything and protect against cycling rec_count
|
offset= 0; // print everything and protect against cycling rec_count
|
||||||
|
/*
|
||||||
|
Skip events according to the --server-id flag. However, don't
|
||||||
|
skip format_description or rotate events, because they they
|
||||||
|
are really "global" events that are relevant for the entire
|
||||||
|
binlog, even if they have a server_id. Also, we have to read
|
||||||
|
the format_description event so that we can parse subsequent
|
||||||
|
events.
|
||||||
|
*/
|
||||||
|
if (ev_type != ROTATE_EVENT &&
|
||||||
|
server_id && (server_id != ev->server_id))
|
||||||
|
goto end;
|
||||||
}
|
}
|
||||||
if (server_id && (server_id != ev->server_id))
|
|
||||||
/* skip just this event, continue processing the log. */
|
|
||||||
goto end;
|
|
||||||
if (((my_time_t)(ev->when) >= stop_datetime)
|
if (((my_time_t)(ev->when) >= stop_datetime)
|
||||||
|| (pos >= stop_position_mot))
|
|| (pos >= stop_position_mot))
|
||||||
{
|
{
|
||||||
|
@ -903,3 +903,15 @@ master-bin.000002 # Query # # CREATE DATABASE test1
|
|||||||
master-bin.000002 # Query # # use `test1`; CREATE TABLE t1(id int)
|
master-bin.000002 # Query # # use `test1`; CREATE TABLE t1(id int)
|
||||||
master-bin.000002 # Query # # use `test1`; DROP TABLE `t1` /* generated by server */
|
master-bin.000002 # Query # # use `test1`; DROP TABLE `t1` /* generated by server */
|
||||||
master-bin.000002 # Query # # DROP DATABASE test1
|
master-bin.000002 # Query # # DROP DATABASE test1
|
||||||
|
RESET MASTER;
|
||||||
|
USE test;
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
SET GLOBAL SERVER_ID = 2;
|
||||||
|
DROP TABLE t1;
|
||||||
|
FLUSH LOGS;
|
||||||
|
SHOW TABLES IN test;
|
||||||
|
Tables_in_test
|
||||||
|
t1
|
||||||
|
SHOW TABLES IN test;
|
||||||
|
Tables_in_test
|
||||||
|
SET GLOBAL SERVER_ID = 1;
|
||||||
|
@ -527,3 +527,23 @@ exec $MYSQL_BINLOG $MYSQLD_DATADIR/$master_binlog | $MYSQL test 2>&1;
|
|||||||
let $binlog_file= query_get_value(SHOW MASTER STATUS, File, 1);
|
let $binlog_file= query_get_value(SHOW MASTER STATUS, File, 1);
|
||||||
source include/show_binlog_events.inc;
|
source include/show_binlog_events.inc;
|
||||||
|
|
||||||
|
#
|
||||||
|
# BUG#11766427 BUG#59530: Filter by server id in mysqlbinlog fails
|
||||||
|
# This test checks that the format description log event is not
|
||||||
|
# filtered out by the --server-id option.
|
||||||
|
#
|
||||||
|
RESET MASTER;
|
||||||
|
USE test;
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
--let $old_server_id= `SELECT @@GLOBAL.SERVER_ID`
|
||||||
|
SET GLOBAL SERVER_ID = 2;
|
||||||
|
DROP TABLE t1;
|
||||||
|
--let $master_binlog= query_get_value(SHOW MASTER STATUS, File, 1)
|
||||||
|
FLUSH LOGS;
|
||||||
|
# The following should only create t1, not drop it.
|
||||||
|
--exec $MYSQL_BINLOG --server-id=1 $MYSQLD_DATADIR/$master_binlog | $MYSQL
|
||||||
|
SHOW TABLES IN test;
|
||||||
|
# The following should only drop t1, not create it.
|
||||||
|
--exec $MYSQL_BINLOG --server-id=2 $MYSQLD_DATADIR/$master_binlog | $MYSQL
|
||||||
|
SHOW TABLES IN test;
|
||||||
|
eval SET GLOBAL SERVER_ID = $old_server_id;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user