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.50). 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
The default value of the
connect_timeout system variable
was increased from 5 to 10 seconds. This might help in cases
where clients frequently encounter errors of the form
Lost connection to MySQL server at
XXX', system error:
mysqldump produces a
completed on comment
at the end of the dump if
--comments is given. The date
causes dump files for identical data take at different times to
appear to be different. The new options
control whether the date is added to the comment.
suppresses date printing. The default is
--dump-date (include the date
in the comment).
RENAME TABLE against a
table with explicit
DATA DIRECTORY and
INDEX DIRECTORY options can be used to
overwrite system table information by replacing the symbolic
link points. the file to which the symlink points.
MySQL will now return an error when the file to which the symlink points already exists. (Bug #32111, CVE-2007-5969)
When using a
FEDERATED table, the local
server could be forced to crash if the remote server returned a
result with fewer columns than expected.
ALTER VIEW retained the original
DEFINER value, even when altered by another
user, which could enable that user to gain the access rights of
the view. Now
ALTER VIEW is
permitted only to the original definer or users with the
Incompatible Change: It was possible to create a view having a column whose name consisted of an empty string or space characters only.
One result of this bug fix is that aliases for columns in the
SELECT statement are checked to ensure
that they are legal column names. In particular, the length must
be within the maximum column length of 64 characters, not the
maximum alias length of 256 characters. This can cause problems
for replication or loading dump files. For additional
information and workarounds, see
Restrictions on Views.
References: See also Bug #31202.
Several type-preserving functions and operators returned an
incorrect result type that does not match their argument types:
CASE. These now aggregate using the
precise SQL types of their arguments rather than the internal
type. In addition, the result type of the
STR_TO_DATE() function is now
DATETIME by default.
mode enabled, queries such as
SELECT a FROM t1 HAVING
COUNT(*)>2 were not being rejected as they should
This fix results in the following behavior:
There is a check against mixing group and nongroup columns
This check is done both for the select list and for the
HAVING clause if there is one.
This behavior differs from previous versions as follows:
An uninitialized variable in the
NDB storage engine code led to
AUTO_INCREMENT failures when the server was
compiled with gcc 4.2.1.
References: This bug was introduced by Bug #27437.
NDB storage engine code was not
safe for strict-alias optimization in gcc
UPDATE IGNORE could sometimes fail on
NDB tables due to the use of
unitialized data when checking for duplicate keys to be ignored.
An error with an
if statement in
sql/ha_ndbcluster.cc could potentially lead
to an infinite loop in case of failure when working with
AUTO_INCREMENT columns in
MySQL Cluster: An interpreted program of sufficient size and complexity could cause all cluster data nodes to shut down due to buffer overruns. (Bug #29390)
MySQL Cluster: Transaction timeouts were not handled well in some circumstances, leading to excessive number of transactions being aborted unnecessarily. (Bug #30379)
MySQL Cluster: In some cases, the cluster managment server logged entries multiple times following a restart of ndb_mgmd. (Bug #29565)
Use of the
@@hostname system variable in
not replicate. The workaround is to select its value into a user
variable (which does replicate) and insert that.
DISABLE KEYS and
KEYS on a nonempty table would cause the size of the
index file for the table to grow considerable. This was because
DISABLE KEYS operation would only mark
the existing index, without deleting the index blocks. The
ENABLE KEYS operation would re-create the
index, adding new blocks, while the previous index blocks would
remain. Existing indexes are now dropped and recreated when the
ENABLE KEYS statement is executed.
Under some circumstances, a UDF initialization function could be passed incorrect argument lengths. (Bug #29804)
On Windows, the
implementation was incorrect.
On Windows, the
implementation was incorrect. One symptom was that invalidating
the query cache could cause a server crash.
DELETE statements that remove
rows based on an index read could fail to remove all matching
RENAME while tables were open for
HANDLER statements could
cause a server crash.
Clients were ignoring the TCP/IP port number specified as the
default port using the
Internal conversion routines could fail for several multibyte
character sets (
sjis) for empty
strings or during evaluation of
(Bug #31069, Bug #31070)
Allocation of an insufficiently large group-by buffer following creation of a temporary table could lead to a server crash. (Bug #31249)
The fix for Bug #24989 introduced a problem such that a
NULL thread handler could be used during a
rollback operation. This problem is unlikely to be seen in
The parser confused user-defined function (UDF) and stored
function creation for
FUNCTION and required that there be a default database
when creating UDFs, although there is no such requirement.
(Bug #28318, Bug #29816)
--without-geometry option for
configure caused server compilation to fail.
Values for the
incorrectly were treated as values for the
MEMORY tables, lookups for
NULL values in
indexes could return incorrect results.
Versions of mysqldump from MySQL 4.1 or
higher tried to use
START TRANSACTION WITH CONSISTENT
SNAPSHOT if the
--master-data options were
given, even with servers older than 4.1 that do not support
CONVERT( would fail on invalid input, but processing
was not aborted for the
WHERE clause, leading
to a server crash.
mysql-test-run.pl tried to create files in a
directory where it could not be expected to have write
permission. mysqltest created
.reject files in a directory other than the
one where test results go.
comp_err created files with permissions such that they might be inaccessible during make install operations. (Bug #27789)
GROUP_CONCAT() could cause a
Values of types
ZEROFILL, were not zero-filled when converted to a
character representation in the C prepared statement API.
Several buffer-size system variables were either being handled incorrectly for large values (for settings larger than 4GB, they were truncated to values less than 4GB without a warning), or were limited unnecessarily to 4GB even on 64-bit systems. The following changes were made:
larger than 4GB are permitted on 64-bit platforms (except
Windows, for which large values are truncated to 4GB with a
MAKEDATE() incorrectly moved year
values in the 100 to 200 range into the 1970 to 2069 range.
(This is legitimate for 00 to 99, but three-digit years should
be used unchanged.)
The length of the result from
IFNULL() could be calculated
incorrectly because the sign of the result was not taken into
SELECT 1 REGEX NULL caused an assertion
failure for debug servers.
A buffer used when setting variables was not dimensioned to
accommodate the trailing
'\0' byte, so a
single-byte buffer overrun was possible.
A character set introducer followed by a hexadecimal or bit-value literal did not check its argument and could return an ill-formed result for invalid input. (Bug #30986)
CHAR( did not check its
argument and could return an ill-formed result for invalid
The result from
CHAR() did not add a leading 0x00 byte for input
strings with an odd number of bytes.
For a fatal error during a filesort in
find_all_keys(), the error was returned
without the necessary handler uninitialization, causing an
The result from
incorrectly assumed in some contexts to return a single-byte
After changing the SQL mode to a restrictive value that would make already inserted dates in a column be considered invalid, searches returned different results depending on whether the column was indexed. (Bug #28687)
SHOW VARIABLES did not display
relay_log_info_file system variables.
Selecting spatial types in a
UNION could cause a server crash.
The metadata in some
could be incorrect when a temporary table was used to evaluate a
The anonymous accounts were not being created during MySQL installation. (Bug #27692)
MyISAM tables could not exceed 4294967295
(232 – 1) rows on Windows.
INFORMATION_SCHEMA tables are intended
for internal use, but could be accessed by using
An assertion designed to detect a bug in the
ROLLUP implementation would incorrectly be
triggered when used in a subquery context with noncacheable
On Windows, mysql_upgrade created temporary
C:\ and did not clean them up.
MOD() function and the
% operator crashed the server for a divisor
less than 1 with a very long fractional part.
GROUP BY on an expression of the form
caused a server
crash due to incorrect calculation of number of decimals.
When invoked with constant arguments,
STR_TO_DATE() could use a cached
value for the format string and return incorrect results.
For a spatial column with a regular
SPATIAL) index, queries failed if the
optimizer tried to use the index.
NULL when used in an
BY that was evaluated using
filesort, a server crash could result.
When expanding a
* in a
NATURAL join, the
check for table access for both tables in the join was done
using only the grant information of the first table.
Setting certain values on a table using a spatial index could cause the server to crash. (Bug #30286)
Index hints specified in view definitions were ignored when using the view to select from the base table. (Bug #28702)
Views do not have indexes, so index hints do not apply. Use of index hints when selecting from a view is no longer permitted. (Bug #28701)
The mysqlbug script did not include the
correct values of
CXXFLAGS that were used to configure the
configure did not find
on some Linux platforms.
GROUP BY NULL WITH ROLLUP could cause a
References: See also Bug #32558.
mysql_change_user() C API
function was subject to buffer overflow.
DROP USER caused an increase in
Under some circumstances,
CREATE TABLE ...
SELECT could crash the server or incorrectly report
that the table row size was too large.
GeomFromText() function could
cause a server crash if the first argument was
NULL or the empty string.
nonconstant arguments triggered an assertion failure.
Nonconstant arguments are no longer permitted.
A column with malformed multibyte characters could cause the full-text parser to go into an infinite loop. (Bug #31950)
The optimizer could ignore
ORDER BY in cases
when the result set is ordered by
resulting in rows being returned in incorrect order.
',' rather than an empty string when the
argument column contained only empty strings.
Under certain conditions, the presence of a
BY clause could cause an
clause to be ignored.
Full-text searches on
ucs2 columns caused a
server crash. (
FULLTEXT indexes on
ucs2 columns cannot be used, but it should be
possible to perform
IN BOOLEAN MODE searches
ucs2 columns without a crash.)
For an almost-full
MyISAM table, an insert
that failed could leave the table in a corrupt state.
The examined-rows count was not incremented for
variables were displayed by
VARIABLES but could not be accessed in expressions as
@@log_slow_queries. Also, attempting to set
produced an incorrect
Unknown system variable
message. Now these variables can be accessed in expressions and
attempting to set their values produces an error message that
the variable is read only.
HAVING could treat lettercase of table
aliases incorrectly if
Comparison results for
different from those for operators like
DATETIME-like values with
trailing extra characters such as
the values as
the other operators performed a binary-string comparison. Now
they all uniformly use a
comparison, but generate warnings for values with trailing
In debug builds, testing the result of an
NULL caused an assertion
User-defined functions are not loaded if the server is started
option, but the server did not properly handle this case and
issued an Out of memory error message
readline library has been updated to
version 5.2. This addresses issues in the
mysql client where history and editing within
the client would fail to work as expected.
SELECT ... INTO
OUTFILE, if the
ENCLOSED BY string
is empty and the
FIELDS TERMINATED BY string
started with a special character (one of
N), every occurrence
of the character within field values would be duplicated.
mysql stripped comments from statements sent
to the server. Now the
--skip-comments option can be
used to control whether to retain or strip comments. The default
(Bug #11230, Bug #26215)
A build problem introduced in MySQL 5.0.52 was resolved: The x86 32-bit Intel icc-compiled server binary had unwanted dependences on Intel icc runtime libraries. (Bug #32514)
The default grant tables on Windows contained information for
production.mysql.com, which should not
The rules for valid column names were being applied differently for base tables and views. (Bug #32496)