Back to Clickhouse

2026 Changelog

docs/changelogs/v26.2.4.23-stable.md

26.4.1.1-new7.2 KB
Original Source

2026 Changelog

ClickHouse release v26.2.4.23-stable (94012846cb5) FIXME as compared to v26.2.3.2-stable (ba231782911)

Backward Incompatible Change

  • Backported in #98752: Turn on async insert by default. clickhouse will be batching all small inserts by default now. this setting is set under compatibility. if you set compatibility=<version less than 26.2> then default value would be the previous one, false. you could turn off/on async inserts on the several levels: in the config in users profiles, for the session, for the query, or for the mergetree table. #97590 (Sema Checherinda).

Improvement

  • Backported in #98785: New setting allow_nullable_tuple_in_extracted_subcolumns controls whether extracted Tuple(...) subcolumns from Tuple, Variant, Dynamic and JSON are returned as Nullable(Tuple(...)) (NULL for missing rows) or as Tuple(...) (default tuple values for missing rows). Disabled by default, this setting can only be changed by restarting the server. #97299 (Nihal Z. Miaji).
  • Backported in #98481: Add server setting jemalloc_profiler_sampling_rate to control jemalloc's lg_prof_sample and expose it as jemalloc.prof.lg_sample asynchronous metric. #97945 (Antonio Andelic).
  • Backported in #98488: Added a new profile event KeeperRequestTotalWithSubrequests that counts each subrequest within a multi-request individually, providing better visibility into the actual Keeper workload. The existing KeeperRequestTotal event continues to count each multi-request as a single request. #98348 (Antonio Andelic).
  • Backported in #98749: Only "alive" replicas (that is connectable) participate in distributed index analysis. #98521 (Azat Khuzhin).

Bug Fix (user-visible misbehavior in an official stable release)

  • Backported in #98439: Fix wrong result or exception during reading subcolumns of ALIAS columns. #95408 (Pavel Kruglov).
  • Backported in #98820: Fix sumCount aggregate function not being able to read older serialized states after introduction of Nullable(Tuple). Closes #97370. #97502 (Nihal Z. Miaji).
  • Backported in #98659: Enforce READ ON FILE checks for scalar file() and DESCRIBE TABLE file(). #98115 (Nikolay Degterinsky).
  • Backported in #98563: Fix wrong results with distributed index analysis (experimental feature) and query condition cache. #98269 (Azat Khuzhin).
  • Backported in #98774: Fix LOGICAL_ERROR: Not-ready Set is passed as the second argument for function 'in' when using PREWHERE with IN subquery on MergeTree tables. #98522 (Alexey Milovidov).
  • Backported in #98651: Fix column rollback in Buffer engine during handling an exception during appending a new block. Old logic could lead to corrupted in-memory state of columns. #98551 (Pavel Kruglov).
  • Backported in #98623: Fixed usage of the text index with other skip indexes. Previously, logical errors such as "Trying to get non-existing mark" could be thrown when a query filter utilized a text index and other regular skip indexes simultaneously. #98555 (Anton Popov).
  • Backported in #98673: Fix distributed index analysis with expressions (not just columns) in PK (leads to zero filtering of redundant granules on remote replicas). #98561 (Azat Khuzhin).

Build/Testing/Packaging Improvement

NOT FOR CHANGELOG / INSIGNIFICANT

  • Backported in #98092: Attribute the thread of Iceberg Iterator to query thread group. #97832 (Daniil Ivanik).
  • Backported in #98491: Make jemalloc profiling cover all threads when enabled. #98232 (Antonio Andelic).
  • Backported in #98490: add setCurrentComponent in MergePlainMergeTreeTask. #98278 (Han Fei).
  • Backported in #98747: Set Coordination::setCurrentComponent in prewarmCaches. #98663 (Antonio Andelic).
  • Backported in #98772: After this patch, information about all parts that are currently in the partition will be collected and returned after the first phase of merge selection. Parts that are currently in active merges will be accounted for in the new statistics. #98679 (Mikhail Artemenko).
  • Backported in #98766: CI: skip all jobs for release PRs in filter_job hook. #98740 (Max Kainov).