Changelog 2026

- Fix `UNKNOWN_IDENTIFIER` exception when querying `merge()` table function or `Merge` engine over tables with JSON columns that have different parameters (e.g. different `SKIP` fields) and ALIAS columns referencing JSON sub-paths, with the new analyzer enabled. Closes [#97812](https://github.com/ClickHouse/ClickHouse/issues/97812). [#98753](https://github.com/ClickHouse/ClickHouse/pull/98753) ([Pavel Kruglov](https://github.com/Avogar)).
- Fix `optimize_skip_unused_shards` optimization with the analyzer in case `Distributed` storage is used in a `View`. [#98754](https://github.com/ClickHouse/ClickHouse/pull/98754) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
- Fix tuple subcolumn access by name (e.g. `SELECT x.a` for `Tuple(a UUID, b Int32)`) for external tables passed via `--external` in `clickhouse-client`. Closes [#96925](https://github.com/ClickHouse/ClickHouse/issues/96925). [#98755](https://github.com/ClickHouse/ClickHouse/pull/98755) ([Pavel Kruglov](https://github.com/Avogar)).
- Fix `reverseUTF8` exception on invalid (truncated) UTF-8 input. [#98770](https://github.com/ClickHouse/ClickHouse/pull/98770) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix detecting set skip index usefulness with OR with false (i.e. or(x, 0)) predicate. [#98776](https://github.com/ClickHouse/ClickHouse/pull/98776) ([Azat Khuzhin](https://github.com/azat)).
- Fix a `LOGICAL_ERROR` exception (Block structure mismatch in `removeUnusedColumns`) that could occur with `FINAL` + `PREWHERE` + constant `WHERE` expression + column-independent aggregates like `count()`. [#98778](https://github.com/ClickHouse/ClickHouse/pull/98778) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Make `system.trace_log` entries for ClickHouse dictionaries' auto-reloads have non-empty query IDs. [#98784](https://github.com/ClickHouse/ClickHouse/pull/98784) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
- Fixes a crash where we could de-reference a null pointer in system tables created between the time when we snapshot the tables in the `IDatabaseTablesIterator::table()` call and the tables changing in another thread during later iteration. [#98792](https://github.com/ClickHouse/ClickHouse/pull/98792) ([Grant Holly](https://github.com/grantholly-clickhouse)).
- Fix `SYSTEM START REPLICATED VIEW` not waking up the refresh task. [#98797](https://github.com/ClickHouse/ClickHouse/pull/98797) ([Pablo Marcos](https://github.com/pamarcos)).
- Fix exception "Inconsistent table names" when using `view()` table function containing JOINs inside another JOIN (only with old analyzer). [#98809](https://github.com/ClickHouse/ClickHouse/pull/98809) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix adjusting RLIMIT\_SIGPENDING (via pending\_signals). [#98829](https://github.com/ClickHouse/ClickHouse/pull/98829) ([Azat Khuzhin](https://github.com/azat)).
- Fix exception when composing `loop` with cluster table functions. [#98860](https://github.com/ClickHouse/ClickHouse/pull/98860) ([Konstantin Bogdanov](https://github.com/thevar1able)).
- LEFT ANTI JOIN with multiple join key columns returned wrong results when `enable_join_runtime_filters=1` (which is default). [#98871](https://github.com/ClickHouse/ClickHouse/pull/98871) ([Alexander Gololobov](https://github.com/davenger)).
- Fix `WITH FILL STALENESS` producing extra filled rows when data is read in multiple chunks (e.g., with small `index_granularity`). [#98895](https://github.com/ClickHouse/ClickHouse/pull/98895) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix "RPNBuilderFunctionTreeNode has A arguments, attempted to get argument at index B" LOGICAL\_ERROR. [#98900](https://github.com/ClickHouse/ClickHouse/pull/98900) ([Azat Khuzhin](https://github.com/azat)).
- Fix memory tracking drift caused by failed allocations not being rolled back, `nallocx(0)` undefined behavior, and off-by-one in global peak tracking. Extend tracking to cover `io_uring` ring buffers. [#98915](https://github.com/ClickHouse/ClickHouse/pull/98915) ([Antonio Andelic](https://github.com/antonio2368)).
- Forbid attaching to local data lake tables outside user paths, not only creating them. [#98936](https://github.com/ClickHouse/ClickHouse/pull/98936) ([Daniil Ivanik](https://github.com/divanik)).
- Fix a race condition that could cause a "ReadBuffer is canceled" exception in queries using `urlCluster` or similar cluster table functions. [#98955](https://github.com/ClickHouse/ClickHouse/pull/98955) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix `LOGICAL_ERROR` exception in financial functions (`financialNetPresentValue`, `financialInternalRateOfReturn`, etc.) when `BFloat16` type arguments are passed. [#98958](https://github.com/ClickHouse/ClickHouse/pull/98958) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix skip indexes (and primary key conditions) not being applied for ALIAS columns when query plan expression merging is disabled (query\_plan\_merge\_expressions = 0 or query\_plan\_enable\_optimizations = 0). [#98960](https://github.com/ClickHouse/ClickHouse/pull/98960) ([Peng](https://github.com/fastio)).
- Increment `InsertQuery` ProfileEvent for async inserts. Closes [#98626](https://github.com/ClickHouse/ClickHouse/issues/98626). [#98962](https://github.com/ClickHouse/ClickHouse/pull/98962) ([Narasimha Pakeer](https://github.com/npakeer)).
- Fix exception "Inconsistent KeyCondition behavior" in debug builds when primary key contains NaN float values, by making `accurateLess` and `accurateEquals` handle NaN consistently with ClickHouse sort order. Closes [#98075](https://github.com/ClickHouse/ClickHouse/issues/98075). [#98964](https://github.com/ClickHouse/ClickHouse/pull/98964) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- SummingMergeTree no longer sums Bool (and other domain type) columns. Bool values are kept as-is instead of being arithmetically summed. [#98976](https://github.com/ClickHouse/ClickHouse/pull/98976) ([Yash](https://github.com/Onyx2406) ).
- Fixes an exception Scalar doesn't exist that occurred when querying a remote shard with `optimize_const_name_size` set and `enable_scalar_subquery_optimization` = 0. Large constants replaced with `__getScalar` references in the remote query were not being sent to the shard, causing the query to fail. [#98979](https://github.com/ClickHouse/ClickHouse/pull/98979) ([andriibeee](https://github.com/andriibeee)).
- Fix `NOT_FOUND_COLUMN_IN_BLOCK` for some queries with `GROUP BY` and expressions that include inverse dictionary lookup, `Date/DateTime` conversion comparisons, and tuple comparisons. Closes [#98888](https://github.com/ClickHouse/ClickHouse/issues/98888). [#98980](https://github.com/ClickHouse/ClickHouse/pull/98980) ([Nihal Z. Miaji](https://github.com/nihalzp)).
- Fixed undefined behavior (null pointer dereference) when altering a version/sign/is\_deleted column to `EPHEMERAL` or `ALIAS` in MergeTree engines. Such alterations are now properly rejected. [#98985](https://github.com/ClickHouse/ClickHouse/pull/98985) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fixed an issue where `system.grants` omitted the regular expression parameters for `URL` and `S3` grants in the `access_object` column. [#98987](https://github.com/ClickHouse/ClickHouse/pull/98987) ([DQ](https://github.com/il9ue)).
- Fixed Iceberg BigLake reads: ADC credentials are now forwarded to the GCS S3 client (fixing 403 errors), OAuth2 credentials are URL-encoded before sending (fixing auth failures for tokens with special characters), and namespace traversal no longer aborts on BigLake HTTP 400 responses. [#98998](https://github.com/ClickHouse/ClickHouse/pull/98998) ([Nikita Fomichev](https://github.com/fm4v)).
- Fixed `clickhouse-client` failing to switch timezone when `TZ` environment variable uses POSIX file path syntax (e.g. `TZ=:/etc/localtime`). [#99000](https://github.com/ClickHouse/ClickHouse/pull/99000) ([Yash](https://github.com/Onyx2406) ).