Skip to content

Releases: StarRocks/starrocks

4.0.9

17 Apr 02:35
f647589

Choose a tag to compare

4.0.9

Release Date: April 16, 2026

Behavior Changes

  • When VARBINARY columns appear inside nested types (ARRAY, MAP, or STRUCT), StarRocks now correctly encodes the values in binary format in MySQL result sets. Previously, raw bytes were emitted directly, which could break text-protocol parsing for null bytes or non-printable characters. This change may affect downstream clients or tools that process VARBINARY data inside nested types. #71346
  • Routine Load jobs now automatically pause when a non-retryable error is encountered, such as a row causing the Primary Key size limit to be exceeded. Previously, the job would retry indefinitely because such errors were not recognized as non-retryable by the FE transaction status handler. #71161
  • SHOW CREATE TABLE and DESC statements now display the Primary Key columns for Paimon external tables. #70535
  • Cloud-native tablet metadata fetch operations (such as get_tablet_stats and get_tablet_metadatas) now use a dedicated thread pool instead of the shared UPDATE_TABLET_META_INFO pool. This prevents metadata fetch contention from impacting repair and other tasks. The new thread pool size is configurable via a new BE parameter. #70492

Improvements

  • Added session variables to control the encoding behavior of VARBINARY values in MySQL protocol responses, providing fine-grained control over binary result encoding in client connections. #71415
  • Added a snapshot_meta.json marker file to cluster snapshots to support integrity validation before snapshot restoration. #71209
  • Added warning logs for silently swallowed exceptions in WarehouseManager to improve observability of silent failures. #71215
  • Added metrics for Iceberg metadata table queries to support performance monitoring and diagnosis. #70825
  • The regexp_replace() function now supports constant folding during FE query planning, reducing planning overhead for queries with constant string arguments. #70804
  • Added categorized metrics for Iceberg time travel queries to improve monitoring and performance analysis. #70788
  • Added log output when update compaction is suspended, improving visibility into compaction lifecycle. #70538
  • SHOW COLUMNS now returns column comments for PostgreSQL external tables. #70520
  • Added support for dumping query execution plans when a query encounters an exception, improving diagnosability of runtime failures. #70387
  • Tablet deletion during DDL operations is now batched, reducing write lock contention on tablet metadata. #70052
  • Added a Force Drop recovery mechanism for synchronous materialized views that are stuck in an error state and cannot be dropped through normal means. #70029

Bug Fixes

The following issues have been fixed:

  • An issue where the profile START_TIME and END_TIME were not displayed in the session timezone. #71429
  • A shared-object mutation bug in PushDownAggregateRewriter when processing CASE-WHEN/IF expressions, which could cause incorrect query results. #71309
  • A use-after-free bug in ThreadPool::do_submit triggered when thread creation fails. #71276
  • An issue where information_schema.tables did not properly escape special characters in equality predicates, causing incorrect results. #71273
  • An issue where the materialized view scheduler continued to run after the materialized view became inactive. #71265
  • Fixed a task signature collision in UpdateTabletSchemaTask across concurrent ALTER jobs that could cause schema update tasks to be skipped. #71242
  • An issue where row count estimation produced NaN values for histograms that contained only MCV (Most Common Values) entries. #71241
  • A missing dependency on the AWS S3 Transfer Manager in the AWS SDK integration. #71230
  • An issue where TaskManager scheduler callbacks did not verify whether the current node is the leader, potentially causing duplicate task execution on follower nodes. #71156
  • A thread-local context pollution issue where ConnectContext information was not cleared after a leader-forwarded request completed. #71141
  • An issue where the partition predicate was missing in short-circuit point lookups, causing incorrect query results. #71124
  • A NullPointerException when analyzing generated columns during Stream Load or Broker Load if a column referenced by the generated column expression was absent from the load schema. #71116
  • A use-after-free bug in the error handling path of parallel segment and rowset loading. #71083
  • An issue where delvec orphan entries were left behind when a write operation preceded compaction in the same publish batch. #71049
  • An issue where queries appeared in the current_queries result via HTTP loopback when checking query progress internally. #71032
  • CVE-2026-33870 and CVE-2026-33871. #71017
  • A read lock leak in SharedDataStorageVolumeMgr. #70987
  • An issue where the input and result columns of the locate() function shared the same NullColumn reference inside BinaryColumns, causing incorrect results. #70957
  • An issue where safe tablet deletion checks were incorrectly applied during ALTER operations in share-nothing mode. #70934
  • A race condition in _all_global_rf_ready_or_timeout that could prevent global runtime filters from being applied correctly. #70920
  • An int32 overflow in the ACCUMULATED metric macro that caused metric values to silently overflow. #70889
  • Incorrect aggregation results in dictionary-encoded merge GROUP BY queries. #70866
  • CVE-2025-54920. #70862
  • A potential data loss issue in aggregation spill caused by incorrect hash table state handling during set_finishing. #70851
  • An issue where the content-length header was not reset when proxy_pass_request_body is disabled. #70821
  • An issue where the spill directory for load operations was cleaned up in the object destructor rather than during DeltaWriter::close(), potentially causing premature deletion of spill data. #70778
  • An issue where INSERT INTO ... BY NAME from FILES() did not correctly push down the schema for partial column sets. #70774
  • An issue where connector scan nodes did not reset the scan range source on query retry, causing incorrect results upon retry. #70762
  • A potential rowset metadata loss for Primary Key model tablets caused by a GC race during disk re-migration of the form A→B→A. #70727
  • An issue where a query-scoped warehouse hint leaked the ComputeResource object in ConnectContext, potentially affecting subsequent queries on the same connection. #70706
  • An issue where redundant conjuncts in MySqlScanNode and JDBCScanNode caused BE errors related to VectorizedInPredicate type mismatches. #70694
  • A missing libssl-dev dependency in the Ubuntu runtime environment. #70688
  • An issue where Iceberg manifest cache completeness was not validated on read, leading to incorrect scan results when the cache was partially populated. #70675
  • A duplicate closure reference in _tablet_multi_get_rpc that could cause use-after-free. #70657
  • Partial manifest cache writes in the Iceberg ManifestReader that could result in incomplete cache entries and incorrect scan behavior. #70652
  • A crash in array_map() when processing arrays that contain null literal elements. #70629
  • A ...
Read more

4.1.0

21 Apr 22:54
4ee68c0

Choose a tag to compare

4.1.0

Release Date: April 21, 2026

Shared-data Architecture

  • New Multi-Tenant Data Management

    Shared-data clusters now support range-based data distribution and automatic splitting and merging of tablets. Tablets can be automatically split when they become oversized or hotspots, without requiring schema changes, SQL modifications, or data re-ingestion. This feature can significantly improve usability, directly addressing data skew and hotspot issues in multi-tenant workloads. #65199 #66342 #67056 #67386 #68342 #68569 #66743 #67441 #68497 #68591 #66672 #69155

  • Large-Capacity Tablet Support (Phase 1)

    Supports significantly larger per-tablet data capacity for shared-data clusters, with a long-term target of 100 GB per tablet. Phase 1 focuses on enabling parallel Compaction and parallel MemTable finalization within a single Lake tablet, reducing ingestion and Compaction overhead as tablet size grows. #66586 #68677

  • Fast Schema Evolution V2

    Shared-data clusters now support Fast Schema Evolution V2, which enables second-level DDL execution for schema operations, and further extends the support to materialized views. #65726 #66774 #67915

  • [Beta] Inverted Index on shared-data

    Enables built-in inverted indexes for shared-data clusters to accelerate text filtering and full-text search workloads. #66541

  • Cache Observability

    Query-level cache hit ratio is now exposed in audit logs and the monitoring system for better cache transparency and latency diagnosis. Additional Data Cache metrics include memory and disk quota usage, and page cache statistics. #63964

  • Added segment metadata filter for Lake tables to skip irrelevant segments based on sort key range during scans, reducing I/O for range-predicate queries. #68124

  • Supports fast cancel for Lake DeltaWriter, reducing latency for cancelled ingestion jobs in shared-data clusters. #68877

  • Added support for interval-based scheduling for automated cluster snapshots. #67525

  • Supports pipeline execution for MemTable flush and merge, improving ingestion throughput for cloud-native tables in shared-data clusters. #67878

  • Supports dry_run mode for repairing cloud-native tables, allowing users to preview repair actions before execution. #68494

  • Added a thread pool for publish transactions in shared-nothing clusters, improving publish throughput. #67797

  • Supports dynamically modifying the datacache.enable property for cloud-native tables. #69011

Data Lake Analytics

  • Iceberg DELETE Support

    Supports writing position delete files for Iceberg tables, enabling DELETE operations on Iceberg tables directly from StarRocks. The support covers the full pipeline of Plan, Sink, Commit, and Audit. #67259 #67277 #67421 #67567

  • TRUNCATE for Hive and Iceberg Tables

    Supports TRUNCATE TABLE on external Hive and Iceberg tables. #64768 #65016

  • Incremental materialized view on Iceberg

    Extends the support for incremental materialized view refresh to Iceberg append-only tables, enabling query acceleration without full table refresh. #65469 #62699

  • VARIANT Type for Semi-Structured Data in Iceberg

    Supports the VARIANT data type in Iceberg Catalog for flexible, schema-on-read storage and querying of semi-structured data. Supports read, write, type casting, and Parquet integration. #63639 #66539

  • Iceberg v3 Support

    Added support for Iceberg v3 default value feature and row lineage. #69525 #69633

  • Iceberg Table Maintenance Procedures

    Added support for rewrite_manifests procedure and extended expire_snapshots and remove_orphan_files procedures with additional arguments for finer-grained table maintenance. #68817 #68898

  • Iceberg $properties Metadata Table

    Added support for querying Iceberg table properties via the $properties metadata table. #68504

  • Supports reading file path and row position metadata columns from Iceberg tables. #67003

  • Supports reading _row_id from Iceberg v3 tables, and supports global late materialization for Iceberg v3. #62318 #64133

  • Supports creating Iceberg views with custom properties, and displays properties in SHOW CREATE VIEW output. #65938

  • Supports querying Paimon tables with a specific branch, tag, version, or timestamp. #63316

  • Supports complex types (ARRAY, MAP, STRUCT) for Paimon tables. #66784

  • Supports Paimon views. #56058

  • Supports TRUNCATE for Paimon tables. #67559

  • Supports Partition Transforms with parentheses syntax when creating Iceberg tables. #68945

  • Supports ALTER TABLE REPLACE PARTITION COLUMN for Iceberg tables. #70508

  • Supports Iceberg global shuffle based on Transform Partition for improved data organization. #70009

  • Supports dynamically enabling global shuffle for Iceberg table sink. #67442

  • Introduced a Commit queue for Iceberg table sink to avoid concurrent Commit conflicts. #68084

  • Added host-level sorting for Iceberg table sink to improve data organization and reading performance. #68121

  • Enabled additional optimizations in ETL execution mode by default, improving performance for INSERT INTO SELECT, CREATE TABLE AS SELECT, and similar batch operations without explicit configuration. #66841

  • Added commit audit information for INSERT and DELETE operations on Iceberg tables. #69198

  • Supports enabling or disabling view endpoint operations in Iceberg REST Catalog. #66083

  • Optimized cache lookup efficiency in CachingIcebergCatalog. #66388

  • Supports EXPLAIN on various Iceberg catalog types. #66563

  • Supports partition projection for tables in AWS Glue Catalog tables. #67601

  • Added resource share type support for AWS Glue GetDatabases API. #69056

  • Supports Azure ABFS/WASB path mapping with endpoint injection (azblob/adls2). #67847

  • Added a database metadata cache for JDBC catalog to reduce remote RPC overhead and impact of external system failures. #68256

  • Added schema_resolver property for JDBC catalog to support custom schema resolution. #68682

  • Supports column comments for PostgreSQL tables in information_schema. #70520

  • Improved Oracle and PostgreSQL JDBC type mapping. #70315 #70566

Query Engine

  • Recursive CTE

    Supports Recursive Common Table Expressions (CTEs) for hierarchical traversals, graph queries, and iterative SQL computations. [#6593...

Read more

3.5.15

30 Mar 05:11
5abb1cb

Choose a tag to compare

Behavior Changes

  • Improved sql_mode handling: when DIVISION_BY_ZERO or FAIL_PARSE_DATE mode is set, division by zero and date parse failures in str_to_date/str2date now return an error instead of being silently ignored. #70004
  • When sql_mode is set to FORBID_INVALID_DATE, invalid dates in INSERT VALUES clauses are now correctly rejected instead of being bypassed. #69803
  • Expression partition generated columns are now hidden from DESC and SHOW CREATE TABLE output. #69793
  • Client ID is no longer included in audit logs. #69383
  • The FORCE option for REFRESH EXTERNAL TABLE has been reverted and is no longer supported. #70428

Improvements

  • Allowed disabling split and reverse scan ranges for descending TopN by setting desc_hint_split_range to 0 or less. #70307
  • information_schema now shows comments for external catalog tables. #70197
  • Added EXPLAIN and EXPLAIN ANALYZE support for INSERT statements in Trino dialect. #70174
  • Added configurable parameters for CatalogRecycleBin to control recycle bin behavior. #69838
  • Improved ADMIN REPAIR TABLE and SHOW TABLET STATUS to provide better repair and status information. #69656
  • Blacklisted queries are now excluded from error metrics. #69621
  • Added support for SHOW TABLET STATUS for cloud-native tablets in shared-data deployments. #69616
  • Reduced overhead of Primary Key tablet statistics collection in shared-data clusters. #69548
  • Added support for dynamic configuration of the execution state report thread pool size. #69142

Bug Fixes

Fixed the following bugs:

  • Data version not set when restoring a tablet. #70373
  • Table comment not set when creating a Hive table. #70318
  • Constant folding with double precision arithmetic producing INF instead of returning an error. #70309
  • Iceberg materialized view refresh failing when snapshot timestamps are non-monotonic. #70382
  • toIcebergTable function using common instead of comment in property mapping. #70267
  • Root user not correctly bypassing Ranger permission checks in all scenarios. #70254
  • AuditEventProcessor thread exiting unexpectedly when an OutOfMemoryException occurs. #70206
  • Out-of-bounds access in cal_new_base_version during schema change publish. #70132
  • Partition predicates pruned unexpectedly due to type mismatch in boundary comparison. #70097
  • str_to_date losing microsecond precision in BE runtime. #70068
  • Crash in join spill process when set_callback_function is called. #70030
  • DCHECK failure in DeltaWriter::close() when called from a bthread context. #69960
  • Use-after-free race condition in AsyncDeltaWriter close/finish lifecycle. #69940
  • Journal replay not awaited in changeCatalogDb on follower FE, causing consistency issues. #69834
  • Race condition causing missed write transaction finished editlog. #69899
  • Several known CVEs addressed. #69863
  • Incorrect LIKE pattern matching with backslash escape sequences. #69775
  • Expression analysis failing after renaming a partition column. #69771
  • Use-after-free crash in AsyncDeltaWriter::close. #69770
  • Potential bugs in PartitionColumnMinMaxRewriteRule caused by incorrect Partition.hasStorageData results. #69751
  • Duplicated CSV compression suffix in file sink output file names. #69749
  • Lake capture_tablet_and_rowsets operation accessible without experimental config flag. #69748
  • Corrupted cache for Primary Key SST tables. #69693
  • Use-after-free in AsyncFlushOutputStream. #69688
  • Incorrect retention clock reset and incomplete scan in disableRecoverPartitionWithSameName. #69677
  • Tablet info not fetched correctly based on run mode in SchemaBeTabletsScanner. #69645
  • Incorrect minimum partition pruning with shadow partitions. #69641
  • Different transactions publishing the same version after graceful exit. #69639
  • Iterator undefined behavior in get_column_values when rssid is not found. #69617
  • KILL ANALYZE statement sometimes not stopping a running ANALYZE TABLE operation. #69592
  • Materialized view force refresh bugs for partition tables. #69488

4.0.8

26 Mar 01:20
2090bfc

Choose a tag to compare

4.0.8

Release Date: March 25, 2026

Behavior Changes

  • Improved sql_mode handling: when DIVISION_BY_ZERO or FAIL_PARSE_DATE mode is set, division by zero and date parse failures in str_to_date/str2date now return an error instead of being silently ignored. #70004
  • When sql_mode is set to FORBID_INVALID_DATE, invalid dates in INSERT VALUES clauses are now correctly rejected instead of being bypassed. #69803
  • Expression partition generated columns are now hidden from DESC and SHOW CREATE TABLE output. #69793
  • Client ID is no longer included in audit logs. #69383

Improvements

  • Added a configuration item local_exchange_buffer_mem_limit_per_driver to limit the local exchange buffer size to dop * local_exchange_buffer_mem_limit_per_driver. #70393
  • Cached file existence check results across versions in check_missing_files to reduce redundant storage I/O. #70364
  • Allowed disabling split and reverse scan ranges for descending TopN runtime filters when desc_hint_split_range is set to ≤ 0. #70307
  • Added EXPLAIN and EXPLAIN ANALYZE support for INSERT statements in the Trino dialect. #70174
  • Optimized Iceberg read performance when position deletes are present. #69717
  • Optimized materialized view best-selector strategy based on distributed keys to improve materialized view selection accuracy. #69679

Bug Fixes

The following issues have been fixed:

  • JDBC MySQL pushdown failing for unsupported cast operations. #70415
  • Type mismatch issues in materialized view refresh. Added mv_refresh_force_partition_type configuration to force partition type in materialized view refresh. #70381
  • dataVersion not set correctly when restoring from backup. #70373
  • Duplicated partition names in materialized view refresh tasks. #70354
  • Incorrect SLF4J parameterized logging using string concatenation instead of placeholder arguments. #70330
  • Comment not set when creating Hive tables. #70318
  • FileSystemExpirationChecker blocking on slow HDFS close operations. #70311
  • Distribute column validation not applied across different partitions in OlapTableSink. #70310
  • Constant folding producing INF instead of an error when double addition overflows. #70309
  • Typo in Iceberg table creation: field common was used instead of comment. #70267
  • Root user not bypassing all Ranger permission checks in some scenarios. #70254
  • query_pool memory tracker going negative during data ingestion. #70228
  • AuditEventProcessor thread exiting due to OutOfMemoryException. #70206
  • SplitTopNRule not applying partition pruning correctly. #70154
  • Out-of-bounds access in cal_new_base_version during schema change publish. #70132
  • Materialied view rewrite ignoring dropped partitions from the base table. #70130
  • Unexpected partition predicate pruning due to type mismatch in boundary comparisons. #70097
  • str_to_date losing microsecond precision in BE runtime. #70068
  • Join spill process crashing in set_callback_function. #70030
  • Broker Load failing GCS authentication after gcs-connector upgrade to version 3.0.13. #70012
  • DCHECK failure in DeltaWriter::close() when called from a bthread context. #69960
  • Use-after-free race condition in AsyncDeltaWriter close/finish lifecycle. #69940
  • Race condition causing write transaction edit log entry to be missed. #69899
  • Known CVE vulnerabilities. #69863
  • Follower FE not waiting for journal replay in changeCatalogDb. #69834
  • Incorrect LIKE pattern matching with backslash escape sequences. #69775
  • Expression analysis failure after renaming a partition column. #69771
  • Use-after-free crash in AsyncDeltaWriter::close. #69770
  • Crash in local partition TopN execution. #69752
  • Incorrect behavior in PartitionColumnMinMaxRewriteRule caused by Partition.hasStorageData. #69751
  • Duplicated CSV compression suffix in file sink output filenames. #69749
  • lake_capture_tablet_and_rowsets not gated behind an experimental configuration flag. #69748
  • Incorrect partition min pruning with shadow partitions. #69641
  • Java UDTF/UDAF crashing when method parameters use generic types. #69197
  • Per-query metadata not released after query planning, causing FE OOM during concurrent query execution. #68444
  • Query-scope warehouse hint leaking ComputeResource in ConnectContext. #70706
  • Lock-free materialized view rewrite incorrectly falling back to live metadata. #70475
  • Duplicate closure reference in _tablet_multi_get_rpc. #70657
  • Infinite recursion in ReplaceColumnRefRewriter. #66974
  • NOT NULL constraint incorrectly pushed down to FILES() table function schema. #70621
  • num_short_key_columns mismatch in partial tablet schema. #70586
  • COLUMN_UPSERT_MODE checksum error in shared-data clusters. #65320
  • Column type mismatch for __iceberg_transform_bucket. #70443
  • Starlet configuration items not taking effect. #70482
  • DCG data not read correctly when switching from column mode to row mode in partial update. #61529

3.5.14

05 Mar 09:18
23a56ec

Choose a tag to compare

3.5.14

Release Date: March 5, 2026

Improvements

  • Added SST read/write failure metrics for Primary Key index in Lake tables. #69513
  • Added a counter metric for "segment file not found" errors. #69543
  • Extracted range predicates from scalar-subquery containing convert_tz. #69055
  • Supports complex type for Paimon tables. #66784
  • Deferred remote load Spill Directory removal. #68803
  • Supports repairing cloud-native tables. #67108
  • Supports inserting ARRAY type to Hive table in CSV format. #67355

Bug Fixes

The following issues have been fixed:

  • Unexpected behavior caused by exceptions of RowGroupWriter. #69568
  • Sort key not including newly added key columns after schema change on Aggregate Key/Unique Key tables. #69529
  • Mertic value g_publish_version_failed_tasks does not reflect the real situation during the resource_busy state. #69526
  • Rowset files are removed when moving Primary Key tablets to trash. #69438
  • Lock leak in addPartitions caused by name-based table lookup after concurrent SWAP. #69284
  • isInternalCancelError used equals instead of startsWith. #69523
  • Pipeline blocks or crashes when _writer->Close() throws an exception other than ParquetStatusException. #69492
  • A Hadoop-client lib bug. #69503
  • Success is mistakenly returned while write operations fails. #69473
  • CVE-2025-67721. #69138
  • Issue with RuntimeFilter with low-cardinality optimization in share-data clusters. #64669
  • Materialized view tablet meta inconsistency between FE leader and follower. #69428
  • Rollup handler's active transaction ID was not considered in computeMinActiveTxnId. #69285
  • Arrow Flight Proxy issue with multiple FE. #68300
  • Concurrency bug of function field. #69315
  • DROP FUNCTION IF EXISTS ignored ifExists flag. #69216
  • Lacking case-insensitive username normalization for LDAP authentication. #67966
  • Certain kinds of partitions cannot be written. #68221
  • Projection loss in materialized view rewrite due to shared mutable state. #69063
  • Issue with case-insensitive partition lookup in query table copy. #69173
  • All-null value handling bug in synchronous materialized views. #69136
  • mv onReload issues when visiting external catalogs. #68926
  • DISTINCT ORDER BY alias issues for duplicated constants. #69014
  • Incorrect query results after modifying CHAR column length in shared-data clusters. #68808
  • Issue with Azure ABFS/WASB FileSystem cache key. #68901
  • Incorrect predicate rewrite for OUTER JOIN with constant-side column reference. #67072
  • IllegalArgumentException comparator transitivity violation. #68743
  • Issue caused by the query lifetime being shorter than the fragment in report_fragment. #67219
  • Low-cardinality rewrite NPE caused by shared DecodeInfo. #68799
  • Missing pcu_upt_cnt metric. #68845
  • JSON-flatten array/object conflict on identical paths. #68804
  • ClonExpr nullable bug. #68800

4.0.6

16 Feb 12:54
45fdede

Choose a tag to compare

4.0.6

Release Date: February 16, 2026

Improvements

  • Support Partition Transforms with parentheses when creating Iceberg tables (for example, PARTITION BY (bucket(k1, 3))). #68945
  • Removed the restriction that partition columns in Iceberg tables must be at the end of the column list; they can now be defined at any position. #68340
  • Introduced host-level sorting for Iceberg table sink, controlled by the system variable connector_sink_sort_scope (Default: FILE), to organize data layout for better read performance. #68121
  • Improved error messages for Iceberg partition transform functions (for example, bucket, truncate) when the argument count is incorrect. #68349
  • Refactored table property handling to improve support for different file formats (ORC/Parquet) and compression codecs in Iceberg tables. #68588
  • Added table-level query timeout configuration table_query_timeout for fine-grained control (Priority: Session > Table > Cluster). #67547
  • Supports the ADMIN SHOW AUTOMATED CLUSTER SNAPSHOT statement to view automated snapshot status and schedule. #68455
  • Supports displaying the original user-defined SQL with comments in SHOW CREATE VIEW. #68040
  • Exposed Merge Commit-enabled Stream Load tasks in information_schema.loads for better observability. #67879
  • Introduced FE memory estimation utility API /api/memory_usage. #68287
  • Reduced unnecessary logging in CatalogRecycleBin during partition recycling. #68533
  • Triggered refresh of related asynchronous materialized views when the base table undergoes Swap/Drop/Replace Partition operations. #68430
  • Supports VARBINARY type for count distinct-like aggregate functions. #68442
  • Enhanced expression statistics to propagate histogram MCV for semantics-safe expressions (for example, cast(k as bigint) + 10) to improve skew detection. #68292

Bug Fixes

The following issues have been fixed:

  • Potential crashes in Skew Join V2 runtime filters. #67611
  • Join predicate type mismatch (for example, INT = VARCHAR) caused by low-cardinality rewriting. #68568
  • Issues in query queue allocation time and pending timeout logic. #65802
  • unique_id conflict for Flat JSON extended columns after schema changes. #68279
  • Concurrent partition access issues in OlapTableSink.complete(). #68853
  • Incorrect metadata tracking when restoring manually downloaded cluster snapshots. #68368
  • Double slashes in backup paths when the repository location ends with /. #68764
  • OBS AK/SK credentials in the SHOW CREATE CATALOG output were not masked. #65462

3.5.13

13 Feb 01:29
dca7c0a

Choose a tag to compare

3.5.13

Release Date: February 13, 2026

Improvements

  • Added an FE configuration enable_table_metrics_collect to control the collection of table-level metrics. #68691
  • Supports setting the default Warehouse for Merge Commit at user level. #68616

Bug fixes

The following issues have been fixed:

  • Issue with source partition checking in replication transactions. #68883
  • Used labels were not identified when labels were specified in BEGIN TRANSACTION. #68660
  • JOIN ON clause bug with CTE scope. #68809
  • Overlapping range partitions can be created when an explicit lower bound is provided. #68255
  • Incorrect parser logic when SQL dialect downgrades from Trino to StarRocks. #68725
  • Issue with pruning projection columns. #68242
  • Issue with subquery scope check. #68415
  • Unmatched type cast in the function analyzer. #66749
  • Incorrect candidate materialized view selection logic. #68571
  • The Thrift accept thread exits on exception. #68644
  • Inaccurate Iceberg data file size estimation. #68787
  • Lake table memory leak issue. #68678
  • Deadlock when the HMS connection pool is full. #68033
  • Iceberg delete column nullability issue. #68649
  • Materialized views hold large external tables. #68171
  • Iceberg table cache memory limit issue. #67769
  • Wrong timeout parameter is used for PocoHttpClient. #68765
  • BE compile failure with Clang. #68805
  • Materialized view was reloaded multiple times during startup. #62351
  • CVE-2025-27821. #68529
  • Variadic functions return incorrect date values in certain scenarios. #67947

3.3.22

27 Jan 17:43
753696f

Choose a tag to compare

3.3.22

Release Date: January 27, 2026

Bug Fixes

The following issues have been fixed:

  • CVE-2025-27818. #67335
  • SIGSEGV crash in CN when querying non-partitioned Iceberg tables with DATE/TIME predicates on ARM64/Graviton architectures. #66864
  • Deadlock caused by lock ordering issues when closing LocalTabletsChannel and LakeTabletsChannel. #66748
  • Potential BE crash when executing CACHE SELECT queries with filter conditions. #67375
  • Issue where the Multicast Sink Operator could get stuck in the OUTPUT_FULL state if an upstream operator (for example, LIMIT) finished early, causing the query to hang. #67153
  • Potential Segfault caused by failure to invalidate cache pointers when ObjectColumn is resized or moved. #66957
  • Potential errors or OOM issues when Java UDFs handle Nullable columns containing all NULLs. #67025
  • BE crash caused by the optimization logic of Ranking Window Functions when PARTITION BY and ORDER BY are missing. #67081
  • Incorrect result issue where COUNT(DISTINCT) was not correctly rewritten to multi_distinct_count when queried alongside non-distinct aggregations (like SUM) on a single-bucket table. #66767
  • Incorrect results when regexp_replace processes multiple rows with enable_hyperscan_vec enabled. #67380
  • Potential incorrect results with Sorted Streaming Aggregate in shared-data mode. #67376
  • Query failure where the optimizer generated access paths using the old column name after the column was renamed. #67533
  • Incorrect Bitmap column type propagation in the rewrite rule from bitmap_to_array to unnest_bitmap. #66855
  • Dependency derivation error in Low Cardinality optimization logic by adopting the Union-Find algorithm to correctly handle column relationships. #66724
  • "Compute node not found" error in Short-circuit Read under shared-data clusters by adding a fallback mechanism to non-short-circuit mode. #67323
  • "Version not found" error during Replication publishing caused by FE Replicas not updating the minimum readable version. #67538
  • Logic error in physical partition comparison during replication transactions to ensure deterministic comparison using ID order. #67616
  • Inaccurate statistics for counters like scan rows in Cloud Native Tables. #67307
  • Issue where expired Tablets were not cleaned up from the scheduler, causing the scheduling queue to pile up. #66718
  • Inaccurate SQL statements displayed in the Profile when multiple statements are submitted. #67097
  • Issue where the transaction ID was empty in publish_version logs in the new FE. #66732
  • Performance issue caused by unnecessary Protobuf message copying after set_allocated. #67844

4.0.5

04 Feb 00:03
000efef

Choose a tag to compare

4.0.5

Release Date: February 3, 2026

Improvements

  • Bumped Paimon version to 1.3.1. #67098
  • Restored missing optimizations in DP statistics estimation to reduce redundant calculations. #67852
  • Improved pruning in DP Join reorder to skip expensive candidate plans earlier. #67828
  • Optimized JoinReorderDP partition enumeration to reduce object allocation and added an atom count cap (≤ 62). #67643
  • Optimized DP join reorder pruning and added checks to BitSet to reduce stream operation overhead. #67644
  • Skipped predicate column statistics collection during DP statistics estimation to reduce CPU overhead. #67663
  • Optimized correlated Join row count estimation to avoid repeatedly building Statistics objects. #67773
  • Reduced memory allocations in Statistics.getUsedColumns. #67786
  • Avoided redundant Statistics map copies when only row counts are updated. #67777
  • Skipped aggregate pushdown logic when no aggregation exists in the query to reduce overhead. #67603
  • Improved COUNT DISTINCT over windows, added support for fused multi-distinct aggregations, and optimized CTE generation. #67453
  • Supports map_agg function in the Trino dialect. #66673
  • Supports batching retrieval of LakeTablet location information during physical planning to reduce RPC calls in shared-data clusters. #67325
  • Added a thread pool for Publish Version transactions to shared-nothing clusters to improve concurrency. #67797
  • Optimized LocalMetastore locking granularity by replacing database-level locks with table-level locks. #67658
  • Refactored MergeCommitTask lifecycle management and added support for task cancellation. #67425
  • Supports intervals for automated cluster snapshots. #67525
  • Automatically cleaned up unused mem_pool entries in MemTrackerManager. #67347
  • Ignored information_schema queries during warehouse idle checks. #67958
  • Supports dynamically enabling global shuffle for Iceberg table sinks based on data distribution. #67442
  • Added Profile metrics for connector sink modules. #67761
  • Improved the collection and display of load spill metrics in Profiles, distinguishing between local and remote I/O. #67527
  • Changed Async-Profiler log level to Error to avoid repeating warning logs. #67297
  • Notified Starlet during BE shutdown to report SHUTDOWN status to StarMgr. #67461

Bug Fixes

The following issues have been fixed:

  • Lacking support for legal simple paths containing hyphens (-). #67988
  • Runtime error when aggregate pushdown occurred on grouping keys involving JSON types. #68142
  • Issue where JSON path rewrite rules incorrectly pruned partition columns referenced in partition predicates. #67986
  • Type mismatch issue when rewriting simple aggregation using statistics. #67829
  • Potential heap-buffer-overflow in partition Joins. #67435
  • Duplicate slot_ids introduced when pushing down heavy expressions. #67477
  • Division-by-zero error in ExecutionDAG fragment connection for lacking precondition checks. #67918
  • Potential issues caused by fragment parallel prepare for single BE. #67798
  • Operator terminates incorrectly for lacking set_finished method for RawValuesSourceOperator. #67609
  • BE crash caused by unsupported DECIMAL256 type (precision > 38) in column aggregators. #68134
  • Shared-data clusters lack support for Fast Schema Evolution v2 over DELETE operations by carrying schema_key in requests. #67456
  • Shared-data clusters lack support for Fast Schema Evolution v2 over synchronous materialized views and traditional schema changes. #67443
  • Vacuum might accidentally delete files when file bundling is disabled during FE downgrade. #67849
  • Incorrect graceful exit handling in MySQLReadListener. #67917

3.5.12

22 Jan 11:48
a2e4b58

Choose a tag to compare

Improvements

  • Added a cleaner for BrpcStubCache to clean up unused connections. #61417
  • Supports batch processing for statistics delete (for dropped tables) and Edit Log write requests. #67896
  • Preserves SQL comments in Audit Logs when encryption is required. #63298
  • Added the warehouse_name label to the materialized view metrics. #67715
  • Improved identifier wrapping for JDBC table and column names. #67853
  • Added the CLIENT_FACTORY property to the Iceberg JDBC catalog. #67613

Bug fixes

The following issues have been fixed:

  • Variadic functions return wrong dates when mixing DATE and DATETIME types. #67947
  • NormalizePredicateRule oscillation on non-deterministic expressions. #67923
  • Low cardinality bugs with the Lambda function. #67843
  • Subfield expression does not collect children subfields. #67850
  • NPE in RBO Join reorder when child statistics are missing. #67693
  • BE crash due to MemTable finalize failed. #67787
  • Temporary partitions are not cleaned up after FE restart for dynamic overwrite. #67629
  • Inaccurate I/O statistics of Compaction. #67524
  • Incorrect logic in physical partition comparison across clusters during replication transaction. #67616
  • Issue with SQL Server and Oracle identifier symbol handling. #67965
  • NPE in the Iceberg metadata table query due to missing configuration propagation. #67151
  • Issue with the f``iles() schema detection for empty Parquet or ORC files. #67762
  • Inaccurate value of metrics in Profile caused by UNION ALL on Hive tables. #67912
  • Lacking support for data retrieval from Arrow Flight proxy for FE queries. #67794