diff options
author | unknown <bar@mysql.com> | 2006-03-01 17:58:01 +0400 |
---|---|---|
committer | unknown <bar@mysql.com> | 2006-03-01 17:58:01 +0400 |
commit | c64c108eda29fbcb397a694056708261f2891916 (patch) | |
tree | 555d6d5bd61ca7008cffa4a2624c3fe72148fd8e /mysql-test | |
parent | a7abbd918ba952e2f387cec28ed0f74997b14975 (diff) | |
download | mariadb-git-c64c108eda29fbcb397a694056708261f2891916.tar.gz |
Bug#15949 union + illegal mix of collations (IMPLICIT + COERCIBLE)
union.result, union.test:
Adding test case.
item.cc:
Allow safe character set conversion in UNION
- string constant to column's charset
- to unicode
Thus, UNION now works the same with CONCAT (and other string functions)
in respect of aggregating arguments with different character sets.
sql/item.cc:
Allow character set conversion in UNION
- string to column's charset
- to unicode
Bug#15949 union + illegal mix of collations (IMPLICIT + COERCIBLE)
mysql-test/t/union.test:
Adding test case.
mysql-test/r/union.result:
Adding test case.
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/r/union.result | 12 | ||||
-rw-r--r-- | mysql-test/t/union.test | 11 |
2 files changed, 21 insertions, 2 deletions
diff --git a/mysql-test/r/union.result b/mysql-test/r/union.result index a9b2345d834..d01ce6249f7 100644 --- a/mysql-test/r/union.result +++ b/mysql-test/r/union.result @@ -1185,6 +1185,16 @@ select concat('value is: ', @val) union select 'some text'; concat('value is: ', @val) value is: 6 some text +select concat(_latin1'a', _ascii'b' collate ascii_bin); +concat(_latin1'a', _ascii'b' collate ascii_bin) +ab +create table t1 (foo varchar(100)) collate ascii_bin; +insert into t1 (foo) values ("foo"); +select foo from t1 union select 'bar' as foo from dual; +foo +foo +bar +drop table t1; CREATE TABLE t1 ( a ENUM('ä','ö','ü') character set utf8 not null default 'ü', b ENUM("one", "two") character set utf8, @@ -1214,7 +1224,7 @@ Field Type Null Key Default Extra a char(1) drop table t2; create table t2 select a from t1 union select c from t1; -ERROR HY000: Illegal mix of collations (utf8_general_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation 'UNION' +drop table t2; create table t2 select a from t1 union select b from t1; show columns from t2; Field Type Null Key Default Extra diff --git a/mysql-test/t/union.test b/mysql-test/t/union.test index 1f6fc2c8d3b..994546e9d97 100644 --- a/mysql-test/t/union.test +++ b/mysql-test/t/union.test @@ -711,6 +711,15 @@ set @val:=6; select concat('value is: ', @val) union select 'some text'; # +# Bug#15949 union + illegal mix of collations (IMPLICIT + COERCIBLE) +# +select concat(_latin1'a', _ascii'b' collate ascii_bin); +create table t1 (foo varchar(100)) collate ascii_bin; +insert into t1 (foo) values ("foo"); +select foo from t1 union select 'bar' as foo from dual; +drop table t1; + +# # Enum merging test # CREATE TABLE t1 ( @@ -729,8 +738,8 @@ drop table t2; create table t2 select a from t1 union select a from t1; show columns from t2; drop table t2; --- error 1267 create table t2 select a from t1 union select c from t1; +drop table t2; create table t2 select a from t1 union select b from t1; show columns from t2; drop table t2, t1; |