mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 20:12:31 +01:00
A fix (Bug #5232: CREATE TABLE ... SELECT can deadlock itself).
This commit is contained in:
parent
1176c17553
commit
bf26880291
3 changed files with 36 additions and 0 deletions
|
@ -610,3 +610,12 @@ x y
|
|||
1 3
|
||||
1 2
|
||||
drop table t1,t2,t3;
|
||||
create table t1 (a int);
|
||||
create table t2 (a int);
|
||||
insert into t1 values (0);
|
||||
insert into t2 values (1);
|
||||
create table t3 engine=merge union=(t1, t2) select * from t1;
|
||||
INSERT TABLE 't1' isn't allowed in FROM table list
|
||||
create table t3 engine=merge union=(t1, t2) select * from t2;
|
||||
INSERT TABLE 't2' isn't allowed in FROM table list
|
||||
drop table t1, t2;
|
||||
|
|
|
@ -250,3 +250,17 @@ select * from t3 where x = 1 and y < 5 order by y;
|
|||
# Bug is that followng query returns empty set while it must be same as above
|
||||
select * from t3 where x = 1 and y < 5 order by y desc;
|
||||
drop table t1,t2,t3;
|
||||
|
||||
#
|
||||
# Bug#5232: CREATE TABLE ... SELECT
|
||||
#
|
||||
|
||||
create table t1 (a int);
|
||||
create table t2 (a int);
|
||||
insert into t1 values (0);
|
||||
insert into t2 values (1);
|
||||
--error 1093
|
||||
create table t3 engine=merge union=(t1, t2) select * from t1;
|
||||
--error 1093
|
||||
create table t3 engine=merge union=(t1, t2) select * from t2;
|
||||
drop table t1, t2;
|
||||
|
|
|
@ -1655,6 +1655,19 @@ mysql_execute_command(void)
|
|||
net_printf(&thd->net,ER_INSERT_TABLE_USED,tables->real_name);
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
if (lex->create_info.used_fields & HA_CREATE_USED_UNION)
|
||||
{
|
||||
TABLE_LIST *tab;
|
||||
for (tab= tables; tab; tab= tab->next)
|
||||
{
|
||||
if (check_dup(tables->db, tab->real_name,
|
||||
(TABLE_LIST*)lex->create_info.merge_list.first))
|
||||
{
|
||||
net_printf(&thd->net, ER_INSERT_TABLE_USED, tab->real_name);
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (tables->next)
|
||||
{
|
||||
TABLE_LIST *table;
|
||||
|
|
Loading…
Reference in a new issue