> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-detect-table-modification.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# configurações de sessão allow_*

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

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}>
                <span>Beta</span>
            </a>;
  }
  return <a href="https://clickhouse.com/docs/reference/settings/beta-and-experimental-features#beta-features" className="betaBadge">
            <span>Recurso beta</span>
        </a>;
};

export const ExperimentalBadge = () => {
  return <a href="https://clickhouse.com/docs/reference/settings/beta-and-experimental-features#experimental-features" 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
        </a>;
};

export const VersionHistory = ({rows = []}) => {
  if (rows.length === 0) {
    return null;
  }
  const headers = ["Versão", "Valor padrão", "Comentário"];
  const border = "1px solid rgba(128, 128, 128, 0.3)";
  const cell = {
    border,
    padding: "0.25rem 0.5rem",
    textAlign: "start",
    verticalAlign: "top"
  };
  return <details className="not-prose" style={{
    border,
    borderRadius: "0.5rem",
    margin: "0.5rem 0",
    padding: "0.5rem 0.75rem",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <summary style={{
    cursor: "pointer",
    fontWeight: 600,
    opacity: 0.72
  }}>
        Histórico de versões
      </summary>
      <table style={{
    borderCollapse: "collapse",
    width: "100%",
    margin: "0.5rem 0 0"
  }}>
        <thead>
          <tr>
            {headers.map(header => <th key={header} style={{
    ...cell,
    fontWeight: 600,
    opacity: 0.72
  }}>
                {header}
              </th>)}
          </tr>
        </thead>
        <tbody>
          {rows.map((row, row_index) => <tr key={row.id ?? row_index}>
              {(row.items ?? []).map((item, item_index) => <td key={item_index} style={{
    ...cell,
    overflowWrap: "anywhere"
  }}>
                  {item?.label}
                </td>)}
            </tr>)}
        </tbody>
      </table>
    </details>;
};

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>;
};

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

<div id="allow_aggregate_partitions_independently">
  ## allow\_aggregate\_partitions\_independently
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "1"},{"label": "Habilita por padrão a agregação independente por partição quando a chave de particionamento é adequada à chave de `GROUP BY`. As heurísticas de tempo de execução existentes em `ReadFromMergeTree::requestOutputEachPartitionThroughSeparatePortForAggregation` já ignoram a otimização quando o layout das partições é desfavorável (poucas partições, muitas partições ou tamanhos de partição significativamente desbalanceados), portanto habilitar essa configuração é seguro nos casos em que, caso contrário, ela não teria efeito."}]}]} />

Habilita a agregação independente de partições em threads separadas quando a chave de particionamento é adequada à chave de `GROUP BY`. Isso é benéfico quando o número de partições é próximo do número de núcleos e as partições têm aproximadamente o mesmo tamanho. As heurísticas em `ReadFromMergeTree` desabilitam automaticamente a otimização para layouts desfavoráveis (poucas partições, muitas partições ou tamanhos de partição significativamente desbalanceados); consulte `force_aggregate_partitions_independently` para ignorar essas verificações.

<div id="allow_archive_path_syntax">
  ## allow\_archive\_path\_syntax
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.8"},{"label": "1"},{"label": "Nova configuração adicionada para permitir desabilitar a sintaxe de caminho de arquivo."}]}, {"id": "row-2","items": [{"label": "24.5"},{"label": "1"},{"label": "Nova configuração adicionada para permitir desabilitar a sintaxe de caminho de arquivo."}]}]} />

Os motores File/S3 e a função de tabela analisarão caminhos com '::' como `<archive> :: <file>` se o arquivo tiver a extensão correta.

<div id="allow_asynchronous_read_from_io_pool_for_merge_tree">
  ## allow\_asynchronous\_read\_from\_io\_pool\_for\_merge\_tree
</div>

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

Usa o pool de E/S em segundo plano para ler dados de tabelas MergeTree. Essa configuração pode aumentar o desempenho de consultas limitadas por E/S.

<div id="allow_calculating_subcolumns_sizes_for_merge_tree_reading">
  ## allow\_calculating\_subcolumns\_sizes\_for\_merge\_tree\_reading
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "1"},{"label": "Permite calcular os tamanhos das subcolunas na leitura de MergeTree para melhorar a divisão das tarefas de leitura"}]}]} />

Quando habilitada, o ClickHouse calculará o tamanho dos arquivos necessários para a leitura de cada subcoluna para melhorar o cálculo dos tamanhos das tarefas e dos blocos.

<div id="allow_changing_replica_until_first_data_packet">
  ## allow\_changing\_replica\_until\_first\_data\_packet
</div>

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

Se estiver habilitado, em hedged requests podemos iniciar uma nova conexão até receber o primeiro pacote de Data, mesmo que já tenhamos feito algum Progress
(mas o Progress não tenha sido atualizado dentro do timeout `receive_data_timeout`); caso contrário, desabilitamos a troca de réplica depois da primeira vez em que houve Progress.

<div id="allow_create_index_without_type">
  ## allow\_create\_index\_without\_type
</div>

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

Permite a consulta CREATE INDEX sem TYPE. A consulta será ignorada. Destinado a testes de compatibilidade com SQL.

<div id="allow_custom_error_code_in_throwif">
  ## allow\_custom\_error\_code\_in\_throwif
</div>

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

Habilita o uso de código de erro personalizado na função throwIf(). Se true, as exceções lançadas podem ter códigos de erro inesperados.

<div id="allow_ddl">
  ## allow\_ddl
</div>

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

Se estiver definido como true, o usuário poderá executar consultas DDL.

<div id="allow_delta_kernel_rs">
  ## allow\_delta\_kernel\_rs
</div>

<BetaBadge />

**Aliases**: `allow_experimental_delta_kernel_rs`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "1"},{"label": "Novo nome de `allow_experimental_delta_kernel_rs`, que deixou de ser experimental e é mantido como alias. O padrão permanece inalterado."}]}, {"id": "row-2","items": [{"label": "25.5"},{"label": "1"},{"label": "Nova configuração. Introduzida com o nome `allow_experimental_delta_kernel_rs`, que agora é seu alias; a linha é mantida com o nome canônico para preservar todo o histórico."}]}]} />

Permite usar a implementação `delta-kernel-rs` para ler tabelas Delta Lake.

<div id="allow_distinct_partitions_independently">
  ## allow\_distinct\_partitions\_independently
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "1"},{"label": "Nova configuração para habilitar a avaliação independente de `DISTINCT` por partição quando a expressão de partição é uma função determinística das colunas de `DISTINCT`."}]}]} />

Habilita a avaliação independente de `DISTINCT` por partição em threads separadas quando a expressão de partição é uma função determinística das colunas de `DISTINCT`, dispensando a mesclagem entre fluxos. É vantajoso quando o número de partições é próximo ao número de núcleos e as partições têm aproximadamente o mesmo tamanho; caso contrário, uma heurística de custo a desativa. Consulte [max\_number\_of\_partitions\_for\_independent\_distinct](/pt-BR/reference/settings/session-settings/max-number#max_number_of_partitions_for_independent_distinct) e [force\_distinct\_partitions\_independently](/pt-BR/reference/settings/session-settings/force#force_distinct_partitions_independently). Não se aplica com `FINAL` nem com réplicas paralelas.

Não se aplica quando [max\_rows\_in\_distinct](/pt-BR/reference/settings/session-settings/max-rows#max_rows_in_distinct) ou [max\_bytes\_in\_distinct](/pt-BR/reference/settings/session-settings/max-bytes#max_bytes_in_distinct) está definido: esses limites são aplicados pela única transformada `DISTINCT` que processa todo o resultado mesclado; por isso, a mesclagem entre fluxos é mantida para preservar seu significado global.

<div id="allow_distributed_ddl">
  ## allow\_distributed\_ddl
</div>

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

Se estiver definido como true, o usuário terá permissão para executar consultas de DDL distribuído.

<div id="allow_drop_detached">
  ## allow\_drop\_detached
</div>

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

Permite consultas `ALTER TABLE ... DROP DETACHED PART[ITION] ...`

<div id="allow_dynamic_type_in_join_keys">
  ## allow\_dynamic\_type\_in\_join\_keys
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "0"},{"label": "Desabilita por padrão o uso do tipo Dynamic em chaves de JOIN"}]}]} />

Permite usar o tipo Dynamic em chaves de JOIN. Adicionado por compatibilidade. Não é recomendável usar o tipo Dynamic em chaves de JOIN, porque a comparação com outros tipos pode levar a resultados inesperados.

<div id="allow_execute_multiif_columnar">
  ## allow\_execute\_multiif\_columnar
</div>

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

Permite executar a função multiIf de forma colunar

<div id="allow_fuzz_query_functions">
  ## allow\_fuzz\_query\_functions
</div>

<ExperimentalBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "Nova configuração para habilitar a função fuzzQuery."}]}]} />

Habilita a função `fuzzQuery`, que aplica mutações aleatórias de AST a uma string de consulta.

<div id="allow_general_join_planning">
  ## allow\_general\_join\_planning
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "Permite um algoritmo de planejamento de join mais abrangente quando o algoritmo de hash join está habilitado."}]}]} />

Permite um algoritmo de planejamento de join mais abrangente, capaz de lidar com condições mais complexas, mas que funciona apenas com hash join. Se o hash join não estiver habilitado, o algoritmo de planejamento de join padrão será usado independentemente do valor desta configuração.

<div id="allow_get_client_http_header">
  ## allow\_get\_client\_http\_header
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "Introduzida uma nova função."}]}]} />

Permite usar a função `getClientHTTPHeader`, que permite obter o valor de um cabeçalho da requisição HTTP atual. Ela não é habilitada por padrão por motivos de segurança, pois alguns cabeçalhos, como `Cookie`, podem conter informações sensíveis. Observe que os cabeçalhos `X-ClickHouse-*`, `Authentication` e `Authorization` são sempre restritos e não podem ser obtidos com esta função.

<div id="allow_hyperscan">
  ## allow\_hyperscan
</div>

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

Permite funções que usam a biblioteca Hyperscan. Desative para evitar tempos de compilação potencialmente longos e uso excessivo de recursos.

<div id="allow_iceberg_remove_orphan_files">
  ## allow\_iceberg\_remove\_orphan\_files
</div>

<ExperimentalBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Nova configuração para controlar a remoção de arquivos órfãos do Iceberg"}]}]} />

Permite usar 'ALTER TABLE ... EXECUTE remove\_orphan\_files()' em tabelas Iceberg.

<div id="allow_insert_into_iceberg">
  ## allow\_insert\_into\_iceberg
</div>

<BetaBadge />

**Aliases**: `allow_experimental_insert_into_iceberg`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "`Insert` no Iceberg passou para Beta"}]}, {"id": "row-2","items": [{"label": "25.7"},{"label": "0"},{"label": "Nova configuração."}]}]} />

Permite executar consultas `insert` no Iceberg.

<div id="allow_introspection_functions">
  ## allow\_introspection\_functions
</div>

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

Habilita ou desabilita [funções de introspecção](/pt-BR/reference/functions/regular-functions/introspection) para o perfilamento de consultas.

Valores possíveis:

* 1 — Funções de introspecção habilitadas.
* 0 — Funções de introspecção desabilitadas.

**Veja também**

* [Sampling Query Profiler](/pt-BR/concepts/features/performance/troubleshoot/sampling-query-profiler)
* Tabela de sistema [trace\_log](/pt-BR/reference/system-tables/trace_log)

<div id="allow_key_condition_coalesce_rewrite">
  ## allow\_key\_condition\_coalesce\_rewrite
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "Nova configuração para reescrever predicados da forma `coalesce(a_1, ..., a_N) <op> const` (e, de forma equivalente, `ifNull`, ou com a constante à esquerda) como uma disjunção antes da análise de índices, para que a chave primária por coluna e os índices de salto em cada `a_i` possam ser usados. Formas parcialmente constantes, como `coalesce(a, 42, b)` e `coalesce(a, b, 42)`, também são tratadas."}]}]} />

Reescreve predicados da forma `coalesce(a_1, ..., a_N) <op> const` (e, de forma equivalente, `ifNull`, ou com a constante à esquerda) como a disjunção `(a_1 <op> const) OR (a_1 IS NULL AND a_2 <op> const) OR ... OR (a_1 IS NULL AND ... AND a_{N-1} IS NULL AND a_N <op> const)` antes da análise de índices, para que a chave primária por coluna e os índices de salto em cada `a_i` possam ser usados. Formas parcialmente constantes, como `coalesce(a, 42, b)` e `coalesce(a, b, 42)`, são tratadas: a lista de argumentos é normalizada da mesma forma que o próprio `coalesce` (literais `NULL` são removidos, assim como os argumentos após o primeiro que não seja `Nullable`), e uma constante não `NULL` ao final, se houver, é emitida como o ramo final. A reescrita é estritamente aditiva para o descarte por índices; a filtragem em tempo de execução continua usando o predicado original.
Além disso, predicados de igualdade exata da forma `nullIf(key, sentinel) = const` (em que `sentinel != const` e os tipos correspondem exatamente) são reescritos para `key = const`, para que a chave primária, a partição e os índices de salto em `key` possam descartar grânulos diretamente. Não há suporte para eliminação de `nullIf` por intervalo ou disjunção.

<div id="allow_limit_by_partitions_independently">
  ## allow\_limit\_by\_partitions\_independently
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "1"},{"label": "Nova configuração para habilitar a avaliação independente de `LIMIT BY` em cada partição quando a expressão de partição for uma função determinística das colunas de `LIMIT BY`."}]}]} />

Habilita a avaliação independente de `LIMIT BY` em cada partição, em threads separadas, quando a expressão de partição é uma função determinística das colunas de `LIMIT BY`.

<div id="allow_lossy_numeric_supertype">
  ## allow\_lossy\_numeric\_supertype
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "0"},{"label": "Nova configuração que permite que if\/multiIf\/coalesce\/ifNull\/array\/map resolvam ramificações exclusivamente numéricas que não têm um tipo comum sem perda (por exemplo, Decimal + Float64) para um supertipo numérico (Float64, com possível perda de precisão), permitindo agregar o resultado. É independente de use_variant_as_common_type: com essa opção desativada, essas ramificações antes geravam NO_COMMON_TYPE; com ela ativada, tornavam-se um Variant. Em ambos os casos, agora são resolvidas para Float64."}]}]} />

Quando ativada, `if`/`multiIf`/`coalesce`/`ifNull`/`array`/`map` aplicados a um conjunto de argumentos numéricos que não tem um tipo comum sem perda (por exemplo, um `Decimal` e um `Float64`, ou um `Int64` e um `Float64`) são resolvidos para um supertipo numérico (`Float64`) em vez de falharem, com possível perda de precisão. Isso permite usar o resultado diretamente com funções de agregação que combinam valores, como `sum`, `avg`, `min` e `max`. Essa opção é independente de `use_variant_as_common_type`: o supertipo numérico é produzido independentemente de `use_variant_as_common_type` estar ativada ou não. Quando desativada (o padrão), esses conjuntos de argumentos não têm um tipo comum e, portanto, tornam-se um `Variant` (se `use_variant_as_common_type` estiver ativada) ou geram `NO_COMMON_TYPE`.

<div id="allow_materialized_view_with_bad_select">
  ## allow\_materialized\_view\_with\_bad\_select
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "0"},{"label": "Não permite criar MVs que fazem referência a colunas ou tabelas inexistentes"}]}, {"id": "row-2","items": [{"label": "24.9"},{"label": "1"},{"label": "Dá suporte (mas ainda não habilita) à validação mais rigorosa em CREATE MATERIALIZED VIEW"}]}]} />

Permite CREATE MATERIALIZED VIEW com uma consulta SELECT que faz referência a tabelas ou colunas inexistentes. A consulta ainda precisa ser sintaticamente válida. Não se aplica a MVs atualizáveis. Não se aplica se o esquema da MV precisar ser inferido a partir da consulta SELECT (isto é, se o CREATE não tiver lista de colunas nem tabela de destino com TO). Pode ser usado para criar uma MV antes da tabela de origem.

<div id="allow_minmax_index_for_json">
  ## allow\_minmax\_index\_for\_json
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "0"},{"label": "Proíbe, por padrão, a criação de índice skip minmax em colunas JSON porque a serialização do índice não consegue lidar com valores heterogêneos de Field"}]}]} />

Permite criar índices skip minmax em colunas JSON (Object). Desativado por padrão porque o
mecanismo de serialização do índice minmax não consegue lidar com os valores heterogêneos de Field que as colunas JSON podem conter.

<div id="allow_named_collection_override_by_default">
  ## allow\_named\_collection\_override\_by\_default
</div>

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

Permite, por padrão, a substituição dos campos das coleções nomeadas.

<div id="allow_non_metadata_alters">
  ## allow\_non\_metadata\_alters
</div>

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

Permite executar alters que afetam não apenas os metadados das tabelas, mas também os dados em disco

<div id="allow_nonconst_timezone_arguments">
  ## allow\_nonconst\_timezone\_arguments
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.4"},{"label": "0"},{"label": "Permite argumentos de fuso horário não constantes em determinadas funções relacionadas a data e hora, como toTimeZone(), fromUnixTimestamp*() e snowflakeToDateTime*()."}]}]} />

Permite argumentos de fuso horário não constantes em determinadas funções relacionadas a data e hora, como toTimeZone(), fromUnixTimestamp\*() e snowflakeIDToDateTime\*().
Essa configuração existe apenas por motivos de compatibilidade. No ClickHouse, o fuso horário é uma propriedade do tipo de dado e, por consequência, da coluna.
Ativar essa configuração passa a impressão errada de que valores diferentes dentro de uma coluna podem ter fusos horários diferentes.
Portanto, não ative essa configuração.

<div id="allow_nullable_tuple_in_extracted_subcolumns">
  ## allow\_nullable\_tuple\_in\_extracted\_subcolumns
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "0"},{"label": "Nova configuração que controla se subcolunas extraídas de Tuple podem ser anuláveis."}]}]} />

Controla se subcolunas extraídas do tipo `Tuple(...)` podem ser tipadas como `Nullable(Tuple(...))`.

* `false`: Retorna `Tuple(...)` e usa os valores padrão da tupla para linhas em que a subcoluna está ausente.
* `true`: Retorna `Nullable(Tuple(...))` e usa `NULL` para linhas em que a subcoluna está ausente.

Esta configuração controla apenas o comportamento das subcolunas extraídas.
Ela não controla se colunas `Nullable(Tuple(...))` podem ser criadas em tabelas; isso é controlado por `enable_nullable_tuple_type`.

O ClickHouse usa o valor dessa configuração carregado na inicialização do servidor.
Alterações feitas com `SET` ou `SETTINGS` no nível da consulta não mudam o comportamento das subcolunas extraídas.
Para mudar o comportamento das subcolunas extraídas, atualize `allow_nullable_tuple_in_extracted_subcolumns` na configuração do perfil de inicialização (por exemplo, users.xml) e reinicie o servidor.

<div id="allow_rank_dense_rank_arguments">
  ## allow\_rank\_dense\_rank\_arguments
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "Nova configuração. Antes da versão 26.5, as funções de janela `RANK` e `DENSE_RANK` ignoravam silenciosamente quaisquer argumentos fornecidos (equivalente a `allow_rank_dense_rank_arguments = 1`). A partir da versão 26.5, elas rejeitam argumentos por padrão com `NUMBER_OF_ARGUMENTS_DOESNT_MATCH` porque, segundo o padrão SQL, essas funções aceitam zero argumentos. Defina como `1` para restaurar o comportamento antigo."}]}]} />

Permite passar argumentos para as funções de janela `RANK` e `DENSE_RANK` por compatibilidade retroativa.

Segundo o padrão SQL, `RANK` e `DENSE_RANK` aceitam zero argumentos — elas classificam as linhas com base apenas na janela
`OVER (ORDER BY ...)`. Em versões do ClickHouse anteriores à 26.5, consultas como
`RANK(x) OVER (...)` aceitavam e ignoravam silenciosamente o argumento, o que gerava confusão entre os usuários
(o argumento visível sugeria que influenciava o ranking, mas não influenciava).

Quando essa configuração é `false` (o padrão), `RANK` e `DENSE_RANK` rejeitam quaisquer argumentos e
geram `NUMBER_OF_ARGUMENTS_DOESNT_MATCH`. Quando definida como `true`, o comportamento permissivo antigo é
restaurado — os argumentos são ignorados silenciosamente, como acontecia antes da versão 26.5.

<div id="allow_reorder_prewhere_conditions">
  ## allow\_reorder\_prewhere\_conditions
</div>

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

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

Permite reordenar as condições ao movê-las de WHERE para PREWHERE, para otimizar a filtragem

<div id="allow_replace_partition_from_empty_source">
  ## allow\_replace\_partition\_from\_empty\_source
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "0"},{"label": "Nova verificação de segurança: `ALTER TABLE ... REPLACE PARTITION ... FROM ...` agora gera uma exceção quando a tabela de origem não tem partes na partição solicitada (corrige a perda silenciosa de dados em [#23727](https:\/\/github.com\/ClickHouse\/ClickHouse\/issues\/23727)). O comportamento anterior, de remover silenciosamente a partição de destino, é preservado ao definir `allow_replace_partition_from_empty_source = 1`."}]}]} />

Permite que `ALTER TABLE ... REPLACE PARTITION ... FROM ...` remova silenciosamente a partição de destino quando a origem não tiver partes nessa partição.

Por padrão, isso não é permitido: `REPLACE PARTITION` a partir de uma origem sem dados na partição solicitada gera uma exceção, porque, nesse caso, a operação efetivamente se torna um `DROP PARTITION` silencioso no destino (os dados do destino são removidos e nada os substitui), uma causa comum de perda acidental de dados (veja [#23727](https://github.com/ClickHouse/ClickHouse/issues/23727)).

Ative essa configuração para restaurar o comportamento anterior, por exemplo, quando você usa intencionalmente uma partição de origem vazia para limpar dados no destino. Para uma remoção incondicional, prefira `ALTER TABLE ... DROP PARTITION ...`.

<div id="allow_settings_after_format_in_insert">
  ## allow\_settings\_after\_format\_in\_insert
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.4"},{"label": "0"},{"label": "Não permite SETTINGS após FORMAT em consultas INSERT, porque o ClickHouse interpreta SETTINGS como valores, o que pode causar confusão"}]}]} />

Controla se `SETTINGS` após `FORMAT` em consultas `INSERT` é permitido ou não. Não é recomendável usar isso, pois parte de `SETTINGS` pode ser interpretada como valores.

Exemplo:

```sql theme={null}
INSERT INTO FUNCTION null('foo String') SETTINGS max_threads=1 VALUES ('bar');
```

Mas a consulta a seguir só funcionará com `allow_settings_after_format_in_insert`:

```sql theme={null}
SET allow_settings_after_format_in_insert=1;
INSERT INTO FUNCTION null('foo String') VALUES ('bar') SETTINGS max_threads=1;
```

Valores possíveis:

* 0 — Não permitir.
* 1 — Permitir.

<Note>
  Use esta configuração apenas por compatibilidade retroativa, caso seus casos de uso dependam da sintaxe antiga.
</Note>

<div id="allow_simdjson">
  ## allow\_simdjson
</div>

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

Permite o uso da biblioteca simdjson em funções 'JSON\*' se as instruções AVX2 estiverem disponíveis. Se estiver desabilitado, a rapidjson será usada.

<div id="allow_special_serialization_kinds_in_output_formats">
  ## allow\_special\_serialization\_kinds\_in\_output\_formats
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "1"},{"label": "Habilita a saída direta de representações especiais de colunas, como Sparse\/Replicated, em alguns formatos de saída"}]}, {"id": "row-2","items": [{"label": "25.10"},{"label": "0"},{"label": "Adiciona uma configuração para permitir a saída de representações especiais de colunas, como Sparse\/Replicated, sem convertê-las em colunas completas"}]}]} />

Permite a saída de colunas com tipos especiais de serialização, como Sparse e Replicated, sem convertê-las para a representação completa da coluna.
Isso ajuda a evitar cópias de dados desnecessárias durante a formatação.

<div id="allow_unrestricted_reads_from_keeper">
  ## allow\_unrestricted\_reads\_from\_keeper
</div>

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

Permite leituras irrestritas (sem condição no path) da tabela system.zookeeper; pode ser útil, mas não é seguro para o ZooKeeper
