diff options
author | bar@mysql.com <> | 2004-08-19 11:59:33 +0500 |
---|---|---|
committer | bar@mysql.com <> | 2004-08-19 11:59:33 +0500 |
commit | 7f92905954b94ac17d0775f2e06b04f7db0cc949 (patch) | |
tree | 9747318c80887ffa3c93f999b16dee054c87c437 | |
parent | 3f75d2bd3eff347f105e1eea11c7395376e6d005 (diff) | |
download | mariadb-git-7f92905954b94ac17d0775f2e06b04f7db0cc949.tar.gz |
Bug#5081: UCS2 fields are filled with '0x2020' after extending field length
-rw-r--r-- | mysql-test/r/ctype_ucs.result | 10 | ||||
-rw-r--r-- | mysql-test/t/ctype_ucs.test | 11 | ||||
-rw-r--r-- | sql/field_conv.cc | 4 |
3 files changed, 24 insertions, 1 deletions
diff --git a/mysql-test/r/ctype_ucs.result b/mysql-test/r/ctype_ucs.result index 811696ef052..1d3deb0b09a 100644 --- a/mysql-test/r/ctype_ucs.result +++ b/mysql-test/r/ctype_ucs.result @@ -470,3 +470,13 @@ select s1 from t1 where s1 > 'a' order by s1; s1 b c +drop table t1; +create table t1(a char(1)) default charset = ucs2; +insert into t1 values ('a'),('b'),('c'); +alter table t1 modify a char(5); +select a, hex(a) from t1; +a hex(a) +a 0061 +b 0062 +c 0063 +drop table t1; diff --git a/mysql-test/t/ctype_ucs.test b/mysql-test/t/ctype_ucs.test index 188ef571f7e..d9ef91496e9 100644 --- a/mysql-test/t/ctype_ucs.test +++ b/mysql-test/t/ctype_ucs.test @@ -303,4 +303,15 @@ DROP TABLE t1; create table t1 (s1 char character set `ucs2` collate `ucs2_czech_ci`); insert into t1 values ('0'),('1'),('2'),('a'),('b'),('c'); select s1 from t1 where s1 > 'a' order by s1; +drop table t1; + +# +# Bug #5081 : UCS2 fields are filled with '0x2020' +# after extending field length +# +create table t1(a char(1)) default charset = ucs2; +insert into t1 values ('a'),('b'),('c'); +alter table t1 modify a char(5); +select a, hex(a) from t1; +drop table t1; diff --git a/sql/field_conv.cc b/sql/field_conv.cc index e98068ef974..d7993939092 100644 --- a/sql/field_conv.cc +++ b/sql/field_conv.cc @@ -340,8 +340,10 @@ static void do_cut_string(Copy_field *copy) static void do_expand_string(Copy_field *copy) { + CHARSET_INFO *cs= copy->from_field->charset(); memcpy(copy->to_ptr,copy->from_ptr,copy->from_length); - bfill(copy->to_ptr+copy->from_length,copy->to_length-copy->from_length,' '); + cs->cset->fill(cs, copy->to_ptr+copy->from_length, + copy->to_length-copy->from_length, ' '); } static void do_varstring(Copy_field *copy) |