mirror of
https://github.com/MariaDB/server.git
synced 2025-09-02 09:41:40 +03:00
Merge lthalmann@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into mysql.com:/nfsdisk1/lars/bk/mysql-5.0-rpl
This commit is contained in:
@@ -865,4 +865,25 @@ blob 65535 65535
|
|||||||
text 65535 65535
|
text 65535 65535
|
||||||
text 65535 32767
|
text 65535 32767
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
create table t1 (a char(1) character set ucs2);
|
||||||
|
insert into t1 values ('a'),('b'),('c');
|
||||||
|
select hex(group_concat(a)) from t1;
|
||||||
|
hex(group_concat(a))
|
||||||
|
0061002C0062002C0063
|
||||||
|
select collation(group_concat(a)) from t1;
|
||||||
|
collation(group_concat(a))
|
||||||
|
ucs2_general_ci
|
||||||
|
drop table t1;
|
||||||
|
set names latin1;
|
||||||
|
create table t1 (a char(1) character set latin1);
|
||||||
|
insert into t1 values ('a'),('b'),('c');
|
||||||
|
set character_set_connection=ucs2;
|
||||||
|
select hex(group_concat(a separator ',')) from t1;
|
||||||
|
hex(group_concat(a separator ','))
|
||||||
|
612C622C63
|
||||||
|
select collation(group_concat(a separator ',')) from t1;
|
||||||
|
collation(group_concat(a separator ','))
|
||||||
|
latin1_swedish_ci
|
||||||
|
drop table t1;
|
||||||
|
set names latin1;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
|
@@ -7,6 +7,13 @@ character_set_server ucs2
|
|||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
End of 4.1 tests
|
||||||
|
create table t1 (a char(1) character set latin1);
|
||||||
|
insert into t1 values ('a'),('b'),('c');
|
||||||
|
select hex(group_concat(a)) from t1;
|
||||||
|
hex(group_concat(a))
|
||||||
|
612C622C63
|
||||||
|
drop table t1;
|
||||||
CREATE TABLE t1(col1 VARCHAR(32) CHARACTER SET ucs2 COLLATE ucs2_bin NOT NULL,
|
CREATE TABLE t1(col1 VARCHAR(32) CHARACTER SET ucs2 COLLATE ucs2_bin NOT NULL,
|
||||||
col2 VARCHAR(32) CHARACTER SET ucs2 COLLATE ucs2_bin NOT NULL,
|
col2 VARCHAR(32) CHARACTER SET ucs2 COLLATE ucs2_bin NOT NULL,
|
||||||
UNIQUE KEY key1 USING HASH (col1, col2)) ENGINE=MEMORY;
|
UNIQUE KEY key1 USING HASH (col1, col2)) ENGINE=MEMORY;
|
||||||
|
@@ -594,4 +594,22 @@ select data_type, character_octet_length, character_maximum_length
|
|||||||
from information_schema.columns where table_name='t1';
|
from information_schema.columns where table_name='t1';
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#28925 GROUP_CONCAT inserts wrong separators for a ucs2 column
|
||||||
|
#
|
||||||
|
create table t1 (a char(1) character set ucs2);
|
||||||
|
insert into t1 values ('a'),('b'),('c');
|
||||||
|
select hex(group_concat(a)) from t1;
|
||||||
|
select collation(group_concat(a)) from t1;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
set names latin1;
|
||||||
|
create table t1 (a char(1) character set latin1);
|
||||||
|
insert into t1 values ('a'),('b'),('c');
|
||||||
|
set character_set_connection=ucs2;
|
||||||
|
select hex(group_concat(a separator ',')) from t1;
|
||||||
|
select collation(group_concat(a separator ',')) from t1;
|
||||||
|
drop table t1;
|
||||||
|
set names latin1;
|
||||||
|
|
||||||
--echo End of 5.0 tests
|
--echo End of 5.0 tests
|
||||||
|
@@ -15,6 +15,16 @@ DROP TABLE IF EXISTS t1;
|
|||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
--echo End of 4.1 tests
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #28925 GROUP_CONCAT inserts wrong separators for a ucs2 column
|
||||||
|
# Check that GROUP_CONCAT works fine with --default-character-set=ucs2
|
||||||
|
#
|
||||||
|
create table t1 (a char(1) character set latin1);
|
||||||
|
insert into t1 values ('a'),('b'),('c');
|
||||||
|
select hex(group_concat(a)) from t1;
|
||||||
|
drop table t1;
|
||||||
#
|
#
|
||||||
# Bug #27643: query failed : 1114 (The table '' is full)
|
# Bug #27643: query failed : 1114 (The table '' is full)
|
||||||
#
|
#
|
||||||
|
@@ -3209,6 +3209,27 @@ Item_func_group_concat::fix_fields(THD *thd, Item **ref)
|
|||||||
null_value= 1;
|
null_value= 1;
|
||||||
max_length= thd->variables.group_concat_max_len;
|
max_length= thd->variables.group_concat_max_len;
|
||||||
|
|
||||||
|
uint32 offset;
|
||||||
|
if (separator->needs_conversion(separator->length(), separator->charset(),
|
||||||
|
collation.collation, &offset))
|
||||||
|
{
|
||||||
|
uint32 buflen= collation.collation->mbmaxlen * separator->length();
|
||||||
|
uint errors, conv_length;
|
||||||
|
char *buf;
|
||||||
|
String *new_separator;
|
||||||
|
|
||||||
|
if (!(buf= thd->stmt_arena->alloc(buflen)) ||
|
||||||
|
!(new_separator= new(thd->stmt_arena->mem_root)
|
||||||
|
String(buf, buflen, collation.collation)))
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
conv_length= copy_and_convert(buf, buflen, collation.collation,
|
||||||
|
separator->ptr(), separator->length(),
|
||||||
|
separator->charset(), &errors);
|
||||||
|
new_separator->length(conv_length);
|
||||||
|
separator= new_separator;
|
||||||
|
}
|
||||||
|
|
||||||
if (check_sum_func(thd, ref))
|
if (check_sum_func(thd, ref))
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
|
@@ -5429,8 +5429,11 @@ opt_distinct:
|
|||||||
|DISTINCT { $$ = 1; };
|
|DISTINCT { $$ = 1; };
|
||||||
|
|
||||||
opt_gconcat_separator:
|
opt_gconcat_separator:
|
||||||
/* empty */ { $$ = new (YYTHD->mem_root) String(",",1,default_charset_info); }
|
/* empty */
|
||||||
|SEPARATOR_SYM text_string { $$ = $2; };
|
{
|
||||||
|
$$= new (YYTHD->mem_root) String(",", 1, &my_charset_latin1);
|
||||||
|
}
|
||||||
|
| SEPARATOR_SYM text_string { $$ = $2; };
|
||||||
|
|
||||||
|
|
||||||
opt_gorder_clause:
|
opt_gorder_clause:
|
||||||
|
Reference in New Issue
Block a user