Loading mysql-test/r/lock_multi.result +34 −0 Original line number Diff line number Diff line Loading @@ -96,6 +96,40 @@ alter table t1 auto_increment=0; alter table t1 auto_increment=0; unlock tables; drop table t1; CREATE TABLE t1 ( a int(11) unsigned default NULL, b varchar(255) default NULL, UNIQUE KEY a (a), KEY b (b) ); INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3); CREATE TABLE t2 SELECT * FROM t1; CREATE TABLE t3 SELECT * FROM t1; # test altering of columns that multiupdate doesn't use # normal mode # PS mode # test altering of columns that multiupdate uses # normal mode # PS mode DROP TABLE t1, t2, t3; CREATE TABLE t1( a INT, b INT ); INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3), (4, 4); # 1. test regular tables # 1.1. test altering of columns that multiupdate doesn't use # 1.1.1. normal mode # 1.1.2. PS mode # 1.2. test altering of columns that multiupdate uses # 1.2.1. normal mode # 1.2.2. PS mode ALTER TABLE t1 ADD COLUMN a INT; # 2. test UNIONs # 2.1. test altering of columns that multiupdate doesn't use # 2.1.1. normal mode # 2.1.2. PS mode # 2.2. test altering of columns that multiupdate uses # 2.2.1. normal mode # 2.2.2. PS mode DROP TABLE t1; End of 5.0 tests create table t1 (i int); lock table t1 read; Loading mysql-test/suite/rpl/r/rpl_row_create_table.result +21 −0 Original line number Diff line number Diff line Loading @@ -430,4 +430,25 @@ a 1 2 DROP TABLE t1; 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 mysqltest1; CREATE TABLE mysqltest1.without_select (f1 BIGINT); CREATE TABLE mysqltest1.with_select AS SELECT 1 AS f1; show binlog events from <binlog_start>; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Query # # CREATE DATABASE mysqltest1 master-bin.000001 # Query # # use `test`; CREATE TABLE mysqltest1.without_select (f1 BIGINT) master-bin.000001 # Query # # use `test`; BEGIN master-bin.000001 # Query # # use `test`; CREATE TABLE `mysqltest1`.`with_select` ( `f1` int(1) NOT NULL DEFAULT '0' ) master-bin.000001 # Table_map # # table_id: # (mysqltest1.with_select) master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; COMMIT DROP DATABASE mysqltest1; end of the tests mysql-test/suite/rpl/t/rpl_row_create_table.test +17 −0 Original line number Diff line number Diff line Loading @@ -259,5 +259,22 @@ connection master; DROP TABLE t1; sync_slave_with_master; # # BUG#34707: Row based replication: slave creates table within wrong database # source include/master-slave-reset.inc; connection master; CREATE DATABASE mysqltest1; CREATE TABLE mysqltest1.without_select (f1 BIGINT); CREATE TABLE mysqltest1.with_select AS SELECT 1 AS f1; source include/show_binlog_events.inc; sync_slave_with_master; connection master; DROP DATABASE mysqltest1; sync_slave_with_master; --echo end of the tests mysql-test/t/disabled.def +1 −1 Original line number Diff line number Diff line Loading @@ -14,4 +14,4 @@ csv_alter_table : Bug#33696 2008-01-21 pcrews no .result file - bug allows thread_cache_size_func : Bug#36733 main.thread_cache_size_func fails randomly log_tables.test : Bug #37798: main.log_tables fails randomly on powermacg5 and windows slow_query_log_func.test : Bug #37962: *_func tests containing sleeps/race conditions events-bugs.test : Bug #39848, Bug #39863, Bug #39569, Bug #37774 mysql-test/t/lock_multi.test +321 −0 Original line number Diff line number Diff line Loading @@ -291,7 +291,328 @@ connection reader; reap; connection locker; drop table t1; # # Bug #38691: segfault/abort in ``UPDATE ...JOIN'' while # ``FLUSH TABLES WITH READ LOCK'' # --connection default CREATE TABLE t1 ( a int(11) unsigned default NULL, b varchar(255) default NULL, UNIQUE KEY a (a), KEY b (b) ); INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3); CREATE TABLE t2 SELECT * FROM t1; CREATE TABLE t3 SELECT * FROM t1; --echo # test altering of columns that multiupdate doesn't use --echo # normal mode --disable_query_log let $i = 100; while ($i) { --dec $i --connection writer send UPDATE t2 INNER JOIN (t1 JOIN t3 USING(a)) USING(a) SET a = NULL WHERE t1.b <> t2.b; --connection locker ALTER TABLE t2 ADD COLUMN (c INT); ALTER TABLE t2 DROP COLUMN c; --connection writer --reap } --echo # PS mode --connection writer PREPARE stmt FROM 'UPDATE t2 INNER JOIN (t1 JOIN t3 USING(a)) USING(a) SET a = NULL WHERE t1.b <> t2.b'; let $i = 100; while ($i) { --dec $i --connection writer --send EXECUTE stmt --connection locker ALTER TABLE t2 ADD COLUMN (c INT); ALTER TABLE t2 DROP COLUMN c; --connection writer --reap } --enable_query_log --echo # test altering of columns that multiupdate uses --echo # normal mode --connection default --disable_query_log let $i = 100; while ($i) { dec $i; --connection locker --error 0,1060 ALTER TABLE t2 ADD COLUMN a int(11) unsigned default NULL; UPDATE t2 SET a=b; --connection writer --send UPDATE t2 INNER JOIN (t1 JOIN t3 USING(a)) USING(a) SET a = NULL WHERE t1.b <> t2.b --connection locker --error 0,1091 ALTER TABLE t2 DROP COLUMN a; --connection writer --error 0,1054 --reap } --enable_query_log --echo # PS mode --disable_query_log let $i = 100; while ($i) { dec $i; --connection locker --error 0,1060 ALTER TABLE t2 ADD COLUMN a int(11) unsigned default NULL; UPDATE t2 SET a=b; --connection writer PREPARE stmt FROM 'UPDATE t2 INNER JOIN (t1 JOIN t3 USING(a)) USING(a) SET a = NULL WHERE t1.b <> t2.b'; --send EXECUTE stmt --connection locker --error 0,1091 ALTER TABLE t2 DROP COLUMN a; --connection writer --error 0,1054 --reap } --enable_query_log --connection default DROP TABLE t1, t2, t3; # # Bug#38499: flush tables and multitable table update with derived table cause # crash # CREATE TABLE t1( a INT, b INT ); INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3), (4, 4); --echo # 1. test regular tables --echo # 1.1. test altering of columns that multiupdate doesn't use --echo # 1.1.1. normal mode --disable_query_log let $i = 100; while ($i) { --dec $i --connection writer send UPDATE t1, (SELECT 1 FROM t1 t1i) d SET a = 0 WHERE 1=0; --connection locker ALTER TABLE t1 ADD COLUMN (c INT); ALTER TABLE t1 DROP COLUMN c; --connection writer --reap } --echo # 1.1.2. PS mode --connection writer PREPARE stmt FROM 'UPDATE t1, (SELECT 1 FROM t1 t1i) d SET a = 0 WHERE 1=0'; let $i = 100; while ($i) { --dec $i --connection writer --send EXECUTE stmt --connection locker ALTER TABLE t1 ADD COLUMN (c INT); ALTER TABLE t1 DROP COLUMN c; --connection writer --reap } --enable_query_log --echo # 1.2. test altering of columns that multiupdate uses --echo # 1.2.1. normal mode --connection default --disable_query_log let $i = 100; while ($i) { dec $i; --connection locker --error 0,1060 ALTER TABLE t1 ADD COLUMN a int(11) unsigned default NULL; UPDATE t1 SET a=b; --connection writer --send UPDATE t1, (SELECT 1 FROM t1 t1i) d SET a = 0 WHERE 1=0; --connection locker --error 0,1091 ALTER TABLE t1 DROP COLUMN a; --connection writer --error 0,1054 # unknown column error --reap } --enable_query_log --echo # 1.2.2. PS mode --disable_query_log let $i = 100; while ($i) { dec $i; --connection locker --error 0,1060 ALTER TABLE t1 ADD COLUMN a INT; UPDATE t1 SET a=b; --connection writer PREPARE stmt FROM 'UPDATE t1, (SELECT 1 FROM t1 t1i) d SET a = 0 WHERE 1=0'; --send EXECUTE stmt --connection locker --error 0,1091 ALTER TABLE t1 DROP COLUMN a; --connection writer --error 0,1054 # Unknown column 'a' in 'field list' --reap } --enable_query_log --connection default ALTER TABLE t1 ADD COLUMN a INT; --echo # 2. test UNIONs --echo # 2.1. test altering of columns that multiupdate doesn't use --echo # 2.1.1. normal mode --disable_query_log let $i = 100; while ($i) { --dec $i --connection writer send UPDATE t1, ((SELECT 1 FROM t1 t1i) UNION (SELECT 2 FROM t1 t1ii)) e SET a = 0 WHERE 1=0; --connection locker ALTER TABLE t1 ADD COLUMN (c INT); ALTER TABLE t1 DROP COLUMN c; --connection writer --reap } --echo # 2.1.2. PS mode --connection writer PREPARE stmt FROM 'UPDATE t1, ((SELECT 1 FROM t1 t1i) UNION (SELECT 2 FROM t1 t1ii)) e SET a = 0 WHERE 1=0'; let $i = 100; while ($i) { --dec $i --connection writer --send EXECUTE stmt --connection locker ALTER TABLE t1 ADD COLUMN (c INT); ALTER TABLE t1 DROP COLUMN c; --connection writer --reap } --enable_query_log --echo # 2.2. test altering of columns that multiupdate uses --echo # 2.2.1. normal mode --connection default --disable_query_log let $i = 100; while ($i) { dec $i; --connection locker --error 0,1060 ALTER TABLE t1 ADD COLUMN a int(11) unsigned default NULL; UPDATE t1 SET a=b; --connection writer --send UPDATE t1, ((SELECT 1 FROM t1 t1i) UNION (SELECT 2 FROM t1 t1ii)) e SET a = 0 WHERE 1=0; --connection locker --error 0,1091 ALTER TABLE t1 DROP COLUMN a; --connection writer --error 0,1054 # Unknown column 'a' in 'field list' --reap } --enable_query_log --echo # 2.2.2. PS mode --disable_query_log let $i = 100; while ($i) { dec $i; --connection locker --error 0,1060 ALTER TABLE t1 ADD COLUMN a INT; UPDATE t1 SET a=b; --connection writer PREPARE stmt FROM 'UPDATE t1, ((SELECT 1 FROM t1 t1i) UNION (SELECT 2 FROM t1 t1ii)) e SET a = 0 WHERE 1=0'; --send EXECUTE stmt --connection locker --error 0,1091 ALTER TABLE t1 DROP COLUMN a; --connection writer --error 0,1054 # Unknown column 'a' in 'field list' --reap } --enable_query_log --connection default DROP TABLE t1; --echo End of 5.0 tests Loading Loading
mysql-test/r/lock_multi.result +34 −0 Original line number Diff line number Diff line Loading @@ -96,6 +96,40 @@ alter table t1 auto_increment=0; alter table t1 auto_increment=0; unlock tables; drop table t1; CREATE TABLE t1 ( a int(11) unsigned default NULL, b varchar(255) default NULL, UNIQUE KEY a (a), KEY b (b) ); INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3); CREATE TABLE t2 SELECT * FROM t1; CREATE TABLE t3 SELECT * FROM t1; # test altering of columns that multiupdate doesn't use # normal mode # PS mode # test altering of columns that multiupdate uses # normal mode # PS mode DROP TABLE t1, t2, t3; CREATE TABLE t1( a INT, b INT ); INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3), (4, 4); # 1. test regular tables # 1.1. test altering of columns that multiupdate doesn't use # 1.1.1. normal mode # 1.1.2. PS mode # 1.2. test altering of columns that multiupdate uses # 1.2.1. normal mode # 1.2.2. PS mode ALTER TABLE t1 ADD COLUMN a INT; # 2. test UNIONs # 2.1. test altering of columns that multiupdate doesn't use # 2.1.1. normal mode # 2.1.2. PS mode # 2.2. test altering of columns that multiupdate uses # 2.2.1. normal mode # 2.2.2. PS mode DROP TABLE t1; End of 5.0 tests create table t1 (i int); lock table t1 read; Loading
mysql-test/suite/rpl/r/rpl_row_create_table.result +21 −0 Original line number Diff line number Diff line Loading @@ -430,4 +430,25 @@ a 1 2 DROP TABLE t1; 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 mysqltest1; CREATE TABLE mysqltest1.without_select (f1 BIGINT); CREATE TABLE mysqltest1.with_select AS SELECT 1 AS f1; show binlog events from <binlog_start>; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Query # # CREATE DATABASE mysqltest1 master-bin.000001 # Query # # use `test`; CREATE TABLE mysqltest1.without_select (f1 BIGINT) master-bin.000001 # Query # # use `test`; BEGIN master-bin.000001 # Query # # use `test`; CREATE TABLE `mysqltest1`.`with_select` ( `f1` int(1) NOT NULL DEFAULT '0' ) master-bin.000001 # Table_map # # table_id: # (mysqltest1.with_select) master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; COMMIT DROP DATABASE mysqltest1; end of the tests
mysql-test/suite/rpl/t/rpl_row_create_table.test +17 −0 Original line number Diff line number Diff line Loading @@ -259,5 +259,22 @@ connection master; DROP TABLE t1; sync_slave_with_master; # # BUG#34707: Row based replication: slave creates table within wrong database # source include/master-slave-reset.inc; connection master; CREATE DATABASE mysqltest1; CREATE TABLE mysqltest1.without_select (f1 BIGINT); CREATE TABLE mysqltest1.with_select AS SELECT 1 AS f1; source include/show_binlog_events.inc; sync_slave_with_master; connection master; DROP DATABASE mysqltest1; sync_slave_with_master; --echo end of the tests
mysql-test/t/disabled.def +1 −1 Original line number Diff line number Diff line Loading @@ -14,4 +14,4 @@ csv_alter_table : Bug#33696 2008-01-21 pcrews no .result file - bug allows thread_cache_size_func : Bug#36733 main.thread_cache_size_func fails randomly log_tables.test : Bug #37798: main.log_tables fails randomly on powermacg5 and windows slow_query_log_func.test : Bug #37962: *_func tests containing sleeps/race conditions events-bugs.test : Bug #39848, Bug #39863, Bug #39569, Bug #37774
mysql-test/t/lock_multi.test +321 −0 Original line number Diff line number Diff line Loading @@ -291,7 +291,328 @@ connection reader; reap; connection locker; drop table t1; # # Bug #38691: segfault/abort in ``UPDATE ...JOIN'' while # ``FLUSH TABLES WITH READ LOCK'' # --connection default CREATE TABLE t1 ( a int(11) unsigned default NULL, b varchar(255) default NULL, UNIQUE KEY a (a), KEY b (b) ); INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3); CREATE TABLE t2 SELECT * FROM t1; CREATE TABLE t3 SELECT * FROM t1; --echo # test altering of columns that multiupdate doesn't use --echo # normal mode --disable_query_log let $i = 100; while ($i) { --dec $i --connection writer send UPDATE t2 INNER JOIN (t1 JOIN t3 USING(a)) USING(a) SET a = NULL WHERE t1.b <> t2.b; --connection locker ALTER TABLE t2 ADD COLUMN (c INT); ALTER TABLE t2 DROP COLUMN c; --connection writer --reap } --echo # PS mode --connection writer PREPARE stmt FROM 'UPDATE t2 INNER JOIN (t1 JOIN t3 USING(a)) USING(a) SET a = NULL WHERE t1.b <> t2.b'; let $i = 100; while ($i) { --dec $i --connection writer --send EXECUTE stmt --connection locker ALTER TABLE t2 ADD COLUMN (c INT); ALTER TABLE t2 DROP COLUMN c; --connection writer --reap } --enable_query_log --echo # test altering of columns that multiupdate uses --echo # normal mode --connection default --disable_query_log let $i = 100; while ($i) { dec $i; --connection locker --error 0,1060 ALTER TABLE t2 ADD COLUMN a int(11) unsigned default NULL; UPDATE t2 SET a=b; --connection writer --send UPDATE t2 INNER JOIN (t1 JOIN t3 USING(a)) USING(a) SET a = NULL WHERE t1.b <> t2.b --connection locker --error 0,1091 ALTER TABLE t2 DROP COLUMN a; --connection writer --error 0,1054 --reap } --enable_query_log --echo # PS mode --disable_query_log let $i = 100; while ($i) { dec $i; --connection locker --error 0,1060 ALTER TABLE t2 ADD COLUMN a int(11) unsigned default NULL; UPDATE t2 SET a=b; --connection writer PREPARE stmt FROM 'UPDATE t2 INNER JOIN (t1 JOIN t3 USING(a)) USING(a) SET a = NULL WHERE t1.b <> t2.b'; --send EXECUTE stmt --connection locker --error 0,1091 ALTER TABLE t2 DROP COLUMN a; --connection writer --error 0,1054 --reap } --enable_query_log --connection default DROP TABLE t1, t2, t3; # # Bug#38499: flush tables and multitable table update with derived table cause # crash # CREATE TABLE t1( a INT, b INT ); INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3), (4, 4); --echo # 1. test regular tables --echo # 1.1. test altering of columns that multiupdate doesn't use --echo # 1.1.1. normal mode --disable_query_log let $i = 100; while ($i) { --dec $i --connection writer send UPDATE t1, (SELECT 1 FROM t1 t1i) d SET a = 0 WHERE 1=0; --connection locker ALTER TABLE t1 ADD COLUMN (c INT); ALTER TABLE t1 DROP COLUMN c; --connection writer --reap } --echo # 1.1.2. PS mode --connection writer PREPARE stmt FROM 'UPDATE t1, (SELECT 1 FROM t1 t1i) d SET a = 0 WHERE 1=0'; let $i = 100; while ($i) { --dec $i --connection writer --send EXECUTE stmt --connection locker ALTER TABLE t1 ADD COLUMN (c INT); ALTER TABLE t1 DROP COLUMN c; --connection writer --reap } --enable_query_log --echo # 1.2. test altering of columns that multiupdate uses --echo # 1.2.1. normal mode --connection default --disable_query_log let $i = 100; while ($i) { dec $i; --connection locker --error 0,1060 ALTER TABLE t1 ADD COLUMN a int(11) unsigned default NULL; UPDATE t1 SET a=b; --connection writer --send UPDATE t1, (SELECT 1 FROM t1 t1i) d SET a = 0 WHERE 1=0; --connection locker --error 0,1091 ALTER TABLE t1 DROP COLUMN a; --connection writer --error 0,1054 # unknown column error --reap } --enable_query_log --echo # 1.2.2. PS mode --disable_query_log let $i = 100; while ($i) { dec $i; --connection locker --error 0,1060 ALTER TABLE t1 ADD COLUMN a INT; UPDATE t1 SET a=b; --connection writer PREPARE stmt FROM 'UPDATE t1, (SELECT 1 FROM t1 t1i) d SET a = 0 WHERE 1=0'; --send EXECUTE stmt --connection locker --error 0,1091 ALTER TABLE t1 DROP COLUMN a; --connection writer --error 0,1054 # Unknown column 'a' in 'field list' --reap } --enable_query_log --connection default ALTER TABLE t1 ADD COLUMN a INT; --echo # 2. test UNIONs --echo # 2.1. test altering of columns that multiupdate doesn't use --echo # 2.1.1. normal mode --disable_query_log let $i = 100; while ($i) { --dec $i --connection writer send UPDATE t1, ((SELECT 1 FROM t1 t1i) UNION (SELECT 2 FROM t1 t1ii)) e SET a = 0 WHERE 1=0; --connection locker ALTER TABLE t1 ADD COLUMN (c INT); ALTER TABLE t1 DROP COLUMN c; --connection writer --reap } --echo # 2.1.2. PS mode --connection writer PREPARE stmt FROM 'UPDATE t1, ((SELECT 1 FROM t1 t1i) UNION (SELECT 2 FROM t1 t1ii)) e SET a = 0 WHERE 1=0'; let $i = 100; while ($i) { --dec $i --connection writer --send EXECUTE stmt --connection locker ALTER TABLE t1 ADD COLUMN (c INT); ALTER TABLE t1 DROP COLUMN c; --connection writer --reap } --enable_query_log --echo # 2.2. test altering of columns that multiupdate uses --echo # 2.2.1. normal mode --connection default --disable_query_log let $i = 100; while ($i) { dec $i; --connection locker --error 0,1060 ALTER TABLE t1 ADD COLUMN a int(11) unsigned default NULL; UPDATE t1 SET a=b; --connection writer --send UPDATE t1, ((SELECT 1 FROM t1 t1i) UNION (SELECT 2 FROM t1 t1ii)) e SET a = 0 WHERE 1=0; --connection locker --error 0,1091 ALTER TABLE t1 DROP COLUMN a; --connection writer --error 0,1054 # Unknown column 'a' in 'field list' --reap } --enable_query_log --echo # 2.2.2. PS mode --disable_query_log let $i = 100; while ($i) { dec $i; --connection locker --error 0,1060 ALTER TABLE t1 ADD COLUMN a INT; UPDATE t1 SET a=b; --connection writer PREPARE stmt FROM 'UPDATE t1, ((SELECT 1 FROM t1 t1i) UNION (SELECT 2 FROM t1 t1ii)) e SET a = 0 WHERE 1=0'; --send EXECUTE stmt --connection locker --error 0,1091 ALTER TABLE t1 DROP COLUMN a; --connection writer --error 0,1054 # Unknown column 'a' in 'field list' --reap } --enable_query_log --connection default DROP TABLE t1; --echo End of 5.0 tests Loading