2025 Changelog

- Fix JSON Exception in iceberg table with timestamp column when using glue catalog. Resolves [#90210](https://github.com/ClickHouse/ClickHouse/issues/90210). [#90209](https://github.com/ClickHouse/ClickHouse/pull/90209) ([Alsu Giliazova](https://github.com/alsugiliazova)).
- Fixes a row-count mismatch in MergeTreeReaderIndex when the part's only has fewer rows than index\_granularity. Resolves [#89691](https://github.com/ClickHouse/ClickHouse/issues/89691). [#90254](https://github.com/ClickHouse/ClickHouse/pull/90254) ([Peng Jian](https://github.com/fastio)).
- Fix infinite `nan`/`inf` `WITH FILL` query. Resolves [#69261](https://github.com/ClickHouse/ClickHouse/issues/69261). [#90255](https://github.com/ClickHouse/ClickHouse/pull/90255) ([Konstantin Bogdanov](https://github.com/thevar1able)).
- Fix 'column not found' error with query\_plan\_use\_logical\_join\_step=0 and residual condition in JOIN ON. Resolves [#88635](https://github.com/ClickHouse/ClickHouse/issues/88635). [#90279](https://github.com/ClickHouse/ClickHouse/pull/90279) ([Vladimir Cherkasov](https://github.com/vdimir)).
- Fix some queries with aggregated projection optimization. [#90288](https://github.com/ClickHouse/ClickHouse/pull/90288) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
- Fix bug in reading subcolumns from JSON in compact parts that could lead to `CANNOT_READ_ALL_DATA` error. Resolves [#90264](https://github.com/ClickHouse/ClickHouse/issues/90264). [#90302](https://github.com/ClickHouse/ClickHouse/pull/90302) ([Pavel Kruglov](https://github.com/Avogar)).
- Now ClickHouse will not use read-in-order optimization for iceberg if sort order is not specified manifest files (or not the same) with default\_sort\_order in table. Fixes [#89178](https://github.com/ClickHouse/ClickHouse/issues/89178). [#90304](https://github.com/ClickHouse/ClickHouse/pull/90304) ([alesapin](https://github.com/alesapin)).
- Time and Time64 now should respect timezones correctly while converting from DateTime and DateTime64 (it must show time in the same timezone as it shows for the user as a DateTime[64]). Closes [#89896](https://github.com/ClickHouse/ClickHouse/issues/89896). [#90310](https://github.com/ClickHouse/ClickHouse/pull/90310) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
- Fixes a bug where `SELECT CAST(CAST(now(), 'Time'), 'Time64')` was producing incorrect result. Closes [#88349](https://github.com/ClickHouse/ClickHouse/issues/88349). [#90324](https://github.com/ClickHouse/ClickHouse/pull/90324) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
- Fixed crash on integer overflow in randomStringUTF8. [#90326](https://github.com/ClickHouse/ClickHouse/pull/90326) ([Michael Kolupaev](https://github.com/al13n321)).
- Fixed cluster discovery updates in multicluster setups with `multicluster_root_path` to prevent delays and missing ZooKeeper updates. [#90341](https://github.com/ClickHouse/ClickHouse/pull/90341) ([RinChanNOW](https://github.com/RinChanNOWWW)).
- Fix possible logical error in prewhere on non-existing JSON path with index\_granularity\_bytes=0. Resolves [#86924](https://github.com/ClickHouse/ClickHouse/issues/86924). [#90375](https://github.com/ClickHouse/ClickHouse/pull/90375) ([Pavel Kruglov](https://github.com/Avogar)).
- Fixed a bug in `L2DistanceTransposed` that caused crashes when the precision argument exceeded valid range. Closes [#90401](https://github.com/ClickHouse/ClickHouse/issues/90401). [#90405](https://github.com/ClickHouse/ClickHouse/pull/90405) ([Raufs Dunamalijevs](https://github.com/rienath)).
- Fix possible logical error in `arrayUnion` with `Array(Dynamic)` argument. Resolves [#90270](https://github.com/ClickHouse/ClickHouse/issues/90270). [#90409](https://github.com/ClickHouse/ClickHouse/pull/90409) ([Pavel Kruglov](https://github.com/Avogar)).
- Fix possible logical error during renaming and modifying the same Nested column in one ALTER. Resolves [#90406](https://github.com/ClickHouse/ClickHouse/issues/90406). [#90412](https://github.com/ClickHouse/ClickHouse/pull/90412) ([Pavel Kruglov](https://github.com/Avogar)).
- Fix parsing JSON/Dynamic/Variant values from HTTP parameters. Resolves [#88925](https://github.com/ClickHouse/ClickHouse/issues/88925). [#90430](https://github.com/ClickHouse/ClickHouse/pull/90430) ([Pavel Kruglov](https://github.com/Avogar)).
- Fixed a race condition in Hive partitioning where a static `KeyValuePairExtractor` caused data corruption or crashes during concurrent file reads. [#90474](https://github.com/ClickHouse/ClickHouse/pull/90474) ([Paresh Joshi](https://github.com/pareshjoshij)).
- Fixed incorrect distance calculations in `L2DistanceTransposed` when using array reference vectors (which default to `Array(Float64))` with `QBit` columns of non-`Float64` element types (`Float32`, `BFloat16`). The function now automatically casts the reference vector to match the `QBit`'s element type. Resolves [#89976](https://github.com/ClickHouse/ClickHouse/issues/89976). [#90485](https://github.com/ClickHouse/ClickHouse/pull/90485) ([Raufs Dunamalijevs](https://github.com/rienath)).
- Fixes a bug where `toDateTimeOrNull` of a negative argument returns NULL. [#90490](https://github.com/ClickHouse/ClickHouse/pull/90490) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
- Fix possible logical error during output of `LowCardinality(Bool/Date32)` in `Arrow` format. Resolves [#83883](https://github.com/ClickHouse/ClickHouse/issues/83883). [#90505](https://github.com/ClickHouse/ClickHouse/pull/90505) ([Pavel Kruglov](https://github.com/Avogar)).
- Fixed IPv4 parsing functions (e.g. `IPv4StringToNumOrDefault`) returning garbage for some invalid inputs. Resolves [#90544](https://github.com/ClickHouse/ClickHouse/issues/90544). Resolves [#87583](https://github.com/ClickHouse/ClickHouse/issues/87583). [#90545](https://github.com/ClickHouse/ClickHouse/pull/90545) ([Michael Kolupaev](https://github.com/al13n321)).
- Retry to markReplicasActive when failing to resolve address during local host check: Print a warning log if there is an exception during self host check in DDLTask. In DDLWorker::markReplicasActive, throw an exception to retry if there is no local host found and there are host IDs in clusters. [#90556](https://github.com/ClickHouse/ClickHouse/pull/90556) ([Tuan Pham Anh](https://github.com/tuanpach)).
- Fix logical error caused by a rare case in `equals` function. Closes [#88142](https://github.com/ClickHouse/ClickHouse/issues/88142). [#90557](https://github.com/ClickHouse/ClickHouse/pull/90557) ([Nihal Z. Miaji](https://github.com/nihalzp)).
- Hopefully fixes thread sanitizer crashes in `test_ssh/test.py::test_paramiko_password`. [#90612](https://github.com/ClickHouse/ClickHouse/pull/90612) ([Govind R Nair](https://github.com/Revertionist)).
- Fix logical error in `concatWithSeparator` function when using const non-string column. Closes [#90596](https://github.com/ClickHouse/ClickHouse/issues/90596). [#90655](https://github.com/ClickHouse/ClickHouse/pull/90655) ([Nihal Z. Miaji](https://github.com/nihalzp)).
- Fix formatting for `INTO OUTFILE`. Resolves [#90207](https://github.com/ClickHouse/ClickHouse/issues/90207). [#90656](https://github.com/ClickHouse/ClickHouse/pull/90656) ([Azat Khuzhin](https://github.com/azat)).
- Fix potential crash when executing mutations with subqueries and `allow_statistics_optimize=1`. Resolves [#90626](https://github.com/ClickHouse/ClickHouse/issues/90626). [#90664](https://github.com/ClickHouse/ClickHouse/pull/90664) ([Azat Khuzhin](https://github.com/azat)).
- Fixed analyzer validation for `LIMIT BY` with `GROUP BY` to produce correct `NOT_AN_AGGREGATE` error instead of `NOT_FOUND_COLUMN_IN_BLOCK` when `LIMIT BY` uses columns not in `GROUP BY`. Closes [#89713](https://github.com/ClickHouse/ClickHouse/issues/89713). [#90665](https://github.com/ClickHouse/ClickHouse/pull/90665) ([xiaohuanlin](https://github.com/xiaohuanlin)).