Web lists-archives.com

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




[This is part 3 of the announcement]

   Bugs Fixed

     * Important Change: The empty string value is now accepted
       as a key when used with JSON functions such as
       JSON_EXTRACT(). In such cases, it must be quoted. (Bug
       #79643, Bug #22366102)

     * MySQL Cluster: Previously, the mysql.ndb_binlog_index
       table was created even if the server was built without
       NDB. Now the table is created only if the server is built
       with NDB. (Bug #22874872)

     * InnoDB: Unnecessary checks were removed from the
       ut_cpuid() function which is used to fetch information
       about the CPU. (Bug #24405292)

     * InnoDB: An asynchronous read operation on a deleted
       tablespace raised an error. (Bug #24388498)

     * InnoDB: dict_col_t accessors were added to the InnoDB
       code. (Bug #24363566)

     * InnoDB: dict_col functions in the InnoDB code were
       replaced by accessors. (Bug #24361098)

     * InnoDB: dict_index_t functions in the InnoDB code were
       replaced by accessors. (Bug #24361023)

     * InnoDB: Unnecessary code that checked for and released
       reserved adaptive hash index search latches was removed.
       (Bug #24300175)

     * InnoDB: A system tablespace data file size greater than
       4G on a 32-bit operating system could result in an
       overflow condition. (Bug #23753625)

     * InnoDB: Internal methods for accessing table object data
       were added to to dict_table_t. (Bug #23748128)

     * InnoDB: An unspecified block size resulted in an empty
       INFORMATION_SCHEMA.TABLESPACES table on Windows NTFS with
       a cluster page size greater than or equal to 8K. (Bug
       #23598872)

     * InnoDB: The restriction that required the first undo
       tablespace to use space_id 1 was removed to avoid
       space_id conflicts with existing tablespaces during
       upgrade. The first undo tablespace can now use a space_id
       other than 1. space_id values for undo tablespaces are
       still assigned in a consecutive sequence. (Bug #23517560)

     * InnoDB: Internal accessor functions for iterating the
       indexes of a table were replaced with accessor methods.
       Dead code was removed. (Bug #23336108)

     * InnoDB: The mysql.innodb_index_stats and
       mysql.innodb_table_stats table definitions, which were
       previously created by an SQL script, are now hard-coded.
       As a result, the dict_table_schema_check function is
       longer required and was removed. (Bug #23336079)

     * InnoDB: The ut_snprint function was replaced by the C++11
       snprintf function. (Bug #23329353)

     * InnoDB: For consistency, instances of ulint in InnoDB
       code were replaced with space_id_t and page_no_t data
       types. (Bug #23297169)

     * InnoDB: Use of boost::atomic in InnoDB code was replaced
       with std::atomic. (Bug #23280649)

     * InnoDB: MySQL binaries were not built with the NUMA
       feature. (Bug #23259754)

     * InnoDB: References to UNIV_NONINL and
       UNIV_MUST_NOT_INLINE were removed. The fut0fut.cc and
       ut0byte.cc files, which were only necessary when
       UNIV_NONINL was defined, were also removed. (Bug
       #23150562)

     * InnoDB: The mutex_own() mapping caused warnings when
       compiling with Clang or newer GCC compilers. (Bug
       #23090278)

     * InnoDB: Compilation of InnoDB with Visual Studio 2015
       Update 2 returned warnings. (Bug #23056963)

     * InnoDB: Querying Performance Schema for InnoDB memory
       allocation event data incorrectly reported values of 0.
       (Bug #23020280)

     * InnoDB: DBUG_OFF compile-time flags were replaced by
       UNIV_DEBUG flags. To improve error log output,
       ut_dbg_assertion_failed() now uses sql_print_error() to
       display the file name, line number, and message in a
       single line. The thread ID is displayed in a subsequent
       line. (Bug #22996442, Bug #23028144)

     * InnoDB: SHOW ENGINE INNODB STATUS output displayed
       negative spin rounds per wait values.
       Thanks to Laurynas Biveinis for the patch. (Bug
       #22844987, Bug #79703)

     * InnoDB: The innodb_disable_resize_buffer_pool_debug
       option was removed. The patch for this change also
       removed a code variable and simplified the
       buf_pool_resize() function. (Bug #22755053)

     * InnoDB: After a successful ALTER TABLE ... ALGORITHM=COPY
       operation, an assertion was raised while building a
       previous version of a clustered index record. (Bug
       #22707367)

     * InnoDB: A DML operation that updated a counter in a table
       with a virtual index raised on assertion in
       row_parse_int(). (Bug #22650195)

     * InnoDB: The InnoDB memcached plugin would not load when
       compiled with libevent 2.0. (Bug #22646919)

     * InnoDB: Unused calculations for integer-based rec_per_key
       values were removed from InnoDB. Integer-based
       rec_per_key information was replaced by floating point
       index statistics in an earlier release. (Bug #22625348)

     * InnoDB: On slow shutdown, purge thread shutdown was
       initiated before the background rollback thread exited,
       resulting in an assertion failure. (Bug #22561332)

     * InnoDB: Blocks were lost in
       row_vers_old_has_index_entry() due to unfreed heaps. (Bug
       #22543834, Bug #79973)

     * InnoDB: A transportable tablespace debug test raised an
       assertion that was due to a race condition. (Bug
       #22453668)

     * InnoDB: The server failed to start due to missing undo
       tablespaces. (Bug #22452992)

     * InnoDB: InnoDB recovery asserted while attempting to
       close an undo tablespace due to buffered undo tablespace
       changes introduced by the recovery process. (Bug
       #22361764)

     * InnoDB: Reallocation of memcached-referenced memory
       raised an assertion. (Bug #22304250, Bug #79500)

     * InnoDB: Building InnoDB with C++11 returned "register"
       deprecation warnings. Handling of "register" deprecation
       warnings remained in the code after the deprecated
       "register" keyword was removed. Also, an unused
       declaration of yyset_extra() was removed. (Bug #22292704)

     * InnoDB: SHOW CREATE TABLE output for partitioned tables
       did not accurately display tablespace assignment
       information for table partitions. (Bug #22245554)

     * InnoDB: An ALTER TABLE...TRUNCATE PARTITION operation
       ignored the table's KEY_BLOCK_SIZE attribute and used the
       default value instead, which is half of the
       innodb_page_size value. (Bug #22186558, Bug #79223)

     * InnoDB: Memory leaks in innochecksum were corrected. (Bug
       #22179518)

     * InnoDB: A SPACE_ID column was added to the
       INNODB_CACHED_INDEXES table. The INDEX_ID value is no
       longer a global unique identifier. (Bug #22172026)

     * InnoDB: Creating a table with a full-text index and a
       foreign key constraint failed when foreign_key_checks was
       disabled. (Bug #22094601, Bug #78955)
       References: This issue is a regression of: Bug #16845421.

     * InnoDB: The ha_innobase::m_primary_key field was removed.
       It was redundant. A boolean predicate,
       TABLE_SHARE::is_missing_primary_key(), was added. (Bug
       #21928734, Bug #78662)

     * InnoDB: A buffer pool load operation that attempted to
       load an uninitialized page caused a Valgrind failure.
       (Bug #21747906)

     * InnoDB: Unused functions introduced by the InnoDB
       memcached plugin were removed. (Bug #21625760)

     * InnoDB: An internal global variable used by the
       innodb_buffer_pool_size configuration option was removed.
       (Bug #21512749)

     * InnoDB: An InnoDB page cleaner thread asserted during a
       buffer pool resize operation. (Bug #21473497)

     * InnoDB: Log buffer contention was reduced with the
       addition of a second buffer, allowing for concurrent log
       buffer writing and flushing. A new mutex was added to
       protect log buffer flushing.
       Thanks to Zhai Weixiang for the patch. (Bug #21352937,
       Bug #77094)

     * InnoDB: Unused InnoDB and libsql functions and variables
       were removed, and global symbols were converted to static
       keywords, where possible. (Bug #21153166, Bug #21141390,
       Bug #77146, Bug #21178589)

     * InnoDB: The SysTablespace::parse_units() function now
       returns the number of pages in a file instead of the
       number of megabytes. The SysTablespace::normalize_size()
       function was removed. Error messages in
       SysTablespace::parse_params() were revised. (Bug
       #21040199, Bug #76949)

     * InnoDB: For persistent tables, the internal unique
       identifier for InnoDB indexes (index_id) now includes a
       tablespace identifier (space_id,index_id). This change
       makes index identifiers unique at the tablespace level as
       well as the InnoDB instance level, and supports future
       work related to index identifier allocation. (Bug
       #20737524, Bug #76392)

     * InnoDB: Code related to innochecksum was cleaned up and
       reorganized. Checksum functionality is now located in
       buf0checksum.cc. (Bug #20518099)

     * InnoDB: __attribute__((nonnull)) was removed from InnoDB
       code. The attribute is no longer permitted by InnoDB
       coding guidelines. (Bug #20468234)

     * InnoDB: A new struct was added to provide a logical
       interface for handling and manipulating external BLOB
       field references. (Bug #18195972)

     * InnoDB: TRUNCATE TABLE is now mapped to DROP TABLE and
       CREATE TABLE. This change has the following implications:

          + On systems with a large buffer pool and
            innodb_adaptive_hash_index enabled, TRUNCATE TABLE
            operations previously caused a temporary drop in
            system performance due to an LRU scan that occurred
            when removing the table's adaptive hash index
            entries. The remapping of TRUNCATE TABLE to DROP
            TABLE and CREATE TABLE avoids the problematic LRU
            scan.

          + TRUNCATE TABLE is temporarily non-atomic. A server
            exit during a TRUNCATE TABLE operation can result in
            a dropped table and orphaned foreign key constraints
            in the InnoDB SYS_FOREIGN and SYS_FOREIGN_COLS
            system tables.

          + The InnoDB memcached plugin flush_all command
            invokes DELETE instead of TRUNCATE TABLE. DELETE has
            a higher overhead cost than FLUSH TABLE since it
            involves undo-logging, delete-marking, and
            eventually purging each deleted row.

          + A log checkpoint that occurred for internal truncate
            table operations on file-per-table tablespaces was
            replaced by a log flush.
       (Bug #16834993, Bug #68184, Bug #16207919)

     * InnoDB: InnoDB wasted most pages in extents used for
       fragment pages. (Bug #16204823, Bug #67963)

     * Partitioning: In some cases, an issue with partition
       pruning being attempted a second time during optimization
       after all partitions had already been pruned at parsing
       time led to an assert. (Bug #23194259)

     * Replication: In Slave_worker::write_info(), DBUG_ENTER()
       had "Master_info::write_info" as its argument instead of
       "Slave_worker::write_info". This fix corrects the
       argument. Thanks to Stewart Smith for the patch. (Bug
       #21658067, Bug #78133)

     * The client library failed to build on Solaris using the
       Cstd library. (Bug #24353920)

     * MySQL now uses readdir() rather than readdir_r(). The
       latter has been deprecated since glibc 2.24 and causes
       debug builds of MySQL to fail. (Bug #23708395)

     * On OS X, stack trace demangling now occurs for builds
       compiled using Clang, just as for GCC. (Bug #23606094)

     * For segmentation faults on FreeBSD, the server did not
       generate a stack trace. (Bug #23575445, Bug #81827)

     * CHECKSUM TABLE calculated the checksums for JSON values
       using the memory addresses of the values rather than the
       values themselves, which made the checksum vary. Now in
       such cases the calculation is based on the actual JSON
       value, and not on that value's address. (Bug #23535703)

     * libevent was built on OS X even when not needed. (Bug
       #23228287)

     * A function that returns a JSON value could cause a server
       exit if called as part of a CASE statement in a stored
       procedure. (Bug #23212765)

     * Passing NULL to a stored procedure expecting a JSON
       parameter led to an assertion failure in debug builds.
       (Bug #23209914)

     * Previously, different values were reported by SHOW ENGINE
       PERFORMANCE_SCHEMA STATUS and SELECT * FROM
       performance_schema.memory_summary_global_by_event_name
       for total memory used in the Performance Schema. The
       memory for scalable buffer pages, instrumented as
       memory/performance_schema/scalable_buffer, was missing
       from the SHOW ENGINE STATUS output. That statement now
       includes the missing memory, displayed as
       (pfs_buffer_scalable_container).memory. (Bug #23104498)

     * The -fexpensive-optimizations option to GCC caused ARM64
       and PowerPC builds to compute floating-point operations
       slightly differently from other platforms. This option
       was enabled by -O2 and higher optimization levels. The
       option now is disabled on platforms negatively affected
       by it. (Bug #23046775)

     * After a failed administrative operation such as ALTER
       TABLE ... OPTIMIZE PARTITION, selecting from the
       Performance Schema in lock-tables mode could hang. (Bug
       #23044286)

     * In builds with AddressSanitizer enabled, CAST(... AS
       BINARY) could cause a server exit. (Bug #22900560)

     * Some spatial functions were reported using a different
       spatial function name in error messages. (Bug #22883056,
       Bug #80627)

     * Fixed Valgrind warnings with Clang in optimized mode for
       the my_strtod_int() function. (Bug #22839888)

     * Precision math operations on values with 64 decimals
       could produce a 0 result. (Bug #22828692)

     * Geometry import functions that took an SRID parameter
       cast it to an unsigned 32-bit integer without warning or
       error, so negative values or values larger than unsigned
       32-bit integer range were silently converted to a number
       within the range. Now, all geometry functions that take
       the SRID as a parameter check that it is within unsigned
       32-bit integer range and produce an ER_DATA_OUT_OF_RANGE
       error if not. This also applies to GeoJSON and GeoHash
       functions that previously checked that the parameter was
       within range but returned a different error code. (Bug
       #22819614)

     * Parsing of JSON path arguments failed to distinguish
       between a NULL path and one that was syntactically
       invalid.
       This has been changed so that parsing of these paths now
       clearly distinguishes between valid non-NULL paths, NULL
       paths, and invalid paths. (Bug #22816576)

     * ST_GeomFromGeoJSON() could return an error with valid
       arguments. (Bug #22804853)

     * For debug builds, an assertion could be raised when the
       server created a temporary table to hold JSON objects.
       (Bug #22782948)

     * For debug builds with STRICT_TRANS_TABLES SQL mode
       enabled, an assertion could be raised by INSERT or
       REPLACE statements that had made changes that could not
       be rolled back and that subsequently generated an
       ER_NO_DEFAULT_FOR_FIELD error. (Bug #22635253)

     * The optimizer contained a memcpy() call that did not
       check for overlapping source and destination. (Bug
       #22537196)

     * For debug builds, a missing error check on the result of
       a subquery that accessed a JSON value could raise an
       assertion. (Bug #22522073)

     * Preparing a CREATE TABLE ... SELECT statement, then
       flushing tables (thus closing the table) and executing
       the prepared statement could cause a server exit. (Bug
       #22393309)

     * A prepared statement that used a parameter in the select
       list of a derived table that was part of a join could
       cause a server exit. (Bug #22392374, Bug #24380263)

     * Re-evaluation of a generated column expression could
       cause access to previously freed memory and a server
       exit. (Bug #22346120)

     * HANDLER read statements that searched an index when the
       target index value was not stored into the row buffer
       successfully could cause a server exit. (Bug #22321965)

     * Improper handling of numeric-to-ZEROFILL conversion for
       NULL values could lead to a server exit. (Bug #22281205)

     * Using a subquery containing a row constructor to set a
       variable in a SET statement could cause a server exit.
       (Bug #22276843)

     * If the SQL mode did not include ALLOW_INVALID_DATES, a
       query that contained invalid_date IN (subquery) and was
       handled by subquery materialization could cause a server
       exit. (Bug #22262843)

     * For the embedded server, the code following the check for
       invalid arguments was invoked with missing or incorrect
       arguments, which could lead to an improper exit. (Bug
       #22262706)

     * Queries that executed a JSON function that raised an
       error could cause a server exit. (Bug #22253965)

     * On OS X, vio_io_wait() used select(), limiting the number
       of file descriptors to 1024. Now kqueue event
       notification is used instead to avoid this limit. FreeBSD
       was changed to use kqueue as well. (Bug #22244911)

     * On Windows, setting the global log_syslog system variable
       in multiple threads could cause a server exit. (Bug
       #22180046)

     * Memory leaks could result if stored routine loading
       involved temporarily changing the default database and
       errors occurred restoring the original default database.
       (Bug #22179795)

     * CMake configuration was adjusted to check for -Wxxx
       compiler options instead of -Wno-xxx because the latter
       produce false positives for GCC. (Bug #21881753)

     * Views could evaluate user-defined or SQL functions before
       evaluating restrictions from the view definition. (Bug
       #20933307)

     * The return value from an fread() call was not checked.
       (Bug #20671150)

     * With -DENABLE_DTRACE=ON, CMake did not check whether a
       working DTrace installation was present. Now it checks
       and aborts if DTrace cannot be found. (Bug #20671056)

     * If given a relative path name for the --log-error option,
       mysqld could sent stdout and stderr to the wrong
       location. (Bug #20609063)

     * Evaluation of LEAST() and GREATEST() could use too small
       a sort buffer for datetime and string literals, causing
       an assertion to be raised. (Bug #20565160)

     * The range of error numbers for errors that are new in
       MySQL 8.0 has been designated to begin with 3500. (Bug
       #20538173)

     * Debian packaging was updated not to set the sql_mode
       system variable in my.cnf. (Bug #20535729)

     * Statements such as INSERT and LOAD DATA that use the
       REPLACE or IGNORE keyword to handle duplicate records
       could affect subsequent operations. (Bug #20017428)

     * CREATE TABLE ... SELECT where non-BIT data was selected
       from the source table into a BIT column in the
       destination table could cause a server exit. (Bug
       #19930894)

     * Compilation failed on OS X when MySQL was configured with
       -DMYSQL_MAINTAINER_MODE=1 and compiled with clang/Xcode
       6.0. (Bug #19694515, Bug #74100)

     * For CHANGE MASTER TO statements rewritten to filter the
       password before being written to the general query log,
       any MASTER_AUTO_POSITION clause was lost. (Bug #19622609)

     * Use of the VALUES() function in a SELECT clause could
       result in a server exit. (Bug #19601973)

     * A potential null-pointer dereference and memory leak in
       table-rename code were corrected. (Bug #18194270)

     * Using MATCH ... AGAINST to compare a character column and
       an aggregate function could cause a server exit. (Bug
       #17865492)

     * Slightly different values for the number of connections
       could be reported in various information sources, such as
       the Connections status variable, Performance Schema
       threads and global_status tables, and SHOW PROCESSLIST
       statement. (Bug #17666696)

     * A query with a subquery containing a set operation with
       an outer reference might cause a server exit. (Bug
       #17270896)

     * Using GRANT to change a password for an invalid user
       produced an error, but also updated the mysql.user system
       table. (Bug #17180985)

     * The parser for spatial WKT data accepted numbers such as
       0.23 but not .23, the equivalent value without the
       leading zero. Now both formats are accepted. (Bug
       #17167633)

     * Previously, if a client attempted to send connection
       attribute key/value pairs that in aggregate had a size
       larger than the value of the
       performance_schema_session_connect_attrs_size system
       variable, the Performance Schema truncated the attribute
       data. In addition, the Performance Schema wrote this
       message to the error log if the log_warnings system
       variable was greater than zero:
[Warning] Connection attributes of length N were truncated

       This message was not helpful to a DBA attempting to
       determine the problematic client, so several changes have
       been made to connection attribute handling:

          + Truncation of connection attributes still occurs for
            excessive data, but the log message is more
            informative. It includes the number of bytes lost,
            the connection identifier, and information about the
            client user. The additional information should
            enable DBAs to more easily identify clients for
            which attribute truncation occurred.

          + When truncation occurs, a _truncated attribute is
            added to the session attributes with a value
            indicating how many bytes were lost, if the
            attribute buffer has sufficient space. This enables
            the Performance Schema to expose per-connection
            truncation information in the connection attribute
            tables.

          + A new status variable,
            Performance_schema_session_connect_attrs_longest_see
            n, indicates the longest connection attribute buffer
            smaller than 64KB seen by the server. If this value
            is larger than
            performance_schema_session_connect_attrs_size,
            attribute truncation has occurred, and DBAs may wish
            to increase the latter value, or, alternatively,
            investigate which clients are sending large amounts
            of attribute data.
       For more information, see Performance Schema Connection
       Attribute Tables
(http://dev.mysql.com/doc/refman/8.0/en/performance-schema-connection-attribute-tables.html).
       (Bug #16576959)

     * For abnormal server exit on Windows, the server
       previously created a minidump file named module_name.dmp,
       where module_name is the name of the server executable
       file. To prevent earlier minidump files from being
       overwritten, minidump file names now include the process
       ID and have the form module_name..piddmp; for example,
       mysqld.exe.7296.dmp. (Bug #12779463)

     * For queries on INFORMATION_SCHEMA tables, comparisons of
       schema and table names could be case sensitive or
       insensitive, depending on the characteristics of the
       underlying file system and the lower_case_table_names
       system variable value. Furthermore, it was ineffective to
       provide a COLLATE clause to change the comparison
       properties because that clause was ignored. This has been
       changed so that COLLATE is no longer ignored and can be
       used to obtain the desired comparison properties. (Bug
       #11748044, Bug #34921)

     * FLOOR(CEIL()) truncated large BIGINT UNSIGNED arguments.
       (Bug #80873, Bug #23013359)

     * Manipulation of a value returned by the JSON_MERGE()
       function using JSON_SET() sometimes produced an invalid
       result. (Bug #80787, Bug #22961128)

     * ST_AsGeoJSON() failed when geometry arguments were
       supplied using user-defined variables. (Bug #80697, Bug
       #22912800)

     * CAST(expr AS BINARY(N) ) unexpectedly returned NULL for
       some valid values of N. (Bug #80630, Bug #22885819)

     * If rounding occurred while storing a predicate value, the
       range optimizer might not return correct results for the
       < and <= operators. (Bug #80244, Bug #22661012)

     * For the mf_iocache unit test, add a missing va_end(), fix
       a memory leak by calling my_end(), and add a target for
       the test. Thanks to Daniel Black for the patch on which
       these changes are based. (Bug #80085, Bug #22578670)

     * SELECT DISTINCT SUBSTR() could incorrectly discard values
       as duplicates for large position or length arguments. The
       same issue also affected LEFT() and RIGHT(). (Bug #80047,
       Bug #22565155)

     * SUBSTRING_INDEX(str, delim, count) did not properly
       handle count values larger than 32 bits. (Bug #79978, Bug
       #22545429)

     * For calls to CONVERT(), literal string arguments could be
       modified during execution, producing incorrect results.
       (Bug #79924, Bug #22531111)

     * REPLACE('a', BINARY 'b', NULL) returned 'a' rather than
       NULL. (Bug #79912, Bug #22523836)

     * Transaction state tracking now avoids a function that is
       not 8-bit safe, for enhanced compatibility with
       nonstandard character sets. (Bug #79905, Bug #22523383)

     * GREATEST() and LEAST() treated all integer input as
       signed. (Bug #79902, Bug #22523685)

     * Lines in the general query log were missing a tab between
       the timestamp and the thread ID. Thanks to Tsubasa Tanaka
       for the patch. (Bug #79868, Bug #22508563)

     * Some comparisons between unsigned values and negative
       upper limits could return incorrect results (for example,
       CAST(100 AS UNSIGNED) BETWEEN 1 AND -1). (Bug #79857, Bug
       #22501606)

     * The REPEAT() function did not properly handle output from
       the SUBSTR() function. (Bug #79695, Bug #22391186)

     * The JSON_TYPE() function now shows the type of BIT
       literals cast to JSON as BLOB, rather than BIT. (Bug
       #79308, Bug #22297987)

     * Configuring MySQL with the -DWITH_UBSAN=ON CMake option
       produced a server that was not fully functional. (Bug
       #79238, Bug #22194071)

     * sql_common.h, a header file included in MySQL
       distributions, included and was therefore dependent on
       hash.h, a header file not included in MySQL
       distributions. This resulted in compilation failures. To
       eliminate this dependency, sql_common.h was modified to
       no longer include hash.h. (Bug #79237, Bug #22187997, Bug
       #70672, Bug #17633467)

     * Timers used for checking maximum statement execution time
       were initialized even when the server was started with
       the --help option. If --help is given, this is no longer
       done. (Bug #79182, Bug #22172389)

     * The optimizer failed when trying to optimize away
       expressions of the form IF(true, '2015-01-01',
       '2015-01-01') IS NOT NULL. (Bug #79114, Bug #22148586)

     * Subtraction of an unsigned decimal could return a
       negative value, but with metadata type information of
       UNSIGNED BINARY. Subtraction for unsigned decimal
       subtraction now is handled the same way as for unsigned
       integer: Produce an ER_DATA_OUT_OF_RANGE error if the
       result is negative, unless the NO_UNSIGNED_SUBTRACTION
       SQL mode is enabled. (Bug #78914, Bug #22083757)

     * Handling by the HEX() function of numbers larger than
       2^64 was improved. (Bug #78828, Bug #22297983)
       References: This issue is a regression of: Bug #9854.

     * The client-side plugin deinitialization function
       signature was changed from int (*deinit)() to int
       (*deinit)(void) to avoid warnings when compiling with
       -Wstrict-prototypes. (Bug #78177, Bug #21680094, Bug
       #81419, Bug #23282498)

     * CREATE TABLE reported an incorrect error if a very long
       or incorrect path name was specified for the DATA
       DIRECTORY or INDEX DIRECTORY table option. Now
       ER_PATH_LENGTH or ER_WRONG_VALUE are reported for those
       cases. (Bug #76635, Bug #20857556)

     * The server now tries to provide more informative messages
       for these error codes: ER_CANT_CREATE_DB,
       ER_CANT_CREATE_TABLE, ER_DB_DROP_DELETE,
       ER_DB_DROP_RMDIR, ER_ERROR_DURING_COMMIT,
       ER_ERROR_DURING_ROLLBACK, ER_GET_ERRNO. (Bug #76298, Bug
       #20694494)

     * For some instances of failure to prepare an XA
       transaction, incomplete transaction cleanup could raise
       an assertion. (Bug #75809, Bug #20488921)

     * mysqld could attempt to close an invalid socket file
       descriptor. Thanks to Zhai Weixiang for the patch. (Bug
       #75778, Bug #20504513)

     * A statement of the following form converted the table
       data to latin1, but also changed the table default
       character set to latin1 and ignored the utf8 clause:
ALTER TABLE tbl_name CHARACTER SET utf8, CONVERT TO CHARACTER SET lati
n1;

       Thanks to Daniel Black for the patch. (Bug #75320, Bug
       #20279241)

     * In mysqld.cc, the abort_loop variable was quantified with
       volatile, which on some platforms could result in changes
       not being seen immediately in threads running on
       different cores. Thanks to Stewart Smith for the patch.
       (Bug #74846, Bug #20134637)

     * Calling a procedure which created a view from a trigger,
       or creating a function that called a procedure that
       executed RENAME TABLE could, under certain circumstances,
       raise an assertion. (Bug #74740, Bug #19988193, Bug
       #21198646)

     * Timestamps for server-side prepared statements could be
       written to the binary log up to a second behind
       timestamps for the corresponding nonprepared statements.
       (Bug #74550, Bug #19894382)

     * For dynamic storage engine plugins, DROP TABLE, TRUNCATE
       TABLE, and RENAME TABLE did not work due to incorrectly
       determining the engine from the .frm file. (Bug #74277,
       Bug #19902868)

     * Executed prepared statements are logged with ? parameter
       markers replaced by data values. Construction of the
       logged string was inefficient and has been improved. (Bug
       #73056, Bug #20955496)

     * Assignment by a plugin to its thread variables of string
       type could leak memory. (Bug #71759, Bug #19917521)

     * Grouping with a view could produce an
       ER_INVALID_GROUP_FUNC_USE error ("Invalid use of group
       function") when selecting from the base table did not.
       (Bug #70220, Bug #17406425)

     * Test cases that were intended to be storage
       engine-agnostic but were actually using a specific engine
       were corrected.

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