Skip to content

MatrixOne v26.3.0.13 Release Notes

Release Date: May 26, 2026 MatrixOne Version: v26.3.0.13

MatrixOne 3.0.13 is a stability and correctness release. It makes TASKS a non-reserved keyword, broadens role rewrite rule coverage to secondary and inherited roles, and fixes GROUP_CONCAT ordering and LEAD/LAG decimal scaling issues.

Improvements

TASKS Made Non-Reserved Keyword (#24482)

  • TASKS is no longer a reserved keyword. It can now be used as an unquoted identifier (table name, column name, etc.) without backtick wrapping.

Role Rewrite Rules Now Cover Secondary and Inherited Roles (#24393)

  • Rewrite rules are now loaded from all active roles: the default role, directly granted secondary roles, and inherited roles (discovered via breadth-first traversal by grant time). Previously only the default role's rules were used.
  • When multiple roles define a rule for the same table, the priority order is: default role > directly granted secondary roles (by grant time) > inherited roles (breadth-first by grant time).
  • Rules from different roles that produce the same output columns are merged using UNION DISTINCT, producing a combined rule rather than a blind last-write-wins override.
  • ALTER ROLE ... ADD RULE now validates that the rule_sql is a syntactically valid SELECT statement before writing it to mo_catalog.mo_role_rule. Invalid rule SQL is rejected immediately with an error.
  • Rewrite rule load failures and formatting errors are now properly returned to the client as query errors instead of being silently swallowed. Queries that would have silently skipped rewrite injection in previous versions may now fail with an explicit error when the rule set is malformed.
  • Switching roles (SET ROLE, secondary role toggle) now invalidates the privilege and rewrite rule caches, ensuring the new role's permissions take effect immediately.

Bug Fixes

GROUP_CONCAT: Multi-Argument with ORDER BY (#24398)

  • Fixed GROUP_CONCAT(a, ':', b ORDER BY k) where multi-argument GROUP_CONCAT with an ORDER BY clause was incorrectly ordering. The ORDER BY now correctly sorts the concatenated values.
  • Fixed independent ordering for multiple GROUP_CONCAT calls in the same query (e.g., GROUP_CONCAT(a ORDER BY x) and GROUP_CONCAT(b ORDER BY y)). Each call now uses its own ORDER BY clause independently.

LEAD/LAG: Decimal Default Value Casting (#24445)

  • Fixed a decimal scaling issue where the default value (third argument) of LEAD() and LAG() window functions was not cast to match the type of the value expression. For example, LEAD(decimal_col, 1, -1) with a DECIMAL(10,4) column would display -0.0001 instead of -1.0000. The default is now properly cast to the value column's type.

Compatibility Notes

  • Queries that previously ran with a malformed rewrite rule that was silently skipped may now return an explicit error. Review role rules with SHOW RULES ON ROLE and remove or fix invalid entries with ALTER ROLE ... DROP RULE.
  • TASKS can now be used as an unquoted identifier. Existing code that backtick-wraps TASKS continues to work.

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.

Full Changelog

v26.3.0.12-v26.3.0.13