Bug #21165 Add Record/Key Management Section to Chapter 16 Writing a Custom Storage Engine
Submitted: 19 Jul 2006 21:47 Modified: 24 Apr 2007 10:40
Reporter: Paul Whittington Email Updates:
Status: Closed Impact on me:
Category:MySQL Server: Documentation Severity:S4 (Feature request)
Version:5.1 OS:Any (All)
Assigned to: MC Brown CPU Architecture:Any

[19 Jul 2006 21:47] Paul Whittington
There is no single concise description of MySQL's internal record/key format with descriptions of the methods available for manipulating records/keys from the point
of view of a storage engine.

This is essential documentation for storage engine implementation as many of the storage engine methods must manipulate records/keys and their fields.  

How to repeat:
Read the docs

Suggested fix:
Add a section within Chapter 16 Writing a Custom Storage Engine that discusses
the interanl structure of MySQL records/keys, as stored in memory, complete with documentation of the methods and fuctions available to manipulate the records/keys. 

Topics should include dealing with fields (i.e. count, type, string access, binary access, etc.), copying key values to a record buffer (i.e. key_restore), use of functions such as set_field_ptr, the proper use of table->record[0] and table->record[1], etc.

At this point it's pretty much a read other code and hope you get the semantics right!
[20 Jul 2006 9:55] Valeriy Kravchuk
Thank you for a reasonable documentation request.
[24 Apr 2007 10:40] MC Brown
This bug report refers to the MySQL Internals documentation. This documentation has moved to the MySQL Community Forge Wiki. See http://forge.mysql.com/wiki/MySQL_Internals

If you would like to update the MySQL Internals documentation, you must register for an account on MySQL Forge. If you would like help in updating the information that is contained within the MySQL Internals manual as it now exists on the MySQL Forge Wiki, we advise that you send an email to the community (http://lists.mysql.com/community) and/or Internals (http://lists.mysql.com/internals) mailing lists.

This bug has now been closed.