Bug #54907 Cannot know current row_format, after row_format specification fails.
Submitted: 30 Jun 2010 7:46 Modified: 1 Jul 2010 0:46
Reporter: Yoshiaki Tajika (Basic Quality Contributor) Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Server: InnoDB Plugin storage engine Severity:S3 (Non-critical)
Version:5.1.48, 5.1.49-bzr OS:Any
Assigned to: CPU Architecture:Any
Tags: qc

[30 Jun 2010 7:46] Yoshiaki Tajika
Description:
I cannot know current row_format, after row_format specification fails.

How to repeat:
1. Use my.ini like below(i.e, innodb_file_format is antelope);
ignore_builtin_innodb
plugin-load=...(omit)...
#innodb_file_format=barracuda
#innodb_strict_mode=1

2. Execute DDLs like below.

mysql> create table t1(c1 int primary key) engine=innodb;
Query OK, 0 rows affected (0.13 sec)

mysql> select row_format, create_options from information_schema.tables
    -> where table_name='t1';
+------------+----------------+
| row_format | create_options |
+------------+----------------+
| Compact    |                |
+------------+----------------+
1 row in set (0.03 sec)

mysql> alter table t1 row_format=compressed;
Query OK, 0 rows affected, 2 warnings (0.27 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show warnings;
+---------+------+-----------------------------------------------------------------------+
| Level   | Code | Message                                                               |
+---------+------+-----------------------------------------------------------------------+
| Warning | 1478 | InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_format > Antelope. |
| Warning | 1478 | InnoDB: assuming ROW_FORMAT=COMPACT.                                  |
+---------+------+-----------------------------------------------------------------------+
2 rows in set (0.00 sec)

Yes, I can understand these warnings. So the row_format was not 
changed, and is still COMPACT, right?

mysql> select row_format, create_options from information_schema.tables where table_name='t1';
+------------+-----------------------+
| row_format | create_options        |
+------------+-----------------------+
| Compact    | row_format=COMPRESSED |
+------------+-----------------------+
1 row in set (0.00 sec)

Here, why does it show that row_format is not COMPACT, but COMPRESSED?
If I miss the previous warnings, how can I know the current true row_format?

Suggested fix:
In my opinion, in the case above, it should show that row_format is (still) COMPACT.
[30 Jun 2010 9:21] Valeriy Kravchuk
Verified just as described with recent 5.1.49 from bzr on Linux.
[30 Jun 2010 11:28] Mikhail Izioumtchenko
could you clarify where the bug is? I don't see any.

+------------+-----------------------+
| row_format | create_options        |
+------------+-----------------------+
| Compact    | row_format=COMPRESSED |
+------------+-----------------------+

the column row_format is Compact just as what CREATE TABLE ordered.
the column create_options is row_format=COMPRESSED just as the CREATE options
the user specified. The fact that row_format had to be changed to compact
doesn't make any less true the fact that row_format=COMPRESSED was used
in CREATE TABLE.
[30 Jun 2010 23:56] Yoshiaki Tajika
I'm sorry. Your explanation let me notice a mistake in my understanding.
Would you please change the status into 'not a bug' or something like that?
[1 Jul 2010 0:46] Calvin Sun
Change to Not a Bug per user request.