1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

MDEV-21454 Show actual mismatching values in mismatch error messages from row_import::match_table_columns()

Patch by Hartmut Holzgraefe
This commit is contained in:
Eugene Kosov
2020-01-10 22:50:19 +07:00
parent 41cde4fe22
commit 56529a7d7f
4 changed files with 49 additions and 27 deletions

View File

@@ -389,7 +389,7 @@ CREATE TABLE testdb_wl5522.t1 ( i bigint) ENGINE = Innodb;
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE;
restore: t1 .ibd and .cfg files
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE;
ERROR HY000: Schema mismatch (Column i precise type mismatch.)
ERROR HY000: Schema mismatch (Column i precise type mismatch, it's 0X408 in the table and 0X403 in the tablespace meta file)
unlink: t1.ibd
unlink: t1.cfg
DROP TABLE testdb_wl5522.t1;

View File

@@ -426,7 +426,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 (Column c2 precise type mismatch.)
ERROR HY000: Schema mismatch (Column c2 precise type mismatch, it's 0X408 in the table and 0X403 in the tablespace meta file)
unlink: t1.ibd
unlink: t1.cfg
DROP TABLE t1;

View File

@@ -410,7 +410,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 (Column c2 precise type mismatch.)
ERROR HY000: Schema mismatch (Column c2 precise type mismatch, it's 0X408 in the table and 0X403 in the tablespace meta file)
unlink: t1.ibd
unlink: t1.cfg
DROP TABLE t1;

View File

@@ -1156,8 +1156,10 @@ row_import::match_table_columns(
ib_errf(thd,
IB_LOG_LEVEL_ERROR,
ER_TABLE_SCHEMA_MISMATCH,
"Column %s precise type mismatch.",
col_name);
"Column %s precise type mismatch,"
" it's 0X%X in the table and 0X%X"
" in the tablespace meta file",
col_name, col->prtype, cfg_col->prtype);
err = DB_ERROR;
}
@@ -1165,8 +1167,10 @@ row_import::match_table_columns(
ib_errf(thd,
IB_LOG_LEVEL_ERROR,
ER_TABLE_SCHEMA_MISMATCH,
"Column %s main type mismatch.",
col_name);
"Column %s main type mismatch,"
" it's 0X%X in the table and 0X%X"
" in the tablespace meta file",
col_name, col->mtype, cfg_col->mtype);
err = DB_ERROR;
}
@@ -1174,8 +1178,10 @@ row_import::match_table_columns(
ib_errf(thd,
IB_LOG_LEVEL_ERROR,
ER_TABLE_SCHEMA_MISMATCH,
"Column %s length mismatch.",
col_name);
"Column %s length mismatch,"
" it's %u in the table and %u"
" in the tablespace meta file",
col_name, col->len, cfg_col->len);
err = DB_ERROR;
}
@@ -1184,12 +1190,22 @@ row_import::match_table_columns(
ib_errf(thd,
IB_LOG_LEVEL_ERROR,
ER_TABLE_SCHEMA_MISMATCH,
"Column %s multi-byte len mismatch.",
col_name);
"Column %s multi-byte len mismatch,"
" it's %u-%u in the table and %u-%u"
" in the tablespace meta file",
col_name, col->mbminlen, col->mbmaxlen,
cfg_col->mbminlen, cfg_col->mbmaxlen);
err = DB_ERROR;
}
if (cfg_col->ind != col->ind) {
ib_errf(thd,
IB_LOG_LEVEL_ERROR,
ER_TABLE_SCHEMA_MISMATCH,
"Column %s position mismatch,"
" it's %u in the table and %u"
" in the tablespace meta file",
col_name, col->ind, cfg_col->ind);
err = DB_ERROR;
}
@@ -1197,8 +1213,11 @@ row_import::match_table_columns(
ib_errf(thd,
IB_LOG_LEVEL_ERROR,
ER_TABLE_SCHEMA_MISMATCH,
"Column %s ordering mismatch.",
col_name);
"Column %s ordering mismatch,"
" it's %u in the table and %u"
" in the tablespace meta file",
col_name, col->ord_part,
cfg_col->ord_part);
err = DB_ERROR;
}
@@ -1206,8 +1225,11 @@ row_import::match_table_columns(
ib_errf(thd,
IB_LOG_LEVEL_ERROR,
ER_TABLE_SCHEMA_MISMATCH,
"Column %s max prefix mismatch.",
col_name);
"Column %s max prefix mismatch"
" it's %u in the table and %u"
" in the tablespace meta file",
col_name, col->max_prefix,
cfg_col->max_prefix);
err = DB_ERROR;
}
}