| Bug #6224 | Stored procedure cursors cause inconsistent results | ||
|---|---|---|---|
| Submitted: | 23 Oct 2004 1:35 | Modified: | 19 Apr 2005 14:32 |
| Reporter: | Peter Gulutzan | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server | Severity: | S3 (Non-critical) |
| Version: | 5.0.2-alpha-debug | OS: | Linux (SuSE 8.2) |
| Assigned to: | Per-Erik Martin | CPU Architecture: | Any |
[23 Oct 2004 1:35]
Peter Gulutzan
[23 Oct 2004 4:52]
MySQL Verification Team
Can't repeat the behavior reported with latest BK source:
mysql> create procedure ppp2 () begin declare v int default 0; declare x cursor
-> for select *
-> from tpp; drop table tpp; create table tpp (s1 int) engine=innodb; insert into
-> tpp values (1);
-> open x; close x; open x; update tpp set s1 = 7; fetch x into v; select v; fetch
-> x into v; select
-> v; end;//
Query OK, 0 rows affected (0.04 sec)
mysql> call ppp2()//
ERROR 1051 (42S02): Unknown table 'tpp'
[23 Oct 2004 12:12]
Peter Gulutzan
I'm sorry, I should have said "DROP IF EXISTS" rather than "DROP". The corrected "How to
repeat" is:
mysql> delimiter //
mysql> create procedure ppp2 () begin declare v int default 0; declare x cursor for select *
from tpp; drop table if exists tpp; create table tpp (s1 int) engine=innodb; insert into
tpp values (1); open x; close x; open x; update tpp set s1 = 7; fetch x into v; select v;
fetch
x into v; select v; end;
//
Query OK, 0 rows affected (0.35 sec)
mysql> call ppp2()//
+------+
| v |
+------+
| NULL |
+------+
1 row in set (0.46 sec)
ERROR 1329 (02000): No data to FETCH
[19 Apr 2005 14:32]
Per-Erik Martin
Apart from the problem of BUG#9367/9771 (which causes the call to hang), this is no longer repeatable. (With a temporary workaround of these bugs in place, it behaves as expected.)
