End of Product Lifecycle. Active development and support for MySQL database server versions 3.23, 4.0, and 4.1 has ended. However, for MySQL 4.0 and 4.1, there is still extended support available. For details, see http://www.mysql.com/company/legal/lifecycle/#calendar. According to the MySQL Lifecycle Policy (see http://www.mysql.com/company/legal/lifecycle/#policy), only Security and Severity Level 1 issues will still be fixed for MySQL 4.0 and 4.1. Please consider upgrading to a recent version (MySQL 5.0 or 5.1).
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)
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 (i.e. %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 non-empty 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)
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)
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)
An UPDATE query using a join would be
executed incorrectly on a replication slave.
(Bug#12618)
make failed when attempting to build MySQL in different directory other than that containing the source. (Bug#11827)
On Windows, the server could crash during shutdown if both replication threads and normal client connection threads were active. (Bug#11796)
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)
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)
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.