diff options
author | Alexander Barkov <bar@mariadb.com> | 2018-06-05 10:50:08 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.com> | 2018-06-05 10:50:08 +0400 |
commit | ab297744b7318645159cd5f9ec26378473cecf52 (patch) | |
tree | 28df98886259f9df535b84deff18a89e08064e58 /sql/item_sum.cc | |
parent | 8760acdda88cc5ead925024bc47df4d27f911bb0 (diff) | |
parent | 106f0b5798a2b5d13b7d67c3cc678fc0cc2184c2 (diff) | |
download | mariadb-git-ab297744b7318645159cd5f9ec26378473cecf52.tar.gz |
Merge remote-tracking branch 'origin/10.3' into 10.4
Diffstat (limited to 'sql/item_sum.cc')
-rw-r--r-- | sql/item_sum.cc | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/sql/item_sum.cc b/sql/item_sum.cc index 19e94be7882..c206e71ed9a 100644 --- a/sql/item_sum.cc +++ b/sql/item_sum.cc @@ -1129,7 +1129,7 @@ Item_sum_num::fix_fields(THD *thd, Item **ref) maybe_null= sum_func() != COUNT_FUNC; for (uint i=0 ; i < arg_count ; i++) { - if (args[i]->fix_fields(thd, args + i) || args[i]->check_cols(1)) + if (args[i]->fix_fields_if_needed_for_scalar(thd, &args[i])) return TRUE; set_if_bigger(decimals, args[i]->decimals); m_with_subquery|= args[i]->with_subquery(); @@ -1156,14 +1156,11 @@ Item_sum_hybrid::fix_fields(THD *thd, Item **ref) DBUG_ENTER("Item_sum_hybrid::fix_fields"); DBUG_ASSERT(fixed == 0); - Item *item= args[0]; - if (init_sum_func_check(thd)) DBUG_RETURN(TRUE); // 'item' can be changed during fix_fields - if ((!item->fixed && item->fix_fields(thd, args)) || - (item= args[0])->check_cols(1)) + if (args[0]->fix_fields_if_needed_for_scalar(thd, &args[0])) DBUG_RETURN(TRUE); m_with_subquery= args[0]->with_subquery(); @@ -1300,7 +1297,7 @@ Item_sum_sp::fix_fields(THD *thd, Item **ref) for (uint i= 0 ; i < arg_count ; i++) { - if (args[i]->fix_fields(thd, args + i) || args[i]->check_cols(1)) + if (args[i]->fix_fields_if_needed_for_scalar(thd, &args[i])) return TRUE; set_if_bigger(decimals, args[i]->decimals); m_with_subquery|= args[i]->with_subquery(); @@ -3911,9 +3908,7 @@ Item_func_group_concat::fix_fields(THD *thd, Item **ref) for (i=0 ; i < arg_count ; i++) { - if ((!args[i]->fixed && - args[i]->fix_fields(thd, args + i)) || - args[i]->check_cols(1)) + if (args[i]->fix_fields_if_needed_for_scalar(thd, &args[i])) return TRUE; m_with_subquery|= args[i]->with_subquery(); with_param|= args[i]->with_param; |