summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Kosov <claprix@yandex.ru>2019-08-28 13:52:51 +0300
committerEugene Kosov <claprix@yandex.ru>2019-09-15 22:10:52 +0300
commit140679cb8dde1e6271cb05f3f64d2b2fc087cb99 (patch)
tree9c30fef43b2551da96f6631e51053471b0f9ff16
parent2a98d0b5ca2324405d65415423258cc088fa2f8a (diff)
downloadmariadb-git-bb-10.2-MDEV-20194-CHECK-row-size.tar.gz
MDEV-20194 Warnings inconsistently issued upon CHECK on table from older versionsbb-10.2-MDEV-20194-CHECK-row-size
This patch changes conditions for HA_ERR_TO_BIG_ROW and users will complain! But I hope now we really have a correct row size check. This patch will be hard to merge because of changed tests. Ideally, all row size checks code should live now in innodb.max_record_size or innodb.max_record_size_compressed. Now check for too big row size performed for every index on CREATE TABLE, and for added index on ALTER TABLE. This is how the topic issue was fixed. Error message for COMPRESSED tables might contain an incorrect maximum possible row size if overflowed index was not clustered. Fixing it will require some more effort. create_table_info_t::row_size_is_acceptable(): high level too big row size check interface. record_size_info_t dict_index_t::record_size_info(): this is a low level interface to perform too big row checks. Also can be used to get maximum potential row size. get_max_record_size_leaf_page() get_max_record_size_non_leaf_page(): these are uniform way to get maximum allows row size for a given page size and index row format. One function instead of 5 slightly different computations. format_too_big_row_error_message(): one function for formatting too big row error messages instead of several.
-rw-r--r--mysql-test/suite/innodb/r/file_format_defaults.result4
-rw-r--r--mysql-test/suite/innodb/r/innodb-16k.result18
-rw-r--r--mysql-test/suite/innodb/r/innodb-32k-crash.result6
-rw-r--r--mysql-test/suite/innodb/r/innodb-64k-crash.result4
-rw-r--r--mysql-test/suite/innodb/r/innodb-64k.result86
-rw-r--r--mysql-test/suite/innodb/r/innodb.result2
-rw-r--r--mysql-test/suite/innodb/r/innodb_max_recordsize_32k.result26
-rw-r--r--mysql-test/suite/innodb/r/innodb_max_recordsize_64k.result72
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,16k,compact.rdiff (renamed from mysql-test/suite/innodb/r/max_record_size,16k,compact,innodb.rdiff)20
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,16k,dynamic.rdiff (renamed from mysql-test/suite/innodb/r/max_record_size,16k,dynamic,innodb.rdiff)18
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,16k,redundant.rdiff (renamed from mysql-test/suite/innodb/r/max_record_size,16k,innodb,redundant.rdiff)20
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,32k,compact.rdiff (renamed from mysql-test/suite/innodb/r/max_record_size,32k,innodb,redundant.rdiff)20
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,32k,dynamic.rdiff (renamed from mysql-test/suite/innodb/r/max_record_size,32k,dynamic,innodb.rdiff)18
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,32k,redundant.rdiff (renamed from mysql-test/suite/innodb/r/max_record_size,64k,innodb,redundant.rdiff)20
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,4k,compact.rdiff (renamed from mysql-test/suite/innodb/r/max_record_size,4k,compact,innodb.rdiff)22
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,4k,dynamic.rdiff (renamed from mysql-test/suite/innodb/r/max_record_size,4k,dynamic,innodb.rdiff)20
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,4k,redundant.rdiff (renamed from mysql-test/suite/innodb/r/max_record_size,4k,innodb,redundant.rdiff)22
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,64k,compact,innodb.rdiff203
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,64k,compact.rdiff122
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,64k,dynamic.rdiff (renamed from mysql-test/suite/innodb/r/max_record_size,64k,dynamic,innodb.rdiff)166
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,64k,redundant.rdiff (renamed from mysql-test/suite/innodb/r/max_record_size,32k,compact,innodb.rdiff)20
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,8k,compact,innodb.rdiff35
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,8k,compact.rdiff35
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,8k,dynamic.rdiff (renamed from mysql-test/suite/innodb/r/max_record_size,8k,dynamic,innodb.rdiff)18
-rw-r--r--mysql-test/suite/innodb/r/max_record_size.result10
-rw-r--r--mysql-test/suite/innodb/r/max_record_size_compressed,16k.rdiff128
-rw-r--r--mysql-test/suite/innodb/r/max_record_size_compressed,4k.rdiff86
-rw-r--r--mysql-test/suite/innodb/r/max_record_size_compressed.result90
-rw-r--r--mysql-test/suite/innodb/r/strict_mode.result6
-rw-r--r--mysql-test/suite/innodb/r/undo_log.result4
-rw-r--r--mysql-test/suite/innodb/t/file_format_defaults.test2
-rw-r--r--mysql-test/suite/innodb/t/innodb-16k.test11
-rw-r--r--mysql-test/suite/innodb/t/innodb-32k-crash.test2
-rw-r--r--mysql-test/suite/innodb/t/innodb-64k-crash.test2
-rw-r--r--mysql-test/suite/innodb/t/innodb-64k.test85
-rw-r--r--mysql-test/suite/innodb/t/innodb.test3
-rw-r--r--mysql-test/suite/innodb/t/innodb_max_recordsize_32k.test2
-rw-r--r--mysql-test/suite/innodb/t/innodb_max_recordsize_64k.test53
-rw-r--r--mysql-test/suite/innodb/t/max_record_size.test175
-rw-r--r--mysql-test/suite/innodb/t/max_record_size_compressed.test324
-rw-r--r--mysql-test/suite/innodb/t/strict_mode.test2
-rw-r--r--mysql-test/suite/innodb/t/undo_log.test2
-rw-r--r--mysql-test/suite/innodb_zip/r/bug53591.result4
-rw-r--r--mysql-test/suite/innodb_zip/r/index_large_prefix.result48
-rw-r--r--mysql-test/suite/innodb_zip/r/page_size,16k.rdiff324
-rw-r--r--mysql-test/suite/innodb_zip/r/page_size,4k.rdiff389
-rw-r--r--mysql-test/suite/innodb_zip/r/page_size,8k.rdiff425
-rw-r--r--mysql-test/suite/innodb_zip/r/page_size.result300
-rw-r--r--mysql-test/suite/innodb_zip/r/prefix_index_liftedlimit.result6
-rw-r--r--mysql-test/suite/innodb_zip/t/bug36169.test2
-rw-r--r--mysql-test/suite/innodb_zip/t/bug53591.test2
-rw-r--r--mysql-test/suite/innodb_zip/t/index_large_prefix.test14
-rw-r--r--mysql-test/suite/innodb_zip/t/page_size.test174
-rw-r--r--mysql-test/suite/innodb_zip/t/prefix_index_liftedlimit.test2
-rw-r--r--storage/innobase/dict/dict0boot.cc15
-rw-r--r--storage/innobase/dict/dict0crea.cc3
-rw-r--r--storage/innobase/dict/dict0dict.cc213
-rw-r--r--storage/innobase/dict/dict0load.cc2
-rw-r--r--storage/innobase/dict/dict0mem.cc23
-rw-r--r--storage/innobase/handler/ha_innodb.cc164
-rw-r--r--storage/innobase/handler/ha_innodb.h11
-rw-r--r--storage/innobase/handler/handler0alter.cc46
-rw-r--r--storage/innobase/include/dict0dict.h14
-rw-r--r--storage/innobase/include/dict0mem.h68
-rw-r--r--storage/innobase/include/page0zip.h13
-rw-r--r--storage/innobase/include/page0zip.ic42
-rw-r--r--storage/innobase/page/page0zip.cc14
-rw-r--r--storage/innobase/row/row0mysql.cc3
68 files changed, 1811 insertions, 2494 deletions
diff --git a/mysql-test/suite/innodb/r/file_format_defaults.result b/mysql-test/suite/innodb/r/file_format_defaults.result
index 5ea34ceb7b5..8a0d2a8c75f 100644
--- a/mysql-test/suite/innodb/r/file_format_defaults.result
+++ b/mysql-test/suite/innodb/r/file_format_defaults.result
@@ -1,4 +1,4 @@
-call mtr.add_suppression("InnoDB: Cannot add field `c1` in table `test`\\.`tab0`");
+call mtr.add_suppression('After adding field .* which is greater than maximum allowed size');
SELECT @@innodb_strict_mode;
@@innodb_strict_mode
1
@@ -21,7 +21,7 @@ tab0 CREATE TABLE `tab0` (
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED
DROP TABLE tab0;
CREATE TABLE tab0 (c1 VARCHAR(65530), KEY(c1(3073))) ENGINE=InnoDB KEY_BLOCK_SIZE=2;
-ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ERROR 42000: Row size is greater than 1924. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
SET GLOBAL innodb_file_format=Antelope;
Warnings:
Warning 131 Using innodb_file_format is deprecated and the parameter may be removed in future releases. See https://mariadb.com/kb/en/library/xtradbinnodb-file-format/
diff --git a/mysql-test/suite/innodb/r/innodb-16k.result b/mysql-test/suite/innodb/r/innodb-16k.result
index e21381a8c68..3c74e2b7c75 100644
--- a/mysql-test/suite/innodb/r/innodb-16k.result
+++ b/mysql-test/suite/innodb/r/innodb-16k.result
@@ -1,4 +1,4 @@
-call mtr.add_suppression("InnoDB: Cannot add field .* in table .* because after adding it, the row size is .* which is greater than maximum allowed size (.*) for a record on index leaf page.");
+call mtr.add_suppression('After adding field .* which is greater than maximum allowed size');
SET GLOBAL innodb_large_prefix = OFF;
Warnings:
Warning 131 Using innodb_large_prefix is deprecated and the parameter may be removed in future releases. See https://mariadb.com/kb/en/library/xtradbinnodb-file-format/
@@ -8,8 +8,6 @@ WHERE LOWER(variable_name) = 'innodb_page_size';
variable_value
16384
# Test 4) The maximum row size is dependent upon the page size.
-# Redundant: 8123, Compact: 8126.
-# Compressed: 8126, Dynamic: 8126.
# Each row format has its own amount of overhead that
# varies depending on number of fields and other overhead.
SET SESSION innodb_strict_mode = ON;
@@ -21,7 +19,7 @@ c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(157)
+c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(160)
) ROW_FORMAT=compressed;
DROP TABLE t1;
CREATE TABLE t1 (
@@ -32,9 +30,9 @@ c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(160)
+c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(161)
) ROW_FORMAT=compressed;
-ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ERROR 42000: Row size is greater than 7986. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
CREATE TABLE t1 (a varchar(255) character set utf8,
b varchar(255) character set utf8,
c varchar(255) character set utf8,
@@ -484,20 +482,20 @@ CREATE TABLE t1(
c text NOT NULL, d text NOT NULL,
PRIMARY KEY (c(767),d(767)))
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
-ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ERROR 42000: Row size is greater than 892. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
CREATE TABLE t1(
c text NOT NULL, d text NOT NULL,
PRIMARY KEY (c(767),d(767)))
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=2 CHARSET=ASCII;
-ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ERROR 42000: Row size is greater than 1916. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
CREATE TABLE t1(
c text NOT NULL, d text NOT NULL,
PRIMARY KEY (c(767),d(767)))
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4 CHARSET=ASCII;
drop table t1;
-CREATE TABLE t1(c text, PRIMARY KEY (c(440)))
+CREATE TABLE t1(c text, PRIMARY KEY (c(445)))
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
-ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ERROR 42000: Row size is greater than 896. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
CREATE TABLE t1(c text, PRIMARY KEY (c(438)))
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
INSERT INTO t1 VALUES(REPEAT('A',512)),(REPEAT('B',512));
diff --git a/mysql-test/suite/innodb/r/innodb-32k-crash.result b/mysql-test/suite/innodb/r/innodb-32k-crash.result
index 25b19310481..7f374aa78d4 100644
--- a/mysql-test/suite/innodb/r/innodb-32k-crash.result
+++ b/mysql-test/suite/innodb/r/innodb-32k-crash.result
@@ -1,4 +1,4 @@
-call mtr.add_suppression("Cannot add field `u` in table `test`.`t2` because after adding it, the row size is");
+call mtr.add_suppression('After adding field .* which is greater than maximum allowed size');
CREATE TABLE t1(a blob,b blob,c blob,d blob,e blob,f blob,g blob,
h blob,i blob,j blob,k blob,l blob,m blob,n blob,
o blob,p blob,q blob,r blob,s blob,t blob,u blob,
@@ -19,7 +19,7 @@ oa blob,pa blob,qa blob,ra blob,sa blob,ta blob,ua blob,
va blob, wa blob, xa blob, ya blob, za blob)
ENGINE=InnoDB ROW_FORMAT=compact;
Warnings:
-Warning 139 Row size too large (> 16318). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+Warning 139 Row size is greater than 16317. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
SET innodb_strict_mode=ON;
SET @a = repeat('a', 767);
SET @b = repeat('b', 767);
@@ -136,8 +136,6 @@ v=@h,w=@h,x=@b,y=@h,z=@h,
aa=@h,ba=@h,ca=@h,da=@h,ea=@h,fa=@h,ga=@h,ha=@h,ia=@h,ja=@h,
ka=@h,la=@h,ma=@h,na=@h,oa=@h,pa=@h,qa=@h,ra=@h,sa=@h,ta=@b,ua=@h,
va=@h,wa=@h,xa=@h,ya=@h,za=@h;
-Warnings:
-Warning 139 Row size too large (> 16318). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
BEGIN;
UPDATE t1 SET a=@g,b=@g,c=@g,d=@g,e=@g;
UPDATE t1 SET f=@g,g=@g,h=@g,i=@g,j=@g;
diff --git a/mysql-test/suite/innodb/r/innodb-64k-crash.result b/mysql-test/suite/innodb/r/innodb-64k-crash.result
index 7ed271a14dd..ef14effc3d3 100644
--- a/mysql-test/suite/innodb/r/innodb-64k-crash.result
+++ b/mysql-test/suite/innodb/r/innodb-64k-crash.result
@@ -1,4 +1,4 @@
-call mtr.add_suppression("Cannot add field `pa` in table `test`.`t2` because after adding it, the row size is");
+call mtr.add_suppression('After adding field .* which is greater than maximum allowed size');
CREATE TABLE t1(a blob,b blob,c blob,d blob,e blob,f blob,g blob,
h blob,i blob,j blob,k blob,l blob,m blob,n blob,
o blob,p blob,q blob,r blob,s blob,t blob,u blob,
@@ -35,7 +35,7 @@ oc blob, pc blob, qc blob, rc blob, sc blob,tc blob,uc blob,
vc blob, wc blob, xc blob, yc blob, zc blob
) ENGINE=InnoDB ROW_FORMAT=compact;
Warnings:
-Warning 139 Row size too large (> 32702). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+Warning 139 Row size is greater than 16383. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
SET innodb_strict_mode=ON;
SET @a = repeat('a', 767);
SET @b = repeat('b', 767);
diff --git a/mysql-test/suite/innodb/r/innodb-64k.result b/mysql-test/suite/innodb/r/innodb-64k.result
index 379235c510c..853d30d8527 100644
--- a/mysql-test/suite/innodb/r/innodb-64k.result
+++ b/mysql-test/suite/innodb/r/innodb-64k.result
@@ -1,4 +1,4 @@
-call mtr.add_suppression('InnoDB: Cannot add field.*because after adding it, the row size is');
+call mtr.add_suppression('InnoDB: After adding field .* which is greater than maximum allowed size');
# Test 1) Show the page size from Information Schema
SELECT variable_value FROM information_schema.global_status
WHERE LOWER(variable_name) = 'innodb_page_size';
@@ -21,10 +21,10 @@ col48 CHAR(255),col49 CHAR(255),col50 CHAR(255),col51 CHAR(255),col52 CHAR(255)
col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255), col59 CHAR(255),
col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255), col65 CHAR(255))
ENGINE = innodb ROW_FORMAT=REDUNDANT;
-ERROR 42000: Row size too large (> 16382). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ERROR 42000: Row size is greater than 16382. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
show warnings;
Level Code Message
-Error 1118 Row size too large (> 16382). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+Error 1118 Row size is greater than 16382. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
Warning 1030 Got error 139 "Too big row" from storage engine InnoDB
CREATE TABLE t1 (
c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
@@ -43,24 +43,7 @@ c61 char(200), c62 char(200), c63 char(200), c64 char(200), c65 char(200),
c66 char(200), c67 char(200), c68 char(200), c69 char(200), c70 char(200),
c71 char(200), c72 char(200), c73 char(200), c74 char(200), c75 char(200),
c76 char(200), c77 char(200), c78 char(200), c79 char(200), c80 char(200),
-c101 char(200), c102 char(200), c103 char(200), c104 char(200), c105 char(200),
-c106 char(200), c107 char(200), c108 char(200), c109 char(200), c110 char(200),
-c111 char(200), c112 char(200), c113 char(200), c114 char(200), c115 char(200),
-c116 char(200), c117 char(200), c118 char(200), c119 char(200), c120 char(200),
-c121 char(200), c122 char(200), c123 char(200), c124 char(200), c125 char(200),
-c126 char(200), c127 char(200), c128 char(200), c129 char(200), c130 char(200),
-c131 char(200), c132 char(200), c133 char(200), c134 char(200), c135 char(200),
-c136 char(200), c137 char(200), c138 char(200), c139 char(200), c140 char(200),
-c141 char(200), c142 char(200), c143 char(200), c144 char(200), c145 char(200),
-c146 char(200), c147 char(200), c148 char(200), c149 char(200), c150 char(200),
-c151 char(200), c152 char(200), c153 char(200), c154 char(200), c155 char(200),
-c156 char(200), c157 char(200), c158 char(200), c159 char(200), c160 char(200),
-c161 char(200), c162 char(200), c163 char(200), c164 char(200), c165 char(200),
-c166 char(200), c167 char(200), c168 char(200), c169 char(200), c170 char(200),
-c171 char(200), c172 char(200), c173 char(200), c174 char(200), c175 char(200),
-c176 char(200), c177 char(200), c178 char(200), c179 char(200), c180 char(200),
-c190 char(200), c191 char(200), c192 char(100),
-c81 char(156)
+c81 char(200), c82 char(148)
) ROW_FORMAT=compact;
DROP TABLE t1;
CREATE TABLE t1 (
@@ -80,26 +63,9 @@ c61 char(200), c62 char(200), c63 char(200), c64 char(200), c65 char(200),
c66 char(200), c67 char(200), c68 char(200), c69 char(200), c70 char(200),
c71 char(200), c72 char(200), c73 char(200), c74 char(200), c75 char(200),
c76 char(200), c77 char(200), c78 char(200), c79 char(200), c80 char(200),
-c101 char(200), c102 char(200), c103 char(200), c104 char(200), c105 char(200),
-c106 char(200), c107 char(200), c108 char(200), c109 char(200), c110 char(200),
-c111 char(200), c112 char(200), c113 char(200), c114 char(200), c115 char(200),
-c116 char(200), c117 char(200), c118 char(200), c119 char(200), c120 char(200),
-c121 char(200), c122 char(200), c123 char(200), c124 char(200), c125 char(200),
-c126 char(200), c127 char(200), c128 char(200), c129 char(200), c130 char(200),
-c131 char(200), c132 char(200), c133 char(200), c134 char(200), c135 char(200),
-c136 char(200), c137 char(200), c138 char(200), c139 char(200), c140 char(200),
-c141 char(200), c142 char(200), c143 char(200), c144 char(200), c145 char(200),
-c146 char(200), c147 char(200), c148 char(200), c149 char(200), c150 char(200),
-c151 char(200), c152 char(200), c153 char(200), c154 char(200), c155 char(200),
-c156 char(200), c157 char(200), c158 char(200), c159 char(200), c160 char(200),
-c161 char(200), c162 char(200), c163 char(200), c164 char(200), c165 char(200),
-c166 char(200), c167 char(200), c168 char(200), c169 char(200), c170 char(200),
-c171 char(200), c172 char(200), c173 char(200), c174 char(200), c175 char(200),
-c176 char(200), c177 char(200), c178 char(200), c179 char(200), c180 char(200),
-c190 char(200), c191 char(200), c192 char(100),
-c81 char(157)
+c81 char(200), c82 char(149)
) ROW_FORMAT=compact;
-ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ERROR 42000: Row size is greater than 16383. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
CREATE TABLE t1 (
c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
@@ -117,24 +83,7 @@ c61 char(200), c62 char(200), c63 char(200), c64 char(200), c65 char(200),
c66 char(200), c67 char(200), c68 char(200), c69 char(200), c70 char(200),
c71 char(200), c72 char(200), c73 char(200), c74 char(200), c75 char(200),
c76 char(200), c77 char(200), c78 char(200), c79 char(200), c80 char(200),
-c101 char(200), c102 char(200), c103 char(200), c104 char(200), c105 char(200),
-c106 char(200), c107 char(200), c108 char(200), c109 char(200), c110 char(200),
-c111 char(200), c112 char(200), c113 char(200), c114 char(200), c115 char(200),
-c116 char(200), c117 char(200), c118 char(200), c119 char(200), c120 char(200),
-c121 char(200), c122 char(200), c123 char(200), c124 char(200), c125 char(200),
-c126 char(200), c127 char(200), c128 char(200), c129 char(200), c130 char(200),
-c131 char(200), c132 char(200), c133 char(200), c134 char(200), c135 char(200),
-c136 char(200), c137 char(200), c138 char(200), c139 char(200), c140 char(200),
-c141 char(200), c142 char(200), c143 char(200), c144 char(200), c145 char(200),
-c146 char(200), c147 char(200), c148 char(200), c149 char(200), c150 char(200),
-c151 char(200), c152 char(200), c153 char(200), c154 char(200), c155 char(200),
-c156 char(200), c157 char(200), c158 char(200), c159 char(200), c160 char(200),
-c161 char(200), c162 char(200), c163 char(200), c164 char(200), c165 char(200),
-c166 char(200), c167 char(200), c168 char(200), c169 char(200), c170 char(200),
-c171 char(200), c172 char(200), c173 char(200), c174 char(200), c175 char(200),
-c176 char(200), c177 char(200), c178 char(200), c179 char(200), c180 char(200),
-c190 char(200), c191 char(200), c192 char(100),
-c81 char(156)
+c81 char(200), c82 char(148)
) ROW_FORMAT=dynamic;
DROP TABLE t1;
CREATE TABLE t1 (
@@ -154,26 +103,9 @@ c61 char(200), c62 char(200), c63 char(200), c64 char(200), c65 char(200),
c66 char(200), c67 char(200), c68 char(200), c69 char(200), c70 char(200),
c71 char(200), c72 char(200), c73 char(200), c74 char(200), c75 char(200),
c76 char(200), c77 char(200), c78 char(200), c79 char(200), c80 char(200),
-c101 char(200), c102 char(200), c103 char(200), c104 char(200), c105 char(200),
-c106 char(200), c107 char(200), c108 char(200), c109 char(200), c110 char(200),
-c111 char(200), c112 char(200), c113 char(200), c114 char(200), c115 char(200),
-c116 char(200), c117 char(200), c118 char(200), c119 char(200), c120 char(200),
-c121 char(200), c122 char(200), c123 char(200), c124 char(200), c125 char(200),
-c126 char(200), c127 char(200), c128 char(200), c129 char(200), c130 char(200),
-c131 char(200), c132 char(200), c133 char(200), c134 char(200), c135 char(200),
-c136 char(200), c137 char(200), c138 char(200), c139 char(200), c140 char(200),
-c141 char(200), c142 char(200), c143 char(200), c144 char(200), c145 char(200),
-c146 char(200), c147 char(200), c148 char(200), c149 char(200), c150 char(200),
-c151 char(200), c152 char(200), c153 char(200), c154 char(200), c155 char(200),
-c156 char(200), c157 char(200), c158 char(200), c159 char(200), c160 char(200),
-c161 char(200), c162 char(200), c163 char(200), c164 char(200), c165 char(200),
-c166 char(200), c167 char(200), c168 char(200), c169 char(200), c170 char(200),
-c171 char(200), c172 char(200), c173 char(200), c174 char(200), c175 char(200),
-c176 char(200), c177 char(200), c178 char(200), c179 char(200), c180 char(200),
-c190 char(200), c191 char(200), c192 char(100),
-c81 char(157)
+c81 char(200), c82 char(149)
) ROW_FORMAT=dynamic;
-ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ERROR 42000: Row size is greater than 16383. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
# Test 8) Test creating a table that could lead to undo log overflow.
CREATE TABLE t1(a blob,b blob,c blob,d blob,e blob,f blob,g blob,
h blob,i blob,j blob,k blob,l blob,m blob,n blob,
diff --git a/mysql-test/suite/innodb/r/innodb.result b/mysql-test/suite/innodb/r/innodb.result
index 0d92968b095..29035caf0f2 100644
--- a/mysql-test/suite/innodb/r/innodb.result
+++ b/mysql-test/suite/innodb/r/innodb.result
@@ -3158,7 +3158,7 @@ c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255)
) ENGINE = InnoDB;
-ERROR 42000: Row size too large (> {checked_valid}). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ERROR 42000: Row size is greater than 8125. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
SET innodb_strict_mode=OFF;
DROP TABLE IF EXISTS t1;
Warnings:
diff --git a/mysql-test/suite/innodb/r/innodb_max_recordsize_32k.result b/mysql-test/suite/innodb/r/innodb_max_recordsize_32k.result
index 7eb9a172754..c84f2ee3c01 100644
--- a/mysql-test/suite/innodb/r/innodb_max_recordsize_32k.result
+++ b/mysql-test/suite/innodb/r/innodb_max_recordsize_32k.result
@@ -1,4 +1,4 @@
-call mtr.add_suppression('InnoDB: Cannot add field.*because after adding it, the row size is');
+call mtr.add_suppression('After adding field .* which is greater than maximum allowed size');
SELECT @@innodb_page_size;
@@innodb_page_size
32768
@@ -56,7 +56,7 @@ col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255)
col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255), col65 CHAR(255))
ENGINE = innodb ROW_FORMAT=COMPACT;
Warnings:
-Warning 139 Row size too large (> NNNN). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+Warning 139 Row size is greater than 16317. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
@@ -70,7 +70,7 @@ repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),'a',NULL);
-ERROR 42000: Row size too large (> 16318). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ERROR 42000: Row size is greater than 16317. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
SELECT * FROM tab5;
col1 col2 col3 col4 col5 col6 col7 col8 col9 col10 col11 col12 col13 col14 col15 col16 col17 col18 col19 col20 col21 col22 col23 col24 col25 col26 col27 col28 col29 col30 col31 col32 col33 col34 col35 col36 col37 col38 col39 col40 col41 col42 col43 col44 col45 col46 col47 col48 col49 col50 col51 col52 col53 col54 col55 col56 col57 col58 col59 col60 col61 col62 col63 col64 col65
DROP TABLE tab5;
@@ -87,7 +87,7 @@ col54 VARCHAR(255),col55 VARCHAR(255),col56 VARCHAR(255),col57 VARCHAR(255),col5
col60 VARCHAR(255),col61 VARCHAR(255),col62 VARCHAR(255),col63 VARCHAR(255),col64 VARCHAR(255), col65 VARCHAR(255))
ENGINE = innodb ROW_FORMAT=COMPACT;
Warnings:
-Warning 139 Row size too large (> NNNN). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+Warning 139 Row size is greater than 16317. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
@@ -101,7 +101,7 @@ repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',156),NULL);
-ERROR 42000: Row size too large (> 16318). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ERROR 42000: Row size is greater than 16317. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
@@ -132,7 +132,7 @@ col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255)
col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255), col65 CHAR(255))
ENGINE = innodb ROW_FORMAT=DYNAMIC;
Warnings:
-Warning 139 Row size too large (> NNNN). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+Warning 139 Row size is greater than 16317. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
DROP TABLE tab5;
CREATE TABLE tab5(col1 VARCHAR (255), col2 VARCHAR (255), col3 VARCHAR(255),col4 VARCHAR(255), col5 VARCHAR(255),
col6 VARCHAR(255), col7 VARCHAR(255), col8 VARCHAR(255), col9 VARCHAR(255),col10 VARCHAR(255), col11 VARCHAR(255),
@@ -147,7 +147,7 @@ col54 VARCHAR(255),col55 VARCHAR(255),col56 VARCHAR(255),col57 VARCHAR(255),col5
col60 VARCHAR(255),col61 VARCHAR(255),col62 VARCHAR(255),col63 VARCHAR(255),col64 VARCHAR(255), col65 VARCHAR(255))
ENGINE = innodb ROW_FORMAT=DYNAMIC;
Warnings:
-Warning 139 Row size too large (> NNNN). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+Warning 139 Row size is greater than 16317. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
@@ -161,7 +161,7 @@ repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',156),NULL);
-ERROR 42000: Row size too large (> 16318). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ERROR 42000: Row size is greater than 16317. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
@@ -192,7 +192,7 @@ col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255)
col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255), col65 CHAR(255))
ENGINE = innodb ROW_FORMAT=REDUNDANT;
Warnings:
-Warning 139 Row size too large (> NNNN). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+Warning 139 Row size is greater than 16314. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
@@ -206,7 +206,7 @@ repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255));
-ERROR 42000: Row size too large (> 16315). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ERROR 42000: Row size is greater than 16314. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
SELECT * FROM tab5;
col1 col2 col3 col4 col5 col6 col7 col8 col9 col10 col11 col12 col13 col14 col15 col16 col17 col18 col19 col20 col21 col22 col23 col24 col25 col26 col27 col28 col29 col30 col31 col32 col33 col34 col35 col36 col37 col38 col39 col40 col41 col42 col43 col44 col45 col46 col47 col48 col49 col50 col51 col52 col53 col54 col55 col56 col57 col58 col59 col60 col61 col62 col63 col64 col65
DROP TABLE tab5;
@@ -223,7 +223,7 @@ col54 VARCHAR(255),col55 VARCHAR(255),col56 VARCHAR(255),col57 VARCHAR(255),col5
col60 VARCHAR(255),col61 VARCHAR(255),col62 VARCHAR(255),col63 VARCHAR(255),col64 VARCHAR(255), col65 VARCHAR(255))
ENGINE = innodb ROW_FORMAT=REDUNDANT;
Warnings:
-Warning 139 Row size too large (> NNNN). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+Warning 139 Row size is greater than 16314. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
@@ -237,7 +237,7 @@ repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',89),NULL);
-ERROR 42000: Row size too large (> 16315). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ERROR 42000: Row size is greater than 16314. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
@@ -269,7 +269,7 @@ col60 VARCHAR(255),col61 VARCHAR(255),col62 VARCHAR(255),col63 VARCHAR(255),col6
ENGINE = innodb ROW_FORMAT=COMPRESSED;
Warnings:
Warning 1478 InnoDB: Cannot create a COMPRESSED table when innodb_page_size > NNNNk. Assuming ROW_FORMAT=DYNAMIC.
-Warning 139 Row size too large (> NNNN). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+Warning 139 Row size is greater than 16317. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
DROP TABLE tab5;
CREATE TABLE t(col BLOB) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
SHOW WARNINGS;
diff --git a/mysql-test/suite/innodb/r/innodb_max_recordsize_64k.result b/mysql-test/suite/innodb/r/innodb_max_recordsize_64k.result
index c889e00107b..3f5596862ad 100644
--- a/mysql-test/suite/innodb/r/innodb_max_recordsize_64k.result
+++ b/mysql-test/suite/innodb/r/innodb_max_recordsize_64k.result
@@ -1,4 +1,4 @@
-call mtr.add_suppression('InnoDB: Cannot add field.*because after adding it, the row size is');
+call mtr.add_suppression('After adding field .* which is greater than maximum allowed size');
SELECT @@innodb_page_size;
@@innodb_page_size
65536
@@ -68,7 +68,7 @@ ccol60 CHAR(255),ccol61 CHAR(255),ccol62 CHAR(255),ccol63 CHAR(255),ccol64 CHAR
)
ENGINE = innodb ROW_FORMAT=COMPACT;
Warnings:
-Warning 139 Row size too large (> NNNN). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+Warning 139 Row size is greater than 16383. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
@@ -95,7 +95,7 @@ repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),'a',NULL);
-ERROR 42000: Row size too large (> 16383). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ERROR 42000: Row size is greater than 16383. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
SELECT * FROM tab5;
col1 col2 col3 col4 col5 col6 col7 col8 col9 col10 col11 col12 col13 col14 col15 col16 col17 col18 col19 col20 col21 col22 col23 col24 col25 col26 col27 col28 col29 col30 col31 col32 col33 col34 col35 col36 col37 col38 col39 col40 col41 col42 col43 col44 col45 col46 col47 col48 col49 col50 col51 col52 col53 col54 col55 col56 col57 col58 col59 col60 col61 col62 col63 col64 col65 ccol1 ccol2 ccol3 ccol4 ccol5 ccol6 ccol7 ccol8 ccol9 ccol10 ccol11 ccol12 ccol13 ccol14 ccol15 ccol16 ccol17 ccol18 ccol19 ccol20 ccol21 ccol22 ccol23 ccol24 ccol25 ccol26 ccol27 ccol28 ccol29 ccol30 ccol31 ccol32 ccol33 ccol34 ccol35 ccol36 ccol37 ccol38 ccol39 ccol40 ccol41 ccol42 ccol43 ccol44 ccol45 ccol46 ccol47 ccol48 ccol49 ccol50 ccol51 ccol52 ccol53 ccol54 ccol55 ccol56 ccol57 ccol58 ccol59 ccol60 ccol61 ccol62 ccol63 ccol64 ccol65
DROP TABLE tab5;
@@ -109,22 +109,11 @@ col36 VARCHAR(255),col37 VARCHAR(255),col38 VARCHAR(255),col39 VARCHAR(255),col4
col42 VARCHAR(255),col43 VARCHAR(255),col44 VARCHAR(255),col45 VARCHAR(255),col46 VARCHAR(255), col47 VARCHAR(255),
col48 VARCHAR(255),col49 VARCHAR(255),col50 VARCHAR(255),col51 VARCHAR(255),col52 VARCHAR(255), col53 VARCHAR(255),
col54 VARCHAR(255),col55 VARCHAR(255),col56 VARCHAR(255),col57 VARCHAR(255),col58 VARCHAR(255), col59 VARCHAR(255),
-col60 VARCHAR(255),col61 VARCHAR(255),col62 VARCHAR(255),col63 VARCHAR(255),col64 VARCHAR(255), col65 VARCHAR(255),
-ccol1 VARCHAR(255),ccol2 VARCHAR(255),ccol3 VARCHAR(255),ccol4 VARCHAR(255),ccol5 VARCHAR(255),
-ccol6 VARCHAR(255),ccol7 VARCHAR(255),ccol8 VARCHAR(255),ccol9 VARCHAR(255),ccol10 VARCHAR(255), ccol11 VARCHAR(255),
-ccol12 VARCHAR(255),ccol13 VARCHAR(255),ccol14 VARCHAR(255),ccol15 VARCHAR(255),ccol16 VARCHAR(255), ccol17 VARCHAR(255),
-ccol18 VARCHAR(255),ccol19 VARCHAR(255),ccol20 VARCHAR(255),ccol21 VARCHAR(255),ccol22 VARCHAR(255), ccol23 VARCHAR(255),
-ccol24 VARCHAR(255),ccol25 VARCHAR(255),ccol26 VARCHAR(255),ccol27 VARCHAR(255),ccol28 VARCHAR(255), ccol29 VARCHAR(255),
-ccol30 VARCHAR(255),ccol31 VARCHAR(255),ccol32 VARCHAR(255),ccol33 VARCHAR(255),ccol34 VARCHAR(255), ccol35 VARCHAR(255),
-ccol36 VARCHAR(255),ccol37 VARCHAR(255),ccol38 VARCHAR(255),ccol39 VARCHAR(255),ccol40 VARCHAR(255), ccol41 VARCHAR(255),
-ccol42 VARCHAR(255),ccol43 VARCHAR(255),ccol44 VARCHAR(255),ccol45 VARCHAR(255),ccol46 VARCHAR(255), ccol47 VARCHAR(255),
-ccol48 VARCHAR(255),ccol49 VARCHAR(255),ccol50 VARCHAR(255),ccol51 VARCHAR(255),ccol52 VARCHAR(255), ccol53 VARCHAR(255),
-ccol54 VARCHAR(255),ccol55 VARCHAR(255),ccol56 VARCHAR(255),ccol57 VARCHAR(255),ccol58 VARCHAR(255), ccol59 VARCHAR(255),
-ccol60 VARCHAR(255),ccol61 VARCHAR(255),ccol62 VARCHAR(255),ccol63 VARCHAR(255),ccol64 VARCHAR(255), ccol65 VARCHAR(255)
+col60 VARCHAR(255),col61 VARCHAR(255),col62 VARCHAR(255),col63 VARCHAR(255),col64 VARCHAR(255)
)
ENGINE = innodb ROW_FORMAT=COMPACT;
Warnings:
-Warning 139 Row size too large (> 32702). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+Warning 139 Row size is greater than 16383. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
@@ -137,22 +126,9 @@ repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
-repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',214),NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL
+repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',223)
);
-ERROR 42000: Row size too large (> 16383). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ERROR 42000: Row size is greater than 16383. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
@@ -165,24 +141,11 @@ repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
-repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',213),NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL
+repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',222)
);
SELECT * FROM tab5;
-col1 col2 col3 col4 col5 col6 col7 col8 col9 col10 col11 col12 col13 col14 col15 col16 col17 col18 col19 col20 col21 col22 col23 col24 col25 col26 col27 col28 col29 col30 col31 col32 col33 col34 col35 col36 col37 col38 col39 col40 col41 col42 col43 col44 col45 col46 col47 col48 col49 col50 col51 col52 col53 col54 col55 col56 col57 col58 col59 col60 col61 col62 col63 col64 col65 ccol1 ccol2 ccol3 ccol4 ccol5 ccol6 ccol7 ccol8 ccol9 ccol10 ccol11 ccol12 ccol13 ccol14 ccol15 ccol16 ccol17 ccol18 ccol19 ccol20 ccol21 ccol22 ccol23 ccol24 ccol25 ccol26 ccol27 ccol28 ccol29 ccol30 ccol31 ccol32 ccol33 ccol34 ccol35 ccol36 ccol37 ccol38 ccol39 ccol40 ccol41 ccol42 ccol43 ccol44 ccol45 ccol46 ccol47 ccol48 ccol49 ccol50 ccol51 ccol52 ccol53 ccol54 ccol55 ccol56 ccol57 ccol58 ccol59 ccol60 ccol61 ccol62 ccol63 ccol64 ccol65
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
+col1 col2 col3 col4 col5 col6 col7 col8 col9 col10 col11 col12 col13 col14 col15 col16 col17 col18 col19 col20 col21 col22 col23 col24 col25 col26 col27 col28 col29 col30 col31 col32 col33 col34 col35 col36 col37 col38 col39 col40 col41 col42 col43 col44 col45 col46 col47 col48 col49 col50 col51 col52 col53 col54 col55 col56 col57 col58 col59 col60 col61 col62 col63 col64
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
DROP TABLE tab5;
CREATE TABLE tab5(col1 CHAR (255), col2 CHAR (255), col3 CHAR(255),col4 CHAR(255), col5 CHAR(255),
col6 CHAR(255), col7 CHAR(255), col8 CHAR(255), col9 CHAR(255),col10 CHAR(255), col11 CHAR(255),
@@ -209,7 +172,7 @@ ccol60 CHAR(255),ccol61 CHAR(255),ccol62 CHAR(255),ccol63 CHAR(255),ccol64 CHAR
)
ENGINE = innodb ROW_FORMAT=DYNAMIC;
Warnings:
-Warning 139 Row size too large (> NNNN). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+Warning 139 Row size is greater than 16383. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
DROP TABLE tab5;
CREATE TABLE tab5(col1 VARCHAR (255), col2 VARCHAR (255), col3 VARCHAR(255),col4 VARCHAR(255), col5 VARCHAR(255),
col6 VARCHAR(255), col7 VARCHAR(255), col8 VARCHAR(255), col9 VARCHAR(255),col10 VARCHAR(255), col11 VARCHAR(255),
@@ -236,7 +199,7 @@ ccol60 VARCHAR(255),ccol61 VARCHAR(255),ccol62 VARCHAR(255),ccol63 VARCHAR(255),
)
ENGINE = innodb ROW_FORMAT=DYNAMIC;
Warnings:
-Warning 139 Row size too large (> NNNN). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+Warning 139 Row size is greater than 16383. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
@@ -264,7 +227,7 @@ NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL
);
-ERROR 42000: Row size too large (> 16383). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ERROR 42000: Row size is greater than 16383. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
@@ -321,7 +284,7 @@ ccol60 CHAR(255),ccol61 CHAR(255),ccol62 CHAR(255),ccol63 CHAR(255),ccol64 CHAR
)
ENGINE = innodb ROW_FORMAT=REDUNDANT;
Warnings:
-Warning 139 Row size too large (> NNNN). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+Warning 139 Row size is greater than 16382. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
@@ -349,7 +312,7 @@ NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL
);
-ERROR 42000: Row size too large (> 16382). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ERROR 42000: Row size is greater than 16382. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
SELECT * FROM tab5;
col1 col2 col3 col4 col5 col6 col7 col8 col9 col10 col11 col12 col13 col14 col15 col16 col17 col18 col19 col20 col21 col22 col23 col24 col25 col26 col27 col28 col29 col30 col31 col32 col33 col34 col35 col36 col37 col38 col39 col40 col41 col42 col43 col44 col45 col46 col47 col48 col49 col50 col51 col52 col53 col54 col55 col56 col57 col58 col59 col60 col61 col62 col63 col64 col65 ccol1 ccol2 ccol3 ccol4 ccol5 ccol6 ccol7 ccol8 ccol9 ccol10 ccol11 ccol12 ccol13 ccol14 ccol15 ccol16 ccol17 ccol18 ccol19 ccol20 ccol21 ccol22 ccol23 ccol24 ccol25 ccol26 ccol27 ccol28 ccol29 ccol30 ccol31 ccol32 ccol33 ccol34 ccol35 ccol36 ccol37 ccol38 ccol39 ccol40 ccol41 ccol42 ccol43 ccol44 ccol45 ccol46 ccol47 ccol48 ccol49 ccol50 ccol51 ccol52 ccol53 ccol54 ccol55 ccol56 ccol57 ccol58 ccol59 ccol60 ccol61 ccol62 ccol63 ccol64 ccol65
DROP TABLE tab5;
@@ -378,7 +341,7 @@ ccol60 VARCHAR(255),ccol61 VARCHAR(255),ccol62 VARCHAR(255),ccol63 VARCHAR(255),
)
ENGINE = innodb ROW_FORMAT=REDUNDANT;
Warnings:
-Warning 139 Row size too large (> NNNN). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+Warning 139 Row size is greater than 16382. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
@@ -406,7 +369,7 @@ NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL
);
-ERROR 42000: Row size too large (> 16382). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ERROR 42000: Row size is greater than 16382. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
@@ -452,6 +415,7 @@ col60 VARCHAR(255),col61 VARCHAR(255),col62 VARCHAR(255),col63 VARCHAR(255),col6
ENGINE = innodb ROW_FORMAT=COMPRESSED;
Warnings:
Warning 1478 InnoDB: Cannot create a COMPRESSED table when innodb_page_size > NNNNk. Assuming ROW_FORMAT=DYNAMIC.
+Warning 139 Row size is greater than 16383. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
DROP TABLE tab5;
CREATE TABLE t(col BLOB) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
SHOW WARNINGS;
diff --git a/mysql-test/suite/innodb/r/max_record_size,16k,compact,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,16k,compact.rdiff
index 118145bec2e..c481ed557b7 100644
--- a/mysql-test/suite/innodb/r/max_record_size,16k,compact,innodb.rdiff
+++ b/mysql-test/suite/innodb/r/max_record_size,16k,compact.rdiff
@@ -1,5 +1,5 @@
---- max_record_size.result 2019-07-03 11:54:44.591421526 +0300
-+++ max_record_size.reject 2019-07-03 12:51:26.070418078 +0300
+--- max_record_size.result 2019-09-15 18:41:29.302021718 +0300
++++ max_record_size.reject 2019-09-15 18:47:45.503977671 +0300
@@ -3,45 +3,65 @@
c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
@@ -23,8 +23,8 @@
+c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
+c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 8125. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
CREATE TABLE t1 (
c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
@@ -48,8 +48,8 @@
+c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
+c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 8125. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
CREATE TABLE t1 (
c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
-c5 VARCHAR(788)
@@ -63,8 +63,8 @@
+c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
+c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 8125. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
CREATE TABLE t1 (
-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
+c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
@@ -76,5 +76,5 @@
+c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 8125. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size,16k,dynamic,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,16k,dynamic.rdiff
index 33067866b82..f0e7e447ccb 100644
--- a/mysql-test/suite/innodb/r/max_record_size,16k,dynamic,innodb.rdiff
+++ b/mysql-test/suite/innodb/r/max_record_size,16k,dynamic.rdiff
@@ -1,5 +1,5 @@
---- max_record_size.result 2019-07-03 11:54:44.591421526 +0300
-+++ max_record_size.reject 2019-07-03 12:52:54.580956978 +0300
+--- max_record_size.result 2019-09-15 18:41:29.302021718 +0300
++++ max_record_size.reject 2019-09-15 18:48:12.513329331 +0300
@@ -3,45 +3,207 @@
c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
@@ -23,8 +23,8 @@
+c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
+c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 8125. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
CREATE TABLE t1 (
c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
@@ -48,8 +48,8 @@
+c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
+c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 8125. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
CREATE TABLE t1 (
c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
-c5 VARCHAR(788)
@@ -79,7 +79,7 @@
c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
-c5 VARCHAR(788), c6 VARCHAR(788)
-) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-CREATE TABLE t1 (
-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
+c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
@@ -220,5 +220,5 @@
+c372 TEXT, c373 TEXT, c374 TEXT, c375 TEXT, c376 TEXT, c377 TEXT, c378 TEXT,
+c379 TEXT, c380 TEXT, c381 TEXT, c382 TEXT, c383 TEXT, c384 TEXT
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 8125. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size,16k,innodb,redundant.rdiff b/mysql-test/suite/innodb/r/max_record_size,16k,redundant.rdiff
index e50e4d2be3a..234e94250c9 100644
--- a/mysql-test/suite/innodb/r/max_record_size,16k,innodb,redundant.rdiff
+++ b/mysql-test/suite/innodb/r/max_record_size,16k,redundant.rdiff
@@ -1,5 +1,5 @@
---- max_record_size.result 2019-07-03 11:54:44.591421526 +0300
-+++ max_record_size.reject 2019-07-03 12:55:05.258762945 +0300
+--- max_record_size.result 2019-09-15 18:41:29.302021718 +0300
++++ max_record_size.reject 2019-09-15 18:49:56.012336094 +0300
@@ -3,45 +3,65 @@
c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
@@ -23,8 +23,8 @@
+c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
+c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 8123). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 8122. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
CREATE TABLE t1 (
c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
@@ -48,8 +48,8 @@
+c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
+c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 8123). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 8122. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
CREATE TABLE t1 (
c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
-c5 VARCHAR(788)
@@ -63,8 +63,8 @@
+c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
+c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 8123). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 8122. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
CREATE TABLE t1 (
-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
+c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
@@ -76,5 +76,5 @@
+c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 8123). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 8122. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size,32k,innodb,redundant.rdiff b/mysql-test/suite/innodb/r/max_record_size,32k,compact.rdiff
index e42b3de8845..675a3c8e823 100644
--- a/mysql-test/suite/innodb/r/max_record_size,32k,innodb,redundant.rdiff
+++ b/mysql-test/suite/innodb/r/max_record_size,32k,compact.rdiff
@@ -1,5 +1,5 @@
---- max_record_size.result 2019-07-03 11:54:44.591421526 +0300
-+++ max_record_size.reject 2019-07-03 12:41:03.319664978 +0300
+--- max_record_size.result 2019-09-15 18:41:29.302021718 +0300
++++ max_record_size.reject 2019-09-15 18:46:15.784066283 +0300
@@ -3,45 +3,104 @@
c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
@@ -39,8 +39,8 @@
+c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
+c61 CHAR(255), c62 CHAR(255), c63 CHAR(255), c64 CHAR(255)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 16315). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 16317. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
CREATE TABLE t1 (
c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
@@ -80,8 +80,8 @@
+c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
+c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255), c64 VARCHAR(255)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 16315). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 16317. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
CREATE TABLE t1 (
c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
-c5 VARCHAR(788)
@@ -95,7 +95,7 @@
c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
-c5 VARCHAR(788), c6 VARCHAR(788)
-) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-CREATE TABLE t1 (
-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
+c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
@@ -104,7 +104,7 @@
+c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
+c21 VARCHAR(788)
+) ENGINE=INNODB;
-+ERROR 42000: Row size too large (> 16315). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 16317. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+CREATE TABLE t1 (
+c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
@@ -117,5 +117,5 @@
+c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 16315). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 16317. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size,32k,dynamic,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,32k,dynamic.rdiff
index 71c4c2e41b7..2a153ff0d30 100644
--- a/mysql-test/suite/innodb/r/max_record_size,32k,dynamic,innodb.rdiff
+++ b/mysql-test/suite/innodb/r/max_record_size,32k,dynamic.rdiff
@@ -1,5 +1,5 @@
---- max_record_size.result 2019-07-03 11:54:44.591421526 +0300
-+++ max_record_size.reject 2019-07-03 12:38:41.609328820 +0300
+--- max_record_size.result 2019-09-15 18:41:29.302021718 +0300
++++ max_record_size.reject 2019-09-15 18:46:43.017919019 +0300
@@ -3,45 +3,351 @@
c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
@@ -39,8 +39,8 @@
+c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
+c61 CHAR(255), c62 CHAR(255), c63 CHAR(255), c64 CHAR(255)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 16318). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 16317. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
CREATE TABLE t1 (
c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
@@ -80,8 +80,8 @@
+c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
+c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255), c64 VARCHAR(255)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 16318). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 16317. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
CREATE TABLE t1 (
c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
-c5 VARCHAR(788)
@@ -131,7 +131,7 @@
+c77 VARCHAR(788), c78 VARCHAR(788), c79 VARCHAR(788), c80 VARCHAR(788),
+c81 VARCHAR(788), c82 VARCHAR(788), c83 VARCHAR(788)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
CREATE TABLE t1 (
-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
@@ -362,5 +362,5 @@
+c764 TEXT, c765 TEXT, c766 TEXT, c767 TEXT, c768 TEXT, c769 TEXT, c770 TEXT,
+c771 TEXT, c772 TEXT
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 16318). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 16317. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size,64k,innodb,redundant.rdiff b/mysql-test/suite/innodb/r/max_record_size,32k,redundant.rdiff
index c324969fb21..98ba149cd29 100644
--- a/mysql-test/suite/innodb/r/max_record_size,64k,innodb,redundant.rdiff
+++ b/mysql-test/suite/innodb/r/max_record_size,32k,redundant.rdiff
@@ -1,5 +1,5 @@
---- max_record_size.result 2019-07-03 11:54:44.591421526 +0300
-+++ max_record_size.reject 2019-07-03 12:50:05.663724193 +0300
+--- max_record_size.result 2019-09-15 18:41:29.302021718 +0300
++++ max_record_size.reject 2019-09-15 18:42:03.715471275 +0300
@@ -3,45 +3,104 @@
c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
@@ -39,8 +39,8 @@
+c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
+c61 CHAR(255), c62 CHAR(255), c63 CHAR(255), c64 CHAR(255)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 16382). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 16314. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
CREATE TABLE t1 (
c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
@@ -80,8 +80,8 @@
+c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
+c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255), c64 VARCHAR(255)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 16382). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 16314. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
CREATE TABLE t1 (
c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
-c5 VARCHAR(788)
@@ -95,7 +95,7 @@
c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
-c5 VARCHAR(788), c6 VARCHAR(788)
-) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-CREATE TABLE t1 (
-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
+c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
@@ -104,7 +104,7 @@
+c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
+c21 VARCHAR(788)
+) ENGINE=INNODB;
-+ERROR 42000: Row size too large (> 16382). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 16314. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+CREATE TABLE t1 (
+c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
@@ -117,5 +117,5 @@
+c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 16382). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 16314. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size,4k,compact,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,4k,compact.rdiff
index 6f08dab3ca1..4122c994a90 100644
--- a/mysql-test/suite/innodb/r/max_record_size,4k,compact,innodb.rdiff
+++ b/mysql-test/suite/innodb/r/max_record_size,4k,compact.rdiff
@@ -1,7 +1,7 @@
---- max_record_size.result 2019-07-03 11:54:44.591421526 +0300
-+++ max_record_size.reject 2019-07-03 12:56:23.489432164 +0300
+--- max_record_size.result 2019-09-15 18:41:29.302021718 +0300
++++ max_record_size.reject 2019-09-15 18:50:49.117364396 +0300
@@ -1,47 +1,37 @@
- call mtr.add_suppression("Cannot add field `.*` in table `test`.`t1` because after adding it, the row size is");
+ call mtr.add_suppression('After adding field .* which is greater than maximum allowed size');
CREATE TABLE t1 (
c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
-c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
@@ -17,8 +17,8 @@
-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
+c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 1982). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 1981. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
CREATE TABLE t1 (
c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
-c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
@@ -34,8 +34,8 @@
-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
+c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 1982). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 1981. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
CREATE TABLE t1 (
-c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
-c5 VARCHAR(788)
@@ -47,8 +47,8 @@
-c5 VARCHAR(788), c6 VARCHAR(788)
+c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 1982). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 1981. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
CREATE TABLE t1 (
-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
+c1 TEXT, c2 TEXT
@@ -58,5 +58,5 @@
-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT
+c1 TEXT, c2 TEXT, c3 TEXT
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 1982). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 1981. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size,4k,dynamic,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,4k,dynamic.rdiff
index bd37d4354e7..6632991b67f 100644
--- a/mysql-test/suite/innodb/r/max_record_size,4k,dynamic,innodb.rdiff
+++ b/mysql-test/suite/innodb/r/max_record_size,4k,dynamic.rdiff
@@ -1,7 +1,7 @@
---- max_record_size.result 2019-07-03 11:54:44.591421526 +0300
-+++ max_record_size.reject 2019-07-03 12:57:38.636143710 +0300
+--- max_record_size.result 2019-09-15 18:41:29.302021718 +0300
++++ max_record_size.reject 2019-09-15 18:51:55.161734021 +0300
@@ -1,47 +1,103 @@
- call mtr.add_suppression("Cannot add field `.*` in table `test`.`t1` because after adding it, the row size is");
+ call mtr.add_suppression('After adding field .* which is greater than maximum allowed size');
CREATE TABLE t1 (
c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
-c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
@@ -17,8 +17,8 @@
-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
+c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 1982). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 1981. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
CREATE TABLE t1 (
c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
-c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
@@ -34,8 +34,8 @@
-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
+c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 1982). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 1981. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
CREATE TABLE t1 (
c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
-c5 VARCHAR(788)
@@ -65,7 +65,7 @@
c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
-c5 VARCHAR(788), c6 VARCHAR(788)
-) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-CREATE TABLE t1 (
-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
+c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
@@ -124,5 +124,5 @@
+c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
+c92 TEXT, c93 TEXT
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 1982). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 1981. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size,4k,innodb,redundant.rdiff b/mysql-test/suite/innodb/r/max_record_size,4k,redundant.rdiff
index 93c39ff6714..685403b9cea 100644
--- a/mysql-test/suite/innodb/r/max_record_size,4k,innodb,redundant.rdiff
+++ b/mysql-test/suite/innodb/r/max_record_size,4k,redundant.rdiff
@@ -1,7 +1,7 @@
---- max_record_size.result 2019-07-03 11:54:44.591421526 +0300
-+++ max_record_size.reject 2019-07-03 12:58:58.318768169 +0300
+--- max_record_size.result 2019-09-15 18:41:29.302021718 +0300
++++ max_record_size.reject 2019-09-15 18:51:24.479934757 +0300
@@ -1,47 +1,37 @@
- call mtr.add_suppression("Cannot add field `.*` in table `test`.`t1` because after adding it, the row size is");
+ call mtr.add_suppression('After adding field .* which is greater than maximum allowed size');
CREATE TABLE t1 (
c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
-c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
@@ -17,8 +17,8 @@
-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
+c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 1979). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 1978. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
CREATE TABLE t1 (
c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
-c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
@@ -34,8 +34,8 @@
-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
+c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 1979). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 1978. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
CREATE TABLE t1 (
-c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
-c5 VARCHAR(788)
@@ -47,8 +47,8 @@
-c5 VARCHAR(788), c6 VARCHAR(788)
+c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 1979). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 1978. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
CREATE TABLE t1 (
-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
+c1 TEXT, c2 TEXT
@@ -58,5 +58,5 @@
-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT
+c1 TEXT, c2 TEXT, c3 TEXT
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 1979). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 1978. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size,64k,compact,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,64k,compact,innodb.rdiff
deleted file mode 100644
index 5e6c62212d1..00000000000
--- a/mysql-test/suite/innodb/r/max_record_size,64k,compact,innodb.rdiff
+++ /dev/null
@@ -1,203 +0,0 @@
---- max_record_size.result 2019-07-03 11:54:44.591421526 +0300
-+++ max_record_size.reject 2019-07-03 12:45:21.760116841 +0300
-@@ -3,45 +3,186 @@
- c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
- c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
- c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
--c13 CHAR(255), c14 CHAR(255), c15 CHAR(255)
-+c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
-+c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
-+c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
-+c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
-+c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255),
-+c33 CHAR(255), c34 CHAR(255), c35 CHAR(255), c36 CHAR(255),
-+c37 CHAR(255), c38 CHAR(255), c39 CHAR(255), c40 CHAR(255),
-+c41 CHAR(255), c42 CHAR(255), c43 CHAR(255), c44 CHAR(255),
-+c45 CHAR(255), c46 CHAR(255), c47 CHAR(255), c48 CHAR(255),
-+c49 CHAR(255), c50 CHAR(255), c51 CHAR(255), c52 CHAR(255),
-+c53 CHAR(255), c54 CHAR(255), c55 CHAR(255), c56 CHAR(255),
-+c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
-+c61 CHAR(255), c62 CHAR(255), c63 CHAR(255), c64 CHAR(255),
-+c65 CHAR(255), c66 CHAR(255), c67 CHAR(255), c68 CHAR(255),
-+c69 CHAR(255), c70 CHAR(255), c71 CHAR(255), c72 CHAR(255),
-+c73 CHAR(255), c74 CHAR(255), c75 CHAR(255), c76 CHAR(255),
-+c77 CHAR(255), c78 CHAR(255), c79 CHAR(255), c80 CHAR(255),
-+c81 CHAR(255), c82 CHAR(255), c83 CHAR(255), c84 CHAR(255),
-+c85 CHAR(255), c86 CHAR(255), c87 CHAR(255), c88 CHAR(255),
-+c89 CHAR(255), c90 CHAR(255), c91 CHAR(255), c92 CHAR(255),
-+c93 CHAR(255), c94 CHAR(255), c95 CHAR(255), c96 CHAR(255),
-+c97 CHAR(255), c98 CHAR(255), c99 CHAR(255), c100 CHAR(255),
-+c101 CHAR(255), c102 CHAR(255), c103 CHAR(255), c104 CHAR(255),
-+c105 CHAR(255), c106 CHAR(255), c107 CHAR(255), c108 CHAR(255),
-+c109 CHAR(255), c110 CHAR(255), c111 CHAR(255), c112 CHAR(255),
-+c113 CHAR(255), c114 CHAR(255), c115 CHAR(255), c116 CHAR(255),
-+c117 CHAR(255), c118 CHAR(255), c119 CHAR(255), c120 CHAR(255),
-+c121 CHAR(255), c122 CHAR(255), c123 CHAR(255), c124 CHAR(255),
-+c125 CHAR(255), c126 CHAR(255), c127 CHAR(255), c128 CHAR(255)
- ) ENGINE=INNODB;
- DROP TABLE t1;
- CREATE TABLE t1 (
- c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
- c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
- c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
--c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
-+c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
-+c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
-+c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
-+c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
-+c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255),
-+c33 CHAR(255), c34 CHAR(255), c35 CHAR(255), c36 CHAR(255),
-+c37 CHAR(255), c38 CHAR(255), c39 CHAR(255), c40 CHAR(255),
-+c41 CHAR(255), c42 CHAR(255), c43 CHAR(255), c44 CHAR(255),
-+c45 CHAR(255), c46 CHAR(255), c47 CHAR(255), c48 CHAR(255),
-+c49 CHAR(255), c50 CHAR(255), c51 CHAR(255), c52 CHAR(255),
-+c53 CHAR(255), c54 CHAR(255), c55 CHAR(255), c56 CHAR(255),
-+c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
-+c61 CHAR(255), c62 CHAR(255), c63 CHAR(255), c64 CHAR(255),
-+c65 CHAR(255), c66 CHAR(255), c67 CHAR(255), c68 CHAR(255),
-+c69 CHAR(255), c70 CHAR(255), c71 CHAR(255), c72 CHAR(255),
-+c73 CHAR(255), c74 CHAR(255), c75 CHAR(255), c76 CHAR(255),
-+c77 CHAR(255), c78 CHAR(255), c79 CHAR(255), c80 CHAR(255),
-+c81 CHAR(255), c82 CHAR(255), c83 CHAR(255), c84 CHAR(255),
-+c85 CHAR(255), c86 CHAR(255), c87 CHAR(255), c88 CHAR(255),
-+c89 CHAR(255), c90 CHAR(255), c91 CHAR(255), c92 CHAR(255),
-+c93 CHAR(255), c94 CHAR(255), c95 CHAR(255), c96 CHAR(255),
-+c97 CHAR(255), c98 CHAR(255), c99 CHAR(255), c100 CHAR(255),
-+c101 CHAR(255), c102 CHAR(255), c103 CHAR(255), c104 CHAR(255),
-+c105 CHAR(255), c106 CHAR(255), c107 CHAR(255), c108 CHAR(255),
-+c109 CHAR(255), c110 CHAR(255), c111 CHAR(255), c112 CHAR(255),
-+c113 CHAR(255), c114 CHAR(255), c115 CHAR(255), c116 CHAR(255),
-+c117 CHAR(255), c118 CHAR(255), c119 CHAR(255), c120 CHAR(255),
-+c121 CHAR(255), c122 CHAR(255), c123 CHAR(255), c124 CHAR(255),
-+c125 CHAR(255), c126 CHAR(255), c127 CHAR(255), c128 CHAR(255),
-+c129 CHAR(255)
- ) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 16383). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
- CREATE TABLE t1 (
- c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
- c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
- c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
--c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255)
-+c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
-+c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
-+c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
-+c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
-+c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255),
-+c33 VARCHAR(255), c34 VARCHAR(255), c35 VARCHAR(255), c36 VARCHAR(255),
-+c37 VARCHAR(255), c38 VARCHAR(255), c39 VARCHAR(255), c40 VARCHAR(255),
-+c41 VARCHAR(255), c42 VARCHAR(255), c43 VARCHAR(255), c44 VARCHAR(255),
-+c45 VARCHAR(255), c46 VARCHAR(255), c47 VARCHAR(255), c48 VARCHAR(255),
-+c49 VARCHAR(255), c50 VARCHAR(255), c51 VARCHAR(255), c52 VARCHAR(255),
-+c53 VARCHAR(255), c54 VARCHAR(255), c55 VARCHAR(255), c56 VARCHAR(255),
-+c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
-+c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255), c64 VARCHAR(255),
-+c65 VARCHAR(255), c66 VARCHAR(255), c67 VARCHAR(255), c68 VARCHAR(255),
-+c69 VARCHAR(255), c70 VARCHAR(255), c71 VARCHAR(255), c72 VARCHAR(255),
-+c73 VARCHAR(255), c74 VARCHAR(255), c75 VARCHAR(255), c76 VARCHAR(255),
-+c77 VARCHAR(255), c78 VARCHAR(255), c79 VARCHAR(255), c80 VARCHAR(255),
-+c81 VARCHAR(255), c82 VARCHAR(255), c83 VARCHAR(255), c84 VARCHAR(255),
-+c85 VARCHAR(255), c86 VARCHAR(255), c87 VARCHAR(255), c88 VARCHAR(255),
-+c89 VARCHAR(255), c90 VARCHAR(255), c91 VARCHAR(255), c92 VARCHAR(255),
-+c93 VARCHAR(255), c94 VARCHAR(255), c95 VARCHAR(255), c96 VARCHAR(255),
-+c97 VARCHAR(255), c98 VARCHAR(255), c99 VARCHAR(255), c100 VARCHAR(255),
-+c101 VARCHAR(255), c102 VARCHAR(255), c103 VARCHAR(255), c104 VARCHAR(255),
-+c105 VARCHAR(255), c106 VARCHAR(255), c107 VARCHAR(255), c108 VARCHAR(255),
-+c109 VARCHAR(255), c110 VARCHAR(255), c111 VARCHAR(255), c112 VARCHAR(255),
-+c113 VARCHAR(255), c114 VARCHAR(255), c115 VARCHAR(255), c116 VARCHAR(255),
-+c117 VARCHAR(255), c118 VARCHAR(255), c119 VARCHAR(255), c120 VARCHAR(255),
-+c121 VARCHAR(255), c122 VARCHAR(255), c123 VARCHAR(255), c124 VARCHAR(255),
-+c125 VARCHAR(255), c126 VARCHAR(255), c127 VARCHAR(255)
- ) ENGINE=INNODB;
- DROP TABLE t1;
- CREATE TABLE t1 (
- c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
- c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
- c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
--c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
-+c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
-+c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
-+c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
-+c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
-+c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255),
-+c33 VARCHAR(255), c34 VARCHAR(255), c35 VARCHAR(255), c36 VARCHAR(255),
-+c37 VARCHAR(255), c38 VARCHAR(255), c39 VARCHAR(255), c40 VARCHAR(255),
-+c41 VARCHAR(255), c42 VARCHAR(255), c43 VARCHAR(255), c44 VARCHAR(255),
-+c45 VARCHAR(255), c46 VARCHAR(255), c47 VARCHAR(255), c48 VARCHAR(255),
-+c49 VARCHAR(255), c50 VARCHAR(255), c51 VARCHAR(255), c52 VARCHAR(255),
-+c53 VARCHAR(255), c54 VARCHAR(255), c55 VARCHAR(255), c56 VARCHAR(255),
-+c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
-+c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255), c64 VARCHAR(255),
-+c65 VARCHAR(255), c66 VARCHAR(255), c67 VARCHAR(255), c68 VARCHAR(255),
-+c69 VARCHAR(255), c70 VARCHAR(255), c71 VARCHAR(255), c72 VARCHAR(255),
-+c73 VARCHAR(255), c74 VARCHAR(255), c75 VARCHAR(255), c76 VARCHAR(255),
-+c77 VARCHAR(255), c78 VARCHAR(255), c79 VARCHAR(255), c80 VARCHAR(255),
-+c81 VARCHAR(255), c82 VARCHAR(255), c83 VARCHAR(255), c84 VARCHAR(255),
-+c85 VARCHAR(255), c86 VARCHAR(255), c87 VARCHAR(255), c88 VARCHAR(255),
-+c89 VARCHAR(255), c90 VARCHAR(255), c91 VARCHAR(255), c92 VARCHAR(255),
-+c93 VARCHAR(255), c94 VARCHAR(255), c95 VARCHAR(255), c96 VARCHAR(255),
-+c97 VARCHAR(255), c98 VARCHAR(255), c99 VARCHAR(255), c100 VARCHAR(255),
-+c101 VARCHAR(255), c102 VARCHAR(255), c103 VARCHAR(255), c104 VARCHAR(255),
-+c105 VARCHAR(255), c106 VARCHAR(255), c107 VARCHAR(255), c108 VARCHAR(255),
-+c109 VARCHAR(255), c110 VARCHAR(255), c111 VARCHAR(255), c112 VARCHAR(255),
-+c113 VARCHAR(255), c114 VARCHAR(255), c115 VARCHAR(255), c116 VARCHAR(255),
-+c117 VARCHAR(255), c118 VARCHAR(255), c119 VARCHAR(255), c120 VARCHAR(255),
-+c121 VARCHAR(255), c122 VARCHAR(255), c123 VARCHAR(255), c124 VARCHAR(255),
-+c125 VARCHAR(255), c126 VARCHAR(255), c127 VARCHAR(255), c128 VARCHAR(255)
- ) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 16383). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
- CREATE TABLE t1 (
- c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
--c5 VARCHAR(788)
-+c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
-+c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
-+c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
-+c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
-+c21 VARCHAR(788), c22 VARCHAR(788), c23 VARCHAR(788), c24 VARCHAR(788),
-+c25 VARCHAR(788), c26 VARCHAR(788), c27 VARCHAR(788), c28 VARCHAR(788),
-+c29 VARCHAR(788), c30 VARCHAR(788), c31 VARCHAR(788), c32 VARCHAR(788),
-+c33 VARCHAR(788), c34 VARCHAR(788), c35 VARCHAR(788), c36 VARCHAR(788),
-+c37 VARCHAR(788), c38 VARCHAR(788), c39 VARCHAR(788), c40 VARCHAR(788),
-+c41 VARCHAR(788)
- ) ENGINE=INNODB;
- DROP TABLE t1;
- CREATE TABLE t1 (
- c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
--c5 VARCHAR(788), c6 VARCHAR(788)
--) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
--CREATE TABLE t1 (
--c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
-+c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
-+c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
-+c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
-+c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
-+c21 VARCHAR(788), c22 VARCHAR(788), c23 VARCHAR(788), c24 VARCHAR(788),
-+c25 VARCHAR(788), c26 VARCHAR(788), c27 VARCHAR(788), c28 VARCHAR(788),
-+c29 VARCHAR(788), c30 VARCHAR(788), c31 VARCHAR(788), c32 VARCHAR(788),
-+c33 VARCHAR(788), c34 VARCHAR(788), c35 VARCHAR(788), c36 VARCHAR(788),
-+c37 VARCHAR(788), c38 VARCHAR(788), c39 VARCHAR(788), c40 VARCHAR(788),
-+c41 VARCHAR(788), c42 VARCHAR(788)
-+) ENGINE=INNODB;
-+ERROR 42000: Row size too large (> 16383). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+CREATE TABLE t1 (
-+c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
-+c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
-+c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
-+c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
-+c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
-+c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT
- ) ENGINE=INNODB;
- DROP TABLE t1;
- CREATE TABLE t1 (
--c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT
-+c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
-+c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
-+c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
-+c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
-+c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
-+c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT
- ) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 16383). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size,64k,compact.rdiff b/mysql-test/suite/innodb/r/max_record_size,64k,compact.rdiff
new file mode 100644
index 00000000000..4f3577d91e0
--- /dev/null
+++ b/mysql-test/suite/innodb/r/max_record_size,64k,compact.rdiff
@@ -0,0 +1,122 @@
+--- max_record_size.result 2019-09-15 18:41:29.302021718 +0300
++++ max_record_size.reject 2019-09-15 18:47:13.260631591 +0300
+@@ -3,45 +3,105 @@
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255)
++c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
++c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
++c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
++c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
++c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255),
++c33 CHAR(255), c34 CHAR(255), c35 CHAR(255), c36 CHAR(255),
++c37 CHAR(255), c38 CHAR(255), c39 CHAR(255), c40 CHAR(255),
++c41 CHAR(255), c42 CHAR(255), c43 CHAR(255), c44 CHAR(255),
++c45 CHAR(255), c46 CHAR(255), c47 CHAR(255), c48 CHAR(255),
++c49 CHAR(255), c50 CHAR(255), c51 CHAR(255), c52 CHAR(255),
++c53 CHAR(255), c54 CHAR(255), c55 CHAR(255), c56 CHAR(255),
++c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
++c61 CHAR(255), c62 CHAR(255), c63 CHAR(255), c64 CHAR(255)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
++c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
++c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
++c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
++c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
++c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255),
++c33 CHAR(255), c34 CHAR(255), c35 CHAR(255), c36 CHAR(255),
++c37 CHAR(255), c38 CHAR(255), c39 CHAR(255), c40 CHAR(255),
++c41 CHAR(255), c42 CHAR(255), c43 CHAR(255), c44 CHAR(255),
++c45 CHAR(255), c46 CHAR(255), c47 CHAR(255), c48 CHAR(255),
++c49 CHAR(255), c50 CHAR(255), c51 CHAR(255), c52 CHAR(255),
++c53 CHAR(255), c54 CHAR(255), c55 CHAR(255), c56 CHAR(255),
++c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
++c61 CHAR(255), c62 CHAR(255), c63 CHAR(255), c64 CHAR(255),
++c65 CHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 16383. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255)
++c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
++c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
++c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
++c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
++c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255),
++c33 VARCHAR(255), c34 VARCHAR(255), c35 VARCHAR(255), c36 VARCHAR(255),
++c37 VARCHAR(255), c38 VARCHAR(255), c39 VARCHAR(255), c40 VARCHAR(255),
++c41 VARCHAR(255), c42 VARCHAR(255), c43 VARCHAR(255), c44 VARCHAR(255),
++c45 VARCHAR(255), c46 VARCHAR(255), c47 VARCHAR(255), c48 VARCHAR(255),
++c49 VARCHAR(255), c50 VARCHAR(255), c51 VARCHAR(255), c52 VARCHAR(255),
++c53 VARCHAR(255), c54 VARCHAR(255), c55 VARCHAR(255), c56 VARCHAR(255),
++c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
++c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
++c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
++c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
++c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
++c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
++c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255),
++c33 VARCHAR(255), c34 VARCHAR(255), c35 VARCHAR(255), c36 VARCHAR(255),
++c37 VARCHAR(255), c38 VARCHAR(255), c39 VARCHAR(255), c40 VARCHAR(255),
++c41 VARCHAR(255), c42 VARCHAR(255), c43 VARCHAR(255), c44 VARCHAR(255),
++c45 VARCHAR(255), c46 VARCHAR(255), c47 VARCHAR(255), c48 VARCHAR(255),
++c49 VARCHAR(255), c50 VARCHAR(255), c51 VARCHAR(255), c52 VARCHAR(255),
++c53 VARCHAR(255), c54 VARCHAR(255), c55 VARCHAR(255), c56 VARCHAR(255),
++c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
++c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255), c64 VARCHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 16383. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+-c5 VARCHAR(788)
++c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
++c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
++c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
++c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+-c5 VARCHAR(788), c6 VARCHAR(788)
+-) ENGINE=INNODB;
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-CREATE TABLE t1 (
+-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
++c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
++c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
++c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
++c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
++c21 VARCHAR(788)
++) ENGINE=INNODB;
++ERROR 42000: Row size is greater than 16383. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++CREATE TABLE t1 (
++c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
++c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
++c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT
++c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
++c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
++c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 16383. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size,64k,dynamic,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,64k,dynamic.rdiff
index 2cbf4cd9c54..b8bd27a322d 100644
--- a/mysql-test/suite/innodb/r/max_record_size,64k,dynamic,innodb.rdiff
+++ b/mysql-test/suite/innodb/r/max_record_size,64k,dynamic.rdiff
@@ -1,6 +1,6 @@
---- max_record_size.result 2019-07-03 11:54:44.591421526 +0300
-+++ max_record_size.reject 2019-07-03 12:48:32.453208310 +0300
-@@ -3,45 +3,486 @@
+--- max_record_size.result 2019-09-15 18:41:29.302021718 +0300
++++ max_record_size.reject 2019-09-15 18:49:16.459513691 +0300
+@@ -3,45 +3,352 @@
c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
@@ -17,23 +17,7 @@
+c49 CHAR(255), c50 CHAR(255), c51 CHAR(255), c52 CHAR(255),
+c53 CHAR(255), c54 CHAR(255), c55 CHAR(255), c56 CHAR(255),
+c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
-+c61 CHAR(255), c62 CHAR(255), c63 CHAR(255), c64 CHAR(255),
-+c65 CHAR(255), c66 CHAR(255), c67 CHAR(255), c68 CHAR(255),
-+c69 CHAR(255), c70 CHAR(255), c71 CHAR(255), c72 CHAR(255),
-+c73 CHAR(255), c74 CHAR(255), c75 CHAR(255), c76 CHAR(255),
-+c77 CHAR(255), c78 CHAR(255), c79 CHAR(255), c80 CHAR(255),
-+c81 CHAR(255), c82 CHAR(255), c83 CHAR(255), c84 CHAR(255),
-+c85 CHAR(255), c86 CHAR(255), c87 CHAR(255), c88 CHAR(255),
-+c89 CHAR(255), c90 CHAR(255), c91 CHAR(255), c92 CHAR(255),
-+c93 CHAR(255), c94 CHAR(255), c95 CHAR(255), c96 CHAR(255),
-+c97 CHAR(255), c98 CHAR(255), c99 CHAR(255), c100 CHAR(255),
-+c101 CHAR(255), c102 CHAR(255), c103 CHAR(255), c104 CHAR(255),
-+c105 CHAR(255), c106 CHAR(255), c107 CHAR(255), c108 CHAR(255),
-+c109 CHAR(255), c110 CHAR(255), c111 CHAR(255), c112 CHAR(255),
-+c113 CHAR(255), c114 CHAR(255), c115 CHAR(255), c116 CHAR(255),
-+c117 CHAR(255), c118 CHAR(255), c119 CHAR(255), c120 CHAR(255),
-+c121 CHAR(255), c122 CHAR(255), c123 CHAR(255), c124 CHAR(255),
-+c125 CHAR(255), c126 CHAR(255), c127 CHAR(255), c128 CHAR(255)
++c61 CHAR(255), c62 CHAR(255), c63 CHAR(255), c64 CHAR(255)
) ENGINE=INNODB;
DROP TABLE t1;
CREATE TABLE t1 (
@@ -54,26 +38,10 @@
+c53 CHAR(255), c54 CHAR(255), c55 CHAR(255), c56 CHAR(255),
+c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
+c61 CHAR(255), c62 CHAR(255), c63 CHAR(255), c64 CHAR(255),
-+c65 CHAR(255), c66 CHAR(255), c67 CHAR(255), c68 CHAR(255),
-+c69 CHAR(255), c70 CHAR(255), c71 CHAR(255), c72 CHAR(255),
-+c73 CHAR(255), c74 CHAR(255), c75 CHAR(255), c76 CHAR(255),
-+c77 CHAR(255), c78 CHAR(255), c79 CHAR(255), c80 CHAR(255),
-+c81 CHAR(255), c82 CHAR(255), c83 CHAR(255), c84 CHAR(255),
-+c85 CHAR(255), c86 CHAR(255), c87 CHAR(255), c88 CHAR(255),
-+c89 CHAR(255), c90 CHAR(255), c91 CHAR(255), c92 CHAR(255),
-+c93 CHAR(255), c94 CHAR(255), c95 CHAR(255), c96 CHAR(255),
-+c97 CHAR(255), c98 CHAR(255), c99 CHAR(255), c100 CHAR(255),
-+c101 CHAR(255), c102 CHAR(255), c103 CHAR(255), c104 CHAR(255),
-+c105 CHAR(255), c106 CHAR(255), c107 CHAR(255), c108 CHAR(255),
-+c109 CHAR(255), c110 CHAR(255), c111 CHAR(255), c112 CHAR(255),
-+c113 CHAR(255), c114 CHAR(255), c115 CHAR(255), c116 CHAR(255),
-+c117 CHAR(255), c118 CHAR(255), c119 CHAR(255), c120 CHAR(255),
-+c121 CHAR(255), c122 CHAR(255), c123 CHAR(255), c124 CHAR(255),
-+c125 CHAR(255), c126 CHAR(255), c127 CHAR(255), c128 CHAR(255),
-+c129 CHAR(255)
++c65 CHAR(255)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 16383). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 16383. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
CREATE TABLE t1 (
c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
@@ -91,23 +59,7 @@
+c49 VARCHAR(255), c50 VARCHAR(255), c51 VARCHAR(255), c52 VARCHAR(255),
+c53 VARCHAR(255), c54 VARCHAR(255), c55 VARCHAR(255), c56 VARCHAR(255),
+c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
-+c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255), c64 VARCHAR(255),
-+c65 VARCHAR(255), c66 VARCHAR(255), c67 VARCHAR(255), c68 VARCHAR(255),
-+c69 VARCHAR(255), c70 VARCHAR(255), c71 VARCHAR(255), c72 VARCHAR(255),
-+c73 VARCHAR(255), c74 VARCHAR(255), c75 VARCHAR(255), c76 VARCHAR(255),
-+c77 VARCHAR(255), c78 VARCHAR(255), c79 VARCHAR(255), c80 VARCHAR(255),
-+c81 VARCHAR(255), c82 VARCHAR(255), c83 VARCHAR(255), c84 VARCHAR(255),
-+c85 VARCHAR(255), c86 VARCHAR(255), c87 VARCHAR(255), c88 VARCHAR(255),
-+c89 VARCHAR(255), c90 VARCHAR(255), c91 VARCHAR(255), c92 VARCHAR(255),
-+c93 VARCHAR(255), c94 VARCHAR(255), c95 VARCHAR(255), c96 VARCHAR(255),
-+c97 VARCHAR(255), c98 VARCHAR(255), c99 VARCHAR(255), c100 VARCHAR(255),
-+c101 VARCHAR(255), c102 VARCHAR(255), c103 VARCHAR(255), c104 VARCHAR(255),
-+c105 VARCHAR(255), c106 VARCHAR(255), c107 VARCHAR(255), c108 VARCHAR(255),
-+c109 VARCHAR(255), c110 VARCHAR(255), c111 VARCHAR(255), c112 VARCHAR(255),
-+c113 VARCHAR(255), c114 VARCHAR(255), c115 VARCHAR(255), c116 VARCHAR(255),
-+c117 VARCHAR(255), c118 VARCHAR(255), c119 VARCHAR(255), c120 VARCHAR(255),
-+c121 VARCHAR(255), c122 VARCHAR(255), c123 VARCHAR(255), c124 VARCHAR(255),
-+c125 VARCHAR(255), c126 VARCHAR(255), c127 VARCHAR(255)
++c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255)
) ENGINE=INNODB;
DROP TABLE t1;
CREATE TABLE t1 (
@@ -127,26 +79,10 @@
+c49 VARCHAR(255), c50 VARCHAR(255), c51 VARCHAR(255), c52 VARCHAR(255),
+c53 VARCHAR(255), c54 VARCHAR(255), c55 VARCHAR(255), c56 VARCHAR(255),
+c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
-+c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255), c64 VARCHAR(255),
-+c65 VARCHAR(255), c66 VARCHAR(255), c67 VARCHAR(255), c68 VARCHAR(255),
-+c69 VARCHAR(255), c70 VARCHAR(255), c71 VARCHAR(255), c72 VARCHAR(255),
-+c73 VARCHAR(255), c74 VARCHAR(255), c75 VARCHAR(255), c76 VARCHAR(255),
-+c77 VARCHAR(255), c78 VARCHAR(255), c79 VARCHAR(255), c80 VARCHAR(255),
-+c81 VARCHAR(255), c82 VARCHAR(255), c83 VARCHAR(255), c84 VARCHAR(255),
-+c85 VARCHAR(255), c86 VARCHAR(255), c87 VARCHAR(255), c88 VARCHAR(255),
-+c89 VARCHAR(255), c90 VARCHAR(255), c91 VARCHAR(255), c92 VARCHAR(255),
-+c93 VARCHAR(255), c94 VARCHAR(255), c95 VARCHAR(255), c96 VARCHAR(255),
-+c97 VARCHAR(255), c98 VARCHAR(255), c99 VARCHAR(255), c100 VARCHAR(255),
-+c101 VARCHAR(255), c102 VARCHAR(255), c103 VARCHAR(255), c104 VARCHAR(255),
-+c105 VARCHAR(255), c106 VARCHAR(255), c107 VARCHAR(255), c108 VARCHAR(255),
-+c109 VARCHAR(255), c110 VARCHAR(255), c111 VARCHAR(255), c112 VARCHAR(255),
-+c113 VARCHAR(255), c114 VARCHAR(255), c115 VARCHAR(255), c116 VARCHAR(255),
-+c117 VARCHAR(255), c118 VARCHAR(255), c119 VARCHAR(255), c120 VARCHAR(255),
-+c121 VARCHAR(255), c122 VARCHAR(255), c123 VARCHAR(255), c124 VARCHAR(255),
-+c125 VARCHAR(255), c126 VARCHAR(255), c127 VARCHAR(255), c128 VARCHAR(255)
++c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255), c64 VARCHAR(255)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 16383). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 16383. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
CREATE TABLE t1 (
c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
-c5 VARCHAR(788)
@@ -196,7 +132,7 @@
+c77 VARCHAR(788), c78 VARCHAR(788), c79 VARCHAR(788), c80 VARCHAR(788),
+c81 VARCHAR(788), c82 VARCHAR(788), c83 VARCHAR(788)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
CREATE TABLE t1 (
-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
@@ -310,42 +246,7 @@
+c750 TEXT, c751 TEXT, c752 TEXT, c753 TEXT, c754 TEXT, c755 TEXT, c756 TEXT,
+c757 TEXT, c758 TEXT, c759 TEXT, c760 TEXT, c761 TEXT, c762 TEXT, c763 TEXT,
+c764 TEXT, c765 TEXT, c766 TEXT, c767 TEXT, c768 TEXT, c769 TEXT, c770 TEXT,
-+c771 TEXT, c772 TEXT, c773 TEXT, c774 TEXT, c775 TEXT, c776 TEXT, c777 TEXT,
-+c778 TEXT, c779 TEXT, c780 TEXT, c781 TEXT, c782 TEXT, c783 TEXT, c784 TEXT,
-+c785 TEXT, c786 TEXT, c787 TEXT, c788 TEXT, c789 TEXT, c790 TEXT, c791 TEXT,
-+c792 TEXT, c793 TEXT, c794 TEXT, c795 TEXT, c796 TEXT, c797 TEXT, c798 TEXT,
-+c799 TEXT, c800 TEXT, c801 TEXT, c802 TEXT, c803 TEXT, c804 TEXT, c805 TEXT,
-+c806 TEXT, c807 TEXT, c808 TEXT, c809 TEXT, c810 TEXT, c811 TEXT, c812 TEXT,
-+c813 TEXT, c814 TEXT, c815 TEXT, c816 TEXT, c817 TEXT, c818 TEXT, c819 TEXT,
-+c820 TEXT, c821 TEXT, c822 TEXT, c823 TEXT, c824 TEXT, c825 TEXT, c826 TEXT,
-+c827 TEXT, c828 TEXT, c829 TEXT, c830 TEXT, c831 TEXT, c832 TEXT, c833 TEXT,
-+c834 TEXT, c835 TEXT, c836 TEXT, c837 TEXT, c838 TEXT, c839 TEXT, c840 TEXT,
-+c841 TEXT, c842 TEXT, c843 TEXT, c844 TEXT, c845 TEXT, c846 TEXT, c847 TEXT,
-+c848 TEXT, c849 TEXT, c850 TEXT, c851 TEXT, c852 TEXT, c853 TEXT, c854 TEXT,
-+c855 TEXT, c856 TEXT, c857 TEXT, c858 TEXT, c859 TEXT, c860 TEXT, c861 TEXT,
-+c862 TEXT, c863 TEXT, c864 TEXT, c865 TEXT, c866 TEXT, c867 TEXT, c868 TEXT,
-+c869 TEXT, c870 TEXT, c871 TEXT, c872 TEXT, c873 TEXT, c874 TEXT, c875 TEXT,
-+c876 TEXT, c877 TEXT, c878 TEXT, c879 TEXT, c880 TEXT, c881 TEXT, c882 TEXT,
-+c883 TEXT, c884 TEXT, c885 TEXT, c886 TEXT, c887 TEXT, c888 TEXT, c889 TEXT,
-+c890 TEXT, c891 TEXT, c892 TEXT, c893 TEXT, c894 TEXT, c895 TEXT, c896 TEXT,
-+c897 TEXT, c898 TEXT, c899 TEXT, c900 TEXT, c901 TEXT, c902 TEXT, c903 TEXT,
-+c904 TEXT, c905 TEXT, c906 TEXT, c907 TEXT, c908 TEXT, c909 TEXT, c910 TEXT,
-+c911 TEXT, c912 TEXT, c913 TEXT, c914 TEXT, c915 TEXT, c916 TEXT, c917 TEXT,
-+c918 TEXT, c919 TEXT, c920 TEXT, c921 TEXT, c922 TEXT, c923 TEXT, c924 TEXT,
-+c925 TEXT, c926 TEXT, c927 TEXT, c928 TEXT, c929 TEXT, c930 TEXT, c931 TEXT,
-+c932 TEXT, c933 TEXT, c934 TEXT, c935 TEXT, c936 TEXT, c937 TEXT, c938 TEXT,
-+c939 TEXT, c940 TEXT, c941 TEXT, c942 TEXT, c943 TEXT, c944 TEXT, c945 TEXT,
-+c946 TEXT, c947 TEXT, c948 TEXT, c949 TEXT, c950 TEXT, c951 TEXT, c952 TEXT,
-+c953 TEXT, c954 TEXT, c955 TEXT, c956 TEXT, c957 TEXT, c958 TEXT, c959 TEXT,
-+c960 TEXT, c961 TEXT, c962 TEXT, c963 TEXT, c964 TEXT, c965 TEXT, c966 TEXT,
-+c967 TEXT, c968 TEXT, c969 TEXT, c970 TEXT, c971 TEXT, c972 TEXT, c973 TEXT,
-+c974 TEXT, c975 TEXT, c976 TEXT, c977 TEXT, c978 TEXT, c979 TEXT, c980 TEXT,
-+c981 TEXT, c982 TEXT, c983 TEXT, c984 TEXT, c985 TEXT, c986 TEXT, c987 TEXT,
-+c988 TEXT, c989 TEXT, c990 TEXT, c991 TEXT, c992 TEXT, c993 TEXT, c994 TEXT,
-+c995 TEXT, c996 TEXT, c997 TEXT, c998 TEXT, c999 TEXT, c1000 TEXT, c1001 TEXT,
-+c1002 TEXT, c1003 TEXT, c1004 TEXT, c1005 TEXT, c1006 TEXT, c1007 TEXT, c1008 TEXT,
-+c1009 TEXT, c1010 TEXT, c1011 TEXT, c1012 TEXT, c1013 TEXT, c1014 TEXT, c1015 TEXT,
-+c1016 TEXT, c1017 TEXT
++c771 TEXT, c772 TEXT, c773 TEXT, c774 TEXT
) ENGINE=INNODB;
DROP TABLE t1;
CREATE TABLE t1 (
@@ -460,42 +361,7 @@
+c750 TEXT, c751 TEXT, c752 TEXT, c753 TEXT, c754 TEXT, c755 TEXT, c756 TEXT,
+c757 TEXT, c758 TEXT, c759 TEXT, c760 TEXT, c761 TEXT, c762 TEXT, c763 TEXT,
+c764 TEXT, c765 TEXT, c766 TEXT, c767 TEXT, c768 TEXT, c769 TEXT, c770 TEXT,
-+c771 TEXT, c772 TEXT, c773 TEXT, c774 TEXT, c775 TEXT, c776 TEXT, c777 TEXT,
-+c778 TEXT, c779 TEXT, c780 TEXT, c781 TEXT, c782 TEXT, c783 TEXT, c784 TEXT,
-+c785 TEXT, c786 TEXT, c787 TEXT, c788 TEXT, c789 TEXT, c790 TEXT, c791 TEXT,
-+c792 TEXT, c793 TEXT, c794 TEXT, c795 TEXT, c796 TEXT, c797 TEXT, c798 TEXT,
-+c799 TEXT, c800 TEXT, c801 TEXT, c802 TEXT, c803 TEXT, c804 TEXT, c805 TEXT,
-+c806 TEXT, c807 TEXT, c808 TEXT, c809 TEXT, c810 TEXT, c811 TEXT, c812 TEXT,
-+c813 TEXT, c814 TEXT, c815 TEXT, c816 TEXT, c817 TEXT, c818 TEXT, c819 TEXT,
-+c820 TEXT, c821 TEXT, c822 TEXT, c823 TEXT, c824 TEXT, c825 TEXT, c826 TEXT,
-+c827 TEXT, c828 TEXT, c829 TEXT, c830 TEXT, c831 TEXT, c832 TEXT, c833 TEXT,
-+c834 TEXT, c835 TEXT, c836 TEXT, c837 TEXT, c838 TEXT, c839 TEXT, c840 TEXT,
-+c841 TEXT, c842 TEXT, c843 TEXT, c844 TEXT, c845 TEXT, c846 TEXT, c847 TEXT,
-+c848 TEXT, c849 TEXT, c850 TEXT, c851 TEXT, c852 TEXT, c853 TEXT, c854 TEXT,
-+c855 TEXT, c856 TEXT, c857 TEXT, c858 TEXT, c859 TEXT, c860 TEXT, c861 TEXT,
-+c862 TEXT, c863 TEXT, c864 TEXT, c865 TEXT, c866 TEXT, c867 TEXT, c868 TEXT,
-+c869 TEXT, c870 TEXT, c871 TEXT, c872 TEXT, c873 TEXT, c874 TEXT, c875 TEXT,
-+c876 TEXT, c877 TEXT, c878 TEXT, c879 TEXT, c880 TEXT, c881 TEXT, c882 TEXT,
-+c883 TEXT, c884 TEXT, c885 TEXT, c886 TEXT, c887 TEXT, c888 TEXT, c889 TEXT,
-+c890 TEXT, c891 TEXT, c892 TEXT, c893 TEXT, c894 TEXT, c895 TEXT, c896 TEXT,
-+c897 TEXT, c898 TEXT, c899 TEXT, c900 TEXT, c901 TEXT, c902 TEXT, c903 TEXT,
-+c904 TEXT, c905 TEXT, c906 TEXT, c907 TEXT, c908 TEXT, c909 TEXT, c910 TEXT,
-+c911 TEXT, c912 TEXT, c913 TEXT, c914 TEXT, c915 TEXT, c916 TEXT, c917 TEXT,
-+c918 TEXT, c919 TEXT, c920 TEXT, c921 TEXT, c922 TEXT, c923 TEXT, c924 TEXT,
-+c925 TEXT, c926 TEXT, c927 TEXT, c928 TEXT, c929 TEXT, c930 TEXT, c931 TEXT,
-+c932 TEXT, c933 TEXT, c934 TEXT, c935 TEXT, c936 TEXT, c937 TEXT, c938 TEXT,
-+c939 TEXT, c940 TEXT, c941 TEXT, c942 TEXT, c943 TEXT, c944 TEXT, c945 TEXT,
-+c946 TEXT, c947 TEXT, c948 TEXT, c949 TEXT, c950 TEXT, c951 TEXT, c952 TEXT,
-+c953 TEXT, c954 TEXT, c955 TEXT, c956 TEXT, c957 TEXT, c958 TEXT, c959 TEXT,
-+c960 TEXT, c961 TEXT, c962 TEXT, c963 TEXT, c964 TEXT, c965 TEXT, c966 TEXT,
-+c967 TEXT, c968 TEXT, c969 TEXT, c970 TEXT, c971 TEXT, c972 TEXT, c973 TEXT,
-+c974 TEXT, c975 TEXT, c976 TEXT, c977 TEXT, c978 TEXT, c979 TEXT, c980 TEXT,
-+c981 TEXT, c982 TEXT, c983 TEXT, c984 TEXT, c985 TEXT, c986 TEXT, c987 TEXT,
-+c988 TEXT, c989 TEXT, c990 TEXT, c991 TEXT, c992 TEXT, c993 TEXT, c994 TEXT,
-+c995 TEXT, c996 TEXT, c997 TEXT, c998 TEXT, c999 TEXT, c1000 TEXT, c1001 TEXT,
-+c1002 TEXT, c1003 TEXT, c1004 TEXT, c1005 TEXT, c1006 TEXT, c1007 TEXT, c1008 TEXT,
-+c1009 TEXT, c1010 TEXT, c1011 TEXT, c1012 TEXT, c1013 TEXT, c1014 TEXT, c1015 TEXT,
-+c1016 TEXT, c1017 TEXT, c1018 TEXT
++c771 TEXT, c772 TEXT, c773 TEXT, c774 TEXT, c775 TEXT
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR HY000: Can't create table `test`.`t1` (errno: 185 "Too many columns")
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 16383. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size,32k,compact,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,64k,redundant.rdiff
index 1bc03a5d97a..cca3bfcc044 100644
--- a/mysql-test/suite/innodb/r/max_record_size,32k,compact,innodb.rdiff
+++ b/mysql-test/suite/innodb/r/max_record_size,64k,redundant.rdiff
@@ -1,5 +1,5 @@
---- max_record_size.result 2019-07-03 11:54:44.591421526 +0300
-+++ max_record_size.reject 2019-07-03 12:27:08.004932026 +0300
+--- max_record_size.result 2019-09-15 18:41:29.302021718 +0300
++++ max_record_size.reject 2019-09-15 18:48:43.670695779 +0300
@@ -3,45 +3,104 @@
c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
@@ -39,8 +39,8 @@
+c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
+c61 CHAR(255), c62 CHAR(255), c63 CHAR(255), c64 CHAR(255)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 16318). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 16382. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
CREATE TABLE t1 (
c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
@@ -80,8 +80,8 @@
+c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
+c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255), c64 VARCHAR(255)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 16318). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 16382. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
CREATE TABLE t1 (
c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
-c5 VARCHAR(788)
@@ -95,7 +95,7 @@
c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
-c5 VARCHAR(788), c6 VARCHAR(788)
-) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-CREATE TABLE t1 (
-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
+c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
@@ -104,7 +104,7 @@
+c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
+c21 VARCHAR(788)
+) ENGINE=INNODB;
-+ERROR 42000: Row size too large (> 16318). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 16382. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+CREATE TABLE t1 (
+c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
@@ -117,5 +117,5 @@
+c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 16318). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 16382. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size,8k,compact,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,8k,compact,innodb.rdiff
deleted file mode 100644
index 4db669a8aa6..00000000000
--- a/mysql-test/suite/innodb/r/max_record_size,8k,compact,innodb.rdiff
+++ /dev/null
@@ -1,35 +0,0 @@
---- max_record_size.result 2019-07-03 11:54:44.591421526 +0300
-+++ max_record_size.reject 2019-07-03 13:00:25.037261867 +0300
-@@ -12,7 +12,7 @@
- c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
- c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
- ) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 4030). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
- CREATE TABLE t1 (
- c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
- c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
-@@ -26,7 +26,7 @@
- c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
- c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
- ) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 4030). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
- CREATE TABLE t1 (
- c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
- c5 VARCHAR(788)
-@@ -36,7 +36,7 @@
- c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
- c5 VARCHAR(788), c6 VARCHAR(788)
- ) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 4030). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
- CREATE TABLE t1 (
- c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
- ) ENGINE=INNODB;
-@@ -44,4 +44,4 @@
- CREATE TABLE t1 (
- c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT
- ) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 4030). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size,8k,compact.rdiff b/mysql-test/suite/innodb/r/max_record_size,8k,compact.rdiff
new file mode 100644
index 00000000000..3509c105913
--- /dev/null
+++ b/mysql-test/suite/innodb/r/max_record_size,8k,compact.rdiff
@@ -0,0 +1,35 @@
+--- max_record_size.result 2019-09-15 18:41:29.302021718 +0300
++++ max_record_size.reject 2019-09-15 18:52:37.007627202 +0300
+@@ -12,7 +12,7 @@
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+ c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 4029. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+@@ -26,7 +26,7 @@
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+ c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 4029. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+ c5 VARCHAR(788)
+@@ -36,7 +36,7 @@
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+ c5 VARCHAR(788), c6 VARCHAR(788)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 4029. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
+ ) ENGINE=INNODB;
+@@ -44,4 +44,4 @@
+ CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 4029. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size,8k,dynamic,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,8k,dynamic.rdiff
index 5f79d77e7f9..4bd0fe8c314 100644
--- a/mysql-test/suite/innodb/r/max_record_size,8k,dynamic,innodb.rdiff
+++ b/mysql-test/suite/innodb/r/max_record_size,8k,dynamic.rdiff
@@ -1,11 +1,11 @@
---- max_record_size.result 2019-07-03 11:54:44.591421526 +0300
-+++ max_record_size.reject 2019-07-03 13:01:51.215756779 +0300
+--- max_record_size.result 2019-09-15 18:41:29.302021718 +0300
++++ max_record_size.reject 2019-09-15 18:53:54.965731613 +0300
@@ -12,7 +12,7 @@
c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 4030). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 4029. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
CREATE TABLE t1 (
c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
@@ -13,8 +13,8 @@
c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 4030). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 4029. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
CREATE TABLE t1 (
c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
-c5 VARCHAR(788)
@@ -44,7 +44,7 @@
c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
-c5 VARCHAR(788), c6 VARCHAR(788)
-) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-CREATE TABLE t1 (
-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
+c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
@@ -130,5 +130,5 @@
+c183 TEXT, c184 TEXT, c185 TEXT, c186 TEXT, c187 TEXT, c188 TEXT, c189 TEXT,
+c190 TEXT
) ENGINE=INNODB;
--ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> 4030). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+-ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size is greater than 4029. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size.result b/mysql-test/suite/innodb/r/max_record_size.result
index 6eefd262937..c8ee957a21e 100644
--- a/mysql-test/suite/innodb/r/max_record_size.result
+++ b/mysql-test/suite/innodb/r/max_record_size.result
@@ -1,4 +1,4 @@
-call mtr.add_suppression("Cannot add field `.*` in table `test`.`t1` because after adding it, the row size is");
+call mtr.add_suppression('After adding field .* which is greater than maximum allowed size');
CREATE TABLE t1 (
c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
@@ -12,7 +12,7 @@ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
) ENGINE=INNODB;
-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
CREATE TABLE t1 (
c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
@@ -26,7 +26,7 @@ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
) ENGINE=INNODB;
-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
CREATE TABLE t1 (
c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
c5 VARCHAR(788)
@@ -36,7 +36,7 @@ CREATE TABLE t1 (
c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
c5 VARCHAR(788), c6 VARCHAR(788)
) ENGINE=INNODB;
-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
CREATE TABLE t1 (
c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
) ENGINE=INNODB;
@@ -44,4 +44,4 @@ DROP TABLE t1;
CREATE TABLE t1 (
c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT
) ENGINE=INNODB;
-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ERROR 42000: Row size is greater than 4026. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size_compressed,16k.rdiff b/mysql-test/suite/innodb/r/max_record_size_compressed,16k.rdiff
new file mode 100644
index 00000000000..90f6628f359
--- /dev/null
+++ b/mysql-test/suite/innodb/r/max_record_size_compressed,16k.rdiff
@@ -0,0 +1,128 @@
+--- max_record_size_compressed.result 2019-09-15 19:12:49.315970393 +0300
++++ max_record_size_compressed.reject 2019-09-15 19:13:29.127067283 +0300
+@@ -3,30 +3,46 @@
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255)
++c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
++c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
++c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
++c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
++c29 CHAR(255), c30 CHAR(255), c31 CHAR(255)
+ ) ENGINE=INNODB ROW_FORMAT=COMPRESSED;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
++c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
++c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
++c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
++c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
++c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255)
+ ) ENGINE=INNODB ROW_FORMAT=COMPRESSED;
+-ERROR 42000: Row size is greater than 3938. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
++ERROR 42000: Row size is greater than 8002. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255)
++c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
++c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
++c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
++c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
++c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255)
+ ) ENGINE=INNODB ROW_FORMAT=COMPRESSED;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
++c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
++c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
++c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
++c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
++c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255)
+ ) ENGINE=INNODB ROW_FORMAT=COMPRESSED;
+-ERROR 42000: Row size is greater than 3938. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
++ERROR 42000: Row size is greater than 8002. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+ c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+@@ -54,7 +70,35 @@
+ c162 TEXT, c163 TEXT, c164 TEXT, c165 TEXT, c166 TEXT, c167 TEXT, c168 TEXT,
+ c169 TEXT, c170 TEXT, c171 TEXT, c172 TEXT, c173 TEXT, c174 TEXT, c175 TEXT,
+ c176 TEXT, c177 TEXT, c178 TEXT, c179 TEXT, c180 TEXT, c181 TEXT, c182 TEXT,
+-c183 TEXT, c184 TEXT, c185 TEXT, c186 TEXT, c187 TEXT, c188 TEXT, c189 TEXT
++c183 TEXT, c184 TEXT, c185 TEXT, c186 TEXT, c187 TEXT, c188 TEXT, c189 TEXT,
++c190 TEXT, c191 TEXT, c192 TEXT, c193 TEXT, c194 TEXT, c195 TEXT, c196 TEXT,
++c197 TEXT, c198 TEXT, c199 TEXT, c200 TEXT, c201 TEXT, c202 TEXT, c203 TEXT,
++c204 TEXT, c205 TEXT, c206 TEXT, c207 TEXT, c208 TEXT, c209 TEXT, c210 TEXT,
++c211 TEXT, c212 TEXT, c213 TEXT, c214 TEXT, c215 TEXT, c216 TEXT, c217 TEXT,
++c218 TEXT, c219 TEXT, c220 TEXT, c221 TEXT, c222 TEXT, c223 TEXT, c224 TEXT,
++c225 TEXT, c226 TEXT, c227 TEXT, c228 TEXT, c229 TEXT, c230 TEXT, c231 TEXT,
++c232 TEXT, c233 TEXT, c234 TEXT, c235 TEXT, c236 TEXT, c237 TEXT, c238 TEXT,
++c239 TEXT, c240 TEXT, c241 TEXT, c242 TEXT, c243 TEXT, c244 TEXT, c245 TEXT,
++c246 TEXT, c247 TEXT, c248 TEXT, c249 TEXT, c250 TEXT, c251 TEXT, c252 TEXT,
++c253 TEXT, c254 TEXT, c255 TEXT, c256 TEXT, c257 TEXT, c258 TEXT, c259 TEXT,
++c260 TEXT, c261 TEXT, c262 TEXT, c263 TEXT, c264 TEXT, c265 TEXT, c266 TEXT,
++c267 TEXT, c268 TEXT, c269 TEXT, c270 TEXT, c271 TEXT, c272 TEXT, c273 TEXT,
++c274 TEXT, c275 TEXT, c276 TEXT, c277 TEXT, c278 TEXT, c279 TEXT, c280 TEXT,
++c281 TEXT, c282 TEXT, c283 TEXT, c284 TEXT, c285 TEXT, c286 TEXT, c287 TEXT,
++c288 TEXT, c289 TEXT, c290 TEXT, c291 TEXT, c292 TEXT, c293 TEXT, c294 TEXT,
++c295 TEXT, c296 TEXT, c297 TEXT, c298 TEXT, c299 TEXT, c300 TEXT, c301 TEXT,
++c302 TEXT, c303 TEXT, c304 TEXT, c305 TEXT, c306 TEXT, c307 TEXT, c308 TEXT,
++c309 TEXT, c310 TEXT, c311 TEXT, c312 TEXT, c313 TEXT, c314 TEXT, c315 TEXT,
++c316 TEXT, c317 TEXT, c318 TEXT, c319 TEXT, c320 TEXT, c321 TEXT, c322 TEXT,
++c323 TEXT, c324 TEXT, c325 TEXT, c326 TEXT, c327 TEXT, c328 TEXT, c329 TEXT,
++c330 TEXT, c331 TEXT, c332 TEXT, c333 TEXT, c334 TEXT, c335 TEXT, c336 TEXT,
++c337 TEXT, c338 TEXT, c339 TEXT, c340 TEXT, c341 TEXT, c342 TEXT, c343 TEXT,
++c344 TEXT, c345 TEXT, c346 TEXT, c347 TEXT, c348 TEXT, c349 TEXT, c350 TEXT,
++c351 TEXT, c352 TEXT, c353 TEXT, c354 TEXT, c355 TEXT, c356 TEXT, c357 TEXT,
++c358 TEXT, c359 TEXT, c360 TEXT, c361 TEXT, c362 TEXT, c363 TEXT, c364 TEXT,
++c365 TEXT, c366 TEXT, c367 TEXT, c368 TEXT, c369 TEXT, c370 TEXT, c371 TEXT,
++c372 TEXT, c373 TEXT, c374 TEXT, c375 TEXT, c376 TEXT, c377 TEXT, c378 TEXT,
++c379 TEXT, c380 TEXT, c381 TEXT, c382 TEXT, c383 TEXT
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+@@ -85,6 +129,33 @@
+ c169 TEXT, c170 TEXT, c171 TEXT, c172 TEXT, c173 TEXT, c174 TEXT, c175 TEXT,
+ c176 TEXT, c177 TEXT, c178 TEXT, c179 TEXT, c180 TEXT, c181 TEXT, c182 TEXT,
+ c183 TEXT, c184 TEXT, c185 TEXT, c186 TEXT, c187 TEXT, c188 TEXT, c189 TEXT,
+-c190 TEXT
++c190 TEXT, c191 TEXT, c192 TEXT, c193 TEXT, c194 TEXT, c195 TEXT, c196 TEXT,
++c197 TEXT, c198 TEXT, c199 TEXT, c200 TEXT, c201 TEXT, c202 TEXT, c203 TEXT,
++c204 TEXT, c205 TEXT, c206 TEXT, c207 TEXT, c208 TEXT, c209 TEXT, c210 TEXT,
++c211 TEXT, c212 TEXT, c213 TEXT, c214 TEXT, c215 TEXT, c216 TEXT, c217 TEXT,
++c218 TEXT, c219 TEXT, c220 TEXT, c221 TEXT, c222 TEXT, c223 TEXT, c224 TEXT,
++c225 TEXT, c226 TEXT, c227 TEXT, c228 TEXT, c229 TEXT, c230 TEXT, c231 TEXT,
++c232 TEXT, c233 TEXT, c234 TEXT, c235 TEXT, c236 TEXT, c237 TEXT, c238 TEXT,
++c239 TEXT, c240 TEXT, c241 TEXT, c242 TEXT, c243 TEXT, c244 TEXT, c245 TEXT,
++c246 TEXT, c247 TEXT, c248 TEXT, c249 TEXT, c250 TEXT, c251 TEXT, c252 TEXT,
++c253 TEXT, c254 TEXT, c255 TEXT, c256 TEXT, c257 TEXT, c258 TEXT, c259 TEXT,
++c260 TEXT, c261 TEXT, c262 TEXT, c263 TEXT, c264 TEXT, c265 TEXT, c266 TEXT,
++c267 TEXT, c268 TEXT, c269 TEXT, c270 TEXT, c271 TEXT, c272 TEXT, c273 TEXT,
++c274 TEXT, c275 TEXT, c276 TEXT, c277 TEXT, c278 TEXT, c279 TEXT, c280 TEXT,
++c281 TEXT, c282 TEXT, c283 TEXT, c284 TEXT, c285 TEXT, c286 TEXT, c287 TEXT,
++c288 TEXT, c289 TEXT, c290 TEXT, c291 TEXT, c292 TEXT, c293 TEXT, c294 TEXT,
++c295 TEXT, c296 TEXT, c297 TEXT, c298 TEXT, c299 TEXT, c300 TEXT, c301 TEXT,
++c302 TEXT, c303 TEXT, c304 TEXT, c305 TEXT, c306 TEXT, c307 TEXT, c308 TEXT,
++c309 TEXT, c310 TEXT, c311 TEXT, c312 TEXT, c313 TEXT, c314 TEXT, c315 TEXT,
++c316 TEXT, c317 TEXT, c318 TEXT, c319 TEXT, c320 TEXT, c321 TEXT, c322 TEXT,
++c323 TEXT, c324 TEXT, c325 TEXT, c326 TEXT, c327 TEXT, c328 TEXT, c329 TEXT,
++c330 TEXT, c331 TEXT, c332 TEXT, c333 TEXT, c334 TEXT, c335 TEXT, c336 TEXT,
++c337 TEXT, c338 TEXT, c339 TEXT, c340 TEXT, c341 TEXT, c342 TEXT, c343 TEXT,
++c344 TEXT, c345 TEXT, c346 TEXT, c347 TEXT, c348 TEXT, c349 TEXT, c350 TEXT,
++c351 TEXT, c352 TEXT, c353 TEXT, c354 TEXT, c355 TEXT, c356 TEXT, c357 TEXT,
++c358 TEXT, c359 TEXT, c360 TEXT, c361 TEXT, c362 TEXT, c363 TEXT, c364 TEXT,
++c365 TEXT, c366 TEXT, c367 TEXT, c368 TEXT, c369 TEXT, c370 TEXT, c371 TEXT,
++c372 TEXT, c373 TEXT, c374 TEXT, c375 TEXT, c376 TEXT, c377 TEXT, c378 TEXT,
++c379 TEXT, c380 TEXT, c381 TEXT, c382 TEXT, c383 TEXT, c384 TEXT
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size is greater than 4029. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
++ERROR 42000: Row size is greater than 8125. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size_compressed,4k.rdiff b/mysql-test/suite/innodb/r/max_record_size_compressed,4k.rdiff
new file mode 100644
index 00000000000..855db8ab8f0
--- /dev/null
+++ b/mysql-test/suite/innodb/r/max_record_size_compressed,4k.rdiff
@@ -0,0 +1,86 @@
+--- max_record_size_compressed.result 2019-09-15 19:12:49.315970393 +0300
++++ max_record_size_compressed.reject 2019-09-15 19:13:57.926386109 +0300
+@@ -1,32 +1,24 @@
+ call mtr.add_suppression('After adding field .* which is greater than maximum allowed size');
+ CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+-c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+-c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255)
++c5 CHAR(255), c6 CHAR(255), c7 CHAR(255)
+ ) ENGINE=INNODB ROW_FORMAT=COMPRESSED;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+-c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+-c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
++c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255)
+ ) ENGINE=INNODB ROW_FORMAT=COMPRESSED;
+-ERROR 42000: Row size is greater than 3938. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
++ERROR 42000: Row size is greater than 1906. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+-c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+-c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255)
++c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255)
+ ) ENGINE=INNODB ROW_FORMAT=COMPRESSED;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+-c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+-c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
++c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255)
+ ) ENGINE=INNODB ROW_FORMAT=COMPRESSED;
+-ERROR 42000: Row size is greater than 3938. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
++ERROR 42000: Row size is greater than 1906. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+ c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+@@ -41,20 +33,7 @@
+ c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
+ c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
+ c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
+-c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT,
+-c99 TEXT, c100 TEXT, c101 TEXT, c102 TEXT, c103 TEXT, c104 TEXT, c105 TEXT,
+-c106 TEXT, c107 TEXT, c108 TEXT, c109 TEXT, c110 TEXT, c111 TEXT, c112 TEXT,
+-c113 TEXT, c114 TEXT, c115 TEXT, c116 TEXT, c117 TEXT, c118 TEXT, c119 TEXT,
+-c120 TEXT, c121 TEXT, c122 TEXT, c123 TEXT, c124 TEXT, c125 TEXT, c126 TEXT,
+-c127 TEXT, c128 TEXT, c129 TEXT, c130 TEXT, c131 TEXT, c132 TEXT, c133 TEXT,
+-c134 TEXT, c135 TEXT, c136 TEXT, c137 TEXT, c138 TEXT, c139 TEXT, c140 TEXT,
+-c141 TEXT, c142 TEXT, c143 TEXT, c144 TEXT, c145 TEXT, c146 TEXT, c147 TEXT,
+-c148 TEXT, c149 TEXT, c150 TEXT, c151 TEXT, c152 TEXT, c153 TEXT, c154 TEXT,
+-c155 TEXT, c156 TEXT, c157 TEXT, c158 TEXT, c159 TEXT, c160 TEXT, c161 TEXT,
+-c162 TEXT, c163 TEXT, c164 TEXT, c165 TEXT, c166 TEXT, c167 TEXT, c168 TEXT,
+-c169 TEXT, c170 TEXT, c171 TEXT, c172 TEXT, c173 TEXT, c174 TEXT, c175 TEXT,
+-c176 TEXT, c177 TEXT, c178 TEXT, c179 TEXT, c180 TEXT, c181 TEXT, c182 TEXT,
+-c183 TEXT, c184 TEXT, c185 TEXT, c186 TEXT, c187 TEXT, c188 TEXT, c189 TEXT
++c92 TEXT
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+@@ -71,20 +50,6 @@
+ c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
+ c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
+ c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
+-c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT,
+-c99 TEXT, c100 TEXT, c101 TEXT, c102 TEXT, c103 TEXT, c104 TEXT, c105 TEXT,
+-c106 TEXT, c107 TEXT, c108 TEXT, c109 TEXT, c110 TEXT, c111 TEXT, c112 TEXT,
+-c113 TEXT, c114 TEXT, c115 TEXT, c116 TEXT, c117 TEXT, c118 TEXT, c119 TEXT,
+-c120 TEXT, c121 TEXT, c122 TEXT, c123 TEXT, c124 TEXT, c125 TEXT, c126 TEXT,
+-c127 TEXT, c128 TEXT, c129 TEXT, c130 TEXT, c131 TEXT, c132 TEXT, c133 TEXT,
+-c134 TEXT, c135 TEXT, c136 TEXT, c137 TEXT, c138 TEXT, c139 TEXT, c140 TEXT,
+-c141 TEXT, c142 TEXT, c143 TEXT, c144 TEXT, c145 TEXT, c146 TEXT, c147 TEXT,
+-c148 TEXT, c149 TEXT, c150 TEXT, c151 TEXT, c152 TEXT, c153 TEXT, c154 TEXT,
+-c155 TEXT, c156 TEXT, c157 TEXT, c158 TEXT, c159 TEXT, c160 TEXT, c161 TEXT,
+-c162 TEXT, c163 TEXT, c164 TEXT, c165 TEXT, c166 TEXT, c167 TEXT, c168 TEXT,
+-c169 TEXT, c170 TEXT, c171 TEXT, c172 TEXT, c173 TEXT, c174 TEXT, c175 TEXT,
+-c176 TEXT, c177 TEXT, c178 TEXT, c179 TEXT, c180 TEXT, c181 TEXT, c182 TEXT,
+-c183 TEXT, c184 TEXT, c185 TEXT, c186 TEXT, c187 TEXT, c188 TEXT, c189 TEXT,
+-c190 TEXT
++c92 TEXT, c93 TEXT
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size is greater than 4029. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
++ERROR 42000: Row size is greater than 1981. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size_compressed.result b/mysql-test/suite/innodb/r/max_record_size_compressed.result
new file mode 100644
index 00000000000..542236e2ec3
--- /dev/null
+++ b/mysql-test/suite/innodb/r/max_record_size_compressed.result
@@ -0,0 +1,90 @@
+call mtr.add_suppression('After adding field .* which is greater than maximum allowed size');
+CREATE TABLE t1 (
+c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+c13 CHAR(255), c14 CHAR(255), c15 CHAR(255)
+) ENGINE=INNODB ROW_FORMAT=COMPRESSED;
+DROP TABLE t1;
+CREATE TABLE t1 (
+c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
+) ENGINE=INNODB ROW_FORMAT=COMPRESSED;
+ERROR 42000: Row size is greater than 3938. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+CREATE TABLE t1 (
+c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255)
+) ENGINE=INNODB ROW_FORMAT=COMPRESSED;
+DROP TABLE t1;
+CREATE TABLE t1 (
+c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
+) ENGINE=INNODB ROW_FORMAT=COMPRESSED;
+ERROR 42000: Row size is greater than 3938. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+CREATE TABLE t1 (
+c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
+c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
+c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
+c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT,
+c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT,
+c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT,
+c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT,
+c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT,
+c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
+c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
+c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
+c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT,
+c99 TEXT, c100 TEXT, c101 TEXT, c102 TEXT, c103 TEXT, c104 TEXT, c105 TEXT,
+c106 TEXT, c107 TEXT, c108 TEXT, c109 TEXT, c110 TEXT, c111 TEXT, c112 TEXT,
+c113 TEXT, c114 TEXT, c115 TEXT, c116 TEXT, c117 TEXT, c118 TEXT, c119 TEXT,
+c120 TEXT, c121 TEXT, c122 TEXT, c123 TEXT, c124 TEXT, c125 TEXT, c126 TEXT,
+c127 TEXT, c128 TEXT, c129 TEXT, c130 TEXT, c131 TEXT, c132 TEXT, c133 TEXT,
+c134 TEXT, c135 TEXT, c136 TEXT, c137 TEXT, c138 TEXT, c139 TEXT, c140 TEXT,
+c141 TEXT, c142 TEXT, c143 TEXT, c144 TEXT, c145 TEXT, c146 TEXT, c147 TEXT,
+c148 TEXT, c149 TEXT, c150 TEXT, c151 TEXT, c152 TEXT, c153 TEXT, c154 TEXT,
+c155 TEXT, c156 TEXT, c157 TEXT, c158 TEXT, c159 TEXT, c160 TEXT, c161 TEXT,
+c162 TEXT, c163 TEXT, c164 TEXT, c165 TEXT, c166 TEXT, c167 TEXT, c168 TEXT,
+c169 TEXT, c170 TEXT, c171 TEXT, c172 TEXT, c173 TEXT, c174 TEXT, c175 TEXT,
+c176 TEXT, c177 TEXT, c178 TEXT, c179 TEXT, c180 TEXT, c181 TEXT, c182 TEXT,
+c183 TEXT, c184 TEXT, c185 TEXT, c186 TEXT, c187 TEXT, c188 TEXT, c189 TEXT
+) ENGINE=INNODB;
+DROP TABLE t1;
+CREATE TABLE t1 (
+c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
+c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
+c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
+c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT,
+c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT,
+c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT,
+c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT,
+c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT,
+c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
+c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
+c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
+c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT,
+c99 TEXT, c100 TEXT, c101 TEXT, c102 TEXT, c103 TEXT, c104 TEXT, c105 TEXT,
+c106 TEXT, c107 TEXT, c108 TEXT, c109 TEXT, c110 TEXT, c111 TEXT, c112 TEXT,
+c113 TEXT, c114 TEXT, c115 TEXT, c116 TEXT, c117 TEXT, c118 TEXT, c119 TEXT,
+c120 TEXT, c121 TEXT, c122 TEXT, c123 TEXT, c124 TEXT, c125 TEXT, c126 TEXT,
+c127 TEXT, c128 TEXT, c129 TEXT, c130 TEXT, c131 TEXT, c132 TEXT, c133 TEXT,
+c134 TEXT, c135 TEXT, c136 TEXT, c137 TEXT, c138 TEXT, c139 TEXT, c140 TEXT,
+c141 TEXT, c142 TEXT, c143 TEXT, c144 TEXT, c145 TEXT, c146 TEXT, c147 TEXT,
+c148 TEXT, c149 TEXT, c150 TEXT, c151 TEXT, c152 TEXT, c153 TEXT, c154 TEXT,
+c155 TEXT, c156 TEXT, c157 TEXT, c158 TEXT, c159 TEXT, c160 TEXT, c161 TEXT,
+c162 TEXT, c163 TEXT, c164 TEXT, c165 TEXT, c166 TEXT, c167 TEXT, c168 TEXT,
+c169 TEXT, c170 TEXT, c171 TEXT, c172 TEXT, c173 TEXT, c174 TEXT, c175 TEXT,
+c176 TEXT, c177 TEXT, c178 TEXT, c179 TEXT, c180 TEXT, c181 TEXT, c182 TEXT,
+c183 TEXT, c184 TEXT, c185 TEXT, c186 TEXT, c187 TEXT, c188 TEXT, c189 TEXT,
+c190 TEXT
+) ENGINE=INNODB;
+ERROR 42000: Row size is greater than 4029. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/strict_mode.result b/mysql-test/suite/innodb/r/strict_mode.result
index 3565fc57e4d..7ae34ece57d 100644
--- a/mysql-test/suite/innodb/r/strict_mode.result
+++ b/mysql-test/suite/innodb/r/strict_mode.result
@@ -2,7 +2,7 @@
# Bug #17852083 PRINT A WARNING WHEN DDL HAS AN ERROR IN
# INNODB_STRICT_MODE = 1
#
-call mtr.add_suppression("InnoDB: Cannot add field .* in table .* because after adding it, the row size is .* which is greater than maximum allowed size (.*) for a record on index leaf page.");
+call mtr.add_suppression('After adding field .* which is greater than maximum allowed size');
set innodb_strict_mode = 0;
create table t1 (id int auto_increment primary key,
v varchar(32),
@@ -391,8 +391,8 @@ col382 text,
col383 text
) ENGINE=InnoDB;
Warnings:
-Warning 139 Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+Warning 139 Row size is greater than 8125. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
set innodb_strict_mode = 1;
alter table t1 engine=InnoDB;
-ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
+ERROR 42000: Row size is greater than 8125. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
drop table t1;
diff --git a/mysql-test/suite/innodb/r/undo_log.result b/mysql-test/suite/innodb/r/undo_log.result
index 7892e26d896..3aa96fe1a26 100644
--- a/mysql-test/suite/innodb/r/undo_log.result
+++ b/mysql-test/suite/innodb/r/undo_log.result
@@ -1,4 +1,4 @@
-call mtr.add_suppression("Cannot add field `b_str_20` in table `test`.`test_tab` because after adding it, the row size is");
+call mtr.add_suppression('After adding field .* which is greater than maximum allowed size');
SET innodb_strict_mode=OFF;
CREATE TABLE test_tab (
a_str_18 mediumtext,
@@ -126,7 +126,7 @@ KEY b_str_31 (b_str_31),
KEY a_ref_11 (a_ref_11)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
Warnings:
-Warning 139 Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+Warning 139 Row size is greater than 8125. Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
SET innodb_strict_mode=ON;
BEGIN;
INSERT INTO test_tab (b_str_26, a_str_13, a_str_18) VALUES
diff --git a/mysql-test/suite/innodb/t/file_format_defaults.test b/mysql-test/suite/innodb/t/file_format_defaults.test
index d276ad6e834..837d5b76d35 100644
--- a/mysql-test/suite/innodb/t/file_format_defaults.test
+++ b/mysql-test/suite/innodb/t/file_format_defaults.test
@@ -9,7 +9,7 @@
-- source include/have_innodb.inc
-- source include/have_innodb_16k.inc
-call mtr.add_suppression("InnoDB: Cannot add field `c1` in table `test`\\.`tab0`");
+call mtr.add_suppression('After adding field .* which is greater than maximum allowed size');
# Check some default settings
SELECT @@innodb_strict_mode;
diff --git a/mysql-test/suite/innodb/t/innodb-16k.test b/mysql-test/suite/innodb/t/innodb-16k.test
index 8bde997ed04..faa6a7f8ffd 100644
--- a/mysql-test/suite/innodb/t/innodb-16k.test
+++ b/mysql-test/suite/innodb/t/innodb-16k.test
@@ -3,7 +3,7 @@
--source include/have_innodb.inc
--source include/have_innodb_16k.inc
-call mtr.add_suppression("InnoDB: Cannot add field .* in table .* because after adding it, the row size is .* which is greater than maximum allowed size (.*) for a record on index leaf page.");
+call mtr.add_suppression('After adding field .* which is greater than maximum allowed size');
--disable_query_log
let $MYSQLD_DATADIR= `select @@datadir`;
@@ -18,15 +18,12 @@ SELECT variable_value FROM information_schema.global_status
WHERE LOWER(variable_name) = 'innodb_page_size';
--echo # Test 4) The maximum row size is dependent upon the page size.
---echo # Redundant: 8123, Compact: 8126.
---echo # Compressed: 8126, Dynamic: 8126.
--echo # Each row format has its own amount of overhead that
--echo # varies depending on number of fields and other overhead.
SET SESSION innodb_strict_mode = ON;
-# Compressed table; 7959 bytes with 40 CHAR fields
CREATE TABLE t1 (
c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
@@ -35,7 +32,7 @@ c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(157)
+c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(160)
) ROW_FORMAT=compressed;
DROP TABLE t1;
@@ -49,7 +46,7 @@ c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(160)
+c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(161)
) ROW_FORMAT=compressed;
#
@@ -448,7 +445,7 @@ ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4 CHARSET=ASCII;
drop table t1;
--error ER_TOO_BIG_ROWSIZE
-CREATE TABLE t1(c text, PRIMARY KEY (c(440)))
+CREATE TABLE t1(c text, PRIMARY KEY (c(445)))
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
CREATE TABLE t1(c text, PRIMARY KEY (c(438)))
diff --git a/mysql-test/suite/innodb/t/innodb-32k-crash.test b/mysql-test/suite/innodb/t/innodb-32k-crash.test
index da6d91f351e..e26769cb678 100644
--- a/mysql-test/suite/innodb/t/innodb-32k-crash.test
+++ b/mysql-test/suite/innodb/t/innodb-32k-crash.test
@@ -5,7 +5,7 @@
let $MYSQLD_DATADIR= `select @@datadir`;
-call mtr.add_suppression("Cannot add field `u` in table `test`.`t2` because after adding it, the row size is");
+call mtr.add_suppression('After adding field .* which is greater than maximum allowed size');
CREATE TABLE t1(a blob,b blob,c blob,d blob,e blob,f blob,g blob,
h blob,i blob,j blob,k blob,l blob,m blob,n blob,
diff --git a/mysql-test/suite/innodb/t/innodb-64k-crash.test b/mysql-test/suite/innodb/t/innodb-64k-crash.test
index cbec1a452c7..240dbfa5256 100644
--- a/mysql-test/suite/innodb/t/innodb-64k-crash.test
+++ b/mysql-test/suite/innodb/t/innodb-64k-crash.test
@@ -5,7 +5,7 @@
let $MYSQLD_DATADIR= `select @@datadir`;
-call mtr.add_suppression("Cannot add field `pa` in table `test`.`t2` because after adding it, the row size is");
+call mtr.add_suppression('After adding field .* which is greater than maximum allowed size');
CREATE TABLE t1(a blob,b blob,c blob,d blob,e blob,f blob,g blob,
h blob,i blob,j blob,k blob,l blob,m blob,n blob,
diff --git a/mysql-test/suite/innodb/t/innodb-64k.test b/mysql-test/suite/innodb/t/innodb-64k.test
index b091eee6d57..34a0dd68231 100644
--- a/mysql-test/suite/innodb/t/innodb-64k.test
+++ b/mysql-test/suite/innodb/t/innodb-64k.test
@@ -3,7 +3,7 @@
--source include/have_innodb.inc
--source include/have_innodb_64k.inc
-call mtr.add_suppression('InnoDB: Cannot add field.*because after adding it, the row size is');
+call mtr.add_suppression('InnoDB: After adding field .* which is greater than maximum allowed size');
let $MYSQLD_DATADIR= `select @@datadir`;
@@ -32,8 +32,6 @@ col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255)
ENGINE = innodb ROW_FORMAT=REDUNDANT;
show warnings;
-# Compact table, 32701 bytes
-
CREATE TABLE t1 (
c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
@@ -51,29 +49,11 @@ c61 char(200), c62 char(200), c63 char(200), c64 char(200), c65 char(200),
c66 char(200), c67 char(200), c68 char(200), c69 char(200), c70 char(200),
c71 char(200), c72 char(200), c73 char(200), c74 char(200), c75 char(200),
c76 char(200), c77 char(200), c78 char(200), c79 char(200), c80 char(200),
-c101 char(200), c102 char(200), c103 char(200), c104 char(200), c105 char(200),
-c106 char(200), c107 char(200), c108 char(200), c109 char(200), c110 char(200),
-c111 char(200), c112 char(200), c113 char(200), c114 char(200), c115 char(200),
-c116 char(200), c117 char(200), c118 char(200), c119 char(200), c120 char(200),
-c121 char(200), c122 char(200), c123 char(200), c124 char(200), c125 char(200),
-c126 char(200), c127 char(200), c128 char(200), c129 char(200), c130 char(200),
-c131 char(200), c132 char(200), c133 char(200), c134 char(200), c135 char(200),
-c136 char(200), c137 char(200), c138 char(200), c139 char(200), c140 char(200),
-c141 char(200), c142 char(200), c143 char(200), c144 char(200), c145 char(200),
-c146 char(200), c147 char(200), c148 char(200), c149 char(200), c150 char(200),
-c151 char(200), c152 char(200), c153 char(200), c154 char(200), c155 char(200),
-c156 char(200), c157 char(200), c158 char(200), c159 char(200), c160 char(200),
-c161 char(200), c162 char(200), c163 char(200), c164 char(200), c165 char(200),
-c166 char(200), c167 char(200), c168 char(200), c169 char(200), c170 char(200),
-c171 char(200), c172 char(200), c173 char(200), c174 char(200), c175 char(200),
-c176 char(200), c177 char(200), c178 char(200), c179 char(200), c180 char(200),
-c190 char(200), c191 char(200), c192 char(100),
-c81 char(156)
+c81 char(200), c82 char(148)
) ROW_FORMAT=compact;
DROP TABLE t1;
---replace_regex /> [0-9]*/> max_row_size/
--error ER_TOO_BIG_ROWSIZE
CREATE TABLE t1 (
c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
@@ -92,28 +72,9 @@ c61 char(200), c62 char(200), c63 char(200), c64 char(200), c65 char(200),
c66 char(200), c67 char(200), c68 char(200), c69 char(200), c70 char(200),
c71 char(200), c72 char(200), c73 char(200), c74 char(200), c75 char(200),
c76 char(200), c77 char(200), c78 char(200), c79 char(200), c80 char(200),
-c101 char(200), c102 char(200), c103 char(200), c104 char(200), c105 char(200),
-c106 char(200), c107 char(200), c108 char(200), c109 char(200), c110 char(200),
-c111 char(200), c112 char(200), c113 char(200), c114 char(200), c115 char(200),
-c116 char(200), c117 char(200), c118 char(200), c119 char(200), c120 char(200),
-c121 char(200), c122 char(200), c123 char(200), c124 char(200), c125 char(200),
-c126 char(200), c127 char(200), c128 char(200), c129 char(200), c130 char(200),
-c131 char(200), c132 char(200), c133 char(200), c134 char(200), c135 char(200),
-c136 char(200), c137 char(200), c138 char(200), c139 char(200), c140 char(200),
-c141 char(200), c142 char(200), c143 char(200), c144 char(200), c145 char(200),
-c146 char(200), c147 char(200), c148 char(200), c149 char(200), c150 char(200),
-c151 char(200), c152 char(200), c153 char(200), c154 char(200), c155 char(200),
-c156 char(200), c157 char(200), c158 char(200), c159 char(200), c160 char(200),
-c161 char(200), c162 char(200), c163 char(200), c164 char(200), c165 char(200),
-c166 char(200), c167 char(200), c168 char(200), c169 char(200), c170 char(200),
-c171 char(200), c172 char(200), c173 char(200), c174 char(200), c175 char(200),
-c176 char(200), c177 char(200), c178 char(200), c179 char(200), c180 char(200),
-c190 char(200), c191 char(200), c192 char(100),
-c81 char(157)
+c81 char(200), c82 char(149)
) ROW_FORMAT=compact;
-# Dynamic table, 32701 bytes
-
CREATE TABLE t1 (
c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
@@ -131,29 +92,11 @@ c61 char(200), c62 char(200), c63 char(200), c64 char(200), c65 char(200),
c66 char(200), c67 char(200), c68 char(200), c69 char(200), c70 char(200),
c71 char(200), c72 char(200), c73 char(200), c74 char(200), c75 char(200),
c76 char(200), c77 char(200), c78 char(200), c79 char(200), c80 char(200),
-c101 char(200), c102 char(200), c103 char(200), c104 char(200), c105 char(200),
-c106 char(200), c107 char(200), c108 char(200), c109 char(200), c110 char(200),
-c111 char(200), c112 char(200), c113 char(200), c114 char(200), c115 char(200),
-c116 char(200), c117 char(200), c118 char(200), c119 char(200), c120 char(200),
-c121 char(200), c122 char(200), c123 char(200), c124 char(200), c125 char(200),
-c126 char(200), c127 char(200), c128 char(200), c129 char(200), c130 char(200),
-c131 char(200), c132 char(200), c133 char(200), c134 char(200), c135 char(200),
-c136 char(200), c137 char(200), c138 char(200), c139 char(200), c140 char(200),
-c141 char(200), c142 char(200), c143 char(200), c144 char(200), c145 char(200),
-c146 char(200), c147 char(200), c148 char(200), c149 char(200), c150 char(200),
-c151 char(200), c152 char(200), c153 char(200), c154 char(200), c155 char(200),
-c156 char(200), c157 char(200), c158 char(200), c159 char(200), c160 char(200),
-c161 char(200), c162 char(200), c163 char(200), c164 char(200), c165 char(200),
-c166 char(200), c167 char(200), c168 char(200), c169 char(200), c170 char(200),
-c171 char(200), c172 char(200), c173 char(200), c174 char(200), c175 char(200),
-c176 char(200), c177 char(200), c178 char(200), c179 char(200), c180 char(200),
-c190 char(200), c191 char(200), c192 char(100),
-c81 char(156)
+c81 char(200), c82 char(148)
) ROW_FORMAT=dynamic;
DROP TABLE t1;
---replace_regex /> [0-9]*/> max_row_size/
--error ER_TOO_BIG_ROWSIZE
CREATE TABLE t1 (
c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
@@ -172,24 +115,7 @@ c61 char(200), c62 char(200), c63 char(200), c64 char(200), c65 char(200),
c66 char(200), c67 char(200), c68 char(200), c69 char(200), c70 char(200),
c71 char(200), c72 char(200), c73 char(200), c74 char(200), c75 char(200),
c76 char(200), c77 char(200), c78 char(200), c79 char(200), c80 char(200),
-c101 char(200), c102 char(200), c103 char(200), c104 char(200), c105 char(200),
-c106 char(200), c107 char(200), c108 char(200), c109 char(200), c110 char(200),
-c111 char(200), c112 char(200), c113 char(200), c114 char(200), c115 char(200),
-c116 char(200), c117 char(200), c118 char(200), c119 char(200), c120 char(200),
-c121 char(200), c122 char(200), c123 char(200), c124 char(200), c125 char(200),
-c126 char(200), c127 char(200), c128 char(200), c129 char(200), c130 char(200),
-c131 char(200), c132 char(200), c133 char(200), c134 char(200), c135 char(200),
-c136 char(200), c137 char(200), c138 char(200), c139 char(200), c140 char(200),
-c141 char(200), c142 char(200), c143 char(200), c144 char(200), c145 char(200),
-c146 char(200), c147 char(200), c148 char(200), c149 char(200), c150 char(200),
-c151 char(200), c152 char(200), c153 char(200), c154 char(200), c155 char(200),
-c156 char(200), c157 char(200), c158 char(200), c159 char(200), c160 char(200),
-c161 char(200), c162 char(200), c163 char(200), c164 char(200), c165 char(200),
-c166 char(200), c167 char(200), c168 char(200), c169 char(200), c170 char(200),
-c171 char(200), c172 char(200), c173 char(200), c174 char(200), c175 char(200),
-c176 char(200), c177 char(200), c178 char(200), c179 char(200), c180 char(200),
-c190 char(200), c191 char(200), c192 char(100),
-c81 char(157)
+c81 char(200), c82 char(149)
) ROW_FORMAT=dynamic;
--echo # Test 8) Test creating a table that could lead to undo log overflow.
@@ -359,7 +285,6 @@ CREATE INDEX xte1e5 ON t1 (ec(767),fc(767));
UPDATE t1 SET t=@e;
# One more index and row size is too big (not any more!)
-#--replace_regex /> [0-9]*/> max_row_size/
#--error ER_TOO_BIG_ROWSIZE
CREATE INDEX xt5k1f6 ON t1 (lc(767),mc(767));
SHOW CREATE TABLE t1;
diff --git a/mysql-test/suite/innodb/t/innodb.test b/mysql-test/suite/innodb/t/innodb.test
index 661d7dff129..ca94d1c95b0 100644
--- a/mysql-test/suite/innodb/t/innodb.test
+++ b/mysql-test/suite/innodb/t/innodb.test
@@ -20,7 +20,7 @@ set optimizer_switch = 'mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
# the test to be run multiple times without restarting the mysqld server.
# See Bug#43309 Test main.innodb can't be run twice
-- disable_query_log
-call mtr.add_suppression("Cannot add field .* in table .* because after adding it, the row size is");
+call mtr.add_suppression("After adding field .* in table .* row size occupies .* bytes, which is greater");
call mtr.add_suppression("\\[ERROR\\] InnoDB: in ALTER TABLE `test`.`t1`");
call mtr.add_suppression("\\[ERROR\\] InnoDB: in RENAME TABLE table `test`.`t1`");
@@ -2370,7 +2370,6 @@ DROP TABLE t1,t2;
# Bug #21101 (Prints wrong error message if max row size is too large)
#
SET innodb_strict_mode=ON;
---replace_result 8126 {checked_valid} 4030 {checked_valid} 1982 {checked_valid}
--error ER_TOO_BIG_ROWSIZE
CREATE TABLE t1 (
c01 CHAR(255), c02 CHAR(255), c03 CHAR(255), c04 CHAR(255),
diff --git a/mysql-test/suite/innodb/t/innodb_max_recordsize_32k.test b/mysql-test/suite/innodb/t/innodb_max_recordsize_32k.test
index 5041612bec1..28296312061 100644
--- a/mysql-test/suite/innodb/t/innodb_max_recordsize_32k.test
+++ b/mysql-test/suite/innodb/t/innodb_max_recordsize_32k.test
@@ -1,7 +1,7 @@
--source include/have_innodb.inc
--source include/have_innodb_32k.inc
-call mtr.add_suppression('InnoDB: Cannot add field.*because after adding it, the row size is');
+call mtr.add_suppression('After adding field .* which is greater than maximum allowed size');
# Check page size 32k
SELECT @@innodb_page_size;
diff --git a/mysql-test/suite/innodb/t/innodb_max_recordsize_64k.test b/mysql-test/suite/innodb/t/innodb_max_recordsize_64k.test
index 5b06b57d4b4..2505dd00585 100644
--- a/mysql-test/suite/innodb/t/innodb_max_recordsize_64k.test
+++ b/mysql-test/suite/innodb/t/innodb_max_recordsize_64k.test
@@ -1,7 +1,7 @@
--source include/have_innodb.inc
--source include/have_innodb_64k.inc
-call mtr.add_suppression('InnoDB: Cannot add field.*because after adding it, the row size is');
+call mtr.add_suppression('After adding field .* which is greater than maximum allowed size');
# Check page size 64k
SELECT @@innodb_page_size;
@@ -71,7 +71,6 @@ ccol60 CHAR(255),ccol61 CHAR(255),ccol62 CHAR(255),ccol63 CHAR(255),ccol64 CHAR
)
ENGINE = innodb ROW_FORMAT=COMPACT;
-# row size 32936 : should fail
--error ER_TOO_BIG_ROWSIZE
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
@@ -113,22 +112,10 @@ col36 VARCHAR(255),col37 VARCHAR(255),col38 VARCHAR(255),col39 VARCHAR(255),col4
col42 VARCHAR(255),col43 VARCHAR(255),col44 VARCHAR(255),col45 VARCHAR(255),col46 VARCHAR(255), col47 VARCHAR(255),
col48 VARCHAR(255),col49 VARCHAR(255),col50 VARCHAR(255),col51 VARCHAR(255),col52 VARCHAR(255), col53 VARCHAR(255),
col54 VARCHAR(255),col55 VARCHAR(255),col56 VARCHAR(255),col57 VARCHAR(255),col58 VARCHAR(255), col59 VARCHAR(255),
-col60 VARCHAR(255),col61 VARCHAR(255),col62 VARCHAR(255),col63 VARCHAR(255),col64 VARCHAR(255), col65 VARCHAR(255),
-ccol1 VARCHAR(255),ccol2 VARCHAR(255),ccol3 VARCHAR(255),ccol4 VARCHAR(255),ccol5 VARCHAR(255),
-ccol6 VARCHAR(255),ccol7 VARCHAR(255),ccol8 VARCHAR(255),ccol9 VARCHAR(255),ccol10 VARCHAR(255), ccol11 VARCHAR(255),
-ccol12 VARCHAR(255),ccol13 VARCHAR(255),ccol14 VARCHAR(255),ccol15 VARCHAR(255),ccol16 VARCHAR(255), ccol17 VARCHAR(255),
-ccol18 VARCHAR(255),ccol19 VARCHAR(255),ccol20 VARCHAR(255),ccol21 VARCHAR(255),ccol22 VARCHAR(255), ccol23 VARCHAR(255),
-ccol24 VARCHAR(255),ccol25 VARCHAR(255),ccol26 VARCHAR(255),ccol27 VARCHAR(255),ccol28 VARCHAR(255), ccol29 VARCHAR(255),
-ccol30 VARCHAR(255),ccol31 VARCHAR(255),ccol32 VARCHAR(255),ccol33 VARCHAR(255),ccol34 VARCHAR(255), ccol35 VARCHAR(255),
-ccol36 VARCHAR(255),ccol37 VARCHAR(255),ccol38 VARCHAR(255),ccol39 VARCHAR(255),ccol40 VARCHAR(255), ccol41 VARCHAR(255),
-ccol42 VARCHAR(255),ccol43 VARCHAR(255),ccol44 VARCHAR(255),ccol45 VARCHAR(255),ccol46 VARCHAR(255), ccol47 VARCHAR(255),
-ccol48 VARCHAR(255),ccol49 VARCHAR(255),ccol50 VARCHAR(255),ccol51 VARCHAR(255),ccol52 VARCHAR(255), ccol53 VARCHAR(255),
-ccol54 VARCHAR(255),ccol55 VARCHAR(255),ccol56 VARCHAR(255),ccol57 VARCHAR(255),ccol58 VARCHAR(255), ccol59 VARCHAR(255),
-ccol60 VARCHAR(255),ccol61 VARCHAR(255),ccol62 VARCHAR(255),ccol63 VARCHAR(255),ccol64 VARCHAR(255), ccol65 VARCHAR(255)
+col60 VARCHAR(255),col61 VARCHAR(255),col62 VARCHAR(255),col63 VARCHAR(255),col64 VARCHAR(255)
)
ENGINE = innodb ROW_FORMAT=COMPACT;
-# row size 16384 >= 16K : expected to fail
--error ER_TOO_BIG_ROWSIZE
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
@@ -142,23 +129,9 @@ repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
-repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',214),NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL
+repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',223)
);
-# row size 16383 < 16K : expected to pass
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
@@ -171,20 +144,7 @@ repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
-repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',213),NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL
+repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',222)
);
SELECT * FROM tab5;
@@ -245,7 +205,6 @@ ccol60 VARCHAR(255),ccol61 VARCHAR(255),ccol62 VARCHAR(255),ccol63 VARCHAR(255),
)
ENGINE = innodb ROW_FORMAT=DYNAMIC;
-# row size 16384 >= 16K : expected to fail
--error ER_TOO_BIG_ROWSIZE
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
@@ -275,7 +234,6 @@ NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL
);
-# row size 16383 < 16K : expected to pass
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
@@ -334,7 +292,6 @@ ccol60 CHAR(255),ccol61 CHAR(255),ccol62 CHAR(255),ccol63 CHAR(255),ccol64 CHAR
)
ENGINE = innodb ROW_FORMAT=REDUNDANT;
-# 65 * 255 = 16575
--error ER_TOO_BIG_ROWSIZE
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
@@ -394,7 +351,6 @@ ccol60 VARCHAR(255),ccol61 VARCHAR(255),ccol62 VARCHAR(255),ccol63 VARCHAR(255),
)
ENGINE = innodb ROW_FORMAT=REDUNDANT;
-# row size 16383 >= 16K-1 : expected to fail
--error ER_TOO_BIG_ROWSIZE
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
@@ -424,7 +380,6 @@ NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL
);
-# row size 16382 < 16K-1 : expected to pass
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
diff --git a/mysql-test/suite/innodb/t/max_record_size.test b/mysql-test/suite/innodb/t/max_record_size.test
index f21ff923344..00bb6f2aac9 100644
--- a/mysql-test/suite/innodb/t/max_record_size.test
+++ b/mysql-test/suite/innodb/t/max_record_size.test
@@ -5,7 +5,7 @@
--let $row_format= `SELECT @@GLOBAL.innodb_default_row_format`
--let $page_size= `SELECT @@GLOBAL.innodb_page_size`
-call mtr.add_suppression("Cannot add field `.*` in table `test`.`t1` because after adding it, the row size is");
+call mtr.add_suppression('After adding field .* which is greater than maximum allowed size');
if ($page_size == 4096) {
@@ -294,23 +294,7 @@ CREATE TABLE t1 (
c49 CHAR(255), c50 CHAR(255), c51 CHAR(255), c52 CHAR(255),
c53 CHAR(255), c54 CHAR(255), c55 CHAR(255), c56 CHAR(255),
c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
- c61 CHAR(255), c62 CHAR(255), c63 CHAR(255), c64 CHAR(255),
- c65 CHAR(255), c66 CHAR(255), c67 CHAR(255), c68 CHAR(255),
- c69 CHAR(255), c70 CHAR(255), c71 CHAR(255), c72 CHAR(255),
- c73 CHAR(255), c74 CHAR(255), c75 CHAR(255), c76 CHAR(255),
- c77 CHAR(255), c78 CHAR(255), c79 CHAR(255), c80 CHAR(255),
- c81 CHAR(255), c82 CHAR(255), c83 CHAR(255), c84 CHAR(255),
- c85 CHAR(255), c86 CHAR(255), c87 CHAR(255), c88 CHAR(255),
- c89 CHAR(255), c90 CHAR(255), c91 CHAR(255), c92 CHAR(255),
- c93 CHAR(255), c94 CHAR(255), c95 CHAR(255), c96 CHAR(255),
- c97 CHAR(255), c98 CHAR(255), c99 CHAR(255), c100 CHAR(255),
- c101 CHAR(255), c102 CHAR(255), c103 CHAR(255), c104 CHAR(255),
- c105 CHAR(255), c106 CHAR(255), c107 CHAR(255), c108 CHAR(255),
- c109 CHAR(255), c110 CHAR(255), c111 CHAR(255), c112 CHAR(255),
- c113 CHAR(255), c114 CHAR(255), c115 CHAR(255), c116 CHAR(255),
- c117 CHAR(255), c118 CHAR(255), c119 CHAR(255), c120 CHAR(255),
- c121 CHAR(255), c122 CHAR(255), c123 CHAR(255), c124 CHAR(255),
- c125 CHAR(255), c126 CHAR(255), c127 CHAR(255), c128 CHAR(255)
+ c61 CHAR(255), c62 CHAR(255), c63 CHAR(255), c64 CHAR(255)
) ENGINE=INNODB;
DROP TABLE t1;
--error ER_TOO_BIG_ROWSIZE
@@ -331,23 +315,7 @@ CREATE TABLE t1 (
c53 CHAR(255), c54 CHAR(255), c55 CHAR(255), c56 CHAR(255),
c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
c61 CHAR(255), c62 CHAR(255), c63 CHAR(255), c64 CHAR(255),
- c65 CHAR(255), c66 CHAR(255), c67 CHAR(255), c68 CHAR(255),
- c69 CHAR(255), c70 CHAR(255), c71 CHAR(255), c72 CHAR(255),
- c73 CHAR(255), c74 CHAR(255), c75 CHAR(255), c76 CHAR(255),
- c77 CHAR(255), c78 CHAR(255), c79 CHAR(255), c80 CHAR(255),
- c81 CHAR(255), c82 CHAR(255), c83 CHAR(255), c84 CHAR(255),
- c85 CHAR(255), c86 CHAR(255), c87 CHAR(255), c88 CHAR(255),
- c89 CHAR(255), c90 CHAR(255), c91 CHAR(255), c92 CHAR(255),
- c93 CHAR(255), c94 CHAR(255), c95 CHAR(255), c96 CHAR(255),
- c97 CHAR(255), c98 CHAR(255), c99 CHAR(255), c100 CHAR(255),
- c101 CHAR(255), c102 CHAR(255), c103 CHAR(255), c104 CHAR(255),
- c105 CHAR(255), c106 CHAR(255), c107 CHAR(255), c108 CHAR(255),
- c109 CHAR(255), c110 CHAR(255), c111 CHAR(255), c112 CHAR(255),
- c113 CHAR(255), c114 CHAR(255), c115 CHAR(255), c116 CHAR(255),
- c117 CHAR(255), c118 CHAR(255), c119 CHAR(255), c120 CHAR(255),
- c121 CHAR(255), c122 CHAR(255), c123 CHAR(255), c124 CHAR(255),
- c125 CHAR(255), c126 CHAR(255), c127 CHAR(255), c128 CHAR(255),
- c129 CHAR(255)
+ c65 CHAR(255)
) ENGINE=INNODB;
CREATE TABLE t1 (
@@ -366,23 +334,7 @@ CREATE TABLE t1 (
c49 VARCHAR(255), c50 VARCHAR(255), c51 VARCHAR(255), c52 VARCHAR(255),
c53 VARCHAR(255), c54 VARCHAR(255), c55 VARCHAR(255), c56 VARCHAR(255),
c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
- c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255), c64 VARCHAR(255),
- c65 VARCHAR(255), c66 VARCHAR(255), c67 VARCHAR(255), c68 VARCHAR(255),
- c69 VARCHAR(255), c70 VARCHAR(255), c71 VARCHAR(255), c72 VARCHAR(255),
- c73 VARCHAR(255), c74 VARCHAR(255), c75 VARCHAR(255), c76 VARCHAR(255),
- c77 VARCHAR(255), c78 VARCHAR(255), c79 VARCHAR(255), c80 VARCHAR(255),
- c81 VARCHAR(255), c82 VARCHAR(255), c83 VARCHAR(255), c84 VARCHAR(255),
- c85 VARCHAR(255), c86 VARCHAR(255), c87 VARCHAR(255), c88 VARCHAR(255),
- c89 VARCHAR(255), c90 VARCHAR(255), c91 VARCHAR(255), c92 VARCHAR(255),
- c93 VARCHAR(255), c94 VARCHAR(255), c95 VARCHAR(255), c96 VARCHAR(255),
- c97 VARCHAR(255), c98 VARCHAR(255), c99 VARCHAR(255), c100 VARCHAR(255),
- c101 VARCHAR(255), c102 VARCHAR(255), c103 VARCHAR(255), c104 VARCHAR(255),
- c105 VARCHAR(255), c106 VARCHAR(255), c107 VARCHAR(255), c108 VARCHAR(255),
- c109 VARCHAR(255), c110 VARCHAR(255), c111 VARCHAR(255), c112 VARCHAR(255),
- c113 VARCHAR(255), c114 VARCHAR(255), c115 VARCHAR(255), c116 VARCHAR(255),
- c117 VARCHAR(255), c118 VARCHAR(255), c119 VARCHAR(255), c120 VARCHAR(255),
- c121 VARCHAR(255), c122 VARCHAR(255), c123 VARCHAR(255), c124 VARCHAR(255),
- c125 VARCHAR(255), c126 VARCHAR(255), c127 VARCHAR(255)
+ c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255)
) ENGINE=INNODB;
DROP TABLE t1;
--error ER_TOO_BIG_ROWSIZE
@@ -402,23 +354,7 @@ CREATE TABLE t1 (
c49 VARCHAR(255), c50 VARCHAR(255), c51 VARCHAR(255), c52 VARCHAR(255),
c53 VARCHAR(255), c54 VARCHAR(255), c55 VARCHAR(255), c56 VARCHAR(255),
c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
- c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255), c64 VARCHAR(255),
- c65 VARCHAR(255), c66 VARCHAR(255), c67 VARCHAR(255), c68 VARCHAR(255),
- c69 VARCHAR(255), c70 VARCHAR(255), c71 VARCHAR(255), c72 VARCHAR(255),
- c73 VARCHAR(255), c74 VARCHAR(255), c75 VARCHAR(255), c76 VARCHAR(255),
- c77 VARCHAR(255), c78 VARCHAR(255), c79 VARCHAR(255), c80 VARCHAR(255),
- c81 VARCHAR(255), c82 VARCHAR(255), c83 VARCHAR(255), c84 VARCHAR(255),
- c85 VARCHAR(255), c86 VARCHAR(255), c87 VARCHAR(255), c88 VARCHAR(255),
- c89 VARCHAR(255), c90 VARCHAR(255), c91 VARCHAR(255), c92 VARCHAR(255),
- c93 VARCHAR(255), c94 VARCHAR(255), c95 VARCHAR(255), c96 VARCHAR(255),
- c97 VARCHAR(255), c98 VARCHAR(255), c99 VARCHAR(255), c100 VARCHAR(255),
- c101 VARCHAR(255), c102 VARCHAR(255), c103 VARCHAR(255), c104 VARCHAR(255),
- c105 VARCHAR(255), c106 VARCHAR(255), c107 VARCHAR(255), c108 VARCHAR(255),
- c109 VARCHAR(255), c110 VARCHAR(255), c111 VARCHAR(255), c112 VARCHAR(255),
- c113 VARCHAR(255), c114 VARCHAR(255), c115 VARCHAR(255), c116 VARCHAR(255),
- c117 VARCHAR(255), c118 VARCHAR(255), c119 VARCHAR(255), c120 VARCHAR(255),
- c121 VARCHAR(255), c122 VARCHAR(255), c123 VARCHAR(255), c124 VARCHAR(255),
- c125 VARCHAR(255), c126 VARCHAR(255), c127 VARCHAR(255), c128 VARCHAR(255)
+ c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255), c64 VARCHAR(255)
) ENGINE=INNODB;
} }
@@ -568,13 +504,7 @@ CREATE TABLE t1 (
c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
- c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
- c21 VARCHAR(788), c22 VARCHAR(788), c23 VARCHAR(788), c24 VARCHAR(788),
- c25 VARCHAR(788), c26 VARCHAR(788), c27 VARCHAR(788), c28 VARCHAR(788),
- c29 VARCHAR(788), c30 VARCHAR(788), c31 VARCHAR(788), c32 VARCHAR(788),
- c33 VARCHAR(788), c34 VARCHAR(788), c35 VARCHAR(788), c36 VARCHAR(788),
- c37 VARCHAR(788), c38 VARCHAR(788), c39 VARCHAR(788), c40 VARCHAR(788),
- c41 VARCHAR(788)
+ c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788)
) ENGINE=INNODB;
DROP TABLE t1;
--error ER_TOO_BIG_ROWSIZE
@@ -584,31 +514,20 @@ CREATE TABLE t1 (
c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
- c21 VARCHAR(788), c22 VARCHAR(788), c23 VARCHAR(788), c24 VARCHAR(788),
- c25 VARCHAR(788), c26 VARCHAR(788), c27 VARCHAR(788), c28 VARCHAR(788),
- c29 VARCHAR(788), c30 VARCHAR(788), c31 VARCHAR(788), c32 VARCHAR(788),
- c33 VARCHAR(788), c34 VARCHAR(788), c35 VARCHAR(788), c36 VARCHAR(788),
- c37 VARCHAR(788), c38 VARCHAR(788), c39 VARCHAR(788), c40 VARCHAR(788),
- c41 VARCHAR(788), c42 VARCHAR(788)
+ c21 VARCHAR(788)
) ENGINE=INNODB;
CREATE TABLE t1 (
c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
- c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
- c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
- c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
- c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT
+ c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT
) ENGINE=INNODB;
DROP TABLE t1;
--error ER_TOO_BIG_ROWSIZE
CREATE TABLE t1 (
c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
- c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
- c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
- c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
- c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT
+ c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT
) ENGINE=INNODB;
} }
@@ -1232,45 +1151,10 @@ CREATE TABLE t1 (
c750 TEXT, c751 TEXT, c752 TEXT, c753 TEXT, c754 TEXT, c755 TEXT, c756 TEXT,
c757 TEXT, c758 TEXT, c759 TEXT, c760 TEXT, c761 TEXT, c762 TEXT, c763 TEXT,
c764 TEXT, c765 TEXT, c766 TEXT, c767 TEXT, c768 TEXT, c769 TEXT, c770 TEXT,
- c771 TEXT, c772 TEXT, c773 TEXT, c774 TEXT, c775 TEXT, c776 TEXT, c777 TEXT,
- c778 TEXT, c779 TEXT, c780 TEXT, c781 TEXT, c782 TEXT, c783 TEXT, c784 TEXT,
- c785 TEXT, c786 TEXT, c787 TEXT, c788 TEXT, c789 TEXT, c790 TEXT, c791 TEXT,
- c792 TEXT, c793 TEXT, c794 TEXT, c795 TEXT, c796 TEXT, c797 TEXT, c798 TEXT,
- c799 TEXT, c800 TEXT, c801 TEXT, c802 TEXT, c803 TEXT, c804 TEXT, c805 TEXT,
- c806 TEXT, c807 TEXT, c808 TEXT, c809 TEXT, c810 TEXT, c811 TEXT, c812 TEXT,
- c813 TEXT, c814 TEXT, c815 TEXT, c816 TEXT, c817 TEXT, c818 TEXT, c819 TEXT,
- c820 TEXT, c821 TEXT, c822 TEXT, c823 TEXT, c824 TEXT, c825 TEXT, c826 TEXT,
- c827 TEXT, c828 TEXT, c829 TEXT, c830 TEXT, c831 TEXT, c832 TEXT, c833 TEXT,
- c834 TEXT, c835 TEXT, c836 TEXT, c837 TEXT, c838 TEXT, c839 TEXT, c840 TEXT,
- c841 TEXT, c842 TEXT, c843 TEXT, c844 TEXT, c845 TEXT, c846 TEXT, c847 TEXT,
- c848 TEXT, c849 TEXT, c850 TEXT, c851 TEXT, c852 TEXT, c853 TEXT, c854 TEXT,
- c855 TEXT, c856 TEXT, c857 TEXT, c858 TEXT, c859 TEXT, c860 TEXT, c861 TEXT,
- c862 TEXT, c863 TEXT, c864 TEXT, c865 TEXT, c866 TEXT, c867 TEXT, c868 TEXT,
- c869 TEXT, c870 TEXT, c871 TEXT, c872 TEXT, c873 TEXT, c874 TEXT, c875 TEXT,
- c876 TEXT, c877 TEXT, c878 TEXT, c879 TEXT, c880 TEXT, c881 TEXT, c882 TEXT,
- c883 TEXT, c884 TEXT, c885 TEXT, c886 TEXT, c887 TEXT, c888 TEXT, c889 TEXT,
- c890 TEXT, c891 TEXT, c892 TEXT, c893 TEXT, c894 TEXT, c895 TEXT, c896 TEXT,
- c897 TEXT, c898 TEXT, c899 TEXT, c900 TEXT, c901 TEXT, c902 TEXT, c903 TEXT,
- c904 TEXT, c905 TEXT, c906 TEXT, c907 TEXT, c908 TEXT, c909 TEXT, c910 TEXT,
- c911 TEXT, c912 TEXT, c913 TEXT, c914 TEXT, c915 TEXT, c916 TEXT, c917 TEXT,
- c918 TEXT, c919 TEXT, c920 TEXT, c921 TEXT, c922 TEXT, c923 TEXT, c924 TEXT,
- c925 TEXT, c926 TEXT, c927 TEXT, c928 TEXT, c929 TEXT, c930 TEXT, c931 TEXT,
- c932 TEXT, c933 TEXT, c934 TEXT, c935 TEXT, c936 TEXT, c937 TEXT, c938 TEXT,
- c939 TEXT, c940 TEXT, c941 TEXT, c942 TEXT, c943 TEXT, c944 TEXT, c945 TEXT,
- c946 TEXT, c947 TEXT, c948 TEXT, c949 TEXT, c950 TEXT, c951 TEXT, c952 TEXT,
- c953 TEXT, c954 TEXT, c955 TEXT, c956 TEXT, c957 TEXT, c958 TEXT, c959 TEXT,
- c960 TEXT, c961 TEXT, c962 TEXT, c963 TEXT, c964 TEXT, c965 TEXT, c966 TEXT,
- c967 TEXT, c968 TEXT, c969 TEXT, c970 TEXT, c971 TEXT, c972 TEXT, c973 TEXT,
- c974 TEXT, c975 TEXT, c976 TEXT, c977 TEXT, c978 TEXT, c979 TEXT, c980 TEXT,
- c981 TEXT, c982 TEXT, c983 TEXT, c984 TEXT, c985 TEXT, c986 TEXT, c987 TEXT,
- c988 TEXT, c989 TEXT, c990 TEXT, c991 TEXT, c992 TEXT, c993 TEXT, c994 TEXT,
- c995 TEXT, c996 TEXT, c997 TEXT, c998 TEXT, c999 TEXT, c1000 TEXT, c1001 TEXT,
- c1002 TEXT, c1003 TEXT, c1004 TEXT, c1005 TEXT, c1006 TEXT, c1007 TEXT, c1008 TEXT,
- c1009 TEXT, c1010 TEXT, c1011 TEXT, c1012 TEXT, c1013 TEXT, c1014 TEXT, c1015 TEXT,
- c1016 TEXT, c1017 TEXT
+ c771 TEXT, c772 TEXT, c773 TEXT, c774 TEXT
) ENGINE=INNODB;
DROP TABLE t1;
---error ER_CANT_CREATE_TABLE
+--error ER_TOO_BIG_ROWSIZE
CREATE TABLE t1 (
c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
@@ -1382,41 +1266,6 @@ CREATE TABLE t1 (
c750 TEXT, c751 TEXT, c752 TEXT, c753 TEXT, c754 TEXT, c755 TEXT, c756 TEXT,
c757 TEXT, c758 TEXT, c759 TEXT, c760 TEXT, c761 TEXT, c762 TEXT, c763 TEXT,
c764 TEXT, c765 TEXT, c766 TEXT, c767 TEXT, c768 TEXT, c769 TEXT, c770 TEXT,
- c771 TEXT, c772 TEXT, c773 TEXT, c774 TEXT, c775 TEXT, c776 TEXT, c777 TEXT,
- c778 TEXT, c779 TEXT, c780 TEXT, c781 TEXT, c782 TEXT, c783 TEXT, c784 TEXT,
- c785 TEXT, c786 TEXT, c787 TEXT, c788 TEXT, c789 TEXT, c790 TEXT, c791 TEXT,
- c792 TEXT, c793 TEXT, c794 TEXT, c795 TEXT, c796 TEXT, c797 TEXT, c798 TEXT,
- c799 TEXT, c800 TEXT, c801 TEXT, c802 TEXT, c803 TEXT, c804 TEXT, c805 TEXT,
- c806 TEXT, c807 TEXT, c808 TEXT, c809 TEXT, c810 TEXT, c811 TEXT, c812 TEXT,
- c813 TEXT, c814 TEXT, c815 TEXT, c816 TEXT, c817 TEXT, c818 TEXT, c819 TEXT,
- c820 TEXT, c821 TEXT, c822 TEXT, c823 TEXT, c824 TEXT, c825 TEXT, c826 TEXT,
- c827 TEXT, c828 TEXT, c829 TEXT, c830 TEXT, c831 TEXT, c832 TEXT, c833 TEXT,
- c834 TEXT, c835 TEXT, c836 TEXT, c837 TEXT, c838 TEXT, c839 TEXT, c840 TEXT,
- c841 TEXT, c842 TEXT, c843 TEXT, c844 TEXT, c845 TEXT, c846 TEXT, c847 TEXT,
- c848 TEXT, c849 TEXT, c850 TEXT, c851 TEXT, c852 TEXT, c853 TEXT, c854 TEXT,
- c855 TEXT, c856 TEXT, c857 TEXT, c858 TEXT, c859 TEXT, c860 TEXT, c861 TEXT,
- c862 TEXT, c863 TEXT, c864 TEXT, c865 TEXT, c866 TEXT, c867 TEXT, c868 TEXT,
- c869 TEXT, c870 TEXT, c871 TEXT, c872 TEXT, c873 TEXT, c874 TEXT, c875 TEXT,
- c876 TEXT, c877 TEXT, c878 TEXT, c879 TEXT, c880 TEXT, c881 TEXT, c882 TEXT,
- c883 TEXT, c884 TEXT, c885 TEXT, c886 TEXT, c887 TEXT, c888 TEXT, c889 TEXT,
- c890 TEXT, c891 TEXT, c892 TEXT, c893 TEXT, c894 TEXT, c895 TEXT, c896 TEXT,
- c897 TEXT, c898 TEXT, c899 TEXT, c900 TEXT, c901 TEXT, c902 TEXT, c903 TEXT,
- c904 TEXT, c905 TEXT, c906 TEXT, c907 TEXT, c908 TEXT, c909 TEXT, c910 TEXT,
- c911 TEXT, c912 TEXT, c913 TEXT, c914 TEXT, c915 TEXT, c916 TEXT, c917 TEXT,
- c918 TEXT, c919 TEXT, c920 TEXT, c921 TEXT, c922 TEXT, c923 TEXT, c924 TEXT,
- c925 TEXT, c926 TEXT, c927 TEXT, c928 TEXT, c929 TEXT, c930 TEXT, c931 TEXT,
- c932 TEXT, c933 TEXT, c934 TEXT, c935 TEXT, c936 TEXT, c937 TEXT, c938 TEXT,
- c939 TEXT, c940 TEXT, c941 TEXT, c942 TEXT, c943 TEXT, c944 TEXT, c945 TEXT,
- c946 TEXT, c947 TEXT, c948 TEXT, c949 TEXT, c950 TEXT, c951 TEXT, c952 TEXT,
- c953 TEXT, c954 TEXT, c955 TEXT, c956 TEXT, c957 TEXT, c958 TEXT, c959 TEXT,
- c960 TEXT, c961 TEXT, c962 TEXT, c963 TEXT, c964 TEXT, c965 TEXT, c966 TEXT,
- c967 TEXT, c968 TEXT, c969 TEXT, c970 TEXT, c971 TEXT, c972 TEXT, c973 TEXT,
- c974 TEXT, c975 TEXT, c976 TEXT, c977 TEXT, c978 TEXT, c979 TEXT, c980 TEXT,
- c981 TEXT, c982 TEXT, c983 TEXT, c984 TEXT, c985 TEXT, c986 TEXT, c987 TEXT,
- c988 TEXT, c989 TEXT, c990 TEXT, c991 TEXT, c992 TEXT, c993 TEXT, c994 TEXT,
- c995 TEXT, c996 TEXT, c997 TEXT, c998 TEXT, c999 TEXT, c1000 TEXT, c1001 TEXT,
- c1002 TEXT, c1003 TEXT, c1004 TEXT, c1005 TEXT, c1006 TEXT, c1007 TEXT, c1008 TEXT,
- c1009 TEXT, c1010 TEXT, c1011 TEXT, c1012 TEXT, c1013 TEXT, c1014 TEXT, c1015 TEXT,
- c1016 TEXT, c1017 TEXT, c1018 TEXT
+ c771 TEXT, c772 TEXT, c773 TEXT, c774 TEXT, c775 TEXT
) ENGINE=INNODB;
} }
diff --git a/mysql-test/suite/innodb/t/max_record_size_compressed.test b/mysql-test/suite/innodb/t/max_record_size_compressed.test
new file mode 100644
index 00000000000..bfbc999d0aa
--- /dev/null
+++ b/mysql-test/suite/innodb/t/max_record_size_compressed.test
@@ -0,0 +1,324 @@
+--source include/have_innodb.inc
+--source include/innodb_page_size_small.inc
+
+--let $row_format= `SELECT @@GLOBAL.innodb_default_row_format`
+--let $page_size= `SELECT @@GLOBAL.innodb_page_size`
+
+call mtr.add_suppression('After adding field .* which is greater than maximum allowed size');
+
+if ($page_size == 4096) {
+CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255)
+) ENGINE=INNODB ROW_FORMAT=COMPRESSED;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255)
+) ENGINE=INNODB ROW_FORMAT=COMPRESSED;
+
+CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255)
+) ENGINE=INNODB ROW_FORMAT=COMPRESSED;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255)
+) ENGINE=INNODB ROW_FORMAT=COMPRESSED;
+
+CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+ c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+ c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
+ c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
+ c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
+ c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT,
+ c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT,
+ c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT,
+ c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT,
+ c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT,
+ c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
+ c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
+ c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
+ c92 TEXT
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+ c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+ c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
+ c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
+ c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
+ c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT,
+ c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT,
+ c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT,
+ c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT,
+ c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT,
+ c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
+ c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
+ c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
+ c92 TEXT, c93 TEXT
+) ENGINE=INNODB;
+}
+
+if ($page_size == 8192) {
+CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+ c13 CHAR(255), c14 CHAR(255), c15 CHAR(255)
+) ENGINE=INNODB ROW_FORMAT=COMPRESSED;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+ c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
+) ENGINE=INNODB ROW_FORMAT=COMPRESSED;
+CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+ c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255)
+) ENGINE=INNODB ROW_FORMAT=COMPRESSED;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+ c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
+) ENGINE=INNODB ROW_FORMAT=COMPRESSED;
+
+CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+ c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+ c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
+ c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
+ c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
+ c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT,
+ c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT,
+ c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT,
+ c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT,
+ c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT,
+ c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
+ c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
+ c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
+ c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT,
+ c99 TEXT, c100 TEXT, c101 TEXT, c102 TEXT, c103 TEXT, c104 TEXT, c105 TEXT,
+ c106 TEXT, c107 TEXT, c108 TEXT, c109 TEXT, c110 TEXT, c111 TEXT, c112 TEXT,
+ c113 TEXT, c114 TEXT, c115 TEXT, c116 TEXT, c117 TEXT, c118 TEXT, c119 TEXT,
+ c120 TEXT, c121 TEXT, c122 TEXT, c123 TEXT, c124 TEXT, c125 TEXT, c126 TEXT,
+ c127 TEXT, c128 TEXT, c129 TEXT, c130 TEXT, c131 TEXT, c132 TEXT, c133 TEXT,
+ c134 TEXT, c135 TEXT, c136 TEXT, c137 TEXT, c138 TEXT, c139 TEXT, c140 TEXT,
+ c141 TEXT, c142 TEXT, c143 TEXT, c144 TEXT, c145 TEXT, c146 TEXT, c147 TEXT,
+ c148 TEXT, c149 TEXT, c150 TEXT, c151 TEXT, c152 TEXT, c153 TEXT, c154 TEXT,
+ c155 TEXT, c156 TEXT, c157 TEXT, c158 TEXT, c159 TEXT, c160 TEXT, c161 TEXT,
+ c162 TEXT, c163 TEXT, c164 TEXT, c165 TEXT, c166 TEXT, c167 TEXT, c168 TEXT,
+ c169 TEXT, c170 TEXT, c171 TEXT, c172 TEXT, c173 TEXT, c174 TEXT, c175 TEXT,
+ c176 TEXT, c177 TEXT, c178 TEXT, c179 TEXT, c180 TEXT, c181 TEXT, c182 TEXT,
+ c183 TEXT, c184 TEXT, c185 TEXT, c186 TEXT, c187 TEXT, c188 TEXT, c189 TEXT
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+ c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+ c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
+ c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
+ c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
+ c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT,
+ c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT,
+ c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT,
+ c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT,
+ c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT,
+ c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
+ c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
+ c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
+ c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT,
+ c99 TEXT, c100 TEXT, c101 TEXT, c102 TEXT, c103 TEXT, c104 TEXT, c105 TEXT,
+ c106 TEXT, c107 TEXT, c108 TEXT, c109 TEXT, c110 TEXT, c111 TEXT, c112 TEXT,
+ c113 TEXT, c114 TEXT, c115 TEXT, c116 TEXT, c117 TEXT, c118 TEXT, c119 TEXT,
+ c120 TEXT, c121 TEXT, c122 TEXT, c123 TEXT, c124 TEXT, c125 TEXT, c126 TEXT,
+ c127 TEXT, c128 TEXT, c129 TEXT, c130 TEXT, c131 TEXT, c132 TEXT, c133 TEXT,
+ c134 TEXT, c135 TEXT, c136 TEXT, c137 TEXT, c138 TEXT, c139 TEXT, c140 TEXT,
+ c141 TEXT, c142 TEXT, c143 TEXT, c144 TEXT, c145 TEXT, c146 TEXT, c147 TEXT,
+ c148 TEXT, c149 TEXT, c150 TEXT, c151 TEXT, c152 TEXT, c153 TEXT, c154 TEXT,
+ c155 TEXT, c156 TEXT, c157 TEXT, c158 TEXT, c159 TEXT, c160 TEXT, c161 TEXT,
+ c162 TEXT, c163 TEXT, c164 TEXT, c165 TEXT, c166 TEXT, c167 TEXT, c168 TEXT,
+ c169 TEXT, c170 TEXT, c171 TEXT, c172 TEXT, c173 TEXT, c174 TEXT, c175 TEXT,
+ c176 TEXT, c177 TEXT, c178 TEXT, c179 TEXT, c180 TEXT, c181 TEXT, c182 TEXT,
+ c183 TEXT, c184 TEXT, c185 TEXT, c186 TEXT, c187 TEXT, c188 TEXT, c189 TEXT,
+ c190 TEXT
+) ENGINE=INNODB;
+}
+
+if ($page_size == 16384) {
+CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+ c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
+ c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
+ c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
+ c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
+ c29 CHAR(255), c30 CHAR(255), c31 CHAR(255)
+) ENGINE=INNODB ROW_FORMAT=COMPRESSED;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+ c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
+ c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
+ c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
+ c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
+ c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255)
+) ENGINE=INNODB ROW_FORMAT=COMPRESSED;
+
+CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+ c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
+ c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
+ c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
+ c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
+ c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255)
+) ENGINE=INNODB ROW_FORMAT=COMPRESSED;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+ c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
+ c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
+ c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
+ c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
+ c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255)
+) ENGINE=INNODB ROW_FORMAT=COMPRESSED;
+
+CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+ c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+ c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
+ c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
+ c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
+ c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT,
+ c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT,
+ c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT,
+ c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT,
+ c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT,
+ c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
+ c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
+ c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
+ c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT,
+ c99 TEXT, c100 TEXT, c101 TEXT, c102 TEXT, c103 TEXT, c104 TEXT, c105 TEXT,
+ c106 TEXT, c107 TEXT, c108 TEXT, c109 TEXT, c110 TEXT, c111 TEXT, c112 TEXT,
+ c113 TEXT, c114 TEXT, c115 TEXT, c116 TEXT, c117 TEXT, c118 TEXT, c119 TEXT,
+ c120 TEXT, c121 TEXT, c122 TEXT, c123 TEXT, c124 TEXT, c125 TEXT, c126 TEXT,
+ c127 TEXT, c128 TEXT, c129 TEXT, c130 TEXT, c131 TEXT, c132 TEXT, c133 TEXT,
+ c134 TEXT, c135 TEXT, c136 TEXT, c137 TEXT, c138 TEXT, c139 TEXT, c140 TEXT,
+ c141 TEXT, c142 TEXT, c143 TEXT, c144 TEXT, c145 TEXT, c146 TEXT, c147 TEXT,
+ c148 TEXT, c149 TEXT, c150 TEXT, c151 TEXT, c152 TEXT, c153 TEXT, c154 TEXT,
+ c155 TEXT, c156 TEXT, c157 TEXT, c158 TEXT, c159 TEXT, c160 TEXT, c161 TEXT,
+ c162 TEXT, c163 TEXT, c164 TEXT, c165 TEXT, c166 TEXT, c167 TEXT, c168 TEXT,
+ c169 TEXT, c170 TEXT, c171 TEXT, c172 TEXT, c173 TEXT, c174 TEXT, c175 TEXT,
+ c176 TEXT, c177 TEXT, c178 TEXT, c179 TEXT, c180 TEXT, c181 TEXT, c182 TEXT,
+ c183 TEXT, c184 TEXT, c185 TEXT, c186 TEXT, c187 TEXT, c188 TEXT, c189 TEXT,
+ c190 TEXT, c191 TEXT, c192 TEXT, c193 TEXT, c194 TEXT, c195 TEXT, c196 TEXT,
+ c197 TEXT, c198 TEXT, c199 TEXT, c200 TEXT, c201 TEXT, c202 TEXT, c203 TEXT,
+ c204 TEXT, c205 TEXT, c206 TEXT, c207 TEXT, c208 TEXT, c209 TEXT, c210 TEXT,
+ c211 TEXT, c212 TEXT, c213 TEXT, c214 TEXT, c215 TEXT, c216 TEXT, c217 TEXT,
+ c218 TEXT, c219 TEXT, c220 TEXT, c221 TEXT, c222 TEXT, c223 TEXT, c224 TEXT,
+ c225 TEXT, c226 TEXT, c227 TEXT, c228 TEXT, c229 TEXT, c230 TEXT, c231 TEXT,
+ c232 TEXT, c233 TEXT, c234 TEXT, c235 TEXT, c236 TEXT, c237 TEXT, c238 TEXT,
+ c239 TEXT, c240 TEXT, c241 TEXT, c242 TEXT, c243 TEXT, c244 TEXT, c245 TEXT,
+ c246 TEXT, c247 TEXT, c248 TEXT, c249 TEXT, c250 TEXT, c251 TEXT, c252 TEXT,
+ c253 TEXT, c254 TEXT, c255 TEXT, c256 TEXT, c257 TEXT, c258 TEXT, c259 TEXT,
+ c260 TEXT, c261 TEXT, c262 TEXT, c263 TEXT, c264 TEXT, c265 TEXT, c266 TEXT,
+ c267 TEXT, c268 TEXT, c269 TEXT, c270 TEXT, c271 TEXT, c272 TEXT, c273 TEXT,
+ c274 TEXT, c275 TEXT, c276 TEXT, c277 TEXT, c278 TEXT, c279 TEXT, c280 TEXT,
+ c281 TEXT, c282 TEXT, c283 TEXT, c284 TEXT, c285 TEXT, c286 TEXT, c287 TEXT,
+ c288 TEXT, c289 TEXT, c290 TEXT, c291 TEXT, c292 TEXT, c293 TEXT, c294 TEXT,
+ c295 TEXT, c296 TEXT, c297 TEXT, c298 TEXT, c299 TEXT, c300 TEXT, c301 TEXT,
+ c302 TEXT, c303 TEXT, c304 TEXT, c305 TEXT, c306 TEXT, c307 TEXT, c308 TEXT,
+ c309 TEXT, c310 TEXT, c311 TEXT, c312 TEXT, c313 TEXT, c314 TEXT, c315 TEXT,
+ c316 TEXT, c317 TEXT, c318 TEXT, c319 TEXT, c320 TEXT, c321 TEXT, c322 TEXT,
+ c323 TEXT, c324 TEXT, c325 TEXT, c326 TEXT, c327 TEXT, c328 TEXT, c329 TEXT,
+ c330 TEXT, c331 TEXT, c332 TEXT, c333 TEXT, c334 TEXT, c335 TEXT, c336 TEXT,
+ c337 TEXT, c338 TEXT, c339 TEXT, c340 TEXT, c341 TEXT, c342 TEXT, c343 TEXT,
+ c344 TEXT, c345 TEXT, c346 TEXT, c347 TEXT, c348 TEXT, c349 TEXT, c350 TEXT,
+ c351 TEXT, c352 TEXT, c353 TEXT, c354 TEXT, c355 TEXT, c356 TEXT, c357 TEXT,
+ c358 TEXT, c359 TEXT, c360 TEXT, c361 TEXT, c362 TEXT, c363 TEXT, c364 TEXT,
+ c365 TEXT, c366 TEXT, c367 TEXT, c368 TEXT, c369 TEXT, c370 TEXT, c371 TEXT,
+ c372 TEXT, c373 TEXT, c374 TEXT, c375 TEXT, c376 TEXT, c377 TEXT, c378 TEXT,
+ c379 TEXT, c380 TEXT, c381 TEXT, c382 TEXT, c383 TEXT
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+ c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+ c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
+ c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
+ c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
+ c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT,
+ c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT,
+ c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT,
+ c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT,
+ c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT,
+ c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
+ c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
+ c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
+ c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT,
+ c99 TEXT, c100 TEXT, c101 TEXT, c102 TEXT, c103 TEXT, c104 TEXT, c105 TEXT,
+ c106 TEXT, c107 TEXT, c108 TEXT, c109 TEXT, c110 TEXT, c111 TEXT, c112 TEXT,
+ c113 TEXT, c114 TEXT, c115 TEXT, c116 TEXT, c117 TEXT, c118 TEXT, c119 TEXT,
+ c120 TEXT, c121 TEXT, c122 TEXT, c123 TEXT, c124 TEXT, c125 TEXT, c126 TEXT,
+ c127 TEXT, c128 TEXT, c129 TEXT, c130 TEXT, c131 TEXT, c132 TEXT, c133 TEXT,
+ c134 TEXT, c135 TEXT, c136 TEXT, c137 TEXT, c138 TEXT, c139 TEXT, c140 TEXT,
+ c141 TEXT, c142 TEXT, c143 TEXT, c144 TEXT, c145 TEXT, c146 TEXT, c147 TEXT,
+ c148 TEXT, c149 TEXT, c150 TEXT, c151 TEXT, c152 TEXT, c153 TEXT, c154 TEXT,
+ c155 TEXT, c156 TEXT, c157 TEXT, c158 TEXT, c159 TEXT, c160 TEXT, c161 TEXT,
+ c162 TEXT, c163 TEXT, c164 TEXT, c165 TEXT, c166 TEXT, c167 TEXT, c168 TEXT,
+ c169 TEXT, c170 TEXT, c171 TEXT, c172 TEXT, c173 TEXT, c174 TEXT, c175 TEXT,
+ c176 TEXT, c177 TEXT, c178 TEXT, c179 TEXT, c180 TEXT, c181 TEXT, c182 TEXT,
+ c183 TEXT, c184 TEXT, c185 TEXT, c186 TEXT, c187 TEXT, c188 TEXT, c189 TEXT,
+ c190 TEXT, c191 TEXT, c192 TEXT, c193 TEXT, c194 TEXT, c195 TEXT, c196 TEXT,
+ c197 TEXT, c198 TEXT, c199 TEXT, c200 TEXT, c201 TEXT, c202 TEXT, c203 TEXT,
+ c204 TEXT, c205 TEXT, c206 TEXT, c207 TEXT, c208 TEXT, c209 TEXT, c210 TEXT,
+ c211 TEXT, c212 TEXT, c213 TEXT, c214 TEXT, c215 TEXT, c216 TEXT, c217 TEXT,
+ c218 TEXT, c219 TEXT, c220 TEXT, c221 TEXT, c222 TEXT, c223 TEXT, c224 TEXT,
+ c225 TEXT, c226 TEXT, c227 TEXT, c228 TEXT, c229 TEXT, c230 TEXT, c231 TEXT,
+ c232 TEXT, c233 TEXT, c234 TEXT, c235 TEXT, c236 TEXT, c237 TEXT, c238 TEXT,
+ c239 TEXT, c240 TEXT, c241 TEXT, c242 TEXT, c243 TEXT, c244 TEXT, c245 TEXT,
+ c246 TEXT, c247 TEXT, c248 TEXT, c249 TEXT, c250 TEXT, c251 TEXT, c252 TEXT,
+ c253 TEXT, c254 TEXT, c255 TEXT, c256 TEXT, c257 TEXT, c258 TEXT, c259 TEXT,
+ c260 TEXT, c261 TEXT, c262 TEXT, c263 TEXT, c264 TEXT, c265 TEXT, c266 TEXT,
+ c267 TEXT, c268 TEXT, c269 TEXT, c270 TEXT, c271 TEXT, c272 TEXT, c273 TEXT,
+ c274 TEXT, c275 TEXT, c276 TEXT, c277 TEXT, c278 TEXT, c279 TEXT, c280 TEXT,
+ c281 TEXT, c282 TEXT, c283 TEXT, c284 TEXT, c285 TEXT, c286 TEXT, c287 TEXT,
+ c288 TEXT, c289 TEXT, c290 TEXT, c291 TEXT, c292 TEXT, c293 TEXT, c294 TEXT,
+ c295 TEXT, c296 TEXT, c297 TEXT, c298 TEXT, c299 TEXT, c300 TEXT, c301 TEXT,
+ c302 TEXT, c303 TEXT, c304 TEXT, c305 TEXT, c306 TEXT, c307 TEXT, c308 TEXT,
+ c309 TEXT, c310 TEXT, c311 TEXT, c312 TEXT, c313 TEXT, c314 TEXT, c315 TEXT,
+ c316 TEXT, c317 TEXT, c318 TEXT, c319 TEXT, c320 TEXT, c321 TEXT, c322 TEXT,
+ c323 TEXT, c324 TEXT, c325 TEXT, c326 TEXT, c327 TEXT, c328 TEXT, c329 TEXT,
+ c330 TEXT, c331 TEXT, c332 TEXT, c333 TEXT, c334 TEXT, c335 TEXT, c336 TEXT,
+ c337 TEXT, c338 TEXT, c339 TEXT, c340 TEXT, c341 TEXT, c342 TEXT, c343 TEXT,
+ c344 TEXT, c345 TEXT, c346 TEXT, c347 TEXT, c348 TEXT, c349 TEXT, c350 TEXT,
+ c351 TEXT, c352 TEXT, c353 TEXT, c354 TEXT, c355 TEXT, c356 TEXT, c357 TEXT,
+ c358 TEXT, c359 TEXT, c360 TEXT, c361 TEXT, c362 TEXT, c363 TEXT, c364 TEXT,
+ c365 TEXT, c366 TEXT, c367 TEXT, c368 TEXT, c369 TEXT, c370 TEXT, c371 TEXT,
+ c372 TEXT, c373 TEXT, c374 TEXT, c375 TEXT, c376 TEXT, c377 TEXT, c378 TEXT,
+ c379 TEXT, c380 TEXT, c381 TEXT, c382 TEXT, c383 TEXT, c384 TEXT
+) ENGINE=INNODB;
+}
diff --git a/mysql-test/suite/innodb/t/strict_mode.test b/mysql-test/suite/innodb/t/strict_mode.test
index ebfc05aef02..f68dd4a3310 100644
--- a/mysql-test/suite/innodb/t/strict_mode.test
+++ b/mysql-test/suite/innodb/t/strict_mode.test
@@ -5,7 +5,7 @@
--echo # INNODB_STRICT_MODE = 1
--echo #
-call mtr.add_suppression("InnoDB: Cannot add field .* in table .* because after adding it, the row size is .* which is greater than maximum allowed size (.*) for a record on index leaf page.");
+call mtr.add_suppression('After adding field .* which is greater than maximum allowed size');
set innodb_strict_mode = 0;
diff --git a/mysql-test/suite/innodb/t/undo_log.test b/mysql-test/suite/innodb/t/undo_log.test
index 94322868b06..222bf45270f 100644
--- a/mysql-test/suite/innodb/t/undo_log.test
+++ b/mysql-test/suite/innodb/t/undo_log.test
@@ -1,6 +1,6 @@
--source include/have_innodb.inc
-call mtr.add_suppression("Cannot add field `b_str_20` in table `test`.`test_tab` because after adding it, the row size is");
+call mtr.add_suppression('After adding field .* which is greater than maximum allowed size');
SET innodb_strict_mode=OFF;
CREATE TABLE test_tab (
diff --git a/mysql-test/suite/innodb_zip/r/bug53591.result b/mysql-test/suite/innodb_zip/r/bug53591.result
index e14a1942750..047c09a27f0 100644
--- a/mysql-test/suite/innodb_zip/r/bug53591.result
+++ b/mysql-test/suite/innodb_zip/r/bug53591.result
@@ -4,10 +4,10 @@ set old_alter_table=0;
CREATE TABLE bug53591(a text charset utf8 not null)
ENGINE=InnoDB KEY_BLOCK_SIZE=1;
ALTER TABLE bug53591 ADD PRIMARY KEY(a(220));
-ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is {checked_valid}. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
+ERROR 42000: Row size is greater than 896. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
SHOW WARNINGS;
Level Code Message
-Error 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is {checked_valid}. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
+Error 1118 Row size is greater than 896. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
DROP TABLE bug53591;
SET GLOBAL innodb_file_per_table=1;
SET GLOBAL innodb_strict_mode=DEFAULT;
diff --git a/mysql-test/suite/innodb_zip/r/index_large_prefix.result b/mysql-test/suite/innodb_zip/r/index_large_prefix.result
index fe03586546a..4bb57b2edfa 100644
--- a/mysql-test/suite/innodb_zip/r/index_large_prefix.result
+++ b/mysql-test/suite/innodb_zip/r/index_large_prefix.result
@@ -102,7 +102,7 @@ Got one of the listed errors
show warnings;
Level Code Message
Note 1071 Specified key was too long; max key length is 767 bytes
-Error 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
+Error 1118 Row size is greater than 900. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
set global innodb_large_prefix=1;
Warnings:
Warning 131 Using innodb_large_prefix is deprecated and the parameter may be removed in future releases. See https://mariadb.com/kb/en/library/xtradbinnodb-file-format/
@@ -111,20 +111,20 @@ Got one of the listed errors
show warnings;
Level Code Message
Note 1071 Specified key was too long; max key length is 3072 bytes
-Error 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
-create index idx3 on worklog5743_1(a2(436));
-ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
+Error 1118 Row size is greater than 900. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+create index idx3 on worklog5743_1(a2(438));
+ERROR 42000: Row size is greater than 900. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
show warnings;
Level Code Message
-Error 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
+Error 1118 Row size is greater than 900. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
create index idx4 on worklog5743_1(a2(434));
show warnings;
Level Code Message
-create index idx5 on worklog5743_1(a1, a2(430));
-ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
+create index idx5 on worklog5743_1(a1, a2(432));
+ERROR 42000: Row size is greater than 898. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
show warnings;
Level Code Message
-Error 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
+Error 1118 Row size is greater than 898. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
create index idx6 on worklog5743_1(a1, a2(428));
show warnings;
Level Code Message
@@ -142,24 +142,24 @@ set global innodb_large_prefix=1;
Warnings:
Warning 131 Using innodb_large_prefix is deprecated and the parameter may be removed in future releases. See https://mariadb.com/kb/en/library/xtradbinnodb-file-format/
create index idx2 on worklog5743_2(a2(4000));
-ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
+ERROR 42000: Row size is greater than 1924. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
show warnings;
Level Code Message
Note 1071 Specified key was too long; max key length is 3072 bytes
-Error 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
-create index idx3 on worklog5743_2(a2(948));
-ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
+Error 1118 Row size is greater than 1924. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+create index idx3 on worklog5743_2(a2(950));
+ERROR 42000: Row size is greater than 1924. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
show warnings;
Level Code Message
-Error 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
+Error 1118 Row size is greater than 1924. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
create index idx4 on worklog5743_2(a2(946));
show warnings;
Level Code Message
-create index idx5 on worklog5743_2(a1, a2(942));
-ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
+create index idx5 on worklog5743_2(a1, a2(944));
+ERROR 42000: Row size is greater than 1922. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
show warnings;
Level Code Message
-Error 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
+Error 1118 Row size is greater than 1922. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
create index idx6 on worklog5743_2(a1, a2(940));
show warnings;
Level Code Message
@@ -176,24 +176,24 @@ set global innodb_large_prefix=1;
Warnings:
Warning 131 Using innodb_large_prefix is deprecated and the parameter may be removed in future releases. See https://mariadb.com/kb/en/library/xtradbinnodb-file-format/
create index idx2 on worklog5743_4(a2(4000));
-ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
+ERROR 42000: Row size is greater than 3972. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
show warnings;
Level Code Message
Note 1071 Specified key was too long; max key length is 3072 bytes
-Error 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
-create index idx3 on worklog5743_4(a2(1972));
-ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
+Error 1118 Row size is greater than 3972. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+create index idx3 on worklog5743_4(a2(1974));
+ERROR 42000: Row size is greater than 3972. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
show warnings;
Level Code Message
-Error 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
+Error 1118 Row size is greater than 3972. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
create index idx4 on worklog5743_4(a2(1970));
show warnings;
Level Code Message
-create index idx5 on worklog5743_4(a1, a2(1966));
-ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
+create index idx5 on worklog5743_4(a1, a2(1968));
+ERROR 42000: Row size is greater than 3970. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
show warnings;
Level Code Message
-Error 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
+Error 1118 Row size is greater than 3970. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
create index idx6 on worklog5743_4(a1, a2(1964));
show warnings;
Level Code Message
diff --git a/mysql-test/suite/innodb_zip/r/page_size,16k.rdiff b/mysql-test/suite/innodb_zip/r/page_size,16k.rdiff
new file mode 100644
index 00000000000..23faa407b8a
--- /dev/null
+++ b/mysql-test/suite/innodb_zip/r/page_size,16k.rdiff
@@ -0,0 +1,324 @@
+--- /home/kevg/work/m/bb-10.2-MDEV-20194-CHECK-row-size/mysql-test/suite/innodb_zip/r/page_size.result 2019-09-15 19:33:42.676109532 +0300
++++ /home/kevg/work/m/bb-10.2-MDEV-20194-CHECK-row-size/mysql-test/suite/innodb_zip/r/page_size.reject 2019-09-15 19:35:14.232781276 +0300
+@@ -3,7 +3,7 @@
+ SELECT variable_value FROM information_schema.global_status
+ WHERE LOWER(variable_name) = 'innodb_page_size';
+ variable_value
+-8192
++16384
+ # Test 3) Query some information_shema tables that are dependent upon
+ # the page size.
+ SELECT t.name table_name, t.n_cols, t.flag table_flags,
+@@ -32,13 +32,13 @@
+ table_name n_cols table_flags index_name root_page type n_fields merge_threshold
+ test/t1 5 0 PRIMARY 3 3 1 50
+ test/t2 5 1 PRIMARY 3 3 1 50
+-test/t3 5 39 PRIMARY 3 3 1 50
++test/t3 5 41 PRIMARY 3 3 1 50
+ test/t4 5 33 PRIMARY 3 3 1 50
+ === information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
+ Space_Name Space_Type Page_Size Zip_Size Formats_Permitted Path
+ test/t1 Single DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t1.ibd
+ test/t2 Single DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t2.ibd
+-test/t3 Single DEFAULT 4096 Compressed MYSQLD_DATADIR/test/t3.ibd
++test/t3 Single DEFAULT 8192 Compressed MYSQLD_DATADIR/test/t3.ibd
+ test/t4 Single DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4.ibd
+ DROP TABLE t1, t2, t3, t4;
+ # Test 4) The maximum row size is dependent upon the page size.
+@@ -49,55 +49,67 @@
+ c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+ c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
+ c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
+-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(103)
++c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
++c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
++c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
++c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
++c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(160)
+ ) ROW_FORMAT=compressed;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+ c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
+ c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
+-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(110)
++c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
++c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
++c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
++c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
++c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(161)
+ ) ROW_FORMAT=compressed;
+-ERROR 42000: Row size is greater than 3930. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+-CREATE TABLE t1 (a varchar(128) character set utf8,
+-b varchar(128) character set utf8,
+-c varchar(128) character set utf8,
+-d varchar(128) character set utf8,
+-PRIMARY KEY (a,b,c,d))
++ERROR 42000: Row size is greater than 7986. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
++CREATE TABLE t1 (a varchar(255) character set utf8,
++b varchar(255) character set utf8,
++c varchar(255) character set utf8,
++d varchar(255) character set utf8,
++e varchar(4) character set utf8,
++PRIMARY KEY (a,b,c,d,e))
+ ENGINE=innodb;
+ DROP TABLE t1;
+-CREATE TABLE t1 (a varchar(128) character set utf8,
+-b varchar(128) character set utf8,
+-c varchar(128) character set utf8,
+-d varchar(129) character set utf8,
+-PRIMARY KEY (a,b,c,d))
++CREATE TABLE t1 (a varchar(255) character set utf8,
++b varchar(255) character set utf8,
++c varchar(255) character set utf8,
++d varchar(255) character set utf8,
++e varchar(5) character set utf8,
++PRIMARY KEY (a,b,c,d,e))
+ ENGINE=innodb;
+-ERROR 42000: Specified key was too long; max key length is 1536 bytes
+-CREATE TABLE t1 (a varchar(128) character set utf8,
+-b varchar(128) character set utf8,
+-c varchar(128) character set utf8,
+-d varchar(128) character set utf8,
+-e varchar(128) character set utf8,
+-PRIMARY KEY (a), KEY (b,c,d,e))
++ERROR 42000: Specified key was too long; max key length is 3072 bytes
++CREATE TABLE t1 (a varchar(255) character set utf8,
++b varchar(255) character set utf8,
++c varchar(255) character set utf8,
++d varchar(255) character set utf8,
++e varchar(255) character set utf8,
++f varchar(4) character set utf8,
++PRIMARY KEY (a), KEY (b,c,d,e,f))
+ ENGINE=innodb;
+ DROP TABLE t1;
+-CREATE TABLE t1 (a varchar(128) character set utf8,
+-b varchar(128) character set utf8,
+-c varchar(128) character set utf8,
+-d varchar(128) character set utf8,
+-e varchar(129) character set utf8,
+-PRIMARY KEY (a), KEY (b,c,d,e))
++CREATE TABLE t1 (a varchar(255) character set utf8,
++b varchar(255) character set utf8,
++c varchar(255) character set utf8,
++d varchar(255) character set utf8,
++e varchar(255) character set utf8,
++f varchar(5) character set utf8,
++PRIMARY KEY (a), KEY (b,c,d,e,f))
+ ENGINE=innodb;
+-ERROR 42000: Specified key was too long; max key length is 1536 bytes
++ERROR 42000: Specified key was too long; max key length is 3072 bytes
+ # Test 5) KEY_BLOCK_SIZE validation
+-CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
+-ERROR HY000: Can't create table `test`.`t1` (errno: 140 "Wrong create options")
++CREATE TABLE t1 (i int) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
+ SHOW WARNINGS;
+ Level Code Message
+-Warning 1478 InnoDB: KEY_BLOCK_SIZE=16 cannot be larger than 8.
+-Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
+-Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
+-CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
++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 KEY_BLOCK_SIZE=8;
+ SHOW WARNINGS;
+ Level Code Message
+ SELECT table_name, row_format, create_options
+@@ -135,11 +147,8 @@
+ DROP TABLE t1;
+ SET SESSION innodb_strict_mode = OFF;
+ CREATE TABLE t1 (i int) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
+-Warnings:
+-Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16.
+ SHOW WARNINGS;
+ Level Code Message
+-Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16.
+ SELECT table_name, row_format, create_options
+ FROM information_schema.tables WHERE table_name = 't1';
+ table_name row_format create_options
+@@ -197,7 +206,6 @@
+ ERROR HY000: Can't create table `test`.`t5` (errno: 140 "Wrong create options")
+ SHOW WARNINGS;
+ Level Code Message
+-Warning 1478 InnoDB: KEY_BLOCK_SIZE=16 cannot be larger than 8.
+ Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table.
+ Error 1005 Can't create table `test`.`t5` (errno: 140 "Wrong create options")
+ Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
+@@ -216,13 +224,107 @@
+ ERROR HY000: Can't create table `test`.`t5` (errno: 140 "Wrong create options")
+ SHOW WARNINGS;
+ Level Code Message
+-Warning 1478 InnoDB: KEY_BLOCK_SIZE=16 cannot be larger than 8.
+ Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_format > Antelope.
+ Error 1005 Can't create table `test`.`t5` (errno: 140 "Wrong create options")
+ Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
+ SET GLOBAL innodb_file_format = `Barracuda`;
+ Warnings:
+ Warning 131 Using innodb_file_format is deprecated and the parameter may be removed in future releases. See https://mariadb.com/kb/en/library/xtradbinnodb-file-format/
++# Test 7) This series of tests were moved from innodb-index to here
++# because the second alter table t1 assumes a 16k page size.
++# Moving the test allows the rest of innodb-index to be run on all
++# page sizes. The previously disabled portions of this test were
++# moved as well.
++CREATE TABLE t2(d varchar(17) PRIMARY KEY) ENGINE=innodb DEFAULT CHARSET=utf8;
++CREATE TABLE t3(a int PRIMARY KEY) ENGINE=innodb;
++INSERT INTO t3 VALUES (22),(44),(33),(55),(66);
++INSERT INTO t2 VALUES ('jejdkrun87'),('adfd72nh9k'),
++('adfdpplkeock'),('adfdijnmnb78k'),('adfdijn0loKNHJik');
++CREATE TABLE t1(a int, b blob, c text, d text NOT NULL)
++ENGINE=innodb DEFAULT CHARSET=utf8 STATS_PERSISTENT=0;
++INSERT INTO t1
++SELECT a,LEFT(REPEAT(d,100*a),65535),REPEAT(d,20*a),d FROM t2,t3 order by a, d;
++DROP TABLE t2, t3;
++SELECT COUNT(*) FROM t1 WHERE a=44;
++COUNT(*)
++5
++SELECT a,
++LENGTH(b),b=LEFT(REPEAT(d,100*a),65535),LENGTH(c),c=REPEAT(d,20*a),d FROM t1
++ORDER BY 1, 2, 3, 4, 5, 6;
++a LENGTH(b) b=LEFT(REPEAT(d,100*a),65535) LENGTH(c) c=REPEAT(d,20*a) d
++22 22000 1 4400 1 adfd72nh9k
++22 22000 1 4400 1 jejdkrun87
++22 26400 1 5280 1 adfdpplkeock
++22 28600 1 5720 1 adfdijnmnb78k
++22 35200 1 7040 1 adfdijn0loKNHJik
++33 33000 1 6600 1 adfd72nh9k
++33 33000 1 6600 1 jejdkrun87
++33 39600 1 7920 1 adfdpplkeock
++33 42900 1 8580 1 adfdijnmnb78k
++33 52800 1 10560 1 adfdijn0loKNHJik
++44 44000 1 8800 1 adfd72nh9k
++44 44000 1 8800 1 jejdkrun87
++44 52800 1 10560 1 adfdpplkeock
++44 57200 1 11440 1 adfdijnmnb78k
++44 65535 1 14080 1 adfdijn0loKNHJik
++55 55000 1 11000 1 adfd72nh9k
++55 55000 1 11000 1 jejdkrun87
++55 65535 1 13200 1 adfdpplkeock
++55 65535 1 14300 1 adfdijnmnb78k
++55 65535 1 17600 1 adfdijn0loKNHJik
++66 65535 1 13200 1 adfd72nh9k
++66 65535 1 13200 1 jejdkrun87
++66 65535 1 15840 1 adfdpplkeock
++66 65535 1 17160 1 adfdijnmnb78k
++66 65535 1 21120 1 adfdijn0loKNHJik
++ALTER TABLE t1 ADD PRIMARY KEY (a), ADD KEY (b(20));
++ERROR 23000: Duplicate entry '22' for key 'PRIMARY'
++DELETE FROM t1 WHERE d='null';
++ALTER TABLE t1 ADD PRIMARY KEY (a), ADD KEY (b(20));
++ERROR 23000: Duplicate entry '22' for key 'PRIMARY'
++DELETE FROM t1 WHERE a%2;
++CHECK TABLE t1;
++Table Op Msg_type Msg_text
++test.t1 check status OK
++ALTER TABLE t1 ADD PRIMARY KEY (a,b(255),c(255)), ADD KEY (b(767));
++SELECT COUNT(*) FROM t1 WHERE a=44;
++COUNT(*)
++5
++SELECT a,
++LENGTH(b), b=LEFT(REPEAT(d,100*a), 65535),LENGTH(c), c=REPEAT(d,20*a), d FROM t1;
++a LENGTH(b) b=LEFT(REPEAT(d,100*a), 65535) LENGTH(c) c=REPEAT(d,20*a) d
++22 22000 1 4400 1 adfd72nh9k
++22 35200 1 7040 1 adfdijn0loKNHJik
++22 28600 1 5720 1 adfdijnmnb78k
++22 26400 1 5280 1 adfdpplkeock
++22 22000 1 4400 1 jejdkrun87
++44 44000 1 8800 1 adfd72nh9k
++44 65535 1 14080 1 adfdijn0loKNHJik
++44 57200 1 11440 1 adfdijnmnb78k
++44 52800 1 10560 1 adfdpplkeock
++44 44000 1 8800 1 jejdkrun87
++66 65535 1 13200 1 adfd72nh9k
++66 65535 1 21120 1 adfdijn0loKNHJik
++66 65535 1 17160 1 adfdijnmnb78k
++66 65535 1 15840 1 adfdpplkeock
++66 65535 1 13200 1 jejdkrun87
++SHOW CREATE TABLE t1;
++Table Create Table
++t1 CREATE TABLE `t1` (
++ `a` int(11) NOT NULL,
++ `b` blob NOT NULL,
++ `c` text NOT NULL,
++ `d` text NOT NULL,
++ PRIMARY KEY (`a`,`b`(255),`c`(255)),
++ KEY `b` (`b`(767))
++) ENGINE=InnoDB DEFAULT CHARSET=utf8 STATS_PERSISTENT=0
++CHECK TABLE t1;
++Table Op Msg_type Msg_text
++test.t1 check status OK
++EXPLAIN SELECT * FROM t1 WHERE b LIKE 'adfd%';
++id select_type table type possible_keys key key_len ref rows Extra
++1 SIMPLE t1 range b b 769 NULL 12 Using where
++DROP TABLE t1;
+ # Test 8) Test creating a table that could lead to undo log overflow.
+ CREATE TABLE t1(a blob,b blob,c blob,d blob,e blob,f blob,g blob,
+ h blob,i blob,j blob,k blob,l blob,m blob,n blob,
+@@ -237,6 +339,10 @@
+ UPDATE t1 SET a=@b,b=@b,c=@b,d=@b,e=@b,f=@b,g=@b,h=@b,i=@b,j=@b,
+ k=@b,l=@b,m=@b,n=@b,o=@b,p=@b,q=@b,r=@b,s=@b,t=@b,u=@b;
+ CREATE INDEX t1a ON t1 (a(767));
++CREATE INDEX t1b ON t1 (b(767));
++CREATE INDEX t1c ON t1 (c(767));
++CREATE INDEX t1d ON t1 (d(767));
++CREATE INDEX t1e ON t1 (e(767));
+ UPDATE t1 SET a=@c,b=@c,c=@c,d=@c,e=@c,f=@c,g=@c,h=@c,i=@c,j=@c,
+ k=@c,l=@c,m=@c,n=@c,o=@c,p=@c,q=@c,r=@c,s=@c,t=@c,u=@c;
+ CREATE INDEX t1f ON t1 (f(767));
+@@ -251,6 +357,30 @@
+ COMMIT;
+ CREATE INDEX t1g ON t1 (g(767));
+ UPDATE t1 SET g=@e;
++CREATE INDEX t1h ON t1 (h(767));
++UPDATE t1 SET h=@e;
++CREATE INDEX t1i ON t1 (i(767));
++UPDATE t1 SET i=@e;
++CREATE INDEX t1j ON t1 (j(767));
++UPDATE t1 SET j=@e;
++CREATE INDEX t1k ON t1 (k(767));
++UPDATE t1 SET k=@e;
++CREATE INDEX t1l ON t1 (l(767));
++UPDATE t1 SET l=@e;
++CREATE INDEX t1m ON t1 (m(767));
++UPDATE t1 SET m=@e;
++CREATE INDEX t1n ON t1 (n(767));
++UPDATE t1 SET n=@e;
++CREATE INDEX t1o ON t1 (o(767));
++UPDATE t1 SET o=@e;
++CREATE INDEX t1p ON t1 (p(767));
++UPDATE t1 SET p=@e;
++CREATE INDEX t1q ON t1 (q(767));
++UPDATE t1 SET q=@e;
++CREATE INDEX t1r ON t1 (r(767));
++UPDATE t1 SET r=@e;
++CREATE INDEX t1s ON t1 (s(767));
++UPDATE t1 SET s=@e;
+ CREATE INDEX t1t ON t1 (t(767));
+ BEGIN;
+ UPDATE t1 SET t=@e;
+@@ -283,8 +413,24 @@
+ `t` blob DEFAULT NULL,
+ `u` blob DEFAULT NULL,
+ KEY `t1a` (`a`(767)),
++ KEY `t1b` (`b`(767)),
++ KEY `t1c` (`c`(767)),
++ KEY `t1d` (`d`(767)),
++ KEY `t1e` (`e`(767)),
+ KEY `t1f` (`f`(767)),
+ KEY `t1g` (`g`(767)),
++ KEY `t1h` (`h`(767)),
++ KEY `t1i` (`i`(767)),
++ KEY `t1j` (`j`(767)),
++ KEY `t1k` (`k`(767)),
++ KEY `t1l` (`l`(767)),
++ KEY `t1m` (`m`(767)),
++ KEY `t1n` (`n`(767)),
++ KEY `t1o` (`o`(767)),
++ KEY `t1p` (`p`(767)),
++ KEY `t1q` (`q`(767)),
++ KEY `t1r` (`r`(767)),
++ KEY `t1s` (`s`(767)),
+ KEY `t1t` (`t`(767)),
+ KEY `t1u` (`u`(767)),
+ KEY `t1ut` (`u`(767),`t`(767)),
diff --git a/mysql-test/suite/innodb_zip/r/page_size,4k.rdiff b/mysql-test/suite/innodb_zip/r/page_size,4k.rdiff
index c12527fd8a3..ad3bf70aedd 100644
--- a/mysql-test/suite/innodb_zip/r/page_size,4k.rdiff
+++ b/mysql-test/suite/innodb_zip/r/page_size,4k.rdiff
@@ -1,10 +1,10 @@
---- page_size.result
-+++ page_size,4k.result
+--- /home/kevg/work/m/bb-10.2-MDEV-20194-CHECK-row-size/mysql-test/suite/innodb_zip/r/page_size.result 2019-09-15 19:33:42.676109532 +0300
++++ /home/kevg/work/m/bb-10.2-MDEV-20194-CHECK-row-size/mysql-test/suite/innodb_zip/r/page_size.reject 2019-09-15 19:40:40.306732147 +0300
@@ -3,7 +3,7 @@
SELECT variable_value FROM information_schema.global_status
WHERE LOWER(variable_name) = 'innodb_page_size';
variable_value
--16384
+-8192
+4096
# Test 3) Query some information_shema tables that are dependent upon
# the page size.
@@ -13,79 +13,25 @@
table_name n_cols table_flags index_name root_page type n_fields merge_threshold
test/t1 5 0 PRIMARY 3 3 1 50
test/t2 5 1 PRIMARY 3 3 1 50
--test/t3 5 41 PRIMARY 3 3 1 50
+-test/t3 5 39 PRIMARY 3 3 1 50
+test/t3 5 37 PRIMARY 3 3 1 50
test/t4 5 33 PRIMARY 3 3 1 50
=== information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
Space_Name Space_Type Page_Size Zip_Size Formats_Permitted Path
test/t1 Single DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t1.ibd
test/t2 Single DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t2.ibd
--test/t3 Single DEFAULT 8192 Compressed MYSQLD_DATADIR/test/t3.ibd
+-test/t3 Single DEFAULT 4096 Compressed MYSQLD_DATADIR/test/t3.ibd
+test/t3 Single DEFAULT 2048 Compressed MYSQLD_DATADIR/test/t3.ibd
test/t4 Single DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4.ibd
DROP TABLE t1, t2, t3, t4;
# Test 4) The maximum row size is dependent upon the page size.
-@@ -47,141 +47,90 @@
+@@ -47,63 +47,60 @@
SET SESSION innodb_strict_mode = ON;
CREATE TABLE t1 (
c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
--c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
--c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
--c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
--c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
--c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(211)
-+c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(127)
- ) ROW_FORMAT=redundant;
- DROP TABLE t1;
- CREATE TABLE t1 (
- c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
--c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
--c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
--c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
--c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
--c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
--c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
--c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(212)
-+c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(128)
- ) ROW_FORMAT=redundant;
--ERROR 42000: Row size too large (> 8123). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
- CREATE TABLE t1 (
- c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
--c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
--c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
--c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
--c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
--c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
--c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
--c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(246)
-+c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(155)
- ) ROW_FORMAT=compact;
- DROP TABLE t1;
- CREATE TABLE t1 (
- c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
--c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
--c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
--c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
--c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
--c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
--c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
--c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(247)
-+c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(156)
- ) ROW_FORMAT=compact;
--ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
- CREATE TABLE t1 (
- c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
--c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
--c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
--c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
--c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
--c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
--c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
--c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(157)
+-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(103)
+c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(76)
) ROW_FORMAT=compressed;
DROP TABLE t1;
@@ -93,112 +39,72 @@
c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
--c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
--c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
--c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
--c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
--c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(160)
-+c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(79)
+-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(110)
++c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(85)
) ROW_FORMAT=compressed;
--ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
-+ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
- CREATE TABLE t1 (
- c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
--c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
--c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
--c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
--c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
--c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
--c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
--c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(246)
-+c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(155)
- ) ROW_FORMAT=dynamic;
- DROP TABLE t1;
- CREATE TABLE t1 (
- c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
--c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
--c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
--c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
--c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
--c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
--c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
--c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(247)
-+c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(156)
- ) ROW_FORMAT=dynamic;
--ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
--CREATE TABLE t1 (a varchar(255) character set utf8,
--b varchar(255) character set utf8,
--c varchar(255) character set utf8,
--d varchar(255) character set utf8,
--e varchar(4) character set utf8,
--PRIMARY KEY (a,b,c,d,e))
-+ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+-ERROR 42000: Row size is greater than 3930. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+-CREATE TABLE t1 (a varchar(128) character set utf8,
+-b varchar(128) character set utf8,
+-c varchar(128) character set utf8,
+-d varchar(128) character set utf8,
++ERROR 42000: Row size is greater than 1902. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+CREATE TABLE t1 (a varchar(98) character set utf8,
+b varchar(98) character set utf8,
+c varchar(98) character set utf8,
+d varchar(97) character set utf8,
-+PRIMARY KEY (a,b,c,d))
+ PRIMARY KEY (a,b,c,d))
ENGINE=innodb;
DROP TABLE t1;
--CREATE TABLE t1 (a varchar(255) character set utf8,
--b varchar(255) character set utf8,
--c varchar(255) character set utf8,
--d varchar(255) character set utf8,
--e varchar(5) character set utf8,
--PRIMARY KEY (a,b,c,d,e))
+-CREATE TABLE t1 (a varchar(128) character set utf8,
+-b varchar(128) character set utf8,
+-c varchar(128) character set utf8,
+-d varchar(129) character set utf8,
+CREATE TABLE t1 (a varchar(98) character set utf8,
+b varchar(98) character set utf8,
+c varchar(98) character set utf8,
+d varchar(98) character set utf8,
-+PRIMARY KEY (a,b,c,d))
+ PRIMARY KEY (a,b,c,d))
ENGINE=innodb;
--ERROR 42000: Specified key was too long; max key length is 3072 bytes
--CREATE TABLE t1 (a varchar(255) character set utf8,
--b varchar(255) character set utf8,
--c varchar(255) character set utf8,
--d varchar(255) character set utf8,
--e varchar(255) character set utf8,
--f varchar(4) character set utf8,
--PRIMARY KEY (a), KEY (b,c,d,e,f))
+-ERROR 42000: Specified key was too long; max key length is 1536 bytes
+-CREATE TABLE t1 (a varchar(128) character set utf8,
+-b varchar(128) character set utf8,
+-c varchar(128) character set utf8,
+-d varchar(128) character set utf8,
+-e varchar(128) character set utf8,
+ERROR 42000: Specified key was too long; max key length is 1173 bytes
+CREATE TABLE t1 (a varchar(98) character set utf8,
+b varchar(98) character set utf8,
+c varchar(98) character set utf8,
+d varchar(98) character set utf8,
+e varchar(97) character set utf8,
-+PRIMARY KEY (a), KEY (b,c,d,e))
+ PRIMARY KEY (a), KEY (b,c,d,e))
ENGINE=innodb;
DROP TABLE t1;
--CREATE TABLE t1 (a varchar(255) character set utf8,
--b varchar(255) character set utf8,
--c varchar(255) character set utf8,
--d varchar(255) character set utf8,
--e varchar(255) character set utf8,
--f varchar(5) character set utf8,
--PRIMARY KEY (a), KEY (b,c,d,e,f))
+-CREATE TABLE t1 (a varchar(128) character set utf8,
+-b varchar(128) character set utf8,
+-c varchar(128) character set utf8,
+-d varchar(128) character set utf8,
+-e varchar(129) character set utf8,
+CREATE TABLE t1 (a varchar(98) character set utf8,
+b varchar(98) character set utf8,
+c varchar(98) character set utf8,
+d varchar(98) character set utf8,
+e varchar(98) character set utf8,
-+PRIMARY KEY (a), KEY (b,c,d,e))
+ PRIMARY KEY (a), KEY (b,c,d,e))
ENGINE=innodb;
--ERROR 42000: Specified key was too long; max key length is 3072 bytes
+-ERROR 42000: Specified key was too long; max key length is 1536 bytes
+ERROR 42000: Specified key was too long; max key length is 1173 bytes
# Test 5) KEY_BLOCK_SIZE validation
- CREATE TABLE t1 (i int) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
-+ERROR HY000: Can't create table `test`.`t1` (errno: 140 "Wrong create options")
+-CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
++CREATE TABLE t1 (i int) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
+ ERROR HY000: Can't create table `test`.`t1` (errno: 140 "Wrong create options")
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 KEY_BLOCK_SIZE=8;
+-Warning 1478 InnoDB: KEY_BLOCK_SIZE=16 cannot be larger than 8.
+Warning 1478 InnoDB: KEY_BLOCK_SIZE=16 cannot be larger than 4.
-+Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
-+Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
-+CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
+ Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
+ Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
+ CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
+ERROR HY000: Can't create table `test`.`t1` (errno: 140 "Wrong create options")
SHOW WARNINGS;
Level Code Message
@@ -213,17 +119,7 @@
ALTER TABLE t1 KEY_BLOCK_SIZE=4;
SHOW WARNINGS;
Level Code Message
-@@ -213,15 +162,21 @@
- DROP TABLE t1;
- SET SESSION innodb_strict_mode = OFF;
- CREATE TABLE t1 (i int) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
-+Warnings:
-+Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16.
- SHOW WARNINGS;
- Level Code Message
-+Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16.
- SELECT table_name, row_format, create_options
- FROM information_schema.tables WHERE table_name = 't1';
+@@ -145,8 +142,11 @@
table_name row_format create_options
t1 Compressed row_format=COMPRESSED key_block_size=16
ALTER TABLE t1 KEY_BLOCK_SIZE=8;
@@ -235,7 +131,7 @@
SELECT table_name, row_format, create_options
FROM information_schema.tables WHERE table_name = 't1';
table_name row_format create_options
-@@ -265,6 +220,7 @@
+@@ -190,6 +190,7 @@
ERROR HY000: Can't create table `test`.`t4` (errno: 140 "Wrong create options")
SHOW WARNINGS;
Level Code Message
@@ -243,15 +139,16 @@
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table.
Error 1005 Can't create table `test`.`t4` (errno: 140 "Wrong create options")
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
-@@ -272,6 +228,7 @@
+@@ -197,7 +198,7 @@
ERROR HY000: Can't create table `test`.`t5` (errno: 140 "Wrong create options")
SHOW WARNINGS;
Level Code Message
+-Warning 1478 InnoDB: KEY_BLOCK_SIZE=16 cannot be larger than 8.
+Warning 1478 InnoDB: KEY_BLOCK_SIZE=16 cannot be larger than 4.
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table.
Error 1005 Can't create table `test`.`t5` (errno: 140 "Wrong create options")
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
-@@ -283,6 +240,7 @@
+@@ -209,6 +210,7 @@
ERROR HY000: Can't create table `test`.`t4` (errno: 140 "Wrong create options")
SHOW WARNINGS;
Level Code Message
@@ -259,156 +156,16 @@
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_format > Antelope.
Error 1005 Can't create table `test`.`t4` (errno: 140 "Wrong create options")
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
-@@ -290,107 +248,13 @@
+@@ -216,7 +218,7 @@
ERROR HY000: Can't create table `test`.`t5` (errno: 140 "Wrong create options")
SHOW WARNINGS;
Level Code Message
+-Warning 1478 InnoDB: KEY_BLOCK_SIZE=16 cannot be larger than 8.
+Warning 1478 InnoDB: KEY_BLOCK_SIZE=16 cannot be larger than 4.
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_format > Antelope.
Error 1005 Can't create table `test`.`t5` (errno: 140 "Wrong create options")
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
- SET GLOBAL innodb_file_format = `Barracuda`;
- Warnings:
- Warning 131 Using innodb_file_format is deprecated and the parameter may be removed in future releases. See https://mariadb.com/kb/en/library/xtradbinnodb-file-format/
--# Test 7) This series of tests were moved from innodb-index to here
--# because the second alter table t1 assumes a 16k page size.
--# Moving the test allows the rest of innodb-index to be run on all
--# page sizes. The previously disabled portions of this test were
--# moved as well.
--CREATE TABLE t2(d varchar(17) PRIMARY KEY) ENGINE=innodb DEFAULT CHARSET=utf8;
--CREATE TABLE t3(a int PRIMARY KEY) ENGINE=innodb;
--INSERT INTO t3 VALUES (22),(44),(33),(55),(66);
--INSERT INTO t2 VALUES ('jejdkrun87'),('adfd72nh9k'),
--('adfdpplkeock'),('adfdijnmnb78k'),('adfdijn0loKNHJik');
--CREATE TABLE t1(a int, b blob, c text, d text NOT NULL)
--ENGINE=innodb DEFAULT CHARSET=utf8 STATS_PERSISTENT=0;
--INSERT INTO t1
--SELECT a,LEFT(REPEAT(d,100*a),65535),REPEAT(d,20*a),d FROM t2,t3 order by a, d;
--DROP TABLE t2, t3;
--SELECT COUNT(*) FROM t1 WHERE a=44;
--COUNT(*)
--5
--SELECT a,
--LENGTH(b),b=LEFT(REPEAT(d,100*a),65535),LENGTH(c),c=REPEAT(d,20*a),d FROM t1
--ORDER BY 1, 2, 3, 4, 5, 6;
--a LENGTH(b) b=LEFT(REPEAT(d,100*a),65535) LENGTH(c) c=REPEAT(d,20*a) d
--22 22000 1 4400 1 adfd72nh9k
--22 22000 1 4400 1 jejdkrun87
--22 26400 1 5280 1 adfdpplkeock
--22 28600 1 5720 1 adfdijnmnb78k
--22 35200 1 7040 1 adfdijn0loKNHJik
--33 33000 1 6600 1 adfd72nh9k
--33 33000 1 6600 1 jejdkrun87
--33 39600 1 7920 1 adfdpplkeock
--33 42900 1 8580 1 adfdijnmnb78k
--33 52800 1 10560 1 adfdijn0loKNHJik
--44 44000 1 8800 1 adfd72nh9k
--44 44000 1 8800 1 jejdkrun87
--44 52800 1 10560 1 adfdpplkeock
--44 57200 1 11440 1 adfdijnmnb78k
--44 65535 1 14080 1 adfdijn0loKNHJik
--55 55000 1 11000 1 adfd72nh9k
--55 55000 1 11000 1 jejdkrun87
--55 65535 1 13200 1 adfdpplkeock
--55 65535 1 14300 1 adfdijnmnb78k
--55 65535 1 17600 1 adfdijn0loKNHJik
--66 65535 1 13200 1 adfd72nh9k
--66 65535 1 13200 1 jejdkrun87
--66 65535 1 15840 1 adfdpplkeock
--66 65535 1 17160 1 adfdijnmnb78k
--66 65535 1 21120 1 adfdijn0loKNHJik
--ALTER TABLE t1 ADD PRIMARY KEY (a), ADD KEY (b(20));
--ERROR 23000: Duplicate entry '22' for key 'PRIMARY'
--DELETE FROM t1 WHERE d='null';
--ALTER TABLE t1 ADD PRIMARY KEY (a), ADD KEY (b(20));
--ERROR 23000: Duplicate entry '22' for key 'PRIMARY'
--DELETE FROM t1 WHERE a%2;
--CHECK TABLE t1;
--Table Op Msg_type Msg_text
--test.t1 check status OK
--ALTER TABLE t1 ADD PRIMARY KEY (a,b(255),c(255)), ADD KEY (b(767));
--SELECT COUNT(*) FROM t1 WHERE a=44;
--COUNT(*)
--5
--SELECT a,
--LENGTH(b), b=LEFT(REPEAT(d,100*a), 65535),LENGTH(c), c=REPEAT(d,20*a), d FROM t1;
--a LENGTH(b) b=LEFT(REPEAT(d,100*a), 65535) LENGTH(c) c=REPEAT(d,20*a) d
--22 22000 1 4400 1 adfd72nh9k
--22 35200 1 7040 1 adfdijn0loKNHJik
--22 28600 1 5720 1 adfdijnmnb78k
--22 26400 1 5280 1 adfdpplkeock
--22 22000 1 4400 1 jejdkrun87
--44 44000 1 8800 1 adfd72nh9k
--44 65535 1 14080 1 adfdijn0loKNHJik
--44 57200 1 11440 1 adfdijnmnb78k
--44 52800 1 10560 1 adfdpplkeock
--44 44000 1 8800 1 jejdkrun87
--66 65535 1 13200 1 adfd72nh9k
--66 65535 1 21120 1 adfdijn0loKNHJik
--66 65535 1 17160 1 adfdijnmnb78k
--66 65535 1 15840 1 adfdpplkeock
--66 65535 1 13200 1 jejdkrun87
--SHOW CREATE TABLE t1;
--Table Create Table
--t1 CREATE TABLE `t1` (
-- `a` int(11) NOT NULL,
-- `b` blob NOT NULL,
-- `c` text NOT NULL,
-- `d` text NOT NULL,
-- PRIMARY KEY (`a`,`b`(255),`c`(255)),
-- KEY `b` (`b`(767))
--) ENGINE=InnoDB DEFAULT CHARSET=utf8 STATS_PERSISTENT=0
--CHECK TABLE t1;
--Table Op Msg_type Msg_text
--test.t1 check status OK
--EXPLAIN SELECT * FROM t1 WHERE b LIKE 'adfd%';
--id select_type table type possible_keys key key_len ref rows Extra
--1 SIMPLE t1 range b b 769 NULL 12 Using where
--DROP TABLE t1;
- # Test 8) Test creating a table that could lead to undo log overflow.
- CREATE TABLE t1(a blob,b blob,c blob,d blob,e blob,f blob,g blob,
- h blob,i blob,j blob,k blob,l blob,m blob,n blob,
-@@ -405,10 +269,6 @@
- UPDATE t1 SET a=@b,b=@b,c=@b,d=@b,e=@b,f=@b,g=@b,h=@b,i=@b,j=@b,
- k=@b,l=@b,m=@b,n=@b,o=@b,p=@b,q=@b,r=@b,s=@b,t=@b,u=@b;
- CREATE INDEX t1a ON t1 (a(767));
--CREATE INDEX t1b ON t1 (b(767));
--CREATE INDEX t1c ON t1 (c(767));
--CREATE INDEX t1d ON t1 (d(767));
--CREATE INDEX t1e ON t1 (e(767));
- UPDATE t1 SET a=@c,b=@c,c=@c,d=@c,e=@c,f=@c,g=@c,h=@c,i=@c,j=@c,
- k=@c,l=@c,m=@c,n=@c,o=@c,p=@c,q=@c,r=@c,s=@c,t=@c,u=@c;
- CREATE INDEX t1f ON t1 (f(767));
-@@ -423,37 +283,15 @@
- COMMIT;
- CREATE INDEX t1g ON t1 (g(767));
- UPDATE t1 SET g=@e;
--CREATE INDEX t1h ON t1 (h(767));
--UPDATE t1 SET h=@e;
--CREATE INDEX t1i ON t1 (i(767));
--UPDATE t1 SET i=@e;
--CREATE INDEX t1j ON t1 (j(767));
--UPDATE t1 SET j=@e;
--CREATE INDEX t1k ON t1 (k(767));
--UPDATE t1 SET k=@e;
--CREATE INDEX t1l ON t1 (l(767));
--UPDATE t1 SET l=@e;
--CREATE INDEX t1m ON t1 (m(767));
--UPDATE t1 SET m=@e;
--CREATE INDEX t1n ON t1 (n(767));
--UPDATE t1 SET n=@e;
--CREATE INDEX t1o ON t1 (o(767));
--UPDATE t1 SET o=@e;
--CREATE INDEX t1p ON t1 (p(767));
--UPDATE t1 SET p=@e;
--CREATE INDEX t1q ON t1 (q(767));
--UPDATE t1 SET q=@e;
--CREATE INDEX t1r ON t1 (r(767));
--UPDATE t1 SET r=@e;
--CREATE INDEX t1s ON t1 (s(767));
--UPDATE t1 SET s=@e;
- CREATE INDEX t1t ON t1 (t(767));
- BEGIN;
+@@ -256,8 +258,10 @@
UPDATE t1 SET t=@e;
ROLLBACK;
CREATE INDEX t1u ON t1 (u(767));
@@ -421,28 +178,8 @@
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
-@@ -479,28 +317,12 @@
- `t` blob DEFAULT NULL,
- `u` blob DEFAULT NULL,
- KEY `t1a` (`a`(767)),
-- KEY `t1b` (`b`(767)),
-- KEY `t1c` (`c`(767)),
-- KEY `t1d` (`d`(767)),
-- KEY `t1e` (`e`(767)),
- KEY `t1f` (`f`(767)),
+@@ -287,8 +291,8 @@
KEY `t1g` (`g`(767)),
-- KEY `t1h` (`h`(767)),
-- KEY `t1i` (`i`(767)),
-- KEY `t1j` (`j`(767)),
-- KEY `t1k` (`k`(767)),
-- KEY `t1l` (`l`(767)),
-- KEY `t1m` (`m`(767)),
-- KEY `t1n` (`n`(767)),
-- KEY `t1o` (`o`(767)),
-- KEY `t1p` (`p`(767)),
-- KEY `t1q` (`q`(767)),
-- KEY `t1r` (`r`(767)),
-- KEY `t1s` (`s`(767)),
KEY `t1t` (`t`(767)),
KEY `t1u` (`u`(767)),
- KEY `t1ut` (`u`(767),`t`(767)),
@@ -452,7 +189,16 @@
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
DROP TABLE t1;
# Bug#12547647 UPDATE LOGGING COULD EXCEED LOG PAGE SIZE
-@@ -581,27 +403,25 @@
+@@ -350,6 +354,8 @@
+ KEY pk(sk01,sk02,sk03,sk04,sk05,sk06,sk07,sk08,
+ sk09,sk10,sk11,sk12,sk13,sk14,sk15,sk16))
+ ROW_FORMAT=Compressed KEY_BLOCK_SIZE=4 ENGINE=InnoDB;
++Warnings:
++Warning 139 Row size is greater than 1981. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ SET @r = repeat('a', 48);
+ INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
+ @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
+@@ -369,21 +375,19 @@
DROP TABLE t1;
CREATE TABLE t1(
c text NOT NULL, d text NOT NULL,
@@ -460,8 +206,8 @@
+PRIMARY KEY (c(767)))
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
Warnings:
--Warning 139 Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
-+Warning 139 Row size too large (> 1982). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+-Warning 139 Row size is greater than 892. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
++Warning 139 Row size is greater than 894. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
DROP TABLE t1;
CREATE TABLE t1(
c text NOT NULL, d text NOT NULL,
@@ -469,7 +215,7 @@
+PRIMARY KEY (c(767)))
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=2 CHARSET=ASCII;
-Warnings:
--Warning 139 Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+-Warning 139 Row size is greater than 1916. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
DROP TABLE t1;
CREATE TABLE t1(
c text NOT NULL, d text NOT NULL,
@@ -478,10 +224,3 @@
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4 CHARSET=ASCII;
DROP TABLE t1;
CREATE TABLE t1(c text, PRIMARY KEY (c(440)))
- ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
- Warnings:
--Warning 139 Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
-+Warning 139 Row size too large (> 1982). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
- DROP TABLE t1;
- CREATE TABLE t1(c text, PRIMARY KEY (c(438)))
- ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
diff --git a/mysql-test/suite/innodb_zip/r/page_size,8k.rdiff b/mysql-test/suite/innodb_zip/r/page_size,8k.rdiff
deleted file mode 100644
index 6ac52b8de2c..00000000000
--- a/mysql-test/suite/innodb_zip/r/page_size,8k.rdiff
+++ /dev/null
@@ -1,425 +0,0 @@
---- page_size.result
-+++ page_size,8k.result
-@@ -3,7 +3,7 @@
- SELECT variable_value FROM information_schema.global_status
- WHERE LOWER(variable_name) = 'innodb_page_size';
- variable_value
--16384
-+8192
- # Test 3) Query some information_shema tables that are dependent upon
- # the page size.
- SELECT t.name table_name, t.n_cols, t.flag table_flags,
-@@ -32,13 +32,13 @@
- table_name n_cols table_flags index_name root_page type n_fields merge_threshold
- test/t1 5 0 PRIMARY 3 3 1 50
- test/t2 5 1 PRIMARY 3 3 1 50
--test/t3 5 41 PRIMARY 3 3 1 50
-+test/t3 5 39 PRIMARY 3 3 1 50
- test/t4 5 33 PRIMARY 3 3 1 50
- === information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
- Space_Name Space_Type Page_Size Zip_Size Formats_Permitted Path
- test/t1 Single DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t1.ibd
- test/t2 Single DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t2.ibd
--test/t3 Single DEFAULT 8192 Compressed MYSQLD_DATADIR/test/t3.ibd
-+test/t3 Single DEFAULT 4096 Compressed MYSQLD_DATADIR/test/t3.ibd
- test/t4 Single DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4.ibd
- DROP TABLE t1, t2, t3, t4;
- # Test 4) The maximum row size is dependent upon the page size.
-@@ -49,133 +49,97 @@
- c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
- c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
- c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
--c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
--c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
--c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
--c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
--c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(211)
-+c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(155)
- ) ROW_FORMAT=redundant;
- DROP TABLE t1;
- CREATE TABLE t1 (
- c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
- c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
- c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
--c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
--c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
--c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
--c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
--c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(212)
-+c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(156)
- ) ROW_FORMAT=redundant;
--ERROR 42000: Row size too large (> 8123). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
- CREATE TABLE t1 (
- c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
- c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
- c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
--c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
--c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
--c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
--c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
--c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(246)
-+c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(202)
- ) ROW_FORMAT=compact;
- DROP TABLE t1;
- CREATE TABLE t1 (
- c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
- c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
- c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
--c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
--c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
--c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
--c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
--c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(247)
-+c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(203)
- ) ROW_FORMAT=compact;
--ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-+ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
- CREATE TABLE t1 (
- c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
- c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
- c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
--c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
--c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
--c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
--c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
--c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(157)
-+c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(103)
- ) ROW_FORMAT=compressed;
- DROP TABLE t1;
- CREATE TABLE t1 (
- c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
- c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
- c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
--c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
--c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
--c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
--c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
--c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(160)
-+c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(106)
- ) ROW_FORMAT=compressed;
--ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
-+ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
- CREATE TABLE t1 (
- c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
- c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
- c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
--c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
--c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
--c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
--c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
--c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(246)
-+c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(202)
- ) ROW_FORMAT=dynamic;
- DROP TABLE t1;
- CREATE TABLE t1 (
- c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
- c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
- c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
--c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
--c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
--c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
--c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
--c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(247)
-+c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(203)
- ) ROW_FORMAT=dynamic;
--ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
--CREATE TABLE t1 (a varchar(255) character set utf8,
--b varchar(255) character set utf8,
--c varchar(255) character set utf8,
--d varchar(255) character set utf8,
--e varchar(4) character set utf8,
--PRIMARY KEY (a,b,c,d,e))
-+ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
-+CREATE TABLE t1 (a varchar(128) character set utf8,
-+b varchar(128) character set utf8,
-+c varchar(128) character set utf8,
-+d varchar(128) character set utf8,
-+PRIMARY KEY (a,b,c,d))
- ENGINE=innodb;
- DROP TABLE t1;
--CREATE TABLE t1 (a varchar(255) character set utf8,
--b varchar(255) character set utf8,
--c varchar(255) character set utf8,
--d varchar(255) character set utf8,
--e varchar(5) character set utf8,
--PRIMARY KEY (a,b,c,d,e))
-+CREATE TABLE t1 (a varchar(128) character set utf8,
-+b varchar(128) character set utf8,
-+c varchar(128) character set utf8,
-+d varchar(129) character set utf8,
-+PRIMARY KEY (a,b,c,d))
- ENGINE=innodb;
--ERROR 42000: Specified key was too long; max key length is 3072 bytes
--CREATE TABLE t1 (a varchar(255) character set utf8,
--b varchar(255) character set utf8,
--c varchar(255) character set utf8,
--d varchar(255) character set utf8,
--e varchar(255) character set utf8,
--f varchar(4) character set utf8,
--PRIMARY KEY (a), KEY (b,c,d,e,f))
-+ERROR 42000: Specified key was too long; max key length is 1536 bytes
-+CREATE TABLE t1 (a varchar(128) character set utf8,
-+b varchar(128) character set utf8,
-+c varchar(128) character set utf8,
-+d varchar(128) character set utf8,
-+e varchar(128) character set utf8,
-+PRIMARY KEY (a), KEY (b,c,d,e))
- ENGINE=innodb;
- DROP TABLE t1;
--CREATE TABLE t1 (a varchar(255) character set utf8,
--b varchar(255) character set utf8,
--c varchar(255) character set utf8,
--d varchar(255) character set utf8,
--e varchar(255) character set utf8,
--f varchar(5) character set utf8,
--PRIMARY KEY (a), KEY (b,c,d,e,f))
-+CREATE TABLE t1 (a varchar(128) character set utf8,
-+b varchar(128) character set utf8,
-+c varchar(128) character set utf8,
-+d varchar(128) character set utf8,
-+e varchar(129) character set utf8,
-+PRIMARY KEY (a), KEY (b,c,d,e))
- ENGINE=innodb;
--ERROR 42000: Specified key was too long; max key length is 3072 bytes
-+ERROR 42000: Specified key was too long; max key length is 1536 bytes
- # Test 5) KEY_BLOCK_SIZE validation
--CREATE TABLE t1 (i int) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
-+CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
-+ERROR HY000: Can't create table `test`.`t1` (errno: 140 "Wrong create options")
- 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 KEY_BLOCK_SIZE=8;
-+Warning 1478 InnoDB: KEY_BLOCK_SIZE=16 cannot be larger than 8.
-+Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
-+Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
-+CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
- SHOW WARNINGS;
- Level Code Message
- SELECT table_name, row_format, create_options
-@@ -213,8 +177,11 @@
- DROP TABLE t1;
- SET SESSION innodb_strict_mode = OFF;
- CREATE TABLE t1 (i int) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
-+Warnings:
-+Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16.
- SHOW WARNINGS;
- Level Code Message
-+Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16.
- SELECT table_name, row_format, create_options
- FROM information_schema.tables WHERE table_name = 't1';
- table_name row_format create_options
-@@ -272,6 +239,7 @@
- ERROR HY000: Can't create table `test`.`t5` (errno: 140 "Wrong create options")
- SHOW WARNINGS;
- Level Code Message
-+Warning 1478 InnoDB: KEY_BLOCK_SIZE=16 cannot be larger than 8.
- Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table.
- Error 1005 Can't create table `test`.`t5` (errno: 140 "Wrong create options")
- Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
-@@ -290,107 +258,13 @@
- ERROR HY000: Can't create table `test`.`t5` (errno: 140 "Wrong create options")
- SHOW WARNINGS;
- Level Code Message
-+Warning 1478 InnoDB: KEY_BLOCK_SIZE=16 cannot be larger than 8.
- Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_format > Antelope.
- Error 1005 Can't create table `test`.`t5` (errno: 140 "Wrong create options")
- Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
- SET GLOBAL innodb_file_format = `Barracuda`;
- Warnings:
- Warning 131 Using innodb_file_format is deprecated and the parameter may be removed in future releases. See https://mariadb.com/kb/en/library/xtradbinnodb-file-format/
--# Test 7) This series of tests were moved from innodb-index to here
--# because the second alter table t1 assumes a 16k page size.
--# Moving the test allows the rest of innodb-index to be run on all
--# page sizes. The previously disabled portions of this test were
--# moved as well.
--CREATE TABLE t2(d varchar(17) PRIMARY KEY) ENGINE=innodb DEFAULT CHARSET=utf8;
--CREATE TABLE t3(a int PRIMARY KEY) ENGINE=innodb;
--INSERT INTO t3 VALUES (22),(44),(33),(55),(66);
--INSERT INTO t2 VALUES ('jejdkrun87'),('adfd72nh9k'),
--('adfdpplkeock'),('adfdijnmnb78k'),('adfdijn0loKNHJik');
--CREATE TABLE t1(a int, b blob, c text, d text NOT NULL)
--ENGINE=innodb DEFAULT CHARSET=utf8 STATS_PERSISTENT=0;
--INSERT INTO t1
--SELECT a,LEFT(REPEAT(d,100*a),65535),REPEAT(d,20*a),d FROM t2,t3 order by a, d;
--DROP TABLE t2, t3;
--SELECT COUNT(*) FROM t1 WHERE a=44;
--COUNT(*)
--5
--SELECT a,
--LENGTH(b),b=LEFT(REPEAT(d,100*a),65535),LENGTH(c),c=REPEAT(d,20*a),d FROM t1
--ORDER BY 1, 2, 3, 4, 5, 6;
--a LENGTH(b) b=LEFT(REPEAT(d,100*a),65535) LENGTH(c) c=REPEAT(d,20*a) d
--22 22000 1 4400 1 adfd72nh9k
--22 22000 1 4400 1 jejdkrun87
--22 26400 1 5280 1 adfdpplkeock
--22 28600 1 5720 1 adfdijnmnb78k
--22 35200 1 7040 1 adfdijn0loKNHJik
--33 33000 1 6600 1 adfd72nh9k
--33 33000 1 6600 1 jejdkrun87
--33 39600 1 7920 1 adfdpplkeock
--33 42900 1 8580 1 adfdijnmnb78k
--33 52800 1 10560 1 adfdijn0loKNHJik
--44 44000 1 8800 1 adfd72nh9k
--44 44000 1 8800 1 jejdkrun87
--44 52800 1 10560 1 adfdpplkeock
--44 57200 1 11440 1 adfdijnmnb78k
--44 65535 1 14080 1 adfdijn0loKNHJik
--55 55000 1 11000 1 adfd72nh9k
--55 55000 1 11000 1 jejdkrun87
--55 65535 1 13200 1 adfdpplkeock
--55 65535 1 14300 1 adfdijnmnb78k
--55 65535 1 17600 1 adfdijn0loKNHJik
--66 65535 1 13200 1 adfd72nh9k
--66 65535 1 13200 1 jejdkrun87
--66 65535 1 15840 1 adfdpplkeock
--66 65535 1 17160 1 adfdijnmnb78k
--66 65535 1 21120 1 adfdijn0loKNHJik
--ALTER TABLE t1 ADD PRIMARY KEY (a), ADD KEY (b(20));
--ERROR 23000: Duplicate entry '22' for key 'PRIMARY'
--DELETE FROM t1 WHERE d='null';
--ALTER TABLE t1 ADD PRIMARY KEY (a), ADD KEY (b(20));
--ERROR 23000: Duplicate entry '22' for key 'PRIMARY'
--DELETE FROM t1 WHERE a%2;
--CHECK TABLE t1;
--Table Op Msg_type Msg_text
--test.t1 check status OK
--ALTER TABLE t1 ADD PRIMARY KEY (a,b(255),c(255)), ADD KEY (b(767));
--SELECT COUNT(*) FROM t1 WHERE a=44;
--COUNT(*)
--5
--SELECT a,
--LENGTH(b), b=LEFT(REPEAT(d,100*a), 65535),LENGTH(c), c=REPEAT(d,20*a), d FROM t1;
--a LENGTH(b) b=LEFT(REPEAT(d,100*a), 65535) LENGTH(c) c=REPEAT(d,20*a) d
--22 22000 1 4400 1 adfd72nh9k
--22 35200 1 7040 1 adfdijn0loKNHJik
--22 28600 1 5720 1 adfdijnmnb78k
--22 26400 1 5280 1 adfdpplkeock
--22 22000 1 4400 1 jejdkrun87
--44 44000 1 8800 1 adfd72nh9k
--44 65535 1 14080 1 adfdijn0loKNHJik
--44 57200 1 11440 1 adfdijnmnb78k
--44 52800 1 10560 1 adfdpplkeock
--44 44000 1 8800 1 jejdkrun87
--66 65535 1 13200 1 adfd72nh9k
--66 65535 1 21120 1 adfdijn0loKNHJik
--66 65535 1 17160 1 adfdijnmnb78k
--66 65535 1 15840 1 adfdpplkeock
--66 65535 1 13200 1 jejdkrun87
--SHOW CREATE TABLE t1;
--Table Create Table
--t1 CREATE TABLE `t1` (
-- `a` int(11) NOT NULL,
-- `b` blob NOT NULL,
-- `c` text NOT NULL,
-- `d` text NOT NULL,
-- PRIMARY KEY (`a`,`b`(255),`c`(255)),
-- KEY `b` (`b`(767))
--) ENGINE=InnoDB DEFAULT CHARSET=utf8 STATS_PERSISTENT=0
--CHECK TABLE t1;
--Table Op Msg_type Msg_text
--test.t1 check status OK
--EXPLAIN SELECT * FROM t1 WHERE b LIKE 'adfd%';
--id select_type table type possible_keys key key_len ref rows Extra
--1 SIMPLE t1 range b b 769 NULL 12 Using where
--DROP TABLE t1;
- # Test 8) Test creating a table that could lead to undo log overflow.
- CREATE TABLE t1(a blob,b blob,c blob,d blob,e blob,f blob,g blob,
- h blob,i blob,j blob,k blob,l blob,m blob,n blob,
-@@ -405,10 +279,6 @@
- UPDATE t1 SET a=@b,b=@b,c=@b,d=@b,e=@b,f=@b,g=@b,h=@b,i=@b,j=@b,
- k=@b,l=@b,m=@b,n=@b,o=@b,p=@b,q=@b,r=@b,s=@b,t=@b,u=@b;
- CREATE INDEX t1a ON t1 (a(767));
--CREATE INDEX t1b ON t1 (b(767));
--CREATE INDEX t1c ON t1 (c(767));
--CREATE INDEX t1d ON t1 (d(767));
--CREATE INDEX t1e ON t1 (e(767));
- UPDATE t1 SET a=@c,b=@c,c=@c,d=@c,e=@c,f=@c,g=@c,h=@c,i=@c,j=@c,
- k=@c,l=@c,m=@c,n=@c,o=@c,p=@c,q=@c,r=@c,s=@c,t=@c,u=@c;
- CREATE INDEX t1f ON t1 (f(767));
-@@ -423,30 +293,6 @@
- COMMIT;
- CREATE INDEX t1g ON t1 (g(767));
- UPDATE t1 SET g=@e;
--CREATE INDEX t1h ON t1 (h(767));
--UPDATE t1 SET h=@e;
--CREATE INDEX t1i ON t1 (i(767));
--UPDATE t1 SET i=@e;
--CREATE INDEX t1j ON t1 (j(767));
--UPDATE t1 SET j=@e;
--CREATE INDEX t1k ON t1 (k(767));
--UPDATE t1 SET k=@e;
--CREATE INDEX t1l ON t1 (l(767));
--UPDATE t1 SET l=@e;
--CREATE INDEX t1m ON t1 (m(767));
--UPDATE t1 SET m=@e;
--CREATE INDEX t1n ON t1 (n(767));
--UPDATE t1 SET n=@e;
--CREATE INDEX t1o ON t1 (o(767));
--UPDATE t1 SET o=@e;
--CREATE INDEX t1p ON t1 (p(767));
--UPDATE t1 SET p=@e;
--CREATE INDEX t1q ON t1 (q(767));
--UPDATE t1 SET q=@e;
--CREATE INDEX t1r ON t1 (r(767));
--UPDATE t1 SET r=@e;
--CREATE INDEX t1s ON t1 (s(767));
--UPDATE t1 SET s=@e;
- CREATE INDEX t1t ON t1 (t(767));
- BEGIN;
- UPDATE t1 SET t=@e;
-@@ -479,24 +325,8 @@
- `t` blob DEFAULT NULL,
- `u` blob DEFAULT NULL,
- KEY `t1a` (`a`(767)),
-- KEY `t1b` (`b`(767)),
-- KEY `t1c` (`c`(767)),
-- KEY `t1d` (`d`(767)),
-- KEY `t1e` (`e`(767)),
- KEY `t1f` (`f`(767)),
- KEY `t1g` (`g`(767)),
-- KEY `t1h` (`h`(767)),
-- KEY `t1i` (`i`(767)),
-- KEY `t1j` (`j`(767)),
-- KEY `t1k` (`k`(767)),
-- KEY `t1l` (`l`(767)),
-- KEY `t1m` (`m`(767)),
-- KEY `t1n` (`n`(767)),
-- KEY `t1o` (`o`(767)),
-- KEY `t1p` (`p`(767)),
-- KEY `t1q` (`q`(767)),
-- KEY `t1r` (`r`(767)),
-- KEY `t1s` (`s`(767)),
- KEY `t1t` (`t`(767)),
- KEY `t1u` (`u`(767)),
- KEY `t1ut` (`u`(767),`t`(767)),
-@@ -584,14 +414,14 @@
- PRIMARY KEY (c(767),d(767)))
- ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
- Warnings:
--Warning 139 Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
-+Warning 139 Row size too large (> 4030). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
- DROP TABLE t1;
- CREATE TABLE t1(
- c text NOT NULL, d text NOT NULL,
- PRIMARY KEY (c(767),d(767)))
- ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=2 CHARSET=ASCII;
- Warnings:
--Warning 139 Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
-+Warning 139 Row size too large (> 4030). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
- DROP TABLE t1;
- CREATE TABLE t1(
- c text NOT NULL, d text NOT NULL,
-@@ -601,7 +431,7 @@
- CREATE TABLE t1(c text, PRIMARY KEY (c(440)))
- ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
- Warnings:
--Warning 139 Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
-+Warning 139 Row size too large (> 4030). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
- DROP TABLE t1;
- CREATE TABLE t1(c text, PRIMARY KEY (c(438)))
- ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
diff --git a/mysql-test/suite/innodb_zip/r/page_size.result b/mysql-test/suite/innodb_zip/r/page_size.result
index 4127ef7c36f..87ae1e902f9 100644
--- a/mysql-test/suite/innodb_zip/r/page_size.result
+++ b/mysql-test/suite/innodb_zip/r/page_size.result
@@ -3,7 +3,7 @@ SET default_storage_engine=InnoDB;
SELECT variable_value FROM information_schema.global_status
WHERE LOWER(variable_name) = 'innodb_page_size';
variable_value
-16384
+8192
# Test 3) Query some information_shema tables that are dependent upon
# the page size.
SELECT t.name table_name, t.n_cols, t.flag table_flags,
@@ -32,13 +32,13 @@ AND t.name LIKE 'test%'
table_name n_cols table_flags index_name root_page type n_fields merge_threshold
test/t1 5 0 PRIMARY 3 3 1 50
test/t2 5 1 PRIMARY 3 3 1 50
-test/t3 5 41 PRIMARY 3 3 1 50
+test/t3 5 39 PRIMARY 3 3 1 50
test/t4 5 33 PRIMARY 3 3 1 50
=== information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
Space_Name Space_Type Page_Size Zip_Size Formats_Permitted Path
test/t1 Single DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t1.ibd
test/t2 Single DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t2.ibd
-test/t3 Single DEFAULT 8192 Compressed MYSQLD_DATADIR/test/t3.ibd
+test/t3 Single DEFAULT 4096 Compressed MYSQLD_DATADIR/test/t3.ibd
test/t4 Single DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4.ibd
DROP TABLE t1, t2, t3, t4;
# Test 4) The maximum row size is dependent upon the page size.
@@ -49,133 +49,55 @@ CREATE TABLE t1 (
c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(211)
-) ROW_FORMAT=redundant;
-DROP TABLE t1;
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(212)
-) ROW_FORMAT=redundant;
-ERROR 42000: Row size too large (> 8123). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(246)
-) ROW_FORMAT=compact;
-DROP TABLE t1;
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(247)
-) ROW_FORMAT=compact;
-ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(157)
+c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(103)
) ROW_FORMAT=compressed;
DROP TABLE t1;
CREATE TABLE t1 (
c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(160)
+c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(110)
) ROW_FORMAT=compressed;
-ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(246)
-) ROW_FORMAT=dynamic;
-DROP TABLE t1;
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(247)
-) ROW_FORMAT=dynamic;
-ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
-CREATE TABLE t1 (a varchar(255) character set utf8,
-b varchar(255) character set utf8,
-c varchar(255) character set utf8,
-d varchar(255) character set utf8,
-e varchar(4) character set utf8,
-PRIMARY KEY (a,b,c,d,e))
+ERROR 42000: Row size is greater than 3930. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+CREATE TABLE t1 (a varchar(128) character set utf8,
+b varchar(128) character set utf8,
+c varchar(128) character set utf8,
+d varchar(128) character set utf8,
+PRIMARY KEY (a,b,c,d))
ENGINE=innodb;
DROP TABLE t1;
-CREATE TABLE t1 (a varchar(255) character set utf8,
-b varchar(255) character set utf8,
-c varchar(255) character set utf8,
-d varchar(255) character set utf8,
-e varchar(5) character set utf8,
-PRIMARY KEY (a,b,c,d,e))
+CREATE TABLE t1 (a varchar(128) character set utf8,
+b varchar(128) character set utf8,
+c varchar(128) character set utf8,
+d varchar(129) character set utf8,
+PRIMARY KEY (a,b,c,d))
ENGINE=innodb;
-ERROR 42000: Specified key was too long; max key length is 3072 bytes
-CREATE TABLE t1 (a varchar(255) character set utf8,
-b varchar(255) character set utf8,
-c varchar(255) character set utf8,
-d varchar(255) character set utf8,
-e varchar(255) character set utf8,
-f varchar(4) character set utf8,
-PRIMARY KEY (a), KEY (b,c,d,e,f))
+ERROR 42000: Specified key was too long; max key length is 1536 bytes
+CREATE TABLE t1 (a varchar(128) character set utf8,
+b varchar(128) character set utf8,
+c varchar(128) character set utf8,
+d varchar(128) character set utf8,
+e varchar(128) character set utf8,
+PRIMARY KEY (a), KEY (b,c,d,e))
ENGINE=innodb;
DROP TABLE t1;
-CREATE TABLE t1 (a varchar(255) character set utf8,
-b varchar(255) character set utf8,
-c varchar(255) character set utf8,
-d varchar(255) character set utf8,
-e varchar(255) character set utf8,
-f varchar(5) character set utf8,
-PRIMARY KEY (a), KEY (b,c,d,e,f))
+CREATE TABLE t1 (a varchar(128) character set utf8,
+b varchar(128) character set utf8,
+c varchar(128) character set utf8,
+d varchar(128) character set utf8,
+e varchar(129) character set utf8,
+PRIMARY KEY (a), KEY (b,c,d,e))
ENGINE=innodb;
-ERROR 42000: Specified key was too long; max key length is 3072 bytes
+ERROR 42000: Specified key was too long; max key length is 1536 bytes
# Test 5) KEY_BLOCK_SIZE validation
-CREATE TABLE t1 (i int) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
+CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
+ERROR HY000: Can't create table `test`.`t1` (errno: 140 "Wrong create options")
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 KEY_BLOCK_SIZE=8;
+Warning 1478 InnoDB: KEY_BLOCK_SIZE=16 cannot be larger than 8.
+Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
+Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
+CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
SHOW WARNINGS;
Level Code Message
SELECT table_name, row_format, create_options
@@ -213,8 +135,11 @@ t1 Compressed row_format=COMPRESSED
DROP TABLE t1;
SET SESSION innodb_strict_mode = OFF;
CREATE TABLE t1 (i int) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
+Warnings:
+Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16.
SHOW WARNINGS;
Level Code Message
+Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16.
SELECT table_name, row_format, create_options
FROM information_schema.tables WHERE table_name = 't1';
table_name row_format create_options
@@ -272,6 +197,7 @@ CREATE TABLE t5 (id int PRIMARY KEY) ENGINE=innodb KEY_BLOCK_SIZE=16;
ERROR HY000: Can't create table `test`.`t5` (errno: 140 "Wrong create options")
SHOW WARNINGS;
Level Code Message
+Warning 1478 InnoDB: KEY_BLOCK_SIZE=16 cannot be larger than 8.
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table.
Error 1005 Can't create table `test`.`t5` (errno: 140 "Wrong create options")
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
@@ -290,107 +216,13 @@ CREATE TABLE t5 (id int PRIMARY KEY) ENGINE=innodb KEY_BLOCK_SIZE=16;
ERROR HY000: Can't create table `test`.`t5` (errno: 140 "Wrong create options")
SHOW WARNINGS;
Level Code Message
+Warning 1478 InnoDB: KEY_BLOCK_SIZE=16 cannot be larger than 8.
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_format > Antelope.
Error 1005 Can't create table `test`.`t5` (errno: 140 "Wrong create options")
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
SET GLOBAL innodb_file_format = `Barracuda`;
Warnings:
Warning 131 Using innodb_file_format is deprecated and the parameter may be removed in future releases. See https://mariadb.com/kb/en/library/xtradbinnodb-file-format/
-# Test 7) This series of tests were moved from innodb-index to here
-# because the second alter table t1 assumes a 16k page size.
-# Moving the test allows the rest of innodb-index to be run on all
-# page sizes. The previously disabled portions of this test were
-# moved as well.
-CREATE TABLE t2(d varchar(17) PRIMARY KEY) ENGINE=innodb DEFAULT CHARSET=utf8;
-CREATE TABLE t3(a int PRIMARY KEY) ENGINE=innodb;
-INSERT INTO t3 VALUES (22),(44),(33),(55),(66);
-INSERT INTO t2 VALUES ('jejdkrun87'),('adfd72nh9k'),
-('adfdpplkeock'),('adfdijnmnb78k'),('adfdijn0loKNHJik');
-CREATE TABLE t1(a int, b blob, c text, d text NOT NULL)
-ENGINE=innodb DEFAULT CHARSET=utf8 STATS_PERSISTENT=0;
-INSERT INTO t1
-SELECT a,LEFT(REPEAT(d,100*a),65535),REPEAT(d,20*a),d FROM t2,t3 order by a, d;
-DROP TABLE t2, t3;
-SELECT COUNT(*) FROM t1 WHERE a=44;
-COUNT(*)
-5
-SELECT a,
-LENGTH(b),b=LEFT(REPEAT(d,100*a),65535),LENGTH(c),c=REPEAT(d,20*a),d FROM t1
-ORDER BY 1, 2, 3, 4, 5, 6;
-a LENGTH(b) b=LEFT(REPEAT(d,100*a),65535) LENGTH(c) c=REPEAT(d,20*a) d
-22 22000 1 4400 1 adfd72nh9k
-22 22000 1 4400 1 jejdkrun87
-22 26400 1 5280 1 adfdpplkeock
-22 28600 1 5720 1 adfdijnmnb78k
-22 35200 1 7040 1 adfdijn0loKNHJik
-33 33000 1 6600 1 adfd72nh9k
-33 33000 1 6600 1 jejdkrun87
-33 39600 1 7920 1 adfdpplkeock
-33 42900 1 8580 1 adfdijnmnb78k
-33 52800 1 10560 1 adfdijn0loKNHJik
-44 44000 1 8800 1 adfd72nh9k
-44 44000 1 8800 1 jejdkrun87
-44 52800 1 10560 1 adfdpplkeock
-44 57200 1 11440 1 adfdijnmnb78k
-44 65535 1 14080 1 adfdijn0loKNHJik
-55 55000 1 11000 1 adfd72nh9k
-55 55000 1 11000 1 jejdkrun87
-55 65535 1 13200 1 adfdpplkeock
-55 65535 1 14300 1 adfdijnmnb78k
-55 65535 1 17600 1 adfdijn0loKNHJik
-66 65535 1 13200 1 adfd72nh9k
-66 65535 1 13200 1 jejdkrun87
-66 65535 1 15840 1 adfdpplkeock
-66 65535 1 17160 1 adfdijnmnb78k
-66 65535 1 21120 1 adfdijn0loKNHJik
-ALTER TABLE t1 ADD PRIMARY KEY (a), ADD KEY (b(20));
-ERROR 23000: Duplicate entry '22' for key 'PRIMARY'
-DELETE FROM t1 WHERE d='null';
-ALTER TABLE t1 ADD PRIMARY KEY (a), ADD KEY (b(20));
-ERROR 23000: Duplicate entry '22' for key 'PRIMARY'
-DELETE FROM t1 WHERE a%2;
-CHECK TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-ALTER TABLE t1 ADD PRIMARY KEY (a,b(255),c(255)), ADD KEY (b(767));
-SELECT COUNT(*) FROM t1 WHERE a=44;
-COUNT(*)
-5
-SELECT a,
-LENGTH(b), b=LEFT(REPEAT(d,100*a), 65535),LENGTH(c), c=REPEAT(d,20*a), d FROM t1;
-a LENGTH(b) b=LEFT(REPEAT(d,100*a), 65535) LENGTH(c) c=REPEAT(d,20*a) d
-22 22000 1 4400 1 adfd72nh9k
-22 35200 1 7040 1 adfdijn0loKNHJik
-22 28600 1 5720 1 adfdijnmnb78k
-22 26400 1 5280 1 adfdpplkeock
-22 22000 1 4400 1 jejdkrun87
-44 44000 1 8800 1 adfd72nh9k
-44 65535 1 14080 1 adfdijn0loKNHJik
-44 57200 1 11440 1 adfdijnmnb78k
-44 52800 1 10560 1 adfdpplkeock
-44 44000 1 8800 1 jejdkrun87
-66 65535 1 13200 1 adfd72nh9k
-66 65535 1 21120 1 adfdijn0loKNHJik
-66 65535 1 17160 1 adfdijnmnb78k
-66 65535 1 15840 1 adfdpplkeock
-66 65535 1 13200 1 jejdkrun87
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `a` int(11) NOT NULL,
- `b` blob NOT NULL,
- `c` text NOT NULL,
- `d` text NOT NULL,
- PRIMARY KEY (`a`,`b`(255),`c`(255)),
- KEY `b` (`b`(767))
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 STATS_PERSISTENT=0
-CHECK TABLE t1;
-Table Op Msg_type Msg_text
-test.t1 check status OK
-EXPLAIN SELECT * FROM t1 WHERE b LIKE 'adfd%';
-id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 range b b 769 NULL 12 Using where
-DROP TABLE t1;
# Test 8) Test creating a table that could lead to undo log overflow.
CREATE TABLE t1(a blob,b blob,c blob,d blob,e blob,f blob,g blob,
h blob,i blob,j blob,k blob,l blob,m blob,n blob,
@@ -405,10 +237,6 @@ INSERT INTO t1 VALUES (@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,
UPDATE t1 SET a=@b,b=@b,c=@b,d=@b,e=@b,f=@b,g=@b,h=@b,i=@b,j=@b,
k=@b,l=@b,m=@b,n=@b,o=@b,p=@b,q=@b,r=@b,s=@b,t=@b,u=@b;
CREATE INDEX t1a ON t1 (a(767));
-CREATE INDEX t1b ON t1 (b(767));
-CREATE INDEX t1c ON t1 (c(767));
-CREATE INDEX t1d ON t1 (d(767));
-CREATE INDEX t1e ON t1 (e(767));
UPDATE t1 SET a=@c,b=@c,c=@c,d=@c,e=@c,f=@c,g=@c,h=@c,i=@c,j=@c,
k=@c,l=@c,m=@c,n=@c,o=@c,p=@c,q=@c,r=@c,s=@c,t=@c,u=@c;
CREATE INDEX t1f ON t1 (f(767));
@@ -423,30 +251,6 @@ n=@d,o=@d,p=@d,q=@d,r=@d,s=@d,t=@d,u=@d;
COMMIT;
CREATE INDEX t1g ON t1 (g(767));
UPDATE t1 SET g=@e;
-CREATE INDEX t1h ON t1 (h(767));
-UPDATE t1 SET h=@e;
-CREATE INDEX t1i ON t1 (i(767));
-UPDATE t1 SET i=@e;
-CREATE INDEX t1j ON t1 (j(767));
-UPDATE t1 SET j=@e;
-CREATE INDEX t1k ON t1 (k(767));
-UPDATE t1 SET k=@e;
-CREATE INDEX t1l ON t1 (l(767));
-UPDATE t1 SET l=@e;
-CREATE INDEX t1m ON t1 (m(767));
-UPDATE t1 SET m=@e;
-CREATE INDEX t1n ON t1 (n(767));
-UPDATE t1 SET n=@e;
-CREATE INDEX t1o ON t1 (o(767));
-UPDATE t1 SET o=@e;
-CREATE INDEX t1p ON t1 (p(767));
-UPDATE t1 SET p=@e;
-CREATE INDEX t1q ON t1 (q(767));
-UPDATE t1 SET q=@e;
-CREATE INDEX t1r ON t1 (r(767));
-UPDATE t1 SET r=@e;
-CREATE INDEX t1s ON t1 (s(767));
-UPDATE t1 SET s=@e;
CREATE INDEX t1t ON t1 (t(767));
BEGIN;
UPDATE t1 SET t=@e;
@@ -479,24 +283,8 @@ t1 CREATE TABLE `t1` (
`t` blob DEFAULT NULL,
`u` blob DEFAULT NULL,
KEY `t1a` (`a`(767)),
- KEY `t1b` (`b`(767)),
- KEY `t1c` (`c`(767)),
- KEY `t1d` (`d`(767)),
- KEY `t1e` (`e`(767)),
KEY `t1f` (`f`(767)),
KEY `t1g` (`g`(767)),
- KEY `t1h` (`h`(767)),
- KEY `t1i` (`i`(767)),
- KEY `t1j` (`j`(767)),
- KEY `t1k` (`k`(767)),
- KEY `t1l` (`l`(767)),
- KEY `t1m` (`m`(767)),
- KEY `t1n` (`n`(767)),
- KEY `t1o` (`o`(767)),
- KEY `t1p` (`p`(767)),
- KEY `t1q` (`q`(767)),
- KEY `t1r` (`r`(767)),
- KEY `t1s` (`s`(767)),
KEY `t1t` (`t`(767)),
KEY `t1u` (`u`(767)),
KEY `t1ut` (`u`(767),`t`(767)),
@@ -584,14 +372,14 @@ c text NOT NULL, d text NOT NULL,
PRIMARY KEY (c(767),d(767)))
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
Warnings:
-Warning 139 Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+Warning 139 Row size is greater than 892. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
DROP TABLE t1;
CREATE TABLE t1(
c text NOT NULL, d text NOT NULL,
PRIMARY KEY (c(767),d(767)))
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=2 CHARSET=ASCII;
Warnings:
-Warning 139 Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+Warning 139 Row size is greater than 1916. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
DROP TABLE t1;
CREATE TABLE t1(
c text NOT NULL, d text NOT NULL,
@@ -600,8 +388,6 @@ ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4 CHARSET=ASCII;
DROP TABLE t1;
CREATE TABLE t1(c text, PRIMARY KEY (c(440)))
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
-Warnings:
-Warning 139 Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
DROP TABLE t1;
CREATE TABLE t1(c text, PRIMARY KEY (c(438)))
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
diff --git a/mysql-test/suite/innodb_zip/r/prefix_index_liftedlimit.result b/mysql-test/suite/innodb_zip/r/prefix_index_liftedlimit.result
index a7a9917b6f4..9e7f15eb36a 100644
--- a/mysql-test/suite/innodb_zip/r/prefix_index_liftedlimit.result
+++ b/mysql-test/suite/innodb_zip/r/prefix_index_liftedlimit.result
@@ -32,7 +32,11 @@ ALTER TABLE worklog5743 ROW_FORMAT=REDUNDANT;
ERROR HY000: Index column size too large. The maximum column size is 767 bytes
ALTER TABLE worklog5743 ROW_FORMAT=COMPACT;
ERROR HY000: Index column size too large. The maximum column size is 767 bytes
+SET innodb_strict_mode=OFF;
ALTER TABLE worklog5743 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
+Warnings:
+Warning 139 Row size is greater than 8125. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+SET innodb_strict_mode=ON;
DROP TABLE worklog5743;
CREATE TABLE worklog5743 (
col_1_text TEXT (4000) , col_2_text TEXT (4000) ,
@@ -1344,7 +1348,7 @@ AND col_2_text = REPEAT("o", 4000);
col_1_text = REPEAT("c", 4000)
ALTER TABLE worklog5743 DROP PRIMARY KEY;
ALTER TABLE worklog5743 ADD PRIMARY KEY (col_1_text (950));
-ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
+ERROR 42000: Row size is greater than 1918. Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
INSERT INTO worklog5743 VALUES(REPEAT("a", 4000),REPEAT("o", 4000));
SELECT col_1_text = REPEAT("a", 4000) FROM worklog5743;
col_1_text = REPEAT("a", 4000)
diff --git a/mysql-test/suite/innodb_zip/t/bug36169.test b/mysql-test/suite/innodb_zip/t/bug36169.test
index 07566b204bd..6d30c6689de 100644
--- a/mysql-test/suite/innodb_zip/t/bug36169.test
+++ b/mysql-test/suite/innodb_zip/t/bug36169.test
@@ -18,7 +18,7 @@ SET GLOBAL innodb_file_per_table=ON;
# as expected and do not crash the server
-- disable_query_log
-- disable_result_log
-call mtr.add_suppression("Cannot add field .* in table .* because after adding it, the row size is");
+call mtr.add_suppression('After adding field .* which is greater than maximum allowed size');
# Generating 10 tables
# Creating a table with 94 columns and 24 indexes
DROP TABLE IF EXISTS `table0`;
diff --git a/mysql-test/suite/innodb_zip/t/bug53591.test b/mysql-test/suite/innodb_zip/t/bug53591.test
index 67223027bad..1efef0dccdb 100644
--- a/mysql-test/suite/innodb_zip/t/bug53591.test
+++ b/mysql-test/suite/innodb_zip/t/bug53591.test
@@ -9,10 +9,8 @@ set old_alter_table=0;
CREATE TABLE bug53591(a text charset utf8 not null)
ENGINE=InnoDB KEY_BLOCK_SIZE=1;
--- replace_result 8126 {checked_valid} 4030 {checked_valid} 1982 {checked_valid}
-- error ER_TOO_BIG_ROWSIZE
ALTER TABLE bug53591 ADD PRIMARY KEY(a(220));
--- replace_result 8126 {checked_valid} 4030 {checked_valid} 1982 {checked_valid}
SHOW WARNINGS;
DROP TABLE bug53591;
diff --git a/mysql-test/suite/innodb_zip/t/index_large_prefix.test b/mysql-test/suite/innodb_zip/t/index_large_prefix.test
index d61cce8d484..8b7477295e5 100644
--- a/mysql-test/suite/innodb_zip/t/index_large_prefix.test
+++ b/mysql-test/suite/innodb_zip/t/index_large_prefix.test
@@ -5,7 +5,7 @@
SET default_storage_engine=InnoDB;
--disable_query_log
-call mtr.add_suppression("Cannot add field .* in table .* because after adding it, the row size is");
+call mtr.add_suppression('After adding field .* which is greater than maximum allowed size');
--enable_query_log
let $innodb_file_per_table_orig=`select @@innodb_file_per_table`;
@@ -146,13 +146,13 @@ set global innodb_large_prefix=1;
create index idx2 on worklog5743_1(a2(4000));
show warnings;
-- error ER_TOO_BIG_ROWSIZE
-create index idx3 on worklog5743_1(a2(436));
+create index idx3 on worklog5743_1(a2(438));
show warnings;
# Bug#13391353 Limit is one byte less on on 32bit-Linux only
create index idx4 on worklog5743_1(a2(434));
show warnings;
-- error ER_TOO_BIG_ROWSIZE
-create index idx5 on worklog5743_1(a1, a2(430));
+create index idx5 on worklog5743_1(a1, a2(432));
show warnings;
# Bug#13391353 Limit is one byte less on on 32bit-Linux only
create index idx6 on worklog5743_1(a1, a2(428));
@@ -169,13 +169,13 @@ set global innodb_large_prefix=1;
create index idx2 on worklog5743_2(a2(4000));
show warnings;
-- error ER_TOO_BIG_ROWSIZE
-create index idx3 on worklog5743_2(a2(948));
+create index idx3 on worklog5743_2(a2(950));
show warnings;
# Bug#13391353 Limit is one byte less on on 32bit-Linux only
create index idx4 on worklog5743_2(a2(946));
show warnings;
-- error ER_TOO_BIG_ROWSIZE
-create index idx5 on worklog5743_2(a1, a2(942));
+create index idx5 on worklog5743_2(a1, a2(944));
show warnings;
# Bug#13391353 Limit is one byte less on on 32bit-Linux only
create index idx6 on worklog5743_2(a1, a2(940));
@@ -190,13 +190,13 @@ set global innodb_large_prefix=1;
create index idx2 on worklog5743_4(a2(4000));
show warnings;
-- error ER_TOO_BIG_ROWSIZE
-create index idx3 on worklog5743_4(a2(1972));
+create index idx3 on worklog5743_4(a2(1974));
show warnings;
# Bug#13391353 Limit is one byte less on on 32bit-Linux only
create index idx4 on worklog5743_4(a2(1970));
show warnings;
-- error ER_TOO_BIG_ROWSIZE
-create index idx5 on worklog5743_4(a1, a2(1966));
+create index idx5 on worklog5743_4(a1, a2(1968));
show warnings;
# Bug#13391353 Limit is one byte less on on 32bit-Linux only
create index idx6 on worklog5743_4(a1, a2(1964));
diff --git a/mysql-test/suite/innodb_zip/t/page_size.test b/mysql-test/suite/innodb_zip/t/page_size.test
index bb4d2da077f..ca559b9bcc5 100644
--- a/mysql-test/suite/innodb_zip/t/page_size.test
+++ b/mysql-test/suite/innodb_zip/t/page_size.test
@@ -5,7 +5,7 @@ SET default_storage_engine=InnoDB;
let $MYSQLD_DATADIR = `select @@datadir`;
let $INNODB_PAGE_SIZE = `select @@innodb_page_size`;
-call mtr.add_suppression("Cannot add field .* in table .* because after adding it, the row size is");
+call mtr.add_suppression('After adding field .* which is greater than maximum allowed size');
--enable_query_log
--echo # Test 1) Show the page size from Information Schema
@@ -59,33 +59,6 @@ DROP TABLE t1, t2, t3, t4;
SET SESSION innodb_strict_mode = ON;
if ($INNODB_PAGE_SIZE == 4096) {
-# Redundant table; 1927 bytes with 10 CHAR fields
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(127)
-) ROW_FORMAT=redundant;
-DROP TABLE t1;
---replace_regex /> [0-9]*/> max_row_size/
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(128)
-) ROW_FORMAT=redundant;
-
-# Compact table; 1955 bytes with 10 CHAR fields
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(155)
-) ROW_FORMAT=compact;
-DROP TABLE t1;
---replace_regex /> [0-9]*/> max_row_size/
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(156)
-) ROW_FORMAT=compact;
-
-# Compressed table; 1878 bytes with 10 CHAR fields
# Bug#13391353 Limit is 1876 on 32-Linux only
CREATE TABLE t1 (
c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
@@ -96,22 +69,9 @@ DROP TABLE t1;
--error ER_TOO_BIG_ROWSIZE
CREATE TABLE t1 (
c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(79)
+c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(85)
) ROW_FORMAT=compressed;
-# Dynamic table; 1955 bytes with 10 CHAR fields
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(155)
-) ROW_FORMAT=dynamic;
-DROP TABLE t1;
---replace_regex /> [0-9]*/> max_row_size/
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(156)
-) ROW_FORMAT=dynamic;
-
#
# Test the maximum key length
# Moved from innodb-index.test since each page size has its own max key length.
@@ -151,40 +111,6 @@ CREATE TABLE t1 (a varchar(98) character set utf8,
ENGINE=innodb;
}
if ($INNODB_PAGE_SIZE == 8192) {
-# Redundant table; 3955 bytes with 20 CHAR fields
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(155)
-) ROW_FORMAT=redundant;
-DROP TABLE t1;
---replace_regex /> [0-9]*/> max_row_size/
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(156)
-) ROW_FORMAT=redundant;
-
-# Compact table; 4002 bytes with 20 CHAR fields
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(202)
-) ROW_FORMAT=compact;
-DROP TABLE t1;
---replace_regex /> [0-9]*/> max_row_size/
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(203)
-) ROW_FORMAT=compact;
-
# Compressed table; 3905 bytes with 20 CHAR fields
# Bug#13391353 Limit is 3903 on 32-Linux only
CREATE TABLE t1 (
@@ -200,26 +126,9 @@ CREATE TABLE t1 (
c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(106)
+c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(110)
) ROW_FORMAT=compressed;
-# Dynamic table; 4002 bytes with 20 CHAR fields
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(202)
-) ROW_FORMAT=dynamic;
-DROP TABLE t1;
---replace_regex /> [0-9]*/> max_row_size/
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(203)
-) ROW_FORMAT=dynamic;
-
#
# Test the maximum key length
# Moved from innodb-index.test since each page size has its own max key length.
@@ -259,55 +168,6 @@ CREATE TABLE t1 (a varchar(128) character set utf8,
ENGINE=innodb;
}
if ($INNODB_PAGE_SIZE == 16384) {
-# Redundant table; 8011 bytes with 40 char fields
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(211)
-) ROW_FORMAT=redundant;
-DROP TABLE t1;
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(212)
-) ROW_FORMAT=redundant;
-
-# Compact table; 8096 bytes with 40 CHAR fields
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(246)
-) ROW_FORMAT=compact;
-DROP TABLE t1;
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(247)
-) ROW_FORMAT=compact;
-
-# Compressed table; 7959 bytes with 40 CHAR fields
# Bug#13391353 Limit is 7957 on 32-Linux only
CREATE TABLE t1 (
c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
@@ -317,32 +177,8 @@ c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(157)
-) ROW_FORMAT=compressed;
-DROP TABLE t1;
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(160)
) ROW_FORMAT=compressed;
-
-# Dynamic table; 8096 bytes with 40 CHAR fields
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(246)
-) ROW_FORMAT=dynamic;
DROP TABLE t1;
--error ER_TOO_BIG_ROWSIZE
CREATE TABLE t1 (
@@ -353,8 +189,8 @@ c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(247)
-) ROW_FORMAT=dynamic;
+c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(161)
+) ROW_FORMAT=compressed;
#
# Test the maximum key length
diff --git a/mysql-test/suite/innodb_zip/t/prefix_index_liftedlimit.test b/mysql-test/suite/innodb_zip/t/prefix_index_liftedlimit.test
index ac4946e08c6..7b4eb69b802 100644
--- a/mysql-test/suite/innodb_zip/t/prefix_index_liftedlimit.test
+++ b/mysql-test/suite/innodb_zip/t/prefix_index_liftedlimit.test
@@ -41,7 +41,9 @@ SELECT col_1_varchar = REPEAT("c", 4000) FROM worklog5743;
ALTER TABLE worklog5743 ROW_FORMAT=REDUNDANT;
--error ER_INDEX_COLUMN_TOO_LONG
ALTER TABLE worklog5743 ROW_FORMAT=COMPACT;
+SET innodb_strict_mode=OFF;
ALTER TABLE worklog5743 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
+SET innodb_strict_mode=ON;
DROP TABLE worklog5743;
diff --git a/storage/innobase/dict/dict0boot.cc b/storage/innobase/dict/dict0boot.cc
index a0e65d6829a..47c46c27696 100644
--- a/storage/innobase/dict/dict0boot.cc
+++ b/storage/innobase/dict/dict0boot.cc
@@ -364,8 +364,7 @@ dict_boot(void)
error = dict_index_add_to_cache(table, index,
mtr_read_ulint(dict_hdr
+ DICT_HDR_TABLES,
- MLOG_4BYTES, &mtr),
- FALSE);
+ MLOG_4BYTES, &mtr));
ut_a(error == DB_SUCCESS);
/*-------------------------*/
@@ -377,8 +376,7 @@ dict_boot(void)
error = dict_index_add_to_cache(table, index,
mtr_read_ulint(dict_hdr
+ DICT_HDR_TABLE_IDS,
- MLOG_4BYTES, &mtr),
- FALSE);
+ MLOG_4BYTES, &mtr));
ut_a(error == DB_SUCCESS);
/*-------------------------*/
@@ -410,8 +408,7 @@ dict_boot(void)
error = dict_index_add_to_cache(table, index,
mtr_read_ulint(dict_hdr
+ DICT_HDR_COLUMNS,
- MLOG_4BYTES, &mtr),
- FALSE);
+ MLOG_4BYTES, &mtr));
ut_a(error == DB_SUCCESS);
/*-------------------------*/
@@ -444,8 +441,7 @@ dict_boot(void)
error = dict_index_add_to_cache(table, index,
mtr_read_ulint(dict_hdr
+ DICT_HDR_INDEXES,
- MLOG_4BYTES, &mtr),
- FALSE);
+ MLOG_4BYTES, &mtr));
ut_a(error == DB_SUCCESS);
/*-------------------------*/
@@ -472,8 +468,7 @@ dict_boot(void)
error = dict_index_add_to_cache(table, index,
mtr_read_ulint(dict_hdr
+ DICT_HDR_FIELDS,
- MLOG_4BYTES, &mtr),
- FALSE);
+ MLOG_4BYTES, &mtr));
ut_a(error == DB_SUCCESS);
mtr_commit(&mtr);
diff --git a/storage/innobase/dict/dict0crea.cc b/storage/innobase/dict/dict0crea.cc
index 86038a3710a..cfecc2b8492 100644
--- a/storage/innobase/dict/dict0crea.cc
+++ b/storage/innobase/dict/dict0crea.cc
@@ -1477,8 +1477,7 @@ dict_create_index_step(
index_id_t index_id = node->index->id;
err = dict_index_add_to_cache_w_vcol(
- node->table, node->index, node->add_v, FIL_NULL,
- trx_is_strict(trx));
+ node->table, node->index, node->add_v, FIL_NULL);
node->index = dict_index_get_if_in_cache_low(index_id);
ut_a((node->index == NULL) == (err != DB_SUCCESS));
diff --git a/storage/innobase/dict/dict0dict.cc b/storage/innobase/dict/dict0dict.cc
index 32fcfe68d32..caa377b00d2 100644
--- a/storage/innobase/dict/dict0dict.cc
+++ b/storage/innobase/dict/dict0dict.cc
@@ -45,11 +45,6 @@ dict_index_t* dict_ind_redundant;
extern uint ibuf_debug;
#endif /* UNIV_DEBUG || UNIV_IBUF_DEBUG */
-/**********************************************************************
-Issue a warning that the row is too big. */
-void
-ib_warn_row_too_big(const dict_table_t* table);
-
#include "btr0btr.h"
#include "btr0cur.h"
#include "btr0sea.h"
@@ -2135,94 +2130,50 @@ dict_col_name_is_reserved(
return(FALSE);
}
-bool
-dict_index_t::rec_potentially_too_big(const dict_table_t* candidate_table,
- bool strict) const
+dict_index_t::record_size_info_t dict_index_t::record_size_info() const
{
- ut_ad(!table);
-
- ulint comp;
- ulint i;
- /* maximum possible storage size of a record */
- ulint rec_max_size;
- /* maximum allowed size of a record on a leaf page */
- ulint page_rec_max;
- /* maximum allowed size of a node pointer record */
- ulint page_ptr_max;
-
- /* FTS index consists of auxiliary tables, they shall be excluded from
- index row size check */
- if (type & DICT_FTS) {
- return false;
- }
-
- DBUG_EXECUTE_IF(
- "ib_force_create_table",
- return(FALSE););
+ ut_ad(table);
+ ut_ad(!(type & DICT_FTS));
- comp = dict_table_is_comp(candidate_table);
+ const bool comp = dict_table_is_comp(table);
+ const page_size_t page_size(dict_table_page_size(table));
- const page_size_t page_size(dict_table_page_size(candidate_table));
+ record_size_info_t result;
+ result.max_leaf_size
+ = get_max_record_size_leaf_page(comp, page_size, n_fields);
+ size_t max_non_leaf_size
+ = get_max_record_size_non_leaf_page(comp, page_size, n_fields);
if (page_size.is_compressed()
&& page_size.physical() < univ_page_size.physical()) {
- /* On a compressed page, two records must fit in the
- uncompressed page modification log. On compressed pages
- with size.physical() == univ_page_size.physical(),
- this limit will never be reached. */
- ut_ad(comp);
- /* The maximum allowed record size is the size of
- an empty page, minus a byte for recoding the heap
- number in the page modification log. The maximum
- allowed node pointer size is half that. */
- page_rec_max = page_zip_empty_size(n_fields,
- page_size.physical());
- if (page_rec_max) {
- page_rec_max--;
- }
- page_ptr_max = page_rec_max / 2;
/* On a compressed page, there is a two-byte entry in
the dense page directory for every record. But there
is no record header. */
- rec_max_size = 2;
+ result.shortest_size += 2;
} else {
- /* The maximum allowed record size is half a B-tree
- page(16k for 64k page size). No additional sparse
- page directory entry will be generated for the first
- few user records. */
- page_rec_max = (comp || srv_page_size < UNIV_PAGE_SIZE_MAX)
- ? page_get_free_space_of_empty(comp) / 2
- : REDUNDANT_REC_MAX_DATA_SIZE;
-
- page_ptr_max = page_rec_max;
/* Each record has a header. */
- rec_max_size = comp
- ? REC_N_NEW_EXTRA_BYTES
- : REC_N_OLD_EXTRA_BYTES;
+ result.shortest_size
+ += comp ? REC_N_NEW_EXTRA_BYTES : REC_N_OLD_EXTRA_BYTES;
}
if (comp) {
/* Include the "null" flags in the
maximum possible record size. */
- rec_max_size += UT_BITS_IN_BYTES(n_nullable);
+ result.shortest_size += UT_BITS_IN_BYTES(n_nullable);
} else {
/* For each column, include a 2-byte offset and a
"null" flag. The 1-byte format is only used in short
records that do not contain externally stored columns.
Such records could never exceed the page limit, even
when using the 2-byte format. */
- rec_max_size += 2 * n_fields;
+ result.shortest_size += 2 * n_fields;
}
- const ulint max_local_len
- = candidate_table->get_overflow_field_local_len();
+ const ulint max_local_len = table->get_overflow_field_local_len();
- /* Compute the maximum possible record size. */
- for (i = 0; i < n_fields; i++) {
- const dict_field_t* field
- = dict_index_get_nth_field(this, i);
- const dict_col_t* col
- = dict_field_get_col(field);
+ for (size_t i = 0; i < n_fields; i++) {
+ const dict_field_t* field = dict_index_get_nth_field(this, i);
+ const dict_col_t* col = dict_field_get_col(field);
/* In dtuple_convert_big_rec(), variable-length columns
that are longer than BTR_EXTERN_LOCAL_STORED_MAX_SIZE
@@ -2237,64 +2188,49 @@ dict_index_t::rec_potentially_too_big(const dict_table_t* candidate_table,
REC_STATUS_ORDINARY records. */
size_t field_max_size = dict_col_get_fixed_size(col, comp);
- if (field_max_size && field->fixed_len != 0) {
+
+ if (!field_max_size || field->fixed_len == 0) {
+ field_max_size = dict_col_get_max_size(col);
+
+ if (field->prefix_len) {
+ if (field->prefix_len < field_max_size) {
+ field_max_size = field->prefix_len;
+ }
+ // those conditions were copied
+ // from dtuple_convert_big_rec()
+ } else if (field_max_size > max_local_len
+ && field_max_size
+ > BTR_EXTERN_LOCAL_STORED_MAX_SIZE
+ && DATA_BIG_COL(col)
+ && dict_index_is_clust(this)) {
+
+ /* In the worst case, we have a locally stored
+ column of BTR_EXTERN_LOCAL_STORED_MAX_SIZE bytes.
+ The length can be stored in one byte. If the
+ column were stored externally, the lengths in
+ the clustered index page would be
+ BTR_EXTERN_FIELD_REF_SIZE and 2. */
+ field_max_size = max_local_len;
+ }
+
+ if (comp) {
+ /* Add the extra size for ROW_FORMAT=COMPACT.
+ For ROW_FORMAT=REDUNDANT, these bytes were
+ added to rec_max_size before this loop. */
+ result.shortest_size
+ += field_max_size < 256 ? 1 : 2;
+ }
+ } else {
/* dict_index_add_col() should guarantee this */
ut_ad(!field->prefix_len
|| field->fixed_len == field->prefix_len);
/* Fixed lengths are not encoded
in ROW_FORMAT=COMPACT. */
- goto add_field_size;
}
- field_max_size = dict_col_get_max_size(col);
-
- if (field->prefix_len) {
- if (field->prefix_len < field_max_size) {
- field_max_size = field->prefix_len;
- }
-
- // those conditions were copied from dtuple_convert_big_rec()
- } else if (field_max_size > max_local_len
- && field_max_size > BTR_EXTERN_LOCAL_STORED_MAX_SIZE
- && DATA_BIG_COL(col)
- && dict_index_is_clust(this)) {
-
- /* In the worst case, we have a locally stored
- column of BTR_EXTERN_LOCAL_STORED_MAX_SIZE bytes.
- The length can be stored in one byte. If the
- column were stored externally, the lengths in
- the clustered index page would be
- BTR_EXTERN_FIELD_REF_SIZE and 2. */
- field_max_size = max_local_len;
- }
-
- if (comp) {
- /* Add the extra size for ROW_FORMAT=COMPACT.
- For ROW_FORMAT=REDUNDANT, these bytes were
- added to rec_max_size before this loop. */
- rec_max_size += field_max_size < 256 ? 1 : 2;
- }
-add_field_size:
- rec_max_size += field_max_size;
-
- /* Check the size limit on leaf pages. */
- if (rec_max_size >= page_rec_max) {
- // with 4k page size innodb_index_stats becomes too big
- // this crutch allows server bootstrapping to continue
- if (candidate_table->is_system_db) {
- return false;
- }
-
- ib::error_or_warn(strict)
- << "Cannot add field " << field->name
- << " in table " << candidate_table->name
- << " because after adding it, the row size is "
- << rec_max_size
- << " which is greater than maximum allowed"
- " size (" << page_rec_max
- << ") for a record on index leaf page.";
-
- return true;
+ result.shortest_size += field_max_size;
+ if (result.shortest_size > result.max_leaf_size) {
+ result.set_too_big(i);
}
/* Check the size limit on non-leaf pages. Records
@@ -2304,13 +2240,13 @@ add_field_size:
unique columns, rec_max_size equals the size of the
node pointer record minus the node pointer column. */
if (i + 1 == dict_index_get_n_unique_in_tree(this)
- && rec_max_size + REC_NODE_PTR_SIZE >= page_ptr_max) {
-
- return true;
+ && result.shortest_size + REC_NODE_PTR_SIZE
+ > max_non_leaf_size) {
+ result.set_too_big();
}
}
- return false;
+ return result;
}
/** Adds an index to the dictionary cache.
@@ -2318,19 +2254,15 @@ add_field_size:
@param[in,out] index index; NOTE! The index memory
object is freed in this function!
@param[in] page_no root page number of the index
-@param[in] strict TRUE=refuse to create the index
- if records could be too big to fit in
- an B-tree page
-@return DB_SUCCESS, DB_TOO_BIG_RECORD, or DB_CORRUPTION */
+@return DB_SUCCESS, or DB_CORRUPTION */
dberr_t
dict_index_add_to_cache(
dict_table_t* table,
dict_index_t* index,
- ulint page_no,
- ibool strict)
+ ulint page_no)
{
return(dict_index_add_to_cache_w_vcol(
- table, index, NULL, page_no, strict));
+ table, index, NULL, page_no));
}
/** Clears the virtual column's index list before index is
@@ -2379,17 +2311,13 @@ added column.
@param[in] add_v new virtual column that being added along with
an add index call
@param[in] page_no root page number of the index
-@param[in] strict TRUE=refuse to create the index
- if records could be too big to fit in
- an B-tree page
-@return DB_SUCCESS, DB_TOO_BIG_RECORD, or DB_CORRUPTION */
+@return DB_SUCCESS, or DB_CORRUPTION */
dberr_t
dict_index_add_to_cache_w_vcol(
dict_table_t* table,
dict_index_t* index,
const dict_add_v_col_t* add_v,
- ulint page_no,
- ibool strict)
+ ulint page_no)
{
dict_index_t* new_index;
ulint n_ord;
@@ -2433,19 +2361,6 @@ dict_index_add_to_cache_w_vcol(
new_index->disable_ahi = index->disable_ahi;
#endif
- if (new_index->rec_potentially_too_big(table, strict)) {
-
- if (strict) {
- dict_mem_index_free(new_index);
- dict_mem_index_free(index);
- return(DB_TOO_BIG_RECORD);
- } else if (current_thd != NULL) {
- /* Avoid the warning to be printed
- during recovery. */
- ib_warn_row_too_big((const dict_table_t*)table);
- }
- }
-
n_ord = new_index->n_uniq;
/* Flag the ordering columns and also set column max_prefix */
diff --git a/storage/innobase/dict/dict0load.cc b/storage/innobase/dict/dict0load.cc
index 6900d62b225..8cfc4de7295 100644
--- a/storage/innobase/dict/dict0load.cc
+++ b/storage/innobase/dict/dict0load.cc
@@ -2616,7 +2616,7 @@ corrupted:
dict_load_fields(index, heap);
error = dict_index_add_to_cache(
- table, index, index->page, FALSE);
+ table, index, index->page);
/* The data dictionary tables should never contain
invalid index definitions. If we ignored this error
diff --git a/storage/innobase/dict/dict0mem.cc b/storage/innobase/dict/dict0mem.cc
index fe01948b70d..c4b65c299af 100644
--- a/storage/innobase/dict/dict0mem.cc
+++ b/storage/innobase/dict/dict0mem.cc
@@ -1185,3 +1185,26 @@ dict_mem_table_is_system(
return true;
}
}
+
+size_t get_max_record_size_leaf_page(bool comp, page_size_t page_size,
+ size_t n_fields)
+{
+#if UNIV_PAGE_SIZE_MAX <= COMPRESSED_REC_MAX_DATA_SIZE
+#error
+#endif
+ size_t result
+ = comp ? COMPRESSED_REC_MAX_DATA_SIZE : REDUNDANT_REC_MAX_DATA_SIZE;
+
+ if (page_size.is_compressed()) {
+ result = std::min(
+ result, page_zip_empty_size(n_fields, page_size.physical())
+ + (REC_N_NEW_EXTRA_BYTES - 2 - 1));
+ }
+
+ result = std::min(result, page_get_free_space_of_empty(comp) / 2);
+
+ // Why this is needed?
+ result -=1;
+
+ return result;
+}
diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc
index 347cf6f21b7..1096e8ea097 100644
--- a/storage/innobase/handler/ha_innodb.cc
+++ b/storage/innobase/handler/ha_innodb.cc
@@ -1945,7 +1945,7 @@ convert_error_code_to_mysql(
/*========================*/
dberr_t error, /*!< in: InnoDB error code */
ulint flags, /*!< in: InnoDB table flags, or 0 */
- THD* thd) /*!< in: user thread handle or NULL */
+ THD* thd, size_t n_fields = 0) /*!< in: user thread handle or NULL */
{
switch (error) {
case DB_SUCCESS:
@@ -2065,33 +2065,11 @@ convert_error_code_to_mysql(
return(HA_ERR_TABLESPACE_MISSING);
case DB_TOO_BIG_RECORD: {
- /* If prefix is true then a 768-byte prefix is stored
- locally for BLOB fields. Refer to dict_table_get_format().
- We limit max record size to 16k for 64k page size. */
- bool prefix = (dict_tf_get_format(flags) == UNIV_FORMAT_A);
- bool comp = !!(flags & DICT_TF_COMPACT);
- ulint free_space = page_get_free_space_of_empty(comp) / 2;
-
- if (free_space >= ulint(comp ? COMPRESSED_REC_MAX_DATA_SIZE :
- REDUNDANT_REC_MAX_DATA_SIZE)) {
- free_space = (comp ? COMPRESSED_REC_MAX_DATA_SIZE :
- REDUNDANT_REC_MAX_DATA_SIZE) - 1;
- }
-
- my_printf_error(ER_TOO_BIG_ROWSIZE,
- "Row size too large (> " ULINTPF "). Changing some columns "
- "to TEXT or BLOB %smay help. In current row "
- "format, BLOB prefix of %d bytes is stored inline.",
- MYF(0),
- free_space,
- prefix
- ? "or using ROW_FORMAT=DYNAMIC or"
- " ROW_FORMAT=COMPRESSED "
- : "",
- prefix
- ? DICT_MAX_FIXED_COL_LEN
- : 0);
- return(HA_ERR_TO_BIG_ROW);
+ ut_ad(n_fields != 0);
+ std::string err_msg
+ = format_too_big_row_error_message(flags, n_fields);
+ my_printf_error(ER_TOO_BIG_ROWSIZE, err_msg.c_str(), MYF(0));
+ return (HA_ERR_TO_BIG_ROW);
}
case DB_TOO_BIG_INDEX_COL:
@@ -5579,7 +5557,7 @@ normalize_table_name_c_low(
create_table_info_t::create_table_info_t(
THD* thd,
- TABLE* form,
+ const TABLE* form,
HA_CREATE_INFO* create_info,
char* table_name,
char* remote_path,
@@ -8379,8 +8357,17 @@ report_error:
table->s->table_name.str);
}
- error_result = convert_error_code_to_mysql(
- error, m_prebuilt->table->flags, m_user_thd);
+ if (error == DB_TOO_BIG_RECORD) {
+ // Let's hope that we failed to insert a record into a clustered
+ // index. Otherwise n_fields and thus error message returnted to
+ // user will be incorrect.
+ error_result = convert_error_code_to_mysql(
+ error, m_prebuilt->table->flags, m_user_thd,
+ dict_table_get_first_index(m_prebuilt->table)->n_fields);
+ } else {
+ error_result = convert_error_code_to_mysql(
+ error, m_prebuilt->table->flags, m_user_thd);
+ }
#ifdef WITH_WSREP
if (!error_result
@@ -12741,14 +12728,90 @@ int create_table_info_t::create_table(bool create_fk)
innobase_table = dict_table_open_on_name(
m_table_name, TRUE, FALSE, DICT_ERR_IGNORE_NONE);
+ ut_ad(innobase_table);
- if (innobase_table != NULL) {
- dict_table_close(innobase_table, TRUE, FALSE);
+ for (dict_index_t* index = dict_table_get_first_index(innobase_table);
+ index; index = dict_table_get_next_index(index)) {
+
+ if (!row_size_is_acceptable(index)) {
+ std::string err_msg = format_too_big_row_error_message(
+ m_flags, index->n_fields);
+ my_printf_error(ER_TOO_BIG_ROWSIZE, err_msg.c_str(),
+ MYF(0));
+ dict_table_close(innobase_table, true, false);
+ DBUG_RETURN(HA_ERR_TO_BIG_ROW);
+ }
}
+ dict_table_close(innobase_table, TRUE, FALSE);
+
DBUG_RETURN(0);
}
+bool create_table_info_t::row_size_is_acceptable(
+ const dict_table_t* table) const
+{
+ ut_ad(table);
+
+ for (dict_index_t* index = dict_table_get_first_index(table); index;
+ index = dict_table_get_next_index(index)) {
+
+ if (!row_size_is_acceptable(index)) {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+bool create_table_info_t::row_size_is_acceptable(
+ const dict_index_t* index) const
+{
+ if (index->type & DICT_FTS) {
+ return true;
+ }
+ // Not always system tables have sane maximux size. But user don't have
+ // to know about that.
+ if (index->table->is_system_db) {
+ return true;
+ }
+
+ bool strict = THDVAR(m_thd, strict_mode);
+
+ dict_index_t::record_size_info_t info = index->record_size_info();
+
+ if (info.row_too_big()) {
+ int idx = info.get_first_overrun_field_index();
+ if (idx != INT_MAX) {
+ ut_ad(info.get_overrun_size() != 0);
+ ut_ad(info.max_leaf_size != 0);
+
+ const dict_field_t* field
+ = dict_index_get_nth_field(index, idx);
+
+ ib::error_or_warn(strict)
+ << "After adding field " << field->name
+ << " in table " << index->table->name
+ << " row size occupies " << info.get_overrun_size()
+ << " bytes, which is greater than maximum "
+ "allowed size ("
+ << info.max_leaf_size
+ << " bytes) for a record on index leaf page.";
+ }
+
+ if (strict) {
+ return false;
+ }
+
+ std::string err_msg = format_too_big_row_error_message(
+ index->table->flags, index->n_fields);
+ push_warning_printf(current_thd, Sql_condition::WARN_LEVEL_WARN,
+ HA_ERR_TO_BIG_ROW, err_msg.c_str());
+ }
+
+ return true;
+}
+
/** Update a new table in an InnoDB database.
@return error number */
int
@@ -22142,30 +22205,23 @@ innobase_convert_to_system_charset(
cs2, to, static_cast<uint>(len), errors)));
}
-/**********************************************************************
-Issue a warning that the row is too big. */
-void
-ib_warn_row_too_big(const dict_table_t* table)
+std::string format_too_big_row_error_message(unsigned flags, size_t n_fields)
{
/* If prefix is true then a 768-byte prefix is stored
locally for BLOB fields. Refer to dict_table_get_format() */
- const bool prefix = (dict_tf_get_format(table->flags)
- == UNIV_FORMAT_A);
-
- const ulint free_space = page_get_free_space_of_empty(
- table->flags & DICT_TF_COMPACT) / 2;
-
- THD* thd = current_thd;
-
- push_warning_printf(
- thd, Sql_condition::WARN_LEVEL_WARN, HA_ERR_TO_BIG_ROW,
- "Row size too large (> " ULINTPF ")."
- " Changing some columns to TEXT"
- " or BLOB %smay help. In current row format, BLOB prefix of"
- " %d bytes is stored inline.", free_space
- , prefix ? "or using ROW_FORMAT=DYNAMIC or"
- " ROW_FORMAT=COMPRESSED ": ""
- , prefix ? DICT_MAX_FIXED_COL_LEN : 0);
+ const bool prefix = (dict_tf_get_format(flags) == UNIV_FORMAT_A);
+ const size_t prefix_len = prefix ? DICT_MAX_FIXED_COL_LEN : 0;
+ const size_t max_record_size = get_max_record_size_leaf_page(
+ flags & DICT_TF_COMPACT, dict_tf_get_page_size(flags), n_fields);
+
+ std::stringstream ss;
+ ss << "Row size is greater than " << max_record_size
+ << ". Changing some columns to TEXT or BLOB "
+ << (prefix ? "or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED "
+ : "")
+ << "may help. In current row format, BLOB prefix of " << prefix_len
+ << " bytes is stored inline.";
+ return ss.str();
}
/** Validate the requested buffer pool size. Also, reserve the necessary
diff --git a/storage/innobase/handler/ha_innodb.h b/storage/innobase/handler/ha_innodb.h
index b812a6f3d59..2289c42372f 100644
--- a/storage/innobase/handler/ha_innodb.h
+++ b/storage/innobase/handler/ha_innodb.h
@@ -631,7 +631,7 @@ public:
- all but name/path is used, when validating options and using flags. */
create_table_info_t(
THD* thd,
- TABLE* form,
+ const TABLE* form,
HA_CREATE_INFO* create_info,
char* table_name,
char* remote_path,
@@ -679,6 +679,11 @@ public:
void allocate_trx();
+ /** Checks that every index have sane size. Depends on strict mode */
+ bool row_size_is_acceptable(const dict_table_t* table) const;
+ /** Checks that given index have sane size. Depends on strict mode */
+ bool row_size_is_acceptable(const dict_index_t* index) const;
+
/** Determines InnoDB table flags.
If strict_mode=OFF, this will adjust the flags to what should be assumed.
@retval true if successful, false if error */
@@ -877,7 +882,7 @@ int
convert_error_code_to_mysql(
dberr_t error,
ulint flags,
- THD* thd);
+ THD* thd, size_t n_fields);
/** Converts a search mode flag understood by MySQL to a flag understood
by InnoDB.
@@ -963,3 +968,5 @@ ib_push_frm_error(
@return true if index column length exceeds limit */
MY_ATTRIBUTE((warn_unused_result))
bool too_big_key_part_length(size_t max_field_len, const KEY& key);
+
+std::string format_too_big_row_error_message(unsigned flags, size_t n_fields);
diff --git a/storage/innobase/handler/handler0alter.cc b/storage/innobase/handler/handler0alter.cc
index c0c34103f1d..09d32dd6aae 100644
--- a/storage/innobase/handler/handler0alter.cc
+++ b/storage/innobase/handler/handler0alter.cc
@@ -336,22 +336,6 @@ my_error_innodb(
case DB_CORRUPTION:
my_error(ER_NOT_KEYFILE, MYF(0), table);
break;
- case DB_TOO_BIG_RECORD: {
- /* Note that in page0zip.ic page_zip_rec_needs_ext() rec_size
- is limited to COMPRESSED_REC_MAX_DATA_SIZE (16K) or
- REDUNDANT_REC_MAX_DATA_SIZE (16K-1). */
- bool comp = !!(flags & DICT_TF_COMPACT);
- ulint free_space = page_get_free_space_of_empty(comp) / 2;
-
- if (free_space >= ulint(comp ? COMPRESSED_REC_MAX_DATA_SIZE :
- REDUNDANT_REC_MAX_DATA_SIZE)) {
- free_space = (comp ? COMPRESSED_REC_MAX_DATA_SIZE :
- REDUNDANT_REC_MAX_DATA_SIZE) - 1;
- }
-
- my_error(ER_TOO_BIG_ROWSIZE, MYF(0), free_space);
- break;
- }
case DB_INVALID_NULL:
/* TODO: report the row, as we do for DB_DUPLICATE_KEY */
my_error(ER_INVALID_USE_OF_NULL, MYF(0));
@@ -367,6 +351,7 @@ my_error_innodb(
case DB_SUCCESS:
case DB_DUPLICATE_KEY:
case DB_ONLINE_LOG_TOO_BIG:
+ case DB_TOO_BIG_RECORD:
/* These codes should not be passed here. */
ut_error;
#endif /* UNIV_DEBUG */
@@ -4311,6 +4296,7 @@ prepare_inplace_alter_table_dict(
ulint num_fts_index;
dict_add_v_col_t* add_v = NULL;
ha_innobase_inplace_ctx*ctx;
+ const dict_index_t* too_big_new_index = NULL;
DBUG_ENTER("prepare_inplace_alter_table_dict");
@@ -4400,6 +4386,10 @@ prepare_inplace_alter_table_dict(
new_clustered = DICT_CLUSTERED & index_defs[0].ind_type;
+ create_table_info_t info(ctx->prebuilt->trx->mysql_thd, altered_table,
+ ha_alter_info->create_info, NULL, NULL,
+ srv_file_per_table);
+
if (num_fts_index > 1) {
my_error(ER_INNODB_FT_LIMIT, MYF(0));
goto error_handled;
@@ -4840,6 +4830,12 @@ index_created:
goto error_handling;
}
+ if (!info.row_size_is_acceptable(ctx->add_index[a])) {
+ error = DB_TOO_BIG_RECORD;
+ too_big_new_index = ctx->add_index[a];
+ goto error_handling;
+ }
+
DBUG_ASSERT(ctx->add_index[a]->is_committed()
== !!new_clustered);
@@ -5055,6 +5051,14 @@ error_handling:
case DB_UNSUPPORTED:
my_error(ER_TABLE_CANT_HANDLE_SPKEYS, MYF(0), "SYS_COLUMNS");
break;
+ case DB_TOO_BIG_RECORD: {
+ ut_ad(too_big_new_index);
+ const size_t n_fields = too_big_new_index->n_fields;
+ std::string err_msg
+ = format_too_big_row_error_message(flags, n_fields);
+ my_printf_error(ER_TOO_BIG_ROWSIZE, err_msg.c_str(), MYF(0));
+ break;
+ }
default:
my_error_innodb(error, table_name, user_table->flags);
}
@@ -6332,6 +6336,16 @@ oom:
my_error(ER_GET_ERRMSG, MYF(0), HA_ERR_DECRYPTION_FAILED, str.c_ptr(), engine);
break;
}
+ case DB_TOO_BIG_RECORD: {
+ // We hope that error was produced by clustered index. Otherwise
+ // reported error might contain incorrect maximum size.
+ const size_t n_fields
+ = dict_table_get_first_index(m_prebuilt->table)->n_fields;
+ std::string err_msg = format_too_big_row_error_message(
+ m_prebuilt->table->flags, n_fields);
+ my_printf_error(ER_TOO_BIG_ROWSIZE, err_msg.c_str(), MYF(0));
+ break;
+ }
default:
my_error_innodb(error,
table_share->table_name.str,
diff --git a/storage/innobase/include/dict0dict.h b/storage/innobase/include/dict0dict.h
index 4e90c9398ba..d68afed0dbd 100644
--- a/storage/innobase/include/dict0dict.h
+++ b/storage/innobase/include/dict0dict.h
@@ -1103,16 +1103,12 @@ dict_make_room_in_cache(
@param[in] index index; NOTE! The index memory
object is freed in this function!
@param[in] page_no root page number of the index
-@param[in] strict TRUE=refuse to create the index
- if records could be too big to fit in
- an B-tree page
-@return DB_SUCCESS, DB_TOO_BIG_RECORD, or DB_CORRUPTION */
+@return DB_SUCCESS, or DB_CORRUPTION */
dberr_t
dict_index_add_to_cache(
dict_table_t* table,
dict_index_t* index,
- ulint page_no,
- ibool strict)
+ ulint page_no)
MY_ATTRIBUTE((warn_unused_result));
/** Clears the virtual column's index list before index is being freed.
@@ -1129,17 +1125,13 @@ added column.
@param[in] add_v new virtual column that being added along with
an add index call
@param[in] page_no root page number of the index
-@param[in] strict TRUE=refuse to create the index
- if records could be too big to fit in
- an B-tree page
@return DB_SUCCESS, DB_TOO_BIG_RECORD, or DB_CORRUPTION */
dberr_t
dict_index_add_to_cache_w_vcol(
dict_table_t* table,
dict_index_t* index,
const dict_add_v_col_t* add_v,
- ulint page_no,
- ibool strict)
+ ulint page_no)
MY_ATTRIBUTE((warn_unused_result));
/********************************************************************//**
Gets the number of fields in the internal representation of an index,
diff --git a/storage/innobase/include/dict0mem.h b/storage/innobase/include/dict0mem.h
index a6047d6f8c3..5941b466627 100644
--- a/storage/innobase/include/dict0mem.h
+++ b/storage/innobase/include/dict0mem.h
@@ -1029,13 +1029,52 @@ struct dict_index_t{
}
}
- /** If a record of this index might not fit on a single B-tree page,
- return true.
- @param[in] candidate_table where we're goint to attach this index
- @param[in] strict issue error or warning
- @return true if the index record could become too big */
- bool rec_potentially_too_big(const dict_table_t* candidate_table,
- bool strict) const;
+ class record_size_info_t {
+ public:
+ record_size_info_t()
+ : max_leaf_size(0), shortest_size(0), too_big(false),
+ first_overrun_field_index(INT_MAX), overrun_size(0)
+ {
+ }
+
+ void set_too_big(int field_index = INT_MAX)
+ {
+ too_big = true;
+ if (first_overrun_field_index > field_index) {
+ first_overrun_field_index = field_index;
+ overrun_size = shortest_size;
+ }
+ }
+
+ int get_first_overrun_field_index() const
+ {
+ ut_ad(row_too_big());
+ return first_overrun_field_index;
+ }
+
+ size_t get_overrun_size() const {
+ ut_ad(too_big);
+ return overrun_size;
+ }
+
+ bool row_too_big() const {
+ return too_big;
+ }
+
+ size_t max_leaf_size;
+ size_t shortest_size; // shortest because it counts everything
+ // as in overflow pages
+
+ private:
+ bool too_big;
+ int first_overrun_field_index;
+ size_t overrun_size; // row size with one first overrun field
+ };
+
+ /** Returns max possibly record size for that index, size of a shortest
+ everything in overflow) size of the longest possible row and index
+ of a field which made index records too big to fit on a page.*/
+ record_size_info_t record_size_info() const;
};
/** Detach a column from an index.
@@ -1955,6 +1994,21 @@ inline void dict_stats_empty_defrag_stats(dict_index_t* index)
index->stat_defrag_n_page_split = 0;
}
+/** Returns max allowed row/record size for a leaf page */
+size_t get_max_record_size_leaf_page(bool comp, page_size_t page_size,
+ size_t n_fields);
+/** Returns max allowed row/record size for a non-leaf page */
+inline size_t get_max_record_size_non_leaf_page(bool comp,
+ page_size_t page_size,
+ size_t n_fields)
+{
+ size_t size = get_max_record_size_leaf_page(comp, page_size, n_fields);
+ if (page_size.is_compressed()) {
+ size /= 2;
+ }
+ return size;
+}
+
#include "dict0mem.ic"
#endif /* dict0mem_h */
diff --git a/storage/innobase/include/page0zip.h b/storage/innobase/include/page0zip.h
index b4d4f0e980b..d6658a4e76f 100644
--- a/storage/innobase/include/page0zip.h
+++ b/storage/innobase/include/page0zip.h
@@ -99,20 +99,17 @@ page_zip_set_size(
/** Determine if a record is so big that it needs to be stored externally.
@param[in] rec_size length of the record in bytes
-@param[in] comp nonzero=compact format
+@param[in] comp true=compact format
@param[in] n_fields number of fields in the record; ignored if
tablespace is not compressed
@param[in] page_size page size
@return FALSE if the entire record can be stored locally on the page */
-UNIV_INLINE
-ibool
-page_zip_rec_needs_ext(
- ulint rec_size,
- ulint comp,
- ulint n_fields,
+bool page_zip_rec_needs_ext(
+ size_t rec_size,
+ bool comp,
+ size_t n_fields,
const page_size_t& page_size)
MY_ATTRIBUTE((warn_unused_result));
-
/**********************************************************************//**
Determine the guaranteed free space on an empty page.
@return minimum payload size on the page */
diff --git a/storage/innobase/include/page0zip.ic b/storage/innobase/include/page0zip.ic
index 1258c0d8d4d..091c446930a 100644
--- a/storage/innobase/include/page0zip.ic
+++ b/storage/innobase/include/page0zip.ic
@@ -149,48 +149,6 @@ page_zip_set_size(
ut_ad(page_zip_get_size(page_zip) == size);
}
-/** Determine if a record is so big that it needs to be stored externally.
-@param[in] rec_size length of the record in bytes
-@param[in] comp nonzero=compact format
-@param[in] n_fields number of fields in the record; ignored if
-tablespace is not compressed
-@param[in] page_size page size
-@return FALSE if the entire record can be stored locally on the page */
-UNIV_INLINE
-ibool
-page_zip_rec_needs_ext(
- ulint rec_size,
- ulint comp,
- ulint n_fields,
- const page_size_t& page_size)
-{
- ut_ad(rec_size
- > ulint(comp ? REC_N_NEW_EXTRA_BYTES : REC_N_OLD_EXTRA_BYTES));
- ut_ad(comp || !page_size.is_compressed());
-
-#if UNIV_PAGE_SIZE_MAX > COMPRESSED_REC_MAX_DATA_SIZE
- if (comp ? rec_size >= COMPRESSED_REC_MAX_DATA_SIZE :
- rec_size >= REDUNDANT_REC_MAX_DATA_SIZE) {
- return(TRUE);
- }
-#endif
-
- if (page_size.is_compressed()) {
- ut_ad(comp);
- /* On a compressed page, there is a two-byte entry in
- the dense page directory for every record. But there
- is no record header. There should be enough room for
- one record on an empty leaf page. Subtract 1 byte for
- the encoded heap number. Check also the available space
- on the uncompressed page. */
- return(rec_size - (REC_N_NEW_EXTRA_BYTES - 2 - 1)
- >= page_zip_empty_size(n_fields, page_size.physical())
- || rec_size >= page_get_free_space_of_empty(TRUE) / 2);
- }
-
- return(rec_size >= page_get_free_space_of_empty(comp) / 2);
-}
-
#ifdef UNIV_DEBUG
/**********************************************************************//**
Validate a compressed page descriptor.
diff --git a/storage/innobase/page/page0zip.cc b/storage/innobase/page/page0zip.cc
index e90c5f67f8e..8aac516e371 100644
--- a/storage/innobase/page/page0zip.cc
+++ b/storage/innobase/page/page0zip.cc
@@ -147,6 +147,20 @@ page_zip_fail_func(
# define page_zip_fail(fmt_args) /* empty */
#endif /* UNIV_DEBUG || UNIV_ZIP_DEBUG */
+bool page_zip_rec_needs_ext(
+ size_t rec_size,
+ bool comp,
+ size_t n_fields,
+ const page_size_t& page_size)
+{
+ ut_ad(rec_size
+ > ulint(comp ? REC_N_NEW_EXTRA_BYTES : REC_N_OLD_EXTRA_BYTES));
+ ut_ad(comp || !page_size.is_compressed());
+
+ return rec_size
+ > get_max_record_size_leaf_page(comp, page_size, n_fields);
+}
+
/**********************************************************************//**
Determine the guaranteed free space on an empty page.
@return minimum payload size on the page */
diff --git a/storage/innobase/row/row0mysql.cc b/storage/innobase/row/row0mysql.cc
index 4b82fb9c2c4..bc04ef7d978 100644
--- a/storage/innobase/row/row0mysql.cc
+++ b/storage/innobase/row/row0mysql.cc
@@ -2453,8 +2453,7 @@ row_create_index_for_mysql(
index_id_t index_id = index->id;
/* add index to dictionary cache and also free index object. */
- err = dict_index_add_to_cache(
- table, index, FIL_NULL, trx_is_strict(trx));
+ err = dict_index_add_to_cache(table, index, FIL_NULL);
if (err != DB_SUCCESS) {
goto error_handling;