From: Manish Kumar Date: November 8 2011 2:56pm Subject: bzr push into mysql-trunk branch (manish.4.kumar:3577 to 3578) List-Archive: http://lists.mysql.com/commits/141863 Message-Id: <201111081456.pA8Euo0I032160@acsmt358.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 3578 Manish Kumar 2011-11-08 BUG 11764459 - 57291: BINLOG.BINLOG_TRUNCATE_INNODB IS DISABLED Problem: As a result of Bug#42643 test binlog.binlog_truncate_innodb was disabled. This is a replication test, which stopped to make sense in the new semantics of truncate (42643 changed the semantics). Fix: The bug is fixed by removing the test and the corresponding result file. removed: mysql-test/suite/binlog/r/binlog_truncate_innodb.result mysql-test/suite/binlog/t/binlog_truncate_innodb.test modified: mysql-test/suite/binlog/t/disabled.def 3577 Tor Didriksen 2011-11-08 Bug#11748783 37359: FILESORT CAN BE MORE EFFICIENT Post-push fix: function find_all_keys() changed signature, so valgrind suppression must change. modified: mysql-test/valgrind.supp === removed file 'mysql-test/suite/binlog/r/binlog_truncate_innodb.result' --- a/mysql-test/suite/binlog/r/binlog_truncate_innodb.result 2010-05-25 20:01:38 +0000 +++ b/mysql-test/suite/binlog/r/binlog_truncate_innodb.result 1970-01-01 00:00:00 +0000 @@ -1,403 +0,0 @@ -SET @old_binlog_format=@@binlog_format; -SET BINLOG_FORMAT=ROW; -RESET MASTER; -CREATE TABLE t1 (a INT) ENGINE=InnoDB; -CREATE TABLE t2 (a INT) ENGINE=InnoDB; -INSERT INTO t2 VALUES (1),(2),(3); -**** Truncate of empty table shall be logged -TRUNCATE TABLE t1; -TRUNCATE TABLE t2; -show binlog events from ; -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 -master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t2 -DROP TABLE t1,t2; -# -# Bug#42643: InnoDB does not support replication of TRUNCATE TABLE -# -CREATE TABLE t1 (a INT) ENGINE=InnoDB; -CREATE TABLE t2 (a INT) ENGINE=InnoDB; -INSERT INTO t1 VALUES (1),(2); -# Connection: default -BEGIN; -INSERT INTO t2 SELECT * FROM t1; -# Connection: truncate -TRUNCATE TABLE t1; -# Connection: default -INSERT INTO t2 SELECT * FROM t1; -SELECT COUNT(*) FROM t2; -COUNT(*) -4 -COMMIT; -# Connection: truncate -# Reaping TRUNCATE TABLE -SELECT COUNT(*) FROM t1; -COUNT(*) -0 -SELECT COUNT(*) FROM t2; -COUNT(*) -4 -# Connection: default -show binlog events from ; -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Query # # BEGIN -master-bin.000001 # Table_map # # table_id: # (test.t2) -master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F -master-bin.000001 # Table_map # # table_id: # (test.t2) -master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F -master-bin.000001 # Xid # # COMMIT /* XID */ -master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 -DROP TABLE t1,t2; -# Even though the isolation level might be permissive, truncate -# table follows a stricter isolation as its locking is based on -# (exclusive) metadata locks. -CREATE TABLE t1 (a INT) ENGINE=InnoDB; -CREATE TABLE t2 (a INT) ENGINE=InnoDB; -INSERT INTO t2 VALUES (1),(2),(3); -SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; -**** Truncate of empty table shall be logged -TRUNCATE TABLE t1; -SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; -TRUNCATE TABLE t2; -show binlog events from ; -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 -master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t2 -DROP TABLE t1,t2; -# -# Bug#42643: InnoDB does not support replication of TRUNCATE TABLE -# -CREATE TABLE t1 (a INT) ENGINE=InnoDB; -CREATE TABLE t2 (a INT) ENGINE=InnoDB; -INSERT INTO t1 VALUES (1),(2); -SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; -# Connection: default -BEGIN; -INSERT INTO t2 SELECT * FROM t1; -# Connection: truncate -TRUNCATE TABLE t1; -# Connection: default -INSERT INTO t2 SELECT * FROM t1; -SELECT COUNT(*) FROM t2; -COUNT(*) -4 -COMMIT; -# Connection: truncate -# Reaping TRUNCATE TABLE -SELECT COUNT(*) FROM t1; -COUNT(*) -0 -SELECT COUNT(*) FROM t2; -COUNT(*) -4 -# Connection: default -show binlog events from ; -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Query # # BEGIN -master-bin.000001 # Table_map # # table_id: # (test.t2) -master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F -master-bin.000001 # Table_map # # table_id: # (test.t2) -master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F -master-bin.000001 # Xid # # COMMIT /* XID */ -master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 -DROP TABLE t1,t2; -CREATE TABLE t1 (a INT) ENGINE=InnoDB; -CREATE TABLE t2 (a INT) ENGINE=InnoDB; -INSERT INTO t2 VALUES (1),(2),(3); -SET TRANSACTION ISOLATION LEVEL READ COMMITTED; -**** Truncate of empty table shall be logged -TRUNCATE TABLE t1; -SET TRANSACTION ISOLATION LEVEL READ COMMITTED; -TRUNCATE TABLE t2; -show binlog events from ; -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 -master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t2 -DROP TABLE t1,t2; -# -# Bug#42643: InnoDB does not support replication of TRUNCATE TABLE -# -CREATE TABLE t1 (a INT) ENGINE=InnoDB; -CREATE TABLE t2 (a INT) ENGINE=InnoDB; -INSERT INTO t1 VALUES (1),(2); -SET TRANSACTION ISOLATION LEVEL READ COMMITTED; -# Connection: default -BEGIN; -INSERT INTO t2 SELECT * FROM t1; -# Connection: truncate -TRUNCATE TABLE t1; -# Connection: default -INSERT INTO t2 SELECT * FROM t1; -SELECT COUNT(*) FROM t2; -COUNT(*) -4 -COMMIT; -# Connection: truncate -# Reaping TRUNCATE TABLE -SELECT COUNT(*) FROM t1; -COUNT(*) -0 -SELECT COUNT(*) FROM t2; -COUNT(*) -4 -# Connection: default -show binlog events from ; -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Query # # BEGIN -master-bin.000001 # Table_map # # table_id: # (test.t2) -master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F -master-bin.000001 # Table_map # # table_id: # (test.t2) -master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F -master-bin.000001 # Xid # # COMMIT /* XID */ -master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 -DROP TABLE t1,t2; -CREATE TABLE t1 (a INT) ENGINE=InnoDB; -CREATE TABLE t2 (a INT) ENGINE=InnoDB; -INSERT INTO t2 VALUES (1),(2),(3); -SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; -**** Truncate of empty table shall be logged -TRUNCATE TABLE t1; -SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; -TRUNCATE TABLE t2; -show binlog events from ; -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 -master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t2 -DROP TABLE t1,t2; -# -# Bug#42643: InnoDB does not support replication of TRUNCATE TABLE -# -CREATE TABLE t1 (a INT) ENGINE=InnoDB; -CREATE TABLE t2 (a INT) ENGINE=InnoDB; -INSERT INTO t1 VALUES (1),(2); -SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; -# Connection: default -BEGIN; -INSERT INTO t2 SELECT * FROM t1; -# Connection: truncate -TRUNCATE TABLE t1; -# Connection: default -INSERT INTO t2 SELECT * FROM t1; -SELECT COUNT(*) FROM t2; -COUNT(*) -4 -COMMIT; -# Connection: truncate -# Reaping TRUNCATE TABLE -SELECT COUNT(*) FROM t1; -COUNT(*) -0 -SELECT COUNT(*) FROM t2; -COUNT(*) -4 -# Connection: default -show binlog events from ; -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Query # # BEGIN -master-bin.000001 # Table_map # # table_id: # (test.t2) -master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F -master-bin.000001 # Table_map # # table_id: # (test.t2) -master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F -master-bin.000001 # Xid # # COMMIT /* XID */ -master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 -DROP TABLE t1,t2; -CREATE TABLE t1 (a INT) ENGINE=InnoDB; -CREATE TABLE t2 (a INT) ENGINE=InnoDB; -INSERT INTO t2 VALUES (1),(2),(3); -SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; -**** Truncate of empty table shall be logged -TRUNCATE TABLE t1; -SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; -TRUNCATE TABLE t2; -show binlog events from ; -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 -master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t2 -DROP TABLE t1,t2; -# -# Bug#42643: InnoDB does not support replication of TRUNCATE TABLE -# -CREATE TABLE t1 (a INT) ENGINE=InnoDB; -CREATE TABLE t2 (a INT) ENGINE=InnoDB; -INSERT INTO t1 VALUES (1),(2); -SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; -# Connection: default -BEGIN; -INSERT INTO t2 SELECT * FROM t1; -# Connection: truncate -TRUNCATE TABLE t1; -# Connection: default -INSERT INTO t2 SELECT * FROM t1; -SELECT COUNT(*) FROM t2; -COUNT(*) -4 -COMMIT; -# Connection: truncate -# Reaping TRUNCATE TABLE -SELECT COUNT(*) FROM t1; -COUNT(*) -0 -SELECT COUNT(*) FROM t2; -COUNT(*) -4 -# Connection: default -show binlog events from ; -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Query # # BEGIN -master-bin.000001 # Table_map # # table_id: # (test.t2) -master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F -master-bin.000001 # Table_map # # table_id: # (test.t2) -master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F -master-bin.000001 # Xid # # COMMIT /* XID */ -master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 -DROP TABLE t1,t2; -SET BINLOG_FORMAT=STATEMENT; -RESET MASTER; -CREATE TABLE t1 (a INT) ENGINE=InnoDB; -CREATE TABLE t2 (a INT) ENGINE=InnoDB; -INSERT INTO t2 VALUES (1),(2),(3); -SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; -**** Truncate of empty table shall be logged -TRUNCATE TABLE t1; -SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; -TRUNCATE TABLE t2; -show binlog events from ; -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 -master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t2 -DROP TABLE t1,t2; -# -# Bug#42643: InnoDB does not support replication of TRUNCATE TABLE -# -CREATE TABLE t1 (a INT) ENGINE=InnoDB; -CREATE TABLE t2 (a INT) ENGINE=InnoDB; -INSERT INTO t1 VALUES (1),(2); -SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; -# Connection: default -BEGIN; -INSERT INTO t2 SELECT * FROM t1; -# Connection: truncate -TRUNCATE TABLE t1; -# Connection: default -INSERT INTO t2 SELECT * FROM t1; -SELECT COUNT(*) FROM t2; -COUNT(*) -4 -COMMIT; -# Connection: truncate -# Reaping TRUNCATE TABLE -SELECT COUNT(*) FROM t1; -COUNT(*) -0 -SELECT COUNT(*) FROM t2; -COUNT(*) -4 -# Connection: default -show binlog events from ; -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Query # # BEGIN -master-bin.000001 # Query # # use `test`; INSERT INTO t2 SELECT * FROM t1 -master-bin.000001 # Query # # use `test`; INSERT INTO t2 SELECT * FROM t1 -master-bin.000001 # Xid # # COMMIT /* XID */ -master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 -DROP TABLE t1,t2; -# Truncate is not supported for SBR if the isolation level is -# READ UNCOMMITTED or READ COMMITTED. These specific isolation -# levels are tested elsewhere. -CREATE TABLE t1 (a INT) ENGINE=InnoDB; -CREATE TABLE t2 (a INT) ENGINE=InnoDB; -INSERT INTO t2 VALUES (1),(2),(3); -SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; -**** Truncate of empty table shall be logged -TRUNCATE TABLE t1; -SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; -TRUNCATE TABLE t2; -show binlog events from ; -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 -master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t2 -DROP TABLE t1,t2; -# -# Bug#42643: InnoDB does not support replication of TRUNCATE TABLE -# -CREATE TABLE t1 (a INT) ENGINE=InnoDB; -CREATE TABLE t2 (a INT) ENGINE=InnoDB; -INSERT INTO t1 VALUES (1),(2); -SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; -# Connection: default -BEGIN; -INSERT INTO t2 SELECT * FROM t1; -# Connection: truncate -TRUNCATE TABLE t1; -# Connection: default -INSERT INTO t2 SELECT * FROM t1; -SELECT COUNT(*) FROM t2; -COUNT(*) -4 -COMMIT; -# Connection: truncate -# Reaping TRUNCATE TABLE -SELECT COUNT(*) FROM t1; -COUNT(*) -0 -SELECT COUNT(*) FROM t2; -COUNT(*) -4 -# Connection: default -show binlog events from ; -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Query # # BEGIN -master-bin.000001 # Query # # use `test`; INSERT INTO t2 SELECT * FROM t1 -master-bin.000001 # Query # # use `test`; INSERT INTO t2 SELECT * FROM t1 -master-bin.000001 # Xid # # COMMIT /* XID */ -master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 -DROP TABLE t1,t2; -CREATE TABLE t1 (a INT) ENGINE=InnoDB; -CREATE TABLE t2 (a INT) ENGINE=InnoDB; -INSERT INTO t2 VALUES (1),(2),(3); -SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; -**** Truncate of empty table shall be logged -TRUNCATE TABLE t1; -SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; -TRUNCATE TABLE t2; -show binlog events from ; -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 -master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t2 -DROP TABLE t1,t2; -# -# Bug#42643: InnoDB does not support replication of TRUNCATE TABLE -# -CREATE TABLE t1 (a INT) ENGINE=InnoDB; -CREATE TABLE t2 (a INT) ENGINE=InnoDB; -INSERT INTO t1 VALUES (1),(2); -SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; -# Connection: default -BEGIN; -INSERT INTO t2 SELECT * FROM t1; -# Connection: truncate -TRUNCATE TABLE t1; -# Connection: default -INSERT INTO t2 SELECT * FROM t1; -SELECT COUNT(*) FROM t2; -COUNT(*) -4 -COMMIT; -# Connection: truncate -# Reaping TRUNCATE TABLE -SELECT COUNT(*) FROM t1; -COUNT(*) -0 -SELECT COUNT(*) FROM t2; -COUNT(*) -4 -# Connection: default -show binlog events from ; -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Query # # BEGIN -master-bin.000001 # Query # # use `test`; INSERT INTO t2 SELECT * FROM t1 -master-bin.000001 # Query # # use `test`; INSERT INTO t2 SELECT * FROM t1 -master-bin.000001 # Xid # # COMMIT /* XID */ -master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 -DROP TABLE t1,t2; -SET BINLOG_FORMAT=@old_binlog_format; === removed file 'mysql-test/suite/binlog/t/binlog_truncate_innodb.test' --- a/mysql-test/suite/binlog/t/binlog_truncate_innodb.test 2010-05-25 20:01:38 +0000 +++ b/mysql-test/suite/binlog/t/binlog_truncate_innodb.test 1970-01-01 00:00:00 +0000 @@ -1,44 +0,0 @@ -source include/have_log_bin.inc; -source include/have_innodb.inc; - -let $engine = InnoDB; - -SET @old_binlog_format=@@binlog_format; - -SET BINLOG_FORMAT=ROW; -RESET MASTER; - -source extra/binlog_tests/binlog_truncate.test; - ---echo # Even though the isolation level might be permissive, truncate ---echo # table follows a stricter isolation as its locking is based on ---echo # (exclusive) metadata locks. - -let $before_truncate = SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; -source extra/binlog_tests/binlog_truncate.test; - -let $before_truncate = SET TRANSACTION ISOLATION LEVEL READ COMMITTED; -source extra/binlog_tests/binlog_truncate.test; - -let $before_truncate = SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; -source extra/binlog_tests/binlog_truncate.test; - -let $before_truncate = SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; -source extra/binlog_tests/binlog_truncate.test; - -SET BINLOG_FORMAT=STATEMENT; -RESET MASTER; - -source extra/binlog_tests/binlog_truncate.test; - ---echo # Truncate is not supported for SBR if the isolation level is ---echo # READ UNCOMMITTED or READ COMMITTED. These specific isolation ---echo # levels are tested elsewhere. - -let $before_truncate = SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; -source extra/binlog_tests/binlog_truncate.test; - -let $before_truncate = SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; -source extra/binlog_tests/binlog_truncate.test; - -SET BINLOG_FORMAT=@old_binlog_format; === modified file 'mysql-test/suite/binlog/t/disabled.def' --- a/mysql-test/suite/binlog/t/disabled.def 2011-08-03 18:22:00 +0000 +++ b/mysql-test/suite/binlog/t/disabled.def 2011-11-08 14:54:44 +0000 @@ -9,5 +9,4 @@ # Do not use any TAB characters for whitespace. # ############################################################################## -binlog_truncate_innodb : BUG#11764459 2010-10-20 anitha Originally disabled due to BUG#42643. Product bug fixed, but test changes needed binlog_spurious_ddl_errors : BUG#11761680 2010-06-03 alik binlog_spurious_ddl_errors.test fails, thus disabled No bundle (reason: useless for push emails).