mirror of
https://github.com/MariaDB/server.git
synced 2026-05-01 04:35:32 +02:00
Merge polly.local:/tmp/20924/bug20294/my50-bug20294
into polly.local:/tmp/20924/bug20294/my51-bug20294 mysql-test/r/case.result: Auto merged mysql-test/r/func_if.result: Auto merged mysql-test/r/func_test.result: Auto merged mysql-test/t/case.test: Auto merged sql/item_cmpfunc.cc: Auto merged sql/item_cmpfunc.h: Auto merged sql/log_event.cc: Auto merged sql/sql_class.h: Auto merged mysql-test/r/user_var.result: Manual merge mysql-test/t/user_var.test: Manual merge sql/item_func.cc: Manual merge sql/item_func.h: Manual merge
This commit is contained in:
commit
910c007553
13 changed files with 109 additions and 31 deletions
|
|
@ -745,11 +745,7 @@ int Arg_comparator::compare_int_signed_unsigned()
|
|||
if (!(*b)->null_value)
|
||||
{
|
||||
owner->null_value= 0;
|
||||
if (sval1 < 0 || (ulonglong)sval1 < uval2)
|
||||
return -1;
|
||||
if ((ulonglong)sval1 == uval2)
|
||||
return 0;
|
||||
return 1;
|
||||
return ::compare_int_signed_unsigned(sval1, uval2);
|
||||
}
|
||||
}
|
||||
owner->null_value= 1;
|
||||
|
|
@ -770,13 +766,7 @@ int Arg_comparator::compare_int_unsigned_signed()
|
|||
if (!(*b)->null_value)
|
||||
{
|
||||
owner->null_value= 0;
|
||||
if (sval2 < 0)
|
||||
return 1;
|
||||
if (uval1 < (ulonglong)sval2)
|
||||
return -1;
|
||||
if (uval1 == (ulonglong)sval2)
|
||||
return 0;
|
||||
return 1;
|
||||
return ::compare_int_unsigned_signed(uval1, sval2);
|
||||
}
|
||||
}
|
||||
owner->null_value= 1;
|
||||
|
|
@ -1417,11 +1407,13 @@ Item_func_ifnull::int_op()
|
|||
if (!args[0]->null_value)
|
||||
{
|
||||
null_value=0;
|
||||
unsigned_flag= args[0]->unsigned_flag;
|
||||
return value;
|
||||
}
|
||||
value=args[1]->val_int();
|
||||
if ((null_value=args[1]->null_value))
|
||||
return 0;
|
||||
unsigned_flag= args[1]->unsigned_flag;
|
||||
return value;
|
||||
}
|
||||
|
||||
|
|
@ -1572,6 +1564,7 @@ Item_func_if::val_int()
|
|||
Item *arg= args[0]->val_bool() ? args[1] : args[2];
|
||||
longlong value=arg->val_int();
|
||||
null_value=arg->null_value;
|
||||
unsigned_flag= arg->unsigned_flag;
|
||||
return value;
|
||||
}
|
||||
|
||||
|
|
@ -1820,6 +1813,7 @@ longlong Item_func_case::val_int()
|
|||
}
|
||||
res=item->val_int();
|
||||
null_value=item->null_value;
|
||||
unsigned_flag= item->unsigned_flag;
|
||||
return res;
|
||||
}
|
||||
|
||||
|
|
@ -2006,7 +2000,10 @@ longlong Item_func_coalesce::int_op()
|
|||
{
|
||||
longlong res=args[i]->val_int();
|
||||
if (!args[i]->null_value)
|
||||
{
|
||||
unsigned_flag= args[i]->unsigned_flag;
|
||||
return res;
|
||||
}
|
||||
}
|
||||
null_value=1;
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue