diff options
author | unknown <sergefp@mysql.com> | 2005-02-12 22:58:54 +0300 |
---|---|---|
committer | unknown <sergefp@mysql.com> | 2005-02-12 22:58:54 +0300 |
commit | 84d1199692f6619657df7824b30c58a967605206 (patch) | |
tree | 872980df86cdc134844c648418d13c2d9f4eb489 /sql/sql_class.h | |
parent | 30e89d0a48a7bf875b485f8b5987a5ef1bc4bf56 (diff) | |
download | mariadb-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.h | 9 |
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() |