Bug #73935 COLUMN_FORMAT clause incorrectly accepted in Server 5.6+
Submitted: 16 Sep 2014 15:38 Modified: 29 Sep 2014 14:38
Reporter: Laurynas Biveinis (OCA) Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:5.6+ OS:Any
Assigned to: Jon Stephens CPU Architecture:Any
Tags: doc

[16 Sep 2014 15:38] Laurynas Biveinis
Description:
http://dev.mysql.com/doc/refman/5.6/en/create-table.html says

"The COLUMN_FORMAT keyword is supported only in the build of mysqld that is supplied with MySQL Cluster; it is not recognized in any other version of MySQL, where attempting to use COLUMN_FORMAT causes a syntax error."

which contradicts the actual behaviour with a non Cluster build:

CREATE TABLE t1 (a INT COLUMN_FORMAT FIXED) ENGINE=InnoDB;

SHOW CREATE TABLE t1;

resulting in

Table	Create Table
t1	CREATE TABLE `t1` (
  `a` int(11) /*!50606 COLUMN_FORMAT FIXED */ DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1

5.5 results in syntax error.

How to repeat:
See above

Suggested fix:
Document the actual behaviour.
[16 Sep 2014 17:36] MySQL Verification Team
Thank you for the bug report.

C:\dbs>c:\dbs\5.5\bin\mysql -uroot --port=3550 --prompt="mysql 5.5 > "
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.40 Source distribution

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql 5.5 > CREATE DATABASE db3;
Query OK, 1 row affected (0.01 sec)

mysql 5.5 > USE db3
Database changed
mysql 5.5 > CREATE TABLE t1 (a INT COLUMN_FORMAT FIXED) ENGINE=InnoDB;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'COLUMN_FORMAT FIXED) ENGINE=InnoDB' at line 1
mysql 5.5 > exit

C:\dbs>net start mysqld56
The MySQLD56 service is starting..
The MySQLD56 service was started successfully.

C:\dbs>56

C:\dbs>c:\dbs\5.6\bin\mysql -uroot --port=3560 --debug-info --prompt="mysql 5.6 > "
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.21 Source distribution

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql 5.6 > CREATE DATABASE db3;
Query OK, 1 row affected (0.01 sec)

mysql 5.6 > USE db3
Database changed
mysql 5.6 > CREATE TABLE t1 (a INT COLUMN_FORMAT FIXED) ENGINE=InnoDB;
Query OK, 0 rows affected (0.33 sec)

mysql 5.6 >
[17 Sep 2014 8:23] Jon Stephens
This appears to be an unintended/unplanned behaviour change.

Removing myself as assignee, changing category to Server so it can be properly addressed.
[29 Sep 2014 14:38] Jon Stephens
Thank you for your bug report. This issue has been addressed in the documentation. The updated documentation will appear on our website shortly.