diff options
Diffstat (limited to 'sql/item_sum.cc')
-rw-r--r-- | sql/item_sum.cc | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/sql/item_sum.cc b/sql/item_sum.cc index bc4ab876b55..65314a0ff91 100644 --- a/sql/item_sum.cc +++ b/sql/item_sum.cc @@ -319,7 +319,6 @@ bool Item_sum::register_sum_func(THD *thd, Item **ref) if (aggr_level >= 0) { ref_by= ref; - thd->lex->current_select->register_dependency_item(aggr_sel, ref); /* Add the object to the list of registered objects assigned to aggr_sel */ if (!aggr_sel->inner_sum_func_list) next= this; @@ -356,6 +355,16 @@ bool Item_sum::register_sum_func(THD *thd, Item **ref) } +bool Item_sum::collect_outer_ref_processor(uchar *param) +{ + Collect_deps_prm *prm= (Collect_deps_prm *)param; + SELECT_LEX *ds; + if ((ds= depended_from()) && ds->nest_level < prm->nest_level) + prm->parameters->add_unique(this, &cmp_items); + return FALSE; +} + + Item_sum::Item_sum(List<Item> &list) :arg_count(list.elements), forced_const(FALSE) { |