List:Commits« Previous MessageNext Message »
From:jon Date:November 1 2006 5:22am
Subject:svn commit - mysqldoc@docsrva: r3815 - trunk/refman-5.1
View as plain text  
Author: jstephens
Date: 2006-11-01 06:22:50 +0100 (Wed, 01 Nov 2006)
New Revision: 3815

Log:

New restrictions on partitioning in 5.1.12 (Trudy, Mikael)



Modified:
   trunk/refman-5.1/news-5.1.xml
   trunk/refman-5.1/partitioning.xml


Modified: trunk/refman-5.1/news-5.1.xml
===================================================================
--- trunk/refman-5.1/news-5.1.xml	2006-10-31 23:25:23 UTC (rev 3814)
+++ trunk/refman-5.1/news-5.1.xml	2006-11-01 05:22:50 UTC (rev 3815)
Changed blocks: 3, Lines Added: 67, Lines Deleted: 2; 2914 bytes

@@ -407,6 +407,71 @@
 
       <listitem>
         <para>
+          <emphasis role="bold">Incompatible change</emphasis>: A number
+          of MySQL constructs are now prohibited in partitioning
+          expressions, beginning with this release. These include:
+        </para>
+
+        <itemizedlist>
+
+          <listitem>
+            <para>
+              A number of MySQL functions.
+            </para>
+
+            <para>
+              For a list of these, see
+              <xref linkend="partitioning-limitations-disallowed-functions"/>.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              The bit operators <literal>|</literal>,
+              <literal>&amp;</literal>, <literal>^</literal>,
+              <literal>&lt;&lt;</literal>, <literal>&gt;&gt;</literal>,
+              and <literal>~</literal>.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              Nested function calls.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              Calls to stored routines, UDFs, or plugins.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              Character-to-integer conversions involving non-8-bit
+              character sets or any of the
+              <literal>latin1_german2_ci</literal>,
+              <literal>latin2_czech_cs</literal>, or
+              <literal>cp1250_czech_cs</literal> collations.
+            </para>
+          </listitem>
+
+        </itemizedlist>
+
+        <para>
+          These restrictions were added in part as a result of Bug
+          #18198 and related bug reports.
+        </para>
+
+        <para>
+          For more information about these and other restrictions on
+          partitioned tables in MySQL, see
+          <xref linkend="partitioning-limitations"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
           The general query log and slow query logs now can be enabled
           or disabled at runtime with the <literal>general_log</literal>
           and <literal>slow_query_log</literal> system variables, and

@@ -2041,7 +2106,7 @@
           to crash. (Bug #21210)
         </para>
       </listitem>
-      
+
       <listitem>
         <para>
           <literal>NDB Cluster</literal> (Disk Data):

@@ -2051,7 +2116,7 @@
           <literal>INITIAL_SIZE</literal> values were misreported.)
           Trying to restore from such a backup would produce error 1296
           (<errortext>Got error 1504 'Out of logbuffer memory' from
-            NDB</errortext>). (Bug #20809)
+          NDB</errortext>). (Bug #20809)
         </para>
       </listitem>
 


Modified: trunk/refman-5.1/partitioning.xml
===================================================================
--- trunk/refman-5.1/partitioning.xml	2006-10-31 23:25:23 UTC (rev 3814)
+++ trunk/refman-5.1/partitioning.xml	2006-11-01 05:22:50 UTC (rev 3815)
Changed blocks: 2, Lines Added: 446, Lines Deleted: 1; 11817 bytes

@@ -4254,6 +4254,450 @@
 
       <listitem>
         <para>
+          Beginning with MySQL 5.1.12, the following constructs are not
+          permitted to be used in partitioning expressions:
+        </para>
+
+        <itemizedlist>
+
+          <listitem>
+            <para>
+              Nested function calls (that is, constructs such as
+              <literal>PARTITION BY RANGE(
+              <replaceable>func1</replaceable>(
+              <replaceable>func2</replaceable>(<replaceable>col_name</replaceable>)
+              ) )</literal>).
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              Stored functions, stored procedures, UDFs, or plugins.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              Declared variables or user variables.
+            </para>
+          </listitem>
+
+        </itemizedlist>
+      </listitem>
+
+      <listitem>
+        <indexterm>
+          <primary>partitioning</primary>
+          <secondary>functions disallowed in partitioning expressions</secondary>
+        </indexterm>
+
+        <para id="partitioning-limitations-disallowed-functions">
+          Beginning with MySQL 5.1.12, the folowing MySQL functions are
+          specifically not allowed in partitioning expressions:
+        </para>
+
+        <itemizedlist>
+
+          <listitem>
+            <para>
+              <literal>GREATEST()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>ISNULL()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>LEAST()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>CASE()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>IFNULL()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>NULLIF()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>BIT_LENGTH()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>CHAR_LENGTH()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>CHARACTER_LENGTH()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>FIND_IN_SET()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>INSTR()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>LENGTH()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>LOCATE()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>OCTET_LENGTH()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>POSITION()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>STRCMP()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>CRC32()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>ROUND()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>SIGN()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>DATEDIFF()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>PERIOD_ADD()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>PERIOD_DIFF()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>TIMESTAMPDIFF()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>UNIX_TIMESTAMP()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>WEEK()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>CAST()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>CONVERT()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>BIT_COUNT()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>INET_ATON()</literal>
+            </para>
+          </listitem>
+
+        </itemizedlist>
+      </listitem>
+
+      <listitem>
+        <para>
+          <indexterm>
+            <primary>partitioning</primary>
+            <secondary>operators supported in partitioning expressions</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>partitioning</primary>
+            <secondary>operators disallowed in partitioning expressions</secondary>
+          </indexterm>
+
+          Use of the arithmetic operators <literal>&plus;</literal>,
+          <literal>&minus;</literal>, <literal>&times;</literal>, and
+          <literal>/</literal> is permitted in partitioning expressions.
+          However, the result must be an integer value or
+          <literal>NULL</literal> (except in the case of
+          <literal>[LINEAR] KEY</literal> partitioning, as discussed
+          elswhere in this chapter.
+        </para>
+
+        <para>
+          Beginning with MySQL 5.1.12, the bit operators
+          <literal>|</literal>, <literal>&amp;</literal>,
+          <literal>^</literal>, <literal>&lt;&lt;</literal>,
+          <literal>&gt;&gt;</literal>, and <literal>~</literal> are not
+          permitted in partitioning expressions.
+        </para>
+      </listitem>
+
+      <listitem>
+        <indexterm>
+          <primary>partitioning</primary>
+          <secondary>functions supported in partitioning expressions</secondary>
+        </indexterm>
+
+        <para>
+          Beginning with MySQL 5.1.12, only the following MySQL
+          functions are specfically supported in partitioning
+          expressions:
+        </para>
+
+        <itemizedlist>
+
+          <listitem>
+            <para>
+              <literal>ABS()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>ASCII()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>CEILING()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>DAY()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>DAYOFMONTH()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>DAYOFWEEK()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>DAYOFYEAR()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>EXTRACT()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>FLOOR()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>HOUR()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>MICROSECOND()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>MINUTE()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>MOD()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>MONTH()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>ORD()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>QUARTER()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>SECOND()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>TIME_TO_SEC()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>TO_DAYS()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>WEEKDAY()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>WEEKOFYEAR()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>YEAR()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>YEARWEEK()</literal>
+            </para>
+          </listitem>
+
+        </itemizedlist>
+      </listitem>
+
+      <listitem>
+        <indexterm>
+          <primary>partitioning</primary>
+          <secondary>and server SQL mode</secondary>
+        </indexterm>
+
+        <para>
+          <emphasis role="bold">Important</emphasis>: You should keep in
+          mind that the results of many MySQL functions and operators
+          may change according to the server SQL mode. For this reason,
+          it is not advisable to change this mode after creating
+          partitioned tables. See <xref linkend="server-sql-mode"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <indexterm>
+          <primary>partitioning</primary>
+          <secondary>and charsets/collations</secondary>
+        </indexterm>
+
+        <para>
+          Functions such as <literal>ASCII()</literal> and
+          <literal>ORD()</literal> used to convert a string value (such
+          as that of a <literal>CHAR</literal> or
+          <literal>VARCHAR</literal> column) to an integer works only
+          when the string uses an 8-bit character set. The collation
+          used for the string can be any collation for the related
+          character set, except for
+          <literal>latin1_german2_ci</literal>,
+          <literal>latin2_czech_cs</literal>, and
+          <literal>cp1250_czech_cs</literal>. This is because all of
+          these collations require one-to-many character conversions.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
           If, when creating tables with a very large number of
           partitions, you encounter an error message such as
           <errortext>Got error 24 from storage engine</errortext>, you

@@ -4340,7 +4784,8 @@
       <listitem>
         <para>
           All of a table's partitions and subpartitions (if there are
-          any of the latter) must use the same storage engine.
+          any of the latter) must use the same storage engine. We are
+          working to remove this limitation in a future MySQL release.
         </para>
       </listitem>
 


Thread
svn commit - mysqldoc@docsrva: r3815 - trunk/refman-5.1jon1 Nov