Web lists-archives.com

MySQL Community Server 8.0.12 has been released (part 2/2)




[Due to size limitation, this announcement is split in two. This is
part 2]

Bugs Fixed


     * Important Change; JSON: The JSON_TABLE() function now
       automatically decodes base-64 values and prints them
       using the character set given by the column
       specification. (Bug #90157, Bug #27729112)
       References: See also: Bug #89847, Bug #27613276.

     * Important Change: MySQL now allows a query having a WITH
       ROLLUP modifier to use DISTINCT. See SELECT Syntax
       (http://dev.mysql.com/doc/refman/8.0/en/select.html), for
       more information. (Bug #87450, Bug #26640100)

     * Important Change: MySQL now allows the use of ORDER BY
       with grouping functions in SELECT. statements. (Bug
       #86312, Bug #27063525)

     * Important Change: MySQL now allows ORDER BY to be used in
       a query having a WITH ROLLUP modifier. For more
       information, see SELECT Syntax
       (http://dev.mysql.com/doc/refman/8.0/en/select.html).
       (Bug #86311, Bug #26073513)

     * InnoDB: New columns added to
       INFORMATION_SCHEMA.INNODB_TABLES and
       INFORMATION_SCHEMA.INNODB_COLUMNS tables in 8.0.12 did
       not appear after upgrading to 8.0.12. (Bug #28065244)

     * InnoDB: Large object (LOB) version numbers stored in LOB
       index entries were left uninitialized at 0 instead of
       initialized at 1. (Bug #28046298)

     * InnoDB: Adding a column to a table with a generated
       column raised an invalid assertion. (Bug #28040201)

     * InnoDB: An attempt to access freed memory during a
       checkpoint operation caused the server to exit. (Bug
       #28039477)

     * InnoDB: An assertion failure occurred when starting the
       server with experimental system variables that were
       unintentionally exposed in normal MySQL builds. (Bug
       #27899424, Bug #90526, Bug #27898396, Bug #90523, Bug
       #27898344, Bug #90522)

     * InnoDB: An invalid system variable setting raised an
       assertion. (Bug #27898284)

     * InnoDB: Attempting to move a table from a discarded
       file-per-table tablespace to a shared tablespace raised
       an assertion. The operation now produces an error
       instead. (Bug #27861972)

     * InnoDB: Potential failures related to page allocation for
       large objects (LOBs) were not sufficiently handled. (Bug
       #27852003)

     * InnoDB: The ngram full-text search parser permitted comma
       and period characters to be tokenized as words, which
       caused an inconsistency between boolean and natural
       language mode search results. Comma and period characters
       are no longer tokenized. (Bug #27847697)

     * InnoDB: Checksum mismatches and other issues were caused
       by concurrent modification of a tablespace header page,
       and attempting to place a lock on a partially initialized
       page. (Bug #27823064)

     * InnoDB: An I/O error returned by an fsync() operation is
       now treated as a hard error. (Bug #27805553, Bug #90296)

     * InnoDB: In a single thread, two minitransactions latched
       the first page of a large object value (LOB) while
       another thread attempted to allocate the page, causing a
       deadlock. (Bug #27777959)

     * InnoDB: After upgrading to MySQL 8.0.12, table columns
       including the FTS_DOC_ID column were missing from the
       INFORMATION_SCHEMA.INNODB_COLUMNS table. (Bug #27774145)

     * InnoDB: An invalid assertion was raised when the
       optimizer chose a prefix index defined on a virtual
       column. (Bug #27755892)
       References: This issue is a regression of: Bug #19806106.

     * InnoDB: An in-memory table object for a table being
       truncated could be opened under improper metadata locking
       protection.
       A new method of preserving the AUTOINC counter value
       during a TRUNCATE PARTITION operation was implemented.
       (Bug #27754995)

     * InnoDB: The Variance-Aware Transaction Scheduling
       algorithm (VATS) tracks the number of transactions
       waiting for another transaction. In the case of a
       deadlock, the method by which the number of waiting
       transactions is approximated produced inflated values.
       (Bug #27646322)

     * InnoDB: Attempting to acquire an InnoDB ticket while
       holding a victim transaction lock caused a lock order
       violation. (Bug #27626681)
       References: This issue is a regression of: Bug #23476050.

     * InnoDB: An attempt to read a zero-length BLOB value
       raised an assertion failure during recovery. The BLOB
       value was not yet completely inserted. (Bug #27617389)

     * InnoDB: A race condition occurred when acquiring a table
       lock for a table that was already in memory. (Bug
       #27586419, Bug #27577704)
       References: This issue is a regression of: Bug #26848711.

     * InnoDB: After restarting the server, attempting to create
       an encrypted table returned a generic error from the
       storage engine. (Bug #27577339)

     * InnoDB: The use of Variance-Aware Transaction Scheduling
       (VATS) with a spatial index caused a transaction to wait
       indefinitely. (Bug #27572937)

     * InnoDB: Incorrect parsing of a tablespace name that
       included multibyte characters caused a DROP DATABASE
       operation to fail. (Bug #27566937)

     * InnoDB: A check performed to identify temporary tables
       caused an error when the data dictionary attempted to
       open a partitioned table. (Bug #27565997)

     * InnoDB: A schema mismatch error reported during an import
       tablespace operation failed to print mismatched table
       flags in a readable format. (Bug #27542720)

     * InnoDB: A DDL operation failed to wait for a FULLTEXT
       index optimization operation to finish. (Bug #27326796)
       References: This issue is a regression of: Bug #24938374.

     * InnoDB: An unnecessary check for read-only transactions
       was removed from the trx_set_rw_mode() function. Thanks
       to Sandeep Sethia for the patch. (Bug #27211287, Bug
       #88739)

     * InnoDB: A DDL operation that added a foreign key
       constraint raised an assertion when it accessed a stale
       memory object that belonged to the parent table. (Bug
       #27208858)

     * InnoDB: A failing assertion occurred after initiating a
       memcached get operation. (Bug #26876594)

     * InnoDB: A corrupt index ID encountered during a foreign
       key check raised an assertion. (Bug #26654685)

     * InnoDB: A DROP TABLE operation on a table residing in a
       general tablespace raised an assertion when checking
       index status in the post-DDL phase of the operation. (Bug
       #26523254)

     * InnoDB: An internal deadlock during a DDL operation
       resulted in a long semaphore wait followed by a server
       exit. (Bug #26225783)

     * InnoDB: A DDL operation encountered a serious error due
       to an invalid lock upgrade. (Bug #26225783)

     * InnoDB: On a Windows 64-bit system, invalid buffer pool
       configuration values caused the server to exit on
       startup. (Bug #26100239, Bug #86370)

     * InnoDB: A debug code block related to mutex type
       definitions was removed. It no longer differed from the
       non-debug version of the code block. (Bug #24952279, Bug
       #83529)

     * InnoDB: A server failure during recovery occurred due to
       a log parsing buffer overflow. Space is now allocated to
       the log parsing buffer dynamically and incremented as
       necessary until it reaches the size specified by
       innodb_log_buffer_size. (Bug #24734190)

     * Packaging: On Windows, the mysqld.exe --help command
       displayed unnecessary and unexpected details in the
       system output, which this fix eliminates. (Bug #27894020)

     * Partitioning: Rollback of ALTER TABLE ... TRUNCATE
       PARTITION statements was not handled correctly. (Bug
       #27603025)
       References: See also: Bug #87562, Bug #26710839.

     * Partitioning: For a partitioned table, partition update
       time could be incorrect after rebuilding the table or
       restarting the server. (Bug #27073100)

     * Replication: The gtid_purged variable contains the binary
       log events that have been purged from the log by the
       server. When running the Group Replication plugin this
       variable should never be modified, but it was possible.
       Now the variable cannot be modified when Group
       Replication is running. (Bug #27724561)

     * Replication: If the option --skip-log-bin was specified
       at server startup to disable binary logging, no warning
       message was issued if both expire_logs_days and
       binlog_expire_logs_seconds were set to a nonzero value.
       The --skip-log-bin option meant there were no binary log
       files to expire, so the outcome of these binary log
       expiration period settings (which is that the
       expire_logs_days value is ignored) had no practical
       effect. However, the warning message is now issued, so
       that the situation can be corrected before binary logging
       is enabled for the server. (Bug #27699608)

     * Replication: The PIT_TRANSACTIONS_NEGATIVE_CERTIFIED, the
       PIT_TRANSACTIONS_ROWS_VALIDATING and the
       PIT_TRANSACTIONS_LOCAL_ROLLBACK member messages were not
       being correctly decoded. (Bug #27692831)

     * Replication: The log messages generated when a member
       fails to join the group have been improved, for example
       when group_replication_group_name on the member joining
       the group does not match the seed's
       group_replication_group_name this is now described in the
       log message. (Bug #27628695)

     * Replication: The SYSTEM_VARIABLES_ADMIN and
       PERSIST_RO_VARIABLES_ADMIN privileges have been added to
       the mysql.session_user. (Bug #27621869)

     * Replication: The
       ER_GRP_RPL_SQL_SERVICE_FAILED_TO_RUN_SQL_QUERY error was
       being logged incorrectly. (Bug #27590534)

     * Replication: If a MySQL server is started in crash
       recovery mode with an innodb_force_recovery setting of 4
       or greater, which places InnoDB into read-only mode, the
       semisynchronous replication master plugin should not be
       initialized. Due to a change in plugin initialization
       order in MySQL 8.0, the server assumed that if the plugin
       was registered, it had also been initialized, and
       incorrectly attempted to deinitialize it. The handling of
       this plugin in crash recovery mode has now been corrected
       so that the deinitialization function is not executed
       when the plugin has not been initialized. (Bug #27481872)

     * Replication: You can now use a shell pipe to supply an
       archive of compressed binary log files to mysqlbinlog as
       streamed input. Previously, the files had to be extracted
       separately before passing them to mysqlbinlog. Thanks to
       the Facebook team for this contribution.
       In this example, binlog-files_1.gz contains multiple
       binary log files for processing. The pipeline extracts
       the contents of binlog-files_1.gz, pipes the binary log
       files to mysqlbinlog as standard input, and pipes the
       output of mysqlbinlog into the mysql client for
       execution:
gzip -cd binlog-files_1.gz | ./mysqlbinlog - | ./mysql -uroot -p
       (Bug #27445278, Bug #89423)
       References: See also: Bug #27836543.

     * Replication: The use of replication filters or binary log
       filters can cause issues when they are applied to tables
       that are updated with XA transactions. Filtering of
       tables could cause an XA transaction to be empty on a
       replication slave, and empty XA transactions are not
       supported. Also, with the settings
       master_info_repository=TABLE and
       relay_log_info_repository=TABLE on a replication slave,
       which became the defaults in MySQL 8.0, the internal
       state of the data engine transaction is changed following
       a filtered XA transaction, and can become inconsistent
       with the replication transaction context state.
       Due to these issues, the use of replication filters or
       binary log filters in combination with XA transactions is
       not supported. This fix adds the new error
       ER_XA_REPLICATION_FILTERS, which is logged whenever an XA
       transaction is impacted by a replication filter, whether
       or not the transaction was empty as a result. If the
       transaction is not empty, the replication slave is able
       to continue running, but you should take steps to
       discontinue the use of replication filters with XA
       transactions in order to avoid potential issues. If the
       transaction is empty, the replication slave stops. In
       that event, the replication slave might be in an
       undetermined state in which the consistency of the
       replication process might be compromised. In particular,
       the gtid_executed set on a slave of the slave might be
       inconsistent with that on the master. To resolve this
       situation, isolate the master and stop all replication,
       then check GTID consistency across the replication
       topology. Undo the XA transaction that generated the
       error message, then restart replication. (Bug #27442477)

     * Replication: When mysqlbinlog was used to read a binary
       log event larger than 128KB, the read failed because
       128KB was returned as the size, instead of the actual
       size. The issue has now been fixed. Thanks to the
       Facebook team for the patch. (Bug #27417084, Bug #89326)

     * Replication: When a transaction larger than the binary
       log transaction cache size (binlog_cache_size) was
       flushed to a temporary file during processing, and the
       flush failed due to a lack of space in the temporary
       directory, the flush error was not handled correctly. No
       message was written to the error log, and the binary log
       cache was not cleared after the transaction was rolled
       back. Now, in this situation, the server takes an
       appropriate action based on the binlog_error_action
       setting (shut down the server or halt logging), and
       writes a message to the error log. When the transaction
       is rolled back, the server checks for flush errors and
       clears the binary log cache if any occurred. (Bug
       #27399620, Bug #89272)

     * Replication: When GTIDs are in use for replication,
       replicated transactions that are filtered out on the
       slave are persisted. If binary logging is enabled on the
       slave, the filtered-out transaction is written to the
       binary log as a Gtid_log_event followed by an empty
       transaction containing only BEGIN and COMMIT statements.
       If binary logging is disabled, the GTID of the
       filtered-out transaction is written to the
       mysql.gtid_executed table. This process ensures that
       there are no gaps in the set of executed GTIDs, and that
       the filtered-out transactions are not retrieved again if
       the slave reconnects to the master. Previously, this
       process was not done for CREATE DATABASE, ALTER DATABASE,
       and DROP DATABASE statements, but it is now carried out
       for those statements as well as for others. (Bug
       #27308751, Bug #88891)

     * Replication: On a multithreaded slave, when a STOP SLAVE
       statement is executed on the slave, followed by a START
       SLAVE statement, the error log can report a different
       position in the binary log for the slave SQL thread when
       exiting, compared to the position reported for the slave
       SQL thread at the subsequent initialization.
       For a multithreaded slave, the position reported for the
       SQL thread on exit is a low water mark, up to which the
       replication stream is consistent and has no gaps.
       Transactions appearing before the position are guaranteed
       to have committed, but transactions after the position
       may have committed or not. However, this low water mark
       was being reported before the process to stop the worker
       threads was actually carried out, and the low water mark
       was subsequently updated by a checkpoint routine during
       that process. The timing of the log message has now been
       changed so that the final low water mark is reported as
       the position for the SQL thread on exit. (Bug #27300658)

     * Replication: Using group_replication_force_members to
       unblock a group, for example after losing majority,
       sometimes failed with error 1231. (Bug #26394418)

     * Replication: In certain situations, such as during
       distributed recovery procedure, the certification info
       garbage collection was purging more data than it should,
       resulting in conflicts not being detected. The garbage
       collection procedure has been improved to take this case
       in consideration. (Bug #89938, Bug #27652526)

     * Replication: When the group_replication_applier channel's
       applier thread encountered an error, the master_log_name
       and end_log_pos in the error message were incorrect. In
       Group Replication, the events of a transaction are
       replicated before they are written to the binary log of
       the member where the transaction originated. The result
       is that the final master_log_name and the end_log_pos of
       those events are unknown at the time they are applied on
       the replica by group_replication_applier channel's
       applier thread. To avoid confusion, now any such error
       messages encountered by a group_replication_applier
       channel do not contain the binary log name and the binary
       log position. (Bug #89146, Bug #27368735)

     * Microsoft Windows: For debug builds on Windows, CREATE
       SPATIAL REFERENCE SYSTEM with an empty definition string
       could raise assertions. (Bug #27672683)

     * In the client library, signals were incorrectly unblocked
       for ppoll(). Thanks to Facebook for the patch. (Bug
       #28075623, Bug #90999, Bug #28096808, Bug #91067)

     * Certain ALTER TABLE statements could disable table
       encryption. (Bug #28045585)
       References: This issue is a regression of: Bug #27389878.

     * Under some conditions, MyISAM code compilation failed due
       to a missing include file. (Bug #28039150, Bug #90898)

     * The REGEXP_REPLACE() function truncated its result when
       used in an UPDATE statement. (Bug #28027093, Bug #90870)

     * REGEXP_REPLACE() results from one result set row could
       carry forward to the next row, resulting in accumulation
       of previous results in the current row. (Bug #27992118,
       Bug #90803)

     * A heap overflow vulnerability in the MySQL client library
       was fixed. (Bug #27980823)

     * Users who had the SUPER privilege were not permitted to
       modify the keyring_operations system variable. (Bug
       #27976270)

     * Full-text search auxiliary tables created in MySQL 5.7
       and MySQL 8.0.11 with timestamps of 0 caused a data
       dictionary upgrade failure when upgrading from MySQL
       8.0.11 to MySQL 8.0.12. (Bug #27960500)

     * A "source and destination overlap in memcpy" Valgrind
       error was returned when upgrading from MySQL 5.7. (Bug
       #27945658, Bug #90691)

     * The following data dictionary enhancements were
       introduced:

          + An internal method was added to protect against
            global read locks. The method is called before
            storing, updating, or dropping data dictionary
            objects.

          + Assertion code was added to the data dictionary API
            to protect against global read locks when storing,
            updating, or dropping data dictionary objects.

          + Protection is now implicitly acquired against backup
            locks and global read locks when an exclusive
            metadata lock is acquired by a storage engine.

          + A cost model cache validity check is now performed
            before releasing a cost model entry.

          + A data dictionary API function was added for
            committing and rolling back transactions, and for
            releasing transactional meta data locks.
       (Bug #27937059)

     * Linux binaries were unable to dump core after executing a
       setuid() call. (Bug #27929894, Bug #90642, Bug #23337428,
       Bug #21723)

     * RESET PERSIST did not flush variable values from memory.
       (Bug #27924206)

     * Previously, successful assignments to the
       dragnet.log_error_filter_rules system variable resulted
       in a Note and a nonzero warning count. To avoid
       generating a diagnostic for a successful operation, this
       Note is no longer generated. Instead, the dragnet.Status
       status variable can be consulted to determine the result
       of the most recent assignment to
       dragnet.log_error_filter_rules. (Bug #27910708, Bug
       #90571)

     * For debug builds, using CREATE TABLE ... SELECT to create
       a table with a long numeric string and indexing the
       column could lead to an assertion being raised. (Bug
       #27909771)

     * For debug builds, RESET PERSIST for an unknown variable
       could cause an assertion to be raised. (Bug #27903874,
       Bug #90546)
       References: This issue is a regression of: Bug #27374791.

     * Updates to column metadata of a view referencing a
       partitioned table could cause a server exit. (Bug
       #27903842)

     * For debug builds, an assertion could be raised for UNION
       queries when computing the combined data type of a
       GEOMETRY column and SELECT * FROM (SELECT NULL). (Bug
       #27903792, Bug #90550)

     * For debug builds, starting the server with thread_stack=0
       and executing ALTER TABLE could raise an assertion. (Bug
       #27899274, Bug #90525)

     * SHOW TABLE STATUS could cause a server exit. (Bug
       #27897815)

     * For generated columns that used the INTERVAL() function,
       incorrect behavior could occur. (Bug #27881102)

     * For Fedora 28, MySQL Community RPM packages would not
       install if Connector ODBC native packages were installed.
       (Bug #27850721)

     * It was possible to drop the Performance Schema. (Bug
       #27830283)

     * A runtime error could occur for calls to
       mysql_sys_var_longlong() or String::copy(). (Bug
       #27822413, Bug #27808412)

     * An assertion was raised by error logging code that used
       an inappropriate error number. (Bug #27792903)
       References: This issue is a regression of: Bug #27462408.

     * The CONVERT TO CHARACTER SET charset_name clause for
       ALTER TABLE produced a syntax error if charset_name was
       DEFAULT. (Bug #27760787, Bug #90222)
       References: This issue is a regression of: Bug #27389878.

     * An unencrypted connection could result from a client
       connection attempt specifying that an encrypted
       connection was required, if the server was not configured
       to support SSL. (Bug #27759871)

     * INSERT INTO ... SELECT did not perform as many checks as
       INSERT INTO ... VALUES() with respect to requiring valid
       geometry values for geometry columns. (Bug #27756083)

     * REGEXP_INSTR() did not return an error message when used
       with invalid match mode flags. (Bug #27751277)

     * Some data dictionary table definitions were modified to
       align more closely with their initial design.
       Additionally, the data dictionary version number was
       incremented, and code that refers to data dictionary
       table indexes now uses symbolic index names instead of
       numeric values. (Bug #27745526, Bug #90196)

     * Executing a prepared statement to insert rows with large
       number of parameters was very slow. (Bug #27699248)

     * ibd2sdi could exit due to performing a divide-by-zero
       operation. (Bug #27692051, Bug #90071)

     * The mysql-boost-8.0.4.tar.gz source distribution omitted
       NDB sources. (Bug #27690232)

     * SHOW GRANTS could cause a server exit if executed for an
       unprivileged user who inherited privileges from an
       anonymous user. (Bug #27678129)

     * The parser incorrectly permitted the index name for
       CREATE INDEX to be empty. (Bug #27676427)

     * Failures of server restarts initiated by systemd or
       mysqld_safe were not written to the error log. (Bug
       #27675050, Bug #90012)

     * For debug builds, if a transaction was in read-only mode,
       trying to create or drop a histogram could raise an
       assertion. (Bug #27672693)

     * If the server was started with --skip-grant-tables, SET
       ROLE DEFAULT caused a server exit. (Bug #27672154)

     * Casting of VARBINARY values to TIME values was not
       performed correctly. (Bug #27665997)

     * Error checking was not performed after creation of a
       condition for a const reference. (Bug #27665085)

     * The dictionary information object managed by the MeCab
       model was used after the MeCab model was released. (Bug
       #27660368)

     * Attempting to abort events of the
       MYSQL_AUDIT_AUTHENTICATION_CLASS class caused a server
       exit. These events are now not abortable. (Bug #27645636)

     * These resource-group statements are now disallowed in
       stored functions because they cause an implicit commit,
       which is not permitted in a stored function: CREATE
       RESOURCE GROUP, ALTER RESOURCE GROUP, DROP RESOURCE
       GROUP. (Bug #27638623, Bug #89914)

     * Audit log filter rules did not permit class names to be
       specified as an array of strings. That is now possible.
       Example:
{
  "filter": {
    "class": [
      { "name": [ "connection", "general", "table_access" ] }
    ]
  }
}

       (Bug #27628325)

     * On Windows, if the Visual C++ Redistributable for Visual
       Studio had been removed, MySQL uninstallation using the
       MSI installer failed. (Bug #27621546)

     * mysql_secure_installation now loads the validate_password
       component rather than the deprecated validate_password
       plugin. (Bug #27619667)

     * REGEXP_LIKE() using an expression containing a question
       mark (?) was not handled correctly when included in a
       prepared statement. (Bug #27595368)

     * REGEXP_SUBSTR() did not always handle NULL patterns
       correctly. (Bug #27572258)

     * Some SHOW CREATE TABLE statements could raise an
       assertion. (Bug #27569314)

     * Spurious stages could be seen in the Performance Schema
       events_stages_current table. (Bug #27566220)

     * Triggers for a table could execute in an order different
       from that specified by their PRECEDES/FOLLOWS clauses.
       (Bug #27544152)

     * Attempts to set some persisted variables at startup (such
       as keyring_operations and mandatory_roles) produced a
       privilege violation error and the server did not start or
       did not set the variable. (Bug #27523095)

     * Under some conditions, an unused-variable warning
       occurred in the MeCab full-text search code. Thanks to
       Laurynas Biveinis for the patch. (Bug #27519952, Bug
       #89598)

     * Within stored procedures, it was not possible to write a
       condition handler to catch foreign key failures if the
       table involved used the FEDERATED storage engine. (Bug
       #27509959)

     * It was possible to drop a primary key that served as the
       parent key in a foreign key relationship. (Bug #27506922,
       Bug #89570)

     * With the NO_ENGINE_SUBSTITUTION SQL mode disabled, an
       error (rather than substitution) occurred for CREATE
       TABLE and ALTER TABLE if the desired engine was disabled
       using the disabled_storage_engines system variable. (Bug
       #27502530)

     * Key rotation using the keyring_encrypted_File keyring
       plugin could cause a server exit. (Bug #27497018)

     * If MySQL Enterprise Firewall was configured with a large
       number of rules, server shutdown could take a long time.
       (Bug #27492122)

     * SET PERSIST_ONLY var_name = DEFAULT persisted the current
       global value, not the default value. (Bug #27489026)

     * If MySQL is configured with the LINK_RANDOMIZE CMake
       option enabled, the --gc-sections compiler option is now
       disabled; the combination causes segmentation faults.
       (Bug #27484106)

     * During server installation, the mysql.infoschema,
       mysql.session, and mysql.sys reserved users were
       associated with the mysql_native_password authentication
       plugin even when the default plugin was
       caching_sha2_password. (Bug #27454299)

     * Some window functions used the wrong precision for their
       aggregated data types. (Bug #27452179)

     * For a hexadecimal value H, SELECT with WHERE (-1) - H
       raised an assertion. (Bug #27452082)
       References: See also: Bug #27041382. This issue is a
       regression of: Bug #21982792.

     * A memory leak in the pfs-t unit test was fixed. Thanks to
       Yura Sorokin for the patch. (Bug #27440735, Bug #89384)

     * Multiple invocations of CHAR() within a stored program
       could yield different results once an invalid code point
       was passed as the argument. (Bug #27410088)

     * With automatic_sp_privileges enabled, the EXECUTE and
       ALTER ROUTINE privileges were not correctly granted to
       routine creators. (Bug #27407480)

     * Some queries that used ordering could access an
       uninitialized column during optimization and cause a
       server exit. (Bug #27389294)

     * For debug builds, an assertion was raised (rather than an
       error) for ALTER TABLE for an ARCHIVE table with a
       GEOMETRY NOT NULL column containing empty strings. (Bug
       #27330634, Bug #89088)

     * Accounts that authenticated with the auth_sock
       authentication plugin could not connect using older
       clients. (Bug #27306178)

     * If system tables could not be read or initialized, the
       server wrote an incomplete error message. Thanks to
       Daniël van Eeden for a patch related to the fix. (Bug
       #27302337, Bug #89001)

     * RENAME USER failed when used to rename a role that was
       not granted to any account or role. (Bug #27284699)

     * The keyring_okv plugin did not always fail over to the
       standby OKV server when the primary server was
       unavailable. (Bug #27244099)

     * The Performance Schema could attempt to access invalid
       SOURCE column values. (Bug #27231036)

     * Mishandling of internal privilege structures could cause
       a server exit. (Bug #27230925)

     * For debug builds, use of a too-small type for calculating
       the determinant in GIS computations could cause an
       assertion to be raised. (Bug #27135504)

     * For attempts to increase the length of a VARCHAR column
       of an InnoDB table using ALTER TABLE with the INPLACE
       algorithm, the attempt failed if the column was indexed.
       If an index size exceeded the InnoDB limit of 767 bytes
       for COMPACT or REDUNDANT row format, CREATE TABLE and
       ALTER TABLE did not report an error (in strict SQL mode)
       or a warning (in nonstrict mode). (Bug #26848813)

     * In MySQL 5.7.19, the mysql.gtid_executed table was
       excluded from dumps. This table is no longer excluded but
       its data is not dumped. (Bug #26643180, Bug #87455)
       References: This issue is a regression of: Bug #82848,
       Bug #24590891.

     * The slave_rows_search_algorithms system variable controls
       how rows are searched for matches when preparing batches
       of rows for row-based logging and replication. Specifying
       INDEX_SCAN as one of the search algorithms performs an
       index scan if an index is present. In the situation where
       a different primary key is used on the master and the
       slave, and a unique key is present on the slave, a bug in
       the code meant that the index scan was not being
       performed as it should be, and a slower table scan was
       being performed instead. The issue has now been corrected
       so that an index scan is used. (Bug #26450129, Bug
       #81500)

     * Certain cases of subquery materialization could cause a
       server exit. These queries now produce an error
       suggesting that materialization be disabled. (Bug
       #26402045)

     * Spatial operations on geographic GeometryCollection
       values could return ER_GIS_INVALID_DATA for valid
       geometries. (Bug #26174808)

     * For MyISAM tables, particular sequences of INSERT and
       DELETE statements could cause table corruption. (Bug
       #25541037)

     * The SHOW CREATE USER statement requires the SELECT
       privilege for the mysql database, except to see
       information for the current user. In addition, for the
       current user, the statement requires the SELECT privilege
       for the mysql.user system table for display of the
       password hash in the IDENTIFIED AS clause; otherwise, the
       hash displays as <secret>. (Bug #24911117)

     * CREATE FUNCTION produced an error if there was no default
       database and the function body called another function.
       (Bug #24357244, Bug #82350)

     * For debug builds, a SELECT statement executed within a
       stored program could raise an assertion if derived table
       resolution failed. (Bug #23221336)

     * If mysqldump or mysqlpump were used to dump binary data
       without the --hex-blob option, reloading the dump file
       could produce spurious warnings (values were inserted
       correctly regardless of the warnings). Such values are
       now written preceded by the _binary introducer to silence
       the warnings. (Bug #22601255, Bug #80150)

     * String comparisons involving wildcards could reference
       uninitialized memory. (Bug #12635103)

     * REGEXP_REPLACE() raised a valgrind warning when invoked
       with an invalid capture group. (Bug #87842, Bug
       #27612255)

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