diff options
author | Alexander Barkov <bar@mysql.com> | 2010-10-06 16:15:59 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mysql.com> | 2010-10-06 16:15:59 +0400 |
commit | ab15833ac265e11710e4de1390a82678011aab59 (patch) | |
tree | e9565139cee36da8b86efaf97be3791262ca1ac3 /mysql-test/include | |
parent | 817f02fd5a90ce09983162b7d60f56b9b0d36868 (diff) | |
download | mariadb-git-ab15833ac265e11710e4de1390a82678011aab59.tar.gz |
Bug#55744 GROUP_CONCAT + CASE + ucs return garbage
Problem: CASE didn't work with a mixture of different character
sets in THEN/ELSE in some cases.
This happened because after character set aggregation
newly created Item_func_conv_charset items corresponding
to THEN/ELSE arguments were not put back to args[] array.
Fix:
put all Item_func_conv_charset back to args[].
@ mysql-test/include/ctype_numconv.inc
@ mysql-test/r/ctype_ucs.result
Adding tests
@ sql/item_cmpfunc.cc
Put "agg" back to args[] after character set aggregation.
Diffstat (limited to 'mysql-test/include')
-rw-r--r-- | mysql-test/include/ctype_numconv.inc | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/mysql-test/include/ctype_numconv.inc b/mysql-test/include/ctype_numconv.inc index 06a9107e963..c4a39879947 100644 --- a/mysql-test/include/ctype_numconv.inc +++ b/mysql-test/include/ctype_numconv.inc @@ -1635,12 +1635,7 @@ CREATE TABLE t1 (a MEDIUMINT NULL) ENGINE=MYISAM; INSERT INTO t1 VALUES (1234567); SELECT GROUP_CONCAT(IFNULL(a,'')) FROM t1; SELECT GROUP_CONCAT(IF(a,a,'')) FROM t1; -if (`SELECT @@character_set_connection != 'ucs2'`) -{ - # Temporarily disable for ucs2 - # For details, see Bug#55744 GROUP_CONCAT + CASE + ucs return garbage - SELECT GROUP_CONCAT(CASE WHEN a THEN a ELSE '' END) FROM t1; -} +SELECT GROUP_CONCAT(CASE WHEN a THEN a ELSE '' END) FROM t1; --enable_metadata SELECT COALESCE(a,'') FROM t1 GROUP BY 1; --disable_metadata |