title_wip

[Edit this page](https://github.com/ClickHouse/clickhouse-docs/blob/main/docs/whats-new/changelog/2024.md)

### Table of Contents[​](#table-of-contents "Direct link to Table of Contents")

**[ClickHouse release v24.12, 2024-12-19](/docs/whats-new/changelog/2024#a-id2412a-clickhouse-release-2412-2024-12-19)**  
**[ClickHouse release v24.11, 2024-11-26](/docs/whats-new/changelog/2024#a-id2411a-clickhouse-release-2411-2024-11-26)**  
**[ClickHouse release v24.10, 2024-10-31](/docs/whats-new/changelog/2024#a-id2410a-clickhouse-release-2410-2024-10-31)**  
**[ClickHouse release v24.9, 2024-09-26](/docs/whats-new/changelog/2024#a-id249a-clickhouse-release-249-2024-09-26)**  
**[ClickHouse release v24.8 LTS, 2024-08-20](/docs/whats-new/changelog/2024#a-id248a-clickhouse-release-248-lts-2024-08-20)**  
**[ClickHouse release v24.7, 2024-07-30](/docs/whats-new/changelog/2024#a-id247a-clickhouse-release-247-2024-07-30)**  
**[ClickHouse release v24.6, 2024-07-01](/docs/whats-new/changelog/2024#a-id246a-clickhouse-release-246-2024-07-01)**  
**[ClickHouse release v24.5, 2024-05-30](/docs/whats-new/changelog/2024#a-id245a-clickhouse-release-245-2024-05-30)**  
**[ClickHouse release v24.4, 2024-04-30](/docs/whats-new/changelog/2024#a-id244a-clickhouse-release-244-2024-04-30)**  
**[ClickHouse release v24.3 LTS, 2024-03-26](/docs/whats-new/changelog/2024#a-id243a-clickhouse-release-243-lts-2024-03-27)**  
**[ClickHouse release v24.2, 2024-02-29](/docs/whats-new/changelog/2024#a-id242a-clickhouse-release-242-2024-02-29)**  
**[ClickHouse release v24.1, 2024-01-30](/docs/whats-new/changelog/2024#a-id241a-clickhouse-release-241-2024-01-30)**  
**[Changelog for 2023](/docs/whats-new/changelog/2023)**

### ClickHouse release 24.12, 2024-12-19. [Presentation](https://presentations.clickhouse.com/2024-release-24.12/), [Video](https://www.youtube.com/watch?v=bv-ut-Q6vnc)[​](#a-id2412a-clickhouse-release-2412-2024-12-19 "Direct link to a-id2412a-clickhouse-release-2412-2024-12-19")

#### Backward Incompatible Change[​](#backward-incompatible-change "Direct link to Backward Incompatible Change")

- Functions `greatest` and `least` now ignore NULL input values, whereas they previously returned NULL if one of the arguments was NULL. For example, `SELECT greatest(1, 2, NULL)` now returns 2. This makes the behavior compatible with PostgreSQL, but at the same time it breaks the compatibility with MySQL which returns NULL. To retain the previous behavior, set setting `least_greatest_legacy_null_behavior` (default: `false`) to `true`. [#65519](https://github.com/ClickHouse/ClickHouse/pull/65519) [#73344](https://github.com/ClickHouse/ClickHouse/pull/73344) ([kevinyhzou](https://github.com/KevinyhZou)).
- A new MongoDB integration is now the default. Users who like to use the legacy MongoDB driver (based on the Poco driver) can enable server setting `use_legacy_mongodb_integration`. [#73359](https://github.com/ClickHouse/ClickHouse/pull/73359) ([Kirill Nikiforov](https://github.com/allmazz).

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

- Move `JSON`/`Dynamic`/`Variant` types from experimental features to beta. [#72294](https://github.com/ClickHouse/ClickHouse/pull/72294) ([Pavel Kruglov](https://github.com/Avogar)). We also backported all fixes as well as this change to 24.11.
- Schema evolution for the [Iceberg data storage](https://iceberg.apache.org/spec/#file-system-operations) format provides the user with extensive options for modifying the schema of their table. The order of columns, column names, and simple type extensions can be changed under the hood. [#69445](https://github.com/ClickHouse/ClickHouse/pull/69445) ([Daniil Ivanik](https://github.com/divanik)).
- Integrate with Iceberg REST Catalog: a new database engine, named Iceberg, which plugs the whole catalog into ClickHouse. [#71542](https://github.com/ClickHouse/ClickHouse/pull/71542) ([Kseniia Sumarokova](https://github.com/kssenii)).
- Added cache for primary index of `MergeTree` tables (can be enabled by table setting `use_primary_key_cache`). If lazy load and cache are enabled for primary index, it will be loaded to cache on demand (similar to mark cache) instead of keeping it in memory forever. Added prewarm of primary index on inserts/mergs/fetches of data parts and on restarts of table (can be enabled by setting `prewarm_primary_key_cache`). This allows lower memory usage for huge tables on shared storage, and we tested it on tables over one quadrillion records. [#72102](https://github.com/ClickHouse/ClickHouse/pull/72102) ([Anton Popov](https://github.com/CurtizJ)). [#72750](https://github.com/ClickHouse/ClickHouse/pull/72750) ([Alexander Gololobov](https://github.com/davenger)).
- Implement `SYSTEM LOAD PRIMARY KEY` command to load primary indexes for all parts of a specified table or for all tables if no table is specified. This will be useful for benchmarks and to prevent extra latency during query execution. [#66252](https://github.com/ClickHouse/ClickHouse/pull/66252) [#67733](https://github.com/ClickHouse/ClickHouse/pull/67733) ([ZAWA\_ll](https://github.com/Zawa-ll)).
- Added a query that allows to attach `MergeTree` tables as `ReplicatedMergeTree` and vice versa: `ATTACH TABLE ... AS REPLICATED` and `ATTACH TABLE ... AS NOT REPLICATED`. [#65401](https://github.com/ClickHouse/ClickHouse/pull/65401) ([Kirill](https://github.com/kirillgarbar)).
- A new setting, `http_response_headers` which allows you to customize the HTTP response headers. For example, you can tell the browser to render a picture that is stored in the database. This closes [#59620](https://github.com/ClickHouse/ClickHouse/issues/59620). [#72656](https://github.com/ClickHouse/ClickHouse/pull/72656) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Add function `toUnixTimestamp64Second` which converts a `DateTime64` to a `Int64` value with fixed second precision, so we can support return negative value if date is before the unix epoch. [#70597](https://github.com/ClickHouse/ClickHouse/pull/70597) ([zhanglistar](https://github.com/zhanglistar)). [#73146](https://github.com/ClickHouse/ClickHouse/pull/73146) ([Robert Schulze](https://github.com/rschu1ze)).
- Add new setting `enforce_index_structure_match_on_partition_manipulation` to allow attach when the set of source table's projections and secondary indices is a subset of those in the target table. Close [#70602](https://github.com/ClickHouse/ClickHouse/issues/70602). [#70603](https://github.com/ClickHouse/ClickHouse/pull/70603) ([zwy991114](https://github.com/zwy991114)).
- Add syntax ALTER USER `{ADD|MODIFY|DROP SETTING}`, ALTER USER `{ADD|DROP PROFILE}`, the same for ALTER ROLE and ALTER PROFILE. So instead of replacing all the set of settings, you can modify it. [#72050](https://github.com/ClickHouse/ClickHouse/pull/72050) ([pufit](https://github.com/pufit)).
- Added `arrayPRAUC` function, which calculates the AUC (Area Under the Curve) for the Precision Recall curve. [#72073](https://github.com/ClickHouse/ClickHouse/pull/72073) ([Emmanuel](https://github.com/emmanuelsdias)).
- Add `indexOfAssumeSorted` function for array types. Optimizes the search in the case of a sorted in non-decreasing order array. The effect appears on very large arrays (over 100,000 elements). [#72517](https://github.com/ClickHouse/ClickHouse/pull/72517) ([Eric Kurbanov](https://github.com/erickurbanov)).
- Allows to use a delimiter as an optional second argument for aggregate function `groupConcat`. [#72540](https://github.com/ClickHouse/ClickHouse/pull/72540) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
- Function `translate` now supports character deletion if the `from` argument contains more characters than the `to` argument. Example: `SELECT translate('clickhouse', 'clickhouse', 'CLICK')` now returns `CLICK`. [#71441](https://github.com/ClickHouse/ClickHouse/pull/71441) ([shuai.xu](https://github.com/shuai-xu)).

#### Experimental Features[​](#experimental-features "Direct link to Experimental Features")