diff options
Diffstat (limited to 'sql')
-rw-r--r-- | sql/item_sum.cc | 3 | ||||
-rw-r--r-- | sql/sql_select.cc | 2 |
2 files changed, 5 insertions, 0 deletions
diff --git a/sql/item_sum.cc b/sql/item_sum.cc index 7a8e15e0a9d..8411e7d1b9b 100644 --- a/sql/item_sum.cc +++ b/sql/item_sum.cc @@ -159,7 +159,10 @@ Item *Item_sum::get_tmp_table_item(THD *thd) if (!arg->const_item()) { if (arg->type() == Item::FIELD_ITEM) + { + arg->maybe_null= result_field_tmp->maybe_null(); ((Item_field*) arg)->field= result_field_tmp++; + } else sum_item->args[i]= new Item_field(result_field_tmp++); } diff --git a/sql/sql_select.cc b/sql/sql_select.cc index f8bc6210a2f..87b869df658 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -4995,6 +4995,8 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields, blob_count++; } ((Item_sum*) item)->args[i]= new Item_field(new_field); + if (((Item_sum*) item)->arg_count == 1) + ((Item_sum*) item)->result_field= new_field; } } } |