Bug #1863 CREATE TABLE in Stored Procedure sometimes crashes on repeated calls.
Submitted: 17 Nov 2003 7:47 Modified: 28 May 2004 14:22
Reporter: Per-Erik Martin Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server Severity:S1 (Critical)
Version:5.0 OS:Any (Any)
Assigned to: Per-Erik Martin CPU Architecture:Any

[17 Nov 2003 7:47] Per-Erik Martin
Description:
Creating a table and using it within a stored PROCEDURE sometime crashes.
A first call might work, but the next call crashes. (It's slightly dependent
on how the table is being use; or just (bad) luck.)

How to repeat:
drop table if exists test1;
create table test1 (content varchar(10) );
insert into test1 values ("test1");
insert into test1 values ("test2");

drop table if exists result_1;
create table result_1 (f1 int, rc int, t3 int);

drop procedure if exists test2;

delimiter |;

create procedure test2(in1 INT)
begin 

  DECLARE ind INT default 0;
  DECLARE t1 INT;
  DECLARE t2 INT;
  DECLARE t3 INT;

  declare rc int default 0;
  declare continue handler for 1065 set rc = 1;

  drop table if exists temp_t1;
  create temporary table temp_t1(f1 int auto_increment, f2 varchar(20), primary key (f1));

#This statement leads to crash server 
#in case when this SP one will try to execute once more 
  insert into temp_t1 (f2) select content from test1;

  select f2 into t3 from temp_t1 where f1 = 10;

  if (rc) then
       insert into result_1 values (1, rc, t3);
  end if;

  insert into result_1 values (2, rc, t3);

end|

delimiter ;|

call test2(10);
call test2(10);
[28 May 2004 14:22] Per-Erik Martin
Thank you for your bug report. This issue has been committed to our
source repository of that product and will be incorporated into the
next release.

If necessary, you can access the source repository and build the latest
available version, including the bugfix, yourself. More information 
about accessing the source trees is available at
    http://www.mysql.com/doc/en/Installing_source_tree.html

Additional info:

This appears to have been fixed by other recent bugfixes (probably
the cleanup stuff).