diff options
author | bar@bar.mysql.r18.ru <> | 2003-07-16 11:29:16 +0500 |
---|---|---|
committer | bar@bar.mysql.r18.ru <> | 2003-07-16 11:29:16 +0500 |
commit | a35fff5bc38732d48472a64a4504bcead010a379 (patch) | |
tree | 96c3e55c00f579733c300a701e2e951e7520885a /mysql-test | |
parent | 27a82c836c1c2ce271c9bf17a12be5dd1219a190 (diff) | |
download | mariadb-git-a35fff5bc38732d48472a64a4504bcead010a379.tar.gz |
Item_func_null doesn't have a separate Item for the first argument anymore.
args[0] is used instead. This allowed to resuse a lot of code.
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/r/func_in.result | 32 | ||||
-rw-r--r-- | mysql-test/r/func_str.result | 10 | ||||
-rw-r--r-- | mysql-test/t/func_in.test | 19 | ||||
-rw-r--r-- | mysql-test/t/func_str.test | 10 |
4 files changed, 61 insertions, 10 deletions
diff --git a/mysql-test/r/func_in.result b/mysql-test/r/func_in.result index 006dc8abef0..4b15c44fdb1 100644 --- a/mysql-test/r/func_in.result +++ b/mysql-test/r/func_in.result @@ -111,3 +111,35 @@ id 5 9 drop table t1; +create table t1 ( +a char(1) character set latin1 collate latin1_general_ci, +b char(1) character set latin1 collate latin1_swedish_ci, +c char(1) character set latin1 collate latin1_danish_ci +); +insert into t1 values ('A','B','C'); +insert into t1 values ('a','c','c'); +select * from t1 where a in (b); +ERROR HY000: Illegal mix of collations (latin1_general_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation ' IN ' +select * from t1 where a in (b,c); +ERROR HY000: Illegal mix of collations (latin1_general_ci,IMPLICIT), (latin1_swedish_ci,IMPLICIT), (latin1_danish_ci,IMPLICIT) for operation ' IN ' +select * from t1 where 'a' in (a,b,c); +ERROR HY000: Illegal mix of collations for operation ' IN ' +select * from t1 where 'a' in (a); +a b c +A B C +a c c +select * from t1 where a in ('a'); +a b c +A B C +a c c +select * from t1 where 'a' collate latin1_general_ci in (a,b,c); +a b c +A B C +a c c +select * from t1 where 'a' collate latin1_bin in (a,b,c); +a b c +a c c +select * from t1 where 'a' in (a,b,c collate latin1_bin); +a b c +a c c +drop table t1; diff --git a/mysql-test/r/func_str.result b/mysql-test/r/func_str.result index 12969449e3f..37694ad2f0a 100644 --- a/mysql-test/r/func_str.result +++ b/mysql-test/r/func_str.result @@ -363,15 +363,15 @@ select _latin1'B' in (_latin1'a',_latin1'b' collate latin1_bin); _latin1'B' in (_latin1'a',_latin1'b' collate latin1_bin) 0 select _latin2'B' in (_latin1'a',_latin1'b'); -ERROR HY000: Illegal mix of collations for operation ' IN ' +ERROR HY000: Illegal mix of collations (latin2_general_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE) for operation ' IN ' select _latin1'B' in (_latin2'a',_latin1'b'); -ERROR HY000: Illegal mix of collations for operation ' IN ' +ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE), (latin2_general_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE) for operation ' IN ' select _latin1'B' in (_latin1'a',_latin2'b'); -ERROR HY000: Illegal mix of collations for operation ' IN ' +ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE), (latin2_general_ci,COERCIBLE) for operation ' IN ' select _latin1'B' COLLATE latin1_general_ci in (_latin1'a' COLLATE latin1_bin,_latin1'b'); -ERROR HY000: Illegal mix of collations for operation ' IN ' +ERROR HY000: Illegal mix of collations (latin1_general_ci,EXPLICIT), (latin1_bin,EXPLICIT), (latin1_swedish_ci,COERCIBLE) for operation ' IN ' select _latin1'B' COLLATE latin1_general_ci in (_latin1'a',_latin1'b' COLLATE latin1_bin); -ERROR HY000: Illegal mix of collations for operation ' IN ' +ERROR HY000: Illegal mix of collations (latin1_general_ci,EXPLICIT), (latin1_swedish_ci,COERCIBLE), (latin1_bin,EXPLICIT) for operation ' IN ' select collation(bin(130)), coercibility(bin(130)); collation(bin(130)) coercibility(bin(130)) latin1_swedish_ci 3 diff --git a/mysql-test/t/func_in.test b/mysql-test/t/func_in.test index 723f1707a42..dca068f368a 100644 --- a/mysql-test/t/func_in.test +++ b/mysql-test/t/func_in.test @@ -54,3 +54,22 @@ insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9); select * from t1 where id in (2,5,9); drop table t1; +create table t1 ( +a char(1) character set latin1 collate latin1_general_ci, +b char(1) character set latin1 collate latin1_swedish_ci, +c char(1) character set latin1 collate latin1_danish_ci +); +insert into t1 values ('A','B','C'); +insert into t1 values ('a','c','c'); +--error 1265 +select * from t1 where a in (b); +--error 1268 +select * from t1 where a in (b,c); +--error 1269 +select * from t1 where 'a' in (a,b,c); +select * from t1 where 'a' in (a); +select * from t1 where a in ('a'); +select * from t1 where 'a' collate latin1_general_ci in (a,b,c); +select * from t1 where 'a' collate latin1_bin in (a,b,c); +select * from t1 where 'a' in (a,b,c collate latin1_bin); +drop table t1; diff --git a/mysql-test/t/func_str.test b/mysql-test/t/func_str.test index 38633e87c4b..f158eaa3764 100644 --- a/mysql-test/t/func_str.test +++ b/mysql-test/t/func_str.test @@ -217,15 +217,15 @@ select _latin1'B' in (_latin1'a',_latin1'b'); select _latin1'B' collate latin1_bin in (_latin1'a',_latin1'b'); select _latin1'B' in (_latin1'a' collate latin1_bin,_latin1'b'); select _latin1'B' in (_latin1'a',_latin1'b' collate latin1_bin); ---error 1269 +--error 1268 select _latin2'B' in (_latin1'a',_latin1'b'); ---error 1269 +--error 1268 select _latin1'B' in (_latin2'a',_latin1'b'); ---error 1269 +--error 1268 select _latin1'B' in (_latin1'a',_latin2'b'); ---error 1269 +--error 1268 select _latin1'B' COLLATE latin1_general_ci in (_latin1'a' COLLATE latin1_bin,_latin1'b'); ---error 1269 +--error 1268 select _latin1'B' COLLATE latin1_general_ci in (_latin1'a',_latin1'b' COLLATE latin1_bin); select collation(bin(130)), coercibility(bin(130)); |