SET storage_engine=InnoDB; SET GLOBAL innodb_file_format=`Barracuda`; SET GLOBAL innodb_file_per_table=ON; SET SESSION innodb_strict_mode = ON; # Test 1) CREATE with ROW_FORMAT & KEY_BLOCK_SIZE, ALTER with neither DROP TABLE IF EXISTS bug56632; Warnings: Note 1051 Unknown table 'bug56632' CREATE TABLE bug56632 ( i INT ) ROW_FORMAT=COMPACT KEY_BLOCK_SIZE=1; ERROR HY000: Can't create table 'test.bug56632' (errno: 1478) SHOW WARNINGS; Level Code Message Warning 1478 InnoDB: cannot specify ROW_FORMAT = COMPACT with KEY_BLOCK_SIZE. Error 1005 Can't create table 'test.bug56632' (errno: 1478) # Test 2) CREATE with ROW_FORMAT, ALTER with KEY_BLOCK_SIZE DROP TABLE IF EXISTS bug56632; Warnings: Note 1051 Unknown table 'bug56632' CREATE TABLE bug56632 ( i INT ) ROW_FORMAT=COMPACT; SHOW WARNINGS; Level Code Message SHOW CREATE TABLE bug56632; Table Create Table bug56632 CREATE TABLE `bug56632` ( `i` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; TABLE_NAME ROW_FORMAT CREATE_OPTIONS bug56632 Compact row_format=COMPACT ALTER TABLE bug56632 KEY_BLOCK_SIZE=1; SHOW WARNINGS; Level Code Message SHOW CREATE TABLE bug56632; Table Create Table bug56632 CREATE TABLE `bug56632` ( `i` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT KEY_BLOCK_SIZE=1 SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; TABLE_NAME ROW_FORMAT CREATE_OPTIONS bug56632 Compressed row_format=COMPACT key_block_size=1 # Test 3) CREATE with KEY_BLOCK_SIZE, ALTER with ROW_FORMAT DROP TABLE IF EXISTS bug56632; CREATE TABLE bug56632 ( i INT ) KEY_BLOCK_SIZE=1; SHOW WARNINGS; Level Code Message SHOW CREATE TABLE bug56632; Table Create Table bug56632 CREATE TABLE `bug56632` ( `i` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 KEY_BLOCK_SIZE=1 SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; TABLE_NAME ROW_FORMAT CREATE_OPTIONS bug56632 Compressed key_block_size=1 ALTER TABLE bug56632 ROW_FORMAT=COMPACT; SHOW CREATE TABLE bug56632; Table Create Table bug56632 CREATE TABLE `bug56632` ( `i` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 KEY_BLOCK_SIZE=1 SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; TABLE_NAME ROW_FORMAT CREATE_OPTIONS bug56632 Compressed key_block_size=1 # Test 4) CREATE with neither, ALTER with ROW_FORMAT & KEY_BLOCK_SIZE DROP TABLE IF EXISTS bug56632; CREATE TABLE bug56632 ( i INT ); SHOW WARNINGS; Level Code Message SHOW CREATE TABLE bug56632; Table Create Table bug56632 CREATE TABLE `bug56632` ( `i` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; TABLE_NAME ROW_FORMAT CREATE_OPTIONS bug56632 Compact ALTER TABLE bug56632 ROW_FORMAT=COMPACT KEY_BLOCK_SIZE=1; SHOW CREATE TABLE bug56632; Table Create Table bug56632 CREATE TABLE `bug56632` ( `i` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; TABLE_NAME ROW_FORMAT CREATE_OPTIONS bug56632 Compact # Test 5) CREATE with KEY_BLOCK_SIZE=3 (invalid). DROP TABLE IF EXISTS bug56632; CREATE TABLE bug56632 ( i INT ) KEY_BLOCK_SIZE=3; ERROR HY000: Can't create table 'test.bug56632' (errno: 1478) SHOW WARNINGS; Level Code Message Warning 1478 InnoDB: invalid KEY_BLOCK_SIZE = 3. Valid values are [1, 2, 4, 8, 16] Error 1005 Can't create table 'test.bug56632' (errno: 1478) SET SESSION innodb_strict_mode = OFF; # Test 6) CREATE with ROW_FORMAT & KEY_BLOCK_SIZE, ALTER with neither DROP TABLE IF EXISTS bug56632; Warnings: Note 1051 Unknown table 'bug56632' CREATE TABLE bug56632 ( i INT ) ROW_FORMAT=COMPACT KEY_BLOCK_SIZE=1; Warnings: Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=1 unless ROW_FORMAT=COMPRESSED. SHOW WARNINGS; Level Code Message Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=1 unless ROW_FORMAT=COMPRESSED. SHOW CREATE TABLE bug56632; Table Create Table bug56632 CREATE TABLE `bug56632` ( `i` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT KEY_BLOCK_SIZE=1 SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; TABLE_NAME ROW_FORMAT CREATE_OPTIONS bug56632 Compact row_format=COMPACT key_block_size=1 ALTER TABLE bug56632 ADD COLUMN f1 INT; Warnings: Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=1 unless ROW_FORMAT=COMPRESSED. SHOW WARNINGS; Level Code Message Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=1 unless ROW_FORMAT=COMPRESSED. SHOW CREATE TABLE bug56632; Table Create Table bug56632 CREATE TABLE `bug56632` ( `i` int(11) DEFAULT NULL, `f1` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT KEY_BLOCK_SIZE=1 SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; TABLE_NAME ROW_FORMAT CREATE_OPTIONS bug56632 Compact row_format=COMPACT key_block_size=1 # Test 7) CREATE with ROW_FORMAT, ALTER with KEY_BLOCK_SIZE DROP TABLE IF EXISTS bug56632; CREATE TABLE bug56632 ( i INT ) ROW_FORMAT=COMPACT; SHOW WARNINGS; Level Code Message SHOW CREATE TABLE bug56632; Table Create Table bug56632 CREATE TABLE `bug56632` ( `i` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; TABLE_NAME ROW_FORMAT CREATE_OPTIONS bug56632 Compact row_format=COMPACT ALTER TABLE bug56632 KEY_BLOCK_SIZE=1; SHOW WARNINGS; Level Code Message SHOW CREATE TABLE bug56632; Table Create Table bug56632 CREATE TABLE `bug56632` ( `i` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT KEY_BLOCK_SIZE=1 SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; TABLE_NAME ROW_FORMAT CREATE_OPTIONS bug56632 Compressed row_format=COMPACT key_block_size=1 # Test 8) CREATE with KEY_BLOCK_SIZE, ALTER with ROW_FORMAT DROP TABLE IF EXISTS bug56632; CREATE TABLE bug56632 ( i INT ) KEY_BLOCK_SIZE=1; SHOW WARNINGS; Level Code Message SHOW CREATE TABLE bug56632; Table Create Table bug56632 CREATE TABLE `bug56632` ( `i` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 KEY_BLOCK_SIZE=1 SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; TABLE_NAME ROW_FORMAT CREATE_OPTIONS bug56632 Compressed key_block_size=1 ALTER TABLE bug56632 ROW_FORMAT=COMPACT; Warnings: Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=1 unless ROW_FORMAT=COMPRESSED. SHOW WARNINGS; Level Code Message Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=1 unless ROW_FORMAT=COMPRESSED. SHOW CREATE TABLE bug56632; Table Create Table bug56632 CREATE TABLE `bug56632` ( `i` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT KEY_BLOCK_SIZE=1 SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; TABLE_NAME ROW_FORMAT CREATE_OPTIONS bug56632 Compact row_format=COMPACT key_block_size=1 # Test 9) CREATE with neither, ALTER with ROW_FORMAT & KEY_BLOCK_SIZE DROP TABLE IF EXISTS bug56632; CREATE TABLE bug56632 ( i INT ); SHOW WARNINGS; Level Code Message SHOW CREATE TABLE bug56632; Table Create Table bug56632 CREATE TABLE `bug56632` ( `i` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; TABLE_NAME ROW_FORMAT CREATE_OPTIONS bug56632 Compact ALTER TABLE bug56632 ROW_FORMAT=COMPACT KEY_BLOCK_SIZE=1; Warnings: Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=1 unless ROW_FORMAT=COMPRESSED. SHOW WARNINGS; Level Code Message Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=1 unless ROW_FORMAT=COMPRESSED. SHOW CREATE TABLE bug56632; Table Create Table bug56632 CREATE TABLE `bug56632` ( `i` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT KEY_BLOCK_SIZE=1 SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; TABLE_NAME ROW_FORMAT CREATE_OPTIONS bug56632 Compact row_format=COMPACT key_block_size=1 # Test 10) CREATE with KEY_BLOCK_SIZE=3 (invalid), ALTER with neither. DROP TABLE IF EXISTS bug56632; CREATE TABLE bug56632 ( i INT ) KEY_BLOCK_SIZE=3; Warnings: Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=3. SHOW WARNINGS; Level Code Message Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=3. SHOW CREATE TABLE bug56632; Table Create Table bug56632 CREATE TABLE `bug56632` ( `i` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 KEY_BLOCK_SIZE=3 SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; TABLE_NAME ROW_FORMAT CREATE_OPTIONS bug56632 Compact key_block_size=3 ALTER TABLE bug56632 ADD COLUMN f1 INT; Warnings: Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=3. SHOW WARNINGS; Level Code Message Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=3. SHOW CREATE TABLE bug56632; Table Create Table bug56632 CREATE TABLE `bug56632` ( `i` int(11) DEFAULT NULL, `f1` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 KEY_BLOCK_SIZE=3 SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; TABLE_NAME ROW_FORMAT CREATE_OPTIONS bug56632 Compact key_block_size=3 # Test 11) CREATE with KEY_BLOCK_SIZE=3 (invalid), ALTER with ROW_FORMAT=COMPACT. DROP TABLE IF EXISTS bug56632; CREATE TABLE bug56632 ( i INT ) KEY_BLOCK_SIZE=3; Warnings: Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=3. SHOW WARNINGS; Level Code Message Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=3. SHOW CREATE TABLE bug56632; Table Create Table bug56632 CREATE TABLE `bug56632` ( `i` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 KEY_BLOCK_SIZE=3 SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; TABLE_NAME ROW_FORMAT CREATE_OPTIONS bug56632 Compact key_block_size=3 ALTER TABLE bug56632 ROW_FORMAT=COMPACT; Warnings: Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=3. SHOW WARNINGS; Level Code Message Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=3. SHOW CREATE TABLE bug56632; Table Create Table bug56632 CREATE TABLE `bug56632` ( `i` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT KEY_BLOCK_SIZE=3 SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; TABLE_NAME ROW_FORMAT CREATE_OPTIONS bug56632 Compact row_format=COMPACT key_block_size=3 # Test 12) CREATE with KEY_BLOCK_SIZE=3 (invalid), ALTER with KEY_BLOCK_SIZE=1. DROP TABLE IF EXISTS bug56632; CREATE TABLE bug56632 ( i INT ) KEY_BLOCK_SIZE=3; Warnings: Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=3. SHOW WARNINGS; Level Code Message Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=3. SHOW CREATE TABLE bug56632; Table Create Table bug56632 CREATE TABLE `bug56632` ( `i` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 KEY_BLOCK_SIZE=3 SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; TABLE_NAME ROW_FORMAT CREATE_OPTIONS bug56632 Compact key_block_size=3 ALTER TABLE bug56632 KEY_BLOCK_SIZE=1; SHOW WARNINGS; Level Code Message SHOW CREATE TABLE bug56632; Table Create Table bug56632 CREATE TABLE `bug56632` ( `i` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 KEY_BLOCK_SIZE=1 SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; TABLE_NAME ROW_FORMAT CREATE_OPTIONS bug56632 Compressed key_block_size=1 # Cleanup DROP TABLE IF EXISTS bug56632;