From: Sergey Glukhov Date: September 1 2009 6:43am Subject: bzr commit into mysql-5.0-bugteam branch (Sergey.Glukhov:2795) Bug#45989 List-Archive: http://lists.mysql.com/commits/82086 X-Bug: 45989 Message-Id: <0KPA00IKQ84O1DC0@fe-emea-09.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="Boundary_(ID_GTN0KVsxvJFJuhDlYoA+oA)" --Boundary_(ID_GTN0KVsxvJFJuhDlYoA+oA) MIME-version: 1.0 Content-type: text/plain; CHARSET=US-ASCII Content-transfer-encoding: 7BIT Content-disposition: inline #At file:///home/gluh/MySQL/mysql-5.0-bug-45989/ based on revid:joro@stripped 2795 Sergey Glukhov 2009-09-01 Bug#45989 memory leak after explain encounters an error in the query Memory allocated in TMP_TABLE_PARAM::copy_field is not cleaned up. The fix is to clean up TMP_TABLE_PARAM::copy_field array in JOIN::destroy. @ mysql-test/r/explain.result test result @ mysql-test/t/explain.test test case @ sql/sql_select.cc Memory allocated in TMP_TABLE_PARAM::copy_field is not cleaned up. The fix is to clean up TMP_TABLE_PARAM::copy_field array in JOIN::destroy. modified: mysql-test/r/explain.result mysql-test/t/explain.test sql/sql_select.cc === modified file 'mysql-test/r/explain.result' --- a/mysql-test/r/explain.result 2009-06-11 11:49:04 +0000 +++ b/mysql-test/r/explain.result 2009-09-01 06:43:27 +0000 @@ -159,3 +159,11 @@ CREATE TABLE t1 (a INT PRIMARY KEY); EXPLAIN EXTENDED SELECT COUNT(a) FROM t1 USE KEY(a); ERROR HY000: Key 'a' doesn't exist in table 't1' DROP TABLE t1; +CREATE TABLE t1(a LONGTEXT); +INSERT INTO t1 VALUES (repeat('a',@@global.max_allowed_packet)); +INSERT INTO t1 VALUES (repeat('b',@@global.max_allowed_packet)); +EXPLAIN SELECT DISTINCT 1 FROM t1, +(SELECT DISTINCTROW a AS away FROM t1 GROUP BY a WITH ROLLUP) as d1 +WHERE t1.a = d1.a; +ERROR 42S22: Unknown column 'd1.a' in 'where clause' +DROP TABLE t1; === modified file 'mysql-test/t/explain.test' --- a/mysql-test/t/explain.test 2009-06-11 11:49:04 +0000 +++ b/mysql-test/t/explain.test 2009-09-01 06:43:27 +0000 @@ -135,5 +135,16 @@ EXPLAIN EXTENDED SELECT COUNT(a) FROM t1 DROP TABLE t1; +# +# Bug#45989 memory leak after explain encounters an error in the query +# +CREATE TABLE t1(a LONGTEXT); +INSERT INTO t1 VALUES (repeat('a',@@global.max_allowed_packet)); +INSERT INTO t1 VALUES (repeat('b',@@global.max_allowed_packet)); +--error ER_BAD_FIELD_ERROR +EXPLAIN SELECT DISTINCT 1 FROM t1, + (SELECT DISTINCTROW a AS away FROM t1 GROUP BY a WITH ROLLUP) as d1 + WHERE t1.a = d1.a; +DROP TABLE t1; # End of 5.0 tests. === modified file 'sql/sql_select.cc' --- a/sql/sql_select.cc 2009-08-10 18:53:26 +0000 +++ b/sql/sql_select.cc 2009-09-01 06:43:27 +0000 @@ -2176,7 +2176,7 @@ JOIN::destroy() } } tmp_join->tmp_join= 0; - tmp_table_param.copy_field=0; + tmp_table_param.cleanup(); DBUG_RETURN(tmp_join->destroy()); } cond_equal= 0; --Boundary_(ID_GTN0KVsxvJFJuhDlYoA+oA) MIME-version: 1.0 Content-type: text/bzr-bundle; CHARSET=US-ASCII; name="bzr/sergey.glukhov@stripped" Content-transfer-encoding: 7BIT Content-disposition: inline; filename="bzr/sergey.glukhov@stripped" # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: sergey.glukhov@stripped # target_branch: file:///home/gluh/MySQL/mysql-5.0-bug-45989/ # testament_sha1: 0d50363b74e8db44dd0c8d29c6a4b9c2d73cbed6 # timestamp: 2009-09-01 11:43:38 +0500 # base_revision_id: joro@stripped # # Begin bundle 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 yF/8XckU4UJDnZ19tA== --Boundary_(ID_GTN0KVsxvJFJuhDlYoA+oA)--