Changelog 2026

- Fix LOGICAL\_ERROR "Trying to execute PLACEHOLDER action" when correlated columns from outer queries are referenced inside lambda functions such as `arrayMap`. [#98285](https://github.com/ClickHouse/ClickHouse/pull/98285) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix logical error exception in `caseWithExpression` when `CASE` expression involves `materialize(NULL)` or other `Nullable(Nothing)` arguments. [#98290](https://github.com/ClickHouse/ClickHouse/pull/98290) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix bad cast exception when filtering `_table` virtual column in `merge` table function. [#98291](https://github.com/ClickHouse/ClickHouse/pull/98291) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix sporadic deduplication failure where re-inserts were incorrectly deduplicated due to inconsistent cleanup ordering between `blocks/` and `deduplication_hashes/` ZooKeeper directories. [#98293](https://github.com/ClickHouse/ClickHouse/pull/98293) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix exception when `ORDER BY ... WITH FILL` is used together with `LIMIT BY`. [#98361](https://github.com/ClickHouse/ClickHouse/pull/98361) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix silent data corruption when inserting a Parquet/Arrow `Date` column into an `Enum` column — now properly rejects the incompatible type conversion instead of storing invalid enum values. [#98364](https://github.com/ClickHouse/ClickHouse/pull/98364) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix exception when reading an Arrow file with `Array` column into a table with `Nested` column. [#98365](https://github.com/ClickHouse/ClickHouse/pull/98365) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix `MATERIALIZE INDEX` and `MATERIALIZE PROJECTION` mutations getting stuck when the index or projection is dropped before the mutation finishes. [#98369](https://github.com/ClickHouse/ClickHouse/pull/98369) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix exception when reading from `Nullable(Tuple(...))` where a Tuple element name collides with the Nullable `null` subcolumn. [#98372](https://github.com/ClickHouse/ClickHouse/pull/98372) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix exception "Column ... query tree node does not have valid source node" when joining a `Merge` table (wrapping a `Distributed` table) with another table. [#98376](https://github.com/ClickHouse/ClickHouse/pull/98376) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix incorrect Parquet `Bool` to `FixedString` conversion in native V3 reader that produced raw bytes instead of string representation. [#98378](https://github.com/ClickHouse/ClickHouse/pull/98378) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix `tryGetColumnDescription` to filter subcolumns by parent column kind, consistent with other column lookup methods. [#98391](https://github.com/ClickHouse/ClickHouse/pull/98391) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Accept base64 credentials without padding in HTTP Basic Auth. Some HTTP clients omit trailing `=` padding in the `Authorization: Basic` header, which previously caused authentication failures. [#98392](https://github.com/ClickHouse/ClickHouse/pull/98392) ([Amos Bird](https://github.com/amosbird)).
- Fix incorrect partition pruning results after merging parts with `Nullable` partition key columns, caused by wrong min-max index bounds. [#98405](https://github.com/ClickHouse/ClickHouse/pull/98405) ([Amos Bird](https://github.com/amosbird)).
- Fix rare exception in the pipeline executor, that could manifest as a `Received signal 6` (only in debug builds), when pipeline expansion races with query cancellation. [#98428](https://github.com/ClickHouse/ClickHouse/pull/98428) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix exception "Column identifier is already registered" when `count_distinct_optimization` is used with a `QUALIFY` clause. [#98433](https://github.com/ClickHouse/ClickHouse/pull/98433) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix exception "cannot be inside Nullable type" when using `IN`/`NOT IN` with `LowCardinality` column arguments (e.g. `a NOT IN (b)` where `a` is `LowCardinality(String)`). [#98443](https://github.com/ClickHouse/ClickHouse/pull/98443) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix "Pipeline stuck" exception in `full_sorting_merge` joins caused by a deadlock in `PingPongProcessor` when the `FilterBySetOnTheFly` optimization created a circular dependency with `MergeJoinTransform`. [#98454](https://github.com/ClickHouse/ClickHouse/pull/98454) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix `LOGICAL_ERROR` exception "Projection cannot increase the number of rows in a block" when merging parts with TTL that deletes all rows and an aggregate projection with a constant `GROUP BY` key. [#98458](https://github.com/ClickHouse/ClickHouse/pull/98458) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix logical error exception when `CROSS JOIN` is used together with `INNER JOIN USING`. [#98459](https://github.com/ClickHouse/ClickHouse/pull/98459) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix null pointer dereference in `dictGetOrDefault` when the key argument is `Nullable`. [#98460](https://github.com/ClickHouse/ClickHouse/pull/98460) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix exception in `DISTINCT` queries when using aggregate projections and `materialize` causes `LowCardinality` type differences between the query and the projection. [#98462](https://github.com/ClickHouse/ClickHouse/pull/98462) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix LOGICAL\_ERROR exception when `arrayJoin` is used in a filter expression with OUTER JOIN and `join_use_nulls` enabled. [#98464](https://github.com/ClickHouse/ClickHouse/pull/98464) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix logical error exception "Replica decided to read in WithOrder mode, not in ReverseOrder" when using parallel replicas with `optimize_aggregation_in_order`. [#98467](https://github.com/ClickHouse/ClickHouse/pull/98467) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fixed ClickHouse Keeper disconnecting Java ZooKeeper clients after `addWatch` request. The Java client expects a 4-byte `ErrorResponse` body in the `addWatch` response, but Keeper was sending an empty body, causing `EOFException` and session disconnect. This broke Apache Curator's `CuratorCache` and any Java application using persistent watches. Fixes [#98079](https://github.com/ClickHouse/ClickHouse/issues/98079). [#98499](https://github.com/ClickHouse/ClickHouse/pull/98499) ([Antonio Andelic](https://github.com/antonio2368)).
- Fix `zk_followers` and `zk_synced_followers` Keeper metrics not decreasing when a follower goes down. Add new `zk_learners` and `zk_synced_non_voting_followers` metrics to the `mntr` four-letter-word command. Fixes [#54173](https://github.com/ClickHouse/ClickHouse/issues/54173). [#98504](https://github.com/ClickHouse/ClickHouse/pull/98504) ([Antonio Andelic](https://github.com/antonio2368)).
- Fix a LOGICAL\_ERROR exception in `renameAndCommitEmptyParts` that could occur when `TRUNCATE TABLE` runs concurrently with `OPTIMIZE TABLE` using MergeTree transactions. [#98508](https://github.com/ClickHouse/ClickHouse/pull/98508) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fixed Keeper's secure raft port ignoring `cipherList` and `dhParamsFile` from `openSSL` configuration, always using defaults instead of user-specified values. Close [#51188](https://github.com/ClickHouse/ClickHouse/issues/51188). [#98509](https://github.com/ClickHouse/ClickHouse/pull/98509) ([Antonio Andelic](https://github.com/antonio2368)).