diff options
author | Alexander Barkov <bar@mariadb.org> | 2017-11-09 14:05:53 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.org> | 2017-11-09 14:05:53 +0400 |
commit | 0fdb0bdf2769dc4e69d46b342200d3fd333fa3a5 (patch) | |
tree | 542689300b4ebd90eed162a54870fc1a57261eca /sql/item_subselect.cc | |
parent | 644ffdeb9290a5fc861ecd286a5af4388b4339ad (diff) | |
parent | c2c93fc6e460fd32b6ef179686c2b3b2045f75eb (diff) | |
download | mariadb-git-0fdb0bdf2769dc4e69d46b342200d3fd333fa3a5.tar.gz |
Merge remote-tracking branch 'origin/10.0' into 10.1
Diffstat (limited to 'sql/item_subselect.cc')
-rw-r--r-- | sql/item_subselect.cc | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/sql/item_subselect.cc b/sql/item_subselect.cc index d923b28af5a..1c1f09c4567 100644 --- a/sql/item_subselect.cc +++ b/sql/item_subselect.cc @@ -447,7 +447,8 @@ bool Item_subselect::mark_as_dependent(THD *thd, st_select_lex *select, OUTER_REF_TABLE_BIT. */ -void Item_subselect::fix_after_pullout(st_select_lex *new_parent, Item **ref) +void Item_subselect::fix_after_pullout(st_select_lex *new_parent, + Item **ref, bool merge) { recalc_used_tables(new_parent, TRUE); parent_select= new_parent; @@ -1153,7 +1154,8 @@ Item_singlerow_subselect::select_transformer(JOIN *join) /* as far as we moved content to upper level we have to fix dependences & Co */ - substitution->fix_after_pullout(select_lex->outer_select(), &substitution); + substitution->fix_after_pullout(select_lex->outer_select(), + &substitution, TRUE); } DBUG_RETURN(false); } @@ -2934,7 +2936,7 @@ bool Item_exists_subselect::exists2in_processor(uchar *opt_arg) goto out; } } - outer_exp->fix_after_pullout(unit->outer_select(), &outer_exp); + outer_exp->fix_after_pullout(unit->outer_select(), &outer_exp, FALSE); outer_exp->update_used_tables(); outer.push_back(outer_exp, thd->mem_root); } @@ -3315,10 +3317,11 @@ err: } -void Item_in_subselect::fix_after_pullout(st_select_lex *new_parent, Item **ref) +void Item_in_subselect::fix_after_pullout(st_select_lex *new_parent, + Item **ref, bool merge) { - left_expr->fix_after_pullout(new_parent, &left_expr); - Item_subselect::fix_after_pullout(new_parent, ref); + left_expr->fix_after_pullout(new_parent, &left_expr, merge); + Item_subselect::fix_after_pullout(new_parent, ref, merge); used_tables_cache |= left_expr->used_tables(); } |