1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-07 00:04:31 +03:00

Another attempt to fix bug mdev-10785 + cleanup for the previous attempt.

This commit is contained in:
Igor Babaev
2016-09-14 11:44:41 -07:00
parent c22d307afa
commit 55eb6fa5da
2 changed files with 2 additions and 8 deletions

View File

@@ -1242,18 +1242,11 @@ bool pushdown_cond_for_derived(THD *thd, Item *cond, TABLE_LIST *derived)
(uchar*) sl); (uchar*) sl);
if (!extracted_cond_copy) if (!extracted_cond_copy)
continue; continue;
/*
Create the conjunction of the existing having condition of sl
and the pushed condition, take it as the new having condition of sl
and fix this new condition
*/
extracted_cond_copy->walk(&Item::cleanup_processor, 0, 0); extracted_cond_copy->walk(&Item::cleanup_processor, 0, 0);
sl->cond_pushed_into_having= extracted_cond_copy; sl->cond_pushed_into_having= extracted_cond_copy;
} }
thd->lex->current_select= save_curr_select; thd->lex->current_select= save_curr_select;
return false; return false;
err:
thd->lex->current_select= save_curr_select;
return true;
} }

View File

@@ -4923,6 +4923,7 @@ void binlog_unsafe_map_init()
void st_select_lex::collect_grouping_fields(THD *thd) void st_select_lex::collect_grouping_fields(THD *thd)
{ {
grouping_tmp_fields.empty();
List_iterator<Item> li(join->fields_list); List_iterator<Item> li(join->fields_list);
Item *item= li++; Item *item= li++;
for (uint i= 0; i < master_unit()->derived->table->s->fields; i++, (item=li++)) for (uint i= 0; i < master_unit()->derived->table->s->fields; i++, (item=li++))