MatrixOne v26.4.0.0-rc3 Release Notes¶
Release Date: July 9, 2026 MatrixOne Version: v26.4.0.0-rc3 (v4.0.0-rc3)
MatrixOne v26.4.0.0-rc3 is a major feature release. It introduces a comprehensive GIS/Geometry engine with 60+ spatial functions and full geometry type support, adds six new SQL built-in functions (BIT_COUNT, INTERVAL, NAME_CONST, IS_UUID, UUID_TO_BIN, BIN_TO_UUID), supports fulltext index rewrite for JOIN queries, adds prefix indexes on VARCHAR columns, enables Parquet STRING-to-VECTOR conversion, enhances CLONE DATABASE source resolution, improves data branch privilege enforcement, adds the event_scheduler system variable, and includes secondary role DDL ownership refinements.
New Features¶
GIS Geometry Engine (#24777)¶
MatrixOne now includes a built-in GIS geometry engine supporting the full OGC geometry model with 60+ spatial functions:
Geometry types:
GEOMETRY,POINT,LINESTRING,POLYGON,MULTIPOINT,MULTILINESTRING,MULTIPOLYGON,GEOMETRYCOLLECTION, plus 32-bit float variants (GEOMETRY32,POINT32,POLYGON32) and geography aliases (GEOGRAPHY,GEOGRAPHY32).SRID support: SRID 0 (Cartesian) and SRID 4326 (WGS 84 geodetic) for measures returning meters/m².
Constructors:
ST_GeomFromText,ST_PointFromText,ST_LineFromText,ST_PolyFromText,ST_MPointFromText,ST_MLineFromText,ST_MPolyFromText,ST_GeomCollFromText, plus WKB (ST_GeomFromWKB) and GeoJSON (ST_GeomFromGeoJSON) variants.Accessors:
ST_GeometryType,ST_X,ST_Y,ST_SRID,ST_Dimension,ST_NumPoints,ST_NumGeometries,ST_NumInteriorRings,ST_IsEmpty,ST_IsClosed,ST_IsCollection, and more.Measures:
ST_Area,ST_Length,ST_Distance,ST_Distance_Sphere.Predicates:
ST_Contains,ST_Within,ST_Intersects,ST_Disjoint,ST_Touches,ST_Crosses,ST_Overlaps,ST_Equals,ST_Covers,ST_CoveredBy.Constructive ops:
ST_Buffer,ST_ConvexHull,ST_Simplify,ST_Collect,ST_Union,ST_Intersection,ST_Difference,ST_SymDifference.MBR predicates:
MBRContains,MBRWithin,MBRCovers,MBRCoveredBy,MBRDisjoint,MBREquals,MBRIntersects,MBROverlaps,MBRTouches.Additional: GeoHash, GeoJSON, linear referencing, discrete curve distances, validity predicates, and I/O (WKT/WKB serialization).
DDL: Subtype-constrained columns (e.g.,
POINTcolumn rejectsLINESTRING), SRID column attributes (POINT SRID 4326), andSHOW CREATE TABLEsupport.
New SQL Functions: BIT_COUNT, INTERVAL, NAME_CONST¶
BIT_COUNT(N)(#24913): Returns the number of bits set to 1 inN. Works with integers (uses two’s complement for negatives), binary strings, and hex literals. ReturnsNULLforNULLinput.INTERVAL(N, N1, N2, ...)(#24923): Returns the index of the last threshold thatNis greater than or equal to. Equals 0 whenN < N1. NULL thresholds are skipped. Returns -1 ifNis NULL.NAME_CONST(name, value)(#25001): Returns the given value with the specified column name. The name must be a constant string literal and the value must be a foldable constant. Primarily used for MySQL replication compatibility.
New UUID Functions: IS_UUID, UUID_TO_BIN, BIN_TO_UUID (#24984)¶
IS_UUID(str): Returns 1 ifstris a valid UUID string (supports dashed, no-dash, braced, and uppercase formats), 0 otherwise. ReturnsNULLforNULLinput.UUID_TO_BIN(str [, swap_flag]): Converts a UUID string to a 16-byteVARBINARYrepresentation. Whenswap_flagis 1, the time-high field is moved before time-mid and time-low for indexing efficiency.BIN_TO_UUID(bin [, swap_flag]): Converts a 16-byteVARBINARYback to a UUID string. Theswap_flagmust match what was used inUUID_TO_BIN.
Fulltext Index Rewrite for JOIN Queries (#24880)¶
Fulltext index rewrite rules now support INNER JOIN queries, enabling efficient full-text search when combined with table joins. The fulltext table can be on either side of the JOIN. Multiple fulltext filters on the same scan and fulltext filters on both JOIN children are supported. Outer joins (LEFT JOIN, RIGHT JOIN) and cross-table MATCH() conditions are not supported in this phase.
Prefix Index on VARCHAR Columns (#24809)¶
MatrixOne now supports prefix indexes on VARCHAR columns using the syntax INDEX idx_name(col_name(N)), where N is the prefix length. Supported forms include inline CREATE TABLE, standalone CREATE INDEX, and ALTER TABLE ... ADD INDEX. UNIQUE prefix indexes enforce uniqueness on the prefixed portion. Prefix indexes support backfill when created after data already exists.
Improvements¶
Data Branch Privilege Model (#24879)¶
The data branch privilege enforcement has been redesigned. All DATA BRANCH statements now require appropriate privileges on both source and target objects:
DATA BRANCH CREATE TABLErequiresCREATE TABLEon the destination database andSELECTon the source table.DATA BRANCH CREATE DATABASErequiresCREATE DATABASEon the destination andSELECTon all source tables.DATA BRANCH DELETE TABLE/DATABASErequiresDROPprivileges, with fallback to table/database ownership checks.DATA BRANCH DIFFrequiresSELECTon both tables.DATA BRANCH MERGE/PICKrequiresSELECTon both tables plusINSERT,UPDATE, andDELETEon the destination.Cross-account operations still require the sys tenant.
CLONE DATABASE Source Resolution¶
The CLONE DATABASE statement now properly resolves source databases, including those originating from subscriptions. When the source database is from a subscription, the clone operation resolves its underlying database name and account automatically. Cross-account cloning correctly enforces that a snapshot is required and only the sys tenant can clone to another account. The CREATE TABLE ... CLONE syntax now also supports COPY GRANTS to copy source table privileges to the cloned table.
event_scheduler System Variable (#25022)¶
The event_scheduler system variable is now reported as DISABLED (read-only) since CREATE EVENT and event scheduling are not supported. Previously it would report ON. The variable exists for MySQL compatibility.
Parquet Loading: STRING to VECF32/VECF64 Conversion (#24937)¶
STRING columns in Parquet files can now be loaded into nullable VECF32 and VECF64 vector columns. The string values in the Parquet file are automatically converted to the target vector type during import.
Secondary Role DDL Ownership (#24970)¶
When a user has activated secondary roles (via SET SECONDARY ROLE ALL) and executes DDL statements such as CREATE TABLE, the ownership of the newly created object is assigned to the secondary role holding the required DDL privilege, rather than the user’s primary role. If the secondary role is later revoked, the user loses access to objects created through that role.
Account, User, and Role Name Case Sensitivity¶
Names for accounts, users, and roles now properly distinguish case, supporting mixed-case and Unicode/CJK characters. CREATE ACCOUNT IF NOT EXISTS, CREATE USER IF NOT EXISTS, CREATE ROLE IF NOT EXISTS, and corresponding DROP IF EXISTS operations respect case sensitivity when determining whether an object already exists.
Compatibility Notes¶
event_schedulernow returnsDISABLEDinstead ofON. Applications checking forONto detect event support need to be updated.Secondary role DDL ownership changes may affect workflows where the primary role was previously assigned as the table owner. Verify object ownership after upgrading if you use
SET SECONDARY ROLE ALLduring DDL operations.Data branch operations now require appropriate privileges on both source and target objects. Users who previously executed these operations without explicit grants on both sides may need additional permissions.
ST_GeomFromGeoJSONdefaults to SRID 4326 (not 0).Geodetic (SRID 4326) predicates for spatial relationships (
ST_Contains,ST_Intersects, etc.) are not yet supported — these are evaluated in the Cartesian plane regardless of SRID.
About This Document¶
This document is generated by the docs sync agent based on the MatrixOne source diff and reviewed by humans via pull request.