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 N
WHERE
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.