MatrixOne v26.3.0.14 Release Notes

Release Date: June 2, 2026 MatrixOne Version: v26.3.0.14

MatrixOne 3.0.14 is a feature and stability release. It adds five new mathematical functions (SIGN, TRUNCATE, RADIANS, DEGREES, ATAN2), introduces PostgreSQL-style UPDATE ... FROM syntax, enhances Hive partitioned Parquet external table support, adds MySQL-compatible ORDER BY NULL / GROUP BY NULL handling, supports SUM() over boolean expressions, and includes several bug fixes for REPLACE with multiple unique keys, ASIN/SQRT out-of-domain input handling, and data branch hashdiff consistency.

New Features

New Mathematical Functions: SIGN, TRUNCATE, RADIANS, DEGREES, ATAN2 (#24650, #24660, #24634, #24609, #24603)

  • SIGN(X) — Returns the sign of X: -1 for negative, 0 for zero, 1 for positive.

  • TRUNCATE(X, D) — Returns X truncated to D decimal places without rounding.

  • RADIANS(X) — Converts X from degrees to radians (X * PI() / 180).

  • DEGREES(X) — Converts X from radians to degrees (X * 180 / PI()).

  • ATAN2(Y, X) — Returns the arctangent of Y/X in radians, using the signs of both arguments to determine the quadrant.

PostgreSQL-style UPDATE … SET … FROM … WHERE (#24657)

  • The UPDATE statement now supports a PostgreSQL-style FROM clause that introduces additional read-only join sources. The target table is updated while FROM-clause tables act as join sources and are not modified. ORDER BY and LIMIT are not supported with this syntax.

  • Supports CTEs in the FROM clause (e.g., WITH ... UPDATE ... FROM ...), nested JOIN trees including LEFT JOIN, and self-joins where target and source share the same table.

Improvements

Enhanced Hive Partitioned Parquet External Tables (#24677)

  • Added Hive-style partitioned Parquet external table support with partition listing cache (hive_partition_cache_ttl, hive_partition_cache_max_entries, hive_partition_cache_max_bytes system variables).

  • Added hive_partition_list_concurrency system variable to control parallelism during partition listing.

  • Added ivf_preload_entries system variable for IVF index entry preloading.

MySQL Compatibility: ORDER BY NULL / GROUP BY NULL (#24610)

  • ORDER BY NULL and GROUP BY NULL are now supported as no-op clauses, matching MySQL behavior where NULL in these clauses disables ordering or grouping.

SUM() Over Boolean Expressions (#24625)

  • SUM() now supports boolean expressions. TRUE is treated as 1 and FALSE as 0, matching MySQL behavior.

Decimal Type Promotion in CASE/IF (#24589)

  • Improved decimal type promotion in CASE WHEN, IF(), and COALESCE() expressions. When operands have different decimal scales, the result type now correctly promotes to the wider scale, up to DECIMAL256 when necessary. Previously, scale mismatches could lead to incorrect results.

Bug Fixes

ASIN/SQRT Out-of-Domain Input Handling (#24563)

  • ASIN(X) with |X| > 1 and SQRT(X) with X < 0 now properly return NULL instead of crashing or returning invalid results.

REPLACE: One Row Conflicting with Multiple Old Rows (#24663)

  • Fixed an issue where REPLACE into a table with multiple unique keys could incorrectly handle cases where a single new row conflicted with multiple existing rows via different unique keys.

Data Branch Hashdiff Consistency (#24391)

  • Fixed alignment issues in DATA BRANCH DIFF hashdiff computation on the 3.0 branch, ensuring consistent diff results.

Transaction Write Order Preservation (#24574)

  • Fixed an issue where transaction write order could be lost after workspace merge, ensuring write operations maintain the original order.

Lock Service: Stale Range Waiters Cleanup (#24640)

  • Fixed a lock service issue where stale range waiters could accumulate, potentially causing stuck lock acquisition in pessimistic transactions.

SQL Task Metadata Visibility in Multi-CN (#24690)

  • Fixed SQL task metadata visibility when running in a multi-CN deployment, ensuring consistent task state tracking across CN nodes.

Data Branch Transaction Error Message (#24698)

  • Clarified the error message returned when a data branch operation is attempted within an explicit transaction, making it clear that data branch DDL is not supported in multi-statement transactions.

Compatibility Notes

  • ORDER BY NULL and GROUP BY NULL now behave as no-ops (matching MySQL), where previously they might have been treated differently.

  • ASIN() and SQRT() now return NULL for out-of-domain inputs instead of potentially crashing; queries that previously relied on the old behavior may need updating.

  • New system variables (hive_partition_cache_*, hive_partition_list_concurrency, ivf_preload_entries) are available for tuning but maintain safe defaults.

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.13-v26.3.0.14