Commit 06cf873d authored by unknown's avatar unknown

alter_table.result, alter_table.test, field_conv.cc:

  Bug #6479  ALTER TABLE ... changing charset fails for TEXT columns
  Fix: use do_conv_blob rather than do_copy_blob
  if the column's character sets are different.


sql/field_conv.cc:
  Bug #6479  ALTER TABLE ... changing charset fails for TEXT columns
  Fix: use do_conv_blob rather than do_copy_blob
  if the column's character sets are different.
mysql-test/t/alter_table.test:
  Bug #6479  ALTER TABLE ... changing charset fails for TEXT columns
  Fix: use do_conv_blob rather than do_copy_blob
  if the column's character sets are different.
mysql-test/r/alter_table.result:
  Bug #6479  ALTER TABLE ... changing charset fails for TEXT columns
  Fix: use do_conv_blob rather than do_copy_blob
  if the column's character sets are different.
parent bf14010d
......@@ -483,3 +483,13 @@ ERROR 42000: Incorrect table name 't1\\'
rename table t1 to `t1\\`;
ERROR 42000: Incorrect table name 't1\\'
drop table t1;
create table t1 (a text) character set koi8r;
insert into t1 values (_koi8r'');
select hex(a) from t1;
hex(a)
D4C5D3D4
alter table t1 convert to character set cp1251;
select hex(a) from t1;
hex(a)
F2E5F1F2
drop table t1;
......@@ -324,3 +324,15 @@ alter table t1 rename to `t1\\`;
rename table t1 to `t1\\`;
drop table t1;
#
# Bug #6479 ALTER TABLE ... changing charset fails for TEXT columns
#
# The column's character set was changed but the actual data was not
# modified. In other words, the values were reinterpreted
# as UTF8 instead of being converted.
create table t1 (a text) character set koi8r;
insert into t1 values (_koi8r'');
select hex(a) from t1;
alter table t1 convert to character set cp1251;
select hex(a) from t1;
drop table t1;
......@@ -475,6 +475,8 @@ void (*Copy_field::get_copy_func(Field *to,Field *from))(Copy_field*)
{
if (!(from->flags & BLOB_FLAG))
return do_conv_blob;
if (from->charset() != to->charset())
return do_conv_blob;
if (from_length != to_length ||
to->table->db_low_byte_first != from->table->db_low_byte_first)
{
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment