Проверка подозрительных/экспериментальных типов в вложенных типах. Ранее мы не проверяли такие типы (кроме JSON) во вложенных типах, таких как Array/Tuple/Map. #59385 (Kruglov Pavel).
Условия сортировки ORDER BY ALL (введенные в v23.12) заменены на ORDER BY *. Предыдущий синтаксис был слишком подвержен ошибкам для таблиц с колонкой all. #59450 (Robert Schulze).
Добавлена проверка на количество потоков и размеры блоков. #60138 (Raúl Marín).
Отклонять входящие запросы INSERT в случае, если настройки уровня запроса async_insert и deduplicate_blocks_in_dependent_materialized_views одновременно включены. Это поведение контролируется настройкой throw_if_deduplication_in_dependent_materialized_views_enabled_with_async_insert и включено по умолчанию. Это продолжение #59699, необходимо для разблокировки #59915. #60888 (Nikita Mikhaylov).
Утилита clickhouse-copier перемещена в отдельный репозиторий на GitHub: https://github.com/ClickHouse/copier. Она больше не включена в пакет, но все еще доступна как отдельная загрузка. Это закрывает: #60734 Это закрывает: #60540 Это закрывает: #60250 Это закрывает: #52917 Это закрывает: #51140 Это закрывает: #47517 Это закрывает: #47189 Это закрывает: #46598 Это закрывает: #40257 Это закрывает: #36504 Это закрывает: #35485 Это закрывает: #33702 Это закрывает: #26702 ### Запись документации для изменений, касающихся пользователей. #61058 (Nikita Mikhaylov).
Чтобы повысить совместимость с MySQL, функция locate теперь принимает аргументы (needle, haystack[, start_pos]) по умолчанию. Предыдущее поведение (haystack, needle, [, start_pos]) можно восстановить, установив function_locate_has_mysql_compatible_argument_order = 0. #61092 (Robert Schulze).
Устаревшие части данных в оперативной памяти были объявлены устаревшими с версии 23.5 и не поддерживались с версии 23.10. Теперь оставшийся код удален. Это продолжение #55186 и #45409. Вероятно, вы не использовали части данных в оперативной памяти, так как они были доступны только до версии 23.5 и только при ручном включении соответствующих НАСТРОЕК для таблицы 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 (Alexey Milovidov).
Запретить SimpleAggregateFunction в ORDER BY таблиц MergeTree (так же, как AggregateFunction запрещен, но они запрещены, потому что их нельзя сравнить) по умолчанию (используйте allow_suspicious_primary_key, чтобы разрешить их). #61399 (Azat Khuzhin).
ClickHouse разрешает произвольные бинарные данные в типе данных String, который обычно является UTF-8. Parquet/ORC/Arrow Strings поддерживают только 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 (Alexey Milovidov).
Исправление проблемы безопасности представления, которое позволяло пользователю вставлять данные в таблицу без необходимых прав на это. Исправление проверяет, есть ли у пользователя разрешение на вставку не только в материализованное представление, но также и во все сопутствующие таблицы. Это означает, что некоторые запросы, которые ранее работали, теперь могут завершиться с ошибкой "Недостаточно прав". Для решения этой проблемы в релизе вводится новая функция SQL-безопасности для представлений https://clickhouse.com/docs/sql-reference/statements/create/view#sql_security. #54901 (pufit)
Режим поддержки Topk/topkweighed, который возвращает количество значений и его ошибку. #54508 (UnamedRus).
Добавлен новый синтаксис, который позволяет указать пользователя-определителя в View/Materialized View. Это позволяет выполнять выборки/вставки из представлений без явного разрешения на сопутствующие таблицы. #54901 (pufit).
Реализована автоматическая конверсия таблиц merge tree различных видов в реплицированный движок. Создайте пустой файл convert_to_replicated в каталоге данных таблицы (/clickhouse/store/xxx/xxxyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy/), и эта таблица будет автоматически конвертирована при следующем запуске сервера. #57798 (Kirill).
Добавлена табличная функция mergeTreeIndex. Она представляет собой содержимое индекса и файлов меток таблиц MergeTree. Она может использоваться для интроспекции. Синтаксис: mergeTreeIndex(database, table, [with_marks = true]), где database.table - это существующая таблица с движком MergeTree. #58140 (Anton Popov).
Попробуйте автоматически определить формат файла во время вывода схемы, если он неизвестен в движках file/s3/hdfs/url/azureBlobStorage. Закрывает #50576. #59092 (Kruglov Pavel).
Добавьте функцию generate_series как табличную функцию. Эта функция генерирует таблицу с арифметической прогрессией с натуральными числами. #59390 (divanik).
Добавлен запрос ALTER TABLE table FORGET PARTITION partition, который удаляет узлы ZooKeeper, связанные с пустым разделом. #59507 (Sergei Trifonov).
Поддержка чтения и записи резервных копий в виде архивов tar. #59535 (josh-hildred).
Кодек LZ4HC получит новый уровень 2, который быстрее, чем предыдущий минимальный уровень 3, за счет меньшего сжатия. В предыдущих версиях LZ4HC(2) и ниже были такими же, как LZ4HC(3). Автор: Cyan4973. #60090 (Alexey Milovidov).
Реализована таблица system.dns_cache, которая может быть полезна для отладки проблем с DNS. Новая серверная настройка dns_cache_max_size. #60257 (Kirill Nikiforov).
Добавлена функция toMillisecond, которая возвращает компонент миллисекунд для значений типаDateTime или DateTime64. #60281 (Shaun Struwig).
Поддержка однозначного аргумента для табличной функции merge, как merge(['db_name', ] 'tables_regexp'). #60372 (豪肥肥).
Сделать все имена форматов нечувствительными к регистру, такими как Tsv, или TSV, или tsv, или даже rowbinary. #60420 (豪肥肥).
Добавлен новый синтаксис, который позволяет указать пользователя-определителя в View/Materialized View. Это позволяет выполнять выборки/вставки из представлений без явного разрешения на сопутствующие таблицы. #60439 (pufit).
Добавьте четыре свойства к StorageMemory (память-движок) min_bytes_to_keep, max_bytes_to_keep, min_rows_to_keep и max_rows_to_keep - Добавьте тесты, чтобы отразить новые изменения - Обновите документацию memory.md - Добавьте свойство context таблицы к MemorySink, чтобы обеспечить доступ к пределам параметров таблицы. #60612 (Jake Bamrah).
Добавлена функция toMillisecond, которая возвращает компонент миллисекунд для значений типаDateTime или DateTime64. #60649 (Robert Schulze).
Отдельные лимиты на количество ожидающих и выполняемых запросов. Добавлена новая серверная настройка max_waiting_queries, которая ограничивает количество запросов, ожидающих из-за async_load_databases. Существующие лимиты на количество выполняемых запросов больше не учитывают ожидающие запросы. #61053 (Sergei Trifonov).
Устранение агрегаторов 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 (Raúl Marín).
Оптимизация производительности sum/avg условно для типов bigint и big decimal путем уменьшения пропуска веток. #59504 (李扬).
Улучшение производительности SELECT с активными мутациями. #59531 (Azat Khuzhin).
Тривиальная оптимизация по фильтру колонок. Избегайте тех фильтров колонок, у которых основной тип данных не число, отфильтровываемого с result_size_hint = -1. Пиковая память может быть уменьшена до 44% изначальной в некоторых случаях. #59698 (李扬).
Улучшение использования памяти для первичного ключа и некоторых других операций. #60050 (Alexey Milovidov).
Первичные ключи таблиц будут загружаться в память лениво при первом доступе. Это контролируется новой настройкой MergeTree primary_key_lazy_load, которая включена по умолчанию. Это дает несколько преимуществ: - она не будет загружена для таблиц, которые не используются; - если недостаточно памяти, исключение будет выброшено при первом использовании вместо на старте сервера. Это дает несколько недостатков: - задержка загрузки первичного ключа будет оплачена при первом запросе, а не до принятия соединений; это теоретически может вызвать проблему "громового стада". Это закрывает #11188. #60093 (Alexey Milovidov).
Векторизованная функция dotProduct, которая полезна для векторного поиска. #60202 (Robert Schulze).
Если первичный ключ таблицы содержит в основном бесполезные колонки, не сохраняйте их в памяти. Это контролируется новой настройкой primary_key_ratio_of_unique_prefix_values_to_skip_suffix_columns со значением 0.9 по умолчанию, что означает: для составного первичного ключа, если колонка изменяет свое значение как минимум в 0.9 всех случаев, следующие колонки после нее не будут загружены. #60255 (Alexey Milovidov).
Выполните функцию multiIf колоннами, когда тип результата - число. #60384 (李扬).
Как показано на рисунке 1, замена "&&" на "&" может сгенерировать код SIMD. Рисунок 1. Код, скомпилированный из '&&' (слева) и '&' (справа). #60498 (Zhiguo Zhou).
Ускорены (почти в 2 раза) мьютексы (были медленнее из-за ThreadFuzzer). #60823 (Azat Khuzhin).
Переместить слив соединений из подготовки в работу и дренировать несколько соединений параллельно. #60845 (lizhuoyu5).
Оптимизировать insertManyFrom для nullable number или nullable string. #60846 (李扬).
Оптимизирована функция dotProduct, чтобы избежать ненужных и дорогостоящих копий памяти. #60928 (Robert Schulze).
Операции с файловым кэшем будут меньше страдать от конфликтов блокировок. #61066 (Alexey Milovidov).
Оптимизируйте ColumnString::replicate и предотвратите оптимизацию memcpySmallAllowReadWriteOverflow15Impl до встроенной memcpy. Закрыть #61074. ColumnString::replicate ускорена в 2.46 раз на x86-64. #61075 (李扬).
30x быстрее вывод для 256-битных целых чисел. #61100 (Raúl Marín).
Если запрос с синтаксической ошибкой содержал сопоставитель COLUMNS с регулярным выражением, регулярное выражение компилировалось каждый раз во время обратного отслеживания парсера, а не компилировалось один раз. Это была основная ошибка. Скомпилированный regexp помещался в AST. Но буква A в AST означает "абстрактный", что означает, что он не должен содержать громоздких объектов. Части AST могут создаваться и уничтожаться во время парсинга, включая большое количество обратных отслеживаний. Это приводит к медлительности на стороне парсинга и, следовательно, позволяет провести DoS пользователем только для чтения. Но главная проблема заключается в том, что это препятствует прогрессу в фуззерах. #61543 (Alexey Milovidov).
При выполнении запроса 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).
Разрешить операции ALTER окружать скобками. Эмиссию скобок можно контролировать с помощью конфигурации format_alter_operations_with_parentheses. По умолчанию в отформатированных запросах скобки эмитируются, поскольку мы храним отформатированные операции ALTER в некоторых местах как метаданные (например, мутации). Новый синтаксис разъясняет некоторые из запросов, где операции ALTER заканчиваются в списке. Например, 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).
Включите профилирование процессов (время затрачиваемое на входные и выходные байты для сортировки, агрегации и т. д.) по умолчанию. #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. Ранее это работало только в алгоритме JOIN с частичным слиянием. #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).
Исправление ошибок (неправильное поведение на стороне пользователя в официальном стабильном релизе)