Fixed BUG#2460: Crash wih Stored Procedure and UNION.

mysql-test/r/sp.result:
  Added test case for BUG#2460.
mysql-test/t/sp.test:
  Added test case for BUG#2460.
sql/sql_union.cc:
  When called from stored procedures, tabs might be reset already.
This commit is contained in:
unknown 2004-05-28 19:43:06 +02:00
commit b0921b1f5a
3 changed files with 94 additions and 1 deletions

View file

@ -1471,6 +1471,52 @@ select @a|
drop procedure bug3863|
#
# BUG#2460
#
--disable_warnings
drop table if exists t3|
--enable_warnings
create table t3 (
id int(10) unsigned not null default 0,
rid int(10) unsigned not null default 0,
msg text not null,
primary key (id),
unique key rid (rid, id)
)|
create procedure bug2460_1(in v int)
begin
( select n0.id from t3 as n0 where n0.id = v )
union
( select n0.id from t3 as n0, t3 as n1
where n0.id = n1.rid and n1.id = v )
union
( select n0.id from t3 as n0, t3 as n1, t3 as n2
where n0.id = n1.rid and n1.id = n2.rid and n2.id = v );
end|
call bug2460_1(2)|
call bug2460_1(2)|
insert into t3 values (1, 1, 'foo'), (2, 1, 'bar'), (3, 1, 'zip zap')|
call bug2460_1(2)|
call bug2460_1(2)|
create procedure bug2460_2()
begin
drop table if exists t3;
create table t3 (s1 int);
insert into t3 select 1 union select 1;
end|
call bug2460_2()|
call bug2460_2()|
select * from t3|
drop procedure bug2460_1|
drop procedure bug2460_2|
drop table t3|
#
# Some "real" examples