Проверка подозрительных/экспериментальных типов во вложенных типах. Ранее такие типы (кроме JSON) во вложенных типах, таких как Array/Tuple/Map, не проверялись. #59385 (Круглов Павел).
Условие сортировки ORDER BY ALL (введенное с v23.12) заменено на ORDER BY *. Предыдущий синтаксис слишком часто привел к ошибкам для таблиц с колонкой all. #59450 (Роберт Шульце).
Добавлена проверка корректности для числа потоков и размеров блоков. #60138 (Рауль Марин).
Отклонять входящие запросы INSERT в случае, если настройки уровня запроса async_insert и deduplicate_blocks_in_dependent_materialized_views включены одновременно. Это поведение контролируется настройкой throw_if_deduplication_in_dependent_materialized_views_enabled_with_async_insert и включено по умолчанию. Это продолжение #59699, необходимое для разблокировки #59915. #60888 (Никита Михайлов).
Утилита clickhouse-copier перенесена в отдельный репозиторий на GitHub: https://github.com/ClickHouse/copier. Она больше не включена в пакет, но по-прежнему доступна для загрузки отдельно. Это закрывает: #60734 Это закрывает: #60540 Это закрывает: #60250 Это закрывает: #52917 Это закрывает: #51140 Это закрывает: #47517 Это закрывает: #47189 Это закрывает: #46598 Это закрывает: #40257 Это закрывает: #36504 Это закрывает: #35485 Это закрывает: #33702 Это закрывает: #26702 ### Запись документации для изменений, касающихся пользователей. #61058 (Никита Михайлов).
Для повышения совместимости с MySQL, функция locate теперь принимает аргументы (needle, haystack[, start_pos]) по умолчанию. Предыдущее поведение (haystack, needle[, start_pos]) можно восстановить, установив function_locate_has_mysql_compatible_argument_order = 0. #61092 (Роберт Шульце).
Устаревшие части данных в памяти были объявлены устаревшими с версии 23.5 и не поддерживались с версии 23.10. Теперь оставшийся код удален. Продолжение #55186 и #45409. Маловероятно, что вы использовали части данных в памяти, поскольку они были доступны только до версии 23.5 и только в том случае, если вы включали их вручную, указывая соответствующие SETTINGS для таблицы MergeTree. Чтобы проверить, есть ли у вас части данных в памяти, выполните следующий запрос: SELECT part_type, count() FROM system.parts GROUP BY part_type ORDER BY part_type. Чтобы отключить использование частей данных в памяти, выполните ALTER TABLE ... MODIFY SETTING min_bytes_for_compact_part = DEFAULT, min_rows_for_compact_part = DEFAULT. Перед обновлением с более ранних версий ClickHouse сначала проверьте, чтобы у вас не было частей данных в памяти. Если есть части данных в памяти, сначала отключите их, затем дождитесь, пока не останется частей данных в памяти, и продолжайте обновление. #61127 (Алексей Миловидов).
Запретить SimpleAggregateFunction в ORDER BY таблиц MergeTree (так же, как AggregateFunction запрещен, но они запрещены, потому что они не сопоставимы) по умолчанию (используйте allow_suspicious_primary_key, чтобы разрешить их). #61399 (Азат Хузин).
ClickHouse позволяет произвольные двоичные данные в типе данных String, который обычно является UTF-8. Строки Parquet/ORC/Arrow поддерживают только UTF-8. Поэтому вы можете выбрать, какой тип данных Arrow использовать для типа данных ClickHouse String — String или Binary. Это контролируется настройками: output_format_parquet_string_as_string, output_format_orc_string_as_string, output_format_arrow_string_as_string. Хотя Binary был бы более правильным и совместимым, использование String по умолчанию будет соответствовать ожиданиям пользователей в большинстве случаев. Parquet/ORC/Arrow поддерживает многие методы сжатия, включая lz4 и zstd. ClickHouse поддерживает каждый из этих методов сжатия. Некоторые устаревшие инструменты не поддерживают более быстрый метод сжатия lz4, поэтому мы устанавливаем zstd по умолчанию. Это контролируется настройками output_format_parquet_compression_method, output_format_orc_compression_method и output_format_arrow_compression_method. Мы изменили значение по умолчанию на zstd для Parquet и ORC, но не для Arrow (это подчеркивается для низкоуровневых использований). #61817 (Алексей Миловидов).
Исправление проблемы безопасности с материализованным представлением, которое позволяло пользователю вставлять в таблицу без необходимых прав на это. Исправление проверяет, что у пользователя есть разрешение на вставку не только в материализованное представление, но и во все подлежащие таблицы. Это означает, что некоторые запросы, которые работали ранее, теперь могут завершаться с ошибкой "Недостаточно привилегий". Чтобы решить эту проблему, релиз вводит новую функцию SQL безопасности для представлений https://clickhouse.com/docs/sql-reference/statements/create/view#sql_security. #54901 (pufit)
Поддержка режима Topk/topkweighed, который возвращает количество значений и его ошибку. #54508 (UnamedRus).
Добавлен новый синтаксис, который позволяет указывать пользователя-дизайнера в представлении/материализованном представлении. Это позволяет выполнять выборки/вставки из представлений без явных прав на подлежащие таблицы. #54901 (pufit).
Реализовано автоматическое преобразование таблиц merge tree различных типов в реплицируемый движок. Создайте пустой файл convert_to_replicated в каталоге данных таблицы (/clickhouse/store/xxx/xxxyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy/), и эта таблица будет автоматически преобразована при следующем запуске сервера. #57798 (Кирилл).
Добавлена табличная функция mergeTreeIndex. Она представляет собой содержимое файлов индекса и меток таблиц MergeTree. Может использоваться для интроспекции. Синтаксис: mergeTreeIndex(database, table, [with_marks = true]), где database.table — существующая таблица с движком MergeTree. #58140 (Антон Попов).
Попытка автоматически определить формат файла во время вывода схемы, если он неизвестен в движках file/s3/hdfs/url/azureBlobStorage. Закрывает #50576. #59092 (Круглов Павел).
Добавлен generate_series как табличная функция. Эта функция генерирует таблицу с арифметической прогрессией натуральных чисел. #59390 (divanik).
Добавлен запрос ALTER TABLE table FORGET PARTITION partition, который удаляет узлы ZooKeeper, связанные с пустой партицией. #59507 (Сергей Трифонов).
Поддержка чтения и записи резервных копий в виде архивов tar. #59535 (josh-hildred).
Кодек LZ4HC примет новый уровень 2, который быстрее предыдущего минимального уровня 3 за счет меньшего сжатия. В предыдущих версиях LZ4HC(2) и менее были теми же, что и LZ4HC(3). Автор: Cyan4973. #60090 (Алексей Миловидов).
Реализована таблица system.dns_cache, которая может быть полезна для отладки проблем с DNS. Новая серверная настройка dns_cache_max_size. #60257 (Кирилл Никифоров).
Добавлена функция toMillisecond, которая возвращает компонент миллисекунд для значений типа DateTime или DateTime64. #60281 (Шон Струвиг).
Поддержка однопараметрической версии для табличной функции объединения, как merge(['db_name', ] 'tables_regexp'). #60372 (豪肥肥).
Сделайте все названия форматов нечувствительными к регистру, такими как Tsv, или TSV, или tsv, или даже rowbinary. #60420 (豪肥肥).
Добавлен новый синтаксис, который позволяет указывать пользователя-дизайнера в представлении/материализованном представлении. Это позволяет выполнять выборки/вставки из представлений без явных прав на подлежащие таблицы. #60439 (pufit).
Добавьте четыре свойства к StorageMemory (движок памяти) min_bytes_to_keep, max_bytes_to_keep, min_rows_to_keep и max_rows_to_keep - Добавьте тесты, чтобы отразить новые изменения - Обновите документацию memory.md - Добавьте свойство таблицы context к MemorySink, чтобы обеспечить доступ к границам параметров таблицы. #60612 (Джейк Бамра).
Добавлена функция toMillisecond, которая возвращает компонент миллисекунд для значений типа DateTime или DateTime64. #60649 (Роберт Шульце).
Разделены лимиты на число ожидающих и выполняющих запросов. Добавлена новая серверная настройка max_waiting_queries, которая ограничивает количество запросов, находящихся в ожидании из-за async_load_databases. Существующие лимиты на количество выполняемых запросов больше не учитывают ожидающие запросы. #61053 (Сергей Трифонов).
Устранены агрегаторы min/max/any/anyLast ключей GROUP BY в разделе SELECT. #52230 (JackyWoo).
Улучшена производительность сериализованного метода агрегации при использовании нескольких [nullable] колонок. Это общая версия #51399, которая не компрометирует целостность абстракции. #55809 (Amos Bird).
Ленивое создание выходных данных объединения для повышения производительности ALL join. #58278 (LiuNeng).
Улучшения для агрегатных функций ArgMin / ArgMax / any / anyLast / anyHeavy, а также для запросов ORDER BY {u8/u16/u32/u64/i8/i16/u32/i64) LIMIT 1. #58640 (Рауль Марин).
Оптимизирована производительность sum/avg условно для типов bigint и big decimal за счет уменьшения пропусков ветвления. #59504 (李扬).
Улучшена производительность SELECT-запросов с активными мутациями. #59531 (Азат Хузин).
Тривиальная оптимизация на фильтре колонок. Избегайте тех фильтров колонок, основной тип данных которых не является числом, фильтруемым с result_size_hint = -1. Пиковая память может быть уменьшена до 44% от исходной в некоторых случаях. #59698 (李扬).
Оптимизировано использование памяти для первичного ключа и некоторых других операций. #60050 (Алексей Миловидов).
Первичные ключи таблиц будут загружаться в память лениво при первом доступе. Это контролировалось новой настройкой MergeTree primary_key_lazy_load, которая включена по умолчанию. Это предоставляет несколько преимуществ: - он не будет загружен для неиспользуемых таблиц; - если памяти недостаточно, исключение будет выброшено при первом использовании вместо старта сервера. Это предоставляет несколько недостатков: - задержка загрузки первичного ключа будет оплачена за первый запрос, а не перед принятием соединений; это теоретически может вызвать проблему громкого роя. Это закрывает #11188. #60093 (Алексей Миловидов).
Векторизованная функция dotProduct, которая полезна для векторного поиска. #60202 (Роберт Шульце).
Если первичный ключ таблицы содержит в основном бесполезные колонки, не храните их в памяти. Это контролируется новой настройкой primary_key_ratio_of_unique_prefix_values_to_skip_suffix_columns со значением по умолчанию 0.9, что означает: для составного первичного ключа, если колонка меняет свое значение как минимум в 0.9 случаев, следующие колонки после нее не будут загружены. #60255 (Алексей Миловидов).
Выполните функцию multiIf по колонкам, когда основной тип результата является числом. #60384 (李扬).
Как показано на рисунке 1, замена "&&" на "&" может сгенерировать SIMD код. Рисунок 1. Код, скомпилированный из '&&' (слева) и '&' (справа). #60498 (Чжигуо Чжоу).
Более быстрые (почти 2x) мьютексы (были медленнее из-за ThreadFuzzer). #60823 (Азат Хузин).
Переместить дренаж соединения с подготовки на рабочий процесс и дренаж нескольких соединений параллельно. #60845 (lizhuoyu5).
Оптимизировано insertManyFrom для nullable number или nullable string. #60846 (李扬).
Оптимизирована функция dotProduct, чтобы исключить ненужные и дорогостоящие копии памяти. #60928 (Роберт Шульце).
Операции с файловым кэшем будут меньше подвержены конфликтам блокировок. #61066 (Алексей Миловидов).
Оптимизация ColumnString::replicate и предотвращение sql данный запрос был исключен из потока, поскольку он не выполняется . Закрыть #61074. ColumnString::replicate ускоряется в 2,46 раз на x86-64. #61075 (李扬).
Печать 256-битных целых чисел в 30 раз быстрее. #61100 (Рауль Марин).
Если запрос с синтаксической ошибкой содержал соответствие COLUMNS с регулярным выражением, регулярное выражение компилировалось каждый раз во время отката парсера, вместо того чтобы компилироваться один раз. Это была фундаментальная ошибка. Скомпилированное регулярное выражение помещалось в AST. Но буква A в AST означает "абстрактный", что означает, что он не должен содержать тяжелые объекты. Части AST могут быть созданы и удалены во время разбора, включая большое количество откатов. Это приводит к замедлению на стороне разбора и, следовательно, позволяет DoS пользователю только для чтения. Но главная проблема в том, что это препятствует прогрессу в фуззерах. #61543 (Алексей Миловидов).
При выполнении запроса MODIFY COLUMN для материализованных представлений проверяется структура внутренней таблицы, чтобы убедиться, что каждая колонка существует. #47427 (sunny).
Добавлена таблица system.keywords, которая содержит все ключевые слова из парсера. В основном это необходимо и будет использоваться для улучшения фуззинга и подсветки синтаксиса. #51808 (Nikita Mikhaylov).
Добавлена поддержка параметризованного представления с анализатором, чтобы не анализировать создание параметризованного представления. Переработана существующая логика параметризованного представления, чтобы не анализировать создание параметризованного представления. #54211 (SmitaRKulkarni).
Обычный движок базы данных устарел. Вы получите предупреждение в clickhouse-client, если ваш сервер его использует. Это закрывает #52229. #56942 (shabroo).
Все блокировки нулевого копирования, связанные с таблицей, должны быть удалены, когда таблица удаляется. Директория, содержащая эти блокировки, также должна быть удалена. #57575 (Sema Checherinda).
Добавлена возможность короткого замыкания для функции dictGetOrDefault. Закрывает #52098. #57767 (jsc0218).
Позволяет объявлять enum в структуре внешней таблицы. #57857 (Duc Canh Le).
Выполнение ALTER COLUMN MATERIALIZE на колонке с выражением DEFAULT или MATERIALIZED теперь записывает правильные значения: значение по умолчанию для существующих частей с значением по умолчанию или значение, отличное от значения по умолчанию для существующих частей с нестандартным значением. Ранее значение по умолчанию записывалось для всех существующих частей. #58023 (Duc Canh Le).
Включена логика резервного копирования (например, экспоненциальная). Это позволит уменьшить использование CPU, использование памяти и размер файлов журналов. #58036 (MikhailBurdukov).
Учитываются легковесные удаленные строки при выборе частей для объединения. #58223 (Zhuo Qiu).
Позволяет определить volume_priority в storage_configuration. #58533 (Andrey Zvonov).
Добавлена поддержка типа Date32 в кодеке T64. #58738 (Hongbin Ma).
Этот PR делает http/https-соединения повторно используемыми для всех случаев использования. Даже когда ответ 3xx или 4xx. #58845 (Sema Checherinda).
Теперь мы можем использовать виртуальные колонки в PREWHERE. Это имеет смысл для нестатичных виртуальных колонок, таких как _part_offset. #59033 (Amos Bird).
Настройки для движка распределенной таблицы теперь могут быть указаны в файле конфигурации сервера (аналогично настройкам MergeTree), например, <distributed> <flush_on_detach>false</flush_on_detach> </distributed>. #59291 (Azat Khuzhin).
Улучшение Keeper: кэшировать только определенное количество логов в памяти, контролируемое latest_logs_cache_size_threshold и commit_logs_cache_size_threshold. #59460 (Antonio Andelic).
Вместо использования постоянного ключа теперь объектное хранилище генерирует ключ для определения возможности удаления объектов. #59495 (Sema Checherinda).
Не выводить числа с плавающей запятой в экспоненциальной нотации по умолчанию. Добавьте настройку input_format_try_infer_exponent_floats, которая восстановит предыдущее поведение (отключено по умолчанию). Закрывает #59476. #59500 (Kruglov Pavel).
Позволяет оборачивать операции изменения в скобки. Вывод скобок может быть управляемым с помощью конфигурации format_alter_operations_with_parentheses. По умолчанию в отформатированных запросах скобки выводятся, так как мы храним отформатированные операции изменения в некоторых местах в виде метаданных (например, мутации). Новый синтаксис проясняет некоторые из запросов, где операции изменения заканчиваются в списке. Например, ALTER TABLE x MODIFY TTL date GROUP BY a, b, DROP COLUMN c не может быть правильно разобран с помощью старого синтаксиса. В новом синтаксисе запрос ALTER TABLE x (MODIFY TTL date GROUP BY a, b), (DROP COLUMN c) очевиден. Более старые версии не могут читать новый синтаксис, поэтому использование нового синтаксиса может вызвать проблемы, если новые и старые версии ClickHouse смешаны в одном кластере. #59532 (János Benjamin Antal).
Обновлен Intel QPL (используется кодеком DEFLATE_QPL) с v1.3.1 до v1.4.0. Также исправлена ошибка для механизма таймаута опроса, так как мы наблюдали в одних и тех же случаях, что таймаут не работает должным образом; если происходит таймаут, IAA и CPU могут одновременно обрабатывать буфер. До сих пор мы лучше удостоверимся, что статус кодека IAA не QPL_STS_BEING_PROCESSED, а затем вернёмся к SW кодеку. #59551 (jasperzhu).
Добавлен позиционный предзапрос в libhdfs3. Если вы хотите вызвать позиционное чтение в libhdfs3, используйте функцию hdfsPread в hdfs.h следующим образом. tSize hdfsPread(hdfsFS fs, hdfsFile file, void * buffer, tSize length, tOffset position);. #59624 (M1eyu).
Проверьте на переполнение стека в парсерах, даже если пользователь неправильно сконфигурировал настройку max_parser_depth на очень высокое значение. Это закрывает #59622. #59697 (Alexey Milovidov).
Унификация поведения коллекций с именами, созданных в xml и sql, в хранилище kafka. #59710 (Pervakov Grigorii).
Позволить uuid в replica_path, если CREATE TABLE явно имеет его. #59908 (Azat Khuzhin).
Используйте несколько потоков при чтении метаданных таблиц из резервной копии во время выполнения команды RESTORE. #60040 (Vitaly Baranov).
Теперь, если StorageBuffer имеет более 1 шард (num_layers > 1), фоновая очистка будет происходить одновременно для всех шард в нескольких потоках. #60111 (alesapin).
Поддержка указания пользователей для конкретных настроек S3 в конфигурации с использованием ключа user. #60144 (Antonio Andelic).
Копирование файла S3 GCP с аварийной записью в буфер, если GCP возвращает Internal Error с кодом HTTP ошибки GATEWAY_TIMEOUT. #60164 (Maksim Kita).
Позвольте "local" в качестве типа объектного хранилища вместо "local_blob_storage". #60165 (Kseniia Sumarokova).
Реализуйте оператор сравнения для значений Variant и корректную вставку Field в колонку Variant. Не позволяйте по умолчанию создавать тип Variant с похожими вариантными типами (разрешить под настройкой allow_suspicious_variant_types), Закрывает #59996. Закрывает #59850. #60198 (Kruglov Pavel).
Улучшена общая удобство использования виртуальных колонок. Теперь разрешено использовать виртуальные колонки в PREWHERE (это имеет смысл для нестатичных виртуальных колонок, таких как _part_offset). Теперь встроенная документация доступна для виртуальных колонок в качестве комментария к колонке в запросе DESCRIBE с включенной настройкой describe_include_virtual_columns. #60205 (Anton Popov).
Исполнение короткого замыкания для ULIDStringToDateTime. #60211 (Juan Madurga).
Добавлен столбец query_id для таблиц system.backups и system.backup_log. Добавлен стек ошибок в столбец error. #60220 (Maksim Kita).
Параллельная очистка ожидающих блоков INSERT движка Distributed на DETACH/выключении сервера и SYSTEM FLUSH DISTRIBUTED (параллелизм будет работать только в том случае, если у вас есть политика мульти-диска для таблицы (как и у всего в движке Distributed прямо сейчас)). #60225 (Azat Khuzhin).
Настройка фильтра некорректна в joinRightColumnsSwitchNullability, разрешите #59625. #60259 (lgbo).
Добавьте настройку, чтобы принудительно использовать кэш для чтения при объединениях. #60308 (Kseniia Sumarokova).
Проблема #57598 упоминает вариант поведения, касающийся обработки транзакций. Выполненная команда COMMIT/ROLLBACK, когда никакая транзакция не активна, рассматривается как ошибка в отличие от поведения MySQL. #60338 (PapaToemmsn).
Добавлен режим none_only_active для настройки distributed_ddl_output_mode. #60340 (Alexander Tokmakov).
Подключения через порт MySQL теперь автоматически выполняются с настройкой prefer_column_name_to_alias = 1, чтобы поддерживать QuickSight "из коробки". Также настройки mysql_map_string_to_text_in_show_columns и mysql_map_fixed_string_to_text_in_show_columns теперь включены по умолчанию, что также затрагивает только подключения MySQL. Это повышает совместимость с большим количеством BI инструментов. #60365 (Robert Schulze).
Когда формат вывода - Pretty, и блок состоит из одного числового значения, превышающего миллион, читаемое число будет напечатано справа от таблицы. Например: ┌──────count()─┐ │ 233765663884 │ -- 233.77 миллиарда └──────────────┘. #60379 (rogeryk).
Позволяет настраивать обработчики HTTP перенаправлений для clickhouse-server. Например, вы можете сделать так, чтобы / перенаправлял на Play UI. #60390 (Alexey Milovidov).
Расширенная панель управления теперь имеет немного лучшие цвета для многопоточных графиков. #60391 (Alexey Milovidov).
Исправлена гонка в коде JavaScript, приводящая к дублированию графиков друг на друге. #60392 (Alexey Milovidov).
Проверьте на переполнение стека в парсерах, даже если пользователь неправильно сконфигурировал настройку max_parser_depth на очень высокое значение. Это закрывает #59622. #60434 (Alexey Milovidov).
Функция substring теперь имеет новое имя-псевдоним byteSlice. #60494 (Robert Schulze).
Переименована настройка сервера dns_cache_max_size в dns_cache_max_entries, чтобы избежать неопределенности. #60500 (Kirill Nikiforov).
SHOW INDEX | INDEXES | INDICES | KEYS больше не сортирует по столбцам первичного ключа (что было неинтуитивно). #60514 (Robert Schulze).
Улучшение Keeper: аварийная остановка во время старта, если обнаружена недействительная точка снимка, чтобы избежать потери данных. #60537 (Antonio Andelic).
Добавлено разделение диапазонов чтения MergeTree на пересекающиеся и непересекающиеся с использованием настройки merge_tree_read_split_ranges_into_intersecting_and_non_intersecting_fault_probability. #60548 (Maksim Kita).
Расширенная панель управления теперь всегда имеет элементы управления, видимые при прокрутке. Это позволяет вам добавить новый график, не прокручивая вверх. #60692 (Alexey Milovidov).
Строковые типы и Enums могут использоваться в одном контексте, например: массивы, запросы UNION, условные выражения. Это закрывает #60726. #60727 (Alexey Milovidov).
Поддержка файлов без расширения формата в базе данных Файловой системы. #60795 (Kruglov Pavel).
Улучшение Keeper: поддержка leadership_expiry_ms в настройках Keeper. #60806 (Brokenice0415).
Всегда выводить экспоненциальные числа в форматах JSON независимо от настройки input_format_try_infer_exponent_floats. Добавьте настройку input_format_json_use_string_type_for_ambiguous_paths_in_named_tuples_inference_from_objects, которая позволяет использовать строковый тип для неоднозначных путей вместо исключения при выводе именованных кортежей из JSON объектов. #60808 (Kruglov Pavel).
Добавьте флаг для SMJ, чтобы считать null как наибольшее/наименьшее. Таким образом, поведение может быть совместимо с другими SQL системами, такими как Apache Spark. #60896 (loudongfeng).
Добавлена настройка parallel_replicas_allow_in_with_subquery = 1, которая позволяет подзапросы для IN работать с параллельными репликами. #60950 (Nikolai Kochetov).
Поддержка обнаружения формата вывода по расширению файла в clickhouse-client и clickhouse-local. #61036 (豪肥肥).
Проверка обновления лимита памяти периодически. #61049 (Han Fei).
Включено профилирование процессоров (время, затраченное на входные и выходные байты для сортировки, агрегации и т.д.) по умолчанию. #61096 (Azat Khuzhin).
Добавлена функция toUInt128OrZero, которая была пропущена по ошибке (ошибка связана с https://github.com/ClickHouse/ClickHouse/pull/945). Совместимые псевдонимы FROM_UNIXTIME и DATE_FORMAT (они не являются нативными для ClickHouse и существуют только для совместимости с MySQL) были сделаны нечувствительными к регистру, как и ожидалось для SQL-совместимых псевдонимов. #61114 (Alexey Milovidov).
Улучшения для проверок доступа, позволяющие отзывать неполномочные права в случае, если у целевого пользователя нет прав на отзыв. Пример: sql GRANT SELECT ON *.* TO user1; REVOKE SELECT ON system.* FROM user1; . #61115 (pufit).
Теперь возможно указать атрибут merge="true" в конфигурационных заменах для поддеревьев <include from_zk="/path" merge="true">. Если этот атрибут указан, ClickHouse объединит поддерево с существующей конфигурацией, в противном случае поведение по умолчанию - добавление нового содержимого в конфигурацию. #61299 (alesapin).
Добавить асинхронные метрики для отображения виртуальной памяти: VMMaxMapCount и VMNumMaps. Закрывает #60662. #61354 (Tuan Pham Anh).
Используйте настройку temporary_files_codec во всех местах, где мы создаем временные данные, например, при внешней сортировке памяти и внешнем GROUP BY. Ранее она работала только в алгоритме соединения partial_merge. #61456 (Maksim Kita).
Используйте управляемую идентичность для IO резервных копий при использовании Azure Blob Storage. Добавьте настройку, чтобы предотвратить ClickHouse от попыток создать несуществующий контейнер, что требует разрешений на уровне учетной записи хранения. #61785 (Daniel Pozo Escalona).
В предыдущей версии некоторые числа в форматах Pretty были недостаточно красивыми. #61794 (Alexey Milovidov).
Длинное значение в форматах Pretty не будет обрезано, если оно является единственным значением в наборе результатов, таком как результат запроса SHOW CREATE TABLE. #61795 (Alexey Milovidov).
Аналогично clickhouse-local, clickhouse-client будет принимать опцию --output-format как синоним опции --format. Это закрывает #59848. #61797 (Alexey Milovidov).
Если stdout является терминалом и формат вывода не указан, clickhouse-client и аналогичные инструменты по умолчанию будут использовать PrettyCompact, аналогично интерактивному режиму. clickhouse-client и clickhouse-local будут обрабатывать аргументы командной строки для входных и выходных форматов унифицированным образом. Это закрывает #61272. #61800 (Alexey Milovidov).
Подчеркивание групп цифр в форматах Pretty для улучшения читаемости. Это контролируется новой настройкой, output_format_pretty_highlight_digit_groups. #61802 (Alexey Milovidov).
Исправление ошибок (поведение, видимое пользователем в официальном стабильном релизе)
Запретить установку пользовательских заголовков метаданных для неподдерживаемых операций многокомпонентной загрузки #60748 (Francisco J. Jurado Moreno).