summaryrefslogtreecommitdiff
path: root/sql/sql_show.cc
diff options
context:
space:
mode:
authorunknown <bar@mysql.com>2006-01-12 16:05:46 +0400
committerunknown <bar@mysql.com>2006-01-12 16:05:46 +0400
commit46fdcba4f13ad54cb617dd3a649ee02f64bb8652 (patch)
treec3c167b7cf715eec7f84b682927dae259b75091b /sql/sql_show.cc
parentcd1f75e9cb3aeb61c31a739db515065bbe6f4df4 (diff)
downloadmariadb-git-46fdcba4f13ad54cb617dd3a649ee02f64bb8652.tar.gz
sql_show.cc:
after-merge fix for bug#15581 COALESCE function truncates mutli-byte TINYTEXT values sql/sql_show.cc: after-merge fix for bug#15581 COALESCE function truncates mutli-byte TINYTEXT values ,
Diffstat (limited to 'sql/sql_show.cc')
-rw-r--r--sql/sql_show.cc9
1 files changed, 6 insertions, 3 deletions
diff --git a/sql/sql_show.cc b/sql/sql_show.cc
index d15df686e40..59008b1b77f 100644
--- a/sql/sql_show.cc
+++ b/sql/sql_show.cc
@@ -2623,12 +2623,15 @@ static int get_schema_column_record(THD *thd, struct st_table_list *tables,
field->real_type() == MYSQL_TYPE_VARCHAR || // For varbinary type
field->real_type() == MYSQL_TYPE_STRING) // For binary type
{
+ uint32 octet_max_length= field->max_length();
+ if (octet_max_length != (uint32) 4294967295U)
+ octet_max_length /= field->charset()->mbmaxlen;
longlong char_max_len= is_blob ?
- (longlong) field->max_length() / field->charset()->mbminlen :
- (longlong) field->max_length() / field->charset()->mbmaxlen;
+ (longlong) octet_max_length / field->charset()->mbminlen :
+ (longlong) octet_max_length / field->charset()->mbmaxlen;
table->field[8]->store(char_max_len, TRUE);
table->field[8]->set_notnull();
- table->field[9]->store((longlong) field->max_length(), TRUE);
+ table->field[9]->store((longlong) octet_max_length, TRUE);
table->field[9]->set_notnull();
}