Эти настройки доступны в system.settings и автоматически сгенерированы на основе исходного кода.
aggregate_function_input_format
История версий
| Версия | Значение по умолчанию | Комментарий |
|---|---|---|
| 25.12 | state | Новая настройка для управления форматом входных данных AggregateFunction при операциях INSERT. Значение настройки по умолчанию — state |
Формат входных данных AggregateFunction при операциях INSERT.
Возможные значения:
state— Двоичная строка с сериализованным состоянием (по умолчанию). Это стандартное поведение, при котором значения AggregateFunction должны передаваться как двоичные данные.value— Формат ожидает одно значение аргумента агрегатной функции или, в случае нескольких аргументов, их кортеж. Они будут десериализованы с помощью соответствующего IDataType или DataTypeTuple, а затем агрегированы для формирования состояния.array— Формат ожидаетArrayзначений, как описано выше для вариантаvalue. Все элементы массива будут агрегированы для формирования состояния.
Примеры
Для таблицы со структурой:
CREATE TABLE example (
user_id UInt64,
avg_session_length AggregateFunction(avg, UInt32)
);При aggregate_function_input_format = 'value':
INSERT INTO example FORMAT CSV
123,456При aggregate_function_input_format = 'array':
INSERT INTO example FORMAT CSV
123,"[456,789,101]"Примечание: форматы value и array работают медленнее, чем формат state, используемый по умолчанию, поскольку во время вставки требуют создания и агрегации значений.
aggregate_functions_null_for_empty
Включает или отключает переписывание всех агрегатных функций в запросе, добавляя к ним суффикс -OrNull. Включите этот параметр для соответствия стандарту SQL. Это реализовано с помощью перезаписи запроса (аналогично настройке count_distinct_implementation), чтобы обеспечить согласованные результаты для распределённых запросов.
Возможные значения:
- 0 — Отключено.
- 1 — Включено.
Пример
Рассмотрим следующий запрос с агрегатными функциями:
SELECT SUM(-1), MAX(0) FROM system.one WHERE 0;При aggregate_functions_null_for_empty = 0 получится:
┌─SUM(-1)─┬─MAX(0)─┐
│ 0 │ 0 │
└─────────┴────────┘При aggregate_functions_null_for_empty = 1 результат будет таким:
┌─SUMOrNull(-1)─┬─MAXOrNull(0)─┐
│ NULL │ NULL │
└───────────────┴──────────────┘