The server could close unexpectedly if
audit_log_encryption_password_get(was called. (Bug #33296125)keyring ID)
-
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: Under certain circumstances, removing a record could require merging B-tree pages and updating their parent page. InnoDB could underestimate the size of index records, causing it to acquire page latches in an unsafe order and potentially deadlock with a concurrent B-tree search.
InnoDB now calculates maximum record sizes more accurately, including for indexed prefix fields and spatial GEOMETRY indexes. This lets it take the required latches earlier and avoid the deadlock. As a result, some CREATE TABLE and ALTER TABLE statements that exceed documented InnoDB limits are now correctly rejected. (Bug #39129182)
InnoDB: Fixed an issue relating to table maintenance and clean-up. (Bug #39091376)
-
InnoDB: A previous InnoDB deadlock fix made row-size estimates more accurate for B-tree operations, but also made CREATE TABLE and ALTER TABLE validation stricter. As a result, some table definitions accepted by earlier MySQL LTS releases were unexpectedly rejected or produced warnings, disrupting existing applications.
As of this release, the legacy validation behavior is preserved for most DDL operations while retaining the accurate estimate where it is needed to prevent B-tree deadlocks. ALTER TABLE ... ALGORITHM=INSTANT continues to use the stricter calculation to safely handle large default values.
Our thanks to Paweł Olchawa and the team at Percona, and Meng-Hsiu Chiang and the team at Amazon for their contribution. (Bug #120323, Bug #39249507)
References: See also: Bug #39129182.
-
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)
-
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 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)
-
A fix in a previous version caused an issue where a WHERE equality condition could fail to match an existing row when a scalar subquery and its outer query referenced the same CTE.
This fix prevents cleanup of derived-table temporary keys from a query block that does not own them, preserving correct key metadata during outer-query optimization and ensuring correct result matching. (Bug #120403, Bug #39321676)
References: This issue is a regression of: Bug #35912840.
-
UNION and UNION ALL queries with pushed-down WHERE conditions involving AND and IS NULL could return incorrect rows.
Condition pushdown now preserves WHERE predicate semantics in set-operation branches. (Bug #119780, Bug #38888307)
-
Queries involving nested merged views and outer joins could return incorrect results when a view column containing a constant expression was evaluated before outer-join null completion.
The optimizer retains the correct inner-table dependency for merged view columns, ensuring outer-join expressions and related WHERE conditions are evaluated at the proper stage. (Bug #119499, Bug #38729126)
References: This issue is a regression of: Bug #35854686.
-
Queries with ORDER BY, a low LIMIT, and a reverse range scan on a composite index could return incorrect results if the optimizer removed the sort operation prematurely.
As of this release, the optimizer accounts for all key parts required for ordering before selecting a reverse index range scan.
Our thanks to Somrak Monpengpinij for the contribution. (Bug #119198, Bug #38564020)
-
Queries using CONST access on a materialized temporary table could return incorrect results after an in-memory temporary table was converted to an on-disk table.
As of this release, the temporary table's read state is reset after conversion, ensuring the expected rows remain accessible.
Our thanks to Jingqi Tian for the contribution. (Bug #116741, Bug #37308710)
-
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)
-
Queries that assigned names to derived-table columns produced by GROUP BY ... WITH ROLLUP could report an “Unknown column” error when a window function ordered by one of those names.
Materialized rollup fields now retain their derived-table column names, allowing these references to resolve correctly.
Our thanks to Hope Lee and the team at AliBaba for the contribution. (Bug #112112, Bug #35722845)
As of this release, MySQL no longer supports Enterprise Linux 7 (and associated glibc 2.17 generic).
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: 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)
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)
-
If an expression involved in condition pushdown had one view reference which was also an outer reference and one local reference, then dependency consistency checks failed while cloning the condition.
We solve this by traversing the item tree prefix and postfix. While traversing the prefix, we set the
Item_refobject to be used for setting dependency and context information for the underlying columns of the reference object; while traversing the postfix, we clear this object. (Bug #36368181) -
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)
Fixed a memory leak in
statement_digest()andstatement_digest_text(). (Bug #104115, Bug #33073320)