3.5.8
Release date: November 10, 2025
Improvements
- Upgraded Arrow to 19.0.1 to support the Parquet legacy list to include nested, complex files. #64238
- FILES() supports legacy Parquet LIST encodings. #64160
- Automatically determine the Partial Update mode based on the session variable and the number of inserted columns. #62091
- Applied low-cardinality optimization on analytic operators above table functions. #63378
- Added configurable table lock timeout to
finishTransactionto avoid blocking. #63981 - Shared-data clusters support table-level scan metrics attribution. #62832
- Window functions LEAD/LAG/FIRST_VALUE/LAST_VALUE now accept ARRAY type arguments. #63547
- Supports constant folding for several array functions to improve predicate pushdown and join simplification. #63692
- Supports batched API to optimize
tabletNumretrieval for a given node viaSHOW PROC /backends/{id}. Added an FE configuration itemenable_collect_tablet_num_in_show_proc_backend_disk_path(Default:true). #64013 - Ensured
INSERT ... SELECTreads the freshest metadata by refreshing external tables before planning. #64026 - Added
capacity_limit_reachedchecks to table functions, NL-join probe, and hash-join probe to avoid constructing overflowing columns. #64009 - Added FE configuration item
collect_stats_io_tasks_per_connector_operator(Default:4) for setting the maximum number of tasks to collect statistics for external tables. #64016 - Updated the default partition size for sample collection from 1000 to 300. #64022
- Increased lock table slots to 256 and added
ridto slow-lock logs. #63945 - Improved robustness of Gson deserialization in the presence of legacy data. #63555
- Reduced metadata lock scope for FILES() schema pushdown to cut lock contention and planning latency. #63796
- Added Task Run execute timeout checker by introducing an FE configuration item
task_runs_timeout_second, and refined cancellation logics for overdue runs. #63842 - Ensured
REFRESH MATERIALIZED VIEW ... FORCEalways refreshes target partitions (even in inconsistent or corrupted cases). #63844
Bug Fixes
The following issues have been fixed:
- An exception when parsing the Nullable (Decimal) type of ClickHouse. #64195
- An issue with tablet migration and Primary Key index lookup concurrency. #64164
- Lack of FINISHED status in materialized view refresh. #64191
- Schema Change Publish does not retry in shared-data clusters. #64093
- Wrong row count statistics on Primary Key tables in Data Lake. #64007
- When tablet creation times out in shared-data clusters, node information cannot be returned. #63963
- Corrupted Lake DataCache cannot be cleared. #63182
- Window function with IGNORE NULLS flags can not be consolidated with its counterpart without iIGNORE NULLS flag. #63958
- Table compaction cannot be scheduled again after FE restart if the compaction was previously aborted. #63881
- Tasks fail to be scheduled if FE restarts frequently. #63966
- An issue with GCS error codes. #64066
- Instability issue with StarMgr gRPC executor. #63828
- Deadlock when creating an exclusive work group. #63893
- Cache for Iceberg tables is not properly invalidated. #63971
- Wrong results for sorted aggregation in shared-data clusters. #63849
- ASAN error in
PartitionedSpillerWriter::_remove_partition. #63903 - BE crash when failing to get splits from morsel queue. #62753
- A bug with aggregate push-down type cast in materialized view rewrite. #63875
- NPE when removing expired load jobs in FE. #63820
- Partitioned Spill crash when removing partitions. #63825
- Materialized view rewrite throws
IllegalStateExceptionunder certain plans. #63655 - NPE when creating a partitioned materialized view. #63830