1
0
mirror of https://github.com/MariaDB/server.git synced 2025-10-12 12:25:37 +03:00
Files
mariadb/mysql-test/suite/innodb/r/instant_alter_charset.result
Marko Mäkelä ea0be9e2d6 MDEV-15564 Avoid table rebuild in ALTER TABLE on collation or charset changes
Allow ALGORITHM=INSTANT (or avoid touching any data)
when changing the collation, or in some cases, the character set,
of a non-indexed CHAR or VARCHAR column. There is no penalty
for subsequent DDL or DML operations, and compatibility with
older MariaDB versions will be unaffected.

Character sets may be changed when the old encoding is compatible
with the new one. For example, changing from ASCII to anything
ASCII-based, or from 3-byte to 4-byte UTF-8 can sometimes be
performed instantly.

This is joint work with Eugene Kosov.
The test cases as well as ALTER_CONVERT_TO, charsets_are_compatible(),
Type_handler::Charsets_are_compatible() are his work.
The Field_str::is_equal(), Field_varstring::is_equal() and
the InnoDB changes were mostly rewritten by me due to conflicts
with MDEV-15563.

Limitations:

Changes of indexed columns will still require
ALGORITHM=COPY. We should allow ALGORITHM=NOCOPY and allow
the indexes to be rebuilt inside the storage engine,
without copying the entire table.

Instant column size changes (in bytes) are not supported by
all storage engines.

Instant CHAR column changes are only allowed for InnoDB
ROW_FORMAT=REDUNDANT. We could allow this for InnoDB
when the CHAR internally uses a variable-length encoding,
say, when converting from 3-byte UTF-8 to 4-byte UTF-8.

Instant VARCHAR column changes are allowed for InnoDB
ROW_FORMAT=REDUNDANT, and for others only if the size
in bytes does not change from 128..255 bytes to more
than 256 bytes.

Inside InnoDB, this slightly changes the way how MDEV-15563
works and fixes the result of the innodb.instant_alter_extend test.
We change the way how ALTER_COLUMN_EQUAL_PACK_LENGTH_EXT
is handled. All column extension, type changes and renaming
now go through a common route, except when ctx->is_instant()
is in effect, for example, instant ADD or DROP COLUMN has
been initiated. Only in that case we will go through
innobase_instant_try() and rewrite all column metadata.

get_type(field, prtype, mtype, len): Convert a SQL data type into
InnoDB column metadata.

innobase_rename_column_try(): Remove the update of SYS_COLUMNS.

innobase_rename_or_enlarge_column_try(): New function,
replacing part of innobase_rename_column_try() and all of
innobase_enlarge_column_try(). Also changes column types.

innobase_rename_or_enlarge_columns_cache(): Also change
the column type.
2019-02-14 20:17:14 +02:00

1813 lines
74 KiB
Plaintext

set names utf8;
create table no_rebuild (
a char(150) charset utf8mb3 collate utf8mb3_general_ci
) engine=innodb;
create table rebuild (
a varchar(150) charset ascii
) engine=innodb;
set @id = (select table_id from information_schema.innodb_sys_tables
where name = 'test/no_rebuild');
select name, prtype, len from information_schema.innodb_sys_columns
where table_id = @id;
name prtype len
a 2162942 450
select c.prtype, c.len from information_schema.innodb_sys_columns as c inner join information_schema.innodb_sys_tables t on c.table_id = t.table_id
where t.name = 'test/rebuild' and c.name = 'a';
prtype len
720911 150
alter table no_rebuild
change a a char(150) charset utf8mb3 collate utf8mb3_spanish_ci,
algorithm=inplace;
alter table rebuild
change a a varchar(150) charset latin1 not null default 'asdf',
algorithm=inplace;
select name, prtype, len from information_schema.innodb_sys_columns
where table_id = @id;
name prtype len
a 13041918 450
select c.prtype, c.len from information_schema.innodb_sys_columns as c inner join information_schema.innodb_sys_tables t on c.table_id = t.table_id
where t.name = 'test/rebuild' and c.name = 'a';
prtype len
524559 150
drop table no_rebuild, rebuild;
create table supported_types (
id int primary key auto_increment,
a varchar(150) charset ascii,
b text(150) charset ascii,
c text charset ascii,
d tinytext charset ascii,
e mediumtext charset ascii,
f longtext charset ascii
) engine=innodb;
alter table supported_types
convert to charset latin1,
algorithm=instant;
drop table supported_types;
create table various_cases (
a char(150) charset ascii,
b varchar(150) as (a) virtual,
c varchar(150) as (a) persistent
) engine=innodb;
alter table various_cases
change a a char(150) charset latin1,
algorithm=inplace;
alter table various_cases
change a a varchar(222),
algorithm=inplace;
ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table various_cases
change b b varchar(150) as (a) virtual,
algorithm=inplace;
alter table various_cases
change c c varchar(150) as (a) persistent,
algorithm=inplace;
ERROR 0A000: ALGORITHM=INPLACE is not supported for this operation. Try ALGORITHM=COPY
alter table various_cases
modify a char(150) charset utf8mb4,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table various_cases;
create table all_texts (
a tinytext charset ascii,
b text charset ascii,
c mediumtext charset ascii,
d longtext charset ascii,
footer int
) engine=innodb;
alter table all_texts
convert to charset latin1 collate latin1_general_ci,
algorithm=instant;
drop table all_texts;
create table all_binaries (
a tinyblob,
b blob,
c mediumblob,
d longblob,
e varbinary(150),
f binary(150)
) engine=innodb;
alter table all_binaries modify a tinytext, algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table all_binaries modify b text, algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table all_binaries modify c mediumtext, algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table all_binaries modify d longtext, algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table all_binaries modify e varchar(150), algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table all_binaries modify f char(150), algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table all_binaries;
create table all_strings (
a tinytext,
b text,
c mediumtext,
d longtext,
e varchar(150),
f char(150)
) engine=innodb;
alter table all_strings modify a tinyblob, algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table all_strings modify b blob, algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table all_strings modify c mediumblob, algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table all_strings modify d longblob, algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table all_strings modify e varbinary(150), algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table all_strings modify f binary(150), algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table all_strings modify a tinytext charset binary, algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table all_strings modify b text charset binary, algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table all_strings modify c mediumtext charset binary, algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table all_strings modify d longtext charset binary, algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table all_strings modify e varchar(150) charset binary, algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table all_strings modify f char(150) charset binary, algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table all_strings;
create table key_part_change (
a char(150) charset ascii,
b char(150) charset ascii,
c char(150) charset ascii,
unique key ab (a,b)
) engine=innodb;
alter table key_part_change
modify a char(150) charset utf8mb4,
drop index ab,
add unique key ab(a,c),
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table key_part_change;
create table key_part_change_and_rename (
a char(100) charset ascii,
b char(100) charset ascii,
unique key ab (a,b)
) engine=innodb;
alter table key_part_change_and_rename
change a b char(100) charset utf8mb4,
change b a char(100) charset utf8mb4,
drop index ab,
add unique key ab(a,b),
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table key_part_change_and_rename;
create table enum_and_set (
a enum('one', 'two') charset utf8mb3,
b set('three', 'four') charset utf8mb3
) engine=innodb;
alter table enum_and_set
modify a enum('one', 'two') charset utf8mb4,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table enum_and_set
modify b enum('three', 'four') charset utf8mb4,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table enum_and_set;
create table compressed (
a varchar(255) charset utf8mb3 compressed
) engine=innodb;
insert into compressed values ('AAA'), ('bbb'), ('CCC');
alter table compressed
modify a varchar(255) charset utf8mb4 compressed,
algorithm=instant;
select * from compressed;
a
AAA
bbb
CCC
check table compresed;
Table Op Msg_type Msg_text
test.compresed check Error Table 'test.compresed' doesn't exist
test.compresed check status Operation failed
drop table compressed;
create table key_part_bug (
id int primary key auto_increment,
a varchar(150) charset utf8mb3 unique key
) engine=innodb;
alter table key_part_bug
modify a varchar(150) charset utf8mb4,
algorithm=instant;
drop table key_part_bug;
create table latin1_swedish_special_case (
copy1 varchar(150) charset ascii collate ascii_general_ci,
copy2 char(150) charset ascii collate ascii_general_ci,
instant1 varchar(150) charset ascii collate ascii_general_ci,
instant2 char(150) charset ascii collate ascii_general_ci
) engine=innodb;
select c.name, c.prtype, c.mtype, c.len from information_schema.innodb_sys_columns as c inner join information_schema.innodb_sys_tables t on c.table_id = t.table_id
where t.name = 'test/latin1_swedish_special_case';
name prtype mtype len
copy1 720911 12 150
copy2 721150 13 150
instant1 720911 12 150
instant2 721150 13 150
alter table latin1_swedish_special_case
modify copy1 varchar(150) charset latin1 collate latin1_swedish_ci,
modify copy2 char(150) charset latin1 collate latin1_swedish_ci,
algorithm=copy;
alter table latin1_swedish_special_case
modify instant1 varchar(150) charset latin1 collate latin1_swedish_ci,
modify instant2 char(150) charset latin1 collate latin1_swedish_ci,
algorithm=instant;
select c.name, c.prtype, c.mtype, c.len from information_schema.innodb_sys_columns as c inner join information_schema.innodb_sys_tables t on c.table_id = t.table_id
where t.name = 'test/latin1_swedish_special_case';
name prtype mtype len
copy1 524303 1 150
copy2 524542 2 150
instant1 524303 1 150
instant2 524542 2 150
alter table latin1_swedish_special_case
modify copy1 varchar(150) charset latin1 collate latin1_general_ci,
modify copy2 char(150) charset latin1 collate latin1_general_ci,
algorithm=copy;
alter table latin1_swedish_special_case
modify instant1 varchar(150) charset latin1 collate latin1_general_ci,
modify instant2 char(150) charset latin1 collate latin1_general_ci,
algorithm=instant;
select c.name, c.prtype, c.mtype, c.len from information_schema.innodb_sys_columns as c inner join information_schema.innodb_sys_tables t on c.table_id = t.table_id
where t.name = 'test/latin1_swedish_special_case';
name prtype mtype len
copy1 3145743 12 150
copy2 3145982 13 150
instant1 3145743 12 150
instant2 3145982 13 150
drop table latin1_swedish_special_case;
create table regression (a varchar(100) charset utf8mb3 primary key, b int) engine=innodb;
alter table regression convert to character set utf8mb4;
drop table regression;
create table boundary_255 (
a varchar(50) charset ascii,
b varchar(200) charset ascii,
c varchar(300) charset ascii
) engine=innodb;
alter table boundary_255
modify a varchar(50) charset utf8mb3,
algorithm=instant;
alter table boundary_255
modify b varchar(200) charset utf8mb3,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table boundary_255
modify c varchar(300) charset utf8mb3,
algorithm=instant;
drop table boundary_255;
create table fully_compatible (
id int auto_increment unique key,
from_charset char(255),
from_collate char(255),
to_charset char(255),
to_collate char(255)
);
insert into fully_compatible (from_charset, from_collate, to_charset, to_collate) values
('utf8mb3', 'utf8mb3_general_ci', 'utf8mb4', 'utf8mb4_general_ci'),
('utf8mb3', 'utf8mb3_bin', 'utf8mb4', 'utf8mb4_bin'),
('utf8mb3', 'utf8mb3_unicode_ci', 'utf8mb4', 'utf8mb4_unicode_ci'),
('utf8mb3', 'utf8mb3_icelandic_ci', 'utf8mb4', 'utf8mb4_icelandic_ci'),
('utf8mb3', 'utf8mb3_latvian_ci', 'utf8mb4', 'utf8mb4_latvian_ci'),
('utf8mb3', 'utf8mb3_romanian_ci', 'utf8mb4', 'utf8mb4_romanian_ci'),
('utf8mb3', 'utf8mb3_slovenian_ci', 'utf8mb4', 'utf8mb4_slovenian_ci'),
('utf8mb3', 'utf8mb3_polish_ci', 'utf8mb4', 'utf8mb4_polish_ci'),
('utf8mb3', 'utf8mb3_estonian_ci', 'utf8mb4', 'utf8mb4_estonian_ci'),
('utf8mb3', 'utf8mb3_spanish_ci', 'utf8mb4', 'utf8mb4_spanish_ci'),
('utf8mb3', 'utf8mb3_swedish_ci', 'utf8mb4', 'utf8mb4_swedish_ci'),
('utf8mb3', 'utf8mb3_turkish_ci', 'utf8mb4', 'utf8mb4_turkish_ci'),
('utf8mb3', 'utf8mb3_czech_ci', 'utf8mb4', 'utf8mb4_czech_ci'),
('utf8mb3', 'utf8mb3_danish_ci', 'utf8mb4', 'utf8mb4_danish_ci'),
('utf8mb3', 'utf8mb3_lithuanian_ci', 'utf8mb4', 'utf8mb4_lithuanian_ci'),
('utf8mb3', 'utf8mb3_slovak_ci', 'utf8mb4', 'utf8mb4_slovak_ci'),
('utf8mb3', 'utf8mb3_spanish2_ci', 'utf8mb4', 'utf8mb4_spanish2_ci'),
('utf8mb3', 'utf8mb3_roman_ci', 'utf8mb4', 'utf8mb4_roman_ci'),
('utf8mb3', 'utf8mb3_persian_ci', 'utf8mb4', 'utf8mb4_persian_ci'),
('utf8mb3', 'utf8mb3_esperanto_ci', 'utf8mb4', 'utf8mb4_esperanto_ci'),
('utf8mb3', 'utf8mb3_hungarian_ci', 'utf8mb4', 'utf8mb4_hungarian_ci'),
('utf8mb3', 'utf8mb3_sinhala_ci', 'utf8mb4', 'utf8mb4_sinhala_ci'),
('utf8mb3', 'utf8mb3_german2_ci', 'utf8mb4', 'utf8mb4_german2_ci'),
('utf8mb3', 'utf8mb3_croatian_mysql561_ci', 'utf8mb4', 'utf8mb4_croatian_mysql561_ci'),
('utf8mb3', 'utf8mb3_unicode_520_ci', 'utf8mb4', 'utf8mb4_unicode_520_ci'),
('utf8mb3', 'utf8mb3_vietnamese_ci', 'utf8mb4', 'utf8mb4_vietnamese_ci'),
('utf8mb3', 'utf8mb3_croatian_ci', 'utf8mb4', 'utf8mb4_croatian_ci'),
('utf8mb3', 'utf8mb3_myanmar_ci', 'utf8mb4', 'utf8mb4_myanmar_ci'),
('utf8mb3', 'utf8mb3_thai_520_w2', 'utf8mb4', 'utf8mb4_thai_520_w2'),
('utf8mb3', 'utf8mb3_general_nopad_ci', 'utf8mb4', 'utf8mb4_general_nopad_ci'),
('utf8mb3', 'utf8mb3_nopad_bin', 'utf8mb4', 'utf8mb4_nopad_bin'),
('utf8mb3', 'utf8mb3_unicode_nopad_ci', 'utf8mb4', 'utf8mb4_unicode_nopad_ci'),
('utf8mb3', 'utf8mb3_unicode_520_nopad_ci', 'utf8mb4', 'utf8mb4_unicode_520_nopad_ci'),
('ucs2', 'ucs2_general_ci', 'utf16', 'utf16_general_ci'),
('ucs2', 'ucs2_unicode_ci', 'utf16', 'utf16_unicode_ci'),
('ucs2', 'ucs2_icelandic_ci', 'utf16', 'utf16_icelandic_ci'),
('ucs2', 'ucs2_latvian_ci', 'utf16', 'utf16_latvian_ci'),
('ucs2', 'ucs2_romanian_ci', 'utf16', 'utf16_romanian_ci'),
('ucs2', 'ucs2_slovenian_ci', 'utf16', 'utf16_slovenian_ci'),
('ucs2', 'ucs2_polish_ci', 'utf16', 'utf16_polish_ci'),
('ucs2', 'ucs2_estonian_ci', 'utf16', 'utf16_estonian_ci'),
('ucs2', 'ucs2_spanish_ci', 'utf16', 'utf16_spanish_ci'),
('ucs2', 'ucs2_general_ci', 'utf16', 'utf16_general_ci'),
('ascii', 'ascii_general_ci', 'utf8mb3', 'utf8mb3_general_ci'),
('ascii', 'ascii_general_ci', 'utf8mb4', 'utf8mb4_general_ci'),
('ascii', 'ascii_general_ci', 'latin1', 'latin1_general_ci'),
('ascii', 'ascii_bin', 'latin1', 'latin1_bin'),
('ascii', 'ascii_nopad_bin', 'latin1', 'latin1_nopad_bin'),
('ascii', 'ascii_general_ci', 'latin2', 'latin2_general_ci'),
('ascii', 'ascii_general_ci', 'latin7', 'latin7_general_ci'),
('ascii', 'ascii_bin', 'koi8u', 'koi8u_bin'),
('ascii', 'ascii_bin', 'ujis', 'ujis_bin'),
('ascii', 'ascii_bin', 'big5', 'big5_bin'),
('ascii', 'ascii_bin', 'gbk', 'gbk_bin')
;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_general_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_general_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_general_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_general_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_bin,
b varchar(50) charset utf8mb3 collate utf8mb3_bin primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_bin,
modify b varchar(50) charset utf8mb4 collate utf8mb4_bin,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_unicode_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_unicode_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_unicode_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_unicode_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_icelandic_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_icelandic_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_icelandic_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_icelandic_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_latvian_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_latvian_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_latvian_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_latvian_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_romanian_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_romanian_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_romanian_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_romanian_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_slovenian_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_slovenian_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_slovenian_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_slovenian_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_polish_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_polish_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_polish_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_polish_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_estonian_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_estonian_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_estonian_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_estonian_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_spanish_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_spanish_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_spanish_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_spanish_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_swedish_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_swedish_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_swedish_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_swedish_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_turkish_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_turkish_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_turkish_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_turkish_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_czech_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_czech_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_czech_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_czech_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_danish_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_danish_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_danish_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_danish_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_lithuanian_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_lithuanian_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_lithuanian_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_lithuanian_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_slovak_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_slovak_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_slovak_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_slovak_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_spanish2_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_spanish2_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_spanish2_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_spanish2_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_roman_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_roman_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_roman_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_roman_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_persian_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_persian_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_persian_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_persian_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_esperanto_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_esperanto_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_esperanto_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_esperanto_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_hungarian_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_hungarian_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_hungarian_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_hungarian_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_sinhala_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_sinhala_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_sinhala_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_sinhala_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_german2_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_german2_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_german2_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_german2_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_croatian_mysql561_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_croatian_mysql561_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_croatian_mysql561_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_croatian_mysql561_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_unicode_520_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_unicode_520_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_unicode_520_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_unicode_520_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_vietnamese_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_vietnamese_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_vietnamese_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_vietnamese_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_croatian_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_croatian_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_croatian_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_croatian_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_myanmar_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_myanmar_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_myanmar_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_myanmar_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_thai_520_w2,
b varchar(50) charset utf8mb3 collate utf8mb3_thai_520_w2 primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_thai_520_w2,
modify b varchar(50) charset utf8mb4 collate utf8mb4_thai_520_w2,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_general_nopad_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_general_nopad_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_general_nopad_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_general_nopad_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_nopad_bin,
b varchar(50) charset utf8mb3 collate utf8mb3_nopad_bin primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_nopad_bin,
modify b varchar(50) charset utf8mb4 collate utf8mb4_nopad_bin,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_unicode_nopad_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_unicode_nopad_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_unicode_nopad_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_unicode_nopad_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_unicode_520_nopad_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_unicode_520_nopad_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_unicode_520_nopad_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_unicode_520_nopad_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset ucs2 collate ucs2_general_ci,
b varchar(50) charset ucs2 collate ucs2_general_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf16 collate utf16_general_ci,
modify b varchar(50) charset utf16 collate utf16_general_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset ucs2 collate ucs2_unicode_ci,
b varchar(50) charset ucs2 collate ucs2_unicode_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf16 collate utf16_unicode_ci,
modify b varchar(50) charset utf16 collate utf16_unicode_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset ucs2 collate ucs2_icelandic_ci,
b varchar(50) charset ucs2 collate ucs2_icelandic_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf16 collate utf16_icelandic_ci,
modify b varchar(50) charset utf16 collate utf16_icelandic_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset ucs2 collate ucs2_latvian_ci,
b varchar(50) charset ucs2 collate ucs2_latvian_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf16 collate utf16_latvian_ci,
modify b varchar(50) charset utf16 collate utf16_latvian_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset ucs2 collate ucs2_romanian_ci,
b varchar(50) charset ucs2 collate ucs2_romanian_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf16 collate utf16_romanian_ci,
modify b varchar(50) charset utf16 collate utf16_romanian_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset ucs2 collate ucs2_slovenian_ci,
b varchar(50) charset ucs2 collate ucs2_slovenian_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf16 collate utf16_slovenian_ci,
modify b varchar(50) charset utf16 collate utf16_slovenian_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset ucs2 collate ucs2_polish_ci,
b varchar(50) charset ucs2 collate ucs2_polish_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf16 collate utf16_polish_ci,
modify b varchar(50) charset utf16 collate utf16_polish_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset ucs2 collate ucs2_estonian_ci,
b varchar(50) charset ucs2 collate ucs2_estonian_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf16 collate utf16_estonian_ci,
modify b varchar(50) charset utf16 collate utf16_estonian_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset ucs2 collate ucs2_spanish_ci,
b varchar(50) charset ucs2 collate ucs2_spanish_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf16 collate utf16_spanish_ci,
modify b varchar(50) charset utf16 collate utf16_spanish_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset ucs2 collate ucs2_general_ci,
b varchar(50) charset ucs2 collate ucs2_general_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf16 collate utf16_general_ci,
modify b varchar(50) charset utf16 collate utf16_general_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_general_ci,
b varchar(50) charset ascii collate ascii_general_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb3 collate utf8mb3_general_ci,
modify b varchar(50) charset utf8mb3 collate utf8mb3_general_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_general_ci,
b varchar(50) charset ascii collate ascii_general_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_general_ci,
modify b varchar(50) charset utf8mb4 collate utf8mb4_general_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_general_ci,
b varchar(50) charset ascii collate ascii_general_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset latin1 collate latin1_general_ci,
modify b varchar(50) charset latin1 collate latin1_general_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_bin,
b varchar(50) charset ascii collate ascii_bin primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset latin1 collate latin1_bin,
modify b varchar(50) charset latin1 collate latin1_bin,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_nopad_bin,
b varchar(50) charset ascii collate ascii_nopad_bin primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset latin1 collate latin1_nopad_bin,
modify b varchar(50) charset latin1 collate latin1_nopad_bin,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_general_ci,
b varchar(50) charset ascii collate ascii_general_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset latin2 collate latin2_general_ci,
modify b varchar(50) charset latin2 collate latin2_general_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_general_ci,
b varchar(50) charset ascii collate ascii_general_ci primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset latin7 collate latin7_general_ci,
modify b varchar(50) charset latin7 collate latin7_general_ci,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_bin,
b varchar(50) charset ascii collate ascii_bin primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset koi8u collate koi8u_bin,
modify b varchar(50) charset koi8u collate koi8u_bin,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_bin,
b varchar(50) charset ascii collate ascii_bin primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset ujis collate ujis_bin,
modify b varchar(50) charset ujis collate ujis_bin,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_bin,
b varchar(50) charset ascii collate ascii_bin primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset big5 collate big5_bin,
modify b varchar(50) charset big5 collate big5_bin,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_bin,
b varchar(50) charset ascii collate ascii_bin primary key
) engine=innodb;
insert into tmp values ('AAA', 'AAA'), ('bbb', 'bbb');
alter table tmp
change a a varchar(50) charset gbk collate gbk_bin,
modify b varchar(50) charset gbk collate gbk_bin,
algorithm=instant;
check table tmp;
Table Op Msg_type Msg_text
test.tmp check status OK
drop table tmp;
drop table fully_compatible;
create table compatible_without_index (
id int auto_increment unique key,
from_charset char(255),
from_collate char(255),
to_charset char(255),
to_collate char(255)
);
insert into compatible_without_index (from_charset, from_collate, to_charset, to_collate) values
('ascii', 'ascii_general_ci', 'utf8mb3', 'utf8mb3_swedish_ci'),
('ascii', 'ascii_bin', 'latin1', 'latin1_swedish_ci'),
('ascii', 'ascii_general_nopad_ci', 'latin1', 'latin1_swedish_ci'),
('ascii', 'ascii_nopad_bin', 'latin1', 'latin1_swedish_ci'),
('ascii', 'ascii_general_ci', 'koi8u', 'koi8u_bin'),
('ascii', 'ascii_general_nopad_ci', 'koi8u', 'koi8u_bin'),
('ascii', 'ascii_nopad_bin', 'koi8u', 'koi8u_bin'),
('ascii', 'ascii_general_ci', 'latin1', 'latin1_swedish_ci'),
('ascii', 'ascii_bin', 'utf8mb3', 'utf8mb3_swedish_ci'),
('ascii', 'ascii_general_nopad_ci', 'utf8mb3', 'utf8mb3_swedish_ci'),
('ascii', 'ascii_nopad_bin', 'utf8mb3', 'utf8mb3_swedish_ci'),
('ascii', 'ascii_general_ci', 'utf8mb4', 'utf8mb4_danish_ci'),
('ascii', 'ascii_bin', 'utf8mb4', 'utf8mb4_danish_ci'),
('ascii', 'ascii_general_nopad_ci', 'utf8mb4', 'utf8mb4_danish_ci'),
('ascii', 'ascii_nopad_bin', 'utf8mb4', 'utf8mb4_danish_ci'),
('utf8mb3', 'utf8mb3_general_ci', 'utf8mb4', 'utf8mb4_vietnamese_ci'),
('utf8mb3', 'utf8mb3_bin', 'utf8mb4', 'utf8mb4_vietnamese_ci'),
('utf8mb3', 'utf8mb3_general_nopad_ci', 'utf8mb4', 'utf8mb4_vietnamese_ci'),
('utf8mb3', 'utf8mb3_nopad_bin', 'utf8mb4', 'utf8mb4_vietnamese_ci'),
('ascii', 'ascii_general_ci', 'gbk', 'gbk_chinese_ci'),
('ascii', 'ascii_general_ci', 'gbk', 'gbk_chinese_nopad_ci'),
('ucs2', 'ucs2_myanmar_ci', 'utf16', 'utf16_thai_520_w2'),
('ucs2', 'ucs2_general_ci', 'utf16', 'utf16_unicode_nopad_ci'),
('ucs2', 'ucs2_general_mysql500_ci', 'utf16', 'utf16_spanish2_ci'),
('ascii', 'ascii_general_ci', 'ascii', 'ascii_bin'),
('utf8mb3', 'utf8mb3_roman_ci', 'utf8mb3', 'utf8mb3_lithuanian_ci'),
('utf8mb4', 'utf8mb4_thai_520_w2', 'utf8mb4', 'utf8mb4_persian_ci'),
('utf8mb3', 'utf8mb3_myanmar_ci', 'utf8mb4', 'utf8mb4_german2_ci'),
('utf8mb3', 'utf8mb3_general_ci', 'utf8mb3', 'utf8mb3_unicode_ci'),
('latin1', 'latin1_general_cs', 'latin1', 'latin1_general_ci'),
('ascii', 'ascii_general_ci', 'ujis', 'ujis_japanese_ci'),
('ascii', 'ascii_general_ci', 'big5', 'big5_chinese_ci'),
('ascii', 'ascii_general_ci', 'latin2', 'latin2_croatian_ci'),
('ascii', 'ascii_general_ci', 'latin7', 'latin7_estonian_cs'),
('utf16', 'utf16_general_ci', 'utf16', 'utf16_german2_ci')
;
create table tmp (
a varchar(50) charset ascii collate ascii_general_ci,
b varchar(50) charset ascii collate ascii_general_ci unique key,
c varchar(50) charset ascii collate ascii_general_ci primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset utf8mb3 collate utf8mb3_swedish_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset utf8mb3 collate utf8mb3_swedish_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset utf8mb3 collate utf8mb3_swedish_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_bin,
b varchar(50) charset ascii collate ascii_bin unique key,
c varchar(50) charset ascii collate ascii_bin primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset latin1 collate latin1_swedish_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset latin1 collate latin1_swedish_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset latin1 collate latin1_swedish_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_general_nopad_ci,
b varchar(50) charset ascii collate ascii_general_nopad_ci unique key,
c varchar(50) charset ascii collate ascii_general_nopad_ci primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset latin1 collate latin1_swedish_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset latin1 collate latin1_swedish_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset latin1 collate latin1_swedish_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_nopad_bin,
b varchar(50) charset ascii collate ascii_nopad_bin unique key,
c varchar(50) charset ascii collate ascii_nopad_bin primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset latin1 collate latin1_swedish_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset latin1 collate latin1_swedish_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset latin1 collate latin1_swedish_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_general_ci,
b varchar(50) charset ascii collate ascii_general_ci unique key,
c varchar(50) charset ascii collate ascii_general_ci primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset koi8u collate koi8u_bin,
algorithm=instant;
alter table tmp
modify b varchar(50) charset koi8u collate koi8u_bin,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset koi8u collate koi8u_bin,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_general_nopad_ci,
b varchar(50) charset ascii collate ascii_general_nopad_ci unique key,
c varchar(50) charset ascii collate ascii_general_nopad_ci primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset koi8u collate koi8u_bin,
algorithm=instant;
alter table tmp
modify b varchar(50) charset koi8u collate koi8u_bin,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset koi8u collate koi8u_bin,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_nopad_bin,
b varchar(50) charset ascii collate ascii_nopad_bin unique key,
c varchar(50) charset ascii collate ascii_nopad_bin primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset koi8u collate koi8u_bin,
algorithm=instant;
alter table tmp
modify b varchar(50) charset koi8u collate koi8u_bin,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset koi8u collate koi8u_bin,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_general_ci,
b varchar(50) charset ascii collate ascii_general_ci unique key,
c varchar(50) charset ascii collate ascii_general_ci primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset latin1 collate latin1_swedish_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset latin1 collate latin1_swedish_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset latin1 collate latin1_swedish_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_bin,
b varchar(50) charset ascii collate ascii_bin unique key,
c varchar(50) charset ascii collate ascii_bin primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset utf8mb3 collate utf8mb3_swedish_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset utf8mb3 collate utf8mb3_swedish_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset utf8mb3 collate utf8mb3_swedish_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_general_nopad_ci,
b varchar(50) charset ascii collate ascii_general_nopad_ci unique key,
c varchar(50) charset ascii collate ascii_general_nopad_ci primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset utf8mb3 collate utf8mb3_swedish_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset utf8mb3 collate utf8mb3_swedish_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset utf8mb3 collate utf8mb3_swedish_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_nopad_bin,
b varchar(50) charset ascii collate ascii_nopad_bin unique key,
c varchar(50) charset ascii collate ascii_nopad_bin primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset utf8mb3 collate utf8mb3_swedish_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset utf8mb3 collate utf8mb3_swedish_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset utf8mb3 collate utf8mb3_swedish_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_general_ci,
b varchar(50) charset ascii collate ascii_general_ci unique key,
c varchar(50) charset ascii collate ascii_general_ci primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_danish_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset utf8mb4 collate utf8mb4_danish_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset utf8mb4 collate utf8mb4_danish_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_bin,
b varchar(50) charset ascii collate ascii_bin unique key,
c varchar(50) charset ascii collate ascii_bin primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_danish_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset utf8mb4 collate utf8mb4_danish_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset utf8mb4 collate utf8mb4_danish_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_general_nopad_ci,
b varchar(50) charset ascii collate ascii_general_nopad_ci unique key,
c varchar(50) charset ascii collate ascii_general_nopad_ci primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_danish_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset utf8mb4 collate utf8mb4_danish_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset utf8mb4 collate utf8mb4_danish_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_nopad_bin,
b varchar(50) charset ascii collate ascii_nopad_bin unique key,
c varchar(50) charset ascii collate ascii_nopad_bin primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_danish_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset utf8mb4 collate utf8mb4_danish_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset utf8mb4 collate utf8mb4_danish_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_general_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_general_ci unique key,
c varchar(50) charset utf8mb3 collate utf8mb3_general_ci primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_vietnamese_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset utf8mb4 collate utf8mb4_vietnamese_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset utf8mb4 collate utf8mb4_vietnamese_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_bin,
b varchar(50) charset utf8mb3 collate utf8mb3_bin unique key,
c varchar(50) charset utf8mb3 collate utf8mb3_bin primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_vietnamese_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset utf8mb4 collate utf8mb4_vietnamese_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset utf8mb4 collate utf8mb4_vietnamese_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_general_nopad_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_general_nopad_ci unique key,
c varchar(50) charset utf8mb3 collate utf8mb3_general_nopad_ci primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_vietnamese_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset utf8mb4 collate utf8mb4_vietnamese_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset utf8mb4 collate utf8mb4_vietnamese_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_nopad_bin,
b varchar(50) charset utf8mb3 collate utf8mb3_nopad_bin unique key,
c varchar(50) charset utf8mb3 collate utf8mb3_nopad_bin primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_vietnamese_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset utf8mb4 collate utf8mb4_vietnamese_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset utf8mb4 collate utf8mb4_vietnamese_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_general_ci,
b varchar(50) charset ascii collate ascii_general_ci unique key,
c varchar(50) charset ascii collate ascii_general_ci primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset gbk collate gbk_chinese_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset gbk collate gbk_chinese_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset gbk collate gbk_chinese_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_general_ci,
b varchar(50) charset ascii collate ascii_general_ci unique key,
c varchar(50) charset ascii collate ascii_general_ci primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset gbk collate gbk_chinese_nopad_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset gbk collate gbk_chinese_nopad_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset gbk collate gbk_chinese_nopad_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset ucs2 collate ucs2_myanmar_ci,
b varchar(50) charset ucs2 collate ucs2_myanmar_ci unique key,
c varchar(50) charset ucs2 collate ucs2_myanmar_ci primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset utf16 collate utf16_thai_520_w2,
algorithm=instant;
alter table tmp
modify b varchar(50) charset utf16 collate utf16_thai_520_w2,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset utf16 collate utf16_thai_520_w2,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset ucs2 collate ucs2_general_ci,
b varchar(50) charset ucs2 collate ucs2_general_ci unique key,
c varchar(50) charset ucs2 collate ucs2_general_ci primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset utf16 collate utf16_unicode_nopad_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset utf16 collate utf16_unicode_nopad_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset utf16 collate utf16_unicode_nopad_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset ucs2 collate ucs2_general_mysql500_ci,
b varchar(50) charset ucs2 collate ucs2_general_mysql500_ci unique key,
c varchar(50) charset ucs2 collate ucs2_general_mysql500_ci primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset utf16 collate utf16_spanish2_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset utf16 collate utf16_spanish2_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset utf16 collate utf16_spanish2_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_general_ci,
b varchar(50) charset ascii collate ascii_general_ci unique key,
c varchar(50) charset ascii collate ascii_general_ci primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset ascii collate ascii_bin,
algorithm=instant;
alter table tmp
modify b varchar(50) charset ascii collate ascii_bin,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset ascii collate ascii_bin,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_roman_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_roman_ci unique key,
c varchar(50) charset utf8mb3 collate utf8mb3_roman_ci primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset utf8mb3 collate utf8mb3_lithuanian_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset utf8mb3 collate utf8mb3_lithuanian_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset utf8mb3 collate utf8mb3_lithuanian_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb4 collate utf8mb4_thai_520_w2,
b varchar(50) charset utf8mb4 collate utf8mb4_thai_520_w2 unique key,
c varchar(50) charset utf8mb4 collate utf8mb4_thai_520_w2 primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_persian_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset utf8mb4 collate utf8mb4_persian_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset utf8mb4 collate utf8mb4_persian_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_myanmar_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_myanmar_ci unique key,
c varchar(50) charset utf8mb3 collate utf8mb3_myanmar_ci primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset utf8mb4 collate utf8mb4_german2_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset utf8mb4 collate utf8mb4_german2_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset utf8mb4 collate utf8mb4_german2_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset utf8mb3 collate utf8mb3_general_ci,
b varchar(50) charset utf8mb3 collate utf8mb3_general_ci unique key,
c varchar(50) charset utf8mb3 collate utf8mb3_general_ci primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset utf8mb3 collate utf8mb3_unicode_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset utf8mb3 collate utf8mb3_unicode_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset utf8mb3 collate utf8mb3_unicode_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset latin1 collate latin1_general_cs,
b varchar(50) charset latin1 collate latin1_general_cs unique key,
c varchar(50) charset latin1 collate latin1_general_cs primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset latin1 collate latin1_general_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset latin1 collate latin1_general_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset latin1 collate latin1_general_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_general_ci,
b varchar(50) charset ascii collate ascii_general_ci unique key,
c varchar(50) charset ascii collate ascii_general_ci primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset ujis collate ujis_japanese_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset ujis collate ujis_japanese_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset ujis collate ujis_japanese_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_general_ci,
b varchar(50) charset ascii collate ascii_general_ci unique key,
c varchar(50) charset ascii collate ascii_general_ci primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset big5 collate big5_chinese_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset big5 collate big5_chinese_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset big5 collate big5_chinese_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_general_ci,
b varchar(50) charset ascii collate ascii_general_ci unique key,
c varchar(50) charset ascii collate ascii_general_ci primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset latin2 collate latin2_croatian_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset latin2 collate latin2_croatian_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset latin2 collate latin2_croatian_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset ascii collate ascii_general_ci,
b varchar(50) charset ascii collate ascii_general_ci unique key,
c varchar(50) charset ascii collate ascii_general_ci primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset latin7 collate latin7_estonian_cs,
algorithm=instant;
alter table tmp
modify b varchar(50) charset latin7 collate latin7_estonian_cs,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset latin7 collate latin7_estonian_cs,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(50) charset utf16 collate utf16_general_ci,
b varchar(50) charset utf16 collate utf16_general_ci unique key,
c varchar(50) charset utf16 collate utf16_general_ci primary key
) engine=innodb;
alter table tmp
change a a varchar(50) charset utf16 collate utf16_german2_ci,
algorithm=instant;
alter table tmp
modify b varchar(50) charset utf16 collate utf16_german2_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify c varchar(50) charset utf16 collate utf16_german2_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
drop table compatible_without_index;
create table fully_incompatible (
id int auto_increment unique key,
from_charset char(255),
from_collate char(255),
to_charset char(255),
to_collate char(255)
);
insert into fully_incompatible (from_charset, from_collate, to_charset, to_collate) values
('utf8mb4', 'utf8mb4_general_ci', 'utf8mb3', 'utf8mb3_general_ci'),
('utf8mb4', 'utf8mb4_general_ci', 'ascii', 'ascii_general_ci'),
('utf8mb3', 'utf8mb3_general_ci', 'ascii', 'ascii_general_ci'),
('utf8mb3', 'utf8mb3_general_ci', 'latin1', 'latin1_general_ci'),
('utf16', 'utf16_general_ci', 'utf32', 'utf32_general_ci'),
('latin1', 'latin1_general_ci', 'ascii', 'ascii_general_ci'),
('ascii', 'ascii_general_ci', 'swe7', 'swe7_swedish_ci'),
('eucjpms', 'eucjpms_japanese_nopad_ci', 'geostd8', 'geostd8_general_ci'),
('latin1', 'latin1_general_ci', 'utf16', 'utf16_general_ci')
;
create table tmp (
a varchar(150) charset utf8mb4 collate utf8mb4_general_ci,
b text(150) charset utf8mb4 collate utf8mb4_general_ci,
unique key b_idx (b(150))
) engine=innodb;
alter table tmp
change a a varchar(150) charset utf8mb3 collate utf8mb3_general_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify b text charset utf8mb3 collate utf8mb3_general_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(150) charset utf8mb4 collate utf8mb4_general_ci,
b text(150) charset utf8mb4 collate utf8mb4_general_ci,
unique key b_idx (b(150))
) engine=innodb;
alter table tmp
change a a varchar(150) charset ascii collate ascii_general_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify b text charset ascii collate ascii_general_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(150) charset utf8mb3 collate utf8mb3_general_ci,
b text(150) charset utf8mb3 collate utf8mb3_general_ci,
unique key b_idx (b(150))
) engine=innodb;
alter table tmp
change a a varchar(150) charset ascii collate ascii_general_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify b text charset ascii collate ascii_general_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(150) charset utf8mb3 collate utf8mb3_general_ci,
b text(150) charset utf8mb3 collate utf8mb3_general_ci,
unique key b_idx (b(150))
) engine=innodb;
alter table tmp
change a a varchar(150) charset latin1 collate latin1_general_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify b text charset latin1 collate latin1_general_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(150) charset utf16 collate utf16_general_ci,
b text(150) charset utf16 collate utf16_general_ci,
unique key b_idx (b(150))
) engine=innodb;
alter table tmp
change a a varchar(150) charset utf32 collate utf32_general_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify b text charset utf32 collate utf32_general_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(150) charset latin1 collate latin1_general_ci,
b text(150) charset latin1 collate latin1_general_ci,
unique key b_idx (b(150))
) engine=innodb;
alter table tmp
change a a varchar(150) charset ascii collate ascii_general_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify b text charset ascii collate ascii_general_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(150) charset ascii collate ascii_general_ci,
b text(150) charset ascii collate ascii_general_ci,
unique key b_idx (b(150))
) engine=innodb;
alter table tmp
change a a varchar(150) charset swe7 collate swe7_swedish_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify b text charset swe7 collate swe7_swedish_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(150) charset eucjpms collate eucjpms_japanese_nopad_ci,
b text(150) charset eucjpms collate eucjpms_japanese_nopad_ci,
unique key b_idx (b(150))
) engine=innodb;
alter table tmp
change a a varchar(150) charset geostd8 collate geostd8_general_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify b text charset geostd8 collate geostd8_general_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
create table tmp (
a varchar(150) charset latin1 collate latin1_general_ci,
b text(150) charset latin1 collate latin1_general_ci,
unique key b_idx (b(150))
) engine=innodb;
alter table tmp
change a a varchar(150) charset utf16 collate utf16_general_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
alter table tmp
modify b text charset utf16 collate utf16_general_ci,
algorithm=instant;
ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
drop table tmp;
drop table fully_incompatible;