| Bug #12329 | Bogus error msg when executing PS with stored procedure after SP was re-created | ||
|---|---|---|---|
| Submitted: | 3 Aug 2005 0:12 | Modified: | 20 Nov 2005 3:19 |
| Reporter: | Sergey Petrunya | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server | Severity: | S3 (Non-critical) |
| Version: | 5.0 | OS: | |
| Assigned to: | Dmitry Lenev | CPU Architecture: | Any |
[28 Oct 2005 15:23]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/internals/31625
[28 Oct 2005 15:25]
Dmitry Lenev
See also similar bug for triggers - bug #13399.
[17 Nov 2005 0:50]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/internals/32343
[17 Nov 2005 12:55]
Dmitry Lenev
Fixed in version 5.0.17 (by the same patch as bug #13399).
[20 Nov 2005 3:19]
Paul DuBois
Noted in 5.0.17 changelog.

Description: If one does the following: prepare a prepared statement that uses an SP execute the prepared statement drop/create SP execute the preprared statement again Then on second PS execution one will get "Table X doesn't exist" error message where X will be various garbage. How to repeat: Run the following create table t1 as select 1 a; create table t2 as select 1 a; create procedure sp1() select a from t1; prepare s from 'call sp1()'; execute s; drop procedure sp1; create procedure sp1() select a+100 from t2; call sp1(); -- (1) execute s; And get: ERROR 1146 (42S02): Table '.' doesn't exist or ERROR 1146 (42S02): Table '.(' doesn't exist or something like that. One may or may not observe different "table names" if one runs different queries at point -- (1) in the above test. Perhaps this means that mysqld reads garbage for table name and so potentially could crash. Suggested fix: According to our discussion with Dmitri, a prepared statement should be invalidated if SP it uses is deleted. And we need an appopriate error message about this.