Back to Clickhouse

2026 Changelog

docs/changelogs/v25.12.4.35-stable.md

26.4.1.1-new12.9 KB
Original Source

2026 Changelog

ClickHouse release v25.12.4.35-stable (4b2fbdcba83) FIXME as compared to v25.12.3.21-stable (7c3f6575160)

Improvement

  • Backported in #94210: Rework insert_select_deduplicate setting to add an ability to keep backward compatibility. #92951 (Sema Checherinda).
  • Backported in #94383: Introduced backup_data_from_refreshable_materialized_view_targets backup setting to control whether to back up data of refreshable materialized views. Targets of RMVs with APPEND refresh strategy are always backed up. #93658 (Julia Kartseva).
  • Backported in #94121: In some cases we've seen ClickHouse doesn't respect a memory limit when reading from a table. This behaviour is fixed. #93715 (Nikita Mikhaylov).
  • Backported in #94031: Do proper byte size calculation of the check request with stats. #93907 (Mikhail Artemenko).

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

  • Backported in #94128: Fix Not found column for use_top_k_dynamic_filtering optimization. Fixes #93186. #93316 (Nikolai Kochetov).
  • Backported in #94067: Avoids oauth login in ClickHouse Client when username/password are within the connection string. #93459 (Krishna Mannem).
  • Backported in #94023: Fix system instrument dispatch bug. #93937 (Pablo Marcos).
  • Backported in #94084: In https://github.com/ClickHouse/ClickHouse/pull/89173, we added an extra field to the structure that TraceSender sends through an internal pipe. However, the buffer size was not updated (here), therefore we are writting more data to buffer than buffer_size which results in multiple flushes. And because TraceSender::send is called from different threads, different threads' flushes may interleave which breaks the invariant that the receiving end (TraceCollector) relies on. #93966 (Miсhael Stetsyuk).
  • Backported in #94594: Fix type conversion to super type during the join operation of the storage Join with USING clause. Fixes #91672. Fixes #78572. #94000 (Dmitry Novik).
  • Backported in #94074: A SELECT query containing a predicate on multiple columns with bloom filter skip indexes and both OR and NOT conditions are present could return inconsistent results. That is fixed now. #94026 (Shankar Iyer).
  • Backported in #94456: Fix use-of-uninitialized-value in ReadWriteBufferFromHTTP. #94058 (Alexey Milovidov).
  • Backported in #94245: Fix bad check for typed paths in JSON. Checj was introduced in https://github.com/ClickHouse/ClickHouse/pull/92842 and can lead to error during existing tables startup. #94070 (Pavel Kruglov).
  • Backported in #94206: Fix accuracy of uniqTheta when using UInt8 aggregation keys in parallel (max_threads > 1 - default). #94095 (Azat Khuzhin).
  • Backported in #94167: Fixes https://github.com/ClickHouse/clickhouse-core-incidents/issues/1217. Exception was thrown from a socket.setBlocking(true) call inside SCOPE_EXIT: logs. Because SCOPE_EXIT creates a scope guard object and runs the provided code in the scope guard's destructor, we can't use SCOPE_EXIT with functions that throw exceptions and should use SCOPE_EXIT_SAFE instead. #94100 (Miсhael Stetsyuk).
  • Backported in #94637: Related issue: #80315 CIDB: link. #94123 (Tuan Pham Anh).
  • Backported in #94332: Fixed parquet reader v3 incorrectly handling arrays that cross page boundaries. This happens e.g. for files written by Arrow without enabling page statistics or page index. Affects only columns of Array data type. Likely symptom is that one array every ~1 MB of data gets truncated. Before this fix, use this setting as workaround: input_format_parquet_use_native_reader_v3 = 0. #94125 (Michael Kolupaev).
  • Backported in #94272: Fix data race in evaluating table functions in materialized views. #94171 (Alexey Milovidov).
  • Backported in #94261: Fix nullptr dereference in PostgreSQL database engines (when the query is incorrect). Closes #92887. #94180 (Alexey Milovidov).
  • Backported in #94317: Fix memory leak in refreshable materialized views using SELECT queries with multiple subqueries. #94200 (Antonio Andelic).
  • Backported in #94446: Fix data race in DataPartStorageOnDiskBase::remove vs system.parts. Closes #49076. #94262 (Alexey Milovidov).
  • Backported in #94303: Remove the wrong noexcept specifier at HashTable copy assignment that may lead to crash (std::terminate) on memory exceptions. #94275 (Nikita Taranov).
  • Backported in #94353: Fix obscure bug in ZooKeeper client on connect which leads to hungs and crashes. #94320 (Azat Khuzhin).
  • Backported in #94421: Fix possibly incorrect result in nested RIGHT JOINs when enable_lazy_columns_replication is enabled. The bug caused all rows in replicated columns to incorrectly return the same value instead of their distinct values. Close #93891. #94339 (Vladimir Cherkasov).
  • Backported in #94398: Fix incorrect value of current metric FilesystemCacheSizeLimit in case SLRU cache policy was used. #94363 (Kseniia Sumarokova).
  • Backported in #94465: Ignores impossible revokes of global grants on the database level for grants with grant option. #94386 (pufit).
  • Backported in #94473: Fix reading sparse offsets from compact parts. Closes #94385 ### Documentation entry for user-facing changes. #94399 (Pavel Kruglov).
  • Backported in #94490: Fix nullptr dereference with disabled send_profile_events. This feature was introduced recently for the ClickHouse Python driver. Closes #92488. #94466 (Alexey Milovidov).
  • Backported in #94608: Fix text index .mrk incompatibility during merges. #94494 (Peng Jian).
  • Backported in #94720: Fix a crash during ANY LEFT JOIN optimization when isNotNull is evaluated on a missing column. #94600 (Molly).

Build/Testing/Packaging Improvement

  • Backported in #94229: Bump c-ares from v1.34.5 to v1.34.6. This addresses c-ares' CVE-2025-62408, which is not relevant for ClickHouse. #94129 (Govind R Nair).

NOT FOR CHANGELOG / INSIGNIFICANT

  • Backported in #94570: If some files in data part are missing, we can end up with inconsistent in-memory state of some columns which can lead to crashes. It's better to throw logical errors in this case. #92076 (Pavel Kruglov).
  • Backported in #94056: More respect to memory limit from AggregateFunctionWindowFunnel. #93035 (Nikita Taranov).
  • Backported in #93743: Remote throttler sleep time no longer dependent on local socket timeouts and capped at 20 seconds by default. #93410 (Ilya Andreev).
  • Backported in #93993: Fix exception message. #93915 (Kseniia Sumarokova).