Estas configurações estão disponíveis em system.settings e são geradas automaticamente a partir do código-fonte.
allow_aggregate_partitions_independently
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 26.7 | 1 | 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.
allow_archive_path_syntax
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 24.8 | 1 | Nova configuração adicionada para permitir desabilitar a sintaxe de caminho de arquivo. |
| 24.5 | 1 | 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.
allow_asynchronous_read_from_io_pool_for_merge_tree
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.
allow_calculating_subcolumns_sizes_for_merge_tree_reading
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 26.3 | 1 | 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.
allow_changing_replica_until_first_data_packet
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.
allow_create_index_without_type
Permite a consulta CREATE INDEX sem TYPE. A consulta será ignorada. Destinado a testes de compatibilidade com SQL.
allow_creating_set_partitions_independently
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 26.8 | 1 | Nova configuração para habilitar a pré-desduplicação paralela por partição do resultado da subconsulta ao criar o conjunto para `IN (subquery)`, quando a expressão de partição é uma função determinística das colunas de saída da subconsulta. |
Habilita a pré-desduplicação paralela por partição do resultado da subconsulta ao criar o conjunto para IN (subquery), quando a expressão de partição da tabela MergeTree da subconsulta é uma função determinística das colunas de saída da subconsulta. Cada partição é lida em um fluxo separado e desduplicada independentemente, de modo que a única transformada de preenchimento do conjunto calcula hashes apenas de linhas únicas. Não se aplica com FINAL, réplicas paralelas ou GLOBAL IN. A otimização solicita a leitura por partição somente quando os dados têm mais de uma partição e a maior partição contém, no máximo, o dobro das linhas da partição média (consulte force_creating_set_partitions_independently para ignorar a verificação de assimetria); quando os fluxos já são separados por partição porque outro recurso por partição os dividiu (por exemplo, LIMIT BY por partição), a pré-desduplicação é aplicada independentemente disso, pois o layout de leitura já está definido. Enquanto o conjunto é criado, as tabelas de desduplicação por fluxo mantêm juntas aproximadamente uma cópia extra das chaves únicas.
allow_custom_error_code_in_throwif
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.
allow_ddl
Se estiver definido como true, o usuário poderá executar consultas DDL.
allow_delta_kernel_rs
Aliases: allow_experimental_delta_kernel_rs
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 26.8 | 1 | Novo nome de `allow_experimental_delta_kernel_rs`, que deixou de ser experimental e é mantido como alias. O padrão permanece inalterado. |
| 25.5 | 1 | 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.
allow_distinct_partitions_independently
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 26.8 | 1 | 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 e force_distinct_partitions_independently. Não se aplica com FINAL nem com réplicas paralelas.
Não se aplica quando max_rows_in_distinct ou 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.
allow_distributed_ddl
Se estiver definido como true, o usuário terá permissão para executar consultas de DDL distribuído.
allow_drop_detached
Permite consultas ALTER TABLE ... DROP DETACHED PART[ITION] ...
allow_dynamic_type_in_join_keys
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 25.10 | 0 | 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.
allow_execute_multiif_columnar
Permite executar a função multiIf de forma colunar
allow_fuzz_query_functions
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 26.2 | 0 | 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.
allow_general_join_planning
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 25.1 | 1 | 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.
allow_get_client_http_header
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 24.3 | 0 | 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.
allow_hyperscan
Permite funções que usam a biblioteca Hyperscan. Desative para evitar tempos de compilação potencialmente longos e uso excessivo de recursos.
allow_iceberg_remove_orphan_files
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 26.4 | 0 | 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.
allow_insert_into_iceberg
Aliases: allow_experimental_insert_into_iceberg
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 26.2 | 0 | `Insert` no Iceberg passou para Beta |
| 25.7 | 0 | Nova configuração. |
Permite executar consultas insert no Iceberg.
allow_introspection_functions
Habilita ou desabilita funções de introspecção 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
- Tabela de sistema trace_log
allow_key_condition_coalesce_rewrite
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 26.5 | 1 | 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.
allow_limit_by_partitions_independently
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 26.6 | 1 | 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.
allow_lossy_numeric_supertype
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 26.8 | 0 | 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.
allow_materialized_view_with_bad_select
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 25.4 | 0 | Não permite criar MVs que fazem referência a colunas ou tabelas inexistentes |
| 24.9 | 1 | 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.
allow_metadata_only_named_tuple_alter
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 26.8 | 0 | Nova configuração para controlar ALTER somente de metadados ao adicionar subcampos a uma Tuple nomeada. |
Se true, ALTER MODIFY COLUMN em uma Tuple nomeada que apenas adiciona novos subcampos é somente de metadados (sem mutação de dados). Defina como false para forçar o comportamento anterior de mutação completa.
allow_minmax_index_for_json
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 26.7 | 0 | 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.
allow_named_collection_override_by_default
Permite, por padrão, a substituição dos campos das coleções nomeadas.
allow_non_metadata_alters
Permite executar alters que afetam não apenas os metadados das tabelas, mas também os dados em disco
allow_nonconst_timezone_arguments
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 23.4 | 0 | 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.
allow_nullable_tuple_in_extracted_subcolumns
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 26.3 | 0 | 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: RetornaTuple(...)e usa os valores padrão da tupla para linhas em que a subcoluna está ausente.true: RetornaNullable(Tuple(...))e usaNULLpara 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.
allow_rank_dense_rank_arguments
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 26.5 | 0 | 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.
allow_reorder_prewhere_conditions
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 24.10 | 1 | Nova configuração |
Permite reordenar as condições ao movê-las de WHERE para PREWHERE, para otimizar a filtragem
allow_replace_partition_from_empty_source
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 26.6 | 0 | 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).
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 ....
allow_settings_after_format_in_insert
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 22.4 | 0 | 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:
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:
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.
allow_simdjson
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.
allow_special_serialization_kinds_in_output_formats
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 25.11 | 1 | Habilita a saída direta de representações especiais de colunas, como Sparse/Replicated, em alguns formatos de saída |
| 25.10 | 0 | 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.
allow_unrestricted_reads_from_keeper
Permite leituras irrestritas (sem condição no path) da tabela system.zookeeper; pode ser útil, mas não é seguro para o ZooKeeper
allow_window_partitions_independently
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 26.8 | 1 | Nova configuração para avaliar funções de janela de forma independente por partição (evitando a dispersão por hash) quando a expressão de partição é uma função determinística das colunas `PARTITION BY` da janela. |
Habilita a avaliação independente de funções de janela por partição em threads separadas quando a expressão de partição da tabela MergeTree é uma função determinística das colunas PARTITION BY da janela. Cada partição é lida por um fluxo separado, ordenada de forma independente conforme a descrição de ordenação da janela e processada por sua própria transformada de janela, evitando a dispersão por hash que normalmente redistribui cada linha entre as threads. É 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 impede sua aplicação. Consulte max_number_of_partitions_for_independent_window e force_window_partitions_independently. Não se aplica com FINAL nem com réplicas paralelas.