v25.8 Changelog for Cloud

[Edit this page](https://github.com/ClickHouse/clickhouse-docs/blob/main/docs/cloud/reference/01_changelog/02_release_notes/25_08.md)

## Backward incompatible changes[​](#backward-incompatible-changes "Direct link to Backward incompatible changes")

### JSON and data format changes[​](#json-and-data-format-changes "Direct link to JSON and data format changes")

- Disable quoting 64 bit integers in JSON formats by default. [#74079](https://github.com/ClickHouse/ClickHouse/pull/74079) ([Pavel Kruglov](https://github.com/Avogar)).
- Infer `Array(Dynamic)` instead of unnamed `Tuple` for arrays of values with different types in JSON. To use the previous behaviour, disable setting [`input_format_json_infer_array_of_dynamic_from_array_of_different_types`](/docs/operations/settings/formats#input_format_json_infer_array_of_dynamic_from_array_of_different_types). [#80859](https://github.com/ClickHouse/ClickHouse/pull/80859) ([Pavel Kruglov](https://github.com/Avogar)).
- Write values of `Enum` type as `BYTE_ARRAY` with `ENUM` logical type in Parquet output format by default. [#84169](https://github.com/ClickHouse/ClickHouse/pull/84169) ([Pavel Kruglov](https://github.com/Avogar)).

### Storage and partitioning[​](#storage-and-partitioning "Direct link to Storage and partitioning")

- Add support for hive partition style writes and refactor reads implementation (hive partition columns are no longer virtual). [#76802](https://github.com/ClickHouse/ClickHouse/pull/76802) ([Arthur Passos](https://github.com/arthurpassos)).
- Enable MergeTree setting [`write_marks_for_substreams_in_compact_parts`](/docs/operations/settings/merge-tree-settings#write_marks_for_substreams_in_compact_parts) by default. It significantly improves performance of subcolumns reading from newly created Compact parts. Servers with version less than 25.5 won't be able to read the new ompact parts. [#84171](https://github.com/ClickHouse/ClickHouse/pull/84171) ([Pavel Kruglov](https://github.com/Avogar)).
- Disallow `RENAME COLUMN` or `DROP COLUMN` involving explicitly listed columns to sum in SummingMergeTree. Closes [#81836](https://github.com/ClickHouse/ClickHouse/issues/81836). [#82821](https://github.com/ClickHouse/ClickHouse/pull/82821) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

### Function enhancements[​](#function-enhancements "Direct link to Function enhancements")

- Introduce a new argument `unexpected_quoting_character_strategy` to the [`extractKeyValuePairs`](/docs/sql-reference/functions/tuple-map-functions#extractKeyValuePairs) function that controls what happens when a `quoting_character` is unexpectedly found. For more details see the docs for [`extractKeyValuePairs`](/docs/sql-reference/functions/tuple-map-functions#extractKeyValuePairs). [#80657](https://github.com/ClickHouse/ClickHouse/pull/80657) ([Arthur Passos](https://github.com/arthurpassos)).
- Previously, the function [`countMatches`](/docs/sql-reference/functions/string-search-functions#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 would like to retain the old behavior can enable setting `count_matches_stop_at_empty_match`. [#81676](https://github.com/ClickHouse/ClickHouse/pull/81676) ([Elmi Ahmadov](https://github.com/ahmadov)).

### Data type improvements[​](#data-type-improvements "Direct link to Data type improvements")

- Improve the precision of conversion from `Decimal` to `Float32`. Implement conversion from `Decimal` to `BFloat16`. Closes [#82660](https://github.com/ClickHouse/ClickHouse/issues/82660). [#82823](https://github.com/ClickHouse/ClickHouse/pull/82823) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

### Performance and resource management[​](#performance-and-resource-management "Direct link to Performance and resource management")

- Previously, `BACKUP` queries, merges and mutations were not using server-wide throttlers for local (`max_local_read_bandwidth_for_server` and `max_local_write_bandwidth_for_server`) and remote (`max_remote_read_network_bandwidth_for_server` and `max_remote_write_network_bandwidth_for_server`) traffic, instead they were only throttled by dedicated server settings (`max_backup_bandwidth_for_server`, `max_mutations_bandwidth_for_server` and `max_merges_bandwidth_for_server`). Now, they use both types of throttlers simultaneously. [#81753](https://github.com/ClickHouse/ClickHouse/pull/81753) ([Sergei Trifonov](https://github.com/serxa)).
- Added a new setting [`cluster_function_process_archive_on_multiple_nodes`](/docs/operations/settings/settings#cluster_function_process_archive_on_multiple_nodes) which increases performance of processing archives in cluster functions when set to true (by default). Should be set to `false` for compatibility and to avoid errors during upgrade to 25.7+ if using cluster functions with archives on earlier versions. [#82355](https://github.com/ClickHouse/ClickHouse/pull/82355) ([Kseniia Sumarokova](https://github.com/kssenii)).
- The previous [`concurrent_threads_scheduler`](/docs/operations/server-configuration-parameters/settings#concurrent_threads_scheduler) default value was `round_robin`, which proved unfair in the presence of a high number of single-threaded queries (e.g., `INSERT`s). This change makes a safer alternative `fair_round_robin` scheduler, the default. [#84747](https://github.com/ClickHouse/ClickHouse/pull/84747) ([Sergei Trifonov](https://github.com/serxa)).
- Lazy materialization is enabled only with the analyzer to avoid maintenance without the analyzer which can have some issues (for example, when using `indexHint()` in conditions). [#83791](https://github.com/ClickHouse/ClickHouse/pull/83791) ([Igor Nikonov](https://github.com/devcrafter)).

### Schema and SQL syntax[​](#schema-and-sql-syntax "Direct link to Schema and SQL syntax")

- Forbid the creation of a table without insertable columns. [#81835](https://github.com/ClickHouse/ClickHouse/pull/81835) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
- Require backticks around identifiers with dots in default expressions to prevent them from being parsed as compound identifiers. [#83162](https://github.com/ClickHouse/ClickHouse/pull/83162) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
- Support PostgreSQL-style heredoc syntax: `$tag$ string contents... $tag$`, also known as dollar-quoted string literals. In previous versions, there were fewer restrictions on tags: they could contain arbitrary characters, including punctuation and whitespace. This introduces parsing ambiguity with identifiers that can also start with a dollar character. At the same time, PostgreSQL only allows word characters for tags. To resolve the problem, we now restrict heredoc tags only to contain word characters. Closes [#84731](https://github.com/ClickHouse/ClickHouse/issues/84731). [#84846](https://github.com/ClickHouse/ClickHouse/pull/84846) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

### Security and permissions[​](#security-and-permissions "Direct link to Security and permissions")