1
0
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:
unknown
2003-10-10 21:49:48 +03:00
parent bc8f801bf0
commit 8b09f4b074
4 changed files with 52 additions and 5 deletions

View File

@@ -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();
};