Web lists-archives.com

MySQL Community Server 8.0.1-dmr has been released (part 3/3)




[This is part 3 of the announcement]

     * JSON: When a JSON value consisted of a large sub-document
       wrapped in many levels of JSON arrays, objects, or both,
       serialization of the JSON value sometimes required an
       excessive amount time to complete. (Bug #23031146)

     * JSON: When a NULL value existed in a JSON column, the
       result from a query using GROUP_CONCAT() together with
       the ORDER BY clause was not always correct. (Bug
       #22992666)

     * JSON: The internal rapid_json_handler used its own data
       structures to represent a partially-built DOM; these had
       to be converted into a Json_dom graph before returning
       the result. Now this handler builds the graph directly,
       which reduces the amount of work required to build it,
       and thus to parse a JSON document. (Bug #22900110)

     * JSON: The internal function Item_func_case::val_json()
       did not always set the null value flag as expected when a
       CASE expression evaluated to NULL, leading to an
       assertion in debug builds of the server. (Bug #22887227)

     * JSON: The SUM() function truncated decimal values
       extracted from JSON documents, producing an integer
       result. (Bug #84935, Bug #25530204)

     * JSON: A JSON document that contained a double value
       slightly greater than the maximum value that can be
       represented by a double silently replaced it with zero
       instead of rejecting the value and raising an error. Such
       values are now handled correctly in MySQL JSON documents.
       The underlying issue was traced to a problem with
       RapidJSON, which has been reported to that library's
       developers as Issue #849
       (https://github.com/miloyip/rapidjson/issues/849). (Bug
       #84891, Bug #25518504)

     * JSON: The JSON_SEARCH() and JSON_CONTAINS_PATH()
       functions did not work when the one_or_all argument was
       specified using UTF-16 encoding. For both of these
       functions, this argument is now converted to utfmb4 if
       need be before its value is checked. (Bug #84880, Bug
       #22516960)

     * JSON: The JSON_UNQUOTE() function did not work with
       strings that used UTF-16 encoding. Now these strings are
       converted to utfmb4 internally before being processed.
       (Bug #84878, Bug #25516881)

     * JSON: Updating the same JSON column in a single statement
       could cause incorrect values to be written into the
       table. This occurred when the second update overwrote the
       column value with a subset of itself. An example of such
       a statement is shown here:
UPDATE t SET col = JSON_ARRAY(value), col = col->'$[0]';

       (Bug #84694, Bug #25461627)

     * JSON: The functions JSON_QUOTE() and JSON_UNQUOTE() did
       not work correctly with multibyte character sets such as
       utf8mb4. (Bug #84680, Bug #25455065)
       References: See also: Bug #77234, Bug #21193273.

     * JSON: The error message for Error 3152
       ER_JSON_USED_AS_KEY has been changed from JSON column
       '%s' cannot be used in key specification to the less
       confusing and more accurate JSON column '%s' supports
       indexing only via generated columns on a specified JSON
       path. (Bug #81364, Bug #23274244)

     * JSON: Internal tests for MySQL JSON functionality ran out
       of stack space on some platforms when run against a
       debug-enabled server. Because timely checks were not made
       for stack usage, the server did not detect this
       situation, leading to a server exit.
       The fix for this issue is twofold:

          + Stack overrun checks are now made before attempting
            to serialize a nested array or object, so that the
            operation fails gracefully when processing deeply
            nested JSON documents, rather than causing an exit.

          + Serialization of JSON documents has been reorganized
            so that it requires less use of the stack when
            compiled without optimization.
       (Bug #81083, Bug #23106330)

     * MySQL did not compile with GCC 7. (Bug #25643811)

     * The (undocumented) WINDOWS_RUNTIME_MD CMake option has
       been removed. (Bug #25611359)

     * If --skip-innodb or one of its variants was used, a
       spurious warning about avoid_temporal_upgrade was
       generated. (Bug #25573578)

     * mysqld_safe failed to restart the server if a
       PID_FILE.shutdown file was present. (Bug #25572504)
       References: This issue is a regression of: Bug #11751149.

     * For Debian/Ubuntu packages, user-defined collation files
       could be overwritten during MySQL upgrades. Charset files
       are now marked as conffiles so that user customizations
       generate a prompt during upgrades whether to overwrite
       them. (Bug #25525628, Bug #84761)

     * For CREATE TABLE statements that specified the table name
       with a database qualifier and included a DATA DIRECTORY
       or INDEX DIRECTORY option, an error occurred if there was
       no default database. (Bug #25514146, Bug #84861)

     * referenced_table_schema and referenced_table_name field
       values in the mysql.foreign_keys data dictionary table
       were not stored in lowercase when lower_case_table_names
       was enabled. (Bug #25495714)

     * Starting the server with
       performance_schema_digests_size=1 caused an abnormal
       exit. (Bug #25492129, Bug #84786)

     * For clients linked against yaSSL, connections became
       invalid when a read timeout occurred, rather than
       retrying the read. (Bug #25444075)

     * MySQL compilation in different directories produced
       different builds to leakage of absolute paths into debug
       information and __FILE__. (Bug #25436469)

     * Calculations for UCA 9.0.0 collations were inefficient
       for tailoring rules containing contraction characters.
       (Bug #25426632)

     * A negative internal connection timeout value caused the
       connection to go idle and abort. A negative value now
       causes the connection to block indefinitely in the
       absence of I/O. (Bug #25408557)

     * A mutex Performance Schema name was too long and produced
       a warning at server startup. (Bug #25406915)

     * MySQL failed to compile on some platforms with
       -DWITH_LIBWRAP=ON. CMake support now checks whether
       tcpd.h has proper function prototypes. (Bug #25395543,
       Bug #84495)

     * An index defined on a data dictionary table column
       exceeded the maximum index key length when the instance
       was initiated with innodb_page_size=4k. (Bug #25384527)

     * mysqld_safe did not check whether the directory named by
       the --basedir option existed. (Bug #25365194)

     * Configuring CMake with -G ninja resulted in build output
       that was inappropriate for build platforms other than
       Xcode or Visual Studio. (Bug #25358460)

     * mysqld_safe failed if the error log file named by the
       --log-error option was a FIFO. (Bug #25356221, Bug
       #84427)

     * For prepared statements, an alias within a subquery or
       derived table might cause incorrect behavior during
       statement execution if another alias depended on it. (Bug
       #25343335, Bug #84398, Bug #25171608)

     * mysqld_safe could fail if the --datadir option value
       ended with a / character. (Bug #25319457)

     * A recent change to mysqld_safe caused the mysql.server
       script to be unable to start it if the base directory was
       specified as an absolute path that differed from the
       compiled-in default absolute path. (Bug #25319392, Bug
       #84263)

     * The connection_control plugin failed to compile if the
       Performance Schema was disabled. (Bug #25308357, Bug
       #84304)

     * Passwords did not expire correctly for accounts created
       using MySQL Workbench. (Bug #25299309)

     * For System V init scripts for RPMs, the [mysqld]
       option-file section was being ignored for some options,
       such as pid-file. (Bug #25287707, Bug #84172)

     * Init scripts failed to launch mysqld_safe if a
       non-default base directory was used. (Bug #25261472, Bug
       #84219)

     * CMake now detects whether a GCC 5.3.0 loop optimization
       bug occurs and attempts a workaround if so. (Bug
       #25253540)

     * mysqld_safe --no-defaults did not work (inadvertent
       consequence of an earlier bug fix). (Bug #25244898, Bug
       #84173)

     * Semicolon (;) characters within or between statements
       could cause distinct digests to be generated from
       identical statements. (Bug #25244533, Bug #83253)

     * Components could not register services without referring
       to their private implementation. A
       SERVICE_IMPLEMENTATION(component,service) macro now
       enables this to be avoided. (Bug #25238906)

     * Certain stored functions, if used in a query WHERE
       clause, could be handled using Index Condition Pushdown
       (which should not happen), resulting in a server exit.
       (Bug #25196653, Bug #25174454)

     * For ai_ci collations based on Unicode Collation Algorithm
       9.0.0, accented characters that compare equal were
       treated as different by LIKE comparisons. (Bug #25167284,
       Bug #83999)

     * For a client linked against libmysqlclient, invalid
       memory access could occur during use of prepared
       statements. (Bug #25164932)

     * Some Linux startup scripts did not process the datadir
       setting correctly. (Bug #25159791)

     * If a character set is specified for a column of a
       partitioned table, a segmentation fault could occur while
       upgrading. (Bug #25153261)

     * LOAD DATA failed to accept multibyte characters that
       followed an escape sequence. (Bug #25147988, Bug #83950)

     * The fix for Bug #25088048 caused the command used by
       mysqld_safe to start the MySQL server to no longer
       include the mysqld path. (Bug #25144379)
       References: This issue is a regression of: Bug #25088048.

     * For UCA collations, LIKE comparisons against a pattern
       that ended with the escape character returned incorrect
       results. (Bug #25140629, Bug #83930)

     * The default character set and collation were used instead
       of the character set and collation defined in db.opt file
       when upgrading the schema from MySQL 5.7 to MySQL 8.0.
       (Bug #25139901)

     * Instead of updating the data dictionary cache at the end
       of DDL statements using separate function calls, the data
       dictionary cache is now updated as part of transaction
       commit. (Bug #25095798, Bug #83818)

     * CREATE TABLE now requires the FILE privilege if DATA
       DIRECTORY or INDEX DIRECTORY is specified explicitly as a
       table or partition option. ALTER TABLE requires the FILE
       privilege if either option is specified explicitly as a
       partition option (it ignores them if specified as table
       options). (Bug #25092566)

     * There were some differences between ICU order and MySQL
       Unicode collations for Hungarian contractions and
       ligatures. MySQL now follows ICU order. (Bug #25090543)

     * The data dictionary failed to initialize and start when
       using a binary collation. The query string generated to
       create the data dictionary schema did not add quotes to
       the binary collation name. (Bug #25054104, Bug #83706)

     * Executing a stored procedure containing a query that
       accessed a view could allocate memory that was not freed
       until the session ended. (Bug #25053286)

     * Compilation on FreeBSD 11 failed attempting to check
       MAP_NORESERVE, which is no longer defined. (Bug
       #25048128, Bug #83689)

     * mysql-test-run.pl now checks whether the TSAN_OPTIONS
       environment variable is set. If so, the value is taken as
       the path name of a file containing ThreadSanitizer
       suppressions (errors to be ignored during test runs).
       Additionally, the --sanitize option now causes
       mysql-test-run.pl to scan the server error logs for
       ThreadSanizer messages. (Bug #24970905, Bug #83601)

     * After starting the server with a non-zero
       --lower-case-table-names setting, an assertion was raised
       when USE INFORMATION_SCHEMA; was the first instruction
       from the first client. (Bug #24963580)

     * For case-insensitive Unicode collations, the various
       space characters did not hash to the same value,
       resulting in incorrect comparisons between them. (Bug
       #24956750)

     * Dictionary clients now track uncommitted dictionary
       objects that are being modified by DDL statements, making
       uncommitted changes by the same session visible to a
       dictionary client without affecting the dictionary object
       cache prior to commit time. (Bug #24956365, Bug #83548)

     * Simultaneous dictionary object cache misses were not
       handled correctly. An object retrieved by one thread
       could be evicted from the cache before a waiting thread
       attempted to access it. (Bug #24949179)

     * CMake now avoids configuring the
       -fexpensive-optimizations option for GCC versions for
       which the option triggers faulty shift-or optimizations.
       (Bug #24947597, Bug #83517)

     * CMake support was added for compiling using the
       -std=c++03 option under Developer Studio 12.5. This is
       now used rather than stlport by default. (Bug #24947136,
       Bug #83512, Bug #25229424)

     * NCHAR and NATIONAL CHAR are synonyms, but CAST(expr AS
       NCHAR) succeeded, whereas CAST(expr AS NATIONAL CHAR) did
       not. Now both work. (Bug #24934161)

     * OEL RPM packages now better detect which platforms have
       multilib support (for which 32-bit and 64-bit libraries
       can be installed). Thanks to Alexey Kopytov for the
       patch. (Bug #24925181, Bug #83457)

     * OEL RPM packages now better detect which platforms do not
       have multilib support (for which 32-bit and 64-bit
       libraries can be installed). Thanks to Alexey Kopytov for
       the patch. (Bug #24916428, Bug #83428)

     * The LOCATE() function returned NULL if the substr or str
       argument was NULL, but not if the pos argument was NULL.
       Now it returns NULL if any argument is NULL. (Bug
       #24911350, Bug #83427)

     * Bit operations could cause a server exit to occur if
       argument nullability was mishandled. (Bug #24910958, Bug
       #24930038, Bug #24930829)

     * The Block Nested Loop algorithm could allocate too much
       memory during query execution. (Bug #24909223)

     * Information about building MySQL 5.6 compatibility
       libraries in the MySQL 5.7 and higher .spec file is
       needed only for building libmysqlclient and libmysqld.
       Information about building the InnoDB memcached plugin
       was removed. (Bug #24908345, Bug #83409)

     * Incorrect updating of view metadata could raise an
       assertion. (Bug #24834622)

     * Initialization of the keyring_okv plugin failed if the
       STANDBY_SERVER setting was missing from the okvclient.ora
       configuration file, effectively making this a mandatory
       setting. STANDBY_SERVER is now optional. (Bug #24816271)

     * Data dictionary objects acquired by
       Dictionary_client::acquire_uncached() are now owned by
       the current auto-releaser instead of the caller. Also,
       acquisition of TABLE_SHARE view objects is performed by
       acquire() and clone() instead of acquire_uncached(). (Bug
       #24813358, Bug #83296)

     * Privilege checking could be incorrect for a derived table
       used within a multiple-table UPDATE invoked within a
       stored procedure or view object, for the second or
       subsequent execution of the object, if the derived table
       was merged into the outer query. (Bug #24810564)

     * The Created_tmp_tables status variable was incremented in
       some cases when no temporary table was created. (Bug
       #24808970, Bug #83287)

     * An in-place upgrade from MySQL 5.7 to MySQL 8.0 failed if
       parsing of a stored routine body failed while migrating
       the routine. Now a warning is reported and the routine is
       created without parsing its body. Also, warnings are now
       reported when dependency resolution fails for a view
       during view migration. (Bug #24805140, Bug #83275)

     * For compilation, mysql_upgrade is dependent on the
       dynamically generated
       sql_commands_system_tables_data_fix.h file, but a missing
       dependency could cause that file not to be generated.
       (Bug #24802377, Bug #83272)

     * A race condition between transactions accessing the
       access-control list (ACL) cache and use of the ACL cache
       to populate INFORMATION_SCHEMA tables could cause a
       server exit. (Bug #24786029)

     * For debug builds, EXPLAIN or DESCRIBE for a table with a
       database or table name longer than the maximum permitted
       length raised an assertion rather than displaying an
       appropriate error. (Bug #24751177, Bug #83114)

     * The implementation of several INFORMATION_SCHEMA tables
       as views on data dictionary tables introduced a number of
       native SQL functions intended only for internal use by
       the server, but they could be invoked by users. Those
       functions now produce an error if invoked by users. (Bug
       #24749248, Bug #83189)

     * CASE, COALESCE(), IF() and IFNULL() could merge a mix of
       signed and unsigned arguments incorrectly and produce an
       incorrect result type. (Bug #24733658, Bug #83148)

     * Connections from a client to a server with SSL enabled
       succeeded even if --ssl-mode had a value of VERIFY_CA or
       VERIFY_IDENTITY and the client did not provide a CA
       certificate. (Bug #24732452, Bug #23189252)

     * Manual creation of a directory in the data directory
       resulted in USE dir_name succeeding even though the
       directory was not registered as a database in the data
       dictionary. (Bug #24732194, Bug #83140)

     * If InnoDB statistics were incorrect, FOUND_ROWS() could
       return 1 even when the previous SELECT returned no rows.
       (Bug #24714857, Bug #83110)

     * ALTER TABLE on a temporary table could raise an assertion
       if a nontemporary table with the same name existed. (Bug
       #24713918, Bug #83117)

     * CMake now sets -DWITH_NUMA=ON for Debian platforms where
       possible. (Bug #24689101)

     * To better provide atomic file creation, Debian packaging
       scripts now use the coreutils install command rather than
       touch, chmod, and chown. (Bug #24688682)

     * Enabling the DISABLE_SHARED CMake option caused
       compilation failure. (Bug #24687701, Bug #83039)
       References: This issue is a regression of: Bug #24481181.

     * The BIN(), OCT(), and HEX() functions could mishandle
       values of the BIT data type. (Bug #24686658, Bug #83031)

     * For debug builds, an invalid utf8 character in the
       comment of a CREATE EVENT or ALTER EVENT statement raised
       an assertion. This now produces an
       ER_INVALID_CHARACTER_STRING error. (Bug #24679962)

     * The encoding for the utf8 character set permitted
       characters between U+D800 and U+DFFF as valid, though
       they are reserved for surrogate pairs and do not directly
       represent characters. They are now considered invalid.
       (Bug #24672415)

     * A query could produce incorrect results if the WHERE
       clause contained a dependent subquery, the table had a
       secondary index on the columns in the select list
       followed by the columns in the subquery, and GROUP BY or
       DISTINCT permitted the query to use a Loose Index Scan.
       (Bug #24671968, Bug #83005)

     * After a RENAME TABLE operation on a table with a foreign
       key, the generated constraint name was not updated in
       TABLE_CONSTRAINTS. (Bug #24666169)

     * On macOS, CMake AddressSanitizer support did not work.
       (Bug #24661626, Bug #82976)
       References: This issue is a regression of: Bug #23759968.

     * Compilation failed on macOS 10.11 with Xcode 8.0. (Bug
       #24661523, Bug #82975)

     * Index hints applied to invisible indexes produced no
       error. (Bug #24660093, Bug #82960)

     * In some cases, INFORMATION_SCHEMA.KEY_COLUMN_USAGE did
       not report data for all foreign key constraints. (Bug
       #24655803, Bug #82961)

     * REPLACE() on large strings could be slow and unkillable.
       (Bug #24652792)

     * The DebugPrintTest and DebugPrintDeathTest unit tests did
       not handle divide-by-zero testing properly on the Aarch64
       platform. Thanks to Alexey Kopytov for the patch. (Bug
       #24624555, Bug #82889)

     * Compilation on FreeBSD using GCC 6 did not work. (Bug
       #24619561, Bug #82922)

     * Changes made to mysqld_safe in recent MySQL releases
       require the --ledir, --mysqld, --mysqld-version options
       to be specified on the command line; they can no longer
       be specified in option files. This could cause failure of
       init scripts that invoke mysqld_safe. Such scripts now
       pass the value of the MYSQLD_OPTS environment variable as
       the first command-line argument to mysqld_safe, with the
       value set to such command line-only mysqld_safe option
       values as may be required. On platforms that use
       /etc/sysconfig/mysqld, the MYSQLD_OPTS value can be set
       in that file with a line such as this:
MYSQLD_OPTS=" --ledir=/mysqld_ledir --mysqld=my_wrapper "

       The value of MYSQLD_OPTS can also include mysqld options
       for mysqld_safe to pass to mysqld. (Bug #24619033, Bug
       #82920)
       References: This issue is a regression of: Bug #24464380,
       Bug #24483092, Bug #25088048, Bug #25378439, Bug
       #25378565.

     * SET PERSIST innodb_buffer_pool_size = value stored the
       original value of innodb_buffer_pool_size to
       mysqld-auto.cnf, not the new value. (Bug #24613005, Bug
       #82905)

     * For SLES packages, a typo in the installation script
       postamble prevented some cleanup from occurring. (Bug
       #24605300, Bug #82389)

     * Some messages written by the server to the error log
       while upgrading the data directory were missing the
       standard timestamp and process ID information. (Bug
       #24600054, Bug #82874)

     * It was possible for the session values of the
       Last_query_cost and Last_query_partial_plans status
       variables to be accessed before they had been
       initialized. (Bug #24596263)

     * Warnings occurring during CREATE TABLE ... SELECT could
       cause a server exit. (Bug #24595992)

     * For LOAD DATA used to insert data into an updateable
       view, the check to verify whether a column is actually
       updatable was missing. (Bug #24595937)

     * The server could dereference a null pointer when a
       deterministic function returning LONGTEXT was used in a
       subquery. (Bug #24595581)

     * A view altered with ALTER VIEW might be dropped if the
       statement failed with an error. (Bug #24594140)

     * Conversion of JSON documents to string could be slow if
       the document was large and contained many signed
       integers. (Bug #24586888)

     * The data dictionary can contain entries for temporary
       tables (names beginning with #sql). These tables were
       exposed to INFORMATION_SCHEMA queries and through SHOW
       statements. This could cause mysqldump and mysqlpump to
       fail when they attempted to dump such tables. Temporary
       tables are now hidden to INFORMATION_SCHEMA queries and
       SHOW statements. (Bug #24580599, Bug #24571427)

     * When a view was defined, the character set of the
       definition was not considered. If this differed from the
       default character set, table names used in the view might
       not be recognized, causing the view to be marked invalid.
       For debug builds, an assertion could be raised if an
       error occurred while parsing an ALTER VIEW statement and
       the diagnostics area was empty. (Bug #24580586)

     * For LOAD DATA statements, input data with too many column
       values produced only a warning, rather than an error as
       in MySQL 5.6. An error now occurs. (Bug #24577194, Bug
       #82830)

     * Using SET PERSIST with the global_log system variable was
       ineffective. (Bug #24569624, Bug #82807)

     * In the Performance Schema variables_info table, the
       VARIABLE_SOURCE column was not set properly for some
       boolean options specified in option files without a
       variable. (Bug #24567960)

     * The .mylogin.cnf option file is intended for use by
       client programs, but the server was reading it as well.
       The server no longer reads it. (Bug #24557925)

     * Use of boost::chrono was replaced with std::chrono
       because the former was causing link errors. (Bug
       #24556808, Bug #82781)

     * The X Plugin was built with compilation options different
       from other plugins. (Bug #24555770, Bug #82777)

     * When populating the variables_by_thread table, the
       Performance Schema could attempt to access session
       variables of other threads that were being deinitialized.
       (Bug #24555658)

     * Users without proper privileges could load and unload
       server components. (Bug #24528148)

     * Concurrent execution of INSTALL COMPONENT and UNINSTALL
       COMPONENT statements could cause a server exit. (Bug
       #24527148)

     * On Debian/Ubuntu platforms, the systemd startup script
       for MySQL ignored datadir settings in /etc/mysql/my.cnf.
       (Bug #24517024, Bug #82709)

     * With a LOCK TABLES statement in effect, DML statements on
       a table that had triggers could cause a server exit. (Bug
       #24506766)

     * When the WITH_INNODB_MEMCACHED CMake option is enabled,
       memcached now can be built on Solaris 11 and 12 using the
       Developer Studio 12.5 compiler. (Bug #24504155, Bug
       #82692)

     * Parallel slave threads running account-management
       statements could fail due to a race condition in handling
       privilege cache locks. (Bug #24503606)

     * Executing ALTER TABLE on a table that has triggers
       concurrently with other DDL operations could result in a
       corrupted data dictionary. (Bug #24497803)

     * If mysqladmin shutdown encountered an error determining
       the server process ID file, it displayed an error message
       that did not clearly indicate the error was nonfatal. It
       now indicates that execution continues. (Bug #24496214)

     * For the null_audit plugin, setting the
       null_audit_event_record system variable improperly could
       cause a server exit. This variable should be set only
       from within the null_audit plugin, so it is now read
       only. (Bug #24493829, Bug #82670)

     * In certain contexts, an expression such as IF(col_name >
       5000, (1 / col_name), 5000) could get a type of
       DECIMAL(6,4), which would truncate results. (Bug
       #24492965, Bug #82668)

     * The data structure used for ZEROFILL columns could
       experience memory corruption, leading eventually to a
       server exit. (Bug #24489302)

     * Library search path handling on Solaris was incorrect.
       (Bug #24487934, Bug #82646)

     * Operation of the mysql-multi.server.sh script was based
       on my.cnf in the data directory. That option file is no
       longer used, so mysql-multi.server.sh has been removed.
       (Bug #24487870)

     * A query could produce incorrect results if MIN() or MAX()
       in a subquery referred to an indexed column. (Bug
       #24484060, Bug #82638, Bug #24657798, Bug #82965)

     * SHOW TRIGGERS output order could differ on Linux and
       Windows. (Bug #24482919, Bug #82637)

     * mysqld_safe attempted to read my.cnf in the data
       directory, although that is no longer a standard option
       file location. (Bug #24482156)

     * After running mysql_upgrade, executing an INSTALL
       COMPONENT statement could cause a server exit. (Bug
       #24453571)

     * A regular expression pattern match into a large string
       could result in a server exit due to memory allocation
       failure or integer overflow. (Bug #24449076, Bug
       #24449090)

     * Starting the server with a MySQL 5.7 data directory
       resulted in failure due to absence of the default_roles
       and role_edges system tables. (Bug #24447771)

     * An incorrect error was reported for CREATE TABLE
       statements with a large value for the CONNECTION table
       option. The value is now limited to 1024 bytes. (Bug
       #24437124)

     * An assertion could be raised if an ER_LOCK_WAIT_TIMEOUT
       error occurred during execution of SHOW CREATE TRIGGER.
       (Bug #24420809, Bug #82483)

     * Constant folding could produce incorrect results for
       large unsigned integers. (Bug #24401273, Bug #82425)

     * Use of very long subpartition names could result in a
       server exit. Now partition or subpartition names larger
       than 64 characters produce an ER_TOO_LONG_IDENT error.
       (Bug #24400628, Bug #82429)

     * The Gis_wkb_vector<Gis_point> copy constructor was not
       explicitly instantiated, causing build problems for the
       Intel compiler. (Bug #24397833, Bug #82358)

     * Privilege escalation was possible by exploiting the way
       REPAIR TABLE used temporary files. (Bug #24388746)

     * A race condition between UNINSTALL PLUGIN and SHOW
       PLUGINS could result in a server exit. (Bug #24344026)

     * With ROW mode binary logging, component installation
       raised an assertion. (Bug #24343582)

     * A potential memory leak related to roles was fixed. (Bug
       #24337928)

     * Subqueries that were converted to semi-joins and
       programmatically generated an INFORMATION_SCHEMA table
       could incorrectly treat the INFORMATION_SCHEMA table as
       empty.
       A workaround for this problem prior to the bug fix: SET
       optimizer_switch='semijoin=off'; (Bug #24287772, Bug
       #82214)

     * mysqldumpslow failed to parse timestamps in the slow
       query log; it had not been updated to track a change in
       log timestamp format. (Bug #24007040)

     * The AppArmor profile installed by Ubuntu packages was
       missing an entry permitting libnuma to read a /sys
       hierarchy path, resulting in server startup failure. (Bug
       #23854929)

     * The optimizer could incorrectly treat RAND() as a
       constant for queries subjected to semi-join
       transformation. (Bug #23854015)

     * For debug builds, unequal-length binary operands for bit
       operators could raise an assertion. (Bug #23853628)

     * If a transaction rollback request rolled back only a
       statement and not the whole transaction, any attempt at
       attaching another operation to the transaction raised an
       assertion. (Bug #23753319, Bug #82143)

     * STRCMP() for arguments with the utf8mb4_unicode_ci
       collation could return results different from ORDER BY.
       STRCMP() has been corrected. (Bug #23752284, Bug #82132)

     * Complete logical backups made with mysqlpump could not be
       restored if GTIDs were enabled. (Bug #23748432)

     * Infinite recursion could occur if the audit_log plugin
       signalled an error while handling an error. (Bug
       #23717558, Bug #82052)

     * Messages written by the audit_log plugin to the error log
       regarding MYSQL_AUDIT_CONNECT event failures now print
       the underlying error cause as well to aid debugging. (Bug
       #23710632)

     * MySQL now uses readdir() rather than readdir_r(). The
       latter has been deprecated since glibc 2.24 and caused
       debug builds of MySQL and builds using GCC 6.1 to fail.
       Additionally, several problems resulting in GCC 6.1
       compiler warnings were corrected. (Bug #23708395, Bug
       #24437737, Bug #82515, Bug #24459890, Bug #25103242)

     * FORCE INDEX was ineffective for SELECT COUNT(*) queries.
       (Bug #23596760, Bug #81854)

     * During startup, the server creates a lock file for the
       Unix socket file (for example, mysql.sock.lock as a lock
       file for mysql.sock). If the server failed to write the
       process ID to the lock file, it failed to remove that
       file, which could cause subsequent server startups to
       fail until the file was removed manually. (Bug #23582603,
       Bug #81838)

     * For debug builds, queries executed using
       Item_func_spatial_collection::val_str() could raise an
       assertion. (Bug #23573720)

     * For audit log events in the connection class, the
       connection_type value was available only for connect
       events. The value is now available in connect,
       disconnect, and change-user events. (Bug #23541550)

     * The audit_log plugin audit_log_filter_remove_filter()
       function caused a server exit if given a NULL argument.
       (Bug #23522793)

     * Attempts to configure MySQL without the FEDERATED storage
       engine failed (the CMake
       -DWITH_FEDERATED_STORAGE_ENGINE=0 option did not work).
       (Bug #23508203, Bug #81665)

     * On Solaris, gettimeofday() could return an invalid value
       and cause a server shutdown. (Bug #23499695)

     * The keyring_file plugin could attempt to write keys to
       its storage file when the file did not exist. To ensure
       that keys are flushed only when the correct storage file
       exists, keyring_file now stores a SHA-256 checksum of the
       keyring in the file. Before updating the file, the plugin
       verifies that it contains the expected checksum. (Bug
       #23498254)

     * START GROUP REPLICATION uses stacked Srv_session and did
       not return to the correct thread. START GROUP REPLICATION
       and STOP GROUP REPLICATION are now removed from the list
       of permitted commands. (Bug #23337984)

     * A union query resulting in tuples larger than
       max_join_size could result in a server exit. (Bug
       #23303485)

     * Grant tables with incorrect structure may cause problems
       in user management operations. As a consequence of the
       fix for this, for any operation that modifies a grant
       table, the server now checks whether the table has the
       expected structure and produces an error if not.
       mysql_upgrade must be run to update the tables to the
       expected structure. (Bug #23295423, Bug #25095876, Bug
       #25448037)

     * ST_ExteriorRing() could cause a server exit due to being
       passed an invalid WKB string believed to be valid. (Bug
       #23280574)

     * For debug builds, failure to prepare a branch of an XA
       transaction could lead to a server exit. (Bug #23264552,
       Bug #81375)

     * The optimizer could choose ref access on a secondary
       index rather than range access on the primary key, even
       when the cost was higher. (Bug #23259872, Bug #81341)

     * An instance of the disk-full error message contained the
       wrong error code. (Bug #23247332, Bug #81346)

     * For a query with ORDER BY and LIMIT, an optimizer trace
       did not record the optimizer's switch to a different
       index. (Bug #23227428, Bug #81250)

     * Improper handling of a lock used by the version_tokens
       plugin and user-defined functions could result in a
       server exit if a UDF was called while version_tokens was
       being uninstalled. (Bug #23210850)

     * The QUOTE() function could allocate excessive memory. A
       limit of max_allowed_packet bytes is now imposed and
       returns NULL with a warning for attempts to allocate
       more. (Bug #23195404)

     * For some deeply nested expressions, the optimizer failed
       to detect stack overflow, resulting in a server exit.
       (Bug #23135667)

     * For sessions created through the X Plugin, incorrect
       thread attachment/detachment could cause a server exit.
       (Bug #23057045)

     * When attempting to locate the data directory, mysqld_safe
       incorrectly considered $MY_BASEDIR_VERSION/var as one of
       the possible locations. (Bug #23013510, Bug #80866)

     * For some generated columns, character set conversion of
       the column definition for table rebuilds could change
       column values. (Bug #22991924)

     * If a query performed a GROUP BY on a column of a derived
       table and the select list contained an expression mixing
       an aggregate function and the group column, an error was
       raised if the ONLY_FULL_GROUP_BY SQL mode was enabled.
       (Bug #22924183, Bug #80726)

     * A binary (in-place) upgrade from MySQL 5.6 to 5.7
       followed by a data export performed using mysqlpump
       resulted in an Invalid default value for date_column
       error for attempts to reload the dump file. (Bug
       #22919028, Bug #80706)

     * A failed cast of a long float to integer could cause a
       server exit. (Bug #22907691)

     * On Unix and Unix-like systems, the error log file
       resulting from specifying --log-error without an option
       value was incorrectly created in the directory of the PID
       file if the --pid-file option was also given. (Bug
       #22900354)

     * The main.log_tables-big test case could be unstable on
       highly loaded hosts. Thanks to Laurynas Biveinis for the
       patch. (Bug #22874167, Bug #80607)

     * SQL statements executed through the X Plugin were not
       instrumented in the Performance Schema. (Bug #22859462)

     * The rpl.rpl_key_rotation test case did not synchronize
       properly with the master server. Thanks to Laurynas
       Biveinis for the patch. (Bug #22838596, Bug #80531)

     * DROP INDEX operations could fail due to inconsistent
       handling of index prefix lengths for TEXT-type columns
       (TINYTEXT and so forth). (Bug #22740093, Bug #80392)

     * Metadata locking on stored routine names was performed on
       a case-sensitive basis, but routine names are not case
       sensitive. (Bug #22700385)

     * Queries that used an aggregate function with DISTINCT
       could produce incorrect results. (Bug #22686994, Bug
       #80310)

     * The innodb_numa_interleave system variable was
       erroneously available on some systems that were not
       NUMA-enabled. Thanks to Tomislav Plavcic for the patch.
       CMake now sets the default WITH_NUMA value based on
       whether the current platform has NUMA support. For
       platforms without NUMA support, CMake behaves as follows:

          + With no NUMA option (the normal case), CMake
            continues normally, producing only this warning:
            NUMA library missing or required version not
            available

          + With -DWITH_NUMA=ON, CMake aborts with this error:
            NUMA library missing or required version not
            available
       (Bug #22678436, Bug #80288)

     * Certain SQL queries involving complex WHERE conditions
       could cause warnings, memory corruption, or a server
       exit. (Bug #22671573)

     * When taking the server offline, a race condition within
       the Performance Schema could lead to a server exit. (Bug
       #22551677)

     * On macOS, if a table with an associated trigger was
       renamed to a new name containing both lowercase and
       uppercase characters, DROP TRIGGER for the trigger
       resulted in an ER_NO_SUCH_TABLE error for the table. (Bug
       #22512899, Bug #79873)

     * In the MYSQL_FIELD C API structure, the org_table value
       for derived tables was *, which could cause failure for
       queries that depend on this value. The org_table value
       for views and derived tables now is set as follows: If
       the column is selected from a view, org_table names the
       view. If the column is selected from a derived table,
       org_table names the base table. If a derived table wraps
       a view, org_table still names the base table. If the
       column is an expression, org_table is the empty string.
       (Bug #22364401, Bug #79641)

     * For RPM packages, the default error-log location in the
       deployed /etc/my.cnf file differed from the location in
       the installed logrotate script, causing logrotate to
       fail. (Bug #22322685)

     * The Performance Schema
       events_statements_summary_by_digest table could contain
       multiple rows for the same statement digest and schema
       combination, rather than the expected single (unique)
       row. (Bug #22320066, Bug #79533)

     * For Performance Schema system and status variable tables,
       variable values expressed in a character set different
       from utf8 could be truncated or incorrect. (Bug
       #22313205)

     * For debug builds, altering a table partitioning
       expression using an expression attribute with an invalid
       UTF-8 name caused an assertion to be raised. (Bug
       #22152229)

     * After performing inserts in a table containing an
       AUTO_INCREMENT column and then performing a SELECT
       operation, the LAST_INSERT_ID() returns the correct
       value, but the value of the mysql_insert_id() C API
       function was being reset to 0. (Bug #22028117, Bug
       #78778)

     * On Ubuntu, error messages were displayed during upgrades
       from Community to Commercial packages that made it appear
       as though mysqld and my_print_defaults had not been
       installed. Those messages were spurious and have been
       silenced. (Bug #21807248)

     * With the use_index_extensions flag of the
       optimizer_switch system variable disabled, some SELECT
       DISTINCT queries could return incorrect results. (Bug
       #21749123, Bug #78244)

     * An invalid string value in the WHERE clause of an UPDATE
       statement, caused an index scan rather than a range scan
       to be used. For values not present in the index, this
       could be much slower. Now the optimizer determines this
       to be an "impossible WHERE" condition. (Bug #21032418,
       Bug #76933)

     * Debian packages were missing an AppArmor-related include
       file and incorrectly were marked dependent on AppArmor
       (making it impossible to disable AppArmor by uninstalling
       it). (Bug #20768958)

     * When the automatic_sp_privileges system variable was
       enabled, it did not have the expected effect for
       anonymous users. (Bug #20266641)

     * In a replication environment, SET PASSWORD or ALTER USER
       could fail to execute on the slave due to failure to
       parse the hash string correctly. (Bug #20228478)

     * The optimizer resolve_const_item() function called
       Item_decimal() with the last two arguments in the wrong
       order. (Bug #19062566)

     * An in-place ALTER TABLE operation failed to report an
       error when adding a DATE or DATETIME column under these
       conditions: a) the column was NOT NULL and no default
       value was supplied; b) strict and NO_ZERO_DATE SQL modes
       were enabled; c) the table was not empty.
       An ALTER TABLE operation failed with an error rather than
       a warning when adding a DATE or DATETIME column under
       these conditions: a) the column was NOT NULL and no
       default value was supplied; b) strict SQL mode was
       enabled and NO_ZERO_DATE SQL mode was not enabled; c) the
       table was not empty. (Bug #16888677)

     * Inserting a TIME, DATE, or TIMESTAMP value with a
       fractional seconds part into a column having the same
       type but fewer fractional digits resulted in rounding.
       This differs from MySQL 5.5, which used truncation rather
       than rounding. To enable control over this behavior, a
       new TIME_TRUNCATE_FRACTIONAL SQL mode is available. The
       default is to use rounding. If this mode is enabled,
       truncation occurs instead. (Bug #16583910, Bug #68760)

     * NOT IN subqueries could produce incorrect results when an
       index prefix of an inner table was used. (Bug #13915291)

     * On non-Linux Unix systems, the mysql.server startup
       script used the Linux command pidof rather than pgrep.
       (Bug #13788154, Bug #64342)

     * Starting multiple instances of mysqld_safe after an
       abnormal server exit could result in one mysqld_safe
       instance killing another. As a consequence of the bug
       fix, the mysqld_safe.pid file is no longer used. (Bug
       #11751149, Bug #41908)

     * The --help message for mysqld_safe was corrected to
       mention that the --no-defaults, --defaults-file, and
       --defaults-extra-file options, if given, must be the
       first argument. (Bug #11745176, Bug #11192)

     * The bounds check for the XML parser position stack for
       each level (which has a fixed depth) used the size of the
       array as the upper limit, and so was off by one. This is
       fixed by decreasing the allowable depth by one, which
       actually matches the maximum number of elements in the
       position stack. (Bug #83871, Bug #25111907)
       References: See also: Bug #14040071, Bug #15948580.


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