MatrixOne v26.4.0.0-rc3 发布说明

发布日期:2026 年 7 月 9 日 MatrixOne 版本:v26.4.0.0-rc3 (v4.0.0-rc3)

MatrixOne v26.4.0.0-rc3 是一个主要功能版本。此版本引入了完整的 GIS/Geometry 引擎,包含 60+ 空间函数和完整的几何类型支持;新增了 6 个 SQL 内置函数(BIT_COUNTINTERVALNAME_CONSTIS_UUIDUUID_TO_BINBIN_TO_UUID);支持全文索引的 JOIN 重写;新增 VARCHAR 列前缀索引;支持 Parquet 中 STRING 到 VECTOR 的转换;增强了 CLONE DATABASE 源解析;改进了数据分支权限强制执行;新增 event_scheduler 系统变量;以及完善了次要角色 DDL 所有权机制。

新功能

GIS 几何引擎(#24777)

MatrixOne 现在包含内置 GIS 几何引擎,支持完整的 OGC 几何模型和 60+ 空间函数:

  • 几何类型GEOMETRYPOINTLINESTRINGPOLYGONMULTIPOINTMULTILINESTRINGMULTIPOLYGONGEOMETRYCOLLECTION,以及 32 位浮点变体(GEOMETRY32POINT32POLYGON32)和 geography 别名(GEOGRAPHYGEOGRAPHY32)。

  • SRID 支持:SRID 0(笛卡尔坐标系)和 SRID 4326(WGS 84 大地坐标系),测量值返回米/平方米。

  • 构造函数ST_GeomFromTextST_PointFromTextST_LineFromTextST_PolyFromTextST_MPointFromTextST_MLineFromTextST_MPolyFromTextST_GeomCollFromText,以及 WKB(ST_GeomFromWKB)和 GeoJSON(ST_GeomFromGeoJSON)变体。

  • 访问器ST_GeometryTypeST_XST_YST_SRIDST_DimensionST_NumPointsST_NumGeometriesST_NumInteriorRingsST_IsEmptyST_IsClosedST_IsCollection 等。

  • 测量函数ST_AreaST_LengthST_DistanceST_Distance_Sphere

  • 空间关系谓词ST_ContainsST_WithinST_IntersectsST_DisjointST_TouchesST_CrossesST_OverlapsST_EqualsST_CoversST_CoveredBy

  • 构造运算ST_BufferST_ConvexHullST_SimplifyST_CollectST_UnionST_IntersectionST_DifferenceST_SymDifference

  • MBR 谓词MBRContainsMBRWithinMBRCoversMBRCoveredByMBRDisjointMBREqualsMBRIntersectsMBROverlapsMBRTouches

  • 其他:GeoHash、GeoJSON、线性参考、离散曲线距离、有效性谓词,以及 WKT/WKB 序列化 I/O。

  • DDL:子类型约束列(如 POINT 列拒绝 LINESTRING)、SRID 列属性(POINT SRID 4326),以及 SHOW CREATE TABLE 支持。

新增 SQL 函数:BIT_COUNT、INTERVAL、NAME_CONST

  • BIT_COUNT(N)(#24913):返回 N 中设置为 1 的比特位数。支持整数(负数使用补码)、二进制字符串和十六进制字面量。NULL 输入返回 NULL

  • INTERVAL(N, N1, N2, ...)(#24923):返回最后一个不大于 N 的阈值索引。当 N < N1 时返回 0。NULL 阈值被跳过。N 为 NULL 时返回 -1。

  • NAME_CONST(name, value)(#25001):返回具有指定列名的给定值。name 必须是常量字符串字面量,value 必须是可折叠的常量。主要用于 MySQL 复制兼容。

新增 UUID 函数:IS_UUID、UUID_TO_BIN、BIN_TO_UUID(#24984)

  • IS_UUID(str):如果 str 是有效的 UUID 字符串则返回 1(支持带连字符、无连字符、花括号和大写格式),否则返回 0。NULL 输入返回 NULL

  • UUID_TO_BIN(str [, swap_flag]):将 UUID 字符串转换为 16 字节的 VARBINARY 表示。当 swap_flag 为 1 时,将 time-high 字段移到 time-mid 和 time-low 之前以优化索引效率。

  • BIN_TO_UUID(bin [, swap_flag]):将 16 字节的 VARBINARY 转换回 UUID 字符串。swap_flag 必须与 UUID_TO_BIN 中使用的一致。

全文索引 JOIN 重写支持(#24880)

全文索引重写规则现在支持 INNER JOIN 查询,在全文搜索与表 join 结合时能高效执行。全文表可以在 JOIN 的任一侧。支持同一扫描上的多个全文过滤器和两个 JOIN 子节点上的全文过滤器。此阶段不支持外连接(LEFT JOIN、RIGHT JOIN)和跨表 MATCH() 条件。

VARCHAR 列前缀索引(#24809)

MatrixOne 现在支持 VARCHAR 列的前缀索引,语法为 INDEX idx_name(col_name(N)),其中 N 是前缀长度。支持的形式包括内联 CREATE TABLE、独立的 CREATE INDEXALTER TABLE ... ADD INDEX。UNIQUE 前缀索引在前缀部分强制唯一性。前缀索引支持在已有数据后创建时的回填。

改进

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

数据分支权限强制执行已重新设计。所有 DATA BRANCH 语句现在要求在源对象和目标对象上都具有适当权限:

  • DATA BRANCH CREATE TABLE 要求目标数据库上的 CREATE TABLE 权限和源表上的 SELECT 权限。

  • DATA BRANCH CREATE DATABASE 要求目标上的 CREATE DATABASE 权限和所有源表上的 SELECT 权限。

  • DATA BRANCH DELETE TABLE/DATABASE 要求 DROP 权限,回退到表/数据库所有权检查。

  • DATA BRANCH DIFF 要求两个表上的 SELECT 权限。

  • DATA BRANCH MERGE/PICK 要求两个表上的 SELECT 权限,加上目标上的 INSERTUPDATEDELETE 权限。

  • 跨账户操作仍需 sys 租户。

CLONE DATABASE 源解析

CLONE DATABASE 语句现在能正确解析源数据库,包括来自订阅的数据库。当源数据库来自订阅时,克隆操作会自动解析其底层数据库名称和账户。跨账户克隆正确强制要求快照,且只有 sys 租户可以克隆到另一个账户。CREATE TABLE ... CLONE 语法现在也支持 COPY GRANTS 将源表权限复制到克隆表。

event_scheduler 系统变量(#25022)

event_scheduler 系统变量现在报告为 DISABLED(只读),因为 CREATE EVENT 和事件调度不受支持。此前它会报告 ON。该变量为 MySQL 兼容性而存在。

Parquet 加载:STRING 到 VECF32/VECF64 转换(#24937)

Parquet 文件中的 STRING 列现在可以加载到可空 VECF32VECF64 向量列中。导入期间,Parquet 文件中的字符串值会自动转换为目标向量类型。

次要角色 DDL 所有权(#24970)

当用户激活了次要角色(通过 SET SECONDARY ROLE ALL)并执行 DDL 语句(如 CREATE TABLE)时,新创建对象的所有权将分配给持有所需 DDL 权限的次要角色,而非用户的主角色。如果次要角色后来被撤销,用户将失去通过该角色创建的对象访问权限。

账户、用户和角色名称的大小写敏感性

账户、用户和角色的名称现在正确区分大小写,支持混合大小写和 Unicode/CJK 字符。CREATE ACCOUNT IF NOT EXISTSCREATE USER IF NOT EXISTSCREATE ROLE IF NOT EXISTS 和相应的 DROP IF EXISTS 操作在判断对象是否已存在时遵循大小写敏感性。

兼容性说明

  • event_scheduler 现在返回 DISABLED 而非 ON。检查 ON 以检测事件支持的应用程序需要更新。

  • 次要角色 DDL 所有权变更可能影响之前主角色被分配为表所有者的工作流。如果在 DDL 操作期间使用 SET SECONDARY ROLE ALL,升级后请验证对象所有权。

  • 数据分支操作现在要求源对象和目标对象上都具有适当权限。之前无需双方显式授权即可执行这些操作的用户可能需要额外权限。

  • ST_GeomFromGeoJSON 默认 SRID 为 4326(而非 0)。

  • 大地坐标(SRID 4326)的空间关系谓词(ST_ContainsST_Intersects 等)尚不支持——这些仍以笛卡尔平面方式计算,不受 SRID 影响。

关于本文档

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

完整变更日志

v4.0.0-rc2-v4.0.0-rc3