Web lists-archives.com

MySQL Community Server 5.7.6 has been released (part 3/3)




[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