summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Babaev <igor@askmonty.org>2016-09-14 11:44:41 -0700
committerIgor Babaev <igor@askmonty.org>2016-09-14 11:44:41 -0700
commit55eb6fa5dafa18c5e826e6d924a1ffd7eb73b389 (patch)
treea981377c4485e3c5296462227b6d989229e5508b
parentc22d307afa1a6accbfe9857256cad01c1eacd677 (diff)
downloadmariadb-git-55eb6fa5dafa18c5e826e6d924a1ffd7eb73b389.tar.gz
Another attempt to fix bug mdev-10785 + cleanup for the previous attempt.
-rw-r--r--sql/sql_derived.cc9
-rw-r--r--sql/sql_lex.cc1
2 files changed, 2 insertions, 8 deletions
diff --git a/sql/sql_derived.cc b/sql/sql_derived.cc
index 677a4c4d91a..85a85b9c3b2 100644
--- a/sql/sql_derived.cc
+++ b/sql/sql_derived.cc
@@ -1242,18 +1242,11 @@ bool pushdown_cond_for_derived(THD *thd, Item *cond, TABLE_LIST *derived)
(uchar*) sl);
if (!extracted_cond_copy)
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);
sl->cond_pushed_into_having= extracted_cond_copy;
}
thd->lex->current_select= save_curr_select;
return false;
-err:
- thd->lex->current_select= save_curr_select;
- return true;
}
diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc
index 592de98ca0f..4d161b32577 100644
--- a/sql/sql_lex.cc
+++ b/sql/sql_lex.cc
@@ -4923,6 +4923,7 @@ void binlog_unsafe_map_init()
void st_select_lex::collect_grouping_fields(THD *thd)
{
+ grouping_tmp_fields.empty();
List_iterator<Item> li(join->fields_list);
Item *item= li++;
for (uint i= 0; i < master_unit()->derived->table->s->fields; i++, (item=li++))