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
|
Table Op Msg_type Msg_text
|
||||||
test.t1 check status OK
|
test.t1 check status OK
|
||||||
drop table t1;
|
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;
|
select * from t1;
|
||||||
check table t1;
|
check table t1;
|
||||||
drop 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->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 */
|
/* The user has given a length to the blob column */
|
||||||
sql_field->sql_type= get_blob_type_from_length(sql_field->length);
|
sql_field->sql_type= get_blob_type_from_length(sql_field->length);
|
||||||
|
|
Loading…
Reference in a new issue