Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Won't Fix
-
10.2(EOL), 10.3(EOL), 10.4(EOL), 10.5
Description
See attached test case that creates table and exports it, this should be run on 10.1 (attached also resulting t0.ibd). Second test case should be run on 10.2 to try import file created above but it fails. Note that final test case should test also row_format=compressed,
encrypted and encrypted+compressed cases.
set global innodb_file_format = 'Barracuda';
|
set global innodb_file_per_table=ON;
|
create table t0 (c1 int not null auto_increment primary key, b char(200)) engine=innodb;
|
alter table t0 discard tablespace;
|
alter table t0 import tablespace;
|
encryption.jan2 'innodb' [ fail ]
|
Test ended at 2018-01-24 11:19:34
|
|
CURRENT_TEST: encryption.jan2
|
mysqltest: At line 12: query 'alter table t0 import tablespace' failed: 1808: Schema mismatch (Expected FSP_SPACE_FLAGS=0x21, .ibd file contains 0x0.)
|
Attachments
Issue Links
- relates to
-
MDEV-15225 Can't import .ibd file with temporal type format differing from mysql56_temporal_format
-
- Closed
-
-
MDEV-18762 Support easy restore of partial backup
-
- Closed
-
-
MDEV-20930 Document that SHOW CREATE TABLE on InnoDB tables only shows ROW_FORMAT when explicitly set
-
- Closed
-
-
MDEV-11658 Simpler, faster IMPORT of InnoDB tables
-
- Open
-
-
MDEV-16851 On schema mismatch in IMPORT TABLESPACE, display ROW_FORMAT in clear text
-
- Closed
-
-
MDEV-20974 Don't require .cfg files to import InnoDB tablespaces
-
- Closed
-
Starting with MariaDB 10.2.17, we do display a more user-friendly message about this:
MDEV-16851On schema mismatch in IMPORT TABLESPACE, display ROW_FORMAT in clear textThe FSP_SPACE_FLAGS is 0 for ROW_FORMAT=REDUNDANT (which was the only option before MySQL 5.0.3) and ROW_FORMAT=COMPACT (which was introduced by me and made the default in MySQL 5.0.3) when using the default innodb_page_size=16k.
In MariaDB 10.2 (and MySQL 5.7), the parameter innodb_default_row_format was introduced, and it was made dynamic by default.
The flags 0x21 are for ROW_FORMAT=DYNAMIC when using the default innodb_page_size=16k.
Ultimately, MDEV-11658 should replace the current clumsy and error-prone mechanism of importing InnoDB data files.
Perhaps the documentation could be clarified about this. SHOW TABLE STATUS can display the actual ROW_FORMAT that is in effect inside InnoDB. It is also worth noting that even if a ROW_FORMAT was specified in a CREATE TABLE or ALTER TABLE statement, it could be overridden by InnoDB unless innodb_file_format=barracuda and innodb_file_per_table=1. This logic was removed in MariaDB 10.2 or 10.3.