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
commit07c30f911e86b34f004f15b26771a4b20a513b15 (patch)
treeff0312e29ff55b850e224fbc33104bdb65a315ed /sql/sp_cache.cc
parentd6ab925c5e10acc72cddbaf910d9aa4bee305c82 (diff)
downloadmariadb-git-07c30f911e86b34f004f15b26771a4b20a513b15.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. mysql-test/r/sp-bugs.result: Add test case result for Bug#50624. mysql-test/t/sp-bugs.test: Add test case for Bug#50624. sql/sp_cache.cc: Update function description. sql/sql_view.cc: Invalidate the SP cache if a view is being created or modified.
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()