Functionality Added or Changed
The server treats stored routine parameters and local variables
(and stored function return values) according to standard SQL.
Previously, parameters, variables, and return values were
treated as items in expressions and were subject to automatic
(silent) conversion and truncation. Now the data type is
observed. Data type conversion and overflow problems that occur
in assignments result in warnings, or errors in strict mode. The
CHARACTER SET clause for character data type
declarations is used. Parameters, variables, and return values
must be scalars; it is no longer possible to assign a row value.
Also, stored functions execute using the
sql_mode value in force at
function creation time rather than ignoring it. For more
information, see CREATE PROCEDURE and CREATE FUNCTION Syntax.
(Bug #13808, Bug #12903, Bug #9078, Bug #14161, Bug #13705, Bug #13909, Bug #15148, Bug #8769, Bug #8702, Bug #9572, Bug #8768)
It is now possible to build the server such that
MyISAM tables can support up to 128 keys
rather than the standard 64. This can be done by configuring the
build using the option
N≤128 is the
maximum number of indexes to permit per table.
MySQL Cluster: If an abort by the Transaction Coordinator timed out, the abort condition was incorrectly handled, causing the transaction record to be released prematurely. (Bug #15685)
ndb_read_multi_range.test script failed
to drop a table, causing the test to fail.
References: See also Bug #15402.
MySQL Cluster: Under some circumstances, it was possible for a restarting node to undergo a forced shutdown. (Bug #15632)
MySQL Cluster: A node which failed during cluster startup was sometimes not removed from the internal list of active nodes. (Bug #15587)
A replication slave server could sometimes crash on a
BEFORE UPDATE trigger if the
UPDATE query was not executed in
the same database as the table with the trigger.
When a connection using yaSSL was aborted, the server would
continue to try to read the closed socket, and the thread
continued to appear in the output of
PROCESSLIST. Note that this issue did not affect
secure connection attempts using OpenSSL.
wrong field length for TEXT columns.
InnoDB: Having two tables in a parent-child
relationship enforced by a foreign key where one table used
ROW_FORMAT=COMPACT and the other used
ROW_FORMAT=REDUNDANT could result in a MySQL
server crash. Note that this problem did not exist prior to
MySQL 5.0.3, when the compact row format for
InnoDB was introduced.
Resolution of the argument to the
VALUES() function to a variable
inside a stored routine caused a server crash. The argument must
be a table column.
A left join on a column that having a
value could cause the server to crash.
The output of mysqldump --triggers did not
DEFINER clause in dumped trigger
Reversing the order of operands in a
clause testing a simple equality (such as
= t2.col2) would produce different output from
The output of
contained extraneous whitespace.
Creating a trigger caused a server crash if the table or trigger database was not known because no default database had been selected. (Bug #14863)
Column aliases were displayed incorrectly in a
SELECT from a view following an
update to a base table of the view.
SHOW [FULL] COLUMNS and
SHOW INDEX did not function with
(Bug #14387, Bug #15224)
foreign_key_checks was 0,
InnoDB permitted inconsistent foreign keys to
The server would not compile under Cygwin. (Bug #13640)
DESCRIBE did not function with
Set functions could not be aggregated in outer subqueries. (Bug #12762)
A race condition when creating temporary files caused a deadlock
on Windows with threads in
Opening tables or
Waiting for table states.