v25.12 Changelog for Cloud

### Other breaking changes[​](#other-breaking-changes "Direct link to Other breaking changes")

- Fix `Fatal` when compressing data with size not aligned to element size (in T64 codec). Resolves [#89282](https://github.com/ClickHouse/ClickHouse/issues/89282). [#89432](https://github.com/ClickHouse/ClickHouse/pull/89432) ([yanglongwei](https://github.com/ylw510)).

## New Features[​](#new-features "Direct link to New Features")

### Functions[​](#functions "Direct link to Functions")

- Added new SQL statement EXECUTE AS to support user impersonation. Resolves [#39048](https://github.com/ClickHouse/ClickHouse/issues/39048). [#70775](https://github.com/ClickHouse/ClickHouse/pull/70775) ([Shankar](https://github.com/shiyer7474)).
- Add `flipCoordinates` function that unwraps the required number of dimensions in an array and swaps pointers inside the Tuple column. Resolves [#79469](https://github.com/ClickHouse/ClickHouse/issues/79469). [#79634](https://github.com/ClickHouse/ClickHouse/pull/79634) ([Sachin Kumar Singh](https://github.com/sachinkumarsingh092)).
- Enhanced `IS NOT DISTINCT FROM` (`<=>`) operator: added support for inverse `IS DISTINCT FROM`, support compatible numeric operands of different types (e.g., `Nullable(UInt32)` and `Nullable(Int64)`). [#87581](https://github.com/ClickHouse/ClickHouse/pull/87581) ([yanglongwei](https://github.com/ylw510)).
- Added support for the `cume_dist` window function. Fixes [#86920](https://github.com/ClickHouse/ClickHouse/issues/86920). [#88102](https://github.com/ClickHouse/ClickHouse/pull/88102) ([Manuel](https://github.com/raimannma)).
- Functions to calculate area and perimeter for the geometry type. [#89047](https://github.com/ClickHouse/ClickHouse/pull/89047) ([Konstantin Vedernikov](https://github.com/scanhex12)).
- Implement `dictGetKeys` function that returns the dictionary keys whose attribute equals the specified value. It uses a per-query reverse-lookup cache, tuned by the `max_reverse_dictionary_lookup_cache_size_bytes` setting, to speed up repeated lookups. [#89197](https://github.com/ClickHouse/ClickHouse/pull/89197) ([Nihal Z. Miaji](https://github.com/nihalzp)).
- Support for `arrayRemove(arr, elem)` to remove all elements equal to `elem` from the array `arr`. Resolves [#52099](https://github.com/ClickHouse/ClickHouse/issues/52099). [#89585](https://github.com/ClickHouse/ClickHouse/pull/89585) ([tiwarysaurav](https://github.com/tiwarysaurav)).
- Introduces `midpoint` scalar function that calculates average. Resolves [#89029](https://github.com/ClickHouse/ClickHouse/issues/89029). [#89679](https://github.com/ClickHouse/ClickHouse/pull/89679) ([simonmichal](https://github.com/simonmichal)).
- You can now retrieve both the argument and its corresponding minimum or maximum value using the new `argAndMin` and `argAndMax` functions. [#89884](https://github.com/ClickHouse/ClickHouse/pull/89884) ([AbdAlRahman Gad](https://github.com/AbdAlRahmanGad)).
- Add `HMAC(algorithm, message, key)` sql function as a part of [#73900](https://github.com/ClickHouse/ClickHouse/issues/73900) and [#38775](https://github.com/ClickHouse/ClickHouse/issues/38775). [#90837](https://github.com/ClickHouse/ClickHouse/pull/90837) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
- Add support for `has()` function to use primary key and data skipping indexes when the first argument is a constant array. Closes [#90980](https://github.com/ClickHouse/ClickHouse/issues/90980). [#91023](https://github.com/ClickHouse/ClickHouse/pull/91023) ([Nihal Z. Miaji](https://github.com/nihalzp)).

### System tables[​](#system-tables "Direct link to System tables")

- Add `system.unicode` table, containing a list of Unicode characters and their properties. Closes [#80055](https://github.com/ClickHouse/ClickHouse/issues/80055). [#80857](https://github.com/ClickHouse/ClickHouse/pull/80857) ([wxybear](https://github.com/wxybear)).
- Added a new system table `shared_merge_tree_condemned_parts` similar to `shared_merge_tree_outdated_parts`, which lists the condemned parts about to be killed by PartsKillerThread. ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).

### Table engines and storage[​](#table-engines-and-storage "Direct link to Table engines and storage")

- Support for a part of the Prometheus HTTP Query API. To enable it, add a rule with type `query_api` in the `<prometheus>` section in the configuration file. Supported handlers are `/api/v1/query_range` and `/api/v1/query`. [#86132](https://github.com/ClickHouse/ClickHouse/pull/86132) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
- Users can now configure S3/Azure Queue tables to move or tag processed files, in addition to the previous options to keep or remove files. Resolves [#72944](https://github.com/ClickHouse/ClickHouse/issues/72944). [#86907](https://github.com/ClickHouse/ClickHouse/pull/86907) ([Murat Khairulin](https://github.com/mxwell)).
- Add a new MergeTree setting `merge_max_dynamic_subcolumns_in_wide_part` to be able to limit the number of dynamic subcolumns in the Wide part after merge regardless of the parameters specified in the data type. [#87646](https://github.com/ClickHouse/ClickHouse/pull/87646) ([Pavel Kruglov](https://github.com/Avogar)).
- Microsoft OneLake catalog integration. [#89366](https://github.com/ClickHouse/ClickHouse/pull/89366) ([Konstantin Vedernikov](https://github.com/scanhex12)).
- Support `CREATE OR REPLACE` syntax for temporary tables. Closes [#35888](https://github.com/ClickHouse/ClickHouse/issues/35888). [#89450](https://github.com/ClickHouse/ClickHouse/pull/89450) ([Aleksandr Musorin](https://github.com/AVMusorin)).
- Support `direct` (nested loop) join for MergeTree tables. To use it, specify it as the single option in the setting: `join_algorithm = 'direct'`. [#89920](https://github.com/ClickHouse/ClickHouse/pull/89920) ([Vladimir Cherkasov](https://github.com/vdimir)).
- This PR introduces projection-level settings, exposed through the new `WITH SETTINGS` clause in `ALTER TABLE ... ADD PROJECTION`. These settings allow projections to override certain MergeTree storage parameters (e.g. index\_granularity, index\_granularity\_bytes) on a per-projection basis. [#90158](https://github.com/ClickHouse/ClickHouse/pull/90158) ([Amos Bird](https://github.com/amosbird)).

### Iceberg and data lakes[​](#iceberg-and-data-lakes "Direct link to Iceberg and data lakes")

- Support `ORDER BY` in `CREATE` operation for iceberg + sorting in `INSERT`. Resolves [#89916](https://github.com/ClickHouse/ClickHouse/issues/89916). [#90141](https://github.com/ClickHouse/ClickHouse/pull/90141) ([Konstantin Vedernikov](https://github.com/scanhex12)).

### SQL and query features[​](#sql-and-query-features "Direct link to SQL and query features")