53 changed files with 2271 additions and 1165 deletions
-
3CMakeLists.txt
-
13client/mysqltest.cc
-
2include/m_string.h
-
6mysql-test/r/mysqltest.result
-
7mysql-test/r/xml.result
-
854mysql-test/suite/innodb_plugin/r/innodb-create-options.result
-
20mysql-test/suite/innodb_plugin/r/innodb-zip.result
-
27mysql-test/suite/innodb_plugin/r/innodb_bug53046.result
-
91mysql-test/suite/innodb_plugin/r/innodb_bug54679.result
-
294mysql-test/suite/innodb_plugin/r/innodb_bug56632.result
-
575mysql-test/suite/innodb_plugin/t/innodb-create-options.test
-
8mysql-test/suite/innodb_plugin/t/innodb-zip.test
-
48mysql-test/suite/innodb_plugin/t/innodb_bug53046.test
-
97mysql-test/suite/innodb_plugin/t/innodb_bug54679.test
-
216mysql-test/suite/innodb_plugin/t/innodb_bug56632.test
-
16mysql-test/t/mysqltest.test
-
13mysql-test/t/xml.test
-
22sql/item.cc
-
22storage/innobase/srv/srv0start.c
-
2storage/innobase/sync/sync0rw.c
-
53storage/innodb_plugin/ChangeLog
-
8storage/innodb_plugin/btr/btr0cur.c
-
4storage/innodb_plugin/buf/buf0flu.c
-
2storage/innodb_plugin/dict/dict0crea.c
-
158storage/innodb_plugin/dict/dict0dict.c
-
3storage/innodb_plugin/dict/dict0load.c
-
88storage/innodb_plugin/fil/fil0fil.c
-
50storage/innodb_plugin/fsp/fsp0fsp.c
-
330storage/innodb_plugin/handler/ha_innodb.cc
-
11storage/innodb_plugin/handler/handler0alter.cc
-
49storage/innodb_plugin/include/btr0btr.h
-
38storage/innodb_plugin/include/btr0btr.ic
-
2storage/innodb_plugin/include/btr0cur.h
-
43storage/innodb_plugin/include/dict0dict.h
-
8storage/innodb_plugin/include/fil0fil.h
-
5storage/innodb_plugin/include/row0ins.h
-
4storage/innodb_plugin/include/row0upd.h
-
5storage/innodb_plugin/include/univ.i
-
9storage/innodb_plugin/row/row0ins.c
-
2storage/innodb_plugin/row/row0merge.c
-
6storage/innodb_plugin/row/row0mysql.c
-
12storage/innodb_plugin/row/row0sel.c
-
8storage/innodb_plugin/row/row0upd.c
-
20storage/innodb_plugin/srv/srv0start.c
-
9storage/innodb_plugin/sync/sync0rw.c
-
30storage/innodb_plugin/thr/thr0loc.c
-
54storage/innodb_plugin/trx/trx0i_s.c
-
18support-files/my-huge.cnf.sh
-
18support-files/my-innodb-heavy-4G.cnf.sh
-
18support-files/my-large.cnf.sh
-
18support-files/my-medium.cnf.sh
-
14support-files/my-small.cnf.sh
-
3win/configure.js
@ -0,0 +1,854 @@ |
|||
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) StrictMode=ON, CREATE and ALTER with each ROW_FORMAT & KEY_BLOCK_SIZE=0 |
|||
# KEY_BLOCK_SIZE=0 means 'no KEY_BLOCK_SIZE is specified' |
|||
DROP TABLE IF EXISTS t1; |
|||
Warnings: |
|||
Note 1051 Unknown table 't1' |
|||
# 'FIXED' is sent to InnoDB since it is used by MyISAM. |
|||
# But it is an invalid mode in InnoDB |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=FIXED; |
|||
ERROR HY000: Can't create table 'test.t1' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: invalid ROW_FORMAT specifier. |
|||
Error 1005 Can't create table 'test.t1' (errno: 1478) |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compressed row_format=COMPRESSED |
|||
ALTER TABLE t1 ROW_FORMAT=COMPACT KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compact row_format=COMPACT |
|||
ALTER TABLE t1 ROW_FORMAT=DYNAMIC KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Dynamic row_format=DYNAMIC |
|||
ALTER TABLE t1 ROW_FORMAT=REDUNDANT KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Redundant row_format=REDUNDANT |
|||
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compact |
|||
ALTER TABLE t1 ROW_FORMAT=FIXED KEY_BLOCK_SIZE=0; |
|||
ERROR HY000: Can't create table '#sql-temporary' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: invalid ROW_FORMAT specifier. |
|||
Error 1005 Can't create table '#sql-temporary' (errno: 1478) |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compact |
|||
# Test 2) StrictMode=ON, CREATE with each ROW_FORMAT & a valid non-zero KEY_BLOCK_SIZE |
|||
# KEY_BLOCK_SIZE is incompatible with COMPACT, REDUNDANT, & DYNAMIC |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPACT KEY_BLOCK_SIZE=1; |
|||
ERROR HY000: Can't create table 'test.t1' (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.t1' (errno: 1478) |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=REDUNDANT KEY_BLOCK_SIZE=2; |
|||
ERROR HY000: Can't create table 'test.t1' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: cannot specify ROW_FORMAT = REDUNDANT with KEY_BLOCK_SIZE. |
|||
Error 1005 Can't create table 'test.t1' (errno: 1478) |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DYNAMIC KEY_BLOCK_SIZE=4; |
|||
ERROR HY000: Can't create table 'test.t1' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: cannot specify ROW_FORMAT = DYNAMIC with KEY_BLOCK_SIZE. |
|||
Error 1005 Can't create table 'test.t1' (errno: 1478) |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=8 |
|||
ALTER TABLE t1 ADD COLUMN f1 INT; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=8 |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=16; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compressed KEY_BLOCK_SIZE=16 |
|||
ALTER TABLE t1 ADD COLUMN f1 INT; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compressed KEY_BLOCK_SIZE=16 |
|||
# Test 3) StrictMode=ON, ALTER with each ROW_FORMAT & a valid non-zero KEY_BLOCK_SIZE |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ); |
|||
ALTER TABLE t1 ROW_FORMAT=FIXED KEY_BLOCK_SIZE=1; |
|||
ERROR HY000: Can't create table '#sql-temporary' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: invalid ROW_FORMAT specifier. |
|||
Error 1005 Can't create table '#sql-temporary' (errno: 1478) |
|||
ALTER TABLE t1 ROW_FORMAT=COMPACT KEY_BLOCK_SIZE=2; |
|||
ERROR HY000: Can't create table '#sql-temporary' (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 '#sql-temporary' (errno: 1478) |
|||
ALTER TABLE t1 ROW_FORMAT=DYNAMIC KEY_BLOCK_SIZE=4; |
|||
ERROR HY000: Can't create table '#sql-temporary' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: cannot specify ROW_FORMAT = DYNAMIC with KEY_BLOCK_SIZE. |
|||
Error 1005 Can't create table '#sql-temporary' (errno: 1478) |
|||
ALTER TABLE t1 ROW_FORMAT=REDUNDANT KEY_BLOCK_SIZE=8; |
|||
ERROR HY000: Can't create table '#sql-temporary' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: cannot specify ROW_FORMAT = REDUNDANT with KEY_BLOCK_SIZE. |
|||
Error 1005 Can't create table '#sql-temporary' (errno: 1478) |
|||
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=16; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compressed KEY_BLOCK_SIZE=16 |
|||
ALTER TABLE t1 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=1 |
|||
# Test 4) StrictMode=ON, CREATE with ROW_FORMAT=COMPACT, ALTER with a valid non-zero KEY_BLOCK_SIZE |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPACT; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compact row_format=COMPACT |
|||
ALTER TABLE t1 KEY_BLOCK_SIZE=2; |
|||
ERROR HY000: Can't create table '#sql-temporary' (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 '#sql-temporary' (errno: 1478) |
|||
ALTER TABLE t1 ROW_FORMAT=REDUNDANT; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Redundant row_format=REDUNDANT |
|||
ALTER TABLE t1 KEY_BLOCK_SIZE=4; |
|||
ERROR HY000: Can't create table '#sql-temporary' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: cannot specify ROW_FORMAT = REDUNDANT with KEY_BLOCK_SIZE. |
|||
Error 1005 Can't create table '#sql-temporary' (errno: 1478) |
|||
ALTER TABLE t1 ROW_FORMAT=DYNAMIC; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Dynamic row_format=DYNAMIC |
|||
ALTER TABLE t1 KEY_BLOCK_SIZE=8; |
|||
ERROR HY000: Can't create table '#sql-temporary' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: cannot specify ROW_FORMAT = DYNAMIC with KEY_BLOCK_SIZE. |
|||
Error 1005 Can't create table '#sql-temporary' (errno: 1478) |
|||
ALTER TABLE t1 ROW_FORMAT=COMPRESSED; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compressed row_format=COMPRESSED |
|||
ALTER TABLE t1 KEY_BLOCK_SIZE=16; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=16 |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPACT; |
|||
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=1; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compressed KEY_BLOCK_SIZE=1 |
|||
# Test 5) StrictMode=ON, CREATE with a valid KEY_BLOCK_SIZE |
|||
# ALTER with each ROW_FORMAT |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) KEY_BLOCK_SIZE=2; |
|||
SHOW CREATE TABLE t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`i` int(11) DEFAULT NULL |
|||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 KEY_BLOCK_SIZE=2 |
|||
ALTER TABLE t1 ADD COLUMN f1 INT; |
|||
SHOW CREATE TABLE t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`i` int(11) DEFAULT NULL, |
|||
`f1` int(11) DEFAULT NULL |
|||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 KEY_BLOCK_SIZE=2 |
|||
ALTER TABLE t1 ROW_FORMAT=COMPACT; |
|||
ERROR HY000: Can't create table '#sql-temporary' (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 '#sql-temporary' (errno: 1478) |
|||
ALTER TABLE t1 ROW_FORMAT=REDUNDANT; |
|||
ERROR HY000: Can't create table '#sql-temporary' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: cannot specify ROW_FORMAT = REDUNDANT with KEY_BLOCK_SIZE. |
|||
Error 1005 Can't create table '#sql-temporary' (errno: 1478) |
|||
ALTER TABLE t1 ROW_FORMAT=DYNAMIC; |
|||
ERROR HY000: Can't create table '#sql-temporary' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: cannot specify ROW_FORMAT = DYNAMIC with KEY_BLOCK_SIZE. |
|||
Error 1005 Can't create table '#sql-temporary' (errno: 1478) |
|||
ALTER TABLE t1 ROW_FORMAT=COMPRESSED; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=2 |
|||
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compact |
|||
ALTER TABLE t1 ROW_FORMAT=COMPACT; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compact row_format=COMPACT |
|||
# Test 6) StrictMode=ON, CREATE with an invalid KEY_BLOCK_SIZE. |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) KEY_BLOCK_SIZE=9; |
|||
ERROR HY000: Can't create table 'test.t1' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: invalid KEY_BLOCK_SIZE = 9. Valid values are [1, 2, 4, 8, 16] |
|||
Error 1005 Can't create table 'test.t1' (errno: 1478) |
|||
# Test 7) StrictMode=ON, Make sure ROW_FORMAT= COMPRESSED & DYNAMIC and |
|||
# and a valid non-zero KEY_BLOCK_SIZE are rejected with Antelope |
|||
# and that they can be set to default values during strict mode. |
|||
SET GLOBAL innodb_file_format=Antelope; |
|||
DROP TABLE IF EXISTS t1; |
|||
Warnings: |
|||
Note 1051 Unknown table 't1' |
|||
CREATE TABLE t1 ( i INT ) KEY_BLOCK_SIZE=4; |
|||
ERROR HY000: Can't create table 'test.t1' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_format > Antelope. |
|||
Error 1005 Can't create table 'test.t1' (errno: 1478) |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED; |
|||
ERROR HY000: Can't create table 'test.t1' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_format > Antelope. |
|||
Error 1005 Can't create table 'test.t1' (errno: 1478) |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DYNAMIC; |
|||
ERROR HY000: Can't create table 'test.t1' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ROW_FORMAT=DYNAMIC requires innodb_file_format > Antelope. |
|||
Error 1005 Can't create table 'test.t1' (errno: 1478) |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=REDUNDANT; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Redundant row_format=REDUNDANT |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPACT; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compact row_format=COMPACT |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DEFAULT; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
ALTER TABLE t1 KEY_BLOCK_SIZE=8; |
|||
ERROR HY000: Can't create table '#sql-temporary' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_format > Antelope. |
|||
Error 1005 Can't create table '#sql-temporary' (errno: 1478) |
|||
ALTER TABLE t1 ROW_FORMAT=COMPRESSED; |
|||
ERROR HY000: Can't create table '#sql-temporary' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_format > Antelope. |
|||
Error 1005 Can't create table '#sql-temporary' (errno: 1478) |
|||
ALTER TABLE t1 ROW_FORMAT=DYNAMIC; |
|||
ERROR HY000: Can't create table '#sql-temporary' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ROW_FORMAT=DYNAMIC requires innodb_file_format > Antelope. |
|||
Error 1005 Can't create table '#sql-temporary' (errno: 1478) |
|||
SET GLOBAL innodb_file_format=Barracuda; |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; |
|||
SET GLOBAL innodb_file_format=Antelope; |
|||
ALTER TABLE t1 ADD COLUMN f1 INT; |
|||
ERROR HY000: Can't create table '#sql-temporary' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_format > Antelope. |
|||
Warning 1478 InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_format > Antelope. |
|||
Error 1005 Can't create table '#sql-temporary' (errno: 1478) |
|||
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
ALTER TABLE t1 ADD COLUMN f2 INT; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SET GLOBAL innodb_file_format=Barracuda; |
|||
# Test 8) StrictMode=ON, Make sure ROW_FORMAT= COMPRESSED & DYNAMIC and |
|||
# and a valid non-zero KEY_BLOCK_SIZE are rejected with |
|||
# innodb_file_per_table=OFF and that they can be set to default |
|||
# values during strict mode. |
|||
SET GLOBAL innodb_file_per_table=OFF; |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) KEY_BLOCK_SIZE=16; |
|||
ERROR HY000: Can't create table 'test.t1' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table. |
|||
Error 1005 Can't create table 'test.t1' (errno: 1478) |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED; |
|||
ERROR HY000: Can't create table 'test.t1' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_per_table. |
|||
Error 1005 Can't create table 'test.t1' (errno: 1478) |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DYNAMIC; |
|||
ERROR HY000: Can't create table 'test.t1' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ROW_FORMAT=DYNAMIC requires innodb_file_per_table. |
|||
Error 1005 Can't create table 'test.t1' (errno: 1478) |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=REDUNDANT; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Redundant row_format=REDUNDANT |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPACT; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compact row_format=COMPACT |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DEFAULT; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
ALTER TABLE t1 KEY_BLOCK_SIZE=1; |
|||
ERROR HY000: Can't create table '#sql-temporary' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table. |
|||
Error 1005 Can't create table '#sql-temporary' (errno: 1478) |
|||
ALTER TABLE t1 ROW_FORMAT=COMPRESSED; |
|||
ERROR HY000: Can't create table '#sql-temporary' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_per_table. |
|||
Error 1005 Can't create table '#sql-temporary' (errno: 1478) |
|||
ALTER TABLE t1 ROW_FORMAT=DYNAMIC; |
|||
ERROR HY000: Can't create table '#sql-temporary' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ROW_FORMAT=DYNAMIC requires innodb_file_per_table. |
|||
Error 1005 Can't create table '#sql-temporary' (errno: 1478) |
|||
ALTER TABLE t1 ROW_FORMAT=COMPACT; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compact row_format=COMPACT |
|||
ALTER TABLE t1 ROW_FORMAT=REDUNDANT; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Redundant row_format=REDUNDANT |
|||
ALTER TABLE t1 ROW_FORMAT=DEFAULT; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compact |
|||
SET GLOBAL innodb_file_per_table=ON; |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; |
|||
SET GLOBAL innodb_file_per_table=OFF; |
|||
ALTER TABLE t1 ADD COLUMN f1 INT; |
|||
ERROR HY000: Can't create table '#sql-temporary' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table. |
|||
Warning 1478 InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_per_table. |
|||
Error 1005 Can't create table '#sql-temporary' (errno: 1478) |
|||
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
ALTER TABLE t1 ADD COLUMN f2 INT; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SET GLOBAL innodb_file_per_table=ON; |
|||
################################################## |
|||
SET SESSION innodb_strict_mode = OFF; |
|||
# Test 9) StrictMode=OFF, CREATE and ALTER with each ROW_FORMAT & KEY_BLOCK_SIZE=0 |
|||
# KEY_BLOCK_SIZE=0 means 'no KEY_BLOCK_SIZE is specified' |
|||
# 'FIXED' is sent to InnoDB since it is used by MyISAM. |
|||
# It is an invalid mode in InnoDB, use COMPACT |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=FIXED; |
|||
Warnings: |
|||
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT. |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT. |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compact row_format=FIXED |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compressed row_format=COMPRESSED |
|||
ALTER TABLE t1 ROW_FORMAT=COMPACT KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compact row_format=COMPACT |
|||
ALTER TABLE t1 ROW_FORMAT=DYNAMIC KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Dynamic row_format=DYNAMIC |
|||
ALTER TABLE t1 ROW_FORMAT=REDUNDANT KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Redundant row_format=REDUNDANT |
|||
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compact |
|||
ALTER TABLE t1 ROW_FORMAT=FIXED KEY_BLOCK_SIZE=0; |
|||
Warnings: |
|||
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT. |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT. |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compact row_format=FIXED |
|||
# Test 10) StrictMode=OFF, CREATE with each ROW_FORMAT & a valid KEY_BLOCK_SIZE |
|||
# KEY_BLOCK_SIZE is ignored with COMPACT, REDUNDANT, & DYNAMIC |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( 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. |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compact row_format=COMPACT KEY_BLOCK_SIZE=1 |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=REDUNDANT KEY_BLOCK_SIZE=2; |
|||
Warnings: |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=2 unless ROW_FORMAT=COMPRESSED. |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=2 unless ROW_FORMAT=COMPRESSED. |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Redundant row_format=REDUNDANT KEY_BLOCK_SIZE=2 |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DYNAMIC KEY_BLOCK_SIZE=4; |
|||
Warnings: |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=4 unless ROW_FORMAT=COMPRESSED. |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=4 unless ROW_FORMAT=COMPRESSED. |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Dynamic row_format=DYNAMIC KEY_BLOCK_SIZE=4 |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=8 |
|||
ALTER TABLE t1 ADD COLUMN f1 INT; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=8 |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=16; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compressed KEY_BLOCK_SIZE=16 |
|||
ALTER TABLE t1 ADD COLUMN f1 INT; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compressed KEY_BLOCK_SIZE=16 |
|||
# Test 11) StrictMode=OFF, ALTER with each ROW_FORMAT & a valid KEY_BLOCK_SIZE |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ); |
|||
ALTER TABLE t1 ROW_FORMAT=FIXED KEY_BLOCK_SIZE=1; |
|||
Warnings: |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=1 unless ROW_FORMAT=COMPRESSED. |
|||
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT. |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=1 unless ROW_FORMAT=COMPRESSED. |
|||
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT. |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compact row_format=FIXED KEY_BLOCK_SIZE=1 |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ); |
|||
ALTER TABLE t1 ROW_FORMAT=COMPACT KEY_BLOCK_SIZE=2; |
|||
Warnings: |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=2 unless ROW_FORMAT=COMPRESSED. |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=2 unless ROW_FORMAT=COMPRESSED. |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compact row_format=COMPACT KEY_BLOCK_SIZE=2 |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ); |
|||
ALTER TABLE t1 ROW_FORMAT=DYNAMIC KEY_BLOCK_SIZE=4; |
|||
Warnings: |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=4 unless ROW_FORMAT=COMPRESSED. |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=4 unless ROW_FORMAT=COMPRESSED. |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Dynamic row_format=DYNAMIC KEY_BLOCK_SIZE=4 |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ); |
|||
ALTER TABLE t1 ROW_FORMAT=REDUNDANT KEY_BLOCK_SIZE=8; |
|||
Warnings: |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=8 unless ROW_FORMAT=COMPRESSED. |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=8 unless ROW_FORMAT=COMPRESSED. |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Redundant row_format=REDUNDANT KEY_BLOCK_SIZE=8 |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ); |
|||
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=16; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compressed KEY_BLOCK_SIZE=16 |
|||
ALTER TABLE t1 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=1 |
|||
# Test 12) StrictMode=OFF, CREATE with ROW_FORMAT=COMPACT, ALTER with a valid KEY_BLOCK_SIZE |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPACT; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compact row_format=COMPACT |
|||
ALTER TABLE t1 KEY_BLOCK_SIZE=2; |
|||
Warnings: |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=2 unless ROW_FORMAT=COMPRESSED. |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=2 unless ROW_FORMAT=COMPRESSED. |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compact row_format=COMPACT KEY_BLOCK_SIZE=2 |
|||
ALTER TABLE t1 ROW_FORMAT=REDUNDANT; |
|||
Warnings: |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=2 unless ROW_FORMAT=COMPRESSED. |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=2 unless ROW_FORMAT=COMPRESSED. |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Redundant row_format=REDUNDANT KEY_BLOCK_SIZE=2 |
|||
ALTER TABLE t1 ROW_FORMAT=DYNAMIC; |
|||
Warnings: |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=2 unless ROW_FORMAT=COMPRESSED. |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=2 unless ROW_FORMAT=COMPRESSED. |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Dynamic row_format=DYNAMIC KEY_BLOCK_SIZE=2 |
|||
ALTER TABLE t1 ROW_FORMAT=COMPRESSED; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=2 |
|||
ALTER TABLE t1 KEY_BLOCK_SIZE=4; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=4 |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPACT; |
|||
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=8; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compressed KEY_BLOCK_SIZE=8 |
|||
# Test 13) StrictMode=OFF, CREATE with a valid KEY_BLOCK_SIZE |
|||
# ALTER with each ROW_FORMAT |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) KEY_BLOCK_SIZE=16; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SHOW CREATE TABLE t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`i` int(11) DEFAULT NULL |
|||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 KEY_BLOCK_SIZE=16 |
|||
ALTER TABLE t1 ADD COLUMN f1 INT; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SHOW CREATE TABLE t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`i` int(11) DEFAULT NULL, |
|||
`f1` int(11) DEFAULT NULL |
|||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 KEY_BLOCK_SIZE=16 |
|||
ALTER TABLE t1 ROW_FORMAT=COMPACT; |
|||
Warnings: |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16 unless ROW_FORMAT=COMPRESSED. |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16 unless ROW_FORMAT=COMPRESSED. |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compact row_format=COMPACT KEY_BLOCK_SIZE=16 |
|||
ALTER TABLE t1 ROW_FORMAT=REDUNDANT; |
|||
Warnings: |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16 unless ROW_FORMAT=COMPRESSED. |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16 unless ROW_FORMAT=COMPRESSED. |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Redundant row_format=REDUNDANT KEY_BLOCK_SIZE=16 |
|||
ALTER TABLE t1 ROW_FORMAT=DYNAMIC; |
|||
Warnings: |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16 unless ROW_FORMAT=COMPRESSED. |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16 unless ROW_FORMAT=COMPRESSED. |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Dynamic row_format=DYNAMIC KEY_BLOCK_SIZE=16 |
|||
ALTER TABLE t1 ROW_FORMAT=COMPRESSED; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=16 |
|||
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compact |
|||
ALTER TABLE t1 ROW_FORMAT=COMPACT; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compact row_format=COMPACT |
|||
# Test 14) StrictMode=OFF, CREATE with an invalid KEY_BLOCK_SIZE, it defaults to 8 |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) KEY_BLOCK_SIZE=15; |
|||
Warnings: |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=15. |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=15. |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compact KEY_BLOCK_SIZE=15 |
|||
# Test 15) StrictMode=OFF, Make sure ROW_FORMAT= COMPRESSED & DYNAMIC and a |
|||
valid KEY_BLOCK_SIZE are remembered but not used when ROW_FORMAT |
|||
is reverted to Antelope and then used again when ROW_FORMAT=Barracuda. |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=1 |
|||
SET GLOBAL innodb_file_format=Antelope; |
|||
ALTER TABLE t1 ADD COLUMN f1 INT; |
|||
Warnings: |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_format > Antelope. |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=1. |
|||
Warning 1478 InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_format > Antelope. |
|||
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT. |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_format > Antelope. |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=1. |
|||
Warning 1478 InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_format > Antelope. |
|||
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT. |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compact row_format=COMPRESSED KEY_BLOCK_SIZE=1 |
|||
SET GLOBAL innodb_file_format=Barracuda; |
|||
ALTER TABLE t1 ADD COLUMN f2 INT; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=1 |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DYNAMIC; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Dynamic row_format=DYNAMIC |
|||
SET GLOBAL innodb_file_format=Antelope; |
|||
ALTER TABLE t1 ADD COLUMN f1 INT; |
|||
Warnings: |
|||
Warning 1478 InnoDB: ROW_FORMAT=DYNAMIC requires innodb_file_format > Antelope. |
|||
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT. |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ROW_FORMAT=DYNAMIC requires innodb_file_format > Antelope. |
|||
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT. |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compact row_format=DYNAMIC |
|||
SET GLOBAL innodb_file_format=Barracuda; |
|||
ALTER TABLE t1 ADD COLUMN f2 INT; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Dynamic row_format=DYNAMIC |
|||
# Test 16) StrictMode=OFF, Make sure ROW_FORMAT= COMPRESSED & DYNAMIC and a |
|||
valid KEY_BLOCK_SIZE are remembered but not used when innodb_file_per_table=OFF |
|||
and then used again when innodb_file_per_table=ON. |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=2; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=2 |
|||
SET GLOBAL innodb_file_per_table=OFF; |
|||
ALTER TABLE t1 ADD COLUMN f1 INT; |
|||
Warnings: |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table. |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=2. |
|||
Warning 1478 InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_per_table. |
|||
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT. |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table. |
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=2. |
|||
Warning 1478 InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_per_table. |
|||
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT. |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compact row_format=COMPRESSED KEY_BLOCK_SIZE=2 |
|||
SET GLOBAL innodb_file_per_table=ON; |
|||
ALTER TABLE t1 ADD COLUMN f2 INT; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=2 |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DYNAMIC; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Dynamic row_format=DYNAMIC |
|||
SET GLOBAL innodb_file_per_table=OFF; |
|||
ALTER TABLE t1 ADD COLUMN f1 INT; |
|||
Warnings: |
|||
Warning 1478 InnoDB: ROW_FORMAT=DYNAMIC requires innodb_file_per_table. |
|||
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT. |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ROW_FORMAT=DYNAMIC requires innodb_file_per_table. |
|||
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT. |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Compact row_format=DYNAMIC |
|||
SET GLOBAL innodb_file_per_table=ON; |
|||
ALTER TABLE t1 ADD COLUMN f2 INT; |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
t1 Dynamic row_format=DYNAMIC |
|||
# Cleanup |
|||
DROP TABLE IF EXISTS t1; |
|||
@ -0,0 +1,27 @@ |
|||
CREATE TABLE bug53046_1 (c1 INT PRIMARY KEY) ENGINE=INNODB; |
|||
CREATE TABLE bug53046_2 (c2 INT PRIMARY KEY, |
|||
FOREIGN KEY (c2) REFERENCES bug53046_1(c1) |
|||
ON UPDATE CASCADE ON DELETE CASCADE) ENGINE=INNODB; |
|||
INSERT INTO bug53046_1 VALUES (1); |
|||
INSERT INTO bug53046_1 SELECT c1+(SELECT MAX(c1) FROM bug53046_1) |
|||
FROM bug53046_1; |
|||
INSERT INTO bug53046_1 SELECT c1+(SELECT MAX(c1) FROM bug53046_1) |
|||
FROM bug53046_1; |
|||
INSERT INTO bug53046_1 SELECT c1+(SELECT MAX(c1) FROM bug53046_1) |
|||
FROM bug53046_1; |
|||
INSERT INTO bug53046_1 SELECT c1+(SELECT MAX(c1) FROM bug53046_1) |
|||
FROM bug53046_1; |
|||
INSERT INTO bug53046_1 SELECT c1+(SELECT MAX(c1) FROM bug53046_1) |
|||
FROM bug53046_1; |
|||
INSERT INTO bug53046_2 VALUES (1), (2); |
|||
ANALYZE TABLE bug53046_1; |
|||
Table Op Msg_type Msg_text |
|||
test.bug53046_1 analyze status OK |
|||
SHOW TABLE STATUS LIKE 'bug53046_1'; |
|||
UPDATE bug53046_1 SET c1 = c1 - 1; |
|||
DELETE FROM bug53046_1; |
|||
INSERT INTO bug53046_1 VALUES (1); |
|||
INSERT INTO bug53046_2 VALUES (1); |
|||
TRUNCATE TABLE bug53046_2; |
|||
DROP TABLE bug53046_2; |
|||
DROP TABLE bug53046_1; |
|||
@ -1,91 +0,0 @@ |
|||
SET GLOBAL innodb_file_format='Barracuda'; |
|||
SET GLOBAL innodb_file_per_table=ON; |
|||
SET innodb_strict_mode=ON; |
|||
CREATE TABLE bug54679 (a INT) ENGINE=InnoDB ROW_FORMAT=COMPRESSED; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables |
|||
WHERE TABLE_NAME='bug54679'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
bug54679 Compressed row_format=COMPRESSED |
|||
ALTER TABLE bug54679 ADD COLUMN b INT; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables |
|||
WHERE TABLE_NAME='bug54679'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
bug54679 Compressed row_format=COMPRESSED |
|||
DROP TABLE bug54679; |
|||
CREATE TABLE bug54679 (a INT) ENGINE=InnoDB; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables |
|||
WHERE TABLE_NAME='bug54679'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
bug54679 Compact |
|||
ALTER TABLE bug54679 KEY_BLOCK_SIZE=1; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables |
|||
WHERE TABLE_NAME='bug54679'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
bug54679 Compressed KEY_BLOCK_SIZE=1 |
|||
ALTER TABLE bug54679 ROW_FORMAT=REDUNDANT; |
|||
ERROR HY000: Can't create table '#sql-temporary' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: cannot specify ROW_FORMAT = REDUNDANT with KEY_BLOCK_SIZE. |
|||
Error 1005 Can't create table '#sql-temporary' (errno: 1478) |
|||
DROP TABLE bug54679; |
|||
CREATE TABLE bug54679 (a INT) ENGINE=InnoDB ROW_FORMAT=REDUNDANT; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables |
|||
WHERE TABLE_NAME='bug54679'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
bug54679 Redundant row_format=REDUNDANT |
|||
ALTER TABLE bug54679 KEY_BLOCK_SIZE=2; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables |
|||
WHERE TABLE_NAME='bug54679'; |
|||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS |
|||
bug54679 Compressed row_format=REDUNDANT KEY_BLOCK_SIZE=2 |
|||
SET GLOBAL innodb_file_format=Antelope; |
|||
ALTER TABLE bug54679 KEY_BLOCK_SIZE=4; |
|||
ERROR HY000: Can't create table '#sql-temporary' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_format > Antelope. |
|||
Error 1005 Can't create table '#sql-temporary' (errno: 1478) |
|||
ALTER TABLE bug54679 ROW_FORMAT=DYNAMIC; |
|||
ERROR HY000: Can't create table '#sql-temporary' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_format > Antelope. |
|||
Warning 1478 InnoDB: ROW_FORMAT=DYNAMIC requires innodb_file_format > Antelope. |
|||
Warning 1478 InnoDB: cannot specify ROW_FORMAT = DYNAMIC with KEY_BLOCK_SIZE. |
|||
Error 1005 Can't create table '#sql-temporary' (errno: 1478) |
|||
DROP TABLE bug54679; |
|||
CREATE TABLE bug54679 (a INT) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; |
|||
ERROR HY000: Can't create table 'test.bug54679' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ROW_FORMAT=DYNAMIC requires innodb_file_format > Antelope. |
|||
Error 1005 Can't create table 'test.bug54679' (errno: 1478) |
|||
CREATE TABLE bug54679 (a INT) ENGINE=InnoDB; |
|||
SET GLOBAL innodb_file_format=Barracuda; |
|||
SET GLOBAL innodb_file_per_table=OFF; |
|||
ALTER TABLE bug54679 KEY_BLOCK_SIZE=4; |
|||
ERROR HY000: Can't create table '#sql-temporary' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table. |
|||
Error 1005 Can't create table '#sql-temporary' (errno: 1478) |
|||
ALTER TABLE bug54679 ROW_FORMAT=DYNAMIC; |
|||
ERROR HY000: Can't create table '#sql-temporary' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ROW_FORMAT=DYNAMIC requires innodb_file_per_table. |
|||
Error 1005 Can't create table '#sql-temporary' (errno: 1478) |
|||
DROP TABLE bug54679; |
|||
CREATE TABLE bug54679 (a INT) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; |
|||
ERROR HY000: Can't create table 'test.bug54679' (errno: 1478) |
|||
SHOW WARNINGS; |
|||
Level Code Message |
|||
Warning 1478 InnoDB: ROW_FORMAT=DYNAMIC requires innodb_file_per_table. |
|||
Error 1005 Can't create table 'test.bug54679' (errno: 1478) |
|||
SET GLOBAL innodb_file_per_table=ON; |
|||
CREATE TABLE bug54679 (a INT) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; |
|||
DROP TABLE bug54679; |
|||
SET GLOBAL innodb_file_format=Antelope; |
|||
SET GLOBAL innodb_file_format_check=Antelope; |
|||
SET GLOBAL innodb_file_per_table=0; |
|||
@ -1,294 +0,0 @@ |
|||
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; |
|||
@ -0,0 +1,575 @@ |
|||
# Tests for various combinations of ROW_FORMAT and KEY_BLOCK_SIZE |
|||
# Related bugs; |
|||
# Bug#54679: ALTER TABLE causes compressed row_format to revert to compact |
|||
# Bug#56628: ALTER TABLE .. KEY_BLOCK_SIZE=0 produces untrue warning or unnecessary error |
|||
# Bug#56632: ALTER TABLE implicitly changes ROW_FORMAT to COMPRESSED |
|||
# Rules for interpreting CREATE_OPTIONS |
|||
# 1) Create options on an ALTER are added to the options on the |
|||
# previous CREATE or ALTER statements. |
|||
# 2) KEY_BLOCK_SIZE=0 is considered a unspecified value. |
|||
# If the current ROW_FORMAT has explicitly been set to COMPRESSED, |
|||
# InnoDB will use a default value of 8. Otherwise KEY_BLOCK_SIZE |
|||
# will not be used. |
|||
# 3) ROW_FORMAT=DEFAULT allows InnoDB to choose its own default, COMPACT. |
|||
# 4) ROW_FORMAT=DEFAULT and KEY_BLOCK_SIZE=0 can be used at any time to |
|||
# unset or erase the values persisted in the MySQL dictionary and |
|||
# by SHOW CTREATE TABLE. |
|||
# 5) When incompatible values for ROW_FORMAT and KEY_BLOCK_SIZE are |
|||
# both explicitly given, the ROW_FORMAT is always used in non-strict |
|||
# mode. |
|||
# 6) InnoDB will automatically convert a table to COMPRESSED only if a |
|||
# valid non-zero KEY_BLOCK_SIZE has been given and ROW_FORMAT=DEFAULT |
|||
# or has not been used on a previous CREATE TABLE or ALTER TABLE. |
|||
# 7) InnoDB strict mode is designed to prevent incompatible create |
|||
# options from being used together. |
|||
# 8) The non-strict behavior is intended to permit you to import a |
|||
# mysqldump file into a database that does not support compressed |
|||
# tables, even if the source database contained compressed tables. |
|||
# All invalid values and/or incompatible combinations of ROW_FORMAT |
|||
# and KEY_BLOCK_SIZE are automatically corrected |
|||
# |
|||
# *** innodb_strict_mode=ON *** |
|||
# 1) Valid ROW_FORMATs are COMPRESSED, COMPACT, DEFAULT, DYNAMIC |
|||
# & REDUNDANT. All others are rejected. |
|||
# 2) Valid KEY_BLOCK_SIZEs are 0,1,2,4,8,16. All others are rejected. |
|||
# 3) KEY_BLOCK_SIZE=0 can be used to set it to 'unspecified'. |
|||
# 4) KEY_BLOCK_SIZE=1,2,4,8 & 16 are incompatible with COMPACT, DYNAMIC & |
|||
# REDUNDANT. |
|||
# 5) KEY_BLOCK_SIZE=1,2,4,8 & 16 as well as ROW_FORMAT=COMPRESSED and |
|||
# ROW_FORMAT=DYNAMIC are incompatible with innodb_file_format=Antelope |
|||
# and innodb_file_per_table=OFF |
|||
# 6) KEY_BLOCK_SIZE on an ALTER must occur with ROW_FORMAT=COMPRESSED |
|||
# or ROW_FORMAT=DEFAULT if the ROW_FORMAT was previously specified |
|||
# as COMPACT, DYNAMIC or REDUNDANT. |
|||
# 7) KEY_BLOCK_SIZE on an ALTER can occur without a ROW_FORMAT if the |
|||
# previous ROW_FORMAT was DEFAULT, COMPRESSED, or unspecified. |
|||
# |
|||
# *** innodb_strict_mode=OFF *** |
|||
# 1. Ignore a bad KEY_BLOCK_SIZE, defaulting it to 8. |
|||
# 2. Ignore a bad ROW_FORMAT, defaulting to COMPACT. |
|||
# 3. Ignore a valid KEY_BLOCK_SIZE when an incompatible but valid |
|||
# ROW_FORMAT is specified. |
|||
# 4. If innodb_file_format=Antelope or innodb_file_per_table=OFF |
|||
# it will ignore ROW_FORMAT=COMPRESSED or DYNAMIC and it will |
|||
# ignore all non-zero KEY_BLOCK_SIZEs. |
|||
# |
|||
# See InnoDB documentation page "SQL Compression Syntax Warnings and Errors" |
|||
|
|||
-- source include/have_innodb_plugin.inc |
|||
SET storage_engine=InnoDB; |
|||
|
|||
--disable_query_log |
|||
# These values can change during the test |
|||
LET $innodb_file_format_orig=`select @@innodb_file_format`; |
|||
LET $innodb_file_format_check_orig=`select @@innodb_file_format_check`; |
|||
LET $innodb_file_per_table_orig=`select @@innodb_file_per_table`; |
|||
LET $innodb_strict_mode_orig=`select @@session.innodb_strict_mode`; |
|||
--enable_query_log |
|||
|
|||
SET GLOBAL innodb_file_format=`Barracuda`; |
|||
SET GLOBAL innodb_file_per_table=ON; |
|||
|
|||
# The first half of these tests are with strict mode ON. |
|||
SET SESSION innodb_strict_mode = ON; |
|||
|
|||
--echo # Test 1) StrictMode=ON, CREATE and ALTER with each ROW_FORMAT & KEY_BLOCK_SIZE=0 |
|||
--echo # KEY_BLOCK_SIZE=0 means 'no KEY_BLOCK_SIZE is specified' |
|||
DROP TABLE IF EXISTS t1; |
|||
--echo # 'FIXED' is sent to InnoDB since it is used by MyISAM. |
|||
--echo # But it is an invalid mode in InnoDB |
|||
--error ER_CANT_CREATE_TABLE |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=FIXED; |
|||
SHOW WARNINGS; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 ROW_FORMAT=COMPACT KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 ROW_FORMAT=DYNAMIC KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 ROW_FORMAT=REDUNDANT KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE t1 ROW_FORMAT=FIXED KEY_BLOCK_SIZE=0; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
|
|||
|
|||
|
|||
--echo # Test 2) StrictMode=ON, CREATE with each ROW_FORMAT & a valid non-zero KEY_BLOCK_SIZE |
|||
--echo # KEY_BLOCK_SIZE is incompatible with COMPACT, REDUNDANT, & DYNAMIC |
|||
DROP TABLE IF EXISTS t1; |
|||
--error ER_CANT_CREATE_TABLE |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPACT KEY_BLOCK_SIZE=1; |
|||
SHOW WARNINGS; |
|||
--error ER_CANT_CREATE_TABLE |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=REDUNDANT KEY_BLOCK_SIZE=2; |
|||
SHOW WARNINGS; |
|||
--error ER_CANT_CREATE_TABLE |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DYNAMIC KEY_BLOCK_SIZE=4; |
|||
SHOW WARNINGS; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 ADD COLUMN f1 INT; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=16; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 ADD COLUMN f1 INT; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
|
|||
|
|||
--echo # Test 3) StrictMode=ON, ALTER with each ROW_FORMAT & a valid non-zero KEY_BLOCK_SIZE |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ); |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE t1 ROW_FORMAT=FIXED KEY_BLOCK_SIZE=1; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
SHOW WARNINGS; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE t1 ROW_FORMAT=COMPACT KEY_BLOCK_SIZE=2; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
SHOW WARNINGS; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE t1 ROW_FORMAT=DYNAMIC KEY_BLOCK_SIZE=4; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
SHOW WARNINGS; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE t1 ROW_FORMAT=REDUNDANT KEY_BLOCK_SIZE=8; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
SHOW WARNINGS; |
|||
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=16; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
|
|||
|
|||
--echo # Test 4) StrictMode=ON, CREATE with ROW_FORMAT=COMPACT, ALTER with a valid non-zero KEY_BLOCK_SIZE |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPACT; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE t1 KEY_BLOCK_SIZE=2; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
SHOW WARNINGS; |
|||
ALTER TABLE t1 ROW_FORMAT=REDUNDANT; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE t1 KEY_BLOCK_SIZE=4; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
SHOW WARNINGS; |
|||
ALTER TABLE t1 ROW_FORMAT=DYNAMIC; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE t1 KEY_BLOCK_SIZE=8; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
SHOW WARNINGS; |
|||
ALTER TABLE t1 ROW_FORMAT=COMPRESSED; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 KEY_BLOCK_SIZE=16; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPACT; |
|||
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=1; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
|
|||
--echo # Test 5) StrictMode=ON, CREATE with a valid KEY_BLOCK_SIZE |
|||
--echo # ALTER with each ROW_FORMAT |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) KEY_BLOCK_SIZE=2; |
|||
SHOW CREATE TABLE t1; |
|||
ALTER TABLE t1 ADD COLUMN f1 INT; |
|||
SHOW CREATE TABLE t1; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE t1 ROW_FORMAT=COMPACT; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
SHOW WARNINGS; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE t1 ROW_FORMAT=REDUNDANT; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
SHOW WARNINGS; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE t1 ROW_FORMAT=DYNAMIC; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
SHOW WARNINGS; |
|||
ALTER TABLE t1 ROW_FORMAT=COMPRESSED; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 ROW_FORMAT=COMPACT; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
|
|||
--echo # Test 6) StrictMode=ON, CREATE with an invalid KEY_BLOCK_SIZE. |
|||
DROP TABLE IF EXISTS t1; |
|||
--error ER_CANT_CREATE_TABLE |
|||
CREATE TABLE t1 ( i INT ) KEY_BLOCK_SIZE=9; |
|||
SHOW WARNINGS; |
|||
|
|||
--echo # Test 7) StrictMode=ON, Make sure ROW_FORMAT= COMPRESSED & DYNAMIC and |
|||
--echo # and a valid non-zero KEY_BLOCK_SIZE are rejected with Antelope |
|||
--echo # and that they can be set to default values during strict mode. |
|||
SET GLOBAL innodb_file_format=Antelope; |
|||
DROP TABLE IF EXISTS t1; |
|||
--error ER_CANT_CREATE_TABLE |
|||
CREATE TABLE t1 ( i INT ) KEY_BLOCK_SIZE=4; |
|||
SHOW WARNINGS; |
|||
--error ER_CANT_CREATE_TABLE |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED; |
|||
SHOW WARNINGS; |
|||
--error ER_CANT_CREATE_TABLE |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DYNAMIC; |
|||
SHOW WARNINGS; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=REDUNDANT; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPACT; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DEFAULT; |
|||
SHOW WARNINGS; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE t1 KEY_BLOCK_SIZE=8; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
SHOW WARNINGS; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE t1 ROW_FORMAT=COMPRESSED; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
SHOW WARNINGS; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE t1 ROW_FORMAT=DYNAMIC; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
SHOW WARNINGS; |
|||
SET GLOBAL innodb_file_format=Barracuda; |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; |
|||
SET GLOBAL innodb_file_format=Antelope; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE t1 ADD COLUMN f1 INT; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
SHOW WARNINGS; |
|||
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
ALTER TABLE t1 ADD COLUMN f2 INT; |
|||
SHOW WARNINGS; |
|||
SET GLOBAL innodb_file_format=Barracuda; |
|||
|
|||
--echo # Test 8) StrictMode=ON, Make sure ROW_FORMAT= COMPRESSED & DYNAMIC and |
|||
--echo # and a valid non-zero KEY_BLOCK_SIZE are rejected with |
|||
--echo # innodb_file_per_table=OFF and that they can be set to default |
|||
--echo # values during strict mode. |
|||
SET GLOBAL innodb_file_per_table=OFF; |
|||
DROP TABLE IF EXISTS t1; |
|||
--error ER_CANT_CREATE_TABLE |
|||
CREATE TABLE t1 ( i INT ) KEY_BLOCK_SIZE=16; |
|||
SHOW WARNINGS; |
|||
--error ER_CANT_CREATE_TABLE |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED; |
|||
SHOW WARNINGS; |
|||
--error ER_CANT_CREATE_TABLE |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DYNAMIC; |
|||
SHOW WARNINGS; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=REDUNDANT; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPACT; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DEFAULT; |
|||
SHOW WARNINGS; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE t1 KEY_BLOCK_SIZE=1; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
SHOW WARNINGS; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE t1 ROW_FORMAT=COMPRESSED; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
SHOW WARNINGS; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE t1 ROW_FORMAT=DYNAMIC; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
SHOW WARNINGS; |
|||
ALTER TABLE t1 ROW_FORMAT=COMPACT; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 ROW_FORMAT=REDUNDANT; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 ROW_FORMAT=DEFAULT; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
SET GLOBAL innodb_file_per_table=ON; |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; |
|||
SET GLOBAL innodb_file_per_table=OFF; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE t1 ADD COLUMN f1 INT; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
SHOW WARNINGS; |
|||
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
ALTER TABLE t1 ADD COLUMN f2 INT; |
|||
SHOW WARNINGS; |
|||
SET GLOBAL innodb_file_per_table=ON; |
|||
|
|||
--echo ################################################## |
|||
SET SESSION innodb_strict_mode = OFF; |
|||
|
|||
--echo # Test 9) StrictMode=OFF, CREATE and ALTER with each ROW_FORMAT & KEY_BLOCK_SIZE=0 |
|||
--echo # KEY_BLOCK_SIZE=0 means 'no KEY_BLOCK_SIZE is specified' |
|||
--echo # 'FIXED' is sent to InnoDB since it is used by MyISAM. |
|||
--echo # It is an invalid mode in InnoDB, use COMPACT |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=FIXED; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 ROW_FORMAT=COMPACT KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 ROW_FORMAT=DYNAMIC KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 ROW_FORMAT=REDUNDANT KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 ROW_FORMAT=FIXED KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
|
|||
--echo # Test 10) StrictMode=OFF, CREATE with each ROW_FORMAT & a valid KEY_BLOCK_SIZE |
|||
--echo # KEY_BLOCK_SIZE is ignored with COMPACT, REDUNDANT, & DYNAMIC |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPACT KEY_BLOCK_SIZE=1; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=REDUNDANT KEY_BLOCK_SIZE=2; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DYNAMIC KEY_BLOCK_SIZE=4; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 ADD COLUMN f1 INT; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=16; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 ADD COLUMN f1 INT; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
|
|||
|
|||
--echo # Test 11) StrictMode=OFF, ALTER with each ROW_FORMAT & a valid KEY_BLOCK_SIZE |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ); |
|||
ALTER TABLE t1 ROW_FORMAT=FIXED KEY_BLOCK_SIZE=1; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ); |
|||
ALTER TABLE t1 ROW_FORMAT=COMPACT KEY_BLOCK_SIZE=2; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ); |
|||
ALTER TABLE t1 ROW_FORMAT=DYNAMIC KEY_BLOCK_SIZE=4; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ); |
|||
ALTER TABLE t1 ROW_FORMAT=REDUNDANT KEY_BLOCK_SIZE=8; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ); |
|||
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=16; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
|
|||
|
|||
--echo # Test 12) StrictMode=OFF, CREATE with ROW_FORMAT=COMPACT, ALTER with a valid KEY_BLOCK_SIZE |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPACT; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 KEY_BLOCK_SIZE=2; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 ROW_FORMAT=REDUNDANT; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 ROW_FORMAT=DYNAMIC; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 ROW_FORMAT=COMPRESSED; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 KEY_BLOCK_SIZE=4; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPACT; |
|||
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=8; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
|
|||
--echo # Test 13) StrictMode=OFF, CREATE with a valid KEY_BLOCK_SIZE |
|||
--echo # ALTER with each ROW_FORMAT |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) KEY_BLOCK_SIZE=16; |
|||
SHOW WARNINGS; |
|||
SHOW CREATE TABLE t1; |
|||
ALTER TABLE t1 ADD COLUMN f1 INT; |
|||
SHOW WARNINGS; |
|||
SHOW CREATE TABLE t1; |
|||
ALTER TABLE t1 ROW_FORMAT=COMPACT; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 ROW_FORMAT=REDUNDANT; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 ROW_FORMAT=DYNAMIC; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 ROW_FORMAT=COMPRESSED; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=0; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
ALTER TABLE t1 ROW_FORMAT=COMPACT; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
|
|||
--echo # Test 14) StrictMode=OFF, CREATE with an invalid KEY_BLOCK_SIZE, it defaults to 8 |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) KEY_BLOCK_SIZE=15; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
|
|||
--echo # Test 15) StrictMode=OFF, Make sure ROW_FORMAT= COMPRESSED & DYNAMIC and a |
|||
--echo valid KEY_BLOCK_SIZE are remembered but not used when ROW_FORMAT |
|||
--echo is reverted to Antelope and then used again when ROW_FORMAT=Barracuda. |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
SET GLOBAL innodb_file_format=Antelope; |
|||
ALTER TABLE t1 ADD COLUMN f1 INT; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
SET GLOBAL innodb_file_format=Barracuda; |
|||
ALTER TABLE t1 ADD COLUMN f2 INT; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DYNAMIC; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
SET GLOBAL innodb_file_format=Antelope; |
|||
ALTER TABLE t1 ADD COLUMN f1 INT; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
SET GLOBAL innodb_file_format=Barracuda; |
|||
ALTER TABLE t1 ADD COLUMN f2 INT; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
|
|||
--echo # Test 16) StrictMode=OFF, Make sure ROW_FORMAT= COMPRESSED & DYNAMIC and a |
|||
--echo valid KEY_BLOCK_SIZE are remembered but not used when innodb_file_per_table=OFF |
|||
--echo and then used again when innodb_file_per_table=ON. |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=2; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
SET GLOBAL innodb_file_per_table=OFF; |
|||
ALTER TABLE t1 ADD COLUMN f1 INT; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
SET GLOBAL innodb_file_per_table=ON; |
|||
ALTER TABLE t1 ADD COLUMN f2 INT; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
DROP TABLE IF EXISTS t1; |
|||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DYNAMIC; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
SET GLOBAL innodb_file_per_table=OFF; |
|||
ALTER TABLE t1 ADD COLUMN f1 INT; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
SET GLOBAL innodb_file_per_table=ON; |
|||
ALTER TABLE t1 ADD COLUMN f2 INT; |
|||
SHOW WARNINGS; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1'; |
|||
|
|||
|
|||
--echo # Cleanup |
|||
DROP TABLE IF EXISTS t1; |
|||
|
|||
--disable_query_log |
|||
EVAL SET GLOBAL innodb_file_format=$innodb_file_format_orig; |
|||
EVAL SET GLOBAL innodb_file_format_check=$innodb_file_format_check_orig; |
|||
EVAL SET GLOBAL innodb_file_per_table=$innodb_file_per_table_orig; |
|||
EVAL SET SESSION innodb_strict_mode=$innodb_strict_mode_orig; |
|||
--enable_query_log |
|||
|
|||
@ -0,0 +1,48 @@ |
|||
# |
|||
# http://bugs.mysql.com/53046 |
|||
# dict_update_statistics_low can still be run concurrently on same table |
|||
# |
|||
# This is a symbolic test, it would not fail if the bug is present. |
|||
# Rather those SQL commands have been used during manual testing under |
|||
# UNIV_DEBUG & UNIV_SYNC_DEBUG to test all changed codepaths for locking |
|||
# correctness. |
|||
# |
|||
|
|||
-- source include/have_innodb_plugin.inc |
|||
|
|||
CREATE TABLE bug53046_1 (c1 INT PRIMARY KEY) ENGINE=INNODB; |
|||
CREATE TABLE bug53046_2 (c2 INT PRIMARY KEY, |
|||
FOREIGN KEY (c2) REFERENCES bug53046_1(c1) |
|||
ON UPDATE CASCADE ON DELETE CASCADE) ENGINE=INNODB; |
|||
|
|||
INSERT INTO bug53046_1 VALUES (1); |
|||
let $i = 5; |
|||
while ($i) { |
|||
eval INSERT INTO bug53046_1 SELECT c1+(SELECT MAX(c1) FROM bug53046_1) |
|||
FROM bug53046_1; |
|||
dec $i; |
|||
} |
|||
|
|||
INSERT INTO bug53046_2 VALUES (1), (2); |
|||
|
|||
# CREATE TABLE innodb_table_monitor (a int) ENGINE=INNODB; |
|||
# wait more than 1 minute and observe the mysqld output |
|||
# DROP TABLE innodb_table_monitor; |
|||
|
|||
ANALYZE TABLE bug53046_1; |
|||
|
|||
# this prints create time and other nondeterministic data |
|||
-- disable_result_log |
|||
SHOW TABLE STATUS LIKE 'bug53046_1'; |
|||
-- enable_result_log |
|||
|
|||
UPDATE bug53046_1 SET c1 = c1 - 1; |
|||
|
|||
DELETE FROM bug53046_1; |
|||
|
|||
INSERT INTO bug53046_1 VALUES (1); |
|||
INSERT INTO bug53046_2 VALUES (1); |
|||
TRUNCATE TABLE bug53046_2; |
|||
|
|||
DROP TABLE bug53046_2; |
|||
DROP TABLE bug53046_1; |
|||
@ -1,97 +0,0 @@ |
|||
# Test Bug #54679 alter table causes compressed row_format to revert to compact |
|||
|
|||
--source include/have_innodb_plugin.inc |
|||
|
|||
let $file_format=`select @@innodb_file_format`; |
|||
let $file_format_check=`select @@innodb_file_format_check`; |
|||
let $file_per_table=`select @@innodb_file_per_table`; |
|||
SET GLOBAL innodb_file_format='Barracuda'; |
|||
SET GLOBAL innodb_file_per_table=ON; |
|||
SET innodb_strict_mode=ON; |
|||
|
|||
CREATE TABLE bug54679 (a INT) ENGINE=InnoDB ROW_FORMAT=COMPRESSED; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables |
|||
WHERE TABLE_NAME='bug54679'; |
|||
|
|||
# The ROW_FORMAT of the table should be preserved when it is not specified |
|||
# in ALTER TABLE. |
|||
ALTER TABLE bug54679 ADD COLUMN b INT; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables |
|||
WHERE TABLE_NAME='bug54679'; |
|||
|
|||
DROP TABLE bug54679; |
|||
|
|||
# Check that the ROW_FORMAT conversion to/from COMPRESSED works. |
|||
|
|||
CREATE TABLE bug54679 (a INT) ENGINE=InnoDB; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables |
|||
WHERE TABLE_NAME='bug54679'; |
|||
|
|||
# KEY_BLOCK_SIZE implies COMPRESSED. |
|||
ALTER TABLE bug54679 KEY_BLOCK_SIZE=1; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables |
|||
WHERE TABLE_NAME='bug54679'; |
|||
|
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE bug54679 ROW_FORMAT=REDUNDANT; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
SHOW WARNINGS; |
|||
DROP TABLE bug54679; |
|||
CREATE TABLE bug54679 (a INT) ENGINE=InnoDB ROW_FORMAT=REDUNDANT; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables |
|||
WHERE TABLE_NAME='bug54679'; |
|||
|
|||
ALTER TABLE bug54679 KEY_BLOCK_SIZE=2; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables |
|||
WHERE TABLE_NAME='bug54679'; |
|||
|
|||
# This prevents other than REDUNDANT or COMPACT ROW_FORMAT for new tables. |
|||
SET GLOBAL innodb_file_format=Antelope; |
|||
|
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE bug54679 KEY_BLOCK_SIZE=4; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
SHOW WARNINGS; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE bug54679 ROW_FORMAT=DYNAMIC; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
SHOW WARNINGS; |
|||
DROP TABLE bug54679; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
CREATE TABLE bug54679 (a INT) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
SHOW WARNINGS; |
|||
CREATE TABLE bug54679 (a INT) ENGINE=InnoDB; |
|||
|
|||
SET GLOBAL innodb_file_format=Barracuda; |
|||
# This will prevent ROW_FORMAT=COMPRESSED, because the system tablespace |
|||
# cannot be compressed. |
|||
SET GLOBAL innodb_file_per_table=OFF; |
|||
|
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE bug54679 KEY_BLOCK_SIZE=4; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
SHOW WARNINGS; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE bug54679 ROW_FORMAT=DYNAMIC; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
SHOW WARNINGS; |
|||
DROP TABLE bug54679; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
--error ER_CANT_CREATE_TABLE |
|||
CREATE TABLE bug54679 (a INT) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; |
|||
--replace_regex /'[^']*test\.#sql-[0-9a-f_]*'/'#sql-temporary'/ |
|||
SHOW WARNINGS; |
|||
SET GLOBAL innodb_file_per_table=ON; |
|||
CREATE TABLE bug54679 (a INT) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; |
|||
DROP TABLE bug54679; |
|||
|
|||
EVAL SET GLOBAL innodb_file_format=$file_format; |
|||
EVAL SET GLOBAL innodb_file_format_check=$file_format_check; |
|||
EVAL SET GLOBAL innodb_file_per_table=$file_per_table; |
|||
@ -1,216 +0,0 @@ |
|||
# |
|||
# Bug#56632: ALTER TABLE implicitly changes ROW_FORMAT to COMPRESSED |
|||
# http://bugs.mysql.com/56632 |
|||
# |
|||
# Innodb automatically uses compressed mode when the KEY_BLOCK_SIZE |
|||
# parameter is used, except if the ROW_FORMAT is also specified, in |
|||
# which case the KEY_BLOCK_SIZE is ignored and a warning is shown. |
|||
# But Innodb was getting confused when neither of those parameters |
|||
# was used on the ALTER statement after they were both used on the |
|||
# CREATE. |
|||
# |
|||
# This will test the results of all 4 combinations of these two |
|||
# parameters of the CREATE and ALTER. |
|||
# |
|||
# Tests 1-5 use INNODB_STRICT_MODE=1 which returns an error |
|||
# if there is anything wrong with the statement. |
|||
# |
|||
# 1) CREATE with ROW_FORMAT=COMPACT & KEY_BLOCK_SIZE=1, ALTER with neither. |
|||
# Result; CREATE; fails with error ER_CANT_CREATE_TABLE |
|||
# 2) CREATE with ROW_FORMAT=COMPACT, ALTER with KEY_BLOCK_SIZE=1 |
|||
# Result; CREATE succeeds, |
|||
# ALTER quietly converts ROW_FORMAT to compressed. |
|||
# 3) CREATE with KEY_BLOCK_SIZE=1, ALTER with ROW_FORMAT=COMPACT |
|||
# Result; CREATE quietly converts ROW_FORMAT to compressed, |
|||
# ALTER fails with error ER_CANT_CREATE_TABLE. |
|||
# 4) CREATE with neither, ALTER with ROW_FORMAT=COMPACT & KEY_BLOCK_SIZE=1 |
|||
# Result; CREATE succeeds, |
|||
# ALTER; fails with error ER_CANT_CREATE_TABLE |
|||
# 5) CREATE with KEY_BLOCK_SIZE=3 (invalid), ALTER with neither. |
|||
# Result; CREATE; fails with error ER_CANT_CREATE_TABLE |
|||
# |
|||
# Tests 6-11 use INNODB_STRICT_MODE=0 which automatically makes |
|||
# adjustments if the prameters are incompatible. |
|||
# |
|||
# 6) CREATE with ROW_FORMAT=COMPACT & KEY_BLOCK_SIZE=1, ALTER with neither. |
|||
# Result; CREATE succeeds, warns that KEY_BLOCK_SIZE is ignored. |
|||
# ALTER succeeds, no warnings. |
|||
# 7) CREATE with ROW_FORMAT=COMPACT, ALTER with KEY_BLOCK_SIZE=1 |
|||
# Result; CREATE succeeds, |
|||
# ALTER quietly converts ROW_FORMAT to compressed. |
|||
# 8) CREATE with KEY_BLOCK_SIZE=1, ALTER with ROW_FORMAT=COMPACT |
|||
# Result; CREATE quietly converts ROW_FORMAT to compressed, |
|||
# ALTER succeeds, warns that KEY_BLOCK_SIZE is ignored. |
|||
# 9) CREATE with neither, ALTER with ROW_FORMAT=COMPACT & KEY_BLOCK_SIZE=1 |
|||
# Result; CREATE succeeds, |
|||
# ALTER succeeds, warns that KEY_BLOCK_SIZE is ignored. |
|||
# 10) CREATE with KEY_BLOCK_SIZE=3 (invalid), ALTER with neither. |
|||
# Result; CREATE succeeds, warns that KEY_BLOCK_SIZE=3 is ignored. |
|||
# ALTER succeeds, warns that KEY_BLOCK_SIZE=3 is ignored. |
|||
# 11) CREATE with KEY_BLOCK_SIZE=3 (invalid), ALTER with ROW_FORMAT=COMPACT. |
|||
# Result; CREATE succeeds, warns that KEY_BLOCK_SIZE=3 is ignored. |
|||
# ALTER succeeds, warns that KEY_BLOCK_SIZE=3 is ignored. |
|||
# 12) CREATE with KEY_BLOCK_SIZE=3 (invalid), ALTER with KEY_BLOCK_SIZE=1. |
|||
# Result; CREATE succeeds, warns that KEY_BLOCK_SIZE=3 is ignored. |
|||
# ALTER succeeds, quietly converts ROW_FORMAT to compressed. |
|||
|
|||
-- source include/have_innodb_plugin.inc |
|||
|
|||
SET storage_engine=InnoDB; |
|||
|
|||
--disable_query_log |
|||
# These values can change during the test |
|||
LET $innodb_file_format_orig=`select @@innodb_file_format`; |
|||
LET $innodb_file_format_check_orig=`select @@innodb_file_format_check`; |
|||
LET $innodb_file_per_table_orig=`select @@innodb_file_per_table`; |
|||
LET $innodb_strict_mode_orig=`select @@session.innodb_strict_mode`; |
|||
--enable_query_log |
|||
|
|||
SET GLOBAL innodb_file_format=`Barracuda`; |
|||
SET GLOBAL innodb_file_per_table=ON; |
|||
|
|||
# Innodb strict mode will cause an error on the CREATE or ALTER when; |
|||
# 1. both ROW_FORMAT=COMPACT and KEY_BLOCK_SIZE=1, |
|||
# 2. KEY_BLOCK_SIZE is not a valid number (0,1,2,4,8,16). |
|||
# With innodb_strict_mode = OFF, These errors are corrected |
|||
# and just a warning is returned. |
|||
SET SESSION innodb_strict_mode = ON; |
|||
|
|||
--echo # Test 1) CREATE with ROW_FORMAT & KEY_BLOCK_SIZE, ALTER with neither |
|||
DROP TABLE IF EXISTS bug56632; |
|||
--error ER_CANT_CREATE_TABLE |
|||
CREATE TABLE bug56632 ( i INT ) ROW_FORMAT=COMPACT KEY_BLOCK_SIZE=1; |
|||
SHOW WARNINGS; |
|||
|
|||
--echo # Test 2) CREATE with ROW_FORMAT, ALTER with KEY_BLOCK_SIZE |
|||
DROP TABLE IF EXISTS bug56632; |
|||
CREATE TABLE bug56632 ( i INT ) ROW_FORMAT=COMPACT; |
|||
SHOW WARNINGS; |
|||
SHOW CREATE TABLE bug56632; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; |
|||
ALTER TABLE bug56632 KEY_BLOCK_SIZE=1; |
|||
SHOW WARNINGS; |
|||
SHOW CREATE TABLE bug56632; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; |
|||
|
|||
--echo # 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; |
|||
SHOW CREATE TABLE bug56632; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; |
|||
--disable_result_log |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE bug56632 ROW_FORMAT=COMPACT; |
|||
--enable_result_log |
|||
SHOW CREATE TABLE bug56632; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; |
|||
|
|||
--echo # Test 4) CREATE with neither, ALTER with ROW_FORMAT & KEY_BLOCK_SIZE |
|||
DROP TABLE IF EXISTS bug56632; |
|||
CREATE TABLE bug56632 ( i INT ); |
|||
SHOW WARNINGS; |
|||
SHOW CREATE TABLE bug56632; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; |
|||
--disable_result_log |
|||
--error ER_CANT_CREATE_TABLE |
|||
ALTER TABLE bug56632 ROW_FORMAT=COMPACT KEY_BLOCK_SIZE=1; |
|||
--enable_result_log |
|||
SHOW CREATE TABLE bug56632; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; |
|||
|
|||
--echo # Test 5) CREATE with KEY_BLOCK_SIZE=3 (invalid). |
|||
DROP TABLE IF EXISTS bug56632; |
|||
--error ER_CANT_CREATE_TABLE |
|||
CREATE TABLE bug56632 ( i INT ) KEY_BLOCK_SIZE=3; |
|||
SHOW WARNINGS; |
|||
|
|||
SET SESSION innodb_strict_mode = OFF; |
|||
|
|||
--echo # Test 6) CREATE with ROW_FORMAT & KEY_BLOCK_SIZE, ALTER with neither |
|||
DROP TABLE IF EXISTS bug56632; |
|||
CREATE TABLE bug56632 ( i INT ) ROW_FORMAT=COMPACT KEY_BLOCK_SIZE=1; |
|||
SHOW WARNINGS; |
|||
SHOW CREATE TABLE bug56632; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; |
|||
ALTER TABLE bug56632 ADD COLUMN f1 INT; |
|||
SHOW WARNINGS; |
|||
SHOW CREATE TABLE bug56632; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; |
|||
|
|||
--echo # 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; |
|||
SHOW CREATE TABLE bug56632; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; |
|||
ALTER TABLE bug56632 KEY_BLOCK_SIZE=1; |
|||
SHOW WARNINGS; |
|||
SHOW CREATE TABLE bug56632; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; |
|||
|
|||
--echo # 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; |
|||
SHOW CREATE TABLE bug56632; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; |
|||
ALTER TABLE bug56632 ROW_FORMAT=COMPACT; |
|||
SHOW WARNINGS; |
|||
SHOW CREATE TABLE bug56632; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; |
|||
|
|||
--echo # Test 9) CREATE with neither, ALTER with ROW_FORMAT & KEY_BLOCK_SIZE |
|||
DROP TABLE IF EXISTS bug56632; |
|||
CREATE TABLE bug56632 ( i INT ); |
|||
SHOW WARNINGS; |
|||
SHOW CREATE TABLE bug56632; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; |
|||
ALTER TABLE bug56632 ROW_FORMAT=COMPACT KEY_BLOCK_SIZE=1; |
|||
SHOW WARNINGS; |
|||
SHOW CREATE TABLE bug56632; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; |
|||
|
|||
--echo # 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; |
|||
SHOW WARNINGS; |
|||
SHOW CREATE TABLE bug56632; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; |
|||
ALTER TABLE bug56632 ADD COLUMN f1 INT; |
|||
SHOW WARNINGS; |
|||
SHOW CREATE TABLE bug56632; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; |
|||
|
|||
--echo # 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; |
|||
SHOW WARNINGS; |
|||
SHOW CREATE TABLE bug56632; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; |
|||
ALTER TABLE bug56632 ROW_FORMAT=COMPACT; |
|||
SHOW WARNINGS; |
|||
SHOW CREATE TABLE bug56632; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; |
|||
|
|||
--echo # 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; |
|||
SHOW WARNINGS; |
|||
SHOW CREATE TABLE bug56632; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; |
|||
ALTER TABLE bug56632 KEY_BLOCK_SIZE=1; |
|||
SHOW WARNINGS; |
|||
SHOW CREATE TABLE bug56632; |
|||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 'bug56632'; |
|||
|
|||
--echo # Cleanup |
|||
DROP TABLE IF EXISTS bug56632; |
|||
|
|||
--disable_query_log |
|||
EVAL SET GLOBAL innodb_file_per_table=$innodb_file_per_table_orig; |
|||
EVAL SET GLOBAL innodb_file_format=$innodb_file_format_orig; |
|||
EVAL SET GLOBAL innodb_file_format_check=$innodb_file_format_check_orig; |
|||
EVAL SET SESSION innodb_strict_mode=$innodb_strict_mode_orig; |
|||
--enable_query_log |
|||
|
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue