summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <aelkin/elkin@koti.dsl.inet.fi>2007-11-06 13:53:26 +0200
committerunknown <aelkin/elkin@koti.dsl.inet.fi>2007-11-06 13:53:26 +0200
commit3cc49bbe74960f4d6d552d9350a6b1b43bac6d99 (patch)
tree7f4b08c692c987befb9561de1796db8d674d5a2a
parentb4db3f3f0a44292faaee43f01ef3ed2cc76cc5d9 (diff)
downloadmariadb-git-3cc49bbe74960f4d6d552d9350a6b1b43bac6d99.tar.gz
bug#27571
commit is specific for 5.0 to eliminated non-deterministic tests. Those tests run only in 5.1 env where there is a necessary devices such as processlist table of info_schema. mysql-test/r/binlog_killed.result: results changed mysql-test/t/binlog_killed.test: removing non-deterministic part of the test mysql-test/t/binlog_killed_simulate.test: adding the guard same as for 5.1 version
-rw-r--r--mysql-test/r/binlog_killed.result76
-rw-r--r--mysql-test/t/binlog_killed.test118
-rw-r--r--mysql-test/t/binlog_killed_simulate.test1
3 files changed, 19 insertions, 176 deletions
diff --git a/mysql-test/r/binlog_killed.result b/mysql-test/r/binlog_killed.result
index ddd80283eca..eaafc9727cd 100644
--- a/mysql-test/r/binlog_killed.result
+++ b/mysql-test/r/binlog_killed.result
@@ -9,6 +9,9 @@ insert into t2 values (null, null), (null, get_lock("a", 10));
select @result /* must be zero either way */;
@result
0
+select RELEASE_LOCK("a");
+RELEASE_LOCK("a")
+1
delete from t1;
delete from t2;
insert into t1 values (1,1),(2,2);
@@ -17,8 +20,7 @@ update t1 set b=11 where a=2;
update t1 set b=b+10;
kill query ID;
rollback;
-ERROR 70100: Query execution was interrupted
-select * from t1 /* must be the same as before (1,1),(2,2) */;
+select * from t1 order by a /* must be the same as before (1,1),(2,2) */;
a b
1 1
2 2
@@ -27,8 +29,7 @@ delete from t1 where a=2;
delete from t1 where a=2;
kill query ID;
rollback;
-ERROR 70100: Query execution was interrupted
-select * from t1 /* must be the same as before (1,1),(2,2) */;
+select * from t1 order by a /* must be the same as before (1,1),(2,2) */;
a b
1 1
2 2
@@ -41,78 +42,11 @@ begin;
insert into t1 select * from t4 for update;
kill query ID;
rollback;
-ERROR 70100: Query execution was interrupted
rollback;
select * from t1 /* must be the same as before (1,1),(2,2) */;
a b
1 1
2 2
drop table t4;
-create function bug27563(n int)
-RETURNS int(11)
-DETERMINISTIC
-begin
-if n > 1 then
-select get_lock("a", 10) into @a;
-end if;
-return n;
-end|
-delete from t2;
-insert into t2 values (1,1), (2,2);
-reset master;
-select get_lock("a", 20);
-get_lock("a", 20)
-1
-update t2 set b=b + bug27563(b) order by a;
-kill query ID;
-ERROR 70100: Query execution was interrupted
-select * from t2 /* must be (1,2), (2,2) */;
-a b
-1 2
-2 2
-show master status /* must have the update event more to FD */;
-File Position Binlog_Do_DB Binlog_Ignore_DB
-master-bin.000001 211
-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 query is in */;
-0
-0
-select RELEASE_LOCK("a");
-RELEASE_LOCK("a")
-1
-delete from t2;
-insert into t2 values (1,1), (2,2);
-reset master;
-select get_lock("a", 20);
-get_lock("a", 20)
-1
-delete from t2 where a=1 or a=bug27563(2) order by a;
-kill query ID;
-ERROR 70100: Query execution was interrupted
-select * from t2 /* must be (1,2), (2,2) */;
-a b
-1 1
-2 2
-show master status /* must have the update event more to FD */;
-File Position Binlog_Do_DB Binlog_Ignore_DB
-master-bin.000001 98
-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 query is in */;
-0
-0
-select RELEASE_LOCK("a");
-RELEASE_LOCK("a")
-1
-drop function bug27563;
drop table t1,t2,t3;
end of the tests
diff --git a/mysql-test/t/binlog_killed.test b/mysql-test/t/binlog_killed.test
index 0e35e46c845..f8ba7c00f48 100644
--- a/mysql-test/t/binlog_killed.test
+++ b/mysql-test/t/binlog_killed.test
@@ -57,6 +57,8 @@ select @result /* must be zero either way */;
--remove_file $MYSQLTEST_VARDIR/tmp/kill_query_calling_sp.binlog
+connection con1;
+select RELEASE_LOCK("a");
#
# bug#27571 asynchronous setting mysql_`query`::error and Query_log_e::error_code
@@ -68,7 +70,6 @@ select @result /* must be zero either way */;
delete from t1;
delete from t2;
insert into t1 values (1,1),(2,2);
-let $ID= `select connection_id()`;
#
# simple update
@@ -77,6 +78,7 @@ connection con1;
begin; update t1 set b=11 where a=2;
connection con2;
+let $ID= `select connection_id()`;
send update t1 set b=b+10;
connection con1;
@@ -85,9 +87,9 @@ eval kill query $ID;
rollback;
connection con2;
---error ER_QUERY_INTERRUPTED
+--error 0,ER_QUERY_INTERRUPTED
reap;
-select * from t1 /* must be the same as before (1,1),(2,2) */;
+select * from t1 order by a /* must be the same as before (1,1),(2,2) */;
#
# multi update
@@ -120,6 +122,7 @@ connection con1;
begin; delete from t1 where a=2;
connection con2;
+let $ID= `select connection_id()`;
send delete from t1 where a=2;
connection con1;
@@ -128,9 +131,9 @@ eval kill query $ID;
rollback;
connection con2;
---error ER_QUERY_INTERRUPTED
+--error 0,ER_QUERY_INTERRUPTED
reap;
-select * from t1 /* must be the same as before (1,1),(2,2) */;
+select * from t1 order by a /* must be the same as before (1,1),(2,2) */;
#
# multi delete
@@ -163,6 +166,7 @@ insert into t4 values (3, 3);
begin; insert into t1 values (3, 3);
connection con2;
+let $ID= `select connection_id()`;
begin;
send insert into t1 select * from t4 for update;
@@ -172,7 +176,7 @@ eval kill query $ID;
rollback;
connection con2;
---error ER_QUERY_INTERRUPTED
+--error 0,ER_QUERY_INTERRUPTED
reap;
rollback;
select * from t1 /* must be the same as before (1,1),(2,2) */;
@@ -182,106 +186,10 @@ drop table t4; # cleanup for the sub-case
###
## non-ta table case: killing must be recorded in binlog
###
-delimiter |;
-create function bug27563(n int)
-RETURNS int(11)
-DETERMINISTIC
-begin
- if n > 1 then
- select get_lock("a", 10) into @a;
- end if;
- return n;
-end|
-delimiter ;|
-
-#
-# update
-#
-
-delete from t2;
-insert into t2 values (1,1), (2,2);
-reset master;
-connection con1;
-select get_lock("a", 20);
-
-connection con2;
-let $ID= `select connection_id()`;
-send update t2 set b=b + bug27563(b) order by a;
-
-connection con1;
---replace_result $ID ID
-eval kill query $ID;
-
-connection con2;
---error ER_QUERY_INTERRUPTED
-reap;
-select * from t2 /* must be (1,2), (2,2) */;
-show master status /* must have the update event more to FD */;
-
-# a proof the query is binlogged with an error
-
---exec $MYSQL_BINLOG --start-position=98 $MYSQLTEST_VARDIR/log/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog
---replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
-eval select
-(@a:=load_file("$MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog"))
-is not null;
---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
-let $error_code= `select @a like "%#%error_code=0%" /* must return 0*/`;
-eval select $error_code /* must return 0 to mean the killed query is in */;
-
-# cleanup for the sub-case
-connection con1;
-select RELEASE_LOCK("a");
---remove_file $MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog
-
-#
-# delete
-#
-
-delete from t2;
-insert into t2 values (1,1), (2,2);
-reset master;
-connection con1;
-select get_lock("a", 20);
-
-connection con2;
-let $ID= `select connection_id()`;
-send delete from t2 where a=1 or a=bug27563(2) order by a;
-
-connection con1;
---replace_result $ID ID
-eval kill query $ID;
-
-connection con2;
---error ER_QUERY_INTERRUPTED
-reap;
-select * from t2 /* must be (1,2), (2,2) */;
-show master status /* must have the update event more to FD */;
-
-# a proof the query is binlogged with an error
-
---exec $MYSQL_BINLOG --start-position=98 $MYSQLTEST_VARDIR/log/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog
---replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
-eval select
-(@a:=load_file("$MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog"))
-is not null;
---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
-let $error_code= `select @a like "%#%error_code=0%" /* must return 0*/`;
-eval select $error_code /* must return 0 to mean the killed query is in */;
-
-# cleanup for the sub-case
-connection con1;
-select RELEASE_LOCK("a");
---remove_file $MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog
-
-#
-# load data - see simulation tests
-#
-
-
-# bug#27571 cleanup
-drop function bug27563;
+# In order to be deterministic the test needs INFORMATION_SCHEMA.PROCESSLIST
+# which is not available on 5.0 at this time.
+# Therefore, skip this part on 5.0.
#
diff --git a/mysql-test/t/binlog_killed_simulate.test b/mysql-test/t/binlog_killed_simulate.test
index d6234d1bfd7..670cd756803 100644
--- a/mysql-test/t/binlog_killed_simulate.test
+++ b/mysql-test/t/binlog_killed_simulate.test
@@ -1,3 +1,4 @@
+-- source include/have_debug.inc
#
# bug#27571 asynchronous setting mysql_$query()'s local error and
# Query_log_event::error_code