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_LOCK、RELEASE_LOCK、IS_FREE_LOCK、IS_USED_LOCK、RELEASE_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 t1 与 DROP CDC TASK t1 等价。此外,SHOW CDC 不带参数时默认显示所有 CDC 任务(等同于 SHOW CDC ALL)。
INT ± INTERVAL 算术(#24688)¶
+ 和 - 运算符现在支持 INT + INTERVAL 和 INT - 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 + INTERVAL 和 INTERVAL + 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 进行人工审核。