Releases: StarRocks/starrocks
4.0.10
4.0.10
Release Date: May 9, 2026
Behavior Changes
- Cloud storage credentials are now redacted in error messages produced by
INSERT INTO FILES, preventing accidental exposure of secrets in error logs andSHOW LOADoutput. #71245 - StarRocks no longer permits queries against insert-only ACID Hive tables in Hive catalog. Previously such queries could silently return more rows than actually visible because INSERT OVERWRITE operations were not recognized. Affected tables now return an explicit error instead of incorrect results. #71460
Improvements
- Added an Avro schema cache in Iceberg
PartitionDataconstruction to remove redundant JacksonObjectMapperallocations during partition load on tables with many partitions. #72215 - Optimized
CatalogRecycleBin.getAdjustedRecycleTimestampto avoid rebuilding the table-id map on every call, reducing recycle-bin cleanup and tablet scheduling overhead. #72128 OlapTableSink.createLocationnow batches tablet-location lookups in shared-data mode, removing per-tablet StarOS RPCs that previously stalled the planner critical section. #72041- Java UDAF instances are now loaded and initialized once per query and reused across pipeline driver instances, removing the linear driver-preparation overhead at high
pipeline_dop. #72038 - Added BE metrics
starrocks_be_staros_shard_info_fallback_totalandstarrocks_be_staros_shard_info_fallback_failed_totalto track when the StarOS worker falls back to fetching shard info fromstarmgrbecause the local cache missed. #71620 - File-bundle writes now prefer a tablet-local aggregator so the bundled tablet metadata path does not require cross-node shard-info lookups. #71613
- Audit log entries now include the queried tables and views referenced by each query. #71596
INSERT INTO FILESCSV export now supportscsv.encloseandcsv.escapeproperties for controlling field quoting and escaping. #71589- Added LDAP direct bind authentication via DN pattern, removing the requirement for an admin search account in single-tenant LDAP setups. #71559
- Added the
starrocks_fe_tablet_nummetric for shared-data clusters to match the shared-nothing metric set. #71444 star_mgr_meta_sync_interval_secis now runtime-mutable viaADMIN SET FRONTEND CONFIG; the new interval takes effect on the next sync cycle without an FE restart. #71675
Bug Fixes
The following issues have been fixed:
- A race in shared-data combined txn log mode where INSERT into per-partition coordinator dispatch could classify legitimate txn logs as orphan and drop them, leaving the transaction stuck in non-VISIBLE state. #72237
- An issue where
_incremental_open_node_channelchannels in shared-data combined txn log mode silently dropped txn logs because the legacy "sender_id == 0 collects all logs" rule did not apply to incremental channels. #71992 - An issue where
RuntimeProfile::to_thrift()could crash BE withstd::bad_optional_accesswhen another thread reset counter min/max values during profile serialization. #72904 - An inconsistency in flat JSON merge results when one side contributed empty values. #72973
- An issue where
CREATE TABLEfor an Iceberg table failed with "Multiple entries with same key: format-version" when the user explicitly specifiedformat-versioninPROPERTIES. #72828 - A
CompactionScheduler.startCompactionlock scope that held a DB-wide READ lock across single-table critical work, blocking concurrent DDL on other tables in the same database. Switched to IS on DB plus READ on the target table. #72178 - An issue where
StarMgrMetaSyncer.syncTableMetaInternalandsyncTableColocationInfoheld DB READ/WRITE locks across external StarOS RPCs, freezing CREATE/DROP/ALTER/RENAME on every table in the database for the duration of each RPC. #72108 - An issue where
StarMgrMetaSyncer.getAllPartitionShardGroupIdheld the DB READ lock for full iteration over all cloud-native tables and physical partitions, stalling FE threads waiting for the DB write lock on large catalogs. #71614 - A redundant DB READ lock in
getTableNamesViewWithLock. The underlyingnameToTableis aConcurrentHashMap, so the enclosing lock added contention without correctness benefit. #72042 - A DB WRITE lock in the read-only
/api/{db}/{table}/_countREST endpoint that was unnecessary for computingproximateRowCount(). #72053 - A batch publish deadlock caused by partition version gaps that operations like tablet split, schema change, and alter jobs reserved by advancing
nextVersionwithout a matching publish. #71483 - A deadlock in shared-nothing mode when warming up the LRU cache for rowset metadata while the cache was full. #71459
- A
PipelineTimerTaskthat could remain stuck inwaitUtilFinisheddue to incorrect ordering between consumer registration and finished signaling. #72058 - A condition race in
ConnectorSinkPassthroughExchanger::acceptthat crashed BE with SIGSEGV via out-of-bounds vector access on_writer_count. #71848 - A use-after-free in
LoadChannel::get_load_replica_statuscaused by destruction of a temporaryshared_ptr. #71843 - A use-after-free in the information schema sink due to a missing reference count increment in async RPC closure handling. #71513
- A BE crash in
reverse(DecimalV3)caused by improper handling of decimal value width. #71834 - A BE crash when
UNNESTproduced columns whose define-expression carried an ARRAY type, which was incompatible with global dictionary generation downstream. #72027 - An NPE in FE when creating an Iceberg external table with invalid transform argument order such as
bucket(4, region); FE now returns a normal analyzer error. #71917 - An issue where Iceberg manifest data file cache entries were missing column statistics when the first query against a table did not request stats (for example
SELECT *). #71913 - An issue where the Iceberg min/max optimization was silently skipped when the table was partitioned by
bucket(col, N)becausePruneHDFSScanColumnRuleinjected a placeholder materialized column. #71863 - An issue where
AggregateJoinPushDownRulefailed to rewrite materialized views over Iceberg base tables becauseTable.getId()was compared instead of identity, and connector-table ids can shift across plan rebuilds. #71856 - An issue where INSERT OVERWRITE into Hive dynamic partitions failed when the metastore listed a partition whose location no longer existed on the file system; the missing partition directory is now created before commit. #71810
- A Parquet scanner failure (
Illegal converting from arrow type(dictionary) ...) when Arrow returned dictionary-typed columns, including dictionaries nested inside arrays, structs, and maps. #71855 - An issue where stale scan ranges from earlier batches persisted across
ColocatedBackendSelector.Assignmentincremental batches, causing files to be re-deployed and re-scanned. #71789 - An issue where
PruneShuffleColumnRuledid not update the JoinoutputPropertyafter pruning Exchange shuffle columns, leading to incorrect downstream distribution. #72003 - Incorrect shuffle distribution caused by a missing project node when
PushDownJoinOnExpressionToChildProjectwas disabled during the first stage of multi-stage MV rewrite. #71075 - Duplicate
Applyattachments inReplaceSubqueryRewriteRulewhen predicate normalization made the same scalar-subquery placeholder appear multiple times. #71155 - A short-circuit issue in
EventSchedulerwhere a finished join probe could prevent the pipeline from transitioning to the finished state. #71740 - An issue where AWS assume-role configured via
aws.s3.iam_role_arnwas not applied to JNI scanners (RCFile / A...
3.5.17
Release date: May 13, 2026
Behavior Changes
SHOW CREATE TABLEandDESCnow show Primary Keys for Paimon tables. #70535- Disallowed INSERT into insert-only ACID Hive tables in Hive catalogs. #71460
START_TIMEandEND_TIMEin Profile are now displayed using the session time zone. #71429
Improvements
- Supports
csv.encloseandcsv.escapeinINSERT INTO FILESCSV export. #71589 - Added query relation information (directly queried tables and viewa) to audit logs. #71596
- Made the FE configuration
star_mgr_meta_sync_interval_secruntime mutable. #71675 - Reduced metadata and lock overhead in table metadata and row-count paths. #72053 #72042 #71672
- Improved build and dependency hygiene by merging the broker builder into the FE build and removing WildFly OpenSSL. #71823 #71908
Bug fixes
The following issues have been fixed:
- Wrong results for local-shuffle aggregate queries with OFFSET. #71997
- Incorrect Join output properties after Exchange shuffle columns are pruned. #72003
- Several dependency CVE issues. #71762 #71914
- Oracle JDBC NLS format handling issue. #71412
- Missing Iceberg column statistics in manifest data file cache. #71913
- Missing Hive partition directory before INSERT OVERWRITE commit. #71810
- Aggregate-join-pushdown materialized view rewrite and min/max optimization issues on Iceberg base tables. #71856 #71863
- Race conditions in
ConnectorSinkPassthroughExchangerandLoadChannel::get_load_replica_status. #71848 #71843 - Credential redaction issue in INSERT FILES operations. #71245
- Incorrect
reverse(DecimalV3)results. #71834 - Missing JNI exception handling checks in Java UDF code. #71734
- Incorrect short-circuit checks in
EventScheduler. #71740 - Incorrect Arrow Flight column name for empty result sets. #71534
- Batch publish deadlock caused by partition version gaps. #71483
- Repeated Apply attachments in scalar-subquery plans. #71155
4.0.9
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 TABLEandDESCstatements now display the Primary Key columns for Paimon external tables. #70535- Cloud-native tablet metadata fetch operations (such as
get_tablet_statsandget_tablet_metadatas) now use a dedicated thread pool instead of the sharedUPDATE_TABLET_META_INFOpool. 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.jsonmarker file to cluster snapshots to support integrity validation before snapshot restoration. #71209 - Added warning logs for silently swallowed exceptions in
WarehouseManagerto 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 COLUMNSnow 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_TIMEandEND_TIMEwere not displayed in the session timezone. #71429 - A shared-object mutation bug in
PushDownAggregateRewriterwhen processing CASE-WHEN/IF expressions, which could cause incorrect query results. #71309 - A use-after-free bug in
ThreadPool::do_submittriggered when thread creation fails. #71276 - An issue where
information_schema.tablesdid 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
UpdateTabletSchemaTaskacross 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
TaskManagerscheduler 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
ConnectContextinformation 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_queriesresult 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_timeoutthat could prevent global runtime filters from being applied correctly. #70920 - An int32 overflow in the
ACCUMULATEDmetric 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-lengthheader was not reset whenproxy_pass_request_bodyis 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 NAMEfromFILES()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
ComputeResourceobject inConnectContext, potentially affecting subsequent queries on the same connection. #70706 - An issue where redundant conjuncts in
MySqlScanNodeandJDBCScanNodecaused BE errors related toVectorizedInPredicatetype mismatches. #70694 - A missing
libssl-devdependency 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_rpcthat could cause use-after-free. #70657 - Partial manifest cache writes in the Iceberg
ManifestReaderthat 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 ...
4.1.0
4.1.0
Release Date: April 13, 2026
Shared-data Architecture
-
New Multi-Tenant Data Management
Shared-data clusters now support opt-in range-based data distribution with automatic tablet splitting. When enabled via
enable_range_distribution = true(defaultfalse), tablets that exceed the configured size threshold (tablet_reshard_target_size, default 10 GB) are automatically split — without requiring schema changes, SQL modifications, or data re-ingestion. Tablet merge is also implemented and ships behind a separate config flag (tablet_reshard_enable_tablet_merge, defaultfalse); broader default-on rollout follows in subsequent releases. This feature significantly improves usability and directly addresses 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
Supports significantly larger per-tablet data capacity for shared-data clusters, with a long-term target of 100 GB per tablet. Enables parallel Compaction and parallel MemTable finalization within a single Lake tablet, reducing ingestion and Compaction overhead as tablet size grows. #66424 #66522 #66778 #66586 #67432 #67478 #67554 #66796 #67392 #67878 #65908 #68677 #68123 #69865
-
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_runmode 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
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_manifestsprocedure and extendedexpire_snapshotsandremove_orphan_filesprocedures with additional arguments for finer-grained table maintenance. #68817 #68898 -
Iceberg
$propertiesMetadata TableAdded support for querying Iceberg table properties via the
$propertiesmetadata table. #68504 -
Supports reading file path and row position metadata columns from Iceberg tables. #67003
-
Supports reading
_row_idfrom 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
GetDatabasesAPI. #69056 -
Supports Azure ABFS/WASB path mapping with endpoint injection (
azblob/adls2). #67847 -
Added a database metadata cache for JDBC catalog to reduce re...
3.5.15
Behavior Changes
- Improved
sql_modehandling: whenDIVISION_BY_ZEROorFAIL_PARSE_DATEmode is set, division by zero and date parse failures instr_to_date/str2datenow return an error instead of being silently ignored. #70004 - When
sql_modeis set toFORBID_INVALID_DATE, invalid dates inINSERT VALUESclauses are now correctly rejected instead of being bypassed. #69803 - Expression partition generated columns are now hidden from
DESCandSHOW CREATE TABLEoutput. #69793 - Client ID is no longer included in audit logs. #69383
- The
FORCEoption forREFRESH EXTERNAL TABLEhas been reverted and is no longer supported. #70428
Improvements
- Allowed disabling split and reverse scan ranges for descending TopN by setting
desc_hint_split_rangeto0or less. #70307 information_schemanow shows comments for external catalog tables. #70197- Added
EXPLAINandEXPLAIN ANALYZEsupport forINSERTstatements in Trino dialect. #70174 - Added configurable parameters for
CatalogRecycleBinto control recycle bin behavior. #69838 - Improved
ADMIN REPAIR TABLEandSHOW TABLET STATUSto provide better repair and status information. #69656 - Blacklisted queries are now excluded from error metrics. #69621
- Added support for
SHOW TABLET STATUSfor 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
INFinstead of returning an error. #70309 - Iceberg materialized view refresh failing when snapshot timestamps are non-monotonic. #70382
toIcebergTablefunction usingcommoninstead ofcommentin property mapping. #70267- Root user not correctly bypassing Ranger permission checks in all scenarios. #70254
AuditEventProcessorthread exiting unexpectedly when anOutOfMemoryExceptionoccurs. #70206- Out-of-bounds access in
cal_new_base_versionduring schema change publish. #70132 - Partition predicates pruned unexpectedly due to type mismatch in boundary comparison. #70097
str_to_datelosing microsecond precision in BE runtime. #70068- Crash in join spill process when
set_callback_functionis called. #70030 - DCHECK failure in
DeltaWriter::close()when called from a bthread context. #69960 - Use-after-free race condition in
AsyncDeltaWriterclose/finish lifecycle. #69940 - Journal replay not awaited in
changeCatalogDbon 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
PartitionColumnMinMaxRewriteRulecaused by incorrectPartition.hasStorageDataresults. #69751 - Duplicated CSV compression suffix in file sink output file names. #69749
- Lake
capture_tablet_and_rowsetsoperation 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_valueswhenrssidis not found. #69617 KILL ANALYZEstatement sometimes not stopping a runningANALYZE TABLEoperation. #69592- Materialized view force refresh bugs for partition tables. #69488
4.0.8
4.0.8
Release Date: March 25, 2026
Behavior Changes
- Improved
sql_modehandling: whenDIVISION_BY_ZEROorFAIL_PARSE_DATEmode is set, division by zero and date parse failures instr_to_date/str2datenow return an error instead of being silently ignored. #70004 - When
sql_modeis set toFORBID_INVALID_DATE, invalid dates inINSERT VALUESclauses are now correctly rejected instead of being bypassed. #69803 - Expression partition generated columns are now hidden from
DESCandSHOW CREATE TABLEoutput. #69793 - Client ID is no longer included in audit logs. #69383
Improvements
- Added a configuration item
local_exchange_buffer_mem_limit_per_driverto limit the local exchange buffer size todop * local_exchange_buffer_mem_limit_per_driver. #70393 - Cached file existence check results across versions in
check_missing_filesto reduce redundant storage I/O. #70364 - Allowed disabling split and reverse scan ranges for descending TopN runtime filters when
desc_hint_split_rangeis set to ≤ 0. #70307 - Added
EXPLAINandEXPLAIN ANALYZEsupport forINSERTstatements 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_typeconfiguration to force partition type in materialized view refresh. #70381 dataVersionnot 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
FileSystemExpirationCheckerblocking 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
commonwas used instead ofcomment. #70267 - Root user not bypassing all Ranger permission checks in some scenarios. #70254
query_poolmemory tracker going negative during data ingestion. #70228AuditEventProcessorthread exiting due toOutOfMemoryException. #70206SplitTopNRulenot applying partition pruning correctly. #70154- Out-of-bounds access in
cal_new_base_versionduring 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_datelosing microsecond precision in BE runtime. #70068- Join spill process crashing in
set_callback_function. #70030 - Broker Load failing GCS authentication after
gcs-connectorupgrade to version 3.0.13. #70012 - DCHECK failure in
DeltaWriter::close()when called from a bthread context. #69960 - Use-after-free race condition in
AsyncDeltaWriterclose/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
LIKEpattern 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
PartitionColumnMinMaxRewriteRulecaused byPartition.hasStorageData. #69751 - Duplicated CSV compression suffix in file sink output filenames. #69749
lake_capture_tablet_and_rowsetsnot 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
ComputeResourceinConnectContext. #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 NULLconstraint incorrectly pushed down toFILES()table function schema. #70621num_short_key_columnsmismatch in partial tablet schema. #70586COLUMN_UPSERT_MODEchecksum 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
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_tasksdoes not reflect the real situation during theresource_busystate. #69526 - Rowset files are removed when moving Primary Key tablets to trash. #69438
- Lock leak in
addPartitionscaused by name-based table lookup after concurrent SWAP. #69284 isInternalCancelErrorusedequalsinstead ofstartsWith. #69523- Pipeline blocks or crashes when
_writer->Close()throws an exception other thanParquetStatusException. #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 EXISTSignoredifExistsflag. #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 onReloadissues 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
IllegalArgumentExceptioncomparator 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_cntmetric. #68845 - JSON-flatten array/object conflict on identical paths. #68804
ClonExprnullable bug. #68800
4.0.6
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_timeoutfor fine-grained control (Priority: Session > Table > Cluster). #67547 - Supports the
ADMIN SHOW AUTOMATED CLUSTER SNAPSHOTstatement 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.loadsfor better observability. #67879 - Introduced FE memory estimation utility API
/api/memory_usage. #68287 - Reduced unnecessary logging in
CatalogRecycleBinduring partition recycling. #68533 - Triggered refresh of related asynchronous materialized views when the base table undergoes Swap/Drop/Replace Partition operations. #68430
- Supports
VARBINARYtype forcount 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_idconflict 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 CATALOGoutput were not masked. #65462
3.5.13
3.5.13
Release Date: February 13, 2026
Improvements
- Added an FE configuration
enable_table_metrics_collectto 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
acceptthread 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
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
LocalTabletsChannelandLakeTabletsChannel. #66748 - Potential BE crash when executing
CACHE SELECTqueries with filter conditions. #67375 - Issue where the Multicast Sink Operator could get stuck in the
OUTPUT_FULLstate 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
ObjectColumnis 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 BYandORDER BYare missing. #67081 - Incorrect result issue where
COUNT(DISTINCT)was not correctly rewritten tomulti_distinct_countwhen queried alongside non-distinct aggregations (like SUM) on a single-bucket table. #66767 - Incorrect results when
regexp_replaceprocesses multiple rows withenable_hyperscan_vecenabled. #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_arraytounnest_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_versionlogs in the new FE. #66732 - Performance issue caused by unnecessary Protobuf message copying after
set_allocated. #67844