MatrixOne v26.4.2.0 Release Notes

Release Date: August 26, 2026 MatrixOne Version: v26.4.2.0 (v4.2.0)

MatrixOne v26.4.2.0 introduces enforced CHECK constraints, MySQL-compatible ALTER TABLE ... ALGORITHM/LOCK clauses, Iceberg and MongoDB external tables, the MERGE INTO and RETURNING statements, several new system variables, and a set of new aggregate, JSON, datetime, and utility functions.

New Features

  • Enforced CHECK constraints: CHECK constraints are now enforced on writes. A violating row raises a constraint-violation error, NULL values pass the check, INSERT IGNORE skips violating rows, and REPLACE, ON DUPLICATE KEY UPDATE, and CREATE TABLE AS SELECT all enforce the constraint.

  • ALTER TABLE ... ALGORITHM and LOCK clauses: ALTER TABLE now accepts MySQL-compatible ALGORITHM {DEFAULT | INSTANT | INPLACE | COPY} and LOCK {DEFAULT | NONE | SHARED | EXCLUSIVE} clauses. Rebuilding operations such as ADD COLUMN and DROP COLUMN require ALGORITHM=COPY; incompatible combinations are rejected with an explanatory error.

  • Iceberg external data (policy-gated): CREATE ICEBERG CATALOG registers an Apache Iceberg REST catalog, CREATE EXTERNAL TABLE ... ENGINE=ICEBERG maps a MatrixOne table to a catalog table, and SHOW ICEBERG CATALOGS lists registered catalogs. Iceberg code defaults all gates off, while the shipped etc/launch/cn.toml profile enables the read/write/DML/delete gates. In either case, access remains fail-closed until principal mapping and residency policy are registered.

  • MongoDB external data (allowlist-gated): CREATE MONGODB CONNECTION registers a MongoDB connection, and CREATE EXTERNAL TABLE ... ENGINE=MONGODB maps a MatrixOne table to a MongoDB collection. The v4.2.0 constructor defaults the connector to enabled, but endpoint access remains fail-closed because hostname/CIDR allowlists default empty. Credentials must use the account-scoped secret://env/MO_MONGODB_... namespace supported by the built-in resolver. Known v4.2.0 issue: SHOW MONGODB CONNECTIONS fails with an internal privilege-definition error instead of listing connections.

  • Iceberg and MongoDB lifecycle: ALTER ICEBERG CATALOG/DROP ICEBERG CATALOG, SHOW ICEBERG NAMESPACES/SHOW ICEBERG TABLES, and ALTER MONGODB CONNECTION/DROP MONGODB CONNECTION manage and inspect registered external-data metadata. INSERT OVERWRITE adds Iceberg writes with optional static PARTITION(field = literal, ...) selection.

  • Data Branch output tables and schema evolution: DATA BRANCH DIFF ... OUTPUT AS table persists a diff as a normal table with collision-safe source/flag metadata columns. DIFF and MERGE accept only schema changes with provable column lineage and compatible types, nullability, and key definitions.

  • Vector-index covering columns: IVFFLAT, CAGRA, and IVFPQ indexes accept INCLUDE(column_list) to store additional non-vector columns for covering queries without using them in distance calculations.

  • MERGE INTO: performs row-level merge operations on an Iceberg table, updating or deleting matched rows and inserting rows that are not matched. It requires Iceberg write, DML, and delete support to be explicitly enabled.

  • RETURNING: returns the final row images of supported single-table INSERT, UPDATE, and DELETE statements. The returning list can use target-table columns and deterministic scalar expressions; aggregates, old/new pseudo-namespaces, and the unsupported DML variants are rejected.

  • ANALYZE TABLE, DUMP TABLE, LOAD TABLE, PERFORM: ANALYZE TABLE collects column statistics with an optional column list; DUMP TABLE and LOAD TABLE export and reload table data via local, file://, or stage:// paths; PERFORM executes a SELECT while suppressing result rows in the client response (saved results remain available to RESULT_SCAN when enabled).

  • New functions: APPROX_PERCENTILE(), MAX_BY(), MAX_BY_NON_NULL(), DATE_TRUNC(), JSON_CONTAINS(), JSON_CONTAINS_PATH(), JSON_MERGE_PATCH(), JSON_MERGE_PRESERVE(), JSON_OVERLAPS(), JSON_REMOVE(), ONNX_RUN(), and ROW_COUNT().

  • New system variables: enable_explain_scheduling, query_max_workers, query_pool_strict, remap_rewrites, and cte_max_memory_bytes.

  • MATRIXONE_NATIVE SQL mode: a MatrixOne-specific sql_mode token that relaxes selected MySQL DML compatibility checks, requires complete-token string-to-number conversion, and makes ONLY_FULL_GROUP_BY use a stricter literal group-list rule when both modes are enabled.

Behavior Changes

  • group_concat_max_len default changed: the default value of group_concat_max_len was changed from 4 to the MySQL-compatible 1024 bytes, so GROUP_CONCAT results are no longer silently truncated to four bytes by default.

Compatibility Notes

  • CHECK constraints that previously were accepted but not enforced now reject violating writes. Review existing schemas that relied on unenforced CHECK constraints before upgrading.

  • Applications that depended on the old four-byte GROUP_CONCAT default will now receive up to 1024 bytes by default; set group_concat_max_len explicitly to preserve the previous behavior.

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

v4.1.4…v4.2.0