summaryrefslogtreecommitdiff
path: root/libmysqld/lib_sql.cc
diff options
context:
space:
mode:
authorpatg@govinda.patg.net <>2006-08-08 09:01:32 -0700
committerpatg@govinda.patg.net <>2006-08-08 09:01:32 -0700
commit8d1e5a5bb149baad9f23bc1f19d66020d476414f (patch)
tree2916bef1225d622c7fc389afa5e14cb32040ab90 /libmysqld/lib_sql.cc
parenta4eb61b88cbe4e8f6e43db2ca841fa60ec73467c (diff)
parenta9a345d9a59eb0fc04d53e7c86d08e07ca53cc7f (diff)
downloadmariadb-git-8d1e5a5bb149baad9f23bc1f19d66020d476414f.tar.gz
Merge govinda.patg.net:/home/patg/mysql-build/mysql-5.0-holyfoot
into govinda.patg.net:/home/patg/mysql-build/mysql-5.1-5.0-merge2 Push by holyfoot@production.mysql.com on Tue Jul 25 13:41:40 2006: bk clone -l -r'holyfoot/hf@mysql.com/deer.(none)|ChangeSet|20060725085017|41021' mysql-5.0 tmp_merge
Diffstat (limited to 'libmysqld/lib_sql.cc')
-rw-r--r--libmysqld/lib_sql.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc
index 14dbe21fce0..6f9165f5018 100644
--- a/libmysqld/lib_sql.cc
+++ b/libmysqld/lib_sql.cc
@@ -894,10 +894,14 @@ bool Protocol::send_fields(List<Item> *list, uint flags)
}
else
{
+ uint max_char_len;
/* With conversion */
client_field->charsetnr= thd_cs->number;
- uint char_len= server_field.length / item->collation.collation->mbmaxlen;
- client_field->length= char_len * thd_cs->mbmaxlen;
+ max_char_len= (server_field.type >= (int) MYSQL_TYPE_TINY_BLOB &&
+ server_field.type <= (int) MYSQL_TYPE_BLOB) ?
+ server_field.length / item->collation.collation->mbminlen :
+ server_field.length / item->collation.collation->mbmaxlen;
+ client_field->length= max_char_len * thd_cs->mbmaxlen;
}
client_field->type= server_field.type;
client_field->flags= server_field.flags;