Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.3(EOL), 10.4(EOL)
-
None
Description
- Start 10.1 server, all defaults are sufficient;
- create a table as
CREATE TABLE t1 (f1 INT, f2 INT AS (f1) VIRTUAL) ENGINE=InnoDB;
- shut down the server normally;
- start 10.3 or 10.4 server on the same datadir;
- (optionally, it doesn't affect the outcome) run mysql_upgrade;
- run
CHECK TABLE t1;
ALTER TABLE t1 DROP CONSTRAINT IF EXISTS x;
The result is
Table Op Msg_type Msg_text
test.t1 check status OK
ERROR 1932 (42S02) at line 2: Table 'test.t1' doesn't exist in engine
The error log gets the warning:
2019-05-27 1:49:53 9 [Warning] InnoDB: Table test/t1 contains 1 user defined columns in InnoDB, but 2 columns in MariaDB. Please check INFORMATION_SCHEMA.INNODB_SYS_COLUMNS and https://mariadb.com/kb/en/innodb-data-dictionary-troubleshooting/ for how to resolve the issue.
Further attempts to use the table cause errors in the log:
2019-05-27 1:50:18 10 [ERROR] InnoDB: Table `test`.`t1` is corrupted. Please drop the table and recreate.
A datadir pre-created as described on 10.1 aaf53ea0 is attached.
Not reproducible with 10.2, either being the new server or old server in the scenario.
Attachments
Activity
Field | Original Value | New Value |
---|---|---|
Description |
- Start 10.1 server, all defaults are sufficient;
- create a table as {code:sql} CREATE TABLE t1 (f1 INT, f2 INT AS (f1) VIRTUAL) ENGINE=InnoDB; {code} - shut down the server normally; - start 10.3 or 10.4 server on the same datadir; - (optionally, it doesn't affect the outcome) run mysql_upgrade; - run {code:sql} CHECK TABLE t1; ALTER TABLE t1 DROP CONSTRAINT IF EXISTS x; {code} The result is {code:sql} Table Op Msg_type Msg_text test.t1 check status OK ERROR 1932 (42S02) at line 2: Table 'test.t1' doesn't exist in engine {code} A datadir pre-created as described on 10.1 aaf53ea0 is attached. Not reproducible with 10.2, either being the new server or old server in the scenario. |
- Start 10.1 server, all defaults are sufficient;
- create a table as {code:sql} CREATE TABLE t1 (f1 INT, f2 INT AS (f1) VIRTUAL) ENGINE=InnoDB; {code} - shut down the server normally; - start 10.3 or 10.4 server on the same datadir; - (optionally, it doesn't affect the outcome) run mysql_upgrade; - run {code:sql} CHECK TABLE t1; ALTER TABLE t1 DROP CONSTRAINT IF EXISTS x; {code} The result is {code:sql} Table Op Msg_type Msg_text test.t1 check status OK ERROR 1932 (42S02) at line 2: Table 'test.t1' doesn't exist in engine {code} The error log gets the warning: {noformat} 2019-05-27 1:49:53 9 [Warning] InnoDB: Table test/t1 contains 1 user defined columns in InnoDB, but 2 columns in MariaDB. Please check INFORMATION_SCHEMA.INNODB_SYS_COLUMNS and https://mariadb.com/kb/en/innodb-data-dictionary-troubleshooting/ for how to resolve the issue. {noformat} Further attempts to use the table cause errors in the log: {noformat} 2019-05-27 1:50:18 10 [ERROR] InnoDB: Table `test`.`t1` is corrupted. Please drop the table and recreate. {noformat} A datadir pre-created as described on 10.1 aaf53ea0 is attached. Not reproducible with 10.2, either being the new server or old server in the scenario. |
Assignee | Nikita Malyavin [ nikitamalyavin ] | Thirunarayanan Balathandayuthapani [ thiru ] |
Status | Open [ 1 ] | In Progress [ 3 ] |
Summary | ER_NO_SUCH_TABLE_IN_ENGINE (Table doesn't exist in engine) upon upgrade from 10.1 on a simple table with virtual column | Replace mysql_version check with frm_version for virtual columns inside InnoDB |
issue.field.resolutiondate | 2019-05-28 13:05:48.0 | 2019-05-28 13:05:48.004 |
Fix Version/s | 10.2.25 [ 23408 ] | |
Fix Version/s | 10.3.16 [ 23410 ] | |
Fix Version/s | 10.4.6 [ 23412 ] | |
Fix Version/s | 10.3 [ 22126 ] | |
Fix Version/s | 10.4 [ 22408 ] | |
Resolution | Fixed [ 1 ] | |
Status | In Progress [ 3 ] | Closed [ 6 ] |
Workflow | MariaDB v3 [ 96986 ] | MariaDB v4 [ 156263 ] |