Details
-
Bug
-
Status: Closed (View Workflow)
-
Minor
-
Resolution: Not a Bug
-
5.5(EOL), 10.0(EOL), 10.1(EOL), 10.2(EOL), 10.3(EOL), 10.4(EOL)
-
Ubuntu 14.04 x86_64 deb from official binary repo
Description
If a table is created as MyISAM or ARIA engine or was at some point in the past converted to this engine type, a later conversion to INNODB and any subsequent ALTER TABLE statement produces the warning #1478. This is a critical bug as e.g. Ruby on rails interprets this warning as a failed transaction and does not apply DB migrations.
This can be reproduced using the following SQL:
CREATE DATABASE testdb; |
CONNECT testdb; |
CREATE TABLE testtable (id INT(11)) ENGINE=INNODB; |
ALTER TABLE testtable ENGINE=INNODB; |
ALTER TABLE testtable ENGINE=INNODB; |
ALTER TABLE testtable ENGINE=ARIA TRANSACTIONAL=1; |
ALTER TABLE testtable ENGINE=INNODB; |
SHOW WARNINGS;
|
ALTER TABLE testtable ENGINE=INNODB; |
SHOW WARNINGS;
|
Result:
MariaDB [(none)]> connect testdb;
|
Connection id: 6698
|
Current database: testdb
|
|
MariaDB [testdb]> create table testtable (id INT(11)) ENGINE=INNODB;
|
Query OK, 0 rows affected (0.30 sec)
|
|
MariaDB [testdb]> alter table testtable ENGINE=INNODB;
|
Query OK, 0 rows affected (0.35 sec)
|
Records: 0 Duplicates: 0 Warnings: 0
|
|
MariaDB [testdb]> alter table testtable ENGINE=INNODB;
|
Query OK, 0 rows affected (0.36 sec)
|
Records: 0 Duplicates: 0 Warnings: 0
|
|
MariaDB [testdb]> alter table testtable ENGINE=ARIA TRANSACTIONAL=1;
|
Query OK, 0 rows affected (0.49 sec)
|
Records: 0 Duplicates: 0 Warnings: 0
|
|
MariaDB [testdb]> alter table testtable ENGINE=INNODB;
|
Query OK, 0 rows affected, 1 warning (0.54 sec)
|
Records: 0 Duplicates: 0 Warnings: 1
|
|
MariaDB [testdb]> show warnings;
|
+---------+------+------------------------------------------------------------------------------------+
|
| Level | Code | Message |
|
+---------+------+------------------------------------------------------------------------------------+
|
| Warning | 1478 | Table storage engine 'InnoDB' does not support the create option 'TRANSACTIONAL=1' |
|
+---------+------+------------------------------------------------------------------------------------+
|
1 row in set (0.00 sec)
|
|
MariaDB [testdb]> alter table testtable ENGINE=INNODB;
|
Query OK, 0 rows affected, 1 warning (0.39 sec)
|
Records: 0 Duplicates: 0 Warnings: 1
|
|
MariaDB [testdb]> show warnings;
|
+---------+------+------------------------------------------------------------------------------------+
|
| Level | Code | Message |
|
+---------+------+------------------------------------------------------------------------------------+
|
| Warning | 1478 | Table storage engine 'InnoDB' does not support the create option 'TRANSACTIONAL=1' |
|
+---------+------+------------------------------------------------------------------------------------+
|
Attachments
Issue Links
- causes
-
MDEV-21387 Unable to convert Aria Tables to MyISAM after specifying TRANSACTIONAL=0
- Closed
- relates to
-
MDEV-31794 Preserved unsupported table flags break replication
- Closed
- links to