mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-27273 Confusing column count in IMPORT TABLESPACE error message
It's misleading to compare and write to user number of columns and fields. Thus, it would be better to remove that check and let use see a subsequent error message about missing or mispaced column. row_import::match_schema(): remove misleading check
This commit is contained in:
@ -331,7 +331,7 @@ SELECT * FROM t1;
|
||||
ERROR HY000: Tablespace has been discarded for table `t1`
|
||||
restore: t1 .ibd and .cfg files
|
||||
ALTER TABLE t1 IMPORT TABLESPACE;
|
||||
ERROR HY000: Schema mismatch (Number of columns don't match, table has 6 columns but the tablespace meta-data file has 5 columns)
|
||||
ERROR HY000: Schema mismatch (Column c3 not found in tablespace.)
|
||||
unlink: t1.ibd
|
||||
unlink: t1.cfg
|
||||
DROP TABLE t1;
|
||||
@ -916,6 +916,22 @@ c1 c2
|
||||
15 1
|
||||
16 1
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 ( id INT NOT NULL, i1 INT, i2 INT, i3 INT, PRIMARY KEY (id)) engine=innodb;
|
||||
CREATE TABLE t2 ( id INT NOT NULL, i1 INT, i2 INT, PRIMARY KEY (id)) engine=innodb;
|
||||
ALTER TABLE t2 DISCARD TABLESPACE;
|
||||
FLUSH TABLES t1 FOR EXPORT;
|
||||
UNLOCK TABLES;
|
||||
ALTER TABLE t2 IMPORT TABLESPACE;
|
||||
ERROR HY000: Schema mismatch (Column DB_ROW_ID ordinal value mismatch, it's at 3 in the table and 4 in the tablespace meta-data file)
|
||||
DROP TABLE t1, t2;
|
||||
CREATE TABLE t1 ( id INT NOT NULL, i1 INT, i2 INT, PRIMARY KEY (id)) engine=innodb;
|
||||
CREATE TABLE t2 ( id INT NOT NULL, i1 INT, i2 INT, i3 INT, PRIMARY KEY (id)) engine=innodb;
|
||||
ALTER TABLE t2 DISCARD TABLESPACE;
|
||||
FLUSH TABLES t1 FOR EXPORT;
|
||||
UNLOCK TABLES;
|
||||
ALTER TABLE t2 IMPORT TABLESPACE;
|
||||
ERROR HY000: Schema mismatch (Column i3 not found in tablespace.)
|
||||
DROP TABLE t1, t2;
|
||||
call mtr.add_suppression("Got error -1 when reading table '.*'");
|
||||
call mtr.add_suppression("InnoDB: Error: tablespace id and flags in file '.*'");
|
||||
call mtr.add_suppression("InnoDB: The table .* doesn't have a corresponding tablespace, it was discarded");
|
||||
|
@ -1057,6 +1057,44 @@ SELECT * FROM t1;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
CREATE TABLE t1 ( id INT NOT NULL, i1 INT, i2 INT, i3 INT, PRIMARY KEY (id)) engine=innodb;
|
||||
CREATE TABLE t2 ( id INT NOT NULL, i1 INT, i2 INT, PRIMARY KEY (id)) engine=innodb;
|
||||
|
||||
ALTER TABLE t2 DISCARD TABLESPACE;
|
||||
FLUSH TABLES t1 FOR EXPORT;
|
||||
|
||||
--copy_file $MYSQLD_DATADIR/test/t1.ibd $MYSQLD_DATADIR/test/t2.ibd
|
||||
--copy_file $MYSQLD_DATADIR/test/t1.cfg $MYSQLD_DATADIR/test/t2.cfg
|
||||
|
||||
UNLOCK TABLES;
|
||||
--error ER_TABLE_SCHEMA_MISMATCH
|
||||
ALTER TABLE t2 IMPORT TABLESPACE;
|
||||
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
|
||||
CREATE TABLE t1 ( id INT NOT NULL, i1 INT, i2 INT, PRIMARY KEY (id)) engine=innodb;
|
||||
--remove_file $MYSQLD_DATADIR/test/t2.ibd
|
||||
CREATE TABLE t2 ( id INT NOT NULL, i1 INT, i2 INT, i3 INT, PRIMARY KEY (id)) engine=innodb;
|
||||
|
||||
ALTER TABLE t2 DISCARD TABLESPACE;
|
||||
FLUSH TABLES t1 FOR EXPORT;
|
||||
|
||||
--copy_file $MYSQLD_DATADIR/test/t1.ibd $MYSQLD_DATADIR/test/t2.ibd
|
||||
--copy_file $MYSQLD_DATADIR/test/t1.cfg $MYSQLD_DATADIR/test/t2.cfg
|
||||
|
||||
UNLOCK TABLES;
|
||||
--error ER_TABLE_SCHEMA_MISMATCH
|
||||
ALTER TABLE t2 IMPORT TABLESPACE;
|
||||
|
||||
--remove_file $MYSQLD_DATADIR/test/t2.ibd
|
||||
--remove_file $MYSQLD_DATADIR/test/t2.cfg
|
||||
|
||||
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
|
||||
call mtr.add_suppression("Got error -1 when reading table '.*'");
|
||||
call mtr.add_suppression("InnoDB: Error: tablespace id and flags in file '.*'");
|
||||
call mtr.add_suppression("InnoDB: The table .* doesn't have a corresponding tablespace, it was discarded");
|
||||
|
@ -317,7 +317,7 @@ SELECT * FROM t1;
|
||||
ERROR HY000: Tablespace has been discarded for table `t1`
|
||||
restore: t1 .ibd and .cfg files
|
||||
ALTER TABLE t1 IMPORT TABLESPACE;
|
||||
ERROR HY000: Schema mismatch (Number of columns don't match, table has 6 columns but the tablespace meta-data file has 5 columns)
|
||||
ERROR HY000: Schema mismatch (Column c3 not found in tablespace.)
|
||||
unlink: t1.ibd
|
||||
unlink: t1.cfg
|
||||
DROP TABLE t1;
|
||||
|
@ -1320,14 +1320,6 @@ uncompressed:
|
||||
" .cfg file uses %s",
|
||||
m_table->flags, m_flags, msg);
|
||||
|
||||
return(DB_ERROR);
|
||||
} else if (m_table->n_cols != m_n_cols) {
|
||||
ib_errf(thd, IB_LOG_LEVEL_ERROR, ER_TABLE_SCHEMA_MISMATCH,
|
||||
"Number of columns don't match, table has %u "
|
||||
"columns but the tablespace meta-data file has "
|
||||
ULINTPF " columns",
|
||||
m_table->n_cols, m_n_cols);
|
||||
|
||||
return(DB_ERROR);
|
||||
} else if (UT_LIST_GET_LEN(m_table->indexes) != m_n_indexes) {
|
||||
|
||||
|
Reference in New Issue
Block a user