MatrixOne v26.4.1.4 发布说明

发布日期:2026年7月22日 MatrixOne 版本:v26.4.1.4(v4.1.4)

MatrixOne v26.4.1.4 是一个补丁版本,修复了 CTAS 中标识符引用的相关问题,并将默认 lock_wait_timeout 调整为合理范围,以避免锁无限等待。

行为变更

  • lock_wait_timeout 默认值调整为 120 秒(#25709):系统变量 lock_wait_timeout 的默认值从 31536000(约 1 年,几乎无限制)修改为 120 秒(2 分钟)。此变更可避免单个异常或慢速悲观事务无限期阻塞同一行锁上的所有其他等待者。用户仍然可以通过 SET SESSION lock_wait_timeout = <n>SET GLOBAL lock_wait_timeout = <n> 将其设置为 1–31536000 范围内的任意值。新增错误码 ErrLockWaitTimeout(20710),错误消息为 MySQL 兼容的 “Lock wait timeout exceeded; try restarting transaction”。锁等待超时错误现在会正确回滚整个事务,而不再遗留事务中的部分修改。

Bug 修复

  • CTAS 正确保留带引号标识符和非 ASCII 别名(#25926):修复了 CREATE TABLE AS SELECT 在内部 SQL 生成过程中可能丢失带引号标识符、反引号别名、非 ASCII 列名(如 中文别名)、保留字别名(如 selectorder)、CTE 别名和索引提示名称的问题。同时修复了 SELECT 子句中引用的系统变量作用域(@@global.<var>@@session.<var>)的保留问题。

兼容性说明

  • 依赖此前几乎无限制的 lock_wait_timeout 默认值(31536000 秒)的应用,在新的 120 秒默认值下可能会遇到锁等待超时错误。如需恢复之前的行为,可执行:

    SET GLOBAL lock_wait_timeout = 31536000;
    

    或在启动悲观事务前按会话配置。

关于本文档

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

完整变更日志

v4.1.3…v4.1.4