Bug #108210 Description about LOCK_MODE is not accurate
Submitted: 22 Aug 2022 2:24 Modified: 22 Aug 2022 7:55
Reporter: Aray Chou Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: Documentation Severity:S2 (Serious)
Version: OS:Any
Assigned to: CPU Architecture:Any

[22 Aug 2022 2:24] Aray Chou
Description:
https://dev.mysql.com/doc/refman/8.0/en/performance-schema-data-locks-table.html

LOCK_MODE

How the lock is requested.

The value is storage engine dependent. For InnoDB, permitted values are S[,GAP], X[,GAP], IS[,GAP], IX[,GAP], AUTO_INC, and UNKNOWN. Lock modes other than AUTO_INC and UNKNOWN indicate gap locks, if present. For information about S, X, IS, IX, and gap locks, refer to Section 15.7.1, “InnoDB Locking”.

--------

The description " For InnoDB, permitted values are S[,GAP], X[,GAP], IS[,GAP], IX[,GAP], AUTO_INC, and UNKNOWN." will mislead readers as following: 

permitted values are "S", "S,GAP", "X", "X,GAP", "IS", "IS,GAP", "IX", "IX,GAP", "AUTO_INC", and "UNKNOWN". There are no other permitted values. 

but actually, there are other permitted values: "S,REC_NOT_GAP", "X,REC_NOT_GAP".

and readers can not under stand what "S", "S,GAP" means, which one is "gap lock", which one is "single record lock", which one is "next key lock".

How to repeat:
It need not to be repeatted since it is an issue about document.

Suggested fix:
https://dev.mysql.com/blog-archive/innodb-data-locking-part-2-locks/ 

the "Record locks" section in above link decribs LOCK_MODE much better. may change the documentation according this link.
[22 Aug 2022 7:55] MySQL Verification Team
Hello Aray Chou,

Thank you for the report.

regards,
Umesh