MatrixOne v26.3.0.15 Release Notes¶
Release Date: July 6, 2026 MatrixOne Version: v26.3.0.15
MatrixOne 3.0.15 is a feature and stability release. It adds ten new SQL functions (RIGHT, QUOTE, DAYNAME, MAKETIME, MONTHNAME, QUARTER, TIME_FORMAT, and existing HOUR/MINUTE/SECOND with expanded test coverage), introduces the POSITION(substr IN str) syntax as a synonym for LOCATE(), supports COALESCE and BETWEEN with DECIMAL256, enhances GRANT privilege scope semantics, supports fulltext index rewrite for joins, improves CDC task pause reliability, fixes Parquet loading with STRING-to-DATETIME/VECTOR conversion, and includes several bug fixes.
New Features¶
New SQL Functions: RIGHT, QUOTE (#24694, #24753)¶
RIGHT(str, len)— Returns the rightmostlencharacters from the stringstr. Supports negative lengths (returns empty string) and Unicode multibyte characters.QUOTE(str)— Quotes a string for safe use in SQL statements, escaping single quotes, backslashes, and control characters.
New Datetime Functions: DAYNAME, MAKETIME, MONTHNAME, QUARTER, TIME_FORMAT (#24757)¶
DAYNAME(date)— Returns the full weekday name (e.g.,'Monday','Saturday').MAKETIME(hour, minute, second)— Constructs aTIMEvalue with hours up to 838, matching MySQL behavior.MONTHNAME(date)— Returns the full month name (e.g.,'January','December').QUARTER(date)— Returns the quarter (1–4) for a given date.TIME_FORMAT(time, format)— Formats aTIMEvalue using specifiers (%H,%i,%s,%r,%T,%p, etc.).
POSITION(substr IN str) Syntax (#24775)¶
POSITION(substr IN str)is now supported as a synonym forLOCATE(substr, str), matching MySQL and standard SQL syntax. ThePOSITIONform does not support a start position argument.
DECIMAL256 Support in COALESCE and BETWEEN (#24841)¶
COALESCE()now supportsDECIMAL256inputs and properly aligns decimal scales across all branches to avoid incorrect results when operands have different scales.BETWEENnow supportsDECIMAL256comparison.
Improvements¶
GRANT Privilege Scope Semantics (#24752, #24936)¶
Global table
GRANT OPTIONnow correctly cascades to narrower scopes (db.* and db.table). Previously, a user withGRANT OPTION ON *.*could not re-grant privileges on specific databases or tables.View privilege checks now use exact object matching instead of broad scope lookups, preventing cross-database privilege leakage.
SET SECONDARY ROLE ALLno longer unintentionally changes the current primary role; it only activates secondary roles as documented.
Fulltext Index Rewrite for Joins (#24886)¶
Fulltext index rewrite rules now support join queries, enabling efficient fulltext search when combined with table joins.
CDC Task Pause Reliability (#24804)¶
Pausing an already-paused CDC task is now idempotent (returns success without errors).
Added a pause-complete hook that ensures catalog state is updated atomically when a CDC task pause completes.
CDC task pause uses a
pausingintermediate state for better visibility and consistency.
Parquet Loading: STRING to DATETIME/VECTOR Conversion (#24938)¶
Fixed Parquet loading where optional STRING columns could not be loaded into nullable
DATETIMEorVECTOR(VECF32/VECF64) columns. Such columns now load correctly.
Better Error Messages¶
Database-not-found and table-not-found errors now use specific error codes (
ErrBadDB,ErrNoSuchTable) instead of generic internal errors, improving error clarity for users.
Bug Fixes¶
Data Branch: Create Table Clone SQL (#24958)¶
Fixed an issue where
DATA BRANCH CREATE TABLE ... CLONESQL generation was incorrect on the 3.0 branch.
Data Branch: Result Conversion (#24876)¶
Fixed data branch result conversion issues on the 3.0 development branch.
Transaction: Cleanup Rollback (#24781)¶
Fixed an edge case where a transaction operator could leak state if rollback was called from connection cleanup with an already-canceled context.
Decimal Division Truncation (#24707)¶
Fixed an issue where decimal integer division could incorrectly truncate results.
System Variable Expression Folding (#24802)¶
Fixed an issue where system variable expressions (e.g.,
@@sql_mode) were not properly folded before remote execution, causing incorrect results in multi-CN deployments.
Compatibility Notes¶
SET SECONDARY ROLE ALLno longer changes the primary role. If you previously relied on this side effect, useSET ROLE <role_name>to explicitly switch the primary role.Global table
GRANT OPTION ON *.*now authorizes grants at narrower scopes, which may affect existing privilege configurations.View privilege checks are now stricter; grants on views now require exact object-level permissions rather than broad-scope matches.
The
COALESCE()decimal scale alignment fix may produce different (correct) result types when operands have significantly different decimal scales.
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.