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_COUNT、INTERVAL、NAME_CONST、IS_UUID、UUID_TO_BIN、BIN_TO_UUID);支持全文索引的 JOIN 重写;新增 VARCHAR 列前缀索引;支持 Parquet 中 STRING 到 VECTOR 的转换;增强了 CLONE DATABASE 源解析;改进了数据分支权限强制执行;新增 event_scheduler 系统变量;以及完善了次要角色 DDL 所有权机制。
新功能¶
GIS 几何引擎(#24777)¶
MatrixOne 现在包含内置 GIS 几何引擎,支持完整的 OGC 几何模型和 60+ 空间函数:
几何类型:
GEOMETRY、POINT、LINESTRING、POLYGON、MULTIPOINT、MULTILINESTRING、MULTIPOLYGON、GEOMETRYCOLLECTION,以及 32 位浮点变体(GEOMETRY32、POINT32、POLYGON32)和 geography 别名(GEOGRAPHY、GEOGRAPHY32)。SRID 支持:SRID 0(笛卡尔坐标系)和 SRID 4326(WGS 84 大地坐标系),测量值返回米/平方米。
构造函数:
ST_GeomFromText、ST_PointFromText、ST_LineFromText、ST_PolyFromText、ST_MPointFromText、ST_MLineFromText、ST_MPolyFromText、ST_GeomCollFromText,以及 WKB(ST_GeomFromWKB)和 GeoJSON(ST_GeomFromGeoJSON)变体。访问器:
ST_GeometryType、ST_X、ST_Y、ST_SRID、ST_Dimension、ST_NumPoints、ST_NumGeometries、ST_NumInteriorRings、ST_IsEmpty、ST_IsClosed、ST_IsCollection等。测量函数:
ST_Area、ST_Length、ST_Distance、ST_Distance_Sphere。空间关系谓词:
ST_Contains、ST_Within、ST_Intersects、ST_Disjoint、ST_Touches、ST_Crosses、ST_Overlaps、ST_Equals、ST_Covers、ST_CoveredBy。构造运算:
ST_Buffer、ST_ConvexHull、ST_Simplify、ST_Collect、ST_Union、ST_Intersection、ST_Difference、ST_SymDifference。MBR 谓词:
MBRContains、MBRWithin、MBRCovers、MBRCoveredBy、MBRDisjoint、MBREquals、MBRIntersects、MBROverlaps、MBRTouches。其他: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 INDEX 和 ALTER 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权限,加上目标上的INSERT、UPDATE和DELETE权限。跨账户操作仍需 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 列现在可以加载到可空 VECF32 和 VECF64 向量列中。导入期间,Parquet 文件中的字符串值会自动转换为目标向量类型。
次要角色 DDL 所有权(#24970)¶
当用户激活了次要角色(通过 SET SECONDARY ROLE ALL)并执行 DDL 语句(如 CREATE TABLE)时,新创建对象的所有权将分配给持有所需 DDL 权限的次要角色,而非用户的主角色。如果次要角色后来被撤销,用户将失去通过该角色创建的对象访问权限。
账户、用户和角色名称的大小写敏感性¶
账户、用户和角色的名称现在正确区分大小写,支持混合大小写和 Unicode/CJK 字符。CREATE ACCOUNT IF NOT EXISTS、CREATE USER IF NOT EXISTS、CREATE 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_Contains、ST_Intersects等)尚不支持——这些仍以笛卡尔平面方式计算,不受 SRID 影响。
关于本文档¶
本文档由文档同步 Agent 根据 MatrixOne 源码 diff 自动生成,并通过 PR 进行人工审核。