This is a new Beta development release, fixing recently discovered bugs.
NOTE: 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:
TRUNCATE TABLE now requires the
DROP privilege rather than the
DELETE privilege. (Bug#23556).
NDB Cluster (Cluster APIs) /
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.
See The NdbOperation::AbortOption Type, for more
information.
NDB 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
Section 15.4.4.5, “Defining Data Nodes”.
NDB Cluster (Cluster APIs): A new
ndb_mgm_get_clusterlog_loglevel() function
was added to the MGM API.
For more information, see
ndb_mgm_get_clusterlog_loglevel().
NDB Cluster: Previously, when a data node
failed more than 8 times in succession to start, this caused a
forced shutdown of the cluster. Now, when a data node fails to
start 7 consecutive times, the node will 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)
NDB Cluster: A number of new and more
descriptive error messages covering transporter errors were
added. (Bug#22025)
NDB 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)
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 non-constant 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)
The bundled yaSSL library was upgraded to version 1.5.8.
CONNECTION is no longer treated as a
reserved word. (Bug#12204)
Bugs fixed:
Security fix: Using an
INFORMATION_SCHEMA table with
ORDER BY in a subquery could cause a server
crash.
(CVE-2007-1420,
Bug#24630, Bug#26556) We would like to thank Oren Isacson
from Flowgate Security Consulting as well as well as Stefan
Streichsbier from SEC Consult for informing us about this
problem.
NDB Cluster: Condition pushdown did not
work with prepared statements. (Bug#26225)
NDB Cluster (APIs): 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. (Bug#24028)
NDB Cluster: An inadvertent use of
unaligned data caused ndb_restore to fail
on some 64-bit platforms, including Sparc and Itanium-2. (Bug#26739)
NDB Cluster: The
InvalidUndoBufferSize error used the
same error code (763) as the
IncompatibleVersions error.
InvalidUndoBufferSize now uses its own
error code (779). (Bug#26490)
NDB Cluster: Takeover for local
checkpointing due to multiple failures of master nodes was
sometimes incorrect handled. (Bug#26457)
NDB Cluster: The
LockPagesInMemory 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)
NDB Cluster: Under some circumstances,
following the restart of a management, all cluster data nodes
would connect to it normally, but some of them subsequently
failed to log any events to the management node. (Bug#26293)
NDB Cluster: An error was produced when
SHOW TABLE STATUS was used on an
NDB table that had no
AUTO_INCREMENT column. (Bug#21033)
This improves on and supersedes an earlier fix that was made for this issue in MySQL 5.1.12.
NDB 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)
NDB Cluster (Cluster APIs):
libndbclient.so was not versioned. (Bug#13522)
NDB Cluster: The
ndb_size.tmpl file (necessary for using
the ndb_size.pl script) was missing from
binary distributions. (Bug#24191)
NDB Cluster (Cluster APIs / Disk Data): A
delete and a read peformed in the same operation could cause
one or more of the cluster's 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)
NDB Cluster (Replication): The error
message Last_Errno: 4294967295, Error in Write_rows
event now supplies a valid error code. (Bug#19896)
NDB Cluster (Replication): Under some
circumstances, the binlog thread could shut down while the
slave SQL thread was still using it. (Bug#26015, Bug#26019)
NDB 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)
A memory leak could cause problems during a node or cluster shutdown or failure. (Bug#25997)
NDB Cluster: An appropriate error message
was not provided when there was insufficient REDO log file
space for the cluster to start. (Bug#25801)
NDB Cluster: An UPDATE
using an IN clause on an
NDB table on which there was a trigger
caused mysqld to crash. (Bug#25522)
NDB Cluster: A memory allocation failure in
the cluster Subscription Manager could cause the cluster to
crash. (Bug#25239)
NDB 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)
OPTIMIZE TABLE caused a race condition in
the I/O cache. (Bug#19978)
If the 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)
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)
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)
Using ORDER BY or GROUP
BY could yield different results when selecting from
a view and selecting from the underlying table. (Bug#26209)
Storing values specified as hexadecimal values 64 or more bits
long into BIT(64),
BIGINT, or BIGINT
UNSIGNED columns did not raise any warning or error
if the value was out of range. (Bug#22533)
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)
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)
ISNULL(DATE(NULL)) and
ISNULL(CAST(NULL AS DATE)) erroneously
returned false. (Bug#23938)
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)
Collation for LEFT JOIN comparisons could
be evaluated incorrectly, leading to improper query results.
(Bug#26017)
For the IF() and
COALESCE() function and
CASE expressions, large unsigned integer
values could be mishandled and result in warnings. (Bug#22026)
The number of setsockopt() calls performed
for reads and writes to the network socket was reduced to
decrease system call overhead. (Bug#22943)
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)
ORDER BY on DOUBLE
values could change the set of rows returned by a query. (Bug#19690)
LOAD DATA INFILE did not work with pipes.
(Bug#25807)
DISTINCT queries that were executed using a
loose scan for an InnoDB table that had
been emptied caused a server crash. (Bug#26159)
ALTER TABLE caused loss of
CASCADE clauses for
InnoDB tables. (Bug#24741)
Type conversion errors during formation of index search conditions were not correctly checked, leading to incorrect query results. (Bug#22344)
Within a stored routine, accessing a declared routine variable
with PROCEDURE ANALYSE() caused a server
crash. (Bug#23782)
Use of already freed memory caused SSL connections to hang forever. (Bug#19209)
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 yaSSL program named test was installed, causing conflicts with the test system utility. It is no longer installed. (Bug#25417)
perror crashed on some platforms due to
failure to handle a NULL pointer. (Bug#25344)
mysql_kill() caused a server crash when
used on an SSL connection. (Bug#25203)
The readline library wrote to uninitialized
memory, causing mysql to crash. (Bug#19474)
yaSSL was sensitive to the presence of whitespace at the ends of lines in PEM-encoded certificates, causing a server crash. (Bug#25189)
The SEC_TO_TIME() and
QUARTER() functions sometimes did not
handle NULL values correctly. (Bug#25643)
The optimizer used a filesort rather than a
const table read in some cases when the
latter was possible. (Bug#16590)
With ONLY_FULL_GROUP_BY enables, the server
was too strict: Some expressions involving only aggregate
values were rejected as non-aggregate (for example,
MAX(a) - MIN(a)). (Bug#23417)
Indexes disabled with ALTER TABLE ... DISABLE
KEYS could in some cases be used by specifying
FORCE INDEX. (Bug#20604)
The arguments of the ENCODE() and the
DECODE() functions were not printed
correctly, causing problems in the output of EXPLAIN
EXTENDED and in view definitions. (Bug#23409)
An error in the name resolution of nested JOIN ...
USING constructs was corrected. (Bug#25575)
A return value of -1 from user-defined
handlers was not handled well and could result in conflicts
with server code. (Bug#24987)
The server might fail to use an appropriate index for
DELETE when ORDER BY,
LIMIT, and a non-restricting
WHERE are present. (Bug#17711)
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)
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).
Some queries against INFORMATION_SCHEMA
that used subqueries failed. (Bug#23299).
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
GROUP BY and DISTINCT
did not group NULL values for columns that
have a UNIQUE index. (Bug#25551).
ALTER TABLE ... ENABLE KEYS acquired a
global lock, preventing concurrent execution of other
statements that use tables. (Bug#25044).
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.
(Bug#23556).
For ALTER TABLE, using ORDER BY
could cause a
server crash. Now the expressionORDER BY clause
allows only column names to be specified as sort criteria
(which was the only documented syntax, anyway). (Bug#24562)
readline detection did not work correctly
on NetBSD. (Bug#23293)
The --with-readline option for
configure does not work for commercial
source packages, but no error message was printed to that
effect. Now a message is printed. (Bug#25530)
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 return more that one row, no error was
reported. If a query requires sorting by expressions
containing single-row subselects that return more than one
row, execution of the query may cause a server crash. (Bug#24653)
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)
Queries that evaluate NULL IN (SELECT ... UNION
SELECT ...) could produce an incorrect result
(FALSE instead of NULL).
(Bug#24085)
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)
Expressions of the form (a, b) IN (SELECT c, d
...) could produce incorrect results if
a, b, or both were
NULL. (Bug#24127)
An AFTER UPDATE trigger on an
InnoDB table with a composite primary key
caused the server to crash. (Bug#25398)
A query that contained an EXIST subquery
with a UNION over correlated and
uncorrelated SELECT queries could cause the
server to crash. (Bug#25219)
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)
Certain joins using Range checked for each
record in the query execution plan could cause the
server to crash. (Bug#24776)
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 non-partitioned table, when the subquery affected more than one partition. (Bug#24186)
Passing a NULL value to a user-defined
function from within a stored procedure crashes the server.
(Bug#25382)

User Comments
Add your own comment.