-
MySQL now calls
plugin->deinit()
with a valid plugin struct as an argument regardless of the plugin's type.Our thanks to Martin Alderete for the contribution.
Improved log messages to provide clear reasons for access denied errors when using the
authentication_ldap_sasl
plugin without proxying. (Bug #35317691)
Upgraded the bundled
googletest
andgooglemock
sources to version 1.14.0. (Bug #36562482)Added a missing dependency on
GenError
. (Bug #36551721)It is now possible on Linux systems to build MySQL using a bundled
tcmalloc
library that is provided with the source by specifying-DWITH_TCMALLOC=BUNDLED
. This is supported on Linux only. (Bug #36313839)Removed warnings raised in
sql/statement/ed_connection.cc
when building on Ubuntu 23.04. (Bug #114436, Bug #36428465)Linux
aarch64
platform binaries are now built using patchelf--page-size=65536
for compatibility with systems using either 4k or 64k for the page size. (Bug #114233, Bug #36393794)
The values for component options set using the
--loose
prefix were not read when the component was installed. (Bug #28341329)
Microsoft Windows: On Windows, MySQL Configurator was updated to support in-place upgrades as per Upgrade Paths. (Bug #36685422)
Microsoft Windows: For MSI installations on Windows, MySQL Configurator now automatically upgrades MySQL 8.4 LTS installations without user intervention. (WL #16274)
Attempting to upgrade a
MyISAM
table containing a mix of regular columns and generated columns from MySQL 5.7 to 8.0 or later led to table corruption. (Bug #105301, Bug #33503328)
The system variable
caching_sha2_password_digest_rounds
could not be set to a non-default value using X Protocol. (Bug #36402455)-
An outdated link to the MySQL documentation in the
mysql_function_names
unit test source file has been updated.Our thanks to Minha Jeong for the contribution. (Bug #113500, Bug #36137217)
-
InnoDB: MySQL unexpectedly halted on an
UPDATE
after anALTER TABLE
operation. (Bug #36571091)References: This issue is a regression of: Bug #35183686.
-
InnoDB: The log index size calculation now accounts for column order changes. (Bug #36526369)
References: This issue is a regression of: Bug #35183686.
InnoDB: File system operations performed by
InnoDB
now consistentlyfsync
the parent directory when performing directory altering tasks. (Bug #36174938)InnoDB: In debug builds, setting the
innodb_interpreter_output
debug variable would cause the server to unexpectedly halt. This is now a read-only variable. (Bug #36041032)-
InnoDB: Improved
os_innodb_umask
handling, and made it read-only. (Bug #35932118)References: This issue is a regression of: Bug #29472125.
-
InnoDB: For tables created with an index on a column that was too wide for the redundant row format (allowed before MySQL 5.7.35), an in-place upgrade silently imported the table but it was not accessible, which interfered with making backups. Now all operations that involve using the invalid index are rejected with
ER_INDEX_CORRUPT
until the index is dropped. AnER_IB_INDEX_PART_TOO_LONG
error is also reported in the error log. (Bug #35869747)References: See also: Bug #34826861.
InnoDB: An
InnoDB
assertion error referencing an invalid column index was triggered when the column index was valid. (Bug #34800754)InnoDB: With an empty
XA
transaction, shutting the server down after anXA START
would cause the server to halt unexpectedly. (Bug #32416819)InnoDB: Shutting down the replication applier or binlog applier while processing an empty XA transaction caused the system to unexpectedly halt. (Bug #32416819)
-
InnoDB: Removed unnecessary heap usage in the
Validate_files::check()
function.Our thanks to Huaxiong Song for the contribution. (Bug #115041, Bug #36626203)
-
InnoDB: If a partition table was read with
innodb_parallel_read_threads=1
, read performance greatly decreased from any table after 256 reads. InnoDB behaved as if it reached the maximum capacity of parallel read threads despite not using any.Our thanks to Ke Yu for the contribution. (Bug #114154, Bug #36347408)
InnoDB: The result from a spatial index containing a column with a spatial reference identifier (SRID) attribute was empty. In addition, using
FORCE INDEX
to force a covering index scan on a spatial index led to an assertion. (Bug #112676, Bug #114200, Bug #35894664, Bug #36361834)InnoDB:
SELECT ... GROUP BY
queries were at least twice as slow with the TempTable engine than the Memory engine. (Bug #107700, Bug #34338001)-
Replication: If a source contained a stored, generated column populated by a JSON function and
binlog_row_image
was set toMINIMAL
, any subsequent update or deletion on the underlying column failed with the following error:Invalid JSON text in argument 1 to function json_extract: 'The document is empty.'
The replica attempted to re-evaluate the generated column and failed with that error because the underlying column was unavailable. As of this release, stored, generated columns are not re-evaluated when the underlying columns are unavailable. (Bug #36515172)
Group Replication: Removed a memory leak from
/xcom/gcs_xcom_networking.cc
. (Bug #36532199)-
Group Replication: The following tables did not contain data on replication channels which did not have a configured hostname, such as Group Replication recovery channels:
As of this release, these tables contain data for partially configured Group Replication channels. (Bug #36018242)
-
JSON: Added missing checks for error handling to
NULLIF()
,COALESCE()
, and the shift (>>
) operator. (Bug #113668, Bug #35513196, Bug #36198403)References: See also: Bug #31358416.
MySQL NDB ClusterJ: Running the ClusterJ test suite resulted in an error message saying a number of threads did not exist. That was due to some wrong handling of threads and connections, which was corrected by this patch. (Bug #36086735)
On macOS, reinstated the MySQL preference pane's ability to load a custom
my.cnf
configuration file. This includes loading it before initializing a new data directory. (Bug #36630493)On Fedora 40, there were conflicts when installing MySQL 8.4.0 community server on a system with native mysql-server packages present. (Bug #36575524)
Averages of certain numbers were not always computed correctly. (Bug #36563773)
-
The following files in
strings
contained incorrect license information:mb_wc.h
ctype-uca.cc
ctype-ucs2.cc
ctype-utf8.cc
dtoa.cc
strxmov.cc
strxnmov.cc
(Bug #36506181)
In certain unusual cases, the
UpdateXML()
function did not process all of its arguments correctly. (Bug #36479091)Explaining a query which used
FORCE INDEX
on a spatial index containing a column with SRID attributes led to an unplanned exit. (Bug #36418426)Added the
ER_LOG_PARTITION_PREFIX_KEY_NOT_SUPPORTED
error definition, which references functionality added in MySQL 8.4.0. (Bug #36350938)Updated
BuildRequire
rules to align with versions now required for CMake and Bison. (Bug #36343254)-
Some prepared statements were not reprepared correctly. (Bug #36267792)
References: This issue is a regression of: Bug #34929930.
When incrementing the reference count for an expression, underlying expressions within this expression are not looked at. While removing an expression, after decrementing the reference count, even the underlying expressions were examined, which led to unintentional deletion of the underlying expressions. This issue manifested in
Item_ref::real_item()
as well as in an assert insql/item.h
. We fix this by not looking at the underlying expression unless the current expression contains the only remaining reference. (Bug #36204344, Bug #36356279)Under certain conditions,
EXPLAIN FORMAT=JSON FOR CONNECTION
sometimes led to an unplanned exit. (Bug #36189820)Under certain conditions, a race condition could result in the amount of RAM used by
TABLE_HANDLES
increasing to a maximum of 9GB. (Bug #36170903)Some
CREATE USER
statements were not handled correctly. (Bug #36022885)For a
SELECT
withORDER BY
andLIMIT
, the optimizer first chose a full table scan with a very expensive cost, then performed another check and used theperform_order_index
type of path, but this was not reflected by the cost in the optimizer plan. (Bug #35930969)-
Executing mysqldump on a replica would insert the
FLUSH TABLES
operation, an operation that writes to the binary log. NowFLUSH LOCAL TABLES
is inserted instead to prevent GTID related issues during replication due to these binary log changes.The workaround was to set the
--source-data
option to 1 or 2. (Bug #35665076)References: This issue is a regression of: Bug #33630199.
All internal ACL bitmask variables are now explicitly 32 bits (
uint32_t
). (Bug #35507223)It was not possible to add a functional index on
FIND_IN_SET()
. (Bug #35352161)Running two concurrent
OPTIMIZE TABLE
statements on the same table with fulltext indexes andinnodb_optimize_fulltext_only
enabled sometimes caused the server to exit. (Bug #34929814)-
In some circumstances, such when DDL operations were performed on a very large number of tables, the error log was flooded with warnings from background histogram updates; the offending warning was concerning a failure to acquire metadata locks on a table.
To remedy this problem we now throttle messages written to the error log from background histogram update operations, the rate being capped at one message per minute, which should suffice for the user to identify potential problems with background histogram updates. In addition, we downgrade all error events that occur during background histogram updates from errors to warnings. (Bug #114845, Bug #36574298)
-
On macOS, the DMG now installs the keyring component instead of installing keyring plugin functionality that was removed in MySQL Server 8.4.0.
The 8.4.0 workaround was to disable the "Keyring Data File" option in the preference pane or to manually remove the two keyring lines from the launchd plist. (Bug #114836, Bug #36577944)
It was possible for a deterministic stored function to return an incorrect result when the function used
JOIN ON
inside thereturn
statement. If the query needed to be reprepared due to a table metadata caused by, for example,FLUSH TABLES
between two executions, theON
clause was sometimes lost. (Bug #114235, Bug #36379879)Added the missing
mysql-community-libs-compat
package for the EL8 and EL9 platforms. (Bug #112949, Bug #35975348)The
PROCESSLIST_INFO
column ofTHREADS
was not updated when executing a prepared statement. (Bug #104121, Bug #33057164)