MatrixOne v26.3.0.13 发布报告
发布日期:2026 年 5 月 26 日
MatrixOne 版本:v26.3.0.13
MatrixOne 3.0.13 是一个稳定性与正确性修复版本。本次发布将 TASKS 降级为非保留关键字,将角色重写规则覆盖范围扩展至次要角色及继承角色,并修复了 GROUP_CONCAT 排序与 LEAD/LAG 小数列缩放问题。
改进
TASKS 降级为非保留关键字(#24482)
TASKS不再作为保留关键字。现在可以无需反引号包裹直接用作标识符(表名、列名等)。
角色重写规则支持次要角色与继承角色(#24393)
- 重写规则现在从所有活跃角色加载:默认角色、直接授予的次要角色以及继承角色(按授予时间广度优先遍历发现)。此前只加载默认角色的规则。
- 多个角色对同一张表分别定义规则时,优先级顺序为:默认角色 > 直接授予次要角色(按授予时间)> 继承角色(按授予时间广度优先)。
- 不同角色中输出列相同的规则会通过
UNION DISTINCT进行合并,从而生成组合规则,而非简单的后覆盖先。 ALTER ROLE ... ADD RULE现在在写入mo_catalog.mo_role_rule之前会校验rule_sql是否为语法合法的SELECT语句。不合法的规则 SQL 会立即被拒绝并报错。- 重写规则加载失败及格式化错误现在会作为查询错误正确返回给客户端,而不再被静默吞掉。在旧版本中原有畸形规则被静默跳过的查询,升级后若规则集仍有问题可能会收到显式报错。
- 角色切换(
SET ROLE、secondary role 切换)现在会同步刷新权限缓存和重写规则缓存,确保新角色的权限立即生效。
Bug 修复
GROUP_CONCAT:多参数带 ORDER BY 排序修复(#24398)
- 修复了
GROUP_CONCAT(a, ':', b ORDER BY k)这类多参数 GROUP_CONCAT 搭配ORDER BY子句时的排序错误。ORDER BY 现在能正确排序连接后的值。 - 修复了同一查询中多个
GROUP_CONCAT独立排序的错误(例如GROUP_CONCAT(a ORDER BY x)和GROUP_CONCAT(b ORDER BY y))。现在每个调用各自独立使用自己的ORDER BY子句。
LEAD/LAG:Decimal 默认值类型转换修复(#24445)
- 修复了
LEAD()和LAG()窗口函数的默认值(第三参数)未按值表达式类型转换的小数列缩放问题。例如LEAD(decimal_col, 1, -1)当列类型为DECIMAL(10,4)时,旧版本会错误显示-0.0001而非-1.0000。现在默认值会被正确转换为值列的类型。
兼容性说明
- 此前带有畸形重写规则而被静默跳过的查询,升级后可能收到显式报错。建议通过
SHOW RULES ON ROLE审查角色规则,并通过ALTER ROLE ... DROP RULE移除或修复无效条目。 TASKS现在可直接用作标识符,无需反引号包裹。已有使用了反引号的代码无需修改,继续兼容。
关于本文档
本文档由文档同步 Agent 根据 MatrixOne 源码 diff 自动生成,并通过 PR 进行人工审核。