MINI MINI MANI MO
--source include/have_innodb_16k.inc
--echo #
--echo # Bug #32507117 INDEX SIZE LARGER THAN 767 BYTES ALLOWED FOR INNODB WITH REDUNDANT ROW_FORMAT
--echo #
SET @orig_default_row_format = @@global.innodb_default_row_format;
set global innodb_default_row_format='redundant';
CREATE TABLE `t1` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`comment` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT
NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `t2` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`comment` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT
NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into t1(comment) values('k');
insert into t2(comment) values('k');
--error ER_INDEX_COLUMN_TOO_LONG
create index idx123 on t1 (`comment`);
set global innodb_default_row_format='dynamic';
--error ER_INDEX_COLUMN_TOO_LONG
create index idx123 on t1 (`comment`);
--error ER_INDEX_COLUMN_TOO_LONG
alter table t1 add index idx123 (`comment`);
alter table t1 add index idx123 (`comment`), algorithm=copy ;
SELECT ROW_FORMAT FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME LIKE 'test/t1';
SELECT ROW_FORMAT FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME LIKE 'test/t2';
alter table t2 ROW_FORMAT=dynamic;
SELECT ROW_FORMAT FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME LIKE 'test/t2';
drop table t1,t2;
SET @@global.innodb_default_row_format=@orig_default_row_format;
OHA YOOOO