MySQL Community Server 8.0.11 has been released (part 1/2)

Balasubramanian Kandasamy <[email protected]> Thu, 19 Apr 2018 18:28:23 +0530
Newsgroups gmane.comp.db.mysql.general,gmane.comp.db.mysql.packagers
Message-ID <[email protected]>
[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