2025 Changelog

- Added a new setting `apply_row_policy_after_final` that allows the query to apply row policy only after final, which will make the behavior for ReplacingMergeTree with row policies more correct. Fixes [#90986](https://github.com/ClickHouse/ClickHouse/issues/90986). [#91065](https://github.com/ClickHouse/ClickHouse/pull/91065) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
- In `Pretty` format, named tuples are now displayed as Pretty JSON. This closes [#65022](https://github.com/ClickHouse/ClickHouse/issues/65022). [#91779](https://github.com/ClickHouse/ClickHouse/pull/91779) ([Mostafa Mohamed Salah](https://github.com/Sasao4o)).
- Added fields `last_error_time`, `last_error_message`, `last_error_query_id` and `last_error_trace` to `system.error_log` table. [#89879](https://github.com/ClickHouse/ClickHouse/pull/89879) ([Narasimha Pakeer](https://github.com/npakeer)).
- CLI client can now suppress the 'ClickHouse server version is older than ClickHouse client. It may indicate that the server is out of date and can be upgraded' message by specifying `--no-server-client-version-message` or `false`. [#87784](https://github.com/ClickHouse/ClickHouse/pull/87784) ([Larry Snizek](https://github.com/larry-cdn77)).
- Add error message that the part was deduplicated. [#80264](https://github.com/ClickHouse/ClickHouse/pull/80264) ([Aleksandr Musorin](https://github.com/AVMusorin)).
- Added `dependencies` and `missing_dependencies` columns to `system.kafka_consumers` to report materialized view target tables for Kafka tables. Added `KafkaMVNotReady` counter. [#85346](https://github.com/ClickHouse/ClickHouse/pull/85346) ([Ilya Golshtein](https://github.com/ilejn)).
- Now, table's default expressions work correctly with insertions using remote and native protocol. Closes [#87972](https://github.com/ClickHouse/ClickHouse/issues/87972). [#88540](https://github.com/ClickHouse/ClickHouse/pull/88540) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
- Allow disabling of `PSI_*_*` async metrics collection. [#88557](https://github.com/ClickHouse/ClickHouse/pull/88557) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
- Added support of sparse serialization for columns of `Nullable` type. This continues [#44539](https://github.com/ClickHouse/ClickHouse/issues/44539). [#88999](https://github.com/ClickHouse/ClickHouse/pull/88999) ([Amos Bird](https://github.com/amosbird)).
- `plain-rewritable` disk has its own implementation and layout. Let's not base it on top of regular `plain` disks. [#89807](https://github.com/ClickHouse/ClickHouse/pull/89807) ([Mikhail Artemenko](https://github.com/Michicosun)).
- Any exception in HTTP should never contain final zero chunk. [#89998](https://github.com/ClickHouse/ClickHouse/pull/89998) ([Kaviraj Kanagaraj](https://github.com/kavirajk)).
- Add a keeper-server-side check during handshake to reject clients when `last_zxid_seen (provided by the client) > last_processed_zxid`. This prevents stale reads when clients reconnect to lagging replicas. [#90016](https://github.com/ClickHouse/ClickHouse/pull/90016) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
- Add `kafka_consumer_reschedule_ms` as a tunable `Kafka` table engine setting in order to adjust how long consumers sleep for new data. Resolves [#89204](https://github.com/ClickHouse/ClickHouse/issues/89204). [#90112](https://github.com/ClickHouse/ClickHouse/pull/90112) ([Jeremy Aguilon](https://github.com/JerAguilon)).
- Add a new column `parts_in_progress_names` to `system.mutations` to improve diagnostics. [#90155](https://github.com/ClickHouse/ClickHouse/pull/90155) ([Shaohua Wang](https://github.com/tiandiwonder)).
- Retry network errors when S3 library parses an XML response. [#90216](https://github.com/ClickHouse/ClickHouse/pull/90216) ([Sema Checherinda](https://github.com/CheSema)).
- We want to run keepers in a separate server processes and, to avoid overwhelming Prometheus in large regions, we should continue to expose only keeper-related metrics. [#90244](https://github.com/ClickHouse/ClickHouse/pull/90244) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
- Add support for loading ClickHouse Client configuration from XDG Base Directory paths (e.g., `~/.config/clickhouse/config.xml`) in addition to the legacy `~/.clickhouse-client/` location. Resolves [#89882](https://github.com/ClickHouse/ClickHouse/issues/89882). [#90306](https://github.com/ClickHouse/ClickHouse/pull/90306) ([Wujun Jiang](https://github.com/rainac1)).
- Add byte size limit for append request batch in Keeper. Limit is controlled with `keeper_server.coordination_settings.max_requests_append_bytes_size`. [#90342](https://github.com/ClickHouse/ClickHouse/pull/90342) ([Antonio Andelic](https://github.com/antonio2368)).
- Add a setting for Iceberg to prevent large partitions count. [#90365](https://github.com/ClickHouse/ClickHouse/pull/90365) ([Konstantin Vedernikov](https://github.com/scanhex12)).
- Update warning messages when approaching guardrails limits: show current and throw values. [#90438](https://github.com/ClickHouse/ClickHouse/pull/90438) ([Nikita Fomichev](https://github.com/fm4v)).
- Stream chunks in `system.filesystem_cache` table instead of creating a single chunk with all cache state. Reading filesystem cache state can take a long time for large caches and consume a lot of memory, so streaming it is indispensable for large deployments. [#90508](https://github.com/ClickHouse/ClickHouse/pull/90508) ([Kseniia Sumarokova](https://github.com/kssenii)).
- Fix bad exception message in Hive partitioning: it was missing a space. [#90685](https://github.com/ClickHouse/ClickHouse/pull/90685) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Entries in the vector similarity index cache are now removed when table parts are dropped or replaced by newer parts. Prior to this, these would be cleared only lazily by cache eviction. [#90750](https://github.com/ClickHouse/ClickHouse/pull/90750) ([Shankar Iyer](https://github.com/shankar-iyer)).
- Bump chdig (a command-line ClickHouse diagnostic tool) to [v25.12.1](https://github.com/azat/chdig/releases/tag/v25.12.1). [#91394](https://github.com/ClickHouse/ClickHouse/pull/91394) ([Azat Khuzhin](https://github.com/azat)).
- Now pre-signed URLs work with S3. Closes [#65032](https://github.com/ClickHouse/ClickHouse/issues/65032). [#90827](https://github.com/ClickHouse/ClickHouse/pull/90827) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
- The text index now works with `ReplacingMergeTree` tables. [#90908](https://github.com/ClickHouse/ClickHouse/pull/90908) ([Elmi Ahmadov](https://github.com/ahmadov)).
- Avoid exposing the ClickHouse server version in HTTP error responses returned before authentication. [#91003](https://github.com/ClickHouse/ClickHouse/pull/91003) ([filimonov](https://github.com/filimonov)).
- Now `HTTP_CONNECTION_LIMIT_REACHED` exception would be thrown when `hard_limit` for the http clients connection is reached. It is set as `20000` for the disk connections. [#91016](https://github.com/ClickHouse/ClickHouse/pull/91016) ([Sema Checherinda](https://github.com/CheSema)).
- Introduce `system.background_schedule_pool{,_log}` to improve introspection of background jobs. [#91157](https://github.com/ClickHouse/ClickHouse/pull/91157) ([Azat Khuzhin](https://github.com/azat)).
- 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)).