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

# настройки сеанса allow_*

> Настройки сеанса ClickHouse из автоматически сгенерированной группы allow_*.

export const BetaBadge = ({link, galaxyTrack, galaxyEvent}) => {
  if (link) {
    return <a href={link} target="_blank" rel="noopener noreferrer" className="betaBadge" onClick={galaxyTrack && galaxyEvent ? galaxyOnClick(galaxyEvent) : undefined}>
                <span>Бета</span>
            </a>;
  }
  return <a href="https://clickhouse.com/docs/reference/settings/beta-and-experimental-features#beta-features" className="betaBadge">
            <span>Возможность в статусе бета</span>
        </a>;
};

export const ExperimentalBadge = () => {
  return <a href="https://clickhouse.com/docs/reference/settings/beta-and-experimental-features#experimental-features" className="experimentalBadge">
            <div className="experimentalIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.25" d="M5.5 2H10.5" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M9.50015 2V6.19625L13.4283 12.7425C13.4738 12.8183 13.4985 12.9049 13.4996 12.9934C13.5008 13.0818 13.4785 13.169 13.435 13.246C13.3914 13.323 13.3283 13.3871 13.2519 13.4317C13.1755 13.4764 13.0886 13.4999 13.0002 13.5H3.00015C2.91164 13.5 2.8247 13.4766 2.74822 13.432C2.67174 13.3874 2.60847 13.3233 2.56487 13.2463C2.52126 13.1693 2.49889 13.082 2.50004 12.9935C2.50119 12.905 2.52582 12.8184 2.5714 12.7425L6.50015 6.19625V2" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M4.47656 9.56754C5.30344 9.41254 6.47656 9.47942 7.99969 10.25C10.0153 11.2707 11.4216 11.0569 12.2184 10.7282" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            Экспериментальная возможность
        </a>;
};

export const VersionHistory = ({rows = []}) => {
  if (rows.length === 0) {
    return null;
  }
  const headers = ["Версия", "Значение по умолчанию", "Комментарий"];
  const border = "1px solid rgba(128, 128, 128, 0.3)";
  const cell = {
    border,
    padding: "0.25rem 0.5rem",
    textAlign: "start",
    verticalAlign: "top"
  };
  return <details className="not-prose" style={{
    border,
    borderRadius: "0.5rem",
    margin: "0.5rem 0",
    padding: "0.5rem 0.75rem",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <summary style={{
    cursor: "pointer",
    fontWeight: 600,
    opacity: 0.72
  }}>
        История версий
      </summary>
      <table style={{
    borderCollapse: "collapse",
    width: "100%",
    margin: "0.5rem 0 0"
  }}>
        <thead>
          <tr>
            {headers.map(header => <th key={header} style={{
    ...cell,
    fontWeight: 600,
    opacity: 0.72
  }}>
                {header}
              </th>)}
          </tr>
        </thead>
        <tbody>
          {rows.map((row, row_index) => <tr key={row.id ?? row_index}>
              {(row.items ?? []).map((item, item_index) => <td key={item_index} style={{
    ...cell,
    overflowWrap: "anywhere"
  }}>
                  {item?.label}
                </td>)}
            </tr>)}
        </tbody>
      </table>
    </details>;
};

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>Тип</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>По умолчанию</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Изменяется без перезапуска
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

Эти настройки доступны в [system.settings](/ru/reference/system-tables/settings) и автоматически формируются на основе [исходного кода](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp).

## allow\_aggregate\_partitions\_independently

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "1"},{"label": "По умолчанию включает независимую агрегацию по каждой партиции, если ключ партиционирования соответствует ключу GROUP BY. Существующие эвристики выполнения в `ReadFromMergeTree::requestOutputEachPartitionThroughSeparatePortForAggregation` уже пропускают эту оптимизацию, если структура партиций неблагоприятна (слишком мало партиций, слишком много партиций или размеры партиций сильно перекошены), поэтому включать эту настройку безопасно в случаях, когда иначе она не дала бы эффекта."}]}]} />

Включает независимую агрегацию партиций в отдельных потоках, если ключ партиционирования соответствует ключу GROUP BY. Полезно, когда число партиций близко к числу ядер, а сами партиции имеют примерно одинаковый размер. Эвристики в `ReadFromMergeTree` автоматически отключают эту оптимизацию при неблагоприятной структуре (слишком мало партиций, слишком много партиций или размеры партиций сильно перекошены); чтобы обойти эти проверки, см. `force_aggregate_partitions_independently`.

## allow\_archive\_path\_syntax

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.8"},{"label": "1"},{"label": "Добавлена новая настройка, позволяющая отключить синтаксис путей к архивам."}]}, {"id": "row-2","items": [{"label": "24.5"},{"label": "1"},{"label": "Добавлена новая настройка, позволяющая отключить синтаксис путей к архивам."}]}]} />

Движки File/S3 и табличная функция будут разбирать пути с '::' как `<archive> :: <file>`, если у архива корректное расширение.

## allow\_asynchronous\_read\_from\_io\_pool\_for\_merge\_tree

<SettingsInfoBlock type="Bool" default_value="0" />

Использовать фоновый пул I/O для чтения из таблиц семейства MergeTree. Эта настройка может повысить производительность запросов, ограниченных пропускной способностью I/O

## allow\_calculating\_subcolumns\_sizes\_for\_merge\_tree\_reading

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "1"},{"label": "Разрешить вычисление размеров подстолбцов при чтении MergeTree для улучшения разбиения задач чтения"}]}]} />

Если настройка включена, ClickHouse будет вычислять размер файлов, необходимых для чтения каждого подстолбца, чтобы точнее рассчитывать размеры задач и блоков.

## allow\_changing\_replica\_until\_first\_data\_packet

<SettingsInfoBlock type="Bool" default_value="0" />

Если параметр включен, в хеджированных запросах можно устанавливать новое соединение до получения первого пакета данных, даже если уже был достигнут некоторый прогресс
(но прогресс не обновлялся в течение тайм-аута `receive_data_timeout`); в противном случае смена реплики отключается после первого достижения прогресса.

## allow\_correlated\_subqueries

<BetaBadge />

**Псевдонимы**: `allow_experimental_correlated_subqueries`

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "1"},{"label": "Добавлен псевдоним для настройки `allow_experimental_correlated_subqueries`."}]}]} />

Разрешает выполнение коррелированных подзапросов.

## allow\_create\_index\_without\_type

<SettingsInfoBlock type="Bool" default_value="0" />

Разрешает выполнение запроса CREATE INDEX без TYPE. Запрос будет проигнорирован. Предназначено для тестов совместимости с SQL.

## allow\_creating\_set\_partitions\_independently

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "1"},{"label": "Новая настройка, включающая параллельную предварительную дедупликацию результата подзапроса по партициям при построении множества для `IN (subquery)`, если выражение партиционирования является детерминированной функцией выходных столбцов подзапроса."}]}]} />

Включает параллельную предварительную дедупликацию результата подзапроса по партициям при построении множества для `IN (subquery)`, если выражение партиционирования таблицы `MergeTree` в подзапросе является детерминированной функцией выходных столбцов подзапроса. Каждая партиция читается отдельным потоком и дедуплицируется независимо, поэтому единственное преобразование заполнения множества хеширует только уникальные строки. Не применяется с `FINAL`, параллельными репликами или `GLOBAL IN`. Оптимизация запрашивает чтение по партициям только если данные содержат более одной партиции, а наибольшая партиция содержит не более чем вдвое больше строк, чем средняя (см. [force\_creating\_set\_partitions\_independently](/ru/reference/settings/session-settings/force#force_creating_set_partitions_independently), чтобы обойти проверку неравномерности); если потоки уже разделены по партициям другой возможностью, работающей по партициям (например, `LIMIT BY` по партициям), предварительная дедупликация применяется в любом случае, поскольку структура чтения уже определена. Пока строится множество, таблицы дедупликации всех потоков вместе хранят примерно одну дополнительную копию уникальных ключей.

## allow\_custom\_error\_code\_in\_throwif

<SettingsInfoBlock type="Bool" default_value="0" />

Разрешает использование пользовательского кода ошибки в функции throwIf(). Если значение `true`, сгенерированные исключения могут иметь неожиданные коды ошибок.

## allow\_database\_glue\_catalog

<BetaBadge />

**Псевдонимы**: `allow_experimental_database_glue_catalog`

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Добавлен псевдоним для настройки `allow_experimental_database_glue_catalog`"}]}]} />

Разрешает движок баз данных `DataLakeCatalog` с `catalog_type = 'glue'`

Значение по умолчанию в Cloud: `1`.

## allow\_database\_iceberg

<BetaBadge />

**Псевдонимы**: `allow_experimental_database_iceberg`

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Добавлен псевдоним для настройки `allow_experimental_database_iceberg`"}]}]} />

Разрешает движок баз данных `DataLakeCatalog` с `catalog_type = 'iceberg'`

Значение по умолчанию в Cloud: `1`.

## allow\_database\_unity\_catalog

<BetaBadge />

**Псевдонимы**: `allow_experimental_database_unity_catalog`

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Добавлен псевдоним для настройки `allow_experimental_database_unity_catalog`"}]}]} />

Разрешает движок баз данных `DataLakeCatalog` с `catalog_type = 'unity'`

Значение по умолчанию в Cloud: `1`.

## allow\_ddl

<SettingsInfoBlock type="Bool" default_value="1" />

Если установлено значение true, пользователю разрешается выполнять DDL-запросы.

## allow\_delta\_kernel\_rs

<BetaBadge />

**Псевдонимы**: `allow_experimental_delta_kernel_rs`

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "1"},{"label": "Новое название `allow_experimental_delta_kernel_rs`, которая больше не является экспериментальной и сохранена в качестве псевдонима. Значение по умолчанию не изменилось."}]}, {"id": "row-2","items": [{"label": "25.5"},{"label": "1"},{"label": "Новая настройка. Введена под именем `allow_experimental_delta_kernel_rs`, которое теперь является её псевдонимом; запись перенесена под каноническое имя, чтобы сохранить всю историю."}]}]} />

Разрешает использовать реализацию `delta-kernel-rs` для чтения таблиц Delta Lake.

## allow\_delta\_lake\_create\_table

<ExperimentalBadge />

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "0"},{"label": "Новая настройка: разрешает создание новой таблицы DeltaLake с помощью delta-kernel-rs или регистрацию существующей таблицы в каталоге."}]}]} />

Разрешает создание новой таблицы DeltaLake с помощью delta-kernel-rs или регистрацию существующей таблицы в каталоге. Создание партиционированной таблицы (`PARTITION BY`) пока не поддерживается. В базе данных `DataLakeCatalog` таблица регистрируется со своей схемой Delta, поэтому объявленные типы ClickHouse, которым соответствует более широкий тип Delta (например, `UInt8` -> `short`, `FixedString(N)` -> `string`), при чтении возвращаются как тип из сопоставления Delta, а не как объявленный.

## allow\_delta\_lake\_writes

<BetaBadge />

**Псевдонимы**: `allow_experimental_delta_lake_writes`

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "0"},{"label": "Добавлен псевдоним для настройки `allow_experimental_delta_lake_writes`, которая переведена в статус бета."}]}]} />

Включает возможность записи через delta-kernel.

## allow\_distinct\_partitions\_independently

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "1"},{"label": "Новая настройка для включения независимой обработки `DISTINCT` в каждой партиции, когда выражение партиционирования является детерминированной функцией от столбцов `DISTINCT`."}]}]} />

Включает независимую обработку `DISTINCT` в каждой партиции в отдельных потоках, когда выражение партиционирования является детерминированной функцией от столбцов `DISTINCT`, без слияния между потоками. Это полезно, когда число партиций близко к числу ядер, а размеры партиций примерно одинаковы; в противном случае эвристика стоимости не применяет эту оптимизацию. См. [max\_number\_of\_partitions\_for\_independent\_distinct](/ru/reference/settings/session-settings/max-number#max_number_of_partitions_for_independent_distinct) и [force\_distinct\_partitions\_independently](/ru/reference/settings/session-settings/force#force_distinct_partitions_independently). Не применяется с `FINAL` или параллельными репликами.

Не применяется, если задано [max\_rows\_in\_distinct](/ru/reference/settings/session-settings/max-rows#max_rows_in_distinct) или [max\_bytes\_in\_distinct](/ru/reference/settings/session-settings/max-bytes#max_bytes_in_distinct): эти ограничения применяются единственным преобразованием `DISTINCT`, которое обрабатывает весь объединённый результат, поэтому слияние между потоками сохраняется, чтобы обеспечить их глобальное действие.

## allow\_distributed\_ddl

<SettingsInfoBlock type="Bool" default_value="1" />

Если установлено значение true, пользователю разрешено выполнять распределённые DDL-запросы.

## allow\_drop\_detached

<SettingsInfoBlock type="Bool" default_value="0" />

Разрешает запросы ALTER TABLE ... DROP DETACHED PART\[ITION] ...

## allow\_dynamic\_type\_in\_join\_keys

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "0"},{"label": "Использование типа Dynamic в ключах JOIN по умолчанию запрещено"}]}]} />

Разрешает использовать тип Dynamic в ключах JOIN. Добавлено для совместимости. Не рекомендуется использовать тип Dynamic в ключах JOIN, поскольку сравнение с другими типами может приводить к неожиданным результатам.

## allow\_executable\_tables

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.10"},{"label": "1"},{"label": "Новая настройка для отключения чтения через табличную функцию `executable`, а также из таблиц `Executable` и `ExecutablePool`."}]}]} />

Разрешает чтение через табличную функцию `executable`, а также из таблиц `Executable` и `ExecutablePool`.

Если настройка отключена, запрещается только чтение: создание, присоединение (ATTACH), удаление и описание таких таблиц продолжают работать. Уже запущенные процессы `ExecutablePool` не завершаются и продолжают работать, но каждая операция чтения будет отклоняться, пока настройка не будет включена снова.

## allow\_execute\_multiif\_columnar

<SettingsInfoBlock type="Bool" default_value="1" />

Разрешает выполнять функцию multiIf в столбцовом режиме

## allow\_fuzz\_query\_functions

<ExperimentalBadge />

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "Новая настройка для включения функции fuzzQuery."}]}]} />

Включает функцию `fuzzQuery`, которая применяет к строке запроса случайные мутации AST.

## allow\_general\_join\_planning

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "Разрешает использовать более универсальный алгоритм планирования JOIN, когда включен алгоритм hash join."}]}]} />

Разрешает использовать более универсальный алгоритм планирования JOIN, способный обрабатывать более сложные условия, но работающий только с hash join. Если hash join не включен, то независимо от значения этой настройки используется обычный алгоритм планирования JOIN.

## allow\_geo\_types\_in\_iceberg

**Псевдонимы**: `allow_experimental_geo_types_in_iceberg`

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "0"},{"label": "Добавлен псевдоним для настройки `allow_experimental_geo_types_in_iceberg`."}]}]} />

Разрешает разбор типов полей Iceberg `geometry` и `geography` как типа ClickHouse `Geometry` (Variant).

## allow\_get\_client\_http\_header

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "Добавлена новая функция."}]}]} />

Разрешает использовать функцию `getClientHTTPHeader`, которая позволяет получать значение заголовка текущего HTTP request. По соображениям безопасности эта возможность по умолчанию отключена, поскольку некоторые заголовки, например `Cookie`, могут содержать конфиденциальную информацию. Обратите внимание, что заголовки `X-ClickHouse-*`, `Authentication` и `Authorization` всегда недоступны и не могут быть получены с помощью этой функции.

## allow\_hyperscan

<SettingsInfoBlock type="Bool" default_value="1" />

Разрешает функции, использующие библиотеку Hyperscan. Отключите, чтобы избежать потенциально длительной компиляции и чрезмерного потребления ресурсов.

## allow\_iceberg\_remove\_orphan\_files

<ExperimentalBadge />

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Новая настройка, разрешающая удаление осиротевших файлов Iceberg"}]}]} />

Разрешает использовать `ALTER TABLE ... EXECUTE remove_orphan_files()` для таблиц Iceberg.

## allow\_insert\_into\_iceberg

<BetaBadge />

**Псевдонимы**: `allow_experimental_insert_into_iceberg`

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "Вставка в Iceberg переведена в статус бета"}]}, {"id": "row-2","items": [{"label": "25.7"},{"label": "0"},{"label": "Новая настройка."}]}]} />

Разрешает выполнять запросы `insert` в Iceberg.

## allow\_introspection\_functions

<SettingsInfoBlock type="Bool" default_value="0" />

Включает или отключает [функции интроспекции](/ru/reference/functions/regular-functions/introspection) при профилировании запросов.

Возможные значения:

* 1 — функции интроспекции включены.
* 0 — функции интроспекции отключены.

**См. также**

* [Выборочный профилировщик запросов](/ru/concepts/features/performance/troubleshoot/sampling-query-profiler)
* Системная таблица [trace\_log](/ru/reference/system-tables/trace_log)

## allow\_join\_right\_table\_sorting

<ExperimentalBadge />

**Псевдонимы**: `allow_experimental_join_right_table_sorting`

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "0"},{"label": "Добавлен псевдоним для настройки `allow_experimental_join_right_table_sorting`."}]}]} />

Если задано значение true и выполняются условия `join_to_sort_minimum_perkey_rows` и `join_to_sort_maximum_table_rows`, правая таблица переупорядочивается по ключу — это повышает производительность left или inner hash join.

## allow\_kafka\_offsets\_storage\_in\_keeper

<ExperimentalBadge />

**Псевдонимы**: `allow_experimental_kafka_offsets_storage_in_keeper`

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "0"},{"label": "Добавлен псевдоним для настройки `allow_experimental_kafka_offsets_storage_in_keeper`."}]}]} />

Разрешает хранение смещений Kafka в ClickHouse Keeper. Если настройка включена, для движка таблицы Kafka можно указать path в ClickHouse Keeper и имя реплики. В этом случае вместо обычного движка Kafka будет использоваться новый тип движка хранения, который хранит зафиксированные смещения преимущественно в ClickHouse Keeper

## allow\_key\_condition\_coalesce\_rewrite

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "Новая настройка для переписывания предикатов вида `coalesce(a_1, ..., a_N) <op> const` (и аналогично для `ifNull`, а также с константой слева) в дизъюнкцию перед анализом индексов, чтобы можно было использовать первичный ключ по каждому столбцу и индексы пропуска данных для каждого `a_i`. Также поддерживаются формы с частично константными аргументами, такие как `coalesce(a, 42, b)` и `coalesce(a, b, 42)`."}]}]} />

Переписывает предикаты вида `coalesce(a_1, ..., a_N) <op> const` (и аналогично для `ifNull`, а также с константой слева) в дизъюнкцию `(a_1 <op> const) OR (a_1 IS NULL AND a_2 <op> const) OR ... OR (a_1 IS NULL AND ... AND a_{N-1} IS NULL AND a_N <op> const)` перед анализом индексов, чтобы можно было использовать первичный ключ по каждому столбцу и индексы пропуска данных для каждого `a_i`. Обрабатываются формы с частично константными аргументами, такие как `coalesce(a, 42, b)` и `coalesce(a, b, 42)`: список аргументов нормализуется так же, как в самом `coalesce` (литералы `NULL` отбрасываются, аргументы после первого не-`Nullable` отбрасываются), а завершающая константа, отличная от `NULL`, если она есть, добавляется как последняя ветвь. Переписывание исключительно расширяет возможности отсечения данных по индексам; при выполнении запроса по-прежнему используется исходный предикат.
Кроме того, предикаты точного равенства вида `nullIf(key, sentinel) = const` (где `sentinel != const` и типы полностью совпадают) переписываются в `key = const`, чтобы первичный ключ, партиция и индексы пропуска данных по `key` могли напрямую отсекать гранулы. Отсечение гранул для диапазонных и дизъюнктивных условий с `nullIf` не поддерживается.

## allow\_limit\_by\_partitions\_independently

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "1"},{"label": "Новая настройка для включения независимого вычисления `LIMIT BY` для каждой партиции, когда выражение партиционирования является детерминированной функцией столбцов `LIMIT BY`."}]}]} />

Включает независимое вычисление `LIMIT BY` для каждой партиции в отдельных потоках, когда выражение партиционирования является детерминированной функцией столбцов `LIMIT BY`.

## allow\_lossy\_numeric\_supertype

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "0"},{"label": "Новая настройка, позволяющая if\/multiIf\/coalesce\/ifNull\/array\/map приводить все числовые ветви без общего типа без потери точности (например, Decimal + Float64) к числовому супертипу (Float64 с возможной потерей точности), чтобы результат можно было агрегировать. Не зависит от use_variant_as_common_type: если она была выключена, такие ветви ранее вызывали NO_COMMON_TYPE, а если включена — становились Variant; теперь в обоих случаях они приводятся к Float64."}]}]} />

Когда настройка включена, `if`/`multiIf`/`coalesce`/`ifNull`/`array`/`map` с набором числовых аргументов, не имеющих общего типа без потери точности (например, `Decimal` и `Float64` или `Int64` и `Float64`), вместо ошибки приводятся к числовому супертипу (`Float64`) с возможной потерей точности. Это позволяет напрямую использовать результат с агрегатными функциями, объединяющими значения, такими как `sum`, `avg`, `min` и `max`. Настройка не зависит от `use_variant_as_common_type`: числовой супертип создаётся независимо от того, включён ли `use_variant_as_common_type`. Когда настройка отключена (по умолчанию), такие наборы аргументов не имеют общего типа: они либо становятся `Variant` (если включён `use_variant_as_common_type`), либо вызывают ошибку `NO_COMMON_TYPE`.

## allow\_materialized\_view\_with\_bad\_select

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "0"},{"label": "Запретить создание MV, ссылающихся на несуществующие столбцы или таблицы"}]}, {"id": "row-2","items": [{"label": "24.9"},{"label": "1"},{"label": "Поддержка (но пока не включена) более строгой валидации в CREATE MATERIALIZED VIEW"}]}]} />

Разрешает CREATE MATERIALIZED VIEW с SELECT-запросом, который ссылается на несуществующие таблицы или столбцы. При этом запрос всё равно должен быть синтаксически корректным. Не применяется к обновляемым MV. Не применяется, если схему MV нужно определить по SELECT-запросу (то есть если в CREATE нет списка столбцов и нет TO table). Может использоваться для создания MV до создания её исходной таблицы.

## allow\_metadata\_only\_named\_tuple\_alter

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "0"},{"label": "Новая настройка для управления ALTER, изменяющим только метаданные, при добавлении подполей в именованный Tuple."}]}]} />

Если true, операция ALTER MODIFY COLUMN для именованного Tuple, при которой добавляются только новые подполя, изменяет только метаданные (без мутации данных).
Установите false, чтобы принудительно включить прежнее поведение с полной мутацией.

## allow\_minmax\_index\_for\_json

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "0"},{"label": "По умолчанию запрещает создавать индекс пропуска данных minmax для JSON-столбцов, поскольку сериализация индекса не может обрабатывать неоднородные значения Field"}]}]} />

Разрешает создавать индексы пропуска данных minmax для столбцов JSON (Object). По умолчанию отключено, поскольку путь сериализации индекса minmax не может обрабатывать неоднородные значения Field, которые могут содержаться в JSON-столбцах.

## allow\_named\_collection\_override\_by\_default

<SettingsInfoBlock type="Bool" default_value="1" />

По умолчанию разрешает переопределение полей именованных коллекций.

## allow\_non\_metadata\_alters

<SettingsInfoBlock type="Bool" default_value="1" />

Разрешает выполнять ALTER-запросы, которые затрагивают не только метаданные таблиц, но и данные на диске

## allow\_nonconst\_timezone\_arguments

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.4"},{"label": "0"},{"label": "Разрешает использовать неконстантные аргументы часового пояса в некоторых функциях, связанных со временем, таких как toTimeZone(), fromUnixTimestamp*(), snowflakeToDateTime*()."}]}]} />

Разрешает использовать неконстантные аргументы часового пояса в некоторых функциях, связанных со временем, таких как toTimeZone(), fromUnixTimestamp\*(), snowflakeIDToDateTime\*().
Этот параметр существует исключительно для совместимости. В ClickHouse часовой пояс — это свойство типа данных, а значит, и столбца.
Включение этого параметра создаёт ложное впечатление, что разные значения в одном столбце могут иметь разные часовые пояса.
Поэтому, пожалуйста, не включайте этот параметр.

## allow\_nullable\_tuple\_in\_extracted\_subcolumns

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "1"},{"label": "`Nullable(Tuple)` теперь GA: подстолбец `Tuple`, извлечённый из столбца `Tuple`, `Variant`, `Dynamic` или `JSON`, имеет тип `Nullable(Tuple)` и содержит NULL в строках, где подстолбец отсутствует. Настройка считывается один раз при запуске сервера, поэтому `compatibility` восстанавливает предыдущее поведение только из профиля запуска (например, users.xml), а не из `SET` на уровне сеанса."}]}, {"id": "row-2","items": [{"label": "26.3"},{"label": "0"},{"label": "Новая настройка, определяющая, могут ли извлечённые подстолбцы Tuple быть Nullable."}]}]} />

Определяет, могут ли извлечённые подстолбцы типа `Tuple(...)` иметь тип `Nullable(Tuple(...))`.

* `false`: Возвращает `Tuple(...)` и использует значения кортежа по умолчанию для строк, в которых подстолбец отсутствует.
* `true`: Возвращает `Nullable(Tuple(...))` и использует `NULL` для строк, в которых подстолбец отсутствует.

Эта настройка управляет только поведением извлечённых подстолбцов.
Она не определяет, можно ли создавать в таблицах столбцы `Nullable(Tuple(...))`; это регулируется параметром `enable_nullable_tuple_type`.

ClickHouse использует значение этой настройки, загруженное при запуске сервера.
Изменения, внесённые с помощью `SET` или `SETTINGS` на уровне запроса, не меняют поведение извлечённых подстолбцов.
Чтобы изменить поведение извлечённых подстолбцов, обновите `allow_nullable_tuple_in_extracted_subcolumns` в конфигурации профиля запуска (например, в users.xml) и перезапустите сервер.

## allow\_preliminary\_distinct\_abandoning

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "1"},{"label": "Новая настройка, позволяющая предварительному `DISTINCT` отказаться от дедупликации почти полностью уникальных входных данных, поскольку финальный `DISTINCT` всё равно повторно выполняет дедупликацию его результата."}]}]} />

Позволяет предварительному (выполняемому для каждого потока) `DISTINCT` отказаться от дедупликации почти полностью уникальных входных данных, освободив свою hash table и пропуская оставшиеся строки дальше. Предварительный `DISTINCT` по своей природе работает по принципу «по мере возможности»: дубликаты из разных потоков проходят через него даже тогда, когда он выполняет дедупликацию, а финальный `DISTINCT` всё равно повторно дедуплицирует его результат. Поэтому такой отказ практически не ухудшает удаление дубликатов, но экономит память и вычисление hash для второй копии уникальных ключей. Не применяется, если предварительный `DISTINCT` содержит подсказку об ограничении (простой `LIMIT` без последующей сортировки).

## allow\_rank\_dense\_rank\_arguments

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "Новая настройка. До версии 26.5 оконные функции `RANK` и `DENSE_RANK` молча игнорировали любые переданные аргументы (эквивалентно `allow_rank_dense_rank_arguments = 1`). Начиная с версии 26.5, по умолчанию они отклоняют аргументы с ошибкой `NUMBER_OF_ARGUMENTS_DOESNT_MATCH`, поскольку по стандарту SQL эти функции не принимают аргументов. Установите значение `1`, чтобы восстановить прежнее поведение."}]}]} />

Разрешает передавать аргументы в оконные функции `RANK` и `DENSE_RANK` для обратной совместимости.

Согласно стандарту SQL, `RANK` и `DENSE_RANK` не принимают аргументов — они ранжируют строки только по
окну `OVER (ORDER BY ...)`. В версиях ClickHouse до 26.5 запросы вида
`RANK(x) OVER (...)` молча принимали и игнорировали аргумент, что приводило к путанице у пользователей
(наличие аргумента создавало впечатление, что он влияет на ранжирование, хотя это было не так).

Когда эта настройка имеет значение `false` (по умолчанию), `RANK` и `DENSE_RANK` отклоняют любые аргументы и
генерируют ошибку `NUMBER_OF_ARGUMENTS_DOESNT_MATCH`. Если установить значение `true`, восстанавливается прежнее более мягкое поведение —
аргументы молча игнорируются, как и до версии 26.5.

## allow\_reorder\_prewhere\_conditions

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "1"},{"label": "новая настройка"}]}]} />

При перемещении условий из WHERE в PREWHERE разрешает менять их порядок для оптимизации фильтрации

## allow\_replace\_partition\_from\_empty\_source

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "0"},{"label": "Новая проверка безопасности: `ALTER TABLE ... REPLACE PARTITION ... FROM ...` теперь генерирует исключение, если в исходной таблице нет частей в запрошенной партиции (это устраняет незаметную потерю данных, описанную в [#23727](https:\/\/github.com\/ClickHouse\/ClickHouse\/issues\/23727)). Предыдущее поведение — молчаливое удаление партиции пункта назначения — сохраняется при установке `allow_replace_partition_from_empty_source = 1`."}]}]} />

Разрешает `ALTER TABLE ... REPLACE PARTITION ... FROM ...` молча удалять партицию пункта назначения, если в источнике нет частей в этой партиции.

По умолчанию это запрещено: `REPLACE PARTITION` из источника, в котором нет данных в запрошенной партиции, вызывает исключение, поскольку в таком случае операция фактически превращается в молчаливый `DROP PARTITION` для пункта назначения (данные в партиции пункта назначения удаляются, но взамен ничего не записывается), что нередко приводит к случайной потере данных (см. [#23727](https://github.com/ClickHouse/ClickHouse/issues/23727)).

Включите эту настройку, чтобы вернуть прежнее поведение, например если вы намеренно используете пустую исходную партицию для очистки данных в пункте назначения. Если нужно просто удалить партицию без дополнительных условий, предпочтительнее использовать `ALTER TABLE ... DROP PARTITION ...`.

## allow\_settings\_after\_format\_in\_insert

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.4"},{"label": "0"},{"label": "Не разрешать `SETTINGS` после `FORMAT` в `INSERT`-запросах, поскольку ClickHouse может интерпретировать `SETTINGS` как значения, что может ввести в заблуждение"}]}]} />

Управляет тем, разрешён ли `SETTINGS` после `FORMAT` в `INSERT`-запросах. Использовать это не рекомендуется, поскольку часть `SETTINGS` может быть интерпретирована как значения.

Пример:

```sql theme={null}
INSERT INTO FUNCTION null('foo String') SETTINGS max_threads=1 VALUES ('bar');
```

Но следующий запрос будет работать только при включённой настройке `allow_settings_after_format_in_insert`:

```sql theme={null}
SET allow_settings_after_format_in_insert=1;
INSERT INTO FUNCTION null('foo String') VALUES ('bar') SETTINGS max_threads=1;
```

Возможные значения:

* 0 — Запрещено.
* 1 — Разрешено.

<Note>
  Используйте эту настройку только для обратной совместимости, если ваши сценарии зависят от старого синтаксиса.
</Note>

## allow\_simdjson

<SettingsInfoBlock type="Bool" default_value="1" />

Разрешает использовать библиотеку simdjson в функциях 'JSON\*', если доступны инструкции AVX2. Если параметр отключен, будет использоваться rapidjson.

## allow\_special\_serialization\_kinds\_in\_output\_formats

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "1"},{"label": "Включает прямой вывод специальных представлений столбцов, таких как Sparse/Replicated, в некоторых выходных форматах"}]}, {"id": "row-2","items": [{"label": "25.10"},{"label": "0"},{"label": "Добавляет настройку, разрешающую вывод специальных представлений столбцов, таких как Sparse/Replicated, без преобразования их в полные столбцы"}]}]} />

Позволяет выводить столбцы со специальными видами сериализации, такими как Sparse и Replicated, без преобразования их в полные столбцы.
Это помогает избежать лишнего копирования данных при форматировании.

## allow\_unrestricted\_reads\_from\_keeper

<SettingsInfoBlock type="Bool" default_value="0" />

Разрешает неограниченное чтение (без условия по path) из таблицы system.zookeeper; может быть удобно, но небезопасно для ZooKeeper

## allow\_url\_wildcard\_from\_index\_pages

<ExperimentalBadge />

**Псевдонимы**: `allow_experimental_url_wildcard_from_index_pages`

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "0"},{"label": "Добавлен псевдоним для настройки `allow_experimental_url_wildcard_from_index_pages`."}]}]} />

Разрешает раскрытие wildcard для `url()` и `ENGINE = URL` по индексным страницам HTTP.

## allow\_window\_partitions\_independently

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "1"},{"label": "Новая настройка для независимого вычисления оконных функций для каждой партиции (без хеш-перераспределения), если выражение партиционирования является детерминированной функцией столбцов оконного `PARTITION BY`."}]}]} />

Включает независимое вычисление оконных функций для каждой партиции в отдельных потоках, если выражение партиционирования таблицы `MergeTree` является детерминированной функцией столбцов оконного `PARTITION BY`. Каждая партиция читается через отдельный поток данных, независимо сортируется в соответствии с описанием сортировки окна и обрабатывается собственным оконным преобразованием без хеш-перераспределения, которое обычно перераспределяет каждую строку между потоками. Это полезно, когда число партиций близко к числу ядер, а их размеры примерно одинаковы; в противном случае эвристика стоимости не применяет эту оптимизацию. См. [max\_number\_of\_partitions\_for\_independent\_window](/ru/reference/settings/session-settings/max-number#max_number_of_partitions_for_independent_window) и [force\_window\_partitions\_independently](/ru/reference/settings/session-settings/force#force_window_partitions_independently). Не применяется с `FINAL` или параллельными репликами.
