Skip to content

MatrixOne v26.3.0.12 Release Notes

Release Date: May 19, 2026 MatrixOne Version: v26.3.0.12

MatrixOne 3.0.12 brings branch protect snapshots, hive-style partitioned Parquet external tables, expanded MySQL type compatibility (YEAR, DECIMAL256, SET), and new date/time functions. Below are the major updates.

New features

Branch Protect Snapshot (#24347)

  • DATA BRANCH CREATE TABLE and DATA BRANCH CREATE DATABASE now automatically create an internal branch-protect snapshot (kind=branch, name=__mo_branch_<child_table_id>) that shields the parent's data from garbage collection while any descendant branch remains alive.
  • Branch snapshots are excluded from SHOW SNAPSHOTS and snapshot quota counts. They cannot be dropped directly via DROP SNAPSHOT — they are reclaimed automatically when the entire DAG subtree is deleted.
  • DROP TABLE and DATA BRANCH DELETE TABLE on a branch child reclaim the associated branch snapshot as part of the delete operation.

Hive-Style Partitioned Parquet External Tables (#24329)

  • CREATE EXTERNAL TABLE now supports Hive-style directory-based partitioning for Parquet files. Two new INFILE options control the feature: 'hive_partitioning'='true' and 'hive_partition_columns'='col1,col2,...'.
  • Both single-level and multi-level partition hierarchies are supported. Partition columns are declared as regular columns in the table schema and matched case-insensitively.
  • Equality (=) and IN predicates on partition columns are pruned at the file-listing stage for reduced I/O. __HIVE_DEFAULT_PARTITION__ directories map to SQL NULL for the partition column.
  • A virtual column __mo_filepath returns the source file path for each row and is available on all external tables.

New YEARWEEK() Function (#24234)

  • YEARWEEK(date, [mode]) returns the year and week number for a given date or datetime expression as an integer in YYYYWW format (e.g., 202623).
  • An optional mode parameter (0–7) controls week numbering, matching MySQL semantics. The default mode is 0 (Sunday-start, 0–53 range).

WEEK() Mode Parameter (#24236)

  • WEEK(date) now accepts an optional second argument WEEK(date, mode) where mode is an integer 0–7 controlling the week start day and return value range, matching MySQL behavior.

MySQL Type Compatibility (YEAR, DECIMAL256, SET) (#24342, #24204)

  • YEAR: Reimplemented with proper 4-digit display (0001–9999), improved two-digit year handling, and consistent conversion semantics.
  • DECIMAL256: Extended the DECIMAL type to support precision up to 76 digits (DECIMAL256), stored in 32 bytes. The previous limit was 38 digits (DECIMAL128).
  • SET: The SET type is now supported for storing sets of predefined string values. Syntax follows MySQL conventions: SET('value1','value2',...).
  • ENUM: Improved ENUM type validation and comparison semantics. See ENUM Type.

Improvements

Data Branch DIFF/MERGE Across Arbitrary DAG Depth (#24377)

  • DATA BRANCH DIFF and DATA BRANCH MERGE now correctly compute the LCA (Lowest Common Ancestor) and collect-range across DAG chains and trees of arbitrary depth, not just direct parent-child relationships. Multi-fork trees with complex branching histories produce correct results.

Parquet Decimal Compatibility for LOAD DATA (#24332)

  • LOAD DATA INFILE from Parquet files now correctly converts all three Parquet binary decimal encodings (INT32, INT64, FixedLenByteArray) to the native DECIMAL type, covering DECIMAL(5,2) through DECIMAL(24,4).

Interval Parenthesized Modulo (#24242)

  • INTERVAL expressions with parenthesized modulo arithmetic (e.g., INTERVAL (a % 5) DAY) are now parsed and evaluated correctly.

Compatibility notes

  • SHOW SNAPSHOTS no longer displays branch-protect snapshots (internal snapshots with kind='branch'). These snapshots are managed automatically by the data branch subsystem.
  • DROP SNAPSHOT returns an error if the target snapshot is a branch-protect snapshot. Use DATA BRANCH DELETE TABLE / DATABASE or DROP TABLE / DATABASE to reclaim branch data.
  • Applications that previously relied on seeing all mo_snapshots rows (including internal ones) should update their queries to add WHERE kind != 'branch' or use the SHOW SNAPSHOTS command.
  • The extended DECIMAL range (DECIMAL256) may affect storage behavior for applications working with precision above 38 digits.

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.11-v26.3.0.12