2025 Changelog

#### New Feature[​](#new-feature-1 "Direct link to New Feature")

- Introduce `Geometry` type. Support reading `WKB` and `WKT` formats for it. In previous versions, the `Geometry` type was aliased to `String`, but now it is a full-featured type. [#83344](https://github.com/ClickHouse/ClickHouse/pull/83344) ([scanhex12](https://github.com/scanhex12)).
- 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 `naiveBayesClassifier` function to classify text using Naive Bayes based on ngrams. [#88677](https://github.com/ClickHouse/ClickHouse/pull/88677) ([Nihal Z. Miaji](https://github.com/nihalzp)).
- Add support for fractional `LIMIT` and `OFFSET` for selecting a fraction of a table. Closes [#81892](https://github.com/ClickHouse/ClickHouse/issues/81892). [#88755](https://github.com/ClickHouse/ClickHouse/pull/88755) ([Ahmed Gouda](https://github.com/0xgouda)).
- ClickHouse Subsystem for Microsoft OneLake catalog. [#89366](https://github.com/ClickHouse/ClickHouse/pull/89366) ([scanhex12](https://github.com/scanhex12)).
- 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)).
- 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)).
- 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)).
- 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)).
- User can now add a new argument `preprocessor` in text index construction. The argument is an arbitrary expression that transforms each document before tokenization. [#88272](https://github.com/ClickHouse/ClickHouse/pull/88272) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
- Adds a `memory_usage` field to `X-ClickHouse-Progress` and `X-ClickHouse-Summary`. This can be used to collect memory usage of queries in real time on the client side. [#88393](https://github.com/ClickHouse/ClickHouse/pull/88393) ([Christoph Wurm](https://github.com/cwurm)).
- Add setting `into_outfile_create_parent_directories` to automatically create parent directories for `INTO OUTFILE`, preventing errors when output paths do not exist. This simplifies workflows where queries write results to nested directories. Resolves [#88610](https://github.com/ClickHouse/ClickHouse/issues/88610). [#88795](https://github.com/ClickHouse/ClickHouse/pull/88795) ([Saksham](https://github.com/Saksham10-11)).
- 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 for `arrayRemove` to remove all elements equal to `elem` from the array `arr`. Which is only needed for compatibility with Postgres, as ClickHouse already has a way more powerful, `arrayFilter` function. 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)).
- Web UI now provides a download button. It downloads the full result even if the UI displays only part of it. [#89768](https://github.com/ClickHouse/ClickHouse/pull/89768) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Add `arrow_flight_request_descriptor_type` setting to support Dremio and other Arrow Flight servers that require command-style descriptors. Implements [#89523](https://github.com/ClickHouse/ClickHouse/issues/89523). [#89826](https://github.com/ClickHouse/ClickHouse/pull/89826) ([Shreyas Ganesh](https://github.com/shreyasganesh0)).
- New aggregate functions `argAndMin` and `argAndMax` that return the argument and the corresponding extreme value. In previous versions it was also possible by using a tuple as an argument. [#89884](https://github.com/ClickHouse/ClickHouse/pull/89884) ([AbdAlRahman Gad](https://github.com/AbdAlRahmanGad)).
- Settings to write and verify parquet checksums. [#79012](https://github.com/ClickHouse/ClickHouse/pull/79012) ([Michael Kolupaev](https://github.com/al13n321)).
- Added `kafka_schema_registry_skip_bytes` setting to Kafka table engine to skip envelope header bytes (e.g., AWS Glue Schema Registry's 19-byte prefix) before parsing message payload. This enables ClickHouse to consume messages from schema registries that add metadata headers. [#89621](https://github.com/ClickHouse/ClickHouse/pull/89621) ([Taras Polishchuk](https://github.com/wake-up-neo)).
- Add `h3PolygonToCells` function which can fill geometry with h3 hexagons. Resolves [#33991](https://github.com/ClickHouse/ClickHouse/issues/33991). [#66262](https://github.com/ClickHouse/ClickHouse/pull/66262) ([Zacharias Knudsen](https://github.com/zachasme)).
- Add new virtual column `_tags` (`Map(String, String)`) with all the tags associated with the blob in S3 (Note, if blob does not have any tags no extra request will be done). Resolves [#72945](https://github.com/ClickHouse/ClickHouse/issues/72945). [#77773](https://github.com/ClickHouse/ClickHouse/pull/77773) ([Zicong Qu](https://github.com/zicongleoqu)).

#### Experimental Feature[​](#experimental-feature-1 "Direct link to Experimental Feature")

- Support TLS certificates retrieval from ACME providers, [RFC 8555](https://datatracker.ietf.org/doc/html/rfc8555), such as Let's Encrypt. This allows the autoconfiguration of TLS on distributed clusters. [#66315](https://github.com/ClickHouse/ClickHouse/pull/66315) ([Konstantin Bogdanov](https://github.com/thevar1able)).
- Support 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)).
- Full-text search is now in beta (from a previously experimental stage). [#88928](https://github.com/ClickHouse/ClickHouse/pull/88928) ([Robert Schulze](https://github.com/rschu1ze)).
- Move `Alias` to experimental, can be enabled with `allow_experimental_alias_table_engine = 1`. [#89712](https://github.com/ClickHouse/ClickHouse/pull/89712) ([Kai Zhu](https://github.com/nauu)).

#### Performance Improvement[​](#performance-improvement-1 "Direct link to Performance Improvement")