Browse Source

Bug#29850: Wrong charset of GROUP_CONCAT result when the select employs

a temporary table.

The result string of the Item_func_group_concat wasn't initialized in the 
copying constructor of the Item_func_group_concat class. This led to a
wrong charset of GROUP_CONCAT result when the select employs a temporary
table.

The copying constructor of the Item_func_group_concat class now correctly
initializes the charset of the result string.
pull/73/head
evgen@moonbone.local 19 years ago
parent
commit
934089a82b
  1. 9
      mysql-test/r/func_gconcat.result
  2. 11
      mysql-test/t/func_gconcat.test
  3. 1
      sql/item_sum.cc

9
mysql-test/r/func_gconcat.result

@ -810,4 +810,13 @@ LENGTH( GROUP_CONCAT( a ) )
65535
SET group_concat_max_len= DEFAULT;
DROP TABLE t1, t2, t3;
set names latin1;
create table t1 (id int, name varchar(20)) DEFAULT CHARSET=utf8;
insert into t1 (id, name) values (1, "óra");
insert into t1 (id, name) values (2, "óra");
select b.id, group_concat(b.name) from t1 a, t1 b group by b.id;
id group_concat(b.name)
1 óra,óra
2 óra,óra
drop table t1;
End of 5.0 tests

11
mysql-test/t/func_gconcat.test

@ -551,4 +551,15 @@ SELECT LENGTH( GROUP_CONCAT( a ) ) FROM t3 WHERE b = 3;
SET group_concat_max_len= DEFAULT;
DROP TABLE t1, t2, t3;
#
# Bug#29850: Wrong charset of the GROUP_CONCAT result when the select employs
# a temporary table.
#
set names latin1;
create table t1 (id int, name varchar(20)) DEFAULT CHARSET=utf8;
insert into t1 (id, name) values (1, "óra");
insert into t1 (id, name) values (2, "óra");
select b.id, group_concat(b.name) from t1 a, t1 b group by b.id;
drop table t1;
--echo End of 5.0 tests

1
sql/item_sum.cc

@ -3068,6 +3068,7 @@ Item_func_group_concat::Item_func_group_concat(THD *thd,
original(item)
{
quick_group= item->quick_group;
result.set_charset(collation.collation);
}

Loading…
Cancel
Save