diff options
author | unknown <igor@rurik.mysql.com> | 2005-08-26 22:25:45 -0700 |
---|---|---|
committer | unknown <igor@rurik.mysql.com> | 2005-08-26 22:25:45 -0700 |
commit | 28920f5987454c9f28ebddcc9a2babbefa155634 (patch) | |
tree | b1603e07e331943d651cbfb5640464674a6f914f /mysql-test | |
parent | f0aeadcd3cf0e5fe13cdbe5e9142693568912b90 (diff) | |
download | mariadb-git-28920f5987454c9f28ebddcc9a2babbefa155634.tar.gz |
func_str.result, null.result:
Corrected results after the fix for bug #12791.
func_test.result, func_test.test:
Added test cases for bug #12791.
item_func.h, item_func.cc:
Fixed bug #12791.
Made LEAST/GREATES fully Oracle compliant.
LEAST/GREATEST did not return NULL if only some
arguments were NULLs. This did not comply with Oracle.
sql/item_func.cc:
Fixed bug #12791.
Made LEAST/GREATES fully Oracle compliant.
LEAST/GREATEST did not return NULL if only some
arguments were NULLs. This did not comply with Oracle.
sql/item_func.h:
Fixed bug #12791.
Made LEAST/GREATES fully Oracle compliant.
LEAST/GREATEST did not return NULL if only some
arguments were NULLs. This did not comply with Oracle.
mysql-test/t/func_test.test:
Added test cases for bug #12791.
mysql-test/r/func_test.result:
Added test cases for bug #12791.
mysql-test/r/null.result:
Corrected results after the fix for bug #12791.
mysql-test/r/func_str.result:
Corrected results after the fix for bug #12791.
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/r/func_str.result | 2 | ||||
-rw-r--r-- | mysql-test/r/func_test.result | 13 | ||||
-rw-r--r-- | mysql-test/r/null.result | 8 | ||||
-rw-r--r-- | mysql-test/t/func_test.test | 9 |
4 files changed, 26 insertions, 6 deletions
diff --git a/mysql-test/r/func_str.result b/mysql-test/r/func_str.result index c7e69ae1d31..577f943ebde 100644 --- a/mysql-test/r/func_str.result +++ b/mysql-test/r/func_str.result @@ -287,7 +287,7 @@ lpad('STRING', 20, CONCAT('p','a','d') ) padpadpadpadpaSTRING select LEAST(NULL,'HARRY','HARRIOT',NULL,'HAROLD'),GREATEST(NULL,'HARRY','HARRIOT',NULL,'HAROLD'); LEAST(NULL,'HARRY','HARRIOT',NULL,'HAROLD') GREATEST(NULL,'HARRY','HARRIOT',NULL,'HAROLD') -HAROLD HARRY +NULL NULL select least(1,2,3) | greatest(16,32,8), least(5,4)*1,greatest(-1.0,1.0)*1,least(3,2,1)*1.0,greatest(1,1.1,1.0),least("10",9),greatest("A","B","0"); least(1,2,3) | greatest(16,32,8) least(5,4)*1 greatest(-1.0,1.0)*1 least(3,2,1)*1.0 greatest(1,1.1,1.0) least("10",9) greatest("A","B","0") 33 4 1.0 1.0 1.1 9 B diff --git a/mysql-test/r/func_test.result b/mysql-test/r/func_test.result index 32883921e70..d9437f6c515 100644 --- a/mysql-test/r/func_test.result +++ b/mysql-test/r/func_test.result @@ -166,7 +166,6 @@ CREATE TABLE t2 ( access_id smallint(6) NOT NULL default '0', name varchar(20 INSERT INTO t2 VALUES (1,'Everyone',2),(2,'Help',3),(3,'Customer Support',1); SELECT f_acc.rank, a1.rank, a2.rank FROM t1 LEFT JOIN t1 f1 ON (f1.access_id=1 AND f1.faq_group_id = t1.faq_group_id) LEFT JOIN t2 a1 ON (a1.access_id = f1.access_id) LEFT JOIN t1 f2 ON (f2.access_id=3 AND f2.faq_group_id = t1.faq_group_id) LEFT JOIN t2 a2 ON (a2.access_id = f2.access_id), t2 f_acc WHERE LEAST(a1.rank,a2.rank) = f_acc.rank; rank rank rank -2 2 NULL DROP TABLE t1,t2; CREATE TABLE t1 (d varchar(6), k int); INSERT INTO t1 VALUES (NULL, 2); @@ -193,3 +192,15 @@ select * from t1 where a not between 1 and 2 and b not between 3 and 4; a b 4 5 drop table t1; +SELECT GREATEST(1,NULL) FROM DUAL; +GREATEST(1,NULL) +NULL +SELECT LEAST('xxx','aaa',NULL,'yyy') FROM DUAL; +LEAST('xxx','aaa',NULL,'yyy') +NULL +SELECT LEAST(1.1,1.2,NULL,1.0) FROM DUAL; +LEAST(1.1,1.2,NULL,1.0) +NULL +SELECT GREATEST(1.5E+2,1.3E+2,NULL) FROM DUAL; +GREATEST(1.5E+2,1.3E+2,NULL) +NULL diff --git a/mysql-test/r/null.result b/mysql-test/r/null.result index 4551fed2732..1425b2a7f89 100644 --- a/mysql-test/r/null.result +++ b/mysql-test/r/null.result @@ -236,10 +236,10 @@ t1 CREATE TABLE `t1` ( `c06` varchar(6) character set latin2 default NULL, `c07` varchar(6) character set latin2 default NULL, `c08` varchar(6) character set latin2 default NULL, - `c09` varchar(6) character set latin2 NOT NULL default '', - `c10` varchar(6) character set latin2 NOT NULL default '', - `c11` varchar(6) character set latin2 NOT NULL default '', - `c12` varchar(6) character set latin2 NOT NULL default '', + `c09` varchar(6) character set latin2 default NULL, + `c10` varchar(6) character set latin2 default NULL, + `c11` varchar(6) character set latin2 default NULL, + `c12` varchar(6) character set latin2 default NULL, `c13` varchar(6) character set latin2 default NULL, `c14` char(0) character set latin2 default NULL, `c15` char(0) character set latin2 default NULL, diff --git a/mysql-test/t/func_test.test b/mysql-test/t/func_test.test index 424c0d1456b..f2ff47704c9 100644 --- a/mysql-test/t/func_test.test +++ b/mysql-test/t/func_test.test @@ -118,3 +118,12 @@ insert into t1 values (1,2), (2,3), (3,4), (4,5); select * from t1 where a not between 1 and 2; select * from t1 where a not between 1 and 2 and b not between 3 and 4; drop table t1; + +# +# Test for bug #12791: one of the arguments of LEAST/GREATEST is NULL +# + +SELECT GREATEST(1,NULL) FROM DUAL; +SELECT LEAST('xxx','aaa',NULL,'yyy') FROM DUAL; +SELECT LEAST(1.1,1.2,NULL,1.0) FROM DUAL; +SELECT GREATEST(1.5E+2,1.3E+2,NULL) FROM DUAL; |