[This is part 3 (last) of the announcement ]
* Partitioning: When multiple columns are used in KEY
partitioning, their order may help determine the
partition in which the row is placed. Changing this order
by means of an ALTER TABLE that uses ALGORITHM=INPLACE
can lead to inconsistency when placing rows in
partitions; in other words, a row inserted before such an
operation operation is placed in one partition, but the
same row inserted afterwards is placed in a different
one. For this reason, altering the order of a multicolumn
index online is no longer allowed when that index is also
used as the base for partitioning the table by KEY;
instead, you must use a copying ALTER TABLE to perform
the change. (Bug #17896265)
* Replication: When enforce_gtid_consistency was set to
WARN, if a second GTID consistency violating statement
within a transaction was encountered, it was not raising
a warning. This was due to the fact that by design the
transaction context was marked as GTID violating, hence
no other warnings were being issued until the transaction
committed. The fix ensures that a warning is raised for
all statements inside a transaction correctly. (Bug
#20414559)
* Replication: After restarting a slave, the first relay
log was missing the Previous_gtids log event. Since MySQL
version 5.7.6, a Previous_gtids log event is added to
every log. This fix ensures that a Previous_gtids log
event is correctly added to the first relay log. (Bug
#20106390)
* Replication: When purging binary logs and the first left
binary log contained only a Previous_gtids log event, a
lost_gtids->is_empty() assertion was caused. This was
related to the fix for Bug#16741603 and has now been
corrected. (Bug #20075721)
* Replication: When using a slave configured to use a
special character set such as UTF-16, UTF-32, or UCS-2,
the receiver (I/O) thread failed to connect. The fix
ensures that in such a situation, if a slave's character
set is not supported then default to using the latin1
character set. (Bug #19855907)
* Replication: If a client thread on a slave executed FLUSH
TABLES WITH READ LOCK while the master executed a DML,
executing SHOW SLAVE STATUS in the same client became
blocked, causing a deadlock. The fix ensures that the
read lock is only held during the period that the relay
log is being updated and the deadlock is avoided. (Bug
#19843808)
* Replication: When using multi-source replication with
multiple channels and with a multi-threaded slave
enabled, resetting the slave and then executing RESET
SLAVE ALL, START SLAVE or STOP SLAVE resulted in a crash.
This has now been fixed and the multi-threaded slave can
be restarted in a multi-source replication setup. (Bug
#19784641)
* Replication: The CHANGE REPLICATION FILTER statement can
be used to create an empty filter, for example when
clearing previously configured replication filters. This
caused a crash in previous versions when creating an
empty filter for REPLICATE_DO_TABLE,
REPLICATE_IGNORE_TABLE, REPLICATE_WILD_DO_TABLE, or
REPLICATE_WILD_IGNORE_TABLE. This fix ensures that these
replication filters can be safely cleared by setting the
filter to be empty. (Bug #19711674)
* Replication: When using a MySQL version that had been
compiled with the WITH_DEBUG option enabled, using
expire_logs_days to purge binary logs caused a restart to
crash the server. This problem arose after the fix for
Bug #17283409. The fix ensures that current_thd is
checked before calling DEBUG_SYNC(). (Bug #19553099)
* Replication: When using a multi-threaded slave, the slave
receiver (SQL) thread stopped with an
ER_MTS_CANT_PARALLEL error when issuing a LOAD DATA
INFILE statement that tried to load data into a
non-transactional table on the master but failed, for
example due to a primary key violation. This was caused
by the multi-threaded slave applier incorrectly handling
DELETE_FILE events. The fix ensures that a multi-threaded
slave handles DELETE_FILE events correctly. (Bug
#19552923)
* Replication: Sometimes the slave I/O thread leaves a
partial group in the current relay log, for example when
it is killed or stopped. After it is restarted, a new
relay log is created on rotation and a pair of
ROTATE_EVENT and FORMAT_DESCRIPTION_EVENT is replicated
from master and written into the new relay log. When
using a multi-threaded slave, problems such as error 1755
were encountered when applying the remaining part of the
group in the relay log. This fix ensures that if
MASTER_AUTO_POSITION is enabled, then the worker rolls
back the partial group, finishes its work, and then
applies the new complete copy of the group. If
MASTER_AUTO_POSITION is disabled, the worker does not
roll back the partial group. (Bug #19545298)
* Replication: When using row-based replication with
slave_type_conversions enabled, a binary log with more
than one Rows_log_event in succession caused a crash.
This was due to the temporary tables generated as part of
the slave_type_conversions process being released too
early. This fix ensures that the temporary tables are not
released too early, and also ensures that long
transactions do not cause an out of memory error. (Bug
#18770469, Bug #19704825)
* Replication: When using binary log files that had been
manually copied from the master, for example to avoid I/O
thread reading delay, a multi-threaded slave generated
error 1755. Because the Previous_gtids log event is
logged using the master's server_id and not the slave's
server_id, the previous events were not being skipped
correctly. This fix ensures that the events in
Previous_gtids log event are always skipped, regardless
of whether they are from the relay log (generated on the
slave) or from the binary log (generated on the master
and manually copied to the slave as the relay log). (Bug
#17812024)
* Replication: When replicating from an earlier version
MySQL master, such as version 4.1, checksums are not used
for events. Replicating to a slave running a newer
version of MySQL, such as version 5.6, which has
slave_sql_verify_checksum enabled by default meant that
the last 4 bytes of events from the older master were
being incorrectly interpreted as the checksum. A warning
is now generated and to avoid such a situation, set
slave_sql_verify_checksum=0 to disable checksums on the
slave. (Bug #17276183)
* Replication: When using multi-source replication and a
multi-threaded slave in a situation that required
recovery of a channel, such as after a slave applier
thread error, or after a crash, the channel was not being
recovered correctly. This meant there was no attempt to
fix gaps in transaction execution left by the stopped
session, which led to some transactions being applied
repeatedly. The fix ensures that in such a situation, the
correct channel is passed through to multi-threaded slave
recovery. (Bug #74906, Bug #20046222)
* Replication: Ignorable log events were introduced in
MySQL 5.6, but were found to not be functioning
correctly. This has now been fixed. (Bug #74683, Bug
#19949915)
* Replication: When an XA transaction was active, executing
an internal rollback, for example using the BINLOG
statement, resulted in an assertion. The fix ensures that
a rollback happens only for a slave when a transaction
spans multiple binary log files. Rollback does not happen
now if the Format_description comes from the BINLOG
statement being executed in the MySQL client. (Bug
#74597, Bug #19928622)
* Replication: The GTIDs of transactions committed in a
group were not added to gtid_executed in order and this
sometimes caused temporary gaps in gtid_executed. When
these gaps occurred, the server would have to add and
remove intervals from the GTID set, and this requires a
mutex, which would cause contention and could reduce
performance. The fix ensures that GTIDs are added to
gtid_executed in the same commit order without gaps. (Bug
#74328, Bug #19982543)
* Replication: In a replication topology where:
+ the slave had GTID_MODE=ON and
MASTER_AUTO_POSITION=1
+ the master had GTID_MODE=ON and had not executed any
transactions since it was started
if the slave used the MASTER_POS_WAIT function to wait
until it had received the full binary log from the master
while the master had not executed any transactions, then
the MASTER_POS_WAIT function would never finish, or would
time out. This was caused because after a server restart,
the master's binary log ends with a Previous_gtids log
event but this event was not being replicated, so the
slave was not made aware of the master's binary log
position. The fix ensures that the Previous_gtids log
event is replicated correctly, so that the slave becomes
aware of the correct binary log position on the master,
ensuring that the MASTER_POS_WAIT function can finish.
(Bug #73727, Bug #19507923)
* Replication: When restarting MySQL with
relay_log_recovery enabled to recover from a crash, if
the SQL thread had never been started, the position from
which to start recovery was not correctly initialized
because Relay_Master_Log_File was missing. This fix
ensures that in such a situation each of the relay logs,
starting from the first relay log file, is searched for a
rotate event from the master, which specifies where
replication started from. This rotate event is then used
to set the SQL thread's Relay_Master_Log_File and
Relay_Log_Pos and recovery continues as normal. (Bug
#73039, Bug #19021091)
* Replication: When using GTIDs for replication and with
MASTER_AUTO_POSITION enabled, if a slave requested GTIDs
which had been already been purged by the master, the
master was sending all available GTIDs. This happened
because the master reads all available binary logs and
searches for a binary log which contains a GTID that is
not contained in the union of gtid_executed and
gtid_retrieved. If such a GTID is found, the master
starts sending the information starting from that
location. In a situation where the union of the slave's
gtid_executed and gtid_retreived set did not contain the
master's gtid_purged set, the slave would expect GTIDs
which had already been purged by the master. This fix
ensures that in such a situation, the slave's I/O thread
is aborted with an error "Master has purged binary logs
containing GTIDs that the slave requires.". (Bug #73032,
Bug #19012085)
* Replication: When using a multi-threaded slave with GTID
based replication, enabling --replicate-same-server-id
caused the slave thread to stop with an error and
replication could not be started. This was caused by a
Previous_gtids log event not being correctly filtered in
such a setup and reaching the worker thread. The fix
ensures that Previous_gtids log event is correctly
processed by the coordinator thread. (Bug #72988, Bug
#18967791)
* Replication: A kernel mutex contention was being caused
because mysqlbinlog was calling localtime() for every
event read, which in turn called stat(/etc/localtime).
This fix ensures that mysqlbinlog uses localtime_r(),
which is optimized to store the read only timezone
internal structure. This also means that mysqlbinlog now
establishes the time zone at the beginning of processing
and you can not change it during processing. This is the
same behavior as MySQL server. (Bug #72701, Bug
#18808072)
* Replication: In normal usage, it is not possible for a
slave to have more GTIDs than the master. But in certain
situations, such as after a hardware failure or
incorrectly cleared gtid_purged, the master's binary log
could be truncated. This fix ensures that in such a
situation, the master now detects that the slave has
transactions with GTIDs which are not on the master. An
error is now generated on the slave and the I/O thread is
stopped with an error. The master's dump thread is also
stopped. This prevents data inconsistencies during
replication. (Bug #72635, Bug #18789758)
* Replication: When using a GTID based replication slave
with auto positioning enabled, there was a possibility
that the last fully received transaction could be
requested again by the slave I/O thread when the GTID of
the transaction was not in the slave's gtid_executed set.
This situation could occur for example if the SQL thread
had not applied the transaction or a RESET MASTER
statement was issued on the slave to clean up its
gtid_executed set. The fix ensures that a GTID based
replication slave using auto positioning does not ask for
a fully received transaction twice, regardless of the
slave's gtid_executed set, and it now only adds a GTID to
the Retrieved_Gtid_Set when the whole transaction has
been received. (Bug #72392, Bug #18629623, Bug #17943188)
* Replication: When using SHOW SLAVE STATUS to monitor
replication performance, Seconds_Behind_Master sometimes
displayed unexpected lag behind the master. This was
caused by Previous_gtids log events being written to the
slave's relay log with a timestamp behind the master, and
then being used to calculate the Seconds_Behind_Master.
This fix ensures that events generated on the slave that
are added to the relay log and are not used when
calculating Seconds_Behind_Master. (Bug #72376, Bug
#18622657)
* Replication: The global scope for the sql_log_bin system
variable has been deprecated, and this variable can now
be set with session scope only. The statement SET GLOBAL
SQL_LOG_BIN now produces an error. It remains possible
for now to read the global value of sql_log_bin, but
doing so produces a warning. You should act now to remove
from your applications any dependencies on reading this
value, as the ability to do so will be removed in the
next major MySQL release following MySQL 5.7. (Bug
#67433, Bug #15868071)
* For debug builds, an assertion could be raised during
index selection if a spatial index used a column that was
also part of the primary index. (Bug #20451454)
* On Linux, trying to install a .dll plugin (intended for
Windows) resulted in a memory leak. (Bug #20439894)
* On 32-bit platforms, byte-count calculations for utf8
arguments for RPAD() could overflow and cause a server
exit. (Bug #20316028)
* Pushed joins were not working for NDB tables. (Bug
#20234994)
* mysqltest had a memory leak if another process shut down
the server. (Bug #20221262)
* For some queries with LIMIT, EXPLAIN could indicate that
execution would be done using filesort, but execution
actually was done using an index read. (Bug #20219846)
* A bulk INSERT followed by other statements followed by
LOAD DATA could produce incorrect AUTO_INCREMENT values.
(Bug #20126635)
* The mysql_session_track_get_first() C API function
returned 1 instead of 0 even after a valid query was
executed to change the session state. (Bug #20126551)
* On Ubuntu 14.10, MySQL install operations could fail to
reload AppArmor. (Bug #20092641)
* During token processing, the parser check whether a token
contained 7-bit data could be applied to the wrong token.
(Bug #20086997)
* For debug builds, the server could raise an assertion
during DELETE processing due to failure to handle a
subquery that was required to be a scalar subquery but
returned more than 1 row. (Bug #20086791)
* mysql_list_fields() and mysql_stmt_prepare() could leak
memory. This problem was introduced in MySQL 5.7.5 as a
result of the change to EOF packet handling. (Bug
#20065461, Bug #20065517)
* Some queries with argumentless functions, GROUP BY, and
ROLLUP caused an assertion to be raised. (Bug #20034943)
* For a privilege error on a table underlying a view, a
more general error should be supplied for attempts to
access the view, so as not to provide information about
the view contents. This did not happen in strict SQL
mode. (Bug #20032855)
* NULL as an expression was not recognized as a literal for
calculation of Performance Schema statement digests. (Bug
#20015246)
* A user with a name of event_scheduler could view the
Event Scheduler process list without the PROCESS
privilege. (Bug #20007583)
* The mysql client could exit prematurely when invoked with
the --xml option. (Bug #19974879)
* InnoDB table checksum calculation could yield an
incorrect result if the value of the
innodb_checksum_algorithm system variable was modified
during the operation. (Bug #19931177)
* The LIKE operator could produce unreliable results of the
ESCAPE clause contained an expression that was constant
at execution time but unknown prior to that. (Bug
#19931126)
* Execution of certain BINLOG statements while temporary
tables were open by HANDLER statements could cause a
server exit. (Bug #19894987)
* Binary distributions for Solaris built with Sun Studio
now ship with the stlport library due to a dependency of
client programs on that library. (Bug #19845068)
* SHOW GRANTS after connecting using a proxy user could
display the password hash of the proxied user. (Bug
#19817663)
* For debug builds, the optimizer could produce a bad index
scan cost when creating a temporary table for a derived
table, and raise an assertion as a result. (Bug
#19793998)
* Unlocking a temporary table after locking and truncating
it could cause a server exit. (Bug #19786309)
* IN predicates could be incorrectly flagged as candidates
for semi-join flattening, causing an assertion to be
raised when flattening was attempted. (Bug #19779600, Bug
#18932813)
* Large values of the transaction_prealloc_size system
variable could cause the server to allocate excessive
amounts of memory. The maximum value has been adjusted
down to 128K. A similar change was made for
transaction_alloc_block_size. (Bug #19770858)
* RPM and DEB packages set the default sql_mode value
incorrectly (they did not set ONLY_FULL_GROUP_BY, which
is now included in the default value). (Bug #19766800)
* Source RPM packages were missing the proper dependency on
the Boost library. (Bug #19714453)
* The Enterprise Encryption plugin could mishandle string
arguments. (Bug #19688008)
* The optimizer detected functional dependency for equality
expressions of the form col_name = expr, but not for
expressions of the form (col_name, ...) = (col_name,
...). Now it handles the latter as well. (Bug #19687724)
* Certain InnoDB errors caused stored function and trigger
condition handlers to be ignored. (Bug #19683834, Bug
#20094067)
* On some 32-bit platforms, GET_LOCK(lock_name, -1)
returned immediately due to timeout rather than waiting
for the lock. (Bug #19674349)
* If a DML statement containing a subquery caused a
deadlock inside InnoDB, InnoDB would roll back the
transaction. This would not be noticed in the SQL layer,
with the result that execution continued, eventually
leading to an assertion being raised inside InnoDB. (Bug
#19670163)
* With default_authentication_plugin set to
sha256_password, password hashes written to the binary
log were in the wrong format. (Bug #19660998)
* GROUP BY on a CHAR(0) NOT NULL column could lead to a
server exit. (Bug #19660891)
* Under load, the server could exit while attempting to
populate the OBJECT_TYPE column for selects from the
Performance Schema events_waits_current table. (Bug
#19658933)
* ST_AsGeoJson() could fail when given an illegal
max_dec_digits or options argument. (Bug #19657747)
* Geohash spatial functions failed when given a geohash
argument having a collation other than the default
collation. (Bug #19657725)
* Checks enforced by ONLY_FULL_GROUP_BY cannot reliably be
run if a grouped query is part of CREATE VIEW. The MySQL
server tried to run those checks and could exit; now only
statements that actually use the view run the checks.
(Bug #19636980)
* For debug builds, an assertion could be incorrectly
raised when a grouped query referred to a view. (Bug
#19636409)
* For debug builds: Adding a unique index to a POINT NOT
NULL column triggered a warning and the key was not
promoted to a primary key. Creating a unique index on a
different non-NULL column in the same table then raised
an assertion. (Bug #19635706)
* When there is no change in session state, the OK packet
sent from server to the client contained an unneeded byte
at the end of the packet. (Bug #19625718)
* Debug builds of mysql_install_db did not compile on
Solaris 11 U2 due to use of the deprecated vfork()
function. (Bug #19603400)
* An assertion could be raised for either of these
conditions: 1) A conversion to semi-join intended for
scalar subqueries was applied to multiple-row subqueries.
2) An IN predicate for which the left-hand side was a
scalar subquery converted to a semi-join was checked to
see whether it could use materialization. (Bug #19586047)
* For debug builds, if an intermediate or final result
produced NaN or a negative number, ST_Distance() caused a
server exit. This function now produces a
ER_GIS_INVALID_DATA error instead. (Bug #19584716)
* CMake configuration was adjusted to handle new warnings
reported by Clang 3.5, using the
-Wpointer-bool-conversion and -Wundefined-bool-conversion
compiler options. (Bug #19584183)
* If a CREATE TABLE or ALTER TABLE partitioning statement
was executed in strict SQL mode and an
ER_WRONG_TYPE_COLUMN_VALUE_ERROR error occurred, the
sql_mode was reset to '' and the stack of error handlers
was corrupted, leading to a server exit. (Bug #19584181)
* Attempting to start the server on a port that was already
in use produced Valgrind errors. (Bug #19566148)
* Session state was not included with the results of
queries saved in the query cache. (Bug #19550875)
* Illegal CREATE TABLE statements could fail to create the
table (as expected), but still generate table statistics
in the Performance Schema. (Bug #19535945)
* Setting session_track_system_variables to NULL could lead
to an eventual server exit. (Bug #19514067)
* The client protocol tracing plugin did not account for
the removal of the EOF packet from the client/server
protocol in MySQL 5.7.5. (Bug #19512199)
* The default value for the condition filtering effect for
equality conditions on nonindexed columns was adjusted
from 0.005 to 0.1. The original value caused too-high
estimates for the condition filtering effect for columns
with low cardinality. (Bug #19505175)
* A UNION statement for which the first query block
returned a POINT column and the second returned a
geometric column with a non-POINT value failed if the
query used InnoDB temporary tables or stored the result
in an InnoDB table. (Bug #19471564)
* An assertion could be raised for queries evaluated using
a semi-join LooseScan if an index scan was used on one
index and a range scan on another index. (Bug #19465034)
* For client programs, --secure-auth is now deprecated and
--skip-secure=auth is illegal, but use of
--skip-secure-auth resulted in a warning followed by the
help message rather than an error. (Bug #19438612)
* In strict SQL mode, some SELECT statements could execute
differently within and without stored procedures. (Bug
#19418619)
* If the audit_log plugin encountered a disk-full error,
the server would exit.
Now, if the file system to which the audit log is being
written fills up, a "disk full" error is written to the
error log. Audit logging continues until the audit log
buffer is full. If free disk space has not been made
available by the time the buffer fills, client sessions
will hang, and stopping the server at the time of client
sessions hanging will result in audit log corruption. To
avoid this if client sessions are hung, ensure that free
space is available on the audit logging file system
before stopping the server. (Bug #19411485)
* With the validate_password plugin activated and
dictionary lookups enabled, passing a user-defined
variable to PASSWORD() could cause a server exit. (Bug
#19388163)
* Statements that used Geohash spatial functions could not
be prepared. (Bug #19383904)
* The XPath number() function failed when invoked with no
argument. Now MySQL treats number() as if it had been
invoked for the current context node (in other words, as
if number(.) had been used instead), which is the
behavior called for in the XPath specification for this
case. (Bug #19323016)
References: This bug is a regression of Bug #19056196.
* Certain GRANT PROXY statements affected only in-memory
privileges and were reverted by FLUSH PRIVILEGES or a
server restart. (Bug #19309652)
* For debug builds, certain UPDATE statements could raise
an assertion. (Bug #19055268)
* STR_TO_DATE() could mishandle conversion of numeric input
to date, resulting in a server exit. (Bug #19047644)
* Fixed a Valgrind warning for an out-of-bounds read while
parsing '0E+'. (Bug #19047527)
* Under certain conditions, DATE_FORMAT() could use the
same buffer for its format argument and the function
result, resulting in invalid memory reads. (Bug
#19047488)
* Conversion of a string to an IPv6 address could raise a
Valgrind warning. (Bug #19047425)
* For failure to create a temporary table due to being out
of file descriptors, the server exited rather than
returning an error. (Bug #18948649)
* mysqldump failed to report a disk-full error if the dump
destination was located on an NFS mount. (Bug #18817867)
* Under certain conditions, a proxy user could expire the
password of the proxied user. (Bug #18815349)
* InnoDB permitted a foreign key to be created which
referenced a parent table for which the user did not have
sufficient privileges. (Bug #18790730)
* The server could exit due to an optimizer failure to
allocate enough memory for resolving outer references.
(Bug #18782905, Bug #19892803)
* The mysql_session_track_get_first() and
mysql_session_track_get_next() C API functions could
cause a client crash if passed invalid arguments. (Bug
#18769620)
* If two internal temporary tables were created based on
the same aggregate function, the server could exit. (Bug
#18766378)
* For some queries that contained a derived table (subquery
in the FROM clause), delay of materialization resulted in
a suboptimal execution plan due to a less accurate
row-count estimate. (Bug #18607971)
* For some multiple-table UPDATE statements, the join order
of the tables could incorrectly influence the result.
(Bug #18449085)
* The key length used in vio/viosslfactories.c for creating
Diffie-Hellman keys has been increased from 512 to 1,024
bits. (Bug #18367167)
* ST_Touches() could cause a server exit for some inputs.
(Bug #18304448)
* Copying InnoDB tables containing full-text columns from
Windows to Linux caused a server exit on Linux during
full-text index initialization. (Bug #18285007)
* A server running with
--default-authentication-plugin=sha256_password rejected
connection attempts by MySQL 5.1 clients requiring a
password. (Bug #18160400)
* The validate_password plugin did not properly enforce
password constraints for accounts authenticated by the
sha256_password authentication plugin. (Bug #18140348)
* For UPDATE and DELETE statements, the server could exit
after attempting to access an uninitialized data
structure. (Bug #18036143)
* Execution of a prepared statement with a nested IN
subquery and a view could cause a server exit. (Bug
#17973601)
* Starting the server with start service or mysqld_safe
could result in failure to use the correct plugin
directory. (Bug #17619241)
* FLUSH TABLES on a FEDERATED table failed if the table had
been idle longer than the wait_timeout time plus the TCP
keepalive time. (Bug #17599258)
* For FEDERATED tables, IGNORE handling for DELETE IGNORE
statements was ignored. (Bug #17564775)
* For debug builds, an assertion was raised for ALTER TABLE
when accessing an indexed column for which the operation
modified the column length, if the length was 767 and was
being increased. (Bug #16886196)
* Selecting all columns from INFORMATION_SCHEMA.TABLES did
not reopen tables if they were in the table cache, but
selecting a subset of those columns under the same
conditions did reopen tables. (Bug #16869534)
* On Windows, the replace utility did not work. (Bug
#16581605)
* For some full-text queries, incomplete optimizer cleanup
regarding index use could affect subsequent queries
against the same table. (Bug #75688, Bug #20442572, Bug
#20261601)
* For JSON-format EXPLAIN output, the filtered value was
displayed to an unwarranted number of digits precsion.
This value is now limited to two digits following the
decimal point. (Bug #75663, Bug #20429156)
* For a slow network connection, the timeout for
downloading Boost (600 seconds) could be too short. A new
CMake option, DOWNLOAD_BOOST_TIMEOUT, is now available to
configure the timeout. (Bug #75238, Bug #20223893)
* Several spelling errors in error messages and the source
code were corrected. Thanks to Otto Kek?l?inen for the
patch. (Bug #75084, Bug #20135835)
* When CMake did not find the required version of Boost,
the error message did not indicate the required version.
Now it does. (Bug #75026, Bug #20108908)
* Enabling the log_timestamps system variable incorrectly
required binary logging to be enabled. (Bug #75025, Bug
#20108866)
* For subqueries that used GET_LOCK() or RELEASE_LOCK() in
decimal context, the server could create ill-defined
temporary tables, resulting in a raised assertion. (Bug
#74859, Bug #20031761)
* default_password_lifetime was marked volatile,
unnecessarily because it is protected with a mutex.
Thanks to Stewart Smith for the patch. (Bug #74849, Bug
#20029439)
* Removed the unused grant_option global variable from
mysqld.cc. Thanks to Stewart Smith for the patch. (Bug
#74847, Bug #20029398)
* InnoDB boolean full-text searches incorrectly handled +
combined with parentheses; for example, +word1 +(>word2
<word3). (Bug #74845, Bug #20028323)
* MySQL failed to compile with GCC 4.9.1 in debug mode.
(Bug #74710, Bug #19974500)
* An optimizer cost model constructor allocated but did not
destroy a cost constant object, resulting in a memory
leak. (Bug #74590, Bug #19895764)
* For debug builds, certain queries could raise an
assertion when a internal string operation produces a
NULL pointer rather than an empty string. (Bug #74500,
Bug #19875294, Bug #13358486)
* For mysql_install_db, the --no-defaults option was not
passed to mysqld. (Bug #74477, Bug #19863782)
* For debug builds, the server could exit due to an
optimizer failure to allocate enough memory for group
references. (Bug #74447, Bug #19855522)
* For 32-bit Solaris builds, alignment problems resulting
from improper use of varargs function arguments caused
core dumps and incorrect output. (Bug #74395, Bug
#19821617)
* For the Performance Schema
table_io_waits_summary_by_table table, there was an
off-by-one error for the COUNT_FETCH and COUNT_READ
values. (Bug #74379, Bug #19814559)
* Depending on contents, geometry collection objects were
not properly destroyed, resulting in a memory leak. (Bug
#74371, Bug #19813931)
* Using (row subquery1) NOT IN (row subquery2) with NULL
values in the left argument could cause an assertion
failure. (Bug #74357, Bug #19805761)
* Any index comment specified for ALTER TABLE ... ADD INDEX
was ignored. (Bug #74263, Bug #19779365)
* Reading a system variable with a NULL value inside a
stored program caused any subsequent reads to return a
NULL value even though the variable value might change
across invocations of the stored program. (Bug #74244,
Bug #19770958)
* The -DENABLED_PROFILING=0 CMake option resulted in
compilation errors. (Bug #74166, Bug #19730970)
* With the change in MySQL 5.7.5 to InnoDB for the help
tables in the mysql database, mysql_install_db became
much slower for loading the help-table content. This was
due to the INSERT statements loading with autocommit
enabled. Now all the statements execute as a single
transaction, not one transaction per statement. (Bug
#74132, Bug #19703580)
* On CentOS 6, specifying a relative path name for the
--socket option caused MySQL startup script failure. (Bug
#74111, Bug #19775856)
* The group_concat_max_len system variable could be set to
its maximum value at runtime, but not in an option file.
(Bug #74037, Bug #19670915)
* The server incorrectly wrote client-side error messages
to the error log: Deadlock found when trying to get lock;
try restarting transaction. (Bug #73988, Bug #19656296)
* The client part of the sha256_password plugin could not
be specified as a default client plugin
(--default-auth=sha256_password) for users authenticating
with other server plugins. (Bug #73981, Bug #19651687,
Bug #17675203)
* Miscalculation of memory requirements for qsort
operations could result in stack overflow errors in
situations with a large number of concurrent server
connections. (Bug #73979, Bug #19678930)
* REPEAT() wasted time concatenating empty strings. (Bug
#73973, Bug #19646643)
* The capabililty of using InnoDB for temporary tables in
MySQL 5.7.5 resulted in certain queries failing: Some
queries involving multiple-table UPDATE, queries
involving long PRIMARY KEY values, and queries involving
DISTINCT SUM(). (Bug #73927, Bug #19627741, Bug #73932,
Bug #19628808, Bug #73702, Bug #19497209)
* On Windows, setting the max_statement_time session
variable greater than 0 resulted in a memory leak. (Bug
#73897, Bug #19605472)
* In Solaris 11.2, dtrace -V output changed from Sun D to
Oracle D, causing detection of DTrace availability to
fail during MySQL configuration. (Bug #73826, Bug
#19586917)
* DROP DATABASE failed if the database directory contained
.cfg files (such as created by FLUSH TABLES FOR EXPORT).
(Bug #73820, Bug #19573998)
* On 32-bit systems, GLength() returned a non-INF value for
LineString values of infinite length. (Bug #73811, Bug
#19566186)
* mysql_config --libs_r produces output containing link
flags for libmysqlclient_r, even though that library was
removed in MySQL 5.5 and replaced with a symlink to the
underlying libmysqlclient library. The output now refers
directly to libmysqlclient. (The implication is that it
is no longer necessary to maintain the symlink for the
sake of being able to use mysql_config --libs_r.) (Bug
#73724, Bug #19506315)
* For statement digest calculation, the Performance Schema
failed to recognize signed literal numbers as values
representable by ? and created multiple digests for
statements that should have had the same signature. Now
all instances of unary plus and unary minus followed by a
number reduce to ? in digests. (Bug #73504, Bug
#19389709)
* Compilation on Windows using Visual Studio 2013 resulted
in "unresolved external symbol" errors. (Bug #73461, Bug
#19351573)
* With the query cache enabled, certain queries that began
with comment sequences could cause invalid memory read
errors. (Bug #73434, Bug #19322795)
* OLD_PASSWORD() is deprecated, but no warning was produced
when it was invoked. (Bug #73376, Bug #19285177)
* A server warning error message referred to the obsolete
table_cache system variable rather than to
table_open_cache. Thanks to Dani?l van Eeden for the
patch to fix some of the instances. (Bug #73373, Bug
#19285052, Bug #75081, Bug #20135780)
* Certain queries for which subquery materialization or
UNION DISTINCT was used together with a hash index on a
temporary table could produce incorrect results or cause
a server exit. (Bug #73368, Bug #19297190)
* If a table had a NOT NULL column, for an INSERT statement
on the table for which the column value was not
specified, the server produced ERROR 1048 "Column cannot
be null" rather than Warning 1364 "Field doesn't have a
default value" if there was a BEFORE trigger with an
action type different from ON INSERT. (Bug #73207, Bug
#19182009)
* The IS_FREE_LOCK() and IS_USED_LOCK() function
implementations contained a race condition due to which
they could access freed memory when a user lock was
concurrently checked and freed. Accessing freed memory
could result in an incorrect function return value or
server exit. (Bug #73123, Bug #19070633)
* SHOW EVENTS in the performance_schema database returned
an access-denied error, rather than an empty result as is
done for INFORMATION_SCHEMA. Now an empty result is
returned. (Bug #73082, Bug #19050141)
* LOCK TABLES sometimes acquired an insufficiently strong
lock for implicitly locked tables. (Bug #72887, Bug
#18913551)
* The server no longer logs the following warnings because
they are uninformative: Client failed to provide its
character set. 'charset' will be used as client character
set. (Bug #72543, Bug #18708334)
* The ENABLED_LOCAL_INFILE CMake option incorrectly was
enabled by default. (Bug #72106, Bug #18448743)
* The server could fail to parse inserted strings for SET
columns for which the column definition had exactly 64
elements. (Bug #71259, Bug #18020499)
* Use of ODBC-format date literals could produce incorrect
query results. (Bug #69233, Bug #16812821)
* mysql_setpermission failed to properly quote user names
in SQL statements that it generated. (Bug #66317, Bug
#14486004)
* For FEDERATED tables, DELETE FROM tbl_name statements
were sent to the remote server as TRUNCATE TABLE tbl_name
statements, with possible side effects on transaction
handling and AUTO_INCREMENT processing. (Bug #42878, Bug
#11751864)
* A file created for an internal temporary table could
cause problems if the file was orphaned for some reason
and the file name was reused for later queries. (Bug
#32917, Bug #11747548)
* mysql_tzinfo_to_sql failed in STRICT_ALL_TABLES SQL mode
if time zone tables contained malformed information. (Bug
#20545, Bug #11745851)
* For Windows, the noinstall Zip archive was split into two
separate Zip archives. The MySQL test suite, MySQL
benchmark suite, and debugging binaries/information
components were moved into their own Zip archive named
mysql-5.7.6-m16-winx64-debug-test.zip for 64-bit and
mysql-5.7.6-m16-win32-debug-test.zip for 32-bit. This
change was made to reduce the file size of the more
common download.
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/mysql