MatrixOne v26.4.0.0-rc4 发布说明

发布日期:2026 年 7 月 10 日 MatrixOne 版本:v26.4.0.0-rc4 (v4.0.0-rc4)

MatrixOne v26.4.0.0-rc4 是基于 v26.4.0.0-rc3 功能集的补丁版本。此版本新增了用户级 advisory 锁函数(GET_LOCKRELEASE_LOCKIS_FREE_LOCKIS_USED_LOCKRELEASE_ALL_LOCKS),为 DROP CDC 语句扩展了 IF EXISTS 支持,新增了 INT +/- INTERVAL 的 YYYYMMDD 格式日期算术表达式支持,修复了 BIT_COUNT() 对负浮点值的处理,并包含对数据分支操作、资源限流、JOIN 排序、logservice 截断和 ETL 数据库连接弹性的内部改进。

新功能

用户级 Advisory 锁函数(#25038)

MatrixOne 现在支持与 MySQL 兼容的用户级 advisory 锁函数:

  • GET_LOCK(name, timeout):获取命名 advisory 锁。成功返回 1,超时返回 0,错误返回 NULL。同一会话可多次获取同一锁(引用计数)。

  • RELEASE_LOCK(name):释放当前会话持有的命名 advisory 锁。成功返回 1,锁被其他会话持有时返回 0,锁不存在时返回 NULL。

  • IS_FREE_LOCK(name):若命名锁空闲则返回 1,被任意会话持有时返回 0,错误时返回 NULL。

  • IS_USED_LOCK(name):返回持有命名锁的会话的连接 ID,若锁空闲则返回 NULL。

  • RELEASE_ALL_LOCKS():释放当前会话持有的所有 advisory 锁,返回已释放的锁数量。这是 MatrixOne 扩展函数(MySQL 无等效批量释放函数)。

锁名不区分大小写(归一化为小写),限制 64 字符,不得包含 NUL 字节。会话结束时锁自动释放。

DROP CDC ... IF EXISTS(#25113)

SQL 层面的 DROP CDC 语句现在支持 IF EXISTS 子句。指定后,删除不存在的 CDC 任务将静默成功而非报错。TASK 关键字现为可选:DROP CDC t1DROP CDC TASK t1 等价。此外,SHOW CDC 不带参数时默认显示所有 CDC 任务(等同于 SHOW CDC ALL)。

INT ± INTERVAL 算术(#24688)

+- 运算符现在支持 INT + INTERVALINT - INTERVAL 表达式,其中整数被解释为 YYYYMMDD 格式的日期。示例:

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

仅支持 day 及以上级别的 interval 单位(YEAR、QUARTER、MONTH、WEEK、DAY)。子日级单位(HOUR、MINUTE、SECOND)将返回错误,提示先转换为 DATETIME。同时支持 INT + INTERVALINTERVAL + INT 两种形式。

改进

数据分支内部改进(#25053、#24851)

  • 数据分支操作(DIFF、MERGE、PICK)生成的 SQL 现在使用反引号引用标识符,支持数据库、表和列名中的特殊字符。

  • 隐藏内部列(Row_ID__mo_fake_pk_col__mo_cpkey_col)现从数据分支操作的用户可见输出中过滤。

  • 无主键表在数据分支合并中的处理已优化,区分在线执行和可移植 SQL 导出两种应用模式。

  • 新增数据分支边界场景、权限强制执行和分支操作矩阵覆盖的测试用例。

Bug 修复

  • BIT_COUNT() 对负浮点数的处理(#25087):修复了 BIT_COUNT() 对负浮点值正确计算补码位数的问题。此前负 float/double 值可能产生错误的位计数结果。

  • JOIN 排序父循环(#25088):修复了查询计划器中某些 JOIN 排序可能创建父循环的 bug,此前可能导致错误结果或崩溃。

  • 资源限流器(#25062):恢复了物理深度防御内存限流,使用 rssReservedBase 并在 CAS 循环中强制硬上限,用于 CN flush S3 操作。

  • Logservice 截断(#25050):修复了 stale 副本截断,防止日志截断期间的数据不一致。

  • ETL 数据库连接弹性(#25138):修复了 ETL 数据库连接持有者,使其在重连时正确维持连接有效性,并改进了并发访问安全性。

兼容性说明

  • GET_LOCK() 及相关 advisory 锁函数现已支持。此前绕过这些函数的应用程序可直接使用。

  • DROP CDC 语法已放宽:TASK 现为可选,IF EXISTS 已支持,SHOW CDC 不带参数等同于 SHOW CDC ALL

关于本文档

本文档由文档同步 Agent 根据 MatrixOne 源码 diff 自动生成,并通过 PR 进行人工审核。

完整变更日志

v4.0.0-rc3…v4.0.0-rc4