MatrixOne v26.4.0.0-rc4 Release Notes

Release Date: July 10, 2026 MatrixOne Version: v26.4.0.0-rc4 (v4.0.0-rc4)

MatrixOne v26.4.0.0-rc4 is a patch release building on the v26.4.0.0-rc3 feature set. This release adds user-level advisory lock functions (GET_LOCK, RELEASE_LOCK, IS_FREE_LOCK, IS_USED_LOCK, RELEASE_ALL_LOCKS), extends the DROP CDC statement with IF EXISTS support, adds INT +/- INTERVAL arithmetic for YYYYMMDD-format date expressions, corrects BIT_COUNT() for negative floating-point values, and includes internal improvements to data branch operations, resource throttling, join ordering, logservice truncation, and ETL database connection resilience.

New Features

User-Level Advisory Lock Functions (#25038)

MatrixOne now supports MySQL-compatible user-level advisory lock functions:

  • GET_LOCK(name, timeout): Acquires a named advisory lock. Returns 1 on success, 0 on timeout, or NULL on error. A session can acquire the same lock multiple times (reference counting).

  • RELEASE_LOCK(name): Releases a named advisory lock held by the current session. Returns 1 on success, 0 if held but by another session, or NULL if the lock does not exist.

  • IS_FREE_LOCK(name): Returns 1 if the named lock is free, 0 if held by any session, or NULL on error.

  • IS_USED_LOCK(name): Returns the connection ID of the session holding the named lock, or NULL if the lock is free.

  • RELEASE_ALL_LOCKS(): Releases all advisory locks held by the current session. Returns the number of locks released. This is a MatrixOne extension (MySQL has no equivalent batch-release function).

Lock names are case-insensitive (normalized to lowercase), limited to 64 characters, and must not contain NUL bytes. Locks are automatically released when the session ends.

DROP CDC ... IF EXISTS (#25113)

The SQL-level DROP CDC statement now supports the IF EXISTS clause. When specified, dropping a non-existent CDC task succeeds silently instead of raising an error. The TASK keyword is now optional: DROP CDC t1 and DROP CDC TASK t1 are equivalent. Additionally, SHOW CDC without arguments now defaults to showing all CDC tasks (equivalent to SHOW CDC ALL).

INT ± INTERVAL Arithmetic (#24688)

The + and - operators now support INT + INTERVAL and INT - INTERVAL expressions, where the integer is interpreted as a YYYYMMDD-format date. Example:

SELECT CAST(20260515 AS INT) + INTERVAL 7 DAY;
SELECT MAX(date_col) - INTERVAL 7 DAY FROM t;

Only day-or-larger interval units (YEAR, QUARTER, MONTH, WEEK, DAY) are supported. Sub-day intervals (HOUR, MINUTE, SECOND) return an error directing you to cast to DATETIME first. Both INT + INTERVAL and INTERVAL + INT forms work.

Improvements

Data Branch Internal Improvements (#25053, #24851)

  • Data branch operations (DIFF, MERGE, PICK) now use backtick-quoted identifiers in generated SQL, supporting database, table, and column names with special characters.

  • Hidden internal columns (Row_ID, __mo_fake_pk_col, __mo_cpkey_col) are now filtered from user-visible output in data branch operations.

  • No-primary-key table handling in data branch merge has been optimized with distinct apply modes for online execution and portable SQL export.

  • Additional test coverage for data branch edge cases, privilege enforcement, and matrix coverage across branch operations.

Bug Fixes

  • BIT_COUNT() for negative floats (#25087): Fixed BIT_COUNT() to correctly compute two’s-complement bit counts for negative floating-point values. Previously, negative float/double values could produce incorrect bit count results.

  • Join order parent cycles (#25088): Fixed a query planner bug where certain join orderings could create parent cycles, potentially leading to incorrect results or crashes.

  • Resource throttler (#25062): Restored physical defense-in-depth memory throttling with rssReservedBase and enforced hard cap in the CAS loop for CN flush S3 operations.

  • Logservice truncation (#25050): Fixed stale replica truncation to prevent data inconsistency during log truncation.

  • ETL DB connection resilience (#25138): Fixed the ETL database connection holder to properly maintain connection validity through reconnects, with concurrent access safety improvements.

Compatibility Notes

  • GET_LOCK() and related advisory lock functions are now supported. Applications that previously worked around their absence can now use them directly.

  • DROP CDC syntax has been relaxed: TASK is now optional, IF EXISTS is supported, and SHOW CDC without arguments works as SHOW CDC ALL.

About This Document

This document is generated by the docs sync agent based on the MatrixOne source diff and reviewed by humans via pull request.

Full Changelog

v4.0.0-rc3…v4.0.0-rc4