This is a Monthly Rapid Update release of the MySQL Enterprise Server 5.0.
This section documents all changes and bugfixes that have been applied since the last MySQL Enterprise Server release (5.0.48). If you would like to receive more fine-grained and personalized update alerts about fixes that are relevant to the version and features you use, please consider subscribing to MySQL Enterprise (a commercial MySQL offering). For more details please see http://www.mysql.com/products/enterprise/advisors.html.
Functionality added or changed:
Incompatible Change:
The parser accepted statements that contained /* ...
*/
that were not properly closed with
*/
, such as SELECT 1 /* +
2
. Statements that contain unclosed
/*
-comments now are rejected with a syntax
error.
This fix has the potential to cause incompatibilities. Because
of Bug#26302, which caused the trailing */
to
be truncated from comments in views, stored routines, triggers,
and events, it is possible that objects of those types may have
been stored with definitions that now will be rejected as
syntactically invalid. Such objects should be dropped and
re-created so that their definitions do not contain truncated
comments. If a stored object definition contains only a single
statement (does not use a
BEGIN ...
END
block) and contains a comment within the
statement, the comment should be moved to follow the statement
or the object should be rewritten to use a
BEGIN ...
END
block. For example, this statement:
CREATE PROCEDURE p() SELECT 1 /* my comment */ ;
Can be rewritten in either of these ways:
CREATE PROCEDURE p() SELECT 1; /* my comment */ CREATE PROCEDURE p() BEGIN SELECT 1 /* my comment */ ; END;
MySQL Cluster:
Mapping of NDB
error codes to MySQL
storage engine error codes has been improved.
(Bug#28423)
MySQL Cluster: The output from the cluster management client showing the progress of data node starts has been improved. (Bug#23354)
Server parser performance was improved for expression parsing by lowering the number of state transitions and reductions needed. (Bug#30625)
Server parser performance was improved for boolean expressions. (Bug#30237)
Bugs fixed:
Incompatible Change:
The file mysqld.exe
was mistakenly included
in binary distributions between MySQL 5.0.42 and 5.0.48. You
should use mysqld-nt.exe
.
(Bug#32197)
Incompatible Change:
Multiple-table DELETE
statements
containing ambiguous aliases could have unintended side effects
such as deleting rows from the wrong table. Example:
DELETE FROM t1 AS a2 USING t1 AS a1 INNER JOIN t2 AS a2;
This fix enables alias declarations to be made only in the
table_references
part. Elsewhere in
the statement, alias references are allowed but not alias
declarations. However, this patch was reverted in MySQL 5.0.54
because it changed the behavior of a General Availability MySQL
release.
(Bug#30234)
See also Bug#27525.
MySQL Cluster: Packaging:
Some commercial MySQL Cluster RPM packages included support for
the InnoDB
storage engine.
(InnoDB
is not part of the standard
commercial MySQL Cluster offering.)
(Bug#31989)
MySQL Cluster: Attempting to restore a backup made on a cluster host using one endian to a machine using the other endian could cause the cluster to fail. (Bug#29674)
MySQL Cluster:
Reads on BLOB
columns were not
locked when they needed to be to guarantee consistency.
(Bug#29102)
See also Bug#31482.
MySQL Cluster:
A query using joins between several large tables and requiring
unique index lookups failed to complete, eventually returning
Uknown Error after a very long period of
time. This occurred due to inadequate handling of instances
where the Transaction Coordinator ran out of
TransactionBufferMemory
, when the cluster
should have returned NDB error code 4012 (Request
ndbd time-out).
(Bug#28804)
MySQL Cluster:
The description of the --print
option provided
in the output from ndb_restore --help
was incorrect.
(Bug#27683)
MySQL Cluster:
An invalid subselect on an NDB
table could cause mysqld to crash.
(Bug#27494)
MySQL Cluster:
An attempt to perform a SELECT ... FROM
INFORMATION_SCHEMA.TABLES
whose result included
information about NDB
tables for
which the user had no privileges crashed the MySQL Server on
which the query was performed.
(Bug#26793)
When a TIMESTAMP
with a nonzero
time part was converted to a DATE
value, no warning was generated. This caused index lookups to
assume that this is a valid conversion and was returning rows
that match a comparison between a
TIMESTAMP
value and a
DATE
keypart. Now a warning is
generated so that TIMESTAMP
with
a nonzero time part will not match
DATE
values.
(Bug#31221)
A server crash could occur when a
non-DETERMINISTIC
stored function was used in
a GROUP BY
clause.
(Bug#31035)
For an InnoDB
table if a
SELECT
was ordered by the primary
key and also had a WHERE field = value
clause
on a different field that was indexed, a DESC
order instruction would be ignored.
(Bug#31001)
A failed HANDLER ... READ
operation could
leave the table in a locked state.
(Bug#30632)
The optimization that uses a unique index to remove
GROUP BY
did not ensure that the index was
actually used, thus violating the ORDER BY
that is implied by GROUP BY
.
(Bug#30596)
SHOW STATUS LIKE 'Ssl_cipher_list'
from a
MySQL client connected via SSL returned an empty string rather
than a list of available ciphers.
(Bug#30593)
Issuing a DELETE
statement having
both an ORDER BY
clause and a
LIMIT
clause could cause
mysqld to crash.
(Bug#30385)
The Last_query_cost
status
variable value can be computed accurately only for simple
“flat” queries, not complex queries such as those
with subqueries or UNION
.
However, the value was not consistently being set to 0 for
complex queries.
(Bug#30377)
Queries that had a GROUP BY
clause and
selected COUNT(DISTINCT
returned
incorrect results.
(Bug#30324)bit_column
)
Using DISTINCT
or GROUP BY
on a BIT
column in a
SELECT
statement caused the
column to be cast internally as an integer, with incorrect
results being returned from the query.
(Bug#30245)
Short-format mysql commands embedded within
/*! ... */
comments were parsed incorrectly
by mysql, which discarded the rest of the
comment including the terminating */
characters. The result was a malformed (unclosed) comment. Now
mysql does not discard the
*/
characters.
(Bug#30164)
When mysqldump wrote
DROP DATABASE
statements within
version-specific comments, it included the terminating semicolon
in the wrong place, causing following statements to fail when
the dump file was reloaded.
(Bug#30126)
If a view used a function in its
SELECT
statement, the columns
from the view were not inserted into the
INFORMATION_SCHEMA.COLUMNS
table.
(Bug#29408)
Killing an SSL connection on platforms where MySQL is compiled
with -DSIGNAL_WITH_VIO_CLOSE
(Windows, Mac OS
X, and some others) could crash the server.
(Bug#28812)
A SELECT
in one connection could
be blocked by
INSERT ...
ON DUPLICATE KEY UPDATE
in another connection even
when low_priority_updates
is
set.
(Bug#28587)
mysql_upgrade could run binaries dynamically linked against incorrect versions of shared libraries. (Bug#28560)
SHOW COLUMNS
returned
NULL
instead of the empty string for the
Default
value of columns that had no default
specified.
(Bug#27747)
With recent versions of DBD::mysql, mysqlhotcopy generated table names that were doubly qualified with the database name. (Bug#27694)
For InnoDB
tables, CREATE TABLE a AS
SELECT * FROM A
would fail.
(Bug#25164)
Under heavy load with a large query cache, invalidating part of the cache could cause the server to freeze (that is, to be unable to service other operations until the invalidation was complete). (Bug#21074)
See also Bug#39253.
Worked around an icc problem with an incorrect machine instruction being generated in the context of software pre-fetching after a subroutine got in-lined. (Upgrading to icc 10.0.026 makes the workaround unnecessary.) (Bug#20803)
Parameters of type DATETIME
or
DATE
in stored procedures were
silently converted to VARBINARY
.
(Bug#13675)
User Comments
Add your own comment.