Commit 57129a3a authored by Tor Didriksen's avatar Tor Didriksen

Bug#16359402 CRASH WITH AGGREGATES: ASSERTION FAILED: N < M_SIZE

Post push fix:
setup_ref_array() now uses n_sum_items to determine size of ref_pointer_array.
The problem was that n_sum_items kept growing, it wasn't reset for each query.

A similar memory leak was fixed with the patch for:
Bug 14683676 ENDLESS MEMORY CONSUMPTION IN SETUP_REF_ARRAY WITH MAX IN SUBQUERY
parent d978016d
...@@ -1761,6 +1761,7 @@ void st_select_lex::init_query() ...@@ -1761,6 +1761,7 @@ void st_select_lex::init_query()
ref_pointer_array_size= 0; ref_pointer_array_size= 0;
select_n_where_fields= 0; select_n_where_fields= 0;
select_n_having_items= 0; select_n_having_items= 0;
n_sum_items= 0;
n_child_sum_items= 0; n_child_sum_items= 0;
subquery_in_having= explicit_limit= 0; subquery_in_having= explicit_limit= 0;
is_item_list_lookup= 0; is_item_list_lookup= 0;
......
...@@ -10959,7 +10959,9 @@ show: ...@@ -10959,7 +10959,9 @@ show:
bzero((char*) &lex->create_info,sizeof(lex->create_info)); bzero((char*) &lex->create_info,sizeof(lex->create_info));
} }
show_param show_param
{} {
Select->parsing_place= NO_MATTER;
}
; ;
show_param: show_param:
...@@ -11309,7 +11311,10 @@ describe: ...@@ -11309,7 +11311,10 @@ describe:
if (prepare_schema_table(YYTHD, lex, $2, SCH_COLUMNS)) if (prepare_schema_table(YYTHD, lex, $2, SCH_COLUMNS))
MYSQL_YYABORT; MYSQL_YYABORT;
} }
opt_describe_column {} opt_describe_column
{
Select->parsing_place= NO_MATTER;
}
| describe_command opt_extended_describe | describe_command opt_extended_describe
{ Lex->describe|= DESCRIBE_NORMAL; } { Lex->describe|= DESCRIBE_NORMAL; }
select select
......
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