stop slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
reset master;
reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
==========MASTER==========
show global variables like 'binlog_format%';
Variable_name	Value
binlog_format	MIXED
show session variables like 'binlog_format%';
Variable_name	Value
binlog_format	MIXED
select @@global.binlog_format, @@session.binlog_format;
@@global.binlog_format	@@session.binlog_format
MIXED	MIXED
==========SLAVE===========
show global variables like 'binlog_format%';
Variable_name	Value
binlog_format	MIXED
show session variables like 'binlog_format%';
Variable_name	Value
binlog_format	MIXED
select @@global.binlog_format, @@session.binlog_format;
@@global.binlog_format	@@session.binlog_format
MIXED	MIXED
CREATE DATABASE test_rpl;

******************** PREPARE TESTING ********************
USE test_rpl;
CREATE TABLE t1 (a int auto_increment not null, b char(254), PRIMARY KEY(a)) ENGINE=innodb;
CREATE TABLE t2 (a int auto_increment not null, b char(254), PRIMARY KEY(a)) ENGINE=innodb;
INSERT INTO t1 VALUES(1, 't1, text 1');
INSERT INTO t1 VALUES(2, 't1, text 2');
INSERT INTO t2 VALUES(1, 't2, text 1');

******************** DELETE ********************
DELETE FROM t1 WHERE a = 1;
DELETE FROM t2 WHERE b <> UUID();
==========MASTER==========
SELECT COUNT(*) FROM t1;
COUNT(*)
1
SELECT * FROM t1 ORDER BY a;
a	b
2	t1, text 2
SELECT COUNT(*) FROM t2;
COUNT(*)
0
SELECT * FROM t2 ORDER BY a;
a	b
==========SLAVE===========
USE test_rpl;
SELECT COUNT(*) FROM t1;
COUNT(*)
1
SELECT * FROM t1 ORDER BY a;
a	b
2	t1, text 2
SELECT COUNT(*) FROM t2;
COUNT(*)
0
SELECT * FROM t2 ORDER BY a;
a	b
DELETE FROM t1;
DELETE FROM t2;

******************** INSERT ********************
INSERT INTO t1 VALUES(1, 't1, text 1');
INSERT INTO t1 VALUES(2, UUID());
INSERT INTO t2 SELECT * FROM t1;
INSERT INTO t2 VALUES (1, 't1, text 1') ON DUPLICATE KEY UPDATE b = 't2, text 1';
DELETE FROM t1 WHERE a = 2;
DELETE FROM t2 WHERE a = 2;
==========MASTER==========
SELECT COUNT(*) FROM t1;
COUNT(*)
1
SELECT * FROM t1 ORDER BY a;
a	b
1	t1, text 1
SELECT COUNT(*) FROM t2;
COUNT(*)
1
SELECT * FROM t2 ORDER BY a;
a	b
1	t2, text 1
==========SLAVE===========
USE test_rpl;
SELECT COUNT(*) FROM t1;
COUNT(*)
1
SELECT * FROM t1 ORDER BY a;
a	b
1	t1, text 1
SELECT COUNT(*) FROM t2;
COUNT(*)
1
SELECT * FROM t2 ORDER BY a;
a	b
1	t2, text 1
DELETE FROM t1;
DELETE FROM t2;

******************** LOAD DATA INFILE ********************
LOAD DATA INFILE 'MYSQLTEST_VARDIR/std_data/rpl_mixed.dat' INTO TABLE t1 FIELDS TERMINATED BY '|' ;
SELECT * FROM t1 ORDER BY a;
a	b
10	line A
20	line B
30	line C
==========MASTER==========
SELECT COUNT(*) FROM t1;
COUNT(*)
3
SELECT * FROM t1 ORDER BY a;
a	b
10	line A
20	line B
30	line C
SELECT COUNT(*) FROM t2;
COUNT(*)
0
SELECT * FROM t2 ORDER BY a;
a	b
==========SLAVE===========
USE test_rpl;
SELECT COUNT(*) FROM t1;
COUNT(*)
3
SELECT * FROM t1 ORDER BY a;
a	b
10	line A
20	line B
30	line C
SELECT COUNT(*) FROM t2;
COUNT(*)
0
SELECT * FROM t2 ORDER BY a;
a	b
DELETE FROM t1;
DELETE FROM t2;

******************** REPLACE ********************
INSERT INTO t1 VALUES(1, 't1, text 1');
INSERT INTO t1 VALUES(2, 't1, text 2');
INSERT INTO t1 VALUES(3, 't1, text 3');
REPLACE INTO t1 VALUES(1, 't1, text 11');
REPLACE INTO t1 VALUES(2, UUID());
REPLACE INTO t1 SET a=3, b='t1, text 33';
DELETE FROM t1 WHERE a = 2;
==========MASTER==========
SELECT COUNT(*) FROM t1;
COUNT(*)
2
SELECT * FROM t1 ORDER BY a;
a	b
1	t1, text 11
3	t1, text 33
SELECT COUNT(*) FROM t2;
COUNT(*)
0
SELECT * FROM t2 ORDER BY a;
a	b
==========SLAVE===========
USE test_rpl;
SELECT COUNT(*) FROM t1;
COUNT(*)
2
SELECT * FROM t1 ORDER BY a;
a	b
1	t1, text 11
3	t1, text 33
SELECT COUNT(*) FROM t2;
COUNT(*)
0
SELECT * FROM t2 ORDER BY a;
a	b
DELETE FROM t1;
DELETE FROM t2;

******************** SELECT ********************
INSERT INTO t1 VALUES(1, 't1, text 1');
SELECT * FROM t1 WHERE b <> UUID() ORDER BY a;
a	b
1	t1, text 1
DELETE FROM t1;
DELETE FROM t2;

******************** JOIN ********************
INSERT INTO t1 VALUES(1, 'CCC');
INSERT INTO t1 VALUES(2, 'DDD');
INSERT INTO t2 VALUES(1, 'DDD');
INSERT INTO t2 VALUES(2, 'CCC');
SELECT * FROM t1 LEFT JOIN  t2 ON t1.a = t2.a ORDER BY t1.a,t2.a;
a	b	a	b
1	CCC	1	DDD
2	DDD	2	CCC
SELECT * FROM t1 INNER JOIN  t2 ON t1.b = t2.b ORDER BY t1.a,t2.a;
a	b	a	b
1	CCC	2	CCC
2	DDD	1	DDD
DELETE FROM t1;
DELETE FROM t2;

******************** UNION ********************
INSERT INTO t1 VALUES(1, 't1, text 1');
INSERT INTO t2 VALUES(1, 't2, text 1');
SELECT * FROM t1 UNION SELECT * FROM t2 WHERE t2.b <> UUID();
a	b
1	t1, text 1
1	t2, text 1
DELETE FROM t1;
DELETE FROM t2;

******************** TRUNCATE ********************
INSERT INTO t1 VALUES(1, 't1, text 1');
==========MASTER==========
SELECT COUNT(*) FROM t1;
COUNT(*)
1
SELECT * FROM t1 ORDER BY a;
a	b
1	t1, text 1
SELECT COUNT(*) FROM t2;
COUNT(*)
0
SELECT * FROM t2 ORDER BY a;
a	b
==========SLAVE===========
USE test_rpl;
SELECT COUNT(*) FROM t1;
COUNT(*)
1
SELECT * FROM t1 ORDER BY a;
a	b
1	t1, text 1
SELECT COUNT(*) FROM t2;
COUNT(*)
0
SELECT * FROM t2 ORDER BY a;
a	b
TRUNCATE t1;
==========MASTER==========
SELECT COUNT(*) FROM t1;
COUNT(*)
0
SELECT * FROM t1 ORDER BY a;
a	b
SELECT COUNT(*) FROM t2;
COUNT(*)
0
SELECT * FROM t2 ORDER BY a;
a	b
==========SLAVE===========
USE test_rpl;
SELECT COUNT(*) FROM t1;
COUNT(*)
0
SELECT * FROM t1 ORDER BY a;
a	b
SELECT COUNT(*) FROM t2;
COUNT(*)
0
SELECT * FROM t2 ORDER BY a;
a	b
DELETE FROM t1;
DELETE FROM t2;

******************** UPDATE ********************
INSERT INTO t1 VALUES(1, 't1, text 1');
INSERT INTO t2 VALUES(1, 't2, text 1');
UPDATE t1 SET b = 't1, text 1 updated' WHERE a = 1;
==========MASTER==========
SELECT COUNT(*) FROM t1;
COUNT(*)
1
SELECT * FROM t1 ORDER BY a;
a	b
1	t1, text 1 updated
SELECT COUNT(*) FROM t2;
COUNT(*)
1
SELECT * FROM t2 ORDER BY a;
a	b
1	t2, text 1
==========SLAVE===========
USE test_rpl;
SELECT COUNT(*) FROM t1;
COUNT(*)
1
SELECT * FROM t1 ORDER BY a;
a	b
1	t1, text 1 updated
SELECT COUNT(*) FROM t2;
COUNT(*)
1
SELECT * FROM t2 ORDER BY a;
a	b
1	t2, text 1
UPDATE t1, t2 SET t1.b = 'test', t2.b = 'test';
==========MASTER==========
SELECT COUNT(*) FROM t1;
COUNT(*)
1
SELECT * FROM t1 ORDER BY a;
a	b
1	test
SELECT COUNT(*) FROM t2;
COUNT(*)
1
SELECT * FROM t2 ORDER BY a;
a	b
1	test
==========SLAVE===========
USE test_rpl;
SELECT COUNT(*) FROM t1;
COUNT(*)
1
SELECT * FROM t1 ORDER BY a;
a	b
1	test
SELECT COUNT(*) FROM t2;
COUNT(*)
1
SELECT * FROM t2 ORDER BY a;
a	b
1	test
DELETE FROM t1;
DELETE FROM t2;

******************** DESCRIBE ********************
DESCRIBE t1;
Field	Type	Null	Key	Default	Extra
a	int(11)	NO	PRI	NULL	auto_increment
b	char(254)	YES		NULL	
DESCRIBE t2 b;
Field	Type	Null	Key	Default	Extra
b	char(254)	YES		NULL	

******************** USE ********************
USE test_rpl;

******************** TRANSACTION ********************
START TRANSACTION;
INSERT INTO t1 VALUES (1, 'start');
COMMIT;
==========MASTER==========
SELECT COUNT(*) FROM t1;
COUNT(*)
1
SELECT * FROM t1 ORDER BY a;
a	b
1	start
SELECT COUNT(*) FROM t2;
COUNT(*)
0
SELECT * FROM t2 ORDER BY a;
a	b
==========SLAVE===========
USE test_rpl;
SELECT COUNT(*) FROM t1;
COUNT(*)
1
SELECT * FROM t1 ORDER BY a;
a	b
1	start
SELECT COUNT(*) FROM t2;
COUNT(*)
0
SELECT * FROM t2 ORDER BY a;
a	b
START TRANSACTION;
INSERT INTO t1 VALUES (2, 'rollback');
ROLLBACK;
==========MASTER==========
SELECT COUNT(*) FROM t1;
COUNT(*)
1
SELECT * FROM t1 ORDER BY a;
a	b
1	start
SELECT COUNT(*) FROM t2;
COUNT(*)
0
SELECT * FROM t2 ORDER BY a;
a	b
==========SLAVE===========
USE test_rpl;
SELECT COUNT(*) FROM t1;
COUNT(*)
1
SELECT * FROM t1 ORDER BY a;
a	b
1	start
SELECT COUNT(*) FROM t2;
COUNT(*)
0
SELECT * FROM t2 ORDER BY a;
a	b
START TRANSACTION;
INSERT INTO t1 VALUES (3, 'before savepoint s1');
SAVEPOINT s1;
INSERT INTO t1 VALUES (4, 'after savepoint s1');
ROLLBACK TO SAVEPOINT s1;
==========MASTER==========
SELECT COUNT(*) FROM t1;
COUNT(*)
2
SELECT * FROM t1 ORDER BY a;
a	b
1	start
3	before savepoint s1
SELECT COUNT(*) FROM t2;
COUNT(*)
0
SELECT * FROM t2 ORDER BY a;
a	b
==========SLAVE===========
USE test_rpl;
SELECT COUNT(*) FROM t1;
COUNT(*)
1
SELECT * FROM t1 ORDER BY a;
a	b
1	start
SELECT COUNT(*) FROM t2;
COUNT(*)
0
SELECT * FROM t2 ORDER BY a;
a	b
START TRANSACTION;
INSERT INTO t1 VALUES (5, 'before savepoint s2');
SAVEPOINT s2;
INSERT INTO t1 VALUES (6, 'after savepoint s2');
INSERT INTO t1 VALUES (7, CONCAT('with UUID() ',UUID()));
RELEASE SAVEPOINT s2;
COMMIT;
DELETE FROM t1 WHERE a = 7;
==========MASTER==========
SELECT COUNT(*) FROM t1;
COUNT(*)
4
SELECT * FROM t1 ORDER BY a;
a	b
1	start
3	before savepoint s1
5	before savepoint s2
6	after savepoint s2
SELECT COUNT(*) FROM t2;
COUNT(*)
0
SELECT * FROM t2 ORDER BY a;
a	b
==========SLAVE===========
USE test_rpl;
SELECT COUNT(*) FROM t1;
COUNT(*)
4
SELECT * FROM t1 ORDER BY a;
a	b
1	start
3	before savepoint s1
5	before savepoint s2
6	after savepoint s2
SELECT COUNT(*) FROM t2;
COUNT(*)
0
SELECT * FROM t2 ORDER BY a;
a	b
DELETE FROM t1;
DELETE FROM t2;

******************** LOCK TABLES ********************
LOCK TABLES t1 READ , t2 READ;
UNLOCK TABLES;

******************** TRANSACTION ISOLATION LEVEL ********************
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;

******************** CREATE USER ********************
CREATE USER 'user_test_rpl'@'localhost' IDENTIFIED BY PASSWORD '*1111111111111111111111111111111111111111';
==========MASTER==========
SELECT host, user, password, select_priv FROM mysql.user WHERE user LIKE 'user_test_rpl%';
host	user	password	select_priv
localhost	user_test_rpl	*1111111111111111111111111111111111111111	N
==========SLAVE===========
USE test_rpl;
SELECT host, user, password, select_priv FROM mysql.user WHERE user LIKE 'user_test_rpl%';
host	user	password	select_priv
localhost	user_test_rpl	*1111111111111111111111111111111111111111	N

******************** GRANT ********************
GRANT SELECT ON *.* TO 'user_test_rpl'@'localhost';
==========MASTER==========
SELECT host, user, password, select_priv FROM mysql.user WHERE user LIKE 'user_test_rpl%';
host	user	password	select_priv
localhost	user_test_rpl	*1111111111111111111111111111111111111111	Y
==========SLAVE===========
USE test_rpl;
SELECT host, user, password, select_priv FROM mysql.user WHERE user LIKE 'user_test_rpl%';
host	user	password	select_priv
localhost	user_test_rpl	*1111111111111111111111111111111111111111	Y

******************** REVOKE ********************
REVOKE SELECT ON *.* FROM 'user_test_rpl'@'localhost';
==========MASTER==========
SELECT host, user, password, select_priv FROM mysql.user WHERE user LIKE 'user_test_rpl%';
host	user	password	select_priv
localhost	user_test_rpl	*1111111111111111111111111111111111111111	N
==========SLAVE===========
USE test_rpl;
SELECT host, user, password, select_priv FROM mysql.user WHERE user LIKE 'user_test_rpl%';
host	user	password	select_priv
localhost	user_test_rpl	*1111111111111111111111111111111111111111	N

******************** SET PASSWORD ********************
SET PASSWORD FOR 'user_test_rpl'@'localhost' = '*0000000000000000000000000000000000000000';
==========MASTER==========
SELECT host, user, password, select_priv FROM mysql.user WHERE user LIKE 'user_test_rpl%';
host	user	password	select_priv
localhost	user_test_rpl	*0000000000000000000000000000000000000000	N
==========SLAVE===========
USE test_rpl;
SELECT host, user, password, select_priv FROM mysql.user WHERE user LIKE 'user_test_rpl%';
host	user	password	select_priv
localhost	user_test_rpl	*0000000000000000000000000000000000000000	N

******************** RENAME USER ********************
RENAME USER 'user_test_rpl'@'localhost' TO 'user_test_rpl_2'@'localhost';
==========MASTER==========
SELECT host, user, password, select_priv FROM mysql.user WHERE user LIKE 'user_test_rpl%';
host	user	password	select_priv
localhost	user_test_rpl_2	*0000000000000000000000000000000000000000	N
==========SLAVE===========
USE test_rpl;
SELECT host, user, password, select_priv FROM mysql.user WHERE user LIKE 'user_test_rpl%';
host	user	password	select_priv
localhost	user_test_rpl_2	*0000000000000000000000000000000000000000	N

******************** DROP USER ********************
DROP USER 'user_test_rpl_2'@'localhost';
==========MASTER==========
SELECT host, user, password, select_priv FROM mysql.user WHERE user LIKE 'user_test_rpl%';
host	user	password	select_priv
==========SLAVE===========
USE test_rpl;
SELECT host, user, password, select_priv FROM mysql.user WHERE user LIKE 'user_test_rpl%';
host	user	password	select_priv
INSERT INTO t1 VALUES(100, 'test');

******************** ANALYZE ********************
ANALYZE TABLE t1;
Table	Op	Msg_type	Msg_text
test_rpl.t1	analyze	status	OK

******************** CHECK TABLE ********************
CHECK TABLE t1;
Table	Op	Msg_type	Msg_text
test_rpl.t1	check	status	OK

******************** CHECKSUM TABLE ********************
CHECKSUM TABLE t1;
Table	Checksum
test_rpl.t1	1837058639

******************** OPTIMIZE TABLE ********************
OPTIMIZE TABLE t1;
Table	Op	Msg_type	Msg_text
test_rpl.t1	optimize	note	Table does not support optimize, doing recreate + analyze instead
test_rpl.t1	optimize	status	OK

******************** REPAIR TABLE ********************
REPAIR TABLE t1;
Table	Op	Msg_type	Msg_text
test_rpl.t1	repair	note	The storage engine for the table doesn't support repair

******************** SET VARIABLE ********************
SET @test_rpl_var = 1;
SHOW VARIABLES LIKE 'test_rpl_var';
Variable_name	Value

******************** SHOW ********************
==========MASTER==========
SHOW DATABASES LIKE 'test_rpl%';
Database (test_rpl%)
test_rpl
==========SLAVE===========
SHOW DATABASES LIKE 'test_rpl%';
Database (test_rpl%)
test_rpl

******************** PROCEDURE ********************
CREATE PROCEDURE p1 ()
BEGIN
UPDATE t1 SET b = 'test' WHERE a = 201;
END|
CREATE PROCEDURE p2 ()
BEGIN
UPDATE t1 SET b = UUID() WHERE a = 202;
END|
INSERT  INTO t1 VALUES(201, 'test 201');
CALL p1();
INSERT  INTO t1 VALUES(202, 'test 202');
CALL p2();
DELETE FROM t1 WHERE a = 202;
==========MASTER==========
SELECT COUNT(*) FROM t1;
COUNT(*)
2
SELECT * FROM t1 ORDER BY a;
a	b
100	test
201	test
SELECT COUNT(*) FROM t2;
COUNT(*)
0
SELECT * FROM t2 ORDER BY a;
a	b
==========SLAVE===========
USE test_rpl;
SELECT COUNT(*) FROM t1;
COUNT(*)
2
SELECT * FROM t1 ORDER BY a;
a	b
100	test
201	test
SELECT COUNT(*) FROM t2;
COUNT(*)
0
SELECT * FROM t2 ORDER BY a;
a	b
ALTER PROCEDURE p1 COMMENT 'p1';
DROP PROCEDURE p1;
DROP PROCEDURE p2;
DELETE FROM t1;
DELETE FROM t2;

******************** TRIGGER ********************
CREATE TRIGGER tr1 BEFORE INSERT ON t1
FOR EACH ROW BEGIN
INSERT INTO t2 SET a = NEW.a, b = NEW.b;
END|
INSERT INTO t1 VALUES (1, 'test');
==========MASTER==========
SELECT COUNT(*) FROM t1;
COUNT(*)
1
SELECT * FROM t1 ORDER BY a;
a	b
1	test
SELECT COUNT(*) FROM t2;
COUNT(*)
1
SELECT * FROM t2 ORDER BY a;
a	b
1	test
==========SLAVE===========
USE test_rpl;
SELECT COUNT(*) FROM t1;
COUNT(*)
1
SELECT * FROM t1 ORDER BY a;
a	b
1	test
SELECT COUNT(*) FROM t2;
COUNT(*)
1
SELECT * FROM t2 ORDER BY a;
a	b
1	test
DELETE FROM t1;
DELETE FROM t2;
DROP TRIGGER tr1;


******************** EVENTS ********************
GRANT EVENT ON *.* TO 'root'@'localhost';
INSERT INTO t1 VALUES(1, 'test1');
CREATE EVENT e1 ON SCHEDULE EVERY '1' SECOND COMMENT 'e_second_comment' DO DELETE FROM t1;
==========MASTER==========
SHOW EVENTS;
Db	Name	Definer	Time zone	Type	Execute at	Interval value	Interval field	Starts	Ends	Status	Originator	character_set_client	collation_connection	Database Collation
test_rpl	e1	root@localhost	SYSTEM	RECURRING	NULL	1	#	#	NULL	ENABLED	1	latin1	latin1_swedish_ci	latin1_swedish_ci
==========SLAVE===========
USE test_rpl;
SHOW EVENTS;
Db	Name	Definer	Time zone	Type	Execute at	Interval value	Interval field	Starts	Ends	Status	Originator	character_set_client	collation_connection	Database Collation
test_rpl	e1	root@localhost	SYSTEM	RECURRING	NULL	1	#	#	NULL	SLAVESIDE_DISABLED	1	latin1	latin1_swedish_ci	latin1_swedish_ci
==========MASTER==========
SELECT COUNT(*) FROM t1;
COUNT(*)
1
SELECT * FROM t1 ORDER BY a;
a	b
1	test1
SELECT COUNT(*) FROM t2;
COUNT(*)
0
SELECT * FROM t2 ORDER BY a;
a	b
==========SLAVE===========
USE test_rpl;
SELECT COUNT(*) FROM t1;
COUNT(*)
1
SELECT * FROM t1 ORDER BY a;
a	b
1	test1
SELECT COUNT(*) FROM t2;
COUNT(*)
0
SELECT * FROM t2 ORDER BY a;
a	b
==========MASTER==========
SELECT COUNT(*) FROM t1;
COUNT(*)
1
SELECT * FROM t1 ORDER BY a;
a	b
1	test1
SELECT COUNT(*) FROM t2;
COUNT(*)
0
SELECT * FROM t2 ORDER BY a;
a	b
==========SLAVE===========
USE test_rpl;
SELECT COUNT(*) FROM t1;
COUNT(*)
1
SELECT * FROM t1 ORDER BY a;
a	b
1	test1
SELECT COUNT(*) FROM t2;
COUNT(*)
0
SELECT * FROM t2 ORDER BY a;
a	b
ALTER EVENT e1 RENAME TO e2;
==========MASTER==========
SHOW EVENTS;
Db	Name	Definer	Time zone	Type	Execute at	Interval value	Interval field	Starts	Ends	Status	Originator	character_set_client	collation_connection	Database Collation
test_rpl	e2	root@localhost	SYSTEM	RECURRING	NULL	1	#	#	NULL	ENABLED	1	latin1	latin1_swedish_ci	latin1_swedish_ci
==========SLAVE===========
USE test_rpl;
SHOW EVENTS;
Db	Name	Definer	Time zone	Type	Execute at	Interval value	Interval field	Starts	Ends	Status	Originator	character_set_client	collation_connection	Database Collation
test_rpl	e2	@	SYSTEM	RECURRING	NULL	1	#	#	NULL	SLAVESIDE_DISABLED	1	latin1	latin1_swedish_ci	latin1_swedish_ci
==========MASTER==========
SELECT COUNT(*) FROM t1;
COUNT(*)
1
SELECT * FROM t1 ORDER BY a;
a	b
1	test1
SELECT COUNT(*) FROM t2;
COUNT(*)
0
SELECT * FROM t2 ORDER BY a;
a	b
==========SLAVE===========
USE test_rpl;
SELECT COUNT(*) FROM t1;
COUNT(*)
1
SELECT * FROM t1 ORDER BY a;
a	b
1	test1
SELECT COUNT(*) FROM t2;
COUNT(*)
0
SELECT * FROM t2 ORDER BY a;
a	b
DROP EVENT e2;
==========MASTER==========
SHOW EVENTS;
Db	Name	Definer	Time zone	Type	Execute at	Interval value	Interval field	Starts	Ends	Status	Originator	character_set_client	collation_connection	Database Collation
==========SLAVE===========
USE test_rpl;
SHOW EVENTS;
Db	Name	Definer	Time zone	Type	Execute at	Interval value	Interval field	Starts	Ends	Status	Originator	character_set_client	collation_connection	Database Collation
DELETE FROM t1;
DELETE FROM t2;

******************** VIEWS ********************
INSERT INTO t1 VALUES(1, 'test1');
INSERT INTO t1 VALUES(2, 'test2');
CREATE VIEW v1 AS SELECT * FROM t1 WHERE a = 1;
CREATE VIEW v2 AS SELECT * FROM t1 WHERE b <> UUID();
==========MASTER==========
SHOW CREATE VIEW v1;
View	Create View	character_set_client	collation_connection
v1	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a`,`t1`.`b` AS `b` from `t1` where (`t1`.`a` = 1)	latin1	latin1_swedish_ci
SELECT * FROM v1 ORDER BY a;
a	b
1	test1
==========SLAVE===========
USE test_rpl;
SHOW CREATE VIEW v1;
View	Create View	character_set_client	collation_connection
v1	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a`,`t1`.`b` AS `b` from `t1` where (`t1`.`a` = 1)	latin1	latin1_swedish_ci
SELECT * FROM v1 ORDER BY a;
a	b
1	test1
ALTER VIEW v1 AS SELECT * FROM t1 WHERE a = 2;
==========MASTER==========
SHOW CREATE VIEW v1;
View	Create View	character_set_client	collation_connection
v1	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a`,`t1`.`b` AS `b` from `t1` where (`t1`.`a` = 2)	latin1	latin1_swedish_ci
SELECT * FROM v1 ORDER BY a;
a	b
2	test2
==========SLAVE===========
USE test_rpl;
SHOW CREATE VIEW v1;
View	Create View	character_set_client	collation_connection
v1	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a`,`t1`.`b` AS `b` from `t1` where (`t1`.`a` = 2)	latin1	latin1_swedish_ci
SELECT * FROM v1 ORDER BY a;
a	b
2	test2
DROP VIEW v1;
DROP VIEW v2;
DELETE FROM t1;
DELETE FROM t2;


******************** SHOW BINLOG EVENTS ********************
show binlog events from 1;
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
master-bin.000001	#	Format_desc	1	#	Server ver: #
master-bin.000001	#	Query	1	#	CREATE DATABASE test_rpl
master-bin.000001	#	Query	1	#	use `test_rpl`; CREATE TABLE t1 (a int auto_increment not null, b char(254), PRIMARY KEY(a)) ENGINE=innodb
master-bin.000001	#	Query	1	#	use `test_rpl`; CREATE TABLE t2 (a int auto_increment not null, b char(254), PRIMARY KEY(a)) ENGINE=innodb
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT INTO t1 VALUES(1, 't1, text 1')
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT INTO t1 VALUES(2, 't1, text 2')
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT INTO t2 VALUES(1, 't2, text 1')
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t1 WHERE a = 1
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Table_map	1	#	table_id: # (test_rpl.t2)
master-bin.000001	#	Delete_rows	1	#	table_id: # flags: STMT_END_F
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t1
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t2
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT INTO t1 VALUES(1, 't1, text 1')
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Table_map	1	#	table_id: # (test_rpl.t1)
master-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT INTO t2 SELECT * FROM t1
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT INTO t2 VALUES (1, 't1, text 1') ON DUPLICATE KEY UPDATE b = 't2, text 1'
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t1 WHERE a = 2
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t2 WHERE a = 2
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t1
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t2
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Begin_load_query	1	#	;file_id=#;block_len=#
master-bin.000001	#	Execute_load_query	1	#	use `test_rpl`; LOAD DATA INFILE 'MYSQLTEST_VARDIR/std_data/rpl_mixed.dat' INTO TABLE t1 FIELDS TERMINATED BY '|' ;file_id=#
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t1
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t2
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT INTO t1 VALUES(1, 't1, text 1')
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT INTO t1 VALUES(2, 't1, text 2')
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT INTO t1 VALUES(3, 't1, text 3')
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; REPLACE INTO t1 VALUES(1, 't1, text 11')
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Table_map	1	#	table_id: # (test_rpl.t1)
master-bin.000001	#	Update_rows	1	#	table_id: # flags: STMT_END_F
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; REPLACE INTO t1 SET a=3, b='t1, text 33'
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t1 WHERE a = 2
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t1
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t2
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT INTO t1 VALUES(1, 't1, text 1')
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t1
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t2
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT INTO t1 VALUES(1, 'CCC')
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT INTO t1 VALUES(2, 'DDD')
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT INTO t2 VALUES(1, 'DDD')
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT INTO t2 VALUES(2, 'CCC')
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t1
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t2
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT INTO t1 VALUES(1, 't1, text 1')
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT INTO t2 VALUES(1, 't2, text 1')
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t1
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t2
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT INTO t1 VALUES(1, 't1, text 1')
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; TRUNCATE t1
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t1
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t2
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT INTO t1 VALUES(1, 't1, text 1')
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT INTO t2 VALUES(1, 't2, text 1')
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; UPDATE t1 SET b = 't1, text 1 updated' WHERE a = 1
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; UPDATE t1, t2 SET t1.b = 'test', t2.b = 'test'
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t1
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t2
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT INTO t1 VALUES (1, 'start')
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT INTO t1 VALUES (3, 'before savepoint s1')
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT INTO t1 VALUES (5, 'before savepoint s2')
master-bin.000001	#	Query	1	#	use `test_rpl`; SAVEPOINT s2
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT INTO t1 VALUES (6, 'after savepoint s2')
master-bin.000001	#	Table_map	1	#	table_id: # (test_rpl.t1)
master-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t1 WHERE a = 7
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t1
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t2
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	use `test_rpl`; CREATE USER 'user_test_rpl'@'localhost' IDENTIFIED BY PASSWORD '*1111111111111111111111111111111111111111'
master-bin.000001	#	Query	1	#	use `test_rpl`; GRANT SELECT ON *.* TO 'user_test_rpl'@'localhost'
master-bin.000001	#	Query	1	#	use `test_rpl`; REVOKE SELECT ON *.* FROM 'user_test_rpl'@'localhost'
master-bin.000001	#	Query	1	#	use `test_rpl`; SET PASSWORD FOR 'user_test_rpl'@'localhost'='*0000000000000000000000000000000000000000'
master-bin.000001	#	Query	1	#	use `test_rpl`; RENAME USER 'user_test_rpl'@'localhost' TO 'user_test_rpl_2'@'localhost'
master-bin.000001	#	Query	1	#	use `test_rpl`; DROP USER 'user_test_rpl_2'@'localhost'
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT INTO t1 VALUES(100, 'test')
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	use `test_rpl`; ANALYZE TABLE t1
master-bin.000001	#	Query	1	#	use `test_rpl`; OPTIMIZE TABLE t1
master-bin.000001	#	Query	1	#	use `test_rpl`; REPAIR TABLE t1
master-bin.000001	#	Query	1	#	use `test_rpl`; CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`()
BEGIN
UPDATE t1 SET b = 'test' WHERE a = 201;
END
master-bin.000001	#	Query	1	#	use `test_rpl`; CREATE DEFINER=`root`@`localhost` PROCEDURE `p2`()
BEGIN
UPDATE t1 SET b = UUID() WHERE a = 202;
END
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT  INTO t1 VALUES(201, 'test 201')
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; UPDATE t1 SET b = 'test' WHERE a = 201
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT  INTO t1 VALUES(202, 'test 202')
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Table_map	1	#	table_id: # (test_rpl.t1)
master-bin.000001	#	Update_rows	1	#	table_id: # flags: STMT_END_F
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t1 WHERE a = 202
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	use `test_rpl`; ALTER PROCEDURE p1 COMMENT 'p1'
master-bin.000001	#	Query	1	#	use `test_rpl`; DROP PROCEDURE p1
master-bin.000001	#	Query	1	#	use `test_rpl`; DROP PROCEDURE p2
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t1
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t2
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	use `test_rpl`; CREATE DEFINER=`root`@`localhost` TRIGGER tr1 BEFORE INSERT ON t1
FOR EACH ROW BEGIN
INSERT INTO t2 SET a = NEW.a, b = NEW.b;
END
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Table_map	1	#	table_id: # (test_rpl.t1)
master-bin.000001	#	Table_map	1	#	table_id: # (test_rpl.t2)
master-bin.000001	#	Write_rows	1	#	table_id: #
master-bin.000001	#	Write_rows	1	#	table_id: # flags: STMT_END_F
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t1
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t2
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	use `test_rpl`; DROP TRIGGER tr1
master-bin.000001	#	Query	1	#	use `test_rpl`; GRANT EVENT ON *.* TO 'root'@'localhost'
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT INTO t1 VALUES(1, 'test1')
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	use `test_rpl`; CREATE DEFINER=`root`@`localhost` EVENT e1 ON SCHEDULE EVERY '1' SECOND COMMENT 'e_second_comment' DO DELETE FROM t1
master-bin.000001	#	Query	1	#	use `test_rpl`; ALTER EVENT e1 RENAME TO e2
master-bin.000001	#	Query	1	#	use `test_rpl`; DROP EVENT e2
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t1
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t2
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT INTO t1 VALUES(1, 'test1')
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; INSERT INTO t1 VALUES(2, 'test2')
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	use `test_rpl`; CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS SELECT * FROM t1 WHERE a = 1
master-bin.000001	#	Query	1	#	use `test_rpl`; CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS SELECT * FROM t1 WHERE b <> UUID()
master-bin.000001	#	Query	1	#	use `test_rpl`; ALTER ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS SELECT * FROM t1 WHERE a = 2
master-bin.000001	#	Query	1	#	use `test_rpl`; DROP VIEW v1
master-bin.000001	#	Query	1	#	use `test_rpl`; DROP VIEW v2
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t1
master-bin.000001	#	Xid	1	#	#
master-bin.000001	#	Query	1	#	BEGIN
master-bin.000001	#	Query	1	#	use `test_rpl`; DELETE FROM t2
master-bin.000001	#	Xid	1	#	#
drop database test_rpl;
