title_wip

- Added a setting `inject_random_order_for_select_without_order_by` which injects `ORDER BY rand()` into top-level `SELECT` queries without `ORDER BY` clause. [#87261](https://github.com/ClickHouse/ClickHouse/pull/87261) ([Rui Zhang](https://github.com/zhangruiddn)).
- Support other formats (ORC, Avro) in iceberg writes. This closes [#86179](https://github.com/ClickHouse/ClickHouse/issues/86179). [#87277](https://github.com/ClickHouse/ClickHouse/pull/87277) ([scanhex12](https://github.com/scanhex12)).
- Improve joinGet error message so that it properly states that the number of `join_keys` is not the same as the number of `right_table_keys`. [#87279](https://github.com/ClickHouse/ClickHouse/pull/87279) ([Isak Ellmer](https://github.com/spinojara)).
- Squash data from all threads before inserting to materialized views depending on the settings `min_insert_block_size_rows_for_materialized_views` and `min_insert_block_size_bytes_for_materialized_views`. Previously, if `parallel_view_processing` was enabled, each thread inserting to a specific materailized view would squash insert independently which could lead to higher number of generated parts. [#87280](https://github.com/ClickHouse/ClickHouse/pull/87280) ([Antonio Andelic](https://github.com/antonio2368)).
- This patch adds the ability to check an arbitrary Keeper node's stat during the write tx. This can help with ABA problem detection. [#87282](https://github.com/ClickHouse/ClickHouse/pull/87282) ([Mikhail Artemenko](https://github.com/Michicosun)).
- Redirect heavy ytsaurus requests to heavy proxies. [#87342](https://github.com/ClickHouse/ClickHouse/pull/87342) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
- This patch fixes rollbacks of unlink/rename/removeRecursive/removeDirectory/etc operations and also hardlink counts in any possible workloads for metadata from disk transactions, and simplifies the interfaces to make them more generic so that they can be reused in other meta stores. [#87358](https://github.com/ClickHouse/ClickHouse/pull/87358) ([Mikhail Artemenko](https://github.com/Michicosun)).
- Added `keeper_server.tcp_nodelay` configuration parameter that allows disabling `TCP_NODELAY` for Keeper. [#87363](https://github.com/ClickHouse/ClickHouse/pull/87363) (Copilot).
- Support `--connection` in `clickhouse-benchmarks`. It is the same as supported by `clickhouse-client`, you can specify predefined connections in client `config.xml`/`config.yaml` under `connections_credentials` path, to avoid explicitly specifying user/password via command line arguments. Add support for `--accept-invalid-certificate` into `clickhouse-benchmark`. [#87370](https://github.com/ClickHouse/ClickHouse/pull/87370) ([Azat Khuzhin](https://github.com/azat)).
- Now setting `max_insert_threads` will take effect on Iceberg tables. [#87407](https://github.com/ClickHouse/ClickHouse/pull/87407) ([alesapin](https://github.com/alesapin)).
- Add histogram and dimensional metrics to `PrometheusMetricsWriter`. This way, the `PrometheusRequestHandler` handler will have all the essential metrics and can be used for reliable and low-overhead metric collection in the cloud. [#87521](https://github.com/ClickHouse/ClickHouse/pull/87521) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
- Function `hasToken` now returns zero matches for the empty token (whereas this previously threw an exception). [#87564](https://github.com/ClickHouse/ClickHouse/pull/87564) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
- Add text index support for `Array` and `Map` (`mapKeys` and `mapValues`) values. The supported functions are `mapContainsKey` and `has`. [#87602](https://github.com/ClickHouse/ClickHouse/pull/87602) ([Elmi Ahmadov](https://github.com/ahmadov)).
- Add a new `ZooKeeperSessionExpired` metric which indicates the number of expired global ZooKeeper sessions. [#87613](https://github.com/ClickHouse/ClickHouse/pull/87613) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
- Use S3 storage client with backup-specific settings (for example, backup\_slow\_all\_threads\_after\_retryable\_s3\_error) for server-side (native) copy to a backup destination. Make s3\_slow\_all\_threads\_after\_retryable\_error obsolete. [#87660](https://github.com/ClickHouse/ClickHouse/pull/87660) ([Julia Kartseva](https://github.com/jkartseva)).
- Fix incorrect handling of settings `max_joined_block_size_rows` and `max_joined_block_size_bytes` during query plan serialization with experimental `make_distributed_plan`. [#87675](https://github.com/ClickHouse/ClickHouse/pull/87675) ([Vladimir Cherkasov](https://github.com/vdimir)).
- The setting `enable_http_compression` is now the default. This means that if a client accepts HTTP compression, the server will use it. However, this change has certain downsides. The client can request a heavy compression method, such as `bzip2`, which is unreasonable, and it will increase the resource consumption of the server (but this will be visible only when large results are transferred). The client can request `gzip`, which is not that bad, but suboptimal compared to `zstd`. Closes [#71591](https://github.com/ClickHouse/ClickHouse/issues/71591). [#87703](https://github.com/ClickHouse/ClickHouse/pull/87703) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Added a new setting `keeper_hosts` that exposes the list of [Zoo]Keeper hosts ClickHouse can connect to. [#87718](https://github.com/ClickHouse/ClickHouse/pull/87718) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
- Add `ALTER TABLE REWRITE PARTS` - rewrites the table parts from scratch, by using all new settings (since some, like `use_const_adaptive_granularity`, will be applied only for new parts). [#87774](https://github.com/ClickHouse/ClickHouse/pull/87774) ([Azat Khuzhin](https://github.com/azat)).
- Add `from` and `to` values to the system dashboards to facilitate historical investigations. [#87823](https://github.com/ClickHouse/ClickHouse/pull/87823) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
- Add more information for performance tracking in Iceberg SELECTs. [#87903](https://github.com/ClickHouse/ClickHouse/pull/87903) ([Daniil Ivanik](https://github.com/divanik)).
- Add new `joined_block_split_single_row` setting to reduce memory usage in hash joins with many matches per key. This allows hash join results to be chunked even within matches for a single left table row, which is particularly useful when one row from the left table matches thousands or millions of rows from the right table. Previously, all matches had to be materialized at once in memory. This reduces peak memory usage but may increase CPU usage. [#87913](https://github.com/ClickHouse/ClickHouse/pull/87913) ([Vladimir Cherkasov](https://github.com/vdimir)).
- Filesystem cache improvement: reuse cache priority iterator among threads concurrently reserving space in cache. [#87914](https://github.com/ClickHouse/ClickHouse/pull/87914) ([Kseniia Sumarokova](https://github.com/kssenii)).
- Add ability to limit requests for `Keeper` (`max_request_size` setting, same as `jute.maxbuffer` for `ZooKeeper`, default **OFF** for backward compatibility, will be set in the next releases). [#87952](https://github.com/ClickHouse/ClickHouse/pull/87952) ([Azat Khuzhin](https://github.com/azat)).
- Fix `clickhouse-benchmark` to not include stacktraces in error messages by default. [#87954](https://github.com/ClickHouse/ClickHouse/pull/87954) ([Ahmed Gouda](https://github.com/0xgouda)).
- Avoid utilizing thread pool asynchonous marks loading (`load_marks_asynchronously=1`) when marks are in cache (since the pool can be under pressure and queries will pay penalty for this even if the marks already in cache). [#87967](https://github.com/ClickHouse/ClickHouse/pull/87967) ([Azat Khuzhin](https://github.com/azat)).
- Ytsaurus: allow create table/table functions/dictionaries with subset of columns. [#87982](https://github.com/ClickHouse/ClickHouse/pull/87982) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).