Functionality added or changed:
Important Change:
The --skip-thread-priority
option is now
deprecated such that the server won't change the thread
priorities by default. Giving threads different priorities might
yield marginal improvements in some platforms (where it actually
works), but it might instead cause significant degradation
depending on the thread count and number of processors. Meddling
with the thread priorities is a not a safe bet as it is very
dependent on the behavior of the CPU scheduler and system where
MySQL is being run.
(Bug#35164, Bug#37536)
Important Change:
The --log
option now is
deprecated and will be removed (along with the
log
system variable) in the future. Instead,
use the --general_log
option to
enable the general query log and the
--general_log_file=
option to set the general query log file name. The values of
these options are available in the
file_name
general_log
and
general_log_file
system
variables, which can be changed at runtime.
Similar changes were made for the
--log-slow-queries
option and
log_slow_queries
system
variable. You should use the
--slow_query_log
and
--slow_query_log_file=
options instead (and the
file_name
slow_query_log
and
slow_query_log_file
system
variables).
The BUILD/compile-solaris-*
scripts now
compile MySQL with the mtmalloc
library
rather than malloc
.
(Bug#38727)
Bugs fixed:
Incompatible Change: Replication:
The default binary logging mode has been changed from
MIXED
to STATEMENT
for
compatibility with MySQL 5.0.
(Bug#39812)
Incompatible Change:
CHECK TABLE ... FOR
UPGRADE
did not check for incompatible collation
changes made in MySQL 5.1.21 (Bug#29499) and 5.1.23 (Bug#27562,
Bug#29461). This also affects mysqlcheck and
mysql_upgrade, which cause that statement to
be executed. See
Section 2.4.3, “Checking Whether Tables or Indexes Must Be Rebuilt”.
(Bug#39585)
See also Bug#40984.
Incompatible Change:
In connection with view creation, the server created
arc
directories inside database directories
and maintained useless copies of .frm
files
there. Creation and renaming procedures of those copies as well
as creation of arc
directories has been
discontinued.
This change does cause a problem when downgrading to older server versions which manifests itself under these circumstances:
Create a view v_orig
in MySQL 5.1.29 or
higher.
Rename the view to v_new
and then back to
v_orig
.
Downgrade to an older 5.1.x server and run mysql_upgrade.
Try to rename v_orig
to
v_new
again. This operation fails.
As a workaround to avoid this problem, use either of these approaches:
Dump your data using mysqldump before downgrading and reload the dump file after downgrading.
Instead of renaming a view after the downgrade, drop it and recreate it.
The downgrade problem introduced by the fix for this bug has been addressed as Bug#40021. (Bug#17823)
Important Change: Replication:
The SUPER
privilege is now
required to change the session value of
binlog_format
as well as its
global value. For more information about
binlog_format
, see
Section 16.1.2, “Replication Formats”.
(Bug#39106)
Partitioning: Replication:
Replication to partitioned MyISAM
tables
could be slow with row-based binary logging.
(Bug#35843)
Partitioning: If an error occurred when evaluating a column of a partitioned table for the partitioning function, the row could be inserted anyway. (Bug#38083)
Partitioning:
Using INSERT ...
SELECT
to insert records into a partitioned
MyISAM
table could fail if some partitions
were empty and others are not.
(Bug#38005)
Partitioning:
Ordered range scans on partitioned tables were not always
handled correctly. In some cases this caused some rows to be
returned twice. The same issue also caused GROUP
BY
query results to be aggregated incorrectly.
(Bug#30573, Bug#33257, Bug#33555)
Replication: Server code used in binary logging could in some cases be invoked even though binary logging was not actually enabled, leading to asserts and other server errors. (Bug#38798)
Replication:
Replication of BLACKHOLE
tables did not work
with row-based binary logging.
(Bug#38360)
Replication: In some cases, a replication master sent a special event to a reconnecting slave to keep the slave's temporary tables, but they still had references to the “old” slave SQL thread and used them to access that thread's data. (Bug#38269)
Replication:
Replication filtering rules were inappropiately applied when
executing BINLOG
pseudo-queries.
One way in which this problem showed itself was that, when
replaying a binary log with mysqlbinlog, RBR
events were sometimes not executed if the
--replicate-do-db
option was
specified. Now replication rules are applied only to those
events executed by the slave SQL thread.
(Bug#36099)
Replication:
For a CREATE TABLE
... SELECT
statement that creates a table in a
database other than the current one, the table could be created
in the wrong database on replication slaves if row-based binary
logging is used.
(Bug#34707)
Replication:
A statement did not always commit or roll back correctly when
the server was shut down; the error could be triggered by having
a failing UPDATE
or
INSERT
statement on a
transactional table, causing an implicit rollback.
(Bug#32709)
See also Bug#38262.
The Sun Studio compiler failed to build debug versions of the server due to use of features specific to gcc. (Bug#39451)
For a TIMESTAMP
column in an
InnoDB
table, testing the column with
multiple conditions in the WHERE
clause
caused a server crash.
(Bug#39353)
References to local variables in stored procedures are replaced
with
NAME_CONST(
when written to the
binary log. However, an “illegal mix of collation”
error might occur when executing the log contents if the value's
collation differed from that of the variable. Now information
about the variable collation is written as well.
(Bug#39182)name
,
value
)
Queries of the form SELECT ... REGEXP BINARY
NULL
could lead to a hung or crashed server.
(Bug#39021)
Statements of the form INSERT ... SELECT .. ON
DUPLICATE KEY UPDATE
could result in a server crash.
(Bug#39002)col_name
=
DEFAULT
Column names constructed due to wild-card expansion done inside a stored procedure could point to freed memory if the expansion was performed after the first call to the stored procedure. (Bug#38823)
Repeated CREATE
TABLE ... SELECT
statements, where the created table
contained an AUTO_INCREMENT
column, could
lead to an assertion failure.
(Bug#38821)
For deadlock between two transactions that required a timeout to resolve, all server tables became inaccessible for the duration of the deadlock. (Bug#38804)
When inserting a string into a duplicate-key error message, the server could improperly interpret the string, resulting in a crash. (Bug#38701)
A race condition between threads sometimes caused unallocated memory to be addressed. (Bug#38692)
A server crash resulted from concurrent execution of a
multiple-table UPDATE
that used a
NATURAL
or USING
join
together with FLUSH
TABLES WITH READ LOCK
or ALTER
TABLE
for the table being updated.
(Bug#38691)
On ActiveState Perl, mysql-test-run.pl --start-and-exit started but did not exit. (Bug#38629)
An uninitialized variable in the query profiling code was corrected (detected by Valgrind). (Bug#38560)
A server crash resulted from execution of an
UPDATE
that used a derived table
together with FLUSH
TABLES
.
(Bug#38499)
Stored procedures involving substrings could crash the server on certain platforms due to invalid memory reads. (Bug#38469)
The handlerton-to-plugin mapping implementation did not free
handler plugin references when the plugin was uninstalled,
resulting in a server crash after several install/uninstall
cycles. Also, on Mac OS X, the server crashed when trying to
access an EXAMPLE
table after the
EXAMPLE
plugin was installed.
(Bug#37958)
The server crashed if an argument to a stored procedure was a subquery that returned more than one row. (Bug#37949)
When analyzing the possible index use cases, the server was incorrectly reusing an internal structure, leading to a server crash. (Bug#37943)
Access checks were skipped for SHOW
PROCEDURE STATUS
and SHOW
FUNCTION STATUS
, which could lead to a server crash or
insufficient access checks in subsequent statements.
(Bug#37908)
The <=>
operator could return incorrect results when comparing
NULL
to DATE
,
TIME
, or
DATETIME
values.
(Bug#37526)
The combination of a subquery with a GROUP
BY
, an aggregate function calculated outside the
subquery, and a GROUP BY
on the outer
SELECT
could cause the server to
crash.
(Bug#37348)
The NO_BACKSLASH_ESCAPES
SQL
mode was ignored for
LOAD DATA
INFILE
and SELECT INTO ... OUTFILE
.
The setting is taken into account now.
(Bug#37114)
In some cases, references to views were confused with references to anonymous tables and privilege checking was not performed. (Bug#36086)
For crash reports on Windows, symbol names in stack traces were not correctly resolved. (Bug#35987)
ALTER EVENT
changed the
PRESERVE
attribute of an event even when
PRESERVE
was not specified in the statement.
(Bug#35981)
Host name values in SQL statements were not being checked for
'@'
, which is illegal according to RFC952.
(Bug#35924)
mysql_install_db failed on machines that had
the host name set to localhost
.
(Bug#35754)
Dynamic plugins failed to load on i5/OS. (Bug#35743)
With the
PAD_CHAR_TO_FULL_LENGTH
SQL
mode enabled, a ucs2
CHAR
column returned additional
garbage after trailing space characters.
(Bug#35720)
A trigger for an InnoDB
table activating
multiple times could lead to AUTO_INCREMENT
gaps.
(Bug#31612)
mysqldump could fail to dump views containing a large number of columns. (Bug#31434)
The server could improperly type user-defined variables used in the select list of a query. (Bug#26020)
For access to the
INFORMATION_SCHEMA.VIEWS
table, the
server did not check the SHOW
VIEW
and SELECT
privileges, leading to inconsistency between output from that
table and the SHOW CREATE VIEW
statement.
(Bug#22763)
mysqld_safe
would sometimes fail to remove
the pid file for the old mysql
process after
a crash. As a result, the server would fail to start due to a
false A mysqld process already exists...
error.
(Bug#11122)
User Comments
Add your own comment.