MySQL Community Server 8.0.2-dmr has been released (part 2/2)

Lars Tangvald <[email protected]> Tue, 18 Jul 2017 08:38:15 +0200
Newsgroups gmane.comp.db.mysql.general,gmane.comp.db.mysql.packagers
Message-ID <[email protected]>
[ This is part 2 of the announcement ]


    Logging Notes

      * These error-logging changes have been made:

           + The server is now more forgiving if it cannot find
             the configured error-message file (specified using
             the lc_messages_dir and lc_messages system
             variable). Previously, the server aborted the
             startup process and exited. Now the server writes a
             message to the error log and defaults to built-in
             English messages. This applies to messages the
             server writes to the error log and sends to clients.

           + Error logging is being rewritten to use the MySQL
             component architecture. Traditional error logging
             now is implemented using built-in components, and
             logging using the system log is a loadable
             component. In addition, a new JSON log writer is
             available. The log components to use are controlled
             by the new log_error_services system variable. For
             more information, see The Error Log
             (http://dev.mysql.com/doc/refman/8.0/en/error-log.html).

    Bugs Fixed

      * Incompatible Change: Plugins such as Group Replication
        and X Plugin now use the mysql.session account added in
        this version. If you are upgrading from a previous
        version which did not include the mysql.session account
        you must run mysql_upgrade to ensure the account is
        created. If mysql_upgrade is not run, plugins fail to
        start with the error message There was an error when
        trying to access the server with user:
        mysql.session@localhost. Make sure the user is present in
        the server and that mysql_upgrade was ran after a server
        update. (Bug #26042764)
        References: See also: Bug #24311527, Bug #25642343.

      * InnoDB: Queries run on INFORMATION_SCHEMA.TABLES
        performed more slowly with information_schema_stats set
        to latest. (Bug #26197113)

      * InnoDB: An ALTER TABLE ... ADD PARTITION operation that
        specified a DATA DIRECTORY clause failed to ignore the
        TABLESPACE attribute of the table. (Bug #26113652)

      * InnoDB: When foreign_key_checks is disabled, a child
        table with a foreign key constraint can be created before
        the parent table, which can result in a foreign key
        constraint failure, as the parent table is unaware of the
        constraint. When a table is created, there is now a call
        to load foreign key constraints for the table and check
        for child tables. (Bug #25976199)

      * InnoDB: A parsing error occurred while optimizing a table
        with a full-text index. (Bug #25914332)

      * InnoDB: Compiling MySQL on Windows with Microsoft Visual
        C++ 2015 or macOS 10.12.4 with GCC 4.2.1 or Apple LLVM
        version 8.0.0 (clang-800.0.38) returned warnings. (Bug
        #25910531)

      * InnoDB: In debug builds, an assertion was raised during
        bootstrap when the system tablespace file (ibdata1) ran
        out of space during creation of doublewrite pages. (Bug
        #25872368)

      * InnoDB: Incorrect locking order caused a deadlock when
        InnoDB attempted to persist an auto-increment counter
        value to disk. (Bug #25833228)

      * InnoDB: Internal methods for accessing dictionary table
        object data did not account for virtual columns. (Bug
        #25822154)
        References: This issue is a regression of: Bug #23748128.

      * InnoDB: The length of a virtual column field in a virtual
        index record was less than the expected template column
        length. (Bug #25793677)

      * InnoDB: In debug builds, shutting down the server with
        --innodb-fast-shutdown=0 raised an assertion. (Bug
        #25756224)

      * InnoDB: The ibd2sdi utility exited when run on an
        unsupported file type. (Bug #25738491)

      * InnoDB: InnoDB did not set the compression algorithm when
        opening a partitioned table. (Bug #25685868)

      * InnoDB: An in-place ALTER TABLE operation failed to set
        the encryption type, causing a FLUSH TABLES ... FOR
        EXPORT operation to assert. (Bug #25672779)

      * InnoDB: A latch that was held while registering a file
        close caused a hang condition. (Bug #25658467)

      * InnoDB: During recovery, prepared transactions were
        rolled back if the innodb_force_recovery setting was
        greater than 0. (Bug #25651042)

      * InnoDB: A CREATE TABLE operation that defined a unique
        key with an eight character prefix on a NOT NULL TEXT
        field would raise an assertion if a primary key was not
        defined. (Bug #25647413)

      * InnoDB: Updates to data dictionary tables combined with
        updates to InnoDB system tables for full-text search
        auxiliary tables raised a lock-related assertion. (Bug
        #25610353)

      * InnoDB: The server allocated memory unnecessarily for an
        operation that rebuilt the table. (Bug #25573565, Bug
        #85043)

      * InnoDB: Test related code intended to simulate a random
        read on a non-existent page raised an invalid assertion.
        (Bug #25479538)
        References: This issue is a regression of: Bug #25053705.

      * InnoDB: With foreign_key_checks disabled, InnoDB
        incorrectly printed messages to the error log when
        operations were performed on a table that referenced a
        non-existent foreign key. (Bug #25365223)

      * InnoDB: A DROP TABLE or TRUNCATE TABLE operation could
        raise an assertion following a failed online ALTER TABLE
        .. ADD INDEX operation. The index root page was dropped
        prematurely. (Bug #25357789)

      * InnoDB: During a TRUNCATE TABLE operation on a
        file-per-table tablespace, a dictionary operation lock
        was released before eviction of dirty pages from the
        buffer pool, causing a latch order violation. (Bug
        #25357789)

      * InnoDB: When using an index merge optimizer switch, a
        SELECT COUNT(*) operation sometimes returned 0.
        Partitioning code incorrectly performed a memcpy instead
        of a column copy of columns read by the index, causing
        the wrong records to be copied. (Bug #25332330, Bug
        #81031)

      * InnoDB: After a RENAME TABLE operation that moved a table
        to a different schema, InnoDB returned an error on
        restart indicating that it could not locate the
        tablespace data file. InnoDB failed to update
        INNODB_SYS_DATAFILES data dictionary table during the
        RENAME TABLE operation. (Bug #25189192, Bug #84038)

      * InnoDB: During an ALTER TABLE operation that rebuilt a
        table containing a virtual column, InnoDB failed to apply
        a concurrent insert log record. (Bug #24961167)

      * InnoDB: InnoDB failed to apply the concurrent delete log
        for an in-place ALTER TABLE operation due to a virtual
        column validation issue. (Bug #24960450)

      * Partitioning: Following execution of an ALTER TABLE ...
        OPTIMIZE PARTITION statement, names of tablespaces used
        by the table were not preserved, and subsequent accesses
        to the table eventually caused the server to fail. (Bug
        #25512556)

      * Replication: When replicating a partitioned table with an
        index, on a replication slave where HASH_SCAN was
        specified as part of the slave_rows_search_algorithms
        setting, the slave I/O thread sometimes stopped with an
        error HA_ERR_KEY_NOT_FOUND. (Bug #26137159)

      * Replication: A USE statement that followed a SET
        GTID_NEXT statement sometimes had no effect. (Bug
        #26128931)

      * Replication: A misleading warning was issued when the
        command FLUSH LOGS or PURGE LOGS BEFORE was used on a
        binary log file with an expiry time set, and the binary
        log file was in use. The warning related to the file
        being in use, and implied that a purge attempt had taken
        place, even if the expiry time had not yet been reached.
        Now, MySQL checks the expiry time of the binary log file
        first, and only then checks whether the file is in use.
        So the warning is only issued for an in-use binary log
        file that is old enough to be purged. (Bug #25973525)

      * Replication: When binlog_checksum=NONE was set on a MySQL
        server after startup, and then Group Replication was
        started, if an error occurred, the server remained in
        RECOVERING state and could not be shut down. (Bug
        #25793366)

      * Replication: The following Performance Schema replication
        tables now continue to be populated when the Performance
        Schema is disabled:

           + replication_connection_configuration

           + replication_connection_status

           + replication_applier_configuration

           + replication_applier_status

           + replication_applier_status_by_coordinator

           + replication_applier_status_by_worker
        The exception is local timing information (start and end
        timestamps for transactions) in the replication tables
        replication_connection_status,
        replication_applier_status_by_coordinator, and
        replication_applier_status_by_worker. This information is
        not collected when the Performance Schema is disabled.
        (Bug #25694813)

      * Replication: In a Group Replication setup where circular
        asynchronous replication was implemented between members
        of different replication groups, view change log events
        were repeatedly replicated between the groups with new
        generated GTIDs each time. The fix ensures that view
        change log events are ignored outside the named
        replication group where they occur, and never generate
        new GTIDs. (Bug #25674926)
        References: See also: Bug #26049695, Bug #25928854, Bug
        #25721175.

      * Replication: When first starting the MySQL server
        following an installation from RPM, passwword validation
        plugin is activated by default (true only for RPM
        installations). If binary logging was already enabled at
        this time, the activation was logged, even though plugin
        activations should not be recorded in the binary log.
        (Bug #25672750)

      * Replication: The XA START, XA END, XA COMMIT, and XA
        ROLLBACK statements, used to perform XA transactions,
        were incrementing the counter for a replicate-do-db
        filter that named the relevant database. The counter is
        no longer incremented for these statements. (Bug
        #25669344)

      * Replication: In a setup where single-primary Group
        Replication was combined with asynchronous replication,
        for example with S1 and S2 forming a group and with S2
        and S3 functioning as master and slave, secondaries such
        as S2 were accepting transactions and these could then
        enter the group. The fix prevents secondaries creating an
        asynchronous replication channel when belonging to a
        single-primary group, and Group Replication cannot be
        started when asynchronous replication is running. (Bug
        #25574200)
        References: See also: Bug #26078602.

      * Replication: Group Replication failed to start if the
        super_read_only system variable was enabled. (Bug
        #25481287, Bug #84733)

      * Replication: MySQL 8.0 servers were not able to join a
        replication group that contained MySQL 5.7 servers, and
        MySQL 5.7 servers in a replication group could not be
        upgraded to MySQL 8.0. (Bug #25477979)

      * Replication: In the event that a member failed to join a
        group the member was not stopping and continued to accept
        transactions. To avoid this set your members to have
        super_read_only=1 in the my.cfg file. Group Replication
        now checks for this setting upon successful start up and
        sets super_read_only=0. This ensures that members which
        do not successfully join a group cannot accept
        transactions. (Bug #25474736, Bug #84728)

      * Replication: When mysqlbinlog output from a MySQL 5.7
        server was applied on a MySQL 8.0 server, the MySQL 8.0
        server generated its own timestamp for the
        original_commit_timestamp. The fix ensures that the value
        of original_commit_timestamp is correctly set to 0,
        meaning that the timestamp is not known. (Bug #25316086)

      * Replication: When an existing GTID_NEXT transaction was
        assigned a conflicting GTID by the server, Group
        Replication generated an assert upon detecting two
        transactions with same GTID. This was because Group
        Replication generates the GTID after conflict detection,
        which is later than with master/slave replication. The
        fix relaxes some conditions to only be called when commit
        is done and a message has been added to alert you when a
        GTID has already been used. (Bug #25232042)

      * Replication: If the server was started with the --log-bin
        option, discovery of one Performance Schema table with
        invalid structure caused all subsequently checked
        Performance Schema tables to be marked invalid as well.
        (Bug #25041396)

      * Replication: Interleaved XA transactions could sometimes
        deadlock the slave applier when the transaction isolation
        level was set to REPEATABLE-READ. (Bug #25040331)

      * Replication: The slave_skip_errors system variable did
        not permit error numbers larger than 3000. Thanks to
        Tsubasa Tanaka for the patch. (Bug #24748639, Bug #83184)

      * Replication: The SQL state of
        ER_TRANSACTION_ROLLBACK_DURING_COMMIT was HY00, which is
        generic and not suitable for rollback. The SQL state has
        been modified to 40000. (Bug #24658431)

      * Replication: mysqlbinlog, if invoked with the --raw
        option, does not flush the output file until the process
        terminates. But if also invoked with the --stop-never
        option, the process never terminates, thus nothing is
        ever written to the output file. Now the output is
        flushed after each event. (Bug #24609402)

      * Replication: A memory leak in mysqlbinlog was fixed. The
        leak happened when processing fake rotate events, or when
        using --raw and the destination log file could not be
        created. The leak only occurred when processing events
        from a remote server. Thanks to Laurynas Biveinis for his
        contribution to fixing this bug. (Bug #24323288, Bug
        #82283)

      * Replication: Loading and initialization of the Group
        Replication plugin failed if no root account was present.
        (Bug #24311527)

      * Replication: A slave server could lose events not yet
        applied when MASTER_AUTO_POSITION=0, both replication
        threads were stopped, and the applier delay was changed
        using CHANGE MASTER TO MASTER_DELAY=N. (Bug #23203678,
        Bug #81232)

      * Replication: Transmission of large GCS messages could
        take so long the sender appeared to have died. (Bug
        #22671846)

      * Replication: Multi-threaded slaves could not be
        configured with small queue sizes using
        slave_pending_jobs_size_max if they ever needed to
        process transactions larger than that size. Any packet
        larger than slave_pending_jobs_size_max was rejected with
        the error ER_MTS_EVENT_BIGGER_PENDING_JOBS_SIZE_MAX, even
        if the packet was smaller than the limit set by
        slave_max_allowed_packet.
        With this fix, slave_pending_jobs_size_max becomes a soft
        limit rather than a hard limit. If the size of a packet
        exceeds slave_pending_jobs_size_max but is less than
        slave_max_allowed_packet, the transaction is held until
        all the slave workers have empty queues, and then
        processed. All subsequent transactions are held until the
        large transaction has been completed. The queue size for
        slave workers can therefore be limited while still
        allowing occasional larger transactions. (Bug #21280753,
        Bug #77406)

      * Replication: An incident event that broke replication was
        not written to the binary log with a GTID, so that it was
        not possible to skip the event using SET gtid_next=value.
        Instead, it was necessary to set the relay log file and
        relay log positions directly; this meant that, when
        autopositioning was enabled, it was necessary first to
        disable it, then to set the relay log file and position,
        and finally to re-enable autopositioning.
        Now in such cases MySQL writes the incident event into
        the statement cache, so that a GTID is generated and
        written for it prior to flushing, and that the slave
        applier works with the change. Then users can skip the
        event using the SQL statement SET gtid_next=value,
        followed by BEGIN and COMMIT. (Bug #19594845)

      * Replication: Issuing SHOW SLAVE STATUS FOR CHANNEL
        'group_replication_recovery' following a restart of a
        server using group replication led to an unplanned
        shutdown. (Bug #85739, Bug #25813258)

      * Replication: Setting an empty filter rule using CHANGE
        REPLICATION FILTER caused issues when running tests with
        UBSan. (Bug #85405, Bug #25702297)

      * Replication: When the receiver thread held a lock on the
        relay log while queuing an event, clients executing SHOW
        SLAVE STATUS or SHOW RELAYLOG EVENTS were blocked. (Bug
        #85084, Bug #25584734)

      * Replication: Indexes for the Performance Schema
        replication_applier_status_by_worker table worked
        correctly only for single threaded replication. This was
        due to the fact that the indexing relied exclusively on
        the SQL thread ID regardless of the existence of any
        workers. Now in such cases, the index also considers
        worker thread ID when multithreading is enabled on the
        slave. (Bug #84646, Bug #25444610)

      * Replication: In certain cases, the master could write to
        the binary log a last_committed value which was smaller
        than it should have been. This could cause the slave to
        execute in parallel transactions which should not have
        been, leading to inconsistencies or other errors. (Bug
        #84471, Bug #25379659)

      * Replication: When using
        group_replication_ip_whitelist=AUTOMATIC, IPs in the
        private network are permitted automatically, but some
        class C IP addresses were not being permitted correctly.
        (Bug #84329, Bug #25503458)

      * Replication: The replication applier thread returns Error
        3002 ER_INCONSISTENT_ERROR when there is a difference
        between an expected error number and the actual error
        number. It is now possible to ignore this error by using
        3002 with slave_skip_errors. (Bug #83186, Bug #24753281)

      * Replication: MySQL lost its GTID position following a
        restart when a dump from mysqldump had been used to load
        data.
        To keep this problem from occurring, the
        mysql.gtid_executed table is now excluded automatically
        from dumps made by mysqldump. (Bug #82848, Bug #24590891)

      * Replication: It was possible to set binlog_format without
        causing an error when there were open temporary tables.
        (Bug #82467, Bug #24411680)

      * Replication: Corruption of relay logs for one channel in
        multi-source replication caused good channels not to be
        initalized during a server restart. In addition, when run
        with --skip-slave-start=false, the server also failed to
        start slave threads for those channels which were in good
        condition, despite the fact that it should have started
        the slave threads for all good channels.
        Now, regardless of any errors on other channels, the
        server attempts to create and initialize channels that
        are in good condition, and starts slave threads for the
        good channels if --skip-slave-start is disabled. As part
        of this fix, START SLAVE and STOP SLAVE, which are
        intended to operate on all channels, are also modified
        such that they continue executing on all good channels
        even if they find bad channels among them. (Bug #82209,
        Bug #24285104)

      * Replication: The SQL thread was unable to GTID skip a
        partial transaction. (Bug #81119, Bug #25800025)

      * Replication: It was possible for FLUSH LOGS to write a
        Rotate_log_event into an uninitialized log file. (Bug
        #80368, Bug #22732184)
        References: See also: Bug #23531998, Bug #81734.

      * Microsoft Windows: On Windows, the Docs/INFO_SRC file was
        missing the build-date entry. (Bug #25799855)

      * JSON: NULLIF() failed with an assertion error in debug
        builds if the result from this function was used in a
        JSON context. This result can now be used safely as a
        JSON value.
        This fix includes using DBUG_ASSERT() for handling this
        error instead of DBUG_ABORT(), which caused debugging
        problems on some platforms. (Bug #25818544)
        References: See also: Bug #21383497, Bug #21383530.

      * JSON: The internal Json_array now uses a std::vector
        instead of a Prealloced_array to store its elements,
        which reduces the amount of heap space required by them.
        (Bug #85877, Bug #25867454)

      * The mysqld_pre_systemd script in RPM packages found the
        error log setting in option files if specified as
        log-error but not as log_error, though both are
        permitted. (Bug #26148391, Bug #86466)

      * ALTER TABLE ... ADD PARTITION statements could cause a
        server exit. (Bug #26132947)

      * SET PERSIST did not work for X Plugin system variables.
        (Bug #26115672)

      * REFERENCES privilege checking could use the incorrect
        database in some cases. (Bug #26106655)

      * With the gtid_mode system variable not set in a .cnf
        option file or on the command-line, the server failed to
        restart after using SET PERSIST or SET GLOBAL to set
        gtid_mode to ON_PERMISSIVE. (Bug #26085712)

      * During prepared statement execution, too many bytes of a
        buffer could be read. (Bug #26042934, Bug #85937)

      * Dynamic privileges were not loaded when the server was
        started using the --initialize option. (Bug #26005645)

      * Debian client packages were missing information about
        conflicts with akonadi-backend-mysql packages. (Bug
        #26002288)

      * mysqldump could write database names in USE statements
        incorrectly. (Bug #25998635)

      * If the mysql_stmt_close() C API function was called, it
        freed memory that later could be accessed if
        mysql_stmt_error(), mysql_stmt_errno(), or
        mysql_stmt_sqlstate() was called. To obtain error
        information after a call to mysql_stmt_close(), call
        mysql_error(), mysql_errno(), or mysql_sqlstate()
        instead. (Bug #25988681)

      * Upgrading from MySQL 5.7 to MySQL 8.0 failed during data
        dictionary creation due to table names that exceeded the
        64 character length limit. (Bug #25973237, Bug #86120)

      * Queries could be cached incorrectly, leading to incorrect
        query results, under these circumstances: InnoDB table;
        rows are being inserted but have not yet been committed;
        a query uses the table as a base table in a derived
        table; the optimizer chooses to materialize the derived
        table. (Bug #25943038, Bug #86047)

      * mysqld misbehaved if compiled with AddressSanitizer
        enabled and invoked with --basedir= (that is, with an
        empty option value). (Bug #25914296, Bug #85994)

      * The ST_LatFromGeohash(), ST_LongFromGeohash(), and
        ST_PointFromGeohash() functions did not allow data that
        originated from a CHAR column. (Bug #25912557, Bug
        #85981)

      * Attempting to drop a data file from a tablespace with
        multiple data files returned a duplicate file name error.
        (Bug #25858461)

      * An attribute was added to data dictionary client method
        declarations to generate compilation warnings when return
        values are ignored. (Bug #25840927)

      * The data dictionary class hierarchy was simplified. (Bug
        #25835968, Bug #85811)

      * A restriction that prevented the data dictionary object
        update function (Dictionary_client::update) from being
        called twice on the same object was removed. (Bug
        #25833932, Bug #85800)

      * On Ubuntu platforms, the MySQL service script did not
        terminate correctly if the user running the script did
        not have permission to access the data directory or PID
        file. (Bug #25825833)

      * String comparison queries on the
        INFORMATION_SCHEMA.CHARACTER_SETS.DESCRIPTION field were
        case sensitive, which is a regression from earlier
        releases. (Bug #25824297)

      * Man pages for a few utilities were missing from
        Debian/Ubuntu packages. (Bug #25811814)

      * An INFORMATION_SCHEMA view executed in LOCK TABLES mode,
        using the SERIALIZABLE isolation level, and with
        autocommit disabled, failed to use non-locking reads,
        which could block DDL operations or cause deadlocks. (Bug
        #25811413)

      * Table locking failures could occur if tables were used by
        a trigger for which a trigger of the same name existed in
        another database and the database names differed only in
        lettercase. (Bug #25807393)

      * An in-place MySQL upgrade failed if a .TRG file was
        missing the created line for the trigger definition.
        (This problem is unlikely to occur for upgrades to MySQL
        8.0 from 5.7 because the created line is present for
        MySQL 5.7.2 and higher.) (Bug #25805260, Bug #85704)

      * The field-t unit test failed to run with AddressSanitizer
        enabled. Thanks to Laurynas Biveinis for the patch. (Bug
        #25803823, Bug #85678)

      * Debian client packages were missing information about
        conflicts with native packages. (Bug #25799475)

      * The CREATE_OPTIONS column of the
        INFORMATION_SCHEMA.TABLES table was treated as having the
        binary collation, so functions such as UPPER() and
        LOWER() did not have the intended result. (Bug #25793429)

      * After importing a table with DECIMAL column, accessing
        the table raised an assertion. (Bug #25792649)

      * ALTER TABLE could fail when the default character set
        changed to utf8mb4 due to incorrect column length
        calculations. (Bug #25779239, Bug #85614)

      * If a server component deinit() method failed, the
        component was still unloaded. (Bug #25764325)

      * Stored program execution could fail for DEFINER accounts
        with expired passwords even if they were locked and could
        not be used to connect to the server. Now DEFINER
        accounts are not checked for expired passwords if they
        are locked. (Bug #25741966)

      * DISTINCT operations on temporary tables could produce
        incorrect results due to allocation of too-small
        comparison keys. (Bug #25740550, Bug #85518)

      * In optimizer trace output, num_tmp_files did not actually
        indicate number of files. It has been renamed to
        num_initial_chunks_spilled_to_disk and indicates the
        number of chunks before any merging has occurred. (Bug
        #25733784, Bug #85487)

      * The Perl path in #! lines at the beginning of Perl
        scripts has been adjusted to /usr/local/bin/perl for
        FreeBSD 11. (Bug #25719975)

      * With the IGNORE_SPACE SQL mode enabled, syntax error
        messages always reported line 1 as the line number. (Bug
        #25717617)

      * mysqldump failed to properly quote certain identifiers in
        SQL statements written to the dump output. (Bug
        #25717383)

      * Dropping a tablespace without that associated tablespace
        file failed with an error stating that the tablespace
        dictionary object is invalid. (Bug #25717019)

      * Client preauthorization by the server was missing a
        length check for a length-encoded string. (Bug #25714674)

      * In debug builds, a CREATE TABLESPACE operation raised an
        invalid assertion when using the NDB storage engine. A
        validation function that checked for zero-length data
        files did not apply to NDB tablepaces and was removed.
        (Bug #25700242)

      * For debug builds, EXPORT_SET() operations could raise an
        assertion for some arguments. (Bug #25688192)

      * For debug builds, the assertion added for Bug#59686 was
        too strict and could be raised when it should not have
        been. (Bug #25685958)
        References: See also: Bug #59686.

      * A code refactoring in MySQL 8.0.1 caused several
        assertions to be raised in debug builds. (Bug #25669590,
        Bug #25669606, Bug #25669580, Bug #25688504)
        References: This issue is a regression of: Bug #25221172,
        Bug #84103.

      * For some double-precision calculations, overflow could
        occur when calculating the exponent part. (Bug #25664323)

      * SHOW INDEX output was inconsistent for a FULLTEXT index
        defined on multiple columns. (Bug #25659276)

      * During a group commit, the stack could incorrectly be
        reported exhausted, leading to stack overflow. (Bug
        #25656875)

      * When the character set of one string comparison operand
        was a superset of the character set of the other operand,
        some comparisons were disallowed that should be permitted
        by converting the operand with the "smaller" character
        set to the "larger" character set. utf8mb4 and utf32 are
        considered to be a superset of any other encoding. (Bug
        #25642319, Bug #85224)

      * An in-place (binary) upgrade could change the default
        character_set_client and character_set_connection
        variables for stored routines, possibly resulting in
        different routine behavior. (Bug #25633041)

      * For debug builds, the partitioning handler could
        inappropriately evaluate generated column expressions in
        UPDATE statements, resulting in a raised assertion. (Bug
        #25615803, Bug #85179)

      * In strict SQL mode, an ER_TRUNCATED_WRONG_VALUE error
        could be converted from a warning to an error but then
        ignored, leading to a raised assertion. (Bug #25586959,
        Bug #25586673)

      * Failure occurred for ALTER TABLE on an ARCHIVE table
        containing a NOT NULL column having a geometry data type.
        For debug builds, an assertion was raised. For non-debug
        builds, an error occurred. (Bug #25582178, Bug #85059)

      * For debug builds, an assertion could be raised for DROP
        TRIGGER of a trigger for a table used by a view. (Bug
        #25581925)

      * For upgrades from MySQL 5.7 to MySQL 8.0, the server
        wrote unnecessary parsing warnings to the error log.
        These messages are now suppressed. (Bug #25518436, Bug
        #84889)

      * The server exited abnormally attempting to access invalid
        memory. (Bug #25501659)

      * The maximum length of the name field in the
        column_type_elements table in the data dictionary was
        extended from 255 bytes to 1020 bytes to accommodate long
        ENUM and SET values that could result from using a
        multibyte character set.
        When using a multibyte character set, a single ENUM or
        SET element occupies a maximum of M x w bytes in the
        column type definition in the data dictionary, where M is
        the element literal length and w is the number of bytes
        required for the maximum-length character in the
        character set.
        In prior releases, the maximum supported length of an
        individual ENUM or SET element depended on the number of
        elements in the type. Thus, there could be a single
        element with (M x w) = 64K, or 64K elements with (M x w)
        = 1.
        The maximum supported length of an individual ENUM or SET
        element is now M <= 255 and (M x w) <= 1020, regardless
        of the number of elements in the type. (Bug #25481355)

      * With mysqld secured by TCP wrappers and the hosts.allow
        and hosts.deny files configured to restrict access from
        an IP address, connection attempts from that address
        resulted in too many messages to the error log. (Bug
        #25476479, Bug #84708)

      * mysqlpump no longer includes the slave_master_info and
        slave_relay_log_info tables in dumps of the mysql system
        database. Restoring a dump file containing these tables
        caused problems by changing the replication state
        improperly. (Bug #25469190)

      * Changes made by calling mysql_options() to set
        MYSQL_OPT_SSL_MODE could be affected by later
        mysql_options() calls. Now setting MYSQL_OPT_SSL_MODE is
        unaffected by later mysql_options() calls. (Bug
        #25452210)

      * A race condition could occur for CREATE TABLE statements
        with DATA DIRECTORY or INDEX DIRECTORY clauses. (Bug
        #25451091)

      * With AddressSanitizer enabled, compiling the keyring_file
        plugin produced One-Definition Rule violations. (Bug
        #25448205)

      * ALTER TABLE ... MODIFY on a DATETIME NOT NULL column
        using an AFTER clause resulted in an
        ER_INVALID_USE_OF_NULL error. (Bug #25385334)

      * The range optimizer could create an incorrect query tree,
        resulting in a server exit. (Bug #25369742, Bug
        #25586531)

      * mysqld_failed to start the server if the --datadir option
        was specified with a relative path name. (Bug #25364806)

      * XA PREPARE, XA ROLLBACK, and XA COMMIT for a transaction
        from a disconnected session did not take a global commit
        lock and modified the binary log and InnoDB redo log even
        when FLUSH TABLES WITH READ LOCK was in effect. This
        could lead to inconsistent backups when backup tools
        assumed that the server was in a read-only state. (Bug
        #25364178, Bug #84442)

      * GROUP_CONCAT(DISTINCT) returned nonunique values if the
        data size was greater than the value of the
        tmp_table_size system variable. (Bug #25331425, Bug
        #84320)

      * The fix for Bug #78777 had different effects depending on
        whether the Performance Schema is enabled. (Bug
        #25309017, Bug #84305)
        References: This issue is a regression of: Bug #78777.

      * An aggregate function in some nested queries could cause
        a server exit. (Bug #25303711)

      * Virtual generated column expressions that used any of the
        BIN_TO_UUID(), CONV(), or HEX() functions could cause
        problems if the connection character set was changed. In
        this context, the table character set is now used for
        these functions regardless of connection character set.
        (Bug #25287633)

      * The Rewriter plugin did not perform locking properly if
        the read_only system variable was enabled. (Bug
        #25264253)

      * With read_only enabled, creation of non-TEMPORARY tables
        by non-SUPER users was permitted under certain
        conditions. (Bug #25250768)

      * For a table having a TIMESTAMP or DATETIME column having
        a default of CURRENT_TIMESTAMP, the column could be
        initialized to 0000-00-00 00:00:00' if the table had a
        BEFORE INSERT trigger. (Bug #25209512, Bug #84077)

      * On Windows, Time values in SHOW PROCESSLIST output
        drifted higher over time. (Bug #25101724, Bug #83019)

      * An assertion was raised when a create function at server
        bootstrap attempted to evaluate non-resolved expressions.
        (Bug #24961932)

      * The number of data dictionary cache lookups was reduced,
        and ALTER TABLE handling of triggers was improved help
        ensure trigger persistence in case of a server exit
        during ALTER TABLE processing. (Bug #24930129, Bug
        #83473)

      * Certain queries against InnoDB tables that used a primary
        key and a subquery could return incorrect results if the
        index_merge_intersection flag of the optimizer_switch
        system variable was enabled. (Bug #24829050, Bug #79675)

      * On x86 machines, the uint3korr() macro read 4 bytes of
        data instead of the intended 3 bytes. (Bug #24807826, Bug
        #83264)

      * An assertion was raised during a fetch operation by the
        memcached plugin. (Bug #24605783)

      * Queries that contained UNION in a subquery and GROUP BY
        could return incorrect results. (Bug #24595639)

      * Some syntactically incorrect CREATE INDEX statements
        could cause a server exit rather than a syntax error.
        (Bug #24593992)

      * An in-place MySQL upgrade failed if the
        innodb_table_stats or innodb_index_stats tables were not
        present in the mysql system database. (This problem
        should not occur for upgrades to MySQL 8.0 from 5.7
        because those tables are present in MySQL 5.7.) (Bug
        #24557143)

      * Incorrect behavior could occur for INSERT statements
        executed in stored-program or prepared-statement context,
        if the VALUES part of an ON DUPLICATE KEY UPDATE clause
        referred to a BLOB value in the INSERT column list. (Bug
        #24538207, Bug #25361251, Bug #25530880, Bug #25684790)

      * systemd support scripts in Debian packages contained
        hardcoded references to the data directory, making it
        difficult to change the data directory using --datadir.
        (Bug #24398446, Bug #82417)

      * MySQL failed to compile under macOS 10.10.5 using Clang.
        (Bug #24352163, Bug #82340)

      * If a REPLACE statement tried to update a row in a table
        containing a virtual generated column of type BLOB,
        subsequent DML statements could behave incorrectly. (Bug
        #23573575)

      * EXPLAIN for single-table UPDATE or DELETE statements
        could raise an assertion attempting to optimize away
        subqueries. (Bug #23209903)

      * For builds with AddressSanitizer enabled, the
        ST_Simplify() function could attempt to use already freed
        memory. (Bug #23023817)

      * Compiler flags were adjusted to eliminate numerous
        warnings that occurred when compiling the keyring_file
        plugin using Clang. (Bug #22834591, Bug #80524)

      * If enabling the Event Scheduler caused an event defined
        as ON COMPLETION NOT PRESERVE to be dropped because its
        execution time had passed, the drop event was not written
        to the binary log, causing slaves not to replicate it and
        replication failure if an event of the same name was
        created later. (Bug #22150112)

      * For some CREATE TABLE ... SELECT statements, adding an
        ORDER BY clause changed column data types, or caused an
        assertion to be raised for debug builds. (Bug #16833464)

      * LOAD XML INFILE performance became noticeably slower when
        the XML file being read contained a great many spaces,
        such as those introduced by indenting or pretty-printing.
        Now all leading whitespace is trimmed from each such
        value before reading it into memory. (Bug #16212207)

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