summaryrefslogtreecommitdiffstats
path: root/mysql-test/suite/binlog/r/binlog_killed.result
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/binlog/r/binlog_killed.result')
-rw-r--r--mysql-test/suite/binlog/r/binlog_killed.result275
1 files changed, 275 insertions, 0 deletions
diff --git a/mysql-test/suite/binlog/r/binlog_killed.result b/mysql-test/suite/binlog/r/binlog_killed.result
new file mode 100644
index 00000000..ae851c38
--- /dev/null
+++ b/mysql-test/suite/binlog/r/binlog_killed.result
@@ -0,0 +1,275 @@
+call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
+connect con1, localhost, root,,;
+connect con2, localhost, root,,;
+create table t1 (a int auto_increment, b int, PRIMARY KEY (a)) ENGINE=InnoDB;
+create table t2 (a int auto_increment, b int, PRIMARY KEY (a)) ENGINE=MyISAM;
+create table t3 (a int auto_increment, b int, PRIMARY KEY (a)) ENGINE=InnoDB;
+connection con1;
+select get_lock("a", 20);
+get_lock("a", 20)
+1
+connection con2;
+reset master;
+insert into t2 values (null, null), (null, get_lock("a", 10));
+connection con1;
+kill query ID;
+connection con2;
+select
+(@a:=load_file("MYSQLTEST_VARDIR/tmp/kill_query_calling_sp.binlog"))
+is not null;
+set @result= 2 - 1 - 1;
+select @result /* must be zero either way */;
+@result
+0
+connection con1;
+select RELEASE_LOCK("a");
+RELEASE_LOCK("a")
+1
+delete from t1;
+delete from t2;
+insert into t1 values (1,1),(2,2);
+connection con1;
+begin;
+update t1 set b=11 where a=2;
+connection con2;
+begin;
+update t1 set b=b+10;
+connection con1;
+kill query ID;
+rollback;
+connection con2;
+rollback;
+select * from t1 order by a /* must be the same as before (1,1),(2,2) */;
+a b
+1 1
+2 2
+connection con1;
+begin;
+delete from t1 where a=2;
+connection con2;
+begin;
+delete from t1 where a=2;
+connection con1;
+kill query ID;
+rollback;
+connection con2;
+rollback;
+select * from t1 order by a /* must be the same as before (1,1),(2,2) */;
+a b
+1 1
+2 2
+connection con1;
+drop table if exists t4;
+create table t4 (a int, b int) engine=innodb;
+insert into t4 values (3, 3);
+begin;
+insert into t1 values (3, 3);
+connection con2;
+begin;
+insert into t1 select * from t4 for update;
+connection con1;
+kill query ID;
+rollback;
+connection con2;
+rollback;
+select * from t1 /* must be the same as before (1,1),(2,2) */;
+a b
+1 1
+2 2
+drop table t4;
+create table t4 (a int, b int) ENGINE=MyISAM /* for killing update and delete */;
+create function bug27563(n int)
+RETURNS int(11)
+NOT DETERMINISTIC
+begin
+if @b > 0 then
+select get_lock("a", 20) into @a;
+else
+set @b= 1;
+end if;
+return n;
+end|
+delete from t4;
+insert into t4 values (1,1), (1,1);
+reset master;
+connection con1;
+select get_lock("a", 20);
+get_lock("a", 20)
+1
+connection con2;
+set @b= 0;
+update t4 set b=b + bug27563(b);
+connection con1;
+select count(*) FROM INFORMATION_SCHEMA.PROCESSLIST where state='User lock';
+count(*)
+1
+kill query ID;
+connection con2;
+ERROR 70100: Query execution was interrupted
+select * from t4 order by b /* must be (1,1), (1,2) */;
+a b
+1 1
+1 2
+select @b /* must be 1 at the end of a stmt calling bug27563() */;
+@b
+1
+must have the update query event on the 4th line
+include/show_binlog_events.inc
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 # Gtid # # BEGIN GTID #-#-#
+master-bin.000001 # User var # # @`b`=0
+master-bin.000001 # Query # # use `test`; update t4 set b=b + bug27563(b)
+master-bin.000001 # Query # # COMMIT
+*** a proof the query is binlogged with an error ***
+select
+(@a:=load_file("MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog"))
+is not null;
+(@a:=load_file("MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog"))
+is not null
+1
+select 0 /* must return 0 to mean the killed update is in */;
+0
+0
+connection con1;
+select RELEASE_LOCK("a");
+RELEASE_LOCK("a")
+1
+delete from t4;
+insert into t4 values (1,1), (2,2);
+reset master;
+connection con1;
+select get_lock("a", 20);
+get_lock("a", 20)
+1
+connection con2;
+set @b= 0;
+delete from t4 where b=bug27563(1) or b=bug27563(2);
+connection con1;
+select count(*) FROM INFORMATION_SCHEMA.PROCESSLIST where state='User lock';
+count(*)
+1
+kill query ID;
+connection con2;
+ERROR 70100: Query execution was interrupted
+select count(*) from t4 /* must be 1 */;
+count(*)
+1
+select @b /* must be 1 at the end of a stmt calling bug27563() */;
+@b
+1
+must have the delete query event on the 4th line
+include/show_binlog_events.inc
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 # Gtid # # BEGIN GTID #-#-#
+master-bin.000001 # User var # # @`b`=0
+master-bin.000001 # Query # # use `test`; delete from t4 where b=bug27563(1) or b=bug27563(2)
+master-bin.000001 # Query # # COMMIT
+select
+(@a:=load_file("MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog"))
+is not null;
+(@a:=load_file("MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog"))
+is not null
+1
+select 0 /* must return 0 to mean the killed delete is in */;
+0
+0
+connection con1;
+select RELEASE_LOCK("a");
+RELEASE_LOCK("a")
+1
+drop table t4;
+drop function bug27563;
+FLUSH LOGS;
+connect con3, localhost, root,,;
+connection con3;
+MI: MyISAM, INNODB
+BEGIN;
+INSERT INTO t2 VALUES (NULL, 1);
+INSERT INTO t1 VALUES (NULL, 2);
+connection con1;
+KILL ID;
+include/show_binlog_events.inc
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000002 # Format_desc # # SERVER_VERSION, BINLOG_VERSION
+master-bin.000002 # Gtid_list # # [#-#-#]
+master-bin.000002 # Gtid # # BEGIN GTID #-#-#
+master-bin.000002 # Intvar # # INSERT_ID=3
+master-bin.000002 # Query # # use `test`; INSERT INTO t2 VALUES (NULL, 1)
+master-bin.000002 # Query # # COMMIT
+master-bin.000002 # Gtid # # BEGIN GTID #-#-#
+master-bin.000002 # Intvar # # INSERT_ID=4
+master-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (NULL, 2)
+master-bin.000002 # Query # # ROLLBACK
+disconnect con3;
+connect con3, localhost, root,,;
+connection con3;
+IM: INNODB, MyISAM
+BEGIN;
+INSERT INTO t1 VALUES (NULL, 3);
+INSERT INTO t2 VALUES (NULL, 4);
+connection con1;
+KILL ID;
+include/show_binlog_events.inc
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000002 # Gtid # # BEGIN GTID #-#-#
+master-bin.000002 # Intvar # # INSERT_ID=4
+master-bin.000002 # Query # # use `test`; INSERT INTO t2 VALUES (NULL, 4)
+master-bin.000002 # Query # # COMMIT
+master-bin.000002 # Gtid # # BEGIN GTID #-#-#
+master-bin.000002 # Intvar # # INSERT_ID=5
+master-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (NULL, 3)
+master-bin.000002 # Query # # ROLLBACK
+disconnect con3;
+connect con3, localhost, root,,;
+connection con3;
+IMI: INNODB, MyISAM, INNODB
+BEGIN;
+INSERT INTO t1 VALUES (NULL, 5);
+INSERT INTO t2 VALUES (NULL, 6);
+INSERT INTO t1 VALUES (NULL, 7);
+connection con1;
+KILL ID;
+include/show_binlog_events.inc
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000002 # Gtid # # BEGIN GTID #-#-#
+master-bin.000002 # Intvar # # INSERT_ID=5
+master-bin.000002 # Query # # use `test`; INSERT INTO t2 VALUES (NULL, 6)
+master-bin.000002 # Query # # COMMIT
+master-bin.000002 # Gtid # # BEGIN GTID #-#-#
+master-bin.000002 # Intvar # # INSERT_ID=6
+master-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (NULL, 5)
+master-bin.000002 # Intvar # # INSERT_ID=7
+master-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (NULL, 7)
+master-bin.000002 # Query # # ROLLBACK
+disconnect con3;
+connect con3, localhost, root,,;
+connection con3;
+MI2: MyISAM, INNODB, MyISAM, INNODB
+BEGIN;
+INSERT INTO t2 VALUES (NULL, 8);
+INSERT INTO t1 VALUES (NULL, 9);
+INSERT INTO t2 VALUES (NULL, 10);
+INSERT INTO t1 VALUES (NULL, 11);
+connection con1;
+KILL ID;
+include/show_binlog_events.inc
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000002 # Gtid # # BEGIN GTID #-#-#
+master-bin.000002 # Intvar # # INSERT_ID=6
+master-bin.000002 # Query # # use `test`; INSERT INTO t2 VALUES (NULL, 8)
+master-bin.000002 # Query # # COMMIT
+master-bin.000002 # Gtid # # BEGIN GTID #-#-#
+master-bin.000002 # Intvar # # INSERT_ID=7
+master-bin.000002 # Query # # use `test`; INSERT INTO t2 VALUES (NULL, 10)
+master-bin.000002 # Query # # COMMIT
+master-bin.000002 # Gtid # # BEGIN GTID #-#-#
+master-bin.000002 # Intvar # # INSERT_ID=8
+master-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (NULL, 9)
+master-bin.000002 # Intvar # # INSERT_ID=9
+master-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (NULL, 11)
+master-bin.000002 # Query # # ROLLBACK
+connection default;
+disconnect con1;
+disconnect con2;
+drop table t1,t2,t3;
+end of the tests