From 2b2ae926f439980f6de50bbae25b37b8b141992f Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 25 Mar 2008 17:28:12 +0400 Subject: [PATCH] BUG#34768 - nondeterministic INSERT using LIMIT logged in stmt mode if binlog_format=mixed Addition to fix for BUG#34768: fixed test case failures discovered by pushbuild. mysql-test/suite/binlog/r/binlog_stm_ps.result: Fixed binlog_stm_ps failure when binlog format is statement: - this test case makes sence only if binlog format is statement, thus execute it only in this mode; - added a warning that insert ... select ... limit is not safe to execute in statement mode. mysql-test/suite/binlog/t/binlog_stm_ps.test: Fixed binlog_stm_ps failure when binlog format is statement: - this test case makes sence only if binlog format is statement, thus execute it only in this mode; - added a warning that insert ... select ... limit is not safe to execute in statement mode. mysql-test/suite/rpl/t/rpl_optimize.test: rpl_optimize test may be executed in various binlog format modes. In statement mode delete ... limit issues a warning, in mixed and row modes it does not. Fixed a test case so it is still possible to execute it in all binlog format modes by ignoring delete ... limit warnings. mysql-test/suite/rpl/t/rpl_user_variables.test: rpl_user_variables test may be executed in various binlog format modes. In statement mode insert ... select ... limit issues a warning, in mixed and row modes it does not. Fixed a test case so it is still possible to execute it in all binlog format modes by ignoring insert ... select ... limit warnings. --- mysql-test/suite/binlog/r/binlog_stm_ps.result | 5 +++-- mysql-test/suite/binlog/t/binlog_stm_ps.test | 2 +- mysql-test/suite/rpl/t/rpl_optimize.test | 2 ++ mysql-test/suite/rpl/t/rpl_user_variables.test | 2 ++ 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/mysql-test/suite/binlog/r/binlog_stm_ps.result b/mysql-test/suite/binlog/r/binlog_stm_ps.result index 2128367deb5..1cf7429987e 100644 --- a/mysql-test/suite/binlog/r/binlog_stm_ps.result +++ b/mysql-test/suite/binlog/r/binlog_stm_ps.result @@ -10,12 +10,13 @@ execute s using @a; prepare s from "insert into t1 select 100 limit ?"; set @a=100; execute s using @a; +Warnings: +Warning 1592 Statement is not safe to log in statement format. show binlog events from ; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Query # # use `test`; create table t1 (a int) master-bin.000001 # User var # # @`a`=98 master-bin.000001 # Query # # use `test`; insert into t1 values (@a),(98) master-bin.000001 # Query # # use `test`; insert into t1 values (99) -master-bin.000001 # Table_map # # table_id: # (test.t1) -master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # use `test`; insert into t1 select 100 limit 100 drop table t1; diff --git a/mysql-test/suite/binlog/t/binlog_stm_ps.test b/mysql-test/suite/binlog/t/binlog_stm_ps.test index 83add5af3d7..55e3d30ad23 100644 --- a/mysql-test/suite/binlog/t/binlog_stm_ps.test +++ b/mysql-test/suite/binlog/t/binlog_stm_ps.test @@ -1,7 +1,7 @@ # This test is to verify replication with PS -- source include/not_embedded.inc --- source include/have_binlog_format_mixed_or_statement.inc +-- source include/have_binlog_format_statement.inc -- disable_query_log reset master; # get rid of previous tests binlog diff --git a/mysql-test/suite/rpl/t/rpl_optimize.test b/mysql-test/suite/rpl/t/rpl_optimize.test index 80f0c052fc8..f4582ba1167 100644 --- a/mysql-test/suite/rpl/t/rpl_optimize.test +++ b/mysql-test/suite/rpl/t/rpl_optimize.test @@ -31,7 +31,9 @@ INSERT INTO t1 (a) SELECT null FROM t1; save_master_pos; # a few updates to force OPTIMIZE to do something update t1 set b=(a/2*rand()); +--disable_warnings delete from t1 order by b limit 10000; +--enable_warnings connection slave; sync_with_master; diff --git a/mysql-test/suite/rpl/t/rpl_user_variables.test b/mysql-test/suite/rpl/t/rpl_user_variables.test index 21b2063c9f2..8d570f28f64 100644 --- a/mysql-test/suite/rpl/t/rpl_user_variables.test +++ b/mysql-test/suite/rpl/t/rpl_user_variables.test @@ -315,7 +315,9 @@ create table t1(a int); insert into t1 values (1),(2); prepare s1 from 'insert into t1 select a from t1 limit ?'; set @x='1.1'; +--disable_warnings execute s1 using @x; +--enable_warnings select * from t1; sync_slave_with_master; connection slave;