Loading mysql-test/r/information_schema.result +8 −0 Original line number Diff line number Diff line Loading @@ -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; mysql-test/t/information_schema.test +9 −0 Original line number Diff line number Diff line Loading @@ -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; sql/sql_show.cc +3 −2 Original line number Diff line number Diff line Loading @@ -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(); Loading Loading
mysql-test/r/information_schema.result +8 −0 Original line number Diff line number Diff line Loading @@ -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;
mysql-test/t/information_schema.test +9 −0 Original line number Diff line number Diff line Loading @@ -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;
sql/sql_show.cc +3 −2 Original line number Diff line number Diff line Loading @@ -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(); Loading