From: Date: October 3 2008 2:24pm Subject: bzr commit into mysql-5.1 branch (kgeorge:2757) Bug#39812 List-Archive: http://lists.mysql.com/commits/55245 X-Bug: 39812 Message-Id: <200810031224.m93COkFG028333@magare.gmz> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit #At file:///home/kgeorge/mysql/bzr/B39812-5.1-5.1.29-rc/ 2757 Georgi Kodinov 2008-10-03 Bug #39812: Make statement replication default for 5.1 (to match 5.0) Make STMT replication default for 5.1. Add a default of MIXED into the config files Fix the tests that needed MIXED replication mode. modified: mysql-test/include/mix1.inc mysql-test/r/innodb-semi-consistent.result mysql-test/r/innodb.result mysql-test/r/innodb_mysql.result mysql-test/r/tx_isolation_func.result mysql-test/t/innodb-semi-consistent.test mysql-test/t/innodb.test mysql-test/t/tx_isolation_func.test sql/mysqld.cc support-files/my-huge.cnf.sh support-files/my-innodb-heavy-4G.cnf.sh support-files/my-large.cnf.sh support-files/my-medium.cnf.sh support-files/my-small.cnf.sh per-file messages: mysql-test/include/mix1.inc Bug #39812: Fix the tests that needed MIXED replication mode. mysql-test/r/innodb-semi-consistent.result Bug #39812: Fix the tests that needed MIXED replication mode. mysql-test/r/innodb.result Bug #39812: Fix the tests that needed MIXED replication mode. mysql-test/r/innodb_mysql.result Bug #39812: Fix the tests that needed MIXED replication mode. mysql-test/r/tx_isolation_func.result Bug #39812: Fix the tests that needed MIXED replication mode. mysql-test/t/innodb-semi-consistent.test Bug #39812: Fix the tests that needed MIXED replication mode. mysql-test/t/innodb.test Bug #39812: Fix the tests that needed MIXED replication mode. mysql-test/t/tx_isolation_func.test Bug #39812: Fix the tests that needed MIXED replication mode. sql/mysqld.cc Bug #39812: Make STMT replication default for 5.1. support-files/my-huge.cnf.sh Bug #39812: Add a default of MIXED into the config files support-files/my-innodb-heavy-4G.cnf.sh Bug #39812: Add a default of MIXED into the config files support-files/my-large.cnf.sh Bug #39812: Add a default of MIXED into the config files support-files/my-medium.cnf.sh Bug #39812: Add a default of MIXED into the config files support-files/my-small.cnf.sh Bug #39812: Add a default of MIXED into the config files === modified file 'mysql-test/include/mix1.inc' --- a/mysql-test/include/mix1.inc 2008-07-25 15:12:47 +0000 +++ b/mysql-test/include/mix1.inc 2008-10-03 12:24:19 +0000 @@ -1256,6 +1256,7 @@ connect (con1,localhost,root,,); connect (con2,localhost,root,,); SET SESSION AUTOCOMMIT = 0; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; +set binlog_format=mixed; --echo # Switch to connection con1 connection con1; === modified file 'mysql-test/r/innodb-semi-consistent.result' --- a/mysql-test/r/innodb-semi-consistent.result 2007-11-27 08:25:45 +0000 +++ b/mysql-test/r/innodb-semi-consistent.result 2008-10-03 12:24:19 +0000 @@ -1,4 +1,5 @@ drop table if exists t1; +set binlog_format=mixed; set session transaction isolation level read committed; create table t1(a int not null) engine=innodb DEFAULT CHARSET=latin1; insert into t1 values (1),(2),(3),(4),(5),(6),(7); @@ -6,6 +7,7 @@ set autocommit=0; select * from t1 where a=3 lock in share mode; a 3 +set binlog_format=mixed; set session transaction isolation level read committed; set autocommit=0; update t1 set a=10 where a=5; === modified file 'mysql-test/r/innodb.result' --- a/mysql-test/r/innodb.result 2008-08-20 22:18:33 +0000 +++ b/mysql-test/r/innodb.result 2008-10-03 12:24:19 +0000 @@ -1024,6 +1024,7 @@ id code name 4 2 Erik 5 3 Sasha COMMIT; +SET binlog_format='MIXED'; BEGIN; SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; insert into t1 (code, name) values (3, 'Jeremy'), (4, 'Matt'); @@ -2961,9 +2962,11 @@ drop table t1,t2; create table t1(a int not null, b int, primary key(a)) engine=innodb; insert into t1 values(1,1),(2,2),(3,1),(4,2),(5,1),(6,2),(7,3); commit; +SET binlog_format='MIXED'; set autocommit = 0; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; update t1 set b = 5 where b = 1; +SET binlog_format='MIXED'; set autocommit = 0; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; select * from t1 where a = 7 and b = 3 for update; @@ -3002,6 +3005,7 @@ d e 3 1 8 6 12 1 +SET binlog_format='MIXED'; set autocommit = 0; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; insert into t1 select * from t2; @@ -3032,30 +3036,39 @@ a b 3 1 8 6 12 1 +SET binlog_format='MIXED'; set autocommit = 0; SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; insert into t1 select * from t2; +SET binlog_format='MIXED'; set autocommit = 0; SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; update t3 set b = (select b from t2 where a = d); +SET binlog_format='MIXED'; set autocommit = 0; SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; create table t4(a int not null, b int, primary key(a)) engine=innodb select * from t2; +SET binlog_format='MIXED'; set autocommit = 0; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; insert into t5 (select * from t2 lock in share mode); +SET binlog_format='MIXED'; set autocommit = 0; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; update t6 set e = (select b from t2 where a = d lock in share mode); +SET binlog_format='MIXED'; set autocommit = 0; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; create table t7(a int not null, b int, primary key(a)) engine=innodb select * from t2 lock in share mode; +SET binlog_format='MIXED'; set autocommit = 0; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; insert into t8 (select * from t2 for update); +SET binlog_format='MIXED'; set autocommit = 0; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; update t9 set e = (select b from t2 where a = d for update); +SET binlog_format='MIXED'; set autocommit = 0; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; create table t10(a int not null, b int, primary key(a)) engine=innodb select * from t2 for update; @@ -3202,6 +3215,7 @@ id -10 1 DROP TABLE t1; +SET binlog_format='MIXED'; SET TX_ISOLATION='read-committed'; SET AUTOCOMMIT=0; DROP TABLE IF EXISTS t1, t2; @@ -3212,6 +3226,7 @@ CREATE TABLE t1 ( a int ) ENGINE=InnoDB; CREATE TABLE t2 LIKE t1; SELECT * FROM t2; a +SET binlog_format='MIXED'; SET TX_ISOLATION='read-committed'; SET AUTOCOMMIT=0; INSERT INTO t1 VALUES (1); @@ -3219,10 +3234,12 @@ COMMIT; SELECT * FROM t1 WHERE a=1; a 1 +SET binlog_format='MIXED'; SET TX_ISOLATION='read-committed'; SET AUTOCOMMIT=0; SELECT * FROM t2; a +SET binlog_format='MIXED'; SET TX_ISOLATION='read-committed'; SET AUTOCOMMIT=0; INSERT INTO t1 VALUES (2); === modified file 'mysql-test/r/innodb_mysql.result' --- a/mysql-test/r/innodb_mysql.result 2008-08-11 18:02:03 +0000 +++ b/mysql-test/r/innodb_mysql.result 2008-10-03 12:24:19 +0000 @@ -1512,6 +1512,7 @@ ok drop table t1; SET SESSION AUTOCOMMIT = 0; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; +set binlog_format=mixed; # Switch to connection con1 CREATE TABLE t1 (a INT PRIMARY KEY, b VARCHAR(256)) ENGINE = InnoDB; === modified file 'mysql-test/r/tx_isolation_func.result' --- a/mysql-test/r/tx_isolation_func.result 2008-04-10 13:14:28 +0000 +++ b/mysql-test/r/tx_isolation_func.result 2008-10-03 12:24:19 +0000 @@ -21,8 +21,10 @@ INSERT INTO t1 VALUES(24, 24); '#----------------------------FN_DYNVARS_184_01--------------------------------------#' ** Connection con0 ** SET SESSION tx_isolation = 'READ-UNCOMMITTED'; +set binlog_format=mixed; ** Connection con1 ** SET SESSION tx_isolation = 'READ-UNCOMMITTED'; +set binlog_format=mixed; ** Connection con0 ** START TRANSACTION; SELECT * FROM t1 WHERE a IN (2,4,6,8) FOR UPDATE; === modified file 'mysql-test/t/innodb-semi-consistent.test' --- a/mysql-test/t/innodb-semi-consistent.test 2007-11-27 08:25:45 +0000 +++ b/mysql-test/t/innodb-semi-consistent.test 2008-10-03 12:24:19 +0000 @@ -10,6 +10,7 @@ drop table if exists t1; connect (a,localhost,root,,); connect (b,localhost,root,,); connection a; +set binlog_format=mixed; set session transaction isolation level read committed; create table t1(a int not null) engine=innodb DEFAULT CHARSET=latin1; insert into t1 values (1),(2),(3),(4),(5),(6),(7); @@ -17,6 +18,7 @@ set autocommit=0; # this should lock the entire table select * from t1 where a=3 lock in share mode; connection b; +set binlog_format=mixed; set session transaction isolation level read committed; set autocommit=0; -- error ER_LOCK_WAIT_TIMEOUT === modified file 'mysql-test/t/innodb.test' --- a/mysql-test/t/innodb.test 2008-08-20 22:18:33 +0000 +++ b/mysql-test/t/innodb.test 2008-10-03 12:24:19 +0000 @@ -701,6 +701,7 @@ insert into t1 (code, name) values (2, ' select id, code, name from t1 order by id; COMMIT; +SET binlog_format='MIXED'; BEGIN; SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; insert into t1 (code, name) values (3, 'Jeremy'), (4, 'Matt'); @@ -2000,10 +2001,12 @@ connection a; create table t1(a int not null, b int, primary key(a)) engine=innodb; insert into t1 values(1,1),(2,2),(3,1),(4,2),(5,1),(6,2),(7,3); commit; +SET binlog_format='MIXED'; set autocommit = 0; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; update t1 set b = 5 where b = 1; connection b; +SET binlog_format='MIXED'; set autocommit = 0; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; # @@ -2071,6 +2074,7 @@ commit; set autocommit = 0; select * from t2 for update; connection b; +SET binlog_format='MIXED'; set autocommit = 0; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; insert into t1 select * from t2; @@ -2127,46 +2131,55 @@ commit; set autocommit = 0; select * from t2 for update; connection b; +SET binlog_format='MIXED'; set autocommit = 0; SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; --send insert into t1 select * from t2; connection c; +SET binlog_format='MIXED'; set autocommit = 0; SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; --send update t3 set b = (select b from t2 where a = d); connection d; +SET binlog_format='MIXED'; set autocommit = 0; SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; --send create table t4(a int not null, b int, primary key(a)) engine=innodb select * from t2; connection e; +SET binlog_format='MIXED'; 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; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; --send update t6 set e = (select b from t2 where a = d lock in share mode); connection g; +SET binlog_format='MIXED'; set autocommit = 0; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; --send create table t7(a int not null, b int, primary key(a)) engine=innodb select * from t2 lock in share mode; connection h; +SET binlog_format='MIXED'; set autocommit = 0; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; --send insert into t8 (select * from t2 for update); connection i; +SET binlog_format='MIXED'; set autocommit = 0; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; --send update t9 set e = (select b from t2 where a = d for update); connection j; +SET binlog_format='MIXED'; set autocommit = 0; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; --send @@ -2380,6 +2393,7 @@ DROP TABLE t1; CONNECT (c1,localhost,root,,); CONNECT (c2,localhost,root,,); CONNECTION c1; +SET binlog_format='MIXED'; SET TX_ISOLATION='read-committed'; SET AUTOCOMMIT=0; DROP TABLE IF EXISTS t1, t2; @@ -2387,6 +2401,7 @@ CREATE TABLE t1 ( a int ) ENGINE=InnoDB; CREATE TABLE t2 LIKE t1; SELECT * FROM t2; CONNECTION c2; +SET binlog_format='MIXED'; SET TX_ISOLATION='read-committed'; SET AUTOCOMMIT=0; INSERT INTO t1 VALUES (1); @@ -2398,10 +2413,12 @@ DISCONNECT c2; CONNECT (c1,localhost,root,,); CONNECT (c2,localhost,root,,); CONNECTION c1; +SET binlog_format='MIXED'; SET TX_ISOLATION='read-committed'; SET AUTOCOMMIT=0; SELECT * FROM t2; CONNECTION c2; +SET binlog_format='MIXED'; SET TX_ISOLATION='read-committed'; SET AUTOCOMMIT=0; INSERT INTO t1 VALUES (2); === modified file 'mysql-test/t/tx_isolation_func.test' --- a/mysql-test/t/tx_isolation_func.test 2008-04-14 15:21:18 +0000 +++ b/mysql-test/t/tx_isolation_func.test 2008-10-03 12:24:19 +0000 @@ -75,10 +75,12 @@ INSERT INTO t1 VALUES(24, 24); --echo ** Connection con0 ** connection con0; SET SESSION tx_isolation = 'READ-UNCOMMITTED'; +set binlog_format=mixed; --echo ** Connection con1 ** connection con1; SET SESSION tx_isolation = 'READ-UNCOMMITTED'; +set binlog_format=mixed; # # Testing WHERE on keys using IN clause === modified file 'sql/mysqld.cc' --- a/sql/mysqld.cc 2008-10-01 12:24:35 +0000 +++ b/sql/mysqld.cc 2008-10-03 12:24:19 +0000 @@ -3753,23 +3753,25 @@ with --log-bin instead."); unireg_abort(1); } if (!opt_bin_log) - if (opt_binlog_format_id != BINLOG_FORMAT_UNSPEC) { - sql_print_error("You need to use --log-bin to make " - "--binlog-format work."); - unireg_abort(1); - } + if (opt_binlog_format_id != BINLOG_FORMAT_UNSPEC) + { + sql_print_error("You need to use --log-bin to make " + "--binlog-format work."); + unireg_abort(1); + } else - { - global_system_variables.binlog_format= BINLOG_FORMAT_MIXED; + { + global_system_variables.binlog_format= BINLOG_FORMAT_STMT; } + } else if (opt_binlog_format_id == BINLOG_FORMAT_UNSPEC) - global_system_variables.binlog_format= BINLOG_FORMAT_MIXED; + global_system_variables.binlog_format= BINLOG_FORMAT_STMT; else { DBUG_ASSERT(global_system_variables.binlog_format != BINLOG_FORMAT_UNSPEC); - } + } /* Check that we have not let the format to unspecified at this point */ DBUG_ASSERT((uint)global_system_variables.binlog_format <= === modified file 'support-files/my-huge.cnf.sh' --- a/support-files/my-huge.cnf.sh 2008-07-19 08:31:33 +0000 +++ b/support-files/my-huge.cnf.sh 2008-10-03 12:24:19 +0000 @@ -112,6 +112,9 @@ server-id = 1 # # binary logging - not required for slaves, but recommended #log-bin=mysql-bin +# +# binary logging format - mixed recommended +#binlog_format=mixed # Point the following paths to different dedicated disks #tmpdir = /tmp/ === modified file 'support-files/my-innodb-heavy-4G.cnf.sh' --- a/support-files/my-innodb-heavy-4G.cnf.sh 2008-07-09 22:13:42 +0000 +++ b/support-files/my-innodb-heavy-4G.cnf.sh 2008-10-03 12:24:19 +0000 @@ -191,6 +191,9 @@ tmp_table_size = 64M # the ability to do point in time recovery from your latest backup. log-bin=mysql-bin +# binary logging format - mixed recommended +binlog_format=mixed + # If you're using replication with chained slaves (A->B->C), you need to # enable this option on server B. It enables logging of updates done by # the slave thread into the slave's binary log. === modified file 'support-files/my-large.cnf.sh' --- a/support-files/my-large.cnf.sh 2008-07-19 08:31:33 +0000 +++ b/support-files/my-large.cnf.sh 2008-10-03 12:24:19 +0000 @@ -53,6 +53,9 @@ skip-federated # binary logging is required for replication log-bin=mysql-bin +# binary logging format - mixed recommended +binlog_format=mixed + # required unique id between 1 and 2^32 - 1 # defaults to 1 if master-host is not set # but will not function as a master if omitted === modified file 'support-files/my-medium.cnf.sh' --- a/support-files/my-medium.cnf.sh 2008-07-19 08:31:33 +0000 +++ b/support-files/my-medium.cnf.sh 2008-10-03 12:24:19 +0000 @@ -51,6 +51,9 @@ skip-federated # binary logging is required for replication log-bin=mysql-bin +# binary logging format - mixed recommended +binlog_format=mixed + # required unique id between 1 and 2^32 - 1 # defaults to 1 if master-host is not set # but will not function as a master if omitted === modified file 'support-files/my-small.cnf.sh' --- a/support-files/my-small.cnf.sh 2008-07-09 22:13:42 +0000 +++ b/support-files/my-small.cnf.sh 2008-10-03 12:24:19 +0000 @@ -48,6 +48,9 @@ server-id = 1 # Uncomment the following if you want to log updates #log-bin=mysql-bin +# binary logging format - mixed recommended +#binlog_format=mixed + # Uncomment the following if you are using InnoDB tables #innodb_data_home_dir = @localstatedir@/ #innodb_data_file_path = ibdata1:10M:autoextend