mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
Bug#31291 ALTER TABLE CONVERT TO CHARACTER SET does not change some data types
added ability for TINY[MEDIUM] text fields to be converted to greater subtype during alter if necessary(altered charset)
This commit is contained in:
parent
904c7c4409
commit
d2b5e0bb94
3 changed files with 32 additions and 1 deletions
|
@ -915,3 +915,19 @@ check table t1;
|
|||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
drop table t1;
|
||||
create table t1 (a tinytext character set latin1);
|
||||
alter table t1 convert to character set utf8;
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` text
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8
|
||||
drop table t1;
|
||||
create table t1 (a mediumtext character set latin1);
|
||||
alter table t1 convert to character set utf8;
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` longtext
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8
|
||||
drop table t1;
|
||||
|
|
|
@ -696,3 +696,16 @@ unlock tables;
|
|||
select * from t1;
|
||||
check table t1;
|
||||
drop table t1;
|
||||
|
||||
|
||||
#
|
||||
# Bug#31291 ALTER TABLE CONVERT TO CHARACTER SET does not change some data types
|
||||
#
|
||||
create table t1 (a tinytext character set latin1);
|
||||
alter table t1 convert to character set utf8;
|
||||
show create table t1;
|
||||
drop table t1;
|
||||
create table t1 (a mediumtext character set latin1);
|
||||
alter table t1 convert to character set utf8;
|
||||
show create table t1;
|
||||
drop table t1;
|
||||
|
|
|
@ -1535,7 +1535,9 @@ static bool prepare_blob_field(THD *thd, create_field *sql_field)
|
|||
|
||||
if ((sql_field->flags & BLOB_FLAG) && sql_field->length)
|
||||
{
|
||||
if (sql_field->sql_type == FIELD_TYPE_BLOB)
|
||||
if (sql_field->sql_type == FIELD_TYPE_BLOB ||
|
||||
sql_field->sql_type == FIELD_TYPE_TINY_BLOB ||
|
||||
sql_field->sql_type == FIELD_TYPE_MEDIUM_BLOB)
|
||||
{
|
||||
/* The user has given a length to the blob column */
|
||||
sql_field->sql_type= get_blob_type_from_length(sql_field->length);
|
||||
|
|
Loading…
Reference in a new issue