apply_deleted_mask
Включает фильтрацию строк, удалённых с помощью легковесного DELETE. Если параметр отключён, запрос сможет читать эти строки. Это полезно при отладке и в сценариях «отмены удаления».apply_mutations_on_fly
Если значение равно true, мутации (UPDATE и DELETE), которые не материализованы в части данных, будут применяться при выполнении SELECT-запросов.apply_prewhere_after_final
Если включено, условия PREWHERE для ReplacingMergeTree и похожих движков применяются после обработки FINAL. Это может быть полезно, если PREWHERE ссылается на столбцы, значения которых могут различаться в дублирующихся строках, и нужно, чтобы FINAL сначала выбрал строку, которая должна остаться, а уже потом применялась фильтрация. Если отключено, PREWHERE применяется при чтении. Note: независимо от этой настройки, PREWHERE также откладывается всякий раз, когда ROW POLICY откладывается настройкойapply_row_policy_after_final, поскольку ROW POLICY должна применяться до PREWHERE. Это происходит, если
выражение политики недетерминировано, читает столбец, не входящий в ORDER BY, либо читает столбец из ORDER BY,
тип которого является типом с плавающей запятой или содержит его.
Возможные значения:
- 0 — PREWHERE применяется до FINAL, если только отложенная ROW POLICY не вынуждает отложить и его (по умолчанию).
- 1 — PREWHERE применяется после FINAL.
apply_row_policy_after_final
Когда включено, ROW POLICY применяются после обработки FINAL для таблиц семейства *MergeTree. (Особенно для ReplacingMergeTree) Если применение политики откладывается таким образом, PREWHERE откладывается вместе с ней, чтобы политика по-прежнему применялась первой (для безусловного откладывания PREWHERE см.apply_prewhere_after_final).
Когда отключено, ROW POLICY применяются до FINAL, что может приводить к другим результатам, если политика
отфильтровывает строки, которые должны использоваться для дедупликации в ReplacingMergeTree или аналогичных движках.
Если выражение ROW POLICY детерминировано и зависит только от столбцов в ORDER BY, не имеющих типов с плавающей запятой, оно все равно будет
применяться до FINAL в качестве оптимизации, поскольку такая фильтрация не может повлиять на результат дедупликации. Столбцы с плавающей запятой
или столбцы, содержащие значения с плавающей запятой (например, Tuple(Float64, ...), Array(Float64), Nullable(Float64) и т. д.),
исключаются, поскольку при дедупликации -0.0 и 0.0 считаются одним ключом, тогда как условие политики может их различать.
Возможные значения:
- 0 — ROW POLICY применяется до FINAL.
- 1 — ROW POLICY применяется после FINAL (по умолчанию).
apply_settings_from_server
Определяет, должен ли клиент принимать настройки от сервера. Это влияет только на операции, выполняемые на стороне клиента, в частности на разбор входных данных INSERT и форматирование результата запроса. Большая часть выполнения запроса происходит на сервере и этой настройкой не затрагивается. Обычно эту настройку следует задавать в профиле пользователя (users.xml или запросами вродеALTER USER), а не через клиент (аргументами командной строки клиента, запросом SET или секцией SETTINGS в запросе SELECT). Через клиент её можно изменить на false, но нельзя изменить на true (поскольку сервер не будет отправлять настройки, если в профиле пользователя указано apply_settings_from_server = false).
Обратите внимание: изначально (24.12) существовала настройка сервера (send_settings_to_client), но позже для удобства использования её заменили этой настройкой на стороне клиента.
apply_string_filters_during_scan
Проталкивает условия поиска подстроки по столбцамString из PREWHERE в сканирование столбца.
Если условие PREWHERE содержит конъюнкт, выполняющий поиск непустой подстроки в столбце String (или Nullable(String))
(LIKE, position, startsWith, endsWith или сравнение на равенство с непустой строкой), считыватель проверяет каждое значение на соответствие этому условию
во время десериализации, а несоответствующие значения считывает как пустые строки. Если условие
селективно, это ускоряет чтение и снижает использование памяти, поскольку данные несоответствующих значений не копируются в столбец. Результат запроса при этом не меняется:
строки с несоответствующими значениями гарантированно отфильтровываются PREWHERE, а пустая строка никогда не удовлетворяет таким условиям.
Если фильтр оказывается неселективным, он адаптивно отключается во время выполнения.
Кроме того, настройка позволяет оптимизации переноса из WHERE в PREWHERE перемещать условия поиска подстроки (LIKE, position, startsWith, endsWith)
даже в тех случаях, когда они используют все запрашиваемые столбцы (обычно это бессмысленно, но с этой настройкой само сканирование становится дешевле).
Сравнение на равенство с постоянной строкой по этой причине не перемещается, однако, если оно уже находится в PREWHERE, оно по-прежнему применяется во время сканирования.
Поддерживается при чтении из таблиц MergeTree и из формата Parquet.
Учтите, что оценка объёма входных байтов, собираемая для автоматического принятия решения об использовании параллельных реплик
(RuntimeDataflowStatisticsInputBytes), основана на размере считанных блоков в памяти, поэтому, когда значения заменяются пустыми строками, она занижает
объём данных, прочитанных с диска.
Возможные значения:
- 0 — Отключено.
- 1 — Включено.