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 ofX: -1 for negative, 0 for zero, 1 for positive.TRUNCATE(X, D)— ReturnsXtruncated toDdecimal places without rounding.RADIANS(X)— ConvertsXfrom degrees to radians (X * PI() / 180).DEGREES(X)— ConvertsXfrom radians to degrees (X * 180 / PI()).ATAN2(Y, X)— Returns the arctangent ofY/Xin radians, using the signs of both arguments to determine the quadrant.
PostgreSQL-style UPDATE … SET … FROM … WHERE (#24657)¶
The
UPDATEstatement now supports a PostgreSQL-styleFROMclause that introduces additional read-only join sources. The target table is updated whileFROM-clause tables act as join sources and are not modified.ORDER BYandLIMITare not supported with this syntax.Supports CTEs in the
FROMclause (e.g.,WITH ... UPDATE ... FROM ...), nestedJOINtrees includingLEFT 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_bytessystem variables).Added
hive_partition_list_concurrencysystem variable to control parallelism during partition listing.Added
ivf_preload_entriessystem variable for IVF index entry preloading.
MySQL Compatibility: ORDER BY NULL / GROUP BY NULL (#24610)¶
ORDER BY NULLandGROUP BY NULLare now supported as no-op clauses, matching MySQL behavior whereNULLin these clauses disables ordering or grouping.
SUM() Over Boolean Expressions (#24625)¶
SUM()now supports boolean expressions.TRUEis treated as 1 andFALSEas 0, matching MySQL behavior.
Decimal Type Promotion in CASE/IF (#24589)¶
Improved decimal type promotion in
CASE WHEN,IF(), andCOALESCE()expressions. When operands have different decimal scales, the result type now correctly promotes to the wider scale, up toDECIMAL256when necessary. Previously, scale mismatches could lead to incorrect results.
Bug Fixes¶
ASIN/SQRT Out-of-Domain Input Handling (#24563)¶
ASIN(X)with|X| > 1andSQRT(X)withX < 0now properly returnNULLinstead of crashing or returning invalid results.
REPLACE: One Row Conflicting with Multiple Old Rows (#24663)¶
Fixed an issue where
REPLACEinto 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 DIFFhashdiff 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 NULLandGROUP BY NULLnow behave as no-ops (matching MySQL), where previously they might have been treated differently.ASIN()andSQRT()now returnNULLfor 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.