Commit 77f5c5a7 authored by unknown's avatar unknown

fixed excluding st_select_lex from global select list

fixed destroing not well constructed analize object
fixed wrong detection of unions in derived tables


sql/sql_analyse.h:
  fixed destroing not well constructed analize object
sql/sql_derived.cc:
  fixed wrong detection of unions in derived tables
sql/sql_lex.cc:
  fixed excluding st_select_lex from global select list
parent 2854479e
......@@ -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();
}
/*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment