SET sql_log_bin = 0; SET sql_log_bin = 1; include/master-slave.inc [connection master] connection slave; reset master; connection master; DROP TABLE IF EXISTS t1; CREATE TEMPORARY TABLE t1 (a char(1)); INSERT INTO t1 VALUES ('a'); connection slave; include/stop_slave.inc include/start_slave.inc connection master; INSERT INTO t1 VALUES ('b'); connection slave; connection master; DROP TABLE IF EXISTS t1; CREATE TEMPORARY TABLE `t1`(`a` tinyint,`b` char(1))engine=myisam; INSERT IGNORE INTO `t1` set `a`=128,`b`='128'; Warnings: Warning 1264 Out of range value for column 'a' at row 1 Warning 1265 Data truncated for column 'b' at row 1 connection slave; include/stop_slave.inc include/start_slave.inc connection master; INSERT IGNORE INTO `t1` set `a`=128,`b`='128'; Warnings: Warning 1264 Out of range value for column 'a' at row 1 Warning 1265 Data truncated for column 'b' at row 1 connection slave; connection master; DROP TABLE t1; connection slave; connection master; create user zedjzlcsjhd@localhost; GRANT ALL on test.* to zedjzlcsjhd@localhost; connect con1,localhost,root,,; connect con2,localhost,root,,; connect con3,localhost,zedjzlcsjhd,,; connection con3; SET @save_select_limit=@@session.sql_select_limit; SET @@session.sql_select_limit=10, @@session.pseudo_thread_id=100; ERROR 42000: Access denied; you need (at least one of) the SUPER, BINLOG REPLAY privilege(s) for this operation SELECT @@session.sql_select_limit = @save_select_limit; @@session.sql_select_limit = @save_select_limit 1 SET @@session.sql_select_limit=10, @@session.sql_log_bin=0; ERROR 42000: Access denied; you need (at least one of) the SUPER, BINLOG ADMIN privilege(s) for this operation SELECT @@session.sql_select_limit = @save_select_limit; @@session.sql_select_limit = @save_select_limit 1 connection con2; SET @save_conn_id= connection_id(); SET @@session.pseudo_thread_id=100; SET @@session.pseudo_thread_id=connection_id(); SET @@session.pseudo_thread_id=@save_conn_id; SET @@session.sql_log_bin=0; SET @@session.sql_log_bin=1; connection con3; drop table if exists t1,t2; create table t1(f int); create table t2(f int); insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); SELECT COUNT(*) FROM t1; COUNT(*) 10 connection con1; create temporary table t3(f int); insert into t3 select * from t1 where f<6; connection con2; create temporary table t3(f int); connection con1; insert into t2 select count(*) from t3; connection con2; insert into t3 select * from t1 where f>=4; connection con1; drop temporary table t3; connection con2; insert into t2 select count(*) from t3; drop temporary table t3; select * from t2 ORDER BY f; f 5 7 drop table t1, t2; drop user zedjzlcsjhd@localhost; use test; SET TIMESTAMP=1040323920; create table t1(f int); SET TIMESTAMP=1040323931; create table t2(f int); SET TIMESTAMP=1040323938; insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); SET TIMESTAMP=1040323945; SET @@session.pseudo_thread_id=1; create temporary table t3(f int); SET TIMESTAMP=1040323952; SET @@session.pseudo_thread_id=1; insert into t3 select * from t1 where f<6; SET TIMESTAMP=1040324145; SET @@session.pseudo_thread_id=2; create temporary table t3(f int); SET TIMESTAMP=1040324186; SET @@session.pseudo_thread_id=1; insert into t2 select count(*) from t3; SET TIMESTAMP=1040324200; SET @@session.pseudo_thread_id=2; insert into t3 select * from t1 where f>=4; SET TIMESTAMP=1040324211; SET @@session.pseudo_thread_id=1; drop temporary table t3; SET TIMESTAMP=1040324219; SET @@session.pseudo_thread_id=2; insert into t2 select count(*) from t3; SET TIMESTAMP=1040324224; SET @@session.pseudo_thread_id=2; drop temporary table t3; select * from t2 ORDER BY f; f 5 7 drop table t1,t2; create temporary table t3 (f int); connection slave; connection master; create temporary table t4 (f int); create table t5 (f int); connection slave; stop slave; connection master; insert into t5 select * from t4; connection slave; start slave; select * from t5 /* must be 1 after reconnection */; f connection master; drop temporary table t4; drop table t5; connection con1; set @@session.pseudo_thread_id=100; create temporary table t101 (id int); create temporary table t102 (id int); set @@session.pseudo_thread_id=200; create temporary table t201 (id int); create temporary table `t``201` (id int); create temporary table `#sql_not_user_table202` (id int); set @@session.pseudo_thread_id=300; create temporary table t301 (id int); create temporary table t302 (id int); create temporary table `#sql_not_user_table303` (id int); disconnect con1; connection master; create table t1(f int); insert into t1 values (1); connection slave; select * from t1 /* must be 1 */; f 1 connection master; drop table t1; connection slave; select * from t1; a 1 connection master; drop table t1; connection slave; include/stop_slave.inc connection master; include/rpl_reset.inc -- Bug#43748 -- make a user on the slave that can list but not kill system threads. connection slave; FLUSH PRIVILEGES; GRANT USAGE ON *.* TO user43748@127.0.0.1 IDENTIFIED BY 'meow'; GRANT PROCESS ON *.* TO user43748@127.0.0.1; -- try to KILL system-thread as that non-privileged user (on slave). connect cont43748,127.0.0.1,user43748,meow,"*NO-ONE*",$SLAVE_MYPORT,; connection cont43748; SELECT id INTO @id FROM information_schema.processlist WHERE user='system user' LIMIT 1; KILL @id; Got one of the listed errors disconnect cont43748; -- throw out test-user on slave. connection slave; DROP USER user43748@127.0.0.1; # # MDEV-10216: Assertion `strcmp(share->unique_file_name,filename) || # share->last_version' failed in myisam/mi_open.c:67: test_if_reopen # connection master; CREATE TEMPORARY TABLE t1(i INT PRIMARY KEY) ENGINE=MYISAM; INSERT INTO t1 VALUES(1); SELECT COUNT(*)=1 FROM t1; COUNT(*)=1 1 ALTER TABLE t1 RENAME t2; SELECT COUNT(*)=1 FROM t2; COUNT(*)=1 1 ALTER TABLE t2 RENAME t1; ALTER TABLE t1 DISABLE KEYS; ALTER TABLE t1 ENABLE KEYS; LOCK TABLES t1 WRITE; ALTER TABLE t1 RENAME t2; SELECT COUNT(*)=1 FROM t2; COUNT(*)=1 1 ALTER TABLE t2 RENAME t1; ALTER TABLE t1 DISABLE KEYS; ALTER TABLE t1 ENABLE KEYS; UNLOCK TABLES; LOCK TABLES t1 READ; ALTER TABLE t1 RENAME t2; SELECT COUNT(*)=1 FROM t2; COUNT(*)=1 1 ALTER TABLE t2 RENAME t1; ALTER TABLE t1 DISABLE KEYS; ALTER TABLE t1 ENABLE KEYS; UNLOCK TABLES; FLUSH TABLES WITH READ LOCK; ALTER TABLE t1 RENAME t2; SELECT COUNT(*)=1 FROM t2; COUNT(*)=1 1 ALTER TABLE t2 RENAME t1; ALTER TABLE t1 DISABLE KEYS; ALTER TABLE t1 ENABLE KEYS; UNLOCK TABLES; ALTER TABLE t1 RENAME t2, LOCK SHARED; ALTER TABLE t2 RENAME t1, LOCK EXCLUSIVE; DROP TABLE t1; # # MDEV-10320: NO-OP ALTER TABLE on temporary tables getting logged # under row binlog format # connection master; CREATE TEMPORARY TABLE t1(i INT PRIMARY KEY) ENGINE=MYISAM; ALTER TABLE t1; ALTER TABLE t1 ADD COLUMN IF NOT EXISTS I INT; Warnings: Note 1060 Duplicate column name 'I' DROP TABLE t1; End of 5.1 tests include/rpl_end.inc