Commit fba4abf3 authored by Sergei Golubchik's avatar Sergei Golubchik

MDEV-32128 wrong table name in innodb's "row too big" errors

parent a6c01845
......@@ -396,3 +396,18 @@ 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
drop table t1;
#
# MDEV-32128 wrong table name in innodb's "row too big" errors
#
create temporary 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;
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.
FOUND 1 /Cannot add field `c32` in table `test`.`t1` because/ in mysqld.1.err
--source include/have_innodb.inc
--source include/not_embedded.inc
--echo #
--echo # Bug #17852083 PRINT A WARNING WHEN DDL HAS AN ERROR IN
......@@ -401,3 +402,21 @@ set innodb_strict_mode = 1;
alter table t1 engine=InnoDB;
drop table t1;
--echo #
--echo # MDEV-32128 wrong table name in innodb's "row too big" errors
--echo #
--error ER_TOO_BIG_ROWSIZE
create temporary 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;
let SEARCH_FILE=$MYSQLTEST_VARDIR/log/mysqld.1.err;
let SEARCH_PATTERN=Cannot add field `c32` in table `test`.`t1` because;
source include/search_pattern_in_file.inc;
......@@ -12899,7 +12899,8 @@ bool create_table_info_t::row_size_is_acceptable(
eow << "Cannot add field " << field->name << " in table ";
else
eow << "Cannot add an instantly dropped column in table ";
eow << index.table->name << " because after adding it, the row size is "
eow << "`" << m_form->s->db.str << "`.`" << m_form->s->table_name.str
<< "`" " because after adding it, the row size is "
<< info.get_overrun_size()
<< " which is greater than maximum allowed size ("
<< info.max_leaf_size << " bytes) for a record on index leaf page.";
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment