summaryrefslogtreecommitdiff
path: root/client/mysql.cc
diff options
context:
space:
mode:
Diffstat (limited to 'client/mysql.cc')
-rw-r--r--client/mysql.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/client/mysql.cc b/client/mysql.cc
index b39a05bc61c..2ba9e896747 100644
--- a/client/mysql.cc
+++ b/client/mysql.cc
@@ -2354,9 +2354,14 @@ print_table_data(MYSQL_RES *result)
(void) tee_fputs("|", PAGER);
for (uint off=0; (field = mysql_fetch_field(result)) ; off++)
{
- tee_fprintf(PAGER, " %-*s |",(int) min(field->max_length,
+ uint name_length= (uint) strlen(field->name);
+ uint numcells= charset_info->cset->numcells(charset_info,
+ field->name,
+ field->name + name_length);
+ uint display_length= field->max_length + name_length - numcells;
+ tee_fprintf(PAGER, " %-*s |",(int) min(display_length,
MAX_COLUMN_LENGTH),
- field->name);
+ field->name);
num_flag[off]= IS_NUM(field->type);
not_null_flag[off]= IS_NOT_NULL(field->flags);
}