mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
Problem: ======== Currently import operation fails with schema mismatch when cfg file has hidden fts document id and hidden fts document index. Fix: ==== To fix this issue, simply add the fts doc id column, indexes in table definition and try to import the table. In case of success: 1) update the fts document id in sys columns. 2) update the number of columns in sys tables. 3) insert the new fts index entry in sys indexes table and sys fields. 4) Reload the table with new table definition
77 lines
3.1 KiB
Plaintext
77 lines
3.1 KiB
Plaintext
CREATE TABLE t1(f1 INT NOT NULL PRIMARY KEY,
|
|
f2 CHAR(2) NOT NULL, FULLTEXT f_idx(f2),
|
|
f3 INT as (f1) VIRTUAL, INDEX(f3))ENGINE=InnoDB;
|
|
INSERT INTO t1(f1, f2) VALUES(1, "on");
|
|
ALTER TABLE t1 DROP INDEX f_idx;
|
|
FLUSH TABLE t1 FOR EXPORT;
|
|
Warnings:
|
|
Warning 1235 This version of MariaDB doesn't yet support 'FLUSH TABLES on a table that had an FTS index, created on a hidden column, the auxiliary tables haven't been dropped as yet. FTS auxiliary tables will not be flushed.'
|
|
Warning 1235 This version of MariaDB doesn't yet support 'FLUSH TABLES on a table that had an FTS index, created on a hidden column, the auxiliary tables haven't been dropped as yet. FTS auxiliary tables will not be flushed.'
|
|
backup: t1
|
|
UNLOCK TABLES;
|
|
Warnings:
|
|
Warning 1235 This version of MariaDB doesn't yet support 'FLUSH TABLES on a table that had an FTS index, created on a hidden column, the auxiliary tables haven't been dropped as yet. FTS auxiliary tables will not be flushed.'
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1(f1 INT NOT NULL PRIMARY KEY,
|
|
f2 CHAR(2) NOT NULL,
|
|
f3 CHAR(2) NOT NULL,
|
|
f4 INT AS (f1) VIRTUAL, INDEX(f4))ENGINE=InnoDB;
|
|
ALTER TABLE t1 DISCARD TABLESPACE;
|
|
restore: t1 .ibd and .cfg files
|
|
ALTER TABLE t1 IMPORT TABLESPACE;
|
|
ERROR HY000: Schema mismatch (Number of indexes don't match, table has 2 indexes but the tablespace meta-data file has 3 indexes)
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1(f1 INT NOT NULL PRIMARY KEY,
|
|
f2 CHAR(2) NOT NULL,
|
|
f3 INT as (f1) VIRTUAL, INDEX(f3))ENGINE=InnoDB;
|
|
ALTER TABLE t1 DISCARD TABLESPACE;
|
|
restore: t1 .ibd and .cfg files
|
|
SET DEBUG_DBUG="+d,ib_import_set_index_root_failure";
|
|
ALTER TABLE t1 IMPORT TABLESPACE;
|
|
ERROR HY000: Too many active concurrent transactions
|
|
SET DEBUG_DBUG="-d,ib_import_set_index_root_failure";
|
|
SET DEBUG_DBUG="+d,ib_import_vcol_update_fail";
|
|
ALTER TABLE t1 IMPORT TABLESPACE;
|
|
ERROR 23000: Can't write; duplicate key in table 't1'
|
|
SET DEBUG_DBUG="-d,ib_import_vcol_update_fail";
|
|
restore: t1 .ibd and .cfg files
|
|
SET DEBUG_DBUG="+d,ib_import_fts_error";
|
|
ALTER TABLE t1 IMPORT TABLESPACE;
|
|
ERROR 23000: Can't write; duplicate key in table 't1'
|
|
SET DEBUG_DBUG="-d,ib_import_fts_error";
|
|
unlink: t1.ibd
|
|
unlink: t1.cfg
|
|
SELECT NAME FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS
|
|
WHERE table_id IN (SELECT table_id FROM information_schema.innodb_sys_tables where name="test/t1");
|
|
NAME
|
|
f1
|
|
f2
|
|
f3
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) NOT NULL,
|
|
`f2` char(2) NOT NULL,
|
|
`f3` int(11) GENERATED ALWAYS AS (`f1`) VIRTUAL,
|
|
PRIMARY KEY (`f1`),
|
|
KEY `f3` (`f3`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1(f1 INT NOT NULL PRIMARY KEY,
|
|
FTS_DOC_ID BIGINT SIGNED NOT NULL,
|
|
f2 CHAR(2) NOT NULL,
|
|
FULLTEXT f_idx(f2))ENGINE=InnoDB;
|
|
INSERT INTO t1 VALUES(1, 1, "on");
|
|
ALTER TABLE t1 DROP INDEX f_idx;
|
|
FLUSH TABLE t1 FOR EXPORT;
|
|
backup: t1
|
|
UNLOCK TABLES;
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1(f1 INT NOT NULL PRIMARY KEY,
|
|
f2 CHAR(2) NOT NULL)ENGINE=InnoDB;
|
|
ALTER TABLE t1 DISCARD TABLESPACE;
|
|
restore: t1 .ibd and .cfg files
|
|
ALTER TABLE t1 IMPORT TABLESPACE;
|
|
ERROR HY000: Schema mismatch (Column f2 ordinal value mismatch, it's at 1 in the table and 2 in the tablespace meta-data file)
|
|
DROP TABLE t1;
|