From: Dmitry Shulga Date: October 25 2010 5:04pm Subject: bzr commit into mysql-5.1-bugteam branch (Dmitry.Shulga:3545) Bug#54375 List-Archive: http://lists.mysql.com/commits/121852 X-Bug: 54375 Message-Id: <201010251706.o9PH6XJf025197@acsinet15.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============2063901868==" --===============2063901868== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///Users/shulga/projects/mysql/5.1-bugteam-bug54375/ based on revid:li-bing.song@stripped 3545 Dmitry Shulga 2010-10-26 Fixed bug#54375 - Error in stored procedure leaves connection in different default schema. @ mysql-test/r/sp-bugs.result It was added result for test case for bug#54375. @ mysql-test/t/sp-bugs.test It was added test case for bug#54375. @ sql/sp_head.cc sp_head::execute modified: restore saved current db if connection is not broken. modified: mysql-test/r/sp-bugs.result mysql-test/t/sp-bugs.test sql/sp_head.cc === modified file 'mysql-test/r/sp-bugs.result' --- a/mysql-test/r/sp-bugs.result 2010-02-13 10:35:14 +0000 +++ b/mysql-test/r/sp-bugs.result 2010-10-25 17:04:48 +0000 @@ -73,4 +73,39 @@ CALL p1 (); ERROR HY000: Trigger does not exist DROP TABLE t1; DROP PROCEDURE p1; +# +# Bug#54375: Error in stored procedure leaves connection in different default schema +# +SET @@SQL_MODE = 'STRICT_ALL_TABLES'; +DROP DATABASE IF EXISTS db1; +CREATE DATABASE db1; +USE db1; +DROP TABLE IF EXISTS t1; +CREATE TABLE t1 (c1 int NOT NULL PRIMARY KEY); +INSERT INTO t1 VALUES (1); +CREATE FUNCTION f1 ( +some_value int +) +RETURNS smallint +DETERMINISTIC +BEGIN +INSERT INTO t1 SET c1 = some_value; +RETURN(LAST_INSERT_ID()); +END$$ +DROP DATABASE IF EXISTS db2; +CREATE DATABASE db2; +USE db2; +SELECT DATABASE(); +DATABASE() +db2 +SELECT db1.f1(1); +ERROR 23000: Duplicate entry '1' for key 'PRIMARY' +SELECT DATABASE(); +DATABASE() +db2 +USE test; +DROP FUNCTION db1.f1; +DROP TABLE db1.t1; +DROP DATABASE db1; +DROP DATABASE db2; End of 5.1 tests === modified file 'mysql-test/t/sp-bugs.test' --- a/mysql-test/t/sp-bugs.test 2010-02-13 10:35:14 +0000 +++ b/mysql-test/t/sp-bugs.test 2010-10-25 17:04:48 +0000 @@ -101,4 +101,40 @@ CALL p1 (); DROP TABLE t1; DROP PROCEDURE p1; +--echo # +--echo # Bug#54375: Error in stored procedure leaves connection in different default schema +--echo # + +--disable_warnings +SET @@SQL_MODE = 'STRICT_ALL_TABLES'; +DROP DATABASE IF EXISTS db1; +CREATE DATABASE db1; +USE db1; +DROP TABLE IF EXISTS t1; +CREATE TABLE t1 (c1 int NOT NULL PRIMARY KEY); +INSERT INTO t1 VALUES (1); +DELIMITER $$; +CREATE FUNCTION f1 ( + some_value int +) +RETURNS smallint +DETERMINISTIC +BEGIN + INSERT INTO t1 SET c1 = some_value; + RETURN(LAST_INSERT_ID()); +END$$ +DELIMITER ;$$ +DROP DATABASE IF EXISTS db2; +CREATE DATABASE db2; +--enable_warnings +USE db2; +SELECT DATABASE(); +--error ER_DUP_ENTRY +SELECT db1.f1(1); +SELECT DATABASE(); +USE test; +DROP FUNCTION db1.f1; +DROP TABLE db1.t1; +DROP DATABASE db1; +DROP DATABASE db2; --echo End of 5.1 tests === modified file 'sql/sp_head.cc' --- a/sql/sp_head.cc 2010-07-19 14:30:34 +0000 +++ b/sql/sp_head.cc 2010-10-25 17:04:48 +0000 @@ -1372,7 +1372,7 @@ sp_head::execute(THD *thd) If the DB has changed, the pointer has changed too, but the original thd->db will then have been freed */ - if (cur_db_changed && !thd->killed) + if (cur_db_changed && thd->killed != THD::KILL_CONNECTION) { /* Force switching back to the saved current database, because it may be --===============2063901868== 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\ # xyqnjl6fdaaeitms # target_branch: file:///Users/shulga/projects/mysql/5.1-bugteam-\ # bug54375/ # testament_sha1: aab8dded2f12ba6959edd1b82d18fd4969f71c3c # timestamp: 2010-10-26 00:05:04 +0700 # base_revision_id: li-bing.song@stripped\ # 59ljye6ii4t7m2za # # Begin bundle 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 --===============2063901868==--