Bug fix for multi-table delete with test case and manual entry
This commit is contained in:
parent
12ee8a3ef6
commit
945c46e6d2
@ -49343,6 +49343,8 @@ Our TODO section contains what we plan to have in 4.0. @xref{TODO MySQL 4.0}.
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
Fixed bug in multi-table @code{DELETE} when optimiser uses only indices
|
||||
@item
|
||||
Fixed that @code{ALTER TABLE table_name RENAME new_table_name} is as fast
|
||||
as @code{RENAME TABLE}.
|
||||
@item
|
||||
|
@ -66,3 +66,7 @@ select count(*) from t3 where id3;
|
||||
count(*)
|
||||
0
|
||||
drop table t1,t2,t3;
|
||||
create table t1(id1 int not null auto_increment primary key, t varchar(100));
|
||||
create table t2(id2 int not null, t varchar(100), index(id2));
|
||||
delete t1, t2 from t2,t1 where t1.id1 = t2.id2 and t1.id1 > 100;
|
||||
drop table t1,t2;
|
||||
|
@ -62,3 +62,21 @@ select count(*) from t2 where id2;
|
||||
select count(*) from t3 where id3;
|
||||
|
||||
drop table t1,t2,t3;
|
||||
create table t1(id1 int not null auto_increment primary key, t varchar(100));
|
||||
create table t2(id2 int not null, t varchar(100), index(id2));
|
||||
disable_query_log;
|
||||
let $1 = 1000;
|
||||
while ($1)
|
||||
{
|
||||
let $2 = 5;
|
||||
eval insert into t1(t) values ('aaaaaaaaaaaaaaaaaaaa');
|
||||
while ($2)
|
||||
{
|
||||
eval insert into t2(id2,t) values ($1,'bbbbbbbbbbbbbbbbb');
|
||||
dec $2;
|
||||
}
|
||||
dec $1;
|
||||
}
|
||||
enable_query_log;
|
||||
delete t1, t2 from t2,t1 where t1.id1 = t2.id2 and t1.id1 > 100;
|
||||
drop table t1,t2;
|
||||
|
@ -1963,11 +1963,6 @@ mysql_execute_command(void)
|
||||
(void)add_item_to_list(new Item_field(auxi->db,auxi->real_name,"*"));
|
||||
}
|
||||
tables->grant.want_privilege=(SELECT_ACL & ~tables->grant.privilege);
|
||||
if (add_item_to_list(new Item_null()))
|
||||
{
|
||||
res= -1;
|
||||
break;
|
||||
}
|
||||
thd->proc_info="init";
|
||||
if ((res=open_and_lock_tables(thd,tables)))
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user