Back to Clickhouse

2025 Changelog

docs/changelogs/v25.3.7.194-lts.md

26.4.1.1-new26.1 KB
Original Source

2025 Changelog

ClickHouse release v25.3.7.194-lts (36637934778) FIXME as compared to v25.3.6.56-lts (39f0a39e4bb)

Improvement

  • Backported in #84500: Two mini improvements in Web UI: - correctly handle queries without output, such as CREATE, INSERT (until recently, these queries resulted in an infinite spinner); - when double clicking on a table, scroll to the top. #81131 (Alexey Milovidov).
  • Backported in #84031: Use information from cgroup (if applicable, i.e. memory_worker_use_cgroup and cgroups are available) to adjust memory tracker (memory_worker_correct_memory_tracker). #83981 (Azat Khuzhin).
  • Backported in #84593: S3Queue ordered mode fix: quit earlier if shutdown was called. #84463 (Kseniia Sumarokova).
  • Backported in #85017: Add 4LW in Keeper, lgrq, for toggling request logging of received requests. #84719 (Antonio Andelic).
  • Backported in #84866: Reduce contention on storage lock in Keeper. #84732 (Antonio Andelic).
  • Backported in #85014: Limit Keeper log entry cache size by number of entries using keeper_server.coordination_settings.latest_logs_cache_entry_count_threshold and keeper_server.coordination_settings.commit_logs_cache_entry_count_threshold. #84877 (Antonio Andelic).
  • Backported in #85731: Added show_data_lake_catalogs_in_system_tables flag to manage adding data lake tables in system.tables resolves #85384. #85411 (Smita Kulkarni).
  • Backported in #86823: Improve performance of RemoveRecursive request in Keeper. #86789 (Antonio Andelic).

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

  • Backported in #86905: Disable parallelize query processing right after reading FROM when distributed_aggregation_memory_efficient enabled, it may lead to logical error. Closes #76934. #78500 (flynn).
  • Backported in #80368: Skip indexes with lambda expressions could not be applied. Fix the case when high-level functions in the index definition exactly match the one in the query. #80025 (Nikolai Kochetov).
  • Backported in #80980: Perform less strict metadata checks for RMT in the Replicated database. Closes #80296. #80298 (Nikolay Degterinsky).
  • Backported in #88310: Fix NOT_FOUND_COLUMN_IN_BLOCK error caused by filter-push-down optimization of the logical JOIN sep in case ON expression is not a trivial equality. Fixes #79647 Fixes #77848. #80360 (Nikolai Kochetov).
  • Backported in #84389: Fix rollback of Dynamic column on parsing failure. #82169 (Pavel Kruglov).
  • Backported in #83235: Fix performance degradation with the enabled analyzer when secondary queries always read all columns from the VIEWs. Fixes #81718. #83036 (Dmitry Novik).
  • Backported in #83195: Do not check for cyclic dependencies on create table with no dependencies. It fixes performance degradation of the use cases with creation of thousands of tables that was introduced in https://github.com/ClickHouse/ClickHouse/pull/65405. #83077 (Pavel Kruglov).
  • Backported in #83138: Do not use unrelated parts of a shared dictionary in the lowCardinalityKeys function. #83118 (Alexey Milovidov).
  • Backported in #83469: Fix possible crash in Variant type in UNION. #83295 (Pavel Kruglov).
  • Backported in #83760: Keeper fix: update total watch count correctly when ephemeral nodes are deleted on session close. #83583 (Antonio Andelic).
  • Backported in #83739: Fix endless loop in estimateCompressionRatio() with block_size_bytes=0. #83704 (Azat Khuzhin).
  • Backported in #84135: Mask Avro schema registry authentication details to be not visible to user or in logs. #83713 (János Benjamin Antal).
  • Backported in #83953: Fix the issue where, if a MergeTree table is created with add_minmax_index_for_numeric_columns=1 or add_minmax_index_for_string_columns=1, the index is later materialized during an ALTER operation, and it prevents the Replicated database from initializing correctly on a new replica. #83751 (Nikolay Degterinsky).
  • Backported in #85753: Fixed parquet writer outputting incorrect statistics (min/max) for Decimal types. #83754 (Michael Kolupaev).
  • Backported in #83871: Introduce backward compatibility setting to allow new analyzer to reference outer alias in WITH clause in the case of name clashes. Fixes #82700. #83797 (Dmitry Novik).
  • Backported in #84217: Allow referencing any table in view(...) argument of remote table function with enabled analyzer. Fixes #78717. Fixes #79377. #83844 (Dmitry Novik).
  • Backported in #85790: Fix writing JSON paths with NULL values in RowBinary format. #83923 (Pavel Kruglov).
  • Backported in #84556: Fix deadlock caused by background cancellation checker thread. #84203 (Antonio Andelic).
  • Backported in #84487: Fixed incorrect construction of empty tuples in the array() function. This fixes #84202. #84297 (Amos Bird).
  • Backported in #84447: Make zoutofmemory hardware error, otherwise it will throw logical error. see https://github.com/clickhouse/clickhouse-core-incidents/issues/877. #84420 (Han Fei).
  • Backported in #86052: Fixed server crash when a user created with no_password attempts to login after the server setting allow_no_password was changed to 0. #84426 (Shankar Iyer).
  • Backported in #84648: Fix out-of-order writes to Keeper changelog. Previously, we could have in-flight writes to changelog, but rollback could cause concurrent change of the destination file. This would lead to inconsistent logs, and possible data loss. #84434 (Antonio Andelic).
  • Backported in #85308: Now if all TTL are removed from table MergeTree will do nothing related to TTL. #84441 (alesapin).
  • Backported in #85300: Fix ALTER MODIFY ORDER BY not validating TTL columns in sorting keys. TTL columns are now properly rejected when used in ORDER BY clauses during ALTER operations, preventing potential table corruption. #84536 (xiaohuanlin).
  • Backported in #84723: Lock 'mutex' when getting zookeeper from 'view' in RefreshTask. #84699 (Tuan Pham Anh).
  • Backported in #86608: Shutdown tables properly when recovering database replica. Improper shutdown would lead to LOGICAL_ERROR for some table engines during database replica recovery. #84744 (Antonio Andelic).
  • Backported in #84989: Fix total watches count returned by Keeper. #84890 (Antonio Andelic).
  • Backported in #85152: Fixed double-free in AzureIteratorAsync. #85064 (Nikita Taranov).
  • Backported in #85230: Fix Not-ready Set for IN (subquery) inside additional_table_filters expression setting. #85210 (Nikolai Kochetov).
  • Backported in #85258: Get rid of unnecessary getStatus() calls during SYSTEM DROP REPLICA queries. Fixes the case when a table is dropped in the background, and the Shutdown for storage is called exception is thrown. #85220 (Nikolay Degterinsky).
  • Backported in #85498: Added missing table name length checks in CREATE OR REPLACE and RENAME queries. #85326 (Michael Kolupaev).
  • Backported in #85520: Fix backup of parts with broken projections. #85362 (Antonio Andelic).
  • Backported in #85613: Queries with parallel replicas which uses reading reverse in order optimization can produce incorrect result. #85406 (Igor Nikonov).
  • Backported in #85693: Fix possible UB (crashes) in case of MEMORY_LIMIT_EXCEEDED during String deserialization. #85440 (Azat Khuzhin).
  • Backported in #85820: Fix incorrect metrics KafkaAssignedPartitions and KafkaConsumersWithAssignment. #85494 (Ilya Golshtein).
  • Backported in #85910: Fix secrets masking in icebergS3Cluster and icebergAzureCluster table functions. #85658 (MikhailBurdukov).
  • Backported in #86106: Using distributed_depth as an indicator of *Cluster function was incorrect and may lead to data duplication; use client_info.collaborate_with_initiator instead. #85734 (Konstantin Bogdanov).
  • Backported in #85856: Fix possible inconsistency for dictionaries with update_field on MEMORY_LIMIT_EXCEEDED errors. #85807 (Azat Khuzhin).
  • Backported in #86263: Fix logical error on attempt to CREATE ... AS (SELECT * FROM s3Cluster(...)) with DatabaseReplicated. #85904 (Konstantin Bogdanov).
  • Backported in #86951: Fix alter update of a column with a subcolumn used in other column materialized expression. Previously materialized column with subcolumn in its expression was not updated properly. #85985 (Pavel Kruglov).
  • Backported in #86689: Forbid altering columns whose subcolumns are used in PK or partition expression. #86005 (Pavel Kruglov).
  • Backported in #86193: Fix using wrong default values for path with Enum hint inside JSON. #86065 (Pavel Kruglov).
  • Backported in #86342: Fix crash during ALTER UPDATE Nullable(JSON). #86281 (Pavel Kruglov).
  • Backported in #86943: Fix cast from LowCardinality(Nullable(T)) to Dynamic. #86365 (Pavel Kruglov).
  • Backported in #86618: Ignore exceptions during flushing log on shutdown and make shutdown more safe (to avoid SIGSEGV). #86546 (Azat Khuzhin).
  • Backported in #86889: Fix missing chunk header when send_chunk_header is enabled and UDF is invoked via HTTP protocol. #86606 (Vladimir Cherkasov).
  • Backported in #87055: Fix writing NULL into JSON shared data in RowBinary input format and add some additional validations in ColumnObject. #86812 (Pavel Kruglov).
  • Backported in #87313: Fix TimeSeries engine table breaking creation of new replica in Replicated Database. #86845 (Nikolay Degterinsky).
  • Backported in #86857: Fix querying system.distributed_ddl_queue in cases where tasks are missing certain Keeper nodes. #86848 (Antonio Andelic).
  • Backported in #87066: Correctly cast output of PREWHERE after splitting it into multiple steps. #87040 (Antonio Andelic).
  • Backported in #87418: EmbeddedRocksDB: Path must be inside user_files. #87109 (Raúl Marín).
  • Backported in #87309: Fix KeeperMap tables created before 25.1, leaving data in ZooKeeper after the DROP query. #87112 (Nikolay Degterinsky).
  • Backported in #87635: Fixed incorrect accounting of temporary data deallocations in max_temporary_data_on_disk_size limit tracking, close #87118. #87140 (JIaQi).
  • Backported in #87819: The function checkHeaders is now properly validating the provided headers and reject forbidden headers. Original author: Michael Anastasakis (@michael-anastasakis). #87172 (Raúl Marín).
  • Backported in #87473: Make pathStartsWith only match paths under the prefix. #87181 (Raúl Marín).
  • Backported in #87471: Ignore only not found errors for s3_plain_rewritable (which may lead to all sort of troubles). #87426 (Azat Khuzhin).
  • Backported in #88005: Fixes access validation on select and insert for Buffer tables. #87545 (pufit).
  • Backported in #87767: Fixed a bug that might lead to overriding global server settings with SELECT settings of a View or Materialized View, if this view was dropped asynchronously and the server was restarted before finishing background cleanup. #87603 (Alexander Tokmakov).
  • Backported in #88487: Fix for incorrect granules/partitions elimination for datetime-based keys, when using session_timezone setting in queries. #87987 (Eduard Karacharov).
  • Backported in #88197: Fix possible uncaught exception while reading system.tables with invalid tables in external databases (PostgreSQL/SQLite/...) attached. #88105 (Azat Khuzhin).
  • Backported in #88282: Fixed propagation of is_shared flag in ColumnLowCardinality. It may lead to a wrong group-by result if a new value is inserted in a column after hash values are already pre-calculated and cached in the ReverseIndex. #88213 (Nikita Taranov).
  • Backported in #88359: Avoid trying to initialize DataLake databases while accessing system.projections and system.data_skipping_indices. #88330 (Azat Khuzhin).

Build/Testing/Packaging Improvement

NO CL ENTRY

NOT FOR CHANGELOG / INSIGNIFICANT