mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
MDEV-32128 wrong table name in innodb's "row too big" errors
This commit is contained in:
parent
a6c0184534
commit
fba4abf3b9
3 changed files with 36 additions and 1 deletions
|
@ -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
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
--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.";
|
||||
|
|
Loading…
Reference in a new issue