Details
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.
Gliffy Diagrams
Attachments
Activity
- All
- Comments
- Work Log
- History
- Activity
- Transitions
Re: CREATE TABLE with unsupported table option keeps the option
The behaviour can be changed/touched in https://askmonty.org/worklog/Server-BackLog/?tid=43