[Due to size limitations, the announcement is split in 2 parts. This is part 1.]

Dear MySQL users,

MySQL Server 8.0.11 (GA) is a new version of the world's
most popular open source database. This is the first official release
of MySQL 8.0.

The new features in this release are now deemed to be of Release quality.

Note that 8.0.11 includes all features in MySQL 5.7 and previous 8.0
Development Milestone Releases. An overview of what's new in MySQL 8.0
is available online at

https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html

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

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

MySQL Server 8.0.11 is available in source and binary form for a number of
platforms from our download pages at

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

MySQL Server 8.0.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/

8.0.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 link lists the changes in the MySQL 8.0 since the
the release of MySQL 8.0.4.

https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-11.html

Enjoy!

Changes in MySQL 8.0.11 (2018-04-19, General Availability)

   Note

   Upgrade from MySQL 5.7 to MySQL 8.0 is only supported using
   the in-place upgrade method.

   Downgrade from MySQL 8.0 to MySQL 5.7 (or from a MySQL 8.0
   release to a previous MySQL 8.0 release) is not supported.
   The only supported alternative is to restore a backup taken
   before upgrading.


     * Character Set Support

     * Compilation Notes

     * Configuration Notes

     * Deprecation and Removal Notes

     * INFORMATION_SCHEMA Notes

     * Installation Notes

     * Logging Notes

     * Packaging Notes

     * Performance Schema Notes

     * Security Notes

     * Spatial Data Support

     * sys Schema Notes

     * Test Suite Notes

     * X Plugin Notes

     * Functionality Added or Changed

     * Bugs Fixed

Character Set Support


     * The utf8mb3 character set will be replaced by utf8mb4 in
       some future MySQL version. The utf8 character set is
       currently an alias for utf8mb3, but will at that point
       become a reference to utf8mb4. To avoid ambiguity about
       the meaning of utf8, consider specifying utf8mb4
       explicitly for character set references instead of utf8.

Compilation Notes


     * MySQL source code has been converted to Google style
       rules using clang-format. (Bug #27414321)

     * Sun RPC is being removed from glibc. CMake now detects
       and uses libtirpc if glibc does not contain Sun RPC. (You
       might find it necessary to install libtirpc and rpcgen to
       take advantage of this CMake feature.) (Bug #27368272,
       Bug #89168)

     * The minimum version of the Boost library for server
       builds is now 1.66.0. (Bug #27137349, Bug #88540)

     * When building from source, the provided CMake script
       assumed that JUnit and Ant were installed and available
       at set paths. If this was not the case, building the GCS
       Java wrapper resulted in build errors. To address this a
       new CMake option WITH_ANT=path_name has been added to the
       build script, and which works in a similar way to the
       existing WITH_BOOST CMake option. Set WITH_ANT to the
       path of a directory where the Ant tarball, or an already
       unpacked archive, is saved. When WITH_ANT is not set, or
       is set with the special value system, the build assumes a
       binary ant exists in $PATH.
       Similarly, the CMake option ENABLE_DOWNLOADS already
       exists to download required libraries during a build,
       such as the Google Test distribution. Now, when
       ENABLE_DOWNLOADS is set, and JUnit or Ant are not found
       they are downloaded as part of the build process. (Bug
       #26678793)

Configuration Notes


     * A new CMake option, BUNDLE_RUNTIME_LIBRARIES, enables
       bundling of runtime libraries with server MSI and Zip
       packages for Windows. (Bug #27584796, Bug #89771)

     * systemd service files now increase LimitNOFILE to 10000,
       to accommodate higher default settings in MySQL 8.0. (Bug
       #27530282)

     * The new WITH_SYSTEM_LIBS CMake option, when enabled,
       selects the system value for any of the following options
       that are not set explicitly: WITH_EDITLINE, WITH_ICU,
       WITH_LIBEVENT, WITH_LZ4, WITH_PROTOBUF, WITH_SSL,
       WITH_ZLIB. (Bug #27356668, Bug #89136)

     * The version of the compiled-in zlib library is now
       available at runtime as the value of the
       version_compile_zlib system variable. Thanks to Daniël
       van Eeden for the patch. (Bug #27235065, Bug #88825)

Deprecation and Removal Notes


     * Incompatible Change: These deprecated compatibility SQL
       modes have been removed: DB2, MAXDB, MSSQL, MYSQL323,
       MYSQL40, ORACLE, POSTGRESQL, NO_FIELD_OPTIONS,
       NO_KEY_OPTIONS, NO_TABLE_OPTIONS. They can no longer be
       assigned to the sql_mode system variable or used as
       permitted values for the mysqldump --compatible option.
       Removal of MAXDB means that the TIMESTAMP data type for
       CREATE TABLE or ALTER TABLE is no longer treated as
       DATETIME.
       For MySQL 5.7 applications that use SQL modes removed in
       MySQL 8.0, statements may fail when replicated from a
       MySQL 5.7 master to a MySQL 8.0 slave, or may have
       different effects on master and slave. To avoid such
       problems, applications that use modes removed in MySQL
       8.0 should be revised to avoid them.

     * The following features related to account management have
       been removed:

          + Using GRANT to create users. Instead, use CREATE
            USER. Following this practice makes the
            NO_AUTO_CREATE_USER SQL mode immaterial for GRANT
            statements, so it too is removed.

          + Using GRANT to modify account properties other than
            privilege assignments. This includes authentication,
            SSL, and resource-limit properties. Instead,
            establish such properties at account-creation time
            with CREATE USER or modify them afterward with ALTER
            USER.

          + IDENTIFIED BY PASSWORD 'hash_string' syntax for
            CREATE USER and GRANT. Instead, use IDENTIFIED WITH
            auth_plugin AS 'hash_string' for CREATE USER and
            ALTER USER, where the 'hash_string' value is in a
            format compatible with the named plugin.
            Additionally, because IDENTIFIED BY PASSWORD syntax
            has been removed, the
            log_builtin_as_identified_by_password system
            variable is superfluous and has been removed.

          + The PASSWORD() function. Additionally, PASSWORD()
            removal means that SET PASSWORD ... =
            PASSWORD('auth_string') syntax is no longer
            available.

          + The old_passwords system variable.
       For MySQL 5.7 applications that use features removed in
       MySQL 8.0, statements may fail when replicated from a
       MySQL 5.7 master to a MySQL 8.0 slave, or may have
       different effects on master and slave. To avoid such
       problems, applications that use features removed in MySQL
       8.0 should be revised to avoid them and use alternatives
       when possible. (Bug #27455708)

INFORMATION_SCHEMA Notes


     * The new INFORMATION_SCHEMA.KEYWORDS table lists the words
       considered keywords by MySQL and, for each one, indicates
       whether it is reserved. This table provides applications
       a runtime source of MySQL keyword information. See The
       INFORMATION_SCHEMA KEYWORDS Table
       (http://dev.mysql.com/doc/refman/8.0/en/keywords-table.html).
       In addition, if you build MySQL from source, the build
       process generates a keyword_list.h header file containing
       a array of keywords and their reserved status. This file
       can be found in the sql directory under the build
       directory. This file may be useful for applications that
       require a static source for the keyword list.

Installation Notes


     * RPM and Debian packages now add the current MySQL series
       to the share directory name (for example
       share/mysql-8.0). (Bug #27638192, Bug #26990531)

Logging Notes


     * Messages written to the error log now indicate the
       subsystem in which the event occurred. Possible subsystem
       values are InnoDB (the InnoDB storage engine), Repl (the
       replication subsystem), Server (otherwise).

Packaging Notes


     * Installing or upgrading using Debian packages now
       presents a dialog with an option for setting the default
       authentication plugin to mysql_native_password. This may
       be useful for backward compatibility at some installation
       sites. (Bug #27454287, Bug #27667294)

     * The compile_innodb script is no longer used and has been
       removed from MySQL distributions. Thanks for Alexey
       Kopytov for the suggestion. (Bug #27448099, Bug #89437)

Performance Schema Notes


     * A new Performance Schema table log_status provides
       information that enables an online backup tool to copy
       the required log files without locking those resources
       for the duration of the copy process. When the log_status
       table is queried, the server blocks logging and related
       administrative changes for just long enough to populate
       the table, then releases the resources. The log_status
       table informs the online backup which point it should
       copy up to in the master's binary log and gtid_executed
       record, and the relay log for each replication channel.
       It also provides relevant information for individual
       storage engines, such as the last log sequence number
       (LSN) and the LSN of the last checkpoint taken for the
       InnoDB storage engine.
       The BACKUP_ADMIN privilege is required for access to the
       log_status table. (Bug #27599831)

     * Performance Schema objects now have a default character
       set of utf8mb4. (Bug #27407745)

Security Notes


     * yaSSL is no longer included with MySQL distributions.
       wolfSSL may be used as a functionally equivalent
       alternative that has a GPLv2-compatible license. In
       addition, wolfSSL (like OpenSSL) supports the TLSv1.2
       protocol, which yaSSL does not.
       For instructions about building MySQL from source using
       wolfSSL, see the extra/README-wolfssl.txt file in a MySQL
       source distribution. The WITH_SSL CMake option now
       permits wolfssl as a valid value, and no longer takes
       bundled as a value. To use -DWITH_SSL=wolfssl, you must
       follow the instructions in README-wolfssl.txt. For more
       information, see OpenSSL Versus wolfSSL
       (http://dev.mysql.com/doc/refman/8.0/en/ssl-libraries.html).
       (Bug #26671671)

     * MySQL now supports FIPS mode, if compiled using OpenSSL,
       and an OpenSSL library and FIPS Object Module are
       available at runtime. FIPS mode imposes conditions on
       cryptographic operations such as restrictions on
       acceptable encryption algorithms or requirements for
       longer key lengths. The ssl_fips_mode system variable
       enables control of FIPS mode on the server side. The
       --ssl-fips-mode client option enables control of FIPS
       mode on the client side for these programs: mysql,
       mysqladmin, mysqlbinlog, mysqlcheck, mysqldump,
       mysqlimport, mysqlpump, mysqlshow, mysqlslap, mysqltest,
       mysqlxtest, mysql_secure_installation, and mysql_upgrade.
       See FIPS Support
       (http://dev.mysql.com/doc/refman/8.0/en/fips-mode.html).

Spatial Data Support


     * Incompatible Change: These geometry collection changes
       have been implemented:

          + The standard GeomCollection name for the geometry
            collection data type is supported as a synonym for
            the GeometryCollection data type name.

          + The GeomCollection() function is supported as a
            synonym for the GeometryCollection() function.

          + GeomCollection and GeomCollection() are the
            preferred data type and function names.
       Incompatibility: As a consequence of the change in
       preferred data type name, some INFORMATION_SCHEMA tables,
       statements such as SHOW CREATE TABLE, and the
       ST_GeometryType() function that display data type
       information now display GEOMCOLLECTION rather than
       GEOMETRYCOLLECTION. Applications that look for
       GEOMETRYCOLLECTION should be adjusted to account for this
       change.
       For more information, see GeometryCollection Class
(http://dev.mysql.com/doc/refman/8.0/en/gis-class-geometrycollection.html),
       and MySQL-Specific Functions That
       Create Geometry Values
(http://dev.mysql.com/doc/refman/8.0/en/gis-mysql-specific-functions.html).

sys Schema Notes


     * sys Schema objects now have a default character set of
       utf8mb4. (Bug #27675959)

Test Suite Notes


     * Reduction of compiler and platform differences in GIS
       handling of floating-point results enables simplification
       of related test cases that no longer need rounding to
       avoid spurious test failures. Thanks to Daniel Black for
       the patch. (Bug #26540102, Bug #87223, Bug #27462294)

X Plugin Notes


     * When using MySQL as a document store, the use of SPATIAL
       indexes on geometry-valued columns using the X DevAPI is
       now fully supported. Previously, a spatial index could be
       created, but the spatial reference system identifier
       (SRID) was not included in the indexed column, so the
       index was not used by the optimizer. The SRID attribute
       is now added to the indexed column. (Bug #27568243)

     * Socket files used with X Plugin tests are now limited to
       22-character file names. (Bug #27460677, Bug #89464)

     * The fix for Bug #26328274 resulted in an assertion in
       debug builds when an empty host name was used for X
       Plugin connections. The issue is now fixed. (Bug
       #27266584, Bug #88925)

     * X Plugin did not populate the password cache when a user
       account with no password set was used with the PLAIN
       authentication method. This caused later authentication
       attempts to fail. The password cache is now correctly
       populated with an entry if the user account's password is
       empty. (Bug #27257722)

     * X Plugin now supports the RESTART SQL statement, which
       was added in MySQL 8.0.4 to enable a MySQL server
       instance to be restarted from within a client session.
       (Bug #27245319)

     * MySQL Shell connections using X Protocol can use either
       TCP or Unix sockets as of version 8.0.4. This fix allows
       the use of encryption protocols with UNIX socket
       connections, so user accounts that require encrypted
       connections are able to connect. (Bug #27192091)

     * The fix for Bug #26647488, which corrected the handling
       of the DATETIME data type, now also correctly decodes
       messages received from older versions of the plugin that
       do not have the new field available to identify the data
       type. (Bug #27169735)

     * X Plugin connection attempts using the X Protocol did not
       return an error when the default database specified in
       the connection options was invalid, and the connection
       was allowed with a null default database. Connection
       attempts using the classic MySQL protocol did return an
       error and disallowed the connection. X Protocol
       connection attempts now also disallow the connection if
       an invalid schema is specified. (Bug #26965020)

     * X Plugin is now loaded by default, meaning there is no
       longer any need to install the plugin.

Functionality Added or Changed


     * NDB Cluster: INFORMATION_SCHEMA tables now are populated
       with tablespace statistics for MySQL Cluster tables. (Bug
       #27167728)

     * InnoDB: The ibd2sdi Serialized Dictionary Information
       (SDI) extraction utility for InnoDB tablespaces now
       supports a --pretty option that controls JSON pretty
       print formatting of SDI data. Pretty print formatting is
       enabled by default. Disabling pretty print formatting
       using --skip-pretty reduces the size of extracted SDI
       data. (Bug #27546514)

     * InnoDB: To improve startup performance on systems with
       large buffer pools, buffer pool initialization is now
       multi-threaded. (Bug #22963374, Bug #80784)

     * InnoDB: The following redo logging optimizations were
       implemented:

          + User threads can now write concurrently to the log
            buffer without synchronizing writes.

          + User threads can now add dirty pages to the flush
            list in a relaxed order.

          + A dedicated log thread is now responsible for
            writing the log buffer to the system buffers,
            flushing system buffers to disk, notifying user
            threads about written and flushed redo, maintaining
            the lag required for the relaxed flush list order,
            and write checkpoints.

          + System variables were added for configuring the use
            of spin delay by user threads waiting for flushed
            redo:
               o innodb_log_wait_for_flush_spin_hwm: Defines the
                 maximum average log flush time beyond which
                 user threads no longer spin while waiting for
                 flushed redo.
               o innodb_log_spin_cpu_abs_lwm: Defines the
                 minimum amount of CPU usage below which user
                 threads no longer spin while waiting for
                 flushed redo.
               o innodb_log_spin_cpu_pct_hwm: Defines the
                 maximum amount of CPU usage above which user
                 threads no longer spin while waiting for
                 flushed redo.

          + The innodb_log_buffer_size configuration option is
            now dynamic, which permits resizing of the log
            buffer while the server is running.
       For more information, see Optimizing InnoDB Redo Logging
(http://dev.mysql.com/doc/refman/8.0/en/optimizing-innodb-logging.html).

     * Solaris: On Solaris, MySQL can now be built with
       Developer Studio 12.6. (Bug #27055190, Bug #88316)

     * Logging during data directory initialization (for
       example, using mysqld --initialize) has changed:

          + The startup message indicates that the server is
            running in initialization mode.

          + A message is written indicating when initialization
            has completed.

          + The message about the CA certificate being
            self-signed is suppressed.
       (Bug #27557952, Bug #89693)

     * The -log suffix is no longer appended to the server
       version string if logging is enabled. This affects, for
       example, the value of the version system variable. (Bug
       #27532097, Bug #89626)

     * Server shutdown lines written to the error log now
       include the server version. (Bug #27522788, Bug #87910)

     * SHOW CREATE TABLE normally does not show the ROW_FORMAT
       table option if the row format is the default format.
       This can cause problems during table import and export
       operations for transportable tablespaces. MySQL now
       supports a show_create_table_verbosity system variable
       that, when enabled, causes SHOW CREATE TABLE to display
       ROW_FORMAT regardless of whether it is the default
       format. (Bug #27516741)

     * Performance Schema memory instrumentation overhead was
       reduced. (Bug #27500610)

     * During data directory initialization, the server created
       objects using sql_mode=''. Now the server uses the
       default sql_mode value (which, among other settings,
       includes strict mode). (Bug #27476029, Bug #89495)

     * The collations defined in mysql-test/std_data/Index.xml
       are for test purposes only and should not be used
       otherwise. Comments were added to the file to make this
       clear because some users were using them in non-test
       environments. (Bug #27421838)

     * RESET PERSIST no longer performs an implicit commit. (Bug
       #27374791)

     * For a persisted variable, the SET_TIME column of the
       Performance Schema variables_info table now reflects the
       time at which the variable was persisted, not server
       startup time. (Bug #25677422)

     * Previously, SHOW CREATE TABLE did not show the collation
       for a column if the collation was the same as the table
       default, even if the collation was explicitly specified
       at table-creation time. Now, SHOW CREATE TABLE always
       shows the column collation if the collation was
       explicitly specified, even if the collation is the same
       as the table default. (Bug #11754608, Bug #46239)


Bugs Fixed


     * Important Change: When NO_ZERO_DATE SQL mode is enabled,
       ALTER TABLE rejects attempts to add DATE or DATETIME
       columns that are declared NOT NULL to a nonempty table if
       no DEFAULT is specified for that column. Since a
       generated column has no default value, this restriction
       also prevented addition of a generated DATE NOT NULL or
       DATETIME NOT NULL column to a nonempty table. Since the
       expression used to generate the column can be used in
       place of the missing default for determining the column
       value, this restriction is now lifted for generated
       columns. (Bug #27252354)

     * Important Change: For ANALYZE TABLE ... UPDATE HISTOGRAM
       statements, the WITH N BUCKETS clause is now optional. If
       not specified, the default value for BUCKETS is 100. (Bug
       #89909, Bug #27637968)

     * InnoDB: The server was stopped before a fatal error
       message was written to the error log. (Bug #27626478)

     * InnoDB: When determining if a wait lock could be granted,
       locks held by victim transactions that were being rolled
       back were ignored. (Bug #27607235)

     * InnoDB: An error occurred in
       Sdi_Decompressor::decompress() when compiling a debug
       build using GCC 7.2.0. (Bug #27565889)

     * InnoDB: An assertion was raised when registering buffer
       pool chunks during parallel creation of multiple buffer
       pools. A mutex is now used to protect registration of
       buffer pool chunks in the buffer pool chunk map. (Bug
       #27565865)

     * InnoDB: Enabling the standard monitor caused an error.
       (Bug #27534041)

     * InnoDB: An internal field used to mark a column as hidden
       was changed from a boolean field to an enum field to
       support additional levels of column visibility. (Bug
       #27499518, Bug #89553)

     * InnoDB: An invalid zlib-related Valgrind failure reported
       that a conditional jump or move depends on uninitialized
       value. (Bug #27482740, Bug #89509)

     * InnoDB: An incorrect GROUP BY result was returned when
       using the TempTable storage engine and a NO PAD
       collation. (Bug #27454796)

     * InnoDB: An incorrect compression length value in a page
       compression function caused hole punching to be skipped
       the first time pages are compressed. (Bug #27399897)

     * InnoDB: Starting the server with an incorrect --log-bin
       option value raised an assertion, and subsequent attempts
       to start the server with a correct --log-bin value or
       without the --log-bin option continued to produce
       assertion failures. (Bug #27393317)

     * InnoDB: A large object (LOB) reference was not updated
       when a LOB was inserted during an UPDATE operation. (Bug
       #27368662)

     * InnoDB: After restarting the server, a TRUNCATE TABLE
       operation raised an assertion due to table flags that
       were inconsistent with remote data directory information
       stored in memory. (Bug #27367639)

     * InnoDB: Attempting to create a temporary table in a
       file-per-table tablespace using CREATE TEMPORARY TABLE
       ... TABLESPACE syntax failed to report an error.
       Temporary tablespaces are only permitted in the temporary
       tablespace. (Bug #27361662)

     * InnoDB: A latch taken on the first page of a large object
       (LOB) was not released before another thread attempted to
       allocate the page, causing a deadlock. (Bug #27360492)

     * InnoDB: Converting an implicit lock to an explicit lock
       was optimized by the introduction of a member variable
       that tracks the smallest active transaction ID.
       Thanks to Zhai Weixiang for the patch. (Bug #27353468,
       Bug #89127)

     * InnoDB: The mysql.innodb_ddl_log and
       mysql.innodb_dynamic_metadata tables, which are used
       internally by the InnoDB storage engine, are now
       protected. DDL and DML operations on these tables are no
       longer permitted, and the tables no longer appear in
       INFORMATION_SCHEMA query results. (Bug #27353455, Bug
       #89129)

     * InnoDB: Upgrading a MySQL 5.7 instance with an
       innodb_page_size setting of 4K caused mysql_upgrade to
       fail with a "Specified key was too long; max key length
       is 768 bytes" error when creating or modifying system
       tables. The error was suppressed to permit the
       mysql_upgrade client to run on an instance with an
       innodb_page_size setting of 4K. (Bug #27338431)

     * InnoDB: The recovery process could not properly determine
       space_id values, causing the server to exit. (Bug
       #27331936)

     * InnoDB: An ALTER TABLE operation that modified the
       nullability of an indexed column raised an assertion.
       InnoDB incorrectly assumed that a new primary key must be
       added instead of created from an existing unique key.
       (Bug #27330454, Bug #89087)
       References: This issue is a regression of: Bug #24397406.

     * InnoDB: After an ALTER TABLE ... IMPORT TABLESPACE
       operation, metadata could not be retrieved correctly from
       the INFORMATION_SCHEMA.INNODB_COLUMNS table. (Bug
       #27322099)

     * InnoDB: An INSERT operation involving a large object
       (LOB) value raised an assertion. After splitting a LOB
       fragment, there was insufficient space for a directory
       entry. (Bug #27320977)

     * InnoDB: On a server using the utf8mb4 character set, an
       INSERT or UPDATE during an ALTER TABLE operation that
       changed the row format of a table that included a virtual
       column caused an index corruption. (Bug #27319084)

     * InnoDB: The data retrieved from
       INFORMATION_SCHEMA.INNODB_COLUMNS was incorrect for
       tables containing a virtual column. (Bug #27316037)

     * InnoDB: The server failed to start after recovery due to
       an invalid keyring file. The keyring file created from
       backup was empty. (Bug #27307740)

     * InnoDB: A deadlock between background threads, one
       attempting to evict a full-text search table from the
       cache, and the other attempting to synchronize a table,
       caused InnoDB Cluster nodes to fail. (Bug #27304661)

     * InnoDB: A typo was corrected in an InnoDB recovery
       message. Thanks to Daniël van Eeden for the patch. (Bug
       #27287979, Bug #27010613, Bug #88185)

     * InnoDB: A message stating that encryption algorithm
       support is missing was reported during InnoDB recovery.
       (Bug #27286020)

     * InnoDB: A missing or mismatched keyring file caused an
       assertion failure at startup. (Bug #27278324)

     * InnoDB: An error was returned indicating that encryption
       support was missing when checking the space ID of an
       encrypted tablespace file. (Bug #27278100)

     * InnoDB: A debug message that prints a "too many open
       files" warning is now only printed if the number of open
       files reaches a limit of 300. (Bug #27277844)

     * InnoDB: Failure to skip predicate locks when releasing
       gaps locks raised debug assertions, as did failure to
       remove the supremum record bit prior releasing gaps locks
       on the supremum. (Bug #27272806, Bug #27294066)

     * InnoDB: A tablespace ID discovery failure occurred when
       starting the server on a cloned data directory. (Bug
       #27265874)

     * InnoDB: An unprotected global variable
       (fil_n_file_opened) caused an assertion when shutting
       down the server. (Bug #27265473)

     * InnoDB: An assertion that is no longer valid was raised
       when checking for pending I/O on the file in use. (Bug
       #27263206)

     * InnoDB: An empty general tablespace caused a failure when
       upgrading to MySQL 8.0. The empty data file was expected
       to have a specific number of pages. (Bug #27261822)

     * InnoDB: A startup failure occurred because a directory
       specified by the --innodb-directories option contained a
       keyring data file. The --innodb-directories option should
       only recognize InnoDB tablespace files. (Bug #27253116)

     * InnoDB: A function that calculates the increase in
       minimum bounding rectangle (MBR) size incorrectly
       returned 0, resulting in R-tree corruption. (Bug
       #27237472)

     * InnoDB: A REPLACE operation on a temporary table raised
       an assertion. (Bug #27225649)

     * InnoDB: An online ALTER TABLE operation on a table
       accompanied by concurrent DML on the same table raised an
       assertion. An end-of-log check was not performed prior to
       accessing the DML log to determine the length of a
       virtual column. (Bug #27158030)

     * InnoDB: When the addition of a virtual index failed, the
       virtual index that was freed was not removed from the
       lists of virtual column indexes. (Bug #27141613)

     * InnoDB: Adding a virtual column and index in the same
       statement caused an error. (Bug #27122803)

     * InnoDB: An undo tablespace truncate operation raised an
       assertion. The check that determines if undo tablespace
       segments are inactive was invalid. (Bug #27114068)

     * InnoDB: When the TempTable storage engine was unable to
       allocate memory using temporary files and mmap, an
       invalid error was reported indicating that the defined
       on-disk storage engine would be used instead. (Bug
       #26990375)

     * InnoDB: A tablespace import operation on a server with a
       default row format of REDUNDANT raised an assertion
       failure. (Bug #26960215)

     * InnoDB: A stored field based on a generated column
       permitted the base column to have a NULL value. (Bug
       #26958695)

     * InnoDB: Evaluation of a subquery in a resolving function
       raised an assertion. (Bug #26909960)

     * InnoDB: Locks related to data dictionary operations
       caused a degradation in CREATE TABLE performance. (Bug
       #26848711, Bug #87827)

     * InnoDB: A LOCK INSTANCE FOR BACKUP operation was able to
       acquire a backup lock without waiting for a concurrent
       DDL operation to finish. (Bug #26831155, Bug #87812)

     * InnoDB: An incorrectly specified innodb_data_file_path or
       innodb_temp_data_file_path value returned a syntax error
       that did not specify the name of the system variable that
       caused the initialization failure. (Bug #26805833)

     * InnoDB: An handler that was opened for a TRUNCATE TABLE
       operation caused the operation to assert. The server now
       closes open handlers before dropping the table.
       The patch for this bug also improves TRUNCATE TABLE error
       messages related to foreign key constraints, and makes it
       possible to truncate a corrupted table. (Bug #26710839)

     * InnoDB: An online DDL operation that rebuilds the table
       raised an assertion when the last insert log record to be
       applied was split across two pages. (Bug #26696448, Bug
       #87532)

     * InnoDB: An assertion was raised when attempting to
       generate a virtual column value dependent on an off-page
       large object value that was not yet stored. (Bug
       #26625652)

     * InnoDB: An R-tree search counted delete-marked records,
       causing it to find more records than present in the
       clustered index. As result, the valid R-tree index was
       marked as corrupted. (Bug #26381207)

     * InnoDB: A RENAME TABLE operation that renamed the schema
       failed to rename full-text search common auxiliary tables
       that were left behind when the full-text search index was
       removed previously, resulting in a assertion failure when
       attempting to drop the old schema. (Bug #26334149)

     * InnoDB: An assertion was raised when a thread attempted
       to read a record containing BLOB data while another
       thread was writing the same data to external pages. (Bug
       #26300119)
       References: This issue is a regression of: Bug #23481444.

     * InnoDB: Column prefixes for externally stored columns
       exceeded the amount of available memory in the online
       log. (Bug #25928471)

     * InnoDB: A problematic lock that was introduced to protect
       writing of dynamic metadata changes to the redo log
       during a checkpoint was removed. A mutex is now used
       instead. The checkpoint LSN was also adjusted to protect
       dynamic metadata changes. (Bug #25834374)

     * InnoDB: InnoDB failed to account for a virtual column
       when using the column offset to search an index for an
       auto-increment column. (Bug #25076416)

     * InnoDB: An invalid debug condition caused a buffer pool
       chunk allocation failure, which resulted in an assertion
       failure when a purge thread attempted to access an
       unallocated chunk. (Bug #23593654)
       References: This issue is a regression of: Bug #21348684.

     * InnoDB: Threads were prevented from entering the InnoDB
       storage engine due to ticket acquisition deadlocks. (Bug
       #23476050)

     * Partitioning: An error returned by the storage engine
       while executing ALTER TABLE EXCHANGE PARTITION was not
       handled correctly by the server. (Bug #27320682)

     * Replication: When MySQL was started with
       --plugin-load='group_replication.so' but Group
       Replication was not started, starting an asynchronous
       slave channel resulted in an unresponsive server. (Bug
       #27584141)

     * Replication: Empty XA transactions that have been rolled
       back should not be recorded in the binary log or added to
       the set of transactions in the gtid_executed system
       variable. However, if rolled-back empty XA transactions
       were executed after an empty XA transaction ending with
       an XA COMMIT ... ONE PHASE statement, they were being
       incorrectly added to the binary log as an XA ROLLBACK
       statement, and also to the gtid_executed system variable.
       The issue is now fixed. (Bug #27435974)

     * Replication: The Group Replication files have been moved
       from the rapid directory to the plugin directory. (Bug
       #27413789)

     * Replication: When the system variable gtid_next was set
       to AUTOMATIC, empty XA transactions that were rolled back
       and not recorded in the binary log, were being
       incorrectly added to the set of transactions in the
       gtid_executed system variable, causing an inconsistency.
       The rolled-back empty XA transactions are no longer
       recorded in gtid_executed. (Bug #27407670)

     * Replication: Group Replication conflict detection uses
       schema and table names as part of the Primary Key
       Equivalent (PKE) in order to detect and disallow
       conflicting transactions. The value of the
       lower_case_table_names system variable changes how schema
       and table names are stored and externalized, which
       depending on the configured value could persist a table
       named T1 as t1. Such a difference in a group could cause
       inconsistencies. Now, members must all have the same
       value for lower_case_table_names. (Bug #27401817)

     * Replication: Using an IP address or hostname in any Group
       Replication related configuration on macOS was failing.
       (Bug #27376511)

     * Replication: Changing the Group Replication required
       settings incorrectly on online secondary members could
       result in an unexpected halt. (Bug #27317478, Bug
       #27157202)

     * Replication: The value of LAST_CONFLICT_FREE_TRANSACTION
       in the replication_group_member_stats Performance Schema
       table was not correctly synchronized across group
       members. (Bug #27317431)

     * Replication: After issuing START GROUP_REPLICATION the
       gtid_mode system variable is locked to prevent any
       modification to its value until the group is online. Any
       attempt to modify gtid_mode during this time is blocked.
       As part of the process of starting Group Replication the
       server needs to set super_read_only=off, which has
       dependencies on locks acquired by SET GTID_MODE. This
       could result in Group Replication hanging and there was
       no possibility to connect to the server to resolve the
       situation. To prevent this situation, when it is not
       possible to acquire the locks needed by SET GTID_MODE the
       operation aborts. (Bug #27312241)

     * Replication: When a member is joining a group there is a
       chance of the request to join being rejected. If the
       rejection resulted in a retry, for example because the
       seed member being contacted was not in the group, then
       there was a possibility of the retry cycle continuing
       infinitely. (Bug #27294009)

     * Replication: In the unlikely event of the group failing
       to start, for example because no seed member could be
       contacted, there is a one minute period where the group
       retries the start process. Attempting to modify a Group
       Replication plugin option during this period could result
       in an unexpected halt. Now, attempting to modify a Group
       Replication plugin option during plugin start or stop
       results in error. (Bug #27275312)

     * Replication: The default binary log expiration period of
       30 days is now set as the default for the
       binlog_expire_logs_seconds system variable, instead of
       the deprecated expire_logs_days system variable.
       binlog_expire_logs_seconds now defaults to a value of
       2592000 (30*24*60*60 seconds), and expire_logs_days now
       defaults to zero.
       In MySQL 8.0.3 and 8.0.4, the effects of
       binlog_expire_logs_seconds and expire_logs_days were
       cumulative. From MySQL 8.0.11, this is no longer the
       case, and the new behavior is as follows:

          + If you specify a non-zero value for both variables,
            only the value of binlog_expire_logs_seconds is used
            to determine the binary log expiration period, and
            the value of expire_logs_days is ignored.

          + If you specify a non-zero value for only one
            variable, that value is used to determine the binary
            log expiration period, and the default for the other
            is not applied.

          + If you specify a value for neither of the variables,
            the default of 30 days from
            binlog_expire_logs_seconds is used as the binary log
            expiration period.
       An error message is issued if you attempt to set one of
       the variables dynamically when the other is already set,
       and a warning message is issued if you specify a non-zero
       value for both variables at startup. A deprecation
       warning is also issued if you set a value for
       expire_logs_days.
       To disable automatic purging of the binary log, specify a
       value of 0 explicitly for binlog_expire_logs_seconds, and
       do not specify a value for expire_logs_days. For
       compatibility with earlier releases, automatic purging is
       also disabled if you specify a value of 0 explicitly for
       expire_logs_days and do not specify a value for
       binlog_expire_logs_seconds. In that case, the default for
       binlog_expire_logs_seconds is not applied. You no longer
       need to set both variables to zero to disable automatic
       purging. (Bug #27252658)

     * Replication: Attempting to uninstall the Group
       Replication plugin on a server configured to start the
       plugin automatically at boot could result in a deadlock.
       Now, the uninstall process checks to ensure that the
       plugin is not in the process of starting and fails
       gracefully if it is. (Bug #27179336)

     * Replication: The DDL statements CREATE DATABASE, ALTER
       DATABASE, and DROP DATABASE are no longer allowed to
       execute in parallel with other statements on a
       multi-threaded slave. These statements require an
       exclusive metadata lock on the schema, causing a
       theoretical possibility of a deadlock when
       slave_preserve_commit_order=1 is set on the replication
       slave. (Bug #27165446)

     * Replication: On a replication slave with binary logging
       disabled, an empty DDL statement (for example, due to a
       replication filter) raised an assertion. With binary
       logging enabled, BEGIN and COMMIT statements would be
       written to the binary log to produce a transaction, but
       these statements were not available with binary logging
       disabled, causing the assertion. MySQL Server now checks
       for the situation where the DDL transaction is empty and
       is not marked as started, and handles it without raising
       the assertion. (Bug #27164661)


[ to be continued ]


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

Reply via email to