From b49cb4fbb4d1c17c3d66220a7b5c079d6c23e4ce Mon Sep 17 00:00:00 2001 From: "aelkin@dl145j.mysql.com" <> Date: Mon, 16 Apr 2007 16:55:37 +0200 Subject: [PATCH] Bug #27395 OPTION_STATUS_NO_TRANS_UPDATE is not preserved at the end of SF() tests for the bug and associated is moved into another file because they appeared to be binlog-format sensitive. --- mysql-test/r/sp_trans.result | 25 ------------------- mysql-test/r/sp_trans_log.result | 28 +++++++++++++++++++++ mysql-test/t/sp_trans.test | 31 ----------------------- mysql-test/t/sp_trans_log.test | 42 ++++++++++++++++++++++++++++++++ 4 files changed, 70 insertions(+), 56 deletions(-) create mode 100644 mysql-test/r/sp_trans_log.result create mode 100644 mysql-test/t/sp_trans_log.test diff --git a/mysql-test/r/sp_trans.result b/mysql-test/r/sp_trans.result index c976ea7a415..a0d687e565b 100644 --- a/mysql-test/r/sp_trans.result +++ b/mysql-test/r/sp_trans.result @@ -556,28 +556,3 @@ f1 bug13575(f1) 3 ccc drop function bug13575| drop table t3| -drop function if exists bug23333| -drop table if exists t1,t2| -CREATE TABLE t1 (a int NOT NULL auto_increment primary key) ENGINE=MyISAM| -CREATE TABLE t2 (a int NOT NULL auto_increment, b int, PRIMARY KEY (a)) ENGINE=InnoDB| -insert into t2 values (1,1)| -create function bug23333() -RETURNS int(11) -DETERMINISTIC -begin -insert into t1 values (null); -select count(*) from t1 into @a; -return @a; -end| -reset master| -insert into t2 values (bug23333(),1)| -ERROR 23000: Duplicate entry '1' for key 'PRIMARY' -show binlog events from 106 /* with fixes for #23333 will show there is the query */| -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Table_map 1 # # -master-bin.000001 # Table_map 1 # # -master-bin.000001 # Write_rows 1 # # -master-bin.000001 # Query 1 # # -select count(*),@a from t1 /* must be 1,1 */| -count(*) @a -1 1 diff --git a/mysql-test/r/sp_trans_log.result b/mysql-test/r/sp_trans_log.result new file mode 100644 index 00000000000..a0bfcb26bf8 --- /dev/null +++ b/mysql-test/r/sp_trans_log.result @@ -0,0 +1,28 @@ +drop function if exists bug23333| +drop table if exists t1,t2| +CREATE TABLE t1 (a int NOT NULL auto_increment primary key) ENGINE=MyISAM| +CREATE TABLE t2 (a int NOT NULL auto_increment, b int, PRIMARY KEY (a)) ENGINE=InnoDB| +Warnings: +Warning 1266 Using storage engine MyISAM for table 't2' +insert into t2 values (1,1)| +create function bug23333() +RETURNS int(11) +DETERMINISTIC +begin +insert into t1 values (null); +select count(*) from t1 into @a; +return @a; +end| +reset master| +insert into t2 values (bug23333(),1)| +ERROR 23000: Duplicate entry '1' for key 'PRIMARY' +show binlog events from 106 /* with fixes for #23333 will show there is the query */| +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Table_map 1 # # +master-bin.000001 # Table_map 1 # # +master-bin.000001 # Write_rows 1 # # +select count(*),@a from t1 /* must be 1,1 */| +count(*) @a +1 1 +drop table t1,t2; +drop function if exists bug23333; diff --git a/mysql-test/t/sp_trans.test b/mysql-test/t/sp_trans.test index d57fb980956..a79f6c7e7e0 100644 --- a/mysql-test/t/sp_trans.test +++ b/mysql-test/t/sp_trans.test @@ -592,37 +592,6 @@ drop function bug13575| drop table t3| -# -# Bug #13270 INSERT,UPDATE,etc that calls func with side-effect does not binlog -# Bug #23333 stored function + non-transac table + transac table = -# breaks stmt-based binlog -# Bug #27395 OPTION_STATUS_NO_TRANS_UPDATE is not preserved at the end of SF() -# ---disable_warnings -drop function if exists bug23333| -drop table if exists t1,t2| ---enable_warnings - CREATE TABLE t1 (a int NOT NULL auto_increment primary key) ENGINE=MyISAM| - CREATE TABLE t2 (a int NOT NULL auto_increment, b int, PRIMARY KEY (a)) ENGINE=InnoDB| - -insert into t2 values (1,1)| - -create function bug23333() -RETURNS int(11) -DETERMINISTIC -begin - insert into t1 values (null); - select count(*) from t1 into @a; - return @a; -end| - -reset master| ---error ER_DUP_ENTRY_WITH_KEY_NAME -insert into t2 values (bug23333(),1)| ---replace_column 2 # 5 # 6 # -show binlog events from 106 /* with fixes for #23333 will show there is the query */| -select count(*),@a from t1 /* must be 1,1 */| - # # BUG#NNNN: New bug synopsis # diff --git a/mysql-test/t/sp_trans_log.test b/mysql-test/t/sp_trans_log.test new file mode 100644 index 00000000000..aeb510b6360 --- /dev/null +++ b/mysql-test/t/sp_trans_log.test @@ -0,0 +1,42 @@ +# part of sp_trans test that appeared to be sensitive to binlog format +--source include/have_binlog_format_mixed_or_row.inc + +delimiter |; + +# +# Bug #13270 INSERT,UPDATE,etc that calls func with side-effect does not binlog +# Bug #23333 stored function + non-transac table + transac table = +# breaks stmt-based binlog +# Bug #27395 OPTION_STATUS_NO_TRANS_UPDATE is not preserved at the end of SF() +# +--disable_warnings +drop function if exists bug23333| +drop table if exists t1,t2| +--enable_warnings + CREATE TABLE t1 (a int NOT NULL auto_increment primary key) ENGINE=MyISAM| + CREATE TABLE t2 (a int NOT NULL auto_increment, b int, PRIMARY KEY (a)) ENGINE=InnoDB| + +insert into t2 values (1,1)| + +create function bug23333() +RETURNS int(11) +DETERMINISTIC +begin + insert into t1 values (null); + select count(*) from t1 into @a; + return @a; +end| + +reset master| +--error ER_DUP_ENTRY_WITH_KEY_NAME +insert into t2 values (bug23333(),1)| +--replace_column 2 # 5 # 6 # +show binlog events from 106 /* with fixes for #23333 will show there is the query */| +select count(*),@a from t1 /* must be 1,1 */| + +delimiter ;| + +# clean-up + +drop table t1,t2; +drop function if exists bug23333;