From: Dmitry Shulga Date: June 8 2011 2:02pm Subject: bzr push into mysql-trunk branch (Dmitry.Shulga:3166 to 3167) Bug#11763757 List-Archive: http://lists.mysql.com/commits/138856 X-Bug: 11763757 Message-Id: <201106081402.p58E2onq018449@acsmt356.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============9194496968316126410==" --===============9194496968316126410== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline 3167 Dmitry Shulga 2011-06-08 [merge] Auto-merge of patch for bug#11763757. modified: mysql-test/r/sp_notembedded.result mysql-test/t/sp_notembedded.test 3166 Olav Sandstaa 2011-06-07 This is a re-factoring patch that is a follow-up to the fix for Bug#11873324. The patch for Bug#11873324 introduced a new member function called has_guarded_conds() for the JOIN_TAB and the TABLE_REF classes. This function checks if the JOIN_TAB/TABLE_REF has triggered/guarded conditions. There exists other places in the optimizer code that do this check directly. The code for some of these places can be simplified by using the new member functions. This is implemented in this patch by replacing this code with calls to has_guarded_conds(). This is a re-factoring patch and should have no changes to existing behavior. @ sql/sql_select.cc Refactoring: simplify code that checked for triggered/guarded condition directly by instead calling JOIN_TAB::has_guarded_conds(). modified: sql/sql_select.cc === modified file 'mysql-test/r/sp_notembedded.result' --- a/mysql-test/r/sp_notembedded.result 2011-03-18 14:16:17 +0000 +++ b/mysql-test/r/sp_notembedded.result 2011-06-08 13:44:50 +0000 @@ -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; === modified file 'mysql-test/t/sp_notembedded.test' --- a/mysql-test/t/sp_notembedded.test 2010-08-06 11:29:37 +0000 +++ b/mysql-test/t/sp_notembedded.test 2011-06-08 13:44:50 +0000 @@ -371,16 +371,6 @@ DELETE FROM mysql.user WHERE User='mysql 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 + --===============9194496968316126410== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/dmitry.shulga@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: dmitry.shulga@stripped\ # 09kxjiz0aukwe9vs # target_branch: file:///Users/shulga/projects/mysql/mysql-trunk/ # testament_sha1: ad7d4c39b30bd9f61543ce22950799037eb7a658 # timestamp: 2011-06-08 21:02:46 +0700 # source_branch: file:///Users/shulga/projects/mysql/mysql-5.5-\ # bug11763757/ # base_revision_id: olav.sandstaa@stripped\ # dmpg1vuwf6g97141 # # Begin bundle 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 --===============9194496968316126410==--