Dear MySQL users,

MySQL Server 5.7.11, a new version of the popular Open Source
Database Management System, has been released. MySQL 5.7.11 is
recommended for use on production systems.

For an overview of what's new in MySQL 5.7, please see

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

For information on installing MySQL 5.7.11 on new servers, please see
the MySQL installation documentation at

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

MySQL Server 5.7.11 is available in source and binary form for a number of
platforms from the "Development Releases" selection of our download
pages at

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

MySQL Server 5.7.11 is also available from our repository for Linux
platforms, go here for details:

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

Windows packages are available via the Installer for Windows or .ZIP
(no-install) packages for more advanced needs. The point and click
configuration wizards and all MySQL products are available in the
unified Installer for Windows:

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

5.7.11 also comes with a web installer as an alternative to the full
installer.

The web installer doesn't come bundled with any actual products
and instead relies on download-on-demand to fetch only the
products you choose to install. This makes the initial download
much smaller but increases install time as the individual products
will need to be downloaded.

We welcome and appreciate your feedback, bug reports, bug fixes,
patches, etc.:

  http://bugs.mysql.com/report.php

The following section lists the changes in the MySQL 5.7 since
the release of MySQL 5.7.10. It may also be viewed
online at

http://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-11.html

Enjoy!

On behalf of MySQL Release Engineering,
- Bjorn Munch

==============================================================================
Changes in MySQL 5.7.11 (2016-02-05)


     * Compilation Notes

     * Data Type Notes

     * Installation Notes

     * Packaging Notes

     * Security Notes

     * Functionality Added or Changed

     * Bugs Fixed

   Compilation Notes

     * A value of system is now permitted for the WITH_BOOST
       CMake option. If this option is not set or is set to
       system, it is assumed that the correct version of Boost
       is installed on the compilation host in the standard
       location. In this case, the installed version of Boost is
       used rather than any version included with a MySQL source
       distribution. (Bug #22224313)

     * In addition to the mysql-5.7.11.tar.gz source tarball,
       another tarball named mysql-boost-5.7.11.tar.gz is
       provided. The new tarball contains everything in the
       first tarball, but also contains all the required Boost
       header files in a subdirectory named boost. This is for
       the benefit of those who do not have the correct Boost
       version installed and do not wish to or cannot download
       it. To build from this source distribution, add
       -DWITH_BOOST=boost to the CMake command line.

   Data Type Notes

     * Bit functions and operators comprise BIT_COUNT(),
       BIT_AND(), BIT_OR(), BIT_XOR(), &, |, ^, ~, <<, and >>.
       Currently, bit functions and operators require BIGINT
       (64-bit integer) arguments and return BIGINT values, so
       they have a maximum range of 64 bits. Arguments of other
       types are converted to BIGINT and truncation might occur.
       A planned extension for MySQL 5.8 is to permit bit
       functions and operators to take binary string type
       arguments (BINARY, VARBINARY, and the BLOB types),
       enabling them to take arguments and produce return values
       larger than 64 bits. Consequently, bit operations on
       binary arguments in MySQL 5.7 might produce different
       results in MySQL 5.8. To provide advance notice about
       this potential change in behavior, the server now
       produces warnings for bit operations for which binary
       arguments will not be converted to integer in MySQL 5.8.
       These warnings afford an opportunity to rewrite affected
       statements. To explicitly produce MySQL 5.7 behavior in a
       way that will not change after an upgrade to 5.8, cast
       bit-operation binary arguments to convert them to
       integer. For more information and examples, see Bit
       Functions and Operators
       (http://dev.mysql.com/doc/refman/5.7/en/bit-functions.html).

   Installation Notes

     * Previously, mysqld --initialize required the data
       directory to not exist or, if it existed, to be empty.
       Now an existing data directory is permitted to be
       nonempty if every entry either has a name that begins
       with a period (.) or is named using an --ignore-db-dir
       option. (Bug #79250, Bug #22213873)

   Packaging Notes

     * Packaging support for Ubuntu 15.10 was added. (Bug
       #79104, Bug #22147191)

   Security Notes

     * The linked OpenSSL library for the MySQL Commercial
       Server has been updated from version 1.0.1p to version
       1.0.1q. Issues fixed in the new version are described at
       http://www.openssl.org/news/vulnerabilities.html .
       This change does not affect the Oracle-produced MySQL
       Community build of MySQL Server, which uses the yaSSL
       library instead. (Bug #22348181)

     * The default value of the default_password_lifetime system
       variable that controls the global password expiration
       policy has been changed from 360 (360 days) to 0 (no
       password expiration). The default of 360 sometimes took
       people by surprise when account passwords expired a year
       after upgrading to MySQL 5.7. To continue to use a value
       other than 0 as the password expiration, start the server
       with an explicit setting for default_password_lifetime.
       For example, use these lines in an option file:
[mysqld]
default_password_lifetime=360

       (Bug #77277, Bug #21284761)

     * MySQL client programs now support an --ssl-mode option
       that enables you to specify the security state of the
       connection to the server. Permitted option values are
       PREFERRED (establish a secure encrypted connection if the
       server supports the capability, falling back to an
       unencrypted connection otherwise), DISABLED (establish an
       unencrypted connection), REQUIRED (establish a secure
       connection, or fail), VERFIFY_CA (like REQUIRED, but
       additionally verify the server certificate),
       VERIFY_IDENTITY (like VERIFY_CA, but additionally verify
       that the server certificate matches the host name to
       which the connection is attempted). For backward
       compatibility, the default is PREFERRED if --ssl-mode is
       not specified.
       These clients support --ssl-mode: mysql, mysqladmin,
       mysqlbinlog, mysqlcheck, mysqldump, mysqlimport,
       mysqlshow, mysqlpump, mysqlslap, mysqltest,
       mysql_upgrade.
       The --ssl-mode option comprises the capabilities of the
       client-side --ssl and --ssl-verify-server-cert options.
       Consequently, both of those options are now deprecated
       and will be removed in a future MySQL release. Use
       --ssl-mode=REQUIRED instead of --ssl=1 or --enable-ssl.
       Use --ssl-mode=DISABLED instead of --ssl=0, --skip-ssl,
       or --disable-ssl. Use --ssl-mode=VERIFY_IDENTITY instead
       of --ssl-verify-server-cert options. (The server-side
       --ssl option is not deprecated.)
       For the C API, the new MYSQL_OPT_SSL_MODE option for
       mysql_options() corresponds to the --ssl-mode option. The
       MYSQL_OPT_SSL_ENFORCE and
       MYSQL_OPT_SSL_VERIFY_SERVER_CERT options for
       mysql_options() correspond to the client-side --ssl and
       --ssl-verify-server-cert options. They are now deprecated
       and will be removed in a future MySQL release. Use
       MYSQL_OPT_SSL_MODE with an option value of
       SSL_MODE_REQUIRED or SSL_MODE_VERIFY_IDENTITY instead.
       For more information, see Command Options for Secure
       Connections
       (http://dev.mysql.com/doc/refman/5.7/en/secure-connection-options.html),
       and mysql_options()
       (http://dev.mysql.com/doc/refman/5.7/en/mysql-options.html).
       In consequence of this change, the minor C API version
       number was incremented.

     * MySQL now supports a keyring service that enables
       internal MySQL server components and plugins to securely
       store sensitive information for later retrieval. The
       implementation includes a keyring_file plugin that stores
       data in a file local to the server host. For more
       information, see The MySQL Keyring
       (http://dev.mysql.com/doc/refman/5.7/en/keyring.html).

   Functionality Added or Changed

     * InnoDB: A new InnoDB configuration option, innodb_tmpdir,
       allows you to configure a separate temporary file
       directory for online ALTER TABLE operations. This option
       was introduced to help avoid tmpdir overflows that could
       occur as a result of large temporary files created during
       online ALTER TABLE operations. innodb_tmpdir is a SESSION
       variable and can be configured dynamically using a SET
       statement. (Bug #19183565)

     * InnoDB: InnoDB now supports at-rest data encryption for
       InnoDB tables stored in file-per-table tablespaces.
       Encryption is enabled by specifying the ENCRYPTION option
       when creating or altering an InnoDB table. For more
       information, see InnoDB Tablespace Encryption
 (http://dev.mysql.com/doc/refman/5.7/en/innodb-tablespace-encryption.html).

     * Replication: The log_statements_unsafe_for_binlog
       variable was added to provide control over whether the
       warnings generated by error 1592 are added to the binary
       log or not.

     * yaSSL was upgraded to version 2.3.9. This upgrade
       corrects an issue in which yaSSL handled only cases of
       zero or one leading zeros for the key agreement instead
       of potentially any number, which in rare cases could
       cause connections to fail when using DHE cipher suites.
       (Bug #22361038)

     * The Valgrind function signature in
       mysql-test/valgrind.supp was upgraded for Valgrind 3.11.
       (Bug #22214867)

     * The audit_log plugin now produces events in the
       MYSQL_AUDIT_TABLE_ACCESS_CLASS class. These events are
       abortable. (Bug #21458192)

     * The format of log output produced by mysqld_safe now is
       configurable using the --mysqld-safe-log-timestamps
       option. This option can be used to produce log timestamps
       in formats compatible with the server or in formats used
       by mysqld_safe in older versions of MySQL. For more
       information, see mysqld_safe --- MySQL Server Startup
       Script
       (http://dev.mysql.com/doc/refman/5.7/en/mysqld-safe.html).
       (Bug #78475, Bug #21862951)

     * The mysql_kill(), mysql_list_fields(),
       mysql_list_processes(), and mysql_refresh() C API
       functions are deprecated and will be removed in a future
       version of MySQL. The same is true of the corresponding
       COM_PROCESS_KILL, COM_FIELD_LIST, COM_PROCESS_INFO, and
       COM_REFRESH client/server protocol commands. Instead, use
       mysql_query() to execute a KILL, SHOW COLUMNS, SHOW
       PROCESSLIST, or FLUSH statement, respectively.

     * The mysql_plugin utility is deprecated and will be
       removed in a future version of MySQL. Alternatives
       include loading plugins at server startup using the
       --plugin-load or --plugin-load-add option, or at runtime
       using the INSTALL PLUGIN statement.

     * Storage engines now can request notification about
       acquisition and release of exclusive metadata locks. As
       result, the LOCK_STATUS column of the metadata_locks
       Performance Schema table has two new status values. The
       PRE_ACQUIRE_NOTIFY and POST_RELEASE_NOTIFY status values
       are brief and signify that the metadata locking
       subsubsystem is notifying interested storage engines
       while entering lock acquisition or leaving lock release
       operations.

   Bugs Fixed

     * InnoDB; Partitioning: When OPTIMIZE TABLE rebuilt a
       partitioned InnoDB table, it placed the resulting
       partition tablespace files (*.ibd files) in the default
       data directory instead of the directory specified using
       the DATA DIRECTORY option. (Bug #75112, Bug #20160327)

     * InnoDB: InnoDB failed to update index statistics when
       adding or dropping a virtual column. (Bug #22469660, Bug
       #79775)

     * InnoDB: A small InnoDB buffer pool size with a large
       innodb_stats_persistent_sample_pages setting resulted in
       a Difficult to find free blocks in the buffer pool
       warning. (Bug #22385442)

     * InnoDB: memcached connections are blocked from accessing
       tables that contain an indexed virtual column. Accessing
       an indexed virtual column requires a callback to the
       server, but a memcached connection does not have access
       to the server code. (Bug #22384503, Bug #79691)

     * InnoDB: InnoDB did not return an informative message when
       refusing an online ALTER TABLE operation that attempted
       to add an index and a virtual column. (Bug #22374827)

     * InnoDB: An invalid innodb_saved_page_number_debug setting
       caused a server exit. (Bug #22311319, Bug #79516)

     * InnoDB: InnoDB failed to free a table object when a
       compressed table and temporary compressed table were
       created in the same shared tablespace. (Bug #22306581)

     * InnoDB: In Numa-related code, the size information passed
       to the mbind() call in the buf_chunk_init() function was
       incorrect. (Bug #22293530, Bug #79434)

     * InnoDB: Numa support was incomplete for online buffer
       pool resizing operations. (Bug #22293511, Bug #79354)

     * InnoDB: A SELECT COUNT(*) query that counted the results
       of a full-text subquery raised an assertion. (Bug
       #22270139)

     * InnoDB: InnoDB passed a buffer with an incorrect TINYBLOB
       data length for a virtual column, resulting in a purge
       thread failure. (Bug #22256752)

     * InnoDB: A purge failure occurred while deleting data from
       a table that contained a spatial index. (Bug #22230442)

     * InnoDB: An assertion was raised when purge accessed a
       freed page while attempting to rebuild virtual column
       data from the clustered index. (Bug #22204260)

     * InnoDB: Only prefix bytes were logged for an indexed
       virtual column, resulting in an a Clustered record for
       sec rec not found error. (Bug #22202788)

     * InnoDB: A small buffer pool with an innodb_page_size
       setting of 64K could cause startup, bootstrap, and
       recovery failures. (Bug #22179133, Bug #79201)

     * InnoDB: Unreachable code that checks for 32-bit file
       offsets was removed. (Bug #22163880, Bug #79150)

     * InnoDB: A slow shutdown failure was caused by background
       threads adding undo records to the purge history list
       during or after purge thread exit. (Bug #22154730)

     * InnoDB: The InnoDB purge thread died attempting to purge
       a virtual column index record that was not delete-marked.
       (Bug #22141031)

     * InnoDB: In debug builds, an ALTER TABLE operation that
       increased the column length of a virtual column raised an
       assertion. (Bug #22139917)

     * InnoDB: ut_allocator prepended the allocation payload
       with a 12-byte header on 32-bit systems, causing
       unaligned memory access. On 32-bit SPARC systems, the
       unaligned memory access caused a crash during bootstrap.
       (Bug #22131684)

     * InnoDB: In debug builds, an ALTER TABLE operation that
       added a new virtual column before an existing virtual
       column raised an assertion. (Bug #22123674, Bug
       #22111464)

     * InnoDB: InnoDB startup messages related to dumping and
       loading of the buffer pool were improved. (Bug #22096661,
       Bug #78960)

     * InnoDB: Creating a table with a full-text index and a
       foreign key constraint failed when foreign_key_checks was
       disabled. (Bug #22094601, Bug #78955)
       References: This bug is a regression of Bug #16845421.

     * InnoDB: Support was enabled for ALGORITHM=INPLACE
       operations that add an index on an existing virtual
       column while dropping another virtual column. Support was
       also enabled for ALGORITHM=INPLACE operations that add a
       virtual column and an index. When adding an index on a
       newly-added virtual column, purge now skips the
       uncommitted virtual index. (Bug #22082762)

     * InnoDB: The wrong table object was used to compute
       virtual column values for a query that accessed multiple
       instances of the same table. (Bug #22070021)

     * InnoDB: A purge thread failure occurred when inserting
       and deleting spatial data. The child page number field
       was not stored during the R-tree search stage. (Bug
       #22027053)

     * InnoDB: Starting the server with an empty
       innodb_data_home_dir entry in the configuration file
       caused InnoDB to look for the buffer pool file in the
       root directory, resulting in a startup error. (Bug
       #22016556, Bug #78831)

     * InnoDB: A failure to compute virtual column values caused
       an excessive number of error messages. (Bug #21968375)

     * InnoDB: An INFORMATION_SCHEMA.INNODB_CMP_PER_INDEX query
       raised an assertion. A dictionary mutex was taken while
       InnoDB populated an in-memory heap table. The mutex was
       not released before InnoDB attempted to convert the
       in-memory heap table to an optimized internal temporary
       table. (Bug #21950756, Bug #78714)

     * InnoDB: To avoid a potential hang and redo log overwrite,
       the innodb_log_file_size minimum value was increased from
       1MB to 4MB, and the length calculation in
       log_margin_checkpoint_age() was revised. (Bug #21924224,
       Bug #78647)

     * InnoDB: A full-text query run under high concurrency
       caused a server exit due to an invalid memory access.
       (Bug #21922532)

     * InnoDB: An ALTER TABLE operation on a table partitioned
       across multiple tablespaces moved existing partitions to
       the table's default tablespace, resulting in an assertion
       on SHOW CREATE TABLE. Likewise, ALTER TABLE tbl_name
       TABLESPACE tablespace_name moved existing partitions to
       the named tablespace. Only ALTER TABLE ... REORGANIZE
       PARTITION should move existing partitions to the table's
       default tablespace or to a named tablespace. Running
       ALTER TABLE tbl_name TABLESPACE tablespace_name on a
       table partitioned across multiple tablespaces should only
       change the table's default tablespace. (Bug #21914047,
       Bug #22124042, Bug #79030)

     * InnoDB: With a large innodb_sort_buffer_size setting,
       adding an index on an empty table performed more slowly
       than expected. (Bug #21762319, Bug #78262)

     * InnoDB: A race condition occurred between
       fil_names_write() and file_rename_tablespace_in_mem().
       (Bug #21549928)

     * InnoDB: Purge attempted to access undo pages that were
       freed by a preceding undo log truncate operation,
       resulting in an assertion. (Bug #21508627)

     * InnoDB: InnoDB did not return an informative message when
       refusing an online ALTER TABLE operation on a table with
       a spatial index. (Bug #20111575)

     * InnoDB: A compiler barrier was added to ut_relax_cpu().
       The ut_always_false dummy global variable was removed
       from ut_delay(). (Bug #20045167, Bug #74832)

     * InnoDB: Incorrect index values were returned while
       dropping a virtual column. The altered table object was
       used to evaluate virtual column values. (Bug #79773, Bug
       #22469459)
       References: This bug is a regression of Bug #22082762.

     * Partitioning: Subquery scans on partitioned tables with
       virtual columns could leak memory. (Bug #79145, Bug
       #22162200)

     * Replication: When a slave was configured with
       log_bin=OFF, the applier (SQL) thread was failing to
       correctly roll back partial transactions left in the
       relay log. The fix ensures that on reconnection, the
       applier thread correctly rolls back a partial transaction
       and starts applying it again from the next relay log
       file. (Bug #21691396)

     * Replication: The behavior of SET GTID_PURGED was not
       consistent between version 5.6 and 5.7. The fix ensures
       that version 5.7 does not initiate a transaction for SET
       GTID_PURGED statements. (Bug #21472492)

     * Replication: When DML invokes a trigger or a stored
       function that inserts into an AUTO_INCREMENT column, that
       DML has to be marked as an unsafe statement. If the
       tables are locked in the transaction prior to the DML
       statement (for example by using LOCK TABLES), then the
       DML statement was not being marked as an unsafe
       statement. The fix ensures that such DML statements are
       marked correctly as unsafe. (Bug #17047208)

     * Replication: If pseudo_slave_mode was set to 1 while an
       XA transaction was in the prepare stage, an assert was
       generated. The fix ensures that changes from 0 to 1 can
       be made during XA transactions. Note that this variable
       is solely for internal use by the server. (Bug #79416,
       Bug #22273964, Bug #78695, Bug #21942487)

     * Replication: If the server stopped unexpectedly
       immediately before committing an XA transaction which had
       been prepared, and the transaction modified the
       mysql.gtid_executed table, then the subsequent recovery
       aborted due to an innodb_lock_wait_timeout error when it
       was reading the mysql.gtid_executed table. To fix the
       problem, XA transactions are no longer permitted to
       modify the mysql.gtid_executed table. (Bug #77740, Bug
       #21452916)

     * Replication: As part of the fix for Bug #16290902, when
       writing a DROP TEMPORARY TABLE IF EXISTS query into the
       binary log, the query is no longer preceded by a USE `db`
       statement. Instead the query uses a fully qualified table
       name, for example DROP TEMPORARY TABLE IF EXISTS
       `db`.`t1`;. This changed the application of
       replicate-rewrite-db filter rules, as they work only on
       the default database specified in a USE statement. This
       caused slaves to fail when the resulting CREATE TEMPORARY
       TABLE was applied. The fix ensures that at the time of
       writing a DROP TEMPORARY TABLE IF EXISTS query into the
       binary log, a check is made for the default database. If
       it exists then the query is written as USE default_db in
       the binary log. If a default database is not present then
       the query is logged with the qualified table name. (Bug
       #77417, Bug #21317739)

     * Replication: If generating a GTID for a transaction
       fails, the transaction is not written to the binary log
       but still gets committed. Although running out of GTIDs
       is a rare situation, if it did occur an error was written
       to the binary log as a sync stage error. With
       binlog_error_action=ABORT_SERVER, the server aborts on
       such an error, avoiding data inconsistency. When
       binlog_error_action=IGNORE_ERROR, the server continues
       binary logging after such an error, potentially leading
       to data inconsistency between the master and the slave.
       The fix changes the error to be correctly logged as a
       flush stage error. (Bug #77393, Bug #21276661)

     * Replication: When using --gtid-mode=on ,
       --enforce-gtid-consistency , and --binlog-format=row, if
       a user defined function with multiple DROP TEMPORARY
       TABLE statements was executed on a master, the resulting
       binary log caused an error on slaves. The fix ensures
       that stored functions and triggers are also considered
       multi-statement transactions, and that when
       --enforce-gtid-consistency is enabled, functions with
       CREATE TEMPORARY TABLE or DROP TEMPORARY TABLE statements
       generate an
       ER_GTID_UNSAFE_CREATE_DROP_TEMPORARY_TABLE_IN_TRANSACTION
       error. (Bug #77354, Bug #21253415)

     * Replication: Stored procedure local variables that were
       used in an ALTER EVENT statement were not being
       replicated correctly. This was related to the fact that
       CALL statements are not written into the binary log.
       Instead each statement executed in a stored procedure is
       binary logged separately, with the exception that the
       query string is modified so that uses of stored procedure
       local variables are replaced with
       NAME_CONST('spvar_name', 'spvar-value') calls. DDL
       statements (which are always binary logged in statement
       binary log mode irrespective of the current binary log
       format) can also use stored procedure local variables and
       a clash could cause them to not be replicated correctly.
       The fix ensures that any stored procedure local variables
       used in a query are replaced with NAME_CONST(...), except
       for the case when it is a DML query and the binary log
       format is ROW. (Bug #77288, Bug #21229951)

     * Replication: DROP TABLE statements are regenerated by the
       server before being written to the binary log. If a table
       or database name contained a non-regular character, such
       as non-latin characters, the regenerated statement was
       using the wrong name, breaking replication. The fix
       ensures that in such a case the regenerated name is
       correctly converted back to the original character set.
       Also during work on this bug, it was discovered that in
       the rare case that a table or database name contained 64
       characters, the server was throwing an assert(M_TBLLEN <
       128) assertion. The assertion has been corrected to be
       less than or equal 128. (Bug #77249, Bug #21205695)
       References: See also Bug #78036, Bug #22261585, Bug
       #21619371.

     * Replication: Irrespective of the current binlog_format
       setting, DDL that changes metadata on a master is always
       identified and written to the binary log in STATEMENT
       format. Such DDL could occur from event based SQL
       statements, such as CREATE EVENT or DROP EVENT, or
       transactions that had unsafe functions such as sysdate().
       When binlog_format=MIXED and attempting to replicate such
       DDL, it was not being correctly identified and therefore
       was not being correctly replicated. (Bug #71859, Bug
       #19286708)

     * The System-V initialization script for RHEL6 or older
       failed to enable the mysqld service by default. (Bug
       #22600974)

     * Some activations of triggers that referenced a NEW value
       inside a query might cause a server exit. (Bug #22377554)

     * Parsing the output of ST_GeometryType() as a DATETIME
       value with a default character set of utf32 caused a
       server exit. (Bug #22340858)

     * For a character set loaded from an XML file, the server
       could fail to properly initialize its state map, leading
       to a server exit. (Bug #22338946)

     * Inserting a token of 84 4-byte characters into a
       full-text index raised an assertion. The maximum token
       length was 84 characters up to a maximum of 252 bytes,
       which did not account for 4-byte characters. The maximum
       byte length is now 336 bytes. (Bug #22291765, Bug #79475)

     * For some combination of consumers, the Performance Schema
       prepared statement instrumentation could cause a server
       exit. (Bug #22291560)

     * If a client attempted to use an unsupported client
       character set (ucs2, utf16, utf32), the error message
       reported to the client differed for SSL and non-SSL
       connections. (Bug #22216715)

     * Data corruption or a server exit could occur if a stored
       procedure had a variable declared as TEXT or BLOB and
       data was copied to that variable using SELECT ... INTO
       syntax from a TEXT or BLOB column. (Bug #22203532, Bug
       #22232332, Bug #21941152)

     * For debug builds, with the ONLY_FULL_GROUP_BY SQL mode
       disabled, the optimizer could attempt to sort on outer
       references, causing an assertion to be raised. (Bug
       #22200984)

     * Different handling of YEAR values for INSERT and SELECT
       could raise an assertion when such values were used in a
       generated-column expression. (Bug #22195458)

     * For debug builds, for queries involving MIN() or MAX() on
       an indexed column and a reference to an unindexed
       datetime column, the optimizer could attempt to access
       unread values, causing an assertion to be raised. (Bug
       #22186926)

     * Geohash decoding (for example, for ST_LongFromGeoHash(),
       ST_LatFromGeoHash(), and ST_PointFromGeoHash()) could
       yield incorrect results due to the rounding algorithm
       being too aggressive. (Bug #22165582)

     * In debug builds, with READ UNCOMMITTED transaction
       isolation level, a SELECT reading a generated column
       using an index could raise an assertion. (Bug #22133710)

     * For generated columns, the optimizer could fail to
       establish the proper table reference, resulting in a
       server exit. (Bug #22132822)

     * For some combination of consumers, the Performance Schema
       file instrumentation could fail due to an attempt to use
       a NULL pointer while instrumenting temporary file I/O.
       (Bug #22130453)

     * The Performance Schema could raise an assertion based on
       the (incorrect) assumption that instrumenting a temporary
       file open operation always resulted in an instrumented
       file. (Bug #22118669)

     * An ALTER TABLE statement that added an index on a virtual
       generated column using the INPLACE algorithm did not
       properly report warnings (or errors in strict SQL mode)
       for problems with virtual column values. Any subsequent
       ALTER TABLE on the same table using the COPY algorithm
       produced such warnings (or failures in strict SQL mode)
       due to evaluating the problematic value, but left the
       connection in a state that made further INPLACE
       alterations on the table fail for the same reason. (Bug
       #22095783)

     * If the left expression of an IN expression was a row
       subquery that accesses no tables, an assertion could be
       raised (in debug builds), or incorrect results could be
       returned (in release builds). (Bug #22089623)

     * Expressions that match an indexed generated column may be
       replaced with the generated column by the optimizer to
       enable use of the associated index. However, this
       optimization was not performed for single-table update
       and delete statements. The optimizer now extends this
       replacement optimization to such statements. (Bug
       #22077611)

     * ANSI SQL mode could cause inconsistencies in processing
       of generated column expressions. (Bug #22018979)

     * Removal of server session plugins was faulty and could
       cause a server exit. (Bug #21983102)

     * For some queries, if the optimizer used Disk-Sweep
       Multi-Range Read optimization on generated columns, the
       server could exit. (Bug #21980430)

     * mysqlpump tries to do as much work in parallel as
       possible, but the dump threads lacked a synchronization
       point before backing up the data, resulting in
       inconsistent backup. mysqlpump now locks the server and
       flushes all the tables using FLUSH TABLES WITH READ LOCK
       to ensure that any further connections view the same
       state of all the databases.
       This change lifts the restriction aginst the
       --single-transaction option being mutually exclusive with
       parallelism. When using --single-transaction, it is no
       longer necessary to disable parallelism by setting
       --default-parallelism to 0 and not using any instances of
       --parallel-schemas. (Bug #21980284)

     * A fault in pthread_rwlock_unlock() wherein it decremented
       the lock counter even for already unlocked objects could
       result in deadlock. (Bug #21966621)

     * The Performance Schema could acquire a double lock on
       session system variables, causing a server hang or (in
       debug builds) an assertion to be raised. (Bug #21935106)

     * Certain queries containing WHERE 0 of the following form
       could cause a server exit due to uninitialized reads:
       SELECT (SELECT col AND constant FROM t WHERE 0) IN
       (SELECT constant FROM t1). (Bug #21922202)

     * CREATE TEMPORARY TABLE .. SELECT statements involving BIT
       columns that resulted in a column type redefinition could
       cause a server exit or an improperly created table. (Bug
       #21902059)

     * For UPDATE operations on InnoDB tables, there could be a
       mismatch between the value of a virtual generated column
       in the index and the value in the "before" buffer,
       resulting in a server exit. (Bug #21875520)

     * With character_set_server=utf16le, some values of
       ft_boolean_syntax could cause a server exit for full-text
       searches. (Bug #21631855)

     * With gtid_mode=ON, concurrent execution of SHOW TABLE
       STATUS and REVOKE ALL PRIVILEGES could lead to deadlock
       in there was a view in the database and REVOKE ALL
       PRIVILEGES failed for some but not all of the named
       users. (Bug #21463167)

     * mysqlpump could exit due to incorrect synchronization of
       view-handling threads during dump processing. (Bug
       #21399236, Bug #21447753)

     * With LOCK TABLES in force, an attempt to open a temporary
       MERGE table consisting of a view in its list of tables
       (not the last table in the list) caused a server exit.
       (Bug #20691429)

     * For certain prepared statements, the optimizer could
       transform join conditions such that it used a pointer to
       a temporary table field that was no longer available
       after the initial execution. Subsequent executions caused
       a server exit. (Bug #19941403)

     * Repeated execution of ALTER TABLE v1 CHECK PARTITION as a
       prepared statement, where v1 is a view, led to a server
       exit.
       In addition, output for some administrative operations,
       when they are attempted on a view, changes from "Corrupt"
       to "Operation failed". These include ANALYZE TABLE,
       OPTIMIZE TABLE, and REPAIR TABLE, and ALTER TABLE
       statements that perform ANALYZE PARTITION, CHECK
       PARTITION, OPTIMIZE PARTITION, and REPAIR PARTITION
       operations. (Bug #19817021)

     * Valgrind detected some possibly unsafe use of string
       functions in code used for asymmetric encryption. (Bug
       #19688135)

     * An out-of-memory failure in join buffer allocation could
       lead to incorrect results for multiple-table queries.
       (Bug #19031409)

     * SSL connections ignored any change made by passing the
       MYSQL_OPT_READ_TIMEOUT option to the mysql_options() C
       API function. (Bug #17618162)

     * For ALTER TABLE statements, the parser did not support
       the ALGORITHM clause for some operations involving
       tablespaces or partitions. (Bug #17400320)

     * Debian packages create the root user account using the
       auth_socket authentication plugin to achieve
       secure-by-default installation if installation was done
       with a blank root password. However, auth_socket was
       being used even if the password was not blank. (Bug
       #80137, Bug #22594846)

     * Solaris packages failed to note the dependency of the
       MySQL client library on the libstlport library. (Bug
       #79778, Bug #22504264)

     * Thread handle resource leakage could occur when creating
       threads for handling connections on Windows, which could
       lead to Windows servers eventually running out of
       handles. (Bug #79714, Bug #22455198)

     * Using systemd to start mysqld failed if configuration
       files contained multiple datadir lines. Now the last
       datadir line is used. (Bug #79613, Bug #22361702)

     * A derived table contained in the SET clause of an UPDATE
       statement should be materialized to avoid an error about
       updating a table that is also read in the same statement.
       Materialization did not occur for some statements,
       leading to that error. (Bug #79590, Bug #22343301)

     * MySQL 5.7.8 prohibited references to select list columns
       of the outer query from the HAVING clause of a correlated
       subquery in the inner query because they are not
       permitted by standard SQL. However, because this is a
       frequently used extension, it is once again permitted.
       (Bug #79549, Bug #22328395)
       References: This bug was introduced by Bug #19823076.

     * Installing just shared libraries, clients, and
       development support files failed to install everything
       needed to build client applications because the
       binary_log_types.h header file was not installed. (Bug
       #79531, Bug #22321338)

     * SHOW CREATE TRIGGER could fail to display all applicable
       SQL modes. (Bug #79526, Bug #22313133)

     * On SELinux, mysqld --initialize with an --init-file
       option could fail to initialize the data directory. (Bug
       #79442, Bug #22314098, Bug #79458, Bug #22286481)

     * Syntax checks were not always performed when an ALTER
       TABLE statement changed a column's type from TEXT to
       JSON. This could lead to JSON columns containing invalid
       JSON data. This issue was observed when the original TEXT
       column used the utf8mb4_bin collation. (Bug #79432, Bug
       #22278524)

     * Hexadecimal and bit literals written to saved view
       definitions could be truncated. This could also affect
       extended EXPLAIN output. (Bug #79398, Bug #22268110)

     * ST_Buffer() returned an error for geometries with an SRID
       different from 0. Nonzero SRID values now are permitted
       but ignored (calculations are still done using Cartesian
       coordinates). (Bug #79394, Bug #22306745)

     * A regression caused failure of the workaround at
       Restrictions on Subqueries
       (http://dev.mysql.com/doc/refman/5.7/en/subquery-restrictions.html)
       for avoiding ER_UPDATE_TABLE_USED errors when
       referencing the same table in a subquery as was used as
       target for an UPDATE or DELETE statement. (Bug #79333,
       Bug #22239474)

     * Statements causing multiple parse errors could cause an
       assertion to be raised. (Bug #79303, Bug #22222013)

     * Some queries with derived tables perform better with
       materialization than when merged into the outer query.
       The optimizer no longer uses merging by default for
       derived tables containing dependent subqueries in the
       select list. (Bug #79294, Bug #22223202)

     * ALTER USER and SET PASSWORD did not work at server
       startup when invoked in the file named using the
       --init-file option. (Bug #79277, Bug #22205360)

     * When not in strict SQL mode, attempts to implicitly
       insert NULL into a NOT NULL column resulted in different
       behavior depending on whether the table had a trigger.
       (Bug #79266, Bug #22202665)

     * Some replication-only code was not protected with #ifdef
       and failed to compile with the WITH_UBSAN CMake option
       enabled. (Bug #79236, Bug #22190632)

     * Configuring MySQL with the -DWITH_UBSAN=ON CMake option
       resulted in spurious runtime warnings from comp_err.
       These are now suppressed. Also, a CMake warning was added
       that undefined behavior address sanitizer support is
       currently experimental. (Bug #79230, Bug #22190656)

     * INSERT INTO ... SELECT statements could insert values
       other than DEFAULT into generated columns. (Bug #79204,
       Bug #22179637)

     * With the derived_merge flag of the optimizer_switch
       system variable enabled, queries that used a derived
       table on the inner side of an outer join could return
       incorrect results. (Bug #79194, Bug #22176604)

     * Memory leaks in libmysqld were corrected. (Bug #79187,
       Bug #22174219)

     * FOUND_ROWS() could return a negative value if the
       preceding query was a UNION involving SQL_CALC_FOUND_ROWS
       and LIMIT ... OFFSET. (Bug #79131, Bug #22155786)

     * IN-to-EXISTS subquery transformation could cause SELECT
       NULL IN (subquery) to return 0 rather than NULL.
       IN-to-EXISTS subquery transformation could yield
       incorrect results for queries for which the table was
       nonempty, the subquery on the left side of the IN
       predicate produced an empty result, and semi-join
       optimization was disabled. (Bug #78946, Bug #22090717,
       Bug #19822406)

     * The result from WEIGHT_STRING() could be incorrect when
       used in a view. (Bug #78783, Bug #21974321)

     * If server was started with --thread-handling=no-threads,
       no foreground thread was created for a client connection.
       The Performance Schema did not account for the
       possibility of no foreground threads for queries on the
       session_connect_attrs table, causing an assertion to be
       raised. (Bug #78292, Bug #21765843)

     * mysqlpump generated incorrect INSERT statements for
       tables that had generated columns. (Bug #78082, Bug
       #21650559)

     * ALTER TABLE ... CONVERT TO CHARACTER SET operations that
       used the INPLACE algorithm were ineffective if the table
       contained only numeric data types. Also, such operations
       failed to clean up their temporary .frm file. (Bug
       #77554, Bug #21345391)

     * Heavy SHOW PROCESSLIST or SELECT ... FROM
       INFORMATION_SCHEMA.PROCESSLIST activity could result in
       the server accepting more than max_connections
       connections. (Bug #75155, Bug #20201006)

     * When used with the libmysqld embedded server, the
       mysql_stmt_execute() C API function failed with a
       malformed communication packet error, even for simple
       prepared statements. (Bug #70664, Bug #17883203)

     * Queries using SUM(DISTINCT) could produce incorrect
       results when there were many distinct values. (Bug
       #56927, Bug #11764126, Bug #79648, Bug #22370382)


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

Reply via email to