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

# Outras configurações de sessão

> Configurações de sessão do ClickHouse no grupo gerado Outras.

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
  }}>Tipo</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>Padrão</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Pode ser alterado sem reiniciar
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

export const CloudOnlyBadge = () => {
  return <div className="cloudBadge">
            <div className="cloudIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path fillRule="evenodd" clipRule="evenodd" d="M5.33395 12.6667H12.3739C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00004 12.3739 8.00004H12.0839V7.33337C12.0839 5.12671 10.2906 3.33337 8.08395 3.33337C6.09928 3.33337 4.45395 4.78537 4.14195 6.68204C2.55728 6.76271 1.29395 8.06204 1.29395 9.66671C1.29395 11.3234 2.63728 12.6667 4.29395 12.6667H5.33395Z" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            {'Somente no ClickHouse Cloud'}
        </div>;
};

export const BetaBadge = ({link, galaxyTrack, galaxyEvent}) => {
  if (link) {
    return <a href={link} target="_blank" rel="noopener noreferrer" className="betaBadge" onClick={galaxyTrack && galaxyEvent ? galaxyOnClick(galaxyEvent) : undefined}>
                <Icon />
                <span>Beta</span>
            </a>;
  }
  return <div className="betaBadge">
            <Icon />
            <span>
                Funcionalidade Beta. 
                <u>
                    <a href="/docs/docs/beta-and-experimental-features#beta-features">
                        Saiba mais.
                    </a>
                </u>
            </span>
        </div>;
};

export const ExperimentalBadge = () => {
  return <div className="experimentalBadge">
            <div className="experimentalIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.25" d="M5.5 2H10.5" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M9.50015 2V6.19625L13.4283 12.7425C13.4738 12.8183 13.4985 12.9049 13.4996 12.9934C13.5008 13.0818 13.4785 13.169 13.435 13.246C13.3914 13.323 13.3283 13.3871 13.2519 13.4317C13.1755 13.4764 13.0886 13.4999 13.0002 13.5H3.00015C2.91164 13.5 2.8247 13.4766 2.74822 13.432C2.67174 13.3874 2.60847 13.3233 2.56487 13.2463C2.52126 13.1693 2.49889 13.082 2.50004 12.9935C2.50119 12.905 2.52582 12.8184 2.5714 12.7425L6.50015 6.19625V2" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M4.47656 9.56754C5.30344 9.41254 6.47656 9.47942 7.99969 10.25C10.0153 11.2707 11.4216 11.0569 12.2184 10.7282" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            Recurso experimental. <u><a href="/docs/docs/beta-and-experimental-features#experimental-features">Saiba mais.</a></u>
        </div>;
};

Essas configurações estão disponíveis em [system.settings](/docs/pt-BR/reference/system-tables/settings) e são autogeradas a partir do [código-fonte](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp).

<div id="add_http_cors_header">
  ## add\_http\_cors\_header
</div>

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

Grava o cabeçalho HTTP CORS.

<div id="analyze_index_with_space_filling_curves">
  ## analyze\_index\_with\_space\_filling\_curves
</div>

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

Se uma tabela tiver uma curva de preenchimento espacial em seu índice, por exemplo, `ORDER BY mortonEncode(x, y)` ou `ORDER BY hilbertEncode(x, y)`, e a consulta tiver condições sobre seus argumentos, por exemplo, `x >= 10 AND x <= 20 AND y >= 20 AND y <= 30`, use a curva de preenchimento espacial para análise de índice.

<div id="analyzer_inline_views">
  ## analyzer\_inline\_views
</div>

<ExperimentalBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Nova configuração"}]}]} />

Quando habilitado, o analisador substitui visões comuns (não materializadas e não parametrizadas) por suas subconsultas de definição, permitindo otimizações que atravessam essas fronteiras, como pushdown de predicados e poda de colunas.

<div id="any_join_distinct_right_table_keys">
  ## any\_join\_distinct\_right\_table\_keys
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "19.14"},{"label": "0"},{"label": "Desabilita ANY RIGHT e ANY FULL JOINs por padrão para evitar inconsistências"}]}]} />

Habilita o comportamento legado do servidor ClickHouse em operações `ANY INNER|LEFT JOIN`.

<Note>
  Use esta configuração apenas para compatibilidade retroativa se seus casos de uso dependerem do comportamento legado de `JOIN`.
</Note>

Quando o comportamento legado está habilitado:

* Os resultados das operações `t1 ANY LEFT JOIN t2` e `t2 ANY RIGHT JOIN t1` não são iguais porque o ClickHouse usa uma lógica de mapeamento de chaves entre as tabelas, da esquerda para a direita, de muitos para um.
* Os resultados das operações `ANY INNER JOIN` contêm todas as linhas da tabela à esquerda, assim como as operações `SEMI LEFT JOIN`.

Quando o comportamento legado está desabilitado:

* Os resultados das operações `t1 ANY LEFT JOIN t2` e `t2 ANY RIGHT JOIN t1` são iguais porque o ClickHouse usa uma lógica que fornece mapeamento de chaves de um para muitos em operações `ANY RIGHT JOIN`.
* Os resultados das operações `ANY INNER JOIN` contêm uma linha por chave de ambas as tabelas, à esquerda e à direita.

Valores possíveis:

* 0 — O comportamento legado está desabilitado.
* 1 — O comportamento legado está habilitado.

Veja também:

* [JOIN strictness](/docs/pt-BR/reference/statements/select/join#settings)

<div id="archive_adaptive_buffer_max_size_bytes">
  ## archive\_adaptive\_buffer\_max\_size\_bytes
</div>

<SettingsInfoBlock type="UInt64" default_value="8388608" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "8388608"},{"label": "Nova configuração"}]}]} />

Limita o tamanho máximo do buffer adaptativo usado ao gravar em arquivos de arquivamento (por exemplo, arquivos tar

<div id="arrow_flight_request_descriptor_type">
  ## arrow\_flight\_request\_descriptor\_type
</div>

<SettingsInfoBlock type="ArrowFlightDescriptorType" default_value="path" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "path"},{"label": "Nova configuração. Tipo de descritor a ser usado nas requisições do Arrow Flight: 'path' ou 'command'. O Dremio requer 'command'."}]}]} />

Tipo de descritor a ser usado nas requisições do Arrow Flight. 'path' envia o nome do conjunto de dados como um descritor de caminho. 'command' envia uma consulta SQL como um descritor de comando (necessário para o Dremio).

Valores possíveis:

* 'path' — Usa `FlightDescriptor::Path` (padrão, funciona com a maioria dos servidores Arrow Flight)
* 'command' — Usa `FlightDescriptor::Command` com uma consulta SELECT (necessário para o Dremio)

<div id="backup_slow_all_threads_after_retryable_s3_error">
  ## backup\_slow\_all\_threads\_after\_retryable\_s3\_error
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Nova configuração"}]}, {"id": "row-2","items": [{"label": "25.6"},{"label": "0"},{"label": "Nova configuração"}]}, {"id": "row-3","items": [{"label": "25.10"},{"label": "0"},{"label": "Desabilitada por padrão"}]}]} />

Quando definido como `true`, todas as threads que executam solicitações ao S3 para o mesmo endpoint de backup ficam mais lentas
depois que uma única solicitação ao S3 encontra um erro S3 passível de nova tentativa, como 'Slow Down'.
Quando definido como `false`, cada thread lida com o backoff das solicitações ao S3 independentemente das demais.

<div id="cache_warmer_threads">
  ## cache\_warmer\_threads
</div>

<CloudOnlyBadge />

<SettingsInfoBlock type="UInt64" default_value="4" />

Só tem efeito no ClickHouse Cloud. Número de threads de segundo plano para baixar especulativamente novas partes de dados para o cache do sistema de arquivos quando [cache\_populated\_by\_fetch](/docs/pt-BR/reference/settings/merge-tree-settings#cache_populated_by_fetch) está habilitado. Zero para desabilitar.

<div id="calculate_text_stack_trace">
  ## calculate\_text\_stack\_trace
</div>

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

Calcula o stack trace em texto em caso de exceções durante a execução da consulta. Esse é o padrão. Requer buscas de símbolos que podem deixar os testes de fuzzing mais lentos quando uma grande quantidade de consultas incorretas é executada. Em condições normais, você não deve desabilitar esta opção.

<div id="cancel_http_readonly_queries_on_client_close">
  ## cancel\_http\_readonly\_queries\_on\_client\_close
</div>

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

Cancela queries HTTP em modo somente leitura (por exemplo, `SELECT`) quando o cliente fecha a conexão sem aguardar a resposta.

Valor padrão no Cloud: `1`.

<div id="checksum_on_read">
  ## checksum\_on\_read
</div>

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

Valida checksums durante a leitura. Ela vem habilitada por padrão e deve estar sempre habilitada em produção. Não se espera nenhum benefício ao desabilitar essa configuração. Ela só deve ser usada para experimentos e benchmarks. A configuração se aplica apenas a tabelas da família MergeTree. Checksums são sempre validados para outros motores de tabela e ao receber dados pela rede.

<div id="connection_pool_max_wait_ms">
  ## connection\_pool\_max\_wait\_ms
</div>

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

O tempo de espera, em milissegundos, por uma conexão quando o pool de conexões está cheio.

Valores possíveis:

* Inteiro positivo.
* 0 — Tempo limite infinito.

<div id="connections_with_failover_max_tries">
  ## connections\_with\_failover\_max\_tries
</div>

<SettingsInfoBlock type="UInt64" default_value="3" />

O número máximo de tentativas de conexão com cada réplica para o engine de tabela Distributed.

<div id="convert_query_to_cnf">
  ## convert\_query\_to\_cnf
</div>

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

Quando definido como `true`, uma consulta `SELECT` será convertida para a forma normal conjuntiva (CNF). Há cenários em que reescrever uma consulta em CNF pode fazer com que ela seja executada mais rapidamente (veja esta [issue no Github](https://github.com/ClickHouse/ClickHouse/issues/11749) para uma explicação).

Por exemplo, observe como a consulta `SELECT` a seguir não é modificada (comportamento padrão):

```sql theme={null}
EXPLAIN SYNTAX
SELECT *
FROM
(
    SELECT number AS x
    FROM numbers(20)
) AS a
WHERE ((x >= 1) AND (x <= 5)) OR ((x >= 10) AND (x <= 15))
SETTINGS convert_query_to_cnf = false;
```

O resultado é:

```response theme={null}
┌─explain────────────────────────────────────────────────────────┐
│ SELECT x                                                       │
│ FROM                                                           │
│ (                                                              │
│     SELECT number AS x                                         │
│     FROM numbers(20)                                           │
│     WHERE ((x >= 1) AND (x <= 5)) OR ((x >= 10) AND (x <= 15)) │
│ ) AS a                                                         │
│ WHERE ((x >= 1) AND (x <= 5)) OR ((x >= 10) AND (x <= 15))     │
│ SETTINGS convert_query_to_cnf = 0                              │
└────────────────────────────────────────────────────────────────┘
```

Vamos definir `convert_query_to_cnf` como `true` e ver o que muda:

```sql theme={null}
EXPLAIN SYNTAX
SELECT *
FROM
(
    SELECT number AS x
    FROM numbers(20)
) AS a
WHERE ((x >= 1) AND (x <= 5)) OR ((x >= 10) AND (x <= 15))
SETTINGS convert_query_to_cnf = true;
```

Observe que a cláusula `WHERE` é reescrita em CNF, mas o conjunto de resultados é o mesmo - a lógica booleana permanece inalterada:

```response theme={null}
┌─explain───────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ SELECT x                                                                                                              │
│ FROM                                                                                                                  │
│ (                                                                                                                     │
│     SELECT number AS x                                                                                                │
│     FROM numbers(20)                                                                                                  │
│     WHERE ((x <= 15) OR (x <= 5)) AND ((x <= 15) OR (x >= 1)) AND ((x >= 10) OR (x <= 5)) AND ((x >= 10) OR (x >= 1)) │
│ ) AS a                                                                                                                │
│ WHERE ((x >= 10) OR (x >= 1)) AND ((x >= 10) OR (x <= 5)) AND ((x <= 15) OR (x >= 1)) AND ((x <= 15) OR (x <= 5))     │
│ SETTINGS convert_query_to_cnf = 1                                                                                     │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```

Valores possíveis: true, false

<div id="count_matches_stop_at_empty_match">
  ## count\_matches\_stop\_at\_empty\_match
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "0"},{"label": "Nova configuração."}]}]} />

Interrompe a contagem assim que um padrão corresponder a zero caracteres na função `countMatches`.

<div id="cross_to_inner_join_rewrite">
  ## cross\_to\_inner\_join\_rewrite
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.7"},{"label": "2"},{"label": "Forçar a reescrita de junção por vírgula para INNER JOIN"}]}]} />

Use INNER JOIN em vez de junção por vírgula/CROSS JOIN se houver expressões de junção na cláusula WHERE. Valores: 0 - sem reescrita, 1 - aplicar se possível a junções por vírgula/CROSS JOIN, 2 - forçar a reescrita de todas as junções por vírgula, CROSS JOIN - se possível

<div id="data_type_default_nullable">
  ## data\_type\_default\_nullable
</div>

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

Permite que tipos de dados sem modificadores explícitos [NULL ou NOT NULL](/docs/pt-BR/reference/statements/create/table#null-or-not-null-modifiers) na definição de coluna sejam do tipo [Nullable](/docs/pt-BR/reference/data-types/nullable).

Valores possíveis:

* 1 — Os tipos de dados nas definições de coluna são definidos como `Nullable` por padrão.
* 0 — Os tipos de dados nas definições de coluna são definidos como não `Nullable` por padrão.

<div id="decimal_check_overflow">
  ## decimal\_check\_overflow
</div>

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

Verifica overflow em operações aritméticas e de comparação com Decimal

<div id="deduplicate_blocks_in_dependent_materialized_views">
  ## deduplicate\_blocks\_in\_dependent\_materialized\_views
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "Habilita a desduplicação em visões materializadas dependentes por padrão."}]}]} />

Habilita ou desabilita a verificação de desduplicação para visões materializadas que recebem dados de tabelas Replicated\*.

Possíveis valores:

* 0 — Desabilitado.
* 1 — Habilitado.

Quando habilitada, o ClickHouse realiza a desduplicação de blocos em visões materializadas que dependem de tabelas Replicated\*.
Essa configuração é útil para garantir que as visões materializadas não contenham dados duplicados quando a operação de inserção estiver sendo tentada novamente devido a uma falha.

**Veja também**

* [Processamento de NULL em operadores IN](/docs/pt-BR/concepts/features/operations/insert/deduplicating-inserts-on-retries#insert-deduplication-with-materialized-views)

<div id="defer_partition_pruning_after_final">
  ## defer\_partition\_pruning\_after\_final
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "Configuração adicionada na 26.5 para controlar o comportamento de poda de partições do FINAL, introduzido silenciosamente na 26.3 (https:\/\/github.com\/ClickHouse\/ClickHouse\/pull\/98242). A mudança semântica relevante está registrada no bloco da 26.3 para que `compatibility = '26.2'` a reverta; esta entrada existe para que a verificação de upgrade a partir da 26.4 aceite o nome recém-introduzido."}]}, {"id": "row-2","items": [{"label": "26.3"},{"label": "1"},{"label": "Controla o fato de o planner do FINAL ignorar incondicionalmente a poda de partições quando a coluna da chave de partição não está na chave de ordenação. A mudança de comportamento em si foi introduzida silenciosamente na 26.3 via https:\/\/github.com\/ClickHouse\/ClickHouse\/pull\/98242; esta entrada a documenta retroativamente para que `compatibility = '26.2'` restaure o comportamento anterior à regressão (0 = podar antes do FINAL, rápido; 1 = adiar a poda, seguro do ponto de vista da correção)."}]}]} />

Quando habilitada (padrão), a poda de partições é ignorada em consultas `FINAL` em tabelas cujas
colunas da chave de partição não fazem parte da chave de ordenação. Esse é o comportamento seguro do ponto de vista da correção
introduzido na 26.3: `FINAL` pode precisar desduplicar linhas que compartilham a mesma chave primária, mas estão
em partições diferentes, e a poda de partições excluiria silenciosamente essas linhas da
entrada usada na desduplicação.

Quando desabilitada, a poda de partições é aplicada mesmo com `FINAL`, restaurando o
comportamento anterior à 26.3. Isso pode ser substancialmente mais rápido para consultas com predicados `WHERE` na
coluna de partição, mas só é correto quando linhas com a mesma chave primária não podem existir
em partições diferentes — por exemplo, tabelas de log de eventos cuja coluna de partição é definida no momento do insert
e nunca muda.

Essa configuração afeta apenas tabelas particionadas cujas colunas da chave de partição não estão incluídas
na chave de ordenação; para as demais tabelas, a poda de partições é sempre aplicada.

Valores possíveis:

* 0 — Aplicar a poda de partições antes de `FINAL` (comportamento anterior à 26.3, mais rápido, mas inseguro no caso geral).
* 1 — Adiar a poda de partições para depois de `FINAL` (padrão, seguro do ponto de vista da correção).

<div id="describe_compact_output">
  ## describe\_compact\_output
</div>

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

Se true, inclui apenas os nomes e tipos das colunas no resultado da consulta DESCRIBE

<div id="dialect">
  ## dialeto
</div>

<SettingsInfoBlock type="Dialect" default_value="clickhouse" />

Qual dialeto será usado para interpretar a consulta

<div id="discard_query_data">
  ## discard\_query\_data
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "0"},{"label": "Nova configuração para pular o envio das linhas de resultado da consulta ao cliente pelo protocolo TCP nativo."}]}]} />

Se estiver habilitada, o servidor deixa de enviar ao cliente as linhas de resultado da consulta. A consulta ainda é executada e registrada integralmente no servidor, e o cliente ainda recebe os pacotes restantes.

Usado para tráfego espelhado, benchmarks e fuzzing.

Não tem efeito em consultas secundárias.

Afeta apenas o protocolo TCP nativo.

<div id="distinct_overflow_mode">
  ## distinct\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

Define o que acontece quando a quantidade de dados excede um dos limites.

Valores possíveis:

* `throw`: gera uma exceção (padrão).
* `break`: interrompe a execução da consulta e retorna o resultado parcial, como se os
  dados de origem tivessem se esgotado.

<div id="do_not_merge_across_partitions_select_final">
  ## do\_not\_merge\_across\_partitions\_select\_final
</div>

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

Melhora consultas FINAL ao evitar mesclagens entre partições diferentes.

Quando ativado, em consultas SELECT FINAL, partes de partições diferentes não serão mescladas entre si. Em vez disso, a mesclagem ocorrerá separadamente apenas dentro de cada partição. Isso pode melhorar significativamente o desempenho das consultas ao trabalhar com tabelas particionadas.

<div id="dynamic_throw_on_type_mismatch">
  ## dynamic\_throw\_on\_type\_mismatch
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1"},{"label": "Nova configuração para controlar o comportamento em caso de incompatibilidade de tipo na implementação padrão de Dynamic"}]}]} />

Ao aplicar uma função a uma coluna [Dynamic](/docs/pt-BR/reference/data-types/dynamic) usando a implementação padrão,
determina o que acontece com as linhas cujo tipo real é incompatível com a função:

* `true` (padrão) — gera uma exceção.
* `false` — retorna `NULL` para essas linhas.

<div id="enforce_strict_identifier_format">
  ## enforce\_strict\_identifier\_format
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "Nova configuração."}]}]} />

Se ativado, permite apenas identificadores com caracteres alfanuméricos e sublinhados.

<div id="engine_url_skip_empty_files">
  ## engine\_url\_skip\_empty\_files
</div>

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

Ativa ou desativa a opção de ignorar arquivos vazios em tabelas com o motor [URL](/docs/pt-BR/reference/engines/table-engines/special/url).

Valores possíveis:

* 0 — `SELECT` lança uma exceção se o arquivo vazio não for compatível com o formato solicitado.
* 1 — `SELECT` retorna um resultado vazio para arquivo vazio.

<div id="exact_rows_before_limit">
  ## exact\_rows\_before\_limit
</div>

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

Quando ativada, o ClickHouse fornecerá o valor exato da estatística rows\_before\_limit\_at\_least, mas isso exige que os dados antes do limite sejam lidos por completo

<div id="except_default_mode">
  ## except\_default\_mode
</div>

<SettingsInfoBlock type="SetOperationMode" default_value="ALL" />

Define o modo padrão da consulta EXCEPT. Valores possíveis: string vazia, 'ALL', 'DISTINCT'. Se estiver vazio, a consulta sem modo gerará uma exceção.

<div id="exclude_materialize_skip_indexes_on_insert">
  ## exclude\_materialize\_skip\_indexes\_on\_insert
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": ""},{"label": "Nova configuração."}]}]} />

Exclui os skip indexes especificados da criação e do armazenamento durante INSERTs. Os skip indexes excluídos ainda serão criados e armazenados [durante merges](/docs/pt-BR/reference/settings/merge-tree-settings#materialize_skip_indexes_on_merge) ou por uma
consulta explícita [MATERIALIZE INDEX](/docs/pt-BR/reference/statements/alter/skipping-index#materialize-index).

Não tem efeito se [materialize\_skip\_indexes\_on\_insert](/docs/pt-BR/reference/settings/session-settings/materialize#materialize_skip_indexes_on_insert) estiver definido como false.

Exemplo:

```sql theme={null}
CREATE TABLE tab
(
    a UInt64,
    b UInt64,
    INDEX idx_a a TYPE minmax,
    INDEX idx_b b TYPE set(3)
)
ENGINE = MergeTree ORDER BY tuple();

SET exclude_materialize_skip_indexes_on_insert='idx_a'; -- idx_a will be not be updated upon insert
--SET exclude_materialize_skip_indexes_on_insert='idx_a, idx_b'; -- neither index would be updated on insert

INSERT INTO tab SELECT number, number / 50 FROM numbers(100); -- only idx_b is updated

-- since it is a session setting it can be set on a per-query level
INSERT INTO tab SELECT number, number / 50 FROM numbers(100, 100) SETTINGS exclude_materialize_skip_indexes_on_insert='idx_b';

ALTER TABLE tab MATERIALIZE INDEX idx_a; -- this query can be used to explicitly materialize the index

SET exclude_materialize_skip_indexes_on_insert = DEFAULT; -- reset setting to default
```

<div id="execute_exists_as_scalar_subquery">
  ## execute\_exists\_as\_scalar\_subquery
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "Nova configuração"}]}]} />

Executa subconsultas `EXISTS` não correlacionadas como subconsultas escalares. Assim como ocorre com subconsultas escalares, o cache é usado, e o constant folding é aplicado ao resultado.

Valor padrão no Cloud: `0`.

<div id="explain_query_plan_default">
  ## explain\_query\_plan\_default
</div>

<SettingsInfoBlock type="ExplainQueryPlanDefault" default_value="pretty" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "pretty"},{"label": "A partir da versão 26.7, `EXPLAIN PLAN` usa por padrão `actions=1, compact=1, pretty=1`. Defina como `legacy` para restaurar a saída anterior à 26.7."}]}]} />

Formato padrão usado pelo `EXPLAIN PLAN`.

Valores possíveis:

* `pretty` (padrão desde a 26.7) — `actions`, `compact` e `pretty` são `true` por padrão, produzindo um plano compacto, Pretty e anotado com ações.
* `legacy` — saída anterior à 26.7.

Especificar explicitamente as opções `actions`, `compact` ou `pretty` na instrução `EXPLAIN` (por exemplo, `EXPLAIN actions = 0, compact = 0, pretty = 0 SELECT ...`) sempre substitui essa configuração.

`EXPLAIN PLAN` com `json = 1` ou `distributed = 1` mantém os padrões legados (anteriores à 26.7) independentemente dessa configuração, a menos que `actions`, `compact` ou `pretty` sejam definidos explicitamente. A saída Pretty não consegue representar resultados JSON nem planos distribuídos por shard, portanto esses modos só são renderizados corretamente no formato legado.

<div id="extract_key_value_pairs_max_pairs_per_row">
  ## extract\_key\_value\_pairs\_max\_pairs\_per\_row
</div>

**Aliases**: `extract_kvp_max_pairs_per_row`

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "0"},{"label": "Número máximo de pares que podem ser produzidos pela função `extractKeyValuePairs`. Usado como proteção contra o consumo excessivo de memória."}]}]} />

Número máximo de pares que podem ser produzidos pela função `extractKeyValuePairs`. Usado como proteção contra o consumo excessivo de memória.

<div id="extremes">
  ## extremes
</div>

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

Define se os valores extremos devem ser contabilizados (os valores mínimos e máximos nas colunas do resultado de uma consulta). Aceita 0 ou 1. O padrão é 0 (desabilitado).
Para mais informações, consulte a seção "Valores extremos".

<div id="fallback_to_stale_replicas_for_distributed_queries">
  ## fallback\_to\_stale\_replicas\_for\_distributed\_queries
</div>

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

Força uma consulta a usar uma réplica desatualizada se os dados atualizados não estiverem disponíveis. Veja [Replicação](/docs/pt-BR/reference/engines/table-engines/mergetree-family/replication).

O ClickHouse seleciona a réplica mais adequada entre as réplicas desatualizadas da tabela.

Usado ao executar `SELECT` em uma tabela distribuída que aponta para tabelas replicadas.

Por padrão, 1 (habilitado).

<div id="file_like_engine_default_partition_strategy">
  ## file\_like\_engine\_default\_partition\_strategy
</div>

<SettingsInfoBlock type="FileLikeEngineDefaultPartitionStrategy" default_value="hive" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "hive"},{"label": "Altera a estratégia de partição padrão dos motores de tabela semelhantes a arquivos (S3, AzureBlobStorage etc.) de `wildcard` para `hive` quando nenhum `partition_strategy` é informado."}]}]} />

Estratégia de partição padrão para motores semelhantes a arquivos.

<div id="filesystem_prefetches_limit">
  ## filesystem\_prefetches\_limit
</div>

<SettingsInfoBlock type="UInt64" default_value="200" />

Número máximo de prefetches. Zero significa sem limite. A configuração `filesystem_prefetches_max_memory_usage` é mais recomendada se você quiser limitar o número de prefetches

<div id="final">
  ## final
</div>

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

Aplica automaticamente o modificador [FINAL](/docs/pt-BR/reference/statements/select/from#final-modifier) a todas as tabelas de uma consulta para as quais [FINAL](/docs/pt-BR/reference/statements/select/from#final-modifier) é aplicável, incluindo tabelas em joins, tabelas em subconsultas e
tabelas distribuídas.

Valores possíveis:

* 0 - desabilitado
* 1 - habilitado

Exemplo:

```sql theme={null}
CREATE TABLE test
(
    key Int64,
    some String
)
ENGINE = ReplacingMergeTree
ORDER BY key;

INSERT INTO test FORMAT Values (1, 'first');
INSERT INTO test FORMAT Values (1, 'second');

SELECT * FROM test;
┌─key─┬─some───┐
│   1 │ second │
└─────┴────────┘
┌─key─┬─some──┐
│   1 │ first │
└─────┴───────┘

SELECT * FROM test SETTINGS final = 1;
┌─key─┬─some───┐
│   1 │ second │
└─────┴────────┘

SET final = 1;
SELECT * FROM test;
┌─key─┬─some───┐
│   1 │ second │
└─────┴────────┘
```

<div id="finalize_projection_parts_synchronously">
  ## finalize\_projection\_parts\_synchronously
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Nova configuração para finalizar partes de projeção de forma síncrona durante o INSERT, para reduzir o pico de uso de memória."}]}]} />

Quando ativada, as partes de projeção são finalizadas de forma síncrona durante o INSERT, reduzindo o pico de uso de memória à custa de menor paralelismo no upload para o S3. Por padrão, o fluxo de saída de cada projeção é mantido ativo até que toda a parte (incluindo todas as projeções) seja finalizada, o que permite sobrepor uploads para o S3, mas aumenta o pico de uso de memória proporcionalmente ao número de projeções. Essa configuração afeta apenas o caminho de INSERT; merge e mutation já finalizam projeções de forma síncrona.

<div id="flatten_nested">
  ## flatten\_nested
</div>

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

Define o formato de dados das colunas [Nested](/docs/pt-BR/reference/data-types/nested-data-structures/index).

Valores possíveis:

* 1 — A coluna Nested é expandida em arrays separados.
* 0 — A coluna Nested permanece como um único array de tuplas.

**Uso**

Se a configuração estiver definida como `0`, é possível usar qualquer nível de aninhamento.

**Exemplos**

Consulta:

```sql theme={null}
SET flatten_nested = 1;
CREATE TABLE t_nest (`n` Nested(a UInt32, b UInt32)) ENGINE = MergeTree ORDER BY tuple();

SHOW CREATE TABLE t_nest;
```

Resultado:

```text theme={null}
┌─statement───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ CREATE TABLE default.t_nest
(
    `n.a` Array(UInt32),
    `n.b` Array(UInt32)
)
ENGINE = MergeTree
ORDER BY tuple()
SETTINGS index_granularity = 8192 │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```

Consulta:

```sql theme={null}
SET flatten_nested = 0;

CREATE TABLE t_nest (`n` Nested(a UInt32, b UInt32)) ENGINE = MergeTree ORDER BY tuple();

SHOW CREATE TABLE t_nest;
```

Resultado:

```text theme={null}
┌─statement──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ CREATE TABLE default.t_nest
(
    `n` Nested(a UInt32, b UInt32)
)
ENGINE = MergeTree
ORDER BY tuple()
SETTINGS index_granularity = 8192 │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```

<div id="fsync_metadata">
  ## fsync\_metadata
</div>

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

Ativa ou desativa o [fsync](http://pubs.opengroup.org/onlinepubs/9699919799/functions/fsync.html) ao gravar arquivos `.sql`. Ativado por padrão.

Faz sentido desativá-lo se o servidor tiver milhões de tabelas pequenas sendo constantemente criadas e removidas.

<div id="functions_h3_default_if_invalid">
  ## functions\_h3\_default\_if\_invalid
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "Uma nova configuração para o comportamento legado, permitindo entradas inválidas nas funções h3"}]}]} />

Se false, as funções h3, por exemplo h3CellAreaM2, lançam uma exceção se a entrada for inválida. Se true, retornam 0 ou o valor padrão.

<div id="geo_distance_returns_float64_on_float64_arguments">
  ## geo\_distance\_returns\_float64\_on\_float64\_arguments
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "Aumenta a precisão padrão."}]}]} />

Se os quatro argumentos das funções `geoDistance`, `greatCircleDistance` e `greatCircleAngle` forem Float64, retorne Float64 e use precisão dupla nos cálculos internos. Em versões anteriores do ClickHouse, as funções sempre retornavam Float32.

<div id="geotoh3_argument_order">
  ## geotoh3\_argument\_order
</div>

<BetaBadge />

<SettingsInfoBlock type="GeoToH3ArgumentOrder" default_value="lat_lon" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "lat_lon"},{"label": "Uma nova configuração do comportamento legado para definir a ordem dos argumentos lon e lat"}]}]} />

A função 'geoToH3' aceita (lon, lat) quando definida como 'lon\_lat' e (lat, lon) quando definida como 'lat\_lon'.

<div id="glob_expansion_max_elements">
  ## glob\_expansion\_max\_elements
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

Número máximo de endereços permitidos (para armazenamento externo, funções de tabela etc.).

<div id="h3togeo_lon_lat_result_order">
  ## h3togeo\_lon\_lat\_result\_order
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "0"},{"label": "Nova configuração"}]}]} />

A função 'h3ToGeo' retorna (lon, lat) se true; caso contrário, (lat, lon).

<div id="handshake_timeout_ms">
  ## handshake\_timeout\_ms
</div>

<SettingsInfoBlock type="Milissegundos" default_value="10000" />

Tempo limite, em milissegundos, para receber o pacote Hello das réplicas durante o handshake.

<div id="hedged_connection_timeout_ms">
  ## hedged\_connection\_timeout\_ms
</div>

<SettingsInfoBlock type="Milissegundos" default_value="50" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.4"},{"label": "50"},{"label": "Iniciar uma nova conexão em hedged requests após 50 ms, em vez de 100, para corresponder ao timeout de conexão anterior"}]}]} />

Timeout de conexão para estabelecer uma conexão com a réplica em hedged requests

<div id="highlight_max_matches_per_row">
  ## highlight\_max\_matches\_per\_row
</div>

<SettingsInfoBlock type="UInt64" default_value="10000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "10000"},{"label": "Nova configuração para limitar o número de correspondências de destaque por linha e proteger contra uso excessivo de memória."}]}]} />

Define o número máximo de correspondências de destaque por linha na função [highlight](/docs/pt-BR/reference/functions/regular-functions/string-search-functions#highlight). Use essa configuração para se proteger contra uso excessivo de memória ao destacar padrões altamente repetitivos em textos longos.

Valores possíveis:

* Inteiro positivo.

<div id="hnsw_candidate_list_size_for_search">
  ## hnsw\_candidate\_list\_size\_for\_search
</div>

<SettingsInfoBlock type="UInt64" default_value="256" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "256"},{"label": "Nova configuração. Anteriormente, o valor podia ser especificado opcionalmente em CREATE INDEX, e o padrão era 64."}]}]} />

O tamanho da lista dinâmica de candidatos durante a busca no índice de similaridade vetorial, também conhecido como 'ef\_search'.

<div id="hsts_max_age">
  ## hsts\_max\_age
</div>

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

Tempo de expiração do HSTS. 0 significa desativar o HSTS.

<div id="idle_connection_timeout">
  ## idle\_connection\_timeout
</div>

<SettingsInfoBlock type="UInt64" default_value="3600" />

Tempo limite para encerrar conexões TCP ociosas após o número especificado de segundos.

Valores possíveis:

* Inteiro positivo (0 - encerra imediatamente, após 0 segundos).

<div id="inject_random_order_for_select_without_order_by">
  ## inject\_random\_order\_for\_select\_without\_order\_by
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "0"},{"label": "Nova configuração"}]}]} />

Se habilitado, injeta 'ORDER BY rand()' em consultas SELECT sem cláusula ORDER BY.
Aplica-se apenas à profundidade de subconsulta = 0. Subconsultas e INSERT INTO ... SELECT não são afetados.
Se a construção no nível superior for UNION, 'ORDER BY rand()' é injetado em todos os filhos de forma independente.
Útil apenas para testes e desenvolvimento (a ausência de ORDER BY é uma fonte de resultados de consulta não determinísticos).

<div id="interactive_delay">
  ## interactive\_delay
</div>

<SettingsInfoBlock type="UInt64" default_value="100000" />

O intervalo, em microssegundos, para verificar se a execução da requisição foi cancelada e enviar informações de progresso.

<div id="intersect_default_mode">
  ## intersect\_default\_mode
</div>

<SettingsInfoBlock type="SetOperationMode" default_value="ALL" />

Define o modo padrão da consulta INTERSECT. Valores possíveis: string vazia, 'ALL', 'DISTINCT'. Se estiver vazio, a consulta sem modo gerará uma exceção.

<div id="least_greatest_legacy_null_behavior">
  ## least\_greatest\_legacy\_null\_behavior
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "0"},{"label": "Nova configuração"}]}]} />

Quando ativada, as funções 'least' e 'greatest' retornam NULL se um de seus argumentos for NULL.

<div id="legacy_column_name_of_tuple_literal">
  ## legacy\_column\_name\_of\_tuple\_literal
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.7"},{"label": "0"},{"label": "Adicione esta configuração apenas por motivos de compatibilidade. Faz sentido defini-la como 'true' ao fazer rolling update do cluster de uma versão inferior à 21.7 para uma superior"}]}]} />

Liste todos os nomes dos elementos de literais Tuple grandes em seus nomes de colunas em vez de hash. Esta configuração existe apenas por motivos de compatibilidade. Faz sentido defini-la como 'true' ao fazer rolling update do cluster de uma versão inferior à 21.7 para uma superior.

<div id="limit">
  ## limit
</div>

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

Define o número máximo de linhas a retornar no resultado da consulta. Ele ajusta o valor definido pela cláusula [LIMIT](/docs/pt-BR/reference/statements/select/limit), de modo que o limite especificado na consulta não possa exceder o limite definido por esta configuração.

Possíveis valores:

* 0 — O número de linhas não é limitado.
* Inteiro positivo.

<div id="load_marks_asynchronously">
  ## load\_marks\_asynchronously
</div>

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

Carrega as marcas do MergeTree de forma assíncrona

Valor padrão no Cloud: `1`.

<div id="lock_acquire_timeout">
  ## lock\_acquire\_timeout
</div>

<SettingsInfoBlock type="Segundos" default_value="120" />

Define quantos segundos uma solicitação de bloqueio aguarda antes de falhar.

O tempo limite de bloqueio é usado para evitar deadlocks durante a execução de operações de leitura/gravação em tabelas. Quando o tempo limite se esgota e a solicitação de bloqueio falha, o servidor ClickHouse lança uma exceção "Locking attempt timed out! Possible deadlock avoided. Client should retry." com o código de erro `DEADLOCK_AVOIDED`.

Valores possíveis:

* Inteiro positivo (em segundos).
* 0 — Sem tempo limite de bloqueio.

<div id="low_priority_query_wait_time_ms">
  ## low\_priority\_query\_wait\_time\_ms
</div>

<BetaBadge />

<SettingsInfoBlock type="Milissegundos" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "1000"},{"label": "Nova configuração."}]}]} />

Quando o mecanismo de priorização de consultas é usado (consulte a configuração `priority`), as consultas de baixa prioridade aguardam até que as de prioridade mais alta terminem. Essa configuração especifica o tempo de espera.

<div id="make_distributed_plan">
  ## make\_distributed\_plan
</div>

<ExperimentalBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "0"},{"label": "Nova configuração experimental."}]}]} />

Cria o plano de consulta distribuída.

<div id="merge_table_max_tables_to_look_for_schema_inference">
  ## merge\_table\_max\_tables\_to\_look\_for\_schema\_inference
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1000"},{"label": "Uma nova configuração"}]}]} />

Ao criar uma tabela `Merge` sem um esquema explícito ou ao usar a função de tabela `merge`, infira o esquema como a união de, no máximo, o número especificado de tabelas correspondentes.
Se houver mais tabelas do que isso, o esquema será inferido a partir das primeiras tabelas, até o número especificado.

<div id="mongodb_throw_on_unsupported_query">
  ## mongodb\_throw\_on\_unsupported\_query
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "1"},{"label": "Nova configuração."}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "1"},{"label": "Nova configuração."}]}]} />

Se estiver habilitada, as tabelas do MongoDB retornarão erro quando uma consulta do MongoDB não puder ser gerada. Caso contrário, o ClickHouse lê a tabela inteira e a processa localmente. Esta opção não se aplica quando 'allow\_experimental\_analyzer=0'.

<div id="multiple_joins_try_to_keep_original_names">
  ## multiple\_joins\_try\_to\_keep\_original\_names
</div>

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

Não adiciona aliases à lista de expressões de nível superior na reescrita de múltiplas junções

<div id="normalize_function_names">
  ## normalize\_function\_names
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.3"},{"label": "1"},{"label": "Normaliza os nomes das funções para suas formas canônicas; isso era necessário para o roteamento de consultas de projeção"}]}]} />

Normaliza os nomes das funções para suas formas canônicas

<div id="offset">
  ## offset
</div>

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

Define o número de linhas a serem ignoradas antes de começar a retornar linhas da consulta. Ele ajusta o offset definido pela cláusula [OFFSET](/docs/pt-BR/reference/statements/select/offset), para que esses dois valores sejam somados.

Valores possíveis:

* 0 — Nenhuma linha é ignorada.
* Inteiro positivo.

**Exemplo**

Tabela de entrada:

```sql theme={null}
CREATE TABLE test (i UInt64) ENGINE = MergeTree() ORDER BY i;
INSERT INTO test SELECT number FROM numbers(500);
```

Consulta:

```sql theme={null}
SET limit = 5;
SET offset = 7;
SELECT * FROM test LIMIT 10 OFFSET 100;
```

Resultado:

```text theme={null}
┌───i─┐
│ 107 │
│ 108 │
│ 109 │
└─────┘
```

<div id="paimon_target_snapshot_id">
  ## paimon\_target\_snapshot\_id
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="Int64" default_value="-1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "-1"},{"label": "Nova configuração."}]}]} />

Leitura direcionada de snapshot no nível da consulta para o modo incremental do Paimon. Quando >0, o leitor buscará apenas o delta
do `snapshot_id` especificado, sem avançar a watermark confirmada.
Padrão: -1 (desabilitado)

<div id="parallelize_output_from_storages">
  ## parallelize\_output\_from\_storages
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.5"},{"label": "1"},{"label": "Permite paralelismo ao executar consultas que leem de file\/url\/s3\/etc. Isso pode reordenar linhas."}]}]} />

Paraleliza a saída na etapa de leitura a partir do armazenamento. Permite paralelizar o processamento de consultas logo após a leitura do armazenamento, quando possível

<div id="partial_result_on_first_cancel">
  ## partial\_result\_on\_first\_cancel
</div>

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

Permite que a consulta retorne um resultado parcial após o cancelamento.

<div id="per_part_index_stats">
  ## per\_part\_index\_stats
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Nova configuração."}]}]} />

Registra estatísticas do índice para cada parte

<div id="poll_interval">
  ## poll\_interval
</div>

<SettingsInfoBlock type="UInt64" default_value="10" />

Bloqueia no loop de espera da consulta no servidor pelo número de segundos especificado.

<div id="polyglot_dialect">
  ## polyglot\_dialect
</div>

<ExperimentalBadge />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": ""},{"label": "Nova configuração para especificar o dialeto SQL de origem do transpilador polyglot."}]}]} />

Dialeto SQL de origem do transpilador polyglot (por exemplo, 'sqlite', 'mysql', 'postgresql', 'snowflake', 'duckdb').

<div id="postgresql_fault_injection_probability">
  ## postgresql\_fault\_injection\_probability
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "0"},{"label": "Nova configuração"}]}]} />

Probabilidade aproximada de falha nas consultas internas do PostgreSQL (para replicação). O valor válido está no intervalo \[0.0f, 1.0f]

<div id="predicate_statistics_sample_rate">
  ## predicate\_statistics\_sample\_rate
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "Nova configuração para coletar estatísticas de seletividade de predicados em system.predicate_statistics_log"}]}]} />

Coleta estatísticas de seletividade de predicados em `system.predicate_statistics_log`. Quando definido como N > 0, aproximadamente 1/N das consultas são amostradas (pelo ID da consulta). 0 significa que está desabilitado.

<div id="prefetch_buffer_size">
  ## prefetch\_buffer\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="1048576" />

O tamanho máximo do buffer de prefetch para leitura do sistema de arquivos. Valores acima de 256 MiB são limitados a 256 MiB, pois um buffer de leitura nunca precisa ser maior.

<div id="print_pretty_type_names">
  ## print\_pretty\_type\_names
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "1"},{"label": "Melhor experiência do usuário."}]}]} />

Permite exibir nomes de tipos com aninhamento profundo de forma legível, com indentação, na consulta `DESCRIBE` e na função `toTypeName()`.

Exemplo:

```sql theme={null}
CREATE TABLE test (a Tuple(b String, c Tuple(d Nullable(UInt64), e Array(UInt32), f Array(Tuple(g String, h Map(String, Array(Tuple(i String, j UInt64))))), k Date), l Nullable(String))) ENGINE=Memory;
DESCRIBE TABLE test FORMAT TSVRaw SETTINGS print_pretty_type_names=1;
```

```
a   Tuple(
    b String,
    c Tuple(
        d Nullable(UInt64),
        e Array(UInt32),
        f Array(Tuple(
            g String,
            h Map(
                String,
                Array(Tuple(
                    i String,
                    j UInt64
                ))
            )
        )),
        k Date
    ),
    l Nullable(String)
)
```

<div id="priority">
  ## priority
</div>

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

Priority da consulta. 1 - a mais alta; quanto maior o valor, menor a priority; 0 - não usar priorities.

<div id="push_external_roles_in_interserver_queries">
  ## push\_external\_roles\_in\_interserver\_queries
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "1"},{"label": "Nova configuração."}]}]} />

Habilita o envio das roles do usuário do nó de origem para outros nós durante a execução de uma consulta.

<div id="query_metric_log_interval">
  ## query\_metric\_log\_interval
</div>

<SettingsInfoBlock type="Int64" default_value="-1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "-1"},{"label": "Nova configuração."}]}]} />

O intervalo, em milissegundos, em que o [query\_metric\_log](/docs/pt-BR/reference/system-tables/query_metric_log) é coletado para consultas individuais.

Se for definido com qualquer valor negativo, ele assumirá o valor de `collect_interval_milliseconds` da [configuração query\_metric\_log](/docs/pt-BR/reference/settings/server-settings/settings#query_metric_log) ou, se ela não estiver presente, o valor padrão de 1000.

Para desativar a coleta de uma única consulta, defina `query_metric_log_interval` como 0.

Valor padrão: -1

<div id="queue_max_wait_ms">
  ## queue\_max\_wait\_ms
</div>

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

O tempo de espera na fila de requisições, caso o número de requisições simultâneas exceda o máximo.

<div id="rabbitmq_max_wait_ms">
  ## rabbitmq\_max\_wait\_ms
</div>

<SettingsInfoBlock type="Milissegundos" default_value="5000" />

O tempo de espera para leitura do RabbitMQ antes de tentar novamente.

<div id="readonly">
  ## readonly
</div>

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

0 - sem restrições de somente leitura. 1 - apenas requisições de leitura, bem como a alteração de configurações explicitamente permitidas. 2 - apenas requisições de leitura, bem como a alteração de configurações, exceto da configuração 'readonly'.

<div id="recursive_cte_max_steps_in_type_inference">
  ## recursive\_cte\_max\_steps\_in\_type\_inference
</div>

<SettingsInfoBlock type="UInt64" default_value="10" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "10"},{"label": "Número máximo de iterações para inferir tipos de coluna em CTEs recursivas por meio da aplicação iterativa de `getLeastSupertype`"}]}]} />

Número máximo de iterações para inferir tipos de coluna em CTEs recursivas. Os tipos de coluna são determinados pela aplicação iterativa de `getLeastSupertype` aos lados não recursivo e recursivo do UNION ALL até a convergência. Defina como 0 para desativar a ampliação de tipos e usar apenas os tipos da parte não recursiva.

<div id="regexp_max_matches_per_row">
  ## regexp\_max\_matches\_per\_row
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

Define o número máximo de correspondências de uma única expressão regular por linha. Use essa configuração para evitar sobrecarga de memória ao usar uma expressão regular gulosa na função [extractAllGroupsHorizontal](/docs/pt-BR/reference/functions/regular-functions/string-search-functions#extractAllGroupsHorizontal).

Valores possíveis:

* Inteiro positivo.

<div id="reject_expensive_hyperscan_regexps">
  ## reject\_expensive\_hyperscan\_regexps
</div>

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

Rejeita padrões cuja avaliação com hyperscan provavelmente será custosa (devido à explosão de estados do NFA)

<div id="remerge_sort_lowered_memory_bytes_ratio">
  ## remerge\_sort\_lowered\_memory\_bytes\_ratio
</div>

<SettingsInfoBlock type="Float" default_value="2" />

Se o uso de memória após o remerge não for reduzido nessa razão, o remerge será desativado.

<div id="remote_read_min_bytes_for_seek">
  ## remote\_read\_min\_bytes\_for\_seek
</div>

<SettingsInfoBlock type="UInt64" default_value="4194304" />

Quantidade mínima de bytes necessária para que a leitura remota (url, s3) faça seek, em vez de ler com ignore.

<div id="rename_files_after_processing">
  ## rename\_files\_after\_processing
</div>

* **Tipo:** String

* **Valor padrão:** String vazia

Esta configuração permite especificar o padrão de renomeação para arquivos processados pela função de tabela `file`. Quando essa opção é definida, todos os arquivos lidos pela função de tabela `file` serão renomeados de acordo com o padrão especificado com placeholders, somente se o processamento dos arquivos for bem-sucedido.

<div id="placeholders">
  ### Placeholders
</div>

* `%a` — Nome completo do arquivo original (por exemplo, "sample.csv").
* `%f` — Nome do arquivo original sem extensão (por exemplo, "sample").
* `%e` — Extensão do arquivo original com ponto (por exemplo, ".csv").
* `%t` — Timestamp (em microssegundos).
* `%%` — Símbolo de porcentagem ("%").

<div id="example">
  ### Exemplo
</div>

* Opção: `--rename_files_after_processing="processed_%f_%t%e"`

* Consulta: `SELECT * FROM file('sample.csv')`

Se a leitura de `sample.csv` for concluída com sucesso, o arquivo será renomeado para `processed_sample_1683473210851438.csv`

<div id="replication_wait_for_inactive_replica_timeout">
  ## replication\_wait\_for\_inactive\_replica\_timeout
</div>

<SettingsInfoBlock type="Int64" default_value="120" />

Especifica por quanto tempo (em segundos) esperar até que réplicas inativas executem consultas [`ALTER`](/docs/pt-BR/reference/statements/alter/index), [`OPTIMIZE`](/docs/pt-BR/reference/statements/optimize) ou [`TRUNCATE`](/docs/pt-BR/reference/statements/truncate).

Valores possíveis:

* `0` — Não esperar.
* Inteiro negativo — Espera por tempo ilimitado.
* Inteiro positivo — Número de segundos de espera.

<div id="reserve_memory">
  ## reserve\_memory
</div>

<ExperimentalBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "0"},{"label": "Nova configuração para reservar memória para um workload específico antes de iniciar uma consulta."}]}]} />

Usado no agendamento de workloads. Quantidade mínima de RAM reservada para a execução de uma consulta em um único servidor. A reserva é feita por meio da hierarquia WORKLOAD usando o valor da configuração de consulta `workload`.
Se não houver memória suficiente disponível para o workload, a consulta não será iniciada e ficará em estado pendente até que a reserva possa ser atendida.
Um valor de `0` significa que não há reserva.
Essa configuração só entra em vigor se o recurso MEMORY RESERVATION for criado.

<div id="restore_replicated_merge_tree_to_shared_merge_tree">
  ## restore\_replicated\_merge\_tree\_to\_shared\_merge\_tree
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "0"},{"label": "Nova configuração."}]}]} />

Substitui o engine da tabela de Replicated*MergeTree por Shared*MergeTree durante o RESTORE.

Valor padrão na Cloud: `1`.

<div id="result_overflow_mode">
  ## result\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

Define o que fazer se o volume do resultado exceder um dos limites.

Valores possíveis:

* `throw`: lançar uma exceção (padrão).
* `break`: interromper a execução da consulta e retornar o resultado parcial, como se os
  dados de origem tivessem se esgotado.

Usar 'break' é semelhante a usar LIMIT. `Break` interrompe a execução apenas no
nível do bloco. Isso significa que a quantidade de linhas retornadas será maior que
[`max_result_rows`](/docs/pt-BR/reference/settings/session-settings/max-result#max_result_rows), será um múltiplo de [`max_block_size`](/docs/pt-BR/reference/settings/session-settings/max#max_block_size)
e dependerá de [`max_threads`](/docs/pt-BR/reference/settings/session-settings/max-threads#max_threads).

**Exemplo**

```sql title="Query" theme={null}
SET max_threads = 3, max_block_size = 3333;
SET max_result_rows = 3334, result_overflow_mode = 'break';

SELECT *
FROM numbers_mt(100000)
FORMAT Null;
```

```text title="Result" theme={null}
6666 rows in set. ...
```

<div id="rows_before_aggregation">
  ## rows\_before\_aggregation
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.8"},{"label": "0"},{"label": "Fornece o valor exato da estatística rows_before_aggregation, que representa o número de linhas lidas antes da agregação"}]}]} />

Quando habilitada, o ClickHouse fornecerá o valor exato da estatística rows\_before\_aggregation, que representa o número de linhas lidas antes da agregaçã

<div id="secondary_indices_enable_bulk_filtering">
  ## secondary\_indices\_enable\_bulk\_filtering
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "1"},{"label": "Um novo algoritmo de filtragem por índices de salto de dados"}]}]} />

Ativa o algoritmo de filtragem em lote para índices. A expectativa é que ele seja sempre superior, mas mantemos esta configuração por compatibilidade e controle.

<div id="select_sequential_consistency">
  ## select\_sequential\_consistency
</div>

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

<Note>
  Essa configuração tem comportamento diferente no SharedMergeTree e no ReplicatedMergeTree. Consulte [SharedMergeTree consistency](/docs/pt-BR/products/cloud/features/infrastructure/shared-merge-tree#consistency) para mais informações sobre o comportamento de `select_sequential_consistency` no SharedMergeTree.
</Note>

Habilita ou desabilita a consistência sequencial para consultas `SELECT`. Requer que `insert_quorum_parallel` esteja desabilitado (habilitado por padrão).

Valores possíveis:

* 0 — Desabilitado.
* 1 — Habilitado.

Uso

Quando a consistência sequencial está habilitada, o ClickHouse permite que o cliente execute a consulta `SELECT` apenas nas réplicas que contêm dados de todas as consultas `INSERT` anteriores executadas com `insert_quorum`. Se o cliente se conectar a uma réplica parcial, o ClickHouse gerará uma exceção. A consulta `SELECT` não incluirá dados que ainda não tenham sido gravados no quorum de réplicas.

Quando `insert_quorum_parallel` está habilitado (o padrão), `select_sequential_consistency` não funciona. Isso acontece porque consultas `INSERT` paralelas podem ser gravadas em diferentes conjuntos de réplicas de quorum, portanto não há garantia de que uma única réplica terá recebido todas as gravações.

Veja também:

* [insert\_quorum](/docs/pt-BR/reference/settings/session-settings/insert-quorum#insert_quorum)
* [insert\_quorum\_timeout](/docs/pt-BR/reference/settings/session-settings/insert-quorum#insert_quorum_timeout)
* [insert\_quorum\_parallel](/docs/pt-BR/reference/settings/session-settings/insert-quorum#insert_quorum_parallel)

<div id="session_timezone">
  ## session\_timezone
</div>

<BetaBadge />

Define o fuso horário implícito da sessão ou da consulta atual.
O fuso horário implícito é o fuso horário aplicado a valores do tipo DateTime/DateTime64 que não têm um fuso horário explicitamente especificado.
Essa configuração tem precedência sobre o fuso horário implícito configurado globalmente (no nível do servidor).
Um valor de '' (string vazia) significa que o fuso horário implícito da sessão ou da consulta atual é igual ao [fuso horário do servidor](/docs/pt-BR/reference/settings/server-settings/settings#timezone).

Você pode usar as funções `timeZone()` e `serverTimeZone()` para obter o fuso horário da sessão e o fuso horário do servidor.

Valores possíveis:

* Qualquer nome de fuso horário de `system.time_zones`, por exemplo, `Europe/Berlin`, `UTC` ou `Zulu`

Exemplos:

```sql theme={null}
SELECT timeZone(), serverTimeZone() FORMAT CSV

"Europe/Berlin","Europe/Berlin"
```

```sql theme={null}
SELECT timeZone(), serverTimeZone() SETTINGS session_timezone = 'Asia/Novosibirsk' FORMAT CSV

"Asia/Novosibirsk","Europe/Berlin"
```

Atribua o fuso horário da sessão 'America/Denver' ao DateTime interno sem fuso horário explicitamente especificado:

```sql theme={null}
SELECT toDateTime64(toDateTime64('1999-12-12 23:23:23.123', 3), 3, 'Europe/Zurich') SETTINGS session_timezone = 'America/Denver' FORMAT TSV

1999-12-13 07:23:23.123
```

<Warning>
  Nem todas as funções que interpretam DateTime/DateTime64 respeitam `session_timezone`. Isso pode levar a erros sutis.
  Veja o exemplo e a explicação a seguir.
</Warning>

```sql theme={null}
CREATE TABLE test_tz (`d` DateTime('UTC')) ENGINE = Memory AS SELECT toDateTime('2000-01-01 00:00:00', 'UTC');

SELECT *, timeZone() FROM test_tz WHERE d = toDateTime('2000-01-01 00:00:00') SETTINGS session_timezone = 'Asia/Novosibirsk'
0 rows in set.

SELECT *, timeZone() FROM test_tz WHERE d = '2000-01-01 00:00:00' SETTINGS session_timezone = 'Asia/Novosibirsk'
┌───────────────────d─┬─timeZone()───────┐
│ 2000-01-01 00:00:00 │ Asia/Novosibirsk │
└─────────────────────┴──────────────────┘
```

Isso ocorre devido a pipelines de parsing diferentes:

* `toDateTime()` sem fuso horário explicitamente informado, usado na primeira consulta `SELECT`, respeita a configuração `session_timezone` e o fuso horário global.
* Na segunda consulta, um DateTime é convertido de uma String e herda o tipo e o fuso horário da coluna existente`d`. Assim, a configuração `session_timezone` e o fuso horário global não são respeitados.

**Veja também**

* [timezone](/docs/pt-BR/reference/settings/server-settings/settings#timezone)

<div id="set_overflow_mode">
  ## set\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

Determina o que acontece quando a quantidade de dados excede um dos limites.

Valores possíveis:

* `throw`: lançar uma exceção (padrão).
* `break`: interromper a execução da consulta e retornar o resultado parcial, como se os
  dados de origem tivessem se esgotado.

<div id="single_join_prefer_left_table">
  ## single\_join\_prefer\_left\_table
</div>

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

Para um único JOIN, em caso de ambiguidade de identificador, prefira a tabela à esquerda

<div id="skip_redundant_aliases_in_udf">
  ## skip\_redundant\_aliases\_in\_udf
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "0"},{"label": "Quando ativado, isso permite usar a mesma função definida pelo usuário várias vezes em várias colunas materializadas na mesma tabela."}]}]} />

Aliases redundantes não são usados (substituídos) em funções definidas pelo usuário, para simplificar seu uso.

Valores possíveis:

* 1 — Os aliases são ignorados (substituídos) em UDFs.
* 0 — Os aliases não são ignorados (substituídos) em UDFs.

**Exemplo**

A diferença entre ativado e desativado:

Consulta:

```sql theme={null}
SET skip_redundant_aliases_in_udf = 0;
CREATE FUNCTION IF NOT EXISTS test_03274 AS ( x ) -> ((x + 1 as y, y + 2));

EXPLAIN SYNTAX SELECT test_03274(4 + 2);
```

Resultado:

```text theme={null}
SELECT ((4 + 2) + 1 AS y, y + 2)
```

Consulta:

```sql theme={null}
SET skip_redundant_aliases_in_udf = 1;
CREATE FUNCTION IF NOT EXISTS test_03274 AS ( x ) -> ((x + 1 as y, y + 2));

EXPLAIN SYNTAX SELECT test_03274(4 + 2);
```

Resultado:

```text theme={null}
SELECT ((4 + 2) + 1, ((4 + 2) + 1) + 2)
```

<div id="sleep_after_receiving_query_ms">
  ## sleep\_after\_receiving\_query\_ms
</div>

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

Tempo de espera após o recebimento da consulta no TCPHandler

<div id="snappy_mode">
  ## snappy\_mode
</div>

<SettingsInfoBlock type="SnappyMode" default_value="basic" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "basic"},{"label": "Nova configuração para controlar o formato wire usado pela compressão snappy em E/S genérica de `file`\/`URL`. O padrão `basic` preserva a compatibilidade retroativa para leituras do formato de bloco snappy do Hadoop; `Content-Encoding: snappy` em HTTP sempre usa o formato de framing, independentemente desta configuração."}]}]} />

Controla o formato wire usado pela compressão snappy em caminhos genéricos de E/S de arquivo, como `file` e `url`. `Content-Encoding: snappy` em HTTP sempre usa o formato de framing e ignora esta configuração.

Observe que o formato bruto de bloco snappy produzido por uma única chamada a `snappy::Compress` (por exemplo, os payloads do protocolo remoto do Prometheus processados por `SnappyBasicReadBuffer`) é um formato wire separado, específico do protocolo, e não é controlado por esta configuração.

Valores possíveis:

* `basic` — Formato de bloco snappy do Hadoop. Compatível com arquivos lidos e gravados pelo Hadoop. Suporta leitura e gravação.
* `framed` — Formato de framing do Snappy, o formato de streaming padrão definido pelo Google. Suporta leitura e gravação.

<div id="sort_overflow_mode">
  ## sort\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

Define o que acontece se o número de linhas recebidas antes da ordenação exceder um dos limites.

Valores possíveis:

* `throw`: gerar uma exceção.
* `break`: interromper a execução da consulta e retornar o resultado parcial.

<div id="splitby_max_substrings_includes_remaining_string">
  ## splitby\_max\_substrings\_includes\_remaining\_string
</div>

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

Controla se a função [splitBy\*()](/docs/pt-BR/reference/functions/regular-functions/splitting-merging-functions), com o argumento `max_substrings` > 0, incluirá a parte restante da string no último elemento do array de resultado.

Valores possíveis:

* `0` - A parte restante da string não será incluída no último elemento do array de resultado.
* `1` - A parte restante da string será incluída no último elemento do array de resultado. Esse é o comportamento da função [`split()`](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.split.html) do Spark e do método ['string.split()'](https://docs.python.org/3/library/stdtypes.html#str.split) do Python.

<div id="stop_refreshable_materialized_views_on_startup">
  ## stop\_refreshable\_materialized\_views\_on\_startup
</div>

<ExperimentalBadge />

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

Ao iniciar o servidor, impede o agendamento de views materializadas atualizáveis, como se SYSTEM STOP VIEWS tivesse sido executado. Depois, você pode iniciá-las manualmente com `SYSTEM START VIEWS` ou `SYSTEM START VIEW <name>`. Também se aplica a views criadas posteriormente. Não tem efeito sobre views materializadas não atualizáveis.

<div id="tcp_keep_alive_timeout">
  ## tcp\_keep\_alive\_timeout
</div>

<SettingsInfoBlock type="Segundos" default_value="290" />

O tempo, em segundos, que a conexão deve permanecer ociosa antes de o TCP começar a enviar sondas de keepalive

<div id="temporary_data_in_cache_reserve_space_wait_lock_timeout_milliseconds">
  ## temporary\_data\_in\_cache\_reserve\_space\_wait\_lock\_timeout\_milliseconds
</div>

<SettingsInfoBlock type="UInt64" default_value="600000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.4"},{"label": "600000"},{"label": "Tempo de espera para bloquear o cache ao reservar espaço para dados temporários no cache do sistema de arquivos"}]}]} />

Tempo de espera para bloquear o cache ao reservar espaço para dados temporários no cache do sistema de arquivos

<div id="throw_if_no_data_to_insert">
  ## throw\_if\_no\_data\_to\_insert
</div>

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

Permite ou proíbe INSERTs vazios; ativado por padrão (gera um erro ao fazer um INSERT vazio). Aplica-se apenas a INSERTs usando [`clickhouse-client`](/docs/pt-BR/concepts/features/interfaces/cli) ou a [interface gRPC](/docs/pt-BR/concepts/features/interfaces/grpc).

<div id="timeout_before_checking_execution_speed">
  ## timeout\_before\_checking\_execution\_speed
</div>

<SettingsInfoBlock type="Segundos" default_value="10" />

Verifica, após o tempo especificado em segundos ter decorrido, se a velocidade de execução não está muito baixa (não inferior a `min_execution_speed`).

<div id="transfer_overflow_mode">
  ## transfer\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

Define o que acontece quando a quantidade de dados excede um dos limites.

Valores possíveis:

* `throw`: gera uma exceção (padrão).
* `break`: interrompe a execução da consulta e retorna o resultado parcial, como se os
  dados de origem tivessem se esgotado.

<div id="transform_null_in">
  ## transform\_null\_in
</div>

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

Habilita a equivalência entre valores [NULL](/docs/pt-BR/reference/syntax#null) para o operador [IN](/docs/pt-BR/reference/statements/in).

Por padrão, valores `NULL` não podem ser comparados, porque `NULL` significa um valor indefinido. Portanto, a comparação `expr = NULL` deve sempre retornar `false`. Com essa configuração, `NULL = NULL` retorna `true` para o operador `IN`.

Valores possíveis:

* 0 — A comparação entre valores `NULL` no operador `IN` retorna `false`.
* 1 — A comparação entre valores `NULL` no operador `IN` retorna `true`.

**Exemplo**

Considere a tabela `null_in`:

```text theme={null}
┌──idx─┬─────i─┐
│    1 │     1 │
│    2 │  NULL │
│    3 │     3 │
└──────┴───────┘
```

Consulta:

```sql theme={null}
SELECT idx, i FROM null_in WHERE i IN (1, NULL) SETTINGS transform_null_in = 0;
```

Resultado:

```text theme={null}
┌──idx─┬────i─┐
│    1 │    1 │
└──────┴──────┘
```

Consulta:

```sql theme={null}
SELECT idx, i FROM null_in WHERE i IN (1, NULL) SETTINGS transform_null_in = 1;
```

Resultado:

```text theme={null}
┌──idx─┬─────i─┐
│    1 │     1 │
│    2 │  NULL │
└──────┴───────┘
```

**Veja também**

* [Processamento de NULL em Operadores IN](/docs/pt-BR/reference/statements/in#null-processing)

<div id="traverse_shadow_remote_data_paths">
  ## traverse\_shadow\_remote\_data\_paths
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "Percorre o diretório shadow ao consultar system.remote_data_paths."}]}]} />

Percorre os dados congelados (diretório shadow), além dos dados da própria tabela, ao consultar system.remote\_data\_paths

<div id="union_default_mode">
  ## union\_default\_mode
</div>

Define um modo para combinar os resultados de consultas `SELECT`. A configuração só é usada com [UNION](/docs/pt-BR/reference/statements/select/union) quando `UNION ALL` ou `UNION DISTINCT` não é especificado explicitamente.

Valores possíveis:

* `'DISTINCT'` — o ClickHouse retorna linhas como resultado da combinação de consultas, removendo linhas duplicadas.
* `'ALL'` — o ClickHouse retorna todas as linhas como resultado da combinação de consultas, incluindo linhas duplicadas.
* `''` — o ClickHouse gera uma exceção quando usado com `UNION`.

Veja exemplos em [UNION](/docs/pt-BR/reference/statements/select/union).

<div id="unique_key_max_encoded_size">
  ## unique\_key\_max\_encoded\_size
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="UInt64" default_value="256" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "256"},{"label": "Nova configuração: tamanho máximo (bytes) da codificação binária que preserva a ordem de uma única linha de `UNIQUE KEY`"}]}]} />

Tamanho máximo (em bytes) da codificação binária que preserva a ordem de uma única linha de `UNIQUE KEY`.

<div id="unknown_packet_in_send_data">
  ## unknown\_packet\_in\_send\_data
</div>

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

Enviar um pacote desconhecido em vez do enésimo pacote de dados

<div id="variant_throw_on_type_mismatch">
  ## variant\_throw\_on\_type\_mismatch
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1"},{"label": "Nova configuração para controlar o comportamento em caso de incompatibilidade de tipo na implementação padrão de Variant"}]}]} />

Ao aplicar uma função a uma coluna [Variant](/docs/pt-BR/reference/data-types/variant) usando a implementação padrão,
essa configuração controla o que acontece com as linhas cujo tipo real é incompatível com a função:

* `true` (padrão) — lança uma exceção.
* `false` — retorna `NULL` para essas linhas.

<div id="wait_changes_become_visible_after_commit_mode">
  ## wait\_changes\_become\_visible\_after\_commit\_mode
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="TransactionsWaitCSNMode" default_value="wait_unknown" />

Aguarda que as alterações confirmadas se tornem efetivamente visíveis no snapshot mais recente

<div id="workload">
  ## workload
</div>

<SettingsInfoBlock type="String" default_value="default" />

Nome da workload usada para acessar recursos

<div id="write_full_path_in_iceberg_metadata">
  ## write\_full\_path\_in\_iceberg\_metadata
</div>

<ExperimentalBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Nova configuração."}]}]} />

Grava caminhos completos (incluindo s3://) nos arquivos de metadados do Iceberg.

<div id="zstd_window_log_max">
  ## zstd\_window\_log\_max
</div>

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

Permite selecionar o valor máximo do log de janela do ZSTD (não será usado para a família MergeTree)
