Author: paul
Date: 2005-12-14 18:37:24 +0100 (Wed, 14 Dec 2005)
New Revision: 560
Log:
r4768@frost: paul | 2005-12-14 11:32:31 -0600
Note stricter handling of FLOAT/DOUBLE data types in 4.1.2 and up.
Note stricter handling of DECIMAL/NUMERIC data types in 5.0.3 and up.
In change lists, float some incompatible changes to the front of the list.
Modified:
trunk/
trunk/refman-4.1/installing.xml
trunk/refman-5.0/installing.xml
trunk/refman-common/news-4.1.xml
trunk/refman-common/news-5.0.xml
Property changes on: trunk
___________________________________________________________________
Name: svk:merge
- b5ec3a16-e900-0410-9ad2-d183a3acac99:/mysqldoc-local/mysqldoc/trunk:4743
bf112a9c-6c03-0410-a055-ad865cd57414:/mysqldoc-local/mysqldoc/trunk:1648
+ b5ec3a16-e900-0410-9ad2-d183a3acac99:/mysqldoc-local/mysqldoc/trunk:4768
bf112a9c-6c03-0410-a055-ad865cd57414:/mysqldoc-local/mysqldoc/trunk:1648
Modified: trunk/refman-4.1/installing.xml
===================================================================
--- trunk/refman-4.1/installing.xml 2005-12-14 14:45:22 UTC (rev 559)
+++ trunk/refman-4.1/installing.xml 2005-12-14 17:37:24 UTC (rev 560)
@@ -12489,6 +12489,37 @@
<listitem>
<para>
+ <emphasis role="bold">Warning: Incompatible
+ change:</emphasis> As of MySQL 4.1.2, handling of the
+ <literal>FLOAT</literal> and <literal>DOUBLE</literal>
+ floating-point data types is more strict to follow standard
+ SQL. For example, a data type of
+ <literal>FLOAT(3,1)</literal> stores a maximum value of
+ 99.9. Before 4.1.2, the server allowed larger numbers to be
+ stored. That is, it stored a value such as 100.0 as 100.0.
+ As of 4.1.2, the server clips clips 100.0 to the maximum
+ allowable value of 99.9. If you have tables that were
+ created before MySQL 4.1.2 and that contain floating-point
+ data not strictly legal for the column type, you should
+ alter the data types of those columns. For example:
+ </para>
+
+<programlisting>
+ALTER TABLE <replaceable>tbl_name</replaceable> MODIFY <replaceable>col_name</replaceable> FLOAT(4,1);
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">Incompatible change</emphasis>: In
+ connection with the support for per-connection time zones in
+ MySQL 4.1.3, the <literal>timezone</literal> system variable
+ was renamed to <literal>system_time_zone</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
<emphasis role="bold">Important note:</emphasis> MySQL 4.1
stores table names and column names in
<literal>UTF8</literal>. If you have table names or column
@@ -12515,15 +12546,6 @@
<listitem>
<para>
- <emphasis role="bold">Incompatible change</emphasis>: In
- connection with the support for per-connection time zones in
- MySQL 4.1.3, the <literal>timezone</literal> system variable
- was renamed to <literal>system_time_zone</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>
All tables and non-binary string columns
(<literal>CHAR</literal>, <literal>VARCHAR</literal>, and
<literal>TEXT</literal>) have a character set. See
Modified: trunk/refman-5.0/installing.xml
===================================================================
--- trunk/refman-5.0/installing.xml 2005-12-14 14:45:22 UTC (rev 559)
+++ trunk/refman-5.0/installing.xml 2005-12-14 17:37:24 UTC (rev 560)
@@ -12225,15 +12225,35 @@
downgrade to MySQL 5.0.3 to 5.0.5.)
</para>
</listitem>
-
+
<listitem>
<para>
- <emphasis role="bold">Incompatible change</emphasis>:
- The implementation of <literal>DECIMAL</literal> has changed
- in MySQL 5.0.3. You should make your applications aware of
- that change, which is described in
+ <emphasis role="bold">Incompatible change</emphasis>: The
+ implementation of <literal>DECIMAL</literal> has changed in
+ MySQL 5.0.3. You should make your applications aware of that
+ change, which is described in
<xref linkend="precision-math-decimal-changes"/>.
</para>
+
+ <para>
+ A consequence of the change in handling of the
+ <literal>DECIMAL</literal> and <literal>NUMERIC</literal>
+ fixed-point data types is that the server is more strict to
+ follow standard SQL. For example, a data type of
+ <literal>DECIMAL(3,1)</literal> stores a maximum value of
+ 99.9. Before MySQL 5.0.3, the server allowed larger numbers
+ to be stored. That is, it stored a value such as 100.0 as
+ 100.0. As of MySQL 5.0.3, the server clips clips 100.0 to
+ the maximum allowable value of 99.9. If you have tables that
+ were created before MySQL 5.0.3 and that contain
+ floating-point data not strictly legal for the column type,
+ you should alter the data types of those columns. For
+ example:
+ </para>
+
+<programlisting>
+ALTER TABLE <replaceable>tbl_name</replaceable> MODIFY <replaceable>col_name</replaceable> DECIMAL(4,1);
+</programlisting>
</listitem>
<listitem>
Modified: trunk/refman-common/news-4.1.xml
===================================================================
--- trunk/refman-common/news-4.1.xml 2005-12-14 14:45:22 UTC (rev 559)
+++ trunk/refman-common/news-4.1.xml 2005-12-14 17:37:24 UTC (rev 560)
@@ -7461,29 +7461,26 @@
<listitem>
<para>
- Added the <literal>ARCHIVE</literal> storage engine.
+ <emphasis role="bold">Warning: Incompatible change;</emphasis>
+ C API change: <literal>mysql_shutdown()</literal> now requires
+ a second argument. This is a source-level incompatibility that
+ affects how you compile client programs; it does not affect
+ the ability of compiled clients to communicate with older
+ servers. See <xref linkend="mysql-shutdown"/>.
</para>
</listitem>
<listitem>
<para>
- Added SQL syntax for prepared statements. See
- <xref linkend="sqlps"/>.
+ <emphasis role="bold">Warning: Incompatible change:</emphasis>
+ The <literal>timezone</literal> system variable has been
+ removed and replaced by <literal>system_time_zone</literal>.
+ See <xref linkend="server-system-variables"/>.
</para>
</listitem>
<listitem>
<para>
- Language-specific collations were added for the
- <literal>ucs2</literal> and <literal>utf8</literal> Unicode
- character sets: Icelandic, Latvian, Romanian, Slovenian,
- Polish, Estonian, Swedish, Turkish, Czech, Danish, Lithuanian,
- Slovak, Spanish, Traditional Spanish.
- </para>
- </listitem>
-
- <listitem>
- <para>
Support for per-connection time zones was added. Now you can
set the current time zone for a connection by setting the
<literal>@@time_zone</literal> system variable to a value such
@@ -7507,15 +7504,6 @@
<listitem>
<para>
- <emphasis role="bold">Warning: Incompatible change!</emphasis>
- The <literal>timezone</literal> system variable has been
- removed and replaced by <literal>system_time_zone</literal>.
- See <xref linkend="server-system-variables"/>.
- </para>
- </listitem>
-
- <listitem>
- <para>
Basic time zone conversion function
<literal>CONVERT_TZ()</literal> was added. It assumes that its
first argument is a datetime value in the time zone specified
@@ -7526,24 +7514,36 @@
<listitem>
<para>
- <literal>CHECK TABLE</literal> now can be killed. It then
- marks the table as corrupted. See <xref linkend="kill"/>.
+ Added the <literal>ARCHIVE</literal> storage engine.
</para>
</listitem>
<listitem>
<para>
- <emphasis role="bold">Warning: Incompatible change!</emphasis>
- C API change: <literal>mysql_shutdown()</literal> now requires
- a second argument. This is a source-level incompatibility that
- affects how you compile client programs; it does not affect
- the ability of compiled clients to communicate with older
- servers. See <xref linkend="mysql-shutdown"/>.
+ Added SQL syntax for prepared statements. See
+ <xref linkend="sqlps"/>.
</para>
</listitem>
<listitem>
<para>
+ Language-specific collations were added for the
+ <literal>ucs2</literal> and <literal>utf8</literal> Unicode
+ character sets: Icelandic, Latvian, Romanian, Slovenian,
+ Polish, Estonian, Swedish, Turkish, Czech, Danish, Lithuanian,
+ Slovak, Spanish, Traditional Spanish.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>CHECK TABLE</literal> now can be killed. It then
+ marks the table as corrupted. See <xref linkend="kill"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
<literal>OPTIMIZE TABLE</literal> for
<literal>InnoDB</literal> tables is now mapped to
<literal>ALTER TABLE</literal> instead of <literal>ANALYZE
@@ -7898,86 +7898,28 @@
<listitem>
<para>
- Added the <literal>EXAMPLE</literal> storage engine.
+ <emphasis role="bold">Warning: Incompatible change:</emphasis>
+ Handling of the <literal>FLOAT</literal> and
+ <literal>DOUBLE</literal> floating-point data types is more
+ strict to follow standard SQL. For example, a data type of
+ <literal>FLOAT(3,1)</literal> stores a maximum value of 99.9.
+ Previously, the server allowed larger numbers to be stored.
+ That is, it stored a value such as 100.0 as 100.0. Now the
+ server clips clips 100.0 to the maximum allowable value of
+ 99.9. If you have tables that were created before MySQL 4.1.2
+ and that contain floating-point data not strictly legal for
+ the column type, you should alter the data types of those
+ columns. For example:
</para>
- </listitem>
- <listitem>
- <para>
- The <command>mysqld</command> Windows server was renamed to
- <command>mysqld-debug</command>. See
- <xref linkend="windows-select-server"/>.
- </para>
+<programlisting>
+ALTER TABLE <replaceable>tbl_name</replaceable> MODIFY <replaceable>col_name</replaceable> FLOAT(4,1);
+</programlisting>
</listitem>
<listitem>
<para>
- Added <literal>Handler_discover</literal> status variable.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Added support for character set conversion and
- <literal>MYSQL_TYPE_BLOB</literal> type code in prepared
- statement protocol.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Added explanation of hidden <literal>SELECT</literal> of
- <literal>UNION</literal> in output of <literal>EXPLAIN
- SELECT</literal> statement.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <command>mysql</command> command-line client now supports
- multiple <option>-e</option> options. (Bug #591)
- </para>
- </listitem>
-
- <listitem>
- <para>
- New <literal>myisam_data_pointer_size</literal> system
- variable. See <xref linkend="server-system-variables"/>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The <option>--log-warnings</option> server option now is
- enabled by default. Disable with
- <option>--skip-log-warnings</option>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- The
- <option>--defaults-file=<replaceable>file_name</replaceable></option>
- option now requires that the filename must exist (safety fix).
- (Bug #3413)
- </para>
- </listitem>
-
- <listitem>
- <para>
- <command>mysqld_multi</command> now creates the log in the
- directory named by <literal>datadir</literal> (from the
- <literal>[mysqld]</literal> section in
- <filename>my.cnf</filename> or compiled in), not in
- <filename>/tmp</filename>. Thanks to Christian Hammers from
- Debian Security Team for reporting this.
- (<ulink url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0388">CAN-2004-0388</ulink>)
- </para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis role="bold">Warning: Incompatible change!</emphasis>
+ <emphasis role="bold">Warning: Incompatible change:</emphasis>
String comparison now works according to the SQL standard.
Because we have that <literal>'a' = 'a '</literal> then from
it must follow that <literal>'a' > 'a\t'</literal>. (The
@@ -8013,7 +7955,7 @@
would be treated as a <literal>TIMESTAMP DEFAULT 0</literal>
column. <literal>NOW</literal> is supported as an alias for
<literal>CURRENT_TIMESTAMP</literal>.
- <emphasis role="bold">Warning: Incompatible change!</emphasis>
+ <emphasis role="bold">Warning: Incompatible change:</emphasis>
Unlike in previous versions, explicit specification of default
values for <literal>TIMESTAMP</literal> column is never
ignored and turns off the auto-set feature (unless you have
@@ -8023,7 +7965,7 @@
<listitem>
<para>
- <emphasis role="bold">Warning: Incompatible change!</emphasis>
+ <emphasis role="bold">Warning: Incompatible change:</emphasis>
Renamed prepared statements C API functions:
</para>
@@ -8089,7 +8031,7 @@
<listitem>
<para>
- <emphasis role="bold">Warning: Incompatible change!</emphasis>
+ <emphasis role="bold">Warning: Incompatible change:</emphasis>
The signature of the <literal>mysql_stmt_prepare()</literal>
function was changed to <literal>int
mysql_stmt_prepare(MYSQL_STMT *stmt, const char *query,
@@ -8102,6 +8044,94 @@
<listitem>
<para>
+ <emphasis role="bold">Warning: Incompatible change:</emphasis>
+ The <literal>Type</literal> output column for <literal>SHOW
+ TABLE STATUS</literal> now is labeled
+ <literal>Engine</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Added the <literal>EXAMPLE</literal> storage engine.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The <command>mysqld</command> Windows server was renamed to
+ <command>mysqld-debug</command>. See
+ <xref linkend="windows-select-server"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Added <literal>Handler_discover</literal> status variable.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Added support for character set conversion and
+ <literal>MYSQL_TYPE_BLOB</literal> type code in prepared
+ statement protocol.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Added explanation of hidden <literal>SELECT</literal> of
+ <literal>UNION</literal> in output of <literal>EXPLAIN
+ SELECT</literal> statement.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <command>mysql</command> command-line client now supports
+ multiple <option>-e</option> options. (Bug #591)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ New <literal>myisam_data_pointer_size</literal> system
+ variable. See <xref linkend="server-system-variables"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The <option>--log-warnings</option> server option now is
+ enabled by default. Disable with
+ <option>--skip-log-warnings</option>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The
+ <option>--defaults-file=<replaceable>file_name</replaceable></option>
+ option now requires that the filename must exist (safety fix).
+ (Bug #3413)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <command>mysqld_multi</command> now creates the log in the
+ directory named by <literal>datadir</literal> (from the
+ <literal>[mysqld]</literal> section in
+ <filename>my.cnf</filename> or compiled in), not in
+ <filename>/tmp</filename>. Thanks to Christian Hammers from
+ Debian Security Team for reporting this.
+ (<ulink url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0388">CAN-2004-0388</ulink>)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
<literal>SHOW GRANTS</literal> with no <literal>FOR</literal>
clause or with <literal>FOR CURRENT_USER()</literal> shows the
privileges for the current session.
@@ -8280,15 +8310,6 @@
<listitem>
<para>
- <emphasis role="bold">Warning: Incompatible change!</emphasis>
- The <literal>Type</literal> output column for <literal>SHOW
- TABLE STATUS</literal> now is labeled
- <literal>Engine</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para>
Added <literal>init_connect</literal> and
<literal>init_slave</literal> system variables. The values
should be SQL statements to be executed when each client
@@ -9397,17 +9418,7 @@
<listitem>
<para>
- <emphasis role="bold">Important note:</emphasis> If you
- upgrade to <literal>InnoDB</literal>-4.1.1 or higher, you
- cannot downgrade to a version lower than 4.1.1 any more! That
- is because earlier versions of <literal>InnoDB</literal> are
- not aware of multiple tablespaces.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis role="bold">Warning: Incompatible change!</emphasis>
+ <emphasis role="bold">Warning: Incompatible change:</emphasis>
Renamed the C API <literal>mysql_prepare_result()</literal>
function to <literal>mysql_get_metadata()</literal> because
the old name was confusing.
@@ -9416,7 +9427,7 @@
<listitem>
<para>
- <emphasis role="bold">Warning: Incompatible change!</emphasis>
+ <emphasis role="bold">Warning: Incompatible change:</emphasis>
Client authentication now is based on 41-byte passwords in the
<literal>user</literal> table, not 45-byte passwords as in
4.1.0. Any 45-byte passwords created for 4.1.0 must be reset
@@ -9427,6 +9438,16 @@
<listitem>
<para>
+ <emphasis role="bold">Important note:</emphasis> If you
+ upgrade to <literal>InnoDB</literal>-4.1.1 or higher, you
+ cannot downgrade to a version lower than 4.1.1 any more! That
+ is because earlier versions of <literal>InnoDB</literal> are
+ not aware of multiple tablespaces.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
Added <literal>secure_auth</literal> global server system
variable and <option>--secure-auth</option> server option that
disallow authentication for accounts that have old (pre-4.1.1)
@@ -10305,6 +10326,23 @@
<listitem>
<para>
+ <emphasis role="bold">Warning: Incompatible change:</emphasis>
+ <literal>TIMESTAMP</literal> is now returned as a string of
+ type <literal>'YYYY-MM-DD HH:MM:SS'</literal> and different
+ timestamp lengths are not supported.
+ </para>
+
+ <para>
+ This change was necessary for SQL standards compliance. In a
+ future version, a further change will be made (backward
+ compatible with this change), allowing the timestamp length to
+ indicate the desired number of digits of fractions of a
+ second.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
Renamed <literal>SHOW MASTER LOGS</literal> statement to
<literal>SHOW BINARY LOGS</literal>.
</para>
@@ -10501,23 +10539,6 @@
<listitem>
<para>
- <emphasis role="bold">Warning: Incompatible change!</emphasis>
- <literal>TIMESTAMP</literal> is now returned as a string of
- type <literal>'YYYY-MM-DD HH:MM:SS'</literal> and different
- timestamp lengths are not supported.
- </para>
-
- <para>
- This change was necessary for SQL standards compliance. In a
- future version, a further change will be made (backward
- compatible with this change), allowing the timestamp length to
- indicate the desired number of digits of fractions of a
- second.
- </para>
- </listitem>
-
- <listitem>
- <para>
New faster client/server protocol that supports prepared
statements, bound parameters, and bound result columns, binary
transfer of data, warnings.
Modified: trunk/refman-common/news-5.0.xml
===================================================================
--- trunk/refman-common/news-5.0.xml 2005-12-14 14:45:22 UTC (rev 559)
+++ trunk/refman-common/news-5.0.xml 2005-12-14 17:37:24 UTC (rev 560)
@@ -8410,6 +8410,35 @@
<listitem>
<para>
+ The <literal>DECIMAL</literal> and <literal>NUMERIC</literal>
+ data types now are handled with a fixed-point library that
+ allows for precision math handling that results in more
+ accurate results. See <xref linkend="precision-math"/>.
+ </para>
+
+ <para>
+ <emphasis role="bold">Warning: Incompatible change:</emphasis>
+ A consequence of the change in handling of the
+ <literal>DECIMAL</literal> and <literal>NUMERIC</literal>
+ fixed-point data types is that the server is more strict to
+ follow standard SQL. For example, a data type of
+ <literal>DECIMAL(3,1)</literal> stores a maximum value of
+ 99.9. Previously, the server allowed larger numbers to be
+ stored. That is, it stored a value such as 100.0 as 100.0. Now
+ the server clips clips 100.0 to the maximum allowable value of
+ 99.9. If you have tables that were created before MySQL 5.0.3
+ and that contain floating-point data not strictly legal for
+ the column type, you should alter the data types of those
+ columns. For example:
+ </para>
+
+<programlisting>
+ALTER TABLE <replaceable>tbl_name</replaceable> MODIFY <replaceable>col_name</replaceable> DECIMAL(4,1);
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
<emphasis role="bold">Incompatible change</emphasis>: The C
API <literal>ER_WARN_DATA_TRUNCATED</literal> warning symbol
was renamed to <literal>WARN_DATA_TRUNCATED</literal>.
| Thread |
|---|
| • svn commit - mysqldoc@docsrva: r560 - in trunk: . refman-4.1 refman-5.0 refman-common | paul | 14 Dec |