diff options
author | unknown <bar@mysql.com> | 2004-11-19 19:35:36 +0400 |
---|---|---|
committer | unknown <bar@mysql.com> | 2004-11-19 19:35:36 +0400 |
commit | aa6785d7a8a8c70ff9335bb4c875d3ae9db9db6a (patch) | |
tree | 61afd8a88a19f274104f373614e43f5f0f3116d3 /sql/item_sum.cc | |
parent | 77c163c3e3bdfb884e96f89bfb90e277ecfc816e (diff) | |
download | mariadb-git-aa6785d7a8a8c70ff9335bb4c875d3ae9db9db6a.tar.gz |
Bug #6658 MAX(column) returns incorrect coercibility
Also, Item_sum_hybrid->charset was removed as redundant,
and switched to use collation.collation instead.
mysql-test/r/func_group.result:
Bug #6658 MAX(column) returns incorrect coercibility
mysql-test/r/func_str.result:
Bug #6658 MAX(column) returns incorrect coercibility
mysql-test/t/func_group.test:
Bug #6658 MAX(column) returns incorrect coercibility
sql/item_func.cc:
Bug #6658 MAX(column) returns incorrect coercibility
sql/item_sum.cc:
Bug #6658 MAX(column) returns incorrect coercibility
sql/item_sum.h:
Bug #6658 MAX(column) returns incorrect coercibility
Diffstat (limited to 'sql/item_sum.cc')
-rw-r--r-- | sql/item_sum.cc | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/sql/item_sum.cc b/sql/item_sum.cc index 3b3a6083725..c43a7d87f8f 100644 --- a/sql/item_sum.cc +++ b/sql/item_sum.cc @@ -218,16 +218,13 @@ Item_sum_hybrid::fix_fields(THD *thd, TABLE_LIST *tables, Item **ref) hybrid_type= item->result_type(); if (hybrid_type == INT_RESULT) { - cmp_charset= &my_charset_bin; max_length=20; } else if (hybrid_type == REAL_RESULT) { - cmp_charset= &my_charset_bin; max_length=float_length(decimals); }else { - cmp_charset= item->collation.collation; max_length=item->max_length; } decimals=item->decimals; @@ -557,7 +554,7 @@ bool Item_sum_min::add() { String *result=args[0]->val_str(&tmp_value); if (!args[0]->null_value && - (null_value || sortcmp(&value,result,cmp_charset) > 0)) + (null_value || sortcmp(&value,result,collation.collation) > 0)) { value.copy(*result); null_value=0; @@ -610,7 +607,7 @@ bool Item_sum_max::add() { String *result=args[0]->val_str(&tmp_value); if (!args[0]->null_value && - (null_value || sortcmp(&value,result,cmp_charset) < 0)) + (null_value || sortcmp(&value,result,collation.collation) < 0)) { value.copy(*result); null_value=0; @@ -921,7 +918,7 @@ Item_sum_hybrid::min_max_update_str_field() result_field->val_str(&tmp_value); if (result_field->is_null() || - (cmp_sign * sortcmp(res_str,&tmp_value,cmp_charset)) < 0) + (cmp_sign * sortcmp(res_str,&tmp_value,collation.collation)) < 0) result_field->store(res_str->ptr(),res_str->length(),res_str->charset()); result_field->set_notnull(); } |