Commit 48765db2 authored by unknown's avatar unknown
Browse files

Fix for bug #14290: wrong CHARACTER_MAXIMUM_LENGTH value for some text fields.


sql/sql_show.cc:
  Fix for bug #14290: wrong CHARACTER_MAXIMUM_LENGTH value for some text fields.
  adjust CHARACTER_MAXIMUM_LENGTH value for text fields.
parent abd77bc5
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -1025,3 +1025,11 @@ select 1 from (select 1 from test.t1) a;
1
use test;
drop table t1;
create table t1(a blob, b text charset utf8, c text charset ucs2);
select data_type, character_octet_length, character_maximum_length 
from information_schema.columns where table_name='t1';
data_type	character_octet_length	character_maximum_length
blob	65535	65535
text	65535	65535
text	65535	32767
drop table t1;
+9 −0
Original line number Diff line number Diff line
@@ -727,3 +727,12 @@ use information_schema;
select 1 from (select 1 from test.t1) a;
use test;
drop table t1;

#
# Bug #14290: character_maximum_length for text fields
#

create table t1(a blob, b text charset utf8, c text charset ucs2);
select data_type, character_octet_length, character_maximum_length 
  from information_schema.columns where table_name='t1';
drop table t1;
+3 −2
Original line number Diff line number Diff line
@@ -2559,7 +2559,8 @@ static int get_schema_column_record(THD *thd, struct st_table_list *tables,
    is_blob= (field->type() == FIELD_TYPE_BLOB);
    if (field->has_charset() || is_blob)
    {
      longlong char_max_len= is_blob ? (longlong) field->max_length() :
      longlong char_max_len= is_blob ? 
        (longlong) field->max_length() / field->charset()->mbminlen :
        (longlong) field->max_length() / field->charset()->mbmaxlen;
      table->field[8]->store(char_max_len, TRUE);
      table->field[8]->set_notnull();