Back to Clickhouse

2025 Changelog

docs/changelogs/v25.9.6.117-stable.md

26.4.1.1-new17.3 KB
Original Source

2025 Changelog

ClickHouse release v25.9.6.117-stable (ff2a1965ca6) FIXME as compared to v25.9.5.21-stable (57cfa8fbbf8)

Performance Improvement

  • Backported in #90371: Enable saving marks in cache and avoid direct IO for the MergeTreeLazy reader. #87989 (Nikita Taranov).
  • Backported in #89504: Queries can now benefit from optimize_read_in_order and query_plan_optimize_lazy_materialization simultaneously. Resolves #88767. #88866 (Manuel).

Improvement

  • Backported in #87816: Make flushing to system.crash_log in signal handling synchronous. #87253 (Miсhael Stetsyuk).
  • Backported in #87934: Added a new setting keeper_hosts that exposes the list of [Zoo]Keeper hosts ClickHouse can connect to. #87718 (Nikita Mikhaylov).
  • Backported in #89244: If a skip index used in a FINAL query is on a column that is part of the primary key, the additional step to check for primary key intersection in other parts is unnecessary and now not performed. Resolves #85897. #88368 (Shankar Iyer).
  • Backported in #89423: Subqueries which take part inside IN expressions when querying Iceberg table will be precomputed in the right way before partition pruning analysis. #89177 (Daniil Ivanik).
  • Backported in #90072: Fix wrong FilesystemCacheBytes (and others) in system.asynchronous_metrics. Run SYSTEM queries on filesystem caches only once. Atomic view for caches that points to the same path in system.filesystem_caches. #89640 (Azat Khuzhin).
  • Backported in #90164: Changed default of filesystem cache setting keep_free_space_remove_batch from 10 to 100, because it is more optimal. #90030 (Kseniia Sumarokova).
  • Backported in #90351: Use lower node limit for RemoveRecursive Keeper request during S3Queue cleanup. #90201 (Antonio Andelic).
  • Backported in #90711: Retry network errors when S3 library parses XML response. #90216 (Sema Checherinda).
  • Backported in #90775: Update warning messages when approaching guardrails limits: show current and throw values. #90438 (Nikita Fomichev).

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

  • Backported in #88850: Fix inferring Date/DateTime/DateTime64 on dates that are out of supported range. #86184 (Pavel Kruglov).
  • Backported in #89993: Fix creating an array of empty tuples. #87520 (Pavel Kruglov).
  • Backported in #89576: Fix reading mixed array of Floats and Bools in JSON. Previously inserting such data led to an exception. #88008 (Pavel Kruglov).
  • Backported in #89278: Using shared_ptr for QueryState in TCPHandler to detect if the state is invalid in setProgressCallback, setFileProgressCallback and setBlockMarshallingCallback. #88201 (Tuan Pham Anh).
  • Backported in #89239: Fix SQL SECURITY DEFINER with *cluster functions. #88588 (Julian Maicher).
  • Backported in #89444: Fix possible "Context has expired" with new analyzer with subqueries. #88694 (Azat Khuzhin).
  • Backported in #89464: Fix propagation of size restrictions by settings max_table_size_to_drop and max_partition_size_to_drop on DROP of inner tables. #88812 (Nikolay Degterinsky).
  • Backported in #89293: Fix ACCESS_ENTITY_NOT_FOUND error when trying to execute clusterAllReplicas from a user with a non-existing role. Resolves #87670. #89068 (pufit).
  • Backported in #89324: Fix calculation of buffer size needed for base32/base58 encoding and decoding operations. #89133 (Antonio Andelic).
  • Backported in #89266: Refreshable materialized view: fixed rare server crash if source table was fully dropped during a refresh. #89203 (Michael Kolupaev).
  • Backported in #90147: Prevent query masking rules from being incorrectly applied to DDL statements. #89272 (MikhailBurdukov).
  • Backported in #89485: Fixed incorrect merge handling of TTL-emptied parts with non-empty projections when using deduplicate_merge_projection_mode='ignore'. Resolves #89430. #89458 (Amos Bird).
  • Backported in #89568: Fix reading of changelogs during Keeper startup in cases a changelog was not renamed properly during rotation. #89496 (Antonio Andelic).
  • Backported in #89631: Fix incorrect JOIN results when using OR conditions with unique right table keys. Resolves #89391. #89512 (Vladimir Cherkasov).
  • Backported in #89593: Fix possible "Context has expired" with analyzer and PK IN (subquery) (v2). Fixes #89433. #89527 (Azat Khuzhin).
  • Backported in #89686: Fix a crash in case if a state of an aggregate function contains a serialized value of a column of LowCardinality(String). #89550 (Pavel Kruglov).
  • Backported in #90283: Fix logical error with query_plan_convert_join_to_in. Resolves #89066. #89554 (Vladimir Cherkasov).
  • Backported in #90737: Avoid crash due to reading from remote server after disconnect in remote queries during cancellation. Resolves #89468. #89740 (Azat Khuzhin).
  • Backported in #89859: Fix possible logical error during reading of paths and their subcolumns in advanced JSON shared data serialization. Closes #89805. #89819 (Pavel Kruglov).
  • Backported in #90191: Fix possible stack overflow in data types binary deserialization. Closes #88710. #89822 (Pavel Kruglov).
  • Backported in #89902: Fix logical error with empty tuple inside IN function. Closes #88343. #89850 (Nihal Z. Miaji).
  • Backported in #89892: Remove injective functions from GROUP BY regardless optimize_injective_functions_in_group_by in old analyzer for compatibility. Resolves #89854. #89870 (Raufs Dunamalijevs).
  • Backported in #89935: Fix logical error with empty tuple inside reverse and CAST function. Closes #89137. #89908 (Nihal Z. Miaji).
  • Backported in #89963: Fix using native copy on GCS for backups. Because of incorrect client cloning, GCS native copy always failed and used less optimal approach of manual reading and writing the data. #89923 (Antonio Andelic).
  • Backported in #90037: Fix buffer size calculation for base32Encode. Calculating base32Encode for column of strings of size smaller than 5 could lead to crashes. Resolves #89911. #89929 (Antonio Andelic).
  • Backported in #90107: Fix wrong escaping for SHOW COLUMNS and SHOW FUNCTIONS queries. #89942 (alesapin).
  • Backported in #90356: Fix URL validation in MongoDB engine when username contains '@' character. Previously, usernames with '@' would cause an error due to improper encoding. #89970 (Kai Zhu).
  • Backported in #90088: Fix logical error caused by empty tuple column in BSONEachRow and MsgPack. Closes #89814. Closes #71536. #90018 (Nihal Z. Miaji).
  • Backported in #90502: Do size checks when deserializing data from aggregation states and other sources. #90031 (Raúl Marín).
  • Backported in #90183: Allow files starting with dots in user_files. Closes #89662. #90079 (Raúl Marín).
  • Backported in #90293: Fix incorrect formatting of certain skip indexes in the table definition, causing METADATA_MISMATCH and breaking creation of new replicas in the Replicated Database. #90251 (Nikolay Degterinsky).
  • Backported in #90621: Fix possible logical error in prewhere on non-existing JSON path with index_granularity_bytes=0. Resolves #86924. #90375 (Pavel Kruglov).

Build/Testing/Packaging Improvement

NO CL CATEGORY

NOT FOR CHANGELOG / INSIGNIFICANT