MatrixOne v26.4.1.0 发布说明

发布日期:2026 年 7 月 13 日 MatrixOne 版本:v26.4.1.0 (v4.1.0)

MatrixOne v26.4.1.0 是基于 v4.0.0-rc4 的功能版本。此版本新增了 SQL 任务调度与执行框架、数据分支细粒度权限模型、可写外部表支持,引入了新 SQL 函数(hll_add_agg()hll_merge_agg()hll_cardinality()JSON_ARRAY()JSON_OBJECT()JSON_KEYS()JSON_LENGTH()JSON_PRETTY()JSON_TYPE()JSON_VALID()JSON_VALUE()JSON_SCHEMA_VALID()JSON_SCHEMA_VALIDATION_REPORT(),以及 S2/H3 地理空间网格函数),扩展了 DOUBLE PRECISION 类型别名与 REPLACE 语法,并对 UPDATE ... FROMON DUPLICATE KEY UPDATERENAME TABLECREATE TABLE ... LIKE、全文索引、向量索引、LOAD DATAGREATEST/LEAST、CN 健康检查等多个方面进行了改进与修复。

新功能

SQL 任务调度与执行(#24539)

MatrixOne 现已支持完整的 SQL 任务管理系统,提供以下语句:

  • CREATE TASK:创建带 cron 调度表达式或 WHEN 门控条件的定时任务。WHEN 子句支持子查询,确保仅在满足前置条件时执行。

  • ALTER TASK:修改已有任务的调度、条件或属性。

  • DROP TASK:删除任务。

  • EXECUTE TASK:手动触发任务执行。

  • SHOW TASKS:查看所有任务及其状态。

  • SHOW TASK RUNS:查看任务执行历史记录。

任务框架内置了重试逻辑、超时控制和多租户隔离,适用于数据归档、周期性报表生成和条件驱动的数据同步等场景。

数据分支权限模型(#24875)

所有 DATA BRANCH 命令现已引入操作级的细粒度权限检查。每种分支操作(CREATEDIFFMERGEPICK)在执行前分别校验源对象的读取权限与目标对象的写入/管理权限。新增 SET GLOBAL protected_databases 可声明受保护数据库列表,阻止对其执行非授权的数据分支操作。

可写外部表(#24889)

外部表现在支持通过 INSERT ... SELECTLOAD DATA 将数据写入 Stage 文件。输出格式支持 CSV 和 JSONLine,可通过 WRITE_FILE_PATTERN 选项控制文件命名。所有列类型均可完整读写往返。写入操作支持多 pipeline 分发与多 CN 并行写入。

新增 SQL 函数:hll_add_agg()hll_merge_agg()hll_cardinality()JSON_ARRAY()JSON_OBJECT()JSON_KEYS()JSON_LENGTH()JSON_PRETTY()JSON_TYPE()JSON_VALID()JSON_VALUE()JSON_SCHEMA_VALID()JSON_SCHEMA_VALIDATION_REPORT()S2_CellID()S2_CellID_Level()S2_CellID_Parent()S2_CellID_Center()S2_CellID_Area()S2_CellID_EdgeNeighbors()S2_CellID_AllNeighbors()S2_CellID_AreNeighbors()H3_H3Index()H3_H3Index_Resolution()H3_H3Index_Parent()H3_H3Index_Center()H3_H3Index_Boundary()H3_H3Index_Neighbors()H3_H3Index_AreNeighbors()

HLL Sketch 函数(#24611)

  • hll_add_agg():聚合函数,将多行值合并为 HyperLogLog sketch。

  • hll_merge_agg():聚合函数,合并多个 HLL sketch。

  • hll_cardinality():从 HLL sketch 估算基数。

JSON 函数(#24742)

  • JSON_ARRAY():从一组值构造 JSON 数组。

  • JSON_OBJECT():从键值对构造 JSON 对象。

  • JSON_KEYS():返回 JSON 对象或数组的顶层键/索引。

  • JSON_LENGTH():返回 JSON 文档的长度。

  • JSON_PRETTY():格式化输出 JSON 文档。

  • JSON_TYPE():返回 JSON 值的类型名。

  • JSON_VALID():检查字符串是否为合法 JSON。

  • JSON_VALUE():从 JSON 文档中按路径提取标量值。

  • JSON_SCHEMA_VALID():按 JSON Schema 校验 JSON 文档。

  • JSON_SCHEMA_VALIDATION_REPORT():返回 JSON Schema 校验的详细报告。

S2 和 H3 地理空间网格函数(#25065)

新增 S2 球面几何 S2_CellID()S2_CellID_Parent()S2_CellID_Center()S2_CellID_Area()S2_CellID_Level()S2_CellID_EdgeNeighbors()S2_CellID_AllNeighbors()S2_CellID_AreNeighbors() 与 H3 六边形网格 H3_H3Index()H3_H3Index_Parent()H3_H3Index_Center()H3_H3Index_Boundary()H3_H3Index_Resolution()H3_H3Index_Neighbors()H3_H3Index_AreNeighbors() 函数:

S2 函数:

  • S2_CellID(lat, lng):返回经纬度对应的 S2 Cell ID。

  • S2_CellID_Parent(cell_id, level):返回指定级别的父 Cell ID。

  • S2_CellID_Center(cell_id):返回 Cell 的中心经纬度坐标。

  • S2_CellID_Area(cell_id):返回 Cell 的近似面积,单位为平方米。

  • S2_CellID_Level(cell_id):返回 Cell 的级别。

  • S2_CellID_EdgeNeighbors(cell_id):返回边缘相邻的 Cell ID 列表。

  • S2_CellID_AllNeighbors(cell_id):返回所有相邻(含对角)的 Cell ID 列表。

  • S2_CellID_AreNeighbors(cell_id_a, cell_id_b):判断两个 Cell 是否相邻。

H3 函数:

  • H3_H3Index(lat, lng, resolution):返回给定坐标和分辨率的 H3 索引。

  • H3_H3Index_Parent(h3_index, resolution):返回指定分辨率的父 H3 索引。

  • H3_H3Index_Center(h3_index):返回 H3 六边形的中心坐标。

  • H3_H3Index_Boundary(h3_index):返回 H3 六边形的边界坐标列表。

  • H3_H3Index_Resolution(h3_index):返回 H3 索引的分辨率。

  • H3_H3Index_Neighbors(h3_index):返回相邻的 H3 索引列表。

  • H3_H3Index_AreNeighbors(h3_index_a, h3_index_b):判断两个 H3 索引是否相邻。

DOUBLE PRECISION 类型别名(#25109)

DOUBLE PRECISION 现可作为 DOUBLE(即 float64)的同义词,提升与标准 SQL 及 PostgreSQL 的类型兼容性。

MySQL REPLACE 语法扩展(#25083)

REPLACE 语句现已扩展支持更多与 MySQL 兼容的语法形式,包括 LOW_PRIORITYDELAYED 修饰符、PARTITION 子句,以及 REPLACE ... SET col1=val1, col2=val2, ...REPLACE ... SELECT ... 等语法变体。

改进

PostgreSQL 风格 UPDATE … FROM(#24536)

UPDATE 语句现在支持 PostgreSQL 风格的 FROM 子句,允许在 UPDATE 中基于多表连接指定更新目标行。语法:UPDATE target SET ... FROM t1, t2 WHERE join_condition;

ON DUPLICATE KEY UPDATE 现代化(#24973)

ON DUPLICATE KEY UPDATE 子句内部逻辑已重构,提升了唯一键冲突处理的一致性与性能,更好地与 MySQL 行为对齐。

链式 RENAME TABLE(#24470)

RENAME TABLE 现在支持链式重命名多条语句,在一次原子操作中对多张表执行一系列重命名。

CREATE TABLE IF NOT EXISTS … LIKE(#25119)

CREATE TABLE 现已支持 IF NOT EXISTSLIKE 的组合语法:CREATE TABLE IF NOT EXISTS new_tbl LIKE existing_tbl;。若同名表已存在则静默成功而不报错。

Prefix Index DML 支持

带前缀索引的表现在支持完整的 DML 操作(INSERT、UPDATE、DELETE),而不再仅限于查询。

RESTORE FROM PITR ACCOUNT 子句(#24591)

PITR 恢复语句新增 ACCOUNT 子句,支持按账户粒度执行时间点恢复。

LOAD DATA 增强

LOAD DATA 在选项解析、类型推断和错误处理方面进行了多项改进,提升了大数据量导入的稳定性与性能。

全文索引增强(#24884、#24297)

全文索引在索引构建性能、查询精度和模式匹配方面进行了改进。新增对更多查询算子的支持。

受保护数据库(#25027)

引入系统级受保护数据库机制,防止关键系统数据库(如 mo_catalog)被误删除或修改,同时保留授权管理操作的通道。

向量索引插件框架(#24443)

实现可插拔的向量索引框架,允许第三方向量索引库以插件方式集成,为多种 ANN(近似最近邻)搜索算法提供统一接口。

GREATEST() / LEAST() 数值类型提升(#25145)

GREATEST()LEAST() 函数现在对数值参数应用更准确的类型提升规则,自动将不同数值类型的参数统一为最宽泛的类型后再进行比较,与 MySQL 行为一致。

CN 健康断路器(#25073)

新增 CN(Compute Node)健康检查断路器机制。当 CN 节点连续健康检查失败超过阈值时,自动将其从服务列表中摘除,防止故障 CN 影响整体集群可用性。

Bug 修复

  • DELETE with JOIN 修复(#25125):修复了 DELETE ... USING ... JOIN 在特定多表删除场景下目标行定位错误的 bug。

  • DROP INDEX IF EXISTS 修复(#25006):修复了 DROP INDEX IF EXISTS 在索引不存在时未正确静默失败的 bug。

  • event_scheduler 变量修复(#25020):修复了 event_scheduler 系统变量读取与设置行为不符合预期的 bug。

  • SELECT … FOR UPDATE 对齐(#24427):修复了 SELECT ... FOR UPDATE 在事务隔离和行锁语义上与 MySQL 不兼容的问题。

  • LOCK TABLES 事务内支持(#24421):修复了事务内部 LOCK TABLES 导致隐式提交或死锁的问题,现在支持事务内加锁。

  • LIMIT 0 处理(#24455):修复了 LIMIT 0 子句在特定查询计划下可能返回行的 bug。

  • ORDER BY/GROUP BY NULL 支持(#24426):修复了 ORDER BY NULLGROUP BY NULL 被拒绝执行的问题,现在按标准 SQL 语义静默忽略。

兼容性说明

  • DOUBLE PRECISION 现为 DOUBLE 的有效同义词,使用此语法的应用可直接运行。

  • REPLACE 语句支持 SETSELECT 语法变体,与 MySQL 更兼容。

  • UPDATE ... FROM 采用 PostgreSQL 语法风格,从 MySQL 迁移的用户需注意适配。

  • 数据分支操作现在执行操作级权限检查,之前绕过权限的应用需调整权限配置。

  • ON DUPLICATE KEY UPDATE 行为已更新以更接近 MySQL,依赖旧行为的场景请验证。

  • GREATEST()LEAST() 类型提升规则已调整,涉及混合类型的查询输出可能发生变化。

关于本文档

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

完整变更日志

v4.0.0-rc4…v4.1.0