From d78d76f114704668d43db2c023ae60d17603ffc0 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 31 Dec 2002 18:01:53 +0200 Subject: [PATCH 1/2] A fix for a charset bug in the select_export (select into outfile) class. --- mysql-test/t/outfile.test | 6 +++--- sql/field.cc | 1 - sql/item.cc | 1 + 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mysql-test/t/outfile.test b/mysql-test/t/outfile.test index 3d524cb35a2..a944df01051 100644 --- a/mysql-test/t/outfile.test +++ b/mysql-test/t/outfile.test @@ -22,7 +22,7 @@ #select load_file("/tmp/select-test.not-exist"); #drop table t1; #drop table if exists t; -#CREATE TABLE t ( t timestamp NOT NULL, c char(200) character set latin1 NOT NULL default '', KEY t (t)) TYPE=MyISAM; -#INSERT INTO t VALUES ('2002-12-20 12:01:20',''); -#select * from t into outfile "fdg"; +#CREATE TABLE t ( t timestamp NOT NULL, c char(200) character set latin1 NOT NULL default '', i int(11), v varchar(200), b blob, KEY t (t)) TYPE=MyISAM; +#INSERT INTO t VALUES ('2002-12-20 12:01:20','',1,"aaa","bbb"); +#select * from t into outfile "check"; #drop table if exists t; diff --git a/sql/field.cc b/sql/field.cc index be565e2e869..36d1bf49c7c 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -2844,7 +2844,6 @@ String *Field_timestamp::val_str(String *val_buffer, val_buffer->alloc(field_length+1); char *to=(char*) val_buffer->ptr(),*end=to+field_length; val_buffer->length(field_length); - val_buffer->set_charset(val_ptr->charset()); #ifdef WORDS_BIGENDIAN if (table->db_low_byte_first) diff --git a/sql/item.cc b/sql/item.cc index 95689e20faa..08ca2d66f02 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -220,6 +220,7 @@ String *Item_field::str_result(String *str) { if ((null_value=result_field->is_null())) return 0; + str->set_charset(str_value.charset()); return result_field->val_str(str,&str_value); } From 7df75ca76ac6ff716443f04aaa3fda01239dc0aa Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 3 Jan 2003 15:07:40 +0200 Subject: [PATCH 2/2] Further fix for export class problem --- sql/item.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/sql/item.cc b/sql/item.cc index 08ca2d66f02..2f1c5245a01 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -198,6 +198,7 @@ String *Item_field::val_str(String *str) { if ((null_value=field->is_null())) return 0; + str->set_charset(str_value.charset()); return field->val_str(str,&str_value); }