mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 02:51:44 +01:00
854c219a7f
Patch is about two cases: 1) On some collate changes it's possible to rebuild only secondary indexes 2) For non-indexed columns collate can be changed INSTANTly Implemented mostly in Field_{string,varstring,blob}::is_equal(). Make this method return how exactly collationa differs. This information is later used by fill_alter_inplace_info() to pass correct info to engine.
51 lines
2.8 KiB
Text
51 lines
2.8 KiB
Text
--- instant_alter_charset.result 2019-06-17 14:36:02.311515062 +0300
|
|
+++ instant_alter_charset,redundant.result 2019-06-17 14:50:11.888705725 +0300
|
|
@@ -279,7 +279,6 @@
|
|
alter table boundary_255
|
|
modify a varchar(70) charset utf8mb4,
|
|
algorithm=instant;
|
|
-ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type. Try ALGORITHM=COPY
|
|
drop table boundary_255;
|
|
create table t (
|
|
a char(10) collate utf8mb3_general_ci,
|
|
@@ -297,32 +296,21 @@
|
|
repeat('a', 10), repeat('a', 10)
|
|
);
|
|
alter table t modify a char(10) collate utf8mb4_general_ci, algorithm=instant;
|
|
-check table t;
|
|
-Table Op Msg_type Msg_text
|
|
-test.t check status OK
|
|
+ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type. Try ALGORITHM=COPY
|
|
alter table t modify b char(70) collate utf8mb4_general_ci, algorithm=instant;
|
|
-check table t;
|
|
-Table Op Msg_type Msg_text
|
|
-test.t check status OK
|
|
+ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type. Try ALGORITHM=COPY
|
|
alter table t modify c char(100) collate utf8mb4_general_ci, algorithm=instant;
|
|
-check table t;
|
|
-Table Op Msg_type Msg_text
|
|
-test.t check status OK
|
|
+ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type. Try ALGORITHM=COPY
|
|
alter table t modify aa char(10) collate utf8mb4_general_ci, algorithm=instant;
|
|
-check table t;
|
|
-Table Op Msg_type Msg_text
|
|
-test.t check status OK
|
|
+ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type. Try ALGORITHM=COPY
|
|
alter table t modify bb char(70) collate utf8mb4_general_ci, algorithm=instant;
|
|
-check table t;
|
|
-Table Op Msg_type Msg_text
|
|
-test.t check status OK
|
|
+ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type. Try ALGORITHM=COPY
|
|
alter table t modify cc char(100) collate utf8mb4_general_ci, algorithm=instant;
|
|
-check table t;
|
|
-Table Op Msg_type Msg_text
|
|
-test.t check status OK
|
|
+ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type. Try ALGORITHM=COPY
|
|
alter table t modify d char(10) collate utf8mb4_spanish_ci, algorithm=instant;
|
|
+ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type. Try ALGORITHM=COPY
|
|
alter table t modify dd char(10) collate utf8mb4_spanish_ci, algorithm=instant;
|
|
-ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: ADD INDEX. Try ALGORITHM=NOCOPY
|
|
+ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: Cannot change column type. Try ALGORITHM=COPY
|
|
select * from t;
|
|
a b c aa bb cc d dd
|
|
aaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaa aaaaaaaaaa
|