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.