diff options
author | bar@bar.mysql.r18.ru <> | 2003-07-14 19:28:36 +0500 |
---|---|---|
committer | bar@bar.mysql.r18.ru <> | 2003-07-14 19:28:36 +0500 |
commit | e26b90c2382a5828a96fb565a5a5829dcc6bd6b7 (patch) | |
tree | 0667ae289e93ee3455aa91b49232e5d5f83c73b1 /mysql-test/t/case.test | |
parent | 1472b156e2030f42203dc34d2b1e10186003ebe6 (diff) | |
download | mariadb-git-e26b90c2382a5828a96fb565a5a5829dcc6bd6b7.tar.gz |
COALESCE now aggregates its argument types in this way:
if some of the arguments is STRING_RESULT the STRING_RESULT
else if some of the arguments is REAL_RESULT then REAL_RESULT
else INT_RESULT
Diffstat (limited to 'mysql-test/t/case.test')
-rw-r--r-- | mysql-test/t/case.test | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/mysql-test/t/case.test b/mysql-test/t/case.test index 6131d1500de..0249a8eefba 100644 --- a/mysql-test/t/case.test +++ b/mysql-test/t/case.test @@ -41,3 +41,25 @@ create table t1 (row int not null, col int not null, val varchar(255) not null); insert into t1 values (1,1,'orange'),(1,2,'large'),(2,1,'yellow'),(2,2,'medium'),(3,1,'green'),(3,2,'small'); select max(case col when 1 then val else null end) as color from t1 group by row; drop table t1; + +# +# COALESCE is a CASE abbrevation: +# +# COALESCE(v1,v2) == CASE WHEN v1 IS NOT NULL THEN v1 ELSE v2 END +# +# COALESCE(V1, V2, . . . ,Vn ) = +# CASE WHEN V1 IS NOT NULL THEN V1 ELSE COALESCE (V2, . . . ,Vn) END +# +# Check COALESCE argument types aggregation + +SET NAMES latin1; +--error 1265 +CREATE TABLE t1 SELECT COALESCE(_latin1'a',_latin2'a'); +--error 1265 +CREATE TABLE t1 SELECT COALESCE('a' COLLATE latin1_swedish_ci,'b' COLLATE latin1_bin); +CREATE TABLE t1 SELECT + COALESCE(1), COALESCE(1.0),COALESCE('a'), + COALESCE(1,1.0), COALESCE(1,'1'),COALESCE(1.1,'1'), + COALESCE('a' COLLATE latin1_bin,'b'); +SHOW CREATE TABLE t1; +DROP TABLE t1; |