summaryrefslogtreecommitdiff
path: root/mysql-test/t/ps_ddl1.test
diff options
context:
space:
mode:
authorKonstantin Osipov <konstantin@mysql.com>2008-07-03 23:41:22 +0400
committerKonstantin Osipov <konstantin@mysql.com>2008-07-03 23:41:22 +0400
commit7b8bfb2a93fbcaf1b43c343a0ab0c886da1d8f96 (patch)
treeacd04510c1120addfb7290222a2147d86665993f /mysql-test/t/ps_ddl1.test
parentb6b6d98fff188128b35e69da4679d0f0bb48239f (diff)
downloadmariadb-git-7b8bfb2a93fbcaf1b43c343a0ab0c886da1d8f96.tar.gz
A fix for
Bug#12093 "SP not found on second PS execution if another thread drops other SP in between" and Bug#21294 "executing a prepared statement that executes a stored function which was recreat" Stored functions are resolved at prepared statement prepare only. If someone flushes the stored functions cache between prepare and execute, execution fails. The fix is to detect the situation of the cache flush and automatically reprepare the prepared statement after it. mysql-test/r/ps_ddl.result: Update results (Bug#12093 and Bug#21294, the test cases are already in the source tree). mysql-test/r/ps_ddl1.result: Update results (Bug#12093 and Bug#21294, the test cases are already in the source tree). mysql-test/r/sp-error.result: Update results (Bug#12093 and Bug#21294, the test cases are already in the source tree). mysql-test/t/ps_ddl.test: Modify the test to not expect an error where there is no error any more (Bug#12093, Bug#21294). mysql-test/t/ps_ddl1.test: Modify the test to not expect an error where there is no error any more (Bug#12093, Bug#21294). mysql-test/t/sp-error.test: Modify the test to not expect an error where there is no error any more (Bug#12093, Bug#21294). sql/sp_cache.cc: Implement sp_cache_version() -- returns the current version of a stored routines cache. sql/sp_cache.h: Declare sp_cache_version(). sql/sql_prepare.cc: Keep track of stored functions cache version, and invalidate the statement if it changed between prepared statement prepare and execute (and the statement actually uses stored routines).
Diffstat (limited to 'mysql-test/t/ps_ddl1.test')
-rw-r--r--mysql-test/t/ps_ddl1.test2
1 files changed, 1 insertions, 1 deletions
diff --git a/mysql-test/t/ps_ddl1.test b/mysql-test/t/ps_ddl1.test
index 0145d445a14..379ed576b5f 100644
--- a/mysql-test/t/ps_ddl1.test
+++ b/mysql-test/t/ps_ddl1.test
@@ -363,7 +363,7 @@ end|
delimiter ;|
--error ER_SP_DOES_NOT_EXIST
execute stmt;
-call p_verify_reprepare_count(0);
+call p_verify_reprepare_count(1);
--error ER_SP_DOES_NOT_EXIST
execute stmt;
call p_verify_reprepare_count(0);