Commit cc5b1779 authored by unknown's avatar unknown
Browse files

Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-4.0

into gluh.mysql.r18.ru:/home/gluh/Bugs/mysql-4.0.3067

parents 277cf702 5adbc611
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -40,6 +40,12 @@ a
aa
aaa
drop table t1;
select NULLIF(NULL,NULL), NULLIF(NULL,1), NULLIF(NULL,1.0), NULLIF(NULL,"test");
NULLIF(NULL,NULL)	NULLIF(NULL,1)	NULLIF(NULL,1.0)	NULLIF(NULL,"test")
NULL	NULL	NULL	NULL
select NULLIF(1,NULL), NULLIF(1.0, NULL), NULLIF("test", NULL);
NULLIF(1,NULL)	NULLIF(1.0, NULL)	NULLIF("test", NULL)
1	1.0	test
create table t1 (num  double(12,2));
insert into t1 values (144.54);
select sum(if(num is null,0.00,num)) from t1;
+6 −0
Original line number Diff line number Diff line
@@ -20,6 +20,12 @@ select if(u=1,binary st,st) s from t1 order by s;
select if(u=1,st,binary st) s from t1 where st like "%a%" order by s;
drop table t1;

#
# Bug 2629
#
select NULLIF(NULL,NULL), NULLIF(NULL,1), NULLIF(NULL,1.0), NULLIF(NULL,"test");
select NULLIF(1,NULL), NULLIF(1.0, NULL), NULLIF("test", NULL);

#
# Problem with IF()
#
+3 −3
Original line number Diff line number Diff line
@@ -616,7 +616,7 @@ double
Item_func_nullif::val()
{
  double value;
  if (!(this->*cmp_func)() || null_value)
  if (!(this->*cmp_func)())
  {
    null_value=1;
    return 0.0;
@@ -630,7 +630,7 @@ longlong
Item_func_nullif::val_int()
{
  longlong value;
  if (!(this->*cmp_func)() || null_value)
  if (!(this->*cmp_func)())
  {
    null_value=1;
    return 0;
@@ -644,7 +644,7 @@ String *
Item_func_nullif::val_str(String *str)
{
  String *res;
  if (!(this->*cmp_func)() || null_value)
  if (!(this->*cmp_func)())
  {
    null_value=1;
    return 0;