Changelog 2026

- 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) ).
- Fix incorrect or less pruning when `startsWith`, `LIKE`, `NOT LIKE` used with `FixedString` column. Additionally, `FixedString` to `String` cast function can now prune granules when wrapped around key column. Closes [#98940](https://github.com/ClickHouse/ClickHouse/issues/98940). [#99001](https://github.com/ClickHouse/ClickHouse/pull/99001) ([Nihal Z. Miaji](https://github.com/nihalzp)).
- Fixed `windowFunnel` with `strict_deduplication` returning incorrect level when a duplicate event was encountered. [#99003](https://github.com/ClickHouse/ClickHouse/pull/99003) ([Yash](https://github.com/Onyx2406) ).
- Fixes a bug where EXISTS would ignore LIMIT and OFFSET clauses in subqueries, causing incorrect results when the subquery returned no rows due to an offset or a zero limit. Closes [#88722](https://github.com/ClickHouse/ClickHouse/issues/88722). [#99005](https://github.com/ClickHouse/ClickHouse/pull/99005) ([andriibeee](https://github.com/andriibeee)).
- Fix "Block structure mismatch" exception when filter push-down optimization encounters an AND expression that short-circuits to a constant with `GROUPING SETS`. [#99010](https://github.com/ClickHouse/ClickHouse/pull/99010) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix exception when reading patch parts (lightweight updates) without `_part_offset` column in the query plan. [#99023](https://github.com/ClickHouse/ClickHouse/pull/99023) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- A query like `SELECT * FROM table WHERE pk_id = ''` where `pk_id` is the primary key and of `String` type will now correctly use the primary key index for filtering granules. [#99027](https://github.com/ClickHouse/ClickHouse/pull/99027) ([Shankar Iyer](https://github.com/shankar-iyer)).
- Fix `DEPENDENCIES_NOT_FOUND` exception in Kafka engine when materialized view is detached while the background thread is streaming data. [#99028](https://github.com/ClickHouse/ClickHouse/pull/99028) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix exception when creating a table with an `EPHEMERAL` column that has the same name as a virtual column (e.g., `_part_offset`). [#99031](https://github.com/ClickHouse/ClickHouse/pull/99031) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix misleading "inflate failed: buffer error" when reading non-existent compressed files via `url()` table function with glob patterns. Now returns empty result as expected when `http_skip_not_found_url_for_globs` is enabled. [#99034](https://github.com/ClickHouse/ClickHouse/pull/99034) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix server crash (std::terminate) when executing `ALTER TABLE ... DROP PART` on a patch part after a schema change (e.g. ADD COLUMN). The crash was caused by missing system columns (`_part`) in the empty coverage part metadata, leading to an uncaught exception inside a NOEXCEPT\_SCOPE. [#99036](https://github.com/ClickHouse/ClickHouse/pull/99036) ([Peng](https://github.com/fastio)).
- ClickHouse server process could crash if there was a memory limit exceeded exception thrown during a *cached disk read*. That is now fixed. [#99042](https://github.com/ClickHouse/ClickHouse/pull/99042) ([Shankar Iyer](https://github.com/shankar-iyer)).
- Fix `LOGICAL_ERROR` when querying a table that has both a ROW POLICY and an ALIAS column using `dictGet`. The issue was caused by premature access to the table expression during ALIAS column resolution in the new analyzer. [#99065](https://github.com/ClickHouse/ClickHouse/pull/99065) ([Peng](https://github.com/fastio)).
- Fix out of bounds error when user tries to query only virtual columns from Iceberg table with Avro format for data. It's super rare scenario so not marking it as critical. Fixes [#88238](https://github.com/ClickHouse/ClickHouse/issues/88238). [#99080](https://github.com/ClickHouse/ClickHouse/pull/99080) ([alesapin](https://github.com/alesapin)).
- Fix segfault in recursive CTE with `remote()` + `view()`. [#99081](https://github.com/ClickHouse/ClickHouse/pull/99081) ([Konstantin Bogdanov](https://github.com/thevar1able)).
- Skip unnecessary extra index analysis when read-in-order optimization is applied. [#99084](https://github.com/ClickHouse/ClickHouse/pull/99084) ([Vladimir Cherkasov](https://github.com/vdimir)).
- Fixed a crash triggered by a memory limit exception thrown during patch part application. [#99086](https://github.com/ClickHouse/ClickHouse/pull/99086) ([Anton Popov](https://github.com/CurtizJ)).
- Fix debug assertion in `DDLWorker` caused by stale `first_failed_task_name` after a ZooKeeper entry is deleted during reinitialization recovery. [#99099](https://github.com/ClickHouse/ClickHouse/pull/99099) ([Antonio Andelic](https://github.com/antonio2368)).
- Fixed rebuild of text indexes on merges with TTL. [#99107](https://github.com/ClickHouse/ClickHouse/pull/99107) ([Anton Popov](https://github.com/CurtizJ)).
- Fix crash in `ALTER TABLE ... REMOVE SETTINGS` query for Iceberg table engine. Fixes [#86330](https://github.com/ClickHouse/ClickHouse/issues/86330). [#99108](https://github.com/ClickHouse/ClickHouse/pull/99108) ([alesapin](https://github.com/alesapin)).
- Fixes a bug in `query_plan_convert_any_join_to_semi_or_anti_join` optimization, returning an incorrect result for unmatched rows. Related: <https://github.com/ClickHouse/ClickHouse/pull/95995>. [#99112](https://github.com/ClickHouse/ClickHouse/pull/99112) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
- Fix LOGICAL\_ERROR exception in `ASTColumnsExceptTransformer::transform`. [#99119](https://github.com/ClickHouse/ClickHouse/pull/99119) ([Pablo Marcos](https://github.com/pamarcos)).
- Fix RBAC bypass that allowed users to obtain table structure via `DESCRIBE TABLE` or `CREATE TABLE AS` on table functions (`mysql()`, `postgresql()`, `sqlite()`, `arrowFlight()`, `jdbc()`, `odbc()`, etc.) without the required source access privileges. For functions that infer schema from remote servers, this also allowed triggering outbound connections (SSRF) without authorization. [#99122](https://github.com/ClickHouse/ClickHouse/pull/99122) ([pufit](https://github.com/pufit)).
- Fix Keeper crash (segfault in NuRaft) during dynamic reconfiguration and leadership transfer. [#99133](https://github.com/ClickHouse/ClickHouse/pull/99133) ([JIaQi Tang](https://github.com/JiaQiTang98)).
- Fix crash on usage of Buffer table with SAMPLE when destination does not support it. [#99141](https://github.com/ClickHouse/ClickHouse/pull/99141) ([Kseniia Sumarokova](https://github.com/kssenii)).
- Fix LOGICAL\_ERROR due to patch parts column order mismatch. [#99164](https://github.com/ClickHouse/ClickHouse/pull/99164) ([Pablo Marcos](https://github.com/pamarcos)).
- Fix very rare crash when Iceberg table contains files of mixed format (ORC and Parquet). Fixes [#88126](https://github.com/ClickHouse/ClickHouse/issues/88126). [#99168](https://github.com/ClickHouse/ClickHouse/pull/99168) ([alesapin](https://github.com/alesapin)).
- Fix max\_execution\_time not being applied for backup/restore. [#99205](https://github.com/ClickHouse/ClickHouse/pull/99205) ([Kseniia Sumarokova](https://github.com/kssenii)).