2015.04.09

MySQL

MySQL Community Server 5.7.7がリリースされました

オリジナル版:http://lists.mysql.com/announce/997

MySQL 5.7.7(マイルストーンリリース)は世界でもっともポピュラーなオープンソースデータベースの新しいバージョンです。これはMySQL 5.7の7番目のマイルストーンリリースです。

このリリースの新機能はベータ品質です。他のプロダクションリリース前と同様にプロダクションレベルのシステムやクリティカルなデータを持つシステムにインストールする場合には十分に注意すべきです。

MySQL 5.7.7はMySQL 5.6のすべての機能を含んでいます。さらに、5.7の独自の機能として以下を実装しています。

・InnoDB、オプティマイザの性能向上

・オンラインでALTER文の実行が可能に

・マルチソースレプリケーション(マスタ:スレーブ=N:1)

詳細は以下のリンクから確認することが出来ます。

http://dev.mysql.com/doc/refman/5.7/en/mysql-nutshell.html

MySQL 5.7.7は、ダウンロード・ページの開発リリースセクションから、ソースコードと多くのプラットフォームのためのバイナリをご利用いただけます。

(※MySQL 5.7.7で利用できるプラットフォームとパッケージのフォーマットはMySQL 5.6と同じです)

http://dev.mysql.com/downloads/

MySQL 5.7.7をインストールする場合は、以下のMySQLのインストールドキュメントを参照してください。

http://dev.mysql.com/doc/refman/5.7/en/installing.html

WindowsパッケージはWindowsインストーラーのための新しいインストーラ、もしくはZIP(ノンインストール)パッケージが利用いただけます。以前のMSIパッケージはもう利用できず、ポイントアンドクリック設定ウィザードと全てのMySQL製品でWindows向けの統一インストーラが利用可能です。

http://dev.mysql.com/downloads/installer/

また、私たちはフィードバック、バグレポート、バグ修正パッチ等を歓迎します
http://bugs.mysql.com/report.php

次の節では、MySQL 5.7.7の変更を記載しています。これはオンラインでも閲覧できます。
http://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-7.html

Changes in MySQL 5.7.7 (2015-04-08, Release Candidate)

   Note

   This is a release candidate, for use at your own risk.
   Significant development changes take place in milestone
   releases and you may encounter compatibility issues, such as
   data format changes that require attention in addition to the
   usual procedure of running mysql_upgrade. For example, you
   may find it necessary to dump your data with mysqldump before
   the upgrade and reload it afterward.

   Installation Notes

     * Installers for more binary distribution types provide secure
       deployment.  This includes installers for SLES, Solaris, OS X,
       FreeBSD, and Linux generic binary compressed tar distributions.
       These installers create a single 'root'@'localhost' account
       without other root or anonymous-user accounts, and do not
       create a test database accessible by any user.  (Some
       installers may provide options to create additional accounts or
       a test database, but only if selected by the user.) Installers
       that run interactively and can ask the installing user for the
       initial root password do so. Noninteractive installers generate
       a random root password that the administrator can use to
       connect to the server the first time and choose a new password.

   Optimizer Notes

     * It is now possible to provide hints to the optimizer by
       including /*+ ... */ comments following the SELECT,
       INSERT, REPLACE, UPDATE, or DELETE keyword of SQL
       statements. Such statements can also be used with
       EXPLAIN. Examples:
SELECT /*+ NO_RANGE_OPTIMIZATION(t3 PRIMARY, f2_idx) */ f1
FROM t3 WHERE f1 > 30 AND f1 < 33;
SELECT /*+ BKA(t1, t2) */ * FROM t1 INNER JOIN t2 WHERE ...;
SELECT /*+ NO_ICP(t1) */ * FROM t1 WHERE ...;

   Packaging Notes

     * Several binary distribution types have been made more modular,
       to split out test components into a separate distribution
       file. This reduces the size of the main download. In addition
       to the previously available test/debug distributions already
       available for Windows Zip archives, RPM packages, and Debian
       packages, the current release makes separate test distributions
       available for Solaris PKG files, and Solaris, FreeBSD, generic
       binary Linux and OS X compressed tar packages. These separate
       distributions have "test" in the distribution file name. They
       contain tests, while the debug binaries are still in the main
       distributions.

       Generally, use of a test distribution requires that the main
       distribution is also installed. Additionally, for Solaris, the
       main and test distributions must be for the same version of
       MySQL.

   Performance Schema Notes

     * These Performance Schema changes have been made:

          + The MySQL sys schema is now installed by default
            during data directory installation. This is a set of
            objects that provides convenient access to data
            collected by the Performance Schema.
            For upgrades, mysql_upgrade installs the sys schema
            if it is not installed, and upgrades it to the
            current version otherwise. To enable this behavior
            to be suppressed, mysql_upgrade now has a
            --skip-sys-schema option.
            For sys schema usage instructions, see
            https://github.com/MarkLeith/mysql-sys .

          + The events_statements_history and
            events_transactions_history consumers now are
            enabled by default.
       References: See also Bug #71207, Bug #18376132.

   Security Notes

     * The mysql_native_password and sha256_password built-in
       authentication plugins have been modified to support
       proxy users, which they did not previously. To enable
       proxy capabilities for these plugins, enable the
       check_proxy_users system variable. Then, to control which
       individual plugins support proxy users, enable either or
       both of the mysql_native_password_proxy_users and
       sha256_password_proxy_users system variables. For
       information about user proxying, see Proxy Users
       (http://dev.mysql.com/doc/refman/5.7/en/proxy-users.html)
       .

     * The C client library now attempts to establish an SSL
       connection by default whenever SSL is supported by and
       enabled on the server. If an SSL connection cannot be
       established, the client library falls back to an
       unencrypted connection. To suppress the attempt at using
       an unencrypted connection, specify the --ssl=0 option.
       See SSL Command Options
       (http://dev.mysql.com/doc/refman/5.7/en/ssl-options.html)
       .
       This change affects these standard MySQL client programs:
       mysql, mysql_config_editor, mysql_install_db,
       mysql_plugin, mysql_secure_installation, mysql_upgrade,
       mysqladmin, mysqlbinlog, mysqlcheck, mysqldump,
       mysqlimport, mysqlshow, mysqlslap, and mysqltest. It will
       also affect new releases of MySQL Connectors that are
       based on the C client library: Connector/C,
       Connector/C++, and Connector/ODBC.

   Spatial Data Support

     * The ST_Buffer(), ST_Difference(), ST_Distance(),
       ST_Intersection(), ST_IsSimple(), ST_SymDifference(), and
       ST_Union() functions have been reimplemented to use the
       functionality available in Boost.Geometry. The functions
       may raise an exception for geometrically invalid argument
       values when the previous implementation may not have. The
       functions that take two geometry arguments support all
       geometry type combinations.
       In addition, ST_Buffer() now takes up to three optional
       arguments to specify point, join, and end strategies that
       influence buffer computation. Values for strategy
       arguments are produced using the new ST_Buffer_Strategy()
       function. See Spatial Operator Functions
       (http://dev.mysql.com/doc/refman/5.7/en/spatial-operator-functions.html).

   Functionality Added or Changed

     * Important Change; InnoDB: The following changes were made
       to InnoDB configuration parameter default values:

          + The innodb_file_format default value was changed to
            Barracuda. The previous default value was Antelope.
            This change allows tables to use Compressed
(http://dev.mysql.com/doc/refman/5.7/en/glossary.html#glos_compressed_row_format)
            or Dynamic
(http://dev.mysql.com/doc/refman/5.7/en/glossary.html#glos_dynamic_row_format)
row formats.

          + The innodb_large_prefix default value was changed to
            ON. The previous default was OFF. When
            innodb_file_format is set to Barracuda,
            innodb_large_prefix=ON allows index key prefixes
            longer than 767 bytes (up to 3072 bytes) for tables
            that use a Compressed
(http://dev.mysql.com/doc/refman/5.7/en/glossary.html#glos_compressed_row_format)
            or Dynamic
(http://dev.mysql.com/doc/refman/5.7/en/glossary.html#glos_dynamic_row_format)
row format.

          + The innodb_strict_mode default value was changed to
            ON. The previous default was OFF. When
            innodb_strict_mode is enabled, InnoDB raises error
            conditions in certain cases, rather than issuing a
            warning and processing the specified statement
            (perhaps with unintended behavior).
       The configuration parameter default changes described
       above may affect replication and mysqldump operations.
       Consider the following recommendations when using the new
       default settings:

          + When replicating or replaying mysqldump data from
            older MySQL versions to MySQL 5.7.7 or higher,
            consider setting innodb_strict_mode to OFF to avoid
            errors. Target settings should not be more strict
            than source settings.

          + When replicating from MySQL 5.7.7 or higher to older
            slaves, consider setting
            innodb_file_format=Barracuda and
            innodb_large_prefix=ON on the slave so that the
            target and source have the same settings.
       The following file format related configuration
       parameters are deprecated and will be removed in a future
       release:

          + innodb_file_format

          + innodb_file_format_check

          + innodb_file_format_max

          + innodb_large_prefix
       These four configuration parameters were provided for
       creating tables compatible with earlier versions of
       InnoDB in MySQL 5.1. Now that MySQL 5.1 has reached the
       end of its product lifecycle, the parameters are no
       longer required. Also, the file format scheme, by which
       named file formats would be introduced as new features
       were added, was not used after introduction of the
       Barracuda file format. InnoDB formats have changed since
       the introduction of the Barracuda file format, but new
       named file formats have not been added.
       If non-default values are used for any of the four
       deprecated parameters, InnoDB prints a deprecation and
       removal warning to the server error log. The same warning
       is issued to the client if the parameters are set
       dynamically using a SET statement.

     * Important Change; InnoDB: The
       innodb_buffer_pool_dump_at_shutdown and
       innodb_buffer_pool_load_at_startup configuration options
       are now enabled by default. With this change, a
       percentage of most-recently-used buffer pool pages is
       dumped at server shutdown and restored at server startup.
       This behavior helps avoid a lengthy buffer pool warmup
       period after restarting the server, particularly for
       instances with large buffer pools. The
       innodb_buffer_pool_dump_pct option defines the percentage
       of buffer pool pages that are dumped. The default value
       for innodb_buffer_pool_dump_pct is reduced from 100 to
       25.
       These configuration option default value changes
       represent a change in behaviour at server shutdown and
       startup. If you prefer the previous default values, it is
       recommended that you configure the options explicitly in
       your MySQL configuration file after upgrading to MySQL
       5.7.7 or later, and before restarting the server.
       For more information, see Preloading the InnoDB Buffer
       Pool for Faster Restart
       (http://dev.mysql.com/doc/refman/5.7/en/innodb-preload-buffer-pool.html).

     * Important Change; InnoDB: The innodb_checksum_algorithm
       default value is now crc32. The previous default setting
       was innodb. This change also means that
       innodb_checksums=ON is now equivalent to
       innodb_checksum_algorithm=crc32 instead of
       innodb_checksum_algorithm=innodb.

     * InnoDB: The InnoDB MeCab full-text parser plugin now
       supports the eucjpms, cp932, and utf8mb4 character sets.
       (Bug #20534096)

     * InnoDB: To address a scalability bottleneck for some
       workloads where LOCK_grant is locked in read-mode,
       LOCK_grant locks are now partitioned. Read lock requests
       on LOCK_grant now acquire one of multiple LOCK_grant
       partitions. Write locks must acquire all partitions.
       To address another scalability bottleneck, the server no
       longer performs unnecessary lock acquisitions when
       creating interal temporary tables.
       References: See also Bug #72829, Bug #20023139.

     * Replication: The defaults of some replication related
       variables have been modified. The following changes have
       been made:

          + binlog_gtid_simple_recovery=TRUE

          + binlog-format=ROW

          + binlog_error_action=ABORT_SERVER

          + sync_binlog=1

          + slave_net_timeout=60
       Additionally, the session scope of gtid_executed has been
       deprecated. The global scope of gtid_executed remains
       supported.

     * Replication: Replication is now compatible with XA
       transactions. An XA transaction in PREPARED state is now
       persistent until an explicit XA COMMIT or XA ROLLBACK
       statement is issued. In prior versions, an XA transaction
       that was in PREPARED state would be rolled back on clean
       server shutdown or client disconnect. Similarly, an XA
       transaction that was in PREPARED state would still exist
       in PREPARED state in case the server was shutdown
       abnormally and then started again, but the contents of
       the transaction could not be written to the binary log.
       As part of this feature a new event,
       XA_prepare_log_event, has been added to track XA
       transactions in the PREPARED state and enable them to be
       replicated. Whether an XA transaction commits or is
       rolled back is recorded separately in the binary log,
       possibly interleaving with other transactions, to
       finalize the XA transaction two step binary logging
       process.
       References: See also Bug #12161, Bug #11745231.

     * Performance Schema stage event instruments that provide
       statement progress information now are enabled and timed
       by default. The affected instruments are those displayed
       by this statement:
SELECT * FROM performance_schema.setup_instruments WHERE
ENABLED='YES' AND NAME LIKE "stage/%";

       (Bug #20685859)

     * The XID column of Performance Schema transaction tables
       (for example, events_transactions_current) has been split
       into three columns to permit access to the component
       parts of XID values. The new columns are XID_FORMAT_ID,
       XID_GTRID, and XID_BQUAL. (Bug #18320361)

     * Previously, view definitions were not permitted to
       contain derived tables (subqueries) in the FROM clause.
       This restriction has now been lifted.
       Previously, derived tables (subqueries) or views in the
       FROM clause could not be merged into the outer query if
       they contained subqueries in the SELECT list. Instead,
       they were processed using materialization. This
       restriction has now been lifted so that queries
       previously executed using materialization can be executed
       more quickly using merging. (Bug #12755, Bug #11745276,
       Bug #60417, Bug #11865600)

     * In MySQL 5.7.6, the NO_AUTO_CREATE_USER was deprecated.
       (It is preferable to create MySQL accounts with CREATE
       USER rather than GRANT.) Now the default SQL mode
       includes NO_AUTO_CREATE_USER and assignments to sql_mode
       that change the NO_AUTO_CREATE_USER mode state produce a
       warning, except assignments that set sql_mode to DEFAULT.
       NO_AUTO_CREATE_USER will be removed in a future MySQL
       release, at which point its effect will be enabled at all
       times (GRANT will not create accounts).

   Bugs Fixed

     * InnoDB: FLUSH TABLE ... FOR EXPORT, which is an
       unsupported operation for tables residing in a general
       tablespace, failed to report a warning message. (Bug
       #20631305)

     * InnoDB: The MeCab parser accessed the byte beyond the
       length of the document resulting in an Invalid read of
       size 1 Valgrind error. Document allocation size is now
       length + 1 byte. (Bug #20589432)

     * InnoDB: A debug assertion should not be raised for static
       mutexes. (Bug #20588765)

     * InnoDB: Tablespace and file path data updates to internal
       system tables during startup caused undo log corruption.
       The updates were made before calling
       truncate::fixup_tables(), which does not expect to
       encounter changed pages. (Bug #20534616)

     * InnoDB: A TRUNCATE TABLE operation on a temporary table
       raised an assertion. The temporary table object was
       incompletely constructed when reloaded from SYS_TABLES.
       (Bug #20527363, Bug #72080)

     * InnoDB: Return value 16 when calling
       pthread_mutex_destroy() warnings were returned during
       atexit() processing. (Bug #20513522)

     * InnoDB: A debug variable used to modify the first page of
       a tablespace raised an assertion when set to a
       nonexistent tablespace ID. (Bug #20511314, Bug #75833)

     * InnoDB: A buffer pool load operation raised an assertion
       when attempting to read pages that were placed out of
       tablespace bounds by a preceding TRUNCATE TABLE
       operation. (Bug #20474542)

     * InnoDB: Removal of a foreign key object from the data
       dictionary cache during error handling caused the server
       to exit. (Bug #20442523)

     * InnoDB: An assertion was raised during a redo log resize
       operation that was triggered by a file size mismatch
       encountered during recovery. Code introduced in MySQL
       5.6.8 to automatically handle redo log file size
       mismatches failed to ensure that the buffer pool was
       clean prior to recreating redo log files. (Bug #20425387)

     * InnoDB: An InnoDB memcached extra_col_value[] array was
       freed without checking the allocated flag, causing a
       server exit. (Bug #20400373)

     * InnoDB: A DML operation performed while a flushing
       operation was in progress raised a memcached-related
       assertion. (Bug #20390277)

     * InnoDB: A CHECK TABLE operation on a table with a spatial
       index raised an assertion. The
       row_sel_sec_rec_is_for_clust_rec function failed to
       handle an externally stored field. (Bug #20311344)

     * InnoDB: Estimates that were too low for the size of merge
       chunks in the result sorting algorithm caused a server
       exit. (Bug #20049521)

     * InnoDB: An ALTER TABLE ... RENAME operation raised an
       invalid assertion. The assertion code used an incorrect
       transaction object. (Bug #18523599)
       References: This bug is a regression of Bug #17447500.

     * InnoDB: Running mysql_upgrade after a binary upgrade to
       MySQL 5.7.6 caused a server exit on a system with
       tablespace data files that were created in MySQL 5.1 or
       earlier. The fix for Bug #17345513 in MySQL 5.7.6 failed
       to address all instances of garbage FIL_PAGE_TYPE values
       in tablespace data files created in MySQL 5.1 or earlier.
       With this patch, the manual process described in the
       MySQL 5.7.6 release notes entry for Bug #17345513 for
       repairing non-index pages that contain invalid
       FIL_PAGE_TYPE values is no longer necessary.
       The patch for Bug #17345513 also failed to recompute page
       checksums after resetting invalid FIL_PAGE_TYPE values.
       Upon restarting the server, a failure would occur due to
       an apparent page corruption. The page checksum is now
       recomputed before the new FIL_PAGE_TYPE value is written
       to the data file. (Bug #76262, Bug #20691930)

     * InnoDB: For full-text searches, the optimizer could
       choose an index that does not produce correct relevancy
       rankings. (Bug #74686, Bug #19950568)

     * Partitioning: The MySQL Server unnecessarily requested
       the default number of partitions for a table whenever it
       opened a partitioned table. This was unnecessary since
       the server already has this information about the table
       to be opened. Now the server requests this information
       only when needed---that is, only if it is creating or
       altering a partitioned table. (Bug #76007, Bug #20585753)

     * Partitioning: A number of ALTER TABLE statements that
       attempted to add partitions, columns, or indexes to a
       partitioned table while a write lock was in effect for
       this table were not handled correctly. (Bug #74451, Bug
       #74478, Bug #74491, Bug #74560, Bug #74746, Bug #74841,
       Bug #74860, Bug #74869, Bug #19856162, Bug #19864284, Bug
       #19873019, Bug #19891663, Bug #19990815, Bug #20026661,
       Bug #20031966, Bug #20033503, Bug #19827845)

     * Partitioning: Executing an ALTER TABLE on a partitioned
       table on which a write lock was in effect could cause
       subsequent SQL statements on this table to fail. (Bug
       #74288, Bug #74634, Bug #19784790, Bug #19918805)
       References: See also Bug #19856162, Bug #74451.

     * Replication: When using multi-source replication on a
       multi-threaded slave (where slave_parallel_workers is
       greater than 1), and slave_transaction_retries was
       greater than 1, the slave would fail to open the relay
       log file. This was due to the slave worker incorrectly
       constructing the relay log file path for its replication
       channel. (Bug #20448413)

     * Replication: When the automatic_sp_privileges variable is
       set, the server automatically grants the EXECUTE and
       ALTER ROUTINE privileges to the creator of a stored
       routine, if the user does not already have these
       privileges. When a privileged user creates a procedure
       with DEFINER as a non privileged user on a master, the
       current user is considered to be a privileged user and
       the mysql.procs_priv table is not updated. When such a
       statement was replicated to slave, the non-privileged
       DEFINER was considered as the current user on the slave
       and privileges were being allocated. This caused a
       difference in the privileges that were being allocated on
       the master and the slave. The fix ensures that creater of
       the stored routine is added to the binary log, and the
       slave now checks first if the user exists before granting
       privileges. To maintain compatibility with previous
       versions, the DEFINER is used when the INVOKER is not
       available. As part of this fix, anonymous users can be
       used to replicate from master to slave. (Bug #20049894)

     * Replication: After issuing RESET SLAVE, the
       RECEIVED_TRANSACTION_SET field in the
       performance_schema.replication_connection_status table
       showed incorrect values. This could cause an incorrect
       string value error. (Bug #18751585)

     * Replication: When gtid_mode=ON and slave_net_timeout was
       set to a low value, the slave I/O thread could appear to
       hang. This was due to the slave heartbeat not being sent
       regularly enough when the dump thread found many events
       that could be skipped. The fix ensures that the heartbeat
       is sent correctly in such a situation. (Bug #74607, Bug
       #19975697)

     * The query rewrite framework introduced in MySQL 5.7.6
       produced excesssive mutex acquisition that caused
       performance degradation under some conditions. (Bug
       #20785598)

     * CMake failed to detect the OpenSSL version properly for
       recent versions of OpenSSL (the format of the version
       string changed). (Bug #20756770)

     * GRANT and ALTER USER could clear the password-expiration
       flag for operations not related to resetting the
       password. (Bug #20634154)

     * SHOW CREATE USER did not work for clients older than
       MySQL 5.7. (Bug #20627890)

     * For upgrades from MySQL 5.6 to 5.7 that involve moving
       mysql.user table passwords from the Password column to
       the authentication_string column, mysql_upgrade neglected
       to handle rows with an empty plugin value and a pre-4.1
       password hash. (Bug #20614545)

     * For table-modifying statements, the parser could
       dereference the parse tree without checking for
       out-of-memory conditions or null pointers. (Bug
       #20607407)

     * The deprecated IDENTIFIED BY PASSWORD syntax is supported
       only for CREATE USER and GRANT, but ALTER USER failed to
       reject it. ALTER USER now produces a syntax error. (Bug
       #20600865)

     * mysql_stmt_prepare() could leak memory allocated to
       metadata. (Bug #20598261)

     * With InnoDB as the default temporary table storage
       engine, InnoDB sometimes made incorrect assumptions about
       temporary table key part lengths. (Bug #20590162)

     * Selecting from the Performance Schema global_variables
       table resulted in a sprurious warning about the
       sql_log_bin system variable. (Bug #20575529)

     * Debian packages were missing some dependencies. (Bug
       #20561621)

     * For the embedded server, proper deprecation warning were
       not produced for SHOW VARIABLES and SHOW STATUS
       statements that included a WHERE clause. (Bug #20559828)

     * A server exit could be caused by a query that contained a
       HAVING clause, which itself contained an IN() subquery
       predicate, where the subquery referenced a column of the
       query. (Bug #20558891)

     * A subquery that contained a user-defined variable could
       cause an assertion to be raised. (Bug #20554585)

     * In MySQL 5.7.6, the PASSWORD() function was deprecated,
       but no warning was produced when it was invoked.
       Similarly, the old_passwords system variable was
       deprecated, but no warning was produced when it was set.
       (Bug #20545464)

     * The server could exit if a client using the cleartext
       authentication plugin attempted to connect with an empty
       password. (Bug #20537246)

     * A query cache invalidation function used a too-small
       buffer for holding encoded database names, which could
       result in a server exit. (Bug #20528928)

     * Valgrind warnings were silenced for display of
       GTID-related debug information. (Bug #20506672)

     * Some queries that had a derived table (subquery) in the
       FROM clause could raise an assertion. (Bug #20487336)

     * A table-modifying statement that followed a failed
       table-modifying could result in a server exit. (Bug
       #20460208)

     * AddressSanitizer compilation errors were silenced. (Bug
       #20459338, Bug #75740, Bug #20459363)

     * Corrections were made for a number of code issues that
       resulted in compiler warnings about array bounds,
       possibly uninitialized variables, and variables being set
       but not used. (Bug #20458574)

     * Union queries over views containing ENUM or SET values
       were not handled properly. (Bug #20456178)

     * A natural left join between between a derived table and a
       regular table, joined with another natural left join to
       another regular table could cause a server exit. (Bug
       #20455184)

     * The optimizer could try to create an index of the wrong
       data type on internal temporary tables. (Bug #20454833)

     * A multiple-table UPDATE statement where one of the
       specified tables was a derived table could cause a server
       exit. (Bug #20454533)

     * Mishandling of SRID values within ST_GeomFromGeoJSON()
       could cause an assertion to be raised. (Bug #20416705)

     * Under certain conditions, LCASE(), DECODE(), and ENCODE()
       could have source and destination overlap in
       memory-copying operations. (Bug #20315088, Bug #20554017)

     * ST_Distance() could return incorrect results on 32-bit
       platforms. (Bug #20259578)

     * If a view was processed using the MERGE algorithm and had
       an ORDER BY clause, an error occurred if the view was
       queried using GROUP BY with the ONLY_FULL_GROUP_BY SQL
       mode enabled, unless the query selected all view columns.
       (Bug #20210742)

     * For debug builds, the optimizer could reject use of
       LooseScan for eq_ref access joins and raise an assertion.
       The optimizer now permits this combination for query
       execution. (Bug #20119743)

     * An out-of-range error in a subquery could raise an
       assertion. (Bug #20035071)

     * Ordering by a GROUP_CONCAT() result could cause a server
       exit. (Bug #19880368, Bug #20730220)

     * The server could exit due to an inappropriate full-text
       lookup using a full-text predicate within a subquery that
       contained an outer reference. (Bug #19828320)

     * For a prepared statement with an ORDER BY that refers by
       column number to a GROUP_CONCAT() expression that has an
       outer reference, repeated statement execution could cause
       a server exit. (Bug #19814337)

     * For an materialized internal temporary table used with
       semi-joins, the optimizer could add an index to it but
       then use an inappropriate lookup strategy, causing a
       server exit. (Bug #19695490)

     * The optimizer could raise an assertion due to incorrectly
       associating an incorrect field with a temporary table.
       (Bug #19612819, Bug #20730129)

     * Specifying --general_log_file= (with an empty value) at
       server startup caused the server to fail and exit. (Bug
       #19392264)

     * Improper propagation of ORDER BY for a derived table or
       view used within a multiple-table UPDATE could raise an
       assertion. (Bug #18439019)

     * The thd_proc_info() function defined in plugin.h was not
       actually implemented. This has been changed to
       set_thd_proc_info(). (Bug #11844974)

     * mysql_install_db started mysqld in bootstrap mode, but
       failed to wait for it to finish, causing premature
       shutdown and the need for crash recovery. (Bug #76344,
       Bug #20728488)

     * Inappropriate -Werror options could appear in
       mysql_config --cflags output. (Bug #76019, Bug #20590904)

     * SET PASSWORD ... = PASSWORD('auth_string') syntax was to
       be deprecated in MySQL 5.7.6, but was made illegal. This
       syntax is now available again, but generates a warning
       due to its deprecated status. These alternatives remain
       available, the first of which now should be considered
       the preferred form:
ALTER USER ... IDENTIFIED BY 'auth_string';
SET PASSWORD ... = 'auth_string';

       (Bug #75927, Bug #20552143)

     * The mysql client could exit prematurely when invoked with
       the --quick option. (Bug #74182, Bug #19723750)

     * CHECK TABLE ... FOR UPGRADE did not report temporal
       columns that use the old datetime format (from before
       MySQL 5.6.4). Consequently, mysql_upgrade did not know to
       issue REPAIR TABLE statements to rebuild tables that
       contain such columns, and subsequent ALTER TABLE
       statements were unable to perform fast alterations to the
       extent possible had the tables been repaired. Now, if the
       avoid_temporal_upgrade system variable is disabled, CHECK
       TABLE reports old temporal columns and REPAIR TABLE
       upgrades tables from old temporal format to the new
       format. (Bug #73008, Bug #18985579)

     * With the offline_mode system variable enabled, the server
       sometimes failed to accept connection from a user with
       the SUPER privilege due to a race condition. (Bug #72760,
       Bug #18842228)

     * Information written to the slow query log for HANDLER ...
       READ statements always had rows_sent and rows_examined
       values of 0. (Bug #71892, Bug #18335504)

     * mysql_real_connect() could close a file descriptor twice
       if the server was not running. (Bug #69423, Bug
       #19226740)

     * Some key descriptors used by the optimizer were
       uninitialized. Thanks to Sergei Glushchenko for the
       patch. (Bug #68713, Bug #16512701)

     * EXPLAIN could show incorrect filtered values for queries
       that included a LIMIT clause. (Bug #34124, Bug #11747810)