fixed excluding st_select_lex from global select list
fixed destroing not well constructed analize object fixed wrong detection of unions in derived tables
This commit is contained in:
parent
0ceba0e5cf
commit
6ce8e1e704
@ -306,13 +306,14 @@ protected:
|
||||
public:
|
||||
uint max_tree_elements, max_treemem;
|
||||
|
||||
analyse(select_result *res) :Procedure(res, PROC_NO_SORT), rows(0),
|
||||
output_str_length(0) {}
|
||||
analyse(select_result *res) :Procedure(res, PROC_NO_SORT), f_info(0),
|
||||
rows(0), output_str_length(0) {}
|
||||
|
||||
~analyse()
|
||||
{
|
||||
for (field_info **f=f_info; f != f_end; f++)
|
||||
delete (*f);
|
||||
{
|
||||
if (f_info)
|
||||
for (field_info **f=f_info; f != f_end; f++)
|
||||
delete (*f);
|
||||
}
|
||||
virtual void add() {}
|
||||
virtual bool change_columns(List<Item> &fields);
|
||||
|
@ -71,7 +71,7 @@ int mysql_derived(THD *thd, LEX *lex, SELECT_LEX_UNIT *unit,
|
||||
select_union *derived_result;
|
||||
TABLE_LIST *tables= (TABLE_LIST *)sl->table_list.first;
|
||||
TMP_TABLE_PARAM tmp_table_param;
|
||||
bool is_union= sl->next_select() && sl->next_select()->linkage == UNION_TYPE;
|
||||
bool is_union= sl->next_select();
|
||||
bool is_subsel= sl->first_inner_unit() ? 1: 0;
|
||||
SELECT_LEX_NODE *save_current_select= lex->current_select;
|
||||
DBUG_ENTER("mysql_derived");
|
||||
|
@ -1098,10 +1098,11 @@ void st_select_lex_node::fast_exclude()
|
||||
{
|
||||
if ((*link_prev= link_next))
|
||||
link_next->link_prev= link_prev;
|
||||
// Remove slave structure
|
||||
for (; slave; slave= slave->next)
|
||||
slave->fast_exclude();
|
||||
}
|
||||
// Remove slave structure
|
||||
for (; slave; slave= slave->next)
|
||||
slave->fast_exclude();
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
x
Reference in New Issue
Block a user