Bug #99236 Glossary of .frm file is wrong
Submitted: 13 Apr 2020 5:08 Modified: 14 Apr 2020 16:15
Reporter: Tsubasa Tanaka (OCA) Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Documentation Severity:S3 (Non-critical)
Version:5.6, 5.7, 5.6-ja OS:Any
Assigned to: Daniel Price CPU Architecture:Any

[13 Apr 2020 5:08] Tsubasa Tanaka
Description:
"MySQL Glossary" in Docs describes ".frm file" as

> Although each InnoDB table has a .frm file, InnoDB maintains its own table metadata in the system tablespace; the .frm files are not needed for InnoDB to operate on InnoDB tables.

But actually, MySQL uses .frm file for opening table (without table_definition_cache, 
in function "open_table_def") even if the table uses InnoDB Storage engine.

We can't operate on InnoDB tables without .frm file

How to repeat:
mysql57 5> CREATE DATABASE d1;
Query OK, 1 row affected (0.01 sec)

mysql57 5> CREATE TABLE d1.t1 (num int) Engine= InnoDB;
Query OK, 0 rows affected (0.03 sec)

$ ll data/d1/t1*
-rw-r----- 1 yoku0825 yoku0825  8558 Apr 13 14:02 data/d1/t1.frm
-rw-r----- 1 yoku0825 yoku0825 98304 Apr 13 14:02 data/d1/t1.ibd

### Move t1.frm 
$ mv -i data/d1/t1.frm ./
$ ll data/d1/t1*
-rw-r----- 1 yoku0825 yoku0825 98304 Apr 13 14:02 data/d1/t1.ibd

mysql57 5> SELECT * FROM d1.t1; -- Query fails
ERROR 1146 (42S02): Table 'd1.t1' doesn't exist

Suggested fix:
Remove "the .frm files are not needed for InnoDB to operate on InnoDB tables." from description.

https://dev.mysql.com/doc/refman/5.6/en/glossary.html#glos_frm_file
https://dev.mysql.com/doc/refman/5.6/ja/glossary.html#glos_frm_file
https://dev.mysql.com/doc/refman/5.7/en/glossary.html#glos_frm_file
[13 Apr 2020 6:39] MySQL Verification Team
Hello tanaka-San,

Thank you for the report and feedback.

regards,
Umes
[14 Apr 2020 16:15] Daniel Price
Posted by developer:
 
The referenced glossary term was revised as suggested. The change should appear online soon.

Thank you for the bug report.