summaryrefslogtreecommitdiff
path: root/sql/sql_class.h
diff options
context:
space:
mode:
authorunknown <sergefp@mysql.com>2005-02-12 22:58:54 +0300
committerunknown <sergefp@mysql.com>2005-02-12 22:58:54 +0300
commit84d1199692f6619657df7824b30c58a967605206 (patch)
tree872980df86cdc134844c648418d13c2d9f4eb489 /sql/sql_class.h
parent30e89d0a48a7bf875b485f8b5987a5ef1bc4bf56 (diff)
downloadmariadb-git-84d1199692f6619657df7824b30c58a967605206.tar.gz
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.
Diffstat (limited to 'sql/sql_class.h')
-rw-r--r--sql/sql_class.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/sql/sql_class.h b/sql/sql_class.h
index 657a92b394c..703bb030ab9 100644
--- a/sql/sql_class.h
+++ b/sql/sql_class.h
@@ -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()