diff options
-rw-r--r-- | mysql-test/r/sp_notembedded.result | 23 | ||||
-rw-r--r-- | mysql-test/t/sp_notembedded.test | 52 |
2 files changed, 63 insertions, 12 deletions
diff --git a/mysql-test/r/sp_notembedded.result b/mysql-test/r/sp_notembedded.result index 6b6c98ea226..c3c12e6d4b2 100644 --- a/mysql-test/r/sp_notembedded.result +++ b/mysql-test/r/sp_notembedded.result @@ -254,7 +254,6 @@ CREATE PROCEDURE p1(i INT) BEGIN END; DROP PROCEDURE p1; DELETE FROM mysql.user WHERE User='mysqltest_1'; FLUSH PRIVILEGES; -set @@global.concurrent_insert= @old_concurrent_insert; # # Bug#44521 Prepared Statement: CALL p() - crashes: `! thd->main_da.is_sent' failed et.al. # @@ -288,3 +287,25 @@ DROP FUNCTION f1; # ------------------------------------------------------------------ # -- End of 5.1 tests # ------------------------------------------------------------------ +# +# Test for bug#11763757 "56510: ERROR 42000: FUNCTION DOES NOT EXIST +# IF NOT-PRIV USER RECONNECTS ". +# +# The real problem was that server was unable handle properly stored +# functions in databases which names contained dot. +# +DROP DATABASE IF EXISTS `my.db`; +create database `my.db`; +use `my.db`; +CREATE FUNCTION f1(a int) RETURNS INT RETURN a; +# Create new connection. +USE `my.db`; +SELECT f1(1); +f1(1) +1 +SELECT `my.db`.f1(2); +`my.db`.f1(2) +2 +# Switching to default connection. +DROP DATABASE `my.db`; +set @@global.concurrent_insert= @old_concurrent_insert; diff --git a/mysql-test/t/sp_notembedded.test b/mysql-test/t/sp_notembedded.test index b15f6351e59..e86e4ef32be 100644 --- a/mysql-test/t/sp_notembedded.test +++ b/mysql-test/t/sp_notembedded.test @@ -371,16 +371,6 @@ DELETE FROM mysql.user WHERE User='mysqltest_1'; FLUSH PRIVILEGES; -# -# Restore global concurrent_insert value. Keep in the end of the test file. -# - -set @@global.concurrent_insert= @old_concurrent_insert; - -# Wait till all disconnects are completed ---source include/wait_until_count_sessions.inc - - --echo # --echo # Bug#44521 Prepared Statement: CALL p() - crashes: `! thd->main_da.is_sent' failed et.al. --echo # @@ -449,7 +439,47 @@ DROP FUNCTION f1; --disconnect con1 --disconnect con2 - --echo # ------------------------------------------------------------------ --echo # -- End of 5.1 tests --echo # ------------------------------------------------------------------ + +--echo # +--echo # Test for bug#11763757 "56510: ERROR 42000: FUNCTION DOES NOT EXIST +--echo # IF NOT-PRIV USER RECONNECTS ". +--echo # +--echo # The real problem was that server was unable handle properly stored +--echo # functions in databases which names contained dot. +--echo # + +connection default; + +--disable_warnings +DROP DATABASE IF EXISTS `my.db`; +--enable_warnings + +create database `my.db`; +use `my.db`; + +CREATE FUNCTION f1(a int) RETURNS INT RETURN a; + +--echo # Create new connection. +connect (addcon, localhost, root,,); +connection addcon; +USE `my.db`; +SELECT f1(1); +SELECT `my.db`.f1(2); + +--echo # Switching to default connection. +connection default; +disconnect addcon; +DROP DATABASE `my.db`; + +# +# Restore global concurrent_insert value. Keep in the end of the test file. +# + +set @@global.concurrent_insert= @old_concurrent_insert; + +# Wait till all disconnects are completed +--source include/wait_until_count_sessions.inc + |