Changelog 2026

- 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)).
- Fixed misleading Keeper log messages like "Receiving request for session X took 9963 ms" where the reported time was actually spent waiting idle in `poll()` between heartbeats, not performing the operation itself. Fixes [#79026](https://github.com/ClickHouse/ClickHouse/issues/79026). [#98510](https://github.com/ClickHouse/ClickHouse/pull/98510) ([Antonio Andelic](https://github.com/antonio2368)).
- Fix unexpected result with read\_in\_order\_use\_virtual\_row and monotonic functions, close [#97837](https://github.com/ClickHouse/ClickHouse/issues/97837). [#98514](https://github.com/ClickHouse/ClickHouse/pull/98514) ([Vladimir Cherkasov](https://github.com/vdimir)).
- Fix `LOGICAL_ERROR: Not-ready Set is passed as the second argument for function 'in'` when using `PREWHERE` with `IN` subquery on MergeTree tables. [#98522](https://github.com/ClickHouse/ClickHouse/pull/98522) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix Keeper TCP connections preventing graceful server shutdown by not responding to shutdown signal. [#98525](https://github.com/ClickHouse/ClickHouse/pull/98525) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix exception "Sorting column wasn't found in the ActionsDAG's outputs" when `query_plan_convert_join_to_in` is enabled with `query_plan_merge_expressions = 0`. [#98526](https://github.com/ClickHouse/ClickHouse/pull/98526) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix MongoDB dictionary source failing with named collections. Closes [#97840](https://github.com/ClickHouse/ClickHouse/issues/97840). [#98528](https://github.com/ClickHouse/ClickHouse/pull/98528) ([Pablo Marcos](https://github.com/pamarcos)).
- Fixed LOGICAL\_ERROR when Identifier is empty after parameter substitution. [#98530](https://github.com/ClickHouse/ClickHouse/pull/98530) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
- Fix pipeline deadlock when using `sort_overflow_mode = 'break'` together with window functions. [#98543](https://github.com/ClickHouse/ClickHouse/pull/98543) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix column rollback in Buffer engine during handling an exception during appending a new block. Old logic could lead to corrupted in-memory state of columns. [#98551](https://github.com/ClickHouse/ClickHouse/pull/98551) ([Pavel Kruglov](https://github.com/Avogar)).
- Fixed exception `Bad cast from type ColumnConst to ColumnDynamic` in null-safe comparison (`<=>` / `IS NOT DISTINCT FROM`) with const `Dynamic` or `Variant` columns and `NULL`. Also fixed `IS DISTINCT FROM` with `Dynamic`/`Variant` vs `NULL` always incorrectly returning 0. [#98553](https://github.com/ClickHouse/ClickHouse/pull/98553) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fixed usage of the text index with other skip indexes. Previously, logical errors such as "Trying to get non-existing mark" could be thrown when a query filter utilized a text index and other regular skip indexes simultaneously. [#98555](https://github.com/ClickHouse/ClickHouse/pull/98555) ([Anton Popov](https://github.com/CurtizJ)).
- Fix logical error "TABLE\_FUNCTION is not allowed in expression context" when a table function with an alias appears multiple times in the same query scope (e.g. in both `PREWHERE` and `QUALIFY` clauses). [#98557](https://github.com/ClickHouse/ClickHouse/pull/98557) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix distributed index analysis with expressions (not just columns) in PK (leads to zero filtering of redundant granules on remote replicas). [#98561](https://github.com/ClickHouse/ClickHouse/pull/98561) ([Azat Khuzhin](https://github.com/azat)).
- Disallow dropping column when its subcolumns are used in other columns default/alias expressions and use analyzer for default expressions on alter drop column. [#98569](https://github.com/ClickHouse/ClickHouse/pull/98569) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
- Fix S3 requests being incorrectly retried on non-retryable errors (including `HTTP_CONNECTION_LIMIT_REACHED`) in the HTTP client. [#98598](https://github.com/ClickHouse/ClickHouse/pull/98598) ([Sema Checherinda](https://github.com/CheSema)).
- Fixes a decimal overflow when partition pruning with DateTime64. [#98628](https://github.com/ClickHouse/ClickHouse/pull/98628) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
- Fix two bugs in JIT expression compilation: a copy-paste error in `nativeCast` type checking that made integer-to-integer and float-to-float cast branches unreachable, and incorrect `nullptr` TargetMachine passed to LLVM `PassBuilder` preventing target-specific optimization passes from being registered. [#98660](https://github.com/ClickHouse/ClickHouse/pull/98660) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix RBAC bypass that allowed users to DESCRIBE any table via `remote()`, `remoteSecure()`, `cluster()`, or `clusterAllReplicas()` pointed at localhost, without requiring `SHOW_COLUMNS` privilege. [#98669](https://github.com/ClickHouse/ClickHouse/pull/98669) ([pufit](https://github.com/pufit)).
- Fix `BAD_GET` exception and incorrect query results when a non-boolean expression (e.g. `sin(col)`) is used in both WHERE and SELECT with a JOIN, due to filter push-down optimization corrupting shared DAG nodes. [#98681](https://github.com/ClickHouse/ClickHouse/pull/98681) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix LOGICAL\_ERROR "Replica decided to read in Default mode, not in WithOrder" when using `read_in_order_through_join` with parallel replicas. [#98685](https://github.com/ClickHouse/ClickHouse/pull/98685) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix exception "Bad cast from type `DB::TableFunctionNode` to `DB::QueryNode`" when using `input` table function as an argument of `remote`. [#98694](https://github.com/ClickHouse/ClickHouse/pull/98694) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix outdated data parts resurrection caused by incorrectly cleaning up empty covering parts. [#98698](https://github.com/ClickHouse/ClickHouse/pull/98698) ([Shaohua Wang](https://github.com/tiandiwonder)).
- Fix exception in `LogicalExpressionOptimizerPass` when a boolean function in an `equals` comparison returns a `Variant` type. [#98712](https://github.com/ClickHouse/ClickHouse/pull/98712) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Fix `parseDateTimeBestEffort` incorrectly parsing words starting with month/weekday prefixes. Closes [#97965](https://github.com/ClickHouse/ClickHouse/issues/97965). [#98742](https://github.com/ClickHouse/ClickHouse/pull/98742) ([Pavel Kruglov](https://github.com/Avogar)).
- 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)).