maria-developers team mailing list archive
-
maria-developers team
-
Mailing list archive
-
Message #02687
Re: Help with memory leak in optimiser code
Hi!
>>>>> "Sergey" == Sergey Petrunya <psergey@xxxxxxxxxxxx> writes:
Sergey> Hi Kristian,
Sergey> On Tue, Mar 09, 2010 at 04:11:26PM +0100, Kristian Nielsen wrote:
>> Thanks for offering to help with the memory leak. Here are the details.
>>
>> Tree is here:
>>
>> lp:~maria-captains/maria/mariadb-5.1-knielsen
>>
>> This tree is the merge with MySQL-5.1.44, including your fix for the
>> uninitialised variable in table elimination.
>>
>> The test case is the following, which is a simplified version of main.union
>> (so main.union shows the same memory leak):
>>
>> -------------------------------- cut here --------------------------------
>> CREATE TABLE t1 (a VARCHAR(10), FULLTEXT KEY a (a));
>> INSERT INTO t1 VALUES (1),(2);
>> CREATE TABLE t2 (b INT);
>> INSERT INTO t2 VALUES (1),(2);
>>
>> EXPLAIN EXTENDED
>> SELECT * FROM t1 UNION SELECT * FROM t1
>> ORDER BY (SELECT a FROM t2 WHERE b = 12);
>>
>> DROP TABLE t1,t2;
>> -------------------------------- cut here --------------------------------
<cut>
Sergey> subselect_single_select_engine::prepare().
Sergey> === modified file 'sql/item_subselect.cc'
Sergey> --- a/sql/item_subselect.cc 2010-03-09 15:03:54 +0000
Sergey> +++ b/sql/item_subselect.cc 2010-03-09 18:53:56 +0000
Sergey> @@ -1776,6 +1776,10 @@
Sergey> {
Sergey> if (prepared)
Sergey> return 0;
Sergey> + if (select_lex->join)
Sergey> + {
Sergey> + select_lex->cleanup();
Sergey> + }
Sergey> join= new JOIN(thd, select_lex->item_list,
Sergey> select_lex->options | SELECT_NO_UNLOCK, result);
Sergey> if (!join || !result)
Sanja, as you know the code, could you please verify the above bug
fix?
Regards,
Monty
Follow ups
References