> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Журнал изменений Cloud v25.10

> Журнал изменений Cloud v25.10

<div id="backward-incompatible-changes">
  ## Изменения, нарушающие обратную совместимость
</div>

<div id="data-format-and-schema-changes">
  ### Изменения форматов данных и схем
</div>

* Изменено значение по умолчанию настройки `schema_inference_make_columns_nullable`: теперь она учитывает информацию о `Nullable` столбцов из метаданных Parquet/ORC/Arrow вместо того, чтобы делать все столбцы Nullable. Для текстовых форматов изменений нет. [#71499](https://github.com/ClickHouse/ClickHouse/pull/71499) ([Michael Kolupaev](https://github.com/al13n321)).

<div id="query-and-function-changes">
  ### Изменения в запросах и функциях
</div>

* Кэш результатов запросов теперь игнорирует настройку `log_comment`, поэтому изменение только `log_comment` в запросе больше не приводит к промаху кэша. Есть небольшая вероятность, что пользователи намеренно сегментировали кэш, изменяя `log_comment`. Это изменение меняет такое поведение и поэтому нарушает обратную совместимость. Для этой цели используйте настройку `query_cache_tag`. [#79878](https://github.com/ClickHouse/ClickHouse/pull/79878) ([filimonov](https://github.com/filimonov)).
* В предыдущих версиях запросы с табличными функциями, названными так же, как функции-реализации операторов, форматировались непоследовательно. Закрывает [#81601](https://github.com/ClickHouse/ClickHouse/issues/81601). Закрывает [#81977](https://github.com/ClickHouse/ClickHouse/issues/81977). Закрывает [#82834](https://github.com/ClickHouse/ClickHouse/issues/82834). Закрывает [#82835](https://github.com/ClickHouse/ClickHouse/issues/82835). Запросы EXPLAIN SYNTAX не будут форматировать операторы — новое поведение лучше отражает цель объяснения синтаксиса. `clickhouse-format`, `formatQuery` и подобные инструменты не будут форматировать функции как операторы, если в запросе они использовались в функциональной форме. [#82825](https://github.com/ClickHouse/ClickHouse/pull/82825) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Отключены бессмысленные бинарные операции с IPv4/IPv6: сложение/вычитание IPv4/IPv6 с нецелочисленным типом теперь запрещено. Ранее это позволяло выполнять операции с типами с плавающей точкой и приводило к логическим ошибкам с некоторыми другими типами (например, DateTime). [#86336](https://github.com/ClickHouse/ClickHouse/pull/86336) ([Raúl Marín](https://github.com/Algunenano)).
* Функции `searchAny` и `searchAll` переименованы в `hasAnyTokens` и `hasAllTokens` для большей согласованности с существующей функцией `hasToken`. [#88109](https://github.com/ClickHouse/ClickHouse/pull/88109) ([Robert Schulze](https://github.com/rschu1ze)).

<div id="data-type-changes">
  ### Изменения типов данных
</div>

* Запрещено использовать тип Dynamic в ключах JOIN. Это может приводить к неожиданным результатам при сравнении типа Dynamic с типом, отличным от Dynamic. Лучше привести столбец типа Dynamic к нужному типу. [#86358](https://github.com/ClickHouse/ClickHouse/pull/86358) ([Pavel Kruglov](https://github.com/Avogar)).

<div id="storage-and-index-changes">
  ### Изменения в хранилище и индексах
</div>

* Настройка `allow_dynamic_metadata_for_data_lakes` объявлена устаревшей. Теперь все таблицы Iceberg перед выполнением каждого запроса пытаются получить из хранилища актуальную схему таблицы. [#86366](https://github.com/ClickHouse/ClickHouse/pull/86366) ([Daniil Ivanik](https://github.com/divanik)).
* Инвертированный текстовый индекс был полностью переработан для масштабируемой работы с наборами данных, не помещающимися в оперативную память. [#86485](https://github.com/ClickHouse/ClickHouse/pull/86485) ([Anton Popov](https://github.com/CurtizJ)).
* Настройка сервера `storage_metadata_write_full_object_key` теперь включена по умолчанию, и отключить ее больше нельзя. [#87335](https://github.com/ClickHouse/ClickHouse/pull/87335) ([Sema Checherinda](https://github.com/CheSema)).
* `cache_hits_threshold` удален из файлового кэша. `cache_hits_threshold` был добавлен до появления политики кэша SLRU, и поддерживать оба варианта больше не требуется. [#88344](https://github.com/ClickHouse/ClickHouse/pull/88344) ([Kseniia Sumarokova](https://github.com/kssenii)).

<div id="settings-and-configuration-changes">
  ### Изменения настроек и конфигурации
</div>

* Значение `replicated_deduplication_window_seconds` уменьшено с 1 недели до одного часа, чтобы хранить меньше znode в ZooKeeper при низкой скорости вставки. [#87414](https://github.com/ClickHouse/ClickHouse/pull/87414) ([Sema Checherinda](https://github.com/CheSema)).
* Настройка `query_plan_use_new_logical_join_step` переименована в `query_plan_use_logical_join_step`. [#87679](https://github.com/ClickHouse/ClickHouse/pull/87679) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Новый синтаксис позволяет сделать параметр токенизатора более гибким. [#87997](https://github.com/ClickHouse/ClickHouse/pull/87997) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Два небольших изменения в работе настроек `min_free_disk_ratio_to_perform_insert` и `min_free_disk_bytes_to_perform_insert`: для определения того, следует ли отклонить вставку, теперь используются незарезервированные, а не доступные байты. Вероятно, это не слишком важно, если резервы для фоновых слияний и мутаций малы по сравнению с настроенными порогами, но так корректнее. - Не применять эти настройки к системным таблицам. Причина в том, что мы по-прежнему хотим, чтобы таблицы вроде `query_log` обновлялись. Это очень помогает при отладке. Данные, записываемые в системные таблицы, обычно невелики по сравнению с основными данными, поэтому они смогут продолжать работу значительно дольше при разумном пороге `min_free_disk_ratio_to_perform_insert`. [#88468](https://github.com/ClickHouse/ClickHouse/pull/88468) ([c-end](https://github.com/c-end)).

<div id="keeper-changes">
  ### Изменения в Keeper
</div>

* Для внутренней репликации Keeper включён асинхронный режим. Keeper сохранит прежнее поведение с возможным повышением производительности. Если вы обновляетесь с версии младше 23.9, вам нужно либо сначала обновиться до 23.9+, а затем до 25.10+. Вы также можете установить `keeper_server.coordination_settings.async_replication` в 0 перед обновлением и включить его после завершения обновления. [#88515](https://github.com/ClickHouse/ClickHouse/pull/88515) ([Antonio Andelic](https://github.com/antonio2368)).

<div id="new-feature">
  ## Новые возможности
</div>

<div id="functions">
  ### Функции
</div>

* Добавлена функция `naiveBayesClassifier` для классификации текста с помощью Naive Bayes на основе n-грамм. [#78700](https://github.com/ClickHouse/ClickHouse/pull/78700) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Добавлена функция `arrayExcept`, которая вычитает один массив из другого, рассматривая их как множества. [#82368](https://github.com/ClickHouse/ClickHouse/pull/82368) ([Joanna Hulboj](https://github.com/jh0x)).
* Добавлена новая функция `conv` для преобразования чисел между системами счисления; в настоящее время поддерживаются основания от `2` до `36`. [#83058](https://github.com/ClickHouse/ClickHouse/pull/83058) ([hp](https://github.com/hp77-creator)).
* Добавлена агрегатная функция `studentTTestOneSample`. [#85436](https://github.com/ClickHouse/ClickHouse/pull/85436) ([Dylan](https://github.com/DylanBlakemore)).
* Добавлена функция `isValidASCII` для проверки того, содержит ли строка только ASCII-символы. Закрывает [#85377](https://github.com/ClickHouse/ClickHouse/issues/85377). [#85786](https://github.com/ClickHouse/ClickHouse/pull/85786) ([rajat mohan](https://github.com/rajatmohan22)).
* Добавлены агрегатные функции `timeSeriesChangesToGrid` и `timeSeriesResetsToGrid`. Они ведут себя аналогично `timeSeriesRateToGrid`: принимают параметры начальной временной метки, конечной временной метки, шага и окна ретроспективного просмотра, а также два аргумента для временных меток и значений, но требуют как минимум 1 значение в окне вместо 2. Вычисляют PromQL `changes`/`resets`, подсчитывая, сколько раз значение меняется или уменьшается в указанном окне для каждой временной метки во временной сетке, заданной параметрами. Возвращаемый тип — Array(Nullable(Float64)). [#86010](https://github.com/ClickHouse/ClickHouse/pull/86010) ([Stephen Chi](https://github.com/stephchi0)).
* Добавлена агрегатная функция `quantilePrometheusHistogram`, которая принимает в качестве аргументов верхние границы и накопленные значения бакетов гистограммы и выполняет линейную интерполяцию между верхней и нижней границами бакета, в котором находится позиция квантиля. Ведет себя аналогично функции PromQL `histogram_quantile()` для классических гистограмм. [#86294](https://github.com/ClickHouse/ClickHouse/pull/86294) ([Stephen Chi](https://github.com/stephchi0)).
* Добавлены оптимизированные регистронезависимые варианты функций `startsWith` и `endsWith`: `startsWithCaseInsensitive`, `endsWithCaseInsensitive`, `startsWithCaseInsensitiveUTF8` и `endsWithCaseInsensitiveUTF8`. [#87374](https://github.com/ClickHouse/ClickHouse/pull/87374) ([Guang Zhao](https://github.com/zheguang)).

<div id="system-tables">
  ### Системные таблицы
</div>

* Добавлена новая системная таблица `database_replicas` с информацией о репликах базы данных. [#83408](https://github.com/ClickHouse/ClickHouse/pull/83408) ([Konstantin Morozov](https://github.com/k-morozov)).
* Добавлена новая таблица `system.aggregated_zookeeper_log`. Таблица содержит статистику (например, количество операций, среднюю задержку, ошибки) по операциям ZooKeeper, сгруппированную по идентификатору сеанса, родительскому пути и типу операции, и периодически сбрасывается на диск. [#85102](https://github.com/ClickHouse/ClickHouse/pull/85102) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Добавлена системная таблица `iceberg_metadata_log` для получения файлов метаданных Iceberg при выполнении операторов SELECT. [#86152](https://github.com/ClickHouse/ClickHouse/pull/86152) ([scanhex12](https://github.com/scanhex12)).
* В таблицу `system.warnings` добавлены предупреждения о CPU и памяти. [#86838](https://github.com/ClickHouse/ClickHouse/pull/86838) ([Bharat Nallan](https://github.com/bharatnc)).
* Добавлена системная таблица для файлов метаданных Delta Lake. [#87263](https://github.com/ClickHouse/ClickHouse/pull/87263) ([scanhex12](https://github.com/scanhex12)).

<div id="table-engines-and-storage">
  ### Движки таблиц и хранилище
</div>

* Поддержка движка таблицы Alias. [#76569](https://github.com/ClickHouse/ClickHouse/pull/76569) ([RinChanNOW](https://github.com/RinChanNOWWW)).
* Теперь для чтения сообщений можно использовать NATS JetStream, указав новые настройки `nats_stream` и `nats_consumer` для движка NATS. [#84799](https://github.com/ClickHouse/ClickHouse/pull/84799) ([Dmitry Novikov](https://github.com/dmitry-sles-novikov)).
* Таблицы Iceberg и delta lake с настройкой диска. Это позволяет задавать пользовательские таблицы на существующем диске. Добавлена настройка `allowed_disks_for_table_engines`, которая позволяет указать, какие диски можно использовать для Iceberg. Пример: `CREATE TABLE test ENGINE = Iceberg('path/inside/disk') SETTING datalake_disk_name = '<some_user_disk>';` ### Запись в документации об изменениях, видимых пользователю. [#86778](https://github.com/ClickHouse/ClickHouse/pull/86778) ([scanhex12](https://github.com/scanhex12)).
* Добавлена новая настройка таблицы `min_level_for_wide_part`, которая позволяет указать минимальный уровень part, начиная с которого она будет создаваться как wide part. [#88179](https://github.com/ClickHouse/ClickHouse/pull/88179) ([Christoph Wurm](https://github.com/cwurm)).

<div id="iceberg-and-data-lakes">
  ### Iceberg и озера данных
</div>

* Добавлена поддержка выполнения запросов к Apache Paimon в ClickHouse. Эта интеграция позволит пользователям ClickHouse напрямую работать с хранилищем озера данных Paimon. [#84423](https://github.com/ClickHouse/ClickHouse/pull/84423) ([JIaQi](https://github.com/JiaQiTang98)).
* `ALTER UPDATE` для движка таблицы Iceberg. [#86059](https://github.com/ClickHouse/ClickHouse/pull/86059) ([scanhex12](https://github.com/scanhex12)).

<div id="indexes-and-statistics">
  ### Индексы и статистика
</div>

* Новый разреженный индекс bloom filter `sparse_gram`, полезный для поиска длинных подстрок. [#79985](https://github.com/ClickHouse/ClickHouse/pull/79985) ([scanhex12](https://github.com/scanhex12)).
* Добавлена возможность автоматически создавать статистику для всех подходящих столбцов в таблицах `MergeTree`. Добавлена табличная настройка `auto_statistics_types`, в которой хранятся разделённые запятыми типы создаваемой статистики (например, `auto_statistics_types = 'minmax, uniq, countmin'`). [#87241](https://github.com/ClickHouse/ClickHouse/pull/87241) ([Anton Popov](https://github.com/CurtizJ)).

<div id="sql-and-query-features">
  ### Возможности SQL и запросов
</div>

* Добавлена поддержка синтаксиса `LIMIT BY ALL`. Подобно `GROUP BY ALL` и `ORDER BY ALL`, `LIMIT BY ALL` автоматически раскрывается во все неагрегатные выражения из предложения SELECT и использует их как ключи LIMIT BY. Например, `SELECT id, name, count(*) FROM table GROUP BY id LIMIT 1 BY ALL` эквивалентно `SELECT id, name, count(*) FROM table GROUP BY id LIMIT 1 BY id, name`. Эта возможность упрощает запросы, когда нужно ограничить результат по всем выбранным неагрегатным столбцам без их явного перечисления. Закрывает [#59152](https://github.com/ClickHouse/ClickHouse/issues/59152). [#84079](https://github.com/ClickHouse/ClickHouse/pull/84079) ([Surya Kant Ranjan](https://github.com/iit2009046)).
* Одиночное имя настройки в SETTINGS запроса теперь трактуется как значение `1` (например, `SELECT ... SETTINGS use_query_cache` эквивалентно `use_query_cache = 1`). [#85800](https://github.com/ClickHouse/ClickHouse/pull/85800) ([thraeka](https://github.com/thraeka)).
* Пользователи теперь могут создавать временные представления с тем же синтаксисом, что и временные таблицы. [#86432](https://github.com/ClickHouse/ClickHouse/pull/86432) ([Aly Kafoury](https://github.com/AlyHKafoury)).
* Добавлена поддержка отрицательных `LIMIT` и `OFFSET`. Закрывает [#28913](https://github.com/ClickHouse/ClickHouse/issues/28913). [#88411](https://github.com/ClickHouse/ClickHouse/pull/88411) ([Nihal Z. Miaji](https://github.com/nihalzp)).

<div id="client-and-cli-features">
  ### Возможности клиента и CLI
</div>

* Доступ к экземплярам ClickHouse Cloud с использованием учетных данных Cloud через `--login`. [#82753](https://github.com/ClickHouse/ClickHouse/pull/82753) ([Krishna Mannem](https://github.com/kcmannem)).
* Добавлена опция `--semicolons_inline` для форматирования запросов, при котором точки с запятой размещаются в последней строке, а не на новой. [#88018](https://github.com/ClickHouse/ClickHouse/pull/88018) ([Jan Rada](https://github.com/ZelvaMan)).

<div id="server-configuration-and-workload-management">
  ### Конфигурация сервера и управление рабочими нагрузками
</div>

* Новые параметры конфигурации: `logger.startupLevel` и `logger.shutdownLevel` позволяют соответственно переопределять уровень журналирования при запуске и остановке ClickHouse. [#85967](https://github.com/ClickHouse/ClickHouse/pull/85967) ([Lennard Eijsackers](https://github.com/Blokje5)).
* Добавлена возможность задавать определения `WORKLOAD` и `RESOURCE` в SQL с помощью раздела конфигурации сервера "resources\_and\_workloads". [#87430](https://github.com/ClickHouse/ClickHouse/pull/87430) ([Sergei Trifonov](https://github.com/serxa)).

<div id="system-commands">
  ### Системные команды
</div>

* Добавлена команда `SYSTEM RECONNECT ZOOKEEPER` для принудительного отключения от ZooKeeper и повторного подключения ([https://github.com/ClickHouse/ClickHouse/issues/87317](https://github.com/ClickHouse/ClickHouse/issues/87317)). [#87318](https://github.com/ClickHouse/ClickHouse/pull/87318) ([Pradeep Chhetri](https://github.com/chhetripradeep)).
* Ограничено число именованных коллекций с помощью настроек `max_named_collection_num_to_warn` и `max_named_collection_num_to_throw`. Добавлены новая метрика `NamedCollection` и ошибка `TOO_MANY_NAMED_COLLECTIONS`. [#87343](https://github.com/ClickHouse/ClickHouse/pull/87343) ([Pablo Marcos](https://github.com/pamarcos)).

<div id="keeper">
  ### Keeper
</div>

* В клиент Keeper добавлены рекурсивные варианты команд `cp`-`cpr` и `mv`-`mvr`. [#88570](https://github.com/ClickHouse/ClickHouse/pull/88570) ([Mikhail Artemenko](https://github.com/Michicosun)).

<div id="experimental-features">
  ## Экспериментальные возможности
</div>

* Функции `searchAll` и `searchAny` теперь работают и со столбцами без текстовых данных. В таких случаях они используют токенизатор по умолчанию. [#87722](https://github.com/ClickHouse/ClickHouse/pull/87722) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Реализованы тип данных `QBit`, который хранит векторы в формате bit-sliced, и функция `L2DistanceTransposed`, которая позволяет выполнять приближённый векторный поиск, где компромисс между точностью и скоростью задаётся параметром. [#87922](https://github.com/ClickHouse/ClickHouse/pull/87922) ([Raufs Dunamalijevs](https://github.com/rienath)).

<div id="performance-improvements">
  ## Повышение производительности
</div>

<div id="query-execution-and-optimization">
  ### Выполнение запросов и оптимизация
</div>

* Повышена производительность запросов за счёт переработки порядка работы и интеграции кэша условий запроса (QCC) с анализом индексов. Теперь фильтрация в QCC применяется до анализа первичного ключа и индекса пропуска данных, что сокращает объём лишних вычислений индексов. Анализ индексов был расширен для поддержки нескольких фильтров диапазона, а результаты фильтрации теперь сохраняются обратно в QCC. Это значительно ускоряет запросы, в которых анализ индексов занимает основную часть времени выполнения, особенно если они опираются на индексы пропуска данных (например, векторные или инвертированные индексы). [#82380](https://github.com/ClickHouse/ClickHouse/pull/82380) ([Amos Bird](https://github.com/amosbird)).
* Ряд микрооптимизаций для ускорения небольших запросов. [#83096](https://github.com/ClickHouse/ClickHouse/pull/83096) ([Raúl Marín](https://github.com/Algunenano)).
* Добавлено сжатие журналов и profile events в собственном протоколе. В кластерах со 100+ репликами profile events в несжатом виде занимают 1..10 МБ/с, а индикатор прогресса медленно обновляется при медленном интернет-соединении. Это закрывает [#82533](https://github.com/ClickHouse/ClickHouse/issues/82533). [#83586](https://github.com/ClickHouse/ClickHouse/pull/83586) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Улучшена оптимизация PREWHERE для условий вида `func(primary_column) = 'xx'` и `column in (xxx)`. [#85529](https://github.com/ClickHouse/ClickHouse/pull/85529) ([李扬](https://github.com/taiyang-li)).
* Исключено полное сканирование для `system.tables` при фильтрации по `uuid` (это может быть полезно, если у вас есть только UUID из журналов или путь в ZooKeeper). [#88379](https://github.com/ClickHouse/ClickHouse/pull/88379) ([Azat Khuzhin](https://github.com/azat)).

<div id="join-optimizations">
  ### Оптимизации JOIN
</div>

* Реализована логика проталкивания вниз дизъюнктивных предикатов JOIN. Пример: в TPC-H Q7 для условия по двум таблицам n1 и n2 вида `(n1.n_name = 'FRANCE' AND n2.n_name = 'GERMANY') OR (n1.n_name = 'GERMANY' AND n2.n_name = 'FRANCE')` мы выделяем отдельные частичные фильтры для каждой таблицы: `n1.n_name = 'FRANCE' OR n1.n_name = 'GERMANY'` для n1 и `n2.n_name = 'GERMANY' OR n2.n_name = 'FRANCE'` для n2. [#84735](https://github.com/ClickHouse/ClickHouse/pull/84735) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Реализовано переписывание JOIN: 1. Преобразование `LEFT ANY JOIN` и `RIGHT ANY JOIN` в `SEMI`/`ANTI` JOIN, если условие фильтра всегда ложно для совпавших или несовпавших строк. Эта оптимизация управляется новой настройкой `query_plan_convert_any_join_to_semi_or_anti_join`. 2. Преобразование `FULL ALL JOIN` в `LEFT ALL` или `RIGHT ALL` JOIN, если условие фильтра всегда ложно для несовпавших строк с одной из сторон. [#86028](https://github.com/ClickHouse/ClickHouse/pull/86028) ([Dmitry Novik](https://github.com/novikd)).
* Производительность `HashJoin` немного улучшена в случае `LEFT/RIGHT` JOIN с большим количеством несовпавших строк. [#86312](https://github.com/ClickHouse/ClickHouse/pull/86312) ([Nikita Taranov](https://github.com/nickitat)).
* Переупорядочивание JOIN теперь использует статистику. Эту возможность можно включить, установив `allow_statistics_optimize = 1` и `query_plan_optimize_join_order_limit = 10`. [#86822](https://github.com/ClickHouse/ClickHouse/pull/86822) ([Han Fei](https://github.com/hanfei1991)).
* Во время оптимизации JOIN теперь пропускается повторный расчёт статистики hash table во время выполнения. Добавлены новые profile events `JoinOptimizeMicroseconds` и `QueryPlanOptimizeMicroseconds`. [#87683](https://github.com/ClickHouse/ClickHouse/pull/87683) ([Vladimir Cherkasov](https://github.com/vdimir)).
* В некоторых случаях `AddedColumns::appendFromBlock` встраивается, что немного повышает производительность JOIN. [#88455](https://github.com/ClickHouse/ClickHouse/pull/88455) ([Nikita Taranov](https://github.com/nickitat)).

<div id="string-and-function-optimizations">
  ### Оптимизации String и функций
</div>

* Повышена производительность поиска по строкам с учетом регистра (например, при фильтрации `WHERE URL LIKE '%google%'`) за счет использования библиотеки [StringZilla](https://github.com/ashvardanian/StringZilla), которая задействует SIMD-инструкции CPU, когда они доступны. [#84161](https://github.com/ClickHouse/ClickHouse/pull/84161) ([Raúl Marín](https://github.com/Algunenano)).
* Повышена производительность `LIKE` с prefix или suffix благодаря новой настройке по умолчанию `optimize_rewrite_like_perfect_affix`. [#85920](https://github.com/ClickHouse/ClickHouse/pull/85920) ([Guang Zhao](https://github.com/zheguang)).
* Повышена производительность функций `tokens`, `hasAllTokens`, `hasAnyTokens`. [#88416](https://github.com/ClickHouse/ClickHouse/pull/88416) ([Anton Popov](https://github.com/CurtizJ)).

<div id="mergetree-and-storage-optimizations">
  ### Оптимизации MergeTree и хранилища
</div>

* Добавлена необязательная сериализация подстолбца `.size` для строковых столбцов верхнего уровня в таблицах MergeTree, чтобы улучшить сжатие и обеспечить эффективный доступ к подстолбцам. Также введены новые настройки MergeTree для управления версией сериализации и оптимизации выражений для пустых строк. [#82850](https://github.com/ClickHouse/ClickHouse/pull/82850) ([Amos Bird](https://github.com/amosbird)).
* Снижены затраты на выделение и копирование памяти при выполнении SELECT из таблицы AggregatingMergeTree с FINAL, если таблица содержит столбцы типа `SimpleAggregateFunction(anyLast)`. [#84428](https://github.com/ClickHouse/ClickHouse/pull/84428) ([Duc Canh Le](https://github.com/canhld94)).
* Улучшена производительность Вертикального слияния после выполнения легковесного удаления. [#86169](https://github.com/ClickHouse/ClickHouse/pull/86169) ([Anton Popov](https://github.com/CurtizJ)).
* Повышена производительность быстрых запросов с большим количеством частей в таблице (за счёт оптимизации `MarkRanges`: используется `devector` вместо `deque`). [#86933](https://github.com/ClickHouse/ClickHouse/pull/86933) ([Azat Khuzhin](https://github.com/azat)).
* Улучшена производительность применения патч-частей в режиме JOIN. [#87094](https://github.com/ClickHouse/ClickHouse/pull/87094) ([Anton Popov](https://github.com/CurtizJ)).
* Включено сохранение marks в cache, а для чтения MergeTreeLazy исключён прямой IO. [#87989](https://github.com/ClickHouse/ClickHouse/pull/87989) ([Nikita Taranov](https://github.com/nickitat)).
* SELECT-запрос с условием `FINAL` для таблицы `ReplacingMergeTree` со столбцом `is_deleted` теперь выполняется быстрее благодаря улучшенной распараллелизации двух существующих оптимизаций: 1) оптимизации `do_not_merge_across_partitions_select_final` для партиций таблицы, содержащих только одну `part`; 2) разбиению остальных выбранных диапазонов таблицы на `intersecting / non-intersecting`, при котором через преобразование слияния FINAL должны проходить только пересекающиеся диапазоны. [#88090](https://github.com/ClickHouse/ClickHouse/pull/88090) ([Shankar Iyer](https://github.com/shankar-iyer)).

<div id="aggregation-and-group-by-optimizations">
  ### Оптимизации агрегации и GROUP BY
</div>

* Исправлена деградация производительности, вызванная большим сериализованным ключом при группировке по нескольким строковым/числовым столбцам. Закрывает [https://github.com/ClickHouse/ClickHouse/pull/83884#issuecomment-3187972297](https://github.com/ClickHouse/ClickHouse/pull/83884#issuecomment-3187972297) cc @mkmkme . Это продолжение [https://github.com/ClickHouse/ClickHouse/pull/83884](https://github.com/ClickHouse/ClickHouse/pull/83884). [#85924](https://github.com/ClickHouse/ClickHouse/pull/85924) ([李扬](https://github.com/taiyang-li)).
* RadixSort: помогает компилятору использовать SIMD, а CPU — эффективнее выполнять предварительную выборку. Использует динамическую диспетчеризацию, чтобы задействовать программную предварительную выборку только на CPU Intel. Продолжает работу @taiyang-li в [https://github.com/ClickHouse/ClickHouse/pull/77029](https://github.com/ClickHouse/ClickHouse/pull/77029). [#86378](https://github.com/ClickHouse/ClickHouse/pull/86378) ([Raúl Marín](https://github.com/Algunenano)).

<div id="index-and-text-search-optimizations">
  ### Оптимизации индексов и текстового поиска
</div>

* Повышена производительность построения текстового индекса для документов, содержащих в основном редкие токены. [#87546](https://github.com/ClickHouse/ClickHouse/pull/87546) ([Anton Popov](https://github.com/CurtizJ)).

<div id="data-lake-optimizations">
  ### Оптимизации для озер данных
</div>

* Поддержка чтения по порядку для Iceberg. [#88454](https://github.com/ClickHouse/ClickHouse/pull/88454) ([scanhex12](https://github.com/scanhex12)).

<div id="internal-optimizations">
  ### Внутренние оптимизации
</div>

* Улучшения DB::SharedMutex. [#87491](https://github.com/ClickHouse/ClickHouse/pull/87491) ([Raúl Marín](https://github.com/Algunenano)).
* Ускорен наиболее частый случай вызова деструктора Field. [#87631](https://github.com/ClickHouse/ClickHouse/pull/87631) ([Raúl Marín](https://github.com/Algunenano)).
* Снижено влияние отсутствия fail points. [#88196](https://github.com/ClickHouse/ClickHouse/pull/88196) ([Raúl Marín](https://github.com/Algunenano)).

<div id="improvements">
  ## Улучшения
</div>

<div id="query-optimization-and-execution">
  ### Оптимизация и выполнение запросов
</div>

* `mannWhitneyUTest` больше не генерирует исключение, когда обе выборки содержат только одинаковые значения. Теперь функция возвращает корректный результат, согласующийся с SciPy. Закрывает: [#79814](https://github.com/ClickHouse/ClickHouse/issues/79814). [#80009](https://github.com/ClickHouse/ClickHouse/pull/80009) ([DeanNeaht](https://github.com/DeanNeaht)).
* Добавлена экспериментальная оптимизация порядка JOIN, которая может автоматически переупорядочивать JOIN для повышения производительности (управляется настройкой `query_plan_optimize_join_order_limit`). Обратите внимание, что оптимизация порядка JOIN в настоящее время имеет ограниченную поддержку статистики и в основном опирается на оценки числа строк от движков хранения — более продвинутый сбор статистики и оценка мощности будут добавлены в будущих релизах. **Если после обновления у вас возникли проблемы с запросами JOIN**, вы можете временно отключить новую реализацию, установив `SET query_plan_use_new_logical_join_step = 0`, и сообщить о проблеме для дальнейшего расследования. **Примечание о разрешении идентификаторов из клаузы USING**: Изменено разрешение коалесцированного столбца из клаузы `OUTER JOIN ... USING`, чтобы сделать его более согласованным: ранее при выборе и столбца USING, и квалифицированных столбцов (`a, t1.a, t2.a`) в OUTER JOIN столбец USING ошибочно разрешался как `t1.a`, показывая 0/NULL для строк из правой таблицы без соответствия в левой. Теперь идентификаторы из клаузы USING всегда разрешаются в коалесцированный столбец, тогда как квалифицированные идентификаторы разрешаются в некоалесцированные столбцы независимо от того, какие ещё идентификаторы присутствуют в запросе. Например: \`\`\`sql SELECT a, t1.a, t2.a FROM (SELECT 1 as a WHERE 0) t1 FULL JOIN (SELECT 2 as a) t2 USING (a) -- До: a=0, t1.a=0, t2.a=2 (некорректно — 'a' разрешался как t1.a) -- После: a=2, t1.a=0, t2.a=2 (корректно — 'a' коалесцируется). [#80848](https://github.com/ClickHouse/ClickHouse/pull/80848) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Добавлена поддержка фильтрации частей данных с помощью индексов пропуска данных при чтении, чтобы сократить количество ненужных обращений к индексам. Это поведение управляется новой настройкой `use_skip_indexes_on_data_read` (по умолчанию отключена). Это устраняет проблему [#75774](https://github.com/ClickHouse/ClickHouse/issues/75774). Сюда также входит часть общей подготовительной работы для [#81021](https://github.com/ClickHouse/ClickHouse/issues/81021). [#81526](https://github.com/ClickHouse/ClickHouse/pull/81526) ([Amos Bird](https://github.com/amosbird)).
* Транзакция перезаписи в Объектном хранилище диска удаляет предыдущие удалённые блобы, если транзакция метаданных зафиксирована. [#81787](https://github.com/ClickHouse/ClickHouse/pull/81787) ([Sema Checherinda](https://github.com/CheSema)).
* Стратегия повторных попыток для S3 стала настраиваемой, а настройки S3-диска теперь можно применять без перезапуска при изменении XML-файла config. [#82642](https://github.com/ClickHouse/ClickHouse/pull/82642) ([RinChanNOW](https://github.com/RinChanNOWWW)).
* Исправлен проход оптимизации для избыточного сравнения на равенство, когда LowCardinality результирующего типа различается до и после оптимизации. [#82651](https://github.com/ClickHouse/ClickHouse/pull/82651) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Специальный столбец можно использовать для указания наличия части `oneof`. [#82885](https://github.com/ClickHouse/ClickHouse/pull/82885) ([Ilya Golshtein](https://github.com/ilejn)).
* Теперь при указании некорректных настроек для нового движка таблицы Kafka пользователи получают более понятные инструкции. [#83701](https://github.com/ClickHouse/ClickHouse/pull/83701) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Когда HTTP-клиенты задают заголовок `X-ClickHouse-100-Continue: defer` в дополнение к `Expect: 100-continue`, ClickHouse не отправляет клиенту ответ `100 Continue` до тех пор, пока не будет пройдена проверка квоты. Это позволяет избежать лишнего расхода пропускной способности сети на передачу тел запросов, которые всё равно будут отброшены. Это актуально для запросов INSERT, в которых сам запрос может передаваться в строке запроса URL, а данные — в теле запроса. Прерывание запроса без отправки полного тела не позволяет повторно использовать connection в HTTP/1.1, однако дополнительная latency из-за открытия новых connections обычно незначительна по сравнению с общей длительностью INSERT при больших объёмах данных. [#84304](https://github.com/ClickHouse/ClickHouse/pull/84304) ([c-end](https://github.com/c-end)).
* Больше нельзя задавать часовые пояса для типа Time. [#84689](https://github.com/ClickHouse/ClickHouse/pull/84689) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Автодополнение на стороне клиента теперь работает быстрее и стабильнее благодаря использованию `system.completions` вместо выполнения нескольких запросов к системным таблицам. [#84694](https://github.com/ClickHouse/ClickHouse/pull/84694) ([|2ustam](https://github.com/RuS2m)).
* Упростили логику, связанную с разбором Time\[64] в формате `best_effort`, и устранили некоторые ошибки. [#84730](https://github.com/ClickHouse/ClickHouse/pull/84730) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Ускорено выполнение некоторых запросов с JOIN за счёт построения bloom filter по правому поддереву во время выполнения и передачи этого фильтра в сканирование левого поддерева. Это может быть полезно для таких запросов, как `SELECT avg(o_totalprice) FROM orders, customer, nation WHERE c_custkey = o_custkey AND c_nationkey=n_nationkey AND n_name = 'FRANCE'`. [#84772](https://github.com/ClickHouse/ClickHouse/pull/84772) ([Alexander Gololobov](https://github.com/davenger)).
* После `TO` при создании materialized view можно использовать параметры запроса, например: `CREATE MATERIALIZED VIEW mv TO {to_table:Identifier} AS SELECT * FROM src_table`. [#84899](https://github.com/ClickHouse/ClickHouse/pull/84899) ([Diskein](https://github.com/Diskein)).
* Скрытие учетных данных S3 в журналах при использовании DATABASE ENGINE = Backup с хранилищем S3. [#85336](https://github.com/ClickHouse/ClickHouse/pull/85336) ([Kenny Sun](https://github.com/hwabis)).
* Обновлён jemalloc до более новой версии. Улучшено профилирование выделений памяти на основе внутренних инструментов jemalloc. Глобальное профилирование jemalloc теперь можно включить с помощью конфигурационного параметра `jemalloc_enable_global_profiler`. Образцы глобальных выделений и освобождений памяти теперь можно сохранять в `system.trace_log` с типом `JemallocSample`, включив конфигурационный параметр `jemalloc_collect_global_profile_samples_in_trace_log`. Профилирование jemalloc теперь можно включать независимо для каждого запроса с помощью настройки `jemalloc_enable_profiler`. Сохранение образцов в `system.trace_log` можно настраивать отдельно для каждого запроса с помощью настройки `jemalloc_collect_profile_samples_in_trace_log`. [#85438](https://github.com/ClickHouse/ClickHouse/pull/85438) ([Antonio Andelic](https://github.com/antonio2368)).
* Добавлены функция deltaLakeAzureCluster (аналог deltaLakeAzure для cluster) и функция deltaLakeS3Cluster (alias для deltaLakeCluster). Решает проблему [#85358](https://github.com/ClickHouse/ClickHouse/issues/85358). [#85547](https://github.com/ClickHouse/ClickHouse/pull/85547) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Переименовать InterpreterSystemQuery::dropReplicaImpl в InterpreterSystemQuery::dropStorageReplica - В InterpreterSystemQuery::dropDatabaseReplica: - При удалении с database или при удалении реплики целиком также удаляется реплика для каждой таблицы базы данных - Если указан 'WITH TABLES', удаляется реплика для каждого хранилища - В противном случае логика не меняется: для баз данных только вызывается DatabaseReplicated::dropReplica - При удалении реплики базы данных с path в Keeper: - Если указан 'WITH TABLES': - Восстановить базу данных как Atomic - Восстановить таблицы RMT из оператора в Keeper - Удалить базу данных (восстановленные таблицы также удаляются) - В противном случае только вызывается DatabaseReplicated::dropReplica для указанного path в Keeper. [#85637](https://github.com/ClickHouse/ClickHouse/pull/85637) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Устранена несогласованность в форматировании TTL, содержащего функцию `materialize`. Закрывает [#82828](https://github.com/ClickHouse/ClickHouse/issues/82828). [#85749](https://github.com/ClickHouse/ClickHouse/pull/85749) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Настройка azure\_max\_single\_part\_copy\_size теперь применяется к обычным операциям копирования так же, как и к резервному копированию. [#85767](https://github.com/ClickHouse/ClickHouse/pull/85767) ([Ilya Golshtein](https://github.com/ilejn)).
* Замедляет потоки клиента S3 при ошибках с возможностью повторной попытки в объектном хранилище S3. Это расширяет действие предыдущей настройки `backup_slow_all_threads_after_retryable_s3_error` на S3-диски и переименовывает её в более общую `s3_slow_all_threads_after_retryable_error`. [#85918](https://github.com/ClickHouse/ClickHouse/pull/85918) ([Julia Kartseva](https://github.com/jkartseva)).
* Настройки allow\_experimental\_variant/dynamic/json и enable\_variant/dynamic/json помечены как устаревшие. Теперь все три типа включены безусловно. [#85934](https://github.com/ClickHouse/ClickHouse/pull/85934) ([Pavel Kruglov](https://github.com/Avogar)).
* Улучшен движок таблицы S3(Azure)Queue: теперь он может переживать потерю соединения с ZooKeeper без риска появления дубликатов. Требуется включить параметр S3Queue `use_persistent_processing_nodes` (его можно изменить с помощью `ALTER TABLE MODIFY SETTING`). [#85995](https://github.com/ClickHouse/ClickHouse/pull/85995) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Состояние таблицы Iceberg больше не хранится в объекте хранилища. Это должно обеспечить возможность использования Iceberg в ClickHouse с параллельными запросами. [#86062](https://github.com/ClickHouse/ClickHouse/pull/86062) ([Daniil Ivanik](https://github.com/divanik)).
* Добавлена настройка `query_condition_cache_selectivity_threshold` (значение по умолчанию: 1.0), которая исключает результаты сканирования предикатов с низкой селективностью из добавления в кэш условий запроса. Это позволяет снизить потребление памяти кэша условий запроса ценой уменьшения частоты попаданий в кэш. [#86076](https://github.com/ClickHouse/ClickHouse/pull/86076) ([zhongyuankai](https://github.com/zhongyuankai)).
* Добавлена поддержка фильтрации по полной строке URL (директива `full_url`) в `http_handlers` (включая схему и host:port). [#86155](https://github.com/ClickHouse/ClickHouse/pull/86155) ([Azat Khuzhin](https://github.com/azat)).
* Добавлена экспериментальная настройка `allow_experimental_delta_lake_writes` для возможности записи в delta lake; по умолчанию она отключена. [#86180](https://github.com/ClickHouse/ClickHouse/pull/86180) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Исправлено обнаружение systemd в скрипте init.d (исправлена проверка "Install packages"). [#86187](https://github.com/ClickHouse/ClickHouse/pull/86187) ([Azat Khuzhin](https://github.com/azat)).
* Добавлена новая размерная метрика `startup_scripts_failure_reason`. Эта метрика нужна, чтобы различать типы ошибок, из-за которых завершается сбоем выполнение скриптов запуска. В частности, для алертинга нужно различать временные (например, `MEMORY_LIMIT_EXCEEDED` или `KEEPER_EXCEPTION`) и постоянные ошибки. [#86202](https://github.com/ClickHouse/ClickHouse/pull/86202) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Несколько файлов данных при записи в Iceberg. [#86275](https://github.com/ClickHouse/ClickHouse/pull/86275) ([scanhex12](https://github.com/scanhex12)).
* Больше типов партиций при записи в Iceberg. Это закрывает [#86206](https://github.com/ClickHouse/ClickHouse/issues/86206). [#86298](https://github.com/ClickHouse/ClickHouse/pull/86298) ([scanhex12](https://github.com/scanhex12)).
* Разрешено не указывать функцию `identity()` для партиции в таблице Iceberg. [#86314](https://github.com/ClickHouse/ClickHouse/pull/86314) ([scanhex12](https://github.com/scanhex12)).
* Добавлена возможность включать JSON-логирование только для одного из каналов; для этого установите `logger.formatting.channel` в одно из значений: `syslog`/`console`/`errorlog`/`log`. [#86331](https://github.com/ClickHouse/ClickHouse/pull/86331) ([Azat Khuzhin](https://github.com/azat)).
* Добавлено ограничение на число строк/байтов в data files при вставке в delta lake. Управляется настройками `delta_lake_insert_max_rows_in_data_file` и `delta_lake_insert_max_bytes_in_data_file`. [#86357](https://github.com/ClickHouse/ClickHouse/pull/86357) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Разрешено использовать native-числа в `WHERE`. Они уже могут выступать аргументами логических функций. Это упрощает оптимизации filter-push-down и move-to-prewhere. [#86390](https://github.com/ClickHouse/ClickHouse/pull/86390) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Исправлена ошибка при выполнении `SYSTEM DROP REPLICA` над каталогом с повреждёнными метаданными. [#86391](https://github.com/ClickHouse/ClickHouse/pull/86391) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* В Azure добавлены дополнительные попытки проверки доступа к диску (`skip_access_check=0`), поскольку предоставление доступа может занимать довольно много времени. [#86419](https://github.com/ClickHouse/ClickHouse/pull/86419) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Параметр `evaluation_time` переименован в `promql_evaluation_time`. [#86459](https://github.com/ClickHouse/ClickHouse/pull/86459) ([Vitaly Baranov](https://github.com/vitlibar)).
* Параметр для удаления файлов при drop Iceberg. Это закрывает [#86211](https://github.com/ClickHouse/ClickHouse/issues/86211). [#86501](https://github.com/ClickHouse/ClickHouse/pull/86501) ([scanhex12](https://github.com/scanhex12)).
* Сокращено использование памяти при записи в Iceberg. [#86544](https://github.com/ClickHouse/ClickHouse/pull/86544) ([scanhex12](https://github.com/scanhex12)).
* Сделать функцию `today()` регистронезависимой для единообразия с другими функциями, связанными с датой и временем, такими как `NOW()`. [#86561](https://github.com/ClickHouse/ClickHouse/pull/86561) ([Kaviraj Kanagaraj](https://github.com/kavirajk)).
* Окно допустимой давности в функциях `timeSeries*()` сделано открытым слева и закрытым справа. [#86588](https://github.com/ClickHouse/ClickHouse/pull/86588) ([Vitaly Baranov](https://github.com/vitlibar)).
* Добавлены события профиля `FailedInternal*Query`. [#86627](https://github.com/ClickHouse/ClickHouse/pull/86627) ([Shane Andrade](https://github.com/mauidude)).
* Сделать блокировку бакета в упорядоченном режиме S3Queue постоянной, аналогично узлам `processing` при `use_persistent_processing_nodes = 1`. Добавить в тесты инъекцию сбоев Keeper. [#86628](https://github.com/ClickHouse/ClickHouse/pull/86628) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Исправлена обработка пользователей, в имени которых есть точка, при добавлении через файл конфигурации. [#86633](https://github.com/ClickHouse/ClickHouse/pull/86633) ([Mikhail Koviazin](https://github.com/mkmkme)).
* Добавлена асинхронная метрика использования памяти запросами (`QueriesMemoryUsage` и `QueriesPeakMemoryUsage`). [#86669](https://github.com/ClickHouse/ClickHouse/pull/86669) ([Azat Khuzhin](https://github.com/azat)).
* Вы можете использовать флаг `clickhouse-benchmark --precise` для более точного отображения QPS и других метрик в каждом интервале. Это помогает получать стабильный QPS в случаях, когда длительность запросов сопоставима с интервалом отчётности `--delay D`. [#86684](https://github.com/ClickHouse/ClickHouse/pull/86684) ([Sergei Trifonov](https://github.com/serxa)).
* Значения nice для потоков Linux сделаны настраиваемыми, чтобы можно было назначать некоторым потокам (merge/mutate, запрос, materialized view, клиент ZooKeeper) более высокий или более низкий приоритет. [#86703](https://github.com/ClickHouse/ClickHouse/pull/86703) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Исправлена вводящая в заблуждение ошибка «указанная загрузка не существует», возникающая, когда при multipart-загрузке из-за состояния гонки теряется исходное исключение. [#86725](https://github.com/ClickHouse/ClickHouse/pull/86725) ([Julia Kartseva](https://github.com/jkartseva)).
* Ограничено описание плана запроса в запросе `EXPLAIN`. Описание больше не вычисляется для запросов, отличных от `EXPLAIN`. Добавлена настройка `query_plan_max_step_description_length`. [#86741](https://github.com/ClickHouse/ClickHouse/pull/86741) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Добавлена возможность настраивать количество ожидающих сигналов в попытке избежать `CANNOT&#95;CREATE&#95;TIMER` (для профилировщиков запросов: `query_profiler_real_time_period_ns`/`query_profiler_cpu_time_period_ns`). Также для интроспекции теперь собирается `SigQ` из `/proc/self/status` (если `ProcessSignalQueueSize` близок к `ProcessSignalQueueLimit`, то, скорее всего, будут возникать ошибки `CANNOT_CREATE_TIMER`). [#86760](https://github.com/ClickHouse/ClickHouse/pull/86760) ([Azat Khuzhin](https://github.com/azat)).
* Распределённые операции вставки/select для озёр данных. [#86783](https://github.com/ClickHouse/ClickHouse/pull/86783) ([scanhex12](https://github.com/scanhex12)).
* Повышена производительность запроса RemoveRecursive в Keeper. [#86789](https://github.com/ClickHouse/ClickHouse/pull/86789) ([Antonio Andelic](https://github.com/antonio2368)).
* Удалены лишние пробелы в PrettyJSONEachRow при выводе данных типа JSON. [#86819](https://github.com/ClickHouse/ClickHouse/pull/86819) ([Pavel Kruglov](https://github.com/Avogar)).
* Увеличено окно дедупликации в реплицируемых таблицах до 10000. [#86820](https://github.com/ClickHouse/ClickHouse/pull/86820) ([Sema Checherinda](https://github.com/CheSema)).
* Теперь при удалении каталога на обычном перезаписываемом диске мы записываем размеры blob-объектов для `prefix.path`. [#86908](https://github.com/ClickHouse/ClickHouse/pull/86908) ([alesapin](https://github.com/alesapin)).
* Функция `yesterday()` сделана регистронезависимой и приведена в соответствие с функцией `today()`. [#86914](https://github.com/ClickHouse/ClickHouse/pull/86914) ([Kaviraj Kanagaraj](https://github.com/kavirajk)).
* Добавлена поддержка тестирования производительности `.xml` на удалённых инстансах ClickHouse, включая ClickHouse Cloud. Пример использования: `tests/performance/scripts/perf.py tests/performance/math.xml --runs 10 --user <username> --password <password> --host <hostname> --port <port> --secure`. [#86995](https://github.com/ClickHouse/ClickHouse/pull/86995) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Соблюдаются ограничения памяти в некоторых местах, где, как известно, выделяется значительный объём памяти (>16MiB) (сортировка, async inserts, file log). [#87035](https://github.com/ClickHouse/ClickHouse/pull/87035) ([Azat Khuzhin](https://github.com/azat)).
* Исправлена проблема, из-за которой небулевы настройки не устанавливали значения в запросах. Улучшение [#85800](https://github.com/ClickHouse/ClickHouse/issues/85800). [#87084](https://github.com/ClickHouse/ClickHouse/pull/87084) ([thraeka](https://github.com/thraeka)).
* Добавлена поддержка подсказок для имён форматов. Закрывает [#86761](https://github.com/ClickHouse/ClickHouse/issues/86761). [#87092](https://github.com/ClickHouse/ClickHouse/pull/87092) ([flynn](https://github.com/ucasfl)).
* На удалённых репликах анализ индексов пропускается при отсутствии проекций. [#87096](https://github.com/ClickHouse/ClickHouse/pull/87096) ([zoomxi](https://github.com/zoomxi)).
* Генерировать исключение, если значение настройки `network_compression_method` не является поддерживаемым универсальным кодеком. [#87097](https://github.com/ClickHouse/ClickHouse/pull/87097) ([Robert Schulze](https://github.com/rschu1ze)).
* Системная таблица `system.query_cache` теперь возвращает *все* записи кэша результатов запросов, тогда как раньше она возвращала только разделяемые записи или неразделяемые записи того же пользователя и роли. Это допустимо, поскольку неразделяемые записи не должны раскрывать *результаты запросов*, тогда как `system.query_cache` возвращает *строки запросов*. Это делает поведение системной таблицы более похожим на `system.query_log`. [#87104](https://github.com/ClickHouse/ClickHouse/pull/87104) ([Robert Schulze](https://github.com/rschu1ze)).
* Добавлена поддержка аутентификации и SSL в табличной функции `arrowFlight()`. [#87120](https://github.com/ClickHouse/ClickHouse/pull/87120) ([Vitaly Baranov](https://github.com/vitlibar)).
* Добавлен новый параметр `storage_class_name` для движка таблицы `S3` и табличной функции `s3`, который позволяет указать поддерживаемый AWS класс интеллектуального многоуровневого хранения. Поддерживается как в формате ключ-значение, так и в позиционном (устаревшем) формате. [#87122](https://github.com/ClickHouse/ClickHouse/pull/87122) ([alesapin](https://github.com/alesapin)).
* Добавлена возможность отключать кодировку UTF8 для таблицы YTsaurus. [#87150](https://github.com/ClickHouse/ClickHouse/pull/87150) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Добавлена поддержка Azure для дисков озер данных. [#87173](https://github.com/ClickHouse/ClickHouse/pull/87173) ([scanhex12](https://github.com/scanhex12)).
* Добавлен новый параметр текстового индекса `dictionary_block_frontcoding_compression` для управления сжатием словаря. По умолчанию он включен, и используется сжатие `front-coding`. [#87175](https://github.com/ClickHouse/ClickHouse/pull/87175) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Для функции parseDateTime включено сокращённое вычисление. [#87184](https://github.com/ClickHouse/ClickHouse/pull/87184) ([Pavel Kruglov](https://github.com/Avogar)).
* Добавлена поддержка `alter table ... materialize statistics all`, которая материализует всю статистику таблицы. [#87197](https://github.com/ClickHouse/ClickHouse/pull/87197) ([Han Fei](https://github.com/hanfei1991)).
* Параметр `s3_slow_all_threads_after_retryable_error` теперь отключён по умолчанию. [#87198](https://github.com/ClickHouse/ClickHouse/pull/87198) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Добавлена новая таблица `system.aggregated_zookeeper_log`. Таблица содержит статистику по операциям ZooKeeper (например, количество операций, среднюю задержку и ошибки), сгруппированную по идентификатору сеанса, родительскому пути и типу операции и периодически сбрасываемую на диск. [#87208](https://github.com/ClickHouse/ClickHouse/pull/87208) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Переименована table function `arrowflight` в `arrowFlight`. [#87249](https://github.com/ClickHouse/ClickHouse/pull/87249) ([Vitaly Baranov](https://github.com/vitlibar)).
* `clickhouse-benchmark` обновлён: теперь в его флагах CLI вместо `_` можно использовать `-`. [#87251](https://github.com/ClickHouse/ClickHouse/pull/87251) ([Ahmed Gouda](https://github.com/0xgouda)).
* Добавлена сеансовая настройка для исключения списка индексов пропуска данных из материализации при вставках (`exclude_materialize_skip_indexes_on_insert`). Добавлена настройка таблицы MergeTree для исключения списка индексов пропуска данных из материализации во время слияния (`exclude_materialize_skip_indexes_on_merge`). [#87252](https://github.com/ClickHouse/ClickHouse/pull/87252) ([George Larionov](https://github.com/george-larionov)).
* Сделан синхронный сброс в `system.crash_log` при обработке сигналов. [#87253](https://github.com/ClickHouse/ClickHouse/pull/87253) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Добавлен новый столбец `statistics` в `system.parts&#95;columns`. [#87259](https://github.com/ClickHouse/ClickHouse/pull/87259) ([Han Fei](https://github.com/hanfei1991)).
* Добавлена настройка `inject_random_order_for_select_without_order_by`, которая добавляет `ORDER BY rand()` в `SELECT`-запросы верхнего уровня без предложения `ORDER BY`. [#87261](https://github.com/ClickHouse/ClickHouse/pull/87261) ([Rui Zhang](https://github.com/zhangruiddn)).
* Поддержка других форматов (ORC, Avro) при записи данных в Iceberg. Это закрывает [#86179](https://github.com/ClickHouse/ClickHouse/issues/86179). [#87277](https://github.com/ClickHouse/ClickHouse/pull/87277) ([scanhex12](https://github.com/scanhex12)).
* Улучшено сообщение об ошибке `joinGet`, чтобы в нём корректно указывалось, что число `join_keys` не равно числу `right_table_keys`. [#87279](https://github.com/ClickHouse/ClickHouse/pull/87279) ([Isak Ellmer](https://github.com/spinojara)).
* Объединение данных из всех потоков перед вставкой в materialized views в соответствии с настройками `min_insert_block_size_rows_for_materialized_views` и `min_insert_block_size_bytes_for_materialized_views`. Ранее, если `parallel_view_processing` был включен, каждый поток, выполнявший вставку в конкретный materialized view, объединял данные независимо, что могло приводить к созданию большего числа частей. [#87280](https://github.com/ClickHouse/ClickHouse/pull/87280) ([Antonio Andelic](https://github.com/antonio2368)).
* Этот патч добавляет возможность проверять stat произвольного узла Keeper во время записи tx. Это может помочь выявлять проблему ABA. [#87282](https://github.com/ClickHouse/ClickHouse/pull/87282) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Тяжёлые запросы к YTsaurus теперь перенаправляются на тяжёлые прокси. [#87342](https://github.com/ClickHouse/ClickHouse/pull/87342) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Этот патч исправляет откаты операций unlink/rename/removeRecursive/removeDirectory/etc, а также счётчики жёстких ссылок во всех возможных рабочих нагрузках для метаданных из дисковых транзакций, и упрощает интерфейсы, делая их более универсальными, чтобы их можно было повторно использовать в других метахранилищах. [#87358](https://github.com/ClickHouse/ClickHouse/pull/87358) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Добавлен параметр конфигурации `keeper_server.tcp_nodelay`, который позволяет отключить `TCP_NODELAY` для Keeper. [#87363](https://github.com/ClickHouse/ClickHouse/pull/87363) (Copilot).
* Добавлена поддержка `--connection` в `clickhouse-benchmarks`. Этот параметр поддерживается так же, как в `clickhouse-client`: вы можете указать предопределённые подключения в клиентском `config.xml`/`config.yaml` по пути `connections_credentials`, чтобы не передавать имя пользователя и пароль явно через аргументы командной строки. В `clickhouse-benchmark` также добавлена поддержка `--accept-invalid-certificate`. [#87370](https://github.com/ClickHouse/ClickHouse/pull/87370) ([Azat Khuzhin](https://github.com/azat)).
* Теперь настройка `max_insert_threads` будет действовать и для таблиц Iceberg. [#87407](https://github.com/ClickHouse/ClickHouse/pull/87407) ([alesapin](https://github.com/alesapin)).
* В `PrometheusMetricsWriter` добавлены гистограммы и размерные метрики. Благодаря этому обработчик `PrometheusRequestHandler` будет иметь все необходимые метрики и сможет использоваться для надежного сбора метрик в облаке с низкими накладными расходами. [#87521](https://github.com/ClickHouse/ClickHouse/pull/87521) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Функция `hasToken` теперь возвращает 0 совпадений для пустого токена (тогда как раньше это вызывало исключение). [#87564](https://github.com/ClickHouse/ClickHouse/pull/87564) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Добавлена поддержка текстовых индексов для значений `Array` и `Map` (`mapKeys` и `mapValues`). Поддерживаются функции `mapContainsKey` и `has`. [#87602](https://github.com/ClickHouse/ClickHouse/pull/87602) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Добавлена новая метрика `ZooKeeperSessionExpired`, которая указывает на количество истёкших глобальных сеансов ZooKeeper. [#87613](https://github.com/ClickHouse/ClickHouse/pull/87613) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Используйте клиент хранилища S3 со специальными настройками для резервного копирования (например, backup\_slow\_all\_threads\_after\_retryable\_s3\_error) для серверного (native) копирования в пункт назначения резервной копии. Пометьте s3\_slow\_all\_threads\_after\_retryable\_error как устаревшую. [#87660](https://github.com/ClickHouse/ClickHouse/pull/87660) ([Julia Kartseva](https://github.com/jkartseva)).
* Исправлена некорректная обработка настроек `max_joined_block_size_rows` и `max_joined_block_size_bytes` при сериализации плана выполнения запроса с экспериментальным `make_distributed_plan`. [#87675](https://github.com/ClickHouse/ClickHouse/pull/87675) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Параметр `enable_http_compression` теперь включен по умолчанию. Это означает, что если клиент принимает HTTP-сжатие, сервер будет его использовать. Однако у этого изменения есть и определенные недостатки. Клиент может запросить ресурсоемкий метод сжатия, например `bzip2`, что не имеет особого смысла и увеличит потребление ресурсов сервера (но это будет заметно только при передаче больших результатов). Клиент также может запросить `gzip`, что не так уж плохо, но все же менее оптимально, чем `zstd`. Закрывает [#71591](https://github.com/ClickHouse/ClickHouse/issues/71591). [#87703](https://github.com/ClickHouse/ClickHouse/pull/87703) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Добавлена новая настройка `keeper_hosts`, которая предоставляет список хостов \[Zoo]Keeper, к которым может подключаться ClickHouse. [#87718](https://github.com/ClickHouse/ClickHouse/pull/87718) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Добавлена команда `ALTER TABLE REWRITE PARTS` — полностью переписывает части таблицы с нуля с использованием всех новых настроек (поскольку некоторые из них, например `use_const_adaptive_granularity`, применяются только к новым частям). [#87774](https://github.com/ClickHouse/ClickHouse/pull/87774) ([Azat Khuzhin](https://github.com/azat)).
* Добавлены значения `from` и `to` в системные панели мониторинга для упрощения ретроспективного анализа. [#87823](https://github.com/ClickHouse/ClickHouse/pull/87823) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Добавлена дополнительная информация для отслеживания производительности в Iceberg SELECT-запросах. [#87903](https://github.com/ClickHouse/ClickHouse/pull/87903) ([Daniil Ivanik](https://github.com/divanik)).
* Добавлена новая настройка `joined_block_split_single_row`, снижающая использование памяти в hash JOIN при большом числе совпадений на один ключ. Она позволяет разбивать результаты hash JOIN на фрагменты даже для совпадений, относящихся к одной строке левой таблицы, что особенно полезно, когда одной строке левой таблицы соответствуют тысячи или миллионы строк правой таблицы. Ранее все совпадения приходилось материализовать в памяти сразу. Это снижает пиковое потребление памяти, но может увеличить нагрузку на CPU. [#87913](https://github.com/ClickHouse/ClickHouse/pull/87913) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Улучшение файлового кэша: повторное использование итератора приоритета кэша в потоках, которые одновременно резервируют место в кэше. [#87914](https://github.com/ClickHouse/ClickHouse/pull/87914) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Добавлена возможность ограничивать размер запросов для `Keeper` (настройка `max_request_size`, аналогичная `jute.maxbuffer` для `ZooKeeper`; по умолчанию **OFF** для обратной совместимости, будет включена в следующих релизах). [#87952](https://github.com/ClickHouse/ClickHouse/pull/87952) ([Azat Khuzhin](https://github.com/azat)).
* Исправлено: `clickhouse-benchmark` больше не включает трассировки стека в сообщения об ошибках по умолчанию. [#87954](https://github.com/ClickHouse/ClickHouse/pull/87954) ([Ahmed Gouda](https://github.com/0xgouda)).
* Избегайте использования асинхронной загрузки меток в пуле потоков (`load_marks_asynchronously=1`), когда метки находятся в кеше (поскольку пул может быть перегружен, и запросы будут нести из-за этого дополнительные издержки, даже если метки уже находятся в кеше). [#87967](https://github.com/ClickHouse/ClickHouse/pull/87967) ([Azat Khuzhin](https://github.com/azat)).
* Ytsaurus: теперь можно создавать таблицы/табличные функции/словари с подмножеством столбцов. [#87982](https://github.com/ClickHouse/ClickHouse/pull/87982) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Теперь `system.zookeeper_connection_log` включен по умолчанию и может использоваться для получения информации о сеансах Keeper. [#88011](https://github.com/ClickHouse/ClickHouse/pull/88011) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Поведение TCP и HTTP при передаче дублирующихся внешних таблиц сделано согласованным. HTTP позволяет передавать временную таблицу несколько раз. [#88032](https://github.com/ClickHouse/ClickHouse/pull/88032) ([Sema Checherinda](https://github.com/CheSema)).
* Удалены пользовательские MemoryPools для чтения Arrow/ORC/Parquet. Этот компонент, по-видимому, больше не нужен после [https://github.com/ClickHouse/ClickHouse/pull/84082](https://github.com/ClickHouse/ClickHouse/pull/84082), поскольку теперь мы и так отслеживаем все выделения. [#88035](https://github.com/ClickHouse/ClickHouse/pull/88035) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Теперь можно создавать базу данных `Replicated` без аргументов. [#88044](https://github.com/ClickHouse/ClickHouse/pull/88044) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Добавлена поддержка подключения к TLS-порту clickhouse-keeper, имена флагов сохранены такими же, как в clickhouse-client. [#88065](https://github.com/ClickHouse/ClickHouse/pull/88065) ([Pradeep Chhetri](https://github.com/chhetripradeep)).
* Добавлено новое событие профиля для отслеживания числа случаев, когда фоновое слияние было отклонено из-за превышения лимита памяти. [#88084](https://github.com/ClickHouse/ClickHouse/pull/88084) ([Grant Holly](https://github.com/grantholly-clickhouse)).
* В функцию `generateSerialID` добавлен необязательный параметр `start_value`, позволяющий задавать пользовательские начальные значения для новых серий. [#88085](https://github.com/ClickHouse/ClickHouse/pull/88085) ([Manuel](https://github.com/raimannma)).
* Включает анализатор для проверки выражений значений по умолчанию столбцов в CREATE/ALTER TABLE. [#88087](https://github.com/ClickHouse/ClickHouse/pull/88087) ([Max Justus Spransy](https://github.com/maxjustus)).
* Улучшено внутреннее планирование запросов: для `CROSS JOIN` теперь используется JoinStepLogical. [#88151](https://github.com/ClickHouse/ClickHouse/pull/88151) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Полностью поддерживается оператор `IS NOT DISTINCT FROM` (`<=>`). [#88155](https://github.com/ClickHouse/ClickHouse/pull/88155) ([simonmichal](https://github.com/simonmichal)).
* По умолчанию включён глобальный профилировщик сэмплирования: трассировки стека всех потоков собираются каждые 10 секунд процессорного и реального времени. [#88209](https://github.com/ClickHouse/ClickHouse/pull/88209) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Исправлена поддержка операций `EXCHANGE TABLES` для таблиц с движком `Alias`. Теперь движок хранит целевую таблицу в виде имён базы данных и таблицы, а не постоянного идентификатора хранилища, что позволяет корректно находить её после обмена таблицами. [#88233](https://github.com/ClickHouse/ClickHouse/pull/88233) ([Kai Zhu](https://github.com/nauu)).
* Добавлена настройка `temporary_files_buffer_size` для управления размером буфера при записи во временные файлы. \* Оптимизировано потребление памяти операцией `scatter` (используемой, например, в grace hash join) для столбцов `LowCardinality`. [#88237](https://github.com/ClickHouse/ClickHouse/pull/88237) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Добавлена поддержка прямого чтения из текстовых индексов при использовании параллельных реплик. Повышена производительность чтения текстовых индексов из объектного хранилища. [#88262](https://github.com/ClickHouse/ClickHouse/pull/88262) ([Anton Popov](https://github.com/CurtizJ)).
* Теперь функция `generateSerialID` поддерживает неконстантный аргумент, задающий имя серии. Закрывает [#83750](https://github.com/ClickHouse/ClickHouse/issues/83750). [#88270](https://github.com/ClickHouse/ClickHouse/pull/88270) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* База данных каталогов Datalakes для задач распределённой обработки. [#88273](https://github.com/ClickHouse/ClickHouse/pull/88273) ([scanhex12](https://github.com/scanhex12)).
* Обновлён Azure SDK: добавлено исправление для 'Content-Length', связанной с функциями копирования и создания контейнера. [#88278](https://github.com/ClickHouse/ClickHouse/pull/88278) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Имя функции lag теперь регистронезависимо для совместимости с MySQL. [#88322](https://github.com/ClickHouse/ClickHouse/pull/88322) ([Lonny Kapelushnik](https://github.com/lonnylot)).
* Добавлен параметр config `keeper_server.coordination_settings.check_node_acl_on_remove`. Если он включен, перед каждым удалением узла будут проверяться ACL как самого узла, так и родительского. В противном случае будет проверяться только ACL родительского узла. [#88513](https://github.com/ClickHouse/ClickHouse/pull/88513) ([Antonio Andelic](https://github.com/antonio2368)).
* `JSON`-столбцы теперь выводятся в удобочитаемом виде при использовании формата `Vertical`. Закрывает [#81794](https://github.com/ClickHouse/ClickHouse/issues/81794). [#88524](https://github.com/ClickHouse/ClickHouse/pull/88524) ([Frank Rosner](https://github.com/FRosner)).
* Файлы `clickhouse-client` (например, историю запросов) теперь хранятся в местах, описанных в спецификации [XDG Base Directories](https://specifications.freedesktop.org/basedir-spec/latest/index.html), а не в корне домашнего каталога. `~/.clickhouse-client-history` по-прежнему будет использоваться, если он уже существует. [#88538](https://github.com/ClickHouse/ClickHouse/pull/88538) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Исправлена утечка памяти, вызванная `GLOBAL IN` ([https://github.com/ClickHouse/ClickHouse/issues/88615](https://github.com/ClickHouse/ClickHouse/issues/88615)). [#88617](https://github.com/ClickHouse/ClickHouse/pull/88617) ([pranav mehta](https://github.com/pranavmehta94)).
* Добавлена перегрузка для hasAny/hasAllTokens с поддержкой строкового ввода. [#88679](https://github.com/ClickHouse/ClickHouse/pull/88679) ([George Larionov](https://github.com/george-larionov)).
* После этого исправления эвристика `to_remove_small_parts_at_right` будет выполняться до вычисления оценки диапазона слияния. До этого selector merge выбирал wide-слияние, а затем отфильтровывал его суффикс. Исправление: [#85374](https://github.com/ClickHouse/ClickHouse/issues/85374). [#88736](https://github.com/ClickHouse/ClickHouse/pull/88736) ([Mikhail Artemenko](https://github.com/Michicosun)).
* В скрипт postinstall для `clickhouse-keeper` добавлен шаг, который включает запуск при загрузке системы. [#88746](https://github.com/ClickHouse/ClickHouse/pull/88746) ([YenchangChan](https://github.com/YenchangChan)).
* Проверка учетных данных в веб-интерфейсе теперь выполняется только при вставке, а не при каждом нажатии клавиши. Это позволяет избежать проблемы с неправильно настроенными LDAP-серверами. Исправляет [#85777](https://github.com/ClickHouse/ClickHouse/issues/85777). [#88769](https://github.com/ClickHouse/ClickHouse/pull/88769) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ограничена длина сообщения об Исключении при нарушении ограничения. В предыдущих версиях при вставке очень длинной строки можно было получить очень длинное сообщение об Исключении, которое в итоге записывалось в query\_log. Закрывает [#87032](https://github.com/ClickHouse/ClickHouse/issues/87032). [#88801](https://github.com/ClickHouse/ClickHouse/pull/88801) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="bug-fix">
  #### Исправление ошибки (некорректное поведение, заметное пользователю, в официальном стабильном релизе)
</div>

* Результаты alter-запросов теперь проверяются только на узле-инициаторе для баз данных Replicated и внутренне реплицируемых таблиц. Это устраняет ситуации, когда уже зафиксированный alter-запрос мог зависнуть на других узлах. [#83849](https://github.com/ClickHouse/ClickHouse/pull/83849) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Ограничено число задач каждого типа в `BackgroundSchedulePool`. Это позволяет избежать ситуаций, когда все слоты заняты задачами одного типа, а остальные задачи простаивают без ресурсов. Также это помогает избежать взаимных блокировок, когда задачи ждут друг друга. Это регулируется настройкой сервера `background_schedule_pool_max_parallel_tasks_per_type_ratio`. [#84008](https://github.com/ClickHouse/ClickHouse/pull/84008) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Исправлен GeoParquet, из-за которого возникали ошибки клиентского протокола. [#84020](https://github.com/ClickHouse/ClickHouse/pull/84020) ([Michael Kolupaev](https://github.com/al13n321)).
* Исправлено разрешение функций, зависящих от хоста, таких как shardNum(), в подзапросах на узле-инициаторе. [#84409](https://github.com/ClickHouse/ClickHouse/pull/84409) ([Eduard Karacharov](https://github.com/korowa)).
* Корректно завершайте работу таблиц при восстановлении реплики базы данных. Некорректное завершение работы могло приводить к LOGICAL\_ERROR для некоторых движков таблиц во время восстановления реплики базы данных. [#84744](https://github.com/ClickHouse/ClickHouse/pull/84744) ([Antonio Andelic](https://github.com/antonio2368)).
* Проверка прав доступа при генерации подсказок по исправлению опечаток в имени базы данных. [#85371](https://github.com/ClickHouse/ClickHouse/pull/85371) ([Dmitry Novik](https://github.com/novikd)).
* Исправлена некорректная обработка дат до `epoch` с дробными секундами в различных функциях, связанных с дата-время, таких как `parseDateTime64BestEffort`, `change{Year,Month,Day}` и `makeDateTime64`. Ранее дробная часть секунды вычиталась из секунд вместо того, чтобы прибавляться. Например, `parseDateTime64BestEffort('1969-01-01 00:00:00.468')` возвращала `1968-12-31 23:59:59.532` вместо `1969-01-01 00:00:00.468`. [#85396](https://github.com/ClickHouse/ClickHouse/pull/85396) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* 1. LowCardinality для столбцов hive 2. Заполнять столбцы hive до виртуальных столбцов (требуется для [https://github.com/ClickHouse/ClickHouse/pull/81040](https://github.com/ClickHouse/ClickHouse/pull/81040)) 3. LOGICAL\_ERROR при пустом формате для hive [#85528](https://github.com/ClickHouse/ClickHouse/issues/85528) 4. Исправлена проверка случая, когда столбцы партиции hive являются единственными столбцами 5. Проверять, что в схеме указаны все столбцы hive 6. Частичное исправление для parallel\_replicas\_cluster с hive 7. Использовать упорядоченный контейнер в extractkeyValuePairs для утилит hive (требуется для [https://github.com/ClickHouse/ClickHouse/pull/81040](https://github.com/ClickHouse/ClickHouse/pull/81040)). [#85538](https://github.com/ClickHouse/ClickHouse/pull/85538) ([Arthur Passos](https://github.com/arthurpassos)).
* Предотвращена ненужная оптимизация первого аргумента функций `IN`, которая в некоторых случаях приводила к ошибке при использовании маппинга массива. [#85546](https://github.com/ClickHouse/ClickHouse/pull/85546) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Соответствие между идентификаторами источников Iceberg и именами в Parquet не приводилось в соответствие со схемой при записи файла Parquet. В этом PR обрабатывается схема, относящаяся к каждому файлу данных Iceberg, а не текущая схема. [#85829](https://github.com/ClickHouse/ClickHouse/pull/85829) ([Daniil Ivanik](https://github.com/divanik)).
* Исправлено чтение размера файла отдельно от его открытия. Связано с [https://github.com/ClickHouse/ClickHouse/pull/33372](https://github.com/ClickHouse/ClickHouse/pull/33372), который был внесён в ответ на ошибку в ядрах Linux версий до `5.10`. [#85837](https://github.com/ClickHouse/ClickHouse/pull/85837) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* ClickHouse Keeper больше не не запускается в системах, где IPv6 отключён на уровне ядра (например, в RHEL с `ipv6.disable=1`). Теперь он пытается переключиться на прослушивание по IPv4, если первоначальная попытка прослушивания по IPv6 завершается неудачей. [#85901](https://github.com/ClickHouse/ClickHouse/pull/85901) ([jskong1124](https://github.com/jskong1124)).
* Этот PR закрывает [#77990](https://github.com/ClickHouse/ClickHouse/issues/77990). Добавлена поддержка параллельных реплик в globalJoin для TableFunctionRemote. [#85929](https://github.com/ClickHouse/ClickHouse/pull/85929) ([zoomxi](https://github.com/zoomxi)).
* Исправлено обращение к нулевому указателю в OrcSchemaReader::initializeIfNeeded(). Этот PR устраняет следующую проблему: [#85292](https://github.com/ClickHouse/ClickHouse/issues/85292). [#85951](https://github.com/ClickHouse/ClickHouse/pull/85951) ([yanglongwei](https://github.com/ylw510)).
* Добавлена проверка, которая разрешает коррелированные подзапросы в секции FROM только в том случае, если они используют столбцы внешнего запроса. Исправляет [#85469](https://github.com/ClickHouse/ClickHouse/issues/85469). Исправляет [#85402](https://github.com/ClickHouse/ClickHouse/issues/85402). [#85966](https://github.com/ClickHouse/ClickHouse/pull/85966) ([Dmitry Novik](https://github.com/novikd)).
* Исправлена работа `ALTER UPDATE` при обновлении столбца, подстолбец которого используется в материализованном выражении другого столбца. Ранее материализованный столбец, в выражении которого использовался подстолбец, обновлялся некорректно. [#85985](https://github.com/ClickHouse/ClickHouse/pull/85985) ([Pavel Kruglov](https://github.com/Avogar)).
* Запретить изменение столбцов, чьи подстолбцы используются в PK или в выражении партиционирования. [#86005](https://github.com/ClickHouse/ClickHouse/pull/86005) ([Pavel Kruglov](https://github.com/Avogar)).
* Исправлена ошибка, из-за которой команды ALTER COLUMN IF EXISTS завершались с ошибкой, если состояние столбца изменялось в рамках того же оператора ALTER. Команды DROP COLUMN IF EXISTS, MODIFY COLUMN IF EXISTS, COMMENT COLUMN IF EXISTS и RENAME COLUMN IF EXISTS теперь корректно обрабатывают случаи, когда столбец удалён предыдущей командой в том же операторе. [#86046](https://github.com/ClickHouse/ClickHouse/pull/86046) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* Исправлено чтение подстолбцов при нестандартном режиме сопоставления столбцов в хранилище DeltaLake. [#86064](https://github.com/ClickHouse/ClickHouse/pull/86064) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Исправлено применение неверных значений по умолчанию для пути с подсказкой Enum внутри JSON. [#86065](https://github.com/ClickHouse/ClickHouse/pull/86065) ([Pavel Kruglov](https://github.com/Avogar)).
* Разбор URL каталога Hive в DataLake с санитизацией входных данных. Закрывает [#86018](https://github.com/ClickHouse/ClickHouse/issues/86018). [#86092](https://github.com/ClickHouse/ClickHouse/pull/86092) ([rajat mohan](https://github.com/rajatmohan22)).
* Исправлена логическая ошибка при динамическом изменении размера файлового кэша. Исправление закрывает [#86122](https://github.com/ClickHouse/ClickHouse/issues/86122). Исправление закрывает [https://github.com/ClickHouse/clickhouse-core-incidents/issues/473](https://github.com/ClickHouse/clickhouse-core-incidents/issues/473). [#86130](https://github.com/ClickHouse/ClickHouse/pull/86130) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Используйте `NonZeroUInt64` в качестве значения для `logs_to_keep` в DatabaseReplicatedSettings. [#86142](https://github.com/ClickHouse/ClickHouse/pull/86142) ([Tuan Pham Anh](https://github.com/tuanpach)).
* При выполнении запроса `FINAL` с индексом пропуска данных возникало исключение, если таблица (например, `ReplacingMergeTree`) была создана с настройкой `index_granularity_bytes = 0`. Теперь это исправлено. [#86147](https://github.com/ClickHouse/ClickHouse/pull/86147) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Устраняет UB и исправляет ошибки при разборе выражения партиционирования Iceberg. [#86166](https://github.com/ClickHouse/ClickHouse/pull/86166) ([Daniil Ivanik](https://github.com/divanik)).
* Исправлено определение типов Date/DateTime/DateTime64 для дат, выходящих за пределы поддерживаемого диапазона. [#86184](https://github.com/ClickHouse/ClickHouse/pull/86184) ([Pavel Kruglov](https://github.com/Avogar)).
* Исправлен сбой при наличии константных и неконстантных блоков в одной операции INSERT. [#86230](https://github.com/ClickHouse/ClickHouse/pull/86230) ([Azat Khuzhin](https://github.com/azat)).
* При создании дисков из SQL теперь по умолчанию обрабатываются директивы include из `/etc/metrika.xml`. [#86232](https://github.com/ClickHouse/ClickHouse/pull/86232) ([alekar](https://github.com/alekar)).
* Исправлено преобразование accurateCastOrNull/accurateCastOrDefault из String в JSON. [#86240](https://github.com/ClickHouse/ClickHouse/pull/86240) ([Pavel Kruglov](https://github.com/Avogar)).
* Добавлена поддержка каталогов без '/' в движке Iceberg. [#86249](https://github.com/ClickHouse/ClickHouse/pull/86249) ([scanhex12](https://github.com/scanhex12)).
* Исправлен сбой при использовании replaceRegex с haystack типа FixedString и пустым needle. [#86270](https://github.com/ClickHouse/ClickHouse/pull/86270) ([Raúl Marín](https://github.com/Algunenano)).
* Исправлен сбой при ALTER UPDATE Nullable(JSON). [#86281](https://github.com/ClickHouse/ClickHouse/pull/86281) ([Pavel Kruglov](https://github.com/Avogar)).
* Исправлено отсутствие столбца definer в system.tables. [#86295](https://github.com/ClickHouse/ClickHouse/pull/86295) ([Raúl Marín](https://github.com/Algunenano)).
* Исправлено приведение из LowCardinality(Nullable(T)) в Dynamic. [#86365](https://github.com/ClickHouse/ClickHouse/pull/86365) ([Pavel Kruglov](https://github.com/Avogar)).
* Исправлена логическая ошибка при записи в DeltaLake. Закрыт [#86175](https://github.com/ClickHouse/ClickHouse/issues/86175). [#86367](https://github.com/ClickHouse/ClickHouse/pull/86367) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Исправлена ошибка `416 The range specified is invalid for the current size of the resource. The range specified is invalid for the current size of the resource` при чтении пустых blob-объектов из Azure Blob Storage на диске `plain&#95;rewritable`. [#86400](https://github.com/ClickHouse/ClickHouse/pull/86400) ([Julia Kartseva](https://github.com/jkartseva)).
* Исправлена работа `GROUP BY Nullable(JSON)`. [#86410](https://github.com/ClickHouse/ClickHouse/pull/86410) ([Pavel Kruglov](https://github.com/Avogar)).
* Исправлена ошибка в materialized views: MV мог не работать, если его создавали, удаляли, а затем снова создавали с тем же именем. [#86413](https://github.com/ClickHouse/ClickHouse/pull/86413) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Возвращать ошибку, если при чтении из функций \*cluster недоступны все реплики. [#86414](https://github.com/ClickHouse/ClickHouse/pull/86414) ([Julian Maicher](https://github.com/jmaicher)).
* Устранена утечка `MergesMutationsMemoryTracking`, вызванная таблицами `Buffer`, а также исправлен `query_views_log` при стриминге из `Kafka` (и других источников). [#86422](https://github.com/ClickHouse/ClickHouse/pull/86422) ([Azat Khuzhin](https://github.com/azat)).
* Исправлена работа SHOW TABLES после удаления ссылочной таблицы alias-хранилища. [#86433](https://github.com/ClickHouse/ClickHouse/pull/86433) ([RinChanNOW](https://github.com/RinChanNOWWW)).
* Исправлена проблема с отсутствующим заголовком фрагмента, когда включен send\_chunk\_header и UDF вызывается через HTTP-протокол. [#86469](https://github.com/ClickHouse/ClickHouse/pull/86469) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Исправлена возможная взаимная блокировка при включенных операциях сброса профиля jemalloc. [#86473](https://github.com/ClickHouse/ClickHouse/pull/86473) ([Azat Khuzhin](https://github.com/azat)).
* Исправлено чтение подстолбцов в таблицах с движком DeltaLake. Закрывает [#86204](https://github.com/ClickHouse/ClickHouse/issues/86204). [#86477](https://github.com/ClickHouse/ClickHouse/pull/86477) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Правильная обработка ID loopback-хоста во избежание коллизий при обработке DDL-задач:. [#86479](https://github.com/ClickHouse/ClickHouse/pull/86479) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Исправлена работа операций detach/attach для таблиц движка базы данных PostgreSQL со столбцами типов numeric/decimal. [#86480](https://github.com/ClickHouse/ClickHouse/pull/86480) ([Julian Maicher](https://github.com/jmaicher)).
* Исправлено использование неинициализированной памяти в getSubcolumnType. [#86498](https://github.com/ClickHouse/ClickHouse/pull/86498) ([Raúl Marín](https://github.com/Algunenano)).
* Функции `searchAny` и `searchAll` при вызове с пустыми подстроками теперь возвращают `true` (то есть "совпадает со всем"). Ранее они возвращали `false`. (issue [#86300](https://github.com/ClickHouse/ClickHouse/issues/86300)). [#86500](https://github.com/ClickHouse/ClickHouse/pull/86500) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Исправлена работа функции `timeSeriesResampleToGridWithStaleness()`, если в первом бакете нет значения. [#86507](https://github.com/ClickHouse/ClickHouse/pull/86507) ([Vitaly Baranov](https://github.com/vitlibar)).
* Исправлен сбой, возникавший при установке `merge_tree_min_read_task_size` в 0. [#86527](https://github.com/ClickHouse/ClickHouse/pull/86527) ([yanglongwei](https://github.com/ylw510)).
* При чтении формат каждого файла данных теперь берётся из метаданных Iceberg (ранее он брался из аргументов таблицы). [#86529](https://github.com/ClickHouse/ClickHouse/pull/86529) ([Daniil Ivanik](https://github.com/divanik)).
* Исправлено аварийное завершение работы, из-за которого некоторые корректные данные, отправленные пользователем в столбец `AggregateFunction(quantileDD)`, могли приводить к бесконечной рекурсии операций слияния. [#86560](https://github.com/ClickHouse/ClickHouse/pull/86560) ([Raphaël Thériault](https://github.com/raphael-theriault-swi)).
* Исправлено исключение в движке БД Backup, возникавшее при запросе с файлами part нулевого размера. [#86563](https://github.com/ClickHouse/ClickHouse/pull/86563) ([Max Justus Spransy](https://github.com/maxjustus)).
* Исправлено отсутствие заголовка фрагмента при включенном send\_chunk\_header и вызове UDF через HTTP-протокол. [#86606](https://github.com/ClickHouse/ClickHouse/pull/86606) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Исправлена логическая ошибка S3Queue "Expected current processor {} to be equal to {}", возникавшая из-за истечения срока действия сеанса Keeper. [#86615](https://github.com/ClickHouse/ClickHouse/pull/86615) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ошибки, связанные с Nullable, при вставке и pruning. Это закрывает [#86407](https://github.com/ClickHouse/ClickHouse/issues/86407). [#86630](https://github.com/ClickHouse/ClickHouse/pull/86630) ([scanhex12](https://github.com/scanhex12)).
* Не отключайте кэш файловой системы, если отключён кэш метаданных Iceberg. [#86635](https://github.com/ClickHouse/ClickHouse/pull/86635) ([Daniil Ivanik](https://github.com/divanik)).
* Исправлена ошибка 'Deadlock in Parquet::ReadManager (single-threaded)' в ридере Parquet v3. [#86644](https://github.com/ClickHouse/ClickHouse/pull/86644) ([Michael Kolupaev](https://github.com/al13n321)).
* Исправлена работа IPv6 в `listen_host` для ArrowFlight. [#86664](https://github.com/ClickHouse/ClickHouse/pull/86664) ([Vitaly Baranov](https://github.com/vitlibar)).
* Исправлено завершение работы обработчика `ArrowFlight`. Этот PR исправляет [#86596](https://github.com/ClickHouse/ClickHouse/issues/86596). [#86665](https://github.com/ClickHouse/ClickHouse/pull/86665) ([Vitaly Baranov](https://github.com/vitlibar)).
* Исправлена работа распределённых запросов при `describe_compact_output=1`. [#86676](https://github.com/ClickHouse/ClickHouse/pull/86676) ([Azat Khuzhin](https://github.com/azat)).
* Исправлены ошибки в разборе определения окна и применении параметров запроса. [#86720](https://github.com/ClickHouse/ClickHouse/pull/86720) ([Azat Khuzhin](https://github.com/azat)).
* Исправлено исключение `Partition strategy wildcard can not be used without a '_partition_id' wildcard.` при создании таблицы с `PARTITION BY`, но без подстановочного знака партиции, что ранее работало в версиях до 25.8. Закрывает [https://github.com/ClickHouse/clickhouse-private/issues/37567](https://github.com/ClickHouse/clickhouse-private/issues/37567). [#86748](https://github.com/ClickHouse/ClickHouse/pull/86748) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Исправлен LogicalError, возникавший при попытке параллельных запросов захватить одну блокировку. [#86751](https://github.com/ClickHouse/ClickHouse/pull/86751) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Исправлена запись значения NULL в общие данные JSON во входном формате RowBinary, а также добавлены дополнительные проверки в ColumnObject. [#86812](https://github.com/ClickHouse/ClickHouse/pull/86812) ([Pavel Kruglov](https://github.com/Avogar)).
* Добавлена поддержка типов JSON/Dynamic в таблице, созданной с помощью табличной функции `cluster`. [#86821](https://github.com/ClickHouse/ClickHouse/pull/86821) ([Pavel Kruglov](https://github.com/Avogar)).
* Исправлена перестановка для пустого Tuple с limit. [#86828](https://github.com/ClickHouse/ClickHouse/pull/86828) ([Pavel Kruglov](https://github.com/Avogar)).
* Не используйте отдельный узел Keeper для узлов постоянной обработки. Исправление для [https://github.com/ClickHouse/ClickHouse/pull/85995](https://github.com/ClickHouse/ClickHouse/pull/85995). Закрывает [#86406](https://github.com/ClickHouse/ClickHouse/issues/86406). [#86841](https://github.com/ClickHouse/ClickHouse/pull/86841) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Исправлена ошибка, из-за которой таблица с движком TimeSeries препятствовала созданию новой реплики в базе данных Replicated. [#86845](https://github.com/ClickHouse/ClickHouse/pull/86845) ([Nikolay Degterinsky](https://github.com/evillique)).
* Исправлены запросы к `system.distributed_ddl_queue` в случаях, когда у задач отсутствуют некоторые узлы Keeper. [#86848](https://github.com/ClickHouse/ClickHouse/pull/86848) ([Antonio Andelic](https://github.com/antonio2368)).
* Исправлено смещение указателя чтения в конце распакованного блока. [#86906](https://github.com/ClickHouse/ClickHouse/pull/86906) ([Pavel Kruglov](https://github.com/Avogar)).
* Обработка исключения, возникающего во время асинхронного выполнения Iceberg Iterator. [#86932](https://github.com/ClickHouse/ClickHouse/pull/86932) ([Daniil Ivanik](https://github.com/divanik)).
* Исправлено сохранение крупных предварительно обработанных XML-конфигураций. [#86934](https://github.com/ClickHouse/ClickHouse/pull/86934) ([c-end](https://github.com/c-end)).
* Исправлено заполнение поля date в таблице system.iceberg\_metadata\_log. [#86961](https://github.com/ClickHouse/ClickHouse/pull/86961) ([Daniil Ivanik](https://github.com/divanik)).
* Исправлен бесконечный пересчёт `TTL` при использовании `WHERE`. [#86965](https://github.com/ClickHouse/ClickHouse/pull/86965) ([Anton Popov](https://github.com/CurtizJ)).
* Исправлена недетерминированность результата функции, вычисляемой в CTE, в запросе. [#86967](https://github.com/ClickHouse/ClickHouse/pull/86967) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Исправлен LOGICAL\_ERROR в EXPLAIN при использовании pointInPolygon для столбцов первичного ключа. [#86971](https://github.com/ClickHouse/ClickHouse/pull/86971) ([Michael Kolupaev](https://github.com/al13n321)).
* Исправлена возможная ошибка в результате функции `uniqExact` с модификаторами `ROLLUP` и `CUBE`. [#87014](https://github.com/ClickHouse/ClickHouse/pull/87014) ([Nikita Taranov](https://github.com/nickitat)).
* Исправлена работа с таблицами озера данных, в имени которых есть percent-encoded последовательность. Закрывает [#86626](https://github.com/ClickHouse/ClickHouse/issues/86626). [#87020](https://github.com/ClickHouse/ClickHouse/pull/87020) ([Anton Ivashkin](https://github.com/ianton-ru)).
* Исправлена ошибка разрешения схемы таблицы в табличной функции `url()`, когда значение параметра `parallel_replicas_for_cluster_functions` равно 1. [#87029](https://github.com/ClickHouse/ClickHouse/pull/87029) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Корректное приведение типов результата PREWHERE после его разбиения на несколько шагов. [#87040](https://github.com/ClickHouse/ClickHouse/pull/87040) ([Antonio Andelic](https://github.com/antonio2368)).
* Исправлена работа легковесных обновлений с предложением `ON CLUSTER`. [#87043](https://github.com/ClickHouse/ClickHouse/pull/87043) ([Anton Popov](https://github.com/CurtizJ)).
* Исправлена совместимость состояний некоторых агрегатных функций с аргументом типа String. [#87049](https://github.com/ClickHouse/ClickHouse/pull/87049) ([Pavel Kruglov](https://github.com/Avogar)).
* Исправлено некорректное поведение `IS NULL` для столбцов с типом Nullable в `OUTER JOIN` при использовании `optimize_functions_to_subcolumns`, закрыт [#78625](https://github.com/ClickHouse/ClickHouse/issues/78625). [#87058](https://github.com/ClickHouse/ClickHouse/pull/87058) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Исправлена проблема, из-за которой не передавалось имя модели из OpenAI. [#87100](https://github.com/ClickHouse/ClickHouse/pull/87100) ([Kaushik Iska](https://github.com/iskakaushik)).
* EmbeddedRocksDB: путь должен находиться в каталоге user\_files. [#87109](https://github.com/ClickHouse/ClickHouse/pull/87109) ([Raúl Marín](https://github.com/Algunenano)).
* Исправлена ошибка в таблицах KeeperMap, созданных до версии 25.1: после запроса DROP в ZooKeeper оставались данные. [#87112](https://github.com/ClickHouse/ClickHouse/pull/87112) ([Nikolay Degterinsky](https://github.com/evillique)).
* Исправлено чтение идентификаторов полей в типах Map и Array из Parquet. [#87136](https://github.com/ClickHouse/ClickHouse/pull/87136) ([scanhex12](https://github.com/scanhex12)).
* Исправлено чтение массива с подстолбцом размеров массива при ленивой материализации. [#87139](https://github.com/ClickHouse/ClickHouse/pull/87139) ([Pavel Kruglov](https://github.com/Avogar)).
* Исправлен некорректный учет освобождения временных данных при отслеживании ограничения `max_temporary_data_on_disk_size`, закрывает [#87118](https://github.com/ClickHouse/ClickHouse/issues/87118). [#87140](https://github.com/ClickHouse/ClickHouse/pull/87140) ([JIaQi](https://github.com/JiaQiTang98)).
* Функция checkHeaders теперь корректно проверяет указанные заголовки и отклоняет запрещённые. Автор оригинала: Michael Anastasakis (@michael-anastasakis). [#87172](https://github.com/ClickHouse/ClickHouse/pull/87172) ([Raúl Marín](https://github.com/Algunenano)).
* Унифицирует поведение `toDate` и `toDate32` для всех числовых типов. Исправляет проверку выхода за нижнюю границу диапазона у Date32 при приведении из int16. [#87176](https://github.com/ClickHouse/ClickHouse/pull/87176) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Исправлена функция CASE при использовании аргументов Dynamic. [#87177](https://github.com/ClickHouse/ClickHouse/pull/87177) ([Pavel Kruglov](https://github.com/Avogar)).
* Исправлена логическая ошибка, связанная с параллельными репликами в запросах с несколькими JOIN, в частности в запросах с RIGHT JOIN после LEFT/INNER JOIN. [#87178](https://github.com/ClickHouse/ClickHouse/pull/87178) ([Igor Nikonov](https://github.com/devcrafter)).
* В кэше определения схемы теперь учитывается настройка `input_format_try_infer_variants`. [#87180](https://github.com/ClickHouse/ClickHouse/pull/87180) ([Pavel Kruglov](https://github.com/Avogar)).
* Теперь pathStartsWith сопоставляет только пути, находящиеся под prefix. [#87181](https://github.com/ClickHouse/ClickHouse/pull/87181) ([Raúl Marín](https://github.com/Algunenano)).
* Исправлено чтение пустого массива из пустой строки в CSV. [#87182](https://github.com/ClickHouse/ClickHouse/pull/87182) ([Pavel Kruglov](https://github.com/Avogar)).
* Исправлен возможный неверный результат для некоррелированного `EXISTS`. Проблема возникала из-за `execute_exists_as_scalar_subquery=1`, добавленного в [https://github.com/ClickHouse/ClickHouse/pull/85481](https://github.com/ClickHouse/ClickHouse/pull/85481) и затрагивающего `25.8`. Исправляет [#86415](https://github.com/ClickHouse/ClickHouse/issues/86415). [#87207](https://github.com/ClickHouse/ClickHouse/pull/87207) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Исправлены логические ошибки в виртуальном столбце `_row_number` и позиционных удалениях в Iceberg. [#87220](https://github.com/ClickHouse/ClickHouse/pull/87220) ([Michael Kolupaev](https://github.com/al13n321)).
* Исправлен `LOGICAL_ERROR` "Too large size passed to allocator" в `JOIN`, возникавший из-за сочетания константных и неконстантных блоков. [#87231](https://github.com/ClickHouse/ClickHouse/pull/87231) ([Azat Khuzhin](https://github.com/azat)).
* Выдаёт ошибку, если `iceberg_metadata_log` не настроен, а пользователь пытается получить отладочную информацию о метаданных Iceberg. Исправляет обращение к `nullptr`. [#87250](https://github.com/ClickHouse/ClickHouse/pull/87250) ([Daniil Ivanik](https://github.com/divanik)).
* Исправлена работа легковесных обновлений с подзапросами, читающими из других таблиц `MergeTree`. [#87285](https://github.com/ClickHouse/ClickHouse/pull/87285) ([Anton Popov](https://github.com/CurtizJ)).
* Исправлена оптимизация move-to-prewhere, которая не работала при наличии политики доступа на уровне строк. Продолжение [#85118](https://github.com/ClickHouse/ClickHouse/issues/85118). Закрывает [#69777](https://github.com/ClickHouse/ClickHouse/issues/69777). Закрывает [#83748](https://github.com/ClickHouse/ClickHouse/issues/83748). [#87303](https://github.com/ClickHouse/ClickHouse/pull/87303) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Исправлено применение патчей к столбцам с выражением по умолчанию, если эти столбцы отсутствуют в частях данных. [#87347](https://github.com/ClickHouse/ClickHouse/pull/87347) ([Anton Popov](https://github.com/CurtizJ)).
* Исправлена проблема при обновлении EmbeddedRocksDB. [#87392](https://github.com/ClickHouse/ClickHouse/pull/87392) ([Raúl Marín](https://github.com/Algunenano)).
* Исправлена работа прямого чтения из текстового индекса в объектном хранилище. [#87399](https://github.com/ClickHouse/ClickHouse/pull/87399) ([Anton Popov](https://github.com/CurtizJ)).
* Предотвращена возможность создания привилегии с несуществующим движком. [#87419](https://github.com/ClickHouse/ClickHouse/pull/87419) ([Jitendra](https://github.com/jitendra1411)).
* Игнорировать только ошибки `not found` для `s3_plain_rewritable` (что может привести ко всевозможным проблемам). [#87426](https://github.com/ClickHouse/ClickHouse/pull/87426) ([Azat Khuzhin](https://github.com/azat)).
* Исправлены словари с источником YTSaurus и со структурами \*range\_hashed. [#87490](https://github.com/ClickHouse/ClickHouse/pull/87490) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Исправлено создание массива пустых Tuple. [#87520](https://github.com/ClickHouse/ClickHouse/pull/87520) ([Pavel Kruglov](https://github.com/Avogar)).
* Добавлена проверка недопустимых столбцов при создании временной таблицы. [#87524](https://github.com/ClickHouse/ClickHouse/pull/87524) ([Pavel Kruglov](https://github.com/Avogar)).
* Никогда не добавляйте столбцы партиций Hive в заголовок формата. Исправлено [#87515](https://github.com/ClickHouse/ClickHouse/issues/87515). [#87528](https://github.com/ClickHouse/ClickHouse/pull/87528) ([Arthur Passos](https://github.com/arthurpassos)).
* Исправлена подготовка к чтению из формата в DeltaLake при использовании текстового формата. [#87529](https://github.com/ClickHouse/ClickHouse/pull/87529) ([Pavel Kruglov](https://github.com/Avogar)).
* Исправлена проверка прав доступа при select и вставке в таблицы Buffer. [#87545](https://github.com/ClickHouse/ClickHouse/pull/87545) ([pufit](https://github.com/pufit)).
* Запрещено создавать индекс пропуска данных для таблицы S3. [#87554](https://github.com/ClickHouse/ClickHouse/pull/87554) ([Bharat Nallan](https://github.com/bharatnc)).
* Предотвращена утечка учитываемой памяти при асинхронном логировании (может приводить к значительному расхождению, за 10 часов — около 100 GiB) и в text\_log (возможна почти такая же величина расхождения). [#87584](https://github.com/ClickHouse/ClickHouse/pull/87584) ([Azat Khuzhin](https://github.com/azat)).
* Исправлена ошибка, которая могла приводить к переопределению глобальных настроек сервера настройками SELECT из View или Materialized View, если такое представление удалялось асинхронно, а сервер перезапускался до завершения фоновой очистки. [#87603](https://github.com/ClickHouse/ClickHouse/pull/87603) ([Alexander Tokmakov](https://github.com/tavplubix)).
* При расчете предупреждения о перегрузке памяти теперь исключаются байты кэша страниц в пространстве пользователя (если это возможно). [#87610](https://github.com/ClickHouse/ClickHouse/pull/87610) ([Bharat Nallan](https://github.com/bharatnc)).
* Исправлена ошибка, из-за которой неправильный порядок типов при десериализации CSV приводил к `LOGICAL_ERROR`. [#87622](https://github.com/ClickHouse/ClickHouse/pull/87622) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Исправлена некорректная обработка `command_read_timeout` для словарей executable. [#87627](https://github.com/ClickHouse/ClickHouse/pull/87627) ([Azat Khuzhin](https://github.com/azat)).
* Исправлено некорректное поведение SELECT \* REPLACE в предложении WHERE при использовании нового анализатора и фильтрации по заменённым столбцам. [#87630](https://github.com/ClickHouse/ClickHouse/pull/87630) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* Исправлена работа двухуровневой агрегации при использовании `Merge` поверх `Distributed`. [#87687](https://github.com/ClickHouse/ClickHouse/pull/87687) ([c-end](https://github.com/c-end)).
* Исправлено формирование выходного блока в алгоритме HashJoin, когда список строк правой таблицы не используется. Исправляет [#87401](https://github.com/ClickHouse/ClickHouse/issues/87401). [#87699](https://github.com/ClickHouse/ClickHouse/pull/87699) ([Dmitry Novik](https://github.com/novikd)).
* Режим чтения с параллельными репликами мог выбираться некорректно, если после анализа индексов не оставалось данных для чтения. Закрывает [#87653](https://github.com/ClickHouse/ClickHouse/issues/87653). [#87700](https://github.com/ClickHouse/ClickHouse/pull/87700) ([zoomxi](https://github.com/zoomxi)).
* Исправлена обработка столбцов `timestamp` / `timestamptz` в Glue. [#87733](https://github.com/ClickHouse/ClickHouse/pull/87733) ([Andrey Zvonov](https://github.com/zvonand)).
* Исправляет [#86587](https://github.com/ClickHouse/ClickHouse/issues/86587). [#87761](https://github.com/ClickHouse/ClickHouse/pull/87761) ([scanhex12](https://github.com/scanhex12)).
* Исправлена запись логических значений в интерфейсе PostgreSQL. [#87762](https://github.com/ClickHouse/ClickHouse/pull/87762) ([Artem Yurov](https://github.com/ArtemYurov)).
* Исправлена ошибка «неизвестная таблица» в запросе INSERT SELECT с CTE, [#85368](https://github.com/ClickHouse/ClickHouse/issues/85368). [#87789](https://github.com/ClickHouse/ClickHouse/pull/87789) ([Guang Zhao](https://github.com/zheguang)).
* Исправлено чтение null-подстолбца Map из Variant, который не может находиться внутри Nullable. [#87798](https://github.com/ClickHouse/ClickHouse/pull/87798) ([Pavel Kruglov](https://github.com/Avogar)).
* Исправлена обработка ошибки при сбое полного удаления базы данных в кластере на вторичном узле. [#87802](https://github.com/ClickHouse/ClickHouse/pull/87802) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Исправлено несколько ошибок в skip-индексах. [#87817](https://github.com/ClickHouse/ClickHouse/pull/87817) ([Raúl Marín](https://github.com/Algunenano)).
* В AzureBlobStorage обновили логику: теперь сначала выполняется попытка native copy, а при ошибке 'Unauthroized' происходит переход к read & write (в AzureBlobStorage, если для source и пункта назначения используются разные storage account, возникает ошибка 'Unauthorized'). Также исправили применение "use\_native\_copy", когда в configuration определена конечная точка. [#87826](https://github.com/ClickHouse/ClickHouse/pull/87826) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* ClickHouse аварийно завершается, если файл ArrowStream содержит неуникальный словарь. [#87863](https://github.com/ClickHouse/ClickHouse/pull/87863) ([Ilya Golshtein](https://github.com/ilejn)).
* Исправлено слияние с проекциями, когда последний блок оказывается пустым. [#87928](https://github.com/ClickHouse/ClickHouse/pull/87928) ([Raúl Marín](https://github.com/Algunenano)).
* Не удаляйте инъективные функции из GROUP BY, если типы аргументов не поддерживаются в GROUP BY. [#87958](https://github.com/ClickHouse/ClickHouse/pull/87958) ([Pavel Kruglov](https://github.com/Avogar)).
* Исправлено некорректное исключение гранул/партиций для ключей на основе DateTime при использовании настройки `session_timezone` в запросах. [#87987](https://github.com/ClickHouse/ClickHouse/pull/87987) ([Eduard Karacharov](https://github.com/korowa)).
* Возвращает количество затронутых строк после выполнения запроса в интерфейсе PostgreSQL. [#87990](https://github.com/ClickHouse/ClickHouse/pull/87990) ([Artem Yurov](https://github.com/ArtemYurov)).
* Ограничено применение pushdown фильтра для PASTE JOIN, так как это может приводить к некорректным результатам. [#88078](https://github.com/ClickHouse/ClickHouse/pull/88078) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Применяет нормализацию URI перед выполнением проверки привилегий, добавленной в [https://github.com/ClickHouse/ClickHouse/pull/84503](https://github.com/ClickHouse/ClickHouse/pull/84503). [#88089](https://github.com/ClickHouse/ClickHouse/pull/88089) ([pufit](https://github.com/pufit)).
* Исправлена логическая ошибка, возникавшая, когда ARRAY JOIN COLUMNS() не находил ни одного столбца в новом анализаторе. [#88091](https://github.com/ClickHouse/ClickHouse/pull/88091) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* Исправлено предупреждение "Высокое использование памяти ClickHouse" (без учёта page cache). [#88092](https://github.com/ClickHouse/ClickHouse/pull/88092) ([Azat Khuzhin](https://github.com/azat)).
* Исправлена возможная порча данных в таблицах `MergeTree` с настроенным `TTL` для столбца. [#88095](https://github.com/ClickHouse/ClickHouse/pull/88095) ([Anton Popov](https://github.com/CurtizJ)).
* Исправлено падение в функциях `mortonEncode` и `hilbertEncode` при вызове с пустым кортежем в качестве аргумента. [#88110](https://github.com/ClickHouse/ClickHouse/pull/88110) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* Теперь запросы `ON CLUSTER` будут выполняться быстрее, если в кластере есть неактивные реплики. [#88153](https://github.com/ClickHouse/ClickHouse/pull/88153) ([alesapin](https://github.com/alesapin)).
* Теперь DDL-воркер очищает набор реплик от устаревших хостов. Это позволит сократить объём метаданных, хранимых в ZooKeeper. [#88154](https://github.com/ClickHouse/ClickHouse/pull/88154) ([alesapin](https://github.com/alesapin)).
* В случае ошибки корректно выполнять откат операции перемещения каталога. Нужно перезаписать все объекты `prefix.path`, изменённые в ходе выполнения, а не только корневой. [#88198](https://github.com/ClickHouse/ClickHouse/pull/88198) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Исправлена передача флага `is_shared` в `ColumnLowCardinality`. Это могло приводить к неверному результату `group-by`, если после предварительного вычисления и кэширования хеш-значений в `ReverseIndex` в столбец вставлялось новое значение. [#88213](https://github.com/ClickHouse/ClickHouse/pull/88213) ([Nikita Taranov](https://github.com/nickitat)).
* Исправлена настройка рабочей нагрузки `max_cpu_share`. Теперь её можно использовать, даже если не задана настройка рабочей нагрузки `max_cpus`. [#88217](https://github.com/ClickHouse/ClickHouse/pull/88217) ([Neerav](https://github.com/neeravsalaria)).
* Исправлена ошибка, из-за которой особо тяжёлые мутации с подзапросами могли зависать на этапе подготовки. Теперь такие мутации можно останавливать с помощью `SYSTEM STOP MERGES`. [#88241](https://github.com/ClickHouse/ClickHouse/pull/88241) ([alesapin](https://github.com/alesapin)).
* Теперь коррелированные подзапросы будут работать и с объектными хранилищами. [#88290](https://github.com/ClickHouse/ClickHouse/pull/88290) ([alesapin](https://github.com/alesapin)).
* Избегайте инициализации баз данных DataLake при обращении к `system.projections` и `system.data_skipping_indices`. [#88330](https://github.com/ClickHouse/ClickHouse/pull/88330) ([Azat Khuzhin](https://github.com/azat)).
* Теперь каталоги озёр данных будут отображаться в системных таблицах интроспекции только если `show_data_lake_catalogs_in_system_tables` явно включён. [#88341](https://github.com/ClickHouse/ClickHouse/pull/88341) ([alesapin](https://github.com/alesapin)).
* Исправлено: DatabaseReplicated теперь учитывает настройку `interserver_http_host`. [#88378](https://github.com/ClickHouse/ClickHouse/pull/88378) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* Позиционные аргументы теперь явно отключены при определении проекций, поскольку на этом внутреннем этапе запроса они не имеют смысла. Это исправляет [#48604](https://github.com/ClickHouse/ClickHouse/issues/48604). [#88380](https://github.com/ClickHouse/ClickHouse/pull/88380) ([Amos Bird](https://github.com/amosbird)).
* Устранена квадратичная сложность в функции `countMatches`. Закрывает [#88400](https://github.com/ClickHouse/ClickHouse/issues/88400). [#88401](https://github.com/ClickHouse/ClickHouse/pull/88401) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Сделать команды `ALTER COLUMN ... COMMENT` для таблиц KeeperMap реплицируемыми, чтобы они записывались в метаданные базы данных Replicated и распространялись на все реплики. Закрывает [#88077](https://github.com/ClickHouse/ClickHouse/issues/88077). [#88408](https://github.com/ClickHouse/ClickHouse/pull/88408) ([Eduard Karacharov](https://github.com/korowa)).
* Исправлен случай ложной циклической зависимости с materialized view в базе данных Replicated, из-за которой нельзя было добавлять в базу данных новые реплики. [#88423](https://github.com/ClickHouse/ClickHouse/pull/88423) ([Nikolay Degterinsky](https://github.com/evillique)).
* Исправлена агрегация разреженных столбцов, если `group_by_overflow_mode` установлен в `any`. [#88440](https://github.com/ClickHouse/ClickHouse/pull/88440) ([Eduard Karacharov](https://github.com/korowa)).
* Исправлена ошибка "столбец не найден" при использовании `query_plan_use_logical_join_step=0` в нескольких секциях FULL JOIN USING. Закрывает [#88103](https://github.com/ClickHouse/ClickHouse/issues/88103). [#88473](https://github.com/ClickHouse/ClickHouse/pull/88473) ([Vladimir Cherkasov](https://github.com/vdimir)).
* В больших кластерах с числом узлов > 10 восстановление с высокой вероятностью завершается ошибкой `[941] 67c45db4-4df4-4879-87c5-25b8d1e0d414 <Trace>: RestoreCoordinationOnCluster The version of node /clickhouse/backups/restore-7c551a77-bd76-404c-bad0-3213618ac58e/stage/num_hosts changed (attempt #9), will try again`. Узел `num_hosts` одновременно перезаписывается множеством хостов. Это исправление делает параметр, управляющий числом попыток, динамическим. Закрывает [#87721](https://github.com/ClickHouse/ClickHouse/issues/87721). [#88484](https://github.com/ClickHouse/ClickHouse/pull/88484) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Этот PR нужен только для обеспечения совместимости с 23.8 и более ранними версиями. Проблема совместимости была внесена этим PR: [https://github.com/ClickHouse/ClickHouse/pull/54240](https://github.com/ClickHouse/ClickHouse/pull/54240) Этот SQL будет завершаться ошибкой при `enable_analyzer=0` (до 23.8 всё работало корректно): `select * from t1 s final join ( select * from t2 final ) r final on s.key = r.key join ( select * from t3 final ) c final on s.key = c.key` Потому что `JoinToSubqueryTransformVisitor` перепишет этот SQL в `` SELECT `_--s.key` AS `s.key`, `_--s.value` AS `s.value`, `_--r.key` AS `r.key`, `_--r.value` AS `r.value`, `_--c.key` AS `c.key`, `_--c.value` AS `c.value` FROM ( SELECT value AS `_--s.value`, key AS `_--s.key`, r.value AS `_--r.value`, r.key AS `_--r.key` FROM t1 AS s FINAL ALL INNER JOIN ( SELECT key, value FROM t2 FINAL ) AS r FINAL ON `_--s.key` = `_--r.key` ) AS `--.s` ALL INNER JOIN ( SELECT value AS `_--c.value`, key AS `_--c.key` FROM ( SELECT key, value FROM t3 FINAL ) AS c FINAL ) AS `--.t` ON `_--s.key` = `_--c.key` `` Мы хотим переписать этот SQL так (нужно лишь переместить последний FINAL): `` SELECT `_--s.key` AS `s.key`, `_--s.value` AS `s.value`, `_--r.key` AS `r.key`, `_--r.value` AS `r.value`, `_--c.key` AS `c.key`, `_--c.value` AS `c.value` FROM ( SELECT value AS `_--s.value`, key AS `_--s.key`, r.value AS `_--r.value`, r.key AS `_--r.key` FROM t1 AS s FINAL ALL INNER JOIN ( SELECT key, value FROM t2 FINAL ) AS r FINAL ON `_--s.key` = `_--r.key` ) AS `--.s` ALL INNER JOIN ( SELECT value AS `_--c.value`, key AS `_--c.key` FROM ( SELECT key, value FROM t3 FINAL ) AS c ) AS `--.t` FINAL ON `_--s.key` = `_--c.key` ``. [#88491](https://github.com/ClickHouse/ClickHouse/pull/88491) ([JIaQi](https://github.com/JiaQiTang98)).
* Исправлено переполнение целочисленного типа, обнаруженное UBSAN, в сообщении об ошибке `accurateCast` при преобразовании больших значений в DateTime. [#88520](https://github.com/ClickHouse/ClickHouse/pull/88520) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* Исправлена работа coalescing merge tree для типов Tuple. Это закрывает [#88469](https://github.com/ClickHouse/ClickHouse/issues/88469). [#88526](https://github.com/ClickHouse/ClickHouse/pull/88526) ([scanhex12](https://github.com/scanhex12)).
* Запретили удаления для `iceberg_format_version=1`. Это закрывает [#88444](https://github.com/ClickHouse/ClickHouse/issues/88444). [#88532](https://github.com/ClickHouse/ClickHouse/pull/88532) ([scanhex12](https://github.com/scanhex12)).
* Этот патч исправляет операцию перемещения на дисках `plain-rewritable` для каталогов произвольной глубины. [#88586](https://github.com/ClickHouse/ClickHouse/pull/88586) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Исправлено поведение SQL SECURITY DEFINER для функций \*cluster. [#88588](https://github.com/ClickHouse/ClickHouse/pull/88588) ([Julian Maicher](https://github.com/jmaicher)).
* Исправлено возможное аварийное завершение, вызванное параллельной мутацией базовых const-столбцов PREWHERE. [#88605](https://github.com/ClickHouse/ClickHouse/pull/88605) ([Azat Khuzhin](https://github.com/azat)).
* Исправлено чтение из текстового индекса и включён кэш условий запроса (если включены настройки `use_skip_indexes_on_data_read` и `use_query_condition_cache`). [#88660](https://github.com/ClickHouse/ClickHouse/pull/88660) ([Anton Popov](https://github.com/CurtizJ)).
* Исключение `Poco::TimeoutException`, сгенерированное в `Poco::Net::HTTPChunkedStreamBuf::readFromDevice`, приводит к аварийному завершению процесса с сигналом SIGABRT. [#88668](https://github.com/ClickHouse/ClickHouse/pull/88668) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Исправлено добавление записей в `system.zookeeper_connection_log` в случае, если ClickHouse впервые подключается после перезагрузки конфигурации. [#88728](https://github.com/ClickHouse/ClickHouse/pull/88728) ([Antonio Andelic](https://github.com/antonio2368)).
* Исправлена ошибка, из-за которой преобразование DateTime64 в Date при `date_time_overflow_behavior = 'saturate'` могло приводить к неверным результатам для значений вне допустимого диапазона при работе с часовыми поясами. [#88737](https://github.com/ClickHouse/ClickHouse/pull/88737) ([Manuel](https://github.com/raimannma)).
* N-я попытка исправить ошибку "having zero bytes error" в движке таблицы S3 при включенном кэше. [#88740](https://github.com/ClickHouse/ClickHouse/pull/88740) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Исправлена проверка прав доступа при выполнении SELECT для табличной функции `loop`. [#88802](https://github.com/ClickHouse/ClickHouse/pull/88802) ([pufit](https://github.com/pufit)).
* Перехватывать исключения в случае сбоя асинхронного логирования, чтобы предотвратить аварийное завершение программы. [#88814](https://github.com/ClickHouse/ClickHouse/pull/88814) ([Raúl Marín](https://github.com/Algunenano)).
