Bug #116719 | An overflow page is not used if the value of a column is 788 bytes or less | ||
---|---|---|---|
Submitted: | 20 Nov 2024 6:47 | Modified: | 21 Nov 2024 15:39 |
Reporter: | Xizhe Zhang (OCA) | Email Updates: | |
Status: | Verified | Impact on me: | |
Category: | MySQL Server: Documentation | Severity: | S3 (Non-critical) |
Version: | 8.0.40 | OS: | Any |
Assigned to: | CPU Architecture: | Any |
[20 Nov 2024 6:47]
Xizhe Zhang
[20 Nov 2024 6:51]
MySQL Verification Team
Hello Xizhe Zhang, Thank you for the report and feedback. regards, Umesh
[21 Nov 2024 14:33]
Edward Gilmore
Posted by developer: The documentation under COMPACT Row Format Storage Characteristics on the linked page clearly states: "The internal part is 768 bytes, so the length is 768+20. The 20-byte pointer stores the true length of the column." This is not a bug. Thank you for the report.
[21 Nov 2024 15:39]
Xizhe Zhang
Hello, Edward Gilmore: There is nothing wrong with the sentence you mentioned. I think the problematic part is "If the value of a column is 768 bytes or less, an overflow page is not used", which is the first sentence of the third paragraph of the "COMPACT Row Format" section. From the code, we can see that the condition "dfield_get_len(dfield) <= local_len" means, "If the value of a column is 788 bytes or less, an overflow page is not used". For example, if I have a field with a length of 780 bytes (bigger than 768), it will never be selected to be stored externally, because this will result in no space being saved, and even 8 bytes more being used.