Back to Clickhouse

2025 Changelog

docs/changelogs/v25.6.1.3206-stable.md

26.4.1.1-new117.7 KB
Original Source

2025 Changelog

ClickHouse release v25.6.1.3206-stable (4e12d851180) FIXME as compared to v25.6.1.1-new (063c439f433)

Backward Incompatible Change

  • Minor: Force backup_threads and restore_threads server settings to be non zero. #80224 (Raúl Marín).
  • Fix bitNot() for String to return a zero-terminated string. #80791 (Azat Khuzhin).
  • Backported in #82079: Previously, function countMatches would stop counting at the first empty match even if the pattern accepts it. To overcome this issue, countMatches now continues execution by advancing by a single character when an empty match occurs. Users who like to retain the old behavior can enable setting count_matches_stop_at_empty_match. #81676 (Elmi Ahmadov).

New Feature

  • Allow to write to Merge table engine. #77484 (Anton Ivashkin).
  • Add mapContainsValuesLike/mapContainsValues/mapExtractValuesLike functions to filter on map values and their support in bloomfilter based indexes. #78171 (UnamedRus).
  • Added query slot scheduling for workloads, see https://clickhouse.com/docs/operations/workload-scheduling#query_scheduling for details. #78415 (Sergei Trifonov).
  • Support disallowed values under settings constraints. #78499 (Bharat Nallan).
  • Add a support for Coalescing Merge Tree. This closes #78869. #79344 (scanhex12).
  • Added a setting enable_shared_storage_snapshot_in_query to enable sharing the same storage snapshot across all subqueries in a single query. This ensures consistent reads from the same table, even when the table is referenced multiple times within a query. #79471 (Amos Bird).
  • Support writing CH JSON columns to Parquet and reading Parquet JSON columns directly as CH JSON columns. #79649 (Nihal Z. Miaji).
  • Bundle chdig - TUI interface for ClickHouse (top like) as part of ClickHouse. #79666 (Azat Khuzhin).
  • Add MultiPolygon support for pointInPolygon. #79773 (Nihal Z. Miaji).
  • Add support for querying local filesystem-mounted delta tables via deltaLakeLocal table function. #79781 (roykim98).
  • Support functions to read WKB format. This partially closes #43941. #80139 (scanhex12).
  • Add new setting cast_string_to_date_time_mode that allows to choose DateTime parsing mode during cast from String. #80210 (Pavel Kruglov).
  • Added Bech32 and Bech32m encoding and decoding functions (issue #40381). #80239 (George Larionov).
  • Support disk setting for Atomic and Ordinary DB engines, specifying the disk to store table metadata files. #80546 (Tuan Pham Anh).
  • Support functions to unpack and compare merge tree parts. #80573 (Mikhail Artemenko).
  • timeSeries* helper functions to speedup some scenarios when working with time series data: - re-sample the data to the time grid with specified start timestamp, end timestamp and step - calculate PromQL-like delta, rate, idelta and irate. #80590 (Alexander Gololobov).
  • Allow filtering parts selected for query by the disk they reside on. #80650 (tanner-bruce).
  • Backported in #82248: Add 'format_schema_source' setting which defines the source of 'format_schema'. #80874 (Tuan Pham Anh).
  • Add a landing page with the list of embedded web tools. It will open when requested by a browser-like user agent. #81129 (Alexey Milovidov).
  • Allow for filtering NULL values in arrayFirst, arrayFirstIndex, arrayLast & arrayLastIndex. Fixes #81113. #81197 (Lennard Eijsackers).
  • Backported in #82115: New data types: Time ([H]HH:MM:SS) and Time64 ([H]HH:MM:SS[.fractional]), and some basic cast functions and functions to interact with other data types. Added settings for compatibility with a legacy function ToTime. #81217 (Yarik Briukhovetskyi).
  • Backported in #82081: It's now possible to write USE DATABASE {name}. #81307 (Yarik Briukhovetskyi).
  • Backported in #82351: Added a new system table system.codecs to introspect the available codecs. (issue #81525). #81600 (Jimmy Aguilar Mena).
  • Backported in #82218: Support lag and lead window functions. Closes #9887. #82108 (Dmitry Novik).

Experimental Feature

  • The explicit parameters are supported via key-value pairs. Currently, supported parameters are a mandatory tokenizer and two optional max_rows_per_postings_list and ngram_size. #80262 (Elmi Ahmadov).
  • Experimental indexes of type gin were renamed to text. Existing indexes of type gin remain loadable but they will throw an exception (suggesting text indexes instead) when one tries to use them in searches. #80855 (Robert Schulze).

Performance Improvement

  • The existing implementation of Pipe::resize creates a single Resize or StrictResize node by inserting it into the pipeline topology, which then acts as a central hub connecting all input streams (upstream nodes) to a unified set of output streams (downstream nodes). This design leads to contention for the ExecutingGraph::Node::status_mutex during pipeline graph execution, especially in high-core-count environments. When pipelines scale to tens or hundreds of streams, this contention results in:. #77562 (Zhiguo Zhou).
  • Backported in #81959: Introduced an option to offload (de)compression and (de)serialization of blocks into pipeline threads instead of a single thread associated with a network connection. Controlled by the setting enable_parallel_blocks_marshalling. It should speed up distributed queries that transfer significant amounts of data between the initiator and remote nodes. #78694 (Nikita Taranov).
  • Replace DELETE FROM ... WHERE 1 queries to TRUNCATE. (Reverted). #78739 (scanhex12).
  • Performance improvements to all bloom filter types. #79800 (Delyan Kratunov).
  • Introduced a happy path in UniqExactSet::merge when one of the sets is empty. Also, now if the LHS set is two-level and the RHS is single-level, we won't do the conversion to two-level for the RHS. #79971 (Nikita Taranov).
  • Make logging asynchronous by default. You can disable this by setting <async>false</async> under <logger>. #80125 (Raúl Marín).
  • Improve memory reuse efficiency and reduce page faults when using the twolevel hashtables. #80245 (Jiebin Sun).
  • Avoid unnecessary update and reduce lock contention in QueryConditionCache. #80247 (Jiebin Sun).
  • Trivial opt on concatenateBlocks. Maybe it's good for parallel hash join. #80328 (李扬).
  • When selecting mark ranges from the primary key range, binary search cannot be used if the primary key is wrapped with functions. This PR improves this limitation: binary search can still be applied when the primary key is wrapped with an always monotonic function chain, or when the RPN contains an element that is always true. This PR closes #45536. #80597 (zoomxi).
  • Improve shutdown speed of Kafka engine (remove extra 3 seconds delay in case of multiple Kafka tables). #80796 (Azat Khuzhin).
  • Async insert: Reduce memory usage and improve performance of insert queries. #80972 (Raúl Marín).
  • Don't profile processors if the log table is disabled. #81256 (Raúl Marín).
  • Speed up toFixedString when the source is exactly what's requested. #81257 (Raúl Marín).
  • Don't process quota values if the user is not limited. #81549 (Raúl Marín).
  • Make ProcfsMetricsProvider thread_local to keep files open between tasks. #81576 (Raúl Marín).
  • Fixed performance regression in memory tracking. #81694 (Michael Kolupaev).

Improvement

  • EXPLAIN SYNTAX now uses a new analyzer. It returns AST built from the query tree. Added option query_tree_passes to control the number of passes to executed before converting query tree to the AST. #74536 (Vladimir Cherkasov).
  • Use SLRU cache policy in filesystem cache by default. #75072 (Kseniia Sumarokova).
  • Refresh S3 credentials after error AuthenticationRequired. #77353 (Vitaly Baranov).
  • Added dictionary metrics to system.asynchronous_metrics - DictionaryMaxUpdateDelay - The maximum delay(in seconds) of dictionary update. - DictionaryTotalFailedUpdates - Number of errors since last successful loading in all dictionaries. #78175 (Vlad).
  • Improve the sharding key optimization on distributed query. #78452 (fhw12345).
  • Implement Kafka rebalance like logic for StorageKafka2 using ClickHouse Keeper For each replica we support two types of partition locks: permanent locks and temporary locks. The replica tries to hold permanent locks as long as possible, at any given time there are no more than all_topic_partitions / active_replicas_count (here all_topic_partitions is the number of all partitions, active_replicas_count is the number of active replicas) permanent locks on the replica, if there are more, then the replica releases some partitions. Some partitions are temporarily held by the replica. The maximum number of temporary locks on a replica changes dynamically to give other replicas a chance to take some partitions into permanent locks. When updating temporary locks, the replica releases them all and tries to take some others again. #78726 (Daria Fomina).
  • Add warning about databases that were potentially created to save broken tables. #78841 (János Benjamin Antal).
  • Add _time virtual column in S3Queue engine. #78926 (Anton Ivashkin).
  • Make settings controlling connection drop on overloaded CPU hot-reloadable. #79052 (Alexey Katsman).
  • Add container prefix to data paths reported in system.tables for plain disks in Azure blob storage, making reporting consistent with S3 and GCP. #79241 (Julia Kartseva).
  • Now, ClickHouse also accepts query parameters as param-<name> (dash) along with param_<name> (underscore). This closes #63093. #79429 (Engel Danila).
  • Detailed warning msg for bandwidth discount when copying data from local to remote S3 with checksum enabled. #79464 (VicoWu).
  • Previously when input_format_parquet_max_block_size = 0 ClickHouse would stuck. Now this behaviour is fixed. This closes #79394. #79601 (abashkeev).
  • Add throw_on_error setting for startup_scripts: when throw_on_error is true, the server will not start unless all queries complete successfully. By default, throw_on_error is false, preserving the previous behavior. #79732 (Aleksandr Musorin).
  • Allow to add http_response_headers in http_handlers of any kind. #79975 (Andrey Zvonov).
  • Allow moving GLOBAL [NOT] IN predicate to PREWHERE clause if applicable. #79996 (Eduard Karacharov).
  • Function reverse support Tuple data type. Closes #80053. #80083 (flynn).
  • This tiny patch resolve #75817: allows get auxiliary_zookeepers data from system.zookeeper table. #80146 (Nikolay Govorov).
  • Add asynchronous metrics about the server's TCP sockets. This improves the observability. Closes #80187. #80188 (Alexey Milovidov).
  • Function tokens now supports string as a tokenizer. #80195 (Robert Schulze).
  • Parallel replicas: avoid waiting for slow unused replicas if all read tasks have been assigned to other replicas. #80199 (Igor Nikonov).
  • Support anylast_respect_nulls and any_respect_nulls in simpleaggregatefunction. #80219 (Diskein).
  • Remove unnecessary call adjustCreateQueryForBackup() for replicated databases. #80282 (Vitaly Baranov).
  • Allow extra options (that go after -- like -- --config.value='abc') in clickhouse-local without the equality sign. Closes #80292. #80293 (Alexey Milovidov).
  • Highlight metacharacters in SHOW ... LIKE queries. This closes #80275. #80297 (Alexey Milovidov).
  • Make SQL UDF persistent in clickhouse-local. The previously created function will be loaded at startup. This closes #80085. #80300 (Alexey Milovidov).
  • Support comparison between Time/Time64. #80327 (Yarik Briukhovetskyi).
  • Fix description in explain plan for preliminary distinct step. #80330 (UnamedRus).
  • Allow to use named collections in ODBC/JDBC. #80334 (Andrey Zvonov).
  • Enable multiple-projection filtering support, allowing to use more than one projection for part-level filtering. This addresses #55525. This is the second step to implement projection index, following #78429. #80343 (Amos Bird).
  • Metrics for number of readonly and broken disks. Indicator logs when DiskLocalCheckThread is started. #80391 (VicoWu).
  • Implement support for s3_plain_rewritable storage with projections. In previous versions, metadata objects in S3 referencing projections would not get updated when moved. Closes #70258. #80393 (Sav).
  • Parallel replicas uses separate connection timeout, see parallel_replicas_connect_timeout_ms setting. Before connect_timeout_with_failover_ms/connect_timeout_with_failover_secure_ms settings were used as connection timeout values for parallel replicas queries (1 second by default). #80421 (Igor Nikonov).
  • The SYSTEM UNFREEZE command will not try to look up parts in readonly and write-once disks. This closes #80430. #80432 (Alexey Milovidov).
  • Changed log level of a merged parts message from INFO to TRACE. #80476 (Hans Krutzer).
  • Implement flattened serialization for Dynamic and JSON in Native format that allows to serialize/deserialize Dynamic and JSON data without special structures like shared variant for Dynamic and shared data for JSON. This serialization can be enabled by setting output_format_native_use_flattened_dynamic_and_json_serialization. This serialization can be used for easier support for Dynamic and JSON in TCP protocol in clients in different languages. #80499 (Pavel Kruglov).
  • This change the default behavior of partition pruning for Iceberg table. #80583 (Melvyn Peignon).
  • Add two new ProfileEvents for index search algorithm observability: IndexBinarySearchAlgorithm and IndexGenericExclusionSearchAlgorithm. #80679 (Pablo Marcos).
  • Do not complain about unsupported MADV_POPULATE_WRITE for older kernels in logs (to avoid logs polluting). #80704 (Robert Schulze).
  • Added support for Date32, DateTime64 in TTL. #80710 (Andrey Zvonov).
  • Adjust compatibility values for max_merge_delayed_streams_for_parallel_write. #80760 (Azat Khuzhin).
  • Fix a crash: if an exception is thrown in an attempt to remove a temporary file (they are used for spilling temporary data on disk) in the destructor, the program can terminate. #80776 (Alexey Milovidov).
  • Add IF EXISTS modifier to SYSTEM SYNC REPLICA. #80810 (Raúl Marín).
  • Extend exception message about "Having zero bytes, but read range is not finished...", add finished_download_time column to system.filesystem_cache'. #80849 (Kseniia Sumarokova).
  • Previously, packed storage was not supported for the full-text index, because the segment id was updated on-fly by reading and writing (.gin_sid) file on disk. In case of packed storage, reading a value from the uncommited file is not supported and this led to an issue. #80852 (Elmi Ahmadov).
  • Add search algorithm section to EXPLAIN output when using it with indexes = 1. If shows either "binary search" or "generic exclusion search". #80881 (Pablo Marcos).
  • At the beginning of 2024, prefer_column_name_to_alias was hardcoded to True for MySQL handler because the new analyzer was not enabled by default. Now, it can be unhardcoded. #80916 (Yarik Briukhovetskyi).
  • Now system.iceberg_history shows history for catalogs databases like glue or iceberg rest. Also renamed table_name and database_name columns to table and database in system.iceberg_history for consistency. #80975 (alesapin).
  • Allow read-only mode for the merge table function, so the CREATE TEMPORARY TABLE grant is not required for using it. #80981 (Miсhael Stetsyuk).
  • Better introspection of in-memory caches (expose information about caches in system.metrics over incomplete system.asynchronouse_metrics). Add in-memory caches size (in bytes) into dashboard.html. VectorSimilarityIndexCacheSize/IcebergMetadataFilesCacheSize has been renamed to VectorSimilarityIndexCacheBytes/IcebergMetadataFilesCacheBytes. #81023 (Azat Khuzhin).
  • Ignore databases with engines that can't contain RocksDB tables while reading from system.rocksdb. #81083 (Pervakov Grigorii).
  • Allow filesystem_caches and named_collections in the clickhouse-local configuration file. #81105 (Alexey Milovidov).
  • Fix highlighting of PARTITION BY in INSERT queries. In previous versions, PARTITION BY was not highlighted as a keyword. #81106 (Alexey Milovidov).
  • 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).
  • Update c-ares to v1.34.5. #81159 (Konstantin Bogdanov).
  • Upgrade curl to 8.14 to address CVE-2025-5025 and CVE-2025-4947. #81171 (larryluogit).
  • Upgrade libarchive to 3.7.9 to address: CVE-2024-20696 CVE-2025-25724 CVE-2024-48958 CVE-2024-57970 CVE-2025-1632 CVE-2024-48957 CVE-2024-48615. #81174 (larryluogit).
  • Upgrade libxml2 to 2.14.3. #81187 (larryluogit).
  • MemoryResidentWithoutPageCache provides the amount of physical memory used by the server process, excluding userspace page cache, in bytes. This provides a more accurate view of actual memory usage when userspace page cache is utilized. When userspace page cache is disabled, this value equals MemoryResident. #81233 (Jayme Bird).
  • Mark manually logged exceptions in client, local server, keeper client and disks app as logged, so that they are not logged twice. #81271 (Miсhael Stetsyuk).
  • Setting use_skip_indexes_if_final and use_skip_indexes_if_final_exact_mode now default to True. Queries with FINAL clause will now use skip indexes (if applicable) to shortlist granules and also read any additional granules corresponding to matching primary key ranges. Users needing earlier behaviour of approximate/imprecise results can set use_skip_indexes_if_final_exact_mode to FALSE after careful evaluation. #81331 (Shankar Iyer).
  • When you have multiple queries in the web UI, it will run the one under the cursor. Continuation of #80977. #81354 (Alexey Milovidov).
  • This PR addresses issues with the implementation of is_strict in the monotonicity checks for conversion functions. Currently, some conversion functions, such as toFloat64(UInt32) and toDate(UInt8), incorrectly return is_strict as false when they should return true. #81359 (zoomxi).
  • In filesystem with journal mkdir is written to the journal of filesystem which is persisted to disk. In case of slow disk this can take long time. Definitely make sense to move out from reserve lock scope. #81371 (Kseniia Sumarokova).
  • When checking if a KeyCondition matches a continuous range, if the key is wrapped with a non-strict function chain, a Constraint::POINT may needs to be converted to aConstraint::RANGE. For example: toDate(event_time) = '2025-06-03' implies a range for event_time: ['2025-06-03 00:00:00', '2025-06-04 00:00:00'). This PR fixes this behavior. #81400 (zoomxi).
  • Use postgres 16.9. #81437 (Konstantin Bogdanov).
  • Use openssl 3.2.4. #81438 (Konstantin Bogdanov).
  • Use abseil-cpp 2025-01-27. #81440 (Konstantin Bogdanov).
  • Use mongo-c-driver 1.30.4. #81449 (Konstantin Bogdanov).
  • Use krb5 1.21.3-final. #81453 (Konstantin Bogdanov).
  • Use orc 2.1.2. #81455 (Konstantin Bogdanov).
  • Add support for the --database argument in clickhouse-local. You can switch to a previously created database. This closes #44115. #81465 (Alexey Milovidov).
  • clickhouse/ch aliases will invoke clickhouse-client instead of clickhouse-local if --host or --port are specified. Continuation of #79422. Closes #65252. #81509 (Alexey Milovidov).
  • Now that we have the keeper response time distribution data, we can tune the histogram buckets. #81516 (Miсhael Stetsyuk).
  • Postpone reading of Iceberg manifest files until first reading query. #81619 (Daniil Ivanik).
  • Use grpc 1.73.0. #81629 (Konstantin Bogdanov).
  • Use delta-kernel-rs v0.12.1. #81707 (Konstantin Bogdanov).
  • Add profile event PageCacheReadBytes. #81742 (Kseniia Sumarokova).
  • Backported in #81934: Try fix logical error in filesystem cache: "Having zero bytes but range is not finished". #81868 (Kseniia Sumarokova).
  • Backported in #82363: Function addressToSymbol and system.symbols table will use file offsets instead of virtual memory addresses. #81896 (Alexey Milovidov).
  • Backported in #82623: Use abseil-cpp 20250512.0. #81945 (Konstantin Bogdanov).
  • Backported in #82632: Use google-protobuf v31.1. #81976 (Konstantin Bogdanov).
  • Backported in #82471: Add ability to reload max_local_read_bandwidth_for_server and max_local_write_bandwidth_for_server on fly without restart server. #82083 (Kai Zhu).
  • Backported in #82595: Keeper improvement: add new config keeper_server.cleanup_old_and_ignore_new_acl. If enabled, all nodes will have their ACLs cleared while ACL for new requests will be ignored. If the goal is to completely remove ACL from nodes, it's important to leave the config enabled until a new snapshot is created. #82496 (Antonio Andelic).

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

  • Fix parameterized view with SELECT EXCEPT query. Closes #49447. #57380 (Nikolay Degterinsky).
  • Analyzer: Fix column projection name after column type promotion in join. Closes #63345. #63519 (Dmitry Novik).
  • Fixed a logical error in cases of column name clashes when analyzer_compatibility_join_using_top_level_identifier is enabled. #75676 (Vladimir Cherkasov).
  • Fix CTE usage in pushed-down predicates when allow_push_predicate_ast_for_distributed_subqueries is enabled. Fixes #75647. Fixes #79672. #77316 (Dmitry Novik).
  • Fixes an issue where SYSTEM SYNC REPLICA LIGHTWEIGHT 'foo' would report success even when the specified replica didn't exist. The command now properly validates that the replica exists in Keeper before attempting synchronization. #78405 (Jayme Bird).
  • Fix crash for a very specific situation when the currentDatabase function was used in CONSTRAINT sections for ON CLUSTER queries Closes #78100. #79070 (pufit).
  • Fix passing of external roles in interserver queries. #79099 (Andrey Zvonov).
  • Try to use IColumn instead of Field in SingleValueDataGeneric. It fixes the incorrect return values for some aggregate functions like argMax for types Dynamic/Variant/JSON. #79166 (Pavel Kruglov).
  • Fix applying use_native_copy and allow_azure_native_copy setting for azure blob storage and updated to use native copy only when credentials match resolves #78964. #79561 (Smita Kulkarni).
  • Fix logical errors about a column's unknown origin scope produced while checking if this column is correlated. Fixes #78183. Fixes #79451. #79727 (Dmitry Novik).
  • Fix wrong results for grouping sets with ColumnConst and Analyzer. #79743 (Andrey Zvonov).
  • Fix local shard result duplication when reading from distributed table with local replica being stale. #79761 (Eduard Karacharov).
  • Fix the sorting order of the NaNs with a negative sign bit. #79847 (Pervakov Grigorii).
  • Now GROUP BY ALL doesn't take into account the GROUPING part. #79915 (Yarik Briukhovetskyi).
  • Fixed incorrect state merging for TopK / TopKWeighted functions that would cause excessive error values even when capacity was not exhausted. #79939 (Joel Höner).
  • Respect readonly setting in azure_blob_storage object storage. #79954 (Julia Kartseva).
  • Fixed incorrect query results and out-of-memory crashes when using match(column, '^…') with backslash-escaped characters. #79969 (filimonov).
  • Disabling hive partitioning for datalakes Partially addresses https://github.com/issues/assigned?issue=ClickHouse%7CClickHouse%7C79937. #80005 (Daniil Ivanik).
  • 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).
  • Fix metadata version during attach part on the replica executing ATTACH_PART command from replication log. #80038 (Aleksei Filatov).
  • Executable User Defined Functions (eUDF) names are not added to the used_functions column of the system.query_log table, unlike other functions. This PR implements the addition of the eUDF name if the eUDF was used in the request. #80073 (Kyamran).
  • Fix logical error in Arrow format with LowCardinality(FixedString). #80156 (Pavel Kruglov).
  • Fix reading subcolumns from Merge engine. #80158 (Pavel Kruglov).
  • Fix a bug about the comparison between numeric types in KeyCondition. #80207 (Yarik Briukhovetskyi).
  • Fix AMBIGUOUS_COLUMN_NAME when lazy materialization applied to table with projections. #80251 (Igor Nikonov).
  • Fix incorrect count optimization for string prefix filters like LIKE 'ab_c%' when using implicit projections. This fixes #80250. #80261 (Amos Bird).
  • Fix improper serialization of nested numeric fields as strings in MongoDB documents. Remove maximum depth limit for documents from MongoDB. #80289 (Kirill Nikiforov).
  • Perform less strict metadata checks for RMT in the Replicated database. Closes #80296. #80298 (Nikolay Degterinsky).
  • Fix text representation of DateTime and DateTime64 for PostgreSQL storage. #80301 (Yakov Olkhovskiy).
  • Allow DateTime with timezone in StripeLog tables. This closes #44120. #80304 (Alexey Milovidov).
  • Disable filter-push-down for the predicate with a non-deterministic function in case the query plan step changes the number of rows. Fixes #40273. #80329 (Nikolai Kochetov).
  • Fix possible logical errors and crashes in projections with subcolumns. #80333 (Pavel Kruglov).
  • 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).
  • Fix incorrect result when reading reverse-ordered keys in partitioned tables. This fixes #79987. #80448 (Amos Bird).
  • Fixed wrong sorting in tables with a nullable key and enabled optimize_read_in_order. #80515 (Pervakov Grigorii).
  • Fixed refreshable materialized view DROP getting stuck if the view was paused using SYSTEM STOP REPLICATED VIEW. #80543 (Michael Kolupaev).
  • Fix 'Cannot find column' with constant tuple in distributed query. #80596 (Yakov Olkhovskiy).
  • Fix shardNum function in Distributed tables with join_use_nulls. #80612 (János Benjamin Antal).
  • Fix incorrect result during reading column that exists in subset of tables in Merge engine. #80643 (Pavel Kruglov).
  • Fix possible SSH protocol (due to hang in replxx). #80688 (Azat Khuzhin).
  • The timestamp in the iceberg_history table should now be correct. #80711 (Melvyn Peignon).
  • Fix possible crash in case of dictionary registration failed (when CREATE DICTIONARY failed with CANNOT_SCHEDULE_TASK it is possible to leave dangling pointer in the dictionary registry, which later lead to crash). #80714 (Azat Khuzhin).
  • Fix handling of enum globs of a single element in object storage table functions. #80716 (Konstantin Bogdanov).
  • Fix wrong result type of comparison functions with Tuple(Dynamic) and String that led to logical error. #80728 (Pavel Kruglov).
  • Add missing support data type timestamp_ntz for unity catalog. Fixes #79535, Fixes #79875. #80740 (alesapin).
  • Backported in #82189: Fix logical error during materialize projection when column type was changed to Nullable. #80741 (Pavel Kruglov).
  • Fix THERE_IS_NO_COLUMN error for distributed queries with IN cte. Fixes #75032. #80757 (Nikolai Kochetov).
  • Fix excessive number of files (leads to excessive memory usage) for external ORDER BY. #80777 (Azat Khuzhin).
  • This PR might close #80742. #80783 (zoomxi).
  • Fix crash in Kafka due to get_member_id() was creating std::string from NULL (it was likely an issue only in case of connection to broker had been failed). #80793 (Azat Khuzhin).
  • Properly wait consumers before shutting down Kafka engine (active consumers after shutdown can trigger various debug assertions and also may read data from brokers in background after table has been dropped/detached). #80795 (Azat Khuzhin).
  • Fix NOT_FOUND_COLUMN_IN_BLOCK, which is caused by predicate-push-down optimization. Fixes #80443. #80834 (Nikolai Kochetov).
  • Fix logical error when resolving star (*) matcher in table function in JOIN with USING. #80894 (Vladimir Cherkasov).
  • Fix memory accounting for Iceberg metadata files cache. #80904 (Azat Khuzhin).
  • Fix wrong partitioning with nullable partition key. #80913 (Pervakov Grigorii).
  • Fix Table does not exist error for distributed queries with pushed-down predicate (allow_push_predicate_ast_for_distributed_subqueries=1) when the source table does not exist on the initialtor. Fixes #77281. #80915 (Nikolai Kochetov).
  • Fix the logical error in the nested functions with named windows. #80926 (Pervakov Grigorii).
  • Fix extremes for nullable and floating-point columns. #80970 (Pervakov Grigorii).
  • Fix possible crash while querying from system.tables (likely the case under memory pressure). #80976 (Azat Khuzhin).
  • Fix atomic rename with truncate for files which compression is inferred from their file extension. #80979 (Pablo Marcos).
  • Fix ErrorCodes::getName. #81032 (RinChanNOW).
  • Fix bug when user cannot list tables in Unity Catalog without permissions for all of them. Now all tables are listed properly, attempt to read from restricted table will throw an exception. #81044 (alesapin).
  • Now ClickHouse will ignore errors and unexpected responses from data lake catalogs in SHOW TABLES query. Fixes #79725. #81046 (alesapin).
  • Fix parsing of DateTime64 from integers in JSONExtract and JSON type parsing. #81050 (Pavel Kruglov).
  • Reflect date_time_input_format setting in schema inference cache. #81052 (Pavel Kruglov).
  • Fix crash on INSERT if table was DROPed after query started but before columns sent. #81053 (Azat Khuzhin).
  • Fix use-of-uninitialized-value in quantileDeterministic. #81062 (Azat Khuzhin).
  • Fix hardlinks count management for metadatastoragefromdisk disk transactions. add tests. #81066 (Sema Checherinda).
  • User Defined Functions (UDF) names are not added to the system.query_log table, unlike other functions. This PR implements the addition of the UDF name to one of the two columns used_executable_user_defined_functions or used_sql_user_defined_functions if the UDF was used in the request. #81101 (Kyamran).
  • Fixed Too large size ... passed to allocator errors or possible crashes on inserts via http protocol with text formats (JSON, Values, ...) and omitted Enum fields. #81145 (Anton Popov).
  • Fix LOGICAL_ERROR in case of Sparse column in INSERT block pushed to non-MT MV. #81161 (Azat Khuzhin).
  • Fix Unknown table expression identifier for distributed_product_mode_local=local with cross-replication. #81162 (Nikolai Kochetov).
  • Fixed incorrectly caching number of rows in parquet files after filtering. #81184 (Michael Kolupaev).
  • Fix fs cache max_size_to_total_space setting when used with relative cache path. #81237 (Kseniia Sumarokova).
  • Fixed clickhouse-local crashing when outputting const tuples or maps in Parquet format. #81249 (Michael Kolupaev).
  • Verify array offsets received over network. #81269 (Azat Khuzhin).
  • Fix some corner case in query that joins empty tables and uses window functions. The bug leads to exploding number of parallel streams which leads to OOMs. #81299 (Alexander Gololobov).
  • Fixes for datalake Cluster functions (deltaLakeCluster, icebergCluster, etc): (1) fix potential segfault in DataLakeConfiguration when using Cluster function with old analyzer; (2) remove duplicating data lake metadata updates (extra object storage requests); (3) fix redundant listing in object storage when format is not explicitly specified (which was already done for non-cluster data lake engines). #81300 (Kseniia Sumarokova).
  • Make force_restore_data flag recover lost keeper metadata. #81324 (Raúl Marín).
  • Fix region error in delta-kernel. Fixes #79914. #81353 (Kseniia Sumarokova).
  • Disable incorrect JIT for divideOrNull. #81370 (Raúl Marín).
  • Fix insert error when MergeTree table has a long partition column name. #81390 (hy123q).
  • Backported in #81957: Fixed possible crash in Aggregator in case of exception during merge. #81450 (Nikita Taranov).
  • Don't store content of several manifest files in memory. #81470 (Daniil Ivanik).
  • Fix possible crash during shutting down background pools (background_.*pool_size). #81473 (Azat Khuzhin).
  • Fix out-of-bounds read in the Npy format happening when writing to a table with the URL engine. This closes #81356. #81502 (Alexey Milovidov).
  • There is a chance that Web UI displays NaN% (typical JavaScript problems). #81507 (Alexey Milovidov).
  • Fix DatabaseReplicated for database_replicated_enforce_synchronous_settings=1. #81564 (Azat Khuzhin).
  • Fix sorting order for LowCardinality(Nullable(...)) types. #81583 (Pervakov Grigorii).
  • Backported in #82334: Fix IN execution with transform_null_in=1 with null in the left argument and non-nullable subquery result. #81584 (Pavel Kruglov).
  • Server should not preserve a HTTP connection if the request has not been fully read from the socket. #81595 (Sema Checherinda).
  • Backported in #82179: Don't validate experimental/suspicious types in default/materialize expression execution during reading from existing table. #81618 (Pavel Kruglov).
  • Make scalar correlated subqueries return a nullable result of the projection expression. Fix the case when a correlated subquery produces an empty result set. #81632 (Dmitry Novik).
  • Fix Unexpected relative path for a deduplicated part during ATTACH to ReplicatedMergeTree. #81647 (Azat Khuzhin).
  • Query settings use_iceberg_partition_pruning will not take effect for iceberg storage, because it uses global context rather than query context. it's not critical because its default value is true. this pr can fix it. #81673 (Han Fei).
  • Backported in #82128: Fix "Context has expired" during merges when dict used in TTL expression. #81690 (Azat Khuzhin).
  • Add validation for mergetree setting merge_max_block_size to ensure that it's non zero. #81693 (Bharat Nallan).
  • Fix issues with clickhouse-local involving stuck DROP VIEW queries. #81705 (Bharat Nallan).
  • Fix StorageRedis join in some cases. #81736 (Pervakov Grigorii).
  • Fix crash in ConcurrentHashJoin with empty USING () and old analyzer enabled. #81754 (Nikita Taranov).
  • Keeper fix: block commits of new logs if there is invalid entry in the logs. Previously, if leader applied some logs incorrectly, it would continue to commit new logs, even though the follower would detect digest mismatch and abort. #81780 (Antonio Andelic).
  • Backported in #82024: Fix the issue where required columns are not read during scalar correlated subquery processing. Fixes #81716. #81805 (Dmitry Novik).
  • Backported in #81940: Someone littered our code with Kusto. Cleaned it up. This closes #81643. #81885 (Alexey Milovidov).
  • Backported in #82294: In previous versions, the server returned excessive content for requests to /js. This closes #61890. #81895 (Alexey Milovidov).
  • Backported in #82230: Previously, MongoDB table engine definitions could include a path component in the host:port argument which was silently ignored. The mongodb integration refuses to load such tables. With this fix we allow loading such tables and ignore path component if MongoDB engine has five arguments, using the database name from arguments. Note: The fix is not applied for newly created tables or queries with mongo table function, as well as for dictionary sources and named collections. #81942 (Vladimir Cherkasov).
  • Backported in #82100: Fixed possible crash in Aggregator in case of exception during merge. #82022 (Nikita Taranov).
  • Backported in #82554: Fix LOGICAL_ERROR and following crash when using the same column in the TTL for GROUP BY and SET. #82054 (Pablo Marcos).
  • Backported in #82395: Fix S3 table function argument validation in secret masking, preventing possible LOGICAL_ERROR, close #80620. #82056 (Vladimir Cherkasov).
  • Backported in #82143: Fixing copy-paste error in arraySimilarity, disallowing the use of UInt32 and Int32 weights. Update tests and docs. #82103 (Mikhail f. Shiryaev).
  • Backported in #82320: Fix the Not found column error for queries with arrayJoin under WHERE condition and IndexSet. #82113 (Nikolai Kochetov).
  • Backported in #82264: Fix bug in glue catalog integration. Now clickhouse can read tables with nested data types where some of subcolumns contain decimals, for example: map<string, decimal(9, 2)>. Fixes #81301. #82114 (alesapin).
  • Backported in #82404: Fix possible deadlock for remote queries when server is under memory pressure. #82160 (Kirill).
  • Backported in #82590: Fix a bug in table dependencies causing Materialized Views to miss INSERT queries. #82222 (Nikolay Degterinsky).
  • Backported in #82296: Fix possible data-race between suggestion thread and main client thread. #82233 (Azat Khuzhin).
  • Backported in #82525: Add expiration to AWS ECS token so it can be reloaded. #82422 (Konstantin Bogdanov).
  • Backported in #82581: Fix hiding named collection values in logs/query_log. Closes #82405. #82510 (Kseniia Sumarokova).
  • Backported in #82572: Fix a possible crash in logging while terminating a session as the user_id might sometimes be empty. #82513 (Bharat Nallan).

Build/Testing/Packaging Improvement

NO CL CATEGORY

NO CL ENTRY

NOT FOR CHANGELOG / INSIGNIFICANT