HeatWave: Support for Version 8.0.46-u1

HeatWave now supports MySQL database version 8.0.46-u1 (Bugfix).
Note

You can only upgrade an existing 8.0 DB system to version 8.0.46-u1. You cannot create a new DB system using this version.

Version 8.0.46-u1 (Bugfix) is of production-grade quality and includes the following changes:

Audit Log Notes

  • Fixed an issue where with legacy audit-log filtering, setting audit_log_include_accounts, clearing it to NULL, and then changing audit_log_exclude_accounts could filter out every account and stop audit logging. (Bug #35137790)
  • Fixed an issue where the server could close unexpectedly if audit_log_encryption_password_get(keyring ID) was called. (Bug #33296125)

Compilation Notes

  • The version of libfido2 used with MySQL was upgraded to 1.17.0. (Bug #39478664)

InnoDB Notes

  • Fixed a debug assertion in row_upd_rec_in_place() for non-versioned ROW_FORMAT=REDUNDANT rows. (Bug #39165747)
  • 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)

  • Fixed an issue where under high I/O load, particularly with many threads and the open-file limit exhausted, concurrent temporary-tablespace truncation could cause a deadlock and server failures while a stale buffer page was prepared for I/O. (Bug #39244016)
  • Fixed an issue relating to table maintenance and clean-up. (Bug #39091376)
  • Fixed an issue where, 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)

  • Fixed an issue where valid CREATE TABLE or INSERT operations involving an InnoDB SPATIAL KEY could be rejected with ER_TOO_BIG_ROWSIZE. Errors were returned similar to the following:

    ER_TOO_BIG_ROWSIZE(1118) (42000): Row size too large (> 8126). 
    Changing some columns to TEXT or BLOB may help. In current row format, 
    BLOB prefix of 0 bytes is stored inline.

    Our thanks to Pawel Olchawa and the team at Percona for the contribution. (Bug #120504, Bug #39433811)

  • 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)

    See also: Bug #39129182.

JSON Notes

  • Fixed an issue relating to JSON Schema validation. (Bug #39489024)

Optimizer Notes

  • Fixed an issue where invalid join order hints appeared in expanded query with semijoin. (Bug #37053765)
  • Fixed an issue relating to Common Table Expressions with subquery_to_derived enabled. (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)

Performance Schema Notes

  • Fixed an issue relating to OBJECT_INSTANCE_BEGIN columns. (Bug #39449066)

Replication Notes

  • Fixed an issue relating to client BINLOG execution with REPLICATION_APPLIER. (Bug #39474825)
  • Fixed an issue relating to heartbeat handling. (Bug #39377010)
  • Fixed an issue where, on writable replicas with log_replica_updates disabled, concurrent local commits and applier work could cause a race condition. (Bug #39259437)
  • Fixed an issue relating to event rotate handling. (Bug #39253359)
  • Fixed an issue relating to error handling. (Bug #38924622)
  • Fixed an issue where ALTER USER statements with explicit empty authentication data were rewritten for the binary log without preserving the empty authentication string. This resulted in password_expired errors. (Bug #38478657)
  • Fixed an issue where, if a replication channel was configured using an applier user, the privilege check for CREATE and DROP statements failed if those privileges are granted only at the database-specific level for that user. (Bug #37587555)
  • If explicit_defaults_for_timestamp was disabled, row-based replica apply or mysqlbinlog replay could stop when recomputing a stored, generated TIMESTAMP NOT NULL column from NULL input. 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)

X Plugin Notes

  • Fixed several issues in the X Plugin. (Bug #39268692, Bug #39268863)

Bugs Fixed

  • Fixed an issue relating to connection-attribute parsing. (Bug #39116965)
  • Fixed several issues in the Clone plugin. (Bug #39252316, Bug #39245805, Bug #39245844, Bug #39253040, Bug #39253103)
  • Fixed an issue where the server could not start on Oracle Linux or Red Hat Linux 9 if innodb_redo_log_encrypt=ON was defined in the configuration file. (Bug #39181231)
  • Fixed an issue where 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_ref object 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)

  • 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)