2025 Changelog

- You can now quickly comment or uncomment your currently selected lines in the Web UI query editor using `Ctrl+/` (or `Cmd+/` on Mac), making it easier to temporarily disable parts of your query while testing. [#91160](https://github.com/ClickHouse/ClickHouse/pull/91160) ([Samuel K.](https://github.com/OpenGLShaders)).
- Add `system.completions` to the list of always accessible tables. [#91166](https://github.com/ClickHouse/ClickHouse/pull/91166) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
- Add profile events `FailedInitialQuery` and `FailedInitialSelectQuery`. [#91172](https://github.com/ClickHouse/ClickHouse/pull/91172) ([RinChanNOW](https://github.com/RinChanNOWWW)).
- Fixed potential thread pool starvation when reading column samples for JSON columns with many subcolumns by respecting the `merge_tree_use_prefixes_deserialization_thread_pool` setting instead of unconditionally using the thread pool. [#91208](https://github.com/ClickHouse/ClickHouse/pull/91208) ([Raufs Dunamalijevs](https://github.com/rienath)).
- Support `JSON` type in `tupleElement`. Closes [#81630](https://github.com/ClickHouse/ClickHouse/issues/81630). [#91327](https://github.com/ClickHouse/ClickHouse/pull/91327) ([Pavel Kruglov](https://github.com/Avogar)).
- Fixed spurious memory limit errors when userspace page cache is enabled. [#91361](https://github.com/ClickHouse/ClickHouse/pull/91361) ([Michael Kolupaev](https://github.com/al13n321)).
- Ngrams tokenizer can now be built with ngram\_length = 1. [#91529](https://github.com/ClickHouse/ClickHouse/pull/91529) ([George Larionov](https://github.com/george-larionov)).
- Support storage settings inside functions in `INSERT INTO FUNCTION`, similar to how they are already supported for `SELECT`. Closes [#89386](https://github.com/ClickHouse/ClickHouse/issues/89386). [#91707](https://github.com/ClickHouse/ClickHouse/pull/91707) ([Kseniia Sumarokova](https://github.com/kssenii)).
- Throw "not implemented" for truncate query for data lakes instead of silently doing nothing. Closes [#86604](https://github.com/ClickHouse/ClickHouse/issues/86604). [#91713](https://github.com/ClickHouse/ClickHouse/pull/91713) ([Kseniia Sumarokova](https://github.com/kssenii)).
- Set max message size on parquet v3 reader to avoid getting `DB::Exception: apache::thrift::transport::TTransportException: MaxMessageSize reached`. [#91737](https://github.com/ClickHouse/ClickHouse/pull/91737) ([Arthur Passos](https://github.com/arthurpassos)).
- Add a setting `insert_select_deduplicate`. Which makes it more clear how do we handle insert deduplication when INSERT SELECT. In general it is not possible to do deduplication for such queries, but if the table is not changed and the result is sorted then it is possible to do deduplication on retry. We could not track that the source is the same. But we could check that the result of select query is sorted. Actually it turned out that in general case it is really hard to check, but the simple case with `ORDER BY ALL` is easy. Right now the logic here actually is broken. We try to deduplicate, but in the most cases it just does not see duplicates among the blocks because the select returns different data. [#91830](https://github.com/ClickHouse/ClickHouse/pull/91830) ([Sema Checherinda](https://github.com/CheSema)).
- Allow implicit type conversion when casting `Array` to `QBit`. Integer and float arrays can now be inserted directly into `QBit` columns without explicit type casts. [#91846](https://github.com/ClickHouse/ClickHouse/pull/91846) ([Raufs Dunamalijevs](https://github.com/rienath)).
- Add `CapnProto` message size limit. It can be changed with `format_capn_proto_max_message_size`. [#91888](https://github.com/ClickHouse/ClickHouse/pull/91888) ([Antonio Andelic](https://github.com/antonio2368)).
- Refine mark cache metrics to track only queries (after [#83415](https://github.com/ClickHouse/ClickHouse/issues/83415) `MarkCacheHits`/`MarkCacheMisses` was updated for merges as well, this PR will revert this behavior back). [#91910](https://github.com/ClickHouse/ClickHouse/pull/91910) ([Azat Khuzhin](https://github.com/azat)).
- Fix `client_info.interface` being set to `TCP` for local connections. [#91933](https://github.com/ClickHouse/ClickHouse/pull/91933) ([Konstantin Bogdanov](https://github.com/thevar1able)).
- `refresh_certificates_task_interval` parameter in ACME client configuration now expects a value in seconds. [#92211](https://github.com/ClickHouse/ClickHouse/pull/92211) ([Konstantin Bogdanov](https://github.com/thevar1able)).
- Log parts events in `system.part_log` for `system.*_log`. [#92217](https://github.com/ClickHouse/ClickHouse/pull/92217) ([Azat Khuzhin](https://github.com/azat)).