From: Oystein Grovlen Date: October 26 2010 12:01pm Subject: bzr commit into mysql-5.5-bugteam branch (oystein.grovlen:3258) Bug#57704 List-Archive: http://lists.mysql.com/commits/121926 X-Bug: 57704 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1411096691==" --===============1411096691== 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 no longer 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 12:01:39 +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 12:01:39 +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 12:01:39 +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(); --===============1411096691== 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\ # rbtco198tpglgzty # target_branch: file:///home/og136792/mysql/mysql-5.5-bugteam/ # testament_sha1: 799860087c725f4944d827f60a080b404c824d48 # timestamp: 2010-10-26 14:01:49 +0200 # base_revision_id: davi.arnaut@stripped\ # cze6nig1civwdpk8 # # Begin bundle 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 --===============1411096691==--