Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

настройки сеанса apply_*

Эти настройки доступны в system.settings и автоматически генерируются из исходного кода.

apply_deleted_mask

Тип
Bool
По умолчанию
1

Включает фильтрацию строк, удалённых с помощью легковесного DELETE. Если параметр отключён, запрос сможет читать эти строки. Это полезно при отладке и в сценариях «отмены удаления».

apply_mutations_on_fly

Тип
Bool
По умолчанию
0

Если значение равно true, мутации (UPDATE и DELETE), которые не материализованы в части данных, будут применяться при выполнении SELECT-запросов.

apply_prewhere_after_final

Тип
Bool
По умолчанию
0
История версий
ВерсияЗначение по умолчаниюКомментарий
25.120Новая настройка. Если включена, условия PREWHERE применяются после обработки FINAL.

Если включено, условия PREWHERE для ReplacingMergeTree и похожих движков применяются после обработки FINAL. Это может быть полезно, если PREWHERE ссылается на столбцы, значения которых могут различаться в дублирующихся строках, и нужно, чтобы FINAL сначала выбрал строку, которая должна остаться, а уже потом применялась фильтрация. Если отключено, PREWHERE применяется при чтении. Note: Если включен apply_row_level_security_after_final и ROW POLICY использует столбцы, не входящие в ключ сортировки, PREWHERE также будет отложен, чтобы сохранить правильный порядок выполнения (ROW POLICY должна применяться до PREWHERE).

apply_row_policy_after_final

Тип
Bool
По умолчанию
1
История версий
ВерсияЗначение по умолчаниюКомментарий
25.101Параметр был добавлен как исправление регрессии после #87303, при которой ROW POLICY и PREWHERE применялись до FINAL. В PR #91065 был добавлен этот параметр, а PR #97279 сделал безопасное с точки зрения корректности значение true значением по умолчанию. Зафиксировано как {true, true}, чтобы compatibility никогда не возвращалась к прежнему поведению false, существовавшему до исправления.

Когда включено, ROW POLICY и PREWHERE применяются после обработки FINAL для таблиц семейства *MergeTree. (Особенно для ReplacingMergeTree) Когда отключено, ROW POLICY применяются до FINAL, что может приводить к другим результатам, если политика отфильтровывает строки, которые должны использоваться для дедупликации в ReplacingMergeTree или аналогичных движках.

Если выражение ROW POLICY зависит только от столбцов в ORDER BY, оно все равно будет применяться до FINAL в качестве оптимизации, поскольку такая фильтрация не может повлиять на результат дедупликации.

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

  • 0 — ROW POLICY и PREWHERE применяются до FINAL (по умолчанию).
  • 1 — ROW POLICY и PREWHERE применяются после FINAL.

apply_settings_from_server

Тип
Bool
По умолчанию
1
История версий
ВерсияЗначение по умолчаниюКомментарий
25.21Код на стороне клиента (например, разбор входных данных INSERT и форматирование вывода запроса) будет использовать те же настройки, что и сервер, включая настройки из конфигурации сервера.

Определяет, должен ли клиент принимать настройки от сервера.

Это влияет только на операции, выполняемые на стороне клиента, в частности на разбор входных данных INSERT и форматирование результата запроса. Большая часть выполнения запроса происходит на сервере и этой настройкой не затрагивается.

Обычно эту настройку следует задавать в профиле пользователя (users.xml или запросами вроде ALTER USER), а не через клиент (аргументами командной строки клиента, запросом SET или секцией SETTINGS в запросе SELECT). Через клиент её можно изменить на false, но нельзя изменить на true (поскольку сервер не будет отправлять настройки, если в профиле пользователя указано apply_settings_from_server = false).

Обратите внимание: изначально (24.12) существовала настройка сервера (send_settings_to_client), но позже для удобства использования её заменили этой настройкой на стороне клиента.

Navigation