Loading mysql-test/r/func_if.result +6 −0 Original line number Diff line number Diff line Loading @@ -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; Loading mysql-test/t/func_if.test +6 −0 Original line number Diff line number Diff line Loading @@ -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() # Loading sql/item_cmpfunc.cc +3 −3 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading Loading
mysql-test/r/func_if.result +6 −0 Original line number Diff line number Diff line Loading @@ -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; Loading
mysql-test/t/func_if.test +6 −0 Original line number Diff line number Diff line Loading @@ -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() # Loading
sql/item_cmpfunc.cc +3 −3 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading