1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-24 11:21:21 +03:00

Fix for BUG#8218:

Remove TMP_TABLE_PARAM::copy_funcs_it. TMP_TABLE_PARAM is a member of JOIN which is 
copied via memcpy, and List_iterator_fast TMP_TABLE_PARAM::copy_funcs_it ends up 
pointing to the wrong List.


mysql-test/r/subselect.result:
  Testcase for BUG#8218
mysql-test/t/subselect.test:
  Testcase for BUG#8218
sql/sql_select.cc:
  Fix for BUG#8218: Create/use own iterator since TMP_TABLE_PARAM::copy_funcs_it is removed.
This commit is contained in:
unknown
2005-02-12 22:58:54 +03:00
parent 30e89d0a48
commit 84d1199692
4 changed files with 216 additions and 5 deletions

View File

@@ -1295,7 +1295,11 @@ public:
#include <myisam.h>
/* Param to create temporary tables when doing SELECT:s */
/*
Param to create temporary tables when doing SELECT:s
NOTE
This structure is copied using memcpy as a part of JOIN.
*/
class TMP_TABLE_PARAM :public Sql_alloc
{
@@ -1307,7 +1311,6 @@ private:
public:
List<Item> copy_funcs;
List<Item> save_copy_funcs;
List_iterator_fast<Item> copy_funcs_it;
Copy_field *copy_field, *copy_field_end;
Copy_field *save_copy_field, *save_copy_field_end;
byte *group_buff;
@@ -1324,7 +1327,7 @@ public:
uint convert_blob_length;
TMP_TABLE_PARAM()
:copy_funcs_it(copy_funcs), copy_field(0), group_parts(0),
:copy_field(0), group_parts(0),
group_length(0), group_null_parts(0), convert_blob_length(0)
{}
~TMP_TABLE_PARAM()