diff options
author | unknown <bar@bar.mysql.r18.ru> | 2003-03-17 21:56:34 +0400 |
---|---|---|
committer | unknown <bar@bar.mysql.r18.ru> | 2003-03-17 21:56:34 +0400 |
commit | 84f0e1172981750a85bae8090548784f0aefa1e2 (patch) | |
tree | 1220cb8b5a2d5a6f85c1ee028fa98cf95cf2f38c /sql/protocol.cc | |
parent | 3ca97c63ba7dc4533b9b8b520263a6f6ee74efc8 (diff) | |
download | mariadb-git-84f0e1172981750a85bae8090548784f0aefa1e2.tar.gz |
mysql-test/t/ctype_many.test:
Automatic client-server charset recoding has been added
mysys/charset.c:
Automatic client-server charset recoding has been added
sql/item.cc:
Automatic client-server charset recoding has been added
sql/item.h:
Automatic client-server charset recoding has been added
sql/item_cmpfunc.cc:
Automatic client-server charset recoding has been added
sql/item_func.cc:
Automatic client-server charset recoding has been added
sql/item_strfunc.cc:
Automatic client-server charset recoding has been added
sql/mysqld.cc:
Automatic client-server charset recoding has been added
sql/protocol.cc:
Automatic client-server charset recoding has been added
sql/sql_string.cc:
Automatic client-server charset recoding has been added
sql/sql_yacc.yy:
Automatic client-server charset recoding has been added
strings/ctype-utf8.c:
Automatic client-server charset recoding has been added
Diffstat (limited to 'sql/protocol.cc')
-rw-r--r-- | sql/protocol.cc | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/sql/protocol.cc b/sql/protocol.cc index c7ce38eadac..9fb32daf57f 100644 --- a/sql/protocol.cc +++ b/sql/protocol.cc @@ -714,7 +714,6 @@ bool Protocol_simple::store(const char *from, uint length, CHARSET_INFO *cs) #endif if (convert) return convert_str(from, length); -#if 0 if (cs != this->thd->charset()) { String tmp; @@ -722,7 +721,6 @@ bool Protocol_simple::store(const char *from, uint length, CHARSET_INFO *cs) return net_store_data(tmp.ptr(), tmp.length()); } else -#endif return net_store_data(from, length); } @@ -813,11 +811,18 @@ bool Protocol_simple::store(Field *field) field_pos++; #endif char buff[MAX_FIELD_WIDTH]; - String tmp(buff,sizeof(buff), &my_charset_bin); - field->val_str(&tmp,&tmp); + String tmp1(buff,sizeof(buff), &my_charset_bin); + field->val_str(&tmp1,&tmp1); if (convert) - return convert_str(tmp.ptr(), tmp.length()); - return net_store_data(tmp.ptr(), tmp.length()); + return convert_str(tmp1.ptr(), tmp1.length()); + if (field->charset() != this->thd->charset()) + { + String tmp; + tmp.copy(tmp1.ptr(), tmp1.length(), tmp1.charset(), this->thd->charset()); + return net_store_data(tmp.ptr(), tmp.length()); + } + else + return net_store_data(tmp1.ptr(), tmp1.length()); } |