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.44). 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
variables are written to the binary log and honored during
replication. See The Binary Log.
MERGE table cannot be opened or used
because of a problem with an underlying table,
CHECK TABLE now displays
information about which table caused the problem.
MySQL Cluster: Replica redo logs were inconsistently handled during a system restart. (Bug #29354)
MySQL Cluster: When restarting a data node, queries could hang during that node's start phase 5, and continue only after the node had entered phase 6. (Bug #29364)
The management client's response to
WAIT COMPLETED did not include the backup ID.
DROP USER statements that named
multiple users, only some of which could be dropped, were
Index creation could corrupt the table definition in the
.frm file: 1) A table with the maximum
number of key segments and maximum length key name would have a
.frm file, due to incorrect
calculation of the total key length. 2)
MyISAM would reject a table with the maximum
number of keys and the maximum number of key segments in all
keys. (It would permit one less than this total maximum.) Now
MyISAM accepts a table defined with the
A query with
DISTINCT in the select list to
which the loose-scan optimization for grouping queries was
applied returned an incorrect result set when the query was used
mysqlbinlog --hexdump generated incorrect
output due to omission of the
#” comment character for some
Results for a select query that aliases the column names against
a view could duplicate one column while omitting another. This
bug could occur for a query over a multiple-table view that
ORDER BY clause in its
Under ActiveState Perl,
would not run.
For a multiple-row insert into a
table that refers to a remote transactional table, if the insert
failed for a row due to constraint failure, the remote table
would contain a partial commit (the rows preceding the failed
one) instead of rolling back the statement completely. This
occurred because the rows were treated as individual inserts.
FEDERATED performs bulk-insert handling
such that multiple rows are sent to the remote table in a batch.
This provides a performance improvement and enables the remote
table to perform statement rollback properly should an error
occur. This capability has the following limitations:
The size of the insert cannot exceed the maximum packet size between servers. If the insert exceeds this size, it is broken into multiple packets and the rollback problem can occur.
Bulk-insert handling does not occur for
... ON DUPLICATE KEY UPDATE.
On the IBM i5 platform, the installation script in the
.savf binaries unconditionally executed the
utf8 characters could get mangled when
The server deducted some bytes from the
value and reduced it to the next lower 512 byte boundary. The
resulting block size was not a power of two. Setting the
variable to a value that is not a power of two resulted in
MyISAM table corruption.
(Bug #23068, Bug #28478, Bug #25853)
... SELECT statement inserted into the same table that
SELECT retrieved from, and
ORDER BY and
clauses, different data was inserted than the data produced by
SELECT executed by itself.
AsText() could fail with a buffer overrun.
0x00 in a
BLOB column sometimes became
0x5C 0x00 following a dump and reload, which
could cause problems with data using multi-byte character sets
GBK (Chinese). This was due to a
SELECT INTO OUTFILE whereby
LOAD DATA later incorrectly
0x5C as the second byte of a
multi-byte sequence rather than as the
SOLIDUS (“\”) character, used by
MySQL as the escape character.
Assertion failure could occur for grouping queries that employed
DECIMAL user variables with
assignments to them.
A stack overrun could occur when storing
DATETIME values using repeated
FULLTEXT indexes could be corrupted by
The server crashed when the size of an
ARCHIVE table grew larger than 2GB.
On 64-bit Windows systems, the Config Wizard failed to complete
the setup because 64-bit Windows does not resolve dynamic
linking of the 64-bit
libmysql.dll to a
32-bit application like the Config Wizard.
Corrupt data resulted from use of
SELECT ... INTO
OUTFILE ', where
file_name' FIELDS ENCLOSED
c is a digit or minus sign, followed
LOAD DATA INFILE
file_name' FIELDS ENCLOSED BY
ALTER TABLE ... ENABLE KEYS could cause
mysqld to crash when executed on a table
containing on a
MyISAM table containing
billions of rows.
When one thread attempts to lock two (or more) tables and
another thread executes a statement that aborts these locks
OPTIMIZE TABLE, or
CHECK TABLE), the thread might
get a table object with an incorrect lock type in the table
cache. The result is table corruption or a server crash.
Mixing binary and
utf8 columns in a union
caused field lengths to be calculated incorrectly, resulting in
Sort order of the collation wasn't used when comparing trailing
spaces. This could lead to incorrect comparison results,
incorrectly created indexes, or incorrect result set order for
queries that include an
ORDER BY clause.
The index merge union access algorithm could produce incorrect
InnoDB tables. The problem could
also occur for queries that used
InnoDB tables and executing
RESET MASTER in multiple threads
cause assertion failure in debug server binaries.
If one of the queries in a
SQL_CACHE option and another query
UNION contained a
nondeterministic function, the result was still cached. For
example, this query was incorrectly cached:
SELECT NOW() FROM t1 UNION SELECT SQL_CACHE 1 FROM t1;
FEDERATED storage engine failed silently
... ON DUPLICATE KEY UPDATE if a duplicate key
FEDERATED does not
ON DUPLICATE KEY UPDATE, so now it
correctly returns an
error if a duplicate key violation occurs.
could cause a buffer overflow and crash the server or clients.
ENUM column contained
'' as one of its members (represented with
numeric value greater than 0), and the column contained error
values (represented as 0 and displayed as
TABLE to modify the column definition caused the 0
values to be given the numeric value of the nonzero
Under ActiveState Perl,
could kill itself when attempting to kill other processes.
Runtime changes to the
system variable were ignored.
The semantics of
on platform-specific characteristics.
The modification of a table by a partially completed multi-column update was not recorded in the binlog, rather than being marked by an event and a corresponding error code. (Bug #27716)
An assertion failure occurred if a query contained a conjunctive
predicate of the form
view_column = constant
WHERE clause and the
BY clause contained a reference to a different view
column. The fix also enables application of an optimization that
was being skipped if a query contained a conjunctive predicate
of the form
WHERE clause and
GROUP BY clause contained a reference to
the same view column.
Unsafe aliasing in the source caused a client library crash when compiled with gcc 4 at high optimization levels. (Bug #27383)
For a join with
GROUP BY or
BY and a view reference in the
list, the query metadata erroneously showed empty table aliases
and database names for the view columns.
Index-based range reads could fail for comparisons that involved
contraction characters (such as
ch in Czech
ll in Spanish).
Dropping a user-defined function could cause a server crash if the function was still in use by another thread. (Bug #27564)
GROUP_CONCAT() did not convert
separators to the result character set before inserting them,
producing a result containing a mixture of two different
Aggregations in subqueries that refer to outer query columns were not always correctly referenced to the proper outer query. (Bug #27333)
Error returns from the
time() system call
LOCK TABLES was not atomic when
more than one
InnoDB tables were locked.
Queries that performed a lookup into a
BINARY index containing key
values ending with spaces caused an assertion failure for debug
builds and incorrect results for nondebug builds.
SUBSTRING() function returned
the entire string instead of an empty string when it was called
from a stored procedure and when the length parameter was
specified by a variable with the value
In strict SQL mode, errors silently stopped the SQL thread even
for errors named using the
Queries using UDFs or stored functions were cached. (Bug #28921)
CHECK TABLE for
ARCHIVE tables could falsely report table
corruption or cause a server crash.
Selecting a column not present in the selected-from table caused
an extra error to be produced by
A network structure was initialized incorrectly, leading to embedded server crashes. (Bug #29117)
gcov coverage-testing information was not written if the server crashed. (Bug #29543)
the limits of 65 and 30 on the precision
M) and scale
D) were not enforced.
SELECT ... INTO
OUTFILE followed by
DATA could result in garbled characters when the
FIELDS ENCLOSED BY clause named a delimiter
'Z' due to an interaction of character
encoding and doubling for data values containing the enclosed-by
SHOW BINLOG EVENTS displayed
incorrect values of
End_log_pos for events
associated with transactional storage engines.
mysqldump created a stray file when a given a too-long file name argument. (Bug #29361)
Phantom reads could occur under
SERIALIZABLE isolation level.