diff options
author | unknown <igor@igor-inspiron.creware.com> | 2005-06-13 11:45:29 -0700 |
---|---|---|
committer | unknown <igor@igor-inspiron.creware.com> | 2005-06-13 11:45:29 -0700 |
commit | d039d345e69017d6e1937bc31f8e411336f83683 (patch) | |
tree | 6589c3bbdc00cecba70b67ca4532f99328e8ada1 | |
parent | 1a0bddb84d5c93af339e7c5ce1a45c7cbde59071 (diff) | |
parent | a4535bc827f38899270c4bca37c544198f6a9e2a (diff) | |
download | mariadb-git-d039d345e69017d6e1937bc31f8e411336f83683.tar.gz |
Manual merge
sql/item_cmpfunc.cc:
Auto merged
mysql-test/r/func_if.result:
Manual merge.
-rw-r--r-- | mysql-test/r/func_if.result | 13 | ||||
-rw-r--r-- | mysql-test/t/func_if.test | 23 | ||||
-rw-r--r-- | sql/item_cmpfunc.cc | 4 |
3 files changed, 24 insertions, 16 deletions
diff --git a/mysql-test/r/func_if.result b/mysql-test/r/func_if.result index 3e72fb45a14..aee23b38ca5 100644 --- a/mysql-test/r/func_if.result +++ b/mysql-test/r/func_if.result @@ -108,3 +108,16 @@ id date_ord text 2 16-03-2005 Day 2 1 05-03-2005 Day 1 DROP TABLE t1; +CREATE TABLE t1 (a CHAR(10)); +INSERT INTO t1 VALUES ('aaa'), (NULL), (''), ('bbb'); +SELECT a, NULLIF(a,'') FROM t1; +a NULLIF(a,'') +aaa aaa +NULL NULL + NULL +bbb bbb +SELECT a, NULLIF(a,'') FROM t1 WHERE NULLIF(a,'') IS NULL; +a NULLIF(a,'') +NULL NULL + NULL +DROP TABLE t1; diff --git a/mysql-test/t/func_if.test b/mysql-test/t/func_if.test index 37556984f68..4333defa412 100644 --- a/mysql-test/t/func_if.test +++ b/mysql-test/t/func_if.test @@ -25,10 +25,9 @@ explain extended select if(u=1,st,binary st) s from t1 where st like "%a%" order # # NULLIF test # -select nullif(u, 1) from t1; -explain extended select nullif(u, 1) from t1; +select nullif(u=0, 'test') from t1; +explain extended select nullif(u=0, 'test') from t1; drop table t1; -select nullif(1,'test'); # # Bug 2629 @@ -63,15 +62,13 @@ drop table t1; SELECT NULLIF(5,5) IS NULL, NULLIF(5,5) IS NOT NULL; # -# Bug #9669 Ordering on IF function with FROM_UNIXTIME function fails +# Test for bug #11142: evaluation of NULLIF when the first argument is NULL # -CREATE TABLE `t1` ( - `id` int(11) NOT NULL , - `date` int(10) default NULL, - `text` varchar(32) NOT NULL -); -INSERT INTO t1 VALUES (1,1110000000,'Day 1'),(2,1111000000,'Day 2'),(3,1112000000,'Day 3'); -SELECT id, IF(date IS NULL, '-', FROM_UNIXTIME(date, '%d-%m-%Y')) AS date_ord, text FROM t1 ORDER BY date_ord ASC; -SELECT id, IF(date IS NULL, '-', FROM_UNIXTIME(date, '%d-%m-%Y')) AS date_ord, text FROM t1 ORDER BY date_ord DESC; -DROP TABLE t1; +CREATE TABLE t1 (a CHAR(10)); +INSERT INTO t1 VALUES ('aaa'), (NULL), (''), ('bbb'); + +SELECT a, NULLIF(a,'') FROM t1; +SELECT a, NULLIF(a,'') FROM t1 WHERE NULLIF(a,'') IS NULL; + +DROP TABLE t1; diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc index b5b37efaf07..e79a356c4d3 100644 --- a/sql/item_cmpfunc.cc +++ b/sql/item_cmpfunc.cc @@ -1406,9 +1406,7 @@ Item_func_nullif::val_decimal(my_decimal * decimal_value) bool Item_func_nullif::is_null() { - if (!cmp.compare()) - return (null_value=1); - return 0; + return (null_value= (!cmp.compare() ? 1 : args[0]->null_value)); } /* |