Author: mcbrown
Date: 2006-11-10 14:55:46 +0100 (Fri, 10 Nov 2006)
New Revision: 3904
Log:
Adding .frm file format to Internals, part of a new file formats chapter.
Added:
trunk/internals/fileformats.xml
Modified:
trunk/internals/Makefile
trunk/internals/internals.xml
Modified: trunk/internals/Makefile
===================================================================
--- trunk/internals/Makefile 2006-11-10 12:02:17 UTC (rev 3903)
+++ trunk/internals/Makefile 2006-11-10 13:55:46 UTC (rev 3904)
Changed blocks: 1, Lines Added: 1, Lines Deleted: 1; 1117 bytes
@@ -39,7 +39,7 @@
INTERNALS_SRCS_EXTRA = fixedchars.ent
-INTERNALS_SRCS = $(INTERNALS_SRCS_EXTRA) internals.xml algorithms.xml client-server-protocol.xml coding-guidelines.xml copyright.xml custom-engine.xml error-message.xml guided-tour.xml images/custom-engine-overview.png innodb-sources.xml innodb.xml legalnotice.en.xml myisam.xml mysql-sources.xml optimizer.xml prepared-stored.xml replication.xml selects.xml transformations.xml
+INTERNALS_SRCS = $(INTERNALS_SRCS_EXTRA) internals.xml algorithms.xml client-server-protocol.xml coding-guidelines.xml copyright.xml custom-engine.xml error-message.xml fileformats.xml guided-tour.xml images/custom-engine-overview.png innodb-sources.xml innodb.xml legalnotice.en.xml myisam.xml mysql-sources.xml optimizer.xml prepared-stored.xml replication.xml selects.xml transformations.xml
internals-prepped.xml: $(INTERNALS_SRCS) $(IDMAP_OBJS)
Added: trunk/internals/fileformats.xml
===================================================================
--- trunk/internals/fileformats.xml (rev 0)
+++ trunk/internals/fileformats.xml 2006-11-10 13:55:46 UTC (rev 3904)
Changed blocks: 1, Lines Added: 601, Lines Deleted: 0; 22926 bytes
@@ -0,0 +1,601 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
+[
+ <!ENTITY % fixedchars.entities SYSTEM "fixedchars.ent">
+ %fixedchars.entities;
+]>
+<chapter id="fileformats">
+
+ <title>File Formats</title>
+
+ <section id="fileformats-frm">
+
+ <title>MySQL <literal>.frm</literal> File Format</title>
+
+ <para>
+ Regardless of the storage engine you choose, every MySQL table you
+ create is represented, on disk, by a <filename>.frm</filename>
+ file, which describes the table's format (i.e. the table
+ definition). The file bears the same name as the table, with a
+ <literal>.frm</literal> extension. The <literal>.frm</literal>
+ format is the same on all platforms but in the description of the
+ .frm format that follows, the examples come from tables created
+ under the Linux operating system.
+ </para>
+
+ <para>
+ First, let's create an example table, using the mysql client:
+ </para>
+
+<programlisting>mysql> CREATE TABLE table1 (column1 CHAR(5)) ENGINE=MYISAM COMMENT '*';
+Query OK, 0 rows affected (0.00 sec)</programlisting>
+
+ <para>
+ The <literal>.frm</literal> file associated with table1 can be
+ located in the directory that represents the database (or schema)
+ to which the table belongs. The <literal>datadir</literal>
+ variable contains the name of this directory:
+ </para>
+
+<programlisting>mysql> SHOW VARIABLES LIKE 'datadir';
++---------------+-----------------------+
+| Variable_name | Value |
++---------------+-----------------------+
+| datadir | /usr/local/mysql/var/ |
++---------------+-----------------------+
+1 row in set (0.00 sec)</programlisting>
+
+ <para>
+ The <literal>DATABASE()</literal> function contains the name of
+ the relevant database:
+ </para>
+
+<programlisting>mysql> SELECT DATABASE();
++------------+
+| DATABASE() |
++------------+
+| ff |
++------------+
+1 row in set (0.00 sec)</programlisting>
+
+ <para>
+ Since MySQL stores .frm files in 'datadir/database_name', it's a
+ simple matter to locate table1's .frm file with the above
+ information. With Linux shell, say:
+ </para>
+
+<programlisting>shell> su root
+shell> cd /usr/local/mysql/var/ff
+shell> ls table1.*</programlisting>
+
+ <para>
+ You'll see a response like the following:
+ </para>
+
+<programlisting>shell> su root
+shell> cd /usr/local/mysql/var/ff
+shell> ls table1.*
+ table1.frm table1.MYD table1.MYI
+shell> ls -l table1.*
+-rw-rw---- 1 root root 8566 2006-09-22 11:22 table1.frm
+-rw-rw---- 1 root root 0 2006-09-22 11:22 table1.MYD
+-rw-rw---- 1 root root 1024 2006-09-22 11:22 table1.MYI</programlisting>
+
+ <para>
+ The <literal>.MYD</literal> and <literal>.MYI</literal> files are
+ not our concern here; they are described elsewhere in this MySQL
+ internals manual. To understand the <literal>.frm</literal>
+ format, let's look at table1.frm using a hexadecimal-dump utility;
+ the contents are show below.
+ </para>
+
+<programlisting>shell> hexdump -v -C table1.frm
+ 00000000 fe 01 09 09 03 00 00 10 01 00 00 30 00 00 10 00 |...........0....|
+ 00000010 06 00 00 00 00 00 00 00 00 00 00 02 08 00 08 00 |................|
+ 00000020 00 05 00 00 00 00 08 00 00 00 00 00 00 00 00 10 |................|
+ 00000030 00 00 00 c0 c3 00 00 10 00 00 00 00 00 00 00 00 |................|
+ 00000040 2f 2f 00 00 20 00 00 00 00 00 00 00 00 00 00 00 |//.. ...........|
+ ... | (many 0s) |
+ 00001000 00 00 00 00 02 00 ff 00 00 00 00 00 00 00 00 00 |................|
+ 00001010 ff 20 20 20 20 20 00 00 06 00 4d 79 49 53 41 4d |. ....MyISAM|
+ ... | (many 0s) |
+ 00002000 6c 01 00 10 00 00 00 00 00 00 00 00 00 00 00 00 |l...............|
+ 00002010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
+ 00002020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 2a |...............*|
+ ...
+ 00002100 01 00 01 00 3b 00 05 00 00 00 06 00 0a 00 00 00 |....;...........|
+ 00002110 00 00 00 00 00 00 50 00 16 00 01 00 00 00 00 00 |......P.........|
+ 00002120 3b 00 02 01 02 14 29 20 20 20 20 20 20 20 20 20 |;.....) |
+ 00002130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
+ 00002140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 | .|
+ 00002150 04 00 08 63 6f 6c 75 6d 6e 31 00 04 08 05 05 00 |...column1......|
+ 00002160 02 00 00 00 80 00 00 00 fe 08 00 00 ff 63 6f 6c |.............col|
+ 00002170 75 6d 6e 31 ff 00 |umn1..|
+ 00002176</programlisting>
+
+ <para>
+ The details shown above might change, especially since there is a
+ transition underway from an old ("binary") format to a new ("text
+ based") <literal>.frm</literal> format. You can confirm that the
+ details are correct by comparing this description with the
+ statements in <filename>sql/table.cc</filename>,
+ <literal>create_frm()</literal>. The table below explains the
+ meaning of each byte in the hexadecimal dump shown in Table 1. In
+ Table 2, "Offset" shows the byte position in the file, "Length" is
+ the number of bytes, "Value" is what's in that byte position for
+ that length (remember that storage is "low byte first" so 0010
+ means 1000!), and "Explanation" provides a brief explanation of
+ the contents.
+ </para>
+
+ <informaltable>
+ <tgroup cols="4">
+ <colspec colwidth="15*"/>
+ <colspec colwidth="10"/>
+ <colspec
+ colwidth="25"/>
+ <colspec colwidth="50*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Offset</emphasis></entry>
+ <entry><emphasis role="bold">Length</emphasis></entry>
+ <entry><emphasis role="bold">Value</emphasis></entry>
+ <entry><emphasis role="bold">Explanation</emphasis></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">header</emphasis></entry>
+ </row>
+ <row>
+ <entry>0000</entry>
+ <entry>1</entry>
+ <entry>fe</entry>
+ <entry>Always</entry>
+ </row>
+ <row>
+ <entry>0001</entry>
+ <entry>1</entry>
+ <entry>01</entry>
+ <entry>Always</entry>
+ </row>
+ <row>
+ <entry>0002</entry>
+ <entry>1</entry>
+ <entry>09</entry>
+ <entry><literal>FRM_VER</literal> (which is in
+ <filename>include/mysql_version.h</filename>) +3
+ +<literal>test(create_info->varchar)</literal></entry>
+ </row>
+ <row>
+ <entry>0003</entry>
+ <entry>1</entry>
+ <entry>09</entry>
+ <entry>See <literal>enum legacy_db_type</literal> in
+ <filename>sql/handler.h</filename>. e.g. 09 is
+ <literal>DB_TYPE_MYISAM</literal>, but 14 if MyISAM with
+ partitioning.</entry>
+ </row>
+ <row>
+ <entry>0004</entry>
+ <entry>1</entry>
+ <entry>03</entry>
+ </row>
+ <row>
+ <entry>0005</entry>
+ <entry>1</entry>
+ <entry>00</entry>
+ <entry>Always</entry>
+ </row>
+ <row>
+ <entry>0006</entry>
+ <entry>2</entry>
+ <entry>0010</entry>
+ <entry><literal>IO_SIZE</literal></entry>
+ </row>
+ <row>
+ <entry>0008</entry>
+ <entry>2</entry>
+ <entry>0100</entry>
+ </row>
+ <row>
+ <entry>000a</entry>
+ <entry>4</entry>
+ <entry>00300000</entry>
+ <entry>Length, based on <literal>key_length + rec_length +
+ create_info->extra_size</literal></entry>
+ </row>
+ <row>
+ <entry>000e</entry>
+ <entry>2</entry>
+ <entry>1000</entry>
+ <entry>"tmp_key_length", based on <literal>key_length</literal></entry>
+ </row>
+ <row>
+ <entry>0010</entry>
+ <entry>2</entry>
+ <entry>0600</entry>
+ <entry><literal>rec_length</literal></entry>
+ </row>
+ <row>
+ <entry>0012</entry>
+ <entry>4</entry>
+ <entry>00000000</entry>
+ <entry><literal>create_info->max_rows</literal></entry>
+ </row>
+ <row>
+ <entry>0016</entry>
+ <entry>4</entry>
+ <entry>00000000</entry>
+ <entry><literal>create_info->min_rows</literal></entry>
+ </row>
+ <row>
+ <entry>001b</entry>
+ <entry>1</entry>
+ <entry>02</entry>
+ <entry>Always (means "use long pack-fields")</entry>
+ </row>
+ <row>
+ <entry>001c</entry>
+ <entry>2</entry>
+ <entry>0800</entry>
+ <entry><literal>key_info_length</literal></entry>
+ </row>
+ <row>
+ <entry>001e</entry>
+ <entry>2</entry>
+ <entry>0800</entry>
+ <entry><literal>create_info->table_options</literal> — also known as
+ <literal>db_create_options?</literal> one possible option
+ is <literal>HA_LONG_BLOB_PTR</literal></entry>
+ </row>
+ <row>
+ <entry>0020</entry>
+ <entry>1</entry>
+ <entry>00</entry>
+ <entry>always</entry>
+ </row>
+ <row>
+ <entry>0021</entry>
+ <entry>1</entry>
+ <entry>05</entry>
+ <entry>Always (means "version 5 frm file")</entry>
+ </row>
+ <row>
+ <entry>0022</entry>
+ <entry>4</entry>
+ <entry>00000000</entry>
+ <entry><literal>create_info->avg_row_length</literal></entry>
+ </row>
+ <row>
+ <entry>0026</entry>
+ <entry>1</entry>
+ <entry>08</entry>
+ <entry><literal>create_info->default_table_charset</literal></entry>
+ </row>
+ <row>
+ <entry>0027</entry>
+ <entry>1</entry>
+ <entry>00</entry>
+ <entry>Always</entry>
+ </row>
+ <row>
+ <entry>0028</entry>
+ <entry>1</entry>
+ <entry>00</entry>
+ <entry><literal>create_info->row_type</literal></entry>
+ </row>
+ <row>
+ <entry>0029</entry>
+ <entry>6</entry>
+ <entry>00..00</entry>
+ <entry>Always (formerly used for RAID support)</entry>
+ </row>
+ <row>
+ <entry>002f</entry>
+ <entry>4</entry>
+ <entry>10000000</entry>
+ <entry><literal>key_length</literal></entry>
+ </row>
+ <row>
+ <entry>0033</entry>
+ <entry>4</entry>
+ <entry>c0c30000</entry>
+ <entry><literal>MYSQL_VERSION_ID</literal> from
+ <filename>include/mysql_version.h</filename></entry>
+ </row>
+ <row>
+ <entry>0037</entry>
+ <entry>4</entry>
+ <entry>10000000</entry>
+ <entry><literal><literal>create_info->extra_size</literal></literal></entry>
+ </row>
+ <row>
+ <entry>003b</entry>
+ <entry>2</entry>
+ <entry>0000</entry>
+ <entry>Reserved for <literal>extra_rec_buf_length</literal></entry>
+ </row>
+ <row>
+ <entry>003d</entry>
+ <entry>1</entry>
+ <entry>00</entry>
+ <entry>Reserved for <literal>default_part_db_type</literal>, but 09 if MyISAM
+ with partitioning</entry>
+ </row>
+ <row>
+ <entry>003e</entry>
+ <entry>2</entry>
+ <entry>0000</entry>
+ <entry><literal>create_info->key_block_size</literal></entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">key_info</emphasis></entry>
+ </row>
+ <row>
+ <entry>1000</entry>
+ <entry>1</entry>
+ <entry>00</entry>
+ <entry>Always 00 when there are no keys i.e. indexes</entry>
+ </row>
+ <row>
+ <entry>...</entry>
+ </row>
+ <row>
+ <entry>101a</entry>
+ <entry>6</entry>
+ <entry>"MyISAM"</entry>
+ <entry>Name of engine. If partitioning, the partition clauses are here</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">comment</emphasis></entry>
+ </row>
+ <row>
+ <entry>202e</entry>
+ <entry>1</entry>
+ <entry>01</entry>
+ <entry>Length of comment</entry>
+ </row>
+ <row>
+ <entry>202f</entry>
+ <entry>40</entry>
+ <entry>"*"</entry>
+ <entry>The string in the COMMENT clause</entry>
+ </row>
+ <row>
+ <entry><emphasis role="bold">columns</emphasis></entry>
+ </row>
+ <row>
+ <entry>2100</entry>
+ <entry>2</entry>
+ <entry>01</entry>
+ <entry>Always</entry>
+ </row>
+ <row>
+ <entry>2102</entry>
+ <entry>2</entry>
+ <entry>0100</entry>
+ <entry><literal>share->fields</literal> (number of columns)</entry>
+ </row>
+ <row>
+ <entry>2104</entry>
+ <entry>2</entry>
+ <entry>3b00</entry>
+ <entry><literal>pos</literal> ("length of all screens"). Goes up if
+ <literal>column-name</literal> length increases. Doesn't
+ go up if add comment.</entry>
+ </row>
+ <row>
+ <entry>2106</entry>
+ <entry>2</entry>
+ <entry>0500</entry>
+ <entry>Based on number of bytes in row.</entry>
+ </row>
+ <row>
+ <entry>210c</entry>
+ <entry>2</entry>
+ <entry>0500</entry>
+ <entry><literal>n_length</literal>. Goes up if row length increases</entry>
+ </row>
+ <row>
+ <entry>210e</entry>
+ <entry>2</entry>
+ <entry>0000</entry>
+ <entry><literal>interval_count</literal>. Number of different enum/set columns</entry>
+ </row>
+ <row>
+ <entry>2110</entry>
+ <entry>2</entry>
+ <entry>0000</entry>
+ <entry><literal>interval_parts</literal>. Number of different strings in
+ enum/set columns</entry>
+ </row>
+ <row>
+ <entry>2112</entry>
+ <entry>2</entry>
+ <entry>0000</entry>
+ <entry><literal>int_length</literal></entry>
+ </row>
+ <row>
+ <entry>211a</entry>
+ <entry>2</entry>
+ <entry>0100</entry>
+ <entry><literal>share->null_fields</literal>. Number of nullable columns</entry>
+ </row>
+ <row>
+ <entry>211c</entry>
+ <entry>2</entry>
+ <entry>0000</entry>
+ <entry><literal>com_length</literal></entry>
+ </row>
+ <row>
+ <entry>2152</entry>
+ <entry>1</entry>
+ <entry>08</entry>
+ <entry>Length of column-name including '\0' termination</entry>
+ </row>
+ <row>
+ <entry>2153</entry>
+ <entry>3</entry>
+ <entry>"column1\0"</entry>
+ <entry>column-name</entry>
+ </row>
+ <row>
+ <entry>215b</entry>
+ <entry>1</entry>
+ <entry>04</entry>
+ </row>
+ <row>
+ <entry>215c</entry>
+ <entry>1</entry>
+ <entry>03</entry>
+ </row>
+ <row>
+ <entry>215d</entry>
+ <entry>1</entry>
+ <entry>05</entry>
+ <entry>Number of bytes in column</entry>
+ </row>
+ <row>
+ <entry>215e</entry>
+ <entry>1</entry>
+ <entry>05</entry>
+ <entry>Number of bytes in column</entry>
+ </row>
+ <row>
+ <entry>215f</entry>
+ <entry>4</entry>
+ <entry>00020000</entry>
+ </row>
+ <row>
+ <entry>2163</entry>
+ <entry>1</entry>
+ <entry>00</entry>
+ <entry>Flags for zerofill, unsigned, etc.</entry>
+ </row>
+ <row>
+ <entry>2164</entry>
+ <entry>1</entry>
+ <entry>80</entry>
+ <entry>Additional flags, and scale if decimal/numeric</entry>
+ </row>
+ <row>
+ <entry>2168</entry>
+ <entry>1</entry>
+ <entry>fe</entry>
+ <entry>Data type (fe=<literal>char</literal>, 02=<literal>smallint</literal>,
+ 03=<literal>int</literal>, etc.) see <literal>enum
+ field_types</literal> in
+ <filename>include/mysql_com.h</filename></entry>
+ </row>
+ <row>
+ <entry>2169</entry>
+ <entry>1</entry>
+ <entry>08</entry>
+ <entry>Character set or geometry type</entry>
+ </row>
+ <row>
+ <entry>(later)</entry>
+ <entry></entry>
+ <entry></entry>
+ <entry>Column names again, defaults, enum/set strings, column comments ... at
+ end of row. not shown.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ The <literal>.frm</literal> file for a partitioned table contains
+ partition informatin, in clear text, in addition to the usual
+ table definition details. Let's create a partitioned table and do
+ a hexadecimal dump of its <literal>.frm</literal>.
+ </para>
+
+<programlisting>mysql> CREATE TABLE table2 (column1 INT) ENGINE=MYISAM COMMENT '*'
+ PARTITION BY HASH(column1) PARTITIONS 2;
+Query OK, 0 rows affected (0.00 sec)
+</programlisting>
+
+ <para>
+ The hexadecimal dump from <literal>table2</literal> is shown
+ below:
+ </para>
+
+<programlisting>00000000 fe 01 09 14 03 00 00 10 01 00 00 30 00 00 10 00 |...........0....|
+00000010 05 00 00 00 00 00 00 00 00 00 00 02 08 00 08 00 |................|
+00000020 00 05 00 00 00 00 08 00 00 00 00 00 00 00 00 10 |................|
+00000030 00 00 00 c0 c3 00 00 3d 00 00 00 00 00 09 00 00 |.......=........|
+00000040 2f 2f 00 00 20 00 00 00 00 00 00 00 00 00 00 00 |//.. ...........|
+00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
+...
+00001000 00 00 00 00 02 00 ff 00 00 00 00 00 00 00 00 00 |................|
+00001010 ff 00 00 00 00 00 00 09 00 70 61 72 74 69 74 69 |.........partiti|
+00001020 6f 6e 2a 00 00 00 20 50 41 52 54 49 54 49 4f 4e |on*... PARTITION|
+00001030 20 42 59 20 48 41 53 48 20 28 63 6f 6c 75 6d 6e | BY HASH (column|
+00001040 31 29 20 50 41 52 54 49 54 49 4f 4e 53 20 32 20 |1) PARTITIONS 2 |
+00001050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
+...
+00002000 76 01 00 10 00 00 00 00 00 00 00 00 00 00 00 00 |v...............|
+00002010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
+00002020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 2a |...............*|
+00002030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
+...
+00002100 01 00 01 00 3b 00 0b 00 00 00 05 00 0a 00 00 00 |....;...........|
+00002110 00 00 00 00 00 00 50 00 16 00 01 00 00 00 00 00 |......P.........|
+00002120 3b 00 02 01 02 14 29 20 20 20 20 20 20 20 20 20 |;.....) |
+00002130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
+00002140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 | .|
+00002150 04 00 08 63 6f 6c 75 6d 6e 31 00 04 08 0b 0b 00 |...column1......|
+00002160 02 00 00 1b 80 00 00 00 03 08 00 00 ff 63 6f 6c |.............col|
+00002170 75 6d 6e 31 ff 00 |umn1..|
+00002176</programlisting>
+
+ <para>
+ In the example output, notice that position 00001010 and following
+ contains the clear text of the <literal>CREATE TABLE ...
+ PARTITION</literal> clause and not just the
+ <literal>MYISAM</literal> engine information, as in
+ <literal>table1</literal>, which shows the <literal>.frm</literal>
+ of a non-partitioned table.
+ </para>
+
+ <para>
+ Finally, <literal>CREATE VIEW</literal> also causes creation of a
+ <literal>.frm</literal> file, but a view <literal>.frm</literal>
+ bears no resemblance to a base table <literal>.frm</literal>; it's
+ purely textual. Here's an example of a <literal>.frm</literal> for
+ a view made with:
+ </para>
+
+<programlisting>mysql> CREATE VIEW v AS SELECT 5";
+Query OK, 0 rows affected (0.00 sec)</programlisting>
+
+ <para>
+ Just looking at the text will tell you what it's about. For
+ example let's do another hexadecimal dump; the contents are shown
+ below.
+ </para>
+
+<programlisting>
+linux:/usr/local/mysql/var/d # hexdump -v -C v.frm
+
+00000000 54 59 50 45 3d 56 49 45 57 0a 71 75 65 72 79 3d |TYPE=VIEW.query=|
+00000010 73 65 6c 65 63 74 20 35 20 41 53 20 60 35 60 0a |select 5 AS `5`.|
+00000020 6d 64 35 3d 38 64 39 65 32 62 62 66 64 35 33 35 |md5=8d9e2bbfd535|
+00000030 66 35 37 39 64 34 61 39 34 39 62 39 65 62 37 64 |f579d4a949b9eb7d|
+00000040 32 33 34 39 0a 75 70 64 61 74 61 62 6c 65 3d 30 |2349.updatable=0|
+00000050 0a 61 6c 67 6f 72 69 74 68 6d 3d 30 0a 64 65 66 |.algorithm=0.def|
+00000060 69 6e 65 72 5f 75 73 65 72 3d 72 6f 6f 74 0a 64 |iner_user=root.d|
+00000070 65 66 69 6e 65 72 5f 68 6f 73 74 3d 6c 6f 63 61 |efiner_host=loca|
+00000080 6c 68 6f 73 74 0a 73 75 69 64 3d 32 0a 77 69 74 |lhost.suid=2.wit|
+00000090 68 5f 63 68 65 63 6b 5f 6f 70 74 69 6f 6e 3d 30 |h_check_option=0|
+000000a0 0a 72 65 76 69 73 69 6f 6e 3d 31 0a 74 69 6d 65 |.revision=1.time|
+000000b0 73 74 61 6d 70 3d 32 30 30 36 2d 30 39 2d 32 32 |stamp=2006-09-22|
+000000c0 20 31 32 3a 31 34 3a 34 38 0a 63 72 65 61 74 65 | 12:14:48.create|
+000000d0 2d 76 65 72 73 69 6f 6e 3d 31 0a 73 6f 75 72 63 |-version=1.sourc|
+000000e0 65 3d 73 65 6c 65 63 74 20 35 0a |e=select 5.|
+</programlisting>
+
+ </section>
+
+</chapter>
Modified: trunk/internals/internals.xml
===================================================================
--- trunk/internals/internals.xml 2006-11-10 12:02:17 UTC (rev 3903)
+++ trunk/internals/internals.xml 2006-11-10 13:55:46 UTC (rev 3904)
Changed blocks: 1, Lines Added: 2, Lines Deleted: 0; 590 bytes
@@ -77,6 +77,8 @@
<xi:include href="algorithms.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ <xi:include href="fileformats.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
<xi:include href="selects.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
<xi:include href="transformations.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
| Thread |
|---|
| • svn commit - mysqldoc@docsrva: r3904 - trunk/internals | mcbrown | 10 Nov |