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>&</literal>, <literal>^</literal>,
+ <literal><<</literal>, <literal>>></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>+</literal>,
+ <literal>−</literal>, <literal>×</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>&</literal>,
+ <literal>^</literal>, <literal><<</literal>,
+ <literal>>></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.1 | jon | 1 Nov |