Commit 0dc13ecd authored by aelkin/elkin@koti.dsl.inet.fi's avatar aelkin/elkin@koti.dsl.inet.fi
Browse files

Merge koti.dsl.inet.fi:/home/elkin/MySQL/TEAM/FIXES/5.0/bug27571_asyn_killed_flags

into  koti.dsl.inet.fi:/home/elkin/MySQL/merge-5.1
parents 904db2cf 86c3c0b0
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -17,18 +17,22 @@ delete from t2;
insert into t1 values (1,1),(2,2);
begin;
update t1 set b=11 where a=2;
begin;
update t1 set b=b+10;
kill query ID;
rollback;
rollback;
select * from t1  order by a /* must be the same as before (1,1),(2,2) */;
a	b
1	1
2	2
begin;
delete from t1 where a=2;
begin;
delete from t1 where a=2;
kill query ID;
rollback;
rollback;
select * from t1 order by a /* must be the same as before (1,1),(2,2) */;
a	b
1	1
+15 −0
Original line number Diff line number Diff line
@@ -79,6 +79,7 @@ begin; update t1 set b=11 where a=2;

connection con2;
let $ID= `select connection_id()`;
begin;
send update t1 set b=b+10;

connection con1;
@@ -86,9 +87,18 @@ connection con1;
eval kill query $ID;
rollback;

# Bug #32148  	killi query may be ineffective 
# forced to comment out the test's outcome 
# and mask out ineffective ER_QUERY_INTERRUPTED
# todo1: revert back upon fixing bug#32148
# todo2: the tests need refining in that
#        killing should wait till the victim requested
#        its lock (wait_condition available in 5.1 tests)

connection con2;
--error 0,ER_QUERY_INTERRUPTED
reap;
rollback;
select * from t1  order by a /* must be the same as before (1,1),(2,2) */;

#
@@ -123,6 +133,7 @@ begin; delete from t1 where a=2;

connection con2;
let $ID= `select connection_id()`;
begin;
send delete from t1 where a=2;

connection con1;
@@ -133,8 +144,11 @@ rollback;
connection con2;
--error 0,ER_QUERY_INTERRUPTED
reap;
rollback;
# todo1,2 above
select * from t1 order by a /* must be the same as before (1,1),(2,2) */;


#
# multi delete
# the same as for multi-update
@@ -178,6 +192,7 @@ rollback;
connection con2;
--error 0,ER_QUERY_INTERRUPTED
reap;
# todo 1,2 above
rollback;
select * from t1 /* must be the same as before (1,1),(2,2) */;

+0 −6
Original line number Diff line number Diff line
@@ -106,9 +106,3 @@ connection slave;
sync_with_master;

# End of 4.1 tests

# Cleanup
# The A->B->A replication causes the master to start writing relay logs
# in var/run, remove them
remove_file $MYSQLTEST_VARDIR/run/master-relay-bin.000001;
remove_file $MYSQLTEST_VARDIR/run/master-relay-bin.index;
+2 −1
Original line number Diff line number Diff line
@@ -208,8 +208,9 @@ select * from t1;

connection master; 
drop table t1;
--remove_file $MYSQLTEST_VARDIR/tmp/bug14157.sql

# Delete the anonymous users
source include/delete_anonymous_users.inc;

# End of 5.1 tests
# End of tests
+3 −7
Original line number Diff line number Diff line
@@ -2157,13 +2157,9 @@ const char *MYSQL_LOG::generate_name(const char *log_name,
{
  if (!log_name || !log_name[0])
  {
    /*
      TODO: The following should be using fn_format();  We just need to
      first change fn_format() to cut the file name if it's too long.
    */
    strmake(buff, pidfile_name, FN_REFLEN - 5);
    strmov(fn_ext(buff), suffix);
    return (const char *)buff;
    strmake(buff, pidfile_name, FN_REFLEN - strlen(suffix) - 1);
    return (const char *)
      fn_format(buff, buff, "", suffix, MYF(MY_REPLACE_EXT|MY_REPLACE_DIR));
  }
  // get rid of extension if the log is binary to avoid problems
  if (strip_ext)