End of Product Lifecycle. Active development and support for MySQL Database Server versions 3.23, 4.0, and 4.1 has ended. For details, see http://www.mysql.com/about/legal/lifecycle/#calendar. Please consider upgrading to a recent version. Further updates to the content of this manual will be minimal. All formats of this manual will continue to be available until 31 Dec 2010.
Functionality added or changed:
When a date column is set NOT NULL and
contains 0000-00-00, it will be updated for
UPDATE statements that contains
in the
WHERE clause.
(Bug#14186)columnname IS NULL
When executing single-table
UPDATE or
DELETE queries containing an
ORDER BY ... LIMIT
clause, but not having
any NWHERE clause, MySQL can now take
advantage of an index to read the first
N rows in the ordering specified in
the query. If an index is used, only the first
N records will be read, as opposed to
scanning the entire table.
(Bug#12915)
The MySQL-server RPM now explicitly assigns
the mysql system user to the
mysql user group during the postinstallation
process. This corrects an issue with upgrading the server on
some Linux distributions whereby a previously existing
mysql user was not changed to the
mysql group, resulting in wrong groups for
files created following the installation.
(Bug#12823)
MySQL 4.1 now supports character set conversion for
seven additional cp950 characters into the
big5 character set:
0xF9D6, 0xF9D7,
0xF9D8, 0xF9D9,
0xF9DA, 0xF9DB, and
0xF9DC.
If you move data containing these additional characters to an older MySQL installation which does not support them, you may encounter errors.
The CHAR() function now takes an
optional USING
clause that may be
used to produce a result in a specific character set rather than
in the connection character set.
charset
Bugs fixed:
MySQL Cluster:
Creating a table with packed keys failed silently.
NDB now supports the
PACK_KEYS option to
CREATE TABLE correctly.
(Bug#14514)
MySQL Cluster:
Repeated transactions using unique index lookups could cause a
memory leak leading to error 288, Out of index
operations in transaction coordinator.
(Bug#14199)
MySQL Cluster:
REPLACE failed when attempting to
update a primary key value in a Cluster table.
(Bug#14007)
MySQL Cluster:
The perror utility included with the
MySQL-Server RPM did not provide support for
the --ndb option. It now supports
this option, and so can be used to obtain error message text for
MySQL Cluster error codes.
(Bug#13740)
MySQL Cluster:
Placing multiple [tcp default] sections in
the cluster's config.ini file crashed
ndb_mgmd. (The process now exits gracefully
in such cases, with an appropriate error message.)
(Bug#13611)
Replication:
Multiple update queries using any type of subquery would be
ignored by a replication slave when a condition such as
--replicate-ignore-table like
condition was used.
(Bug#13236)
Replication:
An UPDATE query using a join
would be executed incorrectly on a replication slave.
(Bug#12618)
Replication: On Windows, the server could crash during shutdown if both replication threads and normal client connection threads were active. (Bug#11796)
Replication:
InnoDB: During replication, There was a
failure to record events in the binary log that still occurred
even in the event of a
ROLLBACK. For
example, this sequence of commands:
BEGIN; CREATE TEMPORARY TABLE t1 (a INT) ENGINE=INNODB; ROLLBACK; INSERT INTO t1 VALUES (1);
would succeed on the replication master as expected. However,
the INSERT would fail on the
slave because the
ROLLBACK would
(erroneously) cause the
CREATE TEMPORARY
TABLE statement not to be written to the binlog.
(Bug#7947)
Closed a memory leak in the SSL code. (Bug#14780)
Deletes from a CSV table could cause table
corruption.
(Bug#14672)
A LIMIT-related optimization failed to take
into account that MyISAM table indexes can be
disabled, causing Error 124 when it tried to use such an index.
(Bug#14616)
Selecting from a table in both an outer query and a subquery could cause a server crash. (Bug#14482)
CREATE TABLE could crash the server and write invalid
data into the tbl_name (...)
SELECT ....frm file if the
CREATE TABLE and
SELECT both contained a column
with the same name. Also, if a default value is specified in the
column definition, it is now actually used.
(Bug#14480)
mysql_fix_privilege_tables.sql contained an
erroneous comment that resulted in an error when the file
contents were processed.
(Bug#14469)
Creating a table containing an
ENUM or SET
column from within a stored procedure or prepared statement
caused a server crash later when executing the procedure or
statement.
(Bug#14410)
Non-latin1 object names were written with
wrong character set to grant tables.
(Bug#14406)
For a table that had been opened with HANDLER
OPEN, issuing OPTIMIZE
TABLE, ALTER TABLE, or
REPAIR TABLE caused a server
crash.
(Bug#14397)
Portability fixes to support OpenSSL 0.9.8a. (Bug#14221)
A UNION of
DECIMAL columns could produce
incorrect results.
(Bug#14216)
Statements of the form
CREATE TABLE ...
SELECT ... that created a column with a multi-byte
character set could incorrectly calculate the maximum length of
the column, resulting in a Specified key was too
long error.
(Bug#14139)
Use of WITH ROLLUP PROCEDURE ANALYSE() could
hang the server.
(Bug#14138)
When the DATE_FORMAT() function
appeared in both the SELECT and
ORDER BY clauses of a query but with
arguments that differ by case (for example,
%m and %M), incorrect
sorting may have occurred.
(Bug#14016)
TIMEDIFF(),
ADDTIME(), and
STR_TO_DATE() were not reporting
that they could return NULL, so functions
that invoked them might misinterpret their results.
(Bug#14009)
An update of a CSV table could cause a server
crash.
(Bug#13894)
For MyISAM tables, incorrect query results or
incorrect updates could occur under these conditions: There is a
multiple-column index that includes a
BLOB column that is not the last
column in the index, and the statement performs a lookup on the
index using key column values that have NULL
for the BLOB column and that
provide values for all columns up to the
BLOB column and at least the next
column in the index.
(Bug#13814)
The example configuration files supplied with MySQL
distributions listed the
thread_cache_size variable as
thread_cache.
(Bug#13811)
mysqld_safe did not correctly start the
-max version of the server (if it was
present) if the --ledir option was given.
(Bug#13774)
Character set conversion was not being done for
FIND_IN_SET().
(Bug#13751)
On BSD systems, the system crypt() call could
return an error for some salt values. The error was not handled,
resulting in a server crash.
(Bug#13619)
Given a column col_name defined as
NOT NULL, a SELECT ... FROM ...
WHERE
query following col_name IS NULLSHOW TABLE STATUS
would erroneously return a nonempty result.
(Bug#13535)
Specifying --default-character-set=cp-932 for
mysqld would cause SQL scripts containing
comments written using that character set to fail with a syntax
error.
(Bug#13487)
Use of in the
col_name =
VALUES(col_name)ON DUPLICATE KEY UPDATE clause of an
INSERT statement failed with an
Column ' error.
(Bug#13392)col_name' in field
list is ambiguous
LIKE operations did not work reliably for the
cp1250 character set.
(Bug#13347)
CAST(1E+300 TO SIGNED INT)
produced an incorrect result on little-endian machines.
(Bug#13344)
The default value of
query_prealloc_size was set to
8192, lower than its minimum of 16384. The minimum has been
lowered to 8192.
(Bug#13334)
mysqladmin and mysqldump would hang on SCO OpenServer. (Bug#13238)
SELECT DISTINCT
CHAR( returned
incorrect results after col_name)SET NAMES utf8.
(Bug#13233)
The server did not take character set into account in checking
the width of the mysql.user.Password column.
As a result, it could incorrectly generate long password hashes
even if the column was not long enough to hold them.
(Bug#13064)
With --log-slave-updates
Exec_master_log_pos of SQL thread lagged IO
(Bug#13023)
Maximum values were handled incorrectly for command-line options
of type GET_LL.
(Bug#12925)
The endian byte in for spatial values in WKB format was not consistently respected. (Bug#12839)
make failed when attempting to build MySQL in different directory other than that containing the source. (Bug#11827)
An expression in an ORDER BY clause failed
with Unknown column
' if the expression referred to a column alias.
(Bug#11694)col_name' in 'order
clause'
LOAD DATA
INFILE would not accept the same character for both
the ESCAPED BY and the ENCLOSED
BY clauses.
(Bug#11203)
Issuing STOP SLAVE after having
acquired a global read lock with
FLUSH TABLES WITH READ
LOCK caused a deadlock. Now STOP
SLAVE is generates an error in such circumstances.
(Bug#10942)
Corrected a memory-copying problem for big5
values when using icc compiler on Linux IA-64
systems.
(Bug#10836)
PROCEDURE ANALYSE() could suggest a data type
with a negative display width.
(Bug#10716)
InnoDB: Pad UTF-8
VARCHAR columns with
0x20. Pad UCS2
CHAR columns with
0x0020.
(Bug#10511)
Perform character set conversion of constant values whenever possible without data loss. (Bug#10446)
PURGE MASTER
LOGS statement that used subquery for date crashed
server.
(Bug#10308)
Multiple race conditions existed in OpenSSL, particularly noticeable on Solaris. (Bug#9270)
The --interactive-timeout and
--slave-net-timeout options for
mysqld were not being obeyed on Mac OS X and
other BSD-based platforms.
(Bug#8731)
Queries of the form (SELECT ...) ORDER BY ...
were being treated as a UNION.
This improperly resulted in only distinct values being returned
(because UNION by default
eliminates duplicate results). Also, references to column
aliases in ORDER BY clauses following
parenthesized SELECT statements
were not resolved properly.
(Bug#7672)
Character set file parsing during
mysql_real_connect() read past
the end of a memory buffer.
(Bug#6413)
Full-text indexing/searching failed for words that end with more than one apostrophe. (Bug#5686)
On Windows, the server was not ignoring hidden or system directories that Windows may have created in the data directory, and would treat them as available databases. (Bug#4375)

User Comments
Add your own comment.