Commit 27e2f30e authored by unknown's avatar unknown

Post-merge test case for Bug 31409


mysql-test/include/handler.inc:
  Add test case for Bug 31409
mysql-test/r/handler_innodb.result:
  Add test case result for InnoDB run of the handler test for Bug 31409
mysql-test/r/handler_myisam.result:
  Add test case result for MyISAM run of the handler test for Bug 31409
parent b24d4a97
...@@ -533,3 +533,36 @@ reap; ...@@ -533,3 +533,36 @@ reap;
connection default; connection default;
drop table t1,t2; drop table t1,t2;
disconnect flush; disconnect flush;
#
# Bug#31409 RENAME TABLE causes server crash or deadlock when used with HANDLER statements
#
--disable_warnings
drop table if exists t1,t2;
--enable_warnings
create table t1 (c1 int);
--echo connection: default
handler t1 open;
handler t1 read first;
connect (flush,localhost,root,,);
connection flush;
--echo connection: flush
--send rename table t1 to t2;
connection default;
--echo connection: default
let $wait_condition=
select count(*) = 1 from information_schema.processlist
where state = "Waiting for table" and info = "rename table t1 to t2";
--source include/wait_condition.inc
handler t2 open;
handler t2 read first;
--error ER_NO_SUCH_TABLE
handler t1 read next;
handler t1 close;
handler t2 close;
connection flush;
reap;
connection default;
drop table t2;
disconnect flush;
...@@ -554,6 +554,24 @@ c1 ...@@ -554,6 +554,24 @@ c1
2 2
handler t1 read next; handler t1 read next;
c1 c1
1
handler t1 close; handler t1 close;
handler t2 close; handler t2 close;
drop table t1,t2; drop table t1,t2;
drop table if exists t1,t2;
create table t1 (c1 int);
connection: default
handler t1 open;
handler t1 read first;
c1
connection: flush
rename table t1 to t2;;
connection: default
handler t2 open;
handler t2 read first;
c1
handler t1 read next;
ERROR 42S02: Table 'test.t1' doesn't exist
handler t1 close;
handler t2 close;
drop table t2;
...@@ -554,6 +554,24 @@ c1 ...@@ -554,6 +554,24 @@ c1
2 2
handler t1 read next; handler t1 read next;
c1 c1
1
handler t1 close; handler t1 close;
handler t2 close; handler t2 close;
drop table t1,t2; drop table t1,t2;
drop table if exists t1,t2;
create table t1 (c1 int);
connection: default
handler t1 open;
handler t1 read first;
c1
connection: flush
rename table t1 to t2;;
connection: default
handler t2 open;
handler t2 read first;
c1
handler t1 read next;
ERROR 42S02: Table 'test.t1' doesn't exist
handler t1 close;
handler t2 close;
drop table t2;
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment