List:Commits« Previous MessageNext Message »
From:jon Date:June 24 2008 5:27pm
Subject:svn commit - mysqldoc@docsrva: r11019 - in trunk: dynamic-docs/command-optvars mysqlqb refman-5.0 refman-5.1 refman-6.0
View as plain text  
Author: jstephens
Date: 2008-06-24 19:27:12 +0200 (Tue, 24 Jun 2008)
New Revision: 11019

Log:

Fixing Docs Bug #37088 (Thanks, Paul!):

  Condition pushdown works for MyISAM as well as NDBCLUSTER in 6.0

  Wording and general fixes to descriptions of engine-condition-pushdown
  and condition pushdown optimization

  Moved option description from Cluster chapter to Server chapter

  Made dynamic optvars refer to option rather than variable (harmonised
  with other IDs for server options)

  Updated cross-references and added some new ones

  Updated dependencies



Modified:
   trunk/dynamic-docs/command-optvars/mysqld.xml
   trunk/mysqlqb/Makefile.depends
   trunk/refman-5.0/Makefile.depends
   trunk/refman-5.0/dba-core.xml
   trunk/refman-5.0/mysql-cluster-optvar-core.xml
   trunk/refman-5.0/optimization.xml
   trunk/refman-5.1/Makefile.depends
   trunk/refman-5.1/dba-core.xml
   trunk/refman-5.1/mysql-cluster-optvar-core.xml
   trunk/refman-5.1/optimization.xml
   trunk/refman-6.0/Makefile.depends
   trunk/refman-6.0/dba-core.xml
   trunk/refman-6.0/mysql-cluster-optvar-core.xml
   trunk/refman-6.0/optimization.xml


Modified: trunk/dynamic-docs/command-optvars/mysqld.xml
===================================================================
--- trunk/dynamic-docs/command-optvars/mysqld.xml	2008-06-24 16:43:13 UTC (rev 11018)
+++ trunk/dynamic-docs/command-optvars/mysqld.xml	2008-06-24 17:27:12 UTC (rev 11019)
Changed blocks: 1, Lines Added: 2, Lines Deleted: 2; 604 bytes

@@ -7093,9 +7093,9 @@
 
   </mysqloption>
 
-  <mysqloption section="ndb" id="engine_condition_pushdown">
+  <mysqloption id="engine-condition-pushdown">
 
-    <xrefto id="option_mysqld_engine_condition_pushdown"/>
+    <xrefto id="option_mysqld_engine-condition-pushdown"/>
 
     <name>engine-condition-pushdown</name>
 


Modified: trunk/mysqlqb/Makefile.depends
===================================================================
--- trunk/mysqlqb/Makefile.depends	2008-06-24 16:43:13 UTC (rev 11018)
+++ trunk/mysqlqb/Makefile.depends	2008-06-24 17:27:12 UTC (rev 11019)
Changed blocks: 2, Lines Added: 2, Lines Deleted: 0; 1035 bytes

@@ -30,6 +30,7 @@
 	../refman-5.0/metadata/programs-admin-util-core.idmap \
 	../refman-5.0/metadata/programs-client-core.idmap \
 	../refman-5.0/metadata/programs-installation.idmap \
+	../refman-5.0/metadata/replication-configuration.idmap \
 	../refman-5.0/metadata/replication-implementation.idmap \
 	../refman-5.0/metadata/replication-notes.idmap \
 	../refman-5.0/metadata/restrictions.idmap \

@@ -124,6 +125,7 @@
 	../refman-5.0/metadata/programs-admin-util-core.idmap \
 	../refman-5.0/metadata/programs-client-core.idmap \
 	../refman-5.0/metadata/programs-installation.idmap \
+	../refman-5.0/metadata/replication-configuration.idmap \
 	../refman-5.0/metadata/replication-implementation.idmap \
 	../refman-5.0/metadata/replication-notes.idmap \
 	../refman-5.0/metadata/restrictions.idmap \


Modified: trunk/refman-5.0/Makefile.depends
===================================================================
--- trunk/refman-5.0/Makefile.depends	2008-06-24 16:43:13 UTC (rev 11018)
+++ trunk/refman-5.0/Makefile.depends	2008-06-24 17:27:12 UTC (rev 11019)
Changed blocks: 1, Lines Added: 1, Lines Deleted: 0; 653 bytes

@@ -3169,6 +3169,7 @@
 	../refman-5.0/metadata/programs-admin-util-core.idmap \
 	../refman-5.0/metadata/programs-client-core.idmap \
 	../refman-5.0/metadata/programs-installation.idmap \
+	../refman-5.0/metadata/replication-configuration.idmap \
 	../refman-5.0/metadata/replication-implementation.idmap \
 	../refman-5.0/metadata/replication-notes.idmap \
 	../refman-5.0/metadata/restrictions.idmap \


Modified: trunk/refman-5.0/dba-core.xml
===================================================================
--- trunk/refman-5.0/dba-core.xml	2008-06-24 16:43:13 UTC (rev 11018)
+++ trunk/refman-5.0/dba-core.xml	2008-06-24 17:27:12 UTC (rev 11019)
Changed blocks: 1, Lines Added: 50, Lines Deleted: 0; 2626 bytes

@@ -1010,6 +1010,56 @@
         </listitem>
 
         <listitem>
+          <para id="option_mysqld_engine-condition-pushdown">
+            <literal>--engine-condition-pushdown={ON|OFF}</literal>
+          </para>
+
+          <para condition="dynamic:optvar:item" role="5.0:mysqld:engine-condition-pushdown"/>
+
+          <para>
+            When the value of this option is 0 (<literal>OFF</literal>),
+            a query such as <literal>SELECT * FROM t WHERE mycol =
+            42</literal>, where <literal>mycol</literal> is a
+            non-indexed column, is executed as a full table scan. The
+            storage engine sends every row to the MySQL server, which
+            applies the <literal>WHERE</literal> condition. If
+            <literal>engine_condition_pushdown</literal> is set to 1
+            (<literal>ON</literal>), the condition is <quote>pushed
+            down</quote> to the storage engine, which uses the condition
+            to perform the scan, and sends back to the MySQL server only
+            those rows that match the condition. By default, this
+            variable is <literal>OFF</literal>.
+          </para>
+
+          <para>
+            In MySQL &current-series;, this option is useful only with
+            the <literal>NDBCLUSTER</literal> storage engine. However,
+            we intend to implement it for additional storage engines in
+            future MySQL releases.
+          </para>
+
+          <para>
+            Setting this option to <literal>ON</literal> on a MySQL
+            Server acting as a MySQL Cluster SQL node causes
+            <literal>WHERE</literal> conditions on unindexed columns to
+            be evaluated on the cluster&apos;s data nodes and only the
+            rows that match to be sent back to the SQL node that issued
+            the query. This means the amount of cluster data that must
+            be sent over the network is greatly reduced, increasing the
+            efficiency with which results are returned.
+          </para>
+
+          <para>
+            For more information, see
+            <xref linkend="condition-pushdown-optimization"/>.
+          </para>
+
+          <para>
+            This variable was added in MySQL 5.0.3.
+          </para>
+        </listitem>
+
+        <listitem>
           <para id="option_mysqld_exit-info">
             <indexterm>
               <primary>mysqld</primary>


Modified: trunk/refman-5.0/mysql-cluster-optvar-core.xml
===================================================================
--- trunk/refman-5.0/mysql-cluster-optvar-core.xml	2008-06-24 16:43:13 UTC (rev 11018)
+++ trunk/refman-5.0/mysql-cluster-optvar-core.xml	2008-06-24 17:27:12 UTC (rev 11019)
Changed blocks: 2, Lines Added: 13, Lines Deleted: 44; 2847 bytes

@@ -167,6 +167,19 @@
     <itemizedlist>
 
       <listitem>
+        <para id="option_mysqld_have_ndbcluster">
+          <literal>have_ndbcluster</literal>
+        </para>
+
+        <para>
+          <literal>YES</literal> if <command>mysqld</command> supports
+          <literal>NDBCLUSTER</literal> tables.
+          <literal>DISABLED</literal> if
+          <option>--skip-ndbcluster</option> is used.
+        </para>
+      </listitem>
+
+      <listitem>
         <para id="option_mysqld_multi_range_count">
           <literal>multi_range_count</literal>
         </para>

@@ -190,50 +203,6 @@
       </listitem>
 
       <listitem>
-        <para id="option_mysqld_engine_condition_pushdown">
-          <literal>engine_condition_pushdown</literal>
-        </para>
-
-        <para condition="dynamic:optvar:item" role="5.0:mysqld:engine_condition_pushdown"/>
-
-        <para>
-          This variable applies to <literal>NDB</literal>. When its
-          value is 0 (<literal>OFF</literal>), if you execute a query
-          such as <literal>SELECT * FROM t WHERE mycol = 42</literal>,
-          where <literal>mycol</literal> is a non-indexed column, the
-          query is executed as a full table scan on every NDB node. Each
-          node sends every row to the MySQL server, which applies the
-          <literal>WHERE</literal> condition. If
-          <literal>engine_condition_pushdown</literal> is set to 1
-          (<literal>ON</literal>), the condition is <quote>pushed
-          down</quote> to the storage engine and sent to the NDB nodes.
-          Each node uses the condition to perform the scan, and only
-          sends back to the MySQL server the rows that match the
-          condition. By default, this variable is
-          <literal>OFF</literal>.
-        </para>
-
-        <para>
-          This variable was added in MySQL 5.0.3. Before that, the
-          default <literal>NDB</literal> behavior is the same as for a
-          value of <literal>OFF</literal>.
-        </para>
-      </listitem>
-
-      <listitem>
-        <para id="option_mysqld_have_ndbcluster">
-          <literal>have_ndbcluster</literal>
-        </para>
-
-        <para>
-          <literal>YES</literal> if <command>mysqld</command> supports
-          <literal>NDBCLUSTER</literal> tables.
-          <literal>DISABLED</literal> if
-          <option>--skip-ndbcluster</option> is used.
-        </para>
-      </listitem>
-
-      <listitem>
         <para id="option_mysqld_ndb_autoincrement_prefetch_sz">
           <literal>ndb_autoincrement_prefetch_sz</literal>
         </para>


Modified: trunk/refman-5.0/optimization.xml
===================================================================
--- trunk/refman-5.0/optimization.xml	2008-06-24 16:43:13 UTC (rev 11018)
+++ trunk/refman-5.0/optimization.xml	2008-06-24 17:27:12 UTC (rev 11019)
Changed blocks: 9, Lines Added: 46, Lines Deleted: 44; 7316 bytes

@@ -3160,22 +3160,28 @@
       <title>Condition Pushdown Optimization</title>
 
       <para>
-        This optimization applies to <literal>NDBCLUSTER</literal>
-        tables <emphasis>only</emphasis>. It means that MySQL Cluster is
-        using the Condition Pushdown optimization to improve the
-        efficiency of a direct comparison between a non-indexed column
-        and a constant. In such cases, the condition is <quote>pushed
-        down</quote> to the cluster's data nodes where it is evaluated
-        in all partitions simultaneously. This eliminates the need to
-        send non-matching rows over the network, and can speed up such
-        queries by a factor of 5 to 10 times over cases where Condition
-        Pushdown could be but is not used.
+        This optimization improves the efficiency of a direct comparison
+        between a non-indexed column and a constant. In such cases, the
+        condition is <quote>pushed down</quote> to the storage engine
+        for evaluation. In MySQL &current-series;, this optimzation can
+        be used only by the <literal>NDBCLUSTER</literal> storage
+        engine, but we intend to implement it for additional storage
+        engines in future versions of MySQL.
       </para>
 
       <para>
-        Suppose that you have a Cluster table defined as follows:
+        For MySQL Cluster this optimization can eliminate the need to
+        send non-matching rows over the network between the
+        cluster&apos;s data nodes and the MySQL Server that issued the
+        query, and can speed up queries where it is used by a factor of
+        5 to 10 times over cases where condition pushdown could be but
+        is not used.
       </para>
 
+      <para>
+        Suppose that a MySQL Cluster table is defined as follows:
+      </para>
+
 <programlisting>
 CREATE TABLE t1 (
     a INT, 

@@ -3185,8 +3191,8 @@
 </programlisting>
 
       <para>
-        In this case, Condition Pushdown can be used with a query such
-        as this one:
+        Condition pushdown can be used with a query against this table
+        such as the query shown here:
       </para>
 
 <programlisting>

@@ -3195,7 +3201,7 @@
 
       <para>
         This can be seen in the output of <literal>EXPLAIN
-        SELECT</literal>, as shown here:
+        SELECT</literal>:
       </para>
 
 <programlisting>

@@ -3214,8 +3220,8 @@
 </programlisting>
 
       <para>
-        Condition Pushdown <emphasis>cannot</emphasis> be used with
-        either of these two queries:
+        However, condition pushdown <emphasis>cannot</emphasis> be used
+        with either of these two queries:
       </para>
 
 <programlisting>

@@ -3224,20 +3230,20 @@
 </programlisting>
 
       <para>
-        With regard to the first of these two queries, Condition
-        Pushdown is not applicable because an index exists on column
+        With regard to the first of these two queries, condition
+        pushdown is not applicable because an index exists on column
         <literal>a</literal>. (An index access method would be more
-        efficient and thus would be chosen in preference to Condition
-        Pushdown.) In the case of the second query, Condition Pushdown
+        efficient and so would be chosen in preference to condition
+        pushdown.) In the case of the second query, condition pushdown
         cannot be employed because the comparison involving the
-        non-indexed column <literal>b</literal> is an indirect one. (It
-        would apply if you were to reduce <literal>b + 1 = 10</literal>
-        to <literal>b = 9</literal> in the <literal>WHERE</literal>
-        clause.)
+        non-indexed column <literal>b</literal> is indirect. (However,
+        condition pushdown could be applied if you were to reduce
+        <literal>b + 1 = 10</literal> to <literal>b = 9</literal> in the
+        <literal>WHERE</literal> clause.)
       </para>
 
       <para>
-        Condition Pushdown may also be employed when an indexed column
+        Condition pushdown may also be employed when an indexed column
         is compared with a constant using a <literal>&gt;</literal> or
         <literal>&lt;</literal> operator:
 

@@ -3258,16 +3264,14 @@
       </para>
 
       <para>
-        Other comparisons which are supported for Condition Pushdown
+        Other comparisons which are supported for condition pushdown
         include the following:
 
         <itemizedlist>
 
           <listitem>
             <para>
-              <literal><replaceable>column</replaceable> LIKE
-              <replaceable>pattern</replaceable></literal>,
-              <literal><replaceable>column</replaceable> NOT LIKE
+              <literal><replaceable>column</replaceable> [NOT] LIKE
               <replaceable>pattern</replaceable></literal>
             </para>
 

@@ -3280,9 +3284,8 @@
 
           <listitem>
             <para>
-              <literal><replaceable>column</replaceable> IS
-              NULL</literal>, <literal><replaceable>column</replaceable>
-              IS NOT NULL</literal>
+              <literal><replaceable>column</replaceable> IS [NOT]
+              NULL</literal>
             </para>
           </listitem>
 

@@ -3306,21 +3309,21 @@
             </para>
 
             <para>
-              Each of <replaceable>constant1</replaceable> and
-              <replaceable>constant2</replaceable> must be a constant,
-              literal value.
+              <replaceable>constant1</replaceable> and
+              <replaceable>constant2</replaceable> must each be a
+              constant, literal value.
             </para>
           </listitem>
 
         </itemizedlist>
 
-        In each of these cases, it is possible for the condition to be
-        converted into the form of one or more direct comparisons
-        between a column and a constant.
+        In all of the cases in the preceding list, it is possible for
+        the condition to be converted into the form of one or more
+        direct comparisons between a column and a constant.
       </para>
 
       <para>
-        Condition Pushdown capability is not used by default. To enable
+        Condition pushdown capability is not used by default. To enable
         it, you can start <command>mysqld</command> with the
         <option>--engine-condition-pushdown</option> option, or you can
         execute either of the following statements at runtime:

@@ -3339,16 +3342,15 @@
         <title>Limitations</title>
 
         <para>
-          Condition Pushdown is subject to the following limitations:
+          Condition pushdown is subject to the following limitations:
 
           <itemizedlist>
 
             <listitem>
               <para>
-                Condition Pushdown is currently supported by the NDB
-                storage engine <emphasis>only</emphasis>, and does not
-                occur when executing queries against tables using any
-                other storage engine.
+                In MySQL &current-series;, condition pushdown is
+                supported by the <literal>NDBCLUSTER</literal> storage
+                engine only.
               </para>
             </listitem>
 


Modified: trunk/refman-5.1/Makefile.depends
===================================================================
--- trunk/refman-5.1/Makefile.depends	2008-06-24 16:43:13 UTC (rev 11018)
+++ trunk/refman-5.1/Makefile.depends	2008-06-24 17:27:12 UTC (rev 11019)
Changed blocks: 1, Lines Added: 1, Lines Deleted: 0; 653 bytes

@@ -3124,6 +3124,7 @@
 	../refman-5.1/metadata/programs-admin-util-core.idmap \
 	../refman-5.1/metadata/programs-client-core.idmap \
 	../refman-5.1/metadata/programs-installation.idmap \
+	../refman-5.1/metadata/replication-configuration.idmap \
 	../refman-5.1/metadata/replication-implementation.idmap \
 	../refman-5.1/metadata/replication-notes.idmap \
 	../refman-5.1/metadata/restrictions.idmap \


Modified: trunk/refman-5.1/dba-core.xml
===================================================================
--- trunk/refman-5.1/dba-core.xml	2008-06-24 16:43:13 UTC (rev 11018)
+++ trunk/refman-5.1/dba-core.xml	2008-06-24 17:27:12 UTC (rev 11019)
Changed blocks: 1, Lines Added: 46, Lines Deleted: 0; 2544 bytes

@@ -1074,6 +1074,52 @@
         </listitem>
 
         <listitem>
+          <para id="option_mysqld_engine-condition-pushdown">
+            <literal>--engine-condition-pushdown={ON|OFF}</literal>
+          </para>
+
+          <para condition="dynamic:optvar:item" role="5.1:mysqld:engine-condition-pushdown"/>
+
+          <para>
+            When the value of this option is 0 (<literal>OFF</literal>),
+            a query such as <literal>SELECT * FROM t WHERE mycol =
+            42</literal>, where <literal>mycol</literal> is a
+            non-indexed column, is executed as a full table scan. The
+            storage engine sends every row to the MySQL server, which
+            applies the <literal>WHERE</literal> condition. If
+            <literal>engine_condition_pushdown</literal> is set to 1
+            (<literal>ON</literal>), the condition is <quote>pushed
+            down</quote> to the storage engine, which uses the condition
+            to perform the scan, and sends back to the MySQL server only
+            those rows that match the condition. By default, this
+            variable is <literal>OFF</literal>.
+          </para>
+
+          <para>
+            In MySQL &current-series;, this option is useful only with
+            the <literal>NDBCLUSTER</literal> storage engine. However,
+            we intend to implement it for additional storage engines in
+            future MySQL releases.
+          </para>
+
+          <para>
+            Setting this option to <literal>ON</literal> on a MySQL
+            Server acting as a MySQL Cluster SQL node causes
+            <literal>WHERE</literal> conditions on unindexed columns to
+            be evaluated on the cluster&apos;s data nodes and only the
+            rows that match to be sent back to the SQL node that issued
+            the query. This means the amount of cluster data that must
+            be sent over the network is greatly reduced, increasing the
+            efficiency with which results are returned.
+          </para>
+
+          <para>
+            For more information, see
+            <xref linkend="condition-pushdown-optimization"/>.
+          </para>
+        </listitem>
+
+        <listitem>
           <para id="option_mysqld_event-scheduler">
             <indexterm>
               <primary>mysqld</primary>


Modified: trunk/refman-5.1/mysql-cluster-optvar-core.xml
===================================================================
--- trunk/refman-5.1/mysql-cluster-optvar-core.xml	2008-06-24 16:43:13 UTC (rev 11018)
+++ trunk/refman-5.1/mysql-cluster-optvar-core.xml	2008-06-24 17:27:12 UTC (rev 11019)
Changed blocks: 1, Lines Added: 0, Lines Deleted: 26; 1739 bytes

@@ -238,32 +238,6 @@
     <itemizedlist>
 
       <listitem>
-        <para id="option_mysqld_engine_condition_pushdown">
-          <literal>engine_condition_pushdown</literal>
-        </para>
-
-        <para condition="dynamic:optvar:item" role="5.1:mysqld:engine_condition_pushdown"/>
-
-        <para>
-          This variable applies to <literal>NDB</literal>. When its
-          value is 0 (<literal>OFF</literal>), if you execute a query
-          such as <literal>SELECT * FROM t WHERE mycol = 42</literal>,
-          where <literal>mycol</literal> is a non-indexed column, the
-          query is executed as a full table scan on every NDB node. Each
-          node sends every row to the MySQL server, which applies the
-          <literal>WHERE</literal> condition. If
-          <literal>engine_condition_pushdown</literal> is set to 1
-          (<literal>ON</literal>), the condition is <quote>pushed
-          down</quote> to the storage engine and sent to the NDB nodes.
-          Each node uses the condition to perform the scan, and only
-          sends back to the MySQL server the rows that match the
-          condition. By default, this variable is <literal>ON</literal>.
-          (This is a change from MySQL 5.0, where the default was
-          <literal>OFF</literal>.)
-        </para>
-      </listitem>
-
-      <listitem>
         <para id="option_mysqld_have_ndbcluster">
           <literal>have_ndbcluster</literal>
         </para>


Modified: trunk/refman-5.1/optimization.xml
===================================================================
--- trunk/refman-5.1/optimization.xml	2008-06-24 16:43:13 UTC (rev 11018)
+++ trunk/refman-5.1/optimization.xml	2008-06-24 17:27:12 UTC (rev 11019)
Changed blocks: 9, Lines Added: 50, Lines Deleted: 50; 7796 bytes

@@ -3307,22 +3307,28 @@
       <title>Condition Pushdown Optimization</title>
 
       <para>
-        This optimization applies to <literal>NDBCLUSTER</literal>
-        tables <emphasis>only</emphasis>. It means that MySQL Cluster is
-        using the Condition Pushdown optimization to improve the
-        efficiency of a direct comparison between a non-indexed column
-        and a constant. In such cases, the condition is <quote>pushed
-        down</quote> to the cluster's data nodes where it is evaluated
-        in all partitions simultaneously. This eliminates the need to
-        send non-matching rows over the network, and can speed up such
-        queries by a factor of 5 to 10 times over cases where Condition
-        Pushdown could be but is not used.
+        This optimization improves the efficiency of a direct comparison
+        between a non-indexed column and a constant. In such cases, the
+        condition is <quote>pushed down</quote> to the storage engine
+        for evaluation. In MySQL &current-series;, this optimzation can
+        be used only by the <literal>NDBCLUSTER</literal> storage
+        engine, but we intend to implement it for additional storage
+        engines in future versions of MySQL.
       </para>
 
       <para>
-        Suppose that you have a Cluster table defined as follows:
+        For MySQL Cluster this optimization can eliminate the need to
+        send non-matching rows over the network between the
+        cluster&apos;s data nodes and the MySQL Server that issued the
+        query, and can speed up queries where it is used by a factor of
+        5 to 10 times over cases where condition pushdown could be but
+        is not used.
       </para>
 
+      <para>
+        Suppose that a MySQL Cluster table is defined as follows:
+      </para>
+
 <programlisting>
 CREATE TABLE t1 (
     a INT, 

@@ -3332,8 +3338,8 @@
 </programlisting>
 
       <para>
-        In this case, Condition Pushdown can be used with a query such
-        as this one:
+        Condition pushdown can be used with a query against this table
+        such as the query shown here:
       </para>
 
 <programlisting>

@@ -3342,7 +3348,7 @@
 
       <para>
         This can be seen in the output of <literal>EXPLAIN
-        SELECT</literal>, as shown here:
+        SELECT</literal>:
       </para>
 
 <programlisting>

@@ -3361,8 +3367,8 @@
 </programlisting>
 
       <para>
-        Condition Pushdown <emphasis>cannot</emphasis> be used with
-        either of these two queries:
+        However, condition pushdown <emphasis>cannot</emphasis> be used
+        with either of these two queries:
       </para>
 
 <programlisting>

@@ -3371,20 +3377,20 @@
 </programlisting>
 
       <para>
-        With regard to the first of these two queries, Condition
-        Pushdown is not applicable because an index exists on column
+        With regard to the first of these two queries, condition
+        pushdown is not applicable because an index exists on column
         <literal>a</literal>. (An index access method would be more
-        efficient and thus would be chosen in preference to Condition
-        Pushdown.) In the case of the second query, Condition Pushdown
+        efficient and so would be chosen in preference to condition
+        pushdown.) In the case of the second query, condition pushdown
         cannot be employed because the comparison involving the
-        non-indexed column <literal>b</literal> is an indirect one. (It
-        would apply if you were to reduce <literal>b + 1 = 10</literal>
-        to <literal>b = 9</literal> in the <literal>WHERE</literal>
-        clause.)
+        non-indexed column <literal>b</literal> is indirect. (However,
+        condition pushdown could be applied if you were to reduce
+        <literal>b + 1 = 10</literal> to <literal>b = 9</literal> in the
+        <literal>WHERE</literal> clause.)
       </para>
 
       <para>
-        Condition Pushdown may also be employed when an indexed column
+        Condition pushdown may also be employed when an indexed column
         is compared with a constant using a <literal>&gt;</literal> or
         <literal>&lt;</literal> operator:
 

@@ -3405,16 +3411,14 @@
       </para>
 
       <para>
-        Other comparisons which are supported for Condition Pushdown
+        Other comparisons which are supported for condition pushdown
         include the following:
 
         <itemizedlist>
 
           <listitem>
             <para>
-              <literal><replaceable>column</replaceable> LIKE
-              <replaceable>pattern</replaceable></literal>,
-              <literal><replaceable>column</replaceable> NOT LIKE
+              <literal><replaceable>column</replaceable> [NOT] LIKE
               <replaceable>pattern</replaceable></literal>
             </para>
 

@@ -3427,9 +3431,8 @@
 
           <listitem>
             <para>
-              <literal><replaceable>column</replaceable> IS
-              NULL</literal>, <literal><replaceable>column</replaceable>
-              IS NOT NULL</literal>
+              <literal><replaceable>column</replaceable> IS [NOT]
+              NULL</literal>
             </para>
           </listitem>
 

@@ -3453,33 +3456,31 @@
             </para>
 
             <para>
-              Each of <replaceable>constant1</replaceable> and
-              <replaceable>constant2</replaceable> must be a constant,
-              literal value.
+              <replaceable>constant1</replaceable> and
+              <replaceable>constant2</replaceable> must each be a
+              constant, literal value.
             </para>
           </listitem>
 
         </itemizedlist>
 
-        In each of these cases, it is possible for the condition to be
-        converted into the form of one or more direct comparisons
-        between a column and a constant.
+        In all of the cases in the preceding list, it is possible for
+        the condition to be converted into the form of one or more
+        direct comparisons between a column and a constant.
       </para>
 
       <para>
-        Condition Pushdown capability is used by default (this is a
-        change from MySQL 5.0, where it had to be enabled). To disable
-        it, you can start <command>mysqld</command> with either
-        <option>--engine-condition-pushdown=OFF</option> or
-        <option>--engine-condition-pushdown=0</option>, or you can
+        Condition pushdown capability is not used by default. To enable
+        it, you can start <command>mysqld</command> with the
+        <option>--engine-condition-pushdown</option> option, or you can
         execute either of the following statements at runtime:
 
 <programlisting>
-SET engine_condition_pushdown=OFF;
+SET engine_condition_pushdown=ON;
 </programlisting>
 
 <programlisting>
-SET engine_condition_pushdown=0;
+SET engine_condition_pushdown=1;
 </programlisting>
       </para>
 

@@ -3488,16 +3489,15 @@
         <title>Limitations</title>
 
         <para>
-          Condition Pushdown is subject to the following limitations:
+          Condition pushdown is subject to the following limitations:
 
           <itemizedlist>
 
             <listitem>
               <para>
-                Condition Pushdown is currently supported by the NDB
-                storage engine <emphasis>only</emphasis>, and does not
-                occur when executing queries against tables using any
-                other storage engine.
+                In MySQL &current-series;, condition pushdown is
+                supported by the <literal>NDBCLUSTER</literal> storage
+                engine only.
               </para>
             </listitem>
 


Modified: trunk/refman-6.0/Makefile.depends
===================================================================
--- trunk/refman-6.0/Makefile.depends	2008-06-24 16:43:13 UTC (rev 11018)
+++ trunk/refman-6.0/Makefile.depends	2008-06-24 17:27:12 UTC (rev 11019)
Changed blocks: 1, Lines Added: 1, Lines Deleted: 0; 653 bytes

@@ -2919,6 +2919,7 @@
 	../refman-6.0/metadata/programs-admin-util-core.idmap \
 	../refman-6.0/metadata/programs-client-core.idmap \
 	../refman-6.0/metadata/programs-installation.idmap \
+	../refman-6.0/metadata/replication-configuration.idmap \
 	../refman-6.0/metadata/replication-implementation.idmap \
 	../refman-6.0/metadata/replication-notes.idmap \
 	../refman-6.0/metadata/restrictions.idmap \


Modified: trunk/refman-6.0/dba-core.xml
===================================================================
--- trunk/refman-6.0/dba-core.xml	2008-06-24 16:43:13 UTC (rev 11018)
+++ trunk/refman-6.0/dba-core.xml	2008-06-24 17:27:12 UTC (rev 11019)
Changed blocks: 1, Lines Added: 47, Lines Deleted: 0; 2576 bytes

@@ -1061,6 +1061,53 @@
         </listitem>
 
         <listitem>
+          <para id="option_mysqld_engine-condition-pushdown">
+            <literal>--engine-condition-pushdown={ON|OFF}</literal>
+          </para>
+
+          <para condition="dynamic:optvar:item" role="6.0:mysqld:engine-condition-pushdown"/>
+
+          <para>
+            When the value of this option is 0 (<literal>OFF</literal>),
+            a query such as <literal>SELECT * FROM t WHERE mycol =
+            42</literal>, where <literal>mycol</literal> is a
+            non-indexed column, is executed as a full table scan. The
+            storage engine sends every row to the MySQL server, which
+            applies the <literal>WHERE</literal> condition. If
+            <literal>engine_condition_pushdown</literal> is set to 1
+            (<literal>ON</literal>), the condition is <quote>pushed
+            down</quote> to the storage engine, which uses the condition
+            to perform the scan, and sends back to the MySQL server only
+            those rows that match the condition. By default, this
+            variable is <literal>OFF</literal>.
+          </para>
+
+          <para>
+            In MySQL &current-series;, this option can be used used with
+            the <literal>NDBCLUSTER</literal> and
+            <literal>MyISAM</literal> storage engines. It may be
+            implemented for additional storage engines in future MySQL
+            releases.
+          </para>
+
+          <para>
+            Setting this option to <literal>ON</literal> on a MySQL
+            Server acting as a MySQL Cluster SQL node causes
+            <literal>WHERE</literal> conditions on unindexed columns to
+            be evaluated on the cluster&apos;s data nodes and only the
+            rows that match to be sent back to the SQL node that issued
+            the query. This means the amount of cluster data that must
+            be sent over the network is greatly reduced, increasing the
+            efficiency with which results are returned.
+          </para>
+
+          <para>
+            For more information, see
+            <xref linkend="condition-pushdown-optimization"/>.
+          </para>
+        </listitem>
+
+        <listitem>
           <para id="option_mysqld_event-scheduler">
             <indexterm>
               <primary>mysqld</primary>


Modified: trunk/refman-6.0/mysql-cluster-optvar-core.xml
===================================================================
--- trunk/refman-6.0/mysql-cluster-optvar-core.xml	2008-06-24 16:43:13 UTC (rev 11018)
+++ trunk/refman-6.0/mysql-cluster-optvar-core.xml	2008-06-24 17:27:12 UTC (rev 11019)
Changed blocks: 1, Lines Added: 0, Lines Deleted: 24; 1638 bytes

@@ -186,30 +186,6 @@
     <itemizedlist>
 
       <listitem>
-        <para id="option_mysqld_engine_condition_pushdown">
-          <literal>engine_condition_pushdown</literal>
-        </para>
-
-        <para condition="dynamic:optvar:item" role="6.0:mysqld:engine_condition_pushdown"/>
-
-        <para>
-          This variable applies to <literal>NDB</literal>. When its
-          value is 0 (<literal>OFF</literal>), if you execute a query
-          such as <literal>SELECT * FROM t WHERE mycol = 42</literal>,
-          where <literal>mycol</literal> is a non-indexed column, the
-          query is executed as a full table scan on every NDB node. Each
-          node sends every row to the MySQL server, which applies the
-          <literal>WHERE</literal> condition. If
-          <literal>engine_condition_pushdown</literal> is set to 1
-          (<literal>ON</literal>), the condition is <quote>pushed
-          down</quote> to the storage engine and sent to the NDB nodes.
-          Each node uses the condition to perform the scan, and only
-          sends back to the MySQL server the rows that match the
-          condition. By default, this variable is <literal>ON</literal>.
-        </para>
-      </listitem>
-
-      <listitem>
         <para id="option_mysqld_have_ndbcluster">
           <literal>have_ndbcluster</literal>
         </para>


Modified: trunk/refman-6.0/optimization.xml
===================================================================
--- trunk/refman-6.0/optimization.xml	2008-06-24 16:43:13 UTC (rev 11018)
+++ trunk/refman-6.0/optimization.xml	2008-06-24 17:27:12 UTC (rev 11019)
Changed blocks: 7, Lines Added: 66, Lines Deleted: 57; 8655 bytes

@@ -3331,33 +3331,53 @@
       <title>Condition Pushdown Optimization</title>
 
       <para>
-        This optimization applies to <literal>NDBCLUSTER</literal>
-        tables <emphasis>only</emphasis>. It means that MySQL Cluster is
-        using the Condition Pushdown optimization to improve the
-        efficiency of a direct comparison between a non-indexed column
-        and a constant. In such cases, the condition is <quote>pushed
-        down</quote> to the cluster's data nodes where it is evaluated
-        in all partitions simultaneously. This eliminates the need to
-        send non-matching rows over the network, and can speed up such
-        queries by a factor of 5 to 10 times over cases where Condition
-        Pushdown could be but is not used.
+        This optimization improves the efficiency of a direct comparison
+        between a non-indexed column and a constant. In such cases, the
+        condition is <quote>pushed down</quote> to the storage engine
+        for evaluation. In MySQL &current-series;, this optimzation can
+        be used only by the <literal>NDBCLUSTER</literal> and
+        <literal>MyISAM</literal> storage engines; it may be implemented
+        for additional storage engines in future versions of MySQL.
       </para>
 
       <para>
-        Suppose that you have a Cluster table defined as follows:
+        For MySQL Cluster this optimization can eliminate the need to
+        send non-matching rows over the network between the
+        cluster&apos;s data nodes and the MySQL Server that issued the
+        query, and can speed up queries where it is used by a factor of
+        5 to 10 times over cases where condition pushdown could be but
+        is not used.
       </para>
 
+      <para>
+        Suppose that a table is defined as follows, where
+        <replaceable>engine</replaceable> is one of
+        <literal>NDB</literal>, <literal>NDBCLUSTER</literal>, or
+        <literal>MyISAM</literal>:
+      </para>
+
 <programlisting>
 CREATE TABLE t1 (
     a INT, 
     b INT, 
     KEY(a)
-) ENGINE=NDBCLUSTER;
-</programlisting>
+) ENGINE=<replaceable>engine</replaceable>;
+      </programlisting>
 
+      <note>
+        <para>
+          It is not necessary to use an explicit
+          <literal>ENGINE</literal> option to create a
+          <literal>MyISAM</literal> table if this is the default MySQL
+          storage engine type at the time the table is created;
+          condition pushdown can still be employed with such a
+          <literal>MyISAM</literal> table.
+        </para>
+      </note>
+
       <para>
-        In this case, Condition Pushdown can be used with a query such
-        as this one:
+        Condition pushdown can be used with a query against this table
+        such as the query shown here:
       </para>
 
 <programlisting>

@@ -3366,7 +3386,7 @@
 
       <para>
         This can be seen in the output of <literal>EXPLAIN
-        SELECT</literal>, as shown here:
+        SELECT</literal>:
       </para>
 
 <programlisting>

@@ -3385,8 +3405,8 @@
 </programlisting>
 
       <para>
-        Condition Pushdown <emphasis>cannot</emphasis> be used with
-        either of these two queries:
+        However, condition pushdown <emphasis>cannot</emphasis> be used
+        with either of these two queries:
       </para>
 
 <programlisting>

@@ -3395,20 +3415,20 @@
 </programlisting>
 
       <para>
-        With regard to the first of these two queries, Condition
-        Pushdown is not applicable because an index exists on column
+        With regard to the first of these two queries, condition
+        pushdown is not applicable because an index exists on column
         <literal>a</literal>. (An index access method would be more
-        efficient and thus would be chosen in preference to Condition
-        Pushdown.) In the case of the second query, Condition Pushdown
+        efficient and so would be chosen in preference to condition
+        pushdown.) In the case of the second query, condition pushdown
         cannot be employed because the comparison involving the
-        non-indexed column <literal>b</literal> is an indirect one. (It
-        would apply if you were to reduce <literal>b + 1 = 10</literal>
-        to <literal>b = 9</literal> in the <literal>WHERE</literal>
-        clause.)
+        non-indexed column <literal>b</literal> is indirect. (However,
+        condition pushdown could be applied if you were to reduce
+        <literal>b + 1 = 10</literal> to <literal>b = 9</literal> in the
+        <literal>WHERE</literal> clause.)
       </para>
 
       <para>
-        Condition Pushdown may also be employed when an indexed column
+        Condition pushdown may also be employed when an indexed column
         is compared with a constant using a <literal>&gt;</literal> or
         <literal>&lt;</literal> operator:
 

@@ -3429,16 +3449,14 @@
       </para>
 
       <para>
-        Other comparisons which are supported for Condition Pushdown
+        Other comparisons which are supported for condition pushdown
         include the following:
 
         <itemizedlist>
 
           <listitem>
             <para>
-              <literal><replaceable>column</replaceable> LIKE
-              <replaceable>pattern</replaceable></literal>,
-              <literal><replaceable>column</replaceable> NOT LIKE
+              <literal><replaceable>column</replaceable> [NOT] LIKE
               <replaceable>pattern</replaceable></literal>
             </para>
 

@@ -3451,9 +3469,8 @@
 
           <listitem>
             <para>
-              <literal><replaceable>column</replaceable> IS
-              NULL</literal>, <literal><replaceable>column</replaceable>
-              IS NOT NULL</literal>
+              <literal><replaceable>column</replaceable> IS [NOT]
+              NULL</literal>
             </para>
           </listitem>
 

@@ -3477,56 +3494,48 @@
             </para>
 
             <para>
-              Each of <replaceable>constant1</replaceable> and
-              <replaceable>constant2</replaceable> must be a constant,
-              literal value.
+              <replaceable>constant1</replaceable> and
+              <replaceable>constant2</replaceable> must each be a
+              constant, literal value.
             </para>
           </listitem>
 
         </itemizedlist>
 
-        In each of these cases, it is possible for the condition to be
-        converted into the form of one or more direct comparisons
-        between a column and a constant.
+        In all of the cases in the preceding list, it is possible for
+        the condition to be converted into the form of one or more
+        direct comparisons between a column and a constant.
       </para>
 
       <para>
-        Condition Pushdown capability is used by default. To disable it,
-        you can start <command>mysqld</command> with either
-        <option>--engine-condition-pushdown=OFF</option> or
-        <option>--engine-condition-pushdown=0</option>, or you can
+        Condition pushdown capability is not used by default. To enable
+        it, you can start <command>mysqld</command> with the
+        <option>--engine-condition-pushdown</option> option, or you can
         execute either of the following statements at runtime:
 
 <programlisting>
-SET engine_condition_pushdown=OFF;
+SET engine_condition_pushdown=ON;
 </programlisting>
 
 <programlisting>
-SET engine_condition_pushdown=0;
+SET engine_condition_pushdown=1;
 </programlisting>
       </para>
 
-      <para>
-        The <literal>engine_condition_pushdown</literal> system variable
-        also controls use of the Index Condition Pushdown strategy; see
-        <xref linkend="index-condition-pushdown-optimization"/>.
-      </para>
-
       <formalpara>
 
         <title>Limitations</title>
 
         <para>
-          Condition Pushdown is subject to the following limitations:
+          Condition pushdown is subject to the following limitations:
 
           <itemizedlist>
 
             <listitem>
               <para>
-                Condition Pushdown is currently supported by the NDB
-                storage engine <emphasis>only</emphasis>, and does not
-                occur when executing queries against tables using any
-                other storage engine.
+                In MySQL &current-series;, condition pushdown is
+                supported by the <literal>NDBCLUSTER</literal> and
+                <literal>MyISAM</literal> storage engines only.
               </para>
             </listitem>
 


Thread
svn commit - mysqldoc@docsrva: r11019 - in trunk: dynamic-docs/command-optvars mysqlqb refman-5.0 refman-5.1 refman-6.0jon24 Jun