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.