Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Not a Bug
-
10.2.6, 10.2(EOL)
-
None
Description
The following table can be created in MariaDB 10.1.22:
CREATE TABLE `a10` (
|
`id` int(11) NOT NULL,
|
`v1` varchar(10) DEFAULT NULL,
|
`v2` varchar(10) DEFAULT NULL,
|
[...]
|
`v728` varchar(10) DEFAULT NULL,
|
`v729` varchar(10) DEFAULT NULL,
|
PRIMARY KEY (`id`)
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
|
With MariaDB 10.2.6 this fails with
ERROR 1118 (42000) at line 2: 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.
|
When removing one of the VARCHAR(10) lines creating the table succeeds.
When using ROW_FORMAT=COMPRESSED and innodb_file_format=Baracuda instead of Antelope creating the table still fails, now with
ERROR 1118 (42000) at line 2: 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.
|
Again, when removing one of the VARCHAR(10) columns the CREATE succeeds.
With MariaDB 10.1.22 and ROW_FORMAT=COMPACT the CREATE even succeeds with 1000 VARCHAR(10) columns.
I assume that this difference is caused by our switch from XtraDB to InnoDB, as I ran into this with MySQL 5.6 earlier: https://bugs.mysql.com/bug.php?id=76793
I reported
I see the difference in behavior between 10.1 and 10.2 with COMPACT row format, but it's not due to XtraDB=>InnoDB switch, the same difference can be observed if 10.1 runs with the InnoDB plugin. It also seems to be unrelated to Antelope vs Barracuda, since it's reproducible even when both servers are running with the same format (doesn't matter Antelope or Barracuda).
Strangely, the same table created on 10.1 seems to work after upgrading to 10.2.
I've attached the SQL which sets the format to Barracuda and (re-)creates the table.
mdev13111.sql