-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi,
On Thu, 19 Jul 2007, Sergei Golubchik wrote:
> On Jul 18, Bjørn Normann wrote:
> > I'm working on a master dissertation about forensics investigation in
> > a MySQL database system. I have gone through the definition of the
> > .frm file and find some unclear information in the internals manual.
> >
> > I need more information about the key area. It doesn't say anything
> > about how the keys or indexes are stored in the .frm file.
>
> Check the source. For example (in 5.1).
> You need this function:
>
> http://dev.mysql.com/sources/doxygen/mysql-5.1/table_8cc.html#90fcadffe69b32708bc42f9c71792524
>
> keys are read from the frm file in lines 00527-00578, and 00690-00712.
> It's easy to understand, for example:
>
> 00532 keyinfo->flags= (uint) uint2korr(strpos) ^ HA_NOSAME;
> 00533 keyinfo->key_length= (uint) uint2korr(strpos+2);
> 00534 keyinfo->key_parts= (uint) strpos[4];
> 00535 keyinfo->algorithm= (enum ha_key_alg) strpos[5];
> 00536 keyinfo->block_size= uint2korr(strpos+6);
> 00537 strpos+=8;
>
> means
> * two bytes for flags (with inverted HA_NOSAME bit)
> * two bytes for key length
> * one byte - number of key parts
> * one byte for key algorithm
> * two bytes - key block size
Would it make sense to add this information to the internals documentation on
the Forge Wiki? Or is it changing too frequently?
Bye,
LenZ
- --
Lenz Grimmer <lenz@stripped>, Community Relations Manager, EMEA
MySQL GmbH, http://www.mysql.de/, Radlkoferstr. 2, D-81373 München
Geschäftsführer: Kaj Arnö - HRB München 162140
http://forge.mysql.com/ | http://planetmysql.org/ | http://dev.mysql.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)
Comment: For info see http://quantumlab.net/pine_privacy_guard/
iD8DBQFGnz4mSVDhKrJykfIRAhUSAJ9TJ7pP3FFgsga7sDY4sNo5jEmeDACfYwT2
W5zc10Cl/LYhSWqDn61v5V8=
=ZkDC
-----END PGP SIGNATURE-----