summaryrefslogtreecommitdiff
path: root/sql/item_cmpfunc.cc
diff options
context:
space:
mode:
authorkaa@polly.local <>2006-09-13 14:41:28 +0400
committerkaa@polly.local <>2006-09-13 14:41:28 +0400
commit397f0df9ad2df62698d4c1824c965c4b884b990c (patch)
tree1a5961fcf20771718331caeaeb16054878a411e9 /sql/item_cmpfunc.cc
parent5df7611caa310a88666f7fd2a7f14bd23ca8e24a (diff)
downloadmariadb-git-397f0df9ad2df62698d4c1824c965c4b884b990c.tar.gz
Cset exclude: kaa@polly.local|ChangeSet|20060912122540|09861
Cset exclude: kaa@polly.local|ChangeSet|20060908100829|09983
Diffstat (limited to 'sql/item_cmpfunc.cc')
-rw-r--r--sql/item_cmpfunc.cc21
1 files changed, 12 insertions, 9 deletions
diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc
index cf8d0c39d58..f14efc7187b 100644
--- a/sql/item_cmpfunc.cc
+++ b/sql/item_cmpfunc.cc
@@ -619,7 +619,11 @@ int Arg_comparator::compare_int_signed_unsigned()
if (!(*b)->null_value)
{
owner->null_value= 0;
- return ::compare_int_signed_unsigned(sval1, uval2);
+ if (sval1 < 0 || (ulonglong)sval1 < uval2)
+ return -1;
+ if ((ulonglong)sval1 == uval2)
+ return 0;
+ return 1;
}
}
owner->null_value= 1;
@@ -640,7 +644,13 @@ int Arg_comparator::compare_int_unsigned_signed()
if (!(*b)->null_value)
{
owner->null_value= 0;
- return ::compare_int_unsigned_signed(uval1, sval2);
+ if (sval2 < 0)
+ return 1;
+ if (uval1 < (ulonglong)sval2)
+ return -1;
+ if (uval1 == (ulonglong)sval2)
+ return 0;
+ return 1;
}
}
owner->null_value= 1;
@@ -1152,13 +1162,11 @@ Item_func_ifnull::val_int()
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;
}
@@ -1278,7 +1286,6 @@ Item_func_if::val_int()
Item *arg= args[0]->val_int() ? args[1] : args[2];
longlong value=arg->val_int();
null_value=arg->null_value;
- unsigned_flag= arg->unsigned_flag;
return value;
}
@@ -1485,7 +1492,6 @@ longlong Item_func_case::val_int()
}
res=item->val_int();
null_value=item->null_value;
- unsigned_flag= item->unsigned_flag;
return res;
}
@@ -1617,10 +1623,7 @@ longlong Item_func_coalesce::val_int()
{
longlong res=args[i]->val_int();
if (!args[i]->null_value)
- {
- unsigned_flag= args[i]->unsigned_flag;
return res;
- }
}
null_value=1;
return 0;