Added changelog for 18.12.11 (incomplete) [#CLICKHOUSE-3939]

This commit is contained in:
Alexey Milovidov 2018-09-10 21:46:24 +03:00
parent f16aa1964a
commit 5da7308e2b
2 changed files with 132 additions and 31 deletions

View File

@ -1,31 +0,0 @@
## RU
## ClickHouse release 18.10.3, 2018-08-13
### Новые возможности:
* поддержка межсерверной репликации по HTTPS
* MurmurHash
* ODBCDriver2 с поддержкой NULL-ов
* поддержка UUID в ключевых колонках (экспериментально)
### Улучшения:
* добавлена поддержка SETTINGS для движка Kafka
* поддежка пустых кусков после мержей в движках Summing, Collapsing and VersionedCollapsing
* удаление старых записей о полностью выполнившихся мутациях
* исправлена логика REPLACE PARTITION для движка RplicatedMergeTree
* добавлена системная таблица system.merge_tree_settings
* в системную таблицу system.tables добавлены столбцы зависимостей: dependencies_database и dependencies_table
* заменен аллокатор, теперь используется jemalloc вместо tcmalloc
* улучшена валидация connection string ODBC
* удалена поддержка CHECK TABLE для распределенных таблиц
* добавлены stateful тесты (пока без данных)
* добавлена опция конфига max_partition_size_to_drop
* добавлена настройка output_format_json_escape_slashes
* добавлена настройка max_fetch_partition_retries_count
* добавлена настройка prefer_localhost_replica
* добавлены libressl, unixodbc и mariadb-connector-c как сабмодули
### Исправление ошибок:
* #2786
* #2777
* #2795

View File

@ -1,3 +1,135 @@
## ClickHouse release 18.12.11, 2018-09-10
### Новые возможности:
* Добавлен тип данных `DECIMAL(digits, scale)` (`Decimal32(scale)`, `Decimal64(scale)`, `Decimal128(scale)`). Возможность доступна под настройкой `allow_experimental_decimal_type`. #2846 #2970 #3008 #3047
* Модификатор `WITH ROLLUP` для `GROUP BY` (альтернативный синтаксис: `GROUP BY ROLLUP(...)`). #2948
* Добавлена поддержка JOIN с табличной функцией. #2907
* Автодополнение по нажатию Tab в clickhouse-client.
* Нажатие Ctrl+C в clickhouse-client очищает запрос, если он был введён.
* Добавлена настройка `join_default_strictness` (значения `''`, `'any'`, `'all'`). Её использование позволяет не указывать ANY или ALL для JOIN.
* В каждой строчке лога сервера, относящейся к обработке запроса, выводится идентификатор запроса. #2482
* Возможность получения логов выполнения запроса в clickhouse-client (настройка send_logs_level). При распределённой обработке запроса, логи отправляются каскадно со всех серверов. #2482
* В таблицах system.query_log и system.processes появилась информация о всех изменённых настройках при выполнении запроса (вложенная структура данных Settings). Добавлена настройка log_query_settings. #2482
* В таблицах system.query_log и system.processes появилась информация о номерах потоков, участвующих в исполнении запроса (столбец thread_numbers). #2482
* Добавлены счётчики ProfileEvents, измеряющие время, потраченное на чтение и запись по сети; чтение и запись на диск; количество сетевых ошибок; время потраченное на ожидании при ограничении сетевой полосы. #2482
* Добавлены счётчики ProfileEvents, содержащие системные метрики из rusage (позволяющие получить информацию об использовании CPU в userspace и ядре, page faults, context switches) а также метрики taskstats (позволяющие получить информацию о времени ожидания IO, CPU, а также количество прочитанных и записанных данных с учётом и без учёта page cache). #2482
* Счётчики ProfileEvents учитываются не только глобально, но и на каждый запрос, а также на каждый поток выполнения запроса, что позволяет детально профилировать потребление ресурсов отдельными запросами. #2482
* Добавлена таблица system.query_thread_log, содержащая информацию о каждом потоке выполнения запроса. Добавлена настройка log_query_threads. #2482
* В таблицах system.metrics и system.events появилась встроенная документация.
* Добавлена функция arrayEnumerateDense.
* Добавлены функции arrayCumSumNonNegative и arrayDifference.
* Добавлена агрегатная функция retention.
* Возможность сложения (слияния) состояний агрегатных функций с помощью оператора плюс, а также умножения состояний агрегатных функций на целую неотрицательную константу.
* В таблицах семейства MergeTree добавлен виртуальный столбец _partition_id.
### Экспериментальные возможности:
* Добавлен тип данных `LowCardinality(T)`. Тип данных автоматически создаёт локальный словарь значений и позволяет обрабатывать данные без распаковки словаря.
* Добавлен кэш JIT-скомпилированных функций, а также счётчик числа использований перед компиляцией. Возможность JIT-компиляции выражений включается настройкой `compile_expressions`.
### Улучшения:
* Исправлена проблема неограниченного накопления лога репликации в случае наличия заброшенных реплик. Добавлен режим эффективного восстановления реплик после длительного отставания.
* Увеличена производительность при выполнении GROUP BY в случае, если есть несколько полей агрегации, одно из которых строковое, а другие - фиксированной длины.
* Увеличена производительность при использовании PREWHERE и при неявном переносе выражений в PREWHERE.
* Увеличена производительность парсинга текстовых форматов (CSV, TSV) Amos Bird
* Увеличена производительность чтения строк и массивов в бинарных форматах Amos Bird
* Увеличена производительность и уменьшено потребление памяти в запросах к таблицам system.tables и system.columns в случае наличия очень большого количества таблиц на одном сервере.
* Исправлена проблема низкой производительности в случае наличия большого потока запросов, для которых возвращается ошибка (в этом случае сервер тратит всё время в функции `_dl_addr` при выводе стек трейсов).
* Прокидывание условий внутрь View (при включенной настройке `enable_optimize_predicate_expression`).
* Доработки недостающей функциональности для типа данных UUID.
* Тип данных UUID поддержан в словарях.
* Функция visitParamExtractRaw корректно работает с вложенными структурами.
* При использовании настройки `input_format_skip_unknown_fields` корректно работает пропуск значений-объектов в формате JSONEachRow.
* Для выражения CASE с условиями, появилась возможность не указывать ELSE, что эквивалентно ELSE NULL.
* Возможность конфигурирования operation timeout при работе с ZooKeeper.
* Возможность указания смещения для LIMIT в виде LIMIT n OFFSET m.
* Возможность использования синтаксиса `SELECT TOP n` в качестве альтернативы для `LIMIT`.
* Увеличен размер очереди записи в системные таблицы, что позволяет уменьшить количество ситуаций `SystemLog queue is full`.
* В агрегатной функции windowFunnel добавлена поддержка событий, подходящих под несколько условий.
* Возможность использования дублирующихся столбцов в секции `USING` для `JOIN`.
* Для форматов `Pretty` введено ограничение выравнивания столбцов по ширине. Настройка `output_format_pretty_max_column_pad_width`. В случае более широкого значения, оно всё ещё будет выведено целиком, но остальные ячейки таблицы не будут излишне широкими.
* В табличной функции odbc добавлена возможность указания имени базы данных/схемы.
* Добавлена возможность использования имени пользователя, заданного в конфигурационном файле `clickhouse-client`.
* Счётчик `ZooKeeperExceptions` разделён на три счётчика `ZooKeeperUserExceptions`, `ZooKeeperHardwareExceptions`, `ZooKeeperOtherExceptions`.
* Запросы `ALTER DELETE` работают для материализованных представлений.
* Добавлена рандомизация во времени периодического запуска cleanup thread для таблиц типа ReplicatedMergeTree, чтобы избежать периодических всплесков нагрузки в случае очень большого количества таблиц типа ReplicatedMergeTree.
### Исправление ошибок:
* Исправлена ошибка в работе таблиц типа Dictionary.
* Исправлена ошибка при мерже данных таблиц типа CollapsingMergeTree, если один из кусков данных пустой (такие куски, в свою очередь, образуются при слиянии или при `ALTER DELETE` в случае удаления всех данных), и для слияния был выбран алгоритм `vertical`. Исправлена ошибка при мерже, если все куски были пустыми и для слияния был выбран алгоритм `vertical`.
* Исправлен race condition при DROP или TRUNCATE таблиц типа Memory при одновременном SELECT.
* Исправлена возможность потери данных при вставке в Replicated таблицы в случае получения ошибки `Session expired`.
* Исправлен segfault при `JOIN ... ON`.
* Исправлена ошибка поиска имён столбцов в случае, если выражение WHERE состоит целиком из квалифицированного имени столбца, как например `WHERE table.column`.
* Исправлена ошибка вида "Not found column" при выполнении распределённых запросов в случае, если с удалённого сервера запрашивается единственный столбец, представляющий собой выражение IN с подзапросом.
* Исправлена ошибка `Block structure mismatch in UNION stream: different number of columns`, возникающая при распределённых запросах, если один из шардов локальный, а другой - нет, и если при этом срабатывает оптимизация переноса в PREWHERE.
* Исправлена работа функции pointInPolygon для некоторого случая невыпуклых полигонов.
* Исправлен некорректный результат при сравнении `nan` с целыми числами.
* Исправлена ошибка в библиотеке zlib-ng, которая могла приводить к segfault в редких случаях.
* Исправлена утечка памяти при вставке в таблицу со столбцами типа AggregateFunction, если состояние агрегатной функции нетривиальное (выделяет память отдельно), и если в одном запросе на вставку получается несколько маленьких блоков.
* Исправлен race condition при одновременном создании и удалении одной и той же таблицы типа Buffer или MergeTree.
* Исправлена возможность segfault при сравнении кортежей из некоторых нетривиальных типов, таких как, например, кортежей.
* Исправлена возможность segfault при выполнении некоторых запросов ON CLUSTER.
* Исправлена ошибка в функции arrayDistinct в случае Nullable элементов массивов.
* Возможность `enable_optimize_predicate_expression` корректно поддерживает случаи с `SELECT *`.
* Исправлена возможность segfault при переинициализации сессии с ZooKeeper.
* Исправлена возможность блокировки при взаимодействии с ZooKeeper.
* Исправлен некорректный код суммирования вложенных структур данных в SummingMergeTree.
* При выделении памяти для состояний агрегатных функций, корректно учитывается выравнивание, что позволяет использовать при реализации состояний агрегатных функций операции, для которых выравнивание является необходимым.
### Исправления безопасности:
* Безопасная работа с ODBC источниками данных. Взаимодействие с ODBC драйверами выполняется через отдельный процесс clickhouse-odbc-bridge. Ошибки в сторонних ODBC драйверах не приводят к проблемам со стабильностью сервера или уязвимостям.
* Исправлена некорректная валидация пути к файлу в табличной функции catBoostPool.
* Содержимое системных (`tables`, `databases`, `parts`, `columns`, `parts_columns`, `merges`, `mutations`, `replicas`, `replication_queue`) таблиц фильтруется согласно конфигурации доступа к базам данных для пользователя (`allow_databases`).
### Изменения сборки:
* Добавлен покоммитный запуск большинства интеграционных тестов.
* Добавлен покоммитный запуск проверки стиля кода.
* Корректный выбор реализации memcpy при сборке на CentOS7 / Fedora.
* При сборке с помощью clang добавлены некоторые warnings из `-Weverything` в дополнение к обычным `-Wall -Wextra -Werror`.
* При debug сборке используется debug вариант jemalloc.
* Абстрагирован интерфейс библиотеки для взаимодействия с ZooKeeper.
## ClickHouse release 18.10.3, 2018-08-13
### Новые возможности:
* поддержка межсерверной репликации по HTTPS
* MurmurHash
* Поддержка Nullable типов в ODBC драйвере ClickHouse (формат вывода ODBCDriver2).
* поддержка UUID в ключевых колонках.
### Улучшения:
* добавлена поддержка SETTINGS для движка Kafka
* поддежка пустых кусков после мержей в движках Summing, Collapsing and VersionedCollapsing
* удаление старых записей о полностью выполнившихся мутациях
* исправлена логика REPLACE PARTITION для движка RplicatedMergeTree
* добавлена системная таблица system.merge_tree_settings
* в системную таблицу system.tables добавлены столбцы зависимостей: dependencies_database и dependencies_table
* улучшена валидация connection string ODBC
* удалена поддержка CHECK TABLE для распределенных таблиц
* добавлены stateful тесты (пока без данных)
* добавлена опция конфига max_partition_size_to_drop
* добавлена настройка output_format_json_escape_slashes
* добавлена настройка max_fetch_partition_retries_count
* Добавлена настройка prefer_localhost_replica, позволяющая отключить предпочтение локальной реплики и хождение на локальную реплику без межпроцессного взаимодействия.
### Исправление ошибок:
* #2786
* #2777
* #2795
### Изменения сборки:
* заменен аллокатор, теперь используется jemalloc вместо tcmalloc
* добавлены libressl, unixodbc и mariadb-connector-c как сабмодули
## ClickHouse release 18.6.0, 2018-08-02
### Новые возможности: