The server could close unexpectedly if
audit_log_encryption_password_get(was called. (Bug #33296125)keyring ID)
The version of
libfido2used with MySQL was upgraded to 1.17.0. (Bug #39478664)Fixed a potential memory leak in the comp_err utility. (Bug #36532183)
-
The following replication system variables are deprecated in this release and scheduled for removal in a later release:
(WL #17300)
InnoDB: Fixed a debug assertion in
row_upd_rec_in_place()for non-versionedROW_FORMAT=REDUNDANTrows. (Bug #39165747)InnoDB: During a buffer-pool resize, Adaptive Hash Index could be disabled in mysqld-auto.cnf even though innodb_adaptive_hash_index=ON. (Bug #39157211)
InnoDB: Fixed an issue relating to table maintenance and clean-up. (Bug #39091376)
InnoDB: Fixed an issue relating to unique indexes. (Bug #38501299)
-
InnoDB: Under certain circumstances, when adding an AUTO_INCREMENT column to an existing table, some records in that table could be skipped, resulting in inaccurate values in the AUTO_INCREMENT column.
Our thanks to Huaxiong Song and the team at Alibaba for the contribution. (Bug #115136, Bug #37105825)
Updating a JSON relational duality view that deleted rows from a nested child base table could violate foreign-key constraints. JSON Duality View update processing now performs deletes first, in reverse binding order, before inserts and updates are executed. (Bug #39566804)
Fixed an issue relating to JSON Schema validation. (Bug #39489024)
Fixed an issue relating to processing JSON date values. (Bug #39361343)
Fixed an issue relating to processing of nested arrays. (Bug #39255759)
Fixed an issue relating to metadata validation. (Bug #39255734)
JSON_VALUE()withRETURNING DATETIMEand aDEFAULTvalue could return an invalid constant date when the expression was used in aDATEcontext, silently affecting predicates and joins. The datetime value is now extracted before narrowing to a date. (Bug #120788, Bug #39649893)
-
mysql_tzinfo_to_sql generated unnecessary warnings. For example:
Warning: Unable to load '/usr/share/zoneinfo//iso3166.tab' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo//leap-seconds.list' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo//leapseconds' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo//tzdata.zi' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo//zone.tab' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo//zone1970.tab' as time zone. Skipping it.As of this release, those warnings are suppressed.
Our thanks to Daniƫl van Eeden for the contribution. (Bug #115021, Bug #36624161)
Fixed an issue relating to
subquery_to_derived. (Bug #39525738)Fixed an issue relating to
ROLLUPqueries. (Bug #39501528)Fixed an issue related to error handling in aggregation of decimal data. (Bug #39474810)
Fixed an issue relating to error-handling. (Bug #39272322)
Fixed an issue relating to user-variable handling. (Bug #39243027)
Fixed an issue relating to Common Table Expressions with
subquery_to_derivedenabled. (Bug #39179197)Fixed an issue in
ExtractValue(). (Bug #39138426)-
Fixed an issue relating to dynamic scan execution.
Our thanks to Mengchu Shi and the team from Alibaba for the contribution. (Bug #38657550)
Under certain circumstances, filters using
IFNULLreturned incorrect results. (Bug #36448705)-
Temporal results returned by GREATEST(), LEAST(), or COALESCE() could report an incorrect collation through the client protocol and the COLLATION() function. Temporal values use the binary collation, but these multi-purpose functions did not apply the required translation. Temporal results from these functions now correctly report the binary collation.
Our thanks to Dirkjan Bussink for the contribution. (Bug #117543, Bug #37626671)
-
Some
LEFT JOINqueries withORconditions displayed dynamic range access inEXPLAIN, but still performed full scans of the inner table at execution time. This occurred because the optimizer did not recognize eligible outer-join predicates when evaluating range access.The optimizer now considers these predicates for dynamic range analysis, allowing eligible
LEFT JOINqueries to use an index range scan re-planned for each outer row instead of repeatedly scanning the full inner table.Our thanks to Hope Lee for the contribution. (Bug #113288, Bug #36061036)
-
Using a view created with one or more CTE definitions could result in a syntax error.
Our thanks to Vitali Vinahradski for the contribution. (Bug #111559, Bug #35536775)
-
A cached table could retain temporary-NULL state after a multi-table UPDATE involving a trigger, causing later valid statements to warn or fail under strict SQL mode. Errors were returned similar to the following:
ERROR 1048 (23000): Column 'columnName' cannot be nullOur thanks to Shun Yi and the team from Alibaba for the contribution. (Bug #110962, Bug #35373634)
TIMESTAMPDIFF()returned unexpected results when used with aWHEREclause. (Bug #108143, Bug #34499767)
Fixed an issue relating to
OBJECT_INSTANCE_BEGINcolumns. (Bug #39449066)-
A fix in a previous version caused a performance overhead in prepared statement digests. (Bug #38809758)
References: This issue is a regression of: Bug #36445818.
Replication: Fixed an issue relating to client BINLOG execution with REPLICATION_APPLIER. (Bug #39474825)
Replication: Fixed an issue relating to heartbeat handling. (Bug #39377010)
Replication: On writable replicas with log_replica_updates disabled, concurrent local commits and applier work could cause a race condition. (Bug #39259437)
Replication: Fixed an issue relating to event rotate handling. (Bug #39253359)
-
Replication: A replication receiver configured with SOURCE_RETRY_COUNT=0 could stop after a later transient connection loss, despite SOURCE_RETRY_COUNT=0 allowing unlimited reconnect attempts. The inconsistency could also cause the receiver to exit without logging an additional reconnect error.
Replication now consistently treats SOURCE_RETRY_COUNT=0 as unlimited across reconnect paths, allowing the receiver to continue retrying and catch up after repeated transient failures. (Bug #39086875)
Replication: Fixed an issue relating to error handling. (Bug #38924622)
Replication:
ALTER USERstatements with explicit empty authentication data were rewritten for the binary log without preserving the empty authentication string. This resulted inpassword_expirederrors. (Bug #38478657)Replication: If a replication channel was configured using an applier user, the privilege check for
CREATEandDROPstatements failed if those privileges are granted only at the database-specific level for that user. (Bug #37587555)Replication: Under certain circumstances, multiple simultaneous queries on the
binary_log_transaction_compression_statstable could cause the server to stop with an error. (Bug #36196212)-
Replication: If
explicit_defaults_for_timestampwas disabled, row-based replica apply or mysqlbinlog replay could stop when recomputing a stored, generatedTIMESTAMP NOT NULLcolumn fromNULLinput. Errors were returned similar to the following:Could not execute Write_rows event on table tablename; Column 'timestamp_col2' cannot be null, Error_code: 1048; handler error No Error!The row is now applied using the field default and a warning is emitted. (Bug #120128, Bug #39182574)
Fixed several issues relating to validations. (Bug #39234600, Bug #38673268, Bug #38673285, Bug #38712932, Bug #39253416, Bug #39282368, Bug #39253383, Bug #39253491, Bug #39254867, Bug #39254885, Bug #39254896, Bug #39254914, Bug #39282350, Bug #39319907)
The default value of
thread_pool_max_unused_threadsis changed from 2 to 32. (Bug #39405207)
Fixed several issues in the Clone plugin. (Bug #39252316, Bug #39245805, Bug #39245844, Bug #39253040, Bug #39253103)
It was not possible to start the server on Oracle Linux or Red Hat Linux 9 if
innodb_redo_log_encrypt=ONwas defined in the configuration file. (Bug #39181231)Fixed an issue relating to connection-attribute parsing. (Bug #39116965)
Some Polish characters were replaced by question marks (?) in client messages. (Bug #38036138)
-
Fixed an issue relating to table maintenance statement error handling after table and metadata-lock cleanup.
Our thanks to Yin Peng and the team from Tencent for the contribution. (Bug #37797437)
Deleting a row from a table with a self-referencing foreign key caused replication to fail. (Bug #119996, Bug #39091367)
-
During LOAD DATA, fields can be marked temporarily nullable while input rows are parsed. If a row supplies NULL for a NOT NULL column, LOAD DATA could leave temporary NULL state on the table fields before returning to the same thread. A later INSERT in that same session can then treat valid non-NULL values as NULL and return ER_BAD_NULL_ERROR.
Our thanks to Feng Chuanheng for the contribution. (Bug #118060, Bug #38939847)
-
Upgrading from older 8.x releases with thousands of tables, views, routines, and events caused the memory consumed by server to grow continuously, leading to significant memory spikes.
Memory management is improved for these scenarios. (Bug #117983, Bug #37832455, Bug #38031020)
-
The following were not properly defined as reserved keywords:
CUBEEXTERNALQUALIFYTABLESAMPLE
The following were not properly defined as non-reserved keywords:
MANUALPARALLEL
(Bug #114874, Bug #36584265)
-
The behavior of
INSERT()was incorrect for multibyte characters. It inserted characters even if the given position was beyond the input string.Our thanks to Dirkjan Bussink for the contribution. (Bug #113962, Bug #36289412)
-
Under certain circumstances,
LEAST()andGREATEST()could return unexpected results.Our thanks to Jinsheng Ba for the contribution. (Bug #113304, Bug #36065440)
Fixed a memory leak in
statement_digest()andstatement_digest_text(). (Bug #104115, Bug #33073320)