Details
-
Bug
-
Status: Closed (View Workflow)
-
Trivial
-
Resolution: Fixed
-
None
-
None
Description
CREATE TABLE will produce a warning when table's storage engine doesn't support transactional=0|1 attribute but won't produce warnings for page_checksum or row_format attributes.
Moreover, the attributes will be kept (in .frm file?) and displayed by SHOW CREATE TABLE which creates an illusion that the storage engine actually supports them:
mysql> create table t1 (a int) transactional=0;
|
Query OK, 0 rows affected, 1 warning (0.01 sec)
|
|
mysql> create table t2 (a int) page_checksum=1;
|
Query OK, 0 rows affected (0.01 sec)
|
|
mysql> create table t3 (a int) row_format=page;
|
Query OK, 0 rows affected (0.01 sec)
|
|
mysql> show create table t3\G
|
*************************** 1. row ***************************
|
Table: t3
|
Create Table: CREATE TABLE `t3` (
|
`a` int(11) DEFAULT NULL
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ROW_FORMAT=PAGE
|
1 row in set (0.00 sec)
|
|
mysql> show create table t2\G
|
*************************** 1. row ***************************
|
Table: t2
|
Create Table: CREATE TABLE `t2` (
|
`a` int(11) DEFAULT NULL
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1
|
1 row in set (0.00 sec)
|
Suggested fix:
- Discard unapplicable attributes
- And produce a warning when doing that.