mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Bug#56632 - The warning code related to KEY_BLOCK_SIZE and ROW_FORMAT when innodb_strict_mode=OFF is improved in order to take into account whether the KEY_BLOCK_SIZE is specified on the current ALTER statement or the previous CREATE statement.
The testcase shows the expected results of 12 different combinations of these settings.
This commit is contained in:
294
mysql-test/suite/innodb_plugin/r/innodb_bug56632.result
Executable file
294
mysql-test/suite/innodb_plugin/r/innodb_bug56632.result
Executable file
@ -0,0 +1,294 @@
|
||||
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;
|
Reference in New Issue
Block a user