diff options
author | unknown <gkodinov/kgeorge@magare.gmz> | 2007-10-24 11:50:09 +0300 |
---|---|---|
committer | unknown <gkodinov/kgeorge@magare.gmz> | 2007-10-24 11:50:09 +0300 |
commit | a63f873e52a84c28e211d81294296abdafae7307 (patch) | |
tree | 4acc70703363e4a6f03dc72000fe43ee6428288f /sql | |
parent | 611a8972b8e36373cbc642dee881131de0c4dfd7 (diff) | |
parent | 911dd5b564dba03746ba6f50463d1627f6db661c (diff) | |
download | mariadb-git-a63f873e52a84c28e211d81294296abdafae7307.tar.gz |
Merge magare.gmz:/home/kgeorge/mysql/work/B30715-merged-5.0-opt
into magare.gmz:/home/kgeorge/mysql/work/B30715-merged-5.1-opt
mysql-test/r/func_group.result:
Auto merged
mysql-test/r/type_decimal.result:
Auto merged
mysql-test/t/func_group.test:
Auto merged
mysql-test/t/type_decimal.test:
Auto merged
sql/item.cc:
Auto merged
sql/opt_sum.cc:
merge bug 30715 to 5.1-opt
Diffstat (limited to 'sql')
-rw-r--r-- | sql/item.cc | 2 | ||||
-rw-r--r-- | sql/opt_sum.cc | 7 |
2 files changed, 5 insertions, 4 deletions
diff --git a/sql/item.cc b/sql/item.cc index 95c8cd582cd..565081a600a 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -4649,7 +4649,7 @@ int Item::save_in_field(Field *field, bool no_conversions) my_decimal decimal_value; my_decimal *value= val_decimal(&decimal_value); if (null_value) - return set_field_to_null(field); + return set_field_to_null_with_conversions(field, no_conversions); field->set_notnull(); error=field->store_decimal(value); } diff --git a/sql/opt_sum.cc b/sql/opt_sum.cc index 6836c53db4e..12ad504d738 100644 --- a/sql/opt_sum.cc +++ b/sql/opt_sum.cc @@ -295,14 +295,15 @@ int opt_sum_query(TABLE_LIST *tables, List<Item> &all_fields,COND *conds) Check if case 1 from above holds. If it does, we should read the skipped tuple. */ - if (ref.key_buff[prefix_len] == 1 && - /* + if (item_field->field->real_maybe_null() && + ref.key_buff[prefix_len] == 1 && + /* Last keypart (i.e. the argument to MIN) is set to NULL by find_key_for_maxmin only if all other keyparts are bound to constants in a conjunction of equalities. Hence, we can detect this by checking only if the last keypart is NULL. - */ + */ (error == HA_ERR_KEY_NOT_FOUND || key_cmp_if_same(table, ref.key_buff, ref.key, prefix_len))) { |