1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
#***********************************************************
# WL#7703:
# Check the max key length 3072 when innodb_large_prefix=ON
# Check boundary value of max key length 3073
# When innodb_file_format=Antelope, compress DDLs fails
# Check file_format_max becomes Barracuda on DDL operation
# on compression table.
#***********************************************************
-- source include/have_innodb.inc
-- source include/have_innodb_16k.inc
# Check some default settings
SELECT @@innodb_strict_mode;
SELECT @@innodb_file_per_table;
SET @file_format = @@GLOBAL.innodb_file_format;
SET GLOBAL innodb_large_prefix=ON;
SET SQL_MODE=strict_all_tables;
CREATE TABLE tab0 (c1 VARCHAR(65530), KEY(c1(3073))) ENGINE=InnoDB ROW_FORMAT=COMPRESSED;
SHOW CREATE TABLE tab0;
DROP TABLE tab0;
--error ER_TOO_BIG_ROWSIZE
CREATE TABLE tab0 (c1 VARCHAR(65530), KEY(c1(3073))) ENGINE=InnoDB KEY_BLOCK_SIZE=2;
SET GLOBAL innodb_file_format=Antelope;
# WL#8307 Make ROW_FORMAT=DYNAMIC the default
# will allow ROW_FORMAT=DYNAMIC even if innodb_file_format=Antelope.
CREATE TABLE tab0(c1 INT,c2 LONGBLOB ) ENGINE=InnoDB ROW_FORMAT=Dynamic;
DROP TABLE tab0;
SET GLOBAL innodb_file_format=Default;
SELECT @@innodb_file_format;
SET GLOBAL innodb_strict_mode=OFF;
# Check with default value
SET GLOBAL innodb_strict_mode=Default;
SELECT @@innodb_strict_mode;
SET GLOBAL innodb_large_prefix=OFF;
SELECT @@innodb_large_prefix;
SET GLOBAL innodb_large_prefix=Default;
# Check with default value
SELECT @@innodb_large_prefix;
SET GLOBAL innodb_file_format_max=Default;
# Check with default value
SELECT @@innodb_file_format_max;
CREATE TABLE tab1(c1 int ) ENGINE=InnoDB ROW_FORMAT=COMPRESSED;
# Check file format changed to Barracuda, on DDL operation
SELECT @@innodb_file_format_max;
SET GLOBAL innodb_file_format_max=Default;
# Restore to the value that we explicitly used at startup.
SET GLOBAL innodb_large_prefix=off;
SET GLOBAL innodb_file_format = @file_format;
DROP TABLE tab1;
|