summaryrefslogtreecommitdiff
path: root/sql/sp_cache.cc
diff options
context:
space:
mode:
authorDavi Arnaut <Davi.Arnaut@Sun.COM>2010-02-13 08:35:14 -0200
committerDavi Arnaut <Davi.Arnaut@Sun.COM>2010-02-13 08:35:14 -0200
commita4dd7f95c8a355009f317cff214568f220f0b6db (patch)
treeff0312e29ff55b850e224fbc33104bdb65a315ed /sql/sp_cache.cc
parentd7797f51ecb1c841ba0779887bfc04a873be3a34 (diff)
downloadmariadb-git-a4dd7f95c8a355009f317cff214568f220f0b6db.tar.gz
Bug#50624: crash in check_table_access during call procedure
This bug is just one facet of stored routines not being able to detect changes in meta-data (WL#4179). This particular problem can be triggered within a single session due to the improper management of the pre-locking list if the view is expanded after the pre-locking list is calculated. Since the overall solution for the meta-data detection issue is planned for a later release, for now a workaround is used to fix this particular aspect that only involves a single session. The workaround is to flush the thread-local stored routine cache every time a view is created or modified, causing locally cached routines to be re-evaluated upon invocation.
Diffstat (limited to 'sql/sp_cache.cc')
-rw-r--r--sql/sp_cache.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/sql/sp_cache.cc b/sql/sp_cache.cc
index b8209a373a2..12d21aee22c 100644
--- a/sql/sp_cache.cc
+++ b/sql/sp_cache.cc
@@ -175,8 +175,9 @@ sp_head *sp_cache_lookup(sp_cache **cp, sp_name *name)
sp_cache_invalidate()
NOTE
- This is called when a VIEW definition is modifed. We can't destroy sp_head
- objects here as one may modify VIEW definitions from prelocking-free SPs.
+ This is called when a VIEW definition is created or modified (and in some
+ other contexts). We can't destroy sp_head objects here as one may modify
+ VIEW definitions from prelocking-free SPs.
*/
void sp_cache_invalidate()