Commit c9458e16 authored by unknown's avatar unknown

Merge sinisa@bk-internal.mysql.com:/home/bk/mysql-4.1

into sinisa.nasamreza.org:/mnt/work/mysql-4.1

parents f1bd20c4 8848bb89
......@@ -1587,10 +1587,22 @@ void Item_func_elt::fix_length_and_dec()
{
max_length=0;
decimals=0;
for (uint i=1 ; i < arg_count ; i++)
for (uint i=0 ; i < arg_count ; i++)
{
set_if_bigger(max_length,args[i]->max_length);
set_if_bigger(decimals,args[i]->decimals);
if (i == 0)
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;
}
}
}
maybe_null=1; // NULL if wrong first arg
with_sum_func= with_sum_func || item->with_sum_func;
......@@ -1651,13 +1663,16 @@ longlong Item_func_elt::val_int()
String *Item_func_elt::val_str(String *str)
{
uint tmp;
String *res;
if ((tmp=(uint) item->val_int()) == 0 || tmp > arg_count)
{
null_value=1;
return NULL;
}
null_value=0;
return args[tmp-1]->val_str(str);
res= args[tmp-1]->val_str(str);
res->set_charset(charset());
return res;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment