This is a new Beta development release, fixing recently discovered bugs.
This Beta release, as any other pre-production release, should not be installed on production level systems or systems with critical data. It is good practice to back up your data before installing any new version of software. Although MySQL has worked very hard to ensure a high level of quality, protect your data by making a backup as you would for any software beta release. Please refer to our bug database at http://bugs.mysql.com/ for more details about the individual bugs fixed in this version.
After release, a trigger failure problem was found to have been introduced. (Bug #27006) Users affected by this issue should upgrade to MySQL 5.1.17, which corrects the problem.
This section documents all changes and bug fixes that have been applied since the last official MySQL release. 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).
Functionality Added or Changed
Incompatible Change; Cluster API:
AbortOption type is now a member of the
NdbOperation class; its values
and behavior have also changed.
NdbTransaction::AbortOption can no longer be
used, and applications written against the NDB API may need to
be rewritten and recompiled to accommodate these changes. For
more information about this change, see
This also affects the behavior of the
method, which now reports failure only if the transaction was
Previously, when a data node failed to start more than 8 times
in succession, this caused a forced shutdown of the cluster.
Now, when a data node fails to start 7 consecutive times, the
node does not start again until it is started with the
--initial option, and a warning to this effect
is written to the error log.
A new configuration parameter
enables additional control of data node memory usage.
Previously, only warnings at predetermined percentages of memory
allocation were given; setting this parameter enables that
behavior to be overridden.
In the event that all cluster management and API nodes are
ArbitrationRank = 0,
ndb_mgmd now issues the following warning
when starting: Cluster configuration warning: Neither
MGM nor API nodes are configured with arbitrator, may cause
complete cluster shutdown in case of host failure.
MySQL Cluster: A number of new and more descriptive error messages covering transporter errors were added. (Bug #22025)
function was added to the MGM API.
localhost anonymous user account created
during MySQL installation on Windows now has no global
privileges. Formerly this account had all global privileges. For
operations that require global privileges, the
root account can be used instead.
The bundled yaSSL library was upgraded to version 1.5.8.
RAND() now permits nonconstant
initializers (such as a column name) as its argument. In this
case, the seed is initialized with the value for each invocation
RAND(). (One implication of
this is that for equal argument values,
RAND() will return the same value
REFERENTIAL_CONSTRAINTS table, the
UNIQUE_CONSTRAINT_NAME column incorrectly
named the referenced table. Now it names the referenced
constraint, and a new column,
REFERENCED_TABLE_NAME, names the referenced
INFORMATION_SCHEMA table with
ORDER BY in a subquery could cause a server
We would like to thank Oren Isacson of Flowgate Security Consulting and Stefan Streichsbier of SEC Consult for informing us of this problem. (Bug #24630, Bug #26556, CVE-2007-1420)
MySQL Cluster; Partitioning:
A query with an
IN clause against an
NDB table employing explicit
user-defined partitioning did not always return all matching
MySQL Cluster; Replication: (Replication): Under some circumstances, the binary log thread could shut down while the slave SQL thread was still using it. (Bug #26015, Bug #26019)
MySQL Cluster; Replication: (Replication): The error message Last_Errno: 4294967295, Error in Write_rows event now supplies a valid error code. (Bug #19896)
ndb_size.tmpl file (necessary for using
ndb_size.pl script) was missing from
MySQL Cluster: No appropriate error message was provided when there was insufficient REDO log file space for the cluster to start. (Bug #25801)
The message Error 0 in readAutoIncrementValue(): no
Error was written to the error log whenever
SHOW TABLE STATUS was performed
on a Cluster table that did not have an
This improves on and supersedes an earlier fix that was made for this issue in MySQL 5.1.12.
MySQL Cluster: When a node failed due to there being insufficient disk space to perform a local checkpoint, there was no indication that this was the source of the problem. Such a condition now produces an appropriate error message. (Bug #20121)
MySQL Cluster: The InvalidUndoBufferSize error used the same error code (763) as the IncompatibleVersions error. InvalidUndoBufferSize now uses its own error code (779). (Bug #26490)
MySQL Cluster: Under some circumstances, following the restart of a management node, all data nodes would connect to it normally, but some of them subsequently failed to log any events to the management node. (Bug #26293)
MySQL Cluster: An inadvertent use of unaligned data caused ndb_restore to fail on some 64-bit platforms, including Sparc and Itanium-2. (Bug #26739)
parameter was not read until after distributed communication had
already started between cluster nodes. When the value of this
1, this could sometimes result
in data node failure due to missed heartbeats.
In the event that cluster backup parameters such as
incorrectly set, no appropriate error was issued to indicate
that this was the case.
MySQL Cluster: Takeover for local checkpointing due to multiple failures of master nodes was sometimes incorrectly handled. (Bug #26457)
The failure of a data node when restarting it with
--initial could lead to failures of subsequent
data node restarts.
A memory allocation failure in
cluster Subscription Manager) could cause the cluster to crash.
MySQL Cluster: A memory leak could cause problems during a node or cluster shutdown or failure. (Bug #25997)
MySQL Cluster: Condition pushdown did not work with prepared statements. (Bug #26225)
Replication: If a slave server closed its relay log (for example, due to an error during log rotation), the I/O thread did not recognize this and still tried to write to the log, causing a server crash. (Bug #10798)
Disk Data; Cluster API:
A delete and a read performed in the same operation could cause
one or more data nodes to crash. This could occur when the
operation affected more than 5 columns concurrently, or when one
or more of the columns was of the
VARCHAR type and was stored on
libndbclient.so was not versioned.
After defining a delete operation (using
a nonexistent primary key of a table having a
TEXT column, invoking
caused the calling application to enter an endless loop rather
than raising an error.
References: See also Bug #27308, Bug #30177.
ON DUPLICATE KEY UPDATE defeated the
usual restriction against inserting into a join-based view
unless only one of the underlying tables is used.
readline detection did not work correctly on
A return value of
-1 from user-defined
handlers was not handled well and could result in conflicts with
A query with
ORDER BY and
BY clauses where the
clause had more elements than the
clause caused a memory overrun leading to a crash of the server.
View definitions that used the
were treated as containing the
which has a different precedence and can produce different
GROUP BY and
NULL values for columns that have a
UNIQUE index. .
readline library wrote to uninitialized
memory, causing mysql to crash.
WITH CHECK OPTION clause for views was
ignored for updates of multiple-table views when the updates
could not be performed on fly and the rows to update had to be
put into temporary tables first.
If a prepared statement accessed a view, access to the tables listed in the query after that view was checked in the security context of the view. (Bug #24404)
UNIQUE index containing many
NULL values, the optimizer would prefer the
conditions over other more selective indexes. .
A yaSSL program named test was installed, causing conflicts with the test system utility. It is no longer installed. (Bug #25417)
DISTINCT queries that were executed using a
loose scan for an
InnoDB table that had been
emptied caused a server crash.
Some queries against
used subqueries failed. .
ORDER BY or
could yield different results when selecting from a view and
selecting from the underlying table.
The presence of
ORDER BY in a view definition
MERGE algorithm from being used
to resolve the view even if nothing else in the definition
UPDATE statements were
slower than in previous versions when the search key could not
be converted to a valid value for the type of the search column.
The optimizer used a filesort rather than a
const table read in some
cases when the latter was possible.
ORDER BY or
list included a constant expression being optimized away and, at
the same time, containing single-row subselects that returned
more that one row, no error was reported. If a query required
sorting by expressions containing single-row subselects that
returned more than one row, execution of the query could cause a
Type conversion errors during formation of index search conditions were not correctly checked, leading to incorrect query results. (Bug #22344)
Indexes disabled with
ALTER TABLE ... DISABLE
KEYS could in some cases be used by specifying
ALTER TABLE caused loss of
CASCADE clauses for
DEFAULT into a column with no
default value could result in garbage in the column. Now the
same result occurs as when inserting
NOT NULL column.
INFILE did not work with pipes.
ALTER TABLE ... ENABLE KEYS acquired a global
lock, preventing concurrent execution of other statements that
use tables. .
AFTER UPDATE trigger on an
InnoDB table with a composite primary key
caused the server to crash.
LEFT JOIN comparisons could be
evaluated incorrectly, leading to improper query results.
OPTIMIZE TABLE caused a race
condition in the I/O cache.
Queries that evaluate
NULL IN (SELECT ... UNION SELECT
...) could produce an incorrect result
FALSE instead of
An error in the name resolution of nested
USING constructs was corrected.
NULL value to a user-defined
function from within a stored procedure crashes the server.
If a duplicate key value was present in the table,
ON DUPLICATE KEY UPDATE reported a row count
indicating that a record was updated, even when no record
actually changed due to the old and new values being the same.
Now it reports a row count of zero.
References: See also Bug #27006, Bug #27033, Bug #27210.
yaSSL was sensitive to the presence of whitespace at the ends of lines in PEM-encoded certificates, causing a server crash. (Bug #25189)
To enable installation of MySQL RPMs on Linux systems running RHEL 4 (which includes SE-Linux) additional information was provided to specify some actions that are permitted to the MySQL binaries. (Bug #12676)
mysql_kill() caused a server
crash when used on an SSL connection.
Within a stored routine, accessing a declared routine variable
PROCEDURE ANALYSE() caused a server
Use of already freed memory caused SSL connections to hang forever. (Bug #19209)
Storing values specified as hexadecimal values 64 or more bits
UNSIGNED columns did not raise any warning or error if
the value was out of range.
Within stored routines or prepared statements, inconsistent
results occurred with multiple use of
INSERT ... SELECT
... ON DUPLICATE KEY UPDATE when the
DUPLICATE KEY UPDATE clause erroneously tried to
assign a value to a column mentioned only in its
Expressions of the form
(a, b) IN (SELECT c, d
...) could produce incorrect results if
b, or both were
The number of
setsockopt() calls performed
for reads and writes to the network socket was reduced to
decrease system call overhead.
ALTER TABLE, using
could cause a
server crash. Now the
ORDER BY clause permits
only column names to be specified as sort criteria (which was
the only documented syntax, anyway).
mysql.server stop timed out too quickly (35 seconds) waiting for the server to exit. Now it waits up to 15 minutes, to ensure that the server exits. (Bug #25341)
Expressions of the form
(a, b) IN (SELECT a, MIN(b)
FROM t GROUP BY a) could produce incorrect results
a of table
NULL values while column
b did not.
CONNECTION is no longer treated as a reserved
A nested query on a partitioned table returned fewer records than on the corresponding nonpartitioned table, when the subquery affected more than one partition. (Bug #24186)
--with-readline option for
configure did not work for commercial source
packages, but no error message was printed to that effect. Now a
message is printed.
perror crashed on some platforms due to
failure to handle a
Certain joins using
Range checked for each
record in the query execution plan could cause the
server to crash.
The server might fail to use an appropriate index for
LIMIT, and a nonrestricting
WHERE are present.