| Bug #53216 | Unrelated DDL causes repreparation of a prepared statement | ||
|---|---|---|---|
| Submitted: | 27 Apr 2010 17:39 | ||
| Reporter: | Elena Stepanova | Email Updates: | |
| Status: | Verified | Impact on me: | |
| Category: | MySQL Server: Prepared statements | Severity: | S3 (Non-critical) |
| Version: | 5.5.3-m3, 5.5.4-m3 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | regression | ||
[27 Apr 2010 17:39]
Elena Stepanova
[27 Apr 2010 18:56]
Konstantin Osipov
We also currently reprepare the PS on the stored procedure cache version change. Creation of the procedure does change the cache version, since if it is referred to a by a some stored function, which is already in the cache (and we don't keep track of it yet), this stored function needs to be invalidated and re-compiled. The only solution is to keep track of dependencies between objects in the stored routines caches, but we don't do it yet.
[28 Sep 2010 11:29]
Konstantin Osipov
The statement is reprepared because the entire stored functions cache is invalidated by CREATE PROCEDURE statement, and the statement is using the stored function, via a trigger. We must invalidate the entire stored functions cache as currently we do not keep track, in a compiled stored function body, which stored procedures it uses.
