mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
samall optimisation (any independent query will not save data for rexecution)
saving/restoring join_tab array (to save it of chnging by create_sort_index() before reexecuting) (BUG#1523) mysql-test/r/subselect.result: test of BUG#1523 mysql-test/t/subselect.test: test of BUG#1523 sql/sql_select.cc: samall optimisation (any independent query will not save data for rexecution) layout fix saving/restoring join_tab array (to save it of chnging by create_sort_index() before reexecuting) sql/sql_select.h: field for storing saved join_tab_array
This commit is contained in:
@@ -131,6 +131,7 @@ class JOIN :public Sql_alloc
|
||||
{
|
||||
public:
|
||||
JOIN_TAB *join_tab,**best_ref,**map2table;
|
||||
JOIN_TAB *join_tab_save; //saved join_tab for subquery reexecution
|
||||
TABLE **table,**all_tables,*sort_by_table;
|
||||
uint tables,const_tables;
|
||||
uint send_group_parts;
|
||||
@@ -202,7 +203,7 @@ class JOIN :public Sql_alloc
|
||||
void init(THD *thd_arg, List<Item> &fields, ulong select_options_arg,
|
||||
select_result *result_arg)
|
||||
{
|
||||
join_tab= 0;
|
||||
join_tab= join_tab_save= 0;
|
||||
table= 0;
|
||||
tables= 0;
|
||||
const_tables= 0;
|
||||
@@ -242,7 +243,7 @@ class JOIN :public Sql_alloc
|
||||
zero_result_cause= 0;
|
||||
optimized= 0;
|
||||
|
||||
fields_list = fields;
|
||||
fields_list= fields;
|
||||
bzero((char*) &keyuse,sizeof(keyuse));
|
||||
tmp_table_param.copy_field=0;
|
||||
tmp_table_param.end_write_records= HA_POS_ERROR;
|
||||
@@ -280,6 +281,7 @@ class JOIN :public Sql_alloc
|
||||
int rollup_send_data(uint idx);
|
||||
bool test_in_subselect(Item **where);
|
||||
void clear();
|
||||
bool save_join_tab();
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user