MatrixOne v26.3.0.15 发布说明

发布日期:2026 年 7 月 6 日 MatrixOne 版本:v26.3.0.15

MatrixOne 3.0.15 是一个功能与稳定性版本。此版本新增了 10 个 SQL 函数(RIGHTQUOTEDAYNAMEMAKETIMEMONTHNAMEQUARTERTIME_FORMAT,以及已有 HOUR/MINUTE/SECOND 的扩展测试覆盖),引入了 POSITION(substr IN str) 语法作为 LOCATE() 的同义形式,支持 COALESCEBETWEENDECIMAL256 类型,增强了 GRANT 权限作用域语义,支持全文索引的 join 重写,改进了 CDC 任务暂停的可靠性,修复了 Parquet 加载中 STRING 到 DATETIME/VECTOR 的转换问题,并包含若干 bug 修复。

新功能

新增 SQL 函数:RIGHT、QUOTE(#24694、#24753)

  • RIGHT(str, len) — 返回字符串 str 最右边的 len 个字符。支持负数长度(返回空字符串)和 Unicode 多字节字符。

  • QUOTE(str) — 对字符串进行 SQL 安全引号包裹和转义,转义单引号、反斜杠和控制字符。

新增日期时间函数:DAYNAME、MAKETIME、MONTHNAME、QUARTER、TIME_FORMAT(#24757)

  • DAYNAME(date) — 返回完整星期名称(如 'Monday''Saturday')。

  • MAKETIME(hour, minute, second) — 构造 TIME 值,小时最多 838,与 MySQL 行为一致。

  • MONTHNAME(date) — 返回完整月份名称(如 'January''December')。

  • QUARTER(date) — 返回日期的季度值(1–4)。

  • TIME_FORMAT(time, format) — 使用格式说明符(%H%i%s%r%T%p 等)格式化 TIME 值。

POSITION(substr IN str) 语法(#24775)

  • 新增 POSITION(substr IN str) 语法,作为 LOCATE(substr, str) 的同义形式,兼容 MySQL 和标准 SQL 语法。POSITION 形式不支持起始位置参数。

COALESCE 和 BETWEEN 的 DECIMAL256 支持(#24841)

  • COALESCE() 现在支持 DECIMAL256 输入,并在所有分支间正确对齐 decimal 精度,避免操作数精度不同时出现错误结果。

  • BETWEEN 现在支持 DECIMAL256 比较。

改进

GRANT 权限作用域语义(#24752、#24936)

  • 全局表的 GRANT OPTION ON *.* 现在可正确级联到更窄的作用域(db.* 和 db.table)。此前,拥有 GRANT OPTION ON *.* 的用户无法在特定数据库或表上重新授权。

  • View 权限检查现在使用精确对象匹配而非宽泛作用域查找,防止跨数据库权限泄漏。

  • SET SECONDARY ROLE ALL 不再意外更改当前主角色,仅按文档所述激活次要角色。

全文索引 Join 重写支持(#24886)

  • 全文索引重写规则现在支持 join 查询,在全文搜索与表 join 结合时能高效执行。

CDC 任务暂停可靠性改进(#24804)

  • 对已暂停的 CDC 任务再次暂停现在为幂等操作(直接返回成功,不报错)。

  • 新增暂停完成钩子,确保 CDC 任务暂停完成时 catalog 状态原子更新。

  • CDC 任务暂停使用 pausing 中间状态,提供更好的可见性和一致性。

Parquet 加载:STRING 到 DATETIME/VECTOR 转换修复(#24938)

  • 修复了 Parquet 加载中,可选 STRING 列无法加载到可空 DATETIMEVECTORVECF32/VECF64)列的问题。现在此类列可正确加载。

更好的错误信息

  • 数据库未找到和表未找到错误现在使用特定错误码(ErrBadDBErrNoSuchTable),而非通用内部错误,提高了错误的可读性。

Bug 修复

数据分支:CREATE TABLE CLONE SQL 修复(#24958)

  • 修复了 3.0 分支上 DATA BRANCH CREATE TABLE ... CLONE SQL 生成不正确的问题。

数据分支:结果转换修复(#24876)

  • 修复了 3.0 开发分支上数据分支结果转换的问题。

事务:清理 Rollback 修复(#24781)

  • 修复了连接清理时通过已取消的上下文调用 rollback 可能导致事务 operator 状态泄漏的边缘情况。

Decimal 除法截断修复(#24707)

  • 修复了 decimal 整数除法可能错误截断结果的问题。

系统变量表达式折叠修复(#24802)

  • 修复了系统变量表达式(如 @@sql_mode)在远程执行前未正确折叠,导致多 CN 部署中结果不正确的问题。

兼容性说明

  • SET SECONDARY ROLE ALL 不再更改主角色。如果之前依赖此副作用,请使用 SET ROLE <role_name> 显式切换主角色。

  • 全局 GRANT OPTION ON *.* 现在可授权更窄作用域的权限授予,可能影响现有权限配置。

  • View 权限检查现在更严格;对 view 的授权现在需要精确的对象级别权限,而非宽泛作用域匹配。

  • COALESCE() 的 decimal 精度对齐修复可能在操作数精度差异较大时产生不同的(正确的)结果类型。

文档同步说明

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

完整变更日志

v26.3.0.14-v26.3.0.15