[ This is part 2 of the announcement ]

   Bugs Fixed, continued

     * InnoDB: A type name (srv_shutdown_state) was the same as a
       variable name. The srv_shutdown_state type name has been
       changed to srv_shutdown_t. (Bug #16735398)

     * InnoDB: On Windows, the full-text search (FTS) object ID was
       not in the expected hexadecimal format. (Bug #16559254)
       References: See also Bug #16559119.

     * InnoDB: The buf_buddy_relocate function would perform an
       unnecessary hash lookup. (Bug #16596057)

     * InnoDB: Server shutdown would result in a hang with the
       following message written to the error log: "[NOTE] InnoDB:
       Waiting for purge thread to be suspended." (Bug #16495065)

     * InnoDB: InnoDB would fail to start when innodb_data_file_path
       specified the data file size in kilobytes by appending K to
       the size value. (Bug #16287752)

     * InnoDB: Fetching and releasing pages from the buffer pool and
       tracking the page state are expensive and complex operations.
       Prior to the bug fix, these operations were performed using a
       page mutex. Using a page mutex to track several things is
       expensive and does not scale well. The bug fix separates fetch
       and release tracking (in-use state) of a page from page I/O
       state tracking. Fetch and release is now tracked using atomics
       where available.
       For portability, a new CMake build option,
       INNODB_PAGE_ATOMIC_REF_COUNT (default ON), can be used to
       disable atomic page reference counting on platforms where
       atomics support is not available. When atomic page reference
       counting is enabled (default), "[Note] InnoDB: Using atomics
       to ref count buffer pool pages" is printed to the error log at
       server startup. If atomic page reference counting is disabled,
       "[Note] InnoDB: Using mutexes to ref count buffer pool pages"
       is printed instead. (Bug #16249481, Bug #68079)

     * InnoDB: An insert buffer merge would cause an assertion error
       due to incorrectly handled ownership information for
       externally stored BLOBs.
InnoDB: Assertion failure in thread thread_num in file ibuf0ibuf.cc l
ine 4080
InnoDB: Failing assertion: rec_get_deleted_flag(rec, page_is_comp(pag
e))
       (Bug #14668683)

     * InnoDB: Decreasing the auto_increment_increment value would
       have no affect on the next auto-increment value. (Bug
       #14049391, Bug #65225)

     * InnoDB: Table renaming errors would appear in the LATEST
       FOREIGN KEY ERROR section of the SHOW ENGINE INNODB STATUS
       output. (Bug #12762390, Bug #61746)

     * InnoDB: The page latching algorithm for b-trees would lock
       sibling leaf pages, prolonging dictionary locks. The bug fix
       implements prefectching of sibling leaf pages to reduce index
       lock holding time. (Bug #12734249, Bug #61736)

     * InnoDB: An INSERT ...ON DUPLICATE KEY UPDATE statement run on
       a table with multiple unique indexes would sometimes cause
       events to be incorrectly written to the binary log. (Bug
       #11758237, Bug #50413)

     * InnoDB: BUF_READ_AHEAD_AREA would frequently call
       ut_2_power_up for workloads with a high I/O rate. The
       calculation is now performed once and the result is stored in
       the buf_pool_t structure. (Bug #11762242, Bug #54814)

     * InnoDB: UNIV_SYNC_DEBUG, which was disabled in univ.i with the
       fix for Bug#16720368, is now enabled. (Bug #69617, Bug
       #17033591)

     * Partitioning: Queries using the index_merge optimization (see
       Index Merge Optimization
       (http://dev.mysql.com/doc/refman/5.7/en/index-merge-optimizati
       on.html)) could return invalid results when run against tables
       that were partitioned by HASH. (Bug #17588348, Bug #70588)
       References: See also Bug #16862316, Bug #17648468, Bug
       #18167648.

     * Partitioning: When no partition had returned a row since the
       last HA_ERR_KEY_NOT_FOUND error, the use of uninitialized
       memory in the priority queue used for returning rows in sorted
       order could lead to a crash of the server. (Bug #17401628)

     * Replication: When running the server with --gtid-mode=ON, STOP
       SLAVE followed by START SLAVE resulted in a mismatch between
       the information provided by
       INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO and the
       Slave_open_temp_tables status variable: the
       INNODB_TEMP_TABLE_INFO table showed that no temporary tables
       existed, but Slave_open_temp_tables had a nonzero value. (Bug
       #18236612)

     * Replication: Attempting to use semisynchronous replication
       concurrently with SSH connections caused the server to fail.
       (Bug #18219471)

     * Replication: When MASTER_HEARTBEAT_PERIOD was not included in
       CHANGE MASTER TO, the statement reset Slave_heartbeat_period
       to its default value and Slave_received_heartbeats to 0. Now
       the heartbeat period is not changed by CHANGE MASTER TO unless
       explicitly set using MASTER_HEARTBEAT_PERIOD. In addition, the
       statement no longer resets Slave_received_heartbeats. (Bug
       #18185490)

     * Replication: The MASTER_SSL_CRL and MASTER_SSL_CRLPATH options
       are not available when using yaSSL; MySQL Replication now sets
       these to NULL automatically whenever yaSSL is enabled. (Bug
       #18165937)

     * Replication: mysqlbinlog did not free up memory used by its
       event buffer when using the --rewrite-db option. (Bug
       #18164998)

     * Replication: After setting MASTER_SSL_CRLPATH using a CHANGE
       MASTER TO statement, the option value was not displayed
       properly in the SSL_CRL_PATH column of the Performance Schema
       replication_connection_configuration table. (Bug #18174719)

     * Replication: Setting --slave-parallel-workers to 1 or greater
       and starting the slave caused the slave SQL thread to use but
       not release memory until the slave was restarted with STOP
       SLAVE and START SLAVE. (Bug #18001777, Bug #71197)

     * Replication: When a slave was configured with replication
       filters and --log-warnings=2, every statement which was
       filtered caused an entry to be written in the error log. For
       busy servers which generated many statements to be filtered,
       the result was that the error log could quickly grow to many
       gigabytes in size. Now a throttle is used for such errors, so
       that an error message is printed only once in a given
       interval, saying that this particular error occurred a
       specific number of times during that interval. (Bug #17986385)

     * Replication: When the master and the slave both had
       gtid_mode=OFF set initially, and the slave SQL thread was
       stopped while there remained anonymous transactions in the
       relay log, if the slave was then restarted with gtid_mode=ON,
       then the slave assigned GTIDs such transactions. This could
       cause problems when the slave was later promoted to a master,
       as the transactions would be played again on the promoted
       master's slaves, leading quickly to inconsistencies on those
       slaves. (Bug #17813449)
       References: See also Bug #17827018.

     * Replication: When the master and the slave both had
       gtid_mode=ON set initially, and the slave SQL thread was
       stopped while there remained GTID transactions in the relay
       log, if the slave was then restarted with gtid_mode=OFF, then
       the slave SQL thread executed any anonymous transaction it
       encountered without writing its GTID to the binary log, with
       the result that the GTID was lost. This could cause problems
       when the slave was later promoted to a master, as the
       transaction would be played again on the promoted master's
       slaves, leading quickly to inconsistencies on those slaves.
       (Bug #17827018)
       References: See also Bug #17813449.

     * Replication: When the binary log I/O cache grew to exactly
       32768 bytes and the current transaction was preceded by a
       transaction whose size was greater than 32768 bytes, events
       could be corrupted when written into the binary log. (Bug
       #17842137)

     * Replication: Creating and dropping large numbers of temporary
       tables could lead to increased memory consumption. (Bug
       #17806014)

     * Replication: SHOW SLAVE STATUS used incorrect values when
       reporting MASTER_SSL_CRL and MASTER_SSL_CRLPATH. (Bug
       #17772911, Bug #70866)
       References: This bug was introduced by Bug #11747191.

     * Replication: Binary log events could be sent to slaves before
       they were flushed to disk on the master, even when sync_binlog
       was set to 1. This could lead to either of those of the
       following two issues when the master was restarted following a
       crash of the operating system:

          + Replication cannot continue because one or more slaves
            are requesting replicate events that do not exist on the
            master.

          + Data exists on one or more slaves, but not on the master.
       Such problems are expected on less durable settings
       (sync_binlog not equal to 1), but it should not happen when
       sync_binlog is 1. To fix this issue, a lock (LOCK_log) is now
       held during synchronization, and is released only after the
       binary events are actually written to disk. (Bug #17632285,
       Bug #70669)

     * Replication: mysqlbinlog --verbose failed when it encountered
       a corrupt row event in the binary log. Such a row event could
       also cause the slave to fail. (Bug #17632978)
       References: See also Bug #16960133.

     * Replication: When log_warnings is greater than 1, the master
       prints binary log dump thread information---containing the
       slave server ID, binary log file name, and binary log
       position---in mysqld.1.err. A slave server ID greater than 2
       billion was printed with a negative value in such cases. (Bug
       #17641586, Bug #70685)

     * Replication: When running the slave with
       --slave-parallel-workers at 1 or greater, setting
       --slave-skip-errors=all caused the error log to be filled with
       with instances of the warning Slave SQL: Could not execute
       Query event. Detailed error: ;, Error_code: 0. (Bug #17581990,
       Bug #68429)
       References: See also Bug #17986385.

     * Replication: When semi-synchronous replication was configured
       on an independent server with no slaves and
       rpl_semi_sync_master_wait_no_slave was set to OFF, the master
       still waited for an ACK from the slave. When
       rpl_semi_sync_master_wait_no_slave is set to OFF, the master
       should revert to normal replication when the number of slaves
       reaches zero during the specified timeout period. Now in such
       cases the server checks whether semi-synchronous replication
       is switched on, and, if so, goes on to check whether any
       slaves are connected. If none are connected, semi-synchronous
       replication is disabled until such time that the user sets the
       value of rpl_semi_sync_master_wait_no_slave to ON. (Bug
       #17510411, Bug #70360)

     * Replication: A number of possible state messages used as
       values for the PROCESSLIST_STATE column of the Performance
       Schema threads table were longer than the width of the column
       (64 characters).
       The long state messages have now been rewritten, and shortened
       accordingly. This fix applies in MySQL 5.7 and later. (Bug
       #17319380)

     * Replication: Seconds_Behind_Master in the output of SHOW SLAVE
       STATUS could under some conditions be reported as 0 when it
       should have had a value greater than zero. (Bug #17233214)
       References: See also Bug #16579028.

     * Replication: The server did not handle correctly the insertion
       of a row larger than 4 GB when using row-based replication.
       (Bug #17081415)

     * Replication: When using row-based replication, an additional
       auto-increment column on the slave version of a table was not
       updated correctly; a zero was inserted instead. (Bug
       #17066269, Bug #69680)

     * Replication: Statements involving the Performance Schema
       tables should not be written to the binary log, because the
       content of these tables is applicable only to a given MySQL
       Server instance, and may differ greatly between different
       servers in a replication topology. The database administrator
       should be able to configure (INSERT, UPDATE, or DELETE) or
       flush (TRUNCATE TABLE) performance schema tables on a single
       server without affecting others. However, when replicating
       from a MySQL 5.5 master to a MySQL 5.5 or later slave,
       warnings about unsafe statements updating Performance Schema
       tables were elevated to errors. For MySQL 5.6 and later
       slaves, this prevented the simultaneous use of
       performance_schema and GTIDs (see Replication with Global
       Transaction Identifiers
       (http://dev.mysql.com/doc/refman/5.7/en/replication-gtids.html
       )).
       This fix causes all updates on tables in the
       performance_schema database to be filtered on the master and
       not replicated, regardless of the type of logging that is in
       effect. Prior to this fix, statements using were handled by
       being marked as unsafe for replication, which caused warnings
       during execution; the statements were nonetheless written to
       the binary log, regardless of the logging format in effect.
       Existing replication behavior for tables in the
       INFORMATION_SCHEMA database is not changed by this fix.
       For more information, see MySQL Performance Schema
       (http://dev.mysql.com/doc/refman/5.7/en/performance-schema.htm
       l). (Bug #16814264)
       References: See also Bug #14741537, Bug #18259193.

     * Replication: Invalid event offsets in the binary log were not
       always handled correctly, which could lead to replication
       failure. (Bug #16736412, Bug #69087)

     * Replication: Semisynchronous replication became very slow if
       there were many dump threads (such as from mysqlbinlog or
       slave I/O connections) working at the same time. It was also
       found that semisynchronous master plugin functions were called
       even when the dump connections did not support semisynchronous
       replication, which led to locking of the plugin lock as well
       as wasting time on necessary code.
       After this fix, non-semisynchronous dump threads no longer
       call semisynchronous master functions to observe binary
       events. (Bug #70218, Bug #17434690)

     * Replication: The semisynchronous replication plugin was called
       twice for a DDL statement, incrementing
       Rpl_semi_sync_master_yes_tx by 2 instead of 1 each time such a
       statement was executed. (Bug #70410, Bug #17509011)

     * During compilation, attempts to create sql_yacc.h could be
       made from multiple directories simultaneously. (Bug #18319335)

     * MySQL distributions for Solaris now include a source tarball
       for gcc under the share directory, to comply with GPL
       conditions resulting from inclusion of the C++ runtime
       library. (Bug #18306484)

     * mysql_secure_installation attempted to free memory incorrectly
       and exited abnormally after a failed attempt to read an option
       file. (Bug #18255657)

     * Compilation failed if MySQL was configured with CFLAGS set to
       include a -Werror option with an argument. (Bug #18173037)

     * A shared libmysqld embedded server library was not built on
       Linux. (Bug #18123048, Bug #16430656, Bug #68559)

     * The default compiler flags are picked up from
       cmake/build_configurations/compiler_options.cmake. This can be
       switched off by the CMake -DWITH_DEFAULT_COMPILER_OPTIONS=0
       option. However, it could also be switched off for the C or
       C++ compilers if the CFLAGS or CXXFLAGS environment variables
       were set.
       Those environment variables now have no such effect. To
       specify compiler flags, use -DWITH_DEFAULT_COMPILER_OPTIONS=0
       option, or the -DCMAKE_C_FLAGS=flags and -DCMAKE_C_FLAGS=flags
       options can be used. (Bug #18158812)

     * While printing the server version, the mysql client did not
       check for buffer overflow in a string variable. (Bug
       #18186103)

     * mysql_secure_installation exited if mysql_install_db had been
       run with the --skip-random-passwords option. (Bug #18181665)

     * When the optimizer attempted to use MRR or DS-MRR to read an
       internally created temporary table, the server could exit or
       raise an assertion. (Bug #18172819)

     * A bug in the range optimizer code that handles index merge
       could lead to a server exit or missing rows in the result set.
       (Bug #18136628)

     * Building MySQL from source on Windows using Visual Studio 2008
       would fail with an identifier not found error due to a
       regression introduced by the patch for Bug#16249481. (Bug
       #18057449)

     * Repeated rebuilds in the same source tree resulted in
       libmysqld.a increasing in size each time. (Bug #18082702)

     * mysql_config improperly produced nonempty output when invoked
       with the --libmysqld-libs (or a synonym) if MySQL was
       configured with the WITHOUT_SERVER option. (Bug #18102839)

     * Type casting during LIKE pattern match operations could cause
       a server exit. (Bug #18114294)

     * SHOW GRANTS could be used to view the password hash for a
       proxied user. Password hash display now requires the SUPER
       privilege. (Bug #18057514)

     * On Microsoft Windows, the rw-lock backup implementation for
       the my_atomic_* functions was always used. Now, the native
       Microsoft Windows implementation is used, where available.
       (Bug #18054042)

     * Link failures were fixed on Solaris SPARC and Linux 64-bit
       platforms. (Bug #18004599)

     * When tables are reopened from the table cache and the current
       thread is not instrumented for the Performance Schema, the
       server exited attempting to populate OWNER_THREAD_ID in the
       table_handles table. (Bug #18047865)

     * A memory leak occurred within the Performance Schema during
       server startup. (Bug #18003651)

     * storage/ndb/CMakeLists.txt reset the CMake cache for some
       compiler flags for which the result should have been saved.
       (Bug #17949504)

     * Compilation used different warning flags for Clang and GCC,
       producing different warning output depending on which compiler
       you use. Warning output is now consistent for the two
       compilers. (Bug #17959689)

     * Building libevent was incorrectly dependent on MySQL being
       configured with the -DWITH_INNODB_MEMCACHED=1 option. (Bug
       #17964544)

     * On Solaris, configuration failed if no STL_LIBRARY_NAME was
       found. (Bug #17954277)

     * The audit log plugin could cause a server exit during log file
       rotation operations when there were many operations happening
       for multiple connections. (Bug #17930339)

     * The SUM_SORT_MERGE_PASSES column value in the Performance
       Schema events_statements_summary_by_digest table was
       calculated incorrectly. (Bug #17938255)

     * During shutdown, a mutex that was still locked could be
       removed, causing a server exit. (Bug #17959898)

     * If the Performance Schema events_statements_summary_by_digest
       table was full when a statement with a new digest was found,
       the Performance_schema_digest_lost status variable was not
       incremented. (Bug #17935314)

     * FORCE INDEX [FOR ORDER BY] (index_name) did not work for
       joins.
       The fix for this bug also also changes the warning created for
       EXPLAIN. Instead of printing only {IGNORE|USE|FORCE} INDEX it
       now also prints FOR {GROUP BY|ORDER BY|JOIN} if that was
       specified in the query. (Bug #17889511)

     * Shutdown of open connection threads could fail to occur
       cleanly during server shutdown. (Bug #17863690)

     * DECIMAL NOT NULL items could return NULL in subqueries. (Bug
       #17921777)

     * mysql_secure_installation exited if it connected using SSL and
       the user had an expired password. (Bug #17880395)

     * With the compressed client/server protocol enabled,
       Performance Schema statement instrumentation could raise an
       assertion. (Bug #17794846)

     * For debug builds, inserts into a multiple-table view could
       raise an assertion. (Bug #17834434)

     * The optimizer could push down a condition when the index did
       not have the key part present in the condition. (Bug
       #17814492)

     * For debug builds, the filesort algorithm could raise a
       spurious assertion. (Bug #17734642)

     * The mysql_get_option symbol was missing from libmysql.dll.
       (Bug #17733103)

     * Build and execution problems were fixed for builds made with
       gcc 4.8.1 in 32-bit mode on SPARC. (Bug #17740390)

     * The server could exit when executing an INSERT ... SELECT with
       UNION, ROLLUP, and ON DUPLICATE KEY UPDATE with a subquery.
       (Bug #17727506)
       References: This bug is a regression of Bug #16967281.

     * The patch for Bug #16041903 introduced an incorrect
       DBUG_ASSERT that in debug builds raised a spurious assertion.
       (Bug #17746721)

     * Valgrind errors were produced during row comparator setup.
       (Bug #17755540)

     * In some cases, UNIX_TIMESTAMP() could return NULL when it
       should return 0. (Bug #17728371)

     * An assertion could be raised if a filesort failed to resize
       its main buffer when record properties changed. (Bug
       #17757914)

     * The resetconnection command for mysql did not report proper
       errors if the server was down or the user password had
       expired. (Bug #17772561)

     * Compilation failed if MySQL was configured using
       -DWITH_LIBWRAP=1. (Bug #17738805)

     * Contraction information in a collation could be mishandled,
       resulting in incorrect decisions about whether a character is
       part of a contraction, and miscalculation of contraction
       weights. (Bug #17760379)

     * The cache used for the Index Merge access method was freed
       only after successful retrieval of all rows. Interruption or
       failure of the operation led to a file descriptor leak. (Bug
       #17708621)

     * The optimizer calculated the cost for joined buffer scans
       incorrectly, evaluating rows filtered out by attached
       conditions not once, but once per join buffer. (Bug #17694707)

     * Incorrect reference counting in the range optimizer module
       resulted in potential for missing or duplicate rows in the
       query result set. (Bug #17619119)

     * Using the mysqldump --set-gtid-purged option with no value
       caused mysqldump to crash. (Bug #17650245)

     * A race condition between Performance Schema statement event
       threads led to a server exit. (Bug #17637970)

     * For debug builds, an aggregate function in a subquery join
       condition could raise an assertion. (Bug #17602807)

     * If SAFE_MUTEX was enabled (true only for debug builds),
       THR_LOCK_mutex was used before being initialized. (Bug
       #17641055, Bug #70639)

     * After the fix for Bug #16409270, it was not possible to
       #include <mysql.h> following #include <windows.h>. (Bug
       #17514554)

     * An addressing error in accessing the join buffer could produce
       invalid results or a server exit. (Bug #17513341)

     * The parser permitted some queries with multiple ORDER BY
       clauses, which then failed during execution and caused a
       server exit. (Bug #17473479)

     * For debug builds, the server could exit for statements that
       inserted into a BLOB column declared as NOT NULL using a
       subquery that retrieved from a BLOB column and included GROUP
       BY NULL. (Bug #17458917)

     * Insufficient cleanup after removal of a SELECT_LEX structure
       caused dereferencing of a NULL pointer and a server exit. (Bug
       #17458169)

     * Within a CASE expression, use of a subquery referencing the
       VALUES() function could cause a server exit. (Bug #17458914)
       References: This bug is a regression of Bug #14789787.

     * mysql_config incorrectly included some flags to generate
       compiler warning output. (Bug #17400967)

     * The parser silently accepted duplicate ORDER BY clauses and/or
       LIMIT clauses before ORDER BY clauses in subqueries. These
       caused failures during query execution. Fixing this problem
       results in some changes in parser behavior. The parser no
       longer accepts:

          + A LIMIT clause before an ORDER BY clause

          + A LIMIT clause in a parentheses-less SELECT statement
            before a UNION keyword

          + An INTO clause after a PROCEDURE ANALYSE() clause
       (Bug #17426017, Bug #17703542, Bug #17727401)

     * SET PASSWORD combined with assignment of a variable from a
       subquery result could raise an assertion. (Bug #17458750)

     * On Windows, mysql_secure_installation exited if the root
       password was expired. (Bug #17415203)

     * For CASE expressions involving floating-point numbers, the
       max_length and decimal values could be computed incorrectly.
       The logic for CASE was corrected to be the same as for
       COALESCE(), which performs a similar operation. (Bug
       #17388045)

     * If accepting a connection attempt failed due to an
       out-of-memory error, the server could access a stale thread
       structure for a previously disconnected connection, resulting
       in Valgrind errors. (Bug #17398792)

     * With semi-join optimization enabled, queries with nested
       subqueries could cause a server exit due to incorrect
       resolution of references to columns in the middle query block.
       (Bug #17398972)

     * The SHA256 password authentication algorithm allocated a
       buffer one byte too short. (Bug #17397073)

     * A client crash occurred if mysql_set_server_option() or
       several other C API functions were called before
       mysql_real_connect(). (Bug #17338958)

     * In some cases, the optimizer wrote fixed-length temporary
       MyISAM tables to disk rather than variable-length temporary
       tables. (Bug #17231940)

     * Enabling the validate_password plugin could result in
       incorrect password hashes being stored in the mysql.user
       table. (Bug #17065383)

     * For debug builds, the second execution of a prepared statement
       processed using a semi-join could cause a server exit. (Bug
       #16988465)

     * A spurious assertion was raised for queries processed using a
       semi-join LooseScan optimization that required rows to be
       returned in order. (Bug #16977389)

     * A circular dependency problem involving sql/sql_builtin.cc was
       resolved. (Bug #16877045)

     * For accounts authenticated using the sha256_password plugin,
       setting the password after the password had been expired did
       not clear the password-expired flag. (Bug #16872181)

     * During server shutdown, file information was freed before
       calling query_logger.cleanup(), leading to a memory leak. (Bug
       #16859266)

     * For prepared INSERT INTO ... SELECT statements, nonexistent
       column names were not reported during statement preparation,
       but only later at statement execution. (Bug #16820562)

     * Multiple-table updates failed to update under certain
       conditions. (Bug #16767011)

     * Crash recovery of temporary tables used uninitialized memory.
       (Bug #16754540)

     * On Mac OS X 10.7, a race condition involving vio_shutdown()
       and the select-based implementation of vio_io_wait() could
       cause a server exit. (Bug #16354789, Bug #17733393)

     * Host names in example URLs used within the source code were
       replaced by names in the example.com domain, the domain
       intended by IANA for this purpose. (Bug #15890092)

     * On Mac OS X, preloading of client plugins specified with the
       LIBMYSQL_PLUGINS environment variable could fail unless the
       plugins were located in the hardwired default plugin
       directory. The C API now checks during plugin preloading for a
       LIBMYSQL_PLUGIN_DIR environment variable which can be set to
       the path name of the directory in which to look for client
       plugins. (Bug #13994567, Bug #18110355)

     * For utf8 and utf8mb4 strings, handler functions unnecessarily
       called a Unicode conversion function. (Bug #14057034)

     * Certain (... NULL ...) IN (...) expressions returned NULL when
       they should return 0, such as SELECT (NULL, 1) IN ((0, 0), (0,
       0)). (Bug #13944462)

     * Several -W warning flags were turned off for compilation in
       maintainer mode if MySQL was configured with
       -DWITH_INNODB_MEMCACHED=1. (Bug #13898319)

     * The optimizer set up for dynamic range access in some cases
       where range access cannot be used, resulting in fallback to a
       table scan. (Bug #13814468)

     * Executing mysqladmin shutdown for a server running with the
       thread pool plugin enabled and servicing a large number of
       concurrent connections caused the server to exit abnormally.
       (Bug #13788920)

     * Calling the ExtractValue() function with an invalid XPath
       expression could in some cases lead to a failure of the
       server. (Bug #12428404, Bug #61065)

     * Use of a nonmulti-byte algorithm for skipping leading spaces
       in multi-byte strings could cause a server exit. (Bug
       #12368495)

     * With ONLY_FULL_GROUP_BY SQL mode enabled, a query that uses
       GROUP BY on a column derived from a subquery in the FROM
       clause failed with a column isn't in GROUP BY error, if the
       query was in a view. (Bug #11923239)

     * For the utf8_bin collation, ORDER BY LOWER(col_name) could
       produce incorrect ordering. (Bug #69005, Bug #16691598)

     * Several issues identified by the Coverity static analysis tool
       were fixed. Thanks to Honza Horak for the patch. (Bug #70830,
       Bug #17760511)

     * On Windows, the --local-service server option did not work,
       and was not displayed in the --help message. (Bug #69637, Bug
       #17049656)

     * The server wrote an excessive number of "Sort aborted"
       messages to the error log. (Bug #70173, Bug #17372396)

     * It was not possible to query a view with an ORDER BY clause
       that referenced an alias in the SELECT clause of the view
       definition, unless all columns in the view were named in the
       select list.
       To handle this problem, the server now writes a view
       differently into the .frm file that stores the view
       definition. If you experience view-evaluation errors such as
       just described, drop and recreate the view so that the .frm
       file contains the updated view representation. (Bug #69678,
       Bug #17077305)

     * Overhead was reduced within critical sections of the
       my_fopen() and my_register_filename() mysys functions. Thanks
       to Po-Chun Chang for the patch. (Bug #70848)

     * The prototype of the Performance Schema instrumentation API
       mysql_cond_timedwait() call was fixed to be drop-in compatible
       with pthread_cond_timedwait(). This fix affects only
       implementers of third-party plugins. (Bug #70628, Bug
       #17702677)

     * For debug builds, JSON-format EXPLAIN statements for queries
       that involve semi-join materialization could cause a server
       exit. (Bug #70014, Bug #17305943)

     * For an existing user, GRANT with an empty password (IDENTIFIED
       BY [PASSWORD] '') did not change the password. (Bug #69899,
       Bug #17256161)

     * The make_atomic_cas_body64 implementation on IA32 with gcc but
       without gcc builtins could be miscompiled due to an incorrect
       constraint. The patch also causes MySQL to use builtin atomics
       when compiled using Clang. (Bug #63451, Bug #17242996)

     * The wait/synch/mutex/sql/MYSQL_RELAY_LOG::LOCK_sync mutex was
       not properly instrumented for the Performance Schema. (Bug
       #70939, Bug #17813333)

     * Complex updates of Performance Schema tables involving joins
       or subqueries failed to update every row. (Bug #70025, Bug
       #17309657)

     * For the path specified with the --basedir option, mysql_plugin
       attempted to unlink the path rather than free the memory in
       which the path was stored. (Bug #69752, Bug #17168602)

     * Compilation problems were fixed for errors reported by Clang
       and gcc when compiling in C++11 mode. (Bug #66803, Bug
       #14631159)

     * The optimizer could choose ref access over eq_ref access when
       cost of a nonunique access was evaluated before cost of a
       unique index. (Bug #54808, Bug #11762236)

     * COUNT(DISTINCT) sometimes produced an incorrect result when
       the last read row contained a NULL value. (Bug #68749, Bug
       #16539979, Bug #71028, Bug #17867117)

     * When run by root, mysqld --help --verbose exited with a
       nonzero error code after displaying the help message. (Bug
       #70058, Bug #17324415)

     * MySQL client programs from a Community Edition distribution
       could not connect using SSL to a MySQL server from an
       Enterprise Edition. This was due to a difference in
       certificate handling by yaSSL and OpenSSL (used for Community
       and Enterprise, respectively). OpenSSL expected a blank
       certificate to be sent when not all of the --ssl-ca,
       --ssl-cert, and --ssl-key options were specified, and yaSSL
       did not do so. To resolve this, yaSSL has been modified to
       send a blank certificate when an option is missing. (Bug
       #68788, Bug #16715064)

     * sql_resolver.cc referred to partitioning code that should have
       been protected by an #ifdef, even when MySQL was configured
       with -DWITH_PARTITION_STORAGE_ENGINE=OFF. (Bug #71010, Bug
       #17876794)

     * An incorrect result could be returned for a query with an IF()
       predicate in the WHERE clause combined with OUTER JOIN in a
       subquery that is transformed to a semi-join. (A workaround is
       to disable semi-join using SET
       optimizer_switch='semijoin=off';) (Bug #70608, Bug #17600176)

     * Downloading of the Google Mock library could fail during
       configuration. This is fixed by requiring CMake 2.8.2 or
       higher. (Bug #69854, Bug #17231722)

     * A full-text search combined with derived tables (subqueries in
       the FROM clause) caused a server exit.
       Now if a full-text operation depends on a derived table, the
       server produces an error indicating that a full-text search
       cannot be done on a materialized table. (Bug #68751, Bug
       #16539903)

     * Some scripts displayed out-of-date information regarding where
       to report bugs. (Bug #68742, Bug #16530527)

     * CMake produced not-useful warnings about
       INTERFACE_LINK_LIBRARIES policy. (Bug #71089, Bug #17905155,
       Bug #17894997)

     * CMake produced a warning in ssl.cmake due to malformed syntax.
       (Bug #71094, Bug #17905144)

     * Previously, the first stage executed within a statement was
       stage/sql/init. This collided with a different stage named
       init and was incompatible with the starting stage for SHOW
       PROFILE. The first stage executed within a statement is now
       named stage/sql/starting. (Bug #71201, Bug #17993294)

     * Some files in the Performance Schema file_instances table were
       not being removed because the file-removal operation was not
       instrumented. (Bug #69782, Bug #17209750)

     * mysqldump --single-transaction acquired metadata locks for
       each dumped table but did not release them until the dump
       operation finished. Consequently, other DDL operations on a
       dumped table blocked even after the table itself had been
       dumped. mysqldump now attempts to release metadata locks
       earlier. (Bug #71017, Bug #17862905)

     * Updating a FEDERATED table with UPDATE... JOIN caused a server
       exit when the local table contained a single row and that row
       could be joined to a row in the FEDERATED table. (Bug #68354,
       Bug #16324629)

     * The mysqladmin, mysqlbinlog, mysqlcheck, mysqldump,
       mysqlimport, mysqlslap, and mysqlshow programs now support a
       --secure-auth option that prevents sending passwords to the
       server in old (pre-4.1) format. This option is enabled by
       default; use --skip-secure-auth to disable it. (Bug #69051,
       Bug #16723046)

     * During configuration, CMake improperly checked for the C++
       header file cxxabi.h. (Bug #71268, Bug #18147458)

     * On Mac OS X, the libmysqlclient dylib file linked to itself.
       (Bug #61699, Bug #13890998, Bug #61243, Bug #12590037)

     * gcov printed warnings without file names. (Bug #33269, Bug
       #11747622)

     * cmake/configure.pl listed instances of WITH_COMMENT rather
       than the correct option COMPILATION_COMMENT. (Bug #65834, Bug
       #14298560)

     * FLUSH STATUS cleared a variable that could result a subsequent
       implicit commit of an XA transaction causing a server exit.
       (Bug #70854, Bug #17911445)

     * A deadlock error occurring during subquery execution could
       cause an assertion to be raised. (Bug #69969, Bug #17307201)

     * The Performance Schema stage/sql/Waiting to get readlock
       instrument is no longer used and has been removed. (Bug
       #71298, Bug #18035404)

     * A query that creates a temporary table to find distinct values
       and has a constant value in the projected list could produce
       incorrect results. (Bug #70657, Bug #17634335)

     * mysqlbinlog leaked memory in relation to --rewrite-db
       processing. (Bug #71283, Bug #18027692)

     * Messages written by the server to the error log for LDML
       collation definition problems were missing the collation name.
       (Bug #68144, Bug #16204175)

     * Configuring with -DWITH_DEBUG=1 did not have the same effect
       as configuring with -DCMAKE_BUILD_TYPE=Debug. (Bug #70647, Bug
       #17632854)

     * mysqlcheck did not correctly handle table names containing
       dots. (Bug #68015, Bug #16064833)

     * Previously, for EXPLAIN output, the rows-examined estimate for
       Performance Schema tables always displayed as 1000. Now a more
       accurate estimate is displayed based on sizing parameters used
       when allocating memory for each table. This results in no
       change of behavior because Performance Schema tables have no
       indexes. (Bug #71278, Bug #18024455)

     * Optimizer trace output from the range optimizer could include
       raw binary data and generate unprintable characters. Now
       binary data is printed in hex format. (Bug #71273, Bug
       #18023222)

     * The -DWITH_EXAMPLE_STORAGE_ENGINE=1 CMake option was ignored
       but should not have been. If -DWITH_EXAMPLE_STORAGE_ENGINE=0
       is given, the EXAMPLE storage engine is built as a plugin.
       (Bug #70859, Bug #17772560)
       References: See also Bug #18324650.

     * For logarithmic functions, if the argument is less than or
       equal to 0.0E0, response is now as follows: In strict mode,
       the error "Invalid argument for logarithm" is reported. In
       non-strict mode, a NULL value is returned. (Bug #50507, Bug
       #11758319)

     * Aggregating the results of a subquery in the FROM clause could
       produce incorrect results. (Bug #71244, Bug #18014565)

     * Some BETWEEN expressions on unsigned values were evaluated
       using signed arithmetic. Thanks to Xiaobin Lin for the patch.
       (Bug #70622, Bug #17606942)

     * For system variables that take a string value, SET statements
       permitted an unquoted value, but values that contained dots
       were parsed incorrectly and only part of the value was
       assigned. For example, SET GLOBAL slow_query_log_file =
       my_slow.log assigned the value my_slow. Now such values must
       be quoted or an error occurs. (Bug #69703, Bug #17075846)

     * A temporal literal string without delimiters and more than 14
       digits was validated as a TIMESTAMP/DATETIME value with a
       two-digit precision fractional seconds part. But fractional
       seconds should always be separated from other parts of a time
       by a decimal point. (Bug #69714, Bug #17080703)

     * On Windows, mysql_install_db.pl could be run only from within
       the bin directory under the installation directory. (Bug
       #42421, Bug #11751526)

     * mysql_install_db referred to the obsolete mysqlbug script for
       reporting problems. It now refers to http://bugs.mysql.com/
       instead. (Bug #29716, Bug #11746921)

     * The deprecated msql2mysql, mysql_convert_table_format,
       mysql_find_rows, mysql_fix_extensions, mysql_setpermission,
       and mysqlaccess utilities were removed. (Bug #27482, Bug
       #69012, Bug #69014, Bug #69015, Bug #69016, Bug #69017, Bug
       #11746603, Bug #16699248, Bug #16699279, Bug #16699284, Bug
       #16699317, Bug #18179576)

----------------------

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql

Reply via email to