mirror of
https://github.com/MariaDB/server.git
synced 2025-08-31 22:22:30 +03:00
THOUGH IT IS NOT. The following error message is misleading because it claims that the BLOB space is not counted. "ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs" When the ROW_FORMAT=compact or ROW_FORMAT=REDUNDANT is used, the BLOB prefix is stored inline along with the row. So the above error message is changed as follows depending on the row format used: For ROW_FORMAT=COMPRESSED or ROW_FORMAT=DYNAMIC, the error message is as follows: "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." For ROW_FORMAT=COMPACT or ROW_FORMAT=REDUNDANT, the error message is as follows: "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." rb://1252 approved by Marko Makela
16 lines
608 B
Plaintext
16 lines
608 B
Plaintext
SET GLOBAL innodb_file_format='Barracuda';
|
|
SET GLOBAL innodb_file_per_table=on;
|
|
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 HY000: Too big row
|
|
SHOW WARNINGS;
|
|
Level Code Message
|
|
Error 139 Too big row
|
|
Error 1118 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 1030 Got error 139 from storage engine
|
|
DROP TABLE bug53591;
|
|
SET GLOBAL innodb_file_format=Antelope;
|
|
SET GLOBAL innodb_file_per_table=0;
|