Changelog 2026

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

### ClickHouse release 26.3 LTS, 2026-03-26. [Presentation](https://presentations.clickhouse.com/), [Video](https://www.youtube.com/watch?v=_bY0ucNB1lQ)[​](#263 "Direct link to 263")

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

- Downgrading after upgrading may cause data loss. Propagate data types serialization versions to nested data types. For example, String serialization version `with_size_stream` previously was applied only on top-level String columns and Tuple elements. Now it's applied to any String type inside any nested type like `Array`/`Map`/`Variant`/`JSON`/etc. This behaviour is controlled by MergeTree setting `propagate_types_serialization_versions_to_nested_types` that is now enabled by default. After this change, newly created data parts cannot be read by older versions, but old parts can be read on new version with no problems. **Upgrade is safe, but downgrade is not — if you need to roll back after upgrading to 26.3, data written by 26.3 in columns with nested types will be unreadable!** See [#101429](https://github.com/ClickHouse/ClickHouse/issues/101429) for details. [#94859](https://github.com/ClickHouse/ClickHouse/pull/94859) ([Pavel Kruglov](https://github.com/Avogar)).
- Remove the `hypothesis` skip index type. It was an obscure, experimental feature with limited practical use. Creating tables with `INDEX ... TYPE hypothesis` will now produce an error. [#96874](https://github.com/ClickHouse/ClickHouse/pull/96874) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Remove the experimental `detectProgrammingLanguage` function. [#99567](https://github.com/ClickHouse/ClickHouse/pull/99567) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix `NOT` operator precedence to match the SQL standard: `NOT` now binds looser than `IS NULL`, `BETWEEN`, `LIKE`, and arithmetic operators. For example, `NOT (x) IS NULL` is now parsed as `NOT (x IS NULL)` instead of `(NOT x) IS NULL`. This may change the result of queries that relied on the previous (non-standard) behavior. [#97680](https://github.com/ClickHouse/ClickHouse/pull/97680) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Corrects the metadata of normal projections so that projections with multi-column sorting keys are properly recognized. Builds on top of [#90429](https://github.com/ClickHouse/ClickHouse/issues/90429). [#91352](https://github.com/ClickHouse/ClickHouse/pull/91352) ([Amos Bird](https://github.com/amosbird)).
- Fixed skip index files not respecting replace\_long\_file\_name\_to\_hash setting, causing "File name too long" errors and broken index reads for indices with long names. Skip index filenames are now hashed when they exceed max\_file\_name\_length, similar to column files. This is backward compatible (new servers read old parts), but downgrading (or old servers during a rolling upgrade) may cause long-named indices to be ignored. [#97128](https://github.com/ClickHouse/ClickHouse/pull/97128) ([Raúl Marín](https://github.com/Algunenano)).
- Turn on async insert by default. ClickHouse will be batching all small inserts by default now. This setting is set under compatibility. If you set `compatibility=<version less than 26.2>` then default value would be the previous one, `false`. You can turn off/on async inserts at several levels: in the config in users profiles, for the session, for the query, or for the MergeTree table. [#97590](https://github.com/ClickHouse/ClickHouse/pull/97590) ([Sema Checherinda](https://github.com/CheSema)).
- Change the default value of `mysql_datatypes_support_level` from empty to `decimal,datetime64,date2Date32`, enabling proper mapping of MySQL `DATE` to `Date32`, `DECIMAL`/`NUMERIC` to `Decimal`, and `DATETIME`/`TIMESTAMP` with precision to `DateTime64` by default. Previously, MySQL `DATE` columns were mapped to `Date` which cannot represent dates before 1970-01-01, causing data corruption. [#97716](https://github.com/ClickHouse/ClickHouse/pull/97716) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Accept array of part names instead of regexp for `mergeTreeAnalyzeIndexes{,UUID}` since regexp is slow (*Experimental feature*). [#98474](https://github.com/ClickHouse/ClickHouse/pull/98474) ([Azat Khuzhin](https://github.com/azat)).
- Change default `stderr_reaction` from `throw` to `log_last` for executable UDFs. UDFs that write warnings to stderr no longer fail when exit code is 0. Exit code exceptions now include stderr content. [#99232](https://github.com/ClickHouse/ClickHouse/pull/99232) ([Xu Jia](https://github.com/XuJia0210)).

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