diff options
author | unknown <bar@bar.mysql.r18.ru> | 2003-03-21 18:31:41 +0400 |
---|---|---|
committer | unknown <bar@bar.mysql.r18.ru> | 2003-03-21 18:31:41 +0400 |
commit | ce17ac5af299e040499b355e30b3fcdacdf02712 (patch) | |
tree | e39c3001821e39dbb28a41092f22d9489a8acf58 /sql/item_func.cc | |
parent | a0e2d75aa08292d851c11261da3ea3e4ffd8cf0b (diff) | |
download | mariadb-git-ce17ac5af299e040499b355e30b3fcdacdf02712.tar.gz |
IF() and LEAST() now honors coercibility
Diffstat (limited to 'sql/item_func.cc')
-rw-r--r-- | sql/item_func.cc | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/sql/item_func.cc b/sql/item_func.cc index 72db23d1953..5bbb6003e4f 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -855,9 +855,13 @@ void Item_func_min_max::fix_length_and_dec() maybe_null=0; cmp_type=item_cmp_type(cmp_type,args[i]->result_type()); if (i==0) - set_charset(args[i]->charset()); - else if (args[i]->charset() == &my_charset_bin) - set_charset(&my_charset_bin); + set_charset(args[i]->charset(), args[i]->coercibility); + else if (set_charset(charset(), coercibility, + args[i]->charset(), args[i]->coercibility)) + { + my_error(ER_WRONG_ARGUMENTS,MYF(0),func_name()); + break; + } } } @@ -909,6 +913,7 @@ String *Item_func_min_max::val_str(String *str) } } } + res->set_charset(charset()); return res; } case ROW_RESULT: |