Эти настройки доступны в system.settings и автоматически генерируются из исходного кода.
apply_deleted_mask
Включает фильтрацию строк, удалённых с помощью легковесного DELETE. Если параметр отключён, запрос сможет читать эти строки. Это полезно при отладке и в сценариях «отмены удаления».
apply_mutations_on_fly
Если значение равно true, мутации (UPDATE и DELETE), которые не материализованы в части данных, будут применяться при выполнении SELECT-запросов.
apply_prewhere_after_final
История версий
| Версия | Значение по умолчанию | Комментарий |
|---|---|---|
| 25.12 | 0 | Новая настройка. Если включена, условия 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
История версий
| Версия | Значение по умолчанию | Комментарий |
|---|---|---|
| 25.10 | 1 | Параметр был добавлен как исправление регрессии после #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
История версий
| Версия | Значение по умолчанию | Комментарий |
|---|---|---|
| 25.2 | 1 | Код на стороне клиента (например, разбор входных данных INSERT и форматирование вывода запроса) будет использовать те же настройки, что и сервер, включая настройки из конфигурации сервера. |
Определяет, должен ли клиент принимать настройки от сервера.
Это влияет только на операции, выполняемые на стороне клиента, в частности на разбор входных данных INSERT и форматирование результата запроса. Большая часть выполнения запроса происходит на сервере и этой настройкой не затрагивается.
Обычно эту настройку следует задавать в профиле пользователя (users.xml или запросами вроде ALTER USER), а не через клиент (аргументами командной строки клиента, запросом SET или секцией SETTINGS в запросе SELECT). Через клиент её можно изменить на false, но нельзя изменить на true (поскольку сервер не будет отправлять настройки, если в профиле пользователя указано apply_settings_from_server = false).
Обратите внимание: изначально (24.12) существовала настройка сервера (send_settings_to_client), но позже для удобства использования её заменили этой настройкой на стороне клиента.