Back to Clickhouse

2025 Changelog

docs/changelogs/v25.10.3.100-stable.md

26.4.1.1-new16.2 KB
Original Source

2025 Changelog

ClickHouse release v25.10.3.100-stable (1e703eae565) FIXME as compared to v25.10.2.65-stable (4ff630944f8)

Experimental Feature

  • Backported in #89843: Move Alias to experimental, can be enabled with allow_experimental_alias_table_engine=1. #89712 (Kai Zhu).

Improvement

  • Backported in #90074: 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 #90166: 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 #90347: Use lower node limit for RemoveRecursive Keeper request during S3Queue cleanup. #90201 (Antonio Andelic).
  • Backported in #90640: Retry network errors when S3 library parses XML response. #90216 (Sema Checherinda).
  • Backported in #90728: 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 #90132: Prevent query masking rules from being incorrectly applied to DDL statements. #89272 (MikhailBurdukov).
  • Backported in #89864: Fix crash when using ARRAY JOIN on the right side of a JOIN with enable_lazy_columns_replication setting enabled. #89551 (Pavel Kruglov).
  • Backported in #90285: Fix logical error with query_plan_convert_join_to_in. Resolves #89066. #89554 (Vladimir Cherkasov).
  • Backported in #89871: Fix possible logical error during ARRAY JOIN on Map column with enabled enable_lazy_columns_replication. Closes #89705. #89717 (Pavel Kruglov).
  • Backported in #90739: Avoid crash due to reading from remote server after disconnect in remote queries during cancellation. Resolves #89468. #89740 (Azat Khuzhin).
  • Backported in #90691: Fix Alias stability issues: Fix StrictnessLevel with SharedDatabaseCatalog, disallow target is also an alias, and implement additional interfaces (getSerializationHints, supportsReplication, getStoragePolicy, totalBytesUncompressed, lifetimeRows, lifetimeBytes, storesDataOnDisk, tryLockForShare, lockForShare). Resolves #89106. #89812 (Kai Zhu).
  • Backported in #89861: Fix possible logical error during reading of paths and their subcolumns in advanced JSON shared data serialization. Closes #89805. #89819 (Pavel Kruglov).
  • Backported in #90193: Fix possible stack overflow in data types binary deserialization. Closes #88710. #89822 (Pavel Kruglov).
  • Backported in #89904: Fix logical error with empty tuple inside IN function. Closes #88343. #89850 (Nihal Z. Miaji).
  • Backported in #89894: 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 #90215: If the merge was interrupted by, for example, a memory limit, the merge mutate background executor will call cancel on the merge task without a lock, but, in this case, the partially created resulting part will not be removed (since it was not finished and at this stage was not visible). After that, the merge task will be destroyed, which will trigger the destruction of the resulting part. This will revert the disk transaction and cause the data to be removed from S3. At the end, this garbage cleanup was executed under the merge mutate background executor lock. #89875 (Mikhail Artemenko).
  • Backported in #89938: Fix logical error with empty tuple inside reverse and CAST function. Closes #89137. #89908 (Nihal Z. Miaji).
  • Backported in #89953: Now ClickHouse will show data lake catalog database in SHOW DATABASES query by default. #89914 (alesapin).
  • Backported in #89965: 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 #90040: 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 #90109: Fix wrong escaping for SHOW COLUMNS and SHOW FUNCTIONS queries. #89942 (alesapin).
  • Backported in #90358: 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 #90590: Fix possible crash during remote query with ARRAY JOIN inside IN and enabled enable_lazy_columns_replication setting. Resolves #90361. #89997 (Pavel Kruglov).
  • Backported in #90435: Fix possible logical error when using analyzer_compatibility_join_using_top_level_identifier with multiple joins. #90010 (Vladimir Cherkasov).
  • Backported in #90446: Fix inference of bad DateTime64 values from Strings in text formats in some cases. Resolves #89368. #90013 (Pavel Kruglov).
  • Backported in #90090: Fix logical error caused by empty tuple column in BSONEachRow and MsgPack. Closes #89814. Closes #71536. #90018 (Nihal Z. Miaji).
  • Backported in #90503: Do size checks when deserializing data from aggregation states and other sources. #90031 (Raúl Marín).
  • Backported in #90586: Fix possible error Column with Array type is not represented by ColumnArray column: Replicated during insertion with usage of ARRAY JOIN and enabled enable_lazy_columns_replication setting. #90066 (Pavel Kruglov).
  • Backported in #90185: Allow files starting with dots in user_files. Closes #89662. #90079 (Raúl Marín).
  • Backported in #90648: Fix logical error and modulo bug in numbers system table when big step size is used. Closes #83398. #90123 (Nihal Z. Miaji).
  • Backported in #90295: 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 #90758: Fix some queries with aggregated projection optimization. #90288 (János Benjamin Antal).
  • Backported in #90623: Fix possible logical error in prewhere on non-existing JSON path with index_granularity_bytes=0. Resolves #86924. #90375 (Pavel Kruglov).
  • Backported in #90482: Fixed a bug in L2DistanceTransposed that caused crashes when the precision argument exceeded valid range. Closes #90401. #90405 (Raufs Dunamalijevs).
  • Backported in #90707: Fixed a race condition in Hive partitioning where a static KeyValuePairExtractor caused data corruption or crashes during concurrent file reads. #90474 (Paresh Joshi).
  • Backported in #90575: Fixed incorrect distance calculations in L2DistanceTransposed when using array reference vectors (which default to Array(Float64)) with QBit columns of non-Float64 element types (Float32, BFloat16). The function now automatically casts the reference vector to match the QBit's element type. Resolves #89976. #90485 (Raufs Dunamalijevs).
  • Backported in #90616: Fix logical error caused by a rare case in equals function. Closes #88142. #90557 (Nihal Z. Miaji).
  • Backported in #90658: Fix logical error in concatWithSeparator function when using const non-string column. Closes #90596. #90655 (Nihal Z. Miaji).

Build/Testing/Packaging Improvement

NOT FOR CHANGELOG / INSIGNIFICANT