summaryrefslogtreecommitdiff
path: root/sql/field.cc
diff options
context:
space:
mode:
authorunknown <bar@bar.intranet.mysql.r18.ru>2004-01-15 15:58:06 +0400
committerunknown <bar@bar.intranet.mysql.r18.ru>2004-01-15 15:58:06 +0400
commit5dcab209c2ff1fa64b9aaffb38a622ac841dab39 (patch)
treebb177713472699777e449ced347001c93f848cf4 /sql/field.cc
parentfd427c063da5d5b3843120ad76f02cfd823c8d22 (diff)
downloadmariadb-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.cc6
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
{