diff options
author | unknown <bar@bar.intranet.mysql.r18.ru> | 2004-01-15 15:58:06 +0400 |
---|---|---|
committer | unknown <bar@bar.intranet.mysql.r18.ru> | 2004-01-15 15:58:06 +0400 |
commit | 5dcab209c2ff1fa64b9aaffb38a622ac841dab39 (patch) | |
tree | bb177713472699777e449ced347001c93f848cf4 /sql/field.cc | |
parent | fd427c063da5d5b3843120ad76f02cfd823c8d22 (diff) | |
download | mariadb-git-5dcab209c2ff1fa64b9aaffb38a622ac841dab39.tar.gz |
field.cc:
http://bugs.mysql.com/bug.php?id=2218
updating utf-8 text field generate nonsense chars
Fix for the above bug.
sql/field.cc:
http://bugs.mysql.com/bug.php?id=2218
updating utf-8 text field generate nonsense chars
Fix for the above bug.
Diffstat (limited to 'sql/field.cc')
-rw-r--r-- | sql/field.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sql/field.cc b/sql/field.cc index a9029b893e3..5602231dd9b 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -4567,17 +4567,19 @@ int Field_blob::store(const char *from,uint length,CHARSET_INFO *cs) } else { + bool was_conversion; char buff[80]; String tmpstr(buff,sizeof(buff), &my_charset_bin); + /* Convert character set if nesessary */ - if (use_conversion(cs, field_charset)) + if ((was_conversion= use_conversion(cs, field_charset))) { tmpstr.copy(from, length, cs, field_charset); from= tmpstr.ptr(); length= tmpstr.length(); } Field_blob::store_length(length); - if (table->copy_blobs || length <= MAX_FIELD_WIDTH) + if (was_conversion || table->copy_blobs || length <= MAX_FIELD_WIDTH) { // Must make a copy if (from != value.ptr()) // For valgrind { |