From: Li-Bing.Song Date: December 28 2010 12:01pm Subject: bzr push into mysql-trunk branch (Li-Bing.Song:3208 to 3209) WL#5576 List-Archive: http://lists.mysql.com/commits/127624 Message-Id: <201012281201.oBSC1Rah025985@localhost6.localdomain6> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 3209 Li-Bing.Song@stripped 2010-12-28 WL#5576 Revert the last patch to verify if the failures on PB2 are introduced by this patch. modified: mysql-test/include/unsafe_binlog.inc mysql-test/r/func_rollback.result mysql-test/r/mdl_sync.result mysql-test/r/unsafe_binlog_innodb.result mysql-test/suite/innodb/r/innodb.result mysql-test/suite/innodb/t/innodb.test mysql-test/t/func_rollback.test mysql-test/t/mdl_sync.test 3208 Li-Bing.Song@stripped 2010-12-21 WL#5576 Postfix Fixed the test affected by this worklog modified: mysql-test/include/unsafe_binlog.inc mysql-test/r/func_rollback.result mysql-test/r/mdl_sync.result mysql-test/r/unsafe_binlog_innodb.result mysql-test/suite/innodb/r/innodb.result mysql-test/suite/innodb/t/innodb.test mysql-test/t/func_rollback.test mysql-test/t/mdl_sync.test === modified file 'mysql-test/include/unsafe_binlog.inc' --- a/mysql-test/include/unsafe_binlog.inc 2010-12-21 10:56:49 +0000 +++ b/mysql-test/include/unsafe_binlog.inc 2010-12-28 11:57:47 +0000 @@ -245,7 +245,7 @@ connection i; reap; connection j; ---error ER_CANT_UPDATE_TABLE_IN_CREATE_TABLE_SELECT +--error ER_LOCK_WAIT_TIMEOUT reap; connection a; === modified file 'mysql-test/r/func_rollback.result' --- a/mysql-test/r/func_rollback.result 2010-12-21 10:56:49 +0000 +++ b/mysql-test/r/func_rollback.result 2010-12-28 11:57:47 +0000 @@ -391,11 +391,11 @@ DROP VIEW v1_func; # FUNCTION in CREATE TABLE ... AS SELECT CREATE TABLE t1_fail AS SELECT f1_two_inserts() FROM t1_select; -ERROR HY000: Can't update table 't1_not_null' using a stored function while 't1_fail' is being created. +ERROR 23000: Column 'f2' cannot be null SELECT * FROM t1_not_null ORDER BY f1,f2; f1 f2 CREATE TABLE t1_fail AS SELECT * FROM t1_select WHERE 1 = f1_two_inserts(); -ERROR HY000: Can't update table 't1_not_null' using a stored function while 't1_fail' is being created. +ERROR 23000: Column 'f2' cannot be null SELECT * FROM t1_not_null ORDER BY f1,f2; f1 f2 === modified file 'mysql-test/r/mdl_sync.result' --- a/mysql-test/r/mdl_sync.result 2010-12-21 10:56:49 +0000 +++ b/mysql-test/r/mdl_sync.result 2010-12-28 11:57:47 +0000 @@ -2293,18 +2293,13 @@ set global log_output=@save_log_output; # drop tables if exists t1, t2; create table t1 (i int); -insert into t1 values(1); # Let us check that we won't deadlock if during filling # of I_S table we encounter conflicting metadata lock # which owner is in its turn waiting for our connection. lock tables t1 read; -# Switching to connection 'con46044_2'. -# Sending: -update t1 set i = 2; # Switching to connection 'con46044'. -# Waiting until UPDATE t1 SET ... is blocked. # Sending: -create table t2 select * from t1;; +create table t2 select * from t1 for update;; # Switching to connection 'default'. # Waiting until CREATE TABLE ... SELECT ... is blocked. # First let us check that SHOW FIELDS/DESCRIBE doesn't @@ -2332,7 +2327,6 @@ unlock tables; # Switching to connection 'con46044'. # Reaping CREATE TABLE ... SELECT ... . drop table t2; -# Reaping UPDATE t1 statement # # Let us also check that queries to I_S wait for conflicting metadata # locks to go away instead of skipping table with a warning in cases @@ -2342,13 +2336,9 @@ drop table t2; # We check same three queries to I_S in this new situation. # Switching to connection 'con46044_2'. lock tables t1 read; -# Switching to connection 'con46044_3'. -# Sending: -update t1 set i = 3; # Switching to connection 'con46044'. -# Waiting until UPDATE t1 SET ... is blocked. # Sending: -create table t2 select * from t1;; +create table t2 select * from t1 for update;; # Switching to connection 'default'. # Waiting until CREATE TABLE ... SELECT ... is blocked. # Let us check that SHOW FIELDS/DESCRIBE gets blocked. @@ -2364,16 +2354,11 @@ unlock tables; Field Type Null Key Default Extra i int(11) YES NULL drop table t2; -# Reaping UPDATE t1 statement # Switching to connection 'con46044_2'. lock tables t1 read; -# Switching to connection 'con46044_3'. -# Sending: -update t1 set i = 4; # Switching to connection 'con46044'. -# Waiting until UPDATE t1 SET ... is blocked. # Sending: -create table t2 select * from t1;; +create table t2 select * from t1 for update;; # Switching to connection 'default'. # Waiting until CREATE TABLE ... SELECT ... is blocked. # Check that I_S query which reads only .FRMs gets blocked. @@ -2389,16 +2374,11 @@ unlock tables; column_name i drop table t2; -# Reaping UPDATE t1 statement # Switching to connection 'con46044_2'. lock tables t1 read; -# Switching to connection 'con46044_3'. -# Sending: -update t1 set i = 5; # Switching to connection 'con46044'. -# Waiting until UPDATE t1 SET ... is blocked. # Sending: -create table t2 select * from t1;; +create table t2 select * from t1 for update;; # Switching to connection 'default'. # Waiting until CREATE TABLE ... SELECT ... is blocked. # Finally, check that I_S query which does full-blown table open @@ -2415,7 +2395,6 @@ unlock tables; table_name table_type auto_increment table_comment t2 BASE TABLE NULL drop table t2; -# Reaping UPDATE t1 statement # Switching to connection 'default'. # Clean-up. drop table t1; === modified file 'mysql-test/r/unsafe_binlog_innodb.result' --- a/mysql-test/r/unsafe_binlog_innodb.result 2010-12-21 10:56:49 +0000 +++ b/mysql-test/r/unsafe_binlog_innodb.result 2010-12-28 11:57:47 +0000 @@ -118,6 +118,6 @@ ERROR HY000: Lock wait timeout exceeded; ERROR HY000: Lock wait timeout exceeded; try restarting transaction ERROR HY000: Lock wait timeout exceeded; try restarting transaction ERROR HY000: Lock wait timeout exceeded; try restarting transaction -ERROR HY000: Can't update table 't2' using a stored function while 't10' is being created. +ERROR HY000: Lock wait timeout exceeded; try restarting transaction commit; drop table t1, t2, t3, t5, t6, t8, t9; === modified file 'mysql-test/suite/innodb/r/innodb.result' --- a/mysql-test/suite/innodb/r/innodb.result 2010-12-21 10:56:49 +0000 +++ b/mysql-test/suite/innodb/r/innodb.result 2010-12-28 11:57:47 +0000 @@ -2949,7 +2949,7 @@ ERROR HY000: Lock wait timeout exceeded; ERROR HY000: Lock wait timeout exceeded; try restarting transaction ERROR HY000: Lock wait timeout exceeded; try restarting transaction ERROR HY000: Lock wait timeout exceeded; try restarting transaction -ERROR HY000: Can't update table 't2' using a stored function while 't10' is being created. +ERROR HY000: Lock wait timeout exceeded; try restarting transaction commit; drop table t1, t2, t3, t5, t6, t8, t9; CREATE TABLE t1 (DB_ROW_ID int) engine=innodb; === modified file 'mysql-test/suite/innodb/t/innodb.test' --- a/mysql-test/suite/innodb/t/innodb.test 2010-12-21 10:56:49 +0000 +++ b/mysql-test/suite/innodb/t/innodb.test 2010-12-28 11:57:47 +0000 @@ -2175,7 +2175,6 @@ set autocommit = 0; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; --send insert into t5 (select * from t2 lock in share mode); - connection f; SET binlog_format='MIXED'; set autocommit = 0; @@ -2240,7 +2239,7 @@ connection i; reap; connection j; ---error ER_CANT_UPDATE_TABLE_IN_CREATE_TABLE_SELECT +--error 1205 reap; connection a; === modified file 'mysql-test/t/func_rollback.test' --- a/mysql-test/t/func_rollback.test 2010-12-21 10:56:49 +0000 +++ b/mysql-test/t/func_rollback.test 2010-12-28 11:57:47 +0000 @@ -409,11 +409,11 @@ DROP VIEW v1_func; --echo --echo # FUNCTION in CREATE TABLE ... AS SELECT ---error ER_CANT_UPDATE_TABLE_IN_CREATE_TABLE_SELECT +--error ER_BAD_NULL_ERROR CREATE TABLE t1_fail AS SELECT f1_two_inserts() FROM t1_select; SELECT * FROM t1_not_null ORDER BY f1,f2; # ---error ER_CANT_UPDATE_TABLE_IN_CREATE_TABLE_SELECT +--error ER_BAD_NULL_ERROR CREATE TABLE t1_fail AS SELECT * FROM t1_select WHERE 1 = f1_two_inserts(); SELECT * FROM t1_not_null ORDER BY f1,f2; # === modified file 'mysql-test/t/mdl_sync.test' --- a/mysql-test/t/mdl_sync.test 2010-12-21 10:56:49 +0000 +++ b/mysql-test/t/mdl_sync.test 2010-12-28 11:57:47 +0000 @@ -3345,33 +3345,18 @@ drop tables if exists t1, t2; --enable_warnings connect (con46044, localhost, root,,); connect (con46044_2, localhost, root,,); -connect (con46044_3, localhost, root,,); connection default; create table t1 (i int); -insert into t1 values(1); --echo # Let us check that we won't deadlock if during filling --echo # of I_S table we encounter conflicting metadata lock --echo # which owner is in its turn waiting for our connection. lock tables t1 read; ---echo # Switching to connection 'con46044_2'. -connection con46044_2; ---echo # Sending: ---send update t1 set i = 2 - --echo # Switching to connection 'con46044'. connection con46044; - ---echo # Waiting until UPDATE t1 SET ... is blocked. -let $wait_condition= - select count(*) = 1 from information_schema.processlist - where state = "Waiting for table level lock" and - info = "update t1 set i = 2"; ---source include/wait_condition.inc - --echo # Sending: ---send create table t2 select * from t1; +--send create table t2 select * from t1 for update; --echo # Switching to connection 'default'. connection default; @@ -3379,7 +3364,7 @@ connection default; let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table level lock" and - info = "create table t2 select * from t1"; + info = "create table t2 select * from t1 for update"; --source include/wait_condition.inc --echo # First let us check that SHOW FIELDS/DESCRIBE doesn't @@ -3410,10 +3395,6 @@ connection con46044; --reap drop table t2; -connection con46044_2; ---echo # Reaping UPDATE t1 statement ---reap - --echo # --echo # Let us also check that queries to I_S wait for conflicting metadata --echo # locks to go away instead of skipping table with a warning in cases @@ -3426,23 +3407,10 @@ connection con46044_2; connection con46044_2; lock tables t1 read; ---echo # Switching to connection 'con46044_3'. -connection con46044_3; ---echo # Sending: -send update t1 set i = 3; - --echo # Switching to connection 'con46044'. connection con46044; - ---echo # Waiting until UPDATE t1 SET ... is blocked. -let $wait_condition= - select count(*) = 1 from information_schema.processlist - where state = "Waiting for table level lock" and - info = "update t1 set i = 3"; ---source include/wait_condition.inc - --echo # Sending: ---send create table t2 select * from t1; +--send create table t2 select * from t1 for update; --echo # Switching to connection 'default'. connection default; @@ -3450,7 +3418,7 @@ connection default; let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table level lock" and - info = "create table t2 select * from t1"; + info = "create table t2 select * from t1 for update"; --source include/wait_condition.inc --echo # Let us check that SHOW FIELDS/DESCRIBE gets blocked. @@ -3479,31 +3447,14 @@ connection default; --reap drop table t2; -connection con46044_3; ---echo # Reaping UPDATE t1 statement ---reap - --echo # Switching to connection 'con46044_2'. connection con46044_2; lock tables t1 read; ---echo # Switching to connection 'con46044_3'. -connection con46044_3; ---echo # Sending: ---send update t1 set i = 4 - --echo # Switching to connection 'con46044'. connection con46044; - ---echo # Waiting until UPDATE t1 SET ... is blocked. -let $wait_condition= - select count(*) = 1 from information_schema.processlist - where state = "Waiting for table level lock" and - info = "update t1 set i = 4"; ---source include/wait_condition.inc - --echo # Sending: ---send create table t2 select * from t1; +--send create table t2 select * from t1 for update; --echo # Switching to connection 'default'. connection default; @@ -3511,7 +3462,7 @@ connection default; let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table level lock" and - info = "create table t2 select * from t1"; + info = "create table t2 select * from t1 for update"; --source include/wait_condition.inc --echo # Check that I_S query which reads only .FRMs gets blocked. @@ -3540,31 +3491,14 @@ connection default; --reap drop table t2; -connection con46044_3; ---echo # Reaping UPDATE t1 statement ---reap - --echo # Switching to connection 'con46044_2'. connection con46044_2; lock tables t1 read; ---echo # Switching to connection 'con46044_3'. -connection con46044_3; ---echo # Sending: ---send update t1 set i = 5 - --echo # Switching to connection 'con46044'. connection con46044; - ---echo # Waiting until UPDATE t1 SET ... is blocked. -let $wait_condition= - select count(*) = 1 from information_schema.processlist - where state = "Waiting for table level lock" and - info = "update t1 set i = 5"; ---source include/wait_condition.inc - --echo # Sending: ---send create table t2 select * from t1; +--send create table t2 select * from t1 for update; --echo # Switching to connection 'default'. connection default; @@ -3572,7 +3506,7 @@ connection default; let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table level lock" and - info = "create table t2 select * from t1"; + info = "create table t2 select * from t1 for update"; --source include/wait_condition.inc --echo # Finally, check that I_S query which does full-blown table open @@ -3602,16 +3536,11 @@ connection default; --reap drop table t2; -connection con46044_3; ---echo # Reaping UPDATE t1 statement ---reap - --echo # Switching to connection 'default'. connection default; --echo # Clean-up. disconnect con46044; disconnect con46044_2; -disconnect con46044_3; drop table t1; No bundle (reason: useless for push emails).