> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# apply_* セッション設定

> apply_* 生成グループ内の ClickHouse のセッション設定。

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](/docs/ja/reference/system-tables/settings) で確認でき、[ソースコード](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp) から自動生成されています。

<div id="apply_deleted_mask">
  ## apply\_deleted\_mask
</div>

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

論理削除された行を除外するフィルタリングを有効にします。無効にすると、クエリでそれらの行も読み取れるようになります。これは、デバッグや「削除取り消し」のシナリオで役立ちます

<div id="apply_mutations_on_fly">
  ## apply\_mutations\_on\_fly
</div>

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

true の場合、data part にまだ反映されていない mutations (UPDATE と DELETE) は、SELECT 時に適用されます。

<div id="apply_prewhere_after_final">
  ## apply\_prewhere\_after\_final
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "0"},{"label": "新しい設定。有効にすると、PREWHERE 条件は FINAL 処理の後に適用されます。"}]}]} />

有効にすると、ReplacingMergeTree および類似のエンジンで、PREWHERE 条件が FINAL 処理の後に適用されます。
これは、PREWHERE が重複する行ごとに値が異なる可能性のあるカラムを参照しており、
フィルタリング前に FINAL で採用される行を確定させたい場合に役立ちます。無効な場合、PREWHERE は読み取り時に適用されます。
注: apply\_row\_level\_security\_after\_final が有効で、かつ行ポリシーがソートキー以外のカラムを使用している場合、正しい実行順序を維持するため、PREWHERE も
遅延されます (行ポリシーは PREWHERE より前に適用する必要があります) 。

<div id="apply_row_policy_after_final">
  ## apply\_row\_policy\_after\_final
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "1"},{"label": "この設定は、#87303 後に発生した、行ポリシーと PREWHERE が FINAL より前に適用されていたリグレッションを修正するために追加されました。PR #91065 でこの設定が導入され、PR #97279 で正しさを優先する true がデフォルトになりました。互換性設定によって修正前の false の動作に戻らないよう、{true, true} として記録されます。"}]}]} />

有効にすると、\*MergeTree テーブルでは、行ポリシーと PREWHERE は FINAL の処理後に適用されます。 (特に ReplacingMergeTree)
無効にすると、行ポリシーは FINAL の前に適用されるため、ポリシーによって
ReplacingMergeTree や同様のエンジンで重複排除に使われるべき行が除外される場合、結果が異なる可能性があります。

行ポリシーの式が ORDER BY 内のカラムのみに依存している場合は、最適化のため、引き続き FINAL の前に適用されます。
そのようなフィルタリングは重複排除の結果に影響しないためです。

設定可能な値:

* 0 — 行ポリシーと PREWHERE は FINAL の前に適用されます (デフォルト) 。
* 1 — 行ポリシーと PREWHERE は FINAL の後に適用されます。

<div id="apply_settings_from_server">
  ## apply\_settings\_from\_server
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "1"},{"label": "クライアント側のコード（例: INSERT 入力のパースやクエリ出力のフォーマット）では、サーバー設定ファイルの設定を含め、サーバーと同じ設定が使用されます。"}]}]} />

クライアントがサーバーから設定を受け入れるかどうかを指定します。

これはクライアント側で実行される操作にのみ影響します。特に、INSERT 入力データのパースとクエリ結果のフォーマットに影響します。クエリ実行の大部分はサーバー側で行われるため、この設定の影響は受けません。

通常、この設定はクライアント経由 (client のコマンドライン引数、`SET` クエリ、または `SELECT` クエリの `SETTINGS` セクション) ではなく、ユーザープロファイル (users.xml または `ALTER USER` のようなクエリ) で設定する必要があります。クライアント経由では false に変更できますが、true には変更できません (ユーザープロファイルで `apply_settings_from_server = false` になっている場合、サーバーは設定を送信しないためです) 。

なお、当初 (24.12) はサーバー設定 (`send_settings_to_client`) がありましたが、使い勝手を向上させるため、後にこのクライアント設定に置き換えられました。
