MySQL 8.4 Release Notes  /  Changes in MySQL 8.4.9 (2026-04-21)

Changes in MySQL 8.4.9 (2026-04-21)

Note

These release notes were created with the assistance of MySQL HeatWave GenAI.

Atomic DDL Notes

  • It was not possible to drop columns, on a table with virtual columns, using LOCK=NONE. (Bug #83557, Bug #24962142)

Audit Log Notes

  • Fixed an issue related to processing certain gzip files. The MySQL Server has been updated to relax the .gz header checks, allowing ordinary gzip files to be processed. Errors were returned similar to the following:

    Invalid audit log file content

    (Bug #38980223)

Compilation Notes

  • The included zlib library has been upgraded to version 1.3.2. (Bug #38987448)

SQL Function and Operator Notes

  • Fixed an issue relating to the DEFAULT() function. (Bug #39057054)

InnoDB Notes

  • Memory usage during FTS index construction for large tables has been optimized. (Bug #39040226)

  • Fixed an issue relating to multi-value indexes. (Bug #39040128)

  • Fixed an issue in the parallel reader. (Bug #39033858)

  • dict_sdi_create_idx_in_mem function added columns in a different order than expected, with the compressed_len and uncompressed_len fields swapped. (Bug #38810801)

  • Under certain circumstances, running CREATE INDEX with a high value for --innodb_parallel_read_threads could cause the disk space to fill up, leading to disk space exhaustion. (Bug #38370155)

  • Fixed an issue related to TRUNCATE TABLE. (Bug #38169053)

  • Under certain circumstances, when calculating the maximum possible index record size, an assertion failure could occur. (Bug #85060, Bug #25579578)

JSON Notes

  • Fixed an issue relating to processing of JSON files. (Bug #39000847)

Optimizer Notes

  • Fixed an issue relating to optimized prepared DELETE and UPDATE statements. (Bug #39071552)

  • Fixed an issue relating to Batched Key Access path and partitioning. (Bug #38947039)

  • Fixed an issue relating to query management. (Bug #38928287)

  • Fixed an issue relating to memory management. (Bug #38573278)

  • Queries using semi join with materialization may return incorrect results due to a missing condition.

    Our thanks to Jingqi Tian and the team at Alibaba. (Bug #38110792)

  • Fixed an issue relating to the Optimizer's SQL planner. (Bug #35634700)

  • When errors and warnings occured during background histogram updates, the conditions in the diagnostic area were not cleared, leading to future background histogram updates emitted the same stale conditions to the error log.

    Our thanks to Tony Chen and the team at Amazon for the contribution. (Bug #119922, Bug #38983545)

  • A previous fix changed range analysis for non-binary string collations, when a string constant in a range predicate was longer than the indexed column, no index range was formed, unless the collation was known to be safe. This resulted in queries, which should have used efficient range plans, using index or table scans.

    Our thanks to Yakir Gibraltar for the contribution. (Bug #118009, Bug #37849917)

    References: This issue is a regression of: Bug #35169384.

  • A histogram generated by ANALYZE TABLE UPDATE HISTOGRAM ON col_name was not be accepted by ANALYZE TABLE UPDATE HISTOGRAM ON col_name USING DATA ... if the histogram was built on a bigint column with values outside the uint32 range.

    Our thanks to Tianfeng Li for the contribution. (Bug #116611, Bug #37269033)

  • In an explain expanded query, join order hints were not printed with a valid syntax.

    Our thanks to Kaiwang Chen for the contribution. (Bug #116084, Bug #37053765)

  • Conditions on const tables and on previously joined tables were not consistently taken into account when building ranges in get_quick_record_count(). This could lead to suboptimal or incorrect range estimates, especially when range predicates depended on values from const or earlier-joined tables.

    Our thanks to Xingyu Yang for the contribution. (Bug #112737, Bug #35912840)

Packaging Notes

  • Building with PGO (Profile Guided Optimization) is now also supported for RPM builds on SLE/openSUSE and Fedora, by adding --define=with_pgo 1 to the rpmbuild command line. (Bug #38915967)

  • For platforms on which OpenSSL libraries are bundled, the linked OpenSSL library for MySQL Server has been updated to version 3.5.5. For more information, see OpenSSL 3.5 Series Release Notes. (Bug #38867109, WL #17209)

Performance Schema Notes

  • It is now possible to enable or disable Telemetry meters from the command line or configuration file using the performance-schema-meter parameter, on server startup.

    See Server Meters. (Bug #36698082)

Thread Pool Notes

  • Under high load, when using Thread Pool, connections could hang. (Bug #38693319)

Bugs Fixed

  • Fixed an issue relating to Information Schema privileges. (Bug #35243416, Bug #37387633)

  • The SQL parser consumed a large amount of memory when parsing very large queries with many large IN clauses.

    As of this release, the SQL parser's memory management has been improved. (Bug #105004, Bug #33390851)