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.
This commit is contained in:
parent
abd77bc563
commit
48765db2e5
@ -1025,3 +1025,11 @@ select 1 from (select 1 from test.t1) a;
|
|||||||
1
|
1
|
||||||
use test;
|
use test;
|
||||||
drop table t1;
|
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;
|
||||||
|
@ -727,3 +727,12 @@ use information_schema;
|
|||||||
select 1 from (select 1 from test.t1) a;
|
select 1 from (select 1 from test.t1) a;
|
||||||
use test;
|
use test;
|
||||||
drop table t1;
|
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;
|
||||||
|
@ -2559,7 +2559,8 @@ static int get_schema_column_record(THD *thd, struct st_table_list *tables,
|
|||||||
is_blob= (field->type() == FIELD_TYPE_BLOB);
|
is_blob= (field->type() == FIELD_TYPE_BLOB);
|
||||||
if (field->has_charset() || is_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;
|
(longlong) field->max_length() / field->charset()->mbmaxlen;
|
||||||
table->field[8]->store(char_max_len, TRUE);
|
table->field[8]->store(char_max_len, TRUE);
|
||||||
table->field[8]->set_notnull();
|
table->field[8]->set_notnull();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user