From: Oystein Grovlen Date: October 26 2010 11:49am Subject: bzr commit into mysql-5.5-bugteam branch (oystein.grovlen:3258) Bug#57704 List-Archive: http://lists.mysql.com/commits/121920 X-Bug: 57704 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0735374765==" --===============0735374765== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/og136792/mysql/mysql-5.5-bugteam/ based on revid:davi.arnaut@stripped 3258 Oystein Grovlen 2010-10-26 Bug#57704 Cleanup code dies with void TABLE::set_keyread(bool): Assertion `file' failed. This bug was introduced in this revision: kostja@stripped ("A pre-requisite patch for the fix for Bug#52044.") It happens because close_thread_tables() is now called in open_and_lock_tables upon failure. Hence, table is now open when optimizer tries to do cleanup. Fix: Skip cleanup of table, if table->file is not set. @ mysql-test/r/subselect.result Added test case for Bug#57704. @ mysql-test/t/subselect.test Added test case for Bug#57704. @ sql/sql_select.cc If table->file is not set, no need to do cleanup since table has been closed. This happens if query fails in open_and_lock_tables(). modified: mysql-test/r/subselect.result mysql-test/t/subselect.test sql/sql_select.cc === modified file 'mysql-test/r/subselect.result' --- a/mysql-test/r/subselect.result 2010-09-09 15:00:33 +0000 +++ b/mysql-test/r/subselect.result 2010-10-26 11:48:54 +0000 @@ -5005,3 +5005,15 @@ SELECT * FROM t2 UNION SELECT * FROM t2 ORDER BY (SELECT * FROM t1 WHERE MATCH(a) AGAINST ('+abc' IN BOOLEAN MODE)); DROP TABLE t1,t2; End of 5.1 tests +# +# Bug #57704: Cleanup code dies with void TABLE::set_keyread(bool): +# Assertion `file' failed. +# +CREATE TABLE t1 (a INT); +SELECT 1 FROM +(SELECT ROW( +(SELECT 1 FROM t1 RIGHT JOIN +(SELECT 1 FROM t1, t1 t2) AS d ON 1), +1) FROM t1) AS e; +ERROR 21000: Operand should contain 1 column(s) +DROP TABLE t1; === modified file 'mysql-test/t/subselect.test' --- a/mysql-test/t/subselect.test 2010-06-25 13:32:47 +0000 +++ b/mysql-test/t/subselect.test 2010-10-26 11:48:54 +0000 @@ -3946,3 +3946,21 @@ DROP TABLE t1,t2; --enable_result_log --echo End of 5.1 tests + +--echo # +--echo # Bug #57704: Cleanup code dies with void TABLE::set_keyread(bool): +--echo # Assertion `file' failed. +--echo # + +CREATE TABLE t1 (a INT); + +--error 1241 +SELECT 1 FROM + (SELECT ROW( + (SELECT 1 FROM t1 RIGHT JOIN + (SELECT 1 FROM t1, t1 t2) AS d ON 1), + 1) FROM t1) AS e; + +DROP TABLE t1; + + === modified file 'sql/sql_select.cc' --- a/sql/sql_select.cc 2010-10-05 11:33:54 +0000 +++ b/sql/sql_select.cc 2010-10-26 11:48:54 +0000 @@ -6955,7 +6955,7 @@ void JOIN_TAB::cleanup() my_free(cache.buff); cache.buff= 0; limit= 0; - if (table) + if (table && table->file) { table->set_keyread(FALSE); table->file->ha_index_or_rnd_end(); --===============0735374765== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/oystein.grovlen@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: oystein.grovlen@stripped\ # rz4dxhmikyrghblv # target_branch: file:///home/og136792/mysql/mysql-5.5-bugteam/ # testament_sha1: 13c8d70a11672827db73ceed8c128a502894aafc # timestamp: 2010-10-26 13:49:05 +0200 # base_revision_id: davi.arnaut@stripped\ # cze6nig1civwdpk8 # # Begin bundle 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 --===============0735374765==--