diff options
Diffstat (limited to 'mysql-test/suite/innodb/t/instant_alter_charset.test')
-rw-r--r-- | mysql-test/suite/innodb/t/instant_alter_charset.test | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/mysql-test/suite/innodb/t/instant_alter_charset.test b/mysql-test/suite/innodb/t/instant_alter_charset.test index eeb6fa5e241..5be4f7a5b83 100644 --- a/mysql-test/suite/innodb/t/instant_alter_charset.test +++ b/mysql-test/suite/innodb/t/instant_alter_charset.test @@ -857,3 +857,34 @@ create table t2 (input_id int primary key, id int not null, alter table t1 change id id2 int; drop table t2; drop table t1; + + +--echo # +--echo # MDEV-25951 MariaDB crash after ALTER TABLE convert to utf8mb4 +--echo # + +CREATE TABLE t1 (id INT PRIMARY KEY, a VARCHAR(32), KEY (a(7))) ENGINE=INNODB DEFAULT CHARSET=UTF8; +INSERT INTO t1 VALUES (1, 'a1'), (2, 'a1'); + +--error ER_DUP_ENTRY +ALTER TABLE t1 + CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci, + ADD UNIQUE INDEX test_key (a); + +ALTER TABLE t1 CONVERT TO CHARACTER SET UTF8MB4 COLLATE UTF8MB4_UNICODE_520_CI; +CHECK TABLE t1; +SELECT * FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (id INT PRIMARY KEY, a CHAR(32), KEY (a(7))) ENGINE=INNODB DEFAULT CHARSET=UTF8; +INSERT INTO t1 VALUES (1, 'a1'), (2, 'a1'); + +--error ER_DUP_ENTRY +ALTER TABLE t1 + CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci, + ADD UNIQUE INDEX test_key (a); + +ALTER TABLE t1 CONVERT TO CHARACTER SET UTF8MB4 COLLATE UTF8MB4_UNICODE_520_CI; +CHECK TABLE t1; +SELECT * FROM t1; +DROP TABLE t1; |