docs/en/release_notes/release-3.5.md
:::warning
Upgrade Notes
JDK 17 or later is required from StarRocks v3.5.0 onwards.
JAVA_OPTS in the FE configuration file fe.conf, for example, options that involve CMS and GC. The default value of JAVA_OPTS in the v3.5 configuration file is recommended.--add-opens=java.base/java.util=ALL-UNNAMED to the JAVA_OPTS configuration item in the BE configuration file be.conf.--add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED to the JAVA_OPTS configuration item in the BE configuration file be.conf.JAVA_OPTS.It is recommended to upgrade the cluster to v3.4.10 or later before upgrading it to v3.5. Otherwise, you must manually disable low cardinality optimization during the gray-scale upgrade by executing the following statement:
SET GLOBAL cbo_enable_low_cardinality_optimize=false;
Downgrade Notes
:::
Release date: January 5, 2026
enable_statistic_collect_on_update to control whether UPDATE statements can trigger automatic statistics collection. #66794networkaddress.cache.ttl. #66723deltaRows with lazy evaluation for large partition tables. #66381ResultSink optimization in shared-data clusters. #66517rewrite``_``simple``_``agg``_``to``_``meta``_``scan is enabled by default. #64698newMessage methods to improve materialized view logs. #66367The following issues have been fixed:
update_segment_cache_size when querying tables with a large number of columns. #66714MulticastSinkOperator stuck in the OUTPUT_FULL state. #67153can_use_bf checking when merging runtime filters. #67021publish_version log shows empty txn_ids with new FE. #66732statistic_collect_query_timeout. #66363ANALYZE TABLE statements lack ExecTimeout. #66361array_map returns wrong results from constant unary expressions. #66514max(not null string) on empty table throws std::length_error. #66554EXPLAIN <query>. #66542Release date: December 15, 2025
information_schema to reduce the overhead. #66200slow_lock_held_time_ms and slow_lock_wait_time_ms) to provide better observability for slow lock scenarios and distinguish between long-held locks and high lock contention. #66027execution_time metrics into separate series for queries and loads, improving observability by workload type. #65535enable_statistic_collect_on_first_load at table granularity for finer-grained control over statistics collection on the first load. #65463PocoClientTest to an S3-specific name to better reflect its dependency and intent. #65524The following issues have been fixed:
PartitionColumnMinMaxRewriteRule. #66356resetDecommStatForSingleReplicaTabletUnlocked. #66034LakeDataSource. #66354W``arehouse field is NULL in information_schema.loads for Stream Load. #66202SIGSEGV. #66212set_collector is invoked repetitively. #66199cache.size() == 0, causing refresh to be ineffective and queries to return outdated tables. #65917LargeInPredicateException, causing the actual number of LargeInPredicate occurrences to be incorrectly reported in the error message. #66152ConnectScheduler’s timeout checker when connectContext is null. #66136multi_distinct_count not updating distinct_size after the underlying hash set is converted to a two-level hash set, which could lead to incorrect distinct counts. #65916Check failed: !driver->is_in_blocked() and abort the BE process. #66099MemoryScratchSinkOperator could remain in pending_finish after RecordBatchQueue was shut down when SparkSQL exited early, causing the pipeline to hang. #66041memtable_finalize_task_total counter metric is lacking. #65548TabletChecker.doCheck() with other operations. #65237Release date: November 26, 2025
The following issues have been fixed:
LocalMetastore.truncateTable(). #65191flat_path string is empty because the JSON hyper extraction path is $ or all paths are skipped, calling substr will throw an exception and cause BE crash. #65260HttpConnectContext cannot be unregistered at channel close, causing HTTP context leaks. #65203default_authentication_plugin and authentication_policy). #65330gold linker automatic fallback. #65156Release date: November 10, 2025
finishTransaction to avoid blocking. #63981tabletNum retrieval for a given node via SHOW PROC /backends/{id}. Added an FE configuration item enable_collect_tablet_num_in_show_proc_backend_disk_path (Default: true). #64013INSERT ... SELECT reads the freshest metadata by refreshing external tables before planning. #64026capacity_limit_reached checks to table functions, NL-join probe, and hash-join probe to avoid constructing overflowing columns. #64009collect_stats_io_tasks_per_connector_operator (Default: 4) for setting the maximum number of tasks to collect statistics for external tables. #64016rid to slow-lock logs. #63945task_runs_timeout_second, and refined cancellation logics for overdue runs. #63842REFRESH MATERIALIZED VIEW ... FORCE always refreshes target partitions (even in inconsistent or corrupted cases). #63844The following issues have been fixed:
PartitionedSpillerWriter::_remove_partition. #63903IllegalStateException under certain plans. #63655Release date: October 21, 2025
querySource field to QueryDetail and AuditEvent for better traceability of query origins across APIs and schedulers. #63480The following issues have been fixed:
regexp_extract_all has wrong behavior and lacks support for pos=0. #63626ExceptionStackContext. #63776ARRAY<NULL_TYPE>. #63371ClassCastException when querying tables partitioned by FROM_UNIXTIME on INT-type columns. #63684DECOMMISSION. #62942extract_number, extract_bool, and extract_string functions are not exception-safe. #63575omit for returns of the PREPARE/EXECUTE statements. #62988date_trunc partition pruning with combined predicates that mistakenly produced EMPTYSET. #63464Release date: September 22, 2025
aws.s3.enable_path_style_access to true when creating a storage volume. #62591 ALTER TABLE`` <table_name>`` AUTO_INCREMENT`` = 10000;. #62767 information_schema.``loads view to aid failure diagnosis. #61364enable_statistic_cache_refresh_after_write to disable statistics-cache lazy refresh by default. #62518json_extract in the Trino dialect returns a JSON type. #59718null_or_empty. #62207The following issues have been fixed:
hour_from_unixtime and incorrect rewrite rule of CAST. #63006 LEAST function is used as a predicate. #62826tablet_id leads to a null delta writer. #62861information_schema.analyze_status after the database is dropped. #62796files(). #62719http_workers_num metric. #62457gmtime is not thread-safe. #60483Release date: September 5, 2025
enable_drop_table_check_mv_dependency (default: false). When set to true, if the object to be dropped is referenced by a downstream materialized view, the system prevents the execution of DROP TABLE / DROP VIEW / DROP MATERIALIZED VIEW. The error message lists the dependent materialized views and suggests checking the sys.object_dependencies view for details. #61584... build <hash> distro <id> arch <arch>. #62017information_schema by pushing table filters before calling getTable, avoiding per-table RPCs. #62404The following issues have been fixed:
SPLIT(NULL, …) behavior to consistently return NULL, preventing data corruption and runtime errors. #61999CASE WHEN expressions due to incompatible VARCHAR type returns (fixed by ensuring consistency before and after refresh, and introducing a new FE configuration transform_type_prefer_string_for_varchar to prefer STRING and avoid length mismatch). #61996enable_rbo_table_prune was false. #62070LakePersistentIndex initialization failed and _memtable cleanup was triggered. #62279mv_use_creator_based_authorization. When set to false, materialized views are refreshed as root, for compatibility with LDAP-authenticated clusters). #62396Release Date: August 22, 2025
prepared_timeout configuration to Stream Load Transaction Interface. #61539The following issues have been fixed:
MIN() and MAX() functions on Iceberg partition columns return NULL unexpectedly. #61858COLUMN_UPSERT_MODE may overwrite auto-increment columns with zero. #61341max_filter_ratio was not being serialized in Routine Load jobs. #61755now(precision) function in Stream Load. #61721Release Date: August 11, 2025
BALANCE type to cluster balance results. #61081enable_materialized_view_agg_pushdown_rewrite is changed to true, enabling aggregation pushdown for materialized view queries by default. #60976The following issues have been fixed:
array_map processes constant array columns. #61309jdbc_connection_pool_size limit. #61038hour_from_unixtime function. #61206hit_count is not set. #61102FILES(). #61059Release Date: July 18, 2025
enable_predicate_expr_reuse to control predicate pushdown. #60603Fixed the following issues:
SELECT min/max queries under specific conditions. #60601query_id via Arrow Flight SQL. #60497lake_compaction_allow_partial_success is set to true. Compaction operations can now be marked as successful even if partially completed, preventing blockage of subsequent compaction tasks. #60643Release Date: July 1, 2025
enable_trace_historical_node controls this behavior (Default: false). #57083count(1) query performance using the file_record_count in Iceberg metadata. #60022JAVA_OPTS="--add-opens=java.base/java.util=ALL-UNNAMED" to BE and CN after upgrading to JDK 17. #59947kafka_broker_list property via the ALTER ROUTINE LOAD command when Kafka Broker endpoints change. #59787Files() function with duplicate path column names. #59597Fixed the following issues:
str2date. #60089COUNT(*) window functions. #60003is_leader label. #59883Release Date: June 13, 2025
IcebergAwsClientFactory to create AWS clients in Iceberg REST Catalog to offer vended credentials. #58296_statistics_.column_statistics to record the NDV of each partition. #51513partition_retention_condition in tables and materialized views to allow users to set data retention strategies for list partitions, thus achieving more flexible partition deletion strategies. #53117current_group(). #56670query_rewrite_consistency to force_mv to force the system to use the materialized view for query rewrite, thus keeping performance stability at the cost of data timeliness to a certain extent. #53819pause_on_json_parse_error to true. #56062lower_upper_support_utf8 on the session and global level, enhancing the support for UTF-8 strings (especially non-ASCII characters) in case conversion functions such as upper() and lower(). #56192