Commit aea86c66 authored by unknown's avatar unknown

Merge mysql.com:/Users/davi/mysql/bugs/31479-5.0

into  mysql.com:/Users/davi/mysql/mysql-5.0-runtime

parents 77ab800e 4b002635
...@@ -88,3 +88,14 @@ alter table t1 auto_increment=0; alter table t1 auto_increment=0; alter table t1 ...@@ -88,3 +88,14 @@ alter table t1 auto_increment=0; alter table t1 auto_increment=0; alter table t1
alter table t1 auto_increment=0; alter table t1 auto_increment=0; alter table t1 auto_increment=0; alter table t1 auto_increment=0; alter table t1 auto_increment=0; // alter table t1 auto_increment=0; alter table t1 auto_increment=0; alter table t1 auto_increment=0; alter table t1 auto_increment=0; alter table t1 auto_increment=0; //
unlock tables; unlock tables;
drop table t1; drop table t1;
drop table if exists t1;
create table t1 (a int);
connection: locker
lock tables t1 read;
connection: writer
create table t2 like t1;;
connection: default
kill query
ERROR 70100: Query execution was interrupted
unlock tables;
drop table t1;
...@@ -249,4 +249,36 @@ reap; ...@@ -249,4 +249,36 @@ reap;
connection locker; connection locker;
drop table t1; drop table t1;
#
# Bug#31479 Bad lock interaction if CREATE TABLE LIKE is killed
#
--disable_warnings
drop table if exists t1;
--enable_warnings
create table t1 (a int);
--echo connection: locker
connection locker;
lock tables t1 read;
--echo connection: writer
connection writer;
let $ID= `select connection_id()`;
--send create table t2 like t1;
--echo connection: default
connection default;
let $show_type= open tables where in_use=2 and name_locked=1;
let $show_pattern= '%t1%2%1';
--source include/wait_show_pattern.inc
--echo kill query
disable_query_log;
eval kill query $ID;
enable_query_log;
connection writer;
--error ER_QUERY_INTERRUPTED
--reap
connection locker;
unlock tables;
connection default;
drop table t1;
# End of 5.0 tests # End of 5.0 tests
...@@ -2761,7 +2761,7 @@ bool mysql_create_like_table(THD* thd, TABLE_LIST* table, TABLE_LIST *src_table, ...@@ -2761,7 +2761,7 @@ bool mysql_create_like_table(THD* thd, TABLE_LIST* table, TABLE_LIST *src_table,
operations on the target table. operations on the target table.
*/ */
if (lock_and_wait_for_table_name(thd, src_table)) if (lock_and_wait_for_table_name(thd, src_table))
goto err; DBUG_RETURN(res);
pthread_mutex_lock(&LOCK_open); pthread_mutex_lock(&LOCK_open);
......
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