Commit eef1a195 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.


sql/sql_select.cc:
  Bug13726751, tmp_join clean up is not necessary as later in the code we are taking care of cleaning up of tmp_join copy_field.
parent 52ea1522
...@@ -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