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:
Cluster API: Incompatible Change:
The 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 accomodate these changes. For
more information about this change, see
The NdbOperation::AbortOption
Type.
This also affects the behavior of the
NdbTransaction::execute()
method, which now
reports failure only if the transaction was actually aborted.
See NdbTransaction::execute()
, for more
information.
MySQL Cluster:
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.
(Bug#25984)
MySQL Cluster:
In the event that all cluster management and API nodes are
configured with 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.
(Bug#23546)
MySQL Cluster: A number of new and more descriptive error messages covering transporter errors were added. (Bug#22025)
MySQL Cluster:
A new configuration parameter
MemReportFrequency
allows for additional
control of data node memory usage. Previously, only warnings at
predetermined percentages of memory allocation were given;
setting this parameter allows for that behavior to be
overridden. For more information, see
Defining MySQL Cluster Data Nodes.
Cluster API:
A new ndb_mgm_get_clusterlog_loglevel()
function was added to the MGM API.
For more information, see
ndb_mgm_get_clusterlog_loglevel()
.
The 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.
(Bug#24496)
In the INFORMATION_SCHEMA
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
table.
(Bug#21713)
RAND()
now allows nonconstant
initializers (such as a column name) as its argument. In this
case, the seed is initialized with the value for each invocation
of RAND()
. (One implication of
this is that for equal argument values,
RAND()
will return the same value
each time.)
(Bug#6172)
Added the
--auto-generate-sql-load-type
and
--auto-generate-sql-write-number
options for mysqlslap.
The bundled yaSSL library was upgraded to version 1.5.8.
Bugs fixed:
Security Fix:
Using an INFORMATION_SCHEMA
table with
ORDER BY
in a subquery could cause a server
crash.
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)
Partitioning: MySQL Cluster:
A query with an IN
clause against an
NDB
table employing explicit
user-defined partitioning did not always return all matching
rows.
(Bug#25821)
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)
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)
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:
The failure of a data node when restarting it with
--initial
could lead to failures of subsequent
data node restarts.
(Bug#26481)
MySQL Cluster: Takeover for local checkpointing due to multiple failures of master nodes was sometimes incorrectly handled. (Bug#26457)
MySQL Cluster:
The LockPagesInMainMemory
parameter was not
read until after distributed communication had already started
between cluster nodes. When the value of this parameter was
1
, this could sometimes result in data node
failure due to missed heartbeats.
(Bug#26454)
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: Condition pushdown did not work with prepared statements. (Bug#26225)
MySQL Cluster: A memory leak could cause problems during a node or cluster shutdown or failure. (Bug#25997)
MySQL Cluster: No appropriate error message was provided when there was insufficient REDO log file space for the cluster to start. (Bug#25801)
MySQL Cluster:
An UPDATE
using an
IN
clause on an
NDB
table on which there was a
trigger caused mysqld to crash.
(Bug#25522)
MySQL Cluster:
A memory allocation failure in SUMA
(the
cluster Subscription Manager) could cause the cluster to crash.
(Bug#25239)
MySQL Cluster:
The ndb_size.tmpl
file (necessary for using
the ndb_size.pl
script) was missing from
binary distributions.
(Bug#24191)
MySQL Cluster:
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
AUTO_INCREMENT
column.
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:
In the event that cluster backup parameters such as
BackupWriteSize
were incorrectly set, no
appropriate error was issued to indicate that this was the case.
(Bug#19146)
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)
Cluster API: Disk Data:
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
disk.
(Bug#25794)
Cluster API:
After defining a delete operation (using
NdbOperation::deleteTuple()
) on a nonexistent
primary key of a table having a
BLOB
or
TEXT
column, invoking
NdbTransaction::execute()
caused the calling
application to enter an endless loop rather than raising an
error.
This issue also affected ndb_restore; when
restoring tables containing BLOB
or TEXT
columns, this could cause
it to consume all available memory and then crash.
(Bug#24028)
Cluster API:
libndbclient.so
was not versioned.
(Bug#13522)
Using ORDER BY
or GROUP BY
could yield different results when selecting from a view and
selecting from the underlying table.
(Bug#26209)
DISTINCT
queries that were executed using a
loose scan for an InnoDB
table that had been
emptied caused a server crash.
(Bug#26159)
A WHERE
clause that used
BETWEEN
for
DATETIME
values could be treated
differently for a SELECT
and a
view defined as that SELECT
.
(Bug#26124)
Collation for LEFT JOIN
comparisons could be
evaluated incorrectly, leading to improper query results.
(Bug#26017)
The 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.
(Bug#25931)
LOAD DATA
INFILE
did not work with pipes.
(Bug#25807)
The SEC_TO_TIME()
and
QUARTER()
functions sometimes did
not handle NULL
values correctly.
(Bug#25643)
View definitions that used the !
operator
were treated as containing the NOT
operator,
which has a different precedence and can produce different
results. .
(Bug#25580)
An error in the name resolution of nested JOIN ...
USING
constructs was corrected.
(Bug#25575)
GROUP BY
and DISTINCT
did
not group NULL
values for columns that have a
UNIQUE
index. .
(Bug#25551)
The --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.
(Bug#25530)
A yaSSL program named test was installed, causing conflicts with the test system utility. It is no longer installed. (Bug#25417)
For a UNIQUE
index containing many
NULL
values, the optimizer would prefer the
index for
conditions over other more selective indexes. .
(Bug#25407)col
IS
NULL
An AFTER UPDATE
trigger on an
InnoDB
table with a composite primary key
caused the server to crash.
(Bug#25398)
Passing a NULL
value to a user-defined
function from within a stored procedure crashes the server.
(Bug#25382)
perror crashed on some platforms due to
failure to handle a NULL
pointer.
(Bug#25344)
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)
A query that contained an EXIST
subquery with
a UNION
over correlated and
uncorrelated SELECT
queries could
cause the server to crash.
(Bug#25219)
mysql_kill()
caused a server
crash when used on an SSL connection.
(Bug#25203)
yaSSL was sensitive to the presence of whitespace at the ends of lines in PEM-encoded certificates, causing a server crash. (Bug#25189)
A query with ORDER BY
and GROUP
BY
clauses where the ORDER BY
clause had more elements than the GROUP BY
clause caused a memory overrun leading to a crash of the server.
(Bug#25172)
Use of ON DUPLICATE KEY UPDATE
defeated the
usual restriction against inserting into a join-based view
unless only one of the underlying tables is used.
(Bug#25123)
ALTER TABLE ... ENABLE KEYS
acquired a global
lock, preventing concurrent execution of other statements that
use tables. .
(Bug#25044)
OPTIMIZE TABLE
caused a race
condition in the I/O cache.
(Bug#25042)
A return value of -1
from user-defined
handlers was not handled well and could result in conflicts with
server code.
(Bug#24987)
Certain joins using Range checked for each
record
in the query execution plan could cause the
server to crash.
(Bug#24776)
ALTER TABLE
caused loss of
CASCADE
clauses for InnoDB
tables.
(Bug#24741)
If an ORDER BY
or GROUP BY
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
server crash.
(Bug#24653)
For ALTER TABLE
, using
ORDER BY
could cause a
server crash. Now the expression
ORDER BY
clause allows
only column names to be specified as sort criteria (which was
the only documented syntax, anyway).
(Bug#24562)
Within stored routines or prepared statements, inconsistent
results occurred with multiple use of INSERT ... SELECT
... ON DUPLICATE KEY UPDATE
when the ON
DUPLICATE KEY UPDATE
clause erroneously tried to
assign a value to a column mentioned only in its
SELECT
part.
(Bug#24491)
Expressions of the form (a, b) IN (SELECT a, MIN(b)
FROM t GROUP BY a)
could produce incorrect results
when column a
of table t
contained NULL
values while column
b
did not.
(Bug#24420)
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)
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)
Expressions of the form (a, b) IN (SELECT c, d
...)
could produce incorrect results if
a
, b
, or both were
NULL
.
(Bug#24127)
Queries that evaluate NULL IN (SELECT ... UNION SELECT
...)
could produce an incorrect result
(FALSE
instead of NULL
).
(Bug#24085)
Some 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.
(Bug#24035)
ISNULL(DATE(NULL))
and
ISNULL(CAST(NULL AS DATE))
erroneously returned false.
(Bug#23938)
Within a stored routine, accessing a declared routine variable
with PROCEDURE ANALYSE()
caused a server
crash.
(Bug#23782)
For an InnoDB
table with any ON
DELETE
trigger,
TRUNCATE
TABLE
mapped to DELETE
and activated triggers. Now a fast truncation occurs and
triggers are not activated. .
As a result of this fix,
TRUNCATE
TABLE
now requires the
DROP
privilege rather than the
DELETE
privilege.
With ONLY_FULL_GROUP_BY
enabled, the server was too strict: Some expressions involving
only aggregate values were rejected as nonaggregate (for
example, MAX(a)
–
MIN(a)
).
(Bug#23417)
The arguments to the ENCODE()
and
the DECODE()
functions were not
printed correctly, causing problems in the output of
EXPLAIN
EXTENDED
and in view definitions.
(Bug#23409)
Some queries against INFORMATION_SCHEMA
that
used subqueries failed. .
(Bug#23299)
readline
detection did not work correctly on
NetBSD.
(Bug#23293)
The number of setsockopt()
calls performed
for reads and writes to the network socket was reduced to
decrease system call overhead.
(Bug#22943)
Storing values specified as hexadecimal values 64 or more bits
long in BIT(64)
,
BIGINT
, or BIGINT
UNSIGNED
columns did not raise any warning or error if
the value was out of range.
(Bug#22533)
Type conversion errors during formation of index search conditions were not correctly checked, leading to incorrect query results. (Bug#22344)
For the IF()
and
COALESCE()
function and
CASE
expressions, large unsigned
integer values could be mishandled and result in warnings.
(Bug#22026)
Inserting DEFAULT
into a column with no
default value could result in garbage in the column. Now the
same result occurs as when inserting NULL
into a NOT NULL
column.
(Bug#20691)
Indexes disabled with ALTER TABLE ... DISABLE
KEYS
could in some cases be used by specifying
FORCE INDEX
.
(Bug#20604)
If a duplicate key value was present in the table,
INSERT ...
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.
(Bug#19978)
ORDER BY
values of the
DOUBLE
or
DECIMAL
types could change the
result returned by a query.
(Bug#19690)
The readline
library wrote to uninitialized
memory, causing mysql to crash.
(Bug#19474)
Use of already freed memory caused SSL connections to hang forever. (Bug#19209)
The server might fail to use an appropriate index for
DELETE
when ORDER
BY
, LIMIT
, and a nonrestricting
WHERE
are present.
(Bug#17711)
The optimizer used a filesort rather than a
const
table read in some
cases when the latter was possible.
(Bug#16590)
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 allowed to the MySQL binaries. (Bug#12676)
CONNECTION
is no longer treated as a reserved
word.
(Bug#12204)
The presence of ORDER BY
in a view definition
prevented the MERGE
algorithm from being used
to resolve the view even if nothing else in the definition
required the TEMPTABLE
algorithm.
(Bug#12122)
User Comments
Add your own comment.