Commit 4aaadc12 authored by Neeraj Bisht's avatar Neeraj Bisht

Bug#13726751 - 8 BYTE MEMORY LEAK IN DO_SAVE_BLOB

Problem:-
When we execute a query which has subquery with GROUP BY, ORDER BY and have a
BLOB column,results a memory leak.

Analysis:-
In case of subquery, which have GROUP BY on BLOB and a ORDER BY on other field
and BLOB is not a key. We allocate a tmp buffer to copy_field to take care of
BLOB value.This copy_field value can have copies of its in two join(objects),
so while freeing this copy_field we have to take care that it is
not deleted twice.
The double deletion of tmp_table_param.copy_field is handled by two patches.

One by Kostja :
revid:sp1r-konstantin@mysql.com-20050627101056-55153
Fix the broken test suite in -debug build.

and other by Oleksandr
revid:sp1r-bell@sanja.is.com.ua-20060118114857-19905
Excluded posibility of tmp_table_param.copy_field double deletion (BUG#14851).

both of this patches are commited in different branch and while
merging they both get placed,but there is no need for Kostja patch as Oleksandr
patch handle this.
parent 48519303
...@@ -7084,15 +7084,8 @@ void JOIN::cleanup(bool full) ...@@ -7084,15 +7084,8 @@ void JOIN::cleanup(bool full)
} }
} }
} }
/*
We are not using tables anymore
Unlock all tables. We may be in an INSERT .... SELECT statement.
*/
if (full) if (full)
{ {
if (tmp_join)
tmp_table_param.copy_field= 0;
/* /*
Ensure that the following delete_elements() would not be called Ensure that the following delete_elements() would not be called
twice for the same list. twice for the same list.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment