Below is the list of changes that have just been committed into a local
mysqldoc repository of paul. When paul does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://www.mysql.com/doc/I/n/Installing_source_tree.html
ChangeSet
1.3509 05/09/08 12:33:40 paul@stripped +4 -0
InnoDB now rolls back just the last statement
on a lock wait timeout, not the entire transaction.
refman/innodb.xml
1.36 05/09/08 12:33:38 paul@stripped +19 -31
InnoDB now rolls back just the last statement
on a lock wait timeout, not the entire transaction.
refman-5.1/innodb.xml
1.23 05/09/08 12:33:38 paul@stripped +76 -89
Sync.
refman-5.0/innodb.xml
1.23 05/09/08 12:33:38 paul@stripped +76 -89
Sync.
refman-4.1/innodb.xml
1.30 05/09/08 12:33:38 paul@stripped +17 -37
Sync.
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: paul
# Host: kite-hub.kitebird.com
# Root: /src/extern/MySQL/bk/mysqldoc
--- 1.22/refman-5.1/innodb.xml 2005-09-06 16:15:55 -05:00
+++ 1.23/refman-5.1/innodb.xml 2005-09-08 12:33:38 -05:00
@@ -89,9 +89,10 @@
</para>
<para>
- In MySQL ¤t-series;, <literal>InnoDB</literal> is included in binary
- distributions by default. The Windows Essentials installer makes
- <literal>InnoDB</literal> the MySQL default table type on Windows.
+ In MySQL ¤t-series;, <literal>InnoDB</literal> is included
+ in binary distributions by default. The Windows Essentials
+ installer makes <literal>InnoDB</literal> the MySQL default table
+ type on Windows.
</para>
<para>
@@ -148,8 +149,8 @@
<title id="title-innodb-configuration">&title-innodb-configuration;</title>
<para>
- In MySQL ¤t-series;, the <literal>InnoDB</literal> storage engine is
- enabled by default. If you don't want to use
+ In MySQL ¤t-series;, the <literal>InnoDB</literal> storage
+ engine is enabled by default. If you don't want to use
<literal>InnoDB</literal> tables, you can add the
<literal>skip-innodb</literal> option to your MySQL option file.
</para>
@@ -162,8 +163,8 @@
<para>
If you specify no <literal>InnoDB</literal> configuration options,
- MySQL ¤t-series; creates an auto-extending 10MB data file named
- <filename>ibdata1</filename> and two 5MB log files named
+ MySQL ¤t-series; creates an auto-extending 10MB data file
+ named <filename>ibdata1</filename> and two 5MB log files named
<filename>ib_logfile0</filename> and
<filename>ib_logfile1</filename> in the MySQL data directory.
</para>
@@ -665,7 +666,8 @@
<para>
This section describes the <literal>InnoDB</literal>-related
- server options. In MySQL ¤t-series;, all of them can be specified in
+ server options. In MySQL ¤t-series;, all of them can be
+ specified in
<option>--<replaceable>opt_name</replaceable>=<replaceable>value</replaceable></option>
form on the command line or in option files.
</para>
@@ -1007,11 +1009,9 @@
<para>
Normally <literal>InnoDB</literal> uses an algorithm called
-
- <firstterm>next-key locking</firstterm>
-
- . <literal>InnoDB</literal> performs row-level locking in such
- a way that when it searches or scans a table index, it sets
+ <firstterm>next-key locking</firstterm> .
+ <literal>InnoDB</literal> performs row-level locking in such a
+ way that when it searches or scans a table index, it sets
shared or exclusive locks on any index records it encounters.
Thus the row-level locks are actually index record locks. The
locks that <literal>InnoDB</literal> sets on index records
@@ -1984,10 +1984,10 @@
the parent table and automatically delete or update the
matching rows in the child table. Both <literal>ON DELETE
CASCADE</literal> and <literal>ON UPDATE CASCADE</literal>
- are available in MySQL ¤t-series;. Between two tables, you should
- not define several <literal>ON UPDATE CASCADE</literal>
- clauses that act on the same column in the parent table or
- in the child table.
+ are available in MySQL ¤t-series;. Between two tables,
+ you should not define several <literal>ON UPDATE
+ CASCADE</literal> clauses that act on the same column in the
+ parent table or in the child table.
</para>
</listitem>
@@ -1997,9 +1997,9 @@
the parent table and set the foreign key column(s) in the
child table to <literal>NULL</literal>. This is only valid
if the foreign key columns do not have the <literal>NOT
- NULL</literal> qualifier specified. MySQL ¤t-series; supports both
- <literal>ON DELETE SET NULL</literal> and <literal>ON UPDATE
- SET NULL</literal> clauses.
+ NULL</literal> qualifier specified. MySQL ¤t-series;
+ supports both <literal>ON DELETE SET NULL</literal> and
+ <literal>ON UPDATE SET NULL</literal> clauses.
</para>
</listitem>
@@ -2062,10 +2062,10 @@
<para>
<literal>InnoDB</literal> needs indexes on foreign keys and
referenced keys so that foreign key checks can be fast and not
- require a table scan. In MySQL ¤t-series;, the index on the foreign key
- is created automatically. This is in contrast to older versions
- (prior to 4.1.8), where indexes must be created explicitly or
- the creation of foreign key constraints fails.
+ require a table scan. In MySQL ¤t-series;, the index on
+ the foreign key is created automatically. This is in contrast to
+ older versions (prior to 4.1.8), where indexes must be created
+ explicitly or the creation of foreign key constraints fails.
</para>
<para>
@@ -2087,8 +2087,8 @@
a foreign key constraint was not correctly formed. Similarly, if
an <literal>ALTER TABLE</literal> fails and it refers to errno
150, that means a foreign key definition would be incorrectly
- formed for the altered table. In MySQL ¤t-series;, you can use
- <literal>SHOW INNODB STATUS</literal> to display a detailed
+ formed for the altered table. In MySQL ¤t-series;, you can
+ use <literal>SHOW INNODB STATUS</literal> to display a detailed
explanation of the most recent <literal>InnoDB</literal> foreign
key error in the server.
</para>
@@ -2128,8 +2128,8 @@
prevent infinite loops resulting from cascaded updates. A
self-referential <literal>ON DELETE SET NULL</literal>, on the
other hand, is possible, as is a self-referential <literal>ON
- DELETE CASCADE</literal>. In MySQL ¤t-series;, cascading operations may
- not be nested more than 15 levels deep.
+ DELETE CASCADE</literal>. In MySQL ¤t-series;, cascading
+ operations may not be nested more than 15 levels deep.
</para>
<para>
@@ -2473,10 +2473,10 @@
<title id="title-multiple-tablespaces">&title-multiple-tablespaces;</title>
<para>
- In MySQL ¤t-series;, you can store each <literal>InnoDB</literal> table
- and its indexes in its own file. This feature is called
- <quote>multiple tablespaces</quote> because in effect each table
- has its own tablespace.
+ In MySQL ¤t-series;, you can store each
+ <literal>InnoDB</literal> table and its indexes in its own file.
+ This feature is called <quote>multiple tablespaces</quote>
+ because in effect each table has its own tablespace.
</para>
<para>
@@ -3490,10 +3490,10 @@
<para>
In terms of the SQL:1992 transaction isolation levels, the
<literal>InnoDB</literal> default is <literal>REPEATABLE
- READ</literal>. In MySQL ¤t-series;, <literal>InnoDB</literal> offers
- all four transaction isolation levels described by the SQL
- standard. You can set the default isolation level for all
- connections by using the
+ READ</literal>. In MySQL ¤t-series;,
+ <literal>InnoDB</literal> offers all four transaction isolation
+ levels described by the SQL standard. You can set the default
+ isolation level for all connections by using the
<option>--transaction-isolation</option> option on the command
line or in option files. For example, you can set the option in
the <literal>[mysqld]</literal> section of
@@ -3905,12 +3905,8 @@
</para>
<para>
- This is called
-
- <firstterm>multi-versioned concurrency
- control</firstterm>
-
- .
+ This is called <firstterm>multi-versioned concurrency
+ control</firstterm> .
</para>
<remark role="todo">
@@ -4046,9 +4042,10 @@
</para>
<para>
- In MySQL ¤t-series;, <literal>InnoDB</literal> fetches the value of
- a previously initialized <literal>AUTO_INCREMENT</literal>
- column without setting any locks.
+ In MySQL ¤t-series;, <literal>InnoDB</literal> fetches
+ the value of a previously initialized
+ <literal>AUTO_INCREMENT</literal> column without setting any
+ locks.
</para>
</listitem>
@@ -4373,8 +4370,8 @@
<listitem>
<para>
In applications using MySQL's <literal>LOCK TABLES</literal>
- command, MySQL ¤t-series; does not set InnoDB table locks if
- <literal>AUTOCOMMIT=1</literal>.
+ command, MySQL ¤t-series; does not set InnoDB table
+ locks if <literal>AUTOCOMMIT=1</literal>.
</para>
</listitem>
@@ -4460,9 +4457,9 @@
<para>
When using <literal>row_format=compact</literal> (the default
- InnoDB record format in MySQL ¤t-series;) and variable-length
- character sets, such as <literal>utf8</literal> or
- <literal>sjis</literal>,
+ InnoDB record format in MySQL ¤t-series;) and
+ variable-length character sets, such as
+ <literal>utf8</literal> or <literal>sjis</literal>,
<literal>CHAR(<replaceable>N</replaceable>)</literal> will
occupy a variable amount of space, at least
<replaceable>N</replaceable> bytes.
@@ -5001,11 +4998,8 @@
Because <literal>InnoDB</literal> is a multi-versioned database,
it must keep information about old versions of rows in the
tablespace. This information is stored in a data structure called
- a
-
- <firstterm>rollback segment</firstterm>
-
- (after an analogous data structure in Oracle).
+ a <firstterm>rollback segment</firstterm> (after an analogous data
+ structure in Oracle).
</para>
<para>
@@ -5101,13 +5095,9 @@
<para>
Every <literal>InnoDB</literal> table has a special index called
- the
-
- <firstterm>clustered index</firstterm>
-
- where the data for the rows is stored. If you define a
- <literal>PRIMARY KEY</literal> on your table, the index of the
- primary key is the clustered index.
+ the <firstterm>clustered index</firstterm> where the data for the
+ rows is stored. If you define a <literal>PRIMARY KEY</literal> on
+ your table, the index of the primary key is the clustered index.
</para>
<para>
@@ -5391,14 +5381,10 @@
<para>
<literal>InnoDB</literal> uses a novel file flush technique
- called
-
- <firstterm>doublewrite</firstterm>
-
- . It adds safety to recovery following an operating system crash
- or a power outage, and improves performance on most varieties of
- Unix by reducing the need for <literal>fsync()</literal>
- operations.
+ called <firstterm>doublewrite</firstterm> . It adds safety to
+ recovery following an operating system crash or a power outage,
+ and improves performance on most varieties of Unix by reducing
+ the need for <literal>fsync()</literal> operations.
</para>
<para>
@@ -5420,10 +5406,10 @@
<title id="title-innodb-raw-devices">&title-innodb-raw-devices;</title>
<para>
- In MySQL ¤t-series;, you can also use raw disk partitions as tablespace
- data files. By using a raw disk, you can perform non-buffered
- I/O on Windows and on some Unix systems without filesystem
- overhead, which may improve performance.
+ In MySQL ¤t-series;, you can also use raw disk partitions
+ as tablespace data files. By using a raw disk, you can perform
+ non-buffered I/O on Windows and on some Unix systems without
+ filesystem overhead, which may improve performance.
</para>
<para>
@@ -5512,12 +5498,9 @@
The tablespace consists of database pages with a default size of
16KB. The pages are grouped into extents of 64 consecutive
pages. The <quote>files</quote> inside a tablespace are called
-
- <firstterm>segments</firstterm>
-
- in <literal>InnoDB</literal>. The term <quote>rollback
- segment</quote> is somewhat confusing because it actually
- contains many tablespace segments.
+ <firstterm>segments</firstterm> in <literal>InnoDB</literal>.
+ The term <quote>rollback segment</quote> is somewhat confusing
+ because it actually contains many tablespace segments.
</para>
<para>
@@ -5657,8 +5640,12 @@
<listitem>
<para>
- A transaction deadlock or a timeout in a lock wait causes
- <literal>InnoDB</literal> to roll back the whole transaction.
+ A transaction deadlock causes <literal>InnoDB</literal> to
+ roll back the entire transaction. In the case of a lock wait
+ timeout, <literal>InnoDB</literal> also rolls back the entire
+ transaction before MySQL 5.0.13; as of 5.0.13,
+ <literal>InnoDB</literal> rolls back only the most recent SQL
+ statement.
</para>
</listitem>
@@ -6786,8 +6773,8 @@
<listitem>
<para>
- In MySQL ¤t-series;, the MySQL <literal>LOCK TABLES</literal>
- operation acquires two locks on each table if
+ In MySQL ¤t-series;, the MySQL <literal>LOCK
+ TABLES</literal> operation acquires two locks on each table if
<literal>innodb_table_locks=1</literal>, with 1 being the
default.) In addition to a table lock on the MySQL layer, it
also acquires an <literal>InnoDB</literal> table lock. Older
@@ -6848,8 +6835,8 @@
<listitem>
<para>
- In MySQL ¤t-series;, triggers are not activated by cascaded
- foreign key actions.
+ In MySQL ¤t-series;, triggers are not activated by
+ cascaded foreign key actions.
</para>
</listitem>
@@ -6997,9 +6984,9 @@
temporary table inside the <literal>InnoDB</literal> tablespace.
Using <literal>innodb_table_monitor</literal> you can see listed
a table whose name is <filename>#sql-...</filename>. In MySQL
- ¤t-series;, you can perform SQL statements on tables whose name
- contains the character ‘<literal>#</literal>’ if you
- enclose the name in backticks. Thus, you can drop such an
+ ¤t-series;, you can perform SQL statements on tables whose
+ name contains the character ‘<literal>#</literal>’
+ if you enclose the name in backticks. Thus, you can drop such an
orphaned table like any other orphaned table using the method
described above. Note that to copy or rename a file in the Unix
shell, you need to put the file name in double quotes if the
--- 1.29/refman-4.1/innodb.xml 2005-09-06 16:15:47 -05:00
+++ 1.30/refman-4.1/innodb.xml 2005-09-08 12:33:38 -05:00
@@ -1074,11 +1074,9 @@
<para>
Normally <literal>InnoDB</literal> uses an algorithm called
-
- <firstterm>next-key locking</firstterm>
-
- . <literal>InnoDB</literal> performs row-level locking in such
- a way that when it searches or scans a table index, it sets
+ <firstterm>next-key locking</firstterm> .
+ <literal>InnoDB</literal> performs row-level locking in such a
+ way that when it searches or scans a table index, it sets
shared or exclusive locks on any index records it encounters.
Thus the row-level locks are actually index record locks. The
locks that <literal>InnoDB</literal> sets on index records
@@ -4009,12 +4007,8 @@
</para>
<para>
- This is called
-
- <firstterm>multi-versioned concurrency
- control</firstterm>
-
- .
+ This is called <firstterm>multi-versioned concurrency
+ control</firstterm> .
</para>
<remark role="todo">
@@ -5129,11 +5123,8 @@
Because <literal>InnoDB</literal> is a multi-versioned database,
it must keep information about old versions of rows in the
tablespace. This information is stored in a data structure called
- a
-
- <firstterm>rollback segment</firstterm>
-
- (after an analogous data structure in Oracle).
+ a <firstterm>rollback segment</firstterm> (after an analogous data
+ structure in Oracle).
</para>
<para>
@@ -5231,13 +5222,9 @@
<para>
Every <literal>InnoDB</literal> table has a special index called
- the
-
- <firstterm>clustered index</firstterm>
-
- where the data for the rows is stored. If you define a
- <literal>PRIMARY KEY</literal> on your table, the index of the
- primary key is the clustered index.
+ the <firstterm>clustered index</firstterm> where the data for the
+ rows is stored. If you define a <literal>PRIMARY KEY</literal> on
+ your table, the index of the primary key is the clustered index.
</para>
<para>
@@ -5521,14 +5508,10 @@
<para>
<literal>InnoDB</literal> uses a novel file flush technique
- called
-
- <firstterm>doublewrite</firstterm>
-
- . It adds safety to recovery following an operating system crash
- or a power outage, and improves performance on most varieties of
- Unix by reducing the need for <literal>fsync()</literal>
- operations.
+ called <firstterm>doublewrite</firstterm> . It adds safety to
+ recovery following an operating system crash or a power outage,
+ and improves performance on most varieties of Unix by reducing
+ the need for <literal>fsync()</literal> operations.
</para>
<para>
@@ -5642,12 +5625,9 @@
The tablespace consists of database pages with a default size of
16KB. The pages are grouped into extents of 64 consecutive
pages. The <quote>files</quote> inside a tablespace are called
-
- <firstterm>segments</firstterm>
-
- in <literal>InnoDB</literal>. The term <quote>rollback
- segment</quote> is somewhat confusing because it actually
- contains many tablespace segments.
+ <firstterm>segments</firstterm> in <literal>InnoDB</literal>.
+ The term <quote>rollback segment</quote> is somewhat confusing
+ because it actually contains many tablespace segments.
</para>
<para>
--- 1.35/refman/innodb.xml 2005-09-06 16:13:23 -05:00
+++ 1.36/refman/innodb.xml 2005-09-08 12:33:38 -05:00
@@ -1111,11 +1111,9 @@
<para>
Normally <literal>InnoDB</literal> uses an algorithm called
-
- <firstterm>next-key locking</firstterm>
-
- . <literal>InnoDB</literal> performs row-level locking in such
- a way that when it searches or scans a table index, it sets
+ <firstterm>next-key locking</firstterm> .
+ <literal>InnoDB</literal> performs row-level locking in such a
+ way that when it searches or scans a table index, it sets
shared or exclusive locks on any index records it encounters.
Thus the row-level locks are actually index record locks. The
locks that <literal>InnoDB</literal> sets on index records
@@ -4129,12 +4127,8 @@
</para>
<para>
- This is called
-
- <firstterm>multi-versioned concurrency
- control</firstterm>
-
- .
+ This is called <firstterm>multi-versioned concurrency
+ control</firstterm> .
</para>
<remark role="todo">
@@ -5258,11 +5252,8 @@
Because <literal>InnoDB</literal> is a multi-versioned database,
it must keep information about old versions of rows in the
tablespace. This information is stored in a data structure called
- a
-
- <firstterm>rollback segment</firstterm>
-
- (after an analogous data structure in Oracle).
+ a <firstterm>rollback segment</firstterm> (after an analogous data
+ structure in Oracle).
</para>
<para>
@@ -5360,13 +5351,9 @@
<para>
Every <literal>InnoDB</literal> table has a special index called
- the
-
- <firstterm>clustered index</firstterm>
-
- where the data for the rows is stored. If you define a
- <literal>PRIMARY KEY</literal> on your table, the index of the
- primary key is the clustered index.
+ the <firstterm>clustered index</firstterm> where the data for the
+ rows is stored. If you define a <literal>PRIMARY KEY</literal> on
+ your table, the index of the primary key is the clustered index.
</para>
<para>
@@ -5767,12 +5754,9 @@
The tablespace consists of database pages with a default size of
16KB. The pages are grouped into extents of 64 consecutive
pages. The <quote>files</quote> inside a tablespace are called
-
- <firstterm>segments</firstterm>
-
- in <literal>InnoDB</literal>. The term <quote>rollback
- segment</quote> is somewhat confusing because it actually
- contains many tablespace segments.
+ <firstterm>segments</firstterm> in <literal>InnoDB</literal>.
+ The term <quote>rollback segment</quote> is somewhat confusing
+ because it actually contains many tablespace segments.
</para>
<para>
@@ -5912,8 +5896,12 @@
<listitem>
<para>
- A transaction deadlock or a timeout in a lock wait causes
- <literal>InnoDB</literal> to roll back the whole transaction.
+ A transaction deadlock causes <literal>InnoDB</literal> to
+ roll back the entire transaction. In the case of a lock wait
+ timeout, <literal>InnoDB</literal> also rolls back the entire
+ transaction before MySQL 5.0.13; as of 5.0.13,
+ <literal>InnoDB</literal> rolls back only the most recent SQL
+ statement.
</para>
</listitem>
--- 1.22/refman-5.0/innodb.xml 2005-09-06 16:15:52 -05:00
+++ 1.23/refman-5.0/innodb.xml 2005-09-08 12:33:38 -05:00
@@ -89,9 +89,10 @@
</para>
<para>
- In MySQL ¤t-series;, <literal>InnoDB</literal> is included in binary
- distributions by default. The Windows Essentials installer makes
- <literal>InnoDB</literal> the MySQL default table type on Windows.
+ In MySQL ¤t-series;, <literal>InnoDB</literal> is included
+ in binary distributions by default. The Windows Essentials
+ installer makes <literal>InnoDB</literal> the MySQL default table
+ type on Windows.
</para>
<para>
@@ -148,8 +149,8 @@
<title id="title-innodb-configuration">&title-innodb-configuration;</title>
<para>
- In MySQL ¤t-series;, the <literal>InnoDB</literal> storage engine is
- enabled by default. If you don't want to use
+ In MySQL ¤t-series;, the <literal>InnoDB</literal> storage
+ engine is enabled by default. If you don't want to use
<literal>InnoDB</literal> tables, you can add the
<literal>skip-innodb</literal> option to your MySQL option file.
</para>
@@ -162,8 +163,8 @@
<para>
If you specify no <literal>InnoDB</literal> configuration options,
- MySQL ¤t-series; creates an auto-extending 10MB data file named
- <filename>ibdata1</filename> and two 5MB log files named
+ MySQL ¤t-series; creates an auto-extending 10MB data file
+ named <filename>ibdata1</filename> and two 5MB log files named
<filename>ib_logfile0</filename> and
<filename>ib_logfile1</filename> in the MySQL data directory.
</para>
@@ -665,7 +666,8 @@
<para>
This section describes the <literal>InnoDB</literal>-related
- server options. In MySQL ¤t-series;, all of them can be specified in
+ server options. In MySQL ¤t-series;, all of them can be
+ specified in
<option>--<replaceable>opt_name</replaceable>=<replaceable>value</replaceable></option>
form on the command line or in option files.
</para>
@@ -1007,11 +1009,9 @@
<para>
Normally <literal>InnoDB</literal> uses an algorithm called
-
- <firstterm>next-key locking</firstterm>
-
- . <literal>InnoDB</literal> performs row-level locking in such
- a way that when it searches or scans a table index, it sets
+ <firstterm>next-key locking</firstterm> .
+ <literal>InnoDB</literal> performs row-level locking in such a
+ way that when it searches or scans a table index, it sets
shared or exclusive locks on any index records it encounters.
Thus the row-level locks are actually index record locks. The
locks that <literal>InnoDB</literal> sets on index records
@@ -1984,10 +1984,10 @@
the parent table and automatically delete or update the
matching rows in the child table. Both <literal>ON DELETE
CASCADE</literal> and <literal>ON UPDATE CASCADE</literal>
- are available in MySQL ¤t-series;. Between two tables, you should
- not define several <literal>ON UPDATE CASCADE</literal>
- clauses that act on the same column in the parent table or
- in the child table.
+ are available in MySQL ¤t-series;. Between two tables,
+ you should not define several <literal>ON UPDATE
+ CASCADE</literal> clauses that act on the same column in the
+ parent table or in the child table.
</para>
</listitem>
@@ -1997,9 +1997,9 @@
the parent table and set the foreign key column(s) in the
child table to <literal>NULL</literal>. This is only valid
if the foreign key columns do not have the <literal>NOT
- NULL</literal> qualifier specified. MySQL ¤t-series; supports both
- <literal>ON DELETE SET NULL</literal> and <literal>ON UPDATE
- SET NULL</literal> clauses.
+ NULL</literal> qualifier specified. MySQL ¤t-series;
+ supports both <literal>ON DELETE SET NULL</literal> and
+ <literal>ON UPDATE SET NULL</literal> clauses.
</para>
</listitem>
@@ -2062,10 +2062,10 @@
<para>
<literal>InnoDB</literal> needs indexes on foreign keys and
referenced keys so that foreign key checks can be fast and not
- require a table scan. In MySQL ¤t-series;, the index on the foreign key
- is created automatically. This is in contrast to older versions
- (prior to 4.1.8), where indexes must be created explicitly or
- the creation of foreign key constraints fails.
+ require a table scan. In MySQL ¤t-series;, the index on
+ the foreign key is created automatically. This is in contrast to
+ older versions (prior to 4.1.8), where indexes must be created
+ explicitly or the creation of foreign key constraints fails.
</para>
<para>
@@ -2087,8 +2087,8 @@
a foreign key constraint was not correctly formed. Similarly, if
an <literal>ALTER TABLE</literal> fails and it refers to errno
150, that means a foreign key definition would be incorrectly
- formed for the altered table. In MySQL ¤t-series;, you can use
- <literal>SHOW INNODB STATUS</literal> to display a detailed
+ formed for the altered table. In MySQL ¤t-series;, you can
+ use <literal>SHOW INNODB STATUS</literal> to display a detailed
explanation of the most recent <literal>InnoDB</literal> foreign
key error in the server.
</para>
@@ -2128,8 +2128,8 @@
prevent infinite loops resulting from cascaded updates. A
self-referential <literal>ON DELETE SET NULL</literal>, on the
other hand, is possible, as is a self-referential <literal>ON
- DELETE CASCADE</literal>. In MySQL ¤t-series;, cascading operations may
- not be nested more than 15 levels deep.
+ DELETE CASCADE</literal>. In MySQL ¤t-series;, cascading
+ operations may not be nested more than 15 levels deep.
</para>
<para>
@@ -2473,10 +2473,10 @@
<title id="title-multiple-tablespaces">&title-multiple-tablespaces;</title>
<para>
- In MySQL ¤t-series;, you can store each <literal>InnoDB</literal> table
- and its indexes in its own file. This feature is called
- <quote>multiple tablespaces</quote> because in effect each table
- has its own tablespace.
+ In MySQL ¤t-series;, you can store each
+ <literal>InnoDB</literal> table and its indexes in its own file.
+ This feature is called <quote>multiple tablespaces</quote>
+ because in effect each table has its own tablespace.
</para>
<para>
@@ -3490,10 +3490,10 @@
<para>
In terms of the SQL:1992 transaction isolation levels, the
<literal>InnoDB</literal> default is <literal>REPEATABLE
- READ</literal>. In MySQL ¤t-series;, <literal>InnoDB</literal> offers
- all four transaction isolation levels described by the SQL
- standard. You can set the default isolation level for all
- connections by using the
+ READ</literal>. In MySQL ¤t-series;,
+ <literal>InnoDB</literal> offers all four transaction isolation
+ levels described by the SQL standard. You can set the default
+ isolation level for all connections by using the
<option>--transaction-isolation</option> option on the command
line or in option files. For example, you can set the option in
the <literal>[mysqld]</literal> section of
@@ -3905,12 +3905,8 @@
</para>
<para>
- This is called
-
- <firstterm>multi-versioned concurrency
- control</firstterm>
-
- .
+ This is called <firstterm>multi-versioned concurrency
+ control</firstterm> .
</para>
<remark role="todo">
@@ -4046,9 +4042,10 @@
</para>
<para>
- In MySQL ¤t-series;, <literal>InnoDB</literal> fetches the value of
- a previously initialized <literal>AUTO_INCREMENT</literal>
- column without setting any locks.
+ In MySQL ¤t-series;, <literal>InnoDB</literal> fetches
+ the value of a previously initialized
+ <literal>AUTO_INCREMENT</literal> column without setting any
+ locks.
</para>
</listitem>
@@ -4373,8 +4370,8 @@
<listitem>
<para>
In applications using MySQL's <literal>LOCK TABLES</literal>
- command, MySQL ¤t-series; does not set InnoDB table locks if
- <literal>AUTOCOMMIT=1</literal>.
+ command, MySQL ¤t-series; does not set InnoDB table
+ locks if <literal>AUTOCOMMIT=1</literal>.
</para>
</listitem>
@@ -4460,9 +4457,9 @@
<para>
When using <literal>row_format=compact</literal> (the default
- InnoDB record format in MySQL ¤t-series;) and variable-length
- character sets, such as <literal>utf8</literal> or
- <literal>sjis</literal>,
+ InnoDB record format in MySQL ¤t-series;) and
+ variable-length character sets, such as
+ <literal>utf8</literal> or <literal>sjis</literal>,
<literal>CHAR(<replaceable>N</replaceable>)</literal> will
occupy a variable amount of space, at least
<replaceable>N</replaceable> bytes.
@@ -5001,11 +4998,8 @@
Because <literal>InnoDB</literal> is a multi-versioned database,
it must keep information about old versions of rows in the
tablespace. This information is stored in a data structure called
- a
-
- <firstterm>rollback segment</firstterm>
-
- (after an analogous data structure in Oracle).
+ a <firstterm>rollback segment</firstterm> (after an analogous data
+ structure in Oracle).
</para>
<para>
@@ -5101,13 +5095,9 @@
<para>
Every <literal>InnoDB</literal> table has a special index called
- the
-
- <firstterm>clustered index</firstterm>
-
- where the data for the rows is stored. If you define a
- <literal>PRIMARY KEY</literal> on your table, the index of the
- primary key is the clustered index.
+ the <firstterm>clustered index</firstterm> where the data for the
+ rows is stored. If you define a <literal>PRIMARY KEY</literal> on
+ your table, the index of the primary key is the clustered index.
</para>
<para>
@@ -5391,14 +5381,10 @@
<para>
<literal>InnoDB</literal> uses a novel file flush technique
- called
-
- <firstterm>doublewrite</firstterm>
-
- . It adds safety to recovery following an operating system crash
- or a power outage, and improves performance on most varieties of
- Unix by reducing the need for <literal>fsync()</literal>
- operations.
+ called <firstterm>doublewrite</firstterm> . It adds safety to
+ recovery following an operating system crash or a power outage,
+ and improves performance on most varieties of Unix by reducing
+ the need for <literal>fsync()</literal> operations.
</para>
<para>
@@ -5420,10 +5406,10 @@
<title id="title-innodb-raw-devices">&title-innodb-raw-devices;</title>
<para>
- In MySQL ¤t-series;, you can also use raw disk partitions as tablespace
- data files. By using a raw disk, you can perform non-buffered
- I/O on Windows and on some Unix systems without filesystem
- overhead, which may improve performance.
+ In MySQL ¤t-series;, you can also use raw disk partitions
+ as tablespace data files. By using a raw disk, you can perform
+ non-buffered I/O on Windows and on some Unix systems without
+ filesystem overhead, which may improve performance.
</para>
<para>
@@ -5512,12 +5498,9 @@
The tablespace consists of database pages with a default size of
16KB. The pages are grouped into extents of 64 consecutive
pages. The <quote>files</quote> inside a tablespace are called
-
- <firstterm>segments</firstterm>
-
- in <literal>InnoDB</literal>. The term <quote>rollback
- segment</quote> is somewhat confusing because it actually
- contains many tablespace segments.
+ <firstterm>segments</firstterm> in <literal>InnoDB</literal>.
+ The term <quote>rollback segment</quote> is somewhat confusing
+ because it actually contains many tablespace segments.
</para>
<para>
@@ -5657,8 +5640,12 @@
<listitem>
<para>
- A transaction deadlock or a timeout in a lock wait causes
- <literal>InnoDB</literal> to roll back the whole transaction.
+ A transaction deadlock causes <literal>InnoDB</literal> to
+ roll back the entire transaction. In the case of a lock wait
+ timeout, <literal>InnoDB</literal> also rolls back the entire
+ transaction before MySQL 5.0.13; as of 5.0.13,
+ <literal>InnoDB</literal> rolls back only the most recent SQL
+ statement.
</para>
</listitem>
@@ -6786,8 +6773,8 @@
<listitem>
<para>
- In MySQL ¤t-series;, the MySQL <literal>LOCK TABLES</literal>
- operation acquires two locks on each table if
+ In MySQL ¤t-series;, the MySQL <literal>LOCK
+ TABLES</literal> operation acquires two locks on each table if
<literal>innodb_table_locks=1</literal>, with 1 being the
default.) In addition to a table lock on the MySQL layer, it
also acquires an <literal>InnoDB</literal> table lock. Older
@@ -6848,8 +6835,8 @@
<listitem>
<para>
- In MySQL ¤t-series;, triggers are not activated by cascaded
- foreign key actions.
+ In MySQL ¤t-series;, triggers are not activated by
+ cascaded foreign key actions.
</para>
</listitem>
@@ -6997,9 +6984,9 @@
temporary table inside the <literal>InnoDB</literal> tablespace.
Using <literal>innodb_table_monitor</literal> you can see listed
a table whose name is <filename>#sql-...</filename>. In MySQL
- ¤t-series;, you can perform SQL statements on tables whose name
- contains the character ‘<literal>#</literal>’ if you
- enclose the name in backticks. Thus, you can drop such an
+ ¤t-series;, you can perform SQL statements on tables whose
+ name contains the character ‘<literal>#</literal>’
+ if you enclose the name in backticks. Thus, you can drop such an
orphaned table like any other orphaned table using the method
described above. Note that to copy or rename a file in the Unix
shell, you need to put the file name in double quotes if the
| Thread |
|---|
| • bk commit - mysqldoc@docsrva tree (paul:1.3509) | paul | 8 Sep |