diff options
author | monty@mishka.local <> | 2004-12-22 13:54:39 +0200 |
---|---|---|
committer | monty@mishka.local <> | 2004-12-22 13:54:39 +0200 |
commit | 4f4bbfc279800923299df1fefeb2fcd299fcde90 (patch) | |
tree | 8e5f08b17957f896c2d4e931e60b57d99c260ed6 /sql/protocol.cc | |
parent | 198dc7a8ec6e220c348bb47e59a2ac7532be18b8 (diff) | |
parent | 98f2a83539735f1a69680195290adcf02861f073 (diff) | |
download | mariadb-git-4f4bbfc279800923299df1fefeb2fcd299fcde90.tar.gz |
Merge with 4.1
Diffstat (limited to 'sql/protocol.cc')
-rw-r--r-- | sql/protocol.cc | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/sql/protocol.cc b/sql/protocol.cc index 4c916d78378..d537f9cf829 100644 --- a/sql/protocol.cc +++ b/sql/protocol.cc @@ -537,10 +537,18 @@ bool Protocol::send_fields(List<Item> *list, uint flags) pos= (char*) local_packet->ptr()+local_packet->length(); *pos++= 12; // Length of packed fields if (item->collation.collation == &my_charset_bin || thd_charset == NULL) + { + /* No conversion */ int2store(pos, field.charsetnr); + int4store(pos+2, field.length); + } else - int2store(pos, thd_charset->number); - int4store(pos+2, field.length); + { + /* With conversion */ + int2store(pos, thd_charset->number); + uint char_len= field.length / item->collation.collation->mbmaxlen; + int4store(pos+2, char_len * thd_charset->mbmaxlen); + } pos[6]= field.type; int2store(pos+7,field.flags); pos[9]= (char) field.decimals; |