From: Jon Olav Hauglid Date: February 24 2011 12:48pm Subject: bzr commit into mysql-trunk branch (jon.hauglid:3710) Bug#11748372 List-Archive: http://lists.mysql.com/commits/132015 X-Bug: 11748372 Message-Id: <201102241250.p1OAwV2g025644@rcsinet13.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============9175477001921649940==" --===============9175477001921649940== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///export/home/x/mysql-trunk-bug11748372/ based on revid:tor.didriksen@stripped 3710 Jon Olav Hauglid 2011-02-24 Bug #11748372 (former 36089) DROP TEMP TABLE IN SP CALLED BY FUNCTION, CRASH The assertion was triggered if a query using a temporary table executed a stored routine which caused the table to be dropped and replaced with a different table. This bug is no longer reproduceable on current versions of 5.1, 5.5 or trunk. Trying to drop a temporary table used by an outer statement will give ER_CANT_REOPEN_TABLE. This patch adds a regression test and contains no code changes. modified: mysql-test/r/temp_table.result mysql-test/t/temp_table.test === modified file 'mysql-test/r/temp_table.result' --- a/mysql-test/r/temp_table.result 2010-08-30 06:38:09 +0000 +++ b/mysql-test/r/temp_table.result 2011-02-24 12:48:31 +0000 @@ -223,3 +223,25 @@ CREATE TEMPORARY TABLE bug48067.t1 (c1 i DROP DATABASE bug48067; DROP TEMPORARY table bug48067.t1; End of 5.1 tests +# +# Bug #11748372 36089: DROP TEMP TABLE IN SP CALLED BY FUNCTION, CRASH +# +DROP TABLE IF EXISTS t1; +DROP PROCEDURE IF EXISTS p1; +DROP FUNCTION IF EXISTS f1; +CREATE TEMPORARY TABLE t1 AS SELECT 1 AS a; +CREATE PROCEDURE p1() +BEGIN +DROP TEMPORARY TABLE t1; +CREATE TEMPORARY TABLE t1 AS SELECT 'abc' AS a; +END| +CREATE FUNCTION f1() RETURNS INT +BEGIN +CALL p1(); +RETURN 1; +END| +SELECT 1 FROM t1 HAVING COUNT(*) = f1(); +ERROR HY000: Can't reopen table: 't1' +DROP FUNCTION f1; +DROP PROCEDURE p1; +DROP TEMPORARY TABLE t1; === modified file 'mysql-test/t/temp_table.test' --- a/mysql-test/t/temp_table.test 2010-06-23 11:34:40 +0000 +++ b/mysql-test/t/temp_table.test 2011-02-24 12:48:31 +0000 @@ -251,3 +251,37 @@ DROP DATABASE bug48067; DROP TEMPORARY table bug48067.t1; --echo End of 5.1 tests + + +--echo # +--echo # Bug #11748372 36089: DROP TEMP TABLE IN SP CALLED BY FUNCTION, CRASH +--echo # + +--disable_warnings +DROP TABLE IF EXISTS t1; +DROP PROCEDURE IF EXISTS p1; +DROP FUNCTION IF EXISTS f1; +--enable_warnings + +CREATE TEMPORARY TABLE t1 AS SELECT 1 AS a; + +delimiter |; +CREATE PROCEDURE p1() +BEGIN + DROP TEMPORARY TABLE t1; + CREATE TEMPORARY TABLE t1 AS SELECT 'abc' AS a; +END| + +CREATE FUNCTION f1() RETURNS INT +BEGIN + CALL p1(); + RETURN 1; +END| +delimiter ;| + +--error ER_CANT_REOPEN_TABLE +SELECT 1 FROM t1 HAVING COUNT(*) = f1(); + +DROP FUNCTION f1; +DROP PROCEDURE p1; +DROP TEMPORARY TABLE t1; --===============9175477001921649940== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/jon.hauglid@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: jon.hauglid@stripped # target_branch: file:///export/home/x/mysql-trunk-bug11748372/ # testament_sha1: da424fce84bf61c03597affa0b55ab9e33cd414c # timestamp: 2011-02-24 13:48:35 +0100 # base_revision_id: tor.didriksen@stripped\ # asncm330rif3v000 # # Begin bundle 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 --===============9175477001921649940==--