Fixed an issue relating to Audit Log filter UDF error-message formatting. (Bug #39472337)
The version of Boost needed to build MySQL has been raised from 1.87.0 to 1.92.0. (Bug #40006694)
MySQL CMake configuration could fail with newer Cyrus SASL versions when plugins present in older library releases were unavailable. Plugin files are now copied on a best-effort basis, permitting builds with both older and newer plugin sets. (Bug #39964171)
RapidYAML 0.16.0is now bundled for use as an optional dependency ofopentelemetry-cppwhen built with-DWITH_CONFIGURATION=ON. (Bug #39894165)MySQL Server could fail to compile with GCC 16.1 due to warnings treated as errors. (Bug #39688586, Bug #39688855, Bug #39671507, Bug #39670670, Bug #39670901)
MySQL source builds can now be configured with OpenSSL 4.0. Compatibility updates were also made for
curl,libfido2, andgRPC. (Bug #39102340)
MySQL command services did not return stored-procedure output parameters from prepared
CALLstatements. Prepared-statement multi-result support now returns those parameters as a result set to component consumers. (Bug #39836178)The public
mysql_command_servicesAPI now supports password-authenticated local Classic Protocol connections through the write-onlyMYSQL_COMMAND_PASSWORDoption. Any non-null value, including an empty string, selects normal authentication to the local server; null retains embedded behavior. Connections remain server-local and one-shot, and option-file settings are rejected. (Bug #39817209)Components using
mysql_account_database_security_context_lookupcan now query an account's lock state through the read-only Booleanaccount_lockedoption exposed bymysql_security_context_options. (Bug #39702733)-
With the default command-service DOM consumer,
mysql_use_result()could return a non-NULL result containing metadata for a nonempty query whilemysql_fetch_row()immediately returned NULL. A private cursor now exposes the materialized rows while preserving unbuffered-result semantics, row lengths, fetch-driven counts, cleanup, and metadata lifetime. Errors were returned similar to the following:Result: mysql_use_result() returns a non-NULL MYSQL_RES with valid metadata, but MYSQL_RES::data and MYSQL_RES::data_cursor are NULL. Therefore, mysql_fetch_row() returns NULL immediately.(Bug #39671681)
The default command-service DOM consumer could return incomplete
MYSQL_FIELDmetadata, including a null catalog and zero metadata-name lengths. It now returns catalogdefwith length 3 and supplies the byte lengths of the remaining metadata names, matching libmysql and Classic Protocol results. (Bug #39667008)Fixed an issue relating to concurrent operations during deinitialization of the
connection_controlcomponent. (Bug #39564040)-
MySQL REST Service (MRS) is now available as a MySQL Server component,
component_mysql_rest_service, enabling HTTPS endpoints without a separate MySQL Router process.To install, and confirm it is running, run the following:
INSTALL COMPONENT 'file://component_mysql_rest_service'; SELECT mysql_rest_service_restart(); SHOW GLOBAL STATUS LIKE 'mysql_rest_service.state';Dynamic global system variables configure the service:
mysql_rest_service.http_port: sets the HTTPS port; the default is 33443.mysql_rest_service.ssl_cert: defines the TLS certificatemysql_rest_service.ssl_key: the name of the SSL key filemysql_rest_service.ssl_cipher: the TLS 1.2 cipher list.mysql_rest_service.io_worker_threads: the I/O worker count; zero enables automatic sizing.mysql_rest_service.http_max_connections: the HTTP connection limit; the default is 1024.mysql_rest_service.http_max_request_body_size: the request body size limit. Default is 16MiB.mysql_rest_service.http_max_response_body_size: the response body size limit. Default is 16MiB.
The following status variables provide observability:
mysql_rest_service.current_http_port: the active port number.mysql_rest_service.current_tls_cert: current value ofmysql_rest_service.ssl_certsystem variablemysql_rest_service.current_tls_key: current value ofmysql_rest_service.ssl_keysystem variablemysql_rest_service.current_tls_cipher: current value ofmysql_rest_service.ssl_ciphersystem variablemysql_rest_service.current_io_worker_threads: the number of active IO worker threads-
mysql_rest_service.state: one of the following values:STOPPED: The component is loaded and the MRS backend is not running.STARTING: Backend startup is in progress.WAITING_FOR_METADATA: Startup is waiting for required MRS metadata and will retry.READY: The embedded MRS backend and HTTP listener are running.STOPPING: Backend startup cancellation or runtime shutdown is in progress.ERROR: Backend startup failed irrecoverably or a running backend terminated unexpectedly. See the MySQL Server error log.
The following UDFs enable you to manage the MRS:
mysql_rest_service_start(): Starts the REST Service backend, asynchronously.mysql_rest_service_stop(): Stops the REST Service backend, synchronously.mysql_rest_service_restart(): Restarts the REST Service backend, asynchronously.
NoteEach UDF requires the
MYSQL_REST_SERVICE_ADMINprivilege.(WL #17018, WL #17019)
-
The Health Monitor, formerly only available on MySQL HeatWave, is now available in MySQL Community Edition.
Linux provides the complete metric set, macOS supports basic memory, filesystem, and CPU collection, and Windows is not supported in this release. Unavailable metrics appear as SQL
NULLin the corresponding Performance Schema columns.See Health Monitor Component for more information. (WL #15292, WL #17324, WL #17325, WL #17327, WL #17334)
Fixed an issue relating to failed-authentication tracking and delays by the
connection_controlcomponent. (Bug #39564049)
Important Change: MySQL no longer supports OpenSSL versions older than 1.1.1. Build checks, packaging requirements, help text, and version guards now enforce the new minimum. (Bug #39546984)
Microsoft Windows: An upgrade could fail if the Firewall component was installed on the source version. The upgrade incorrectly selected the Firewall plugin's stored procedure upgrade path. (Bug #39735395, Bug #120932)
-
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.
-
When the external MeCab parser failed during deferred FULLTEXT tokenization, a base row could be committed without complete token postings, causing searches to miss the row. Parser failures now produce a client warning, including for autocommit statements. Errors were returned similar to the following:
Mecab: parse() failed: too long sentence..(Bug #39838534)
-
The error log now reports warnings when the history-list length crosses
innodb_max_purge_lagand when purge lag begins delaying DML. Existing purge-lag configuration controls the behavior; no new system variables were added.Our thanks to Tony Chen and the team at Amazon for the contribution. (Bug #39742241, Bug #120529)
After an exported table was modified, its tablespace discarded, and an older exported image imported, point lookups could return rows or values from the discarded tablespace generation. Stale Adaptive Hash Index entries are now treated as misses so lookups fall back to normal B-tree traversal. (Bug #39661793)
-
After
ALTER TABLE ... IMPORT TABLESPACEfailed, stale pages from the discarded tablespace could later trigger an assertion during eviction. Failed-import cleanup now preserves the index space identifier required to remove stale Adaptive Hash Index entries. Errors were returned similar to the following:[ERROR] [MY-013183] [InnoDB] Assertion failure: btr0sea.cc:1082:block->page.id.space() == index->space(Bug #39661792)
-
Fixed an issue relating to null input supplied to the InnoDB redo-log consumer UDF. (Bug #39632565)
References: See also: Bug #34085310, Bug #36004840.
Fixed an issue relating to
SHOW CREATEoutput for short non-SQL stored-program or library bodies. (Bug #39361183)Fixed an issue relating to validation of index pages during transportable tablespace import. (Bug #39295605)
Fixed an issue relating to parser nesting for InnoDB full-text Boolean Mode expressions. (Bug #39234789)
-
Fixed an issue relating to concurrent
COPY ALTERoperations.Our thanks to George Ma and the team at Alibaba for the contribution. (Bug #39134921)
Fixed an issue relating to renaming columns used by self-referencing InnoDB foreign keys. (Bug #39091341)
-
In debug builds, concurrent foreign-key operations with the adaptive hash index enabled could trigger an index-lifetime assertion. InnoDB now protects the referenced table throughout the foreign-key check. Errors were returned similar to the following:
Assertion failure: btr0sea.cc:1070:block_held_in_private || index_cant_be_freed(Bug #37746147)
After the final redo-recovery batch, InnoDB could write and evict every page loaded into the buffer pool, increasing recovery time and causing later rereads. It now writes and evicts only pages with buffered changes and sorts the flush lists. (Bug #37296558)
-
High-concurrency
READ COMMITTEDworkloads could perform poorly on NUMA systems because repeatedly closing read views acquired a global mutex and copied the active transaction set. Read-view objects can now be reused without taking that mutex solely for closure.Our thanks to Bin Wang of ChinaMobile for the contribution. (Bug #37050908, Bug #116005)
During InnoDB recovery, an
MLOG_FILE_EXTENDrecord for a tablespace that could not be opened could be treated as incomplete and then skipped. Recovery now tracks missing tablespaces correctly and treats non-skippable open failures as fatal. (Bug #34575037)Rebuilding an InnoDB table with
ALGORITHM=INPLACEcould produce a substantially larger.ibdfile thanALGORITHM=COPY. Page-allocation hints now help fill newly assigned extents. On older affected releases, settinginnodb_segment_reserve_factorto0.03can reduce file growth. (Bug #27362028, Bug #89158)If InnoDB page reorganization produced a size mismatch, InnoDB could continue using the reorganized page without recording the corresponding redo. A later insert followed by a server crash could consequently cause recovery failure or page corruption. The mismatch is now treated as fatal rather than allowing inconsistent redo state to continue. (Bug #116574, Bug #37258813)
-
InnoDB now caches parsed index metadata per thread while parsing redo logs rather than repeatedly allocating and reconstructing temporary objects. This improves redo parsing and Read Replica Applier performance without changing SQL syntax, interfaces, or file formats.
Our thanks to Alex Xing for the contribution. (Bug #106768, Bug #33975600, WL #17287)
The uncompressed externally stored InnoDB LOB prefix-copy path could read beyond the remaining destination-buffer capacity after an inline prefix had already been copied. The external read now accounts for the copied prefix length. (Bug #104884, Bug #33340548)
-
JSON Relational Duality Views now support table- and column-level
CHECKandNO CHECKannotations for ETAG participation, and column-levelUPDATEandNO UPDATEannotations for field mutability.CHECKis the table-level default, and columns inherit table settings unless explicitly overridden. Modifying aNO CHECKfield does not change theETAG, and primary-key columns cannot be markedUPDATE. For example:JSON_DUALITY_OBJECT( WITH (UPDATE, CHECK) "status": status WITH (NO UPDATE, NO CHECK) )DML rejects missing values having an effective
CHECKannotation and modifications toNO UPDATEfields.JSON_DUALITY_VIEW_COLUMNSexposes effective settings throughALLOW_CHECKandALLOW_UPDATE.SHOW CREATE VIEW,mysqldump, and replication preserve the annotations; dumps use/*!261000 ... */comments so older servers restore views using their own semantics. Replicas must be upgraded before a source replicates DDL containing the new syntax. (WL #17054)
Microsoft Windows: Failure to open a new error log could close the descriptor owned by an existing stream; retrying with that stream could trigger a CRT assertion and prevent error-log recreation. Delete-pending handles are now redirected to
NULwithout invalidating the stream, allowing a later retry to recreate the error log. (Bug #32901809)Fixed an issue relating to keyring logging when a log-item lookup fails. (Bug #39658440)
Fixed an issue relating to
mysqldumpprocessing of server-provided table identifiers. (Bug #39905165)Fixed an issue relating to
mysqldumpvalidation of server-provided result, identifier, database, and table metadata. (Bug #39832176, Bug #39832186, Bug #39832202)-
The
mysqlclient's interactive-pinput could truncate or mishandle passwords longer than 79 bytes, including token-style credentials, causing authentication failures. Interactive input now accepts longer credentials without requiring them on the command line. Errors were returned similar to the following:ERROR 9125 (HY000): An error occurred while validating the access token. Please acquire a new token and retry.Using the command-line workaround could also produce:
mysql: [Warning] Using a password on the command line interface can be insecure.Our thanks to Hanchun Liu for the contribution. (Bug #120663, Bug #39621454)
Microsoft Windows: Fixed an issue relating to formatting unusually long query identifiers. (Bug #39883066)
Fixed an issue relating to column-identifier validation for histogram operations. (Bug #39882926)
Fixed an issue relating to argument-length validation for windowed
BIT_OR()andBIT_AND(). (Bug #39882731)Fixed an issue relating to range handling during group index skip scans. (Bug #39867741)
Fixed an issue relating to privilege checks for join operations. (Bug #39740479)
Fixed an issue relating to repeated correlated outer-field references in nested queries. (Bug #39603658)
Fixed an issue relating to optimizer handling of
INpredicates. (Bug #39603649)Fixed an issue relating to optimization of nested subquery expressions used with
INorNOT IN. (Bug #39603575)Fixed an issue relating to multi-join plans. (Bug #39197517)
If
explain_json_format_version=2,JSON EXPLAINoutput for aWEEDOUTAccessPathdid not include anaccess_typeattribute. (Bug #37925474)With the hypergraph optimizer, an
ORDER BYon a trailing part of a multi-valued index could add an unnecessary sort even when a single-point range fixed the array key part. Ordered range scans can now use trailing key parts to provide the requested ordering. (Bug #37543247)The hypergraph optimizer could undercount the one-time cost of materializing an
INsubquery and select materialization when per-row IN-to-EXISTS lookups were cheaper. Materialized temporary-table costs and sizes are now calculated from the appropriate access path. (Bug #36834773)EXPLAIN FORMAT=TREEnow provides the Note1003warning containing the transformed query, including forINSERTandREPLACEstatements usingVALUES. This exposes transformations such as subquery-to-semijoin conversion. (Bug #36784038)-
EXPLAIN FORMAT=TREEnow emits the transformed-query Note 1003 warning available with traditional EXPLAIN, including forINSERTandREPLACEstatements usingVALUES. Output is similar to:Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) where (`test`.`t1`.`a` = `test`.`t2`.`a`)(Bug #36784038, Bug #115454)
References: See also: Bug #36784901.
optimizer_switchandoptimizer_traceaccepted values such asoandofas valid flag values. Exact matches are now required. Invalid values returnER_WRONG_VALUE_FOR_VARand leave the variable unchanged. (Bug #36596561)EXPLAIN FORMAT=JSONcould omitused_key_partsfor anindex_mergeaccess path. Key parts are now collected recursively from index-merge, row-ID intersection, and row-ID union child scans. (Bug #35206957)With the hypergraph optimizer enabled, single-table
UPDATEorDELETEstatements usingORDER BYand a subquery converted to a hash semijoin or antijoin could modify the wrong rows. An update through a view withCHECK OPTIONcould also use incorrect rows or fail when required row identifiers were not preserved. (Bug #121038, Bug #39822725)Grouped aggregate queries using
GROUP_INDEX_SKIP_SCANfor distinct aggregates followed by a window function could return null or zero aggregate values, duplicate groups, or incorrect row counts. (Bug #119323, Bug #38627346)Queries exposing the same derived-table expression under different output aliases could report both result columns with the later alias even though their values were correct. This affected populated results ordered by
RAND()and empty results using the optimizer. The hypergraph optimizer was not affected. (Bug #118729, Bug #38249983, Bug #39734461)-
Equality index ranges containing an
IS NULLkey part could lose theNULL_RANGEflag, causing unsuitablerecords_per_key()statistics to be used wheneq_range_index_dive_limitwas reached. The flag is now propagated for every applicable equality range sorecords_in_range()is used.Our thanks to Kaiwang Chen and the team at Tencent for the contribution. (Bug #117776, Bug #37743879)
-
Optimizer trace output now includes a
test_if_cheaper_orderingobject describing how candidate indexes forORDER BYorGROUP BYwere evaluated. Per-index values includeis_covering,select_limit,index_scan_cost,rows,chosen, and the rejection cause.Our thanks to Tianfeng Li and the team at Tencent for the contribution. (Bug #116355, Bug #37171976)
-
With
optimizer_switchset toindex_merge_union=off, an index-merge plan for disjunctive conditions could omit a disjunct and return incomplete results. For example, a query expected to return four rows instead returned:Empty set (0.00 sec).Our thanks to Kun Qin for the contribution. (Bug #114885, Bug #36584358)
-
On Linux, a
RESOURCE_GROUPoptimizer hint in a prepared statement was not applied byEXECUTEor subsequent executions. The hint now remains effective across executions without leaking to later statements on the connection.Our thanks to Dmitry Lenev and the team from Percona for the contribution. (Bug #112011, Bug #35696738)
-
Iterator-based
EXPLAINoutput now reports partitions selected after explicitPARTITION(...)restrictions and optimizer pruning.EXPLAIN FORMAT=TREEand supportedEXPLAIN ANALYZEplans include partition names in operation text, while JSON v2 provides a structuredpartitionsarray.This information is available for supported InnoDB and NDB base-table accesses and represents the plan-time candidate read set, not partitions physically visited at runtime. Traditional EXPLAIN and JSON v1 are unchanged. (WL #17309)
The bundled
libeventlibrary was upgraded from 2.1.11 to 2.1.13. (Bug #40007263)-
Installing commercial MySQL packages on EL10 aarch64 could fail because client programs and manual pages conflicted with files supplied by
mariadb11.8. Package metadata now declares additional obsoletes to resolve these conflicts. Errors were returned similar to the following:Error: Transaction test error: file /usr/bin/mysql conflicts between attempted installs of mariadb11.8 and mysql-commercial-client(Bug #39758376)
The bundled TIRPC library was upgraded to version 1.3.7. (Bug #39703871)
The bundled OpenTelemetry dependencies were upgraded from
opentelemetry-cpp1.23.0 to 1.27.0 and fromopentelemetry-proto1.7.0 to 1.10.0. (Bug #39491307)-
Rebuilding MySQL source RPMs on minimal EL8 or EL9 systems could fail because required dependencies were omitted from
mysql.spec.in.Our thanks to Simon Mudd for the contribution. (Bug #120895, Bug #39894524)
The component-facing
psi_thread.hheader now usespsi_thread_v7.PSI_THREAD_VERSIONvalues 4 through 6 are deprecated for plugins. (Bug #39802197)After an asynchronous replica restarted, its I/O and SQL threads could appear in
INFORMATION_SCHEMA.PROCESSLISTbut remain absent fromperformance_schema.processlistuntil replication was stopped and restarted. Foreground system threads with process-list IDs are now retained, and an empty user name is represented assystem user. (Bug #36042255, Bug #113202)
-
As of this release,
authentication_webauthnserver plugin is now available in MySQL Community Edition, enabling FIDO-device authentication for multifactor and passwordless access. Community source and server packages include the plugin and applicable dependencies.See WebAuthn Pluggable Authentication for more information. (WL #17342)
With Change Stream Applier enabled,
performance_schema.threadscould report aPROCESSLIST_IDfor the replica SQL thread that differed fromINFORMATION_SCHEMA.PROCESSLIST. The identifier now remains stable during CSA session creation. (Bug #39933596)Fixed an issue relating to Group Replication message-decoding limits. (Bug #39905199)
Fixed an issue relating to sender validation for Group Replication messages. (Bug #39851456)
Fixed an issue relating to Group Replication UDF lifecycle handling during plugin unloading. (Bug #39838541)
Fixed an issue relating to Group Replication recovery-state validation. (Bug #39832216)
-
Under certain circumstances, after recovery from a network partition, a group could lose quorum and remain in a reconnection loop that blocked writes after networking stabilized. Connection delegation now uses a single nonblocking publication attempt, allowing normal reconnection handling to retry. Errors were returned similar to the following:
MY-013781: "Error sending connection delegation command"(Bug #39767762)
Fixed an issue relating to error handling while
mysqlbinlogrewrites events. (Bug #39659682)Fixed an issue relating to Group Replication peer-address handling. (Bug #39654054)
Fixed an issue relating to validation by
asynchronous_connection_failover_add_managed(). (Bug #39603374)The GTID for an
XA COMMITorXA ROLLBACKcould become visible beforeXA RECOVERstopped listing the completed XID.XA RECOVERnow hides the finalized transaction before the GTID is externalized. (Bug #36505659)After
XA PREPAREmade its GTID visible ingtid_executed,XA RECOVERcould still omit the prepared XID. The XID is now made visible before the GTID state is updated, so waiting for the GTID guarantees that another session can observe the prepared transaction. (Bug #35872823)-
Replaying a CTAS binary log through
mysqlbinloginto a server with binary logging disabled could fail instead of restoring the logged tables and rows because an additional transaction produced an invalid transaction boundary. Parser-started CTAS transactions are now suppressed for binlog-applier threads.Our thanks to Venkatesh Duggirala and the team at Google for the contribution. (Bug #120757, Bug #39743645)
-
On a binlogless replica using relay-log recovery, parallel replication, and commit-order preservation, replicated
FLUSH PRIVILEGESstatements could leave gaps inmysql.gtid_executed. After restart, the replica could request already-applied transactions, resulting in duplicate errors or failure when the source had purged the required binary logs. Errors were returned similar to the following:Cannot replicate because the source purged required binary logs. Replicate the missing transactions from elsewhere, or provision a new replica from backup(Bug #115613, Bug #36849620)
-
With the MySQL communication stack, multiple members on one multihomed host could fail to join when they used different IP addresses but the same SQL port. Local members are now identified by their configured endpoint rather than all local interfaces. The XCom stack still requires distinct
localAddressports. Errors were returned similar to the following:[ERROR] [MY-011735] [Repl] Plugin group_replication reported: '[GCS] Error connecting to all peers. Member join failed. Local port: 3306' [ERROR] [MY-011735] [Repl] Plugin group_replication reported: '[GCS] The member was unable to join the group. Local port: 3306'(Bug #110773, Bug #36055146)
-
After a replica worker applied a rewritten statement,
SHOW PROCESSLISTandperformance_schema.threadscould continue displaying the completed statement while the worker was idle. Query-event cleanup now clears the displayed state.Our thanks to Marcelo Altmann for the contribution. (Bug #99200, Bug #31140932)
Fixed an issue relating to server-supplied RSA public-key handling during client-side SHA-2 authentication. (Bug #39883040)
Fixed an issue relating to runtime key-type validation by keyring UDFs. (Bug #39838747)
Fixed an issue relating to client parsing of WebAuthn assertion challenge packets. (Bug #39740347)
Fixed an issue relating to resource cleanup during Enterprise Encryption digest-function initialization. (Bug #39665448)
Fixed an issue relating to nullable input supplied to
keyring_key_generate(). (Bug #39633350)Fixed an issue relating to nullable numeric arguments supplied to
audit_api_message_emit_udf(). (Bug #39633136)
-
ALTER TABLE ... EXCHANGE PARTITIONcould move rows that violated the destination table'sCHECKconstraints or exchange tables whose generated columns used different expressions. Rows are now checked in both directions, including whenWITHOUT VALIDATIONskips partition-bound checks, and mismatched generated-column definitions are rejected. Errors were returned similar to the following:ERROR 3819 (HY000): Check constraint 't_swap_chk_1' is violated.(Bug #120206, Bug #39634208)
Fixed an issue relating to arguments supplied to MySQL X Plugin UDFs. (Bug #39839185)
-
Important Change: MySQL Server now supports a four-part release identity in the form
MAJOR.MINOR.PATCH.UPDATE, with an empty update component represented as zero. The complete version is available throughVERSION_WITH_UPDATE(), the read-only globalversion_with_updatevariable,mysqld --version-with-update, and new client-library APIs:SELECT VERSION_WITH_UPDATE(); SELECT @@version_with_update;mysqld --version-with-updateExisting interfaces, including
VERSION(),version, the classic handshake, numeric version IDs, and existing C APIs, retain three-part compatibility semantics.mysql_upgrade_historyrecords exact update transitions without changing upgrade compatibility decisions.See mysql_upgrade_history File for more information. (Bug #40013285, WL #17318)
The command-service option
MYSQL_COMMAND_BYPASS_MAX_CONNECTIONScan now be set before connection. Its default oftruepreserves administrative admission; setting it tofalsemakes an embedded session subject tomax_connectionswithout using the reserved extra slot. (Bug #39980933)The
mysql_thd_attributesservice now exposes a read-onlyis_substatementBoolean, enabling components to distinguish top-level statements from stored-function and trigger execution. (Bug #39980910)
Microsoft Windows: Fixed an issue relating to client console output handling. (Bug #39472263)
During connection handshakes, clients could retain capability flags unsupported by the server and assume that unavailable features had been negotiated. (Bug #40022563)
For encrypted X Protocol connections, the
Tls_key_exchange_algorithmandTls_sign_algorithmsession status variables could remain empty despite an active TLS session. (Bug #39980717)Fixed an issue relating to CDATA validation by
LOAD XML. (Bug #39938954)Fixed an issue relating to stack-depth handling for nested
ROWexpressions during statement preparation. (Bug #39925442)Fixed an issue relating to account host matching. (Bug #39911722)
Fixed an issue relating to stack-depth handling for deeply nested parenthesized
UNIONexpressions. (Bug #39911701)Fixed an issue relating to parser resource controls for complex statements containing common table expressions. (Bug #39905175)
-
Fixed an issue relating to
mysqlbinloghandling of user-variable events. (Bug #39905157)References: See also: Bug #29028491.
Fixed an issue relating to path restrictions during component loading. (Bug #39905086)
Fixed an issue relating to XML value parsing. (Bug #39905057)
Fixed an issue relating to validation of binary JSON values. (Bug #39872033)
Fixed an issue relating to uninstalling
component_telemetry. (Bug #39839041)Fixed an issue relating to argument validation by
mysql_query_attribute_string(). (Bug #39838999)-
When MeCab rejected a document during deferred full-text tokenization, an
INSERTorUPDATEcould commit without a client warning even though the row received no or only partial FULLTEXT index entries. Clients now receive a warning, and the autocommit OK response includes the updated warning count. The error log could contain output similar to the following:[ERROR] [MY-011123] [Server] Mecab: parse() failed: too long sentence..(Bug #39838534)
-
Fixed an issue relating to raw remote file handling by
mysqlbinlog. (Bug #39832258)References: See also: Bug #39068649.
Fixed an issue relating to multifactor-authentication request handling in the client library. (Bug #39832236)
Fixed an issue relating to binary log row-event processing. (Bug #39784720)
Fixed an issue relating to client-library validation of temporal values in prepared-statement result rows. (Bug #39740351)
Fixed an issue relating to InnoDB full-text cache monitoring. (Bug #39729888)
Fixed an issue relating to argument evaluation by
ST_BUFFER_STRATEGY(). (Bug #39679888)Fixed an issue relating to WebAuthn client assertion generation. (Bug #39665344)
Fixed an issue relating to memory handling during server initialization. (Bug #39659472)
Fixed an issue relating to validation of clone storage locators. (Bug #39633821)
Fixed an issue relating to spatial data conversion. (Bug #39616304)
-
Fixed an issue relating to stack use during JSON path evaluation. (Bug #39616228)
References: See also: Bug #23106330.
Fixed an issue relating to client authentication packet validation. (Bug #39603366)
Fixed an issue relating to replication protocol packet validation. (Bug #39603354)
Fixed an issue relating to Classic Protocol temporal-value validation. (Bug #39603337, Bug #39603346)
Fixed an issue relating to updates of InnoDB tables containing many indexed virtual columns. (Bug #39593341)
Fixed an issue relating to client/server capability negotiation. (Bug #39539681)
-
Fixed an issue relating to InnoDB online DDL conversion handling.
Our thanks to George Ma and the team at Alibaba for the contribution. (Bug #39362553)
-
GROUP_CONCAT()withORDER BYcould trigger a debug assertion when later input rows containedNULLargument values. Errors were returned similar to the following:mysqld-debug: ./sql/field.cc:5428: virtual String* Field_time::val_str(String*, String*) const: Assertion `!is_null()' failed.(Bug #39280089)
Fixed an issue relating to replication sender reconnect handling. (Bug #39254877)
Fixed an issue relating to InnoDB index construction. (Bug #39193436)
Fixed an issue relating to IndexMerge query processing. (Bug #39147848)
Fixed an issue relating to InnoDB foreign-key rollback handling. (Bug #39147834)
-
Fixed an issue relating to InnoDB memory allocation calculations.
Our thanks to Hongyu Qiao and the team at Tencent for the contribution. (Bug #39123849)
Fixed an issue relating to duplicate-key reporting during parallel InnoDB DDL. (Bug #38987922)
Fixed an issue relating to memory use and cancellation handling for
JSON_ARRAYAGG()workloads. (Bug #38973857)-
After a global privilege was granted and partially revoked for a schema, a subsequent
GRANTfor the same account could fail withERROR 3901. Errors were returned similar to the following:ERROR 3901 (HY000): 'GRANT' privilege for database 'sys' exists both as partial revoke and mysql.db simultaneously. It could mean that the 'mysql' schema is corrupted.(Bug #38921524)
Fixed an issue relating to corruption handling by
ibd2sdi. (Bug #38810796)Fixed an issue relating to InnoDB rollback for full-text indexed tables. (Bug #38547442)
Fixed an issue relating to table-rebuild DDL processing. (Bug #38305379)
-
Large
JSON_ARRAYAGG()window frames could become progressively slower and remain in the executing state afterKILL QUERY. Materialization now avoids unnecessary JSON-value copying, and buffered processing responds promptly to cancellation. (Bug #37878680)References: See also: Bug #38973857.
-
Fixed an issue relating to InnoDB tablespace import after crash recovery.
Our thanks to Chong Lee and the team at Alibaba for the contribution. (Bug #37380231)
Fixed an issue relating to InnoDB reads using older transaction views after tablespace import. (Bug #36999166)
-
In servers built with Debug Sync, an unset
debug_sync_timeoutcould cause some debug actions to assert or abort instead of being ignored. A zero timeout now consistently disables Debug Sync.Our thanks to Kamil Holubicki and the team at Percona for the contribution. (Bug #35776658, Bug #112259)
Fixed an issue relating to
ROLLUPquery execution. (Bug #35763384)