End of Product LifecycleActive 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
MySQL 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.
(Bug #12476)
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
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)
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
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)
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:
REPLACE failed when attempting
to update a primary key value in a Cluster table. (Bug #14007)
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: 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)
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)
Replication: On Windows, the server could crash during shutdown if both replication threads and normal client connection threads were active. (Bug #11796)
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:
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)
Replication: An
UPDATE query using a join would
be executed incorrectly on a replication slave. (Bug #12618)
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)
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)
make failed when attempting to build MySQL in different directory other than that containing the source. (Bug #11827)
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)
InnoDB: Pad UTF-8
VARCHAR columns with
0x20. Pad UCS2
CHAR columns with
0x0020. (Bug #10511)
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)
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)
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'
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)
With --log-slave-updates
Exec_master_log_pos of SQL thread lagged IO
(Bug #13023)
LIKE operations did not work reliably for
the cp1250 character set. (Bug #13347)
mysqladmin and mysqldump would hang on SCO OpenServer. (Bug #13238)
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)
Closed a memory leak in the SSL code. (Bug #14780)
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)
A UNION of
DECIMAL columns could produce
incorrect results. (Bug #14216)
Use of WITH ROLLUP PROCEDURE ANALYSE()
could hang the server. (Bug #14138)
For a table that had been opened with HANDLER
OPEN, issuing OPTIMIZE
TABLE, ALTER TABLE,
or REPAIR TABLE caused a server
crash. (Bug #14397)
ALTER TABLE ... ENABLE INDEXES treated
NULL values as equal when collecting index
statistics for MyISAM tables, resulting in
different statistics from those generated by
ANALYZE TABLE and causing the
optimizer to make poor index choices later. The same problem
occurred for bulk insert statistics collection. Now
NULL values are treated as unequal, just as
for ANALYZE TABLE. (Bug #9622)
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)
Corrected a memory-copying problem for big5
values when using icc compiler on Linux
IA-64 systems. (Bug #10836)
LOAD DATA
INFILE would not accept the same character for both
the ESCAPED BY and the ENCLOSED
BY clauses. (Bug #11203)
An update of a CSV table could cause a
server crash. (Bug #13894)
Full-text indexing/searching failed for words that end with more than one apostrophe. (Bug #5686)
Character set conversion was not being done for
FIND_IN_SET(). (Bug #13751)
The endian byte in for spatial values in WKB format was not consistently respected. (Bug #12839)
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)
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
SELECT DISTINCT
CHAR( returned
incorrect results after col_name)SET NAMES utf8.
(Bug #13233)
Maximum values were handled incorrectly for command-line
options of type GET_LL. (Bug #12925)
CAST(1E+300 TO SIGNED INT)
produced an incorrect result on little-endian machines. (Bug
#13344)
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)
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)
mysqld_safe did not correctly start the
-max version of the server (if it was
present) if the --ledir option was given.
(Bug #13774)
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)
Deletes from a CSV table could cause table
corruption. (Bug #14672)
Selecting from a table in both an outer query and a subquery could cause a server crash. (Bug #14482)
Character set file parsing during
mysql_real_connect() read past
the end of a memory buffer. (Bug #6413)
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)
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)
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)
The example configuration files supplied with MySQL
distributions listed the
thread_cache_size variable as
thread_cache. (Bug #13811)
Perform character set conversion of constant values whenever possible without data loss. (Bug #10446)
Portability fixes to support OpenSSL 0.9.8a. (Bug #14221)
Non-latin1 object names were written with
wrong character set to grant tables. (Bug #14406)
PROCEDURE ANALYSE() could suggest a data
type with a negative display width. (Bug #10716)
mysql_fix_privilege_tables.sql contained
an erroneous comment that resulted in an error when the file
contents were processed. (Bug #14469)
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)

User Comments
Add your own comment.