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;
CREATE DATABASE test_ignore;
**** On Master ****
SHOW DATABASES;
Database
information_schema
mtr
mysql
test
test_ignore
USE test;
CREATE TABLE t1 (a INT, b INT);
SHOW TABLES;
Tables_in_test
t1
INSERT INTO t1 VALUES (1,1), (2,2);
USE test_ignore;
CREATE TABLE t2 (a INT, b INT);
SHOW TABLES;
Tables_in_test_ignore
t2
INSERT INTO t2 VALUES (3,3), (4,4);
show binlog events from <binlog_start>;
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
master-bin.000001	#	Query	#	#	use `test`; CREATE TABLE t1 (a INT, b INT)
master-bin.000001	#	Query	#	#	use `test`; BEGIN
master-bin.000001	#	Table_map	#	#	table_id: # (test.t1)
master-bin.000001	#	Write_rows	#	#	table_id: # flags: STMT_END_F
master-bin.000001	#	Query	#	#	use `test`; COMMIT
**** On Slave ****
SHOW DATABASES;
Database
information_schema
mtr
mysql
test
USE test;
SHOW TABLES;
Tables_in_test
t1
USE test_ignore;
ERROR 42000: Unknown database 'test_ignore'
DROP DATABASE test_ignore;
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;
CREATE TABLE t1 (a INT);
DELETE FROM t1;
INSERT INTO t1 VALUES (1),(2);
DELETE FROM t1 WHERE a = 0;
UPDATE t1 SET a=99 WHERE a = 0;
SHOW BINLOG EVENTS;
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
master-bin.000001	4	Format_desc	1	107	Server ver: SERVER_VERSION, Binlog ver: 4
master-bin.000001	107	Query	1	193	use `test`; CREATE TABLE t1 (a INT)
master-bin.000001	193	Query	1	261	use `test`; BEGIN
master-bin.000001	261	Table_map	1	302	table_id: # (test.t1)
master-bin.000001	302	Write_rows	1	341	table_id: # flags: STMT_END_F
master-bin.000001	341	Query	1	410	use `test`; COMMIT
DROP TABLE t1;
================ Test for BUG#17620 ================
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;
**** On Slave **** 
SET GLOBAL QUERY_CACHE_SIZE=0;
**** On Master **** 
CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES (1),(2),(3);
**** On Slave **** 
SET GLOBAL QUERY_CACHE_SIZE=16*1024*1024;
**** On Master **** 
INSERT INTO t1 VALUES (4),(5),(6);
**** On Slave **** 
SELECT * FROM t1;
a
1
2
3
4
5
6
**** On Master **** 
INSERT INTO t1 VALUES (7),(8),(9);
**** On Slave **** 
SELECT * FROM t1;
a
1
2
3
4
5
6
7
8
9
SET GLOBAL QUERY_CACHE_SIZE=0;
================ Test for BUG#22550 ================
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;
CREATE TABLE t1 (a BIT(1), b INT) ENGINE=MYISAM;
INSERT INTO t1 VALUES(1,2);
SELECT HEX(a),b FROM t1;
HEX(a)	b
1	2
SELECT HEX(a),b FROM t1;
HEX(a)	b
1	2
UPDATE t1 SET a=0 WHERE b=2;
SELECT HEX(a),b FROM t1;
HEX(a)	b
0	2
SELECT HEX(a),b FROM t1;
HEX(a)	b
0	2
DROP TABLE IF EXISTS t1;
================ Test for BUG#22583 ================
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;
**** On Master **** 
CREATE TABLE t1_myisam (k INT, a BIT(1), b BIT(9)) ENGINE=MYISAM;
CREATE TABLE t1_innodb (k INT, a BIT(1), b BIT(9)) ENGINE=INNODB;
CREATE TABLE t2_myisam (k INT, a BIT(1) NOT NULL, b BIT(4) NOT NULL) ENGINE=MYISAM;
CREATE TABLE t2_innodb (k INT, a BIT(1) NOT NULL, b BIT(4) NOT NULL) ENGINE=INNODB;
**** On Slave **** 
ALTER TABLE t1_myisam ENGINE=INNODB;
ALTER TABLE t1_innodb ENGINE=MYISAM;
ALTER TABLE t2_myisam ENGINE=INNODB;
ALTER TABLE t2_innodb ENGINE=MYISAM;
**** On Master **** 
INSERT INTO t1_myisam VALUES(1, b'0', 257);
INSERT INTO t1_myisam VALUES(2, b'1', 256);
INSERT INTO t1_innodb VALUES(1, b'0', 257);
INSERT INTO t1_innodb VALUES(2, b'1', 256);
SELECT k, HEX(a),HEX(b) FROM t1_myisam;
k	HEX(a)	HEX(b)
1	0	101
2	1	100
SELECT k, HEX(a),HEX(b) FROM t1_innodb;
k	HEX(a)	HEX(b)
1	0	101
2	1	100
INSERT INTO t2_myisam VALUES(1, b'0', 9);
INSERT INTO t2_myisam VALUES(2, b'1', 8);
INSERT INTO t2_innodb VALUES(1, b'0', 9);
INSERT INTO t2_innodb VALUES(2, b'1', 8);
SELECT k, HEX(a),HEX(b) FROM t2_myisam;
k	HEX(a)	HEX(b)
1	0	9
2	1	8
SELECT k, HEX(a),HEX(b) FROM t2_innodb;
k	HEX(a)	HEX(b)
1	0	9
2	1	8
**** On Slave **** 
SELECT k, HEX(a),HEX(b) FROM t1_myisam;
k	HEX(a)	HEX(b)
1	0	101
2	1	100
SELECT k, HEX(a),HEX(b) FROM t1_innodb;
k	HEX(a)	HEX(b)
1	0	101
2	1	100
SELECT k, HEX(a),HEX(b) FROM t2_myisam;
k	HEX(a)	HEX(b)
1	0	9
2	1	8
SELECT k, HEX(a),HEX(b) FROM t2_innodb;
k	HEX(a)	HEX(b)
1	0	9
2	1	8
**** On Master **** 
UPDATE t1_myisam SET a=0 WHERE k=2;
SELECT k, HEX(a),HEX(b) FROM t1_myisam;
k	HEX(a)	HEX(b)
1	0	101
2	0	100
UPDATE t1_innodb SET a=0 WHERE k=2;
SELECT k, HEX(a),HEX(b) FROM t1_innodb;
k	HEX(a)	HEX(b)
1	0	101
2	0	100
UPDATE t2_myisam SET a=0 WHERE k=2;
SELECT k, HEX(a),HEX(b) FROM t2_myisam;
k	HEX(a)	HEX(b)
1	0	9
2	0	8
UPDATE t2_innodb SET a=0 WHERE k=2;
SELECT k, HEX(a),HEX(b) FROM t2_innodb;
k	HEX(a)	HEX(b)
1	0	9
2	0	8
**** On Slave **** 
SELECT k, HEX(a),HEX(b) FROM t1_myisam;
k	HEX(a)	HEX(b)
1	0	101
2	0	100
SELECT k, HEX(a),HEX(b) FROM t1_innodb;
k	HEX(a)	HEX(b)
1	0	101
2	0	100
SELECT k, HEX(a),HEX(b) FROM t2_myisam;
k	HEX(a)	HEX(b)
1	0	9
2	0	8
SELECT k, HEX(a),HEX(b) FROM t2_innodb;
k	HEX(a)	HEX(b)
1	0	9
2	0	8
**** On Master **** 
DROP TABLE IF EXISTS t1_myisam, t1_innodb, t2_myisam, t2_innodb;
drop table if exists t1, t2;
CREATE TABLE `t1` (
`a` int(11) NOT NULL auto_increment,
`b` int(11) default NULL,
PRIMARY KEY  (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;
CREATE TABLE `t2` (
`a` int(11) NOT NULL auto_increment,
`b` int(11) default NULL,
PRIMARY KEY  (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;
insert into t1 values (1,1),(2,2);
insert into t2 values (1,1),(4,4);
UPDATE t2,t1 SET t2.a=t1.a+2;
ERROR 23000: Duplicate entry '3' for key 'PRIMARY'
select * from t2 /* must be (3,1), (4,4) */;
a	b
3	1
4	4
select * from t2 /* must be (3,1), (4,4) */;
a	b
3	1
4	4
drop table t1,t2;
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;
**** On Master ****
SET SESSION BINLOG_FORMAT=ROW;
CREATE TABLE t1 (a INT PRIMARY KEY, b SET('master','slave'));
INSERT INTO t1 VALUES (1,'master,slave'), (2,'master,slave');
**** On Slave ****
UPDATE t1 SET a = 5, b = 'slave' WHERE a = 1;
SELECT * FROM t1 ORDER BY a;
a	b
2	master,slave
5	slave
set @@global.slave_exec_mode= 'IDEMPOTENT';
**** On Master ****
UPDATE t1 SET a = 5, b = 'master' WHERE a = 1;
SELECT * FROM t1 ORDER BY a;
a	b
2	master,slave
5	master
**** On Slave ****
set @@global.slave_exec_mode= default;
Last_SQL_Error

SELECT * FROM t1 ORDER BY a;
a	b
2	master,slave
5	slave
DROP TABLE t1;
**** On Master ****
DROP TABLE t1;
