MySQL Lists are EOL. Please join:

List:General Discussion« Previous MessageNext Message »
From:Balasubramanian Kandasamy Date:April 19 2018 12:59pm
Subject:MySQL Community Server 8.0.11 has been released (part 2/2)
View as plain text  
[This is part 2 of the announcement]

      * Replication: A new system variable rpl_read_size is
        available to set the minimum amount of data in bytes
that
        is read from the binary log files and relay log
files.
        The default read size is 8KB. If heavy disk I/O
activity
        for these files is impeding performance for the
database,
        increasing the read size might reduce file reads and
I/O
        stalls if the files are not being cached by the
operating
        system.
        Note that a buffer the size of this value is
allocated
        for each thread that reads from the binary log and
relay
        log files, including dump threads on masters and
        coordinator threads on slaves. Setting a large value
        might therefore have an impact on memory consumption
for
        servers.
        Thanks to the Facebook team for the patch. (Bug
        #27147095)

      * Replication: On a server with GTIDs enabled, if RESET
        MASTER was used when a transaction had been flushed
but
        not yet committed, the server GTIDs were left in an
        incorrect state. At this point, the GTID for the
        transaction had been added to the set of owned
GTIDs, but
        not yet to the set of executed GTIDs. The GTID was
        removed from the binary log when the content of the
        uncommitted transaction was cleared by the RESET
MASTER
        statement, but the GTID could not be reused because
it
        was already owned, so the sequence of GTIDs had a
gap.
        With this fix, RESET MASTER acquires a global read
lock
        to ensure that no transactions are in commit stage
during
        its operation, and no new transactions enter into
commit
        stage during its operation. If there are any ongoing
        commits, RESET MASTER waits until they are complete.
The
        global read lock is released when the reset is
finished,
        and then storage engines are notified of the
successful
        reset. If FLUSH TABLES WITH READ LOCK has already
been
        executed for the thread, RESET MASTER does not retry
the
        lock. (Bug #27041759)

      * Replication: Attempts to set a GTID for an unsafe or
        empty XA transaction using a SET @@SESSION.GTID_NEXT
        statement were not being handled correctly. On a
server
        with gtid_mode set to OFF or OFF_PERMISSIVE, and
        enforce_gtid_consistency set to OFF, setting a GTID
for
        an unsafe XA transaction (creating or dropping a
        temporary table) caused an inconsistency in the
server's
        GTID violation counter and raised an assertion.
Testing
        also showed that setting a GTID for an empty XA
        transaction caused an incorrect sequence of events
to be
        written to the binary log. Both these situations are
now
        handled correctly. (Bug #27041402, Bug #88272)

      * Replication: The error message issued for a server stop
        while rotating the binary log did not state the
correct
        cause for the issue. The error message has been
enhanced
        to include the actual error causing the server stop
as
        part of the message. A new error ER_OOM_SAVE_GTIDS
has
        also been added for the situation where an
out-of-memory
        error occurred while saving the set of GTIDs from
the
        last binary log into the mysql.gtid_executed table.
(Bug
        #27040070, Bug #88262)

      * Replication: Group Replication uses transaction write set
        extraction for conflict detection on group members.
A
        performance regression was found in this process
during
        detailed performance analysis, which is handled by
this
        bug fix. Memory allocation has been optimized for
write
        set extraction and memory copy operations have been
        reduced. Also, foreign key write sets are now only
        collected when the current table has foreign keys.
(Bug
        #27016053)

      * Replication: When using group_replication_ip_whitelist,
        it was possible to configure a group so that it
        functioned even though all members could not
establish
        the internal group communication connection to each
        other, resulting in inconsistent behavior. Now,
incoming
        connections are accepted if the IP is in the white
list
        or if the IP belongs to a current member of the XCom
        configuration. This ensures members are always able
to
        create the internal network required for group
        communication. (Bug #26846549, Bug #27406775)

      * Replication: The statements CREATE USER IF EXISTS (or IF
        NOT EXISTS) and ALTER USER IF EXISTS (or IF NOT
EXISTS)
        were written to the binary log even when the query
        resulted in an error. MySQL Server now checks for
errors
        that cause these queries to fail (for example, an
invalid
        plugin was specified), and does not log the
statement in
        that situation. Note that if these statements
succeed but
        have no effect on the master because the condition
is not
        met, the statements are written to the binary log,
as the
        condition might be met on a replication slave (see
Bug
        #25813089, Bug #85733). (Bug #26680035)
        References: See also: Bug #25813089, Bug #85733.

      * Replication: In a multi-primary group, when a member was
        also configured with a asynchronous replication
channel,
        there was a possibility that the asynchronous
channel
        could start before Group Replication started. This
could
        result in the asynchronous channel processing
        transactions before the member became an online
member of
        the group, causing issues when members tried to join
the
        group. The fix ensures that asynchronous channels on
        group members do not start until the member has
become
        online. (Bug #26648393)

      * Replication: Following the introduction of support for
        atomic DDL in MySQL 8.0, a replication slave that
        supports atomic DDL can diverge from a replication
master
        at an earlier MySQL version that does not support
atomic
        DDL. If the DDL statement can only be partly
applied, the
        slave using MySQL 8.0 rolls back the whole DDL
statement,
        but the master using an earlier version might commit
the
        valid parts of the DDL statement. An error message
is now
        logged in the event of an unsuccessful commit for an
        atomic DDL statement on the master and the slave,
and you
        should check that the states of the master and the
slave
        have not diverged before proceeding. (Bug #26133488)

      * Replication: When GTIDs are enabled on a replication
        master and slave, and the slave connects to the
master
        with the MASTER_AUTO_POSITION=1 option set, the
master
        must send the slave all the transactions that the
slave
        has not already received, committed, or both. If any
of
        the transactions that should be sent by the master
have
        been already purged from the master's binary log,
the
        master sends the error
        ER_MASTER_HAS_PURGED_REQUIRED_GTIDS (1789) to the
slave,
        and replication does not start.
        The message provided for the error
        ER_MASTER_HAS_PURGED_REQUIRED_GTIDS has been changed
to
        provide advice on the correct action in this
situation,
        which is for the slave to replicate the missing
        transactions from another source, or for the slave
to be
        replaced by a new slave created from a more recent
        backup. The message advises that the master's binary
log
        expiration period can be revised to avoid the
situation
        in future. In addition, the master now identifies
the
        GTIDs of the purged transactions and supplies them
in its
        error log in the warning message
ER_FOUND_MISSING_GTIDS
        (11809), so that you do not need to calculate the
missing
        GTIDs manually. (Bug #26004541)

      * Replication: For updates to virtual generated columns
        containing the BLOB data type, both the old and the
new
        BLOB values are required by some storage engines for
        replication. This fix extends the same behavior to
JSON
        and GEOMETRY data types, which are based on the BLOB
data
        type and so produce the same issue when the old
value is
        not stored. (Bug #25873029)

      * Replication: A behavior change in MySQL 8.0.0 moved the
        identification of generated columns from before to
after
        the calculation of the write set for binary logging.
This
        caused an issue with NDB cluster replication,
because
        that storage engine omits the generated columns from
the
        log event if they are unnecessary, leading to NULL
values
        being set for them by the applier thread on the
        replication slave. The identification of generated
        columns has now been moved back to before the write
set
        calculation, so that the issue does not occur. (Bug
        #25827408)

      * Replication: On a multi-threaded replication slave (with
        slave_parallel_workers greater than 0), the slave's
lag
        behind the master was not being reported by the
        Seconds_Behind_Master field for SHOW SLAVE STATUS.
The
        value is now reported correctly. Thanks to Robert
        Golebiowski for the patch. (Bug #25407335, Bug
#84415)

      * Replication: A plus sign (+) can be used with a GTID set
        in the statement SET @@GLOBAL.GTID_PURGED to
indicate
        that the specified GTID set does not intersect with
        gtid_executed. The plus sign was also being
permitted for
        GTID sets specified for the functions GTID_SUBSET()
and
        GTID_SUBTRACT(), where it was not meaningful. The
plus
        sign can no longer be specified with these
functions.
        Also, error messages relating to the SET
        @@GLOBAL.GTID_PURGED operation have been improved.
(Bug
        #24675979)

      * Replication: When invoked with the options
        --read-from-remote-server and --hexdump, mysqlbinlog
was
        not able to produce a hex dump of the binary log
contents
        following an SQL statement that generated an
        autoincrement value, referenced a user-defined
variable,
        or invoked RAND(). The event types for these events
are
        followed by an informational row query log event,
and
        mysqlbinlog caches the original event for printing
when
        the subsequent row query log event is received. The
        pointer to the memory containing the original event
was
        invalidated when the subsequent event was received,
so
        the original data could not be accessed to produce
the
        hex dump. The issue has now been fixed. (Bug
#24674276)

      * Replication: A number of changes were made to the binary
        log decoding procedure to improve handling of
invalid or
        corrupted binary log entries. (Bug #24365972)

      * Replication: Following the introduction of binary logging
        for XA transactions WL#6860
        (http://dev.mysql.com/worklog/task/?id=6860), an
        assertion could be raised in debug builds during
        replication from a master with the feature to a
slave
        without the feature, if MASTER_AUTO_POSITION=1 was
set on
        the slave. The assertion has been removed, so that
debug
        builds now have the same behavior as non-debug
builds,
        and can attempt replication of unsupported event
types
        whether or not MASTER_AUTO_POSITION=1 is set. (Bug
        #20677683)

      * Linux: Builds on Alpine Linux now take advantage of AIO
        support. (Bug #27327874)

      * macOS: On macOS, mysql_config --libs did not list any SSL
        libraries. (Bug #27232576)

      * Microsoft Windows: On Windows, the RESTART statement is
        implemented by having mysqld fork, with one process
        acting as a monitor to the other, which acts as the
        server. This makes determining the server process to
        attach to for debugging more difficult. To alleviate
        this, starting the server with --gdb now suppresses
        forking. A side effect is that for a server started
with
        this option, RESTART simply exits and does not
restart.
        (Bug #27273229)

      * JSON: The JSON_QUOTE() function could in some situations
        write the quoted string to the same buffer that
holds the
        input string, which could lead to wrong results. Now
a
        check is made to be sure that it does not attempt
write
        into the same buffer that it is reading from. (Bug
        #27312444)

      * JSON: JSON_SEARCH() no longer performs any modification
        of cached Json_path objects, now making any needed
        updates to a String object that represents the path
        instead. This saves on the number of round trips
required
        between the path's Json_path and String
representations,
        which speeds up execution. In addition, the
one_or_all
        and escape_char arguments to JSON_SEARCH() were
        unnecessarily cached; these arguments are no longer
        cached, which should also improve this function's
        execution time. (Bug #87383, Bug #26614455)
        References: See also: Bug #21450084, Bug #77785, Bug
        #21472872.

      * A check was implemented based on data dictionary version
        information to prevent starting the MySQL 8.0 server
with
        a data directory created by a later MySQL release.
The
        check was necessary to prevent an in-place
downgrade,
        which is currently not supported. (Bug #27708249)

      * Protected data dictionary tables are no longer accessible
        by statements placed in a server initialization
file.
        (Bug #27674311, Bug #90010)

      * Data dictionary and INFORMATION_SCHEMA version numbers
        were synchronized with the new MySQL server version
        number. (Bug #27674285)

      * The server did not handle correctly certain LIKE queries
        using a BLOB column with a prefix index. (Bug
#27660560)

      * For builds configured using -DWITH_PROTOBUF=SYSTEM,
        building failed on systems with ProtoBuf 3.5
installed.
        (Bug #27638713, Bug #89915)

      * The microseconds part of timestamps stored with persisted
        variables in mysqld-auto.cnf was always 000000. (Bug
        #27629719)

      * Debian packages now handle dependencies for MeCab plugin
        dictionary files. Fedora packages now handle
dependencies
        for both MeCab packages, not just the utf-8 package.
(Bug
        #27612730, Bug #27613539)

      * The change in MySQL 8.0.11 for platforms that use systemd
        to run mysqld as a normal process (Type=notify) and
        communicate using a socket file did not work on SLES
        before SLES 12.2. (Bug #27604999)

      * The NON_UNIQUE column in the
        INFORMATION_SCHEMA.STATISTICS table had type BIGINT
prior
        to MySQL 8.0, but became VARCHAR in MySQL 8.0 with
the
        introduction of the data dictionary. The NON_UNIQUE
        column now has an integer type again (INT because
the
        column need not be as large as BIGINT). (Bug
#27593348,
        Bug #89793)

      * With some inputs, ST_Crosses() could cause a server exit.
        (Bug #27576700)

      * Some error messages were being written to the error log
        with an error ID of 0 rather than a legitimate error
ID.
        (Bug #27575608)

      * mysql_upgrade did not set MYSQL_SERVER_PUBLIC_KEY
        correctly, leading to failure to read the key file.
(Bug
        #27568278)

      * If autocommit was disabled, mysql_upgrade produced an
        error when upgrading from MySQL 5.7 to 8.0. (Bug
        #27549249)

      * For debug builds, displaying very long stage names from
        the PROCESSLIST_STATE column of the Performance
Schema
        threads table could raise an assertion. (Bug
#27545688)

      * Group Replication failed to start if certain required
        variables had been set as persisted variables, or if
        persisted variables were not set in proper timestamp
        order. (Bug #27545544, Bug #27522405)

      * gtid_purged handling had a memory leak. (Bug #27537968,
        Bug #89645)

      * Using SET PERSIST to persist optimizer_trace_offset
        resulted in an incorrect variable value after server
        restart. (Bug #27536421)

      * The validate_password component could leak memory. (Bug
        #27521770, Bug #89597)

      * A typo in sql/handler.h was corrected. Thanks to Su
        Tristan for the patch. (Bug #27516280, Bug #89594)

      * The Performance Schema variables_info table displayed
        incorrect VARIABLE_SOURCE and VARIABLE_PATH values
for
        variables set within option files specified by
!include
        or !includedir directives. (Bug #27514223)
        References: This issue is a regression of: Bug
#25563891.

      * After upgrading from MySQL 5.7 to MySQL 8.0, the first
        attempt to start the server on a MySQL 5.7 data
directory
        with --default-time-zone set to a specific time
value
        such as "+00:00" caused the server to exit. (Bug
        #27512609, Bug #89584)

      * Lookups of character set internal numbers was not thread
        safe and could cause memory leaks. (Bug #27507950)

      * Using the -DWITH_LIBEVENT=system and -DWITH_ICU=system
        CMake options together caused configuration to fail.
(Bug
        #27505535, Bug #89398)

      * Some messages were being written to the server error log
        using client error IDs. (Bug #27503787, Bug #89562)

      * When run in key migration mode, the server could report
        an error for successful operations. (Bug #27493997)

      * Upgrades from MariaDB to MySQL Community Edition failed
        on Fedora 27. (Bug #27484835)

      * ALTER TABLE could hang in a Waiting for tablespace
        metadata lock state. (Bug #27472087, Bug #89487)

      * Selecting from the Performance Schema status_by_thread or
        variables_by_thread table was not thread safe and
could
        yield incorrect results. (Bug #27471510)

      * INSERT ... ON DUPLICATE KEY UPDATE could be handled
        improperly if a source table produced no rows. (Bug
        #27460607)

      * SET PERSIST_ONLY ignored --skip-grant-tables and
        continued to perform checking against the dynamic
        privileges needed to set system variables. (Bug
        #27455943)

      * For RPM packages and Docker RPM packages, the included
        my.cnf file now includes information indicating how
to
        revert to the previous default authentication plugin
        (changing caching_sha2_password to
mysql_native_plugin),
        for compatibility with older clients. (Bug
#27454015, Bug
        #27675380)

      * In string comparisons using >, only one operand was
        handled as utf32. (Bug #27452148)

      * A server exit during InnoDB initialization caused
        AddressSanitizer (ASan) to report a memory leak. The
        patch also implements proper handling of the data
        dictionary properties table in cases where the table
        contains data that cannot be parsed. (Bug #27447981,
Bug
        #89433)

      * With -DWITH_SSL=system, if CMake could not find the
        system OpenSSL libraries and header files, it
produced
        confusing messages. Now it exits immediately with an
        error. (Bug #27447874)

      * Configuring with -DWITH_INNODB_EXTRA_DEBUG=ON resulted in
        a linker error. (Bug #27444255, Bug #89412)

      * Configuring with -DWITH_ZLIB=system resulted in a linker
        error. (Bug #27435371, Bug #89373)

      * Metadata from result sets for UNION ALL queries could say
        NEWDATE rather than DATE. (Bug #27422376)

      * In builds with Undefined Behavior Sanitizer enabled,
        negation of -922337203685477580 could cause a server
        exit. (Bug #27419181)

      * With protocol compression enabled, a spurious assertion
        could be raised. (Bug #27418207, Bug #89324)
        References: This issue is a regression of: Bug
#17922198.

      * Performance related to fetching tablespace objects from
        the data dictionary to populate the data dictionary
cache
        was improved. (Bug #27402243)

      * If the server was started with --skip-grant-tables,
        clients that authenticate using the
caching_sha2_password
        plugin were unable to connect. (Bug #27400095, Bug
        #89267)

      * Linux RPM and Debian packages now include dependency
        information for the Perl JSON module required to run
the
        MySQL test suite. Linux RPM packages now include
        dependency information for the Perl Digest module
        required to run the MySQL test suite. (Bug
#27392800, Bug
        #89250, Bug #27392808, Bug #89244)

      * A new system variable, default_collation_for_utf8mb4,
        enables setting the default collation for the
utf8mb4
        character set. This variable is primarily intended
to
        support replication from a MySQL 5.7 or older master
        server to a MySQL 8.0 slave server, or group
replication
        with a MySQL 5.7 primary node and one or more MySQL
8.0
        secondaries. The value of the variable is replicated
to
        the slave so that the slave can correctly process
data
        originating from a master with a different default
        collation for utf8mb4. It may be helpful because the
        default collation for utf8mb4 in MySQL 5.7 is
        utf8mb4_general_ci but utf8mb4_0900_ai_ci in MySQL
8.0.
        The variable value determines the default utf8mb4
        collation for the following statements:

           + SHOW COLLATION and SHOW
CHARACTER SET.

           + CREATE TABLE and ALTER TABLE
having a CHARACTER SET
             utf8mb4 clause without
a COLLATION clause, either
             for the table
character set or for a column
             character set.

           + CREATE DATABASE and ALTER
DATABASE having a
             CHARACTER SET utf8mb4
clause without a COLLATION
             clause.

           + Any statement containing a
string literal of the
             form _utf8mb4'some
text' without a COLLATE clause.
        (Bug #27389878, Bug #27081073)

      * DESCRIBE with a column name option ignored the column
        name. (Bug #27387773, Bug #89224)

      * When run in key migration mode, the server ignored
        invalid options. (Bug #27387331)

      * Path name normalization could fail for very long path
        names. (Bug #27368298)

      * During configuration, CMake assumed that rpcgen was
        available rather than checking for it. (Bug
#27368078)

      * The client authentication process could use memory after
        it had been freed. (Bug #27366143)

      * -DWITH_ZLIB=system could cause other CMake feature tests
        to fail. (Bug #27356658, Bug #89135)

      * On some systems, using mysqld --initialize to initialize
        the data directory was very slow. (Bug #27349579,
Bug
        #89122)

      * Builds using RPM source packages now use a secure
        connection if Boost must be downloaded. (Bug
#27343289,
        Bug #89104)

      * An internal check_datetime_range function that converted
        an ULONGLONG time value raised an assertion on
Windows.
        (Bug #27340709)

      * Too much locking was being done for the
        caching_sha2_password authentication plugin (one
        lock/unlock per connection). This is now improved to
one
        lock/unlock per plugin install/uninstall. (Bug
#27335346)

      * A CREATE TABLE ... LIKE operation that implicitly
        assigned 'innodb_system' as the tablespace name for
table
        partitions raised an assertion. (Bug #27331588)

      * SET PERSIST_ONLY could store large-valued variables
        incorrectly. (Bug #27322254)

      * The audit_log plugin could write statements to the binary
        log even with binary logging disabled. (Bug
#27315321)

      * Certain queries using GREATEST() or LEAST() produced
        heap-use-after-free errors. (Bug #27312703)

      * An external_language column was added to the
        mysql.routines data dictionary table to support
stored
        routines in different languages. The data stored in
this
        column can be accessed through the
EXTERNAL_LANGUAGES
        column of the INFORMATION_SCHEMA.ROUTINES table.
(Bug
        #27309116, Bug #89038)

      * It is now prohibited to start the server with a
        lower_case_table_names setting that is different
from the
        setting used when the server was initialized. The
        restriction is necessary because collations used by
data
        dictionary table fields are based on the setting
defined
        when the server is initialized, and restarting the
server
        with a different setting would introduce
inconsistencies
        with respect to how identifiers are ordered and
compared.
        (Bug #27309094, Bug #89035)

      * For accounts that authenticated using the auth_sock
        authentication plugin, the server was unable to
accept
        connections from clients from older MySQL versions.
(Bug
        #27306178)

      * An audit_log plugin memory leak was corrected. (Bug
        #27302151)

      * The INFORMATION_SCHEMA.FILES table now obtains from
        storage engines the information needed for the
following
        columns: LOGFILE_GROUP_NAME, LOGFILE_GROUP_NUMBER,
        ROW_FORMAT, VERSION. (Bug #27292586)

      * Dropping a user-defined function did not always remove
        its entry from the Performance Schema
        user_defined_functions table. (Bug #27270498)

      * To reduce its size and storage footprint, Serialized
        Dictionary Information (SDI) is now generated in a
        compact JSON format. (Bug #27265584)

      * Concurrent execution of RESET PERSIST and SET PERSIST
        from multiple sessions could cause a server exit.
(Bug
        #27264789)

      * Tablespace statistics could be cached even if the
        statistics-collection process encountered an error.
(Bug
        #27259963)

      * SET PERSIST could fail to find the proper directory into
        which to write the mysqld-auto.cnf file. (Bug
#27253828)

      * ALTER TABLE could not create generated NOT NULL geometry
        columns if the table contained data. (Bug #27252609)

      * The Performance Schema variables_info table displayed
        incorrect VARIABLE_SOURCE values for variables that
were
        set in my.cnf and also persisted to mysqld-auto.cnf.
(Bug
        #27252077)

      * Improper handling of plugin loading and unloading could
        cause a server exit. (Bug #27247280, Bug #27297704)

      * The RESTART statement did not work for Ubuntu packages.
        (Bug #27245918)

      * LDAP authentication plugins were not built on FreeBSD.
        (Bug #27238252)

      * The server did not handle queries correctly when a cached
        value was evaluated as NULL by a windowing function,
or
        when its argument was part of a GROUP BY with a
ROLLUP
        operation which could be evaluated as NULL. (Bug
        #27233287)

      * Windowing functions such as LAST_VALUE() did not work
        correctly with tables containing NOT NULL columns in
all
        cases. (Bug #27230463)

      * Role cache invalidation could be performed incorrectly.
        (Bug #27225806)

      * Incorrect handling of persisted variables at server
        startup could result in a server exit. (Bug
#27224682)

      * For upgrades from MySQL 5.7 to 8.0, the sql_mode value
        for object definitions could contain NOT_USED. (Bug
        #27219709)

      * JSON_TABLE() failed if no default database was selected.
        (Bug #27217897)

      * Adding a unique index to an InnoDB table on which
        multiple locks were held could raise an assertion.
(Bug
        #27216817)

      * CREATE VIEW statements that used JSON_TABLE() in the view
        definition failed if no database was selected. (Bug
        #27189940)

      * Queries on Performance Schema replication tables could
        return incorrect results, particularly when the
execution
        plan used an index. (Bug #27184567)

      * For some statements, the FILE privilege was not properly
        checked. (Bug #27160888)

      * To better enable setting persisted variables at startup
        in the same order they were persisted with SET
PERSIST,
        settings in mysqld-auto.cnf are first sorted based
on
        timestamp (which is now stored in the file). (Bug
        #27157520)

      * Setting the dragnet.log_error_filter_rules system
        variable to a very long value could cause a server
exit.
        (Bug #27120953)

      * For platforms that use systemd (see Managing MySQL Server
        with systemd
       
(http://dev.mysql.com/doc/refman/8.0/en/using-systemd.html)),
        systemd was not always able to infer the state of a
        double-forked mysqld process. Consequently, systemd
would
        attempt to restart mysqld even when that process
        terminated with status 1. systemd is now configured
to
        run mysqld as a normal process (Type=notify rather
than
        Type=forking). If the name of a socket file is
specified
        in the environment variable NOTIFY_SOCKET, mysqld
        attempts to open a connection for communicating with
        systemd and writes its state changes there. (Bug
        #27109556, Bug #88463, Bug #26538598, Bug #87210)

      * ST_IsValid() returned incorrect results for some
        geographic polygons on non-WGS 84 ellipsoids. (Bug
        #27074700)

      * A multiple-insert statement on a table containing a
        FULLTEXT key and a FTS_DOC_ID column caused a server
        error. (Bug #27041445, Bug #88267)
        References: This issue is a regression of: Bug
#22679185.

      * In strict SQL mode, assignment of invalid values to
        AUTO_INCREMENT columns could be handled incorrectly,
        resulting in an assertion being raised. (Bug
#27041393,
        Bug #88273)

      * Thread stack exhaustion could raise an assertion rather
        than returning an error. (Bug #27041350, Bug #88277)

      * SET PERSIST_ONLY did not properly consider whether the
        runtime validation function for persisted variables
        should be invoked. (Bug #27016247)

      * The audit_log plugin could mishandle aborts of event
        executions, causing a server exit. (Bug #27008133)

      * Some boundary cases for negation of large signed integers
        were corrected. (Bug #27004880, Bug #27008075)

      * An ALTER TABLE operation attempted to set the
        AUTO_INCREMENT value for table in a discarded
tablespace.
        (Bug #26935001)

      * MyISAM index corruption could occur for bulk-insert and
        table-repair operations that involve the
        repair-by-sorting algorithm and many (more than 450
        million) rows. (Bug #26929724)

      * The Performance Schema could produce DIGEST_TEXT values
        with a trailing space. This no longer occurs. (Bug
        #26908015)

      * Dropping an index from a system table could cause a
        server exit. (Bug #26881798)

      * A prepared statement using CREATE TABLE ... SELECT led to
        unexpected behavior when it referred in a GROUP BY
to a
        view having the same name. (Bug #26881703)

      * With auto-commit disabled and an XA transaction in
        PREPARED state, attempts to execute XA COMMIT or XA
        ROLLBACK failed. (Bug #26848877, Bug #87836)

      * Some diagnostic messages produced by LDAP authentication
        plugins misleadingly suggested an error when no
error had
        occurred. (Bug #26844713)

      * Initialization code for mysql_upgrade and mysqlpump was
        reorganized to avoid assertion failures. (Bug
#26802211)

      * Full-text searches could raise an assertion due to
        improper handling of errors that occurred while
        attempting to acquire metadata locks. (Bug
#26799898)

      * A keyring file created by the keyring_file plugin on a
        32-bit server was inaccessible by the keyring_file
on a
        64-bit server, and vice versa. (Bug #26793060)

      * Metadata locks for column statistics were not displayed
        properly in the Performance Schema metadata_locks
and
        events_waits_xxx tables. (Bug #26772858, Bug #87708)

      * The my_snprintf plugin service was removed and
        reimplemented using C++11 snprintf. (Bug #26696147,
Bug
        #87547)

      * After an in-place upgrade from MySQL 5.7 to MySQL 8.0 on
        a server with a large number of tables, server
startup
        failed to complete due to excessive memory
consumption
        during data dictionary creation. (Bug #26486160)

      * An error occurring in a statement that modifies user
        privileges could result in deadlock for other
        transactions attempting to access the user privilege
        cache. (Bug #26475282)

      * The thread pool plugin logged too much information for
        failed connections. (Bug #26368725, Bug #86863)

      * Enabling multiple components concurrently could result in
        a server exit. (Bug #26171471, Bug #86514)

      * A malformed mysqld-auto.cnf file could cause a server
        exit. (Bug #26085774)

      * Creating a table in a reserved tablespace did not return
        an error. (Bug #26073851, Bug #86309)

      * For debug builds, using KILL to terminate a stored
        routine could raise an assertion. Thanks to Laurynas
        Biveinis for the patch. (Bug #26040870, Bug #86260)

      * If the init_connect system variable was set, its contents
        could not be executed by clients with expired
passwords,
        who therefore were prevented from connecting. Now,
if a
        client has an expired password, init_connect
execution is
        skipped, which enables the client to connect and
change
        password. (Bug #25968185)

      * Dates using the YYYYMMDD format were not recognized
        correctly in a query meeting all three of the
following
        conditions:
        The query performed a left join.
        A DATE column in the inner table of the join was
part of
        a multi-column primary key.
        Every column in the inner table's primary key was
        compared with another value; this could be either a
        literal or a column value. (Bug #25949639)

      * An in-place ALTER TABLE operation on a table with foreign
        keys resulted in a table definition mismatch. The
new
        table definition passed to storage engine methods
during
        the ALTER TABLE execution contained invalid foreign
key
        names. (Bug #25915132, Bug #85997)

      * It was possible to assign nonexistent roles to an account
        as its default roles. (Bug #25755666, Bug #85561)

      * Using the C API, when trying to execute an INSERT
        prepared statement with CURSOR_TYPE_READ_ONLY set,
the
        client hung. (Bug #25701141, Bug #85105)

      * RENAME USER failed even though the user or role to be
        renamed was not present in any role graph. (Bug
        #25658586)

      * MySQL client programs could exit unexpectedly if
        malformed client/server protocol packets were
received.
        (Bug #25471090)

      * Memory statistics collected by the Performance Schema
        could be incorrect due to race conditions. (Bug
        #25212799)

      * Incorrect handling by the CONNECTION_CONTROL plugin of an
        internal hash led to spurious messages in the error
log
        and eventual server exit. (Bug #25052009)

      * CURRENT_ROLE() and ROLES_GRAPHML() now return a string
        with the utf8 character set. Previously, they
incorrectly
        returned a binary string. (Bug #24843257)

      * Killing INSTALL COMPONENT or UNINSTALL COMPONENT could
        result in multiple rows for a single component in
the
        mysql.component system table. (Bug #24660436)

      * Performing SHOW PROCESSLIST while running a high load
        concurrently using the X Plugin could lead to an
        unplanned server exit. (Bug #24621170)
        References: See also: Bug #23057045.

      * The regular expression implementation in MySQL uses a
        String object---intended to be initialized as
empty---to
        hold the current subject, and used the literal ""
for
        this value. This could interfere with other
functions
        that do likewise. This is fixed by constructing the
        String with a nullptr instead. (Bug #23276471)

      * mysqlpump could leak memory or exit when errors occurred.
        (Bug #23102944)

      * LDML 2.8 collation definitions could cause unexpected
        server behavior. (Bug #22819030)

      * Log-opening operations accessed log-name system variables
        without holding a lock on them. Multiple threads
        accessing such a variable could lead to a race
condition
        and unexpected server behavior. (Bug #22591899)

      * When the range optimizer computed the prefix for a string
        of sufficient length, it was possible for it to
truncate
        the string in the middle of a character, which could
lead
        to assertion and other failures in debug builds. Now
        steps are taken in such cases to make sure that the
        string is truncated at a character boundary. (Bug
        #22475473, Bug #13712655)

      * Queries having subqueries or expressions in the GROUP BY
        clause could in some situations return random
results,
        due to reading of uninitialized data. (Bug
#20035304)
        References: See also: Bug #21922202.

      * The audit_log plugin did not log placeholder values for
        prepared statements. (Bug #16617026)

      * Integer columns in UNION statements could be cast to
        BIGINT even if a smaller integer type was more
        appropriate. (Bug #11747567, Bug #33004)

      * Added ER_REGEXP_INVALID_CAPTURE_GROUP_NAME (Error 13110).
        (Bug #89796, Bug #27597980)

      * Window function row-buffer handling has been refactored
        to reduce the number of handler reads by 25%. (Bug
        #89512, Bug #27484133)

      * For some frames, the functions VARIANCE(), VAR_POP(), and
        VAR_SAMP() produced wrong results when evaluated
with the
        windowing_use_high_precision system variable set to
        false. (Bug #89390, Bug #27438725)

      * Generated columns with a prefix index were not considered
        when the optimizer attempted to substitute an
expression
        with an equivalent generated column. This prevented
use
        of prefix indexes to speed up queries with
predicates
        employing a generated column expression. (Bug
#89291, Bug
        #27403367)

      * FIRST_VALUE() did not always return NULL for an empty
        frame. (Bug #89116, Bug #27348276)

      * Regular expression functions accepting optional arguments
        did not return NULL as expected when one or more of
these
        arguments was passed as an explicit NULL. (Bug
#88872,
        Bug #27252630)

      * Row-based replication used the wrong set of indexes on
        the slave. (Bug #88847, Bug #27244826)

      * When executed with no default database having been
        chosen, EXPLAIN EXTENDED raised Error 1046 No
database
        selected instead of the SQL syntax error expected
due to
        the fact that the EXTENDED keyword has been removed.
(Bug
        #88591, Bug #27153116)

      * The CMake option OPTIMIZER_TRACE=0 had no effect on
        builds and so is no longer used. (Bug #88520, Bug
        #27130109)

      * A SELECT statement using GROUP BY with no constant or
        aggregate column failed a check for functional
        dependencies, correctly, on the first attempt but
        succeeded, wrongly, on the next. (Bug #88474, Bug
        #27427677)
        References: See also: Bug #21807579.

      * A CREATE TABLE ... SELECT statement with a UNION in the
        SELECT failed in strict mode for a DATE column
declared
        as NOT NULL. (Bug #87711, Bug #27068222)

      * Prepared statements using nested sub-selects were not
        always handled correctly. (Bug #87484, Bug
#26657904)

      * The cost estimates for a query containing window
        functions did not take into account the cost of
PARTITION
        BY or ORDER BY, nor did they include the cost of
using
        the frame buffer. (Bug #87373, Bug #26612356)
        References: See also: Bug #26502118.

      * When processing a query with a subquery, the subquery is
        no longer optimized if outer query is known to
produce an
        empty result; in such cases, EXPLAIN now shows Not
        optimized, outer query is empty.
        This change is made because, when the table used by
the
        outer query is found empty at optimization, this
sets the
        join column to NULL even when defined as not
nullable,
        which leads to a conflict when optimizing the
subquery.
        An exception is made if the outer query has
aggregates
        without any GROUP BY; this means that it has a
non-empty
        result, and that any subquery in the SELECT list
must be
        evaluated and optimized, which reopens the
nullability
        issue, which is now handled correctly for such
cases.
        (Bug #83115, Bug #24713879)
        References: See also: Bug #83216, Bug #24760317.

      * When selecting from all columns making up a unique key
        containing nullable columns, with all columns in the
        WHERE condition set to non-null values, MySQL did
not
        take into account their uniqueness, with the result
that
        only_full_group_by missed detecting a functionally
        dependent column. (Bug #79291, Bug #22279903)

      * When using a partial index, the optimizer performed a
        more expensive table lookup instead of using the
index,
        even when the partial index covered the entire set
of
        data needed. (Bug #74359, Bug #19806106)

On Behalf of Oracle/MySQL Release Engineering Team
Balasubramanian Kandasamy

Thread
MySQL Community Server 8.0.11 has been released (part 2/2)Balasubramanian Kandasamy19 Apr