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;