List:Commits« Previous MessageNext Message »
From:mcbrown Date:November 10 2006 1:55pm
Subject:svn commit - mysqldoc@docsrva: r3904 - trunk/internals
View as plain text  
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&gt; 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&gt; 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&gt; 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&gt; su root
+shell&gt; cd /usr/local/mysql/var/ff
+shell&gt; ls table1.*</programlisting>
+
+    <para>
+      You'll see a response like the following:
+    </para>
+
+<programlisting>shell&gt; su root
+shell&gt; cd /usr/local/mysql/var/ff
+shell&gt; ls table1.*
+  table1.frm  table1.MYD  table1.MYI
+shell&gt; 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&gt; 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> &mdash; 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&gt; 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&gt; 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/internalsmcbrown10 Nov