summaryrefslogtreecommitdiff
path: root/sql/field.cc
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mysql.com>2008-09-15 15:29:31 +0500
committerAlexander Barkov <bar@mysql.com>2008-09-15 15:29:31 +0500
commit94fad7c0c242a15dd90be9fe061d0661a0fedd16 (patch)
tree30bf1c1adbfeef560d508f207e7c8925f35abd82 /sql/field.cc
parent08421a83ba827171976041151004f087ce66f2a6 (diff)
downloadmariadb-git-94fad7c0c242a15dd90be9fe061d0661a0fedd16.tar.gz
Bug#35720 ucs2 + pad_char_to_full_length = failure
Problem: with @@sql_mode=pad_char_to_full_length a CHAR column returned additional garbage after trailing space characters due to incorrect my_charpos() call. Fix: call my_charpos() with correct arguments.
Diffstat (limited to 'sql/field.cc')
-rw-r--r--sql/field.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/sql/field.cc b/sql/field.cc
index 70cc14bda5f..b03cc140ade 100644
--- a/sql/field.cc
+++ b/sql/field.cc
@@ -6610,7 +6610,8 @@ String *Field_string::val_str(String *val_buffer __attribute__((unused)),
uint length;
if (table->in_use->variables.sql_mode &
MODE_PAD_CHAR_TO_FULL_LENGTH)
- length= my_charpos(field_charset, ptr, ptr + field_length, field_length);
+ length= my_charpos(field_charset, ptr, ptr + field_length,
+ field_length / field_charset->mbmaxlen);
else
length= field_charset->cset->lengthsp(field_charset, (const char*) ptr,
field_length);