> ## 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.

# paramètres de session apply_*

> Paramètres de session de ClickHouse dans le groupe généré apply_*.

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
  }}>Type</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>Par défaut</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Modifiable sans redémarrage
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

Ces paramètres sont disponibles dans [system.settings](/docs/fr/reference/system-tables/settings) et sont générés automatiquement à partir du [code source](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" />

Active le filtrage des lignes supprimées à l’aide de lightweight DELETE. Si cette option est désactivée, une requête pourra lire ces lignes. Cela est utile pour le débogage et les scénarios de « restauration »

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

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

Si cette valeur est définie sur true, les mutations (UPDATE et DELETE) qui ne sont pas matérialisées dans la data part seront appliquées lors des 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": "Nouveau paramètre. Lorsqu'il est activé, les conditions PREWHERE sont appliquées après le traitement FINAL."}]}]} />

Lorsqu'il est activé, les conditions PREWHERE sont appliquées après le traitement FINAL pour ReplacingMergeTree et les moteurs similaires.
Cela peut être utile lorsque PREWHERE fait référence à des colonnes pouvant avoir des valeurs différentes d'une ligne dupliquée à l'autre,
et que vous souhaitez que FINAL sélectionne la ligne retenue avant le filtrage. Lorsqu'il est désactivé, PREWHERE est appliqué lors de la lecture.
Remarque : si apply\_row\_level\_security\_after\_final est activé et que la politique de ligne utilise des colonnes qui ne font pas partie de la clé de tri, PREWHERE sera également
différé afin de préserver le bon ordre d'exécution (la politique de ligne doit être appliquée avant 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": "Le paramètre a été ajouté pour corriger la régression post-#87303, où les politiques de ligne et PREWHERE étaient appliqués avant FINAL. La PR #91065 a introduit ce paramètre, et la PR #97279 a défini true comme valeur par défaut afin de garantir l’exactitude. Enregistré sous la forme {true, true} afin que compatibility ne revienne jamais au comportement false d’avant le correctif."}]}]} />

Lorsqu’il est activé, les politiques de ligne et PREWHERE sont appliqués après le traitement FINAL pour les tables \*MergeTree. (En particulier pour ReplacingMergeTree)
Lorsqu’il est désactivé, les politiques de ligne sont appliquées avant FINAL, ce qui peut produire des résultats différents lorsque la politique
filtre des lignes qui devraient être utilisées pour la déduplication dans ReplacingMergeTree ou des moteurs similaires.

Si l’expression de la politique de ligne dépend uniquement des colonnes de ORDER BY, elle sera tout de même appliquée avant FINAL par optimisation,
car un tel filtrage ne peut pas affecter le résultat de la déduplication.

Valeurs possibles :

* 0 — La politique de ligne et PREWHERE sont appliqués avant FINAL (par défaut).
* 1 — La politique de ligne et PREWHERE sont appliqués après 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": "Le code côté client (par exemple, l’analyse des données d’entrée de `INSERT` et le formatage de la sortie de la requête) utilisera les mêmes paramètres que le serveur, y compris ceux de la configuration du serveur."}]}]} />

Indique si le client doit accepter les paramètres du serveur.

Cela n’affecte que les opérations effectuées côté client, en particulier l’analyse des données d’entrée de `INSERT` et le formatage du résultat de la requête. La majeure partie de l’exécution des requêtes a lieu sur le serveur et n’est pas affectée par ce paramètre.

Normalement, ce paramètre doit être défini dans le profil utilisateur (`users.xml` ou via des requêtes comme `ALTER USER`), et non via le client (arguments de ligne de commande du client, requête `SET` ou section `SETTINGS` d’une requête `SELECT`). Côté client, il peut être défini sur `false`, mais pas sur `true` (car le serveur n’enverra pas les paramètres si le profil utilisateur contient `apply_settings_from_server = false`).

Notez qu’au départ (24.12), il existait un paramètre serveur (`send_settings_to_client`), mais il a ensuite été remplacé par ce paramètre côté client, pour une meilleure ergonomie.
