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

# Changelog de 2021

> Changelog de 2021

<div id="clickhouse-release-v2112-2021-12-15">
  ### Lançamento do ClickHouse v21.12, 2021-12-15. [Apresentação](https://presentations.clickhouse.com/2021-release-21.12/), [Vídeo](https://www.youtube.com/watch?v=6qi_S9CEqa4)
</div>

<Frame>
  <iframe src="https://www.youtube.com/embed/6qi_S9CEqa4" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</Frame>

<div id="backward-incompatible-change">
  #### Alteração incompatível com versões anteriores
</div>

* *Uma correção para um recurso que antes apresentava um comportamento indesejado.* Não permitir `SELECT` direto para Kafka/RabbitMQ/FileLog. Isso pode ser habilitado definindo `stream_like_engine_allow_direct_select`. O `SELECT` direto não será permitido mesmo se estiver habilitado por configuração, caso haja uma visão materializada anexada. Para Kafka e RabbitMQ, o `SELECT` direto, se permitido, não fará commit das mensagens por padrão. Para habilitar commits com `SELECT` direto, o usuário deve usar a configuração no nível de armazenamento `kafka{rabbitmq}_commit_on_select=1` (padrão `0`). [#31053](https://github.com/ClickHouse/ClickHouse/pull/31053) ([Kseniia Sumarokova](https://github.com/kssenii)).
* *Uma pequena mudança no comportamento de uma nova função.* Retorna string sem aspas em JSON\_VALUE. Fecha [#27965](https://github.com/ClickHouse/ClickHouse/issues/27965). [#31008](https://github.com/ClickHouse/ClickHouse/pull/31008) ([Kseniia Sumarokova](https://github.com/kssenii)).
* *Renomeação de configuração.* Adiciona suporte à representação personalizada de NULL para formatos de entrada TSV/CSV. Corrige a desserialização de Nullable(String) nos formatos de entrada TSV/CSV/JSONCompactStringsEachRow/JSONStringsEachRow. Renomeia `output_format_csv_null_representation` e `output_format_tsv_null_representation` para `format_csv_null_representation` e `format_tsv_null_representation`, respectivamente. [#30497](https://github.com/ClickHouse/ClickHouse/pull/30497) ([Kruglov Pavel](https://github.com/Avogar)).
* *Descontinuação adicional de código já não utilizado.* Isso é relevante apenas se você estiver usando versões do ClickHouse anteriores à 20.6. Um mecanismo de "eleição de líder" foi removido de `ReplicatedMergeTree`, porque vários líderes são suportados desde 20.6. Se você estiver atualizando a partir de uma versão mais antiga e alguma réplica com uma versão antiga for a líder, o servidor não conseguirá iniciar após a atualização. Pare as réplicas com a versão antiga para permitir que a nova versão inicie. Depois disso, não será possível fazer downgrade para uma versão anterior à 20.6. [#32140](https://github.com/ClickHouse/ClickHouse/pull/32140) ([tavplubix](https://github.com/tavplubix)).

<div id="new-feature">
  #### Novo recurso
</div>

* Implementados mais comandos Four Letter Words do ZooKeeper no clickhouse-keeper: [https://zookeeper.apache.org/doc/r3.4.8/zookeeperAdmin.html#sc\&#95;zkCommands](https://zookeeper.apache.org/doc/r3.4.8/zookeeperAdmin.html#sc\&#95;zkCommands). [#28981](https://github.com/ClickHouse/ClickHouse/pull/28981) ([JackyWoo](https://github.com/JackyWoo)). Agora, `clickhouse-keeper` tem todos os recursos implementados.
* Suporte ao tipo de dado `Bool`. [#31072](https://github.com/ClickHouse/ClickHouse/pull/31072) ([kevin wan](https://github.com/MaxWk)).
* Suporte a `PARTITION BY` nos armazenamentos File, URL e HDFS, bem como com a função de tabela `INSERT INTO`. Fecha [#30273](https://github.com/ClickHouse/ClickHouse/issues/30273). [#30690](https://github.com/ClickHouse/ClickHouse/pull/30690) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adicionado `CONSTRAINT ... ASSUME ...` (sem verificação durante `INSERT`). Adicionada a transformação de consultas para CNF ([https://github.com/ClickHouse/ClickHouse/issues/11749](https://github.com/ClickHouse/ClickHouse/issues/11749)), para uma otimização mais prática. Adicionada a reescrita simples de consultas usando restrições (por enquanto, apenas correspondência simples; depois será aprimorada para oferecer suporte a \<,=,>...). Adicionada a capacidade de substituir colunas pesadas por colunas leves, quando possível. [#18787](https://github.com/ClickHouse/ClickHouse/pull/18787) ([Nikita Vasilev](https://github.com/nikvas0)).
* Autenticação básica de acesso para funções http/url. [#31648](https://github.com/ClickHouse/ClickHouse/pull/31648) ([michael1589](https://github.com/michael1589)).
* Suporte ao tipo `INTERVAL` na cláusula `STEP` do modificador `WITH FILL`. [#30927](https://github.com/ClickHouse/ClickHouse/pull/30927) ([Anton Popov](https://github.com/CurtizJ)).
* Adicionado suporte à leitura paralela de vários arquivos e a globs na cláusula `FROM INFILE`. [#30135](https://github.com/ClickHouse/ClickHouse/pull/30135) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Adicionado suporte a parâmetros de consulta `Identifier` para tabelas e bancos de dados. Fecha [#27226](https://github.com/ClickHouse/ClickHouse/issues/27226). [#28668](https://github.com/ClickHouse/ClickHouse/pull/28668) ([Nikolay Degterinsky](https://github.com/evillique)).
* *TLDR: Grandes melhorias na completude e na consistência dos formatos de texto.* Refatoração dos formatos `TSV`, `TSVRaw`, `CSV`, `JSONCompactEachRow` e `JSONCompactStringsEachRow`, remoção de duplicação de código e adição de uma interface base para formatos com os sufixos `-WithNames` e `-WithNamesAndTypes`. Adicionados os formatos `CSVWithNamesAndTypes`, `TSVRawWithNames`, `TSVRawWithNamesAndTypes`, `JSONCompactEachRowWIthNames`, `JSONCompactStringsEachRowWIthNames`, `RowBinaryWithNames`. Suporte a parsing paralelo para os formatos `TSVWithNamesAndTypes`, `TSVRaw(WithNames/WIthNamesAndTypes)`, `CSVWithNamesAndTypes`, `JSONCompactEachRow(WithNames/WIthNamesAndTypes)` e `JSONCompactStringsEachRow(WithNames/WIthNamesAndTypes)`. Suporte a mapeamento de colunas e verificação de tipos para o formato `RowBinaryWithNamesAndTypes`. Adicionada a configuração `input_format_with_types_use_header`, que especifica se os tipos gravados no formato `<format_name>WIthNamesAndTypes` devem corresponder à estrutura da tabela. Adicionada a configuração `input_format_csv_empty_as_default`, usada no formato CSV em vez de `input_format_defaults_for_omitted_fields` (porque essa configuração não deve controlar `csv_empty_as_default`). Corrigido o uso da configuração `input_format_defaults_for_omitted_fields` (ela estava sendo usada apenas como `csv_empty_as_default`, mas deveria controlar o cálculo de expressões de valor padrão para campos omitidos). Corrigida a entrada/saída de Nullable no formato `TSVRaw`, tornando esse formato totalmente compatível com inserções em TSV. Corrigida a inserção de NULLs em `LowCardinality(Nullable)` quando `input_format_null_as_default` está habilitada (antes, valores padrão eram inseridos em vez de NULLs reais). Corrigida a desserialização de strings nos formatos `JSONStringsEachRow`/`JSONCompactStringsEachRow` (as strings eram parseadas apenas até o primeiro '\n' ou '\t'). Adicionada a capacidade de usar a regra de escaping `Raw` no input format Template. Adicionadas informações de diagnóstico para o input format JSONCompactEachRow(WithNames/WIthNamesAndTypes). Corrigido um bug no parsing paralelo de formatos `-WithNames` quando a configuração `min_chunk_bytes_for_parallel_parsing` é menor que a quantidade de bytes em uma única linha. [#30178](https://github.com/ClickHouse/ClickHouse/pull/30178) ([Kruglov Pavel](https://github.com/Avogar)). Passa a ser possível imprimir e parsear nomes e tipos de colunas no input/output format `CustomSeparated`. Adicionados os formatos `CustomSeparatedWithNames/WithNamesAndTypes`, semelhantes a `TSVWithNames/WithNamesAndTypes`. [#31434](https://github.com/ClickHouse/ClickHouse/pull/31434) ([Kruglov Pavel](https://github.com/Avogar)).
* Suporte ao armazenamento no Aliyun OSS. [#31286](https://github.com/ClickHouse/ClickHouse/pull/31286) ([cfcz48](https://github.com/cfcz48)).
* Expõe todas as configurações do pool global de threads no arquivo de configuração. [#31285](https://github.com/ClickHouse/ClickHouse/pull/31285) ([Tomáš Hromada](https://github.com/gyfis)).
* Introduzidas as funções de janela `exponentialTimeDecayedSum`, `exponentialTimeDecayedMax`, `exponentialTimeDecayedCount` e `exponentialTimeDecayedAvg`, que são mais eficientes do que `exponentialMovingAverage` para janelas maiores. Além disso, passaram a cobrir mais casos de uso. [#29799](https://github.com/ClickHouse/ClickHouse/pull/29799) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Adicionada a opção de compactar logs com LZ4 antes de gravá-los em um arquivo. Fecha [#23860](https://github.com/ClickHouse/ClickHouse/issues/23860). [#29219](https://github.com/ClickHouse/ClickHouse/pull/29219) ([Nikolay Degterinsky](https://github.com/evillique)).
* Suporte a `JOIN ON 1 = 1` com semântica de CROSS JOIN. Isso encerra [#25578](https://github.com/ClickHouse/ClickHouse/issues/25578). [#25894](https://github.com/ClickHouse/ClickHouse/pull/25894) ([Vladimir C](https://github.com/vdimir)).
* Adiciona o combinador Map para o tipo `Map`. - Renomeia o antigo `sum-, min-, max- Map` de arrays mapeados para `sum-, min-, max- MappedArrays`. [#24539](https://github.com/ClickHouse/ClickHouse/pull/24539) ([Ildus Kurbangaliev](https://github.com/ildus)).
* Permite tentar novamente leituras via HTTP. Fecha [#29696](https://github.com/ClickHouse/ClickHouse/issues/29696). [#29894](https://github.com/ClickHouse/ClickHouse/pull/29894) ([Kseniia Sumarokova](https://github.com/kssenii)).

<div id="experimental-feature">
  #### Recurso experimental
</div>

* `WINDOW VIEW` para habilitar o processamento de streams no ClickHouse. [#8331](https://github.com/ClickHouse/ClickHouse/pull/8331) ([vxider](https://github.com/Vxider)).
* Remove o suporte ao uso de bancos de dados Ordinary com `MaterializedMySQL`. [#31292](https://github.com/ClickHouse/ClickHouse/pull/31292) ([Stig Bakken](https://github.com/stigsb)).
* Implementa os comandos BACKUP e RESTORE para a família Log. Esta funcionalidade está em desenvolvimento. [#30688](https://github.com/ClickHouse/ClickHouse/pull/30688) ([Vitaly Baranov](https://github.com/vitlibar)).

<div id="performance-improvement">
  #### Melhoria de desempenho
</div>

* Reduz o uso de memória ao ler nos formatos `s3` / `url` / `hdfs` `Parquet`, `ORC` e `Arrow` (controlado pela configuração `input_format_allow_seeks`, habilitada por padrão). Também adiciona a configuração `remote_read_min_bytes_for_seek` para controlar seeks. Fecha [#10461](https://github.com/ClickHouse/ClickHouse/issues/10461). Fecha [#16857](https://github.com/ClickHouse/ClickHouse/issues/16857). [#30936](https://github.com/ClickHouse/ClickHouse/pull/30936) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adiciona otimizações para condições constantes em `JOIN ON`, ref. [#26928](https://github.com/ClickHouse/ClickHouse/issues/26928). [#27021](https://github.com/ClickHouse/ClickHouse/pull/27021) ([Vladimir C](https://github.com/vdimir)).
* Oferece suporte a formatação paralela para todos os formatos de texto, exceto `JSONEachRowWithProgress` e `PrettyCompactMonoBlock`. [#31489](https://github.com/ClickHouse/ClickHouse/pull/31489) ([Kruglov Pavel](https://github.com/Avogar)).
* Acelera `count` em colunas Nullable. [#31806](https://github.com/ClickHouse/ClickHouse/pull/31806) ([Raúl Marín](https://github.com/Algunenano)).
* Acelera as funções agregadas `avg` e `sumCount`. [#31694](https://github.com/ClickHouse/ClickHouse/pull/31694) ([Raúl Marín](https://github.com/Algunenano)).
* Melhora o desempenho dos formatos de saída JSON e XML. [#31673](https://github.com/ClickHouse/ClickHouse/pull/31673) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Melhora o desempenho da sincronização de dados para block device. Isso fecha [#31181](https://github.com/ClickHouse/ClickHouse/issues/31181). [#31229](https://github.com/ClickHouse/ClickHouse/pull/31229) ([zhanglistar](https://github.com/zhanglistar)).
* Corrige um problema de desempenho de consulta em tabelas `LiveView`. Corrige [#30831](https://github.com/ClickHouse/ClickHouse/issues/30831). [#31006](https://github.com/ClickHouse/ClickHouse/pull/31006) ([vzakaznikov](https://github.com/vzakaznikov)).
* Acelera o parsing de consultas. [#31949](https://github.com/ClickHouse/ClickHouse/pull/31949) ([Raúl Marín](https://github.com/Algunenano)).
* Permite dividir as regras de rollup do `GraphiteMergeTree` para métricas simples/com tags (campo opcional `rule_type`). [#25122](https://github.com/ClickHouse/ClickHouse/pull/25122) ([Michail Safronov](https://github.com/msaf1980)).
* Remove solicitações excessivas de `DESC TABLE` para `remote()` (no caso de `remote('127.1', system.one)` (ou seja, identificador como db.table em vez de string), havia uma solicitação excessiva de `DESC TABLE`). [#32019](https://github.com/ClickHouse/ClickHouse/pull/32019) ([Azat Khuzhin](https://github.com/azat)).
* Otimiza a função `tupleElement` para ler subcoluna com a configuração `optimize_functions_to_subcolumns` habilitada. [#31261](https://github.com/ClickHouse/ClickHouse/pull/31261) ([Anton Popov](https://github.com/CurtizJ)).
* Otimiza a função `mapContains` para ler a subcoluna `key` com a configuração `optimize_functions_to_subcolumns` habilitada. [#31218](https://github.com/ClickHouse/ClickHouse/pull/31218) ([Anton Popov](https://github.com/CurtizJ)).
* Adiciona as configurações `merge_tree_min_rows_for_concurrent_read_for_remote_filesystem` e `merge_tree_min_bytes_for_concurrent_read_for_remote_filesystem`. [#30970](https://github.com/ClickHouse/ClickHouse/pull/30970) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ignora mutações de partições diferentes em `StorageMergeTree`. [#21326](https://github.com/ClickHouse/ClickHouse/pull/21326) ([Vladimir Chebotarev](https://github.com/excitoon)).

<div id="improvement">
  #### Melhoria
</div>

* Não permitir a remoção de uma tabela ou dicionário se houver tabelas ou dicionários que dependam dele. [#30977](https://github.com/ClickHouse/ClickHouse/pull/30977) ([tavplubix](https://github.com/tavplubix)).
* Permite o versionamento dos estados de funções de agregação. Agora, podemos introduzir alterações retrocompatíveis no formato de serialização dos estados de funções de agregação. Fecha [#12552](https://github.com/ClickHouse/ClickHouse/issues/12552). [#24820](https://github.com/ClickHouse/ClickHouse/pull/24820) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Suporte à sintaxe `ALTER MODIFY COLUMN` no estilo do PostgreSQL. [#32003](https://github.com/ClickHouse/ClickHouse/pull/32003) ([SuperDJY](https://github.com/cmsxbc)).
* Adicionado suporte ao `update_field` para `RangeHashedDictionary` e `ComplexKeyRangeHashedDictionary`. [#32185](https://github.com/ClickHouse/ClickHouse/pull/32185) ([Maksim Kita](https://github.com/kitaisreal)).
* As funções `murmurHash3_128` e `sipHash128` agora aceitam uma quantidade arbitrária de argumentos. Isso corrige [#28774](https://github.com/ClickHouse/ClickHouse/issues/28774). [#28965](https://github.com/ClickHouse/ClickHouse/pull/28965) ([小路](https://github.com/nicelulu)).
* Adiciona suporte a expressão padrão para o armazenamento `HDFS` e otimiza a busca de dados quando a origem é colunar. [#32256](https://github.com/ClickHouse/ClickHouse/pull/32256) ([李扬](https://github.com/taiyang-li)).
* Melhorado o nome da operação de um span do OpenTelemetry. [#32234](https://github.com/ClickHouse/ClickHouse/pull/32234) ([Frank Chen](https://github.com/FrankChen021)).
* Use `Content-Type: application/x-ndjson` ([http://ndjson.org/](http://ndjson.org/)) para o formato de saída `JSONEachRow`. [#32223](https://github.com/ClickHouse/ClickHouse/pull/32223) ([Dmitriy Dorofeev](https://github.com/deem0n)).
* Melhorada a omissão de campos desconhecidos com a regra de escape entre aspas nos formatos Template/CustomSeparated. Antes, só era possível ignorar strings entre aspas; agora, é possível ignorar valores de qualquer tipo. [#32204](https://github.com/ClickHouse/ClickHouse/pull/32204) ([Kruglov Pavel](https://github.com/Avogar)).
* Agora, o `clickhouse-keeper` se recusa a iniciar ou a aplicar alterações de configuração quando elas contêm IDs ou endpoints duplicados. Corrige [#31339](https://github.com/ClickHouse/ClickHouse/issues/31339). [#32121](https://github.com/ClickHouse/ClickHouse/pull/32121) ([alesapin](https://github.com/alesapin)).
* Define o Content-Type nos pacotes HTTP emitidos pelo URL engine. [#32113](https://github.com/ClickHouse/ClickHouse/pull/32113) ([Frank Chen](https://github.com/FrankChen021)).
* Retorna o Content-Type como 'application/json' para o formato `JSONEachRow` se `output_format_json_array_of_rows` estiver habilitado. [#32112](https://github.com/ClickHouse/ClickHouse/pull/32112) ([Frank Chen](https://github.com/FrankChen021)).
* Permite interpretar `+` antes de valores `Float32`/`Float64`. [#32079](https://github.com/ClickHouse/ClickHouse/pull/32079) ([Kruglov Pavel](https://github.com/Avogar)).
* Permite que o usuário configure o parâmetro `hdfs_replication` para `DiskHDFS` e `StorageHDFS`. Fecha [#32039](https://github.com/ClickHouse/ClickHouse/issues/32039). [#32049](https://github.com/ClickHouse/ClickHouse/pull/32049) ([leosunli](https://github.com/leosunli)).
* Adicionados ao log de spans do OpenTelemetry os campos `exception` e `exception_code` do ClickHouse. [#32040](https://github.com/ClickHouse/ClickHouse/pull/32040) ([Frank Chen](https://github.com/FrankChen021)).
* Melhora a duração do log de span do OpenTelemetry - ela ficava zerada no nível da consulta quando havia uma exceção na consulta. [#32038](https://github.com/ClickHouse/ClickHouse/pull/32038) ([Frank Chen](https://github.com/FrankChen021)).
* Corrigido o problema que impedia a criação de `LowCardinality` de `Int256`. [#31832](https://github.com/ClickHouse/ClickHouse/pull/31832) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Recriar as tabelas `system.*_log` em caso de engine/partition\_by diferentes. [#31824](https://github.com/ClickHouse/ClickHouse/pull/31824) ([Azat Khuzhin](https://github.com/azat)).
* `MaterializedMySQL`: Corrige o problema com a tabela chamada 'table'. [#31781](https://github.com/ClickHouse/ClickHouse/pull/31781) ([Håvard Kvålen](https://github.com/havardk)).
* Fonte de dicionário do ClickHouse: suporte a conexões predefinidas. Fecha [#31705](https://github.com/ClickHouse/ClickHouse/issues/31705). [#31749](https://github.com/ClickHouse/ClickHouse/pull/31749) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Permite usar configurações de conexões predefinidas para os motores Kafka e RabbitMQ (da mesma forma que em outros motores de tabela de integração). [#31691](https://github.com/ClickHouse/ClickHouse/pull/31691) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Sempre renderize novamente o prompt ao navegar pelo histórico no clickhouse-client. Isso facilita a manipulação de consultas muito longas que não cabem na tela. [#31675](https://github.com/ClickHouse/ClickHouse/pull/31675) ([alexey-milovidov](https://github.com/alexey-milovidov)) (autor: Amos Bird).
* Adicionar atalhos de teclado para navegar no histórico (em vez de linhas/histórico). [#31641](https://github.com/ClickHouse/ClickHouse/pull/31641) ([Azat Khuzhin](https://github.com/azat)).
* Aprimoradas as verificações de `max_execution_time`. Corrigidos alguns casos em que as verificações de timeout não eram realizadas e a consulta podia continuar em execução por tempo demais. [#31636](https://github.com/ClickHouse/ClickHouse/pull/31636) ([Raúl Marín](https://github.com/Algunenano)).
* Mensagem de exceção mais clara quando `users.xml` não pode ser carregado devido a um hash de senha inválido. Isso fecha [#24126](https://github.com/ClickHouse/ClickHouse/issues/24126). [#31557](https://github.com/ClickHouse/ClickHouse/pull/31557) ([Vitaly Baranov](https://github.com/vitlibar)).
* Use os nomes do shard e da réplica dos argumentos do banco de dados `Replicated` ao expandir macros nos argumentos de `ReplicatedMergeTree`, se essas macros não estiverem definidas na configuração. Fecha [#31471](https://github.com/ClickHouse/ClickHouse/issues/31471). [#31488](https://github.com/ClickHouse/ClickHouse/pull/31488) ([tavplubix](https://github.com/tavplubix)).
* Análise aprimorada para a projeção `min/max/count`. Agora, com `allow_experimental_projection_optimization` ativada, a projeção virtual `min/max/count` pode ser usada junto com colunas da chave de partição. [#31474](https://github.com/ClickHouse/ClickHouse/pull/31474) ([Amos Bird](https://github.com/amosbird)).
* Adicionado suporte ao `--pager` no `clickhouse-local`. [#31457](https://github.com/ClickHouse/ClickHouse/pull/31457) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida a espera pelo editor durante a edição interativa de consultas (`waitpid()` retorna -1 em `SIGWINCH`, e `EDITOR` e `clickhouse-local`/`clickhouse-client` funcionam de forma concorrente). [#31456](https://github.com/ClickHouse/ClickHouse/pull/31456) ([Azat Khuzhin](https://github.com/azat)).
* Gerar uma exceção se houver dados inválidos após o campo no formato `JSONCompactStrings(EachRow)`. [#31455](https://github.com/ClickHouse/ClickHouse/pull/31455) ([Kruglov Pavel](https://github.com/Avogar)).
* Os valores padrão das configurações `http_send_timeout` e `http_receive_timeout` foram alterados de 1800 (30 minutos) para 180 (3 minutos). [#31450](https://github.com/ClickHouse/ClickHouse/pull/31450) ([tavplubix](https://github.com/tavplubix)).
* `MaterializedMySQL` agora oferece suporte a consultas DDL `CREATE TABLE ... LIKE ...`. [#31410](https://github.com/ClickHouse/ClickHouse/pull/31410) ([Stig Bakken](https://github.com/stigsb)).
* Retornar uma consulta CREATE artificial ao executar `show create table` em tabelas do sistema. [#31391](https://github.com/ClickHouse/ClickHouse/pull/31391) ([SuperDJY](https://github.com/cmsxbc)).
* Anteriormente, o progresso era exibido apenas para a função de tabela `numbers`. Agora, ele também é exibido para `numbers_mt`. [#31318](https://github.com/ClickHouse/ClickHouse/pull/31318) ([Kseniia Sumarokova](https://github.com/kssenii)).
* As funções iniciais do usuário agora são usadas para determinar as políticas de linha, veja [#31080](https://github.com/ClickHouse/ClickHouse/issues/31080). [#31262](https://github.com/ClickHouse/ClickHouse/pull/31262) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se alguma configuração obsoleta for alterada, exibir um aviso em `system.warnings`. [#31252](https://github.com/ClickHouse/ClickHouse/pull/31252) ([tavplubix](https://github.com/tavplubix)).
* Melhorado o backoff para tarefas de limpeza em segundo plano no `MergeTree`. As configurações `merge_tree_clear_old_temporary_directories_interval_seconds` e `merge_tree_clear_old_parts_interval_seconds` foram movidas das configurações de usuário para as configurações do MergeTree. [#31180](https://github.com/ClickHouse/ClickHouse/pull/31180) ([tavplubix](https://github.com/tavplubix)).
* Agora, cada réplica enviará ao cliente apenas informações incrementais sobre os contadores de eventos de perfil. [#31155](https://github.com/ClickHouse/ClickHouse/pull/31155) ([Dmitry Novik](https://github.com/novikd)). Isso torna a opção `--hardware_utilization` no `clickhouse-client` útil.
* Ative a edição de múltiplas linhas no clickhouse-client por padrão. Isso corrige [#31121](https://github.com/ClickHouse/ClickHouse/issues/31121) . [#31123](https://github.com/ClickHouse/ClickHouse/pull/31123) ([Amos Bird](https://github.com/amosbird)).
* Normalização de nomes de funções para consultas `ALTER`. Isso ajuda a evitar inconsistências de metadados entre a criação de tabelas com índices/projeções e a adição de índices/projeções por meio de comandos ALTER. Este é um PR complementar a [https://github.com/ClickHouse/ClickHouse/pull/20174](https://github.com/ClickHouse/ClickHouse/pull/20174). Marcado como melhoria, pois não há relatos de bugs e o cenário é relativamente raro. [#31095](https://github.com/ClickHouse/ClickHouse/pull/31095) ([Amos Bird](https://github.com/amosbird)).
* Suporte ao modificador `IF EXISTS` na consulta `RENAME DATABASE`/`TABLE`/`DICTIONARY`. Se essa diretiva for usada, não ocorrerá erro se o DATABASE/TABLE/DICTIONARY a ser renomeado não existir. [#31081](https://github.com/ClickHouse/ClickHouse/pull/31081) ([victorgao](https://github.com/kafka1991)).
* Cancelar mesclagens verticais quando a partição for removida. Trata-se de um desdobramento de [https://github.com/ClickHouse/ClickHouse/pull/25684](https://github.com/ClickHouse/ClickHouse/pull/25684) e [https://github.com/ClickHouse/ClickHouse/pull/30996](https://github.com/ClickHouse/ClickHouse/pull/30996). [#31057](https://github.com/ClickHouse/ClickHouse/pull/31057) ([Amos Bird](https://github.com/amosbird)).
* A sessão local dentro de uma fonte de Dicionário do ClickHouse não enviará mais seus eventos para o log de sessão. Isso corrige um possível deadlock (alerta do TSAN) durante o encerramento. Além disso, este PR corrige a instabilidade de `test_dictionaries_dependency_xml/`. [#31013](https://github.com/ClickHouse/ClickHouse/pull/31013) ([Vitaly Baranov](https://github.com/vitlibar)).
* Menos bloqueios no comando ALTER. [#31010](https://github.com/ClickHouse/ClickHouse/pull/31010) ([Amos Bird](https://github.com/amosbird)).
* Corrigida a opção `--verbose` no modo interativo do clickhouse-local e permitido o logging em arquivo. [#30881](https://github.com/ClickHouse/ClickHouse/pull/30881) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adicionados os comandos `\l`, `\d` e `\c` ao `clickhouse-client`, como no MySQL e no PostgreSQL. [#30876](https://github.com/ClickHouse/ClickHouse/pull/30876) ([Pavel Medvedev](https://github.com/pmed)).
* Para clickhouse-local ou clickhouse-client: se houver a opção `--interactive` com `--query` ou `--queries-file`, primeiro execute-os como no modo não interativo e depois inicie o modo interativo. [#30851](https://github.com/ClickHouse/ClickHouse/pull/30851) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige o possível erro "The local set of parts of X doesn't look like the set of parts in ZooKeeper" (se o DROP falhar ao remover znodes do ZooKeeper). [#30826](https://github.com/ClickHouse/ClickHouse/pull/30826) ([Azat Khuzhin](https://github.com/azat)).
* O formato Avro passa a funcionar com o Kafka. Adicionada a configuração `output_format_avro_rows_in_file`. [#30351](https://github.com/ClickHouse/ClickHouse/pull/30351) ([Ilya Golshtein](https://github.com/ilejn)).
* Permite especificar um ou mais schemas do PostgreSQL para um banco de dados `MaterializedPostgreSQL`. Fecha [#28901](https://github.com/ClickHouse/ClickHouse/issues/28901). Fecha [#29324](https://github.com/ClickHouse/ClickHouse/issues/29324). [#28933](https://github.com/ClickHouse/ClickHouse/pull/28933) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Portas padrão substituídas para a comunicação interna do clickhouse-keeper, de 44444 para 9234. Corrige [#30879](https://github.com/ClickHouse/ClickHouse/issues/30879). [#31799](https://github.com/ClickHouse/ClickHouse/pull/31799) ([alesapin](https://github.com/alesapin)).
* Implementação da função transform com argumentos Decimal. [#31839](https://github.com/ClickHouse/ClickHouse/pull/31839) ([李帅](https://github.com/loneylee)).
* Corrigido o abort no servidor de depuração e o erro `DB::Exception: std::out_of_range: basic_string` no servidor de release em caso de URL hdfs inválida, com a adição de uma verificação extra da estrutura da URL hdfs. [#31042](https://github.com/ClickHouse/ClickHouse/pull/31042) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige uma possível falha de asserção na table function/engine `hdfs`, adiciona um teste. [#31036](https://github.com/ClickHouse/ClickHouse/pull/31036) ([Kruglov Pavel](https://github.com/Avogar)).

<div id="bug-fixes">
  #### Correções de bugs
</div>

* Corrige aliases de GROUP BY / ORDER BY / LIMIT BY com argumentos posicionais habilitados. Fecha [#31173](https://github.com/ClickHouse/ClickHouse/issues/31173). [#31741](https://github.com/ClickHouse/ClickHouse/pull/31741) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige o uso da engine de tabela `Buffer` com o tipo `Map`. Corrige [#30546](https://github.com/ClickHouse/ClickHouse/issues/30546). [#31742](https://github.com/ClickHouse/ClickHouse/pull/31742) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigida a leitura de tabelas `MergeTree` com `use_uncompressed_cache` habilitado. [#31826](https://github.com/ClickHouse/ClickHouse/pull/31826) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigido o comportamento quando mutações sem nada a fazer ficam travadas (com a configuração `empty_result_for_aggregation_by_empty_set` habilitada). [#32358](https://github.com/ClickHouse/ClickHouse/pull/32358) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrige o problema de ignorar colunas ao gravar em protobuf. Este PR corrige [#31160](https://github.com/ClickHouse/ClickHouse/issues/31160); veja o comentário [#31160](https://github.com/ClickHouse/ClickHouse/issues/31160)#issuecomment-980595318. [#31988](https://github.com/ClickHouse/ClickHouse/pull/31988) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige um bug ao remover colunas desnecessárias em uma subconsulta. Se houver uma função de agregação em uma consulta sem GROUP BY, não a remova, mesmo que seja desnecessária. [#32289](https://github.com/ClickHouse/ClickHouse/pull/32289) ([dongyifeng](https://github.com/dyf6372)).
* O limite da quota não foi atingido, mas o limite foi excedido. Este PR corrige [#31174](https://github.com/ClickHouse/ClickHouse/issues/31174). [#31337](https://github.com/ClickHouse/ClickHouse/pull/31337) ([sunny](https://github.com/sunny19930321)).
* Corrige o SHOW GRANTS quando são usadas revogações parciais. Este PR corrige [#31138](https://github.com/ClickHouse/ClickHouse/issues/31138). [#31249](https://github.com/ClickHouse/ClickHouse/pull/31249) ([Vitaly Baranov](https://github.com/vitlibar)).
* A quantidade de memória era estimada incorretamente quando o ClickHouse era executado em contêineres com limites de cgroup. [#31157](https://github.com/ClickHouse/ClickHouse/pull/31157) ([Pavel Medvedev](https://github.com/pmed)).
* Corrige consultas `ALTER ... MATERIALIZE COLUMN ...` nos casos em que o tipo de dados da expressão padrão não corresponde ao tipo de dados da coluna. [#32348](https://github.com/ClickHouse/ClickHouse/pull/32348) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigido travamento com SIGFPE na função de agregação `avgWeighted` com argumento `Decimal`. Corrige [#32053](https://github.com/ClickHouse/ClickHouse/issues/32053). [#32303](https://github.com/ClickHouse/ClickHouse/pull/32303) ([tavplubix](https://github.com/tavplubix)).
* O servidor pode não iniciar e exibir o erro `Cannot attach 1 tables due to cyclic dependencies` se a tabela `Dictionary` apontar para um dicionário XML com o mesmo nome; isso foi corrigido. Corrige [#31315](https://github.com/ClickHouse/ClickHouse/issues/31315). [#32288](https://github.com/ClickHouse/ClickHouse/pull/32288) ([tavplubix](https://github.com/tavplubix)).
* Corrigido erro de parsing ao desserializar NaN em `Nullable(Float)` com a regra de escape `Quoted`. [#32190](https://github.com/ClickHouse/ClickHouse/pull/32190) ([Kruglov Pavel](https://github.com/Avogar)).
* Dicionários XML: identificadores usados na consulta CREATE TABLE podem ser qualificados com `default_database` durante a atualização para uma versão mais recente. Fecha [#31963](https://github.com/ClickHouse/ClickHouse/issues/31963). [#32187](https://github.com/ClickHouse/ClickHouse/pull/32187) ([Maksim Kita](https://github.com/kitaisreal)).
* O número de réplicas ativas pode ser calculado incorretamente ao inserir com quórum se a configuração `replicated_can_become_leader` estiver desabilitada em algumas réplicas. Isso foi corrigido. [#32157](https://github.com/ClickHouse/ClickHouse/pull/32157) ([tavplubix](https://github.com/tavplubix)).
* Dictionaries: corrige casos em que `{condition}` não funciona em consultas personalizadas ao banco de dados. [#32117](https://github.com/ClickHouse/ClickHouse/pull/32117) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrigido o `CAST` de `Nullable` com `cast_keep_nullable` (antes, havia o erro `PARAMETER_OUT_OF_BOUND`, por exemplo, em `toUInt32OrDefault(toNullable(toUInt32(1)))`). [#32080](https://github.com/ClickHouse/ClickHouse/pull/32080) ([Azat Khuzhin](https://github.com/azat)).
* Corrige o CREATE TABLE do Join Storage em alguns casos pouco comuns. Fecha [#31680](https://github.com/ClickHouse/ClickHouse/issues/31680). [#32066](https://github.com/ClickHouse/ClickHouse/pull/32066) ([SuperDJY](https://github.com/cmsxbc)).
* Corrigido o erro `Directory ... already exists and is not empty` ao desanexar a parte. [#32063](https://github.com/ClickHouse/ClickHouse/pull/32063) ([tavplubix](https://github.com/tavplubix)).
* `MaterializedMySQL` (funcionalidade experimental): Corrige a interpretação incorreta de dados `DECIMAL` do MySQL. [#31990](https://github.com/ClickHouse/ClickHouse/pull/31990) ([Håvard Kvålen](https://github.com/havardk)).
* O mecanismo `FileLog` (funcionalidade experimental) criava desnecessariamente o diretório de metadados quando a criação da tabela falhava. Correção [#31962](https://github.com/ClickHouse/ClickHouse/issues/31962). [#31967](https://github.com/ClickHouse/ClickHouse/pull/31967) ([flynn](https://github.com/ucasfl)).
* Uma entrada `GET_PART` pode ficar presa na fila de replicação se uma parte for perdida em todas as réplicas e não houver outras partes na mesma partição. Isso foi corrigido nos casos em que a chave de partição contém apenas colunas de tipos inteiros ou `Date[Time]`. Corrige [#31485](https://github.com/ClickHouse/ClickHouse/issues/31485). [#31887](https://github.com/ClickHouse/ClickHouse/pull/31887) ([tavplubix](https://github.com/tavplubix)).
* Corrigidas as funções `empty` e `notEmpty` com argumentos do tipo `UUID`. Corrige [#31819](https://github.com/ClickHouse/ClickHouse/issues/31819). [#31883](https://github.com/ClickHouse/ClickHouse/pull/31883) ([Anton Popov](https://github.com/CurtizJ)).
* Altere o caminho da configuração de `keeper_server.session_timeout_ms` para `keeper_server.coordination_settings.session_timeout_ms` ao construir um `KeeperTCPHandler`. O mesmo vale para `operation_timeout`. [#31859](https://github.com/ClickHouse/ClickHouse/pull/31859) ([JackyWoo](https://github.com/JackyWoo)).
* Corrige a conversão inválida do tipo Nullable quando uma chave primária Nullable é usada. (Chave primária Nullable é um recurso desaconselhado — por favor, não use.) Isso corrige [#31075](https://github.com/ClickHouse/ClickHouse/issues/31075). [#31823](https://github.com/ClickHouse/ClickHouse/pull/31823) ([Amos Bird](https://github.com/amosbird)).
* Corrigida falha em UDF recursiva no SQL. Fecha [#30856](https://github.com/ClickHouse/ClickHouse/issues/30856). [#31820](https://github.com/ClickHouse/ClickHouse/pull/31820) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige falha quando a função `dictGet` com um tipo é usada para um atributo de dicionário cujo tipo é `Nullable`. Corrige [#30980](https://github.com/ClickHouse/ClickHouse/issues/30980). [#31800](https://github.com/ClickHouse/ClickHouse/pull/31800) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige falha causada por resultado vazio em consulta ODBC (com alguns drivers ODBC). Fecha [#31465](https://github.com/ClickHouse/ClickHouse/issues/31465). [#31766](https://github.com/ClickHouse/ClickHouse/pull/31766) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigida a falha na desativação do profiler de consulta (no caso de `query_profiler_real_time_period_ns>0`/`query_profiler_cpu_time_period_ns>0`, o profiler de consulta podia continuar habilitado mesmo após o término da consulta). [#31740](https://github.com/ClickHouse/ClickHouse/pull/31740) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida uma rara falha de segmentação em consultas concorrentes `ATTACH PARTITION`. [#31738](https://github.com/ClickHouse/ClickHouse/pull/31738) ([tavplubix](https://github.com/tavplubix)).
* Corrigida uma condição de corrida no formato de saída JSONEachRowWithProgress quando dados e linhas de progresso se misturam na saída. [#31736](https://github.com/ClickHouse/ClickHouse/pull/31736) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrigido o erro `there are no such cluster here` na execução da consulta `ON CLUSTER` caso o nome do cluster especificado seja o nome de um banco de dados `Replicated`. [#31723](https://github.com/ClickHouse/ClickHouse/pull/31723) ([tavplubix](https://github.com/tavplubix)).
* Corrigida exceção em alguns usos da função `decrypt` em colunas Nullable. Isso fecha [#31662](https://github.com/ClickHouse/ClickHouse/issues/31662). Isso fecha [#31426](https://github.com/ClickHouse/ClickHouse/issues/31426). [#31707](https://github.com/ClickHouse/ClickHouse/pull/31707) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrigido um problema na função ngrams quando a string contém caracteres UTF-8. [#31706](https://github.com/ClickHouse/ClickHouse/pull/31706) ([yandd](https://github.com/yandd)).
* As configurações `input_format_allow_errors_num` e `input_format_allow_errors_ratio` não funcionavam ao analisar tipos de domínio, como `IPv4`; isso foi corrigido. Corrige [#31686](https://github.com/ClickHouse/ClickHouse/issues/31686). [#31697](https://github.com/ClickHouse/ClickHouse/pull/31697) ([tavplubix](https://github.com/tavplubix)).
* Corrigida a exceção de ponteiro nulo em `MATERIALIZE COLUMN`. [#31679](https://github.com/ClickHouse/ClickHouse/pull/31679) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* A consulta `RENAME TABLE` apresentava comportamento incorreto ao tentar renomear um dicionário DDL no banco de dados `Ordinary`; isso foi corrigido. [#31638](https://github.com/ClickHouse/ClickHouse/pull/31638) ([tavplubix](https://github.com/tavplubix)).
* Implemente a função de agregação `sparkbar` como foi concebida, veja: [#26175](https://github.com/ClickHouse/ClickHouse/issues/26175)#issuecomment-960353867, [comentário](https://github.com/ClickHouse/ClickHouse/issues/26175#issuecomment-961155065). [#31624](https://github.com/ClickHouse/ClickHouse/pull/31624) ([小路](https://github.com/nicelulu)).
* Corrige o JSON gerado inválido quando apenas os nomes das colunas contêm sequências UTF-8 inválidas. [#31534](https://github.com/ClickHouse/ClickHouse/pull/31534) ([Kevin Michel](https://github.com/kmichel-aiven)).
* Desative `partial_merge_join_left_table_buffer_bytes` até que o bug nessa otimização seja corrigido. Veja [#31009](https://github.com/ClickHouse/ClickHouse/issues/31009)). Remova a opção redundante `partial_merge_join_optimizations`. [#31528](https://github.com/ClickHouse/ClickHouse/pull/31528) ([Vladimir C](https://github.com/vdimir)).
* Corrige o progresso de consultas curtas `INSERT SELECT`. [#31510](https://github.com/ClickHouse/ClickHouse/pull/31510) ([Azat Khuzhin](https://github.com/azat)).
* Corrige o comportamento incorreto ao usar group by e argumentos posicionais. Fecha [#31280](https://github.com/ClickHouse/ClickHouse/issues/31280)#issuecomment-968696186. [#31420](https://github.com/ClickHouse/ClickHouse/pull/31420) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigido erro de `nullptr` no provedor de credenciais STS para S3. [#31409](https://github.com/ClickHouse/ClickHouse/pull/31409) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Removida a função `notLike` da análise de índice, porque estava incorreta. [#31169](https://github.com/ClickHouse/ClickHouse/pull/31169) ([sundyli](https://github.com/sundy-li)).
* Corrigido erro no Keeper que pode impedir a inicialização quando alguns logs de coordination forem perdidos e houver um snapshot mais recente do que o log mais recente. [#31150](https://github.com/ClickHouse/ClickHouse/pull/31150) ([alesapin](https://github.com/alesapin)).
* Reescreve a tabela distribuída à direita em join local. Resolve [#25809](https://github.com/ClickHouse/ClickHouse/issues/25809). [#31105](https://github.com/ClickHouse/ClickHouse/pull/31105) ([abel-cheng](https://github.com/abel-cheng)).
* Corrige a tabela `Merge` com aliases e where (antes, ela não funcionava de forma alguma). Fecha [#28802](https://github.com/ClickHouse/ClickHouse/issues/28802). [#31044](https://github.com/ClickHouse/ClickHouse/pull/31044) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige JSON\_VALUE/JSON\_QUERY com identificadores entre aspas. Isso permite usar espaços no caminho JSON. Fecha [#30971](https://github.com/ClickHouse/ClickHouse/issues/30971). [#31003](https://github.com/ClickHouse/ClickHouse/pull/31003) ([Kseniia Sumarokova](https://github.com/kssenii)).
* O uso da função `formatRow` com formatos que não são orientados a linhas levava a falha de segmentação. Não permitir o uso dessa função com esses formatos (pois isso não faz sentido). [#31001](https://github.com/ClickHouse/ClickHouse/pull/31001) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrigido um erro que comprometia consultas select quando executadas após a exclusão de uma visão materializada. Encontrado em [#30691](https://github.com/ClickHouse/ClickHouse/issues/30691). [#30997](https://github.com/ClickHouse/ClickHouse/pull/30997) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ignorar a verificação `max_partition_size_to_drop check` nos casos de ATTACH PARTITION ... FROM e MOVE PARTITION ... [#30995](https://github.com/ClickHouse/ClickHouse/pull/30995) ([Amr Alaa](https://github.com/amralaa-MSFT)).
* Corrige alguns casos extremos com os operadores `INTERSECT` e `EXCEPT`. Fecha [#30803](https://github.com/ClickHouse/ClickHouse/issues/30803). [#30965](https://github.com/ClickHouse/ClickHouse/pull/30965) ([Kseniia Sumarokova](https://github.com/kssenii)).

<div id="buildtestingpackaging-improvement">
  #### Melhorias de Build/Testes/Empacotamento
</div>

* Corrigido o resultado incorreto da filtragem em builds não x86. Isso fecha [#31417](https://github.com/ClickHouse/ClickHouse/issues/31417). Isso fecha [#31524](https://github.com/ClickHouse/ClickHouse/issues/31524). [#31574](https://github.com/ClickHouse/ClickHouse/pull/31574) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Tornado o build do ClickHouse totalmente reproduzível (bytes idênticos em máquinas diferentes). Isso fecha [#22113](https://github.com/ClickHouse/ClickHouse/issues/22113). [#31899](https://github.com/ClickHouse/ClickHouse/pull/31899) ([alexey-milovidov](https://github.com/alexey-milovidov)). Removido o path do filesystem para o diretório de build dos binários para viabilizar builds reproduzíveis. Isso foi necessário para [#22113](https://github.com/ClickHouse/ClickHouse/issues/22113). [#31838](https://github.com/ClickHouse/ClickHouse/pull/31838) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Uso dos nossos próprios CMakeLists para `zlib-ng`, `cassandra`, `mariadb-connector-c` e `xz`, `re2`, `sentry`, `gsasl`, `arrow`, `protobuf`. Isso é necessário para [#20151](https://github.com/ClickHouse/ClickHouse/issues/20151). Parte de [#9226](https://github.com/ClickHouse/ClickHouse/issues/9226). Um pequeno passo rumo à remoção de lixo incômodo do sistema de build. [#30599](https://github.com/ClickHouse/ClickHouse/pull/30599) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Builds herméticos: uso de uma versão fixa da libc e garantia de que nenhum arquivo-fonte ou binário do sistema operacional hospedeiro seja usado durante o build. Isso fecha [#27133](https://github.com/ClickHouse/ClickHouse/issues/27133). Isso fecha [#21435](https://github.com/ClickHouse/ClickHouse/issues/21435). Isso fecha [#30462](https://github.com/ClickHouse/ClickHouse/issues/30462). [#30011](https://github.com/ClickHouse/ClickHouse/pull/30011) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Adicionada a função `getFuzzerData()` para facilitar o fuzzing de funções específicas. Isso fecha [#23227](https://github.com/ClickHouse/ClickHouse/issues/23227). [#27526](https://github.com/ClickHouse/ClickHouse/pull/27526) ([Alexey Boykov](https://github.com/mathalex)).
* Configuração mais adequada de capabilities no Docker. [#31802](https://github.com/ClickHouse/ClickHouse/pull/31802) ([Constantine Peresypkin](https://github.com/pkit)).
* Habilitadas as opções de compilação do clang `-fstrict-vtable-pointers`, `-fwhole-program-vtables`. [#20151](https://github.com/ClickHouse/ClickHouse/pull/20151) ([Maksim Kita](https://github.com/kitaisreal)).
* Evitado o download de tarballs da toolchain para compilação cruzada para FreeBSD. [#31672](https://github.com/ClickHouse/ClickHouse/pull/31672) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Suporte inicial a risc-v. Veja development/build-cross-riscv para detalhes específicos e o comando de build que foi testado. [#31309](https://github.com/ClickHouse/ClickHouse/pull/31309) ([Vladimir Smirnov](https://github.com/Civil)).
* Suporte à compilação em máquina arm com o parâmetro "-DENABLE\_TESTS=OFF". [#31007](https://github.com/ClickHouse/ClickHouse/pull/31007) ([zhanghuajie](https://github.com/zhanghuajieHIT)).

<div id="clickhouse-release-v2111-2021-11-09">
  ### Lançamento do ClickHouse v21.11, de 2021-11-09. [Apresentação](https://presentations.clickhouse.com/2021-release-21.11/), [Vídeo](https://www.youtube.com/watch?v=xb64zoPYvqQ)
</div>

<Frame>
  <iframe src="https://www.youtube.com/embed/xb64zoPYvqQ" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</Frame>

<div id="backward-incompatible-change">
  #### Alteração incompatível com versões anteriores
</div>

* Altera a ordem dos argumentos `json_path` e `json` nas funções SQL/JSON (para ficar consistente com o padrão). Fecha [#30449](https://github.com/ClickHouse/ClickHouse/issues/30449). [#30474](https://github.com/ClickHouse/ClickHouse/pull/30474) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Remove a configuração de tabela `write_final_mark` do `MergeTree`. Ela passará a ser sempre `true`. [#30455](https://github.com/ClickHouse/ClickHouse/pull/30455) ([Kseniia Sumarokova](https://github.com/kssenii)). Nenhuma ação é necessária; todas as tabelas são compatíveis com a nova versão.
* A função `bayesAB` foi removida. Ajude a trazer essa função de volta, atualizada. Isso fecha [#26233](https://github.com/ClickHouse/ClickHouse/issues/26233). [#29934](https://github.com/ClickHouse/ClickHouse/pull/29934) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Isso é relevante apenas se você já começou a usar o suporte experimental ao `clickhouse-keeper`. Agora, os snapshots do ClickHouse Keeper são compactados com o codec `ZSTD` por padrão, em vez da compactação de bloco LZ4 personalizada do ClickHouse. Esse comportamento pode ser desativado com a configuração de coordination `compress_snapshots_with_zstd_format` (deve ser igual em todas as réplicas do quorum). Essa incompatibilidade com versões anteriores é bastante rara e só pode ocorrer quando um nó novo envia um snapshot (o que acontece em caso de recuperação) para um nó antigo, que não consegue ler snapshots no formato ZSTD. [#29417](https://github.com/ClickHouse/ClickHouse/pull/29417) ([alesapin](https://github.com/alesapin)).

<div id="new-feature">
  #### Novo recurso
</div>

* O novo modo de `INSERT` assíncrono permite acumular os dados inseridos e armazená-los em um único lote em segundo plano. No cliente, ele pode ser habilitado definindo `async_insert` para consultas `INSERT` com dados embutidos na consulta ou em um buffer separado (por exemplo, para consultas `INSERT` via protocolo HTTP). Se `wait_for_async_insert` for verdadeiro (padrão), o cliente aguardará até que os dados sejam gravados na tabela. No servidor, isso é controlado pelas configurações `async_insert_threads`, `async_insert_max_data_size` e `async_insert_busy_timeout_ms`. Implementa [#18282](https://github.com/ClickHouse/ClickHouse/issues/18282). [#27537](https://github.com/ClickHouse/ClickHouse/pull/27537) ([Anton Popov](https://github.com/CurtizJ)). [#20557](https://github.com/ClickHouse/ClickHouse/pull/20557) ([Ivan](https://github.com/abyss7)). Observações sobre desempenho: com inserções assíncronas, é possível fazer até cerca de 10 000 consultas `INSERT` individuais por segundo, portanto ainda é recomendável inserir em lotes se você quiser atingir um desempenho de até milhões de linhas inseridas por segundo.
* Adicionado o modo interativo ao `clickhouse-local`. Assim, você pode simplesmente executar `clickhouse-local` para obter uma interface de linha de comando do ClickHouse sem se conectar a um servidor e processar dados de arquivos e fontes de dados externas. O código de `clickhouse-client` e `clickhouse-local` também foi unificado. Fecha [#7203](https://github.com/ClickHouse/ClickHouse/issues/7203). Fecha [#25516](https://github.com/ClickHouse/ClickHouse/issues/25516). Fecha [#22401](https://github.com/ClickHouse/ClickHouse/issues/22401). [#26231](https://github.com/ClickHouse/ClickHouse/pull/26231) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adicionado suporte a funções definidas pelo usuário executáveis (scriptáveis). Ou seja, UDFs que podem ser escritas em qualquer linguagem de programação. [#28803](https://github.com/ClickHouse/ClickHouse/pull/28803) ([Maksim Kita](https://github.com/kitaisreal)).
* Permitir conexões predefinidas com fontes de dados externas. Isso evita a necessidade de especificar credenciais ou endereços ao usar fontes de dados externas, que podem ser referenciadas pelos nomes. Fecha [#28367](https://github.com/ClickHouse/ClickHouse/issues/28367). [#28577](https://github.com/ClickHouse/ClickHouse/pull/28577) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adicionado o banco de dados `INFORMATION_SCHEMA`, com as views `SCHEMATA`, `TABLES`, `VIEWS` e `COLUMNS`, correspondentes às tabelas no banco de dados `system`. Fecha [#9770](https://github.com/ClickHouse/ClickHouse/issues/9770). [#28691](https://github.com/ClickHouse/ClickHouse/pull/28691) ([tavplubix](https://github.com/tavplubix)).
* Suporte para `EXISTS (subquery)`. Fecha [#6852](https://github.com/ClickHouse/ClickHouse/issues/6852). [#29731](https://github.com/ClickHouse/ClickHouse/pull/29731) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Registro de sessões para auditoria. Registro de todos os eventos de login e logout, bem-sucedidos ou com falha, em uma nova tabela `system.session_log`. [#22415](https://github.com/ClickHouse/ClickHouse/pull/22415) ([Vasily Nemkov](https://github.com/Enmk)) ([Vitaly Baranov](https://github.com/vitlibar)).
* Suporte a funções multidimensionais de distância de cosseno e distância euclidiana; distâncias e normas L1, L2, Lp e Linf. Produto escalar em tuplas e vários operadores aritméticos em tuplas. Isso resolve completamente [#4509](https://github.com/ClickHouse/ClickHouse/issues/4509) e muito mais. [#27933](https://github.com/ClickHouse/ClickHouse/pull/27933) ([Alexey Boykov](https://github.com/mathalex)).
* Adicionado suporte a compressão e descompressão para `INTO OUTFILE` e `FROM INFILE` (com detecção automática ou com um parâmetro opcional adicional). [#27135](https://github.com/ClickHouse/ClickHouse/pull/27135) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Adiciona suporte a CORS (Cross Origin Resource Sharing) com requisições HTTP `OPTIONS`. Isso significa que, agora, o Grafana funcionará com requisições serverless sem gambiarras. Fecha [#18693](https://github.com/ClickHouse/ClickHouse/issues/18693). [#29155](https://github.com/ClickHouse/ClickHouse/pull/29155) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Consultas com JOIN ON agora oferecem suporte a disjunções (OR). [#21320](https://github.com/ClickHouse/ClickHouse/pull/21320) ([Ilya Golshtein](https://github.com/ilejn)).
* Adicionada a função `tokens`. Ela permite dividir uma string em tokens usando caracteres ASCII não alfanuméricos como separadores. [#29981](https://github.com/ClickHouse/ClickHouse/pull/29981) ([Maksim Kita](https://github.com/kitaisreal)). Adicionada a função `ngrams` para extrair ngrams de um texto. Fecha [#29699](https://github.com/ClickHouse/ClickHouse/issues/29699). [#29738](https://github.com/ClickHouse/ClickHouse/pull/29738) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionadas funções de normalização Unicode: `normalizeUTF8NFC`, `normalizeUTF8NFD`, `normalizeUTF8NFKC`, `normalizeUTF8NFKD`. [#28633](https://github.com/ClickHouse/ClickHouse/pull/28633) ([darkkeks](https://github.com/darkkeks)).
* Consumo em streaming de arquivos de log de aplicações no ClickHouse com o mecanismo de tabela `FileLog`. É como o mecanismo `Kafka` ou `RabbitMQ`, mas para logs apenas com acréscimo e rotacionados no sistema de arquivos local. Fecha [#6953](https://github.com/ClickHouse/ClickHouse/issues/6953). [#25969](https://github.com/ClickHouse/ClickHouse/pull/25969) ([flynn](https://github.com/ucasfl)) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adicionado o formato de saída `CapnProto`, refatorado o formato de entrada `CapnProto`. [#29291](https://github.com/ClickHouse/ClickHouse/pull/29291) ([Kruglov Pavel](https://github.com/Avogar)).
* Permite escrever números em consultas como literais binários. Exemplo: `SELECT 0b001;`. [#29304](https://github.com/ClickHouse/ClickHouse/pull/29304) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionado o tipo de dicionário `hashed_array`. Ele economiza memória ao usar dicionários com vários atributos. Fecha [#30236](https://github.com/ClickHouse/ClickHouse/issues/30236). [#30242](https://github.com/ClickHouse/ClickHouse/pull/30242) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionada a função `JSONExtractKeys`. [#30056](https://github.com/ClickHouse/ClickHouse/pull/30056) ([Vitaly](https://github.com/orloffv)).
* Adicionada a função `getOSKernelVersion` — ela retorna uma string com a versão do kernel do sistema operacional. [#29755](https://github.com/ClickHouse/ClickHouse/pull/29755) ([Memo](https://github.com/Joeywzr)).
* Adicionadas as funções `MD4` e `SHA384`. O MD4 é uma função de hash obsoleta e insegura; só pode ser usado em casos raros, quando o MD4 já é usado em algum sistema legado e você precisa obter exatamente o mesmo resultado. [#29602](https://github.com/ClickHouse/ClickHouse/pull/29602) ([Nikita Tikhomirov](https://github.com/NSTikhomirov)).
* O HSTS pode ser ativado no servidor HTTP do ClickHouse definindo `hsts_max_age` no arquivo de configuração com um valor positivo. [#29516](https://github.com/ClickHouse/ClickHouse/pull/29516) ([凌涛](https://github.com/lingtaolf)).
* Suporte ao armazenamento OBS da Huawei. Fecha [#24294](https://github.com/ClickHouse/ClickHouse/issues/24294). [#29511](https://github.com/ClickHouse/ClickHouse/pull/29511) ([kevin wan](https://github.com/MaxWk)).
* Nova função `mapContainsKeyLike` para retornar o map cuja chave corresponde a uma expressão regular simples. [#29471](https://github.com/ClickHouse/ClickHouse/pull/29471) ([凌涛](https://github.com/lingtaolf)). Nova função `mapExtractKeyLike` para retornar o map mantendo apenas os elementos que correspondem ao padrão especificado. [#30793](https://github.com/ClickHouse/ClickHouse/pull/30793) ([凌涛](https://github.com/lingtaolf)).
* Adicionado `ALTER TABLE x MODIFY COMMENT`. [#29264](https://github.com/ClickHouse/ClickHouse/pull/29264) ([Vasily Nemkov](https://github.com/Enmk)).
* Adiciona funções de inspeção de H3 que não estão disponíveis no ClickHouse, mas podem ser acessadas pela API do H3: [https://h3geo.org/docs/api/inspection](https://h3geo.org/docs/api/inspection). [#29209](https://github.com/ClickHouse/ClickHouse/pull/29209) ([Bharat Nallan](https://github.com/bharatnc)).
* Permite operações ALTER TABLE FETCH e ATTACH não replicadas em bancos de dados Replicated. [#29202](https://github.com/ClickHouse/ClickHouse/pull/29202) ([Kevin Michel](https://github.com/kmichel-aiven)).
* Adicionada a configuração `output_format_csv_null_representation`: é a mesma que `output_format_tsv_null_representation`, mas para a saída em CSV. [#29123](https://github.com/ClickHouse/ClickHouse/pull/29123) ([PHO](https://github.com/depressed-pho)).
* Adicionada a função `zookeeperSessionUptime()`, que retorna o tempo de atividade da sessão atual do ZooKeeper em segundos. [#28983](https://github.com/ClickHouse/ClickHouse/pull/28983) ([tavplubix](https://github.com/tavplubix)).
* Implementa a função `h3ToGeoBoundary`. [#28952](https://github.com/ClickHouse/ClickHouse/pull/28952) ([Ivan Veselov](https://github.com/fuzzERot)).
* Adiciona a função de agregação `exponentialMovingAverage`, que pode ser usada como função de janela. Isso fecha [#27511](https://github.com/ClickHouse/ClickHouse/issues/27511). [#28914](https://github.com/ClickHouse/ClickHouse/pull/28914) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Permite incluir subcolunas das colunas da tabela no resultado da consulta `DESCRIBE` (pode ser habilitado pela configuração `describe_include_subcolumns`). [#28905](https://github.com/ClickHouse/ClickHouse/pull/28905) ([Anton Popov](https://github.com/CurtizJ)).
* `Executable`, `ExecutablePool` adicionaram a opção `send_chunk_header`. Se essa opção for verdadeira, a contagem de linhas do fragmento rows\_count, seguida de uma quebra de linha, será enviada ao cliente antes do fragmento. [#28833](https://github.com/ClickHouse/ClickHouse/pull/28833) ([Maksim Kita](https://github.com/kitaisreal)).
* `tokenbf_v1` e `ngram` oferecem suporte a Map com chave String do tipo FixedSring. Isso melhora o skipping de dados em consultas com filtro pela chave do map. `sql CREATE TABLE map_tokenbf ( row_id UInt32, map Map(String, String), INDEX map_tokenbf map TYPE ngrambf_v1(4,256,2,0) GRANULARITY 1 ) Engine=MergeTree() Order by id ` Com a tabela acima, a consulta `select * from map_tokebf where map['K']='V'` ignorará o grânulo que não contém a chave `A` . Claro que quantas linhas serão ignoradas depende da `granularity` e da `index_granularity` que você definir. [#28511](https://github.com/ClickHouse/ClickHouse/pull/28511) ([凌涛](https://github.com/lingtaolf)).
* Envia eventos de perfil do servidor para o cliente. Foi adicionado um novo tipo de pacote, `ProfileEvents`. Fecha [#26177](https://github.com/ClickHouse/ClickHouse/issues/26177). [#28364](https://github.com/ClickHouse/ClickHouse/pull/28364) ([Dmitry Novik](https://github.com/novikd)).
* Operações de deslocamento de bits para os tipos de dados `FixedString` e `String`. Isso fecha [#27763](https://github.com/ClickHouse/ClickHouse/issues/27763). [#28325](https://github.com/ClickHouse/ClickHouse/pull/28325) ([小路](https://github.com/nicelulu)).
* Suporte à adição/exclusão dinâmica de tabelas da replicação do PostgreSQL no database engine MaterializedPostgreSQL. Suporte a ALTER para configurações do banco de dados. Fecha [#27573](https://github.com/ClickHouse/ClickHouse/issues/27573). [#28301](https://github.com/ClickHouse/ClickHouse/pull/28301) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adicionada a função accurateCastOrDefault(x, T). Fecha [#21330](https://github.com/ClickHouse/ClickHouse/issues/21330). Autores: @taiyang-li. [#23028](https://github.com/ClickHouse/ClickHouse/pull/23028) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionar as funções `toUUIDOrDefault`, `toUInt8/16/32/64/256OrDefault`, `toInt8/16/32/64/128/256OrDefault`, que permitem ao usuário definir um valor padrão (não nulo) quando o parsing da string falhar. [#21330](https://github.com/ClickHouse/ClickHouse/pull/21330) ([taiyang-li](https://github.com/taiyang-li)).

<div id="performance-improvement-1">
  #### Melhorias de desempenho
</div>

* Merges em segundo plano podem ser preemptados uns pelos outros e são programados com prioridades apropriadas. Agora, merges de longa duração não impedirão que merges curtos prossigam. Isso é necessário para melhorar o agendamento e o controle da execução dos merges. Isso reduz as chances de ocorrer o erro "too many parts". [#22381](https://github.com/ClickHouse/ClickHouse/issues/22381). [#25165](https://github.com/ClickHouse/ClickHouse/pull/25165) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). Foi adicionada a possibilidade de executar mais merges e mutações do que o número de threads no background pool. Merges e mutações serão executados passo a passo de acordo com seus tamanhos (quanto menor, maior a prioridade). A proporção entre o número de tarefas e threads a serem executadas é controlada pela configuração `background_merges_mutations_concurrency_ratio`, 2 por padrão. [#29140](https://github.com/ClickHouse/ClickHouse/pull/29140) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Permite usar leituras assíncronas em filesystems remotos. Reduz o número de seeks durante a leitura em filesystems remotos. Isso melhora muito o desempenho e faz com que os discos experimentais `web` e `s3` funcionem mais rápido que o EBS em determinadas condições. [#29205](https://github.com/ClickHouse/ClickHouse/pull/29205) ([Kseniia Sumarokova](https://github.com/kssenii)). Enquanto isso, o tipo de disco `web` (dataset estático hospedado em um servidor web) deixa de ser experimental e passa a ser considerado pronto para produção.
* Consultas com `INTO OUTFILE` no `clickhouse-client` usarão várias threads. Corrigido o problema de oscilação da barra de progresso ao usar `INTO OUTFILE`. Isto fecha [#30873](https://github.com/ClickHouse/ClickHouse/issues/30873). Isto fecha [#30872](https://github.com/ClickHouse/ClickHouse/issues/30872). [#30886](https://github.com/ClickHouse/ClickHouse/pull/30886) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Reduz a quantidade de dados compactados redundantes lidos do disco em alguns tipos de consultas `SELECT` (apenas para a família de motores `MergeTree`). [#30111](https://github.com/ClickHouse/ClickHouse/pull/30111) ([alesapin](https://github.com/alesapin)).
* Removidas algumas chamadas redundantes de `seek` durante a leitura de blocos compactados na família de motores de tabela MergeTree. [#29766](https://github.com/ClickHouse/ClickHouse/pull/29766) ([alesapin](https://github.com/alesapin)).
* Permite que a função de tabela `url` processe várias URLs em paralelo. Isso corrige [#29670](https://github.com/ClickHouse/ClickHouse/issues/29670) e [#29671](https://github.com/ClickHouse/ClickHouse/issues/29671). [#29673](https://github.com/ClickHouse/ClickHouse/pull/29673) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Melhora o desempenho da agregação seguindo a ordem da chave primária (com a configuração `optimize_aggregation_in_order` habilitada). [#30266](https://github.com/ClickHouse/ClickHouse/pull/30266) ([Anton Popov](https://github.com/CurtizJ)).
* Agora, o ClickHouse usa cache de DNS ao se comunicar com o S3 externo. [#29999](https://github.com/ClickHouse/ClickHouse/pull/29999) ([alesapin](https://github.com/alesapin)).
* Adiciona suporte ao pushdown de `IS NULL`/`IS NOT NULL` para bancos de dados externos (por exemplo, MySQL). [#29463](https://github.com/ClickHouse/ClickHouse/pull/29463) ([Azat Khuzhin](https://github.com/azat)). Converte `isNull`/`isNotNull` em `IS NULL`/`IS NOT NULL` (para DBs externos, por exemplo, MySQL). [#29446](https://github.com/ClickHouse/ClickHouse/pull/29446) ([Azat Khuzhin](https://github.com/azat)).
* Consultas SELECT em tabelas de Dicionário usarão várias threads. [#30500](https://github.com/ClickHouse/ClickHouse/pull/30500) ([Maksim Kita](https://github.com/kitaisreal)).
* Melhora o desempenho da filtragem (operação `WHERE`) em colunas `Decimal`. [#30431](https://github.com/ClickHouse/ClickHouse/pull/30431) ([Jun Jin](https://github.com/vesslanjin)).
* Removido o código com muitos desvios condicionais na operação de filtro, substituindo-o por uma implementação melhor com `popcnt`/`ctz`, que oferece melhor desempenho. [#29881](https://github.com/ClickHouse/ClickHouse/pull/29881) ([Jun Jin](https://github.com/vesslanjin)).
* Aprimora a função tudo em um do gerador de máscara de bytes do filtro (usado pelo operador WHERE) com instruções SSE/AVX2/AVX512. Observe que, por padrão, o ClickHouse usa apenas SSE, portanto isso só é relevante para builds personalizadas. [#30014](https://github.com/ClickHouse/ClickHouse/pull/30014) ([jasperzhu](https://github.com/jinjunzh)). [#30670](https://github.com/ClickHouse/ClickHouse/pull/30670) ([jasperzhu](https://github.com/jinjunzh)).
* Melhora o desempenho da função de agregação `SUM` para números de ponto flutuante Nullable. [#28906](https://github.com/ClickHouse/ClickHouse/pull/28906) ([Raúl Marín](https://github.com/Algunenano)).
* Acelera o processo de carregamento de partes quando há vários discos em uso. A ideia é semelhante à de [https://github.com/ClickHouse/ClickHouse/pull/16423](https://github.com/ClickHouse/ClickHouse/pull/16423) . Em produção, houve melhora: 24 min -> 16 min . [#28363](https://github.com/ClickHouse/ClickHouse/pull/28363) ([Amos Bird](https://github.com/amosbird)).
* Reduzir o tamanho padrão das partes de upload multipart no S3 para diminuir o uso de memória. [#28679](https://github.com/ClickHouse/ClickHouse/pull/28679) ([ianton-ru](https://github.com/ianton-ru)).
* Melhora o desempenho da função `bitmapAnd`. [#28332](https://github.com/ClickHouse/ClickHouse/pull/28332) ([dddounaiking](https://github.com/OodounaikingoO)).
* Removidas notificações inadequadas de mutações no `StorageMergeTree` quando os merges ainda estão em andamento. [#27552](https://github.com/ClickHouse/ClickHouse/pull/27552) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Tentativa de melhorar o desempenho na comparação de strings. [#28767](https://github.com/ClickHouse/ClickHouse/pull/28767) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* O índice de chave primária e o filtro de partição podem funcionar com tuplas. [#29281](https://github.com/ClickHouse/ClickHouse/pull/29281) ([凌涛](https://github.com/lingtaolf)).
* Se uma consulta tiver várias funções de agregação quantile com os mesmos argumentos, mas com parâmetros de nível diferentes, elas serão combinadas e executadas em uma única passagem se a configuração `optimize_syntax_fuse_functions` estiver habilitada. [#26657](https://github.com/ClickHouse/ClickHouse/pull/26657) ([hexiaoting](https://github.com/hexiaoting)).
* Agora, a agregação min-max na primeira expressão da chave primária é otimizada usando projeção. Relacionado a [#329](https://github.com/ClickHouse/ClickHouse/issues/329). [#29918](https://github.com/ClickHouse/ClickHouse/pull/29918) ([Amos Bird](https://github.com/amosbird)).

<div id="experimental-feature">
  #### Recurso experimental
</div>

* Adicionada a capacidade de alterar a configuração dos nós (no arquivo `.xml`) do ClickHouse Keeper. [#30372](https://github.com/ClickHouse/ClickHouse/pull/30372) ([alesapin](https://github.com/alesapin)).
* Adicionada a função de agregação `sparkbar`. Isso fecha [#26175](https://github.com/ClickHouse/ClickHouse/issues/26175). [#27481](https://github.com/ClickHouse/ClickHouse/pull/27481) ([小路](https://github.com/nicelulu)). Observação: há uma falha nessa função; o comportamento será alterado em versões futuras.

<div id="improvement">
  #### Melhoria
</div>

* Permite que o usuário altere os níveis de log sem reiniciar. [#29586](https://github.com/ClickHouse/ClickHouse/pull/29586) ([Nikolay Degterinsky](https://github.com/evillique)).
* Várias melhorias para UDFs SQL. As consultas para manipulação de funções SQL definidas pelo usuário agora são compatíveis com a cláusula ON CLUSTER. Exemplo `CREATE FUNCTION test_function ON CLUSTER 'cluster' AS x -> x + 1;`. Fecha [#30666](https://github.com/ClickHouse/ClickHouse/issues/30666). [#30734](https://github.com/ClickHouse/ClickHouse/pull/30734) ([Maksim Kita](https://github.com/kitaisreal)). Suporte às sintaxes `CREATE OR REPLACE` e `CREATE IF NOT EXISTS`. [#30454](https://github.com/ClickHouse/ClickHouse/pull/30454) ([Maksim Kita](https://github.com/kitaisreal)). Adicionado suporte a `DROP IF EXISTS`. Exemplo `DROP FUNCTION IF EXISTS test_function`. [#30437](https://github.com/ClickHouse/ClickHouse/pull/30437) ([Maksim Kita](https://github.com/kitaisreal)). Suporte a lambdas. Exemplo `CREATE FUNCTION lambda_function AS x -> arrayMap(element -> element * 2, x);`. [#30435](https://github.com/ClickHouse/ClickHouse/pull/30435) ([Maksim Kita](https://github.com/kitaisreal)). Suporte a funções SQL definidas pelo usuário no `clickhouse-local`. [#30179](https://github.com/ClickHouse/ClickHouse/pull/30179) ([Maksim Kita](https://github.com/kitaisreal)).
* Habilitado globalmente o profiler de memória por consulta (com `memory_profiler_step` = 4MiB). [#29455](https://github.com/ClickHouse/ClickHouse/pull/29455) ([Azat Khuzhin](https://github.com/azat)).
* Foram adicionadas as colunas `data_compressed_bytes`, `data_uncompressed_bytes`, `marks_bytes` a `system.data_skipping_indices`. Foram adicionadas as colunas `secondary_indices_compressed_bytes`, `secondary_indices_uncompressed_bytes`, `secondary_indices_marks_bytes` a `system.parts`. Fecha [#29697](https://github.com/ClickHouse/ClickHouse/issues/29697). [#29896](https://github.com/ClickHouse/ClickHouse/pull/29896) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionar o alias `table` a system.tables e o alias `database` a system.databases [#29677](https://github.com/ClickHouse/ClickHouse/issues/29677). [#29882](https://github.com/ClickHouse/ClickHouse/pull/29882) ([kevin wan](https://github.com/MaxWk)).
* Resolve corretamente as interdependências entre tabelas ao iniciar o servidor. Fecha [#8004](https://github.com/ClickHouse/ClickHouse/issues/8004), fecha [#15170](https://github.com/ClickHouse/ClickHouse/issues/15170). [#28373](https://github.com/ClickHouse/ClickHouse/pull/28373) ([tavplubix](https://github.com/tavplubix)).
* Evita o erro "Division by zero" quando o denominador é Nullable nas funções `divide`, `intDiv` e `modulo`. Fecha [#22621](https://github.com/ClickHouse/ClickHouse/issues/22621). [#28352](https://github.com/ClickHouse/ClickHouse/pull/28352) ([Kruglov Pavel](https://github.com/Avogar)).
* Permite interpretar valores do tipo de dado `Date` em formatos de texto como `YYYYMMDD`, além de `YYYY-MM-DD`. Isso fecha [#30870](https://github.com/ClickHouse/ClickHouse/issues/30870). [#30871](https://github.com/ClickHouse/ClickHouse/pull/30871) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* UI da Web: exibir barras nas células da tabela. [#29792](https://github.com/ClickHouse/ClickHouse/pull/29792) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Agora os usuários podem criar dicionários com comentários: `CREATE DICTIONARY ... COMMENT 'vaue'` ... [#29899](https://github.com/ClickHouse/ClickHouse/pull/29899) ([Vasily Nemkov](https://github.com/Enmk)). Os usuários agora podem definir comentários em bancos de dados na instrução `CREATE DATABASE` ... [#29429](https://github.com/ClickHouse/ClickHouse/pull/29429) ([Vasily Nemkov](https://github.com/Enmk)).
* Adiciona a configuração `compiled_expression_cache_elements_size`. Se algum dia você quiser usar essa configuração, já vai saber o que ela faz. [#30667](https://github.com/ClickHouse/ClickHouse/pull/30667) ([Maksim Kita](https://github.com/kitaisreal)).
* clickhouse-format agora oferece suporte à opção `--query`. Nas versões anteriores, era preciso passar a consulta via stdin. [#29325](https://github.com/ClickHouse/ClickHouse/pull/29325) ([凌涛](https://github.com/lingtaolf)).
* Suporte a `ALTER TABLE` para tabelas em bancos de dados `Memory`. Bancos de dados `Memory` são usados no `clickhouse-local`. [#30866](https://github.com/ClickHouse/ClickHouse/pull/30866) ([tavplubix](https://github.com/tavplubix)).
* Arrays de todos os tipos serializáveis agora são suportados por `arrayStringConcat`. [#30840](https://github.com/ClickHouse/ClickHouse/pull/30840) ([Nickita Taranov](https://github.com/nickitat)).
* O ClickHouse agora passará a considerar as limitações de Docker/cgroups para determinar a quantidade de memória do sistema. Veja [#25662](https://github.com/ClickHouse/ClickHouse/issues/25662). [#30574](https://github.com/ClickHouse/ClickHouse/pull/30574) ([Pavel Medvedev](https://github.com/pmed)).
* A estrutura da tabela obtida do banco de dados PostgreSQL agora é mais confiável. [#30477](https://github.com/ClickHouse/ClickHouse/pull/30477) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Suporte completo a argumentos posicionais em GROUP BY e ORDER BY. [#30433](https://github.com/ClickHouse/ClickHouse/pull/30433) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Permite extrair como string um elemento que não é do tipo string usando JSONExtractString. Isto é para [pull/25452#issuecomment-927123287](https://github.com/ClickHouse/ClickHouse/pull/25452#issuecomment-927123287). [#30426](https://github.com/ClickHouse/ClickHouse/pull/30426) ([Amos Bird](https://github.com/amosbird)).
* Adicionada a possibilidade de usar a cláusula FINAL em consultas SELECT no `GraphiteMergeTree`. [#30360](https://github.com/ClickHouse/ClickHouse/pull/30360) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Pequenas melhorias na clonagem de réplicas e no enfileiramento da busca de partes corrompidas, que devem evitar casos extremamente raros de travamento de entradas `GET_PART` na fila de replicação. [#30346](https://github.com/ClickHouse/ClickHouse/pull/30346) ([tavplubix](https://github.com/tavplubix)).
* Permitir links simbólicos para arquivos no diretório `user_files` na função de tabela file. [#30309](https://github.com/ClickHouse/ClickHouse/pull/30309) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigida a comparação entre `Date32` e `Date`, `DateTime`, `DateTime64` e `String`. [#30219](https://github.com/ClickHouse/ClickHouse/pull/30219) ([liang.huang](https://github.com/lhuang09287750)).
* Agora é possível remover a expressão `SAMPLE BY` de tabelas `MergeTree` (`ALTER TABLE <table> REMOVE SAMPLE BY`). [#30180](https://github.com/ClickHouse/ClickHouse/pull/30180) ([Anton Popov](https://github.com/CurtizJ)).
* Agora, o `Keeper` (como parte do `clickhouse-server`) será iniciado de forma assíncrona se conseguir se conectar a algum outro nó. [#30170](https://github.com/ClickHouse/ClickHouse/pull/30170) ([alesapin](https://github.com/alesapin)).
* Agora, o `clickhouse-client` oferece suporte nativo à edição em várias linhas. [#30143](https://github.com/ClickHouse/ClickHouse/pull/30143) ([Amos Bird](https://github.com/amosbird)).
* dicionários `polygon` (geocodificação reversa): adicionado suporte à leitura do conteúdo do dicionário com o método de consulta SELECT se a configuração `store_polygon_key_column` = true. Fecha [#30090](https://github.com/ClickHouse/ClickHouse/issues/30090). [#30142](https://github.com/ClickHouse/ClickHouse/pull/30142) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionar o logotipo do ClickHouse à UI Play. [#29674](https://github.com/ClickHouse/ClickHouse/pull/29674) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Mensagem de exceção mais clara ao ler uma coluna de formatos compatíveis com Arrow, como `Arrow`, `ArrowStream`, `Parquet` e `ORC`. Isso fecha [#29926](https://github.com/ClickHouse/ClickHouse/issues/29926). [#29927](https://github.com/ClickHouse/ClickHouse/pull/29927) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrigida uma condição de corrida entre o flush e a inicialização nas tabelas `Buffer`. Isso pode ocorrer nos testes. [#29930](https://github.com/ClickHouse/ClickHouse/pull/29930) ([Azat Khuzhin](https://github.com/azat)).
* Corrige a inversão da ordem de bloqueio (`lock-order-inversion`) entre `DROP TABLE` para `DatabaseMemory` e `LiveView`. A visualização em tempo real é um recurso experimental. O banco de dados Memory é usado no clickhouse-local. [#29929](https://github.com/ClickHouse/ClickHouse/pull/29929) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida a inversão na ordem de bloqueio entre a recarga periódica do dicionário e a recarga da configuração. [#29928](https://github.com/ClickHouse/ClickHouse/pull/29928) ([Azat Khuzhin](https://github.com/azat)).
* Atualizados os arquivos zoneinfo para 2021c. [#29925](https://github.com/ClickHouse/ClickHouse/pull/29925) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Adicionada a possibilidade de configurar retentativas e os atrasos entre elas para `clickhouse-copier`. [#29921](https://github.com/ClickHouse/ClickHouse/pull/29921) ([Azat Khuzhin](https://github.com/azat)).
* Adicionada a configuração do servidor `shutdown_wait_unfinished_queries` para permitir aguardar consultas em execução por até o tempo definido em `shutdown_wait_unfinished`. Isso é para [#24451](https://github.com/ClickHouse/ClickHouse/issues/24451). [#29914](https://github.com/ClickHouse/ClickHouse/pull/29914) ([Amos Bird](https://github.com/amosbird)).
* Adicionada a capacidade de rastrear o pico de uso de memória (com o novo trace\_type em `system.trace_log` - `MemoryPeak`). [#29858](https://github.com/ClickHouse/ClickHouse/pull/29858) ([Azat Khuzhin](https://github.com/azat)).
* Tabelas estrangeiras do PostgreSQL: adicionado o prefixo de tabela particionada 'p' à consulta para obter o índice de replica identity. [#29828](https://github.com/ClickHouse/ClickHouse/pull/29828) ([Shoh Jahon](https://github.com/Shohjahon)).
* Aplique `max_untracked_memory`/`memory_profiler_step`/`memory_profiler_sample_probability` durante mutate/merge para gerar o perfil de uso de memória durante as mesclagens. [#29681](https://github.com/ClickHouse/ClickHouse/pull/29681) ([Azat Khuzhin](https://github.com/azat)).
* Ofuscador de consultas: `clickhouse-format --obfuscate` agora funciona com mais tipos de consultas. [#29672](https://github.com/ClickHouse/ClickHouse/pull/29672) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrigido o problema em que `clickhouse-format --obfuscate` não conseguia processar consultas com Embedded Dictionaries (funções `regionTo...`). [#29667](https://github.com/ClickHouse/ClickHouse/pull/29667) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige o tratamento incorreto de Nullable nas funções JSON. Isso corrige [#29615](https://github.com/ClickHouse/ClickHouse/issues/29615). Marcar como melhoria porque [https://github.com/ClickHouse/ClickHouse/pull/28012](https://github.com/ClickHouse/ClickHouse/pull/28012) ainda não foi lançado. [#29659](https://github.com/ClickHouse/ClickHouse/pull/29659) ([Amos Bird](https://github.com/amosbird)).
* Aumento de `listen_backlog` por padrão (para corresponder ao valor padrão nas versões mais recentes do kernel Linux). [#29643](https://github.com/ClickHouse/ClickHouse/pull/29643) ([Azat Khuzhin](https://github.com/azat)).
* Recarrega dicionários, modelos e funções executáveis definidas pelo usuário caso a configuração do servidor `dictionaries_config`, `models_config`, `user_defined_executable_functions_config` seja alterada. Fecha [#28142](https://github.com/ClickHouse/ClickHouse/issues/28142). [#29529](https://github.com/ClickHouse/ClickHouse/pull/29529) ([Maksim Kita](https://github.com/kitaisreal)).
* Removida a restrição desnecessária sobre o nome da projeção. Agora, o nome da projeção pode começar com `tmp_`. [#29520](https://github.com/ClickHouse/ClickHouse/pull/29520) ([Amos Bird](https://github.com/amosbird)).
* Corrigido o erro `There is no query or query context has expired` em mutações com subconsultas aninhadas. Não são permitidas subconsultas em mutações se a tabela for replicada e a configuração `allow_nondeterministic_mutations` estiver desabilitada. [#29495](https://github.com/ClickHouse/ClickHouse/pull/29495) ([tavplubix](https://github.com/tavplubix)).
* Aplique alterações de configuração em `max_concurrent_queries` em tempo de execução (sem necessidade de reiniciar). [#29414](https://github.com/ClickHouse/ClickHouse/pull/29414) ([Raúl Marín](https://github.com/Algunenano)).
* Adicionada a configuração `use_skip_indexes`. [#29405](https://github.com/ClickHouse/ClickHouse/pull/29405) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionado suporte para aplicar `FREEZE` a partes em memória (para backups). [#29376](https://github.com/ClickHouse/ClickHouse/pull/29376) ([Mo Xuan](https://github.com/mo-avatar)).
* Encaminhar o `query&#95;id` inicial para `clickhouse-benchmark` (antes, se você executasse uma consulta remota via `clickhouse-benchmark`, as consultas nos shards não eram vinculadas à consulta inicial por meio de `initial_query_id`). [#29364](https://github.com/ClickHouse/ClickHouse/pull/29364) ([Azat Khuzhin](https://github.com/azat)).
* Índices de salto `tokenbf_v1` e `ngrambf_v1`: adicionado suporte ao tipo de dado `Array` com chave do tipo `String` ou `FixedString`. [#29280](https://github.com/ClickHouse/ClickHouse/pull/29280) ([Maksim Kita](https://github.com/kitaisreal)). Os índices de salto `tokenbf_v1` e `ngrambf_v1` passaram a oferecer suporte ao tipo de dado `Map` com chave do tipo `String` ou `FixedString`. Autor @lingtaolf. [#29220](https://github.com/ClickHouse/ClickHouse/pull/29220) ([Maksim Kita](https://github.com/kitaisreal)).
* Função `has`: foi adicionado suporte ao tipo de dado `Map`. [#29267](https://github.com/ClickHouse/ClickHouse/pull/29267) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionadas as configurações `compress_logs` para o `clickhouse-keeper`, que permitem compactar os logs do `clickhouse-keeper` (para a máquina de estados replicada) em `ZSTD`. Implementa: [#26977](https://github.com/ClickHouse/ClickHouse/issues/26977). [#29223](https://github.com/ClickHouse/ClickHouse/pull/29223) ([alesapin](https://github.com/alesapin)).
* Adiciona a configuração `external_table_strict_query` - ela forçará o envio de toda a expressão WHERE em consultas para bancos de dados externos, mesmo que seja incompatível. [#29206](https://github.com/ClickHouse/ClickHouse/pull/29206) ([Azat Khuzhin](https://github.com/azat)).
* Desative as projeções quando `ARRAY JOIN` for usado. Em versões anteriores, a análise de projeções podia quebrar aliases no array join. [#29139](https://github.com/ClickHouse/ClickHouse/pull/29139) ([Amos Bird](https://github.com/amosbird)).
* Suporte para mais tipos no formato de entrada/saída `MsgPack`. [#29077](https://github.com/ClickHouse/ClickHouse/pull/29077) ([Kruglov Pavel](https://github.com/Avogar)).
* Permite ler e gravar colunas `LowCardinality` no formato de entrada/saída `ORC`. [#29062](https://github.com/ClickHouse/ClickHouse/pull/29062) ([Kruglov Pavel](https://github.com/Avogar)).
* Consultas em `system.distributed_ddl_queue` podem mostrar valores incorretos; isso foi corrigido. [#29061](https://github.com/ClickHouse/ClickHouse/pull/29061) ([tavplubix](https://github.com/tavplubix)).
* Comportamento correto para métodos desconhecidos em conexão HTTP. Resolve [#29050](https://github.com/ClickHouse/ClickHouse/issues/29050). [#29057](https://github.com/ClickHouse/ClickHouse/pull/29057) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* `clickhouse-keeper`: Corrige um bug em `clickhouse-keeper-converter` que pode causar alguma perda de dados ao restaurar a partir dos logs do ZooKeeper (não do snapshot). [#29030](https://github.com/ClickHouse/ClickHouse/pull/29030) ([小路](https://github.com/nicelulu)). Corrige um bug em `clickhouse-keeper-converter` que pode levar à desserialização incorreta do log do ZooKeeper. [#29071](https://github.com/ClickHouse/ClickHouse/pull/29071) ([小路](https://github.com/nicelulu)).
* Aplica as configurações de consultas `CREATE ... AS SELECT` (corrige: [#28810](https://github.com/ClickHouse/ClickHouse/issues/28810)). [#28962](https://github.com/ClickHouse/ClickHouse/pull/28962) ([Azat Khuzhin](https://github.com/azat)).
* Respeito à configuração padrão do banco de dados para ALTER TABLE ... ON CLUSTER ... REPLACE/MOVE PARTITION FROM/TO ... [#28955](https://github.com/ClickHouse/ClickHouse/pull/28955) ([anneji-dev](https://github.com/anneji-dev)).
* protocolo gRPC: Permitir alterar a compressão no servidor a partir do cliente. [#28953](https://github.com/ClickHouse/ClickHouse/pull/28953) ([Vitaly Baranov](https://github.com/vitlibar)).
* Ignora a exceção "sem dados" ao ler sensores térmicos para métricas assíncronas. Fecha [#28852](https://github.com/ClickHouse/ClickHouse/issues/28852). [#28882](https://github.com/ClickHouse/ClickHouse/pull/28882) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrigida uma race condition lógica que, em casos raros, poderia causar o erro `Dictionary not found` para um dicionário existente. [#28853](https://github.com/ClickHouse/ClickHouse/pull/28853) ([tavplubix](https://github.com/tavplubix)).
* Flexibiliza a verificação de função aninhada para o combinator If (mas proíbe o aninhamento de combinators idênticos). [#28828](https://github.com/ClickHouse/ClickHouse/pull/28828) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida uma possível exceção não capturada durante o encerramento do servidor. [#28761](https://github.com/ClickHouse/ClickHouse/pull/28761) ([Azat Khuzhin](https://github.com/azat)).
* Impedir a limpeza de diretórios tmp que possam ser usados por uma mutation/merge ativa se a mutation/merge for extraordinariamente longa. [#28760](https://github.com/ClickHouse/ClickHouse/pull/28760) ([Azat Khuzhin](https://github.com/azat)).
* Permite a otimização `optimize_arithmetic_operations_in_aggregate_functions = 1` quando um alias é usado. [#28746](https://github.com/ClickHouse/ClickHouse/pull/28746) ([Amos Bird](https://github.com/amosbird)).
* Implementa a configuração `detach_not_byte_identical_parts` para `ReplicatedMergeTree`, que desanexa, em vez de remover, partes que não são idênticas byte a byte (após `merge/mutate`). [#28708](https://github.com/ClickHouse/ClickHouse/pull/28708) ([Azat Khuzhin](https://github.com/azat)).
* Implementa a configuração `max_suspicious_broken_parts_bytes` para `MergeTree` (para limitar o tamanho total de todas as partes corrompidas; o valor padrão é `1GiB`). [#28707](https://github.com/ClickHouse/ClickHouse/pull/28707) ([Azat Khuzhin](https://github.com/azat)).
* Habilitada a expansão de macros nas configurações da tabela `RabbitMQ`. [#28683](https://github.com/ClickHouse/ClickHouse/pull/28683) ([Vitaly Baranov](https://github.com/vitlibar)).
* Restaurada a possibilidade de ler dados de uma tabela com o mecanismo `Log` em múltiplas threads. [#28125](https://github.com/ClickHouse/ClickHouse/pull/28125) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige o comportamento incorreto no tratamento de colunas NULL em funções JSON. Isso corrige [#27930](https://github.com/ClickHouse/ClickHouse/issues/27930). [#28012](https://github.com/ClickHouse/ClickHouse/pull/28012) ([Amos Bird](https://github.com/amosbird)).
* Permite definir separadamente o tamanho do cache de Mark/Uncompressed para índices de salto em relação às colunas. [#27961](https://github.com/ClickHouse/ClickHouse/pull/27961) ([Amos Bird](https://github.com/amosbird)).
* Permite combinar JOIN com `USING` com outros tipos de JOIN. [#23881](https://github.com/ClickHouse/ClickHouse/pull/23881) ([darkkeks](https://github.com/darkkeks)).
* Atualizado o submódulo aws-sdk para throttling no S3 do Yandex Cloud. [#30646](https://github.com/ClickHouse/ClickHouse/pull/30646) ([ianton-ru](https://github.com/ianton-ru)).
* Corrigida a liberação do ID da consulta e do ID da sessão ao final do processamento da consulta durante o tratamento da chamada gRPC. [#29954](https://github.com/ClickHouse/ClickHouse/pull/29954) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrigido o desligamento do `AccessControlManager` para corrigir um teste instável. [#29951](https://github.com/ClickHouse/ClickHouse/pull/29951) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige a falha de asserção na leitura de `HDFS`. Atualiza a biblioteca libhdfs3 para que possa ser executada em testes no modo de depuração. Fecha [#29251](https://github.com/ClickHouse/ClickHouse/issues/29251). Fecha [#27814](https://github.com/ClickHouse/ClickHouse/issues/27814). [#29276](https://github.com/ClickHouse/ClickHouse/pull/29276) ([Kseniia Sumarokova](https://github.com/kssenii)).

<div id="buildtestingpackaging-improvement-1">
  #### Melhoria de build/testes/empacotamento
</div>

* Adicionado suporte a builds do FreeBSD para máquinas Aarch64. [#29952](https://github.com/ClickHouse/ClickHouse/pull/29952) ([MikaelUrankar](https://github.com/MikaelUrankar)).
* Submódulos recursivos não são mais necessários para o ClickHouse. [#30315](https://github.com/ClickHouse/ClickHouse/pull/30315) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* O ClickHouse agora pode ser compilado estaticamente com Musl. Isso foi adicionado como experimento e não oferece suporte à compilação de `odbc-bridge`, `library-bridge`, à integração com CatBoost nem a algumas bibliotecas. [#30248](https://github.com/ClickHouse/ClickHouse/pull/30248) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Habilitado `Protobuf`, `Arrow`, `ORC` e `Parquet` para builds `AArch64` e `Darwin` (macOS). Isso fecha [#29248](https://github.com/ClickHouse/ClickHouse/issues/29248). Isso fecha [#28018](https://github.com/ClickHouse/ClickHouse/issues/28018). [#30015](https://github.com/ClickHouse/ClickHouse/pull/30015) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Adicionada compilação cruzada para PowerPC (powerpc64le). Isso fecha [#9589](https://github.com/ClickHouse/ClickHouse/issues/9589). Habilitado o suporte à interação com MySQL para AArch64 e PowerPC. Isso fecha [#26301](https://github.com/ClickHouse/ClickHouse/issues/26301). [#30010](https://github.com/ClickHouse/ClickHouse/pull/30010) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Mantidos apenas os arquivos necessários nas toolchains de compilação cruzada. Eles foram incluídos como submódulos (antes eram baixados como tarballs). [#29974](https://github.com/ClickHouse/ClickHouse/pull/29974) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Implementada no ClickHouse uma abordagem de fuzzing com reconhecimento de estrutura para o parser da instrução SELECT. [#30012](https://github.com/ClickHouse/ClickHouse/pull/30012) ([Paul](https://github.com/PaulCher)).
* Ativado um avaliador experimental de expressões constexpr no clang para acelerar a compilação de código de template. [#29668](https://github.com/ClickHouse/ClickHouse/pull/29668) ([myrrc](https://github.com/myrrc)).
* Adicionada a capacidade de compilar usando uma versão mais recente da glibc sem usar símbolos novos. [#29594](https://github.com/ClickHouse/ClickHouse/pull/29594) ([Azat Khuzhin](https://github.com/azat)).
* Reduzido o tamanho do binário da build Debug com uma opção de otimização do clang. [#28736](https://github.com/ClickHouse/ClickHouse/pull/28736) ([flynn](https://github.com/ucasfl)).
* Agora, todas as imagens de CI serão colocadas em um repositório separado no Docker Hub. [#28656](https://github.com/ClickHouse/ClickHouse/pull/28656) ([alesapin](https://github.com/alesapin)).
* Melhorado o suporte à compilação com clang-13. [#28046](https://github.com/ClickHouse/ClickHouse/pull/28046) ([Sergei Semin](https://github.com/syominsergey)).
* Adicionada a capacidade de imprimir profile events brutos no `clickhouse-client` (isso pode ser útil para debugging e testes). [#30064](https://github.com/ClickHouse/ClickHouse/pull/30064) ([Azat Khuzhin](https://github.com/azat)).
* Adicionada uma dependência de tempo para a unidade do clickhouse-server (init do systemd e do sysvinit). [#28891](https://github.com/ClickHouse/ClickHouse/pull/28891) ([Azat Khuzhin](https://github.com/azat)).
* Recarregado o cache de stack traces quando um símbolo é recarregado. [#28137](https://github.com/ClickHouse/ClickHouse/pull/28137) ([Amos Bird](https://github.com/amosbird)).

<div id="bug-fix">
  #### Correção de bug
</div>

* Funções de busca sem distinção entre maiúsculas e minúsculas em strings UTF-8, como `positionCaseInsensitiveUTF8` e `countSubstringsCaseInsensitiveUTF8`, em casos muito raros podem encontrar substrings que na verdade não correspondem; isso foi corrigido. [#30663](https://github.com/ClickHouse/ClickHouse/pull/30663) ([tavplubix](https://github.com/tavplubix)).
* Corrige a leitura de um arquivo vazio em disco criptografado. [#30494](https://github.com/ClickHouse/ClickHouse/pull/30494) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige a conversão da cadeia de disjunções em `IN` (controlada pela configuração `optimize_min_equality_disjunction_chain_length`) em consultas distribuídas com a configuração `legacy_column_name_of_tuple_literal = 0`. [#28658](https://github.com/ClickHouse/ClickHouse/pull/28658) ([Anton Popov](https://github.com/CurtizJ)).
* Permitir o uso de uma coluna materializada como chave de sharding em uma tabela distribuída, mesmo se `insert_allow_materialized_columns=0`:. [#28637](https://github.com/ClickHouse/ClickHouse/pull/28637) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrigido `ORDER BY ... WITH FILL` com `TO` e `FROM` definidos e sem linhas no conjunto de resultados. [#30888](https://github.com/ClickHouse/ClickHouse/pull/30888) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige o não uso do índice Set em expressões AND/OR quando há mais de dois operandos. Isso corrige [#30416](https://github.com/ClickHouse/ClickHouse/issues/30416) . [#30887](https://github.com/ClickHouse/ClickHouse/pull/30887) ([Amos Bird](https://github.com/amosbird)).
* Corrige uma falha quando uma projeção com função de hash é materializada. Isso corrige [#30861](https://github.com/ClickHouse/ClickHouse/issues/30861) . O problema é semelhante a [https://github.com/ClickHouse/ClickHouse/pull/28560](https://github.com/ClickHouse/ClickHouse/pull/28560), causado pela falta de compreensão adequada do invariante de o header estar vazio. [#30877](https://github.com/ClickHouse/ClickHouse/pull/30877) ([Amos Bird](https://github.com/amosbird)).
* Corrigida a ambiguidade ao extrair o nome auxiliar do ZooKeeper do caminho do ZooKeeper em `ReplicatedMergeTree`. Antes, o servidor podia não iniciar e exibir `Unknown auxiliary ZooKeeper name` se o caminho do ZooKeeper contivesse dois-pontos. Corrige [#29052](https://github.com/ClickHouse/ClickHouse/issues/29052). Além disso, era permitido especificar um caminho do ZooKeeper que não começasse com uma barra, mas isso agora está descontinuado, e a criação de novas tabelas com esse tipo de caminho não é permitida. Barras e dois-pontos em nomes auxiliares do ZooKeeper também não são permitidos. [#30822](https://github.com/ClickHouse/ClickHouse/pull/30822) ([tavplubix](https://github.com/tavplubix)).
* Limpa o diretório temporário caso `localBackup` falhe por algum motivo. [#30797](https://github.com/ClickHouse/ClickHouse/pull/30797) ([ianton-ru](https://github.com/ianton-ru)).
* Corrigida uma race condition entre `REPLACE/MOVE PARTITION` e o merge em segundo plano em `MergeTree` não replicado, que poderia fazer com que parte dos dados movidos/substituídos permanecesse na partição. Corrige [#29327](https://github.com/ClickHouse/ClickHouse/issues/29327). [#30717](https://github.com/ClickHouse/ClickHouse/pull/30717) ([tavplubix](https://github.com/tavplubix)).
* Corrigido o uso de PREWHERE com WHERE no caso de PREWHERE sempre verdadeiro. [#30668](https://github.com/ClickHouse/ClickHouse/pull/30668) ([Azat Khuzhin](https://github.com/azat)).
* A otimização de push down do LIMIT poderia causar o erro `Cannot find column`. Corrige [#30438](https://github.com/ClickHouse/ClickHouse/issues/30438). [#30562](https://github.com/ClickHouse/ClickHouse/pull/30562) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Adiciona parênteses ausentes nas reescritas de `isNotNull`/`isNull` para `IS [NOT] NULL` (corrige consultas com algo como `isNotNull(1)+isNotNull(2)`). [#30520](https://github.com/ClickHouse/ClickHouse/pull/30520) ([Azat Khuzhin](https://github.com/azat)).
* Corrige deadlock no ALTER com subconsulta escalar na mesma tabela, fecha [#30461](https://github.com/ClickHouse/ClickHouse/issues/30461). [#30492](https://github.com/ClickHouse/ClickHouse/pull/30492) ([Vladimir C](https://github.com/vdimir)).
* Corrigida uma falha de segmentação que poderia ocorrer se a sessão expirasse durante a execução de REPLACE PARTITION. [#30432](https://github.com/ClickHouse/ClickHouse/pull/30432) ([tavplubix](https://github.com/tavplubix)).
* Consultas com condição do tipo `IN (subquery)` podiam retornar resultados incorretos caso uma projeção agregada fosse aplicada. Corrigida a criação de sets para projeções. [#30310](https://github.com/ClickHouse/ClickHouse/pull/30310) ([Amos Bird](https://github.com/amosbird)).
* Corrige a resolução de aliases de colunas em consultas JOIN quando a projeção está habilitada. Isso corrige [#30146](https://github.com/ClickHouse/ClickHouse/issues/30146). [#30293](https://github.com/ClickHouse/ClickHouse/pull/30293) ([Amos Bird](https://github.com/amosbird)).
* Corrigida uma deficiência na função `replaceRegexpAll`. [#30292](https://github.com/ClickHouse/ClickHouse/pull/30292) ([Memo](https://github.com/Joeywzr)).
* Corrige o parsing da opção `preallocate` na configuração de layout do ComplexKeyHashedDictionary e do ComplexKeySparseHashedDictionary. [#30246](https://github.com/ClickHouse/ClickHouse/pull/30246) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrigida a função `[I]LIKE`. Fecha [#28661](https://github.com/ClickHouse/ClickHouse/issues/28661). [#30244](https://github.com/ClickHouse/ClickHouse/pull/30244) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige um travamento com shortcircuit e lowcardinality em multiIf. [#30243](https://github.com/ClickHouse/ClickHouse/pull/30243) ([Raúl Marín](https://github.com/Algunenano)).
* FlatDictionary, HashedDictionary corrigem o cálculo de bytes\_allocated para atributos Nullable. [#30238](https://github.com/ClickHouse/ClickHouse/pull/30238) ([Maksim Kita](https://github.com/kitaisreal)).
* Permite identificadores iniciados por números em múltiplas junções. [#30230](https://github.com/ClickHouse/ClickHouse/pull/30230) ([Vladimir C](https://github.com/vdimir)).
* Corrigida a leitura do `MergeTree` com `max_read_buffer_size = 0` (quando o usuário quer dar um tiro no próprio pé) (pode levar às exceções `Can't adjust last granule`, `LOGICAL_ERROR` ou até mesmo à perda de dados). [#30192](https://github.com/ClickHouse/ClickHouse/pull/30192) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido `pread_fake_async`/`pread_threadpool` com `min_bytes_to_use_direct_io`. [#30191](https://github.com/ClickHouse/ClickHouse/pull/30191) ([Azat Khuzhin](https://github.com/azat)).
* Corrige o preenchimento incorreto de uma coluna MATERIALIZED em INSERT SELECT com base em uma coluna Nullable. [#30189](https://github.com/ClickHouse/ClickHouse/pull/30189) ([Azat Khuzhin](https://github.com/azat)).
* Suporte para argumentos Nullable na função `initializeAggregation`. [#30177](https://github.com/ClickHouse/ClickHouse/pull/30177) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige o erro `Port is already connected` em consultas com `GLOBAL IN` e `WITH TOTALS`. Apenas nas versões 21.9 e 21.10. [#30086](https://github.com/ClickHouse/ClickHouse/pull/30086) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige condição de corrida entre MOVE PARTITION e merges/mutações no MergeTree. [#30074](https://github.com/ClickHouse/ClickHouse/pull/30074) ([Azat Khuzhin](https://github.com/azat)).
* O banco de dados `Memory` removido podia voltar a aparecer após a reinicialização do servidor; isso foi corrigido ([#29795](https://github.com/ClickHouse/ClickHouse/issues/29795)). Também foi adicionada a configuração `force_remove_data_recursively_on_drop` como solução alternativa para o erro `Directory not empty` ao remover o banco de dados `Ordinary` (porque não é possível remover manualmente os dados remanescentes em um ambiente de nuvem). [#30054](https://github.com/ClickHouse/ClickHouse/pull/30054) ([tavplubix](https://github.com/tavplubix)).
* Corrige travamento de `sample` com `tuple()`, fecha [#30004](https://github.com/ClickHouse/ClickHouse/issues/30004). [#30016](https://github.com/ClickHouse/ClickHouse/pull/30016) ([flynn](https://github.com/ucasfl)).
* tenta fechar a issue: [#29965](https://github.com/ClickHouse/ClickHouse/issues/29965). [#29976](https://github.com/ClickHouse/ClickHouse/pull/29976) ([hexiaoting](https://github.com/hexiaoting)).
* Corrige uma possível condição de corrida entre `FileChecker` e `StorageLog`/`StorageStripeLog`. [#29959](https://github.com/ClickHouse/ClickHouse/pull/29959) ([Azat Khuzhin](https://github.com/azat)).
* Corrige uma condição de corrida entre `LogSink::writeMarks()` e `LogSource` em `StorageLog`. [#29946](https://github.com/ClickHouse/ClickHouse/pull/29946) ([Azat Khuzhin](https://github.com/azat)).
* Corrige um possível vazamento de recursos no limite de consultas simultâneas de tabelas MergeTree, introduzido em [https://github.com/ClickHouse/ClickHouse/pull/19544](https://github.com/ClickHouse/ClickHouse/pull/19544). [#29879](https://github.com/ClickHouse/ClickHouse/pull/29879) ([Amos Bird](https://github.com/amosbird)).
* Corrigida a verificação de recriação de tabelas de sistema (falhava em detectar alterações nos valores de enum). [#29857](https://github.com/ClickHouse/ClickHouse/pull/29857) ([Azat Khuzhin](https://github.com/azat)).
* MaterializedMySQL: Corrige um problema em que, se a conexão com o MySQL fosse interrompida, apenas partes de uma transação poderiam ser processadas. [#29837](https://github.com/ClickHouse/ClickHouse/pull/29837) ([Håvard Kvålen](https://github.com/havardk)).
* Evita o erro `Timeout exceeded: elapsed 18446744073.709553 seconds`, que pode ocorrer em casos extremamente raros, possivelmente devido a algum bug no kernel. Corrige [#29154](https://github.com/ClickHouse/ClickHouse/issues/29154). [#29811](https://github.com/ClickHouse/ClickHouse/pull/29811) ([tavplubix](https://github.com/tavplubix)).
* Corrigido cast incorreto na consulta `ATTACH TABLE ... FROM 'path'` quando um literal não string é usado no lugar de um caminho. Isso pode levar à leitura de memória não inicializada. [#29790](https://github.com/ClickHouse/ClickHouse/pull/29790) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige o acesso concorrente a `LowCardinality` durante `GROUP BY` (em combinação com tabelas `Buffer`, pode causar problemas). [#29782](https://github.com/ClickHouse/ClickHouse/pull/29782) ([Azat Khuzhin](https://github.com/azat)).
* Corrige um `GROUP BY` incorreto (múltiplas linhas com as mesmas chaves no resultado) no caso de consulta distribuída quando os shards tinham versões mistas `<= 21.3` e `>= 21.4`, a chave de `GROUP BY` tinha várias colunas, todas de tamanho fixo, e a agregação em dois níveis estava ativada (consulte `group_by_two_level_threshold` e `group_by_two_level_threshold_bytes`). Corrige [#29580](https://github.com/ClickHouse/ClickHouse/issues/29580). [#29735](https://github.com/ClickHouse/ClickHouse/pull/29735) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigido o comportamento incorreto da configuração `materialized_postgresql_tables_list` na reinicialização do servidor. Relatado em [#28529](https://github.com/ClickHouse/ClickHouse/issues/28529). [#29686](https://github.com/ClickHouse/ClickHouse/pull/29686) ([Kseniia Sumarokova](https://github.com/kssenii)).
* A condição do predicado de filtro poderia ser perdida após a otimização de push-down. [#29625](https://github.com/ClickHouse/ClickHouse/pull/29625) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigida a compilação JIT de expressões com aliases e a avaliação de expressões com curto-circuito. Fecha [#29403](https://github.com/ClickHouse/ClickHouse/issues/29403). [#29574](https://github.com/ClickHouse/ClickHouse/pull/29574) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige uma falha de segmentação rara na consulta `ALTER MODIFY` ao usar um identificador de tabela inválido na expressão `DEFAULT`, como `x.y.z...` Corrige [#29184](https://github.com/ClickHouse/ClickHouse/issues/29184). [#29573](https://github.com/ClickHouse/ClickHouse/pull/29573) ([alesapin](https://github.com/alesapin)).
* Corrigida a desreferenciação de nullptr em `GROUP BY WITH TOTALS HAVING` (quando a coluna de `HAVING` não havia sido selecionada). [#29553](https://github.com/ClickHouse/ClickHouse/pull/29553) ([Azat Khuzhin](https://github.com/azat)).
* Evita deadlocks ao ler e gravar em tabelas com o mecanismo de tabela Join ao mesmo tempo. [#29544](https://github.com/ClickHouse/ClickHouse/pull/29544) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigido um bug na verificação `pathStartsWith`, pois havia um problema no uso de `std::mismatch`: ` The behavior is undefined if the second range is shorter than the first range.`. [#29531](https://github.com/ClickHouse/ClickHouse/pull/29531) ([Kseniia Sumarokova](https://github.com/kssenii)).
* No ODBC bridge, adicione tentativas de repetição para o erro Invalid cursor state. É um erro que permite nova tentativa. Fecha [#29473](https://github.com/ClickHouse/ClickHouse/issues/29473). [#29518](https://github.com/ClickHouse/ClickHouse/pull/29518) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigida a interpretação incorreta do nome da tabela durante o carregamento do banco de dados `Lazy`. Corrige [#29456](https://github.com/ClickHouse/ClickHouse/issues/29456). [#29476](https://github.com/ClickHouse/ClickHouse/pull/29476) ([tavplubix](https://github.com/tavplubix)).
* Corrige possível `Block structure mismatch` em subconsultas com pushdown do predicado `HAVING`. Corrige [#29010](https://github.com/ClickHouse/ClickHouse/issues/29010). [#29475](https://github.com/ClickHouse/ClickHouse/pull/29475) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige o erro lógico `Cannot capture columns` nas funções greatest/least. Fecha [#29334](https://github.com/ClickHouse/ClickHouse/issues/29334). [#29454](https://github.com/ClickHouse/ClickHouse/pull/29454) ([Kruglov Pavel](https://github.com/Avogar)).
* RocksDB table engine: corrige uma condição de corrida durante a abertura de vários DBs (e restaura alguns testes que acionam o problema na CI). [#29393](https://github.com/ClickHouse/ClickHouse/pull/29393) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido o problema em que o armazenamento de acesso replicado não era encerrado corretamente quando estava configurado incorretamente. [#29388](https://github.com/ClickHouse/ClickHouse/pull/29388) ([Kevin Michel](https://github.com/kmichel-aiven)).
* Removida a função de janela `nth_value`, pois não é segura em termos de memória. Isso fecha [#29347](https://github.com/ClickHouse/ClickHouse/issues/29347). [#29348](https://github.com/ClickHouse/ClickHouse/pull/29348) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige as mesclagens verticais de partes de projeção. Isso corrige [#29253](https://github.com/ClickHouse/ClickHouse/issues/29253). Este PR também corrige vários problemas de mesclagem/mutação de projeção introduzidos em [https://github.com/ClickHouse/ClickHouse/pull/25165](https://github.com/ClickHouse/ClickHouse/pull/25165). [#29337](https://github.com/ClickHouse/ClickHouse/pull/29337) ([Amos Bird](https://github.com/amosbird)).
* Corrige consultas DDL travadas no banco de dados Replicated ao adicionar uma nova réplica. [#29328](https://github.com/ClickHouse/ClickHouse/pull/29328) ([Kevin Michel](https://github.com/kmichel-aiven)).
* Corrige os timeouts de conexão (`send_timeout`/`receive_timeout`). [#29282](https://github.com/ClickHouse/ClickHouse/pull/29282) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida uma possível exceção `Table columns structure in ZooKeeper is different from local table structure` ao recriar ou criar novas réplicas de `ReplicatedMergeTree`, quando uma das colunas da tabela tem expressões padrão com funções que não diferenciam maiúsculas de minúsculas. [#29266](https://github.com/ClickHouse/ClickHouse/pull/29266) ([Anton Popov](https://github.com/CurtizJ)).
* Enviar ao cliente (via TCP) o erro normal `Database doesn't exist error` (`UNKNOWN_DATABASE`) em vez de `Attempt to read after eof` (`ATTEMPT_TO_READ_AFTER_EOF`). [#29229](https://github.com/ClickHouse/ClickHouse/pull/29229) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida falha de segmentação ao inserir em coluna do tipo LowCardinality(Nullable) no formato de entrada Avro. [#29132](https://github.com/ClickHouse/ClickHouse/pull/29132) ([Kruglov Pavel](https://github.com/Avogar)).
* Não permitir a reutilização das credenciais anteriores no caso de segredo interservidor (Antes, o INSERT via Buffer/Kafka em uma tabela distribuída com segredo interservidor configurado para esse cluster podia reutilizar o usuário definido anteriormente para essa conexão). [#29060](https://github.com/ClickHouse/ClickHouse/pull/29060) ([Azat Khuzhin](https://github.com/azat)).
* Ajusta `any_join_distinct_right_table_keys` ao fazer join com Dicionário, fecha [#29007](https://github.com/ClickHouse/ClickHouse/issues/29007). [#29014](https://github.com/ClickHouse/ClickHouse/pull/29014) ([Vladimir C](https://github.com/vdimir)).
* Corrige o erro "Not found column ... in block" ao fazer join em uma coluna com alias, fecha [#26980](https://github.com/ClickHouse/ClickHouse/issues/26980). [#29008](https://github.com/ClickHouse/ClickHouse/pull/29008) ([Vladimir C](https://github.com/vdimir)).
* Corrigido o número de threads utilizadas na subconsulta `GLOBAL IN` (ela estava sendo executada em uma única thread desde a correção do bug [#19414](https://github.com/ClickHouse/ClickHouse/issues/19414)). [#28997](https://github.com/ClickHouse/ClickHouse/pull/28997) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige otimizações inadequadas de ORDER BY quando ele contém WITH FILL. Isso fecha [#28908](https://github.com/ClickHouse/ClickHouse/issues/28908). Isso fecha [#26049](https://github.com/ClickHouse/ClickHouse/issues/26049). [#28910](https://github.com/ClickHouse/ClickHouse/pull/28910) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correção nas funções de array de ordem superior (`SIGSEGV` para `arrayCompact`/`ILLEGAL_COLUMN` para `arrayDifference`/`arrayCumSumNonNegative`) com constantes. [#28904](https://github.com/ClickHouse/ClickHouse/pull/28904) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida a espera por uma mutação com `mutations_sync=2`. [#28889](https://github.com/ClickHouse/ClickHouse/pull/28889) ([Azat Khuzhin](https://github.com/azat)).
* Corrige consultas a bancos de dados externos (por exemplo, MySQL) com várias colunas em IN (por exemplo, `(k,v) IN ((1, 2))` ). [#28888](https://github.com/ClickHouse/ClickHouse/pull/28888) ([Azat Khuzhin](https://github.com/azat)).
* Corrige bug com `LowCardinality` na avaliação de funções com curto-circuito. Fecha [#28884](https://github.com/ClickHouse/ClickHouse/issues/28884). [#28887](https://github.com/ClickHouse/ClickHouse/pull/28887) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrigida a leitura de subcolunas em partes compactas. [#28873](https://github.com/ClickHouse/ClickHouse/pull/28873) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigida uma condição de corrida entre `DROP PART` e `REPLACE/MOVE PARTITION` que, em casos raros, poderia fazer com que as réplicas divergissem. [#28864](https://github.com/ClickHouse/ClickHouse/pull/28864) ([tavplubix](https://github.com/tavplubix)).
* Corrigida a compilação de expressões com avaliação de curto-circuito. [#28821](https://github.com/ClickHouse/ClickHouse/pull/28821) ([Azat Khuzhin](https://github.com/azat)).
* Corrige um caso extremamente raro em que réplicas de ReplicatedMergeTree podem ficar divergentes após a reinicialização forçada de todas as réplicas. O erro aparece como `Part ... intersects (previous|next) part ...`. [#28817](https://github.com/ClickHouse/ClickHouse/pull/28817) ([alesapin](https://github.com/alesapin)).
* Melhor verificação da usabilidade da conexão e também tratamento de qualquer exceção no desligamento do `RabbitMQ`, por precaução. [#28797](https://github.com/ClickHouse/ClickHouse/pull/28797) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige uma condição de corrida benigna em ReplicatedMergeTreeQueue. Não deve ser visível para o usuário, mas pode levar a bugs sutis. [#28734](https://github.com/ClickHouse/ClickHouse/pull/28734) ([alesapin](https://github.com/alesapin)).
* Corrige possível travamento em `SELECT` com projeção agregada parcialmente criada em caso de exceção. [#28700](https://github.com/ClickHouse/ClickHouse/pull/28700) ([Amos Bird](https://github.com/amosbird)).
* Corrige o coredump ao criar tabelas distribuídas quando os parâmetros informados estão incorretos. [#28686](https://github.com/ClickHouse/ClickHouse/pull/28686) ([Zhiyong Wang](https://github.com/ljcui)).
* Adicionados os aliases Settings.Names e Settings.Values à tabela system.processes. [#28685](https://github.com/ClickHouse/ClickHouse/pull/28685) ([Vitaly](https://github.com/orloffv)).
* Suporte à biblioteca S2 Geometry: corrige o número de argumentos exigidos pelas funções `s2RectAdd` e `s2RectContains`. [#28663](https://github.com/ClickHouse/ClickHouse/pull/28663) ([Bharat Nallan](https://github.com/bharatnc)).
* Corrige a conversão inválida de tipo constante quando é usada uma chave primária Nullable ou LowCardinality. [#28636](https://github.com/ClickHouse/ClickHouse/pull/28636) ([Amos Bird](https://github.com/amosbird)).
* Corrige "A coluna não está em uma função de agregação nem em GROUP BY" com PREWHERE (Corrige: [#28461](https://github.com/ClickHouse/ClickHouse/issues/28461)). [#28502](https://github.com/ClickHouse/ClickHouse/pull/28502) ([Azat Khuzhin](https://github.com/azat)).

<div id="clickhouse-release-v2110-2021-10-16">
  ### Lançamento do ClickHouse v21.10, 2021-10-16. [Apresentação](https://presentations.clickhouse.com/2021-release-21.10/), [Vídeo](https://www.youtube.com/watch?v=b9MeoOtAivQ)
</div>

<Frame>
  <iframe src="https://www.youtube.com/embed/b9MeoOtAivQ" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</Frame>

<div id="backward-incompatible-change">
  #### Alteração incompatível com versões anteriores
</div>

* As seguintes configurações do MergeTree no nível da tabela: `replicated_max_parallel_sends`, `replicated_max_parallel_sends_for_table`, `replicated_max_parallel_fetches`, `replicated_max_parallel_fetches_for_table` agora não têm mais efeito. Elas nunca funcionaram bem e foram substituídas por `max_replicated_fetches_network_bandwidth`, `max_replicated_sends_network_bandwidth` e `background_fetches_pool_size`. [#28404](https://github.com/ClickHouse/ClickHouse/pull/28404) ([alesapin](https://github.com/alesapin)).

<div id="new-feature">
  #### Novo recurso
</div>

* Adiciona um recurso para criar Funções Definidas pelo Usuário (UDF) como expressões lambda. Sintaxe `CREATE FUNCTION {function_name} as ({parameters}) -> {function core}`. Exemplo: `CREATE FUNCTION plus_one as (a) -> a + 1`. Autores: @Realist007. [#27796](https://github.com/ClickHouse/ClickHouse/pull/27796) ([Maksim Kita](https://github.com/kitaisreal)) [#23978](https://github.com/ClickHouse/ClickHouse/pull/23978) ([Realist007](https://github.com/Realist007)).
* Adicionado o mecanismo de armazenamento `Executable` e a função de tabela `executable`. Isso permite processar dados com scripts externos em streaming. [#28102](https://github.com/ClickHouse/ClickHouse/pull/28102) ([Maksim Kita](https://github.com/kitaisreal)) ([ruct](https://github.com/ruct)).
* Adicionado o mecanismo de armazenamento `ExecutablePool`. Semelhante ao `Executable`, mas usa um pool de processos de longa duração. [#28518](https://github.com/ClickHouse/ClickHouse/pull/28518) ([Maksim Kita](https://github.com/kitaisreal)).
* Adiciona a consulta `ALTER TABLE ... MATERIALIZE COLUMN`. [#27038](https://github.com/ClickHouse/ClickHouse/pull/27038) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Suporte a gravação particionada na função de tabela `s3`. [#23051](https://github.com/ClickHouse/ClickHouse/pull/23051) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Suporte ao formato de compressão `lz4` (além de `gz`, `bz2`, `xz`, `zstd`) para importação/exportação de dados. [#25310](https://github.com/ClickHouse/ClickHouse/pull/25310) ([Bharat Nallan](https://github.com/bharatnc)).
* Permite argumentos posicionais com a configuração `enable_positional_arguments`. Fecha [#2592](https://github.com/ClickHouse/ClickHouse/issues/2592). [#27530](https://github.com/ClickHouse/ClickHouse/pull/27530) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Aceita configurações do usuário relacionadas a formatos de arquivo na cláusula `SETTINGS` da consulta `CREATE` para tabelas `s3`. Isso fecha [#27580](https://github.com/ClickHouse/ClickHouse/issues/27580). [#28037](https://github.com/ClickHouse/ClickHouse/pull/28037) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Permite conexão SSL para o mecanismo `RabbitMQ`. [#28365](https://github.com/ClickHouse/ClickHouse/pull/28365) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adiciona a função `getServerPort` para obter a porta do servidor. Quando a porta não é usada pelo servidor, gera uma exceção. [#27900](https://github.com/ClickHouse/ClickHouse/pull/27900) ([Amos Bird](https://github.com/amosbird)).
* Adiciona funções de conversão entre "Snowflake ID" e `DateTime`, `DateTime64`. Veja [#27058](https://github.com/ClickHouse/ClickHouse/issues/27058). [#27704](https://github.com/ClickHouse/ClickHouse/pull/27704) ([jasine](https://github.com/jasine)).
* Adiciona a função `SHA512`. [#27830](https://github.com/ClickHouse/ClickHouse/pull/27830) ([zhanglistar](https://github.com/zhanglistar)).
* Adiciona a configuração `log_queries_probability`, que permite ao usuário gravar no query\_log apenas uma amostra das consultas. Fecha [#16609](https://github.com/ClickHouse/ClickHouse/issues/16609). [#27527](https://github.com/ClickHouse/ClickHouse/pull/27527) ([Nikolay Degterinsky](https://github.com/evillique)).

<div id="experimental-feature-2">
  #### Recurso Experimental
</div>

* Discos do tipo `web` para armazenar tabelas readonly em um servidor web na forma de arquivos estáticos. Veja [#23982](https://github.com/ClickHouse/ClickHouse/issues/23982). [#25251](https://github.com/ClickHouse/ClickHouse/pull/25251) ([Kseniia Sumarokova](https://github.com/kssenii)). Isso é necessário principalmente para facilitar os testes de operações em armazenamento compartilhado e para importar conjuntos de dados com facilidade. Não é recomendável usar antes da versão 21.11.
* Foram adicionados os novos comandos `BACKUP` e `RESTORE`. [#21945](https://github.com/ClickHouse/ClickHouse/pull/21945) ([Vitaly Baranov](https://github.com/vitlibar)). Isso está em desenvolvimento e não se destina ao uso na versão atual.

<div id="performance-improvement">
  #### Melhoria de desempenho
</div>

* Acelera as funções de agregação `sumIf` e `countIf`. [#28272](https://github.com/ClickHouse/ClickHouse/pull/28272) ([Raúl Marín](https://github.com/Algunenano)).
* Cria uma projeção virtual para índices `minmax`. Agora, quando `allow_experimental_projection_optimization` estiver habilitado, as consultas usarão o índice `minmax` em vez de ler os dados, quando possível. [#26286](https://github.com/ClickHouse/ClickHouse/pull/26286) ([Amos Bird](https://github.com/amosbird)).
* Introduz duas verificações em `sequenceMatch` e `sequenceCount` que permitem encerrar mais cedo quando alguma parte determinística do padrão da sequência não está presente na lista de eventos. Essa mudança viabiliza muitas consultas que antes falhavam por atingir o limite de operações e, de modo geral, acelera o pipeline. [#27729](https://github.com/ClickHouse/ClickHouse/pull/27729) ([Jakub Kuklis](https://github.com/jkuklis)).
* Aprimora a análise da chave primária com informações de monotonicidade garantida para funções binárias, especialmente divisão por constante diferente de zero. [#28302](https://github.com/ClickHouse/ClickHouse/pull/28302) ([Amos Bird](https://github.com/amosbird)).
* Faz com que a condição de filtro `hasAll` aproveite skipping indexes com filtro de Bloom. [#27984](https://github.com/ClickHouse/ClickHouse/pull/27984) ([Braulio Valdivielso Martínez](https://github.com/BraulioVM)).
* Acelera o carregamento de data parts ao adiar o processo de inicialização da tabela. [#28313](https://github.com/ClickHouse/ClickHouse/pull/28313) ([Amos Bird](https://github.com/amosbird)).
* Corrige um possível número excessivo de conditions movidas de `WHERE` para `PREWHERE` (otimização controlada pela configuração `optimize_move_to_prewhere`). [#28139](https://github.com/ClickHouse/ClickHouse/pull/28139) ([lthaooo](https://github.com/lthaooo)).
* Habilita `optimize_distributed_group_by_sharding_key` por padrão. [#28105](https://github.com/ClickHouse/ClickHouse/pull/28105) ([Azat Khuzhin](https://github.com/azat)).

<div id="improvement">
  #### Melhoria
</div>

* Verifique o nome do cluster antes de criar a tabela `Distributed`; não permita a criação de uma tabela com nome de cluster incorreto. Corrige [#27832](https://github.com/ClickHouse/ClickHouse/issues/27832). [#27927](https://github.com/ClickHouse/ClickHouse/pull/27927) ([tavplubix](https://github.com/tavplubix)).
* Adicionada a função de agregação `quantileBFloat16Weighted`, de modo semelhante às outras funções quantile...Weighted. Isso fecha [#27745](https://github.com/ClickHouse/ClickHouse/issues/27745). [#27758](https://github.com/ClickHouse/ClickHouse/pull/27758) ([Ivan Novitskiy](https://github.com/RedClusive)).
* Permite criar dicionários com lista vazia de atributos. [#27905](https://github.com/ClickHouse/ClickHouse/pull/27905) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionar documentação interativa no `clickhouse-client` sobre como redefinir a senha. Isso é útil em cenários em que o usuário instalou o ClickHouse, configurou uma senha e a esqueceu logo em seguida. Veja [#27750](https://github.com/ClickHouse/ClickHouse/issues/27750). [#27903](https://github.com/ClickHouse/ClickHouse/pull/27903) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Suporta o caso em que os dados estão encapsulados em um array no formato de entrada `JSONAsString`. Fecha [#25517](https://github.com/ClickHouse/ClickHouse/issues/25517). [#25633](https://github.com/ClickHouse/ClickHouse/pull/25633) ([Kruglov Pavel](https://github.com/Avogar)).
* Adicionada a nova coluna `last_queue_update_exception` à tabela `system.replicas`. [#26843](https://github.com/ClickHouse/ClickHouse/pull/26843) ([nvartolomei](https://github.com/nvartolomei)).
* Suporte a reconexões em caso de failover para tabelas `MaterializedPostgreSQL`. Fecha [#28529](https://github.com/ClickHouse/ClickHouse/issues/28529). [#28614](https://github.com/ClickHouse/ClickHouse/pull/28614) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Gerar um UUID exclusivo para o servidor na primeira inicialização. [#20089](https://github.com/ClickHouse/ClickHouse/pull/20089) ([Bharat Nallan](https://github.com/bharatnc)).
* Adiciona a configuração `connection_wait_timeout` (o padrão é 5 segundos; 0 = não esperar) ao engine `MySQL`. [#28474](https://github.com/ClickHouse/ClickHouse/pull/28474) ([Azat Khuzhin](https://github.com/azat)).
* Não permitir a criação de `MaterializedPostgreSQL` com argumentos inválidos. Fecha [#28423](https://github.com/ClickHouse/ClickHouse/issues/28423). [#28430](https://github.com/ClickHouse/ClickHouse/pull/28430) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Use um arquivo tmp real em vez de "rows\_sources" predefinido para mesclagens verticais. Isso evita a geração de diretórios inúteis em discos tmp. [#28299](https://github.com/ClickHouse/ClickHouse/pull/28299) ([Amos Bird](https://github.com/amosbird)).
* Adicionado `libhdfs3_conf` à configuração do servidor, em vez de exportar a variável de ambiente `LIBHDFS3_CONF` em clickhouse-server.service. Isso serve para configurar a interação com o HDFS. [#28268](https://github.com/ClickHouse/ClickHouse/pull/28268) ([Zhichang Yu](https://github.com/yuzhichang)).
* Corrigida a remoção de partes no estado Temporary, que pode levar a uma exceção inesperada (`Part %name% doesn't exist`). Corrige [#23661](https://github.com/ClickHouse/ClickHouse/issues/23661). [#28221](https://github.com/ClickHouse/ClickHouse/pull/28221) [#28221](https://github.com/ClickHouse/ClickHouse/issues/28221)) ([Azat Khuzhin](https://github.com/azat)).
* Corrige `zookeeper_log.address` (antes do primeiro patch neste PR, o endereço era sempre `::`) e reduz o número de chamadas a `getpeername(2)` para esta coluna (já que, toda vez que uma entrada de `zookeeper_log` é adicionada, `getpeername()` é chamado; armazene esse endereço em cache no cliente zookeeper para evitar isso). [#28212](https://github.com/ClickHouse/ClickHouse/pull/28212) ([Azat Khuzhin](https://github.com/azat)).
* Suporte a conversões implícitas entre o índice no operador `[]` e a chave do tipo `Map` (por exemplo, diferentes tipos de `Int`, `String` e `FixedString`). [#28096](https://github.com/ClickHouse/ClickHouse/pull/28096) ([Anton Popov](https://github.com/CurtizJ)).
* Suporte à cláusula `ON CONFLICT` ao inserir no table engine PostgreSQL ou na table function. Fecha [#27727](https://github.com/ClickHouse/ClickHouse/issues/27727). [#28081](https://github.com/ClickHouse/ClickHouse/pull/28081) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Reduz as restrições do tipo de dado `Enum` para permitir anexar dados compatíveis. Fecha [#26672](https://github.com/ClickHouse/ClickHouse/issues/26672). [#28028](https://github.com/ClickHouse/ClickHouse/pull/28028) ([Dmitry Novik](https://github.com/novikd)).
* Adiciona uma configuração `empty_result_for_aggregation_by_constant_keys_on_empty_set` para controlar o comportamento do agrupamento por chaves constantes em um conjunto vazio. Isso restaura o comportamento antigo de [#6842](https://github.com/ClickHouse/ClickHouse/issues/6842). [#27932](https://github.com/ClickHouse/ClickHouse/pull/27932) ([Amos Bird](https://github.com/amosbird)).
* Adicionada a configuração `replication_wait_for_inactive_replica_timeout`. Ela permite especificar por quanto tempo aguardar que réplicas inativas executem a consulta `ALTER`/`OPTIMZE`/`TRUNCATE` (o padrão é 120 segundos). Se `replication_alter_partitions_sync` for 2 e algumas réplicas permanecerem inativas por mais de `replication_wait_for_inactive_replica_timeout` segundos, a exceção `UNFINISHED` será lançada. [#27931](https://github.com/ClickHouse/ClickHouse/pull/27931) ([tavplubix](https://github.com/tavplubix)).
* Suporte a argumento lambda no transformador de coluna `APPLY`, permitindo aplicar funções com mais de um argumento. Isto se refere a [#27877](https://github.com/ClickHouse/ClickHouse/issues/27877). [#27901](https://github.com/ClickHouse/ClickHouse/pull/27901) ([Amos Bird](https://github.com/amosbird)).
* Ativa `tcp_keep_alive_timeout` por padrão. [#27882](https://github.com/ClickHouse/ClickHouse/pull/27882) ([Azat Khuzhin](https://github.com/azat)).
* Aprimorado o cancelamento de consultas remotas (caso o servidor remoto seja encerrado de forma anormal). [#27881](https://github.com/ClickHouse/ClickHouse/pull/27881) ([Azat Khuzhin](https://github.com/azat)).
* Use upload com cópia multipart para objetos grandes no S3. [#27858](https://github.com/ClickHouse/ClickHouse/pull/27858) ([ianton-ru](https://github.com/ianton-ru)).
* Permitir seguir links simbólicos no caminho do dicionário da biblioteca. [#27815](https://github.com/ClickHouse/ClickHouse/pull/27815) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Agora, `ALTER MODIFY COLUM` `T` para `Nullable(T)` não exige mutação. [#27787](https://github.com/ClickHouse/ClickHouse/pull/27787) ([victorgao](https://github.com/kafka1991)).
* Não ignore erros de forma silenciosa nem contabilize atrasos em `ReadBufferFromS3`. [#27484](https://github.com/ClickHouse/ClickHouse/pull/27484) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Melhora em `ALTER ... MATERIALIZE TTL`, com recálculo apenas dos metadados, sem executar a ação de TTL em si. [#27019](https://github.com/ClickHouse/ClickHouse/pull/27019) ([lthaooo](https://github.com/lthaooo)).
* Permite ler a lista de domínios de nível superior personalizados sem uma quebra de linha no fim do arquivo. [#28213](https://github.com/ClickHouse/ClickHouse/pull/28213) ([Azat Khuzhin](https://github.com/azat)).

<div id="bug-fix">
  #### Correção de bug
</div>

* Corrige casos em que a leitura de dados compactados do `carbon-clickhouse` falha com 'attempt to read after end of file'. Fecha [#26149](https://github.com/ClickHouse/ClickHouse/issues/26149). [#28150](https://github.com/ClickHouse/ClickHouse/pull/28150) ([FArthur-cmd](https://github.com/FArthur-cmd)).
* Corrigida a verificação dos privilégios de acesso ao executar a instrução `GRANT WITH REPLACE` com a cláusula `ON CLUSTER`. Este PR aprimora a correção [#27001](https://github.com/ClickHouse/ClickHouse/pull/27701). [#27983](https://github.com/ClickHouse/ClickHouse/pull/27983) ([Vitaly Baranov](https://github.com/vitlibar)).
* Permite selecionar com `extremes = 1` em uma coluna do tipo `LowCardinality(UUID)`. [#27918](https://github.com/ClickHouse/ClickHouse/pull/27918) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige o cast no estilo do PostgreSQL (operador `::`) com números negativos. [#27876](https://github.com/ClickHouse/ClickHouse/pull/27876) ([Anton Popov](https://github.com/CurtizJ)).
* Após [#26864](https://github.com/ClickHouse/ClickHouse/pull/26864). Corrigido o encerramento de `NamedSessionStorage`: os contextos de sessão armazenados em `NamedSessionStorage` agora são destruídos antes do contexto global. [#27875](https://github.com/ClickHouse/ClickHouse/pull/27875) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correção no modo "strict" de `windowFunnel`. Isso corrige [#27469](https://github.com/ClickHouse/ClickHouse/issues/27469). [#27563](https://github.com/ClickHouse/ClickHouse/pull/27563) ([achimbab](https://github.com/achimbab)).
* Corrigido um loop infinito ao ler um arquivo `bzip2` truncado. [#28543](https://github.com/ClickHouse/ClickHouse/pull/28543) ([Azat Khuzhin](https://github.com/azat)).
* Corrige a sobreposição de UUID em `DROP TABLE` para DDLs internos do `MaterializedMySQL`. O MaterializedMySQL é um recurso experimental. [#28533](https://github.com/ClickHouse/ClickHouse/pull/28533) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido o erro `There is no subcolumn` ao fazer SELECT em tabelas que têm colunas `Nested` e colunas escalares com ponto no nome e o mesmo prefixo de `Nested` (por exemplo, `n.id UInt32, n.arr1 Array(UInt64), n.arr2 Array(UInt64)`). [#28531](https://github.com/ClickHouse/ClickHouse/pull/28531) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige um bug que pode levar ao erro `Existing table metadata in ZooKeeper differs in sorting key expression.` após um ALTER em `ReplicatedVersionedCollapsingMergeTree`. Corrige [#28515](https://github.com/ClickHouse/ClickHouse/issues/28515). [#28528](https://github.com/ClickHouse/ClickHouse/pull/28528) ([alesapin](https://github.com/alesapin)).
* Corrigido um possível vazamento de watches no ZooKeeper (problema menor) durante o processamento em segundo plano da fila de DDL distribuído. Fecha [#26036](https://github.com/ClickHouse/ClickHouse/issues/26036). [#28446](https://github.com/ClickHouse/ClickHouse/pull/28446) ([tavplubix](https://github.com/tavplubix)).
* Corrige a falta de aspas nos nomes de tabelas no mecanismo `MaterializedPostgreSQL`. Fecha [#28316](https://github.com/ClickHouse/ClickHouse/issues/28316). [#28433](https://github.com/ClickHouse/ClickHouse/pull/28433) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigido o comportamento incorreto de linhas sem correspondência de coluna Nullable. Fecha [#27691](https://github.com/ClickHouse/ClickHouse/issues/27691). [#28349](https://github.com/ClickHouse/ClickHouse/pull/28349) ([vdimir](https://github.com/vdimir)).
* Corrige a otimização do índice `NOT-IN` quando nem todas as colunas da chave são usadas. Isso corrige [#28120](https://github.com/ClickHouse/ClickHouse/issues/28120). [#28315](https://github.com/ClickHouse/ClickHouse/pull/28315) ([Amos Bird](https://github.com/amosbird)).
* Correção de partes sobrepostas causada pela substituição de uma nova parte por uma parte vazia. [#28310](https://github.com/ClickHouse/ClickHouse/pull/28310) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido um resultado inconsistente em consultas com `ORDER BY` e em tabelas `Merge` com a configuração `optimize_read_in_order` habilitada. [#28266](https://github.com/ClickHouse/ClickHouse/pull/28266) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige uma possível leitura de memória não inicializada em consultas com o tipo `Nullable(LowCardinality)` e a configuração `extremes` definida como 1. Corrige [#28165](https://github.com/ClickHouse/ClickHouse/issues/28165). [#28205](https://github.com/ClickHouse/ClickHouse/pull/28205) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Várias pequenas correções nas projeções. Veja a descrição detalhada no PR. [#28178](https://github.com/ClickHouse/ClickHouse/pull/28178) ([Amos Bird](https://github.com/amosbird)).
* Corrige falhas de segmentação extremamente raras durante o desligamento devido à ordem incorreta de encerramento do recarregador de contexto/configuração. [#28088](https://github.com/ClickHouse/ClickHouse/pull/28088) ([nvartolomei](https://github.com/nvartolomei)).
* Corrige o tratamento do valor NULL com o tipo `Nullable(String)` na função `JSONExtract`. Isso corrige [#27929](https://github.com/ClickHouse/ClickHouse/issues/27929) e [#27930](https://github.com/ClickHouse/ClickHouse/issues/27930). Essa alteração foi introduzida em [https://github.com/ClickHouse/ClickHouse/pull/25452](https://github.com/ClickHouse/ClickHouse/pull/25452) . [#27939](https://github.com/ClickHouse/ClickHouse/pull/27939) ([Amos Bird](https://github.com/amosbird)).
* Várias correções para a nova ferramenta `clickhouse-keeper`. Corrige um bug raro no `clickhouse-keeper` em que o cliente pode receber uma resposta de watch antes da resposta à solicitação. [#28197](https://github.com/ClickHouse/ClickHouse/pull/28197) ([alesapin](https://github.com/alesapin)). Corrige um comportamento incorreto no `clickhouse-keeper` quando watches de lista (`getChildren`) eram acionados por solicitações `set` para nós filhos. [#28190](https://github.com/ClickHouse/ClickHouse/pull/28190) ([alesapin](https://github.com/alesapin)). Corrige um caso raro em que alterações nas configurações do `clickhouse-keeper` podem levar à perda de logs e ao travamento do servidor. [#28360](https://github.com/ClickHouse/ClickHouse/pull/28360) ([alesapin](https://github.com/alesapin)). Corrige um bug no `clickhouse-keeper` que pode levar à geração infinita de logs quando `rotate_logs_interval` é reduzido. [#28152](https://github.com/ClickHouse/ClickHouse/pull/28152) ([alesapin](https://github.com/alesapin)).

<div id="buildtestingpackaging-improvement-2">
  #### Melhoria em Build/Testes/Empacotamento
</div>

* Habilita o Thread Fuzzer no Stress Test. O Thread Fuzzer é um recurso do ClickHouse que permite testar mais permutações no agendamento de threads e descobrir mais problemas em potencial. Isso fecha [#9813](https://github.com/ClickHouse/ClickHouse/issues/9813). Isso fecha [#9814](https://github.com/ClickHouse/ClickHouse/issues/9814). Isso fecha [#9515](https://github.com/ClickHouse/ClickHouse/issues/9515). Isso fecha [#9516](https://github.com/ClickHouse/ClickHouse/issues/9516). [#27538](https://github.com/ClickHouse/ClickHouse/pull/27538) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Adiciona um novo nível de log `test` para ambientes de teste. Ele é ainda mais verboso que o `trace` padrão. [#28559](https://github.com/ClickHouse/ClickHouse/pull/28559) ([alesapin](https://github.com/alesapin)).
* Exibe informações do status do git na etapa de configuração do CMake. [#28047](https://github.com/ClickHouse/ClickHouse/pull/28047) ([Braulio Valdivielso Martínez](https://github.com/BraulioVM)).
* Altera temporariamente o repositório apt do Ubuntu para o espelho ru.archive.ubuntu.com, já que o padrão (archive.ubuntu.com) não está respondendo em nosso CI. [#28016](https://github.com/ClickHouse/ClickHouse/pull/28016) ([Ilya Yatsishin](https://github.com/qoega)).

<div id="clickhouse-release-v219-2021-09-09">
  ### Lançamento do ClickHouse v21.9, 2021-09-09
</div>

<div id="backward-incompatible-change">
  #### Alteração incompatível com versões anteriores
</div>

* Não gerar zeros à direita na representação textual de tipos `Decimal`. Exemplo: `1.23` será exibido em vez de `1.230000` para um decimal com escala 6. Isso fecha [#15794](https://github.com/ClickHouse/ClickHouse/issues/15794). Isso pode introduzir uma pequena incompatibilidade caso suas aplicações dependessem, de alguma forma, dos zeros à direita. A serialização em formatos de saída pode ser controlada pela configuração `output_format_decimal_trailing_zeros`. A implementação de `toString` e a conversão para String foram alteradas incondicionalmente. [#27680](https://github.com/ClickHouse/ClickHouse/pull/27680) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Não permitir aplicar uma função de agregação paramétrica com o combinador `-Merge` ao estado de uma função de agregação se esse estado tiver sido produzido por uma função de agregação com parâmetros diferentes. Por exemplo, o estado de `fooState(42)(x)` não pode ser finalizado com `fooMerge(s)` ou `fooMerge(123)(s)`; os parâmetros devem ser especificados explicitamente como `fooMerge(42)(s)` e devem ser iguais. Isso não afeta algumas funções de agregação especiais, como `quantile` e `sequence*`, que usam parâmetros apenas para finalização. [#26847](https://github.com/ClickHouse/ClickHouse/pull/26847) ([tavplubix](https://github.com/tavplubix)).
* No clickhouse-local, sempre tratar endereços locais com porta como remotos. [#26736](https://github.com/ClickHouse/ClickHouse/pull/26736) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige o problema em que, em algumas consultas complexas com aliases de coluna idênticos aos nomes das expressões, pode ocorrer uma conversão incorreta. Isso corrige [#25447](https://github.com/ClickHouse/ClickHouse/issues/25447). Isso corrige [#26914](https://github.com/ClickHouse/ClickHouse/issues/26914). Essa correção pode introduzir incompatibilidade retroativa: se houver expressões diferentes com nomes idênticos, uma exceção será gerada. Isso pode quebrar alguns casos raros quando `enable_optimize_predicate_expression` está definido. [#26639](https://github.com/ClickHouse/ClickHouse/pull/26639) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Agora, uma subconsulta escalar sempre retorna um resultado `Nullable` se seu tipo puder ser `Nullable`. Isso é necessário porque, no caso de uma subconsulta vazia, o resultado deve ser `Null`. Antes, era possível obter um erro sobre tipos incompatíveis (a dedução de tipo não executa a subconsulta escalar e podia usar um tipo não anulável). Uma subconsulta escalar com resultado vazio que não pode ser convertida para `Nullable` (como `Array` ou `Tuple`) agora gera erro. Corrige [#25411](https://github.com/ClickHouse/ClickHouse/issues/25411). [#26423](https://github.com/ClickHouse/ClickHouse/pull/26423) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Introduz sintaxe para here documents. Exemplo: `SELECT $doc$ VALUE $doc$`. [#26671](https://github.com/ClickHouse/ClickHouse/pull/26671) ([Maksim Kita](https://github.com/kitaisreal)). Essa alteração é incompatível com versões anteriores se houver, na consulta, identificadores que contenham `$` [#28768](https://github.com/ClickHouse/ClickHouse/issues/28768).
* Agora, índices podem lidar com tipos Nullable, incluindo `isNull` e `isNotNull`. [#12433](https://github.com/ClickHouse/ClickHouse/pull/12433) e [#12455](https://github.com/ClickHouse/ClickHouse/pull/12455) ([Amos Bird](https://github.com/amosbird)) e [#27250](https://github.com/ClickHouse/ClickHouse/pull/27250) ([Azat Khuzhin](https://github.com/azat)). Mas isso foi feito com alterações no formato em disco e, embora o novo servidor consiga ler dados antigos, o servidor antigo não consegue. Além disso, caso você tenha índices de data skipping `MINMAX`, poderá receber o erro `Data after mutation/merge is not byte-identical`, já que o novo índice terá a extensão `.idx2`, enquanto antes era `.idx`. Portanto, nesse caso, você não deve adiar a atualização de todas as réplicas existentes; caso contrário, se uma réplica antiga (\<21.9) baixar dados de uma nova réplica com 21.9+, ela não conseguirá aplicar o índice à parte baixada.

<div id="new-feature">
  #### Novo recurso
</div>

* Implementação da avaliação de funções com curto-circuito, fecha [#12587](https://github.com/ClickHouse/ClickHouse/issues/12587). Adiciona a configuração `short_circuit_function_evaluation` para controlar a avaliação de funções com curto-circuito. [#23367](https://github.com/ClickHouse/ClickHouse/pull/23367) ([Kruglov Pavel](https://github.com/Avogar)).
* Adicionado suporte para os operadores INTERSECT, EXCEPT, ANY e ALL. [#24757](https://github.com/ClickHouse/ClickHouse/pull/24757) ([Kirill Ershov](https://github.com/zdikov)). ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adicionar suporte à criptografia no nível do sistema de arquivos virtual (criptografia de dados em repouso) usando o algoritmo AES-CTR. [#24206](https://github.com/ClickHouse/ClickHouse/pull/24206) ([Latysheva Alexandra](https://github.com/alexelex)). ([Vitaly Baranov](https://github.com/vitlibar)) [#26733](https://github.com/ClickHouse/ClickHouse/pull/26733) [#26377](https://github.com/ClickHouse/ClickHouse/pull/26377) [#26465](https://github.com/ClickHouse/ClickHouse/pull/26465).
* Adicionadas funções de processamento de linguagem natural (NLP) para tokenização, stemming, lematização e busca nas extensões de sinônimos. [#24997](https://github.com/ClickHouse/ClickHouse/pull/24997) ([Nikolay Degterinsky](https://github.com/evillique)).
* Adicionada integração com a biblioteca de geometria S2. [#24980](https://github.com/ClickHouse/ClickHouse/pull/24980) ([Andr0901](https://github.com/Andr0901)). ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Adiciona engine de tabela SQLite, função de tabela e engine de banco de dados. [#24194](https://github.com/ClickHouse/ClickHouse/pull/24194) ([Arslan Gumerov](https://github.com/g-arslan)). ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adicionado suporte a consultas personalizadas para fontes de dicionário `MySQL`, `PostgreSQL`, `ClickHouse`, `JDBC` e `Cassandra`. Fecha [#1270](https://github.com/ClickHouse/ClickHouse/issues/1270). [#26995](https://github.com/ClickHouse/ClickHouse/pull/26995) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionar armazenamento compartilhado (replicado) de usuários, funções, políticas de linha, quotas e perfis de configuração por meio do ZooKeeper. [#27426](https://github.com/ClickHouse/ClickHouse/pull/27426) ([Kevin Michel](https://github.com/kmichel-aiven)).
* Adiciona compressão para `INTO OUTFILE`, com seleção automática do algoritmo de compressão. Fecha [#3473](https://github.com/ClickHouse/ClickHouse/issues/3473). [#27134](https://github.com/ClickHouse/ClickHouse/pull/27134) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Adicionado `INSERT ... FROM INFILE`, de forma semelhante a `SELECT ... INTO OUTFILE`. [#27655](https://github.com/ClickHouse/ClickHouse/pull/27655) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Adicionado o dicionário `complex_key_range_hashed`. Fecha [#22029](https://github.com/ClickHouse/ClickHouse/issues/22029). [#27629](https://github.com/ClickHouse/ClickHouse/pull/27629) ([Maksim Kita](https://github.com/kitaisreal)).
* Suporte a expressões na cláusula JOIN ON. Fecha [#21868](https://github.com/ClickHouse/ClickHouse/issues/21868). [#24420](https://github.com/ClickHouse/ClickHouse/pull/24420) ([Vladimir C](https://github.com/vdimir)).
* Quando o cliente se conecta ao servidor, ele recebe informações sobre todos os avisos já coletados pelo servidor. (Isso pode ser desativado com a opção `--no-warnings`). Adicionada a tabela `system.warnings` para coletar avisos sobre a configuração do servidor. [#26246](https://github.com/ClickHouse/ClickHouse/pull/26246) ([Filatenkov Artur](https://github.com/FArthur-cmd)). [#26282](https://github.com/ClickHouse/ClickHouse/pull/26282) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Permitir o uso de expressões constantes de WITH e SELECT nos parâmetros de funções de agregação. Fecha [#10945](https://github.com/ClickHouse/ClickHouse/issues/10945). [#27531](https://github.com/ClickHouse/ClickHouse/pull/27531) ([abel-cheng](https://github.com/abel-cheng)).
* Adiciona `tupleToNameValuePairs`, uma função que converte uma tupla nomeada em um array de pares. [#27505](https://github.com/ClickHouse/ClickHouse/pull/27505) ([Braulio Valdivielso Martínez](https://github.com/BraulioVM)).
* Adiciona suporte ao método de compressão `bzip2` para importação/exportação. Corrige [#22428](https://github.com/ClickHouse/ClickHouse/issues/22428). [#27377](https://github.com/ClickHouse/ClickHouse/pull/27377) ([Nikolay Degterinsky](https://github.com/evillique)).
* Adicionada a função `bitmapSubsetOffsetLimit(bitmap, offset, cardinality_limit)`. Ela cria um subconjunto do bitmap, limitando os resultados a `cardinality_limit` com um deslocamento de `offset`. [#27234](https://github.com/ClickHouse/ClickHouse/pull/27234) ([DHBin](https://github.com/DHBin)).
* Adicionada a coluna `default_database` a `system.users`. [#27054](https://github.com/ClickHouse/ClickHouse/pull/27054) ([kevin wan](https://github.com/MaxWk)).
* Suporte a macros `cluster` nas funções de tabela 'cluster' e 'clusterAllReplicas'. [#26913](https://github.com/ClickHouse/ClickHouse/pull/26913) ([polyprogrammist](https://github.com/PolyProgrammist)).
* Adicionadas novas funções `currentRoles()`, `enabledRoles()`, `defaultRoles()`. [#26780](https://github.com/ClickHouse/ClickHouse/pull/26780) ([Vitaly Baranov](https://github.com/vitlibar)).
* Novas funções `currentProfiles()`, `enabledProfiles()`, `defaultProfiles()`. [#26714](https://github.com/ClickHouse/ClickHouse/pull/26714) ([Vitaly Baranov](https://github.com/vitlibar)).
* Adicionadas funções que retornam o (initial\_)query\_id da consulta atual. Isso fecha [#23682](https://github.com/ClickHouse/ClickHouse/issues/23682). [#26410](https://github.com/ClickHouse/ClickHouse/pull/26410) ([Alexey Boykov](https://github.com/mathalex)).
* Adicionado o recurso `REPLACE GRANT`. [#26384](https://github.com/ClickHouse/ClickHouse/pull/26384) ([Caspian](https://github.com/Cas-pian)).
* `EXPLAIN` agora conta com o modo `EXPLAIN ESTIMATE ...`, que exibirá informações sobre linhas lidas, marcas e partes de tabelas MergeTree. Fecha [#23941](https://github.com/ClickHouse/ClickHouse/issues/23941). [#26131](https://github.com/ClickHouse/ClickHouse/pull/26131) ([fastio](https://github.com/fastio)).
* Foi adicionada a tabela `system.zookeeper_log`. Todas as ações do cliente ZooKeeper são registradas nessa tabela. Implementa [#25449](https://github.com/ClickHouse/ClickHouse/issues/25449). [#26129](https://github.com/ClickHouse/ClickHouse/pull/26129) ([tavplubix](https://github.com/tavplubix)).
* Replicação zero-copy para `ReplicatedMergeTree` no armazenamento `HDFS`. [#25918](https://github.com/ClickHouse/ClickHouse/pull/25918) ([Zhichang Yu](https://github.com/yuzhichang)).
* Permite inserir o tipo Nested como um array de structs nos formatos de entrada `Arrow`, `ORC` e `Parquet`. [#25902](https://github.com/ClickHouse/ClickHouse/pull/25902) ([Kruglov Pavel](https://github.com/Avogar)).
* Adicionar um novo tipo de dado `Date32` (armazena dados como Int32), oferecer suporte ao mesmo intervalo de datas de `DateTime64`, oferecer suporte ao carregamento de `date32` do Parquet para `Date32` no ClickHouse, adicionar a nova função `toDate32`, semelhante a `toDate`. [#25774](https://github.com/ClickHouse/ClickHouse/pull/25774) ([LiuNeng](https://github.com/liuneng1994)).
* Permite que você defina um banco de dados padrão. [#25268](https://github.com/ClickHouse/ClickHouse/issues/25268). [#25687](https://github.com/ClickHouse/ClickHouse/pull/25687) ([kevin wan](https://github.com/MaxWk)).
* Adiciona um parâmetro opcional ao engine `MongoDB` para aceitar opções de string de conexão e suportar conexão SSL. Fecha [#21189](https://github.com/ClickHouse/ClickHouse/issues/21189). Fecha [#21041](https://github.com/ClickHouse/ClickHouse/issues/21041). [#22045](https://github.com/ClickHouse/ClickHouse/pull/22045) ([Omar Bazaraa](https://github.com/OmarBazaraa)).

<div id="experimental-feature">
  #### Recurso experimental
</div>

* Adicionado o codec de compressão `AES_128_GCM_SIV`, que criptografa colunas em vez de compactá-las. [#19896](https://github.com/ClickHouse/ClickHouse/pull/19896) ([PHO](https://github.com/depressed-pho)). Será reescrito; não use.
* Renomeado `MaterializeMySQL` para `MaterializedMySQL`. [#26822](https://github.com/ClickHouse/ClickHouse/pull/26822) ([tavplubix](https://github.com/tavplubix)).

<div id="performance-improvement">
  #### Melhoria de desempenho
</div>

* Melhora o desempenho de consultas rápidas quando `max_execution_time = 0`, reduzindo o número de chamadas de sistema `clock_gettime`. [#27325](https://github.com/ClickHouse/ClickHouse/pull/27325) ([filimonov](https://github.com/filimonov)).
* Especializa comparações relacionadas a data e hora para obter melhor desempenho. Isso corrige [#27083](https://github.com/ClickHouse/ClickHouse/issues/27083). [#27122](https://github.com/ClickHouse/ClickHouse/pull/27122) ([Amos Bird](https://github.com/amosbird)).
* Compartilha descritores de arquivo em leituras simultâneas dos mesmos arquivos. Não há diferença perceptível de desempenho no Linux. Mas o número de arquivos abertos será significativamente menor (de 10 a 100 vezes) em servidores típicos, o que facilita as operações. Veja [#26214](https://github.com/ClickHouse/ClickHouse/issues/26214). [#26768](https://github.com/ClickHouse/ClickHouse/pull/26768) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Melhora a latência de consultas curtas que exigem leitura de tabelas com um grande número de colunas. [#26371](https://github.com/ClickHouse/ClickHouse/pull/26371) ([Anton Popov](https://github.com/CurtizJ)).
* Não cria conjuntos para índices ao analisar uma consulta. [#26365](https://github.com/ClickHouse/ClickHouse/pull/26365) ([Raúl Marín](https://github.com/Algunenano)).
* Vetoriza o SUM de tipos inteiros Nullable com representação nativa ([David Manzanares](https://github.com/davidmanzanares), [Raúl Marín](https://github.com/Algunenano)). [#26248](https://github.com/ClickHouse/ClickHouse/pull/26248) ([Raúl Marín](https://github.com/Algunenano)).
* Compila expressões que envolvem colunas com tipos `Enum`. [#26237](https://github.com/ClickHouse/ClickHouse/pull/26237) ([Maksim Kita](https://github.com/kitaisreal)).
* Compila as funções de agregação `groupBitOr`, `groupBitAnd`, `groupBitXor`. [#26161](https://github.com/ClickHouse/ClickHouse/pull/26161) ([Maksim Kita](https://github.com/kitaisreal)).
* Melhora o uso de memória com uma previsão melhor do tamanho do bloco ao ler colunas DEFAULT vazias. Fecha [#17317](https://github.com/ClickHouse/ClickHouse/issues/17317). [#25917](https://github.com/ClickHouse/ClickHouse/pull/25917) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Reduz o uso de memória e o número de linhas lidas em consultas com `ORDER BY primary_key`. [#25721](https://github.com/ClickHouse/ClickHouse/pull/25721) ([Anton Popov](https://github.com/CurtizJ)).
* Habilita `distributed_push_down_limit` por padrão. [#27104](https://github.com/ClickHouse/ClickHouse/pull/27104) ([Azat Khuzhin](https://github.com/azat)).
* Torna `toTimeZone` monotônico quando `timeZone` é um valor constante para dar suporte ao pruning de partições ao usar SQL como:. [#26261](https://github.com/ClickHouse/ClickHouse/pull/26261) ([huangzhaowei](https://github.com/SaintBacchus)).

<div id="improvement">
  #### Melhoria
</div>

* As funções de janela passam a ser consideradas prontas para uso geral. Removida a configuração `allow_experimental_window_functions`. [#27184](https://github.com/ClickHouse/ClickHouse/pull/27184) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* Melhora na compatibilidade com deslocamentos de fuso horário que não são múltiplos de um minuto. [#27080](https://github.com/ClickHouse/ClickHouse/pull/27080) ([Raúl Marín](https://github.com/Algunenano)).
* Se o descritor de arquivo na tabela `File` for um arquivo regular, passa a ser possível lê-lo várias vezes. Isso permite que o `clickhouse-local` leia da stdin várias vezes (com várias consultas `SELECT` ou subconsultas), se a stdin for um arquivo regular, como em `clickhouse-local --query "SELECT * FROM table UNION ALL SELECT * FROM table" ... < file`. Isso fecha [#11124](https://github.com/ClickHouse/ClickHouse/issues/11124). Em coautoria com ([alexey-milovidov](https://github.com/alexey-milovidov)). [#25960](https://github.com/ClickHouse/ClickHouse/pull/25960) ([BoloniniD](https://github.com/BoloniniD)).
* Remova a análise duplicada de índice e evite possíveis verificações inválidas de limite durante a análise de projeção. [#27742](https://github.com/ClickHouse/ClickHouse/pull/27742) ([Amos Bird](https://github.com/amosbird)).
* Permite passar parâmetros de consulta no corpo de requisições HTTP. [#27706](https://github.com/ClickHouse/ClickHouse/pull/27706) ([Hermano Lustosa](https://github.com/hllustosa)).
* Impedir `arrayJoin` em expressões de partição. [#27648](https://github.com/ClickHouse/ClickHouse/pull/27648) ([Raúl Marín](https://github.com/Algunenano)).
* Registrar o endereço IP do cliente em caso de falha na autenticação. [#27514](https://github.com/ClickHouse/ClickHouse/pull/27514) ([Misko Lee](https://github.com/imiskolee)).
* Usar bytes em vez de strings para dados binários no protocolo GRPC. [#27431](https://github.com/ClickHouse/ClickHouse/pull/27431) ([Vitaly Baranov](https://github.com/vitlibar)).
* Enviar uma resposta com mensagem de erro caso a porta HTTP não esteja configurada e o usuário tente enviar uma requisição HTTP para a porta TCP. [#27385](https://github.com/ClickHouse/ClickHouse/pull/27385) ([Braulio Valdivielso Martínez](https://github.com/BraulioVM)).
* Adicionar a função `_CAST` para uso interno, que não preservará a nulabilidade do tipo, mas o cast não interno a preservará de acordo com a configuração `cast_keep_nullable`. Fecha [#12636](https://github.com/ClickHouse/ClickHouse/issues/12636). [#27382](https://github.com/ClickHouse/ClickHouse/pull/27382) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adiciona a configuração `log_formatted_queries` para registrar uma consulta formatada adicional em `system.query_log`. Isso é útil para a análise de consultas normalizadas, porque funções como `normalizeQuery` e `normalizeQueryKeepNames` não fazem o parsing/formatação das consultas para obter melhor desempenho. [#27380](https://github.com/ClickHouse/ClickHouse/pull/27380) ([Amos Bird](https://github.com/amosbird)).
* Adicionadas duas configurações, `max_hyperscan_regexp_length` e `max_hyperscan_regexp_total_length`, para evitar o uso de expressões regulares muito grandes em funções relacionadas ao Hyperscan, como `multiMatchAny`. [#27378](https://github.com/ClickHouse/ClickHouse/pull/27378) ([Amos Bird](https://github.com/amosbird)).
* A memória consumida pelas funções de agregação de bitmap agora é levada em consideração nos limites de memória. Isso fecha [#26555](https://github.com/ClickHouse/ClickHouse/issues/26555). [#27252](https://github.com/ClickHouse/ClickHouse/pull/27252) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Adiciona um cache de 10 segundos para o resolvedor de proxy do S3. [#27216](https://github.com/ClickHouse/ClickHouse/pull/27216) ([ianton-ru](https://github.com/ianton-ru)).
* O mutex global foi dividido em construções individuais de regexps. Isso ajuda a evitar que a construção de regexps muito grandes bloqueie outras threads relacionadas. [#27211](https://github.com/ClickHouse/ClickHouse/pull/27211) ([Amos Bird](https://github.com/amosbird)).
* Suporte a schema no mecanismo de banco de dados PostgreSQL. Fecha [#27166](https://github.com/ClickHouse/ClickHouse/issues/27166). [#27198](https://github.com/ClickHouse/ClickHouse/pull/27198) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Monitorar o uso de memória no clickhouse-client. [#27191](https://github.com/ClickHouse/ClickHouse/pull/27191) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Tentar registrar `query_kind` em `system.query_log` mesmo quando a consulta não consegue ser iniciada. [#27182](https://github.com/ClickHouse/ClickHouse/pull/27182) ([Amos Bird](https://github.com/amosbird)).
* Adicionadas colunas `replica_is_active` que mapeiam o nome da réplica para o status que indica se a réplica está ativa na tabela `system.replicas`. Fecha [#27138](https://github.com/ClickHouse/ClickHouse/issues/27138). [#27180](https://github.com/ClickHouse/ClickHouse/pull/27180) ([Maksim Kita](https://github.com/kitaisreal)).
* Permite passar configurações de consulta pela URI do servidor na UI da Web. [#27177](https://github.com/ClickHouse/ClickHouse/pull/27177) ([kolsys](https://github.com/kolsys)).
* Adiciona uma nova métrica chamada `MaxPushedDDLEntryID`, que é o ID máximo da entrada DDL que o nó atual envia ao ZooKeeper. [#27174](https://github.com/ClickHouse/ClickHouse/pull/27174) ([Fuwang Hu](https://github.com/fuwhu)).
* Aprimorada a verificação da condição de existência e do nó de string vazia quando o `clickhouse-keeper` cria znode. [#27125](https://github.com/ClickHouse/ClickHouse/pull/27125) ([小路](https://github.com/nicelulu)).
* Merge JOIN lida corretamente com conjunto vazio no lado direito. [#27078](https://github.com/ClickHouse/ClickHouse/pull/27078) ([Vladimir C](https://github.com/vdimir)).
* Agora, as funções podem ser constantes no nível do shard, o que significa que, se forem executadas no contexto de uma tabela distribuída, geram uma coluna normal; caso contrário, produzem um valor constante. As funções mais notáveis são: `hostName()`, `tcpPort()`, `version()`, `buildId()`, `uptime()`, etc. [#27020](https://github.com/ClickHouse/ClickHouse/pull/27020) ([Amos Bird](https://github.com/amosbird)).
* `extractAllGroupsHorizontal` atualizado - o limite máximo do número de correspondências por linha pode ser definido por meio de um terceiro argumento opcional. [#26961](https://github.com/ClickHouse/ClickHouse/pull/26961) ([Vasily Nemkov](https://github.com/Enmk)).
* Expõe estatísticas do `RocksDB` por meio da tabela system.rocksdb. Lê as opções do RocksDB na configuração do ClickHouse (chaves `rocksdb...`). OBSERVAÇÃO: o ClickHouse não depende do RocksDB; ele é apenas um dos motores de armazenamento de integração adicionais. [#26821](https://github.com/ClickHouse/ClickHouse/pull/26821) ([Azat Khuzhin](https://github.com/azat)).
* Logs internos do RocksDB menos verbosos. OBSERVAÇÃO: o ClickHouse não depende do RocksDB; ele é apenas um dos motores adicionais de armazenamento para integrações. Isso encerra [#26252](https://github.com/ClickHouse/ClickHouse/issues/26252). [#26789](https://github.com/ClickHouse/ClickHouse/pull/26789) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* A alteração das roles padrão afeta apenas as novas sessões. [#26759](https://github.com/ClickHouse/ClickHouse/pull/26759) ([Vitaly Baranov](https://github.com/vitlibar)).
* O watchdog é desativado no docker por padrão. Correção para quando ctrl+c não é tratado. [#26757](https://github.com/ClickHouse/ClickHouse/pull/26757) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* `SET PROFILE` agora também aplica restrições, se elas estiverem definidas para um perfil especificado. [#26730](https://github.com/ClickHouse/ClickHouse/pull/26730) ([Vitaly Baranov](https://github.com/vitlibar)).
* Melhoria no tratamento de solicitações de `KILL QUERY`. [#26675](https://github.com/ClickHouse/ClickHouse/pull/26675) ([Raúl Marín](https://github.com/Algunenano)).
* A função `mapPopulatesSeries` oferece suporte ao tipo `Map`. [#26663](https://github.com/ClickHouse/ClickHouse/pull/26663) ([Ildus Kurbangaliev](https://github.com/ildus)).
* Corrige o excesso de tentativas (x2) de conexão com `skip_unavailable_shards`. [#26658](https://github.com/ClickHouse/ClickHouse/pull/26658) ([Azat Khuzhin](https://github.com/azat)).
* Evita que o `clickhouse-benchmark` trave se a conexão falhar (ou seja, em EMFILE). [#26656](https://github.com/ClickHouse/ClickHouse/pull/26656) ([Azat Khuzhin](https://github.com/azat)).
* Permitir o uso de mais threads pelo engine Kafka. [#26642](https://github.com/ClickHouse/ClickHouse/pull/26642) ([feihengye](https://github.com/feihengye)).
* Adicionar suporte a round-robin para `clickhouse-benchmark` (não difere da execução regular com vários hosts/portas, exceto pelo relatório de estatísticas). [#26607](https://github.com/ClickHouse/ClickHouse/pull/26607) ([Azat Khuzhin](https://github.com/azat)).
* Dicionários executáveis (`executable`, `executable_pool`) permitem a criação por meio de consulta DDL usando `clickhouse-local`. Fecha [#22355](https://github.com/ClickHouse/ClickHouse/issues/22355). [#26510](https://github.com/ClickHouse/ClickHouse/pull/26510) ([Maksim Kita](https://github.com/kitaisreal)).
* Definido o tipo de consulta do cliente para handlers de protocolo de compatibilidade com `mysql` e `postgresql`. [#26498](https://github.com/ClickHouse/ClickHouse/pull/26498) ([anneji-dev](https://github.com/anneji-dev)).
* Aplique `LIMIT` aos shards para consultas como `SELECT * FROM dist ORDER BY key LIMIT 10` com `distributed_push_down_limit=1`. Evite executar etapas de `Distinct`/`LIMIT BY` para consultas como `SELECT DISTINCT shading_key FROM dist ORDER BY key`. Agora, `distributed_push_down_limit` é respeitado pela otimização `optimize_distributed_group_by_sharding_key`. [#26466](https://github.com/ClickHouse/ClickHouse/pull/26466) ([Azat Khuzhin](https://github.com/azat)).
* O protobuf foi atualizado para a versão 3.17.3. Os changelogs estão disponíveis em [https://github.com/protocolbuffers/protobuf/releases](https://github.com/protocolbuffers/protobuf/releases). [#26424](https://github.com/ClickHouse/ClickHouse/pull/26424) ([Ilya Yatsishin](https://github.com/qoega)).
* Ativa a configuração `use_hedged_requests`, que permite mitigar as latências de cauda em clusters grandes. [#26380](https://github.com/ClickHouse/ClickHouse/pull/26380) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Melhora o comportamento ao usar um host inexistente na lista de hosts permitidos do usuário. [#26368](https://github.com/ClickHouse/ClickHouse/pull/26368) ([ianton-ru](https://github.com/ianton-ru)).
* Adiciona a possibilidade de definir as configurações do monitor de diretório `Distributed` via CREATE TABLE (ou seja, `CREATE TABLE dist (key Int) Engine=Distributed(cluster, db, table) SETTINGS monitor_batch_inserts=1` e similares). [#26336](https://github.com/ClickHouse/ClickHouse/pull/26336) ([Azat Khuzhin](https://github.com/azat)).
* Salvar o endereço do servidor nas URLs do histórico da UI web se ele for diferente da origem da UI web. Isso fecha [#26044](https://github.com/ClickHouse/ClickHouse/issues/26044). [#26322](https://github.com/ClickHouse/ClickHouse/pull/26322) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Adicionar eventos às chamadas de perfil de `sleep` / `sleepEachRow`. [#26320](https://github.com/ClickHouse/ClickHouse/pull/26320) ([Raúl Marín](https://github.com/Algunenano)).
* Permite reutilizar conexões de shards entre clusters diferentes. Isso também evita a criação de novas conexões ao usar a table function `cluster`. [#26318](https://github.com/ClickHouse/ClickHouse/pull/26318) ([Amos Bird](https://github.com/amosbird)).
* Controlar o intervalo de execução da limpeza de diretórios temporários antigos por meio de um parâmetro com valor padrão. [#26212](https://github.com/ClickHouse/ClickHouse/issues/26212). [#26313](https://github.com/ClickHouse/ClickHouse/pull/26313) ([fastio](https://github.com/fastio)).
* Adicionada a configuração `function_range_max_elements_in_block` para ajustar o limite de segurança do volume de dados gerado pela função `range`. Isso fecha [#26303](https://github.com/ClickHouse/ClickHouse/issues/26303). [#26305](https://github.com/ClickHouse/ClickHouse/pull/26305) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Verificar a função de hash na criação da tabela, e não na amostragem. Adicionar configurações para MergeTree; se alguém criar uma tabela com uma coluna de amostragem incorreta, mas a amostragem nunca for usada, desativar essas configurações para iniciar o servidor sem gerar exceção. [#26256](https://github.com/ClickHouse/ClickHouse/pull/26256) ([zhaoyu](https://github.com/zxc111)).
* Adicionada a configuração `output_format_avro_string_column_pattern` para gravar as colunas String especificadas em Avro como string, em vez do padrão bytes. Implementa [#22414](https://github.com/ClickHouse/ClickHouse/issues/22414). [#26245](https://github.com/ClickHouse/ClickHouse/pull/26245) ([Ilya Golshtein](https://github.com/ilejn)).
* Adicionadas informações sobre o tamanho das colunas na tabela `system.columns` para as tabelas `Log` e `TinyLog`. Isso encerra [#9001](https://github.com/ClickHouse/ClickHouse/issues/9001). [#26241](https://github.com/ClickHouse/ClickHouse/pull/26241) ([Nikolay Degterinsky](https://github.com/evillique)).
* Não gerar exceção ao consultar a tabela `system.detached_parts` se houver uma configuração de disco personalizada e o diretório `detached` não existir em alguns discos. Isso fecha [#26078](https://github.com/ClickHouse/ClickHouse/issues/26078). [#26236](https://github.com/ClickHouse/ClickHouse/pull/26236) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Verificação de funções não determinísticas em chaves, incluindo expressões constantes como `now()` e `today()`. Fecha [#25875](https://github.com/ClickHouse/ClickHouse/issues/25875). Fecha [#11333](https://github.com/ClickHouse/ClickHouse/issues/11333). [#26235](https://github.com/ClickHouse/ClickHouse/pull/26235) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* converte os tipos de dados timestamp e timestamptz para `DateTime64` no mecanismo de tabela PostgreSQL. [#26234](https://github.com/ClickHouse/ClickHouse/pull/26234) ([jasine](https://github.com/jasine)).
* Aplique uma análise agressiva de índice IN para projeções, para que uma projeção candidata melhor possa ser selecionada. [#26218](https://github.com/ClickHouse/ClickHouse/pull/26218) ([Amos Bird](https://github.com/amosbird)).
* Removida a palavra-chave GLOBAL de IN quando uma função escalar é passada. Em versões anteriores, se o usuário especificasse `GLOBAL IN f(x)`, era gerada uma exceção. [#26217](https://github.com/ClickHouse/ClickHouse/pull/26217) ([Amos Bird](https://github.com/amosbird)).
* Adiciona o ID do erro (como `BAD_ARGUMENTS`) às mensagens de exceção. Fecha [#25862](https://github.com/ClickHouse/ClickHouse/issues/25862). [#26172](https://github.com/ClickHouse/ClickHouse/pull/26172) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige a saída incorreta com a opção --progress no clickhouse-local. A barra de progresso será limpa ao atingir 100%, da mesma forma que no clickhouse-client. Fecha [#17484](https://github.com/ClickHouse/ClickHouse/issues/17484). [#26128](https://github.com/ClickHouse/ClickHouse/pull/26128) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adiciona a configuração `merge_selecting_sleep_ms`. [#26120](https://github.com/ClickHouse/ClickHouse/pull/26120) ([lthaooo](https://github.com/lthaooo)).
* Remova o uso complexo do Linux AIO com leitura antecipada de um bloco e substitua-o por I/O síncrona simples com O\_DIRECT. Em versões anteriores, a configuração `min_bytes_to_use_direct_io` pode não funcionar corretamente se `max_threads` for maior que um. A leitura com I/O direto (desabilitada por padrão para consultas e habilitada por padrão para grandes mesclagens) passará a funcionar de forma menos eficiente. Isso fecha [#25997](https://github.com/ClickHouse/ClickHouse/issues/25997). [#26003](https://github.com/ClickHouse/ClickHouse/pull/26003) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Executa flush da tabela `Distributed` na consulta `REPLACE TABLE`. Resolve [#24566](https://github.com/ClickHouse/ClickHouse/issues/24566) - Não substitui (nem cria) a tabela na consulta `[CREATE OR] REPLACE TABLE ... AS SELECT` se a inserção na nova tabela falhar. Resolve [#23175](https://github.com/ClickHouse/ClickHouse/issues/23175). [#25895](https://github.com/ClickHouse/ClickHouse/pull/25895) ([tavplubix](https://github.com/tavplubix)).
* Adiciona a coluna `views` a system.query\_log, contendo os nomes das views (materializadas ou live) executadas pela consulta. Adiciona uma nova tabela de log (`system.query_views_log`) que contém informações sobre cada view executada durante uma consulta. Modifica a execução de views: quando uma exceção é lançada durante a execução de uma view, qualquer view que já tenha sido iniciada continuará em execução até ser concluída. Antes, esse era o comportamento com parallel\_view\_processing=true; agora, esse comportamento é sempre o mesmo. - Views dependentes agora reportam o progresso de leitura ao contexto. [#25714](https://github.com/ClickHouse/ClickHouse/pull/25714) ([Raúl Marín](https://github.com/Algunenano)).
* Realiza a drenagem assíncrona de conexões ao concluir a execução de consultas distribuídas. Foi adicionada uma nova configuração do servidor, `max_threads_for_connection_collector`, que especifica o número de workers para reciclar conexões em segundo plano. Se o pool estiver cheio, a conexão será drenada de forma síncrona, mas de um jeito um pouco diferente de antes: ela será drenada depois de enviarmos EOS ao cliente, a consulta será concluída com sucesso assim que receber dados suficientes, e qualquer exceção será registrada em log em vez de ser repassada ao cliente. Foi adicionada a configuração `drain_timeout` (3 segundos por padrão). A drenagem da conexão será interrompida ao atingir o timeout. [#25674](https://github.com/ClickHouse/ClickHouse/pull/25674) ([Amos Bird](https://github.com/amosbird)).
* Suporte a múltiplas inclusões na configuração. É possível incluir a configuração de usuários e a de servidores remotos a partir de múltiplas fontes. Basta inserir o elemento `<include />` com o atributo `from_zk`, `from_env` ou `incl`, e ele será substituído pelo conteúdo correspondente. [#24404](https://github.com/ClickHouse/ClickHouse/pull/24404) ([nvartolomei](https://github.com/nvartolomei)).
* Corrigida a inserção de múltiplos blocos em tabela distribuída com `insert_distributed_one_random_shard = 1`. Este é um recurso marginal. Classificado como melhoria. [#23140](https://github.com/ClickHouse/ClickHouse/pull/23140) ([Amos Bird](https://github.com/amosbird)).
* Suporte para chaves/valores `LowCardinality` e `FixedString` no tipo `Map`. [#21543](https://github.com/ClickHouse/ClickHouse/pull/21543) ([hexiaoting](https://github.com/hexiaoting)).
* Ativa o recarregamento da configuração do disco local. [#19526](https://github.com/ClickHouse/ClickHouse/pull/19526) ([taiyang-li](https://github.com/taiyang-li)).

<div id="bug-fix-2">
  #### Correção de erro
</div>

* Corrige alguns bugs que podem fazer as réplicas divergirem. [#27808](https://github.com/ClickHouse/ClickHouse/pull/27808) ([tavplubix](https://github.com/tavplubix)).
* Corrige um bug raro no `DROP PART` que pode levar ao erro `Unexpected merged part intersects drop range`. [#27807](https://github.com/ClickHouse/ClickHouse/pull/27807) ([alesapin](https://github.com/alesapin)).
* Evita falhas em alguns formatos quando uma mensagem NULL (tombstone) era recebida do Kafka. Fecha [#19255](https://github.com/ClickHouse/ClickHouse/issues/19255). [#27794](https://github.com/ClickHouse/ClickHouse/pull/27794) ([filimonov](https://github.com/filimonov)).
* Corrige a filtragem de colunas com union distinct em subconsulta. Fecha [#27578](https://github.com/ClickHouse/ClickHouse/issues/27578). [#27689](https://github.com/ClickHouse/ClickHouse/pull/27689) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige a conversão de tipo inadequada quando funções como `arrayHas` são aplicadas a arrays de LowCardinality de Nullable de diferentes tipos não numéricos, como `DateTime` e `DateTime64`. Em versões anteriores, ocorria uma conversão inadequada. Na nova versão, isso gerará uma exceção. Isso fecha [#26330](https://github.com/ClickHouse/ClickHouse/issues/26330). [#27682](https://github.com/ClickHouse/ClickHouse/pull/27682) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige a função de tabela postgresql, que resultava em conexões não fechadas. Fecha [#26088](https://github.com/ClickHouse/ClickHouse/issues/26088). [#27662](https://github.com/ClickHouse/ClickHouse/pull/27662) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigido outro caso do erro `Unexpected merged part ... intersecting drop range ...`. [#27656](https://github.com/ClickHouse/ClickHouse/pull/27656) ([tavplubix](https://github.com/tavplubix)).
* Corrige um erro em uma coluna com alias na tabela `Distributed`. [#27652](https://github.com/ClickHouse/ClickHouse/pull/27652) ([Vladimir C](https://github.com/vdimir)).
* Após definir `max_memory_usage*` com um valor diferente de zero, não era possível redefini-lo para 0 (ilimitado). Isso foi corrigido. [#27638](https://github.com/ClickHouse/ClickHouse/pull/27638) ([tavplubix](https://github.com/tavplubix)).
* Corrigido o underflow no valor de tempo ao construí-lo a partir de componentes. Fecha [#27193](https://github.com/ClickHouse/ClickHouse/issues/27193). [#27605](https://github.com/ClickHouse/ClickHouse/pull/27605) ([Vasily Nemkov](https://github.com/Enmk)).
* Corrige uma falha durante a materialização de projeção quando algumas partes contêm colunas ausentes. Isso corrige [#27512](https://github.com/ClickHouse/ClickHouse/issues/27512). [#27528](https://github.com/ClickHouse/ClickHouse/pull/27528) ([Amos Bird](https://github.com/amosbird)).
* corrigida a métrica `BackgroundMessageBrokerSchedulePoolTask`, possivelmente com erro de digitação. [#27452](https://github.com/ClickHouse/ClickHouse/pull/27452) ([Ben](https://github.com/benbiti)).
* Corrige consultas distribuídas com zero shards e agregação. [#27427](https://github.com/ClickHouse/ClickHouse/pull/27427) ([Azat Khuzhin](https://github.com/azat)).
* Compatibilidade com `/proc/meminfo` quando ele não contém o sufixo KB. [#27361](https://github.com/ClickHouse/ClickHouse/pull/27361) ([Mike Kot](https://github.com/myrrc)).
* Corrige resultado incorreto em consulta com segurança em nível de linha, PREWHERE e filtro LowCardinality. Corrige [#27179](https://github.com/ClickHouse/ClickHouse/issues/27179). [#27329](https://github.com/ClickHouse/ClickHouse/pull/27329) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigida a validação incorreta do ID da partição para tabelas MergeTree criadas com a sintaxe antiga. [#27328](https://github.com/ClickHouse/ClickHouse/pull/27328) ([tavplubix](https://github.com/tavplubix)).
* Corrigido o protocolo MySQL ao usar formatos paralelos (CSV / TSV). [#27326](https://github.com/ClickHouse/ClickHouse/pull/27326) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige o erro `Cannot find column` em consultas com amostragem. Introduzido em [#24574](https://github.com/ClickHouse/ClickHouse/issues/24574). Corrige [#26522](https://github.com/ClickHouse/ClickHouse/issues/26522). [#27301](https://github.com/ClickHouse/ClickHouse/pull/27301) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige erros como `Expected ColumnLowCardinality, gotUInt8` ou `Bad cast from type DB::ColumnVector<char8_t> to DB::ColumnLowCardinality` em algumas consultas com `LowCardinality` em `PREWHERE`. E, mais importante, corrige a falta de espaço em branco na mensagem de erro. Corrige [#23515](https://github.com/ClickHouse/ClickHouse/issues/23515). [#27298](https://github.com/ClickHouse/ClickHouse/pull/27298) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigido `distributed_group_by_no_merge = 2` com `distributed_push_down_limit = 1` ou `optimize_distributed_group_by_sharding_key = 1` com `LIMIT BY` e `LIMIT OFFSET`. [#27249](https://github.com/ClickHouse/ClickHouse/pull/27249) ([Azat Khuzhin](https://github.com/azat)). Essas são combinações obscuras de configurações que ninguém usa.
* Corrige mutação travada em partições inválidas no MergeTree não replicado. [#27248](https://github.com/ClickHouse/ClickHouse/pull/27248) ([Azat Khuzhin](https://github.com/azat)).
* Em caso de ambiguidade, as funções lambda dão preferência a seus argumentos em vez de outros aliases ou identificadores. [#27235](https://github.com/ClickHouse/ClickHouse/pull/27235) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige a estrutura da coluna no merge join, fecha [#27091](https://github.com/ClickHouse/ClickHouse/issues/27091). [#27217](https://github.com/ClickHouse/ClickHouse/pull/27217) ([Vladimir C](https://github.com/vdimir)).
* Em casos raros, a tabela `system.detached_parts` podia conter informações incorretas para algumas partes; isso foi corrigido. Corrige [#27114](https://github.com/ClickHouse/ClickHouse/issues/27114). [#27183](https://github.com/ClickHouse/ClickHouse/pull/27183) ([tavplubix](https://github.com/tavplubix)).
* Corrige o uso de memória não inicializada nas funções `multiSearch*` com array vazio, fecha [#27169](https://github.com/ClickHouse/ClickHouse/issues/27169). [#27181](https://github.com/ClickHouse/ClickHouse/pull/27181) ([Vladimir C](https://github.com/vdimir)).
* Corrige a sincronização no GRPCServer. Este PR corrige [#27024](https://github.com/ClickHouse/ClickHouse/issues/27024). [#27064](https://github.com/ClickHouse/ClickHouse/pull/27064) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrigido o processamento da configuração de `cache`, `complex_key_cache`, `ssd_cache`, `complex_key_ssd_cache`. As opções `allow_read_expired_keys`, `max_update_queue_size`, `update_queue_push_timeout_milliseconds`, `query_wait_timeout_milliseconds` não eram processadas para dicionários de tipos diferentes de `cache`. [#27032](https://github.com/ClickHouse/ClickHouse/pull/27032) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrigido possível acúmulo de mutations devido a uma condição de corrida com DROP\_RANGE. [#27002](https://github.com/ClickHouse/ClickHouse/pull/27002) ([Azat Khuzhin](https://github.com/azat)).
* Agora, o ID da partição em consultas como `ALTER TABLE ... PARTITION ID xxx` é validado quanto à sua correção. Corrige [#25718](https://github.com/ClickHouse/ClickHouse/issues/25718). [#26963](https://github.com/ClickHouse/ClickHouse/pull/26963) ([alesapin](https://github.com/alesapin)).
* Corrige o erro "Nome de coluna desconhecido" em junções múltiplas em alguns casos, fecha [#26899](https://github.com/ClickHouse/ClickHouse/issues/26899). [#26957](https://github.com/ClickHouse/ClickHouse/pull/26957) ([Vladimir C](https://github.com/vdimir)).
* Corrige a leitura de TLDs personalizados (o processamento era interrompido com buffer menor ou arquivo maior). [#26948](https://github.com/ClickHouse/ClickHouse/pull/26948) ([Azat Khuzhin](https://github.com/azat)).
* Corrige o erro `Missing columns: 'xxx'` quando a coluna `DEFAULT` faz referência a outra coluna não materializada sem expressão `DEFAULT`. Corrige [#26591](https://github.com/ClickHouse/ClickHouse/issues/26591). [#26900](https://github.com/ClickHouse/ClickHouse/pull/26900) ([alesapin](https://github.com/alesapin)).
* Corrigido o carregamento das chaves de dicionário no `library-bridge` para a fonte de dicionário `library`. [#26834](https://github.com/ClickHouse/ClickHouse/pull/26834) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Os parâmetros de funções agregadas podiam se perder ao aplicar alguns combinadores, causando exceções como `Conversion from AggregateFunction(topKArray, Array(String)) to AggregateFunction(topKArray(10), Array(String)) is not supported`. Isso foi corrigido. Corrige [#26196](https://github.com/ClickHouse/ClickHouse/issues/26196) e [#26433](https://github.com/ClickHouse/ClickHouse/issues/26433). [#26814](https://github.com/ClickHouse/ClickHouse/pull/26814) ([tavplubix](https://github.com/tavplubix)).
* Adicionado o valor `event_time_microseconds` para `REMOVE_PART` em `system.part_log`. Nas versões anteriores, ele não era definido. [#26720](https://github.com/ClickHouse/ClickHouse/pull/26720) ([Azat Khuzhin](https://github.com/azat)).
* Não remova os dados ao desligar a tabela ReplicatedMergeTree, para evitar inconsistências entre dados e metadados. [#26716](https://github.com/ClickHouse/ClickHouse/pull/26716) ([nvartolomei](https://github.com/nvartolomei)).
* Às vezes, `SET ROLE` podia não funcionar corretamente; este PR corrige isso. [#26707](https://github.com/ClickHouse/ClickHouse/pull/26707) ([Vitaly Baranov](https://github.com/vitlibar)).
* Algumas correções na formatação paralela ([https://github.com/ClickHouse/ClickHouse/issues/26694](https://github.com/ClickHouse/ClickHouse/issues/26694)). [#26703](https://github.com/ClickHouse/ClickHouse/pull/26703) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige uma possível desreferenciação de nullptr em funções de janela. Isso corrige [#25276](https://github.com/ClickHouse/ClickHouse/issues/25276). [#26668](https://github.com/ClickHouse/ClickHouse/pull/26668) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* Corrigida a conversão do arquivo de histórico do clickhouse-client (ao atualizar a partir do formato usado por uma versão do clickhouse-client de 3 anos atrás) se o arquivo estiver vazio. [#26589](https://github.com/ClickHouse/ClickHouse/pull/26589) ([Azat Khuzhin](https://github.com/azat)).
* Corrige nomes incorretos das funções groupBitmapAnd/Or/Xor (que podem ser exibidos em algumas ocasiões). Isso foi corrigido. [#26557](https://github.com/ClickHouse/ClickHouse/pull/26557) ([Amos Bird](https://github.com/amosbird)).
* Atualiza a verificação do comando `chown` no entrypoint do Docker do clickhouse-server. Corrige o bug em que a reinicialização de pods do Kubernetes em cluster falhava (ou atingia timeout). [#26545](https://github.com/ClickHouse/ClickHouse/pull/26545) ([Ky Li](https://github.com/Kylinrix)).
* Corrige falha no desligamento do `RabbitMQ` caso sua inicialização não tenha sido iniciada. Fecha [#26504](https://github.com/ClickHouse/ClickHouse/issues/26504). [#26529](https://github.com/ClickHouse/ClickHouse/pull/26529) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige problemas na consulta `CREATE DICTIONARY` se o nome do dicionário ou do banco de dados estivesse entre aspas. Fecha [#26491](https://github.com/ClickHouse/ClickHouse/issues/26491). [#26508](https://github.com/ClickHouse/ClickHouse/pull/26508) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige a resolução de nomes de coluna que ficava incorreta após reescrever aliases de coluna. Isso corrige [#26432](https://github.com/ClickHouse/ClickHouse/issues/26432). [#26475](https://github.com/ClickHouse/ClickHouse/pull/26475) ([Amos Bird](https://github.com/amosbird)).
* Corrige algumas falhas do msan encontradas por fuzzing. Corrige [#22517](https://github.com/ClickHouse/ClickHouse/issues/22517). [#26428](https://github.com/ClickHouse/ClickHouse/pull/26428) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige fluxo infinito de blocos não correspondidos no join em `partial_merge_join`, fecha [#26325](https://github.com/ClickHouse/ClickHouse/issues/26325). [#26374](https://github.com/ClickHouse/ClickHouse/pull/26374) ([Vladimir C](https://github.com/vdimir)).
* Corrige possível travamento ao fazer login com um usuário removido. Este PR corrige [#26073](https://github.com/ClickHouse/ClickHouse/issues/26073). [#26363](https://github.com/ClickHouse/ClickHouse/pull/26363) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrigido `optimize_distributed_group_by_sharding_key` para várias colunas (causava resultado incorreto com `optimize_skip_unused_shards=1`/`allow_nondeterministic_optimize_skip_unused_shards=1` e várias colunas na expressão da chave de sharding). [#26353](https://github.com/ClickHouse/ClickHouse/pull/26353) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido um bug raro na recuperação de réplica perdida que podia fazer as réplicas divergirem. [#26321](https://github.com/ClickHouse/ClickHouse/pull/26321) ([tavplubix](https://github.com/tavplubix)).
* Corrige a descompressão zstd (para importação/exportação no formato de encapsulamento zstd, não relacionado aos dados das tabelas) caso haja sequências de escape no fim do buffer interno. Fecha [#26013](https://github.com/ClickHouse/ClickHouse/issues/26013). [#26314](https://github.com/ClickHouse/ClickHouse/pull/26314) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige erro lógico no join com totals, fecha [#26017](https://github.com/ClickHouse/ClickHouse/issues/26017). [#26250](https://github.com/ClickHouse/ClickHouse/pull/26250) ([Vladimir C](https://github.com/vdimir)).
* Removida a quebra de linha excessiva na coluna `thread_name` da tabela `system.stack_trace`. Isso corrige [#24124](https://github.com/ClickHouse/ClickHouse/issues/24124). [#26210](https://github.com/ClickHouse/ClickHouse/pull/26210) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige uma possível falha se mais de uma expressão `untuple` for usada. [#26179](https://github.com/ClickHouse/ClickHouse/pull/26179) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Não gerar exceção em `toString` para Enum Nullable se o Enum não tiver valor para zero, fecha [#25806](https://github.com/ClickHouse/ClickHouse/issues/25806). [#26123](https://github.com/ClickHouse/ClickHouse/pull/26123) ([Vladimir C](https://github.com/vdimir)).
* Corrigido o `sequence_id` incorreto em pacotes do protocolo MySQL que o ClickHouse envia em caso de exceção durante a execução da consulta. Isso pode fazer com que o cliente MySQL redefina a conexão com o servidor ClickHouse. Corrige [#21184](https://github.com/ClickHouse/ClickHouse/issues/21184). [#26051](https://github.com/ClickHouse/ClickHouse/pull/26051) ([tavplubix](https://github.com/tavplubix)).
* Correção para o caso em que `cutToFirstSignificantSubdomainCustom()`/`cutToFirstSignificantSubdomainCustomWithWWW()`/`firstSignificantSubdomainCustom()` retorna um tipo incorreto para constantes e, portanto, `optimize_skip_unused_shards` não funciona. [#26041](https://github.com/ClickHouse/ClickHouse/pull/26041) ([Azat Khuzhin](https://github.com/azat)).
* Corrige um possível cabeçalho inconsistente ao usar projeção normal com prewhere. Isso corrige [#26020](https://github.com/ClickHouse/ClickHouse/issues/26020). [#26038](https://github.com/ClickHouse/ClickHouse/pull/26038) ([Amos Bird](https://github.com/amosbird)).
* Corrige o sharding\_key de uma coluna sem função para remote() (antes, `select * from remote('127.1', system.one, dummy)` resultava no erro `Unknown column: dummy, there are only columns .`). [#25824](https://github.com/ClickHouse/ClickHouse/pull/25824) ([Azat Khuzhin](https://github.com/azat)).
* Corrigidos os erros `Not found column ...` e `Missing column ...` ao selecionar em `MaterializeMySQL`. Corrige [#23708](https://github.com/ClickHouse/ClickHouse/issues/23708), [#24830](https://github.com/ClickHouse/ClickHouse/issues/24830), [#25794](https://github.com/ClickHouse/ClickHouse/issues/25794). [#25822](https://github.com/ClickHouse/ClickHouse/pull/25822) ([tavplubix](https://github.com/tavplubix)).
* Corrigido `optimize_skip_unused_shards_rewrite_in` para tipos diferentes de UInt64 (pode, eventualmente, selecionar shards incorretos ou gerar `Cannot infer type of an empty tuple` ou `Function tuple requires at least one argument`). [#25798](https://github.com/ClickHouse/ClickHouse/pull/25798) ([Azat Khuzhin](https://github.com/azat)).

<div id="buildtestingpackaging-improvement-3">
  #### Melhoria em Compilação/Testes/Empacotamento
</div>

* Agora, os testes stateful e stateless são executados em fusos horários aleatórios. Corrige [#12439](https://github.com/ClickHouse/ClickHouse/issues/12439). A leitura de String como DateTime e a gravação de DateTime como String no formato Protobuf agora respeitam o fuso horário. A leitura de UInt16 como DateTime nos formatos Arrow e Parquet agora o trata como Date e depois o converte em DateTime de acordo com o fuso horário do DateTime, porque Date é serializado em Arrow e Parquet como UInt16. O GraphiteMergeTree agora respeita o fuso horário no arredondamento de valores de tempo. Corrige [#5098](https://github.com/ClickHouse/ClickHouse/issues/5098). Autor: @alexey-milovidov. [#15408](https://github.com/ClickHouse/ClickHouse/pull/15408) ([alesapin](https://github.com/alesapin)).
* `clickhouse-test` oferece suporte a testes SQL com templates [Jinja2](https://jinja.palletsprojects.com/en/3.0.x/templates/#synopsis). [#26579](https://github.com/ClickHouse/ClickHouse/pull/26579) ([Vladimir C](https://github.com/vdimir)).
* Adiciona suporte para compilação com `clang-13`. Isso encerra [#27705](https://github.com/ClickHouse/ClickHouse/issues/27705). [#27714](https://github.com/ClickHouse/ClickHouse/pull/27714) ([alexey-milovidov](https://github.com/alexey-milovidov)). [#27777](https://github.com/ClickHouse/ClickHouse/pull/27777) ([Sergei Semin](https://github.com/syominsergey))
* Adiciona opções do CMake para compilação com ou sem um conjunto específico de instruções de CPU. Isso se refere a [#17469](https://github.com/ClickHouse/ClickHouse/issues/17469) e [#27509](https://github.com/ClickHouse/ClickHouse/issues/27509). [#27508](https://github.com/ClickHouse/ClickHouse/pull/27508) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige a vinculação de programas auxiliares ao usar bibliotecas dinâmicas. [#26958](https://github.com/ClickHouse/ClickHouse/pull/26958) ([Raúl Marín](https://github.com/Algunenano)).
* Atualiza o RocksDB para a master de `2021-07-16`. [#26411](https://github.com/ClickHouse/ClickHouse/pull/26411) ([alexey-milovidov](https://github.com/alexey-milovidov)).

<div id="clickhouse-release-v218-2021-08-12">
  ### Lançamento do ClickHouse v21.8, 2021-08-12
</div>

<div id="upgrade-notes">
  #### Notas de atualização
</div>

* A nova versão usa o tipo de dados `Map` nas tabelas de logs do sistema (`system.query_log`, `system.query_thread_log`, `system.processes`, `system.opentelemetry_span_log`). Essas tabelas serão criadas automaticamente com os novos tipos de dados. Colunas virtuais são criadas para dar suporte a consultas antigas. Fecha [#18698](https://github.com/ClickHouse/ClickHouse/issues/18698). [#23934](https://github.com/ClickHouse/ClickHouse/pull/23934), [#25773](https://github.com/ClickHouse/ClickHouse/pull/25773) ([hexiaoting](https://github.com/hexiaoting), [sundy-li](https://github.com/sundy-li), [Maksim Kita](https://github.com/kitaisreal)). Se você quiser *fazer downgrade* da versão 21.8 para versões anteriores, precisará limpar manualmente as tabelas de sistema com logs. Consulte `/var/lib/clickhouse/data/system/*_log`.

<div id="new-features">
  #### Novos recursos
</div>

* Adiciona suporte a parte do padrão SQL/JSON. [#24148](https://github.com/ClickHouse/ClickHouse/pull/24148) ([l1tsolaiki](https://github.com/l1tsolaiki), [Kseniia Sumarokova](https://github.com/kssenii)).
* Coleta métricas comuns do sistema (em `system.asynchronous_metrics` e `system.asynchronous_metric_log`) sobre uso de CPU, disco, memória, IO, rede, arquivos, média de carga, frequências da CPU, sensores térmicos, contadores EDAC e uptime do sistema; também foram adicionadas métricas sobre o jitter de escalonamento e o tempo gasto na coleta dessas métricas. Funciona de forma semelhante ao `atop` no ClickHouse e permite acessar dados de monitoramento mesmo sem ferramentas adicionais instaladas. Fecha [#9430](https://github.com/ClickHouse/ClickHouse/issues/9430). [#24416](https://github.com/ClickHouse/ClickHouse/pull/24416) ([alexey-milovidov](https://github.com/alexey-milovidov), [Yegor Levankov](https://github.com/elevankoff)).
* Adiciona o engine de tabela e o engine de banco de dados MaterializedPostgreSQL. Esse engine de banco de dados permite replicar um banco de dados inteiro ou qualquer subconjunto de tabelas desse banco. [#20470](https://github.com/ClickHouse/ClickHouse/pull/20470) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adiciona as novas funções `leftPad()`, `rightPad()`, `leftPadUTF8()`, `rightPadUTF8()`. [#26075](https://github.com/ClickHouse/ClickHouse/pull/26075) ([Vitaly Baranov](https://github.com/vitlibar)).
* Adiciona a palavra-chave `FIRST` ao comando `ADD INDEX` para permitir adicionar o índice no início da lista de índices. [#25904](https://github.com/ClickHouse/ClickHouse/pull/25904) ([xjewer](https://github.com/xjewer)).
* Introduz a tabela `system.data_skipping_indices`, que contém informações sobre os índices de data skipping existentes. Fecha [#7659](https://github.com/ClickHouse/ClickHouse/issues/7659). [#25693](https://github.com/ClickHouse/ClickHouse/pull/25693) ([Dmitry Novik](https://github.com/novikd)).
* Adiciona as funções `bin`/`unbin`. [#25609](https://github.com/ClickHouse/ClickHouse/pull/25609) ([zhaoyu](https://github.com/zxc111)).
* Passa a oferecer suporte aos tipos `Map`, `UInt128`, `Int128`, `UInt256` e `Int256` nas funções `mapAdd` e `mapSubtract`. [#25596](https://github.com/ClickHouse/ClickHouse/pull/25596) ([Ildus Kurbangaliev](https://github.com/ildus)).
* Passa a oferecer suporte à expressão `DISTINCT ON (columns)`, fecha [#25404](https://github.com/ClickHouse/ClickHouse/issues/25404). [#25589](https://github.com/ClickHouse/ClickHouse/pull/25589) ([Zijie Lu](https://github.com/TszKitLo40)).
* Adiciona a capacidade de redefinir uma configuração personalizada para o valor padrão e removê-la dos metadados da tabela. Isso permite reverter a alteração sem precisar conhecer o valor padrão do sistema/configuração. Fecha [#14449](https://github.com/ClickHouse/ClickHouse/issues/14449). [#17769](https://github.com/ClickHouse/ClickHouse/pull/17769) ([xjewer](https://github.com/xjewer)).
* Renderiza pipelines como gráficos na Web UI se a consulta `EXPLAIN PIPELINE graph = 1` for enviada. [#26067](https://github.com/ClickHouse/ClickHouse/pull/26067) ([alexey-milovidov](https://github.com/alexey-milovidov)).

<div id="performance-improvement-1">
  #### Melhorias de desempenho
</div>

* Compila funções de agregação. Use a opção `compile_aggregate_expressions` para habilitá-la. [#24789](https://github.com/ClickHouse/ClickHouse/pull/24789) ([Maksim Kita](https://github.com/kitaisreal)).
* Melhora a latência de consultas curtas que exigem leitura de tabelas com muitas colunas. [#26371](https://github.com/ClickHouse/ClickHouse/pull/26371) ([Anton Popov](https://github.com/CurtizJ)).

<div id="improvements">
  #### Melhorias
</div>

* Use o tipo de dados `Map` nas tabelas de logs do sistema (`system.query_log`, `system.query_thread_log`, `system.processes`, `system.opentelemetry_span_log`). Essas tabelas serão criadas automaticamente com os novos tipos de dados. São criadas colunas virtuais para dar suporte às consultas antigas. Fecha [#18698](https://github.com/ClickHouse/ClickHouse/issues/18698). [#23934](https://github.com/ClickHouse/ClickHouse/pull/23934), [#25773](https://github.com/ClickHouse/ClickHouse/pull/25773) ([hexiaoting](https://github.com/hexiaoting), [sundy-li](https://github.com/sundy-li), [Maksim Kita](https://github.com/kitaisreal)).
* Para um dicionário com uma chave complexa contendo apenas um atributo, permitir não envolver a expressão de chave em uma tupla para as funções `dictGet`, `dictHas`. [#26130](https://github.com/ClickHouse/ClickHouse/pull/26130) ([Maksim Kita](https://github.com/kitaisreal)).
* Implementar a função `bin`/`hex` a partir dos estados de `AggregateFunction`. [#26094](https://github.com/ClickHouse/ClickHouse/pull/26094) ([zhaoyu](https://github.com/zxc111)).
* Suporte a argumentos do tipo `UUID` nas funções `empty` e `notEmpty`. Um `UUID` é considerado vazio se for composto apenas por zeros (UUID nulo). Fecha [#3446](https://github.com/ClickHouse/ClickHouse/issues/3446). [#25974](https://github.com/ClickHouse/ClickHouse/pull/25974) ([zhaoyu](https://github.com/zxc111)).
* Adicionado suporte a `SET SQL_SELECT_LIMIT` no protocolo MySQL. Fecha [#17115](https://github.com/ClickHouse/ClickHouse/issues/17115). [#25972](https://github.com/ClickHouse/ClickHouse/pull/25972) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Mais instrumentação para interação de rede: adiciona contadores para bytes recebidos/enviados; adiciona gauges para operações de recebimento/envio. Adicionada a documentação que faltava. Fecha [#5897](https://github.com/ClickHouse/ClickHouse/issues/5897). [#25962](https://github.com/ClickHouse/ClickHouse/pull/25962) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Adicionada a configuração `optimize_move_to_prewhere_if_final`. Se a consulta tiver `FINAL`, a otimização `move_to_prewhere` será habilitada somente se `optimize_move_to_prewhere` e `optimize_move_to_prewhere_if_final` estiverem habilitadas. Fecha [#8684](https://github.com/ClickHouse/ClickHouse/issues/8684). [#25940](https://github.com/ClickHouse/ClickHouse/pull/25940) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Permitir identificadores complexos entre aspas para tabelas em JOIN. Fecha [#17861](https://github.com/ClickHouse/ClickHouse/issues/17861). [#25924](https://github.com/ClickHouse/ClickHouse/pull/25924) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Adiciona suporte a componentes Unicode (por exemplo, chinês, cirílico) em tipos de dados `Nested`. Fecha [#25594](https://github.com/ClickHouse/ClickHouse/issues/25594). [#25923](https://github.com/ClickHouse/ClickHouse/pull/25923) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Permite que as funções `quantiles*` funcionem com `aggregate_functions_null_for_empty`. Fecha [#25892](https://github.com/ClickHouse/ClickHouse/issues/25892). [#25919](https://github.com/ClickHouse/ClickHouse/pull/25919) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Permite que os parâmetros de funções agregadas paramétricas sejam expressões constantes arbitrárias (por exemplo, `1 + 2`), e não apenas valores literais. Também permite usar parâmetros de consulta (em consultas parametrizadas como `{param:UInt8}`) dentro de funções agregadas paramétricas. Fecha [#11607](https://github.com/ClickHouse/ClickHouse/issues/11607). [#25910](https://github.com/ClickHouse/ClickHouse/pull/25910) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Lança corretamente a exceção ao tentar interpretar um `Date` inválido. Fecha [#6481](https://github.com/ClickHouse/ClickHouse/issues/6481). [#25909](https://github.com/ClickHouse/ClickHouse/pull/25909) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Suporte a múltiplos includes na configuração. É possível incluir a configuração de usuários e a configuração de servidores remotos a partir de várias fontes. Basta adicionar o elemento `<include />` com o atributo `from_zk`, `from_env` ou `incl`, e ele será substituído pelo valor correspondente. [#24404](https://github.com/ClickHouse/ClickHouse/pull/24404) ([nvartolomei](https://github.com/nvartolomei)).
* Suporte a consultas com uma coluna chamada `"null"` (deve ser especificada entre acentos graves ou aspas duplas) e `ON CLUSTER`. Fecha [#24035](https://github.com/ClickHouse/ClickHouse/issues/24035). [#25907](https://github.com/ClickHouse/ClickHouse/pull/25907) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Suporte para `LowCardinality`, `Decimal` e `UUID` no `JSONExtract`. Fecha [#24606](https://github.com/ClickHouse/ClickHouse/issues/24606). [#25900](https://github.com/ClickHouse/ClickHouse/pull/25900) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Converta o arquivo de histórico do formato `readline` para o formato `replxx`. [#25888](https://github.com/ClickHouse/ClickHouse/pull/25888) ([Azat Khuzhin](https://github.com/azat)).
* Corrige um problema que pode resultar em partes sobrepostas após `DROP PART` ou a exclusão em segundo plano de uma parte vazia. [#25884](https://github.com/ClickHouse/ClickHouse/pull/25884) ([alesapin](https://github.com/alesapin)).
* Melhor tratamento para partes perdidas em tabelas `ReplicatedMergeTree`. Corrige inconsistências raras na `ReplicationQueue`. Corrige [#10368](https://github.com/ClickHouse/ClickHouse/issues/10368). [#25820](https://github.com/ClickHouse/ClickHouse/pull/25820) ([alesapin](https://github.com/alesapin)).
* Permite iniciar o `clickhouse-client` com um diretório de trabalho ilegível. [#25817](https://github.com/ClickHouse/ClickHouse/pull/25817) ([ianton-ru](https://github.com/ianton-ru)).
* Corrigido o erro "No available columns" no armazenamento `Merge`. [#25801](https://github.com/ClickHouse/ClickHouse/pull/25801) ([Azat Khuzhin](https://github.com/azat)).
* O mecanismo MySQL agora oferece suporte à troca de comentários de colunas entre o MySQL e o ClickHouse. [#25795](https://github.com/ClickHouse/ClickHouse/pull/25795) ([Storozhuk Kostiantyn](https://github.com/sand6255)).
* Corrige o comportamento inconsistente de constante no `GROUP BY` em conjunto vazio. Fecha [#6842](https://github.com/ClickHouse/ClickHouse/issues/6842). [#25786](https://github.com/ClickHouse/ClickHouse/pull/25786) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Cancela merges já em execução na partição ao usar `DROP PARTITION` e `TRUNCATE` no `ReplicatedMergeTree`. Resolve [#17151](https://github.com/ClickHouse/ClickHouse/issues/17151). [#25684](https://github.com/ClickHouse/ClickHouse/pull/25684) ([tavplubix](https://github.com/tavplubix)).
* Adicionado suporte ao tipo de dados ENUM\` para o MaterializeMySQL. [#25676](https://github.com/ClickHouse/ClickHouse/pull/25676) ([Storozhuk Kostiantyn](https://github.com/sand6255)).
* Adiciona suporte a colunas materializadas e com alias em JOIN, fecha [#13274](https://github.com/ClickHouse/ClickHouse/issues/13274). [#25634](https://github.com/ClickHouse/ClickHouse/pull/25634) ([Vladimir C](https://github.com/vdimir)).
* Foi corrigida uma possível condição de corrida lógica entre `ALTER TABLE ... DETACH` e merges em segundo plano. [#25605](https://github.com/ClickHouse/ClickHouse/pull/25605) ([Azat Khuzhin](https://github.com/azat)).
* Faz com que a métrica `NetworkReceiveElapsedMicroseconds` passe a incluir corretamente o tempo gasto aguardando dados do cliente para `INSERT`. Fecha [#9958](https://github.com/ClickHouse/ClickHouse/issues/9958). [#25602](https://github.com/ClickHouse/ClickHouse/pull/25602) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Adiciona suporte a `TRUNCATE TABLE` para S3 e HDFS. Resolve [#25530](https://github.com/ClickHouse/ClickHouse/issues/25530). [#25550](https://github.com/ClickHouse/ClickHouse/pull/25550) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Suporte ao recarregamento dinâmico da configuração para alterar o número de threads no pool de execução de tarefas em segundo plano (merges, mutações, fetches). [#25548](https://github.com/ClickHouse/ClickHouse/pull/25548) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Permite extrair um elemento que não seja `string` como string usando `JSONExtract`. Isso é para [#25414](https://github.com/ClickHouse/ClickHouse/issues/25414). [#25452](https://github.com/ClickHouse/ClickHouse/pull/25452) ([Amos Bird](https://github.com/amosbird)).
* Suporte a expressões regulares no argumento `Database` de `StorageMerge`. Fecha [#776](https://github.com/ClickHouse/ClickHouse/issues/776). [#25064](https://github.com/ClickHouse/ClickHouse/pull/25064) ([flynn](https://github.com/ucasfl)).
* UI da web: se o valor parecer uma URL, gerar automaticamente um link. [#25965](https://github.com/ClickHouse/ClickHouse/pull/25965) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Faz `sudo service clickhouse-server start` funcionar em sistemas com `systemd`, como o CentOS 8. Fecha [#14298](https://github.com/ClickHouse/ClickHouse/issues/14298). Fecha [#17799](https://github.com/ClickHouse/ClickHouse/issues/17799). [#25921](https://github.com/ClickHouse/ClickHouse/pull/25921) ([alexey-milovidov](https://github.com/alexey-milovidov)).

<div id="bug-fixes">
  #### Correções de bugs
</div>

* Corrige o `SET ROLE` incorreto em alguns casos. [#26707](https://github.com/ClickHouse/ClickHouse/pull/26707) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrigida uma possível desreferenciação de `nullptr` em funções de janela. Corrigido [#25276](https://github.com/ClickHouse/ClickHouse/issues/25276). [#26668](https://github.com/ClickHouse/ClickHouse/pull/26668) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* Corrigidos os nomes incorretos das funções `groupBitmapAnd/Or/Xor`. Corrige [#26557](https://github.com/ClickHouse/ClickHouse/pull/26557) ([Amos Bird](https://github.com/amosbird)).
* Corrige falha no desligamento do RabbitMQ caso a configuração do RabbitMQ não tenha sido iniciada. Fecha [#26504](https://github.com/ClickHouse/ClickHouse/issues/26504). [#26529](https://github.com/ClickHouse/ClickHouse/pull/26529) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige problemas na consulta `CREATE DICTIONARY` caso o nome do dicionário ou do banco de dados estivesse entre aspas. Fecha [#26491](https://github.com/ClickHouse/ClickHouse/issues/26491). [#26508](https://github.com/ClickHouse/ClickHouse/pull/26508) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige a falha na resolução de nomes após a reescrita de aliases de coluna. Corrige [#26432](https://github.com/ClickHouse/ClickHouse/issues/26432). [#26475](https://github.com/ClickHouse/ClickHouse/pull/26475) ([Amos Bird](https://github.com/amosbird)).
* Corrige um fluxo infinito de blocos sem junção em `partial_merge_join`; fecha [#26325](https://github.com/ClickHouse/ClickHouse/issues/26325). [#26374](https://github.com/ClickHouse/ClickHouse/pull/26374) ([Vladimir C](https://github.com/vdimir)).
* Corrige um possível travamento ao fazer login com um usuário removido. Corrige [#26073](https://github.com/ClickHouse/ClickHouse/issues/26073). [#26363](https://github.com/ClickHouse/ClickHouse/pull/26363) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige `optimize_distributed_group_by_sharding_key` para várias colunas (leva a um resultado incorreto com `optimize_skip_unused_shards=1`/`allow_nondeterministic_optimize_skip_unused_shards=1` e várias colunas na expressão da chave de sharding). [#26353](https://github.com/ClickHouse/ClickHouse/pull/26353) ([Azat Khuzhin](https://github.com/azat)).
* `CAST` de `Date` para `DateTime` (ou `DateTime64`) não estava usando o fuso horário do tipo `DateTime`. Isso também pode afetar a comparação entre `Date` e `DateTime`. A inferência do tipo comum para `Date` e `DateTime` também não estava usando o fuso horário correspondente. Isso afetava os resultados da função `if` e a construção de arrays. Fecha [#24128](https://github.com/ClickHouse/ClickHouse/issues/24128). [#24129](https://github.com/ClickHouse/ClickHouse/pull/24129) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrigido um bug raro na recuperação de uma réplica perdida que pode fazer com que as réplicas fiquem divergentes. [#26321](https://github.com/ClickHouse/ClickHouse/pull/26321) ([tavplubix](https://github.com/tavplubix)).
* Corrige a descompressão com zstd caso haja sequências de escape no final do buffer interno. Fecha [#26013](https://github.com/ClickHouse/ClickHouse/issues/26013). [#26314](https://github.com/ClickHouse/ClickHouse/pull/26314) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige erro lógico em join com totals, resolve [#26017](https://github.com/ClickHouse/ClickHouse/issues/26017). [#26250](https://github.com/ClickHouse/ClickHouse/pull/26250) ([Vladimir C](https://github.com/vdimir)).
* Removida a quebra de linha excessiva na coluna `thread_name` da tabela `system.stack_trace`. Corrige [#24124](https://github.com/ClickHouse/ClickHouse/issues/24124). [#26210](https://github.com/ClickHouse/ClickHouse/pull/26210) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige o `joinGet` com colunas `LowCardinality`, fecha [#25993](https://github.com/ClickHouse/ClickHouse/issues/25993). [#26118](https://github.com/ClickHouse/ClickHouse/pull/26118) ([Vladimir C](https://github.com/vdimir)).
* Corrige uma possível queda em `pointInPolygon` se a configuração `validate_polygons` estiver desativada. [#26113](https://github.com/ClickHouse/ClickHouse/pull/26113) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrigida a exceção gerada ao iterar sobre um diretório remoto inexistente. [#26087](https://github.com/ClickHouse/ClickHouse/pull/26087) ([ianton-ru](https://github.com/ianton-ru)).
* Corrige um travamento raro do servidor causado por `abort` no cliente ZooKeeper. Corrige [#25813](https://github.com/ClickHouse/ClickHouse/issues/25813). [#26079](https://github.com/ClickHouse/ClickHouse/pull/26079) ([alesapin](https://github.com/alesapin)).
* Corrige a estimativa incorreta da quantidade de threads para o join RIGHT com subconsulta em alguns casos. Fecha [#24075](https://github.com/ClickHouse/ClickHouse/issues/24075). [#26052](https://github.com/ClickHouse/ClickHouse/pull/26052) ([Vladimir C](https://github.com/vdimir)).
* Corrigido o `sequence_id` incorreto nos pacotes do protocolo MySQL que o ClickHouse envia em caso de exceção durante a execução da consulta. Isso podia fazer com que o cliente MySQL redefinisse a conexão com o servidor ClickHouse. Corrige [#21184](https://github.com/ClickHouse/ClickHouse/issues/21184). [#26051](https://github.com/ClickHouse/ClickHouse/pull/26051) ([tavplubix](https://github.com/tavplubix)).
* Corrige possível incompatibilidade no cabeçalho ao usar projeção normal com `PREWHERE`. Corrige [#26020](https://github.com/ClickHouse/ClickHouse/issues/26020). [#26038](https://github.com/ClickHouse/ClickHouse/pull/26038) ([Amos Bird](https://github.com/amosbird)).
* Corrigida a formatação para `JSON` do tipo `Map` com chaves inteiras. [#25982](https://github.com/ClickHouse/ClickHouse/pull/25982) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigido um possível deadlock durante o desenrolamento da pilha no profiler de consultas. Corrige [#25968](https://github.com/ClickHouse/ClickHouse/issues/25968). [#25970](https://github.com/ClickHouse/ClickHouse/pull/25970) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige travamento ao chamar `dictGet()` com argumentos inválidos. [#25913](https://github.com/ClickHouse/ClickHouse/pull/25913) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrigida a autenticação `scram-sha-256` para os motores do PostgreSQL. Fecha [#24516](https://github.com/ClickHouse/ClickHouse/issues/24516). [#25906](https://github.com/ClickHouse/ClickHouse/pull/25906) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige um backoff excessivamente longo em tarefas em segundo plano quando o pool de segundo plano está cheio. Corrige [#25836](https://github.com/ClickHouse/ClickHouse/issues/25836). [#25893](https://github.com/ClickHouse/ClickHouse/pull/25893) ([alesapin](https://github.com/alesapin)).
* Corrigido o tratamento de exceções em ARM com tamanho de página diferente do padrão. Corrige [#25512](https://github.com/ClickHouse/ClickHouse/issues/25512), [#25044](https://github.com/ClickHouse/ClickHouse/issues/25044), [#24901](https://github.com/ClickHouse/ClickHouse/issues/24901), [#23183](https://github.com/ClickHouse/ClickHouse/issues/23183), [#20221](https://github.com/ClickHouse/ClickHouse/issues/20221), [#19703](https://github.com/ClickHouse/ClickHouse/issues/19703), [#19028](https://github.com/ClickHouse/ClickHouse/issues/19028), [#18391](https://github.com/ClickHouse/ClickHouse/issues/18391), [#18121](https://github.com/ClickHouse/ClickHouse/issues/18121), [#17994](https://github.com/ClickHouse/ClickHouse/issues/17994), [#12483](https://github.com/ClickHouse/ClickHouse/issues/12483). [#25854](https://github.com/ClickHouse/ClickHouse/pull/25854) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrigido `sharding&#95;key` de coluna sem função para `remote()` (antes, `select * from remote('127.1', system.one, dummy)` resultava no erro `Unknown column: dummy, there are only columns .`). [#25824](https://github.com/ClickHouse/ClickHouse/pull/25824) ([Azat Khuzhin](https://github.com/azat)).
* Corrigidos os erros `Not found column ...` e `Missing column ...` ao fazer consultas em `MaterializeMySQL`. Corrige [#23708](https://github.com/ClickHouse/ClickHouse/issues/23708), [#24830](https://github.com/ClickHouse/ClickHouse/issues/24830), [#25794](https://github.com/ClickHouse/ClickHouse/issues/25794). [#25822](https://github.com/ClickHouse/ClickHouse/pull/25822) ([tavplubix](https://github.com/tavplubix)).
* Corrige `optimize_skip_unused_shards_rewrite_in` para tipos diferentes de UInt64 (pode acabar selecionando shards incorretos ou gerar `Cannot infer type of an empty tuple` ou `Function tuple requires at least one argument`). [#25798](https://github.com/ClickHouse/ClickHouse/pull/25798) ([Azat Khuzhin](https://github.com/azat)).
* Corrige um bug raro na consulta `DROP PART` em tabelas `ReplicatedMergeTree`, que pode levar à mensagem de erro `Unexpected merged part intersecting drop range`. [#25783](https://github.com/ClickHouse/ClickHouse/pull/25783) ([alesapin](https://github.com/alesapin)).
* Corrigido um bug no `TTL` com expressão `GROUP BY` que deixava de executar o `TTL` após a primeira execução na parte. [#25743](https://github.com/ClickHouse/ClickHouse/pull/25743) ([alesapin](https://github.com/alesapin)).
* Permitir ao StorageMerge acessar tabelas com aliases. Fecha [#6051](https://github.com/ClickHouse/ClickHouse/issues/6051). [#25694](https://github.com/ClickHouse/ClickHouse/pull/25694) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige lentidão no `dict join` em alguns casos, fecha [#24209](https://github.com/ClickHouse/ClickHouse/issues/24209). [#25618](https://github.com/ClickHouse/ClickHouse/pull/25618) ([Vladimir C](https://github.com/vdimir)).
* Corrigido o `ALTER MODIFY COLUMN` para colunas que participam de expressões TTL. [#25554](https://github.com/ClickHouse/ClickHouse/pull/25554) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige a asserção em `PREWHERE` com tipo diferente de `UInt8`, fecha [#19589](https://github.com/ClickHouse/ClickHouse/issues/19589). [#25484](https://github.com/ClickHouse/ClickHouse/pull/25484) ([Vladimir C](https://github.com/vdimir)).
* Corrige uma falha do msan detectada por fuzzing. Corrige [#22517](https://github.com/ClickHouse/ClickHouse/issues/22517). [#26428](https://github.com/ClickHouse/ClickHouse/pull/26428) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Atualiza a verificação do comando `chown` no entrypoint do Docker `clickhouse-server`. Isso corrige o erro 'falha ao reiniciar o pod do cluster (ou timeout)' no Kubernetes. [#26545](https://github.com/ClickHouse/ClickHouse/pull/26545) ([Ky Li](https://github.com/Kylinrix)).

<div id="clickhouse-release-v217-2021-07-09">
  ### Lançamento do ClickHouse v21.7, 2021-07-09
</div>

<div id="backward-incompatible-change">
  #### Alteração incompatível com versões anteriores
</div>

* Melhorado o desempenho de consultas com grandes conjuntos definidos explicitamente. Foi adicionada a configuração de compatibilidade `legacy_column_name_of_tuple_literal`. Faz sentido defini-la como `true` ao realizar uma atualização gradual do cluster de uma versão anterior à 21.7 para qualquer versão superior. Caso contrário, consultas distribuídas com conjuntos definidos explicitamente na cláusula `IN` podem falhar durante a atualização. [#25371](https://github.com/ClickHouse/ClickHouse/pull/25371) ([Anton Popov](https://github.com/CurtizJ)).
* Alteração incompatível com versões anteriores e posteriores no tamanho máximo do buffer no clickhouse-keeper (uma alternativa experimental ao ZooKeeper). É melhor fazer isso agora (antes de entrar em produção) do que depois. [#25421](https://github.com/ClickHouse/ClickHouse/pull/25421) ([alesapin](https://github.com/alesapin)).

<div id="new-feature">
  #### Novo recurso
</div>

* Suporte à configuração em formato YAML como alternativa ao XML. Isso fecha [#3607](https://github.com/ClickHouse/ClickHouse/issues/3607). [#21858](https://github.com/ClickHouse/ClickHouse/pull/21858) ([BoloniniD](https://github.com/BoloniniD)).
* Fornece uma forma de restaurar uma tabela replicada quando os dados estão (possivelmente) presentes, mas os metadados do ZooKeeper foram perdidos. Resolve [#13458](https://github.com/ClickHouse/ClickHouse/issues/13458). [#13652](https://github.com/ClickHouse/ClickHouse/pull/13652) ([Mike Kot](https://github.com/myrrc)).
* Suporte a structs e maps em Arrow/Parquet/ORC e a dicionários nos formatos de entrada/saída Arrow. Introduz a nova configuração `output_format_arrow_low_cardinality_as_dictionary`. [#24341](https://github.com/ClickHouse/ClickHouse/pull/24341) ([Kruglov Pavel](https://github.com/Avogar)).
* Adicionado suporte ao tipo `Array` em dicionários. [#25119](https://github.com/ClickHouse/ClickHouse/pull/25119) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionada a função `bitPositionsToArray`. Fecha [#23792](https://github.com/ClickHouse/ClickHouse/issues/23792). Autor \[Kevin Wan] (@MaxWk). [#25394](https://github.com/ClickHouse/ClickHouse/pull/25394) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionada a função `dateName` para retornar nomes como 'Friday' ou 'April'. Autor \[Daniil Kondratyev] (@dankondr). [#25372](https://github.com/ClickHouse/ClickHouse/pull/25372) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionada a função `toJSONString` para serializar colunas em suas representações JSON. [#25164](https://github.com/ClickHouse/ClickHouse/pull/25164) ([Amos Bird](https://github.com/amosbird)).
* Agora, `query_log` tem duas novas colunas: `initial_query_start_time`, `initial_query_start_time_microsecond`, que registram o horário de início de uma consulta distribuída, se houver. [#25022](https://github.com/ClickHouse/ClickHouse/pull/25022) ([Amos Bird](https://github.com/amosbird)).
* Adicionada a função de agregação `segmentLengthSum`. [#24250](https://github.com/ClickHouse/ClickHouse/pull/24250) ([flynn](https://github.com/ucasfl)).
* Adicionada uma nova configuração booleana `prefer_global_in_and_join`, que faz com que todos os IN/JOIN sejam, por padrão, GLOBAL IN/JOIN. [#23434](https://github.com/ClickHouse/ClickHouse/pull/23434) ([Amos Bird](https://github.com/amosbird)).
* Suporte a consultas `ALTER DELETE` para o mecanismo de tabela `Join`. [#23260](https://github.com/ClickHouse/ClickHouse/pull/23260) ([foolchi](https://github.com/foolchi)).
* Adicionada a função de agregação `quantileBFloat16`, bem como as correspondentes `quantilesBFloat16` e `medianBFloat16`. É um estimador de quantil muito simples e rápido, com erro relativo não superior a 0.390625%. Isso fecha [#16641](https://github.com/ClickHouse/ClickHouse/issues/16641). [#23204](https://github.com/ClickHouse/ClickHouse/pull/23204) ([Ivan Novitskiy](https://github.com/RedClusive)).
* Implementada a função `sequenceNextNode()`, útil para `flow analysis`. [#19766](https://github.com/ClickHouse/ClickHouse/pull/19766) ([achimbab](https://github.com/achimbab)).

<div id="experimental-feature">
  #### Recurso experimental
</div>

* Adicionado suporte a um sistema de arquivos virtual sobre HDFS. [#11058](https://github.com/ClickHouse/ClickHouse/pull/11058) ([overshov](https://github.com/overshov)) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Agora, o clickhouse-keeper (uma alternativa experimental ao ZooKeeper) oferece suporte a ACLs `digest` semelhantes às do ZooKeeper. [#24448](https://github.com/ClickHouse/ClickHouse/pull/24448) ([alesapin](https://github.com/alesapin)).

<div id="performance-improvement">
  #### Melhoria de desempenho
</div>

* Adicionada uma otimização que converte algumas funções em leitura de subcolunas para reduzir a quantidade de dados lidos. Por exemplo, a instrução `col IS NULL` é convertida em leitura da subcoluna `col.null`. A otimização pode ser habilitada pela configuração `optimize_functions_to_subcolumns`, que atualmente fica desativada por padrão. [#24406](https://github.com/ClickHouse/ClickHouse/pull/24406) ([Anton Popov](https://github.com/CurtizJ)).
* Reescreve mais colunas como possíveis expressões de alias. Isso pode permitir otimizações melhores, como projeções. [#24405](https://github.com/ClickHouse/ClickHouse/pull/24405) ([Amos Bird](https://github.com/amosbird)).
* Um índice do tipo `bloom_filter` pode ser usado em expressões com a função `hasAny` e arrays constantes. Isso fecha: [#24291](https://github.com/ClickHouse/ClickHouse/issues/24291). [#24900](https://github.com/ClickHouse/ClickHouse/pull/24900) ([Vasily Nemkov](https://github.com/Enmk)).
* Adicionado backoff exponencial para reagendar a tentativa de leitura caso as filas do RabbitMQ estejam vazias. (O ClickHouse oferece suporte à importação de dados do RabbitMQ). Fecha [#24340](https://github.com/ClickHouse/ClickHouse/issues/24340). [#24415](https://github.com/ClickHouse/ClickHouse/pull/24415) ([Kseniia Sumarokova](https://github.com/kssenii)).

<div id="improvement">
  #### Melhoria
</div>

* Permite limitar a largura de banda da replicação. Adiciona duas configurações do Replicated\*MergeTree: `max_replicated_fetches_network_bandwidth` e `max_replicated_sends_network_bandwidth`, que permitem limitar a velocidade máxima de fetches/envios replicados para a tabela. Adiciona duas configurações para todo o servidor (no perfil de usuário `default`): `max_replicated_fetches_network_bandwidth_for_server` e `max_replicated_sends_network_bandwidth_for_server`, que limitam a velocidade máxima da replicação para todas as tabelas. As configurações não são aplicadas com total precisão. Desativado por padrão. Corrige [#1821](https://github.com/ClickHouse/ClickHouse/issues/1821). [#24573](https://github.com/ClickHouse/ClickHouse/pull/24573) ([alesapin](https://github.com/alesapin)).
* Restrições de recursos e isolamento para bridges ODBC e Library. Use um grupo e um usuário `clickhouse-bridge` separados para os processos de bridge. Defina `oom&#95;score&#95;adj` para que as bridges sejam os primeiros alvos do OOM killer. Defina o RSS máximo como 1 GiB. Fecha [#23861](https://github.com/ClickHouse/ClickHouse/issues/23861). [#25280](https://github.com/ClickHouse/ClickHouse/pull/25280) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adiciona um link simbólico independente `clickhouse-keeper` ao binário principal `clickhouse`. Agora é possível executar a coordenação sem o servidor ClickHouse principal. [#24059](https://github.com/ClickHouse/ClickHouse/pull/24059) ([alesapin](https://github.com/alesapin)).
* Usa configurações globais para consultas a `VIEW`. Foi corrigido o comportamento quando consultas a `VIEW` usam configurações locais, o que levava a erros se as configurações em `CREATE VIEW` e `SELECT` fossem diferentes. A partir de agora, `VIEW` não usará essas configurações modificadas, mas você ainda pode passar configurações adicionais na seção `SETTINGS` da consulta `CREATE VIEW`. Fecha [#20551](https://github.com/ClickHouse/ClickHouse/issues/20551). [#24095](https://github.com/ClickHouse/ClickHouse/pull/24095) ([Vladimir](https://github.com/vdimir)).
* Na inicialização do servidor, partes com ID de partição incorreto nunca eram removidas, mas sempre eram desanexadas. [#25070](https://github.com/ClickHouse/ClickHouse/issues/25070). [#25166](https://github.com/ClickHouse/ClickHouse/pull/25166) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Aumentado o tamanho do pool de agendamento em segundo plano para 128 (configuração `background_schedule_pool_size`). Isso ajuda a evitar que a fila de replicação fique travada em conexões lentas com o ZooKeeper. [#25072](https://github.com/ClickHouse/ClickHouse/pull/25072) ([alesapin](https://github.com/alesapin)).
* Adiciona a configuração do MergeTree `max_parts_to_merge_at_once`, que limita o número de partes que podem ser mescladas simultaneamente em segundo plano. Não afeta a consulta `OPTIMIZE FINAL`. Corrige [#1820](https://github.com/ClickHouse/ClickHouse/issues/1820). [#24496](https://github.com/ClickHouse/ClickHouse/pull/24496) ([alesapin](https://github.com/alesapin)).
* Permitir o uso do operador `NOT IN` na poda de partições. [#24894](https://github.com/ClickHouse/ClickHouse/pull/24894) ([Amos Bird](https://github.com/amosbird)).
* Passa a reconhecer como locais endereços IPv4 como `127.0.1.1`. Isso é controverso e encerra [#23504](https://github.com/ClickHouse/ClickHouse/issues/23504). Michael Filimonov testará essa funcionalidade. [#24316](https://github.com/ClickHouse/ClickHouse/pull/24316) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* O banco de dados ClickHouse criado com MaterializeMySQL (é um recurso experimental) agora contém todos os comentários das colunas do banco de dados MySQL que foi materializado. [#25199](https://github.com/ClickHouse/ClickHouse/pull/25199) ([Storozhuk Kostiantyn](https://github.com/sand6255)).
* Adicionadas configurações (`connection_auto_close`/`connection_max_tries`/`connection_pool_size`) no mecanismo de armazenamento MySQL. [#24146](https://github.com/ClickHouse/ClickHouse/pull/24146) ([Azat Khuzhin](https://github.com/azat)).
* Melhora no tempo de inicialização do engine Distributed. [#25663](https://github.com/ClickHouse/ClickHouse/pull/25663) ([Azat Khuzhin](https://github.com/azat)).
* Melhoria nas tabelas Distributed. Remoção das réplicas de dirname para internal\_replication=true (permite INSERT em Distributed com cluster a partir de qualquer número de réplicas; antes, apenas 15 réplicas eram suportadas, e qualquer quantidade acima disso falhava com ENAMETOOLONG ao criar o diretório para blocos assíncronos). [#25513](https://github.com/ClickHouse/ClickHouse/pull/25513) ([Azat Khuzhin](https://github.com/azat)).
* Adicionado suporte ao tipo `Interval` em `LowCardinality`. Isso é necessário para os valores intermediários de algumas expressões. Fecha [#21730](https://github.com/ClickHouse/ClickHouse/issues/21730). [#25410](https://github.com/ClickHouse/ClickHouse/pull/25410) ([Vladimir](https://github.com/vdimir)).
* Adicionado o operador `==` às condições de tempo nas funções `sequenceMatch` e `sequenceCount`. Por exemplo: sequenceMatch('(?1)(?t==1)(?2)')(time, data = 1, data = 2). [#25299](https://github.com/ClickHouse/ClickHouse/pull/25299) ([Christophe Kalenzaga](https://github.com/mga-chka)).
* Adicionadas as configurações `http_max_fields`, `http_max_field_name_size`, `http_max_field_value_size`. [#25296](https://github.com/ClickHouse/ClickHouse/pull/25296) ([Ivan](https://github.com/abyss7)).
* Adicionado suporte à função `if` com tipos `Decimal` e `Int` em seus ramos. Isso fecha [#20549](https://github.com/ClickHouse/ClickHouse/issues/20549). Isso fecha [#10142](https://github.com/ClickHouse/ClickHouse/issues/10142). [#25283](https://github.com/ClickHouse/ClickHouse/pull/25283) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Atualiza o prompt no `clickhouse-client` e exibe uma mensagem ao reconectar. Isso fecha [#10577](https://github.com/ClickHouse/ClickHouse/issues/10577). [#25281](https://github.com/ClickHouse/ClickHouse/pull/25281) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrigido o rastreamento de memória na função de agregação `topK`. Isso fecha [#25259](https://github.com/ClickHouse/ClickHouse/issues/25259). [#25260](https://github.com/ClickHouse/ClickHouse/pull/25260) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige `topLevelDomain` para nomes de host IDN (ou seja, `example.рф`); antes, retornava uma string vazia para esses hosts. [#25103](https://github.com/ClickHouse/ClickHouse/pull/25103) ([Azat Khuzhin](https://github.com/azat)).
* Detectar a versão do kernel do Linux em tempo de execução (para que `epoll` aninhado funcione, isso é necessário para `async_socket_for_remote`/`use_hedged_requests`; caso contrário, consultas remotas podem ficar travadas). [#25067](https://github.com/ClickHouse/ClickHouse/pull/25067) ([Azat Khuzhin](https://github.com/azat)).
* Para consulta distribuída, quando `optimize_skip_unused_shards=1`, permite ignorar o shard com uma condição como `(chave de sharding) IN (tupla de um elemento)`. (Tuplas com muitos elementos já eram compatíveis. Tuple com um único elemento não funcionava porque é interpretada como literal). [#24930](https://github.com/ClickHouse/ClickHouse/pull/24930) ([Amos Bird](https://github.com/amosbird)).
* Mensagens de log de erros do S3 aprimoradas, sem mais espaços em branco duplos quando chaves e buckets estão vazios. [#24897](https://github.com/ClickHouse/ClickHouse/pull/24897) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Algumas consultas exigem análise semântica em múltiplas etapas. Tente reutilizar os conjuntos já criados para `IN` nesse caso. [#24874](https://github.com/ClickHouse/ClickHouse/pull/24874) ([Amos Bird](https://github.com/amosbird)).
* Passa a respeitar `max_distributed_connections` para `insert_distributed_sync` (caso contrário, em clusters muito grandes e com inserção síncrona, pode esgotar `max_thread_pool_size`). [#24754](https://github.com/ClickHouse/ClickHouse/pull/24754) ([Azat Khuzhin](https://github.com/azat)).
* Evite ocultar erros como `Limit for rows or bytes to read exceeded` em subconsultas escalares. [#24545](https://github.com/ClickHouse/ClickHouse/pull/24545) ([nvartolomei](https://github.com/nvartolomei)).
* Deixe o parser de String para Int mais rigoroso, para que `toInt64('+')` lance uma exceção. [#24475](https://github.com/ClickHouse/ClickHouse/pull/24475) ([Amos Bird](https://github.com/amosbird)).
* Se `SSD_CACHE` for criado com uma consulta DDL, ele poderá ser criado apenas dentro do diretório `user_files`. [#24466](https://github.com/ClickHouse/ClickHouse/pull/24466) ([Maksim Kita](https://github.com/kitaisreal)).
* Suporte no PostgreSQL para especificar um schema não padrão para consultas de insert. Fecha [#24149](https://github.com/ClickHouse/ClickHouse/issues/24149). [#24413](https://github.com/ClickHouse/ClickHouse/pull/24413) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige a resolução de endereços IPv6 (isto é, corrige `select * from remote('[::1]', system.one)`). [#24319](https://github.com/ClickHouse/ClickHouse/pull/24319) ([Azat Khuzhin](https://github.com/azat)).
* Corrige os espaços em branco à direita na cláusula FROM com subconsultas no modo multilinha e também altera ligeiramente a saída das consultas para deixá-la mais amigável para humanos. [#24151](https://github.com/ClickHouse/ClickHouse/pull/24151) ([Azat Khuzhin](https://github.com/azat)).
* Melhoria para tabelas distribuídas. Adicionada a capacidade de dividir o batch distribuído em caso de falha (ou seja, devido a limites de memória ou corrupção), com `distributed_directory_monitor_split_batch_on_failure` (desativado por padrão). [#23864](https://github.com/ClickHouse/ClickHouse/pull/23864) ([Azat Khuzhin](https://github.com/azat)).
* Resolve conflitos de nomes de colunas na engine de tabela `Join`. Fecha [#20309](https://github.com/ClickHouse/ClickHouse/issues/20309). [#23769](https://github.com/ClickHouse/ClickHouse/pull/23769) ([Vladimir](https://github.com/vdimir)).
* Exibe o progresso do mecanismo de tabela `File` no `clickhouse-local` e da consulta INSERT no `clickhouse-client` quando os dados são passados via stdin. Fecha [#18209](https://github.com/ClickHouse/ClickHouse/issues/18209). [#23656](https://github.com/ClickHouse/ClickHouse/pull/23656) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correções de bugs e melhorias no `clickhouse-copier`. Permite copiar tabelas com esquemas diferentes (mas compatíveis). Fecha [#9159](https://github.com/ClickHouse/ClickHouse/issues/9159). Adicionado um teste para copiar ReplacingMergeTree. Fecha [#22711](https://github.com/ClickHouse/ClickHouse/issues/22711). Suporte a TTL em colunas e índices de skipping de dados. Ele simplesmente os remove para criar a tabela Distributed interna (a tabela subjacente terá TTL e índices de skipping). Fecha [#19384](https://github.com/ClickHouse/ClickHouse/issues/19384). Permite copiar colunas MATERIALIZED e ALIAS. Há casos em que isso pode ser útil (por exemplo, se essa coluna estiver na PRIMARY KEY). Agora isso pode ser permitido definindo a propriedade `allow_to_copy_alias_and_materialized_columns` como true na configuração da tarefa. Fecha [#9177](https://github.com/ClickHouse/ClickHouse/issues/9177). Fecha \[#11007] ([https://github.com/ClickHouse/ClickHouse/issues/11007](https://github.com/ClickHouse/ClickHouse/issues/11007)). Fecha [#9514](https://github.com/ClickHouse/ClickHouse/issues/9514). Adicionada a propriedade `allow_to_drop_target_partitions` na configuração da tarefa para remover a partição da tabela original antes de mover as tabelas auxiliares. Fecha [#20957](https://github.com/ClickHouse/ClickHouse/issues/20957). Remove a consulta `OPTIMIZE DEDUPLICATE`. Esse hack era necessário porque `ALTER TABLE MOVE PARTITION` era tentado novamente muitas vezes, e tabelas MergeTree simples não têm desduplicação. Fecha [#17966](https://github.com/ClickHouse/ClickHouse/issues/17966). Grava o progresso no nó do ZooKeeper no caminho `task_path + /status` em formato JSON. Fecha [#20955](https://github.com/ClickHouse/ClickHouse/issues/20955). Suporte a ReplicatedTables sem argumentos. Fecha [#24834](https://github.com/ClickHouse/ClickHouse/issues/24834) .[#23518](https://github.com/ClickHouse/ClickHouse/pull/23518) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Adicionado `sleep` com backoff entre as tentativas de leitura do S3. [#23461](https://github.com/ClickHouse/ClickHouse/pull/23461) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Passa a respeitar `insert_allow_materialized_columns` (permite colunas materializadas) para INSERT na tabela `Distributed`. [#23349](https://github.com/ClickHouse/ClickHouse/pull/23349) ([Azat Khuzhin](https://github.com/azat)).
* Adicionada a capacidade de aplicar o LIMIT remotamente em consultas distribuídas. [#23027](https://github.com/ClickHouse/ClickHouse/pull/23027) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida a replicação zero-copy com vários volumes S3 (corrige [#22679](https://github.com/ClickHouse/ClickHouse/issues/22679)). [#22864](https://github.com/ClickHouse/ClickHouse/pull/22864) ([ianton-ru](https://github.com/ianton-ru)).
* Resolver o número real da porta atribuída quando um usuário solicita ao sistema operacional qualquer porta disponível, para exibi-lo na mensagem de log. [#25569](https://github.com/ClickHouse/ClickHouse/pull/25569) ([bnaecker](https://github.com/bnaecker)).
* Corrigido o caso em que, às vezes, a conversão de arrays do Postgres resultava no tipo de dado String, e não em um array n-dimensional, porque `attndims` funciona incorretamente em alguns casos. Fecha [#24804](https://github.com/ClickHouse/ClickHouse/issues/24804). [#25538](https://github.com/ClickHouse/ClickHouse/pull/25538) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigida a conversão de DateTime com fuso horário para MySQL, PostgreSQL e ODBC. Fecha [#5057](https://github.com/ClickHouse/ClickHouse/issues/5057). [#25528](https://github.com/ClickHouse/ClickHouse/pull/25528) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Diferenciar `KILL MUTATION` entre diferentes tabelas (corrige o erro inesperado `Cancelled mutating parts`). [#25025](https://github.com/ClickHouse/ClickHouse/pull/25025) ([Azat Khuzhin](https://github.com/azat)).
* Permite declarar um disco S3 na raiz do bucket (o filesystem virtual do S3 é um recurso experimental em desenvolvimento). [#24898](https://github.com/ClickHouse/ClickHouse/pull/24898) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Habilita a leitura de subcolunas (por exemplo, componentes de Tuples) em tabelas distribuídas. [#24472](https://github.com/ClickHouse/ClickHouse/pull/24472) ([Anton Popov](https://github.com/CurtizJ)).
* Um recurso do protocolo de compatibilidade com MySQL: fazer com que a função `user` retorne a saída correta. Fecha [#25697](https://github.com/ClickHouse/ClickHouse/pull/25697). [#25697](https://github.com/ClickHouse/ClickHouse/pull/25697) ([sundyli](https://github.com/sundy-li)).

<div id="bug-fix">
  #### Correção de bug
</div>

* Melhoria na compatibilidade com versões anteriores. Usa a versão antiga da função de módulo quando ela é usada na chave de partição. Fecha [#23508](https://github.com/ClickHouse/ClickHouse/issues/23508). [#24157](https://github.com/ClickHouse/ClickHouse/pull/24157) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige um bug extremamente raro em servidores com pouca memória que pode impedir a execução de merges sem reinicialização. Possivelmente corrige [#24603](https://github.com/ClickHouse/ClickHouse/issues/24603). [#24872](https://github.com/ClickHouse/ClickHouse/pull/24872) ([alesapin](https://github.com/alesapin)).
* Corrige o erro extremamente raro `Tagging already tagged part` na fila de replicação durante operações simultâneas de `alter move/replace partition`. Possivelmente corrige [#22142](https://github.com/ClickHouse/ClickHouse/issues/22142). [#24961](https://github.com/ClickHouse/ClickHouse/pull/24961) ([alesapin](https://github.com/alesapin)).
* Corrige um possível travamento ao calcular estados de funções de agregação por meio da agregação de estados de funções de agregação de outras funções de agregação (não é um caso de uso prático). Consulte [#24523](https://github.com/ClickHouse/ClickHouse/issues/24523). [#25015](https://github.com/ClickHouse/ClickHouse/pull/25015) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Foi corrigido o comportamento quando a consulta `SYSTEM RESTART REPLICA` ou `SYSTEM SYNC REPLICA` não é concluída. Isso foi detectado em um servidor com uma quantidade extremamente baixa de RAM. [#24457](https://github.com/ClickHouse/ClickHouse/pull/24457) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrige um bug que pode fazer com que o cliente do ZooKeeper fique bloqueado dentro do clickhouse-server. [#24721](https://github.com/ClickHouse/ClickHouse/pull/24721) ([alesapin](https://github.com/alesapin)).
* Se a conexão com o ZooKeeper fosse perdida e a réplica fosse clonada após o restabelecimento da conexão, sua fila de replicação poderia conter entradas desatualizadas. Corrigida uma falha de asserção quando a fila de replicação contém partes virtuais sobrepostas. Isso pode acontecer raramente se alguma parte de dados for perdida. Passa a registrar um erro no log em vez de encerrar. [#24777](https://github.com/ClickHouse/ClickHouse/pull/24777) ([tavplubix](https://github.com/tavplubix)).
* Corrige a perda da condição `WHERE` na otimização de push-down de expressões do plano de consulta (com `query_plan_filter_push_down = 1` definido por padrão). Corrige [#25368](https://github.com/ClickHouse/ClickHouse/issues/25368). [#25370](https://github.com/ClickHouse/ClickHouse/pull/25370) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige um bug que pode levar a partes sobrepostas após merges com TTL: `Part all_40_40_0 is covered by all_40_40_1 but should be merged into all_40_41_1. This shouldn't happen often.`. [#25549](https://github.com/ClickHouse/ClickHouse/pull/25549) ([alesapin](https://github.com/alesapin)).
* Ao perder a conexão com o ZooKeeper, a tabela `ReplicatedMergeTree` podia aguardar a conclusão das operações em segundo plano antes de tentar se reconectar. Isso foi corrigido; agora, as operações em segundo plano são interrompidas à força. [#25306](https://github.com/ClickHouse/ClickHouse/pull/25306) ([tavplubix](https://github.com/tavplubix)).
* Corrige o erro `Key expression contains comparison between inconvertible types` em consultas com `ARRAY JOIN` quando um array é usado na chave primária. Corrige [#8247](https://github.com/ClickHouse/ClickHouse/issues/8247). [#25546](https://github.com/ClickHouse/ClickHouse/pull/25546) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige totais incorretos em consultas com `WITH TOTALS` e `WITH FILL`. Corrige [#20872](https://github.com/ClickHouse/ClickHouse/issues/20872). [#25539](https://github.com/ClickHouse/ClickHouse/pull/25539) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige uma condição de corrida ao consultar `system.clusters` enquanto a configuração do cluster é recarregada simultaneamente. [#25737](https://github.com/ClickHouse/ClickHouse/pull/25737) ([Amos Bird](https://github.com/amosbird)).
* Corrigido o erro `No such file or directory` ao mover uma tabela `Distributed` entre bancos de dados. Corrige [#24971](https://github.com/ClickHouse/ClickHouse/issues/24971). [#25667](https://github.com/ClickHouse/ClickHouse/pull/25667) ([tavplubix](https://github.com/tavplubix)).
* `REPLACE PARTITION` pode ser ignorado em casos raros se a partição de origem estiver vazia. Corrigido. Corrige [#24869](https://github.com/ClickHouse/ClickHouse/issues/24869). [#25665](https://github.com/ClickHouse/ClickHouse/pull/25665) ([tavplubix](https://github.com/tavplubix)).
* Corrigido um bug no engine de banco de dados `Replicated` que, em casos raros, poderia fazer com que uma réplica deixasse de executar uma consulta DDL enfileirada. [#24805](https://github.com/ClickHouse/ClickHouse/pull/24805) ([tavplubix](https://github.com/tavplubix)).
* Corrige uma desreferenciação de ponteiro nulo em `EXPLAIN AST` sem consulta. [#25631](https://github.com/ClickHouse/ClickHouse/pull/25631) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige a espera pela remoção automática de partes vazias. Isso poderia levar à ocupação completa do background pool e ao travamento da replicação. [#23315](https://github.com/ClickHouse/ClickHouse/pull/23315) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige a restauração de uma tabela armazenada no sistema de arquivos virtual do S3 (é um recurso experimental, ainda não pronto para produção). [#25601](https://github.com/ClickHouse/ClickHouse/pull/25601) ([ianton-ru](https://github.com/ianton-ru)).
* Corrigida a desreferenciação de `nullptr` no formato `Arrow` ao usar `Decimal256`. Adicionado suporte a `Decimal256` no formato `Arrow`. [#25531](https://github.com/ClickHouse/ClickHouse/pull/25531) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige o excesso de underscores antes dos nomes dos arquivos de configuração pré-processados. [#25431](https://github.com/ClickHouse/ClickHouse/pull/25431) ([Vitaly Baranov](https://github.com/vitlibar)).
* Uma correção para a ferramenta `clickhouse-copier`: corrige uma falha de segmentação quando sharding\_key está ausente na configuração da tarefa do copier. [#25419](https://github.com/ClickHouse/ClickHouse/pull/25419) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrige o transformador de coluna `REPLACE` quando usado em DDL, colocando corretamente a consulta formatada entre aspas. Isso corrige [#23925](https://github.com/ClickHouse/ClickHouse/issues/23925). [#25391](https://github.com/ClickHouse/ClickHouse/pull/25391) ([Amos Bird](https://github.com/amosbird)).
* Corrige a possibilidade de comportamento não determinístico na função `quantileDeterministic` e em funções semelhantes. Isso fecha [#20480](https://github.com/ClickHouse/ClickHouse/issues/20480). [#25313](https://github.com/ClickHouse/ClickHouse/pull/25313) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Oferece suporte a `SimpleAggregateFunction(LowCardinality)` para `SummingMergeTree`. Corrige [#25134](https://github.com/ClickHouse/ClickHouse/issues/25134). [#25300](https://github.com/ClickHouse/ClickHouse/pull/25300) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigido erro lógico com a mensagem de exceção "Cannot sum Array/Tuple in min/maxMap". [#25298](https://github.com/ClickHouse/ClickHouse/pull/25298) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige o erro `Bad cast from type DB::ColumnLowCardinality to DB::ColumnVector<char8_t>` em consultas em que o argumento `LowCardinality` foi usado com IN (esse bug surgiu na versão 21.6). Corrige [#25187](https://github.com/ClickHouse/ClickHouse/issues/25187). [#25290](https://github.com/ClickHouse/ClickHouse/pull/25290) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige o comportamento incorreto de `joinGetOrNull` com colunas não Nullable. Isso corrige [#24261](https://github.com/ClickHouse/ClickHouse/issues/24261). [#25288](https://github.com/ClickHouse/ClickHouse/pull/25288) ([Amos Bird](https://github.com/amosbird)).
* Corrige o comportamento incorreto e o relatório do UBSan em inteiros grandes. Em versões anteriores, `CAST(1e19 AS UInt128)` retornava zero. [#25279](https://github.com/ClickHouse/ClickHouse/pull/25279) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrigido um erro que ocorria ao inserir um subconjunto de colunas no formato CSVWithNames. Corrige [#25129](https://github.com/ClickHouse/ClickHouse/issues/25129). [#25169](https://github.com/ClickHouse/ClickHouse/pull/25169) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Não use a projeção da tabela para `SELECT` com `FINAL`. Isso ainda não tem suporte. [#25163](https://github.com/ClickHouse/ClickHouse/pull/25163) ([Amos Bird](https://github.com/amosbird)).
* Corrige uma possível perda de partes após a atualização até a versão 21.5, caso a tabela usasse `UUID` na chave de partição. (Não é recomendado usar `UUID` na chave de partição). Corrige [#25070](https://github.com/ClickHouse/ClickHouse/issues/25070). [#25127](https://github.com/ClickHouse/ClickHouse/pull/25127) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige uma falha em consulta com cross join e `joined_subquery_requires_alias = 0`. Corrige [#24011](https://github.com/ClickHouse/ClickHouse/issues/24011). [#25082](https://github.com/ClickHouse/ClickHouse/pull/25082) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige um erro com mapas constantes na função `mapContains` que causava o erro `empty column was returned by function mapContains`. Fecha [#25077](https://github.com/ClickHouse/ClickHouse/issues/25077). [#25080](https://github.com/ClickHouse/ClickHouse/pull/25080) ([Kruglov Pavel](https://github.com/Avogar)).
* Remove a possibilidade de criar tabelas com colunas que se referenciam, como `a UInt32 ALIAS a + 1` ou `b UInt32 MATERIALIZED b`. Corrige [#24910](https://github.com/ClickHouse/ClickHouse/issues/24910), [#24292](https://github.com/ClickHouse/ClickHouse/issues/24292). [#25059](https://github.com/ClickHouse/ClickHouse/pull/25059) ([alesapin](https://github.com/alesapin)).
* Corrige resultado incorreto ao usar uma projeção agregada com uma chave `GROUP BY` *não vazia* para executar uma consulta com `GROUP BY` por uma chave *vazia*. [#25055](https://github.com/ClickHouse/ClickHouse/pull/25055) ([Amos Bird](https://github.com/amosbird)).
* Corrige a serialização de mensagens aninhadas divididas no formato Protobuf. Este PR corrige [#24647](https://github.com/ClickHouse/ClickHouse/issues/24647). [#25000](https://github.com/ClickHouse/ClickHouse/pull/25000) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrigidas as configurações de LIMIT/OFFSET para consultas distribuídas (ignoradas nos nós remotos). [#24940](https://github.com/ClickHouse/ClickHouse/pull/24940) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido um possível heap-buffer-overflow no formato `Arrow`. [#24922](https://github.com/ClickHouse/ClickHouse/pull/24922) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrigido um possível erro 'Cannot read from istream at offset 0' ao ler um arquivo do DiskS3 (o sistema de arquivos virtual S3 é um recurso experimental em desenvolvimento e não deve ser usado em produção). [#24885](https://github.com/ClickHouse/ClickHouse/pull/24885) ([Pavel Kovalenko](https://github.com/Jokser)).
* Corrigida a exceção "Missing columns" ao fazer join em visão materializada Distributed. [#24870](https://github.com/ClickHouse/ClickHouse/pull/24870) ([Azat Khuzhin](https://github.com/azat)).
* Permite valores `NULL` no protocolo de compatibilidade do PostgreSQL. Fecha [#22622](https://github.com/ClickHouse/ClickHouse/issues/22622). [#24857](https://github.com/ClickHouse/ClickHouse/pull/24857) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigido o bug em que a exceção `Mutation was killed` podia ser retornada ao cliente ao aguardar a mutação, quando ela ainda não havia sido carregada na memória. [#24809](https://github.com/ClickHouse/ClickHouse/pull/24809) ([alesapin](https://github.com/alesapin)).
* Corrigido bug na desserialização do estado do gerador aleatório, que poderia fazer com que alguns tipos de dados, como `AggregateFunction(groupArraySample(N), T))`, se comportassem de maneira não determinística. [#24538](https://github.com/ClickHouse/ClickHouse/pull/24538) ([tavplubix](https://github.com/tavplubix)).
* Proibir a criação de `uniqXXXXStates` a partir de outros estados de agregação. [#24523](https://github.com/ClickHouse/ClickHouse/pull/24523) ([Raúl Marín](https://github.com/Algunenano)). Depois, voltar a permitir isso ao eliminar de fato a causa raiz do problema relacionado. ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrigido o uso de tuplas em consultas `CREATE .. AS SELECT`. [#24464](https://github.com/ClickHouse/ClickHouse/pull/24464) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige o cálculo do total de bytes na tabela `Buffer`. Na versão atual do ClickHouse, o contador total\_writes.bytes diminui excessivamente durante o flush do buffer. Isso leva a estouro do contador, e `totalBytes` retorna algo em torno de 17,44 EB algum tempo após o flush. [#24450](https://github.com/ClickHouse/ClickHouse/pull/24450) ([DimasKovas](https://github.com/DimasKovas)).
* Corrige informações incorretas sobre a monotonicidade da função toWeek. Isso corrige [#24422](https://github.com/ClickHouse/ClickHouse/issues/24422). Esse bug foi introduzido em [https://github.com/ClickHouse/ClickHouse/pull/5212](https://github.com/ClickHouse/ClickHouse/pull/5212) e foi revelado mais tarde por um eliminador de partições mais inteligente. [#24446](https://github.com/ClickHouse/ClickHouse/pull/24446) ([Amos Bird](https://github.com/amosbird)).
* Quando a autenticação de usuários é gerenciada por LDAP. Corrigido um possível deadlock que pode ocorrer durante o (re)mapeamento de funções do LDAP, quando um grupo do LDAP é mapeado para uma função local inexistente. [#24431](https://github.com/ClickHouse/ClickHouse/pull/24431) ([Denis Glazachev](https://github.com/traceon)).
* Na mensagem "multipart/form-data", considere o CRLF que precede o boundary como parte dele. Corrige [#23905](https://github.com/ClickHouse/ClickHouse/issues/23905). [#24399](https://github.com/ClickHouse/ClickHouse/pull/24399) ([Ivan](https://github.com/abyss7)).
* Corrige o drop partition com partes fictícias de intersect. Em casos raros, pode haver partes com versão de mutação maior que o número atual do bloco. [#24321](https://github.com/ClickHouse/ClickHouse/pull/24321) ([Amos Bird](https://github.com/amosbird)).
* Corrigido um bug ao mover uma visão materializada de um banco de dados Ordinary para um banco de dados Atomic (consulta `RENAME TABLE`). Agora, a tabela interna é movida para o novo banco de dados junto com a visão materializada. Corrige [#23926](https://github.com/ClickHouse/ClickHouse/issues/23926). [#24309](https://github.com/ClickHouse/ClickHouse/pull/24309) ([tavplubix](https://github.com/tavplubix)).
* Permite cabeçalhos HTTP vazios. Corrige [#23901](https://github.com/ClickHouse/ClickHouse/issues/23901). [#24285](https://github.com/ClickHouse/ClickHouse/pull/24285) ([Ivan](https://github.com/abyss7)).
* Processamento correto de mutações (ALTER UPDATE/DELETE) em tabelas Memory. Corrige [#24274](https://github.com/ClickHouse/ClickHouse/issues/24274). [#24275](https://github.com/ClickHouse/ClickHouse/pull/24275) ([flynn](https://github.com/ucasfl)).
* Faz com que a propriedade LowCardinality da coluna na saída de JOIN seja a mesma da entrada, fecha [#23351](https://github.com/ClickHouse/ClickHouse/issues/23351), fecha [#20315](https://github.com/ClickHouse/ClickHouse/issues/20315). [#24061](https://github.com/ClickHouse/ClickHouse/pull/24061) ([Vladimir](https://github.com/vdimir)).
* Uma correção para tabelas Kafka. Corrige o bug no comportamento de failover em que o Engine = Kafka não conseguia iniciar o consumo se o mesmo consumer tivesse tido anteriormente uma atribuição vazia. Fecha [#21118](https://github.com/ClickHouse/ClickHouse/issues/21118). [#21267](https://github.com/ClickHouse/ClickHouse/pull/21267) ([filimonov](https://github.com/filimonov)).

<div id="buildtestingpackaging-improvement-4">
  #### Melhoria em compilação/testes/empacotamento
</div>

* Adiciona builds `darwin-aarch64` (Mac M1 / Apple Silicon) no CI [#25560](https://github.com/ClickHouse/ClickHouse/pull/25560) ([Ivan](https://github.com/abyss7)) e inclui os links para a documentação e o site ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Adiciona incorporação multiplataforma de recursos binários em executáveis. Funciona no Illumos. [#25146](https://github.com/ClickHouse/ClickHouse/pull/25146) ([bnaecker](https://github.com/bnaecker)).
* Adiciona opções relacionadas a join aos testes de estresse para melhorar o fuzzing. [#25200](https://github.com/ClickHouse/ClickHouse/pull/25200) ([Vladimir](https://github.com/vdimir)).
* Habilita a build com o módulo S3 no OSX [#25217](https://github.com/ClickHouse/ClickHouse/issues/25217). [#25218](https://github.com/ClickHouse/ClickHouse/pull/25218) ([kevin wan](https://github.com/MaxWk)).
* Adiciona casos de teste de integração para cobrir a bridge JDBC. [#25047](https://github.com/ClickHouse/ClickHouse/pull/25047) ([Zhichun Wu](https://github.com/zhicwu)).
* A configuração dos testes de integração tem tratamento especial para dicionários. Remove a configuração manual restante dos dicionários. [#24728](https://github.com/ClickHouse/ClickHouse/pull/24728) ([Ilya Yatsishin](https://github.com/qoega)).
* Adiciona testes com libfuzzer para a classe YAMLParser. [#24480](https://github.com/ClickHouse/ClickHouse/pull/24480) ([BoloniniD](https://github.com/BoloniniD)).
* O Ubuntu 20.04 agora é usado para executar os testes de integração, e a versão do docker-compose usada para executá-los foi atualizada para 1.28.2. As variáveis de ambiente agora têm efeito no docker-compose. Refatora test\_dictionaries\_all\_layouts\_separate\_sources para permitir execução paralela. [#20393](https://github.com/ClickHouse/ClickHouse/pull/20393) ([Ilya Yatsishin](https://github.com/qoega)).
* Corrige um erro TOCTOU no script de instalação. [#25277](https://github.com/ClickHouse/ClickHouse/pull/25277) ([alexey-milovidov](https://github.com/alexey-milovidov)).

<div id="clickhouse-release-216-2021-06-05">
  ### Versão 21.6 do ClickHouse, 2021-06-05
</div>

<div id="backward-incompatible-change">
  #### Alteração incompatível com versões anteriores
</div>

* uniqState / uniqHLL12State / uniqCombinedState / uniqCombined64State geram estados incompatíveis com o tipo `UUID`. [#33607](https://github.com/ClickHouse/ClickHouse/issues/33607).

<div id="upgrade-notes">
  #### Notas de atualização
</div>

* A biblioteca de compressão `zstd` foi atualizada para a v1.5.0. Você pode receber mensagens sobre "checksum does not match" na replicação. Essas mensagens são esperadas devido à atualização do algoritmo de compressão e podem ser ignoradas. Elas são apenas informativas e não indicam nenhum tipo de comportamento indesejado.
* A configuração `compile_expressions` vem habilitada por padrão. Embora tenha sido amplamente testada em diversos cenários, se você encontrar algum comportamento indesejado em seus servidores, pode tentar desabilitar essa configuração.
* Valores do tipo `UUID` não podem ser comparados com inteiros. Por exemplo, em vez de escrever `uuid != 0`, digite `uuid != '00000000-0000-0000-0000-000000000000'`.

<div id="new-feature">
  #### Novo recurso
</div>

* Adicionado operador de conversão de tipo no estilo do Postgres (`::`). Ex.: `[1, 2]::Array(UInt8)`, `0.1::Decimal(4, 4)`, `number::UInt16`. [#23871](https://github.com/ClickHouse/ClickHouse/pull/23871) ([Anton Popov](https://github.com/CurtizJ)).
* Torna os inteiros grandes prontos para produção. Adiciona suporte ao tipo de dado `UInt128`. Corrige problemas conhecidos no tipo de dado `Decimal256`. Adiciona suporte a inteiros grandes em dicionários. Adiciona suporte às funções `gcd`/`lcm` para inteiros grandes. Adiciona suporte a inteiros grandes em funções condicionais e de busca em array. Adiciona suporte a `LowCardinality(UUID)`. Adiciona suporte a inteiros grandes na função de tabela `generateRandom` e no `clickhouse-obfuscator`. Corrige o erro ao retornar `UUID` de subconsultas escalares. Isso corrige [#7834](https://github.com/ClickHouse/ClickHouse/issues/7834). Isso corrige [#23936](https://github.com/ClickHouse/ClickHouse/issues/23936). Isso corrige [#4176](https://github.com/ClickHouse/ClickHouse/issues/4176). Isso corrige [#24018](https://github.com/ClickHouse/ClickHouse/issues/24018). Alteração incompatível com versões anteriores: valores do tipo `UUID` não podem ser comparados com inteiros. Por exemplo, em vez de escrever `uuid != 0`, escreva `uuid != '00000000-0000-0000-0000-000000000000'`. [#23631](https://github.com/ClickHouse/ClickHouse/pull/23631) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Suporte ao tipo de dado `Array` para inserção e seleção de dados nos formatos `Arrow`, `Parquet` e `ORC`. [#21770](https://github.com/ClickHouse/ClickHouse/pull/21770) ([taylor12805](https://github.com/taylor12805)).
* Implementa comentários em tabelas. Fecha [#23225](https://github.com/ClickHouse/ClickHouse/issues/23225). [#23548](https://github.com/ClickHouse/ClickHouse/pull/23548) ([flynn](https://github.com/ucasFL)).
* Suporte à criação de dicionários com consultas DDL no `clickhouse-local`. Fecha [#22354](https://github.com/ClickHouse/ClickHouse/issues/22354). Adicionado suporte a `DETACH DICTIONARY PERMANENTLY`. Adicionado suporte a `EXCHANGE DICTIONARIES` para o engine de banco de dados `Atomic`. Adicionado suporte para mover dicionários entre bancos de dados usando `RENAME DICTIONARY`. [#23436](https://github.com/ClickHouse/ClickHouse/pull/23436) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionada a função de agregação `uniqTheta` para dar suporte ao [Theta Sketch](https://datasketches.apache.org/docs/Theta/ThetaSketches.html) no ClickHouse. [#23894](https://github.com/ClickHouse/ClickHouse/pull/23894). [#22609](https://github.com/ClickHouse/ClickHouse/pull/22609) ([Ping Yu](https://github.com/pingyu)).
* Adicionada a função `splitByRegexp`. [#24077](https://github.com/ClickHouse/ClickHouse/pull/24077) ([abel-cheng](https://github.com/abel-cheng)).
* Adicionada a função `arrayProduct`, que aceita um array como parâmetro e retorna o produto de todos os elementos do array. Fecha [#21613](https://github.com/ClickHouse/ClickHouse/issues/21613). [#23782](https://github.com/ClickHouse/ClickHouse/pull/23782) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionada a coluna `thread_name` em `system.stack_trace`. Isso fecha [#23256](https://github.com/ClickHouse/ClickHouse/issues/23256). [#24124](https://github.com/ClickHouse/ClickHouse/pull/24124) ([abel-cheng](https://github.com/abel-cheng)).
* Se `insert_null_as_default` = 1, insere valores padrão em vez de NULL nas consultas `INSERT ... SELECT` e `INSERT ... SELECT ... UNION ALL ...`. Fecha [#22832](https://github.com/ClickHouse/ClickHouse/issues/22832). [#23524](https://github.com/ClickHouse/ClickHouse/pull/23524) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adicionado suporte à exibição de progresso no `clickhouse-local` com a opção `--progress`. [#23196](https://github.com/ClickHouse/ClickHouse/pull/23196) ([Egor Savin](https://github.com/Amesaru)).
* Adiciona suporte à compressão HTTP (determinada pelo cabeçalho HTTP `Content-Encoding`) na fonte de dicionário `http`. Isso corrige [#8912](https://github.com/ClickHouse/ClickHouse/issues/8912). [#23946](https://github.com/ClickHouse/ClickHouse/pull/23946) ([FArthur-cmd](https://github.com/FArthur-cmd)).
* Adicionados `SYSTEM QUERY RELOAD MODEL`, `SYSTEM QUERY RELOAD MODELS`. Resolve [#18722](https://github.com/ClickHouse/ClickHouse/issues/18722). [#23182](https://github.com/ClickHouse/ClickHouse/pull/23182) ([Maksim Kita](https://github.com/kitaisreal)).
* Adiciona a configuração `json` (booleana, 0 por padrão) à consulta `EXPLAIN PLAN`. Quando ativada, a saída da consulta será uma única linha `JSON`. Recomenda-se usar o formato `TSVRaw` para evitar caracteres de escape desnecessários. [#23082](https://github.com/ClickHouse/ClickHouse/pull/23082) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Adicionada a configuração `indexes` (booleana, desativada por padrão) à consulta `EXPLAIN PIPELINE`. Quando ativada, mostra os índices usados, o número de partes e grânulos filtrados para cada índice aplicado. Compatível com tabelas `MergeTree*`. [#22352](https://github.com/ClickHouse/ClickHouse/pull/22352) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* LDAP: implementada a funcionalidade de detecção de user DN para uso no mapeamento de grupos do Active Directory para roles do ClickHouse. [#22228](https://github.com/ClickHouse/ClickHouse/pull/22228) ([Denis Glazachev](https://github.com/traceon)).
* Nova função de agregação `deltaSumTimestamp` para somar a diferença entre linhas consecutivas, mantendo a ordenação durante o merge ao armazenar timestamps. [#21888](https://github.com/ClickHouse/ClickHouse/pull/21888) ([Russ Frank](https://github.com/rf)).
* Adicionado um provedor de credenciais IMDS menos seguro para S3, que funciona corretamente no Docker. [#21852](https://github.com/ClickHouse/ClickHouse/pull/21852) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Adiciona de volta a função `indexHint`. Isso é para [#21238](https://github.com/ClickHouse/ClickHouse/issues/21238). Isso reverte [#9542](https://github.com/ClickHouse/ClickHouse/pull/9542). Isso corrige [#9540](https://github.com/ClickHouse/ClickHouse/issues/9540). [#21304](https://github.com/ClickHouse/ClickHouse/pull/21304) ([Amos Bird](https://github.com/amosbird)).

<div id="experimental-feature-5">
  #### Funcionalidade experimental
</div>

* Adicionado suporte a `PROJECTION` em tabelas `MergeTree*`. [#20202](https://github.com/ClickHouse/ClickHouse/pull/20202) ([Amos Bird](https://github.com/amosbird)).

<div id="performance-improvement">
  #### Melhoria de desempenho
</div>

* Habilita a configuração `compile_expressions` por padrão. Quando essa configuração está habilitada, composições de funções simples e operadores são compiladas para código nativo com LLVM em tempo de execução. [#8482](https://github.com/ClickHouse/ClickHouse/pull/8482) ([Maksim Kita](https://github.com/kitaisreal), [alexey-milovidov](https://github.com/alexey-milovidov)). Observação: se você tiver problemas, desative esta opção.
* Atualiza a biblioteca `re2`. O desempenho da correspondência de expressões regulares foi melhorado. Além disso, este PR adiciona compatibilidade com gcc-11. [#24196](https://github.com/ClickHouse/ClickHouse/pull/24196) ([Raúl Marín](https://github.com/Algunenano)).
* Leitura do formato de entrada ORC por stripe, em vez de carregar a tabela inteira na memória de uma só vez, o que consome muita memória quando o arquivo é muito grande. [#23102](https://github.com/ClickHouse/ClickHouse/pull/23102) ([Chao Ma](https://github.com/godliness)).
* Fusão das funções agregadas `sum`, `count` e `avg` em uma consulta em uma única função agregada. A otimização é controlada pela configuração `optimize_fuse_sum_count_avg`. Isso é implementado com uma nova função agregada `sumCount`. Essa função retorna uma tupla com dois campos: `sum` e `count`. [#21337](https://github.com/ClickHouse/ClickHouse/pull/21337) ([hexiaoting](https://github.com/hexiaoting)).
* Atualiza `zstd` para v1.5.0. O desempenho da compressão foi melhorado em alguns pontos percentuais. [#24135](https://github.com/ClickHouse/ClickHouse/pull/24135) ([Raúl Marín](https://github.com/Algunenano)). Observação: você pode receber mensagens sobre "checksum does not match" na replicação. Essas mensagens são esperadas devido à atualização do algoritmo de compressão e podem ser ignoradas.
* Desempenho das tabelas `Buffer` melhorado: não adquirir bloqueio para total\_bytes/total\_rows no engine `Buffer`. [#24066](https://github.com/ClickHouse/ClickHouse/pull/24066) ([Azat Khuzhin](https://github.com/azat)).
* O suporte à pré-alocação para dicionários hashed/sparse\_hashed foi restaurado. [#23979](https://github.com/ClickHouse/ClickHouse/pull/23979) ([Azat Khuzhin](https://github.com/azat)).
* Habilita `async_socket_for_remote` por padrão (reduz a quantidade de threads ao consultar tabelas distribuídas com grande fanout). [#23683](https://github.com/ClickHouse/ClickHouse/pull/23683) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).

<div id="improvement">
  #### Melhoria
</div>

* Adicionar a coluna virtual `_partition_value` à família de tabelas MergeTree. Ela pode ser usada para fazer o pruning de partições de forma determinística. Isso é necessário para implementar a correspondência de partições para mutações. [#23673](https://github.com/ClickHouse/ClickHouse/pull/23673) ([Amos Bird](https://github.com/amosbird)).
* Adicionado o parâmetro `region` para o armazenamento S3 e o disco. [#23846](https://github.com/ClickHouse/ClickHouse/pull/23846) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Permite configurar níveis de log diferentes para diferentes canais de logging. Fecha [#19569](https://github.com/ClickHouse/ClickHouse/issues/19569). [#23857](https://github.com/ClickHouse/ClickHouse/pull/23857) ([filimonov](https://github.com/filimonov)).
* Mantenha o fuso horário padrão nas operações com `DateTime` se ele não for fornecido explicitamente. Por exemplo, se você adicionar um segundo a um valor do tipo `DateTime` sem fuso horário, ele continuará sendo `DateTime` sem fuso horário. Nas versões anteriores, o valor do fuso horário padrão era atribuído explicitamente ao tipo de dados retornado, de modo que ele se tornava DateTime('something'). Isso corrige [#4854](https://github.com/ClickHouse/ClickHouse/issues/4854). [#23392](https://github.com/ClickHouse/ClickHouse/pull/23392) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Permite que o usuário especifique uma string vazia em vez do nome do banco de dados para o mecanismo de armazenamento `MySQL`. O banco de dados padrão será usado nas queries. Nas versões anteriores, isso funcionava para queries SELECT, e também foi adicionado suporte a INSERT. Isso fecha [#19281](https://github.com/ClickHouse/ClickHouse/issues/19281). Isso pode ser útil ao trabalhar com `Sphinx` ou outros bancos de dados externos compatíveis com MySQL. [#23319](https://github.com/ClickHouse/ClickHouse/pull/23319) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrigido `quantile(s)TDigest`. Adicionado tratamento especial para centróides singleton de acordo com tdunning/t-digest 3.2+. Também foi corrigido um bug de compressão excessiva dos centróides na implementação de uma versão anterior do algoritmo. [#23314](https://github.com/ClickHouse/ClickHouse/pull/23314) ([Vladimir Chebotarev](https://github.com/excitoon)).
* A função `now64` agora aceita um argumento opcional de fuso horário. [#24091](https://github.com/ClickHouse/ClickHouse/pull/24091) ([Vasily Nemkov](https://github.com/Enmk)).
* Corrige o caso em que a barra de progresso no modo interativo do clickhouse-client, ao aparecer no meio dos dados, pode sobrescrever partes dos dados visíveis no terminal. Isso encerra [#19283](https://github.com/ClickHouse/ClickHouse/issues/19283). [#23050](https://github.com/ClickHouse/ClickHouse/pull/23050) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige falha quando a alocação de memória falha no simdjson. [https://github.com/simdjson/simdjson/pull/1567](https://github.com/simdjson/simdjson/pull/1567) . Classificado como melhoria porque é um bug muito raro. [#24147](https://github.com/ClickHouse/ClickHouse/pull/24147) ([Amos Bird](https://github.com/amosbird)).
* Preservar os dicionários até o desligamento do armazenamento (isso evitará possíveis erros `external dictionary 'DICT' not found` no desligamento do servidor durante o flush final do mecanismo `Buffer`). [#24068](https://github.com/ClickHouse/ClickHouse/pull/24068) ([Azat Khuzhin](https://github.com/azat)).
* Fazer flush das tabelas `Buffer` antes de encerrar as tabelas (dentro de um banco de dados), para evitar o descarte de blocos porque a tabela subjacente já havia sido detached (e o erro `Destination table default.a_data_01870 doesn't exist. Block of data is discarded` no log). [#24067](https://github.com/ClickHouse/ClickHouse/pull/24067) ([Azat Khuzhin](https://github.com/azat)).
* Agora `prefer_column_name_to_alias = 1` também passará a priorizar os nomes das colunas em `group by`, `having` e `order by`. Isso corrige [#23882](https://github.com/ClickHouse/ClickHouse/issues/23882). [#24022](https://github.com/ClickHouse/ClickHouse/pull/24022) ([Amos Bird](https://github.com/amosbird)).
* Adicionado suporte ao `ORDER BY WITH FILL` com `DateTime64`. [#24016](https://github.com/ClickHouse/ClickHouse/pull/24016) ([kevin wan](https://github.com/MaxWk)).
* Permite usar `DateTime64` como coluna de versão no `ReplacingMergeTree`. [#23992](https://github.com/ClickHouse/ClickHouse/pull/23992) ([kevin wan](https://github.com/MaxWk)).
* Registrar, na inicialização do servidor, informações sobre o nome do SO, a versão do kernel e a arquitetura da CPU. [#23988](https://github.com/ClickHouse/ClickHouse/pull/23988) ([Azat Khuzhin](https://github.com/azat)).
* Suporte à especificação do esquema da tabela para a fonte de dicionário `postgresql`. Fecha [#23958](https://github.com/ClickHouse/ClickHouse/issues/23958). [#23980](https://github.com/ClickHouse/ClickHouse/pull/23980) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adiciona sugestões para nomes de elementos `Enum` (sugere nomes em caso de erros de digitação). Fecha [#17112](https://github.com/ClickHouse/ClickHouse/issues/17112). [#23919](https://github.com/ClickHouse/ClickHouse/pull/23919) ([flynn](https://github.com/ucasFL)).
* Medir a taxa de valores encontrados (o percentual de vezes em que o valor foi encontrado) para dicionários (consulte `found_rate` em `system.dictionaries`). [#23916](https://github.com/ClickHouse/ClickHouse/pull/23916) ([Azat Khuzhin](https://github.com/azat)).
* Permite adicionar configurações específicas de fila por meio da configuração de tabela `rabbitmq_queue_settings_list`. (Fecha [#23737](https://github.com/ClickHouse/ClickHouse/issues/23737) e [#23918](https://github.com/ClickHouse/ClickHouse/issues/23918)). Permite que o usuário controle toda a configuração do RabbitMQ: se a configuração de tabela `rabbitmq_queue_consume` estiver definida como `1`, o table engine RabbitMQ se conectará apenas à fila especificada e não realizará nenhuma configuração do RabbitMQ no lado do consumer, como declarar exchange, filas e bindings. (Fecha [#21757](https://github.com/ClickHouse/ClickHouse/issues/21757)). Adiciona a limpeza adequada quando a tabela RabbitMQ é removida: exclui as filas declaradas pela tabela e todos os exchanges vinculados, se tiverem sido criados pela tabela. [#23887](https://github.com/ClickHouse/ClickHouse/pull/23887) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adiciona `broken_data_files`/`broken_data_compressed_bytes` em `system.distribution_queue`. Adiciona uma métrica para o número de arquivos de inserção assíncrona em tabelas Distributed marcados como corrompidos (`BrokenDistributedFilesToInsert`). [#23885](https://github.com/ClickHouse/ClickHouse/pull/23885) ([Azat Khuzhin](https://github.com/azat)).
* A consulta a `system.tables` não acessa mais o ZooKeeper. [#23793](https://github.com/ClickHouse/ClickHouse/pull/23793) ([Fuwang Hu](https://github.com/fuwhu)).
* Passa a respeitar `lock_acquire_timeout_for_background_operations` em consultas `OPTIMIZE`. [#23623](https://github.com/ClickHouse/ClickHouse/pull/23623) ([Azat Khuzhin](https://github.com/azat)).
* Possibilidade de alterar as configurações do disco `S3` em tempo de execução com o novo comando SQL `SYSTEM RESTART DISK`. [#23429](https://github.com/ClickHouse/ClickHouse/pull/23429) ([Pavel Kovalenko](https://github.com/Jokser)).
* Se o usuário aplicou uma configuração incorreta ao definir por engano `max_distributed_connections` como zero, toda consulta a uma tabela `Distributed` lançará uma exceção com uma mensagem contendo "logical error". Mas, na verdade, isso é um comportamento esperado, não um erro lógico, portanto a mensagem da exceção estava ligeiramente incorreta. Isso também acionou verificações em nosso ambiente de CI que garantem que erros lógicos nunca ocorram. Em vez disso, trataremos `max_distributed_connections` configurado incorretamente como zero como o menor valor possível (um). [#23348](https://github.com/ClickHouse/ClickHouse/pull/23348) ([Azat Khuzhin](https://github.com/azat)).
* Desabilitado `min_bytes_to_use_mmap_io` por padrão. [#23322](https://github.com/ClickHouse/ClickHouse/pull/23322) ([Azat Khuzhin](https://github.com/azat)).
* Adiciona suporte à nulabilidade de `LowCardinality` com `join_use_nulls`, fecha [#15101](https://github.com/ClickHouse/ClickHouse/issues/15101). [#23237](https://github.com/ClickHouse/ClickHouse/pull/23237) ([vdimir](https://github.com/vdimir)).
* Adicionada a possibilidade de restaurar partes do `MergeTree` no diretório `detached` para disco `S3`. [#23112](https://github.com/ClickHouse/ClickHouse/pull/23112) ([Pavel Kovalenko](https://github.com/Jokser)).
* Tentativas de repetição em caso de queda da conexão HTTP no S3. [#22988](https://github.com/ClickHouse/ClickHouse/pull/22988) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Adicionadas as configurações `external_storage_max_read_rows` e `external_storage_max_read_rows` para o mecanismo de tabela MySQL, a origem do dicionário e pequenas buscas de dados do MaterializeMySQL. [#22697](https://github.com/ClickHouse/ClickHouse/pull/22697) ([TCeason](https://github.com/TCeason)).
* `MaterializeMySQL` (funcionalidade experimental): Anteriormente, o MySQL 5.7.9 não era compatível devido à incompatibilidade de SQL. Agora, a verificação dos parâmetros do MySQL fica a cargo do MaterializeMySQL. [#23413](https://github.com/ClickHouse/ClickHouse/pull/23413) ([TCeason](https://github.com/TCeason)).
* Habilitada a leitura de subcolunas em tabelas distribuídas. [#24472](https://github.com/ClickHouse/ClickHouse/pull/24472) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigido o uso de tuplas em consultas `CREATE .. AS SELECT`. [#24464](https://github.com/ClickHouse/ClickHouse/pull/24464) ([Anton Popov](https://github.com/CurtizJ)).
* Suporte ao formato `Parquet` em tabelas `Kafka`. [#23412](https://github.com/ClickHouse/ClickHouse/pull/23412) ([Chao Ma](https://github.com/godliness)).

<div id="bug-fix">
  #### Correção de bug
</div>

* Use a versão antiga da função de módulo quando ela for usada na chave de partição e na chave primária. Fecha [#23508](https://github.com/ClickHouse/ClickHouse/issues/23508). [#24157](https://github.com/ClickHouse/ClickHouse/pull/24157) ([Kseniia Sumarokova](https://github.com/kssenii)). Isso era uma causa de quebra de compatibilidade com versões anteriores em releases anteriores.
* Corrigido o comportamento quando a consulta `SYSTEM RESTART REPLICA` ou `SYSTEM SYNC REPLICA` entrava em processamento infinito. Isso foi detectado em um servidor com uma quantidade extremamente pequena de RAM. [#24457](https://github.com/ClickHouse/ClickHouse/pull/24457) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrige a monotonicidade incorreta da função `toWeek`. Isso corrige [#24422](https://github.com/ClickHouse/ClickHouse/issues/24422). Esse bug foi introduzido em [#5212](https://github.com/ClickHouse/ClickHouse/pull/5212) e foi revelado posteriormente por um podador de partições mais inteligente. [#24446](https://github.com/ClickHouse/ClickHouse/pull/24446) ([Amos Bird](https://github.com/amosbird)).
* Corrigido o drop partition com partes falsas no intersect. Em casos raros, pode haver partes com versão de mutação superior ao número do bloco atual. [#24321](https://github.com/ClickHouse/ClickHouse/pull/24321) ([Amos Bird](https://github.com/amosbird)).
* Corrigido um bug ao mover uma visão materializada de um banco de dados Ordinary para um banco de dados Atomic (consulta `RENAME TABLE`). Agora, a tabela interna é movida para o novo banco de dados junto com a visão materializada. Corrige [#23926](https://github.com/ClickHouse/ClickHouse/issues/23926). [#24309](https://github.com/ClickHouse/ClickHouse/pull/24309) ([tavplubix](https://github.com/tavplubix)).
* Permite cabeçalhos HTTP vazios nas requisições do cliente. Corrige [#23901](https://github.com/ClickHouse/ClickHouse/issues/23901). [#24285](https://github.com/ClickHouse/ClickHouse/pull/24285) ([Ivan](https://github.com/abyss7)).
* Defina `max_threads = 1` para corrigir a falha de mutation em tabelas `Memory`. Fecha [#24274](https://github.com/ClickHouse/ClickHouse/issues/24274). [#24275](https://github.com/ClickHouse/ClickHouse/pull/24275) ([flynn](https://github.com/ucasFL)).
* Corrige um erro de digitação na implementação das tabelas `Memory`; esse bug foi introduzido em [#15127](https://github.com/ClickHouse/ClickHouse/issues/15127). Fecha [#24192](https://github.com/ClickHouse/ClickHouse/issues/24192). [#24193](https://github.com/ClickHouse/ClickHouse/pull/24193) ([张中南](https://github.com/plugine)).
* Corrige o encerramento anormal do servidor quando o `HDFS` se torna inacessível durante a execução da consulta. Fecha [#24117](https://github.com/ClickHouse/ClickHouse/issues/24117). [#24191](https://github.com/ClickHouse/ClickHouse/pull/24191) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige falha na atualização da coluna `Nested` com condição constante. [#24183](https://github.com/ClickHouse/ClickHouse/pull/24183) ([hexiaoting](https://github.com/hexiaoting)).
* Corrige uma race condition que poderia ocorrer no RBAC sob carga intensa. Este PR corrige [#24090](https://github.com/ClickHouse/ClickHouse/issues/24090), [#24134](https://github.com/ClickHouse/ClickHouse/issues/24134),. [#24176](https://github.com/ClickHouse/ClickHouse/pull/24176) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige um bug raro que poderia resultar em uma tabela parcialmente inicializada capaz de aceitar solicitações de escrita (insert/alter/etc.). Agora, essas tabelas ficarão em modo readonly. [#24122](https://github.com/ClickHouse/ClickHouse/pull/24122) ([alesapin](https://github.com/alesapin)).
* Corrigido um problema: `EXPLAIN PIPELINE` com `SELECT xxx FINAL` exibia um pipeline incorreto. ([hexiaoting](https://github.com/hexiaoting)).
* Corrigido o uso de um valor `DateTime` constante em vez de uma coluna `DateTime64` em `WHERE`. [#24100](https://github.com/ClickHouse/ClickHouse/pull/24100) ([Vasily Nemkov](https://github.com/Enmk)).
* Corrigida falha em merge JOIN, fecha [#24010](https://github.com/ClickHouse/ClickHouse/issues/24010). [#24013](https://github.com/ClickHouse/ClickHouse/pull/24013) ([vdimir](https://github.com/vdimir)).
* Algumas consultas `ALTER PARTITION` podiam causar os erros `Part A intersects previous part B` e `Unexpected merged part C intersecting drop range D` na fila de replicação. Isso foi corrigido. Corrige [#23296](https://github.com/ClickHouse/ClickHouse/issues/23296). [#23997](https://github.com/ClickHouse/ClickHouse/pull/23997) ([tavplubix](https://github.com/tavplubix)).
* Corrige SIGSEGV em `GROUP BY` externo e na linha de overflow (isto é, consultas como `SELECT FROM GROUP BY WITH TOTALS SETTINGS max_bytes_before_external_group_by>0, max_rows_to_group_by>0, group_by_overflow_mode='any', totals_mode='before_having'`). [#23962](https://github.com/ClickHouse/ClickHouse/pull/23962) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida a contabilização das métricas de chaves para o dicionário `CACHE` com duplicatas na origem (o que leva a overflows em `DictCacheKeysRequestedMiss`). [#23929](https://github.com/ClickHouse/ClickHouse/pull/23929) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida a implementação do pool de conexões da engine `PostgreSQL`. Fecha [#23897](https://github.com/ClickHouse/ClickHouse/issues/23897). [#23909](https://github.com/ClickHouse/ClickHouse/pull/23909) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige `distributed_group_by_no_merge = 2` com `GROUP BY` e função de agregação encapsulada em uma função regular (havia sido quebrado em [#23546](https://github.com/ClickHouse/ClickHouse/issues/23546)). Lança uma exceção caso alguém tente usar `distributed_group_by_no_merge = 2` com funções de janela. Desabilita `optimize_distributed_group_by_sharding_key` para consultas com funções de janela. [#23906](https://github.com/ClickHouse/ClickHouse/pull/23906) ([Azat Khuzhin](https://github.com/azat)).
* Correção na função de tabela `s3`: melhor tratamento de erros HTTP. Antes, os corpos das respostas de erros HTTP eram ignorados. [#23844](https://github.com/ClickHouse/ClickHouse/pull/23844) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Uma correção para a `s3` table function: melhor tratamento de URIs. Foi corrigida uma incompatibilidade com URLs que contêm o símbolo `+`; antes, dados com essas chaves não podiam ser lidos. [#23822](https://github.com/ClickHouse/ClickHouse/pull/23822) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Corrige o erro `Can't initialize pipeline with empty pipe` em consultas com `GLOBAL IN/JOIN` e `use_hedged_requests`. Corrige o problema [#23431](https://github.com/ClickHouse/ClickHouse/issues/23431). [#23805](https://github.com/ClickHouse/ClickHouse/pull/23805) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige o problema em que `CLEAR COLUMN` não funciona quando é referenciado por uma visão materializada. Fecha [#23764](https://github.com/ClickHouse/ClickHouse/issues/23764). [#23781](https://github.com/ClickHouse/ClickHouse/pull/23781) ([flynn](https://github.com/ucasFL)).
* Corrigido o uso da heap após a memória já ter sido liberada ao ler do HDFS se o formato `Values` for usado. [#23761](https://github.com/ClickHouse/ClickHouse/pull/23761) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Evita o possível erro "Cannot schedule a task" (caso tenha ocorrido alguma exceção) ao fazer INSERT em Distributed. [#23744](https://github.com/ClickHouse/ClickHouse/pull/23744) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido um bug na recuperação de uma réplica `ReplicatedMergeTree` desatualizada. Algumas atualizações de metadados poderiam ser ignoradas pela réplica desatualizada se uma consulta `ALTER` fosse executada durante a indisponibilidade da réplica. [#23742](https://github.com/ClickHouse/ClickHouse/pull/23742) ([tavplubix](https://github.com/tavplubix)).
* Corrige um bug em `Join` e `WITH TOTALS`, fecha [#17718](https://github.com/ClickHouse/ClickHouse/issues/17718). [#23549](https://github.com/ClickHouse/ClickHouse/pull/23549) ([vdimir](https://github.com/vdimir)).
* Corrige o possível erro `Block structure mismatch` em consultas com `UNION`, que pode ocorrer após a otimização de pushdown de filtro. Corrige [#23029](https://github.com/ClickHouse/ClickHouse/issues/23029). [#23359](https://github.com/ClickHouse/ClickHouse/pull/23359) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Adicionada a conversão de tipo quando a configuração `optimize_skip_unused_shards_rewrite_in` está habilitada. Isso resolve um relatório do MSan. [#23219](https://github.com/ClickHouse/ClickHouse/pull/23219) ([Azat Khuzhin](https://github.com/azat)).
* Adicionada uma verificação ausente ao atualizar subcolunas aninhadas, fecha a issue: [#22353](https://github.com/ClickHouse/ClickHouse/issues/22353). [#22503](https://github.com/ClickHouse/ClickHouse/pull/22503) ([hexiaoting](https://github.com/hexiaoting)).

<div id="buildtestingpackaging-improvement-3">
  #### Melhoria em Compilação/Testes/Empacotamento
</div>

* Suporte à compilação no Illumos. [#24144](https://github.com/ClickHouse/ClickHouse/pull/24144). Adiciona suporte à compilação em sistemas operacionais derivados do Solaris. [#23746](https://github.com/ClickHouse/ClickHouse/pull/23746) ([bnaecker](https://github.com/bnaecker)).
* Adiciona mais benchmarks para tabelas hash, incluindo a Swiss Table do Google (que pareceu ser mais lenta que o map hash do ClickHouse em nosso cenário de uso específico). [#24111](https://github.com/ClickHouse/ClickHouse/pull/24111) ([Maksim Kita](https://github.com/kitaisreal)).
* Atualiza o librdkafka da versão 1.6.0-RC3 para a 1.6.1. [#23874](https://github.com/ClickHouse/ClickHouse/pull/23874) ([filimonov](https://github.com/filimonov)).
* Sempre habilita `asynchronous-unwind-tables` explicitamente. Isso pode corrigir o profiler de consultas em AArch64. [#23602](https://github.com/ClickHouse/ClickHouse/pull/23602) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Evita uma possível dependência da compilação em relação à localidade e à ordem do sistema de arquivos. Isso permite compilações reproduzíveis. [#23600](https://github.com/ClickHouse/ClickHouse/pull/23600) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Remove uma fonte de não determinismo da compilação. Agora, compilações feitas em momentos diferentes produzirão binários byte a byte idênticos. Resolve parcialmente [#22113](https://github.com/ClickHouse/ClickHouse/issues/22113). [#23559](https://github.com/ClickHouse/ClickHouse/pull/23559) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Adiciona uma ferramenta simples para benchmark do (Zoo)Keeper. [#23038](https://github.com/ClickHouse/ClickHouse/pull/23038) ([alesapin](https://github.com/alesapin)).

<div id="clickhouse-release-215-2021-05-20">
  ## Lançamento do ClickHouse 21.5, 2021-05-20
</div>

<div id="backward-incompatible-change">
  #### Alteração incompatível com versões anteriores
</div>

* Altera a comparação entre inteiros e números de ponto flutuante quando o inteiro não pode ser representado exatamente no tipo de dado de ponto flutuante. Na nova versão, a comparação retornará false, pois ocorrerá erro de arredondamento. Exemplo: `9223372036854775808.0 != 9223372036854775808`, porque o número `9223372036854775808` não pode ser representado exatamente como número de ponto flutuante (e `9223372036854775808.0` é arredondado para `9223372036854776000.0`). Porém, na versão anterior, a comparação retornava que os números eram iguais, porque, se o número de ponto flutuante `9223372036854776000.0` fosse convertido de volta para UInt64, o resultado seria `9223372036854775808`. Como referência, a linguagem de programação Python também trata esses números como iguais. Mas esse comportamento dependia do modelo de CPU (com resultados diferentes em AMD64 e AArch64 para alguns números fora do intervalo), por isso tornamos a comparação mais precisa. Ela tratará números int e float como iguais somente se o int estiver representado exatamente no tipo de ponto flutuante. [#22595](https://github.com/ClickHouse/ClickHouse/pull/22595) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Remove o suporte a `argMin` e `argMax` para um único argumento `Tuple`. O código não era seguro em termos de memória. O recurso foi adicionado por engano e causa confusão. Essas funções poderão ser reintroduzidas posteriormente com nomes diferentes. Isso corrige [#22384](https://github.com/ClickHouse/ClickHouse/issues/22384) e reverte [#17359](https://github.com/ClickHouse/ClickHouse/issues/17359). [#23393](https://github.com/ClickHouse/ClickHouse/pull/23393) ([alexey-milovidov](https://github.com/alexey-milovidov)).

<div id="new-feature">
  #### Novo recurso
</div>

* Adicionadas as funções `dictGetChildren(dictionary, key)`, `dictGetDescendants(dictionary, key, level)`. A função `dictGetChildren` retorna todos os filhos na forma de um array de índices. É uma transformação inversa de `dictGetHierarchy`. A função `dictGetDescendants` retorna todos os descendentes como se `dictGetChildren` fosse aplicada recursivamente `level` vezes. O valor zero de `level` equivale a infinito. Melhorado o desempenho das funções `dictGetHierarchy` e `dictIsIn`. Fecha [#14656](https://github.com/ClickHouse/ClickHouse/issues/14656). [#22096](https://github.com/ClickHouse/ClickHouse/pull/22096) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionada a função `dictGetOrNull`. Ela funciona como `dictGet`, mas retorna `Null` caso a chave não seja encontrada no dicionário. Fecha [#22375](https://github.com/ClickHouse/ClickHouse/issues/22375). [#22413](https://github.com/ClickHouse/ClickHouse/pull/22413) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionada uma função de tabela `s3Cluster`, que permite processar arquivos de `s3` em paralelo em cada nó de um cluster especificado. [#22012](https://github.com/ClickHouse/ClickHouse/pull/22012) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Adicionado suporte a réplicas e shards no engine de tabela/função de tabela MySQL/PostgreSQL. Você pode escrever `SELECT * FROM mysql('host{1,2}-{1|2}', ...)`. Fecha [#20969](https://github.com/ClickHouse/ClickHouse/issues/20969). [#22217](https://github.com/ClickHouse/ClickHouse/pull/22217) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adicionada a consulta `ALTER TABLE ... FETCH PART ...`. Ela é semelhante a `FETCH PARTITION`, mas busca apenas uma parte. [#22706](https://github.com/ClickHouse/ClickHouse/pull/22706) ([turbo jason](https://github.com/songenjie)).
* Adicionada uma configuração `max_distributed_depth` que limita a profundidade de consultas recursivas a tabelas `Distributed`. Fecha [#20229](https://github.com/ClickHouse/ClickHouse/issues/20229). [#21942](https://github.com/ClickHouse/ClickHouse/pull/21942) ([flynn](https://github.com/ucasFL)).

<div id="performance-improvement">
  #### Melhoria de desempenho
</div>

* Melhorado o desempenho de `intDiv` com despacho dinâmico para AVX2. Isso fecha [#22314](https://github.com/ClickHouse/ClickHouse/issues/22314). [#23000](https://github.com/ClickHouse/ClickHouse/pull/23000) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Melhorado o desempenho da leitura no formato de entrada `ArrowStream` para fontes que não sejam arquivo local (por exemplo, URL). [#22673](https://github.com/ClickHouse/ClickHouse/pull/22673) ([nvartolomei](https://github.com/nvartolomei)).
* Compressão desabilitada por padrão ao interagir com localhost (com o clickhouse-client ou de servidor para servidor em consultas distribuídas) via protocolo nativo. Isso pode melhorar o desempenho de algumas operações de importação/exportação. Isso fecha [#22234](https://github.com/ClickHouse/ClickHouse/issues/22234). [#22237](https://github.com/ClickHouse/ClickHouse/pull/22237) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Exclui valores que não pertencem ao shard da parte direita da cláusula IN em consultas distribuídas (em `optimize_skip_unused_shards_rewrite_in`, habilitado por padrão, já que ainda requer `optimize_skip_unused_shards`). [#21511](https://github.com/ClickHouse/ClickHouse/pull/21511) ([Azat Khuzhin](https://github.com/azat)).
* Melhorado o desempenho da leitura de um subconjunto de colunas com table engine do tipo File e formato colunar, como Parquet, Arrow ou ORC. Isso fecha [#issue:20129](https://github.com/ClickHouse/ClickHouse/issues/20129). [#21302](https://github.com/ClickHouse/ClickHouse/pull/21302) ([keenwolf](https://github.com/keen-wolf)).
* Permite mover mais condições para `PREWHERE`, como era antes da versão 21.1 (ajuste de heurísticas internas). Um número insuficiente de condições movidas poderia levar a um desempenho pior. [#23397](https://github.com/ClickHouse/ClickHouse/pull/23397) ([Anton Popov](https://github.com/CurtizJ)).
* Melhorado o desempenho das conexões ODBC e corrigidos todos os problemas pendentes do backlog. Uso da biblioteca `nanodbc` em vez de `Poco::ODBC`. Fecha [#9678](https://github.com/ClickHouse/ClickHouse/issues/9678). Adicionado suporte a DateTime64 e Decimal\* para o table engine ODBC. Fecha [#21961](https://github.com/ClickHouse/ClickHouse/issues/21961). Corrigido um problema em que texto em cirílico era truncado. Fecha [#16246](https://github.com/ClickHouse/ClickHouse/issues/16246). Adicionados connection pools para a odbc bridge. [#21972](https://github.com/ClickHouse/ClickHouse/pull/21972) ([Kseniia Sumarokova](https://github.com/kssenii)).

<div id="improvement">
  #### Melhoria
</div>

* O `max_uri_size` (o tamanho máximo da URL na interface HTTP) foi aumentado para 1 MiB por padrão. Isso fecha [#21197](https://github.com/ClickHouse/ClickHouse/issues/21197). [#22997](https://github.com/ClickHouse/ClickHouse/pull/22997) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Defina `background_fetches_pool_size` como `8`, o que é mais adequado para uso em produção com inserções pequenas e frequentes ou com um cluster ZooKeeper lento. [#22945](https://github.com/ClickHouse/ClickHouse/pull/22945) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* FlatDictionary: adicionadas as opções `initial_array_size` e `max_array_size`. [#22521](https://github.com/ClickHouse/ClickHouse/pull/22521) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionada a nova configuração `non_replicated_deduplication_window` para a desduplicação de inserções no MergeTree não replicado. [#22514](https://github.com/ClickHouse/ClickHouse/pull/22514) ([alesapin](https://github.com/alesapin)).
* Atualização dos caminhos para as configurações do modelo `CatBoost` no recarregamento de configuração. [#22434](https://github.com/ClickHouse/ClickHouse/pull/22434) ([Kruglov Pavel](https://github.com/Avogar)).
* Adicionado suporte ao tipo `Decimal256` nos Dictionaries. `Decimal256` é um recurso experimental. Fecha [#20979](https://github.com/ClickHouse/ClickHouse/issues/20979). [#22960](https://github.com/ClickHouse/ClickHouse/pull/22960) ([Maksim Kita](https://github.com/kitaisreal)).
* `async_socket_for_remote` ativado por padrão (usando menos threads do SO para consultas distribuídas). [#23683](https://github.com/ClickHouse/ClickHouse/pull/23683) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigido `quantile(s)TDigest`. Adicionado tratamento especial para centroides singleton, de acordo com tdunning/t-digest 3.2+. Também foi corrigido um bug de compressão excessiva de centroides na implementação de uma versão anterior do algoritmo. [#23314](https://github.com/ClickHouse/ClickHouse/pull/23314) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Tornar o nome da função `unhex` insensível a maiúsculas e minúsculas para compatibilidade com o MySQL. [#23229](https://github.com/ClickHouse/ClickHouse/pull/23229) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Implementadas as funções `arrayHasAny`, `arrayHasAll`, `has`, `indexOf`, `countEqual` para o caso genérico em que os tipos dos elementos do array são diferentes. Nas versões anteriores, as funções `arrayHasAny` e `arrayHasAll` retornavam false, e `has`, `indexOf` e `countEqual` lançavam exceção. Também foi adicionado suporte a `Decimal` e a tipos inteiros grandes nas funções `has` e similares. Isso fecha [#20272](https://github.com/ClickHouse/ClickHouse/issues/20272). [#23044](https://github.com/ClickHouse/ClickHouse/pull/23044) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Aumentado o limite para o número máximo de correspondências no resultado da função `extractAllGroupsHorizontal`. [#23036](https://github.com/ClickHouse/ClickHouse/pull/23036) ([Vasily Nemkov](https://github.com/Enmk)).
* Não execute `optimize_skip_unused_shards` em clusters com um único nó. [#22999](https://github.com/ClickHouse/ClickHouse/pull/22999) ([Azat Khuzhin](https://github.com/azat)).
* Adicionada a possibilidade de executar clickhouse-keeper (substituto experimental compatível com o ZooKeeper) com SSL. A configuração `keeper_server.tcp_port_secure` pode ser usada para interação segura entre o cliente e o keeper-server. `keeper_server.raft_configuration.secure` pode ser usada para habilitar a comunicação interna segura entre os nós. [#22992](https://github.com/ClickHouse/ClickHouse/pull/22992) ([alesapin](https://github.com/alesapin)).
* Adicionada a capacidade de descarregar o buffer somente em segundo plano nas tabelas `Buffer`. [#22986](https://github.com/ClickHouse/ClickHouse/pull/22986) ([Azat Khuzhin](https://github.com/azat)).
* Ao selecionar de uma tabela MergeTree com NULL na condição WHERE, em casos raros, era gerada uma exceção. Isso fecha [#20019](https://github.com/ClickHouse/ClickHouse/issues/20019). [#22978](https://github.com/ClickHouse/ClickHouse/pull/22978) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrigido o tratamento de erros no cliente HTTP Poco para AWS. [#22973](https://github.com/ClickHouse/ClickHouse/pull/22973) ([kreuzerkrieg](https://github.com/kreuzerkrieg)).
* Passa a respeitar `max_part_removal_threads` no `ReplicatedMergeTree`. [#22971](https://github.com/ClickHouse/ClickHouse/pull/22971) ([Azat Khuzhin](https://github.com/azat)).
* Corrige um caso de borda obscuro nas configurações do MergeTree inactive\_parts\_to\_throw\_insert = 0 com inactive\_parts\_to\_delay\_insert > 0. [#22947](https://github.com/ClickHouse/ClickHouse/pull/22947) ([Azat Khuzhin](https://github.com/azat)).
* `dateDiff` agora funciona com argumentos `DateTime64` (mesmo para valores fora do intervalo de `DateTime`) [#22931](https://github.com/ClickHouse/ClickHouse/pull/22931) ([Vasily Nemkov](https://github.com/Enmk)).
* MaterializeMySQL (funcionalidade experimental): passou a permitir replicar bancos de dados MySQL que contêm views sem falhar. Isso é feito ignorando as views. [#22760](https://github.com/ClickHouse/ClickHouse/pull/22760) ([Christian](https://github.com/cfroystad)).
* Permite ROW POLICY do RBAC via protocolo PostgreSQL. Fecha [#22658](https://github.com/ClickHouse/ClickHouse/issues/22658). O protocolo PostgreSQL é habilitado por padrão na configuração. [#22755](https://github.com/ClickHouse/ClickHouse/pull/22755) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adicionada uma métrica para rastrear quanto tempo é gasto aguardando o bloqueio da camada Buffer. [#22725](https://github.com/ClickHouse/ClickHouse/pull/22725) ([Azat Khuzhin](https://github.com/azat)).
* Permite o uso de CTE na definição de VIEW. Isso fecha [#22491](https://github.com/ClickHouse/ClickHouse/issues/22491). [#22657](https://github.com/ClickHouse/ClickHouse/pull/22657) ([Amos Bird](https://github.com/amosbird)).
* Limpa o restante da tela e mostra o cursor no `clickhouse-client` caso o programa anterior tenha deixado resíduos no terminal. Isso fecha [#16518](https://github.com/ClickHouse/ClickHouse/issues/16518). [#22634](https://github.com/ClickHouse/ClickHouse/pull/22634) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Faz com que a função `round` se comporte de forma consistente em plataformas não x86\_64. É usado o arredondamento para o par mais próximo quando a fração é exatamente metade (arredondamento bancário). [#22582](https://github.com/ClickHouse/ClickHouse/pull/22582) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Verificação correta da estrutura dos blocos de dados enviados por tabelas Distributed. [#22325](https://github.com/ClickHouse/ClickHouse/pull/22325) ([Azat Khuzhin](https://github.com/azat)).
* Permite publicar erros do Kafka em uma coluna virtual do engine Kafka, controlada pela configuração `kafka_handle_error_mode`. [#21850](https://github.com/ClickHouse/ClickHouse/pull/21850) ([fastio](https://github.com/fastio)).
* Adiciona aliases `simpleJSONExtract/simpleJSONHas` para `visitParam/visitParamExtract{UInt, Int, Bool, Float, Raw, String}`. Corrige [#21383](https://github.com/ClickHouse/ClickHouse/issues/21383). [#21519](https://github.com/ClickHouse/ClickHouse/pull/21519) ([fastio](https://github.com/fastio)).
* Adiciona `clickhouse-library-bridge` para fonte de dicionário de biblioteca. Fecha [#9502](https://github.com/ClickHouse/ClickHouse/issues/9502). [#21509](https://github.com/ClickHouse/ClickHouse/pull/21509) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Proibida a remoção de uma coluna se ela for referenciada por uma visão materializada. Fecha [#21164](https://github.com/ClickHouse/ClickHouse/issues/21164). [#21303](https://github.com/ClickHouse/ClickHouse/pull/21303) ([flynn](https://github.com/ucasFL)).
* Suporte a credenciais dinâmicas entre servidores (rotação de credenciais sem indisponibilidade). [#14113](https://github.com/ClickHouse/ClickHouse/pull/14113) ([johnskopis](https://github.com/johnskopis)).
* Adicionado suporte ao armazenamento no Kafka com mensagens nos formatos `Arrow` e `ArrowStream`. [#23415](https://github.com/ClickHouse/ClickHouse/pull/23415) ([Chao Ma](https://github.com/godliness)).
* Corrigido o ponto e vírgula ausente na mensagem de exceção. O usuário pode achar essa mensagem de exceção desagradável de ler. [#23208](https://github.com/ClickHouse/ClickHouse/pull/23208) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrigida a ausência de espaço em branco em algumas mensagens de exceção sobre o tipo `LowCardinality`. [#23207](https://github.com/ClickHouse/ClickHouse/pull/23207) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Alguns valores eram formatados com alinhamento centralizado nas células da tabela no formato `Markdown`. Isso não acontece mais. [#23096](https://github.com/ClickHouse/ClickHouse/pull/23096) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Remova detalhes não essenciais das sugestões no clickhouse-client. Isso fecha [#22158](https://github.com/ClickHouse/ClickHouse/issues/22158). [#23040](https://github.com/ClickHouse/ClickHouse/pull/23040) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Cálculo correto do campo `bytes_allocated` em `system.dictionaries` para dicionários sparse\_hashed. [#22867](https://github.com/ClickHouse/ClickHouse/pull/22867) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida a contabilização aproximada do total de linhas na leitura reversa do MergeTree. [#22726](https://github.com/ClickHouse/ClickHouse/pull/22726) ([Azat Khuzhin](https://github.com/azat)).
* Corrige o caso em que era possível configurar um Dicionário com uma fonte ClickHouse que apontava para si mesma, o que levava a um loop infinito. Fecha [#14314](https://github.com/ClickHouse/ClickHouse/issues/14314). [#22479](https://github.com/ClickHouse/ClickHouse/pull/22479) ([Maksim Kita](https://github.com/kitaisreal)).

<div id="bug-fix">
  #### Correção de bug
</div>

* Múltiplas correções para hedged requests. Corrigido o erro `Can't initialize pipeline with empty pipe` em consultas com `GLOBAL IN/JOIN` quando a configuração `use_hedged_requests` está habilitada. Corrige [#23431](https://github.com/ClickHouse/ClickHouse/issues/23431). [#23805](https://github.com/ClickHouse/ClickHouse/pull/23805) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). Corrigida uma condição de corrida em conexões hedged que levava a falha. Isso corrige [#22161](https://github.com/ClickHouse/ClickHouse/issues/22161). [#22443](https://github.com/ClickHouse/ClickHouse/pull/22443) ([Kruglov Pavel](https://github.com/Avogar)). Corrigida uma possível falha caso um `unknown packet` seja recebido de uma consulta remota (com `async_socket_for_remote` habilitado). Corrige [#21167](https://github.com/ClickHouse/ClickHouse/issues/21167). [#23309](https://github.com/ClickHouse/ClickHouse/pull/23309) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigido o comportamento em que, ao desabilitar a configuração `input_format_with_names_use_header `, todos os dados de entrada no formato CSVWithNames são descartados. Isso corrige [#22406](https://github.com/ClickHouse/ClickHouse/issues/22406). [#23202](https://github.com/ClickHouse/ClickHouse/pull/23202) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrigido um problema de timeout na conexão da bridge JDBC remota. Fecha [#9609](https://github.com/ClickHouse/ClickHouse/issues/9609). [#23771](https://github.com/ClickHouse/ClickHouse/pull/23771) ([Maksim Kita](https://github.com/kitaisreal), [alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige a lógica da carga inicial de `complex_key_hashed` caso `update_field` esteja especificado. Fecha [#23800](https://github.com/ClickHouse/ClickHouse/issues/23800). [#23824](https://github.com/ClickHouse/ClickHouse/pull/23824) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrigida uma falha quando `PREWHERE` e o filtro de política de linha entravam em vigor simultaneamente e o resultado era vazio. [#23763](https://github.com/ClickHouse/ClickHouse/pull/23763) ([Amos Bird](https://github.com/amosbird)).
* Evita o possível erro "Cannot schedule a task" (em caso de alguma exceção) ao executar INSERT em Distributed. [#23744](https://github.com/ClickHouse/ClickHouse/pull/23744) ([Azat Khuzhin](https://github.com/azat)).
* Adicionada uma exceção para o caso de valores totalmente iguais em ambas as amostras na função de agregação `mannWhitneyUTest`. Isso corrige [#23646](https://github.com/ClickHouse/ClickHouse/issues/23646). [#23654](https://github.com/ClickHouse/ClickHouse/pull/23654) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrigida uma falha no servidor ao inserir dados via HTTP que causava uma exceção. Isso corrige [#23512](https://github.com/ClickHouse/ClickHouse/issues/23512). [#23643](https://github.com/ClickHouse/ClickHouse/pull/23643) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrigida a interpretação equivocada de algumas expressões `LIKE` com sequências de escape. [#23610](https://github.com/ClickHouse/ClickHouse/pull/23610) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrigido o travamento nos comandos de reinicialização/parada. Fecha [#20214](https://github.com/ClickHouse/ClickHouse/issues/20214). [#23552](https://github.com/ClickHouse/ClickHouse/pull/23552) ([filimonov](https://github.com/filimonov)).
* Corrigido o matcher `COLUMNS` no caso de múltiplas junções em uma consulta SELECT. Fecha [#22736](https://github.com/ClickHouse/ClickHouse/issues/22736). [#23501](https://github.com/ClickHouse/ClickHouse/pull/23501) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrigido um travamento ao modificar o valor padrão de uma coluna quando a própria coluna é usada como parâmetro do `ReplacingMergeTree`. [#23483](https://github.com/ClickHouse/ClickHouse/pull/23483) ([hexiaoting](https://github.com/hexiaoting)).
* Corrigidos casos extremos em mesclagens verticais com `ReplacingMergeTree`. Em casos raros, isso podia levar a falhas nas mesclagens com exceções como `Incomplete granules are not allowed while blocks are granules size`. [#23459](https://github.com/ClickHouse/ClickHouse/pull/23459) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigido bug que não permitia fazer cast de um literal de array vazio para um array com dimensões maiores que 1, por exemplo, `CAST([] AS Array(Array(String)))`. Fecha [#14476](https://github.com/ClickHouse/ClickHouse/issues/14476). [#23456](https://github.com/ClickHouse/ClickHouse/pull/23456) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrigido um bug em que a função de agregação `deltaSum` produzia um resultado incorreto após a redefinição do contador. [#23437](https://github.com/ClickHouse/ClickHouse/pull/23437) ([Russ Frank](https://github.com/rf)).
* Corrigido o erro `Cannot unlink file` durante a criação sem sucesso de uma tabela ReplicatedMergeTree com configuração multidisco. Isso fecha [#21755](https://github.com/ClickHouse/ClickHouse/issues/21755). [#23433](https://github.com/ClickHouse/ClickHouse/pull/23433) ([tavplubix](https://github.com/tavplubix)).
* Corrigida a geração de expressões constantes incompatíveis durante a partition pruning com base em colunas virtuais. Isso corrige [https://github.com/ClickHouse/ClickHouse/pull/21401#discussion\&#95;r611888913](https://github.com/ClickHouse/ClickHouse/pull/21401#discussion\&#95;r611888913). [#23366](https://github.com/ClickHouse/ClickHouse/pull/23366) ([Amos Bird](https://github.com/amosbird)).
* Corrigida uma falha ao definir join\_algorithm como 'auto' e executar um Join com um Dicionário. Fecha [#23002](https://github.com/ClickHouse/ClickHouse/issues/23002). [#23312](https://github.com/ClickHouse/ClickHouse/pull/23312) ([Vladimir](https://github.com/vdimir)).
* Não afrouxe as condições NOT durante a poda de partições. Isso corrige [#23305](https://github.com/ClickHouse/ClickHouse/issues/23305) e [#21539](https://github.com/ClickHouse/ClickHouse/issues/21539). [#23310](https://github.com/ClickHouse/ClickHouse/pull/23310) ([Amos Bird](https://github.com/amosbird)).
* Corrigida uma condição de corrida muito rara na limpeza em segundo plano de blocos antigos. Ela poderia fazer com que um bloco não fosse desduplicado se estivesse muito próximo do fim da janela de desduplicação. [#23301](https://github.com/ClickHouse/ClickHouse/pull/23301) ([tavplubix](https://github.com/tavplubix)).
* Corrigida uma condição de corrida (distribuída) muito rara entre a criação e a remoção de tabelas ReplicatedMergeTree. Isso podia causar exceções como `node doesn't exist` ao tentar criar uma tabela replicada. Corrige [#21419](https://github.com/ClickHouse/ClickHouse/issues/21419). [#23294](https://github.com/ClickHouse/ClickHouse/pull/23294) ([tavplubix](https://github.com/tavplubix)).
* Corrigida a criação via DDL de Dicionário com chave simples quando a chave primária não é o primeiro atributo. Corrige [#23236](https://github.com/ClickHouse/ClickHouse/issues/23236). [#23262](https://github.com/ClickHouse/ClickHouse/pull/23262) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrigida a leitura via ODBC quando há muitos nomes de colunas longos em uma tabela. Fecha [#8853](https://github.com/ClickHouse/ClickHouse/issues/8853). [#23215](https://github.com/ClickHouse/ClickHouse/pull/23215) ([Kseniia Sumarokova](https://github.com/kssenii)).
* MaterializeMySQL (funcionalidade experimental): corrigido o erro `Not found column` ao selecionar em `MaterializeMySQL` com uma condição na coluna-chave. Corrige [#22432](https://github.com/ClickHouse/ClickHouse/issues/22432). [#23200](https://github.com/ClickHouse/ClickHouse/pull/23200) ([tavplubix](https://github.com/tavplubix)).
* Corrige o tratamento de aliases caso a subconsulta tenha sido otimizada para uma constante. Corrige [#22924](https://github.com/ClickHouse/ClickHouse/issues/22924). Corrige [#10401](https://github.com/ClickHouse/ClickHouse/issues/10401). [#23191](https://github.com/ClickHouse/ClickHouse/pull/23191) ([Maksim Kita](https://github.com/kitaisreal)).
* O servidor pode não iniciar se a configuração `data_type_default_nullable` estiver habilitada no perfil padrão; isso foi corrigido. Corrige [#22573](https://github.com/ClickHouse/ClickHouse/issues/22573). [#23185](https://github.com/ClickHouse/ClickHouse/pull/23185) ([tavplubix](https://github.com/tavplubix)).
* Corrigida uma falha no desligamento que ocorria devido à contagem incorreta das conexões atuais. [#23154](https://github.com/ClickHouse/ClickHouse/pull/23154) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrigido o erro `Table .inner_id... doesn't exist` ao consultar uma visão materializada após desanexá-la do banco de dados Atomic e anexá-la novamente. [#23047](https://github.com/ClickHouse/ClickHouse/pull/23047) ([tavplubix](https://github.com/tavplubix)).
* Corrige o erro `Cannot find column in ActionsDAG result`, que pode ocorrer se a subconsulta usar `untuple`. Corrige [#22290](https://github.com/ClickHouse/ClickHouse/issues/22290). [#22991](https://github.com/ClickHouse/ClickHouse/pull/22991) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigido o uso de colunas constantes do tipo `Map` com valores anuláveis. [#22939](https://github.com/ClickHouse/ClickHouse/pull/22939) ([Anton Popov](https://github.com/CurtizJ)).
* corrigidos `formatDateTime()` em `DateTime64` e o especificador de formato "%C"; corrigido `toDateTime64()` para valores grandes e escala não zero. [#22937](https://github.com/ClickHouse/ClickHouse/pull/22937) ([Vasily Nemkov](https://github.com/Enmk)).
* Corrigido um travamento ao usar `mannWhitneyUTest` e `rankCorr` com funções de janela. Isso corrige [#22728](https://github.com/ClickHouse/ClickHouse/issues/22728). [#22876](https://github.com/ClickHouse/ClickHouse/pull/22876) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* LIVE VIEW (funcionalidade experimental): corrigido um possível travamento durante DROP/CREATE concorrente de TEMPORARY LIVE VIEW no `TemporaryLiveViewCleaner`, [veja](https://gist.github.com/vzakaznikov/0c03195960fc86b56bfe2bc73a90019e). [#22858](https://github.com/ClickHouse/ClickHouse/pull/22858) ([Vitaly Baranov](https://github.com/vitlibar)).
* Foi corrigido o pushdown de `HAVING` no caso em que a coluna de filtro é usada na agregação. [#22763](https://github.com/ClickHouse/ClickHouse/pull/22763) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigidos possíveis travamentos nas solicitações ao Zookeeper em caso de exceção de OOM. Corrige [#22438](https://github.com/ClickHouse/ClickHouse/issues/22438). [#22684](https://github.com/ClickHouse/ClickHouse/pull/22684) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigida a espera por mutações em várias réplicas nos motores de tabela ReplicatedMergeTree. Antes, a consulta de mutation/alter podia terminar antes de a mutação ser realmente executada em outras réplicas. [#22669](https://github.com/ClickHouse/ClickHouse/pull/22669) ([alesapin](https://github.com/alesapin)).
* Corrigida a exceção para Log com tipos aninhados sem colunas na cláusula SELECT. [#22654](https://github.com/ClickHouse/ClickHouse/pull/22654) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida a espera indefinida por solicitações auxiliares da AWS. [#22594](https://github.com/ClickHouse/ClickHouse/pull/22594) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Corrigido um travamento quando o cliente fecha a conexão muito cedo [#22579](https://github.com/ClickHouse/ClickHouse/issues/22579). [#22591](https://github.com/ClickHouse/ClickHouse/pull/22591) ([nvartolomei](https://github.com/nvartolomei)).
* Tipo de dado `Map` (funcionalidade experimental): corrigido um problema na formatação da função `map` em consultas distribuídas. [#22588](https://github.com/ClickHouse/ClickHouse/pull/22588) ([foolchi](https://github.com/foolchi)).
* Corrigida a desserialização de string vazia sem quebra de linha no final do formato TSV. Isso corrige [#20244](https://github.com/ClickHouse/ClickHouse/issues/20244). Possível solução alternativa sem atualizar a versão: defina `input_format_null_as_default` como zero. Era zero nas versões antigas. [#22527](https://github.com/ClickHouse/ClickHouse/pull/22527) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrigido o `CAST` incorreto de uma coluna do tipo `LowCardinality` no algoritmo Merge Join. Fecha [#22386](https://github.com/ClickHouse/ClickHouse/issues/22386), fecha [#22388](https://github.com/ClickHouse/ClickHouse/issues/22388). [#22510](https://github.com/ClickHouse/ClickHouse/pull/22510) ([Vladimir](https://github.com/vdimir)).
* Era possível haver um estouro de buffer (na leitura) no índice de texto completo `tokenbf_v1`. Os bytes excedentes não são usados, mas a operação de leitura pode causar uma falha em casos raros. Isso fecha [#19233](https://github.com/ClickHouse/ClickHouse/issues/19233). [#22421](https://github.com/ClickHouse/ClickHouse/pull/22421) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Não limitar o tamanho dos fragmentos HTTP. Corrige [#21907](https://github.com/ClickHouse/ClickHouse/issues/21907). [#22322](https://github.com/ClickHouse/ClickHouse/pull/22322) ([Ivan](https://github.com/abyss7)).
* Corrigido um bug que levava à agregação insuficiente dos dados quando `optimize_aggregation_in_order` estava habilitado e havia muitas partes na tabela. Leve melhora no desempenho da agregação com `optimize_aggregation_in_order` habilitado. [#21889](https://github.com/ClickHouse/ClickHouse/pull/21889) ([Anton Popov](https://github.com/CurtizJ)).
* Verificar se a função de tabela view é usada como coluna. Isso complementa #20350. [#21465](https://github.com/ClickHouse/ClickHouse/pull/21465) ([Amos Bird](https://github.com/amosbird)).
* Corrige o erro de "coluna desconhecida" em tabelas com o mecanismo `Merge` em consultas com `JOIN` e agregação. Fecha [#18368](https://github.com/ClickHouse/ClickHouse/issues/18368), fecha [#22226](https://github.com/ClickHouse/ClickHouse/issues/22226). [#21370](https://github.com/ClickHouse/ClickHouse/pull/21370) ([Vladimir](https://github.com/vdimir)).
* Corrigidos conflitos de nomes na otimização de pushdown. Isso causava filtragem incorreta em `WHERE` após FULL JOIN. Fecha [#20497](https://github.com/ClickHouse/ClickHouse/issues/20497). [#20622](https://github.com/ClickHouse/ClickHouse/pull/20622) ([Vladimir](https://github.com/vdimir)).
* Corrigido um bug muito raro em que uma inserção com quórum com `quorum_parallel=1` não era realmente um "quórum" por causa da desduplicação. [#18215](https://github.com/ClickHouse/ClickHouse/pull/18215) ([filimonov](https://github.com/filimonov) - reportado, [alesapin](https://github.com/alesapin) - corrigido).

<div id="buildtestingpackaging-improvement-4">
  #### Melhoria em compilação/testes/empacotamento
</div>

* Executados testes stateless em paralelo no CI. [#22300](https://github.com/ClickHouse/ClickHouse/pull/22300) ([alesapin](https://github.com/alesapin)).
* Simplificados os pacotes Debian. Isso corrige [#21698](https://github.com/ClickHouse/ClickHouse/issues/21698). [#22976](https://github.com/ClickHouse/ClickHouse/pull/22976) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Adicionado suporte à compilação do ClickHouse no Apple M1. [#21639](https://github.com/ClickHouse/ClickHouse/pull/21639) ([changvvb](https://github.com/changvvb)).
* Corrigida a compilação do ClickHouse Keeper para macOS. [#22860](https://github.com/ClickHouse/ClickHouse/pull/22860) ([alesapin](https://github.com/alesapin)).
* Corrigidos alguns testes na plataforma AArch64. [#22596](https://github.com/ClickHouse/ClickHouse/pull/22596) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Adicionado alinhamento de funções para possivelmente melhorar o desempenho. [#21431](https://github.com/ClickHouse/ClickHouse/pull/21431) ([Danila Kutenin](https://github.com/danlark1)).
* Ajustados alguns testes para produzir resultados idênticos em amd64 e aarch64 (qemu). O resultado dependia de um comportamento da CPU específico da implementação. [#22590](https://github.com/ClickHouse/ClickHouse/pull/22590) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Permitido profiling de consulta apenas em x86\_64. Veja [#15174](https://github.com/ClickHouse/ClickHouse/issues/15174#issuecomment-812954965) e [#15638](https://github.com/ClickHouse/ClickHouse/issues/15638#issuecomment-703805337). Isso fecha [#15638](https://github.com/ClickHouse/ClickHouse/issues/15638). [#22580](https://github.com/ClickHouse/ClickHouse/pull/22580) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Permitida a compilação com xz (lzma) externo usando a opção de CMake `USE_INTERNAL_XZ_LIBRARY=OFF`. [#22571](https://github.com/ClickHouse/ClickHouse/pull/22571) ([Kfir Itzhak](https://github.com/mastertheknife)).
* Habilitado `openldap` empacotado em `ppc64le` [#22487](https://github.com/ClickHouse/ClickHouse/pull/22487) ([Kfir Itzhak](https://github.com/mastertheknife)).
* Desabilitadas bibliotecas incompatíveis (geralmente específicas da plataforma) em `ppc64le` [#22475](https://github.com/ClickHouse/ClickHouse/pull/22475) ([Kfir Itzhak](https://github.com/mastertheknife)).
* Adicionado teste Jepsen no CI para o ClickHouse Keeper. [#22373](https://github.com/ClickHouse/ClickHouse/pull/22373) ([alesapin](https://github.com/alesapin)).
* Compilado `jemalloc` com suporte a [heap profiling](https://github.com/jemalloc/jemalloc/wiki/Use-Case%3A-Heap-Profiling). [#22834](https://github.com/ClickHouse/ClickHouse/pull/22834) ([nvartolomei](https://github.com/nvartolomei)).
* Evitado UB nos motores `*Log` no desbloqueio de rwlock devido a desbloqueio feito por outra thread. [#22583](https://github.com/ClickHouse/ClickHouse/pull/22583) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido UB ao desbloquear o rwlock do TinyLog a partir da mesma thread. [#22560](https://github.com/ClickHouse/ClickHouse/pull/22560) ([Azat Khuzhin](https://github.com/azat)).

<div id="clickhouse-release-214">
  ## Lançamento do ClickHouse 21.4
</div>

<div id="clickhouse-release-2141-2021-04-12">
  ### Lançamento do ClickHouse 21.4.1 2021-04-12
</div>

<div id="backward-incompatible-change">
  #### Alteração incompatível com versões anteriores
</div>

* A `toStartOfIntervalFunction` alinhará os intervalos de hora à meia-noite (em versões anteriores, eles eram alinhados ao início da epoch Unix). Por exemplo, `toStartOfInterval(x, INTERVAL 11 HOUR)` dividirá cada dia em três intervalos: `00:00:00..10:59:59`, `11:00:00..21:59:59` e `22:00:00..23:59:59`. Esse comportamento é mais adequado às necessidades práticas. Fecha [#9510](https://github.com/ClickHouse/ClickHouse/issues/9510). [#22060](https://github.com/ClickHouse/ClickHouse/pull/22060) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* `Age` e `Precision` nas configurações de rollup do Graphite devem aumentar de uma retenção para outra. Agora isso é verificado, e uma configuração incorreta gera uma exceção. [#21496](https://github.com/ClickHouse/ClickHouse/pull/21496) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Corrige `cutToFirstSignificantSubdomainCustom()`/`firstSignificantSubdomainCustom()` que retornavam resultados incorretos para domínios com 3 ou mais níveis presentes na lista personalizada de domínios de nível superior. Para domínios de entrada que correspondem a esses domínios de nível superior personalizados, o domínio de terceiro nível era considerado o primeiro significativo. Isso foi corrigido. Essa alteração pode introduzir incompatibilidade se a função for usada, por exemplo, na chave de sharding. [#21946](https://github.com/ClickHouse/ClickHouse/pull/21946) ([Azat Khuzhin](https://github.com/azat)).
* A coluna `keys` na tabela `system.dictionaries` foi substituída pelas colunas `key.names` e `key.types`. As colunas `key.names`, `key.types`, `attribute.names`, `attribute.types` da tabela `system.dictionaries` não exigem que o dicionário esteja carregado. [#21884](https://github.com/ClickHouse/ClickHouse/pull/21884) ([Maksim Kita](https://github.com/kitaisreal)).
* Agora, as réplicas que estão processando o comando `ALTER TABLE ATTACH PART[ITION]` procuram em suas pastas `detached/` antes de buscar os dados de outras réplicas. Como detalhe de implementação, um novo comando `ATTACH_PART` foi introduzido no log replicado. As partes são procuradas e comparadas por suas somas de verificação. [#18978](https://github.com/ClickHouse/ClickHouse/pull/18978) ([Mike Kot](https://github.com/myrrc)). **Observação**:
  * As consultas `ATTACH PART[ITION]` podem não funcionar durante a atualização do cluster.
  * Não é possível reverter para uma versão mais antiga do ClickHouse após executar a consulta `ALTER ... ATTACH` na nova versão, pois os servidores antigos não conseguiriam processar a entrada `ATTACH_PART` no log replicado.
* Nesta versão, `<remote_url_allow_hosts></remote_url_allow_hosts>` vazio bloqueará todo o acesso a hosts remotos, enquanto nas versões anteriores isso não fazia nada. Se você quiser manter o comportamento antigo e tiver o elemento `remote_url_allow_hosts` vazio no arquivo de configuração, remova-o. [#20058](https://github.com/ClickHouse/ClickHouse/pull/20058) ([Vladimir Chebotarev](https://github.com/excitoon)).

<div id="new-feature">
  #### Novo recurso
</div>

* Faixa estendida de `DateTime64` para suportar datas do ano de 1925 a 2283. Suporte aprimorado a `DateTime` em torno da data zero (`1970-01-01`). [#9404](https://github.com/ClickHouse/ClickHouse/pull/9404) ([alexey-milovidov](https://github.com/alexey-milovidov), [Vasily Nemkov](https://github.com/Enmk)). Nem todas as funções de data e hora funcionam com a faixa estendida de datas.
* Adicionado suporte à autenticação Kerberos para usuários pré-configurados e requisições HTTP (GSS-SPNEGO). [#14995](https://github.com/ClickHouse/ClickHouse/pull/14995) ([Denis Glazachev](https://github.com/traceon)).
* Adiciona a configuração `prefer_column_name_to_alias` para usar os nomes originais das colunas em vez de aliases. Isso é necessário para haver maior compatibilidade com as regras de alias comuns em bancos de dados. Isso é para [#9715](https://github.com/ClickHouse/ClickHouse/issues/9715) e [#9887](https://github.com/ClickHouse/ClickHouse/issues/9887). [#22044](https://github.com/ClickHouse/ClickHouse/pull/22044) ([Amos Bird](https://github.com/amosbird)).
* Adicionadas as funções `dictGetChildren(dictionary, key)`, `dictGetDescendants(dictionary, key, level)`. A função `dictGetChildren` retorna todos os filhos em um array de índices. É a transformação inversa de `dictGetHierarchy`. A função `dictGetDescendants` retorna todos os descendentes como se `dictGetChildren` fosse aplicada recursivamente `level` vezes. O valor zero de `level` é equivalente a infinito. Fecha [#14656](https://github.com/ClickHouse/ClickHouse/issues/14656). [#22096](https://github.com/ClickHouse/ClickHouse/pull/22096) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionada a fonte de dicionário `executable_pool`. Fecha [#14528](https://github.com/ClickHouse/ClickHouse/issues/14528). [#21321](https://github.com/ClickHouse/ClickHouse/pull/21321) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionada a função de tabela `dictionary`. Funciona da mesma forma que o engine `Dictionary`. Fecha [#21560](https://github.com/ClickHouse/ClickHouse/issues/21560). [#21910](https://github.com/ClickHouse/ClickHouse/pull/21910) ([Maksim Kita](https://github.com/kitaisreal)).
* Suporte ao tipo `Nullable` no atributo `PolygonDictionary`. [#21890](https://github.com/ClickHouse/ClickHouse/pull/21890) ([Maksim Kita](https://github.com/kitaisreal)).
* As funções `dictGet`, `dictHas` usam o nome do banco de dados atual caso ele não seja especificado para dicionários criados com DDL. Fecha [#21632](https://github.com/ClickHouse/ClickHouse/issues/21632). [#21859](https://github.com/ClickHouse/ClickHouse/pull/21859) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionada a função `dictGetOrNull`. Ela funciona como `dictGet`, mas retorna `Null` caso a chave não seja encontrada no dicionário. Fecha [#22375](https://github.com/ClickHouse/ClickHouse/issues/22375). [#22413](https://github.com/ClickHouse/ClickHouse/pull/22413) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionada atualização assíncrona aos dicionários `ComplexKeyCache`, `SSDCache` e `SSDComplexKeyCache`. Adicionado suporte ao tipo `Nullable` nos dicionários `Cache`, `ComplexKeyCache`, `SSDCache` e `SSDComplexKeyCache`. Adicionado suporte à busca de múltiplos atributos com as funções `dictGet` e `dictGetOrDefault`. Corrige [#21517](https://github.com/ClickHouse/ClickHouse/issues/21517). [#20595](https://github.com/ClickHouse/ClickHouse/pull/20595) ([Maksim Kita](https://github.com/kitaisreal)).
* Adiciona suporte à função `dictHas` para `RangeHashedDictionary`. Corrige [#6680](https://github.com/ClickHouse/ClickHouse/issues/6680). [#19816](https://github.com/ClickHouse/ClickHouse/pull/19816) ([Maksim Kita](https://github.com/kitaisreal)).
* Adiciona a função `timezoneOf`, que retorna o nome do fuso horário dos tipos de dados `DateTime` ou `DateTime64`. Isso não fecha [#9959](https://github.com/ClickHouse/ClickHouse/issues/9959). Corrige inconsistências nos nomes das funções: adiciona os aliases `timezone` e `timeZone`, bem como `toTimezone` e `toTimeZone`, além de `timezoneOf` e `timeZoneOf`. [#22001](https://github.com/ClickHouse/ClickHouse/pull/22001) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Adiciona a nova cláusula opcional `GRANTEES` para os comandos `CREATE/ALTER USER`. Ela especifica os usuários ou roles que podem receber grants deste usuário, desde que ele também tenha todos os acessos necessários concedidos com a opção de grant. Por padrão, usa-se `GRANTEES ANY`, o que significa que um usuário com a opção de grant pode conceder a qualquer pessoa. Sintaxe: `CREATE USER ... GRANTEES {user | role | ANY | NONE} [,...] [EXCEPT {user | role} [,...]]`. [#21641](https://github.com/ClickHouse/ClickHouse/pull/21641) ([Vitaly Baranov](https://github.com/vitlibar)).
* Adicionada a nova coluna `slowdowns_count` a `system.clusters`. Ao usar solicitações hedged, ela mostra quantas vezes mudamos para outra réplica porque esta estava respondendo lentamente. Também passa a mostrar o valor real de `errors_count` em `system.clusters`. [#21480](https://github.com/ClickHouse/ClickHouse/pull/21480) ([Kruglov Pavel](https://github.com/Avogar)).
* Adicionar a coluna virtual `_partition_id` para motores `MergeTree*`. Permitir o pruning de partições por `_partition_id`. Adicionar a função `partitionID()` para calcular o ID da partição como string. [#21401](https://github.com/ClickHouse/ClickHouse/pull/21401) ([Amos Bird](https://github.com/amosbird)).
* Adiciona a função `isIPAddressInRange` para verificar se um endereço IPv4 ou IPv6 pertence a um determinado prefixo de rede CIDR. [#21329](https://github.com/ClickHouse/ClickHouse/pull/21329) ([PHO](https://github.com/depressed-pho)).
* Adicionado o novo comando SQL `ALTER TABLE 'table_name' UNFREEZE [PARTITION 'part_expr'] WITH NAME 'backup_name'`. Esse comando é necessário para remover corretamente as partições 'congeladas' de todos os discos. [#21142](https://github.com/ClickHouse/ClickHouse/pull/21142) ([Pavel Kovalenko](https://github.com/Jokser)).
* Oferece suporte à conversão implícita do tipo de chave em JOIN. [#19885](https://github.com/ClickHouse/ClickHouse/pull/19885) ([Vladimir](https://github.com/vdimir)).

<div id="experimental-feature-6">
  #### Funcionalidade Experimental
</div>

* Suporte ao frame `RANGE OFFSET` (para funções de janela) para tipos de ponto flutuante. Implementadas as funções de janela `lagInFrame`/`leadInFrame`, que são análogas a `lag`/`lead`, mas respeitam o frame da janela. Elas são idênticas quando o frame é `between unbounded preceding and unbounded following`. Isso corrige [#5485](https://github.com/ClickHouse/ClickHouse/issues/5485). [#21895](https://github.com/ClickHouse/ClickHouse/pull/21895) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* Replicação zero-copy para `ReplicatedMergeTree` com armazenamento S3. [#16240](https://github.com/ClickHouse/ClickHouse/pull/16240) ([ianton-ru](https://github.com/ianton-ru)).
* Adicionada a possibilidade de migrar um disco S3 existente para o esquema com recursos de backup e restauração. [#22070](https://github.com/ClickHouse/ClickHouse/pull/22070) ([Pavel Kovalenko](https://github.com/Jokser)).

<div id="performance-improvement">
  #### Melhoria de desempenho
</div>

* Suporte à formatação paralela no `clickhouse-local` e em todos os outros lugares. [#21630](https://github.com/ClickHouse/ClickHouse/pull/21630) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Suporte a parsing paralelo para os formatos `CSVWithNames` e `TSVWithNames`. Isso fecha [#21085](https://github.com/ClickHouse/ClickHouse/issues/21085). [#21149](https://github.com/ClickHouse/ClickHouse/pull/21149) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Habilita leitura com mmap IO para intervalos de arquivos a partir de 64 MiB (a configuração `min_bytes_to_use_mmap_io`). Isso pode resultar em uma melhora moderada de desempenho. [#22326](https://github.com/ClickHouse/ClickHouse/pull/22326) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Adiciona cache para arquivos lidos com a configuração `min_bytes_to_use_mmap_io`. Isso proporciona um ganho significativo de desempenho (2x ou mais) quando o valor da configuração é pequeno, evitando chamadas frequentes de mmap/munmap e as falhas de página resultantes. Observe que mmap IO tem desvantagens importantes, o que o torna menos confiável em produção (por exemplo, travamentos ou SIGBUS em discos com falha; uso de memória menos controlável). Ainda assim, é bom em benchmarks. [#22206](https://github.com/ClickHouse/ClickHouse/pull/22206) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Evita cópia desnecessária de dados ao usar o codec `NONE`. Observe que o codec `NONE` é, em grande parte, inútil — recomenda-se sempre usar compressão (`LZ4` é o padrão). Apesar do que muitos acreditam, desabilitar a compressão pode não melhorar o desempenho (o efeito oposto também é possível). O codec `NONE` é útil em alguns casos: - quando os dados não são compressíveis; - para benchmarks sintéticos. [#22145](https://github.com/ClickHouse/ClickHouse/pull/22145) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* `GROUP BY` mais rápido com `max_rows_to_group_by` pequeno e `group_by_overflow_mode='any'`. [#21856](https://github.com/ClickHouse/ClickHouse/pull/21856) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Otimiza o desempenho de consultas como `SELECT ... FINAL ... WHERE`. Agora, em consultas com `FINAL`, é permitido mover para `PREWHERE` colunas que estão na chave de ordenação. [#21830](https://github.com/ClickHouse/ClickHouse/pull/21830) ([foolchi](https://github.com/foolchi)).
* Desempenho aprimorado ao substituir `memcpy` por outra implementação. Isso fecha [#18583](https://github.com/ClickHouse/ClickHouse/issues/18583). [#21520](https://github.com/ClickHouse/ClickHouse/pull/21520) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Melhora o desempenho da agregação na ordem da chave de ordenação (com a configuração `optimize_aggregation_in_order` habilitada). [#19401](https://github.com/ClickHouse/ClickHouse/pull/19401) ([Anton Popov](https://github.com/CurtizJ)).

<div id="improvement">
  #### Melhoria
</div>

* Adiciona um pool de conexões para o engine de tabela/banco de dados PostgreSQL e a fonte de dicionário. Deve corrigir [#21444](https://github.com/ClickHouse/ClickHouse/issues/21444). [#21839](https://github.com/ClickHouse/ClickHouse/pull/21839) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Suporte a schema de tabela não padrão no storage/table-function do Postgres. Fecha [#21701](https://github.com/ClickHouse/ClickHouse/issues/21701). [#21711](https://github.com/ClickHouse/ClickHouse/pull/21711) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Suporte à prioridade de réplicas na origem de dicionário do Postgres. [#21710](https://github.com/ClickHouse/ClickHouse/pull/21710) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Introduz uma nova configuração do MergeTree, `min_bytes_to_rebalance_partition_over_jbod`, que permite distribuir novas partes entre diferentes discos de um volume JBOD de forma equilibrada. [#16481](https://github.com/ClickHouse/ClickHouse/pull/16481) ([Amos Bird](https://github.com/amosbird)).
* Adicionados à coluna `query_kind` os valores `Grant`, `Revoke` e `System` para as consultas correspondentes em `system.query_log`. [#21102](https://github.com/ClickHouse/ClickHouse/pull/21102) ([Vasily Nemkov](https://github.com/Enmk)).
* Permite configurar separadamente os timeouts das conexões HTTP usadas para replicação em relação aos demais timeouts HTTP. [#20088](https://github.com/ClickHouse/ClickHouse/pull/20088) ([nvartolomei](https://github.com/nvartolomei)).
* Mensagem de exceção mais clara no cliente em caso de exceção enquanto o servidor grava blocos. Em versões anteriores, o cliente podia receber uma mensagem enganosa, como `Data compressed with different methods`. [#22427](https://github.com/ClickHouse/ClickHouse/pull/22427) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige o erro `Directory tmp_fetch_XXX already exists`, que podia ocorrer após uma falha ao buscar uma parte. Exclui o diretório temporário de busca se ele já existir. Corrige [#14197](https://github.com/ClickHouse/ClickHouse/issues/14197). [#22411](https://github.com/ClickHouse/ClickHouse/pull/22411) ([nvartolomei](https://github.com/nvartolomei)).
* Corrige o erro relatado pelo MSan na função `range` com argumento `UInt256` (o suporte a inteiros grandes é experimental). Isso fecha [#22157](https://github.com/ClickHouse/ClickHouse/issues/22157). [#22387](https://github.com/ClickHouse/ClickHouse/pull/22387) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Adicionar a coluna `current_database` à tabela `system.processes`. Ela contém o banco de dados atual da consulta. [#22365](https://github.com/ClickHouse/ClickHouse/pull/22365) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* Adiciona ao `clickhouse-client` recursos de busca/navegação no histórico sem diferenciar maiúsculas de minúsculas e movimentação por subpalavras. [#22105](https://github.com/ClickHouse/ClickHouse/pull/22105) ([Amos Bird](https://github.com/amosbird)).
* Se uma tupla de NULLs, por exemplo `(NULL, NULL)`, estiver no lado esquerdo do operador `IN`, com tuplas sem NULLs no lado direito, por exemplo `SELECT (NULL, NULL) IN ((0, 0), (3, 1))`, retorna 0 em vez de lançar uma exceção sobre tipos incompatíveis. A expressão também pode aparecer devido à otimização de algo como `SELECT (NULL, NULL) = (8, 0) OR (NULL, NULL) = (3, 2) OR (NULL, NULL) = (0, 0) OR (NULL, NULL) = (3, 1)`. Isso fecha [#22017](https://github.com/ClickHouse/ClickHouse/issues/22017). [#22063](https://github.com/ClickHouse/ClickHouse/pull/22063) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Atualiza a versão usada do simdjson para 0.9.1. Isso corrige [#21984](https://github.com/ClickHouse/ClickHouse/issues/21984). [#22057](https://github.com/ClickHouse/ClickHouse/pull/22057) ([Vitaly Baranov](https://github.com/vitlibar)).
* Adicionados aliases sem distinção entre maiúsculas e minúsculas para as funções `CONNECTION_ID()` e `VERSION()`. Isso corrige [#22028](https://github.com/ClickHouse/ClickHouse/issues/22028). [#22042](https://github.com/ClickHouse/ClickHouse/pull/22042) ([Eugene Klimov](https://github.com/Slach)).
* Adicionada a opção `strict_increase` à função `windowFunnel` para calcular cada evento apenas uma vez (corrige [#21835](https://github.com/ClickHouse/ClickHouse/issues/21835)). [#22025](https://github.com/ClickHouse/ClickHouse/pull/22025) ([Vladimir](https://github.com/vdimir)).
* Se a chave de partição de uma tabela `MergeTree` não incluir colunas `Date` nem `DateTime`, mas incluir exatamente uma coluna `DateTime64`, exiba seus valores nas colunas `min_time` e `max_time` das tabelas `system.parts` e `system.parts_columns`. Adicione as colunas `min_time` e `max_time` à tabela `system.parts_columns` (havia uma inconsistência em relação à tabela `system.parts`). Isso fecha [#18244](https://github.com/ClickHouse/ClickHouse/issues/18244). [#22011](https://github.com/ClickHouse/ClickHouse/pull/22011) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Suporte adicionado à configuração `replication_alter_partitions_sync=1` no `clickhouse-copier` para mover partições da tabela auxiliar para o destino. Reduzidos os timeouts padrão. Corrige [#21911](https://github.com/ClickHouse/ClickHouse/issues/21911). [#21912](https://github.com/ClickHouse/ClickHouse/pull/21912) ([turbo jason](https://github.com/songenjie)).
* Mostrar, nas tabelas de sistema, o caminho para o diretório de dados das tabelas `EmbeddedRocksDB`. [#21903](https://github.com/ClickHouse/ClickHouse/pull/21903) ([tavplubix](https://github.com/tavplubix)).
* Adicionado o evento de perfil `HedgedRequestsChangeReplica`; alterado o timeout de leitura de dados de s para ms. [#21886](https://github.com/ClickHouse/ClickHouse/pull/21886) ([Kruglov Pavel](https://github.com/Avogar)).
* DiskS3 (recurso experimental em desenvolvimento). Corrigido um bug que impedia mover o diretório se o destino não estivesse vazio e fosse usado um disco de cache. [#21837](https://github.com/ClickHouse/ClickHouse/pull/21837) ([Pavel Kovalenko](https://github.com/Jokser)).
* Formatação aprimorada para os tipos de dados `Array` e `Map` na Web UI. [#21798](https://github.com/ClickHouse/ClickHouse/pull/21798) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Atualize os clusters somente se suas configurações tiverem sido atualizadas. [#21685](https://github.com/ClickHouse/ClickHouse/pull/21685) ([Kruglov Pavel](https://github.com/Avogar)).
* Propaga as configurações de consulta e de sessão para consultas de DDL distribuído. Defina `distributed_ddl_entry_format_version` como 2 para habilitar isso. Adicionada a configuração `distributed_ddl_output_mode`. Modos compatíveis: `none`, `throw` (padrão), `null_status_on_timeout` e `never_throw`. Correções e melhorias diversas no engine de banco de dados `Replicated`. [#21535](https://github.com/ClickHouse/ClickHouse/pull/21535) ([tavplubix](https://github.com/tavplubix)).
* Se `PODArray` fosse instanciado com um tamanho de elemento que não fosse nem uma fração nem um múltiplo de 16, poderia ocorrer um estouro de buffer. Não há bugs nas versões atuais. [#21533](https://github.com/ClickHouse/ClickHouse/pull/21533) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Adicionadas as colunas `last_error_time`/`last_error_message`/`last_error_stacktrace`/`remote` à `system.errors`. [#21529](https://github.com/ClickHouse/ClickHouse/pull/21529) ([Azat Khuzhin](https://github.com/azat)).
* Adiciona aliases `simpleJSONExtract/simpleJSONHas` para `visitParam/visitParamExtract{UInt, Int, Bool, Float, Raw, String}`. Corrige #21383. [#21519](https://github.com/ClickHouse/ClickHouse/pull/21519) ([fastio](https://github.com/fastio)).
* Adicionada a configuração `optimize_skip_unused_shards_limit` para limitar o número de valores da chave de sharding de `optimize_skip_unused_shards`. [#21512](https://github.com/ClickHouse/ClickHouse/pull/21512) ([Azat Khuzhin](https://github.com/azat)).
* Melhoria no `clickhouse-format` para não lançar exceção quando houver espaços extras ou comentários após a última consulta e para lançar a exceção antecipadamente, com uma mensagem compreensível, ao formatar `ASTInsertQuery` com dados. [#21311](https://github.com/ClickHouse/ClickHouse/pull/21311) ([flynn](https://github.com/ucasFL)).
* Melhorado o suporte a chaves inteiras no tipo de dado `Map`. [#21157](https://github.com/ClickHouse/ClickHouse/pull/21157) ([Anton Popov](https://github.com/CurtizJ)).
* MaterializeMySQL: tentar se reconectar ao MySQL se a conexão for perdida. [#20961](https://github.com/ClickHouse/ClickHouse/pull/20961) ([Håvard Kvålen](https://github.com/havardk)).
* Suporte a mais casos de reescrita de `CROSS JOIN` para `INNER JOIN`. [#20392](https://github.com/ClickHouse/ClickHouse/pull/20392) ([Vladimir](https://github.com/vdimir)).
* Não cria partes vazias no INSERT quando a configuração `optimize_on_insert` está habilitada. Corrige [#20304](https://github.com/ClickHouse/ClickHouse/issues/20304). [#20387](https://github.com/ClickHouse/ClickHouse/pull/20387) ([Kruglov Pavel](https://github.com/Avogar)).
* `MaterializeMySQL`: adiciona índice minmax do tipo skipping para a coluna `_version`. [#20382](https://github.com/ClickHouse/ClickHouse/pull/20382) ([Stig Bakken](https://github.com/stigsb)).
* Adicionar a opção `--backslash` ao `clickhouse-format`, que pode adicionar uma barra invertida ao final de cada linha da consulta formatada. [#21494](https://github.com/ClickHouse/ClickHouse/pull/21494) ([flynn](https://github.com/ucasFL)).
* Agora o ClickHouse não lançará a exceção `LOGICAL_ERROR` quando tentarmos aplicar uma mutação à parte já coberta. Corrige [#22013](https://github.com/ClickHouse/ClickHouse/issues/22013). [#22291](https://github.com/ClickHouse/ClickHouse/pull/22291) ([alesapin](https://github.com/alesapin)).

<div id="bug-fix">
  #### Correção de bug
</div>

* Remova o socket do `epoll` antes de cancelar o receptor de pacotes em `HedgedConnections` para evitar uma possível condição de corrida. Corrige [#22161](https://github.com/ClickHouse/ClickHouse/issues/22161). [#22443](https://github.com/ClickHouse/ClickHouse/pull/22443) ([Kruglov Pavel](https://github.com/Avogar)).
* Adiciona a contabilização de uso de memória (ausente) em rotinas paralelas de análise. Em versões anteriores, era possível ocorrer OOM quando o conjunto de resultados continha blocos de dados muito grandes. Isso fecha [#22008](https://github.com/ClickHouse/ClickHouse/issues/22008). [#22425](https://github.com/ClickHouse/ClickHouse/pull/22425) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige uma exceção que pode ocorrer quando `SELECT` tem uma condição `WHERE` constante e a tabela de origem possui colunas com nomes formados por dígitos. [#22270](https://github.com/ClickHouse/ClickHouse/pull/22270) ([LiuNeng](https://github.com/liuneng1994)).
* Corrigido o cancelamento de consulta com `use_hedged_requests=0` e `async_socket_for_remote=1`. [#22183](https://github.com/ClickHouse/ClickHouse/pull/22183) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida exceção não capturada em `InterserverIOHTTPHandler`. [#22146](https://github.com/ClickHouse/ClickHouse/pull/22146) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido o entrypoint do Docker caso `http_port` não esteja na configuração. [#22132](https://github.com/ClickHouse/ClickHouse/pull/22132) ([Ewout](https://github.com/devwout)).
* Corrige o erro `Invalid number of rows in Chunk` em `JOIN` com `TOTALS` e `arrayJoin`. Fecha [#19303](https://github.com/ClickHouse/ClickHouse/issues/19303). [#22129](https://github.com/ClickHouse/ClickHouse/pull/22129) ([Vladimir](https://github.com/vdimir)).
* Corrigido o nome do pool de threads em segundo plano usado para buscar mensagens do Kafka. O engine Kafka com o pool de threads com defeito não consumirá mensagens da fila de mensagens. [#22122](https://github.com/ClickHouse/ClickHouse/pull/22122) ([fastio](https://github.com/fastio)).
* Corrigida a espera por consultas `OPTIMIZE` e `ALTER` em motores de tabela `ReplicatedMergeTree`. Agora, a consulta não ficará travada quando a tabela tiver sido desanexada ou reiniciada. [#22118](https://github.com/ClickHouse/ClickHouse/pull/22118) ([alesapin](https://github.com/alesapin)).
* Desativa `async_socket_for_remote`/`use_hedged_requests` para kernels do Linux com falhas. [#22109](https://github.com/ClickHouse/ClickHouse/pull/22109) ([Azat Khuzhin](https://github.com/azat)).
* Entrypoint do Docker: evitar o `chown` de `.` quando `LOG_PATH` estiver vazio. Fecha [#22100](https://github.com/ClickHouse/ClickHouse/issues/22100). [#22102](https://github.com/ClickHouse/ClickHouse/pull/22102) ([filimonov](https://github.com/filimonov)).
* A função `decrypt` não tinha uma verificação do tamanho mínimo dos dados criptografados no modo `AEAD`. Isso corrige [#21897](https://github.com/ClickHouse/ClickHouse/issues/21897). [#22064](https://github.com/ClickHouse/ClickHouse/pull/22064) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Em casos raros, a mesclagem no `CollapsingMergeTree` pode criar um grânulo com `index_granularity + 1` linhas. Por causa disso, a verificação interna adicionada em [#18928](https://github.com/ClickHouse/ClickHouse/issues/18928) (afeta as versões 21.2 e 21.3) pode falhar com o erro `Incomplete granules are not allowed while blocks are granules size`. Esse erro impedia a mesclagem das partes. [#21976](https://github.com/ClickHouse/ClickHouse/pull/21976) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Revertida a [#15454](https://github.com/ClickHouse/ClickHouse/issues/15454), que pode causar um aumento significativo no uso de memória durante o carregamento de dicionários externos do tipo hash. Isso encerra [#21935](https://github.com/ClickHouse/ClickHouse/issues/21935). [#21948](https://github.com/ClickHouse/ClickHouse/pull/21948) ([Maksim Kita](https://github.com/kitaisreal)).
* Evita sobreposição entre conexões hedged (erro `Unknown packet 9 from server`). [#21941](https://github.com/ClickHouse/ClickHouse/pull/21941) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida a leitura de solicitações HTTP POST com o tipo de conteúdo "multipart/form-data" em alguns casos. [#21936](https://github.com/ClickHouse/ClickHouse/pull/21936) ([Ivan](https://github.com/abyss7)).
* Corrige resultados incorretos de `ORDER BY` quando uma consulta contém funções de janela e é aplicada a otimização de leitura na ordem da chave primária. Corrige [#21828](https://github.com/ClickHouse/ClickHouse/issues/21828). [#21915](https://github.com/ClickHouse/ClickHouse/pull/21915) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* Corrigido deadlock na primeira execução do modelo catboost. Fecha [#13832](https://github.com/ClickHouse/ClickHouse/issues/13832). [#21844](https://github.com/ClickHouse/ClickHouse/pull/21844) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige resultado incorreto de consulta (e possível travamento) que podia ocorrer quando a condição `WHERE` ou `HAVING` é aplicada antes de `GROUP BY`. Corrige [#21773](https://github.com/ClickHouse/ClickHouse/issues/21773). [#21841](https://github.com/ClickHouse/ClickHouse/pull/21841) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Melhor tratamento de erros e logging em `WriteBufferFromS3`. [#21836](https://github.com/ClickHouse/ClickHouse/pull/21836) ([Pavel Kovalenko](https://github.com/Jokser)).
* Corrige possíveis travamentos em funções de agregação com o combinador `Distinct` ao usar agregação em dois níveis. Esta é uma correção complementar de [#18365](https://github.com/ClickHouse/ClickHouse/pull/18365) . Só pode ser reproduzido em ambiente de produção. [#21818](https://github.com/ClickHouse/ClickHouse/pull/21818) ([Amos Bird](https://github.com/amosbird)).
* Corrigida a análise de índice de subconsulta escalar. Isso corrige [#21717](https://github.com/ClickHouse/ClickHouse/issues/21717), introduzido em [#18896](https://github.com/ClickHouse/ClickHouse/pull/18896). [#21766](https://github.com/ClickHouse/ClickHouse/pull/21766) ([Amos Bird](https://github.com/amosbird)).
* Corrige um bug nos motores de tabela `ReplicatedMerge` quando a consulta `ALTER MODIFY COLUMN` não altera o tipo da coluna `Decimal` caso o tamanho dela (32 bits ou 64 bits) não mude. [#21728](https://github.com/ClickHouse/ClickHouse/pull/21728) ([alesapin](https://github.com/alesapin)).
* Corrigida a possível espera infinita quando `OPTIMIZE` e `DROP` são executados de forma concorrente em `ReplicatedMergeTree`. [#21716](https://github.com/ClickHouse/ClickHouse/pull/21716) ([Azat Khuzhin](https://github.com/azat)).
* Corrige a função `arrayElement` para o tipo `Map` ao usar argumentos inteiros constantes. [#21699](https://github.com/ClickHouse/ClickHouse/pull/21699) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigido SIGSEGV em atributos inexistentes no `ip_trie` com `access_to_key_from_attributes`. [#21692](https://github.com/ClickHouse/ClickHouse/pull/21692) ([Azat Khuzhin](https://github.com/azat)).
* O servidor agora só passa a aceitar conexões após a inicialização do `DDLWorker` e dos dicionários. [#21676](https://github.com/ClickHouse/ClickHouse/pull/21676) ([Azat Khuzhin](https://github.com/azat)).
* Adicionar conversão de tipo para as chaves de tabelas do tipo `Join` (antes, isso levava a SIGSEGV). [#21646](https://github.com/ClickHouse/ClickHouse/pull/21646) ([Azat Khuzhin](https://github.com/azat)).
* Corrige o cancelamento de requisições distribuídas (por exemplo, um select simples em vários shards com limite, isto é, `select * from remote('127.{2,3}', system.numbers) limit 100`) com `async_socket_for_remote=1`. [#21643](https://github.com/ClickHouse/ClickHouse/pull/21643) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido `fsync_part_directory` para merge horizontal. [#21642](https://github.com/ClickHouse/ClickHouse/pull/21642) ([Azat Khuzhin](https://github.com/azat)).
* Remove colunas desconhecidas da tabela do JOIN em `WHERE` para consultas a motores de banco de dados externos (MySQL, PostgreSQL). close [#14614](https://github.com/ClickHouse/ClickHouse/issues/14614), close [#19288](https://github.com/ClickHouse/ClickHouse/issues/19288) (dup), close [#19645](https://github.com/ClickHouse/ClickHouse/issues/19645) (dup). [#21640](https://github.com/ClickHouse/ClickHouse/pull/21640) ([Vladimir](https://github.com/vdimir)).
* `std::terminate` foi chamado se houvesse um erro ao gravar dados no S3. [#21624](https://github.com/ClickHouse/ClickHouse/pull/21624) ([Vladimir](https://github.com/vdimir)).
* Corrige um possível erro `Cannot find column` quando `optimize_skip_unused_shards` está habilitado e nenhum shard é usado. [#21579](https://github.com/ClickHouse/ClickHouse/pull/21579) ([Azat Khuzhin](https://github.com/azat)).
* Se a consulta tiver uma condição `WHERE` constante e a configuração `optimize_skip_unused_shards` estiver habilitada, todos os shards poderão ser ignorados, e a consulta poderá retornar incorretamente um resultado vazio. [#21550](https://github.com/ClickHouse/ClickHouse/pull/21550) ([Amos Bird](https://github.com/amosbird)).
* Corrigida a função de tabela `clusterAllReplicas`, que retornava `_shard_num` incorreto. Fecha [#21481](https://github.com/ClickHouse/ClickHouse/issues/21481). [#21498](https://github.com/ClickHouse/ClickHouse/pull/21498) ([flynn](https://github.com/ucasFL)).
* Correção do problema em que a tabela S3 mantinha credenciais antigas após a atualização da configuração. [#21457](https://github.com/ClickHouse/ClickHouse/pull/21457) ([Grigory Pervakov](https://github.com/GrigoryPervakov)).
* Corrigida uma condição de corrida no objeto SSL dentro de `SecureSocket`, no Poco. [#21456](https://github.com/ClickHouse/ClickHouse/pull/21456) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrige o parsing do formato `Avro` no `Kafka`. Corrige [#21437](https://github.com/ClickHouse/ClickHouse/issues/21437). [#21438](https://github.com/ClickHouse/ClickHouse/pull/21438) ([Ilya Golshtein](https://github.com/ilejn)).
* Corrigidos os timeouts de recebimento e envio e a leitura não bloqueante em socket seguro. [#21429](https://github.com/ClickHouse/ClickHouse/pull/21429) ([Kruglov Pavel](https://github.com/Avogar)).
* A flag `force_drop_table` não funcionava com `MATERIALIZED VIEW`; isso foi corrigido. Corrige [#18943](https://github.com/ClickHouse/ClickHouse/issues/18943). [#20626](https://github.com/ClickHouse/ClickHouse/pull/20626) ([tavplubix](https://github.com/tavplubix)).
* Corrige conflitos de nomes em `PredicateRewriteVisitor`. Isso causava filtragem incorreta na cláusula `WHERE` após `FULL JOIN`. Fecha [#20497](https://github.com/ClickHouse/ClickHouse/issues/20497). [#20622](https://github.com/ClickHouse/ClickHouse/pull/20622) ([Vladimir](https://github.com/vdimir)).

<div id="buildtestingpackaging-improvement-3">
  #### Melhoria em Compilação/Testes/Empacotamento
</div>

* Adicionados testes [Jepsen](https://github.com/jepsen-io/jepsen) para o ClickHouse Keeper. [#21677](https://github.com/ClickHouse/ClickHouse/pull/21677) ([alesapin](https://github.com/alesapin)).
* Execute testes sem estado em paralelo no CI. Depende de [#22181](https://github.com/ClickHouse/ClickHouse/issues/22181). [#22300](https://github.com/ClickHouse/ClickHouse/pull/22300) ([alesapin](https://github.com/alesapin)).
* Ativada a verificação de status para a execução de CI do [SQLancer](https://github.com/sqlancer/sqlancer). [#22015](https://github.com/ClickHouse/ClickHouse/pull/22015) ([Ilya Yatsishin](https://github.com/qoega)).
* Várias melhorias preparatórias para builds em PowerPC: habilita o openldap empacotado em `ppc64le`. [#22487](https://github.com/ClickHouse/ClickHouse/pull/22487) ([Kfir Itzhak](https://github.com/mastertheknife)). Habilita a compilação em `ppc64le` com Clang. [#22476](https://github.com/ClickHouse/ClickHouse/pull/22476) ([Kfir Itzhak](https://github.com/mastertheknife)). Corrige a compilação do boost em `ppc64le`. [#22474](https://github.com/ClickHouse/ClickHouse/pull/22474) ([Kfir Itzhak](https://github.com/mastertheknife)). Corrige o erro do CMake relacionado à variável interna `CMAKE_ASM_COMPILE_OBJECT`, que não estava definida em `ppc64le`. [#22469](https://github.com/ClickHouse/ClickHouse/pull/22469) ([Kfir Itzhak](https://github.com/mastertheknife)). Corrige o problema em que Fedora/RHEL/CentOS não encontravam `libclang_rt.builtins` em `ppc64le`. [#22458](https://github.com/ClickHouse/ClickHouse/pull/22458) ([Kfir Itzhak](https://github.com/mastertheknife)). Habilita a compilação com `jemalloc` em `ppc64le`. [#22447](https://github.com/ClickHouse/ClickHouse/pull/22447) ([Kfir Itzhak](https://github.com/mastertheknife)). Corrige a incorporação da configuração do ClickHouse e do timezone do cctz em `ppc64le`. [#22445](https://github.com/ClickHouse/ClickHouse/pull/22445) ([Kfir Itzhak](https://github.com/mastertheknife)). Corrige a compilação em `ppc64le` e o uso do registrador correto de ponteiro de instrução em `ppc64le`. [#22430](https://github.com/ClickHouse/ClickHouse/pull/22430) ([Kfir Itzhak](https://github.com/mastertheknife)).
* Reabilite a biblioteca S3 (AWS) em `aarch64`. [#22484](https://github.com/ClickHouse/ClickHouse/pull/22484) ([Kfir Itzhak](https://github.com/mastertheknife)).
* Adicione `tzdata` aos contêineres do Docker, pois a leitura de formatos `ORC` exige isso. Isso corrige [#14156](https://github.com/ClickHouse/ClickHouse/issues/14156). [#22000](https://github.com/ClickHouse/ClickHouse/pull/22000) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Adiciona 2 argumentos ao Dockerfile da imagem `clickhouse-server`: `deb_location` & `single_binary_location`. [#21977](https://github.com/ClickHouse/ClickHouse/pull/21977) ([filimonov](https://github.com/filimonov)).
* Permite usar o clang-tidy com builds de release, habilitando assertions quando ele é usado. [#21914](https://github.com/ClickHouse/ClickHouse/pull/21914) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Adicionado o nome dos binários do llvm-12 à busca nos scripts do CMake. Conversões implícitas de constantes para silenciar avisos do Clang. Submódulos atualizados para compilação com o CMake 3.19. Silenciada a recursão na expansão de macro na biblioteca `readpassphrase`. A opção obsoleta `-fuse-ld` foi alterada para `--ld-path` no Clang. [#21597](https://github.com/ClickHouse/ClickHouse/pull/21597) ([Ilya Yatsishin](https://github.com/qoega)).
* Atualização de `docker/test/testflows/runner/dockerd-entrypoint.sh` para usar o dockerhub-proxy da Yandex, porque o Docker Hub passou a impor limites de taxa muito restritivos [#21551](https://github.com/ClickHouse/ClickHouse/pull/21551) ([vzakaznikov](https://github.com/vzakaznikov)).
* Corrigida a compilação da biblioteca compartilhada no macOS. [#20184](https://github.com/ClickHouse/ClickHouse/pull/20184) ([nvartolomei](https://github.com/nvartolomei)).
* Adiciona a opção `ctime` ao `zookeeper-dump-tree`. Ela permite exportar a hora de criação do nó. [#21842](https://github.com/ClickHouse/ClickHouse/pull/21842) ([Ilya](https://github.com/HumanUser)).

<div id="clickhouse-release-213-lts">
  ## Lançamento do ClickHouse 21.3 (LTS)
</div>

<div id="clickhouse-release-v213-2021-03-12">
  ### Lançamento do ClickHouse v21.3, 2021-03-12
</div>

<div id="backward-incompatible-change">
  #### Alteração incompatível com versões anteriores
</div>

* Agora não é mais permitido criar tabelas MergeTree usando a sintaxe antiga com TTL de tabela, porque ela é simplesmente ignorada. O Attach de tabelas antigas ainda continua sendo possível. [#20282](https://github.com/ClickHouse/ClickHouse/pull/20282) ([alesapin](https://github.com/alesapin)).
* Agora, todos os nomes de função sem distinção entre maiúsculas e minúsculas serão reescritos para suas representações canônicas. Isso é necessário para o roteamento de consultas de projeção (um recurso futuro). [#20174](https://github.com/ClickHouse/ClickHouse/pull/20174) ([Amos Bird](https://github.com/amosbird)).
* Corrigida a criação de `TTL` nos casos em que sua expression é uma função e coincide com a chave `ORDER BY`. Agora é permitido definir uma aggregation personalizada para colunas de chave primária em `TTL` com `GROUP BY`. Incompatível com versões anteriores: para colunas de chave primária que não estão em `GROUP BY` e não são definidas explicitamente, agora é aplicada a função `any` em vez de `max` quando o TTL expira. Além disso, se você usar TTL com `WHERE` ou `GROUP BY`, poderá ver exceções durante merges ao fazer rolling update. [#15450](https://github.com/ClickHouse/ClickHouse/pull/15450) ([Anton Popov](https://github.com/CurtizJ)).

<div id="new-feature">
  #### Novo recurso
</div>

* Adicionadas as configurações do engine de arquivo: `engine_file_empty_if_not_exists` e `engine_file_truncate_on_insert`. [#20620](https://github.com/ClickHouse/ClickHouse/pull/20620) ([M0r64n](https://github.com/M0r64n)).
* Adicionada a função de agregação `deltaSum` para somar as diferenças entre linhas consecutivas. [#20057](https://github.com/ClickHouse/ClickHouse/pull/20057) ([Russ Frank](https://github.com/rf)).
* Nova coluna `event_time_microseconds` na tabela `system.part_log`. [#20027](https://github.com/ClickHouse/ClickHouse/pull/20027) ([Bharat Nallan](https://github.com/bharatnc)).
* Adicionada a função `timezoneOffset(datetime)`, que retorna o deslocamento em relação a UTC em segundos. Isso fecha [#issue:19850](https://github.com/ClickHouse/ClickHouse/issues/19850). [#19962](https://github.com/ClickHouse/ClickHouse/pull/19962) ([keenwolf](https://github.com/keen-wolf)).
* Adicionada a configuração `insert_shard_id` para oferecer suporte à inserção de dados em um shard específico a partir de uma tabela distribuída. [#19961](https://github.com/ClickHouse/ClickHouse/pull/19961) ([flynn](https://github.com/ucasFL)).
* A função `reinterpretAs` foi atualizada para oferecer suporte a inteiros grandes. Corrige [#19691](https://github.com/ClickHouse/ClickHouse/issues/19691). [#19858](https://github.com/ClickHouse/ClickHouse/pull/19858) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionado suporte a Server Side Encryption Customer Keys (o header `x-amz-server-side-encryption-customer-(key/md5)`) no cliente S3. Veja [o link](https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html). Fecha [#19428](https://github.com/ClickHouse/ClickHouse/issues/19428). [#19748](https://github.com/ClickHouse/ClickHouse/pull/19748) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Adicionada a opção `implicit_key` para a origem de Dicionário `executable`. Ela permite evitar imprimir a chave para cada registro se os registros vierem na mesma ordem das chaves de entrada. Implementa [#14527](https://github.com/ClickHouse/ClickHouse/issues/14527). [#19677](https://github.com/ClickHouse/ClickHouse/pull/19677) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionados os tipos de QUOTA `query_selects` e `query_inserts`. [#19603](https://github.com/ClickHouse/ClickHouse/pull/19603) ([JackyWoo](https://github.com/JackyWoo)).
* Adicionada a função `extractTextFromHTML` [#19600](https://github.com/ClickHouse/ClickHouse/pull/19600) ([zlx19950903](https://github.com/zlx19950903)), ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Tabelas com engine `MergeTree*` agora têm duas novas configurações no nível da tabela para controle de concorrência de consultas. A configuração `max_concurrent_queries` limita o número de consultas executadas simultaneamente relacionadas a essa tabela. A configuração `min_marks_to_honor_max_concurrent_queries` determina que a configuração anterior seja aplicada apenas se a consulta ler pelo menos esse número de marcas. [#19544](https://github.com/ClickHouse/ClickHouse/pull/19544) ([Amos Bird](https://github.com/amosbird)).
* Adicionada a função `file` para ler arquivos do diretório user\_files como String. Isso é diferente da table function `file`. Isso implementa [#issue:18851](https://github.com/ClickHouse/ClickHouse/issues/18851). [#19204](https://github.com/ClickHouse/ClickHouse/pull/19204) ([keenwolf](https://github.com/keen-wolf)).

<div id="experimental-feature-5">
  #### Funcionalidade experimental
</div>

* Adicionado o engine de banco de dados experimental `Replicated`. Ele replica consultas DDL entre vários hosts. [#16193](https://github.com/ClickHouse/ClickHouse/pull/16193) ([tavplubix](https://github.com/tavplubix)).
* Introduzido suporte experimental a funções de janela, habilitado com `allow_experimental_window_functions = 1`. Esta é uma implementação preliminar, de qualidade alfa, que não é adequada para uso em produção e sofrerá mudanças incompatíveis com versões anteriores em releases futuras. Consulte [a documentação](https://github.com/ClickHouse/ClickHouse/blob/master/docs/sql-reference/window-functions/index.md#experimental-window-functions) para ver a lista de funcionalidades suportadas. [#20337](https://github.com/ClickHouse/ClickHouse/pull/20337) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* Adicionada a capacidade de fazer backup e restaurar arquivos de metadados do DiskS3. [#18377](https://github.com/ClickHouse/ClickHouse/pull/18377) ([Pavel Kovalenko](https://github.com/Jokser)).

<div id="performance-improvement">
  #### Melhoria de desempenho
</div>

* Solicitações hedged para consultas remotas. Ao habilitar `use_hedged_requests` (desativado por padrão), é permitido estabelecer várias conexões com diferentes réplicas para a consulta. Uma nova conexão é habilitada caso a(s) conexão(ões) existente(s) com a(s) réplica(s) não tenha(m) sido estabelecida(s) dentro de `hedged_connection_timeout` ou nenhum dado tenha sido recebido dentro de `receive_data_timeout`. A consulta usa a primeira conexão que envia um pacote Progress não vazio (ou um pacote Data, se `allow_changing_replica_until_first_data_packet`); as outras conexões são canceladas. Consultas com `max_parallel_replicas > 1` são suportadas. [#19291](https://github.com/ClickHouse/ClickHouse/pull/19291) ([Kruglov Pavel](https://github.com/Avogar)). Isso permite reduzir significativamente a latência de cauda em clusters muito grandes.
* Adicionado suporte a `PREWHERE` (com a otimização correspondente habilitada) quando as tabelas têm expressões de segurança em nível de linha definidas. [#19576](https://github.com/ClickHouse/ClickHouse/pull/19576) ([Denis Glazachev](https://github.com/traceon)).
* A configuração `distributed_aggregation_memory_efficient` vem habilitada por padrão. Ela reduz o uso de memória e melhora o desempenho das consultas distribuídas. [#20599](https://github.com/ClickHouse/ClickHouse/pull/20599) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Melhora no desempenho do `GROUP BY` com múltiplas chaves de tamanho fixo. [#20472](https://github.com/ClickHouse/ClickHouse/pull/20472) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Melhoria no desempenho das funções de agregação com aliasing mais estrito. [#19946](https://github.com/ClickHouse/ClickHouse/pull/19946) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Acelera a leitura de tabelas `Memory` em casos extremos (quando a velocidade de leitura é da ordem de 50 GB/s) por meio da simplificação do pipeline e, consequentemente, da redução da contenção de bloqueios no agendamento do pipeline. [#20468](https://github.com/ClickHouse/ClickHouse/pull/20468) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Servidor HTTP parcialmente reimplementado para fazer menos cópias dos dados de entrada e saída. Isso proporciona um ganho de desempenho de até 1,5x ao inserir registros longos por HTTP. [#19516](https://github.com/ClickHouse/ClickHouse/pull/19516) ([Ivan](https://github.com/abyss7)).
* Adicionada a configuração `compress` para tabelas `Memory`. Se estiver habilitada, a tabela usará menos RAM. Em algumas máquinas e conjuntos de dados, ela também pode ter desempenho melhor em SELECT, mas nem sempre é o caso. Isso fecha [#20093](https://github.com/ClickHouse/ClickHouse/issues/20093). Observação: há motivos pelos quais tabelas `Memory` podem funcionar mais lentamente que `MergeTree`: (1) ausência de compressão (2) tamanho estático dos blocos (3) ausência de índices e prewhere... [#20168](https://github.com/ClickHouse/ClickHouse/pull/20168) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Pequena melhoria no código de agregação. [#20978](https://github.com/ClickHouse/ClickHouse/pull/20978) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Reintroduz as especializações de `intDiv`/`modulo` para melhorar o desempenho. Isso corrige [#21293](https://github.com/ClickHouse/ClickHouse/issues/21293) . A regressão foi introduzida em [https://github.com/ClickHouse/ClickHouse/pull/18145](https://github.com/ClickHouse/ClickHouse/pull/18145) . [#21307](https://github.com/ClickHouse/ClickHouse/pull/21307) ([Amos Bird](https://github.com/amosbird)).
* Não compacte demais os blocos no INSERT SELECT ao inserir em uma tabela Memory. Em versões anteriores, era criada uma representação de dados ineficiente na tabela Memory após o INSERT SELECT. Isso fecha [#13052](https://github.com/ClickHouse/ClickHouse/issues/13052). [#20169](https://github.com/ClickHouse/ClickHouse/pull/20169) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige pelo menos um caso em que o parser de DataType pode ter complexidade exponencial (encontrado por fuzzer). Isso fecha [#20096](https://github.com/ClickHouse/ClickHouse/issues/20096). [#20132](https://github.com/ClickHouse/ClickHouse/pull/20132) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Paraleliza o SELECT com FINAL para uma única parte de dados com nível > 0 quando a configuração `do_not_merge_across_partitions_select_final` é 1. [#19375](https://github.com/ClickHouse/ClickHouse/pull/19375) ([Kruglov Pavel](https://github.com/Avogar)).
* Preencher apenas as colunas solicitadas ao consultar `system.parts` e `system.parts_columns`. Fecha [#19570](https://github.com/ClickHouse/ClickHouse/issues/19570). [#21035](https://github.com/ClickHouse/ClickHouse/pull/21035) ([Anmol Arora](https://github.com/anmolarora)).
* Realiza otimizações algébricas em expressões aritméticas dentro da função de agregação `avg`. Fecha [#20092](https://github.com/ClickHouse/ClickHouse/issues/20092). [#20183](https://github.com/ClickHouse/ClickHouse/pull/20183) ([flynn](https://github.com/ucasFL)).

<div id="improvement">
  #### Melhoria
</div>

* Métodos de compressão, para funções de tabela, sem distinção entre maiúsculas e minúsculas. Também foi corrigido o método de compressão LZMA, que era verificado em letras maiúsculas. [#21416](https://github.com/ClickHouse/ClickHouse/pull/21416) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Adicionadas duas configurações para atrasar a inserção ou retornar erro quando há muitas partes inativas. Isso é útil quando o servidor não consegue limpar as partes com rapidez suficiente. [#20178](https://github.com/ClickHouse/ClickHouse/pull/20178) ([Amos Bird](https://github.com/amosbird)).
* Melhora a compatibilidade com clientes mysql. 1. mysql jdbc 2. mycli. [#21367](https://github.com/ClickHouse/ClickHouse/pull/21367) ([Amos Bird](https://github.com/amosbird)).
* Impede a remoção de uma coluna se ela for referenciada por uma visão materializada. Fecha [#21164](https://github.com/ClickHouse/ClickHouse/issues/21164). [#21303](https://github.com/ClickHouse/ClickHouse/pull/21303) ([flynn](https://github.com/ucasFL)).
* A fonte de dicionário MySQL agora fará nova tentativa em caso de falhas inesperadas de conexão (Lost connection to MySQL server during query), que às vezes ocorrem em conexões SSL/TLS. [#21237](https://github.com/ClickHouse/ClickHouse/pull/21237) ([Alexander Kazakov](https://github.com/Akazz)).
* Melhoria de usabilidade: parsing mais consistente de `DateTime64`: reconhece o caso em que um timestamp Unix com resolução de subsegundos é especificado como um inteiro escalado (como `1111111111222` em vez de `1111111111.222`). Isso fecha [#13194](https://github.com/ClickHouse/ClickHouse/issues/13194). [#21053](https://github.com/ClickHouse/ClickHouse/pull/21053) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Faça apenas a mesclagem de blocos ordenados no nó iniciador com distributed\_group\_by\_no\_merge. [#20882](https://github.com/ClickHouse/ClickHouse/pull/20882) ([Azat Khuzhin](https://github.com/azat)).
* Ao carregar a configuração da origem MySQL, o ClickHouse agora passará a embaralhar a lista de réplicas com a mesma prioridade para garantir a lógica round-robin de escolha do endpoint MySQL. Isso fecha [#20629](https://github.com/ClickHouse/ClickHouse/issues/20629). [#20632](https://github.com/ClickHouse/ClickHouse/pull/20632) ([Alexander Kazakov](https://github.com/Akazz)).
* Função 'reinterpretAs(x, Type)' renomeada para 'reinterpret(x, Type)'. [#20611](https://github.com/ClickHouse/ClickHouse/pull/20611) ([Maksim Kita](https://github.com/kitaisreal)).
* Suporte a vhost no mecanismo RabbitMQ [#20576](https://github.com/ClickHouse/ClickHouse/issues/20576). [#20596](https://github.com/ClickHouse/ClickHouse/pull/20596) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Serialização aprimorada para tipos de dados compostos por Arrays e Tuples. Correspondência aprimorada entre tipos de dados enum e o tipo enum do protobuf. Corrigida a serialização do tipo de dado `Map`. Valores omitidos agora são definidos por padrão. [#20506](https://github.com/ClickHouse/ClickHouse/pull/20506) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrigida a condição de corrida entre a execução de tarefas de DDL distribuído e a limpeza da fila de DDL. Agora, a tarefa de DDL não pode ser removida do ZooKeeper se houver workers em atividade. Corrige [#20016](https://github.com/ClickHouse/ClickHouse/issues/20016). [#20448](https://github.com/ClickHouse/ClickHouse/pull/20448) ([tavplubix](https://github.com/tavplubix)).
* Fazer com que o FQDN e outras funções relacionadas a DNS funcionem corretamente em imagens Alpine. [#20336](https://github.com/ClickHouse/ClickHouse/pull/20336) ([filimonov](https://github.com/filimonov)).
* Não permitir o constant folding precoce de funções explicitamente proibidas. [#20303](https://github.com/ClickHouse/ClickHouse/pull/20303) ([Azat Khuzhin](https://github.com/azat)).
* A conversão implícita de inteiro para o tipo Decimal podia ser bem-sucedida mesmo quando o valor inteiro não cabia no tipo Decimal. Agora, ela lança `ARGUMENT_OUT_OF_BOUND`. [#20232](https://github.com/ClickHouse/ClickHouse/pull/20232) ([tavplubix](https://github.com/tavplubix)).
* `SYSTEM FLUSH DISTRIBUTED` livre de bloqueios. [#20215](https://github.com/ClickHouse/ClickHouse/pull/20215) ([Azat Khuzhin](https://github.com/azat)).
* Normalize count(constant) e sum(1) para count(). Isso é necessário para o roteamento de consultas com projeção. [#20175](https://github.com/ClickHouse/ClickHouse/pull/20175) ([Amos Bird](https://github.com/amosbird)).
* Suporte a todos os tipos inteiros nativos nas funções de bitmap. [#20171](https://github.com/ClickHouse/ClickHouse/pull/20171) ([Amos Bird](https://github.com/amosbird)).
* Atualizados `CacheDictionary`, `ComplexCacheDictionary`, `SSDCacheDictionary` e `SSDComplexKeyDictionary` para usar `LRUHashMap` como índice subjacente. [#20164](https://github.com/ClickHouse/ClickHouse/pull/20164) ([Maksim Kita](https://github.com/kitaisreal)).
* A configuração `access_management` agora pode ser definida na inicialização ao fornecer `CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT`; o padrão é desabilitado (`0`), que era o valor anterior. [#20139](https://github.com/ClickHouse/ClickHouse/pull/20139) ([Marquitos](https://github.com/sonirico)).
* Correção de toDateTime64(toDate()/toDateTime()) para DateTime64 - Implementação da limitação de valores de DateTime64 para corresponder ao comportamento de DateTime. [#20131](https://github.com/ClickHouse/ClickHouse/pull/20131) ([Azat Khuzhin](https://github.com/azat)).
* Melhorias nas cotas: SHOW TABLES agora é considerado uma consulta nos cálculos de cota, e não duas. As consultas SYSTEM agora consomem cota. Corrigido o cálculo do fim do intervalo no consumo de cota. [#20106](https://github.com/ClickHouse/ClickHouse/pull/20106) ([Vitaly Baranov](https://github.com/vitlibar)).
* Suporta expressões `path IN (set)` na tabela `system.zookeeper`. [#20105](https://github.com/ClickHouse/ClickHouse/pull/20105) ([小路](https://github.com/nicelulu)).
* Mostrar os detalhes completos das tabelas `MaterializeMySQL` em `system.tables`. [#20051](https://github.com/ClickHouse/ClickHouse/pull/20051) ([Stig Bakken](https://github.com/stigsb)).
* Corrigida uma condição de corrida no dicionário executável que só era possível em caso de uso indevido (quando o script retorna dados ignorando a entrada). [#20045](https://github.com/ClickHouse/ClickHouse/pull/20045) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* O valor da opção MYSQL\_OPT\_RECONNECT agora pode ser controlado pelo parâmetro "opt\_reconnect" na seção de configuração da réplica MySQL. [#19998](https://github.com/ClickHouse/ClickHouse/pull/19998) ([Alexander Kazakov](https://github.com/Akazz)).
* Se o usuário chamar a função `JSONExtract` solicitando o tipo `Float32`, permitir a conversão imprecisa para o tipo de resultado. Por exemplo, o número `0.1` em JSON é de precisão dupla e não pode ser representado como Float32, mas o usuário ainda quer obtê-lo. As versões anteriores retornavam 0 para o tipo não `Nullable` e NULL para o tipo `Nullable` para indicar que a conversão era imprecisa. A lógica estava 100% correta, mas isso surpreendia os usuários e gerava dúvidas. Isso encerra [#13962](https://github.com/ClickHouse/ClickHouse/issues/13962). [#19960](https://github.com/ClickHouse/ClickHouse/pull/19960) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Adicionar a conversão da estrutura do bloco para INSERT em tabelas Distributed caso não corresponda. [#19947](https://github.com/ClickHouse/ClickHouse/pull/19947) ([Azat Khuzhin](https://github.com/azat)).
* Melhoria na tabela `system.distributed_ddl_queue`. Inicializa o MaxDDLEntryID com o último valor após a reinicialização. Antes deste PR, o MaxDDLEntryID permanecia em zero até que uma nova DDLTask fosse processada. [#19924](https://github.com/ClickHouse/ClickHouse/pull/19924) ([Amos Bird](https://github.com/amosbird)).
* Exibir tabelas `MaterializeMySQL` em `system.parts`. [#19770](https://github.com/ClickHouse/ClickHouse/pull/19770) ([Stig Bakken](https://github.com/stigsb)).
* Adicionada uma diretiva de configuração separada para o perfil `Buffer`. [#19721](https://github.com/ClickHouse/ClickHouse/pull/19721) ([Azat Khuzhin](https://github.com/azat)).
* Mova condições não relacionadas ao JOIN para a cláusula WHERE. [#18720](https://github.com/ClickHouse/ClickHouse/issues/18720). [#19685](https://github.com/ClickHouse/ClickHouse/pull/19685) ([hexiaoting](https://github.com/hexiaoting)).
* Adicionada a capacidade de limitar a taxa de INSERT em Distributed com base na quantidade de bytes pendentes de envio assíncrono (foram adicionadas as configurações `bytes_to_delay_insert`/`max_delay_to_insert` e `bytes_to_throw_insert` para o engine `Distributed`). [#19673](https://github.com/ClickHouse/ClickHouse/pull/19673) ([Azat Khuzhin](https://github.com/azat)).
* Corrige alguns casos raros em que erros de gravação podem ser ignorados em destrutores. [#19451](https://github.com/ClickHouse/ClickHouse/pull/19451) ([Azat Khuzhin](https://github.com/azat)).
* Exibir frames embutidos em stack traces de erros fatais. [#19317](https://github.com/ClickHouse/ClickHouse/pull/19317) ([Ivan](https://github.com/abyss7)).

<div id="bug-fix-7">
  #### correção de bug
</div>

* Corrige reconexões redundantes ao ZooKeeper e a possibilidade de duas sessões ativas em um único servidor ClickHouse. Ambos os problemas foram introduzidos em #14678. [#21264](https://github.com/ClickHouse/ClickHouse/pull/21264) ([alesapin](https://github.com/alesapin)).
* Corrige o erro `Bad cast from type ... to DB::ColumnLowCardinality` ao inserir em uma tabela com coluna `LowCardinality` a partir do formato `Values`. Corrige #21140 [#21357](https://github.com/ClickHouse/ClickHouse/pull/21357) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige um deadlock em mutações `ALTER DELETE` para motores de tabela MergeTree não replicados quando o predicado contém a própria tabela. Corrige [#20558](https://github.com/ClickHouse/ClickHouse/issues/20558). [#21477](https://github.com/ClickHouse/ClickHouse/pull/21477) ([alesapin](https://github.com/alesapin)).
* Corrige SIGSEGV em consultas distribuídas em caso de falhas. [#21434](https://github.com/ClickHouse/ClickHouse/pull/21434) ([Azat Khuzhin](https://github.com/azat)).
* Agora, as consultas `ALTER MODIFY COLUMN` passarão a refletir corretamente alterações na chave de partição, nos índices de omissão, nos TTLs e assim por diante. Corrige [#13675](https://github.com/ClickHouse/ClickHouse/issues/13675). [#21334](https://github.com/ClickHouse/ClickHouse/pull/21334) ([alesapin](https://github.com/alesapin)).
* Corrige um bug em `join_use_nulls` e ao fazer JOIN de `TOTALS` de subconsultas. Isso fecha [#19362](https://github.com/ClickHouse/ClickHouse/issues/19362) e [#21137](https://github.com/ClickHouse/ClickHouse/issues/21137). [#21248](https://github.com/ClickHouse/ClickHouse/pull/21248) ([vdimir](https://github.com/vdimir)).
* Corrige travamento no `EXPLAIN` para consulta com `UNION`. Corrige [#20876](https://github.com/ClickHouse/ClickHouse/issues/20876), [#21170](https://github.com/ClickHouse/ClickHouse/issues/21170). [#21246](https://github.com/ClickHouse/ClickHouse/pull/21246) ([flynn](https://github.com/ucasFL)).
* Agora, as mutações passam a ser permitidas apenas para motores de tabela que as suportam (família MergeTree, Memory, MaterializedView). Outros motores retornarão um erro mais claro. Corrige [#21168](https://github.com/ClickHouse/ClickHouse/issues/21168). [#21183](https://github.com/ClickHouse/ClickHouse/pull/21183) ([alesapin](https://github.com/alesapin)).
* Corrige [#21112](https://github.com/ClickHouse/ClickHouse/issues/21112). Corrigido um bug que poderia causar duplicatas na consulta INSERT (se um dos callbacks chegasse um pouco tarde). [#21138](https://github.com/ClickHouse/ClickHouse/pull/21138) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigido o problema em que `input_format_null_as_default` não entrava em vigor quando os tipos eram Nullable. Isso corrige [#21116](https://github.com/ClickHouse/ClickHouse/issues/21116) . [#21121](https://github.com/ClickHouse/ClickHouse/pull/21121) ([Amos Bird](https://github.com/amosbird)).
* corrige bug relacionado ao cast de Tuple para Map. Fecha [#21029](https://github.com/ClickHouse/ClickHouse/issues/21029). [#21120](https://github.com/ClickHouse/ClickHouse/pull/21120) ([hexiaoting](https://github.com/hexiaoting)).
* Corrige o vazamento de metadados ao remover o Replicated\*MergeTree com cluster ZooKeeper personalizado (não padrão). [#21119](https://github.com/ClickHouse/ClickHouse/pull/21119) ([fastio](https://github.com/fastio)).
* Corrige o problema de incompatibilidade de tipos ao usar chaves LowCardinality no joinGet. Isso corrige [#21114](https://github.com/ClickHouse/ClickHouse/issues/21114). [#21117](https://github.com/ClickHouse/ClickHouse/pull/21117) ([Amos Bird](https://github.com/amosbird)).
* corrige o fato de os valores default\_replica\_path e default\_replica\_name serem inúteis no mecanismo Replicated(\*)MergeTree quando ele precisa especificar outros parâmetros. [#21060](https://github.com/ClickHouse/ClickHouse/pull/21060) ([mxzlxy](https://github.com/mxzlxy)).
* Era possível acessar memória fora dos limites ao formatar um valor do tipo `DateTime64` fora do intervalo, especialmente criado para isso. Isso corrige [#20494](https://github.com/ClickHouse/ClickHouse/issues/20494). Isso corrige [#20543](https://github.com/ClickHouse/ClickHouse/issues/20543). [#21023](https://github.com/ClickHouse/ClickHouse/pull/21023) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Bloquear inserções paralelas no storage join. [#21009](https://github.com/ClickHouse/ClickHouse/pull/21009) ([vdimir](https://github.com/vdimir)).
* Corrigido o comportamento em que `ALTER MODIFY COLUMN` criava uma mutação que sabidamente falharia. [#21007](https://github.com/ClickHouse/ClickHouse/pull/21007) ([Anton Popov](https://github.com/CurtizJ)).
* Fecha [#9969](https://github.com/ClickHouse/ClickHouse/issues/9969). Corrigido um erro de compressão HTTP com Brotli, que ocorria com grandes volumes de dados, estrutura um pouco mais complexa e formato de saída JSON. Brotli atualizado para a versão mais recente para incluir a "correção para acesso raro a dados não inicializados no buffer circular". [#20991](https://github.com/ClickHouse/ClickHouse/pull/20991) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige 'Uma tarefa vazia foi retornada pela fila de tarefas assíncronas' ao cancelar a consulta. [#20881](https://github.com/ClickHouse/ClickHouse/pull/20881) ([Azat Khuzhin](https://github.com/azat)).
* A consulta `USE database;` não funcionava ao usar o cliente MySQL 5.7 para se conectar ao servidor ClickHouse; isso foi corrigido. Corrige [#18926](https://github.com/ClickHouse/ClickHouse/issues/18926). [#20878](https://github.com/ClickHouse/ClickHouse/pull/20878) ([tavplubix](https://github.com/tavplubix)).
* Corrigido o uso do combinador `-Distinct` com o combinador `-State` em funções de agregação. [#20866](https://github.com/ClickHouse/ClickHouse/pull/20866) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige subconsulta com UNION DISTINCT e cláusula LIMIT. Fecha [#20597](https://github.com/ClickHouse/ClickHouse/issues/20597). [#20610](https://github.com/ClickHouse/ClickHouse/pull/20610) ([flynn](https://github.com/ucasFL)).
* Corrigido o comportamento inconsistente do Dicionário em consultas nas quais procuramos chaves ausentes no dicionário. [#20578](https://github.com/ClickHouse/ClickHouse/pull/20578) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrige a quantidade de threads para subconsultas escalares e subconsultas de índice (após [#19007](https://github.com/ClickHouse/ClickHouse/issues/19007), uma única thread era sempre usada). Corrige [#20457](https://github.com/ClickHouse/ClickHouse/issues/20457), [#20512](https://github.com/ClickHouse/ClickHouse/issues/20512). [#20550](https://github.com/ClickHouse/ClickHouse/pull/20550) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige uma falha que poderia ocorrer se um pacote desconhecido fosse recebido de uma consulta REMOVE (foi introduzida em [#17868](https://github.com/ClickHouse/ClickHouse/issues/17868)). [#20547](https://github.com/ClickHouse/ClickHouse/pull/20547) ([Azat Khuzhin](https://github.com/azat)).
* Adiciona verificações adequadas durante a análise de nomes de diretório para `async INSERT` (corrige SIGSEGV). [#20498](https://github.com/ClickHouse/ClickHouse/pull/20498) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido o problema em que a função `transform` não funcionava corretamente com chaves de ponto flutuante. Fecha [#20460](https://github.com/ClickHouse/ClickHouse/issues/20460). [#20479](https://github.com/ClickHouse/ClickHouse/pull/20479) ([flynn](https://github.com/ucasFL)).
* Corrige loop infinito ao propagar aliases de WITH para subconsultas. Isso corrige [#20388](https://github.com/ClickHouse/ClickHouse/issues/20388). [#20476](https://github.com/ClickHouse/ClickHouse/pull/20476) ([Amos Bird](https://github.com/amosbird)).
* Corrige o encerramento anormal do servidor quando o cliente HTTP se desconecta. [#20464](https://github.com/ClickHouse/ClickHouse/pull/20464) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido `LOGICAL_ERROR` para `join_use_nulls=1` quando o JOIN contém const do SELECT. [#20461](https://github.com/ClickHouse/ClickHouse/pull/20461) ([Azat Khuzhin](https://github.com/azat)).
* Verifique se a função de tabela `view` é usada na lista de expressões e retorne um erro. Isso corrige [#20342](https://github.com/ClickHouse/ClickHouse/issues/20342). [#20350](https://github.com/ClickHouse/ClickHouse/pull/20350) ([Amos Bird](https://github.com/amosbird)).
* Evita a desreferenciação inválida no dicionário RANGE\_HASHED(). [#20345](https://github.com/ClickHouse/ClickHouse/pull/20345) ([Azat Khuzhin](https://github.com/azat)).
* Corrige a desreferência de ponteiro nulo com `join_use_nulls=1`. [#20344](https://github.com/ClickHouse/ClickHouse/pull/20344) ([Azat Khuzhin](https://github.com/azat)).
* Corrige o resultado incorreto de operações binárias entre dois decimais constantes de escalas diferentes. Corrige [#20283](https://github.com/ClickHouse/ClickHouse/issues/20283). [#20339](https://github.com/ClickHouse/ClickHouse/pull/20339) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige as tentativas frequentes demais de repetir tarefas em segundo plano com falha na família de motores de tabela `ReplicatedMergeTree`. Isso podia levar a um logging excessivamente verboso e ao aumento da carga de CPU. Corrige [#20203](https://github.com/ClickHouse/ClickHouse/issues/20203). [#20335](https://github.com/ClickHouse/ClickHouse/pull/20335) ([alesapin](https://github.com/alesapin)).
* Restringir `DROP` ou `RENAME` da coluna de versão dos motores de tabela `*CollapsingMergeTree` e `ReplacingMergeTree`. [#20300](https://github.com/ClickHouse/ClickHouse/pull/20300) ([alesapin](https://github.com/alesapin)).
* Corrigido o comportamento em que, no caso de JSON corrompido, tentava-se ler o arquivo inteiro para a memória, o que levava a uma exceção do alocador. Corrige [#19719](https://github.com/ClickHouse/ClickHouse/issues/19719). [#20286](https://github.com/ClickHouse/ClickHouse/pull/20286) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrige a exceção durante a mesclagem vertical em motores de tabela da família `MergeTree` que não permitem realizar mesclagens verticais. Corrige [#20259](https://github.com/ClickHouse/ClickHouse/issues/20259). [#20279](https://github.com/ClickHouse/ClickHouse/pull/20279) ([alesapin](https://github.com/alesapin)).
* Corrige uma rara falha do servidor ao recarregar a configuração durante o encerramento. Corrige [#19689](https://github.com/ClickHouse/ClickHouse/issues/19689). [#20224](https://github.com/ClickHouse/ClickHouse/pull/20224) ([alesapin](https://github.com/alesapin)).
* Corrige CTE ao usar INSERT SELECT. Isso corrige [#20187](https://github.com/ClickHouse/ClickHouse/issues/20187) e [#20195](https://github.com/ClickHouse/ClickHouse/issues/20195). [#20211](https://github.com/ClickHouse/ClickHouse/pull/20211) ([Amos Bird](https://github.com/amosbird)).
* Corrigido [#19314](https://github.com/ClickHouse/ClickHouse/issues/19314). [#20156](https://github.com/ClickHouse/ClickHouse/pull/20156) ([Ivan](https://github.com/abyss7)).
* corrigida a função toMinute para lidar corretamente com fusos horários especiais. [#20149](https://github.com/ClickHouse/ClickHouse/pull/20149) ([keenwolf](https://github.com/keen-wolf)).
* Corrige falha do servidor após uma consulta com a função `if`, com tipo `Tuple` no resultado dos ramos then/else. O tipo `Tuple` deve conter `Array` ou outro tipo complexo. Corrige [#18356](https://github.com/ClickHouse/ClickHouse/issues/18356). [#20133](https://github.com/ClickHouse/ClickHouse/pull/20133) ([alesapin](https://github.com/alesapin)).
* O mecanismo de tabela `MongoDB` agora só estabelece conexão quando vai ler dados. `ATTACH TABLE` não tentará mais estabelecer conexão. [#20110](https://github.com/ClickHouse/ClickHouse/pull/20110) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correção no StorageJoin. [#20079](https://github.com/ClickHouse/ClickHouse/pull/20079) ([vdimir](https://github.com/vdimir)).
* Corrige o caso em que, ao calcular o módulo da divisão de um número negativo por um divisor pequeno, o tipo de dado resultante não era grande o suficiente para comportar o resultado negativo. Isso fecha [#20052](https://github.com/ClickHouse/ClickHouse/issues/20052). [#20067](https://github.com/ClickHouse/ClickHouse/pull/20067) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* MaterializeMySQL: corrige a replicação em instruções que atualizam várias tabelas. [#20066](https://github.com/ClickHouse/ClickHouse/pull/20066) ([Håvard Kvålen](https://github.com/havardk)).
* Evita "Connection refused" no Docker durante a execução do script de inicialização. [#20012](https://github.com/ClickHouse/ClickHouse/pull/20012) ([filimonov](https://github.com/filimonov)).
* `EmbeddedRocksDB` é um mecanismo de armazenamento experimental. Corrigido o problema da falta de verificação adequada de tipos. Código simplificado. Isso fecha [#19967](https://github.com/ClickHouse/ClickHouse/issues/19967). [#19972](https://github.com/ClickHouse/ClickHouse/pull/19972) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige uma falha de segmentação na função `fromModifiedJulianDay` quando o tipo do argumento é `Nullable(T)` para qualquer tipo integral diferente de Int32. [#19959](https://github.com/ClickHouse/ClickHouse/pull/19959) ([PHO](https://github.com/depressed-pho)).
* Correção de travamento do índice BloomFilter. Corrige [#19757](https://github.com/ClickHouse/ClickHouse/issues/19757). [#19884](https://github.com/ClickHouse/ClickHouse/pull/19884) ([Maksim Kita](https://github.com/kitaisreal)).
* Era possível haver um deadlock se system.text\_log estiver habilitado. Isso corrige [#19874](https://github.com/ClickHouse/ClickHouse/issues/19874). [#19875](https://github.com/ClickHouse/ClickHouse/pull/19875) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrigida a inicialização do servidor com tabelas que têm expressões padrão contendo dictGet(). Agora é possível obter o tipo de retorno de dictGet() sem carregar o dicionário. [#19805](https://github.com/ClickHouse/ClickHouse/pull/19805) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrigida a exceção de abort no clickhouse-client ao executar apenas `select`. [#19790](https://github.com/ClickHouse/ClickHouse/pull/19790) ([taiyang-li](https://github.com/taiyang-li)).
* Corrige um bug em que a movimentação de partes para a tabela de destino podia falhar ao iniciar vários clickhouse-copiers. [#19743](https://github.com/ClickHouse/ClickHouse/pull/19743) ([madianjun](https://github.com/mdianjun)).
* Uma thread em segundo plano que executa consultas `ON CLUSTER` podia ficar travada, aguardando que uma tabela replicada removida fizesse algo. Isso foi corrigido. [#19684](https://github.com/ClickHouse/ClickHouse/pull/19684) ([yiguolei](https://github.com/yiguolei)).

<div id="buildtestingpackaging-improvement-8">
  #### Melhoria de Build/Testes/Empacotamento
</div>

* Permite compilar o ClickHouse com AVX-2 habilitado globalmente. Isso traz pequenos ganhos de desempenho em CPUs modernas. Não é recomendado para produção e, por enquanto, não terá suporte como build oficial. [#20180](https://github.com/ClickHouse/ClickHouse/pull/20180) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige alguns dos problemas encontrados pelo Coverity. Veja [#19964](https://github.com/ClickHouse/ClickHouse/issues/19964). [#20010](https://github.com/ClickHouse/ClickHouse/pull/20010) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Permite iniciar com o binário modificado no gdb. Na versão anterior, se você definisse um breakpoint no gdb antes de iniciar, o servidor se recusava a iniciar devido a uma falha na verificação de integridade. [#21258](https://github.com/ClickHouse/ClickHouse/pull/21258) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Adiciona um teste para diferentes métodos de compressão no Kafka. [#21111](https://github.com/ClickHouse/ClickHouse/pull/21111) ([filimonov](https://github.com/filimonov)).
* Corrige conflito de porta no teste test\_storage\_kerberized\_hdfs. [#19974](https://github.com/ClickHouse/ClickHouse/pull/19974) ([Ilya Yatsishin](https://github.com/qoega)).
* Registra `stdout` e `stderr` no log quando ocorre falha ao iniciar o docker nos testes de integração. Antes deste PR, havia uma mensagem de erro muito curta nesse caso, o que não ajudava a investigar os problemas. [#20631](https://github.com/ClickHouse/ClickHouse/pull/20631) ([Vitaly Baranov](https://github.com/vitlibar)).

<div id="clickhouse-release-212">
  ## Versão 21.2 do ClickHouse
</div>

<div id="clickhouse-release-v21228-stable-2021-02-07">
  ### versão do ClickHouse v21.2.2.8-stable, 2021-02-07
</div>

<div id="backward-incompatible-change-9">
  #### mudança incompatível com versões anteriores
</div>

* Funções bit a bit (`bitAnd`, `bitOr`, etc.) não são permitidas com argumentos de ponto flutuante. Agora é necessário fazer uma conversão explícita para inteiro. [#19853](https://github.com/ClickHouse/ClickHouse/pull/19853) ([Azat Khuzhin](https://github.com/azat)).
* `lcm`/`gcd` não são mais permitidos para floats. [#19532](https://github.com/ClickHouse/ClickHouse/pull/19532) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido o rastreamento de memória para `OPTIMIZE TABLE`/merges; agora os limites de memória da consulta e a amostragem são contabilizados para `OPTIMIZE TABLE`/merges. [#18772](https://github.com/ClickHouse/ClickHouse/pull/18772) ([Azat Khuzhin](https://github.com/azat)).
* Colunas de ponto flutuante não são permitidas como chave de partição; veja [#18421](https://github.com/ClickHouse/ClickHouse/issues/18421#event-4147046255). [#18464](https://github.com/ClickHouse/ClickHouse/pull/18464) ([hexiaoting](https://github.com/hexiaoting)).
* Parênteses em excesso nas definições de tipo não são mais suportados, por exemplo: `Array((UInt8))`.

<div id="new-feature">
  #### Novo recurso
</div>

* Adicionado o mecanismo de tabela `PostgreSQL` (com `select/insert` e suporte a arrays multidimensionais), também como função de tabela. Adicionada a fonte de dicionário `PostgreSQL`. Adicionado o mecanismo de banco de dados `PostgreSQL`. [#18554](https://github.com/ClickHouse/ClickHouse/pull/18554) ([Kseniia Sumarokova](https://github.com/kssenii)).
* O tipo de dado `Nested` agora oferece suporte a níveis arbitrários de aninhamento. Foram introduzidas subcolunas para tipos complexos, como `size0` em `Array`, `null` em `Nullable` e nomes de elementos de `Tuple`, que podem ser lidas sem precisar ler a coluna inteira. [#17310](https://github.com/ClickHouse/ClickHouse/pull/17310) ([Anton Popov](https://github.com/CurtizJ)).
* Adicionado suporte a `Nullable` em `FlatDictionary`, `HashedDictionary`, `ComplexKeyHashedDictionary`, `DirectDictionary`, `ComplexKeyDirectDictionary` e `RangeHashedDictionary`. [#18236](https://github.com/ClickHouse/ClickHouse/pull/18236) ([Maksim Kita](https://github.com/kitaisreal)).
* Adiciona uma nova tabela chamada `system.distributed_ddl_queue`, que exibe as consultas na fila do worker de DDL. [#17656](https://github.com/ClickHouse/ClickHouse/pull/17656) ([Bharat Nallan](https://github.com/bharatnc)).
* Adicionado suporte ao mapeamento de nomes de grupos LDAP e de valores de attribute em geral para roles locais de usuários de diretórios LDAP. [#17211](https://github.com/ClickHouse/ClickHouse/pull/17211) ([Denis Glazachev](https://github.com/traceon)).
* Suporte a insert na table function `cluster` e, para as table functions `remote` e `cluster`, suporte à distribuição de dados entre nós com a especificação da sharding key. Fecha [#16752](https://github.com/ClickHouse/ClickHouse/issues/16752). [#18264](https://github.com/ClickHouse/ClickHouse/pull/18264) ([flynn](https://github.com/ucasFL)).
* Adiciona a função `decodeXMLComponent` para decodificar caracteres em XML. Exemplo: `SELECT decodeXMLComponent('Hello,&quot;world&quot;!')` [#17659](https://github.com/ClickHouse/ClickHouse/issues/17659). [#18542](https://github.com/ClickHouse/ClickHouse/pull/18542) ([nauta](https://github.com/nautaa)).
* Adicionadas as funções `parseDateTimeBestEffortUSOrZero` e `parseDateTimeBestEffortUSOrNull`. [#19712](https://github.com/ClickHouse/ClickHouse/pull/19712) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionada a função matemática `sign`. [#19527](https://github.com/ClickHouse/ClickHouse/pull/19527) ([flynn](https://github.com/ucasFL)).
* Adicionadas informações sobre os recursos usados (funções, motores de tabela etc.) ao system.query\_log. [#18495](https://github.com/ClickHouse/ClickHouse/issues/18495). [#19371](https://github.com/ClickHouse/ClickHouse/pull/19371) ([Kseniia Sumarokova](https://github.com/kssenii)).
* A função `formatDateTime` oferece suporte ao modificador `%Q` para formatar a data como trimestre. [#19224](https://github.com/ClickHouse/ClickHouse/pull/19224) ([Jianmei Zhang](https://github.com/zhangjmruc)).
* Suporte ao atalho MetaKey+Enter na UI do play. [#19012](https://github.com/ClickHouse/ClickHouse/pull/19012) ([sundyli](https://github.com/sundy-li)).
* Adiciona três funções para o tipo de dado map: 1. `mapContains(map, key)` para verificar se `map.keys` inclui a segunda chave de parâmetro. 2. `mapKeys(map)` retorna todas as chaves no formato Array 3. `mapValues(map)` retorna todos os valores no formato Array. [#18788](https://github.com/ClickHouse/ClickHouse/pull/18788) ([hexiaoting](https://github.com/hexiaoting)).
* Adicionada a configuração `log_comment`, relacionada ao [#18494](https://github.com/ClickHouse/ClickHouse/issues/18494). [#18549](https://github.com/ClickHouse/ClickHouse/pull/18549) ([Zijie Lu](https://github.com/TszKitLo40)).
* Adicionado suporte a argumento do tipo Tuple nas funções `argMin` e `argMax`. [#17359](https://github.com/ClickHouse/ClickHouse/pull/17359) ([Ildus Kurbangaliev](https://github.com/ildus)).
* Suporte para a sintaxe `EXISTS VIEW`. [#18552](https://github.com/ClickHouse/ClickHouse/pull/18552) ([Du Chuan](https://github.com/spongedu)).
* Adicionada a sintaxe `SELECT ALL`. Fecha [#18706](https://github.com/ClickHouse/ClickHouse/issues/18706). [#18723](https://github.com/ClickHouse/ClickHouse/pull/18723) ([flynn](https://github.com/ucasFL)).

<div id="performance-improvement">
  #### Melhoria de desempenho
</div>

* Remoção mais rápida de partes ao reduzir o número de chamadas de sistema `stat`. Isso restaura uma otimização que existia anteriormente. Interface mais segura para `IDisk`. Isso fecha [#19065](https://github.com/ClickHouse/ClickHouse/issues/19065). [#19086](https://github.com/ClickHouse/ClickHouse/pull/19086) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Aliases declarados na instrução `WITH` agora são usados corretamente na análise de índice. Consultas como `WITH column AS alias SELECT ... WHERE alias = ...` agora podem usar um índice. [#18896](https://github.com/ClickHouse/ClickHouse/pull/18896) ([Amos Bird](https://github.com/amosbird)).
* Adiciona `optimize_alias_column_prediction` (ativado por padrão), que: - considera colunas com alias no WHERE durante o pruning de partição e o skipping de dados usando índices secundários; - considera colunas com alias no WHERE em consultas triviais de contagem para `optimize_trivial_count`; - considera colunas com alias em GROUP BY/ORDER BY para `optimize_aggregation_in_order`/`optimize_read_in_order`. [#16995](https://github.com/ClickHouse/ClickHouse/pull/16995) ([sundyli](https://github.com/sundy-li)).
* Acelera a função de agregação `sum`. A melhoria só é visível em benchmarks sintéticos e não é muito prática. [#19216](https://github.com/ClickHouse/ClickHouse/pull/19216) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Atualiza o libc++ e usa outra ABI para oferecer melhor desempenho. [#18914](https://github.com/ClickHouse/ClickHouse/pull/18914) ([Danila Kutenin](https://github.com/danlark1)).
* Reescreve as funções `sumIf()` e `sum(if())` como a função `countIf()` quando forem logicamente equivalentes. [#17041](https://github.com/ClickHouse/ClickHouse/pull/17041) ([flynn](https://github.com/ucasFL)).
* Usa um pool de conexões para conexões S3, controlado pela configuração `s3_max_connections`. [#13405](https://github.com/ClickHouse/ClickHouse/pull/13405) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Adiciona suporte à opção long do zstd para melhorar a compressão de colunas String e economizar espaço. [#17184](https://github.com/ClickHouse/ClickHouse/pull/17184) ([ygrek](https://github.com/ygrek)).
* Melhora ligeiramente a latência do servidor ao remover o acesso à configuração em cada conexão. [#19863](https://github.com/ClickHouse/ClickHouse/pull/19863) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Reduz a contenção de bloqueios em várias camadas do engine `Buffer`. [#19379](https://github.com/ClickHouse/ClickHouse/pull/19379) ([Azat Khuzhin](https://github.com/azat)).
* Passa a oferecer suporte à divisão da etapa `Filter` do plano de consulta em um par `Expression + Filter`. Junto com a otimização de mesclagem `Expression + Expression` ([#17458](https://github.com/ClickHouse/ClickHouse/issues/17458)), isso pode adiar a execução de algumas expressões para depois da etapa `Filter`. [#19253](https://github.com/ClickHouse/ClickHouse/pull/19253) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).

<div id="improvement">
  #### Melhoria
</div>

* `SELECT count() FROM table` agora pode ser executado se for possível selecionar apenas uma coluna qualquer da `table`. Este PR corrige [#10639](https://github.com/ClickHouse/ClickHouse/issues/10639). [#18233](https://github.com/ClickHouse/ClickHouse/pull/18233) ([Vitaly Baranov](https://github.com/vitlibar)).
* Define o conjunto de caracteres como `utf8mb4` ao interagir com servidores MySQL remotos. Corrige [#19795](https://github.com/ClickHouse/ClickHouse/issues/19795). [#19800](https://github.com/ClickHouse/ClickHouse/pull/19800) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* A `table function` `S3` agora suporta o modo de compressão `auto` (detecção automática). Isso fecha [#18754](https://github.com/ClickHouse/ClickHouse/issues/18754). [#19793](https://github.com/ClickHouse/ClickHouse/pull/19793) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Gera corretamente argumentos infinitos para a função `formatReadableTimeDelta`. Em versões anteriores, havia conversão implícita para um valor inteiro específico da implementação. [#19791](https://github.com/ClickHouse/ClickHouse/pull/19791) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* A função de tabela `S3` usará a região global se a região não puder ser determinada com precisão. Isso resolve [#10998](https://github.com/ClickHouse/ClickHouse/issues/10998). [#19750](https://github.com/ClickHouse/ClickHouse/pull/19750) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Em consultas distribuídas, se a configuração `async_socket_for_remote` estiver habilitada, era possível haver estouro de pilha, pelo menos em compilações de depuração, se um tipo de dado aninhado em profundidade excessiva fosse usado em uma tabela (por exemplo, `Array(Array(Array(...more...)))`). Isso corrige [#19108](https://github.com/ClickHouse/ClickHouse/issues/19108). Esta alteração introduz uma pequena incompatibilidade com versões anteriores: parênteses em excesso em definições de tipo não são mais aceitos, por exemplo: `Array((UInt8))`. [#19736](https://github.com/ClickHouse/ClickHouse/pull/19736) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Adicionar um pool separado para os brokers de mensagens (RabbitMQ e Kafka). [#19722](https://github.com/ClickHouse/ClickHouse/pull/19722) ([Azat Khuzhin](https://github.com/azat)).
* Corrige um raro caso de ultrapassagem do limite `max_number_of_merges_with_ttl_in_pool` (mais merges com TTL podem ser atribuídos) para MergeTree não replicado. [#19708](https://github.com/ClickHouse/ClickHouse/pull/19708) ([alesapin](https://github.com/alesapin)).
* Dicionário: mensagem de erro mais clara durante a análise de atributos. [#19678](https://github.com/ClickHouse/ClickHouse/pull/19678) ([Maksim Kita](https://github.com/kitaisreal)).
* Adiciona uma opção para desativar a validação de checksums durante a leitura. Nunca deve ser usada em produção. Não espere nenhum benefício ao desativá-la. Ela só pode ser usada para experimentos e benchmarks. A configuração se aplica apenas a tabelas da família MergeTree. Os checksums são sempre validados para outros motores de tabela e ao receber dados pela rede. Pelas minhas observações, não há diferença de desempenho, ou ela é inferior a 0,5%. [#19588](https://github.com/ClickHouse/ClickHouse/pull/19588) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Suporte para resultado constante na função `multiIf`. [#19533](https://github.com/ClickHouse/ClickHouse/pull/19533) ([Maksim Kita](https://github.com/kitaisreal)).
* Habilita as funções length/empty/notEmpty para o tipo de dado Map, que retornam o número de chaves no Map. [#19530](https://github.com/ClickHouse/ClickHouse/pull/19530) ([taiyang-li](https://github.com/taiyang-li)).
* Adicionada a opção `--reconnect` ao `clickhouse-benchmark`. Quando essa opção é especificada, a conexão é restabelecida antes de cada solicitação. Isso é necessário para testes. [#19872](https://github.com/ClickHouse/ClickHouse/pull/19872) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Suporte ao novo local do arquivo `.debug`. Isso corrige [#19348](https://github.com/ClickHouse/ClickHouse/issues/19348). [#19520](https://github.com/ClickHouse/ClickHouse/pull/19520) ([Amos Bird](https://github.com/amosbird)).
* A função `toIPv6` faz o parsing de endereços `IPv4`. [#19518](https://github.com/ClickHouse/ClickHouse/pull/19518) ([Bharat Nallan](https://github.com/bharatnc)).
* Adiciona o campo `http_referer` a `system.query_log`, `system.processes`, etc. Isso fecha [#19389](https://github.com/ClickHouse/ClickHouse/issues/19389). [#19390](https://github.com/ClickHouse/ClickHouse/pull/19390) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Melhora a compatibilidade com MySQL ao tornar mais funções insensíveis a maiúsculas e minúsculas e ao adicionar aliases. [#19387](https://github.com/ClickHouse/ClickHouse/pull/19387) ([Daniil Kondratyev](https://github.com/dankondr)).
* Adicionar métricas para tipos de partes do MergeTree (Wide/Compact/InMemory). [#19381](https://github.com/ClickHouse/ClickHouse/pull/19381) ([Azat Khuzhin](https://github.com/azat)).
* Permitir que o Docker seja executado com um UID arbitrário. [#19374](https://github.com/ClickHouse/ClickHouse/pull/19374) ([filimonov](https://github.com/filimonov)).
* Corrige o alinhamento incorreto dos valores do tipo de dado `IPv4` nos formatos Pretty. Eles eram alinhados à direita, e não à esquerda. Isso fecha [#19184](https://github.com/ClickHouse/ClickHouse/issues/19184). [#19339](https://github.com/ClickHouse/ClickHouse/pull/19339) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Permite alterar `max_server_memory_usage` sem reiniciar. Fecha [#18154](https://github.com/ClickHouse/ClickHouse/issues/18154). [#19186](https://github.com/ClickHouse/ClickHouse/pull/19186) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* A exceção gerada quando a função `bar` é chamada com determinado argumento NaN pode ser um pouco enganosa nas versões anteriores. Isso corrige [#19088](https://github.com/ClickHouse/ClickHouse/issues/19088). [#19107](https://github.com/ClickHouse/ClickHouse/pull/19107) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Defina explicitamente o uid / gid do usuário e do grupo clickhouse com os valores fixos (101) nas imagens do clickhouse-server. [#19096](https://github.com/ClickHouse/ClickHouse/pull/19096) ([filimonov](https://github.com/filimonov)).
* Corrigido o erro `PeekableReadBuffer: Memory limit exceed` ao inserir dados com strings muito grandes. Corrige [#18690](https://github.com/ClickHouse/ClickHouse/issues/18690). [#18979](https://github.com/ClickHouse/ClickHouse/pull/18979) ([tavplubix](https://github.com/tavplubix)).
* Imagem Docker: várias melhorias no entrypoint do clickhouse-server. [#18954](https://github.com/ClickHouse/ClickHouse/pull/18954) ([filimonov](https://github.com/filimonov)).
* Adicionadas `normalizeQueryKeepNames` e `normalizedQueryHashKeepNames` para normalizar consultas sem mascarar nomes longos com `?`. Isso ajuda a analisar melhor os logs de consultas complexas. [#18910](https://github.com/ClickHouse/ClickHouse/pull/18910) ([Amos Bird](https://github.com/amosbird)).
* Verifica a soma de verificação por bloco do lote distribuído no remetente antes do envio (sem ler o arquivo duas vezes; as somas de verificação serão verificadas durante a leitura); isso evitará o travamento do INSERT no destinatário (em caso de arquivo .bin truncado no remetente). Evita ler arquivos .bin duas vezes para INSERTs em lote (isso era necessário para calcular linhas/bytes e levar o squashing em conta; agora, essas informações são incluídas no cabeçalho, e a compatibilidade com versões anteriores é preservada). [#18853](https://github.com/ClickHouse/ClickHouse/pull/18853) ([Azat Khuzhin](https://github.com/azat)).
* Corrige problemas com RIGHT e FULL JOIN de tabelas com estados de funções de agregação. Em versões anteriores, era gerada uma exceção relacionada ao método `cloneResized`. [#18818](https://github.com/ClickHouse/ClickHouse/pull/18818) ([templarzq](https://github.com/templarzq)).
* Adicionadas configurações de endpoint do S3 com base em prefixo. [#18812](https://github.com/ClickHouse/ClickHouse/pull/18812) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Adicionado suporte aos tipos de argumentos \[UInt8, UInt16, UInt32, UInt64] para as funções bitmapTransform, bitmapSubsetInRange, bitmapSubsetLimit e bitmapContains. Isso fecha [#18713](https://github.com/ClickHouse/ClickHouse/issues/18713). [#18791](https://github.com/ClickHouse/ClickHouse/pull/18791) ([sundyli](https://github.com/sundy-li)).
* Permitir atribuir aliases adicionais a CTEs (expressões de tabela comuns). Propagar a CSE (eliminação de subexpressões comuns) para subconsultas no mesmo nível quando `enable_global_with_statement = 1`. Isso corrige [#17378](https://github.com/ClickHouse/ClickHouse/issues/17378). Isso corrige [https://github.com/ClickHouse/ClickHouse/pull/16575#issuecomment-753416235](https://github.com/ClickHouse/ClickHouse/pull/16575#issuecomment-753416235). [#18684](https://github.com/ClickHouse/ClickHouse/pull/18684) ([Amos Bird](https://github.com/amosbird)).
* Atualizado o librdkafka para v1.6.0-RC2. Corrige [#18668](https://github.com/ClickHouse/ClickHouse/issues/18668). [#18671](https://github.com/ClickHouse/ClickHouse/pull/18671) ([filimonov](https://github.com/filimonov)).
* Em caso de exceções inesperadas, reinicia automaticamente a thread em segundo plano responsável por executar consultas de DDL distribuído. Corrige [#17991](https://github.com/ClickHouse/ClickHouse/issues/17991). [#18285](https://github.com/ClickHouse/ClickHouse/pull/18285) ([徐炘](https://github.com/weeds085490)).
* Atualizado o SDK AWS C++ para usar regiões globais no S3. [#17870](https://github.com/ClickHouse/ClickHouse/pull/17870) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Adicionado suporte à cláusula `WITH ... [AND] [PERIODIC] REFRESH [interval_in_sec]` na criação de tabelas `LIVE VIEW`. [#14822](https://github.com/ClickHouse/ClickHouse/pull/14822) ([vzakaznikov](https://github.com/vzakaznikov)).
* Restringe consultas `MODIFY TTL` para tabelas `MergeTree` criadas com a sintaxe antiga. Antes, a consulta era executada com sucesso, mas, na prática, não tinha efeito. [#19064](https://github.com/ClickHouse/ClickHouse/pull/19064) ([Anton Popov](https://github.com/CurtizJ)).

<div id="bug-fix">
  #### Correção de bug
</div>

* Corrige a análise de índice de funções binárias com argumento constante, que resultava em consultas com resultados incorretos. Isso corrige [#18364](https://github.com/ClickHouse/ClickHouse/issues/18364). [#18373](https://github.com/ClickHouse/ClickHouse/pull/18373) ([Amos Bird](https://github.com/amosbird)).
* Corrigida a inicialização do servidor com tabelas que têm expressões padrão contendo dictGet(). Agora é possível obter o tipo de retorno de dictGet() sem carregar o dicionário. [#19805](https://github.com/ClickHouse/ClickHouse/pull/19805) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige falha do servidor após uma consulta com a função `if`, em que o tipo `Tuple` do resultado dos ramos then/else. O tipo `Tuple` deve conter `Array` ou outro tipo complexo. Corrige [#18356](https://github.com/ClickHouse/ClickHouse/issues/18356). [#20133](https://github.com/ClickHouse/ClickHouse/pull/20133) ([alesapin](https://github.com/alesapin)).
* `MaterializeMySQL` (funcionalidade experimental): Corrige a replicação de instruções que atualizam várias tabelas. [#20066](https://github.com/ClickHouse/ClickHouse/pull/20066) ([Håvard Kvålen](https://github.com/havardk)).
* Evita o erro "Conexão recusada" no Docker durante a execução do script de inicialização. [#20012](https://github.com/ClickHouse/ClickHouse/pull/20012) ([filimonov](https://github.com/filimonov)).
* `EmbeddedRocksDB` é um mecanismo de armazenamento Experimental. Corrigido o problema da falta de verificação adequada de tipos. Código simplificado. Isso fecha [#19967](https://github.com/ClickHouse/ClickHouse/issues/19967). [#19972](https://github.com/ClickHouse/ClickHouse/pull/19972) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige uma falha de segmentação na função `fromModifiedJulianDay` quando o tipo do argumento é `Nullable(T)` para qualquer tipo integral diferente de Int32. [#19959](https://github.com/ClickHouse/ClickHouse/pull/19959) ([PHO](https://github.com/depressed-pho)).
* A função `greatCircleAngle` retornava resultados imprecisos em versões anteriores. Isso fecha [#19769](https://github.com/ClickHouse/ClickHouse/issues/19769). [#19789](https://github.com/ClickHouse/ClickHouse/pull/19789) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige um bug raro em que algumas operações replicadas (como mutation) não conseguem processar certas partes após uma corrupção de dados. Corrige [#19593](https://github.com/ClickHouse/ClickHouse/issues/19593). [#19702](https://github.com/ClickHouse/ClickHouse/pull/19702) ([alesapin](https://github.com/alesapin)).
* A thread em segundo plano que executa consultas `ON CLUSTER` podia travar enquanto esperava que uma tabela replicada removida fizesse alguma coisa. Isso foi corrigido. [#19684](https://github.com/ClickHouse/ClickHouse/pull/19684) ([yiguolei](https://github.com/yiguolei)).
* Corrige a desserialização incorreta da descrição de colunas. Isso impossibilita fazer INSERT em uma tabela com uma coluna chamada `\`. [#19479](https://github.com/ClickHouse/ClickHouse/pull/19479) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Marcar o lote distribuído como inválido em caso de bloco de dados vazio em um dos arquivos. [#19449](https://github.com/ClickHouse/ClickHouse/pull/19449) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido um bug muito raro que poderia fazer com que a mutation ficasse bloqueada após `DROP/DETACH/REPLACE/MOVE PARTITION`. Isso já havia sido parcialmente corrigido por [#15537](https://github.com/ClickHouse/ClickHouse/issues/15537) na maioria dos casos. [#19443](https://github.com/ClickHouse/ClickHouse/pull/19443) ([tavplubix](https://github.com/tavplubix)).
* Corrige o possível erro `Extremes transform was already added to pipeline`. Corrige [#14100](https://github.com/ClickHouse/ClickHouse/issues/14100). [#19430](https://github.com/ClickHouse/ClickHouse/pull/19430) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige o valor padrão em tipos de join cujo valor padrão é diferente de zero (por exemplo, alguns Enums). Fecha [#18197](https://github.com/ClickHouse/ClickHouse/issues/18197). [#19360](https://github.com/ClickHouse/ClickHouse/pull/19360) ([vdimir](https://github.com/vdimir)).
* Não marcar como corrompido o arquivo de envio distribuído ao encontrar EOF. [#19290](https://github.com/ClickHouse/ClickHouse/pull/19290) ([Azat Khuzhin](https://github.com/azat)).
* Correção do vazamento do descritor de arquivo (fd) do pipe para `async_socket_for_remote`. [#19153](https://github.com/ClickHouse/ClickHouse/pull/19153) ([Azat Khuzhin](https://github.com/azat)).
* Corrige a leitura infinita de um arquivo no formato `ORC` (introduzido em [#10580](https://github.com/ClickHouse/ClickHouse/issues/10580)). Corrige [#19095](https://github.com/ClickHouse/ClickHouse/issues/19095). [#19134](https://github.com/ClickHouse/ClickHouse/pull/19134) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige um problema no escritor de dados do MergeTree que pode resultar em marcas com tamanho maior que a granularidade fixa. Corrige [#18913](https://github.com/ClickHouse/ClickHouse/issues/18913). [#19123](https://github.com/ClickHouse/ClickHouse/pull/19123) ([alesapin](https://github.com/alesapin)).
* Corrige um bug na inicialização quando o ClickHouse não conseguia ler o codec de compressão de `LowCardinality(Nullable(...))` e lançava a exceção `Attempt to read after EOF`. Corrige [#18340](https://github.com/ClickHouse/ClickHouse/issues/18340). [#19101](https://github.com/ClickHouse/ClickHouse/pull/19101) ([alesapin](https://github.com/alesapin)).
* Simplifica a implementação de `tupleHammingDistance`. Adiciona suporte a tuplas de qualquer comprimento, desde que tenham o mesmo tamanho. Corrige [#19029](https://github.com/ClickHouse/ClickHouse/issues/19029). [#19084](https://github.com/ClickHouse/ClickHouse/pull/19084) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Certifique-se de que `groupUniqArray` retorne o tipo correto para um argumento do tipo Enum. Isso fecha [#17875](https://github.com/ClickHouse/ClickHouse/issues/17875). [#19019](https://github.com/ClickHouse/ClickHouse/pull/19019) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige um possível erro `Expected single dictionary argument for function` ao usar a função `ignore` com o argumento `LowCardinality`. Corrige [#14275](https://github.com/ClickHouse/ClickHouse/issues/14275). [#19016](https://github.com/ClickHouse/ClickHouse/pull/19016) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigida a inserção da coluna `LowCardinality` em uma tabela com a engine `TinyLog`. Corrige [#18629](https://github.com/ClickHouse/ClickHouse/issues/18629). [#19010](https://github.com/ClickHouse/ClickHouse/pull/19010) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige um pequeno problema em JOIN: Join tenta materializar colunas constantes, mas, em outras partes, nosso código espera por elas. [#18982](https://github.com/ClickHouse/ClickHouse/pull/18982) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Desative `optimize_move_functions_out_of_any`, porque a otimização nem sempre está correta. Isso corrige [#18051](https://github.com/ClickHouse/ClickHouse/issues/18051). Isso corrige [#18973](https://github.com/ClickHouse/ClickHouse/issues/18973). [#18981](https://github.com/ClickHouse/ClickHouse/pull/18981) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige uma possível exceção `QueryPipeline stream: different number of columns` causada pela mesclagem das etapas `Expression` do plano de consulta. Corrige [#18190](https://github.com/ClickHouse/ClickHouse/issues/18190). [#18980](https://github.com/ClickHouse/ClickHouse/pull/18980) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigido um deadlock muito raro durante o desligamento. [#18977](https://github.com/ClickHouse/ClickHouse/pull/18977) ([tavplubix](https://github.com/tavplubix)).
* Corrigidas falhas raras quando o servidor ficava sem memória. [#18976](https://github.com/ClickHouse/ClickHouse/pull/18976) ([tavplubix](https://github.com/tavplubix)).
* Corrige o comportamento incorreto quando a consulta `ALTER TABLE ... DROP PART 'part_name'` remove todos os blocos de desduplicação de toda a partição. Corrige [#18874](https://github.com/ClickHouse/ClickHouse/issues/18874). [#18969](https://github.com/ClickHouse/ClickHouse/pull/18969) ([alesapin](https://github.com/alesapin)).
* Corrigido o problema [#18894](https://github.com/ClickHouse/ClickHouse/issues/18894): adicionada uma verificação para evitar uma exceção quando um alias longo de coluna (no estilo 'table.column', geralmente gerado automaticamente por ferramentas de BI como o Looker) é igual a um nome de tabela longo. [#18968](https://github.com/ClickHouse/ClickHouse/pull/18968) ([Daniel Qin](https://github.com/mathfool)).
* Corrigido o erro `Task was not found in task queue` (possível apenas para consultas remotas, com `async_socket_for_remote = 1`). [#18964](https://github.com/ClickHouse/ClickHouse/pull/18964) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige um bug quando uma mutação contendo texto escapado (como `ALTER ... UPDATE e = CAST('foo', 'Enum8(\'foo\' = 1')`) era serializada incorretamente. Corrige [#18878](https://github.com/ClickHouse/ClickHouse/issues/18878). [#18944](https://github.com/ClickHouse/ClickHouse/pull/18944) ([alesapin](https://github.com/alesapin)).
* ATTACH PARTITION redefinirá as mutações. [#18804](https://github.com/ClickHouse/ClickHouse/issues/18804). [#18935](https://github.com/ClickHouse/ClickHouse/pull/18935) ([fastio](https://github.com/fastio)).
* Corrige o problema em `bitmapOrCardinality` que pode levar à desreferenciação de um nullptr. Isso encerra [#18911](https://github.com/ClickHouse/ClickHouse/issues/18911). [#18912](https://github.com/ClickHouse/ClickHouse/pull/18912) ([sundyli](https://github.com/sundy-li)).
* Corrigido o erro `Attempt to read after eof` ao tentar fazer `CAST` de `NULL` de `Nullable(String)` para `Nullable(Decimal(P, S))`. Agora, a função `CAST` retorna `NULL` quando não consegue interpretar um valor decimal a partir de uma string anulável. Corrige [#7690](https://github.com/ClickHouse/ClickHouse/issues/7690). [#18718](https://github.com/ClickHouse/ClickHouse/pull/18718) ([Winter Zhang](https://github.com/zhang2014)).
* Corrige problema de conversão de tipo de dados no engine MySQL. [#18124](https://github.com/ClickHouse/ClickHouse/pull/18124) ([bo zeng](https://github.com/mis98zb)).
* Corrige a exceção de abort do clickhouse-client ao executar somente `select`. [#19790](https://github.com/ClickHouse/ClickHouse/pull/19790) ([taiyang-li](https://github.com/taiyang-li)).

<div id="buildtestingpackaging-improvement-8">
  #### Melhoria de Build/Testes/Empacotamento
</div>

* Execução do [SQLancer](https://twitter.com/RiggerManuel/status/1352345625480884228) (fuzzer lógico de SQL) no CI. [#19006](https://github.com/ClickHouse/ClickHouse/pull/19006) ([Ilya Yatsishin](https://github.com/qoega)).
* O Query Fuzzer agora aplica fuzzing mais extensivo aos testes adicionados recentemente. Isso fecha [#18916](https://github.com/ClickHouse/ClickHouse/issues/18916). [#19185](https://github.com/ClickHouse/ClickHouse/pull/19185) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Integração com [Big List of Naughty Strings](https://github.com/minimaxir/big-list-of-naughty-strings/) para melhorar o fuzzing. [#19480](https://github.com/ClickHouse/ClickHouse/pull/19480) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Adicionada a execução de testes de integração com MSan. [#18974](https://github.com/ClickHouse/ClickHouse/pull/18974) ([alesapin](https://github.com/alesapin)).
* Corrigidos erros do MemorySanitizer em cyrus-sasl e musl. [#19821](https://github.com/ClickHouse/ClickHouse/pull/19821) ([Ilya Yatsishin](https://github.com/qoega)).
* A verificação de argumentos insuficientes na função `positionCaseInsensitiveUTF8` acionava o AddressSanitizer. [#19720](https://github.com/ClickHouse/ClickHouse/pull/19720) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Removido `--project-directory` do docker-compose no teste de integração. Corrigida a formatação dos logs do contêiner Docker. [#19706](https://github.com/ClickHouse/ClickHouse/pull/19706) ([Ilya Yatsishin](https://github.com/qoega)).
* A geração de macros.xml para testes de integração ficou mais fácil. Não há mais logging excessivo do dicttoxml. O projeto dicttoxml está inativo há mais de 5 anos. [#19697](https://github.com/ClickHouse/ClickHouse/pull/19697) ([Ilya Yatsishin](https://github.com/qoega)).
* Passou a ser possível habilitar ou desabilitar explicitamente o watchdog pela variável de ambiente `CLICKHOUSE_WATCHDOG_ENABLE`. Por padrão, ele fica habilitado se o servidor não estiver conectado a um terminal. [#19522](https://github.com/ClickHouse/ClickHouse/pull/19522) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Agora é possível compilar o ClickHouse com suporte a Kafka em arm64. [#19369](https://github.com/ClickHouse/ClickHouse/pull/19369) ([filimonov](https://github.com/filimonov)).
* Agora é possível compilar o librdkafka sem SSL. [#19337](https://github.com/ClickHouse/ClickHouse/pull/19337) ([filimonov](https://github.com/filimonov)).
* Restaurada a entrada do Kafka nas builds do FreeBSD. [#18924](https://github.com/ClickHouse/ClickHouse/pull/18924) ([Alexandre Snarskii](https://github.com/snar)).
* Corrigida uma possível desreferenciação de ponteiro nulo na table function `VALUES`. [#19357](https://github.com/ClickHouse/ClickHouse/pull/19357) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Evitados relatórios do UBSan na função `arrayElement`, em `substring` e em `arraySum`. Corrige [#19305](https://github.com/ClickHouse/ClickHouse/issues/19305). Corrige [#19287](https://github.com/ClickHouse/ClickHouse/issues/19287). Isso fecha [#19336](https://github.com/ClickHouse/ClickHouse/issues/19336). [#19347](https://github.com/ClickHouse/ClickHouse/pull/19347) ([alexey-milovidov](https://github.com/alexey-milovidov)).

<div id="clickhouse-release-211">
  ## Versão do ClickHouse 21.1
</div>

<div id="clickhouse-release-v211332-stable-2021-02-03">
  ### Versão do ClickHouse v21.1.3.32-stable, 2021-02-03
</div>

<div id="bug-fix-7">
  #### correção de bug
</div>

* Correção de falha no índice BloomFilter. Corrige [#19757](https://github.com/ClickHouse/ClickHouse/issues/19757). [#19884](https://github.com/ClickHouse/ClickHouse/pull/19884) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige um travamento ao fazer pushdown de predicados em subconsulta UNION DISTINCT. Isso corrige [#19855](https://github.com/ClickHouse/ClickHouse/issues/19855). [#19861](https://github.com/ClickHouse/ClickHouse/pull/19861) ([Amos Bird](https://github.com/amosbird)).
* Corrigida a filtragem para UInt8 maior que 127. [#19799](https://github.com/ClickHouse/ClickHouse/pull/19799) ([Anton Popov](https://github.com/CurtizJ)).
* Em versões anteriores, argumentos incomuns para a função arrayEnumerateUniq podem provocar falha ou loop infinito. Isso resolve [#19787](https://github.com/ClickHouse/ClickHouse/issues/19787). [#19788](https://github.com/ClickHouse/ClickHouse/pull/19788) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrigido estouro de pilha ao usar a comparação exata de tipo aritmético com tipo String. [#19773](https://github.com/ClickHouse/ClickHouse/pull/19773) ([tavplubix](https://github.com/tavplubix)).
* Corrige uma falha quando o nome de uma coluna aninhada era usado em `WHERE` ou `PREWHERE`. Corrige [#19755](https://github.com/ClickHouse/ClickHouse/issues/19755). [#19763](https://github.com/ClickHouse/ClickHouse/pull/19763) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige uma falha de segmentação na função `bitmapAndnot`. Corrige [#19668](https://github.com/ClickHouse/ClickHouse/issues/19668). [#19713](https://github.com/ClickHouse/ClickHouse/pull/19713) ([Maksim Kita](https://github.com/kitaisreal)).
* Algumas funções com inteiros grandes podem causar segfault. Inteiros grandes são um recurso experimental. Isso fecha [#19667](https://github.com/ClickHouse/ClickHouse/issues/19667). [#19672](https://github.com/ClickHouse/ClickHouse/pull/19672) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige o resultado incorreto da função `neighbor` para o argumento `LowCardinality`. Corrige [#10333](https://github.com/ClickHouse/ClickHouse/issues/10333). [#19617](https://github.com/ClickHouse/ClickHouse/pull/19617) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigido o uso do CompressedWriteBuffer após a liberação de memória em Connection, depois da desconexão. [#19599](https://github.com/ClickHouse/ClickHouse/pull/19599) ([Azat Khuzhin](https://github.com/azat)).
* A consulta `DROP/DETACH TABLE table ON CLUSTER cluster SYNC` podia travar; isso foi corrigido. Corrige [#19568](https://github.com/ClickHouse/ClickHouse/issues/19568). [#19572](https://github.com/ClickHouse/ClickHouse/pull/19572) ([tavplubix](https://github.com/tavplubix)).
* Correção da expressão id em consultas CREATE DICTIONARY. [#19571](https://github.com/ClickHouse/ClickHouse/pull/19571) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrigido SIGSEGV ao usar merge\_tree\_min\_rows\_for\_concurrent\_read/merge\_tree\_min\_bytes\_for\_concurrent\_read=0/UINT64\_MAX. [#19528](https://github.com/ClickHouse/ClickHouse/pull/19528) ([Azat Khuzhin](https://github.com/azat)).
* Era possível ocorrer um estouro de buffer (na leitura de memória) se a função `addMonth` fosse chamada com argumentos especialmente elaborados. Isso corrige [#19441](https://github.com/ClickHouse/ClickHouse/issues/19441). Isso corrige [#19413](https://github.com/ClickHouse/ClickHouse/issues/19413). [#19472](https://github.com/ClickHouse/ClickHouse/pull/19472) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Era possível fazer a leitura de memória não inicializada nas funções encrypt/decrypt se uma string vazia fosse passada como IV. Isso corrige [#19391](https://github.com/ClickHouse/ClickHouse/issues/19391). [#19397](https://github.com/ClickHouse/ClickHouse/pull/19397) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrigido um possível estouro de buffer na biblioteca Uber H3. Veja [https://github.com/uber/h3/issues/392](https://github.com/uber/h3/issues/392). Isso fecha [#19219](https://github.com/ClickHouse/ClickHouse/issues/19219). [#19383](https://github.com/ClickHouse/ClickHouse/pull/19383) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrigida a coluna \_state de system.parts (LOGICAL\_ERROR ao consultar essa coluna, devido à ordem incorreta). [#19346](https://github.com/ClickHouse/ClickHouse/pull/19346) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido um possível resultado incorreto ou segfault na agregação quando a visão materializada e sua tabela de destino têm estruturas diferentes. Corrige [#18063](https://github.com/ClickHouse/ClickHouse/issues/18063). [#19322](https://github.com/ClickHouse/ClickHouse/pull/19322) ([tavplubix](https://github.com/tavplubix)).
* Corrigido o erro `Cannot convert column now64() because it is constant but values of constants are different in source and result`. Continuação de [#7156](https://github.com/ClickHouse/ClickHouse/issues/7156). [#19316](https://github.com/ClickHouse/ClickHouse/pull/19316) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigido bug em que consultas `ALTER` e `DROP` simultâneas podem travar ao processar uma tabela ReplicatedMergeTree. [#19237](https://github.com/ClickHouse/ClickHouse/pull/19237) ([alesapin](https://github.com/alesapin)).
* Corrigido o erro `There is no checkpoint` ao inserir dados pela interface HTTP usando o formato `Template` ou `CustomSeparated`. Corrige [#19021](https://github.com/ClickHouse/ClickHouse/issues/19021). [#19072](https://github.com/ClickHouse/ClickHouse/pull/19072) ([tavplubix](https://github.com/tavplubix)).
* Desabilita o constant folding para subconsultas na etapa de análise, quando o resultado não pode ser calculado. [#18446](https://github.com/ClickHouse/ClickHouse/pull/18446) ([Azat Khuzhin](https://github.com/azat)).
* A mutação pode travar à espera de uma parte inexistente após `MOVE` ou `REPLACE PARTITION` ou, em casos raros, após `DETACH` ou `DROP PARTITION`. Isso foi corrigido. [#15537](https://github.com/ClickHouse/ClickHouse/pull/15537) ([tavplubix](https://github.com/tavplubix)).

<div id="clickhouse-release-v211215-stable-2021-01-18">
  ### Versão do ClickHouse v21.1.2.15-stable 2021-01-18
</div>

<div id="backward-incompatible-change-10">
  #### Mudança incompatível com versões anteriores
</div>

* A configuração `input_format_null_as_default` fica habilitada por padrão. [#17525](https://github.com/ClickHouse/ClickHouse/pull/17525) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Verifique as restrições de configurações para as configurações de perfil no arquivo de configuração. O servidor não iniciará se `users.xml` contiver configurações que não atendam às restrições correspondentes. [#18486](https://github.com/ClickHouse/ClickHouse/pull/18486) ([tavplubix](https://github.com/tavplubix)).
* Restrinja `ALTER MODIFY SETTING` para impedir alterações em configurações de armazenamento que afetam as partes de dados (`write_final_mark` e `enable_mixed_granularity_parts`). [#18306](https://github.com/ClickHouse/ClickHouse/pull/18306) ([Amos Bird](https://github.com/amosbird)).
* Defina `insert_quorum_parallel` como 1 por padrão. É significativamente mais conveniente de usar do que quorum inserts "sequenciais". Mas, se você depende de consistência sequencial, deve voltar a configuração para zero. [#17567](https://github.com/ClickHouse/ClickHouse/pull/17567) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Remova a função `sumburConsistentHash`. Isso encerra [#18120](https://github.com/ClickHouse/ClickHouse/issues/18120). [#18656](https://github.com/ClickHouse/ClickHouse/pull/18656) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* As aggregate functions `timeSeriesGroupSum`, `timeSeriesGroupRateSum` foram removidas porque um amigo meu disse que elas nunca funcionaram. Isso corrige [#16869](https://github.com/ClickHouse/ClickHouse/issues/16869). Se você teve sorte usando essas funções, envie um e-mail para [feedback@clickhouse.com](mailto:feedback@clickhouse.com). [#17423](https://github.com/ClickHouse/ClickHouse/pull/17423) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Proíba `toUnixTimestamp(Date())` (antes, ele apenas retornava a representação UInt16 de Date). [#17376](https://github.com/ClickHouse/ClickHouse/pull/17376) ([Azat Khuzhin](https://github.com/azat)).
* Permita o uso de tipos inteiros estendidos (`Int128`, `Int256`, `UInt256`) nas funções `avg` e `avgWeighted`. Também permita o uso de tipos diferentes (inteiro, decimal, ponto flutuante) para o valor e o peso na função `avgWeighted`. Esta é uma mudança incompatível com versões anteriores: agora, as funções `avg` e `avgWeighted` sempre retornam `Float64` (como documentado). Antes dessa mudança, o tipo de retorno para argumentos `Decimal` também era `Decimal`. [#15419](https://github.com/ClickHouse/ClickHouse/pull/15419) ([Mike](https://github.com/myrrc)).
* A expressão `toUUID(N)` não funciona mais. Substitua por `toUUID('00000000-0000-0000-0000-000000000000')`. Essa mudança foi motivada pelos resultados pouco óbvios de `toUUID(N)` quando N não é zero.
* Certificados SSL com "key usage" incorreto são rejeitados. Em versões anteriores, eles funcionavam. Veja [#19262](https://github.com/ClickHouse/ClickHouse/issues/19262).
* As referências `incl` ao arquivo de substitutions (`/etc/metrika.xml`) foram removidas da configuração padrão (`<remote_servers>`, `<zookeeper>`, `<macros>`, `<compression>`, `<networks>`). Se você estava usando o arquivo de substitutions e dependia dessas referências implícitas, deve adicioná-las novamente de forma manual e explícita, incluindo as seções correspondentes com atributos `incl="..."` antes da atualização. Veja [#18740](https://github.com/ClickHouse/ClickHouse/pull/18740) ([alexey-milovidov](https://github.com/alexey-milovidov)).

<div id="new-feature">
  #### Novo recurso
</div>

* Implementação do protocolo gRPC no ClickHouse. [#15111](https://github.com/ClickHouse/ClickHouse/pull/15111) ([Vitaly Baranov](https://github.com/vitlibar)).
* Permite usar vários clusters do ZooKeeper. [#17070](https://github.com/ClickHouse/ClickHouse/pull/17070) ([fastio](https://github.com/fastio)).
* Implementadas as consultas `REPLACE TABLE` e `CREATE OR REPLACE TABLE`. [#18521](https://github.com/ClickHouse/ClickHouse/pull/18521) ([tavplubix](https://github.com/tavplubix)).
* Implementa `UNION DISTINCT` e trata a cláusula `UNION` sem modificador como `UNION DISTINCT` por padrão. Adiciona a configuração `union_default_mode`, que permite tratá-la como `UNION ALL` ou exigir a especificação explícita do modo. [#16338](https://github.com/ClickHouse/ClickHouse/pull/16338) ([flynn](https://github.com/ucasFL)).
* Adicionada a função `accurateCastOrNull`. Isso encerra [#10290](https://github.com/ClickHouse/ClickHouse/issues/10290). Adicionadas conversões de tipo em expressões `x IN (subquery)`. Isso encerra [#10266](https://github.com/ClickHouse/ClickHouse/issues/10266). [#16724](https://github.com/ClickHouse/ClickHouse/pull/16724) ([Maksim Kita](https://github.com/kitaisreal)).
* O Dicionário IP oferece suporte nativo aos tipos `IPv4` / `IPv6`. [#17571](https://github.com/ClickHouse/ClickHouse/pull/17571) ([vdimir](https://github.com/vdimir)).
* O Dicionário IP oferece suporte à busca por chave. Resolve [#18241](https://github.com/ClickHouse/ClickHouse/issues/18241). [#18480](https://github.com/ClickHouse/ClickHouse/pull/18480) ([vdimir](https://github.com/vdimir)).
* Adiciona suporte à compressão/descompressão `*.zst` para importação e exportação de dados. Isso permite usar `*.zst` na função `file()` e `Content-encoding: zstd` no cliente HTTP. Isso fecha [#16791 ](https://github.com/ClickHouse/ClickHouse/issues/16791). [#17144](https://github.com/ClickHouse/ClickHouse/pull/17144) ([Abi Palagashvili](https://github.com/fibersel)).
* Adicionadas as funções de agregação `mannWitneyUTest`, `studentTTest` e `welchTTest`. `rankCorr` foi ligeiramente refatorada. [#16883](https://github.com/ClickHouse/ClickHouse/pull/16883) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Adicionadas as funções `countMatches`/`countMatchesCaseInsensitive`. [#17459](https://github.com/ClickHouse/ClickHouse/pull/17459) ([Azat Khuzhin](https://github.com/azat)).
* Implementa `countSubstrings()`/`countSubstringsCaseInsensitive()`/`countSubstringsCaseInsensitiveUTF8()` (Conta o número de ocorrências de uma substring). [#17347](https://github.com/ClickHouse/ClickHouse/pull/17347) ([Azat Khuzhin](https://github.com/azat)).
* Adicionadas informações sobre bancos de dados, tabelas e colunas usados no system.query\_log. Adicionados os campos `query_kind` e `normalized_query_hash`. [#17726](https://github.com/ClickHouse/ClickHouse/pull/17726) ([Amos Bird](https://github.com/amosbird)).
* Adiciona a configuração `optimize_on_insert`. Quando habilitada, ela faz a mesma transformação no bloco de dados inserido com INSERT como se um merge tivesse sido feito nesse bloco (por exemplo, Replacing, Collapsing, Aggregating...). Essa configuração vem habilitada por padrão. Isso pode influenciar o comportamento da visão materializada e do MaterializeMySQL (veja a descrição detalhada). Isso fecha [#10683](https://github.com/ClickHouse/ClickHouse/issues/10683). [#16954](https://github.com/ClickHouse/ClickHouse/pull/16954) ([Kruglov Pavel](https://github.com/Avogar)).
* Autenticação Kerberos para HDFS. [#16621](https://github.com/ClickHouse/ClickHouse/pull/16621) ([Ilya Golshtein](https://github.com/ilejn)).
* Suporte à instrução `SHOW SETTINGS` para exibir os parâmetros de system.settings. `SHOW CHANGED SETTINGS` e a cláusula `LIKE/ILIKE` também são suportados. [#18056](https://github.com/ClickHouse/ClickHouse/pull/18056) ([Jianmei Zhang](https://github.com/zhangjmruc)).
* A função `position` agora é compatível com a sintaxe `POSITION(needle IN haystack)` para manter compatibilidade com SQL. Isso fecha [#18701](https://github.com/ClickHouse/ClickHouse/issues/18701). ... [#18779](https://github.com/ClickHouse/ClickHouse/pull/18779) ([Jianmei Zhang](https://github.com/zhangjmruc)).
* Agora há uma nova configuração de armazenamento `max_partitions_to_read` para tabelas da família MergeTree. Ela limita o número máximo de partições que podem ser acessadas em uma consulta. Também foi adicionada a configuração de usuário `force_max_partition_limit` para impor essa restrição. [#18712](https://github.com/ClickHouse/ClickHouse/pull/18712) ([Amos Bird](https://github.com/amosbird)).
* Adicionada a coluna `query_id` a `system.part_log` para partes inseridas. Fecha [#10097](https://github.com/ClickHouse/ClickHouse/issues/10097). [#18644](https://github.com/ClickHouse/ClickHouse/pull/18644) ([flynn](https://github.com/ucasFL)).
* Permite CREATE TABLE AS SELECT com especificação de colunas. Exemplo: `CREATE TABLE t1 (x String) ENGINE = Memory AS SELECT 1;`. [#18060](https://github.com/ClickHouse/ClickHouse/pull/18060) ([Maksim Kita](https://github.com/kitaisreal)).
* Foram adicionadas as funções de agregação `arrayMin`, `arrayMax`, `arrayAvg`. [#18032](https://github.com/ClickHouse/ClickHouse/pull/18032) ([Maksim Kita](https://github.com/kitaisreal)).
* Implementada a consulta `ATTACH TABLE name FROM 'path/to/data/' (col1 Type1, ...`. Ela cria uma nova tabela com a estrutura fornecida e associa à tabela os dados do diretório especificado em `user_files`. [#17903](https://github.com/ClickHouse/ClickHouse/pull/17903) ([tavplubix](https://github.com/tavplubix)).
* Adicionado suporte a mutation no StorageMemory. Isso fecha [#9117](https://github.com/ClickHouse/ClickHouse/issues/9117). [#15127](https://github.com/ClickHouse/ClickHouse/pull/15127) ([flynn](https://github.com/ucasFL)).
* Suporte para a sintaxe `EXISTS DATABASE name`. [#18458](https://github.com/ClickHouse/ClickHouse/pull/18458) ([Du Chuan](https://github.com/spongedu)).
* Suporte às funções integradas `isIPv4String` && `isIPv6String`, como no [MySQL](https://github.com/ClickHouse/ClickHouse/compare/master...spongedu:support_is_ipv4?expand=1). [#18349](https://github.com/ClickHouse/ClickHouse/pull/18349) ([Du Chuan](https://github.com/spongedu)).
* Adiciona uma nova configuração `insert_distributed_one_random_shard = 1` para permitir a inserção em uma tabela distribuída com múltiplos shards sem chave de distribuição. [#18294](https://github.com/ClickHouse/ClickHouse/pull/18294) ([Amos Bird](https://github.com/amosbird)).
* Adiciona as configurações `min_compress_block_size` e `max_compress_block_size` a MergeTreeSettings, que têm prioridade sobre as configurações globais e entram em vigor quando definidas. fecha [13890](https://github.com/ClickHouse/ClickHouse/issues/13890). [#17867](https://github.com/ClickHouse/ClickHouse/pull/17867) ([flynn](https://github.com/ucasFL)).
* Adicionado suporte a bitmaps roaring de 64 bits. [#17858](https://github.com/ClickHouse/ClickHouse/pull/17858) ([Andy Yang](https://github.com/andyyzh)).
* Sintaxe de `OPTIMIZE ... DEDUPLICATE` expandida para permitir uma lista explícita (ou implícita com asterisco/transformadores de coluna) de colunas nas quais verificar duplicatas. ... [#17846](https://github.com/ClickHouse/ClickHouse/pull/17846) ([Vasily Nemkov](https://github.com/Enmk)).
* Adicionadas as funções `toModifiedJulianDay`, `fromModifiedJulianDay`, `toModifiedJulianDayOrNull` e `fromModifiedJulianDayOrNull`. Essas funções convertem entre datas do calendário gregoriano proléptico e números do Dia Juliano Modificado. [#17750](https://github.com/ClickHouse/ClickHouse/pull/17750) ([PHO](https://github.com/depressed-pho)).
* Adicionada a possibilidade de usar uma lista personalizada de TLDs: adicionadas as funções `firstSignificantSubdomainCustom`, `cutToFirstSignificantSubdomainCustom`. [#17748](https://github.com/ClickHouse/ClickHouse/pull/17748) ([Azat Khuzhin](https://github.com/azat)).
* Adiciona suporte ao protocolo `PROXYv1` para encapsular a interface TCP nativa. Permite associar cotas ao endereço IP encaminhado pelo proxy (aplicado ao endereço `PROXYv1` e ao `X-Forwarded-For` da interface HTTP). Isso é útil quando você fornece acesso ao ClickHouse apenas por meio de um proxy confiável (por exemplo, CloudFlare), mas quer contabilizar o uso de recursos dos usuários pelos seus endereços IP originais. Isso corrige [#17268](https://github.com/ClickHouse/ClickHouse/issues/17268). [#17707](https://github.com/ClickHouse/ClickHouse/pull/17707) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Agora, o clickhouse-client permite abrir o `EDITOR` para editar comandos. `Alt-Shift-E`. [#17665](https://github.com/ClickHouse/ClickHouse/pull/17665) ([Amos Bird](https://github.com/amosbird)).
* Adicionada a função `encodeXMLComponent` para escapar caracteres ao inserir uma string em um nó de texto ou atributo XML. [#17659](https://github.com/ClickHouse/ClickHouse/pull/17659) ([nauta](https://github.com/nautaa)).
* Introduz a sintaxe `DETACH TABLE/VIEW ... PERMANENTLY`, de modo que, após a reinicialização, a tabela não volte a aparecer automaticamente (somente mediante solicitação explícita). A tabela ainda pode ser reanexada usando a sintaxe curta ATTACH TABLE. Implementa [#5555](https://github.com/ClickHouse/ClickHouse/issues/5555). Corrige [#13850](https://github.com/ClickHouse/ClickHouse/issues/13850). [#17642](https://github.com/ClickHouse/ClickHouse/pull/17642) ([filimonov](https://github.com/filimonov)).
* Adiciona métricas assíncronas para a quantidade total de linhas, bytes e partes em tabelas MergeTree. Isso corrige [#11714](https://github.com/ClickHouse/ClickHouse/issues/11714). [#17639](https://github.com/ClickHouse/ClickHouse/pull/17639) ([flynn](https://github.com/ucasFL)).
* Adicionadas as configurações `limit` e `offset` para paginação fora do SQL: [#16176](https://github.com/ClickHouse/ClickHouse/issues/16176) Elas são úteis para criar APIs. Essas duas configurações afetarão a consulta SELECT como se tivessem sido adicionadas assim: `select * from (your_original_select_query) t limit xxx offset xxx;`. [#17633](https://github.com/ClickHouse/ClickHouse/pull/17633) ([hexiaoting](https://github.com/hexiaoting)).
* Adiciona um novo combinador de agregação: `-SimpleState` para criar tipos `SimpleAggregateFunction` por meio de consulta. Isso é útil para definir MaterializedView com engine AggregatingMergeTree e também beneficiará as projeções. [#16853](https://github.com/ClickHouse/ClickHouse/pull/16853) ([Amos Bird](https://github.com/amosbird)).
* Adicionado o parâmetro `queries-file` ao `clickhouse-client` e ao `clickhouse-local`. [#15930](https://github.com/ClickHouse/ClickHouse/pull/15930) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionado o parâmetro `query` para `clickhouse-benchmark`. [#17832](https://github.com/ClickHouse/ClickHouse/pull/17832) ([Maksim Kita](https://github.com/kitaisreal)).
* `EXPLAIN AST` agora oferece suporte a consultas além de `SELECT`. [#18136](https://github.com/ClickHouse/ClickHouse/pull/18136) ([taiyang-li](https://github.com/taiyang-li)).

<div id="experimental-feature-6">
  #### Funcionalidade Experimental
</div>

* Adicionadas funções para cálculo de minHash e simHash de n-grams de texto e shingles. Elas se destinam à busca de semiduplicatas. Também foram adicionadas as funções `bitHammingDistance` e `tupleHammingDistance`. [#7649](https://github.com/ClickHouse/ClickHouse/pull/7649) ([flynn](https://github.com/ucasFL)).
* Adicionado o novo tipo de dado `Map`. Veja [#1841](https://github.com/ClickHouse/ClickHouse/issues/1841). A primeira versão do `Map` oferece suporte apenas a `String` como tipo de chave e de valor. [#15806](https://github.com/ClickHouse/ClickHouse/pull/15806) ([hexiaoting](https://github.com/hexiaoting)).
* Implementado um parser SQL alternativo, baseado no runtime do ANTLR4 e gerado a partir da gramática EBNF. [#11298](https://github.com/ClickHouse/ClickHouse/pull/11298) ([Ivan](https://github.com/abyss7)).

<div id="performance-improvement">
  #### Melhoria de desempenho
</div>

* Nova implementação de Dicionário IP com menor consumo de memória, desempenho aprimorado em alguns casos e bugs corrigidos. [#16804](https://github.com/ClickHouse/ClickHouse/pull/16804) ([vdimir](https://github.com/vdimir)).
* Formatação paralela para exportação de dados. [#11617](https://github.com/ClickHouse/ClickHouse/pull/11617) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Integração com LDAP: Adicionado o parâmetro `verification_cooldown` à configuração de conexão do servidor LDAP para permitir o armazenamento em cache de tentativas de "bind" bem-sucedidas por um período configurável. [#15988](https://github.com/ClickHouse/ClickHouse/pull/15988) ([Denis Glazachev](https://github.com/traceon)).
* Adicionada a opção `--no-system-table` ao `clickhouse-local` para executá-lo sem tabelas de sistema. Isso evita a inicialização de `DateLUT`, que pode levar um tempo perceptível (dezenas de milissegundos) na inicialização. [#18899](https://github.com/ClickHouse/ClickHouse/pull/18899) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Substituído `PODArray` por `PODArrayWithStackMemory` em `AggregateFunctionWindowFunnelData` para melhorar o desempenho da função `windowFunnel`. [#18817](https://github.com/ClickHouse/ClickHouse/pull/18817) ([flynn](https://github.com/ucasFL)).
* Não enviar blocos vazios para shards em INSERT síncrono na tabela Distributed. Isso encerra [#14571](https://github.com/ClickHouse/ClickHouse/issues/14571). [#18775](https://github.com/ClickHouse/ClickHouse/pull/18775) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Leitura do StorageMemory otimizada. [#18052](https://github.com/ClickHouse/ClickHouse/pull/18052) ([Maksim Kita](https://github.com/kitaisreal)).
* Uso do algoritmo Dragonbox para conversão de float para string em vez de ryu. Isso melhora significativamente o desempenho da conversão de float para string. [#17831](https://github.com/ClickHouse/ClickHouse/pull/17831) ([Maksim Kita](https://github.com/kitaisreal)).
* Implementação de `IPv6CIDRToRange` acelerada. [#17569](https://github.com/ClickHouse/ClickHouse/pull/17569) ([vdimir](https://github.com/vdimir)).
* Adicionada a configuração `remerge_sort_lowered_memory_bytes_ratio` (se o uso de memória após o remerge não for reduzido nessa proporção, o remerge será desativado). [#17539](https://github.com/ClickHouse/ClickHouse/pull/17539) ([Azat Khuzhin](https://github.com/azat)).
* Melhora no desempenho do AggregatingMergeTree com SimpleAggregateFunction(String) na PK. [#17109](https://github.com/ClickHouse/ClickHouse/pull/17109) ([Azat Khuzhin](https://github.com/azat)).
* Agora, o combinador `-If` foi desvirtualizado, e `count` foi vetorizado corretamente. Isso se refere a [este PR](https://github.com/ClickHouse/ClickHouse/pull/17041). [#17043](https://github.com/ClickHouse/ClickHouse/pull/17043) ([Amos Bird](https://github.com/amosbird)).
* Corrige o desempenho da leitura de tabelas `Merge` que abrangem um grande número de tabelas `MergeTree`. Corrige [#7748](https://github.com/ClickHouse/ClickHouse/issues/7748). [#16988](https://github.com/ClickHouse/ClickHouse/pull/16988) ([Anton Popov](https://github.com/CurtizJ)).
* Melhoria no desempenho da função `repeat`. [#16937](https://github.com/ClickHouse/ClickHouse/pull/16937) ([satanson](https://github.com/satanson)).
* Pequena melhora no desempenho da análise de números de ponto flutuante. [#16809](https://github.com/ClickHouse/ClickHouse/pull/16809) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionada a possibilidade de ignorar partições já mescladas para `OPTIMIZE TABLE ... FINAL`. [#15939](https://github.com/ClickHouse/ClickHouse/pull/15939) ([Kruglov Pavel](https://github.com/Avogar)).
* Integração com [fast\_float from Daniel Lemire](https://github.com/lemire/fast_float) para fazer o parse de números de ponto flutuante. [#16787](https://github.com/ClickHouse/ClickHouse/pull/16787) ([Maksim Kita](https://github.com/kitaisreal)). Não está habilitado, porque o desempenho ainda é inferior ao do parser aproximado de `float` no ClickHouse.
* Corrigido max\_distributed\_connections (afeta `prefer_localhost_replica = 1` e `max_threads != max_distributed_connections`). [#17848](https://github.com/ClickHouse/ClickHouse/pull/17848) ([Azat Khuzhin](https://github.com/azat)).
* Escolha adaptativa entre upload de uma única parte e upload em múltiplas partes ao enviar dados para o S3. O upload de uma única parte é controlado por uma nova configuração `max_single_part_upload_size`. [#17934](https://github.com/ClickHouse/ClickHouse/pull/17934) ([Pavel Kovalenko](https://github.com/Jokser)).
* Suporte a tarefas assíncronas no `PipelineExecutor`. Suporte inicial a sockets assíncronos para consultas remotas. [#17868](https://github.com/ClickHouse/ClickHouse/pull/17868) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Permite usar a otimização `optimize_move_to_prewhere` com partes compactas quando os tamanhos das colunas são desconhecidos. [#17330](https://github.com/ClickHouse/ClickHouse/pull/17330) ([Anton Popov](https://github.com/CurtizJ)).

<div id="improvement">
  #### Melhoria
</div>

* Evita deadlock ao executar INSERT SELECT na própria tabela quando ela usa os motores de tabela `TinyLog` ou `Log`. Isso fecha [#6802](https://github.com/ClickHouse/ClickHouse/issues/6802). Isso fecha [#18691](https://github.com/ClickHouse/ClickHouse/issues/18691). Isso fecha [#16812](https://github.com/ClickHouse/ClickHouse/issues/16812). Isso fecha [#14570](https://github.com/ClickHouse/ClickHouse/issues/14570). [#15260](https://github.com/ClickHouse/ClickHouse/pull/15260) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Suporte à sintaxe `SHOW CREATE VIEW name`, como no [MySQL](https://dev.mysql.com/doc/refman/5.7/en/show-create-view.html). [#18095](https://github.com/ClickHouse/ClickHouse/pull/18095) ([Du Chuan](https://github.com/spongedu)).
* Todas as consultas do tipo `Decimal * Float` ou vice-versa são permitidas, incluindo as agregadas (por exemplo, `SELECT sum(decimal_field * 1.1)` ou `SELECT dec_col * float_col`); o tipo do resultado é Float32 ou Float64. [#18145](https://github.com/ClickHouse/ClickHouse/pull/18145) ([Mike](https://github.com/myrrc)).
* Interface Web mínima aprimorada: adicionar histórico; adicionar suporte a compartilhamento; evitar condição de corrida entre diferentes solicitações; adicionar indicadores de solicitação em andamento e de prontidão; adicionar favicon; detectar Ctrl+Enter se a área de texto não estiver em foco. [#17293](https://github.com/ClickHouse/ClickHouse/pull/17293) [#17770](https://github.com/ClickHouse/ClickHouse/pull/17770) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* clickhouse-server não enviava a solicitação `close` ao servidor ZooKeeper. [#16837](https://github.com/ClickHouse/ClickHouse/pull/16837) ([alesapin](https://github.com/alesapin)).
* Evita o encerramento anormal do servidor em caso de limites de memória muito baixos (`max_memory_usage = 1` / `max_untracked_memory = 1`). [#17453](https://github.com/ClickHouse/ClickHouse/pull/17453) ([Azat Khuzhin](https://github.com/azat)).
* Corrige o resultado não determinístico da função `windowFunnel` no caso de eventos diferentes com o mesmo timestamp. [#18884](https://github.com/ClickHouse/ClickHouse/pull/18884) ([Fuwang Hu](https://github.com/fuwhu)).
* Docker: Defina explicitamente o uid / gid do usuário e do grupo clickhouse com os valores fixos (101) nas imagens Docker do clickhouse-server. [#19096](https://github.com/ClickHouse/ClickHouse/pull/19096) ([filimonov](https://github.com/filimonov)).
* INSERTs assíncronos em tabelas `Distributed`: duas novas configurações (por analogia com a família MergeTree) foram adicionadas: - `fsync_after_insert` - Executa fsync a cada inserção. Isso reduz o desempenho das inserções. - `fsync_directories` - Executa fsync no diretório temporário (usado apenas para INSERTs assíncronos) após todas as operações (gravações, renomeações etc.). [#18864](https://github.com/ClickHouse/ClickHouse/pull/18864) ([Azat Khuzhin](https://github.com/azat)).
* O comando `SYSTEM KILL` passou a funcionar no Docker. Isso resolve [#18847](https://github.com/ClickHouse/ClickHouse/issues/18847). [#18848](https://github.com/ClickHouse/ClickHouse/pull/18848) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Expande macros no caminho do zk ao executar `FETCH PARTITION`. [#18839](https://github.com/ClickHouse/ClickHouse/pull/18839) ([fastio](https://github.com/fastio)).
* Aplique `ALTER TABLE <replicated_table> ON CLUSTER MODIFY SETTING ...` a todas as réplicas, porque esses comandos `ALTER` não são replicados. [#18789](https://github.com/ClickHouse/ClickHouse/pull/18789) ([Amos Bird](https://github.com/amosbird)).
* Permitir que o transformador de coluna `EXCEPT` aceite uma string como padrão de expressão regular. Isso resolve [#18685](https://github.com/ClickHouse/ClickHouse/issues/18685) . [#18699](https://github.com/ClickHouse/ClickHouse/pull/18699) ([Amos Bird](https://github.com/amosbird)).
* Corrigido o `SimpleAggregateFunction` no `SummingMergeTree`. Agora, ele funciona como `AggregateFunction`. Em versões anteriores, os valores eram somados independentemente da função de agregação. Isso corrige [#18564](https://github.com/ClickHouse/ClickHouse/issues/18564) . [#8052](https://github.com/ClickHouse/ClickHouse/issues/8052). [#18637](https://github.com/ClickHouse/ClickHouse/pull/18637) ([Amos Bird](https://github.com/amosbird)). Outra correção no uso de `SimpleAggregateFunction` no `SummingMergeTree`. Isso corrige [#18676](https://github.com/ClickHouse/ClickHouse/issues/18676) . [#18677](https://github.com/ClickHouse/ClickHouse/pull/18677) ([Amos Bird](https://github.com/amosbird)).
* Corrigido erro de asserção no allocator no caso em que o último argumento da função bar é NaN. Agora uma exceção simples do ClickHouse é lançada. Isso corrige [#17876](https://github.com/ClickHouse/ClickHouse/issues/17876). [#18520](https://github.com/ClickHouse/ClickHouse/pull/18520) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrigido um problema de usabilidade: falta de quebra de linha após a mensagem de exceção em algumas ferramentas. [#18444](https://github.com/ClickHouse/ClickHouse/pull/18444) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Adicionada a capacidade de modificar o tipo das colunas da chave primária e da chave de partição de `LowCardinality(Type)` para `Type` e vice-versa. Também foi adicionada a capacidade de modificar o tipo da coluna da chave primária de `EnumX ` para `IntX`. Corrige [#5604](https://github.com/ClickHouse/ClickHouse/issues/5604). [#18362](https://github.com/ClickHouse/ClickHouse/pull/18362) ([alesapin](https://github.com/alesapin)).
* Implementado o acesso a campos de `untuple`. [#18133](https://github.com/ClickHouse/ClickHouse/issues/18133). [#18309](https://github.com/ClickHouse/ClickHouse/pull/18309) ([hexiaoting](https://github.com/hexiaoting)).
* Permite fazer o parse de campos Array de CSV quando ele é representado como uma String contendo um array serializado como CSV aninhado. Exemplo: `"[""Hello"", ""world"", ""42"""" TV""]"` será interpretado como `['Hello', 'world', '42" TV']`. Permite fazer o parse de array em CSV em uma string sem chaves delimitadoras. Exemplo: `"'Hello', 'world', '42"" TV'"` será interpretado como `['Hello', 'world', '42" TV']`. [#18271](https://github.com/ClickHouse/ClickHouse/pull/18271) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Melhorado o cálculo adaptativo de granularidade para partes wide da MergeTree. [#18223](https://github.com/ClickHouse/ClickHouse/pull/18223) ([alesapin](https://github.com/alesapin)).
* Agora, o `clickhouse install` pode funcionar no Mac. O problema era que não existe `procfs` nessa plataforma. [#18201](https://github.com/ClickHouse/ClickHouse/pull/18201) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Melhores dicas sobre a sintaxe da consulta `SHOW ...`. [#18183](https://github.com/ClickHouse/ClickHouse/pull/18183) ([Du Chuan](https://github.com/spongedu)).
* Suporte a agregações de Array `arrayMin`, `arrayMax`, `arraySum`, `arrayAvg` para `Int128`, `Int256`, `UInt256`. [#18147](https://github.com/ClickHouse/ClickHouse/pull/18147) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionado `disk` às configurações de armazenamento de Set e Join. [#18112](https://github.com/ClickHouse/ClickHouse/pull/18112) ([Grigory Pervakov](https://github.com/GrigoryPervakov)).
* Controle de acesso: agora, a função de tabela `merge()` exige que o usuário atual tenha o privilégio `SELECT` em cada tabela da qual obtém dados. Este PR corrige [#16964](https://github.com/ClickHouse/ClickHouse/issues/16964). [#18104](https://github.com/ClickHouse/ClickHouse/pull/18104) [#17983](https://github.com/ClickHouse/ClickHouse/pull/17983) ([Vitaly Baranov](https://github.com/vitlibar)).
* As tabelas temporárias agora ficam visíveis nas tabelas do sistema `system.tables` e `system.columns` apenas na sessão em que foram criadas. O banco de dados interno `_temporary_and_external_tables` agora fica oculto nessas tabelas do sistema; em vez disso, as tabelas temporárias são exibidas como tabelas com banco de dados vazio e com a flag `is_temporary` definida. [#18014](https://github.com/ClickHouse/ClickHouse/pull/18014) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrigido o problema de renderização do clickhouse-client quando o tamanho da janela do terminal é alterado. [#18009](https://github.com/ClickHouse/ClickHouse/pull/18009) ([Amos Bird](https://github.com/amosbird)).
* Reduz a verbosidade do log dos eventos quando o cliente fecha a conexão, de Warning para Information. [#18005](https://github.com/ClickHouse/ClickHouse/pull/18005) ([filimonov](https://github.com/filimonov)).
* Remoção forçada de arquivos de metadados vazios ou inválidos do sistema de arquivos no DiskS3. S3 é um recurso experimental. [#17935](https://github.com/ClickHouse/ClickHouse/pull/17935) ([Pavel Kovalenko](https://github.com/Jokser)).
* Controle de acesso: `allow_introspection_functions=0` proíbe o uso de funções de introspecção, mas não impede mais a concessão de privilégios para elas (quem receber o privilégio precisará definir `allow_introspection_functions=1` para si mesmo a fim de poder usá-lo). Da mesma forma, `allow_ddl=0` proíbe o uso de comandos DDL, mas não impede mais a concessão de privilégios para eles. [#17908](https://github.com/ClickHouse/ClickHouse/pull/17908) ([Vitaly Baranov](https://github.com/vitlibar)).
* Melhoria de usabilidade: sugestões de nomes de colunas. [#17112](https://github.com/ClickHouse/ClickHouse/issues/17112). [#17857](https://github.com/ClickHouse/ClickHouse/pull/17857) ([fastio](https://github.com/fastio)).
* Adicionadas informações de diagnóstico quando duas tabelas Merge tentam ler os dados uma da outra. [#17854](https://github.com/ClickHouse/ClickHouse/pull/17854) ([徐炘](https://github.com/weeds085490)).
* Permite substituir o valor de timeout na execução de scripts usando a imagem Docker do ClickHouse. [#17818](https://github.com/ClickHouse/ClickHouse/pull/17818) ([Guillaume Tassery](https://github.com/YiuRULE)).
* Verificação da gramática da definição do engine das tabelas de log do sistema para evitar alguns erros de configuração. Observe que essa verificação gramatical não é semântica, o que significa que erros como colunas inexistentes / funções em expressões não serão detectados até que a tabela seja criada. [#17739](https://github.com/ClickHouse/ClickHouse/pull/17739) ([Du Chuan](https://github.com/spongedu)).
* Removido o lançamento de exceção na inicialização da tabela `RabbitMQ` caso não houvesse conexão (a reconexão será feita em segundo plano). [#17709](https://github.com/ClickHouse/ClickHouse/pull/17709) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Não ignore os limites de memória do servidor durante o flush do Buffer. [#17646](https://github.com/ClickHouse/ClickHouse/pull/17646) ([Azat Khuzhin](https://github.com/azat)).
* Alterado para a versão corrigida do RocksDB (do ClickHouse-Extras) para corrigir o erro de use-after-free. [#17643](https://github.com/ClickHouse/ClickHouse/pull/17643) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Adicionado um offset à mensagem de exceção para o parsing paralelo. Isso corrige [#17457](https://github.com/ClickHouse/ClickHouse/issues/17457). [#17641](https://github.com/ClickHouse/ClickHouse/pull/17641) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Não lançar o erro "Too many parts" no meio da consulta INSERT. [#17566](https://github.com/ClickHouse/ClickHouse/pull/17566) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Permite o uso de parâmetros de consulta na instrução UPDATE da consulta ALTER. Corrige [#10976](https://github.com/ClickHouse/ClickHouse/issues/10976). [#17563](https://github.com/ClickHouse/ClickHouse/pull/17563) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Ofuscador de consultas: evitar o uso de algumas palavras-chave de SQL como nomes de identificadores. [#17526](https://github.com/ClickHouse/ClickHouse/pull/17526) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Exporta o registro máximo atual de DDL executado pelo DDLWorker por meio da métrica do servidor. Isso é útil para verificar se o DDLWorker travou em algum ponto. [#17464](https://github.com/ClickHouse/ClickHouse/pull/17464) ([Amos Bird](https://github.com/amosbird)).
* Exporte métricas assíncronas de todas as threads atuais de todos os servidores. Isso é útil para identificar problemas como [este](https://github.com/ClickHouse-Extras/poco/pull/28). [#17463](https://github.com/ClickHouse/ClickHouse/pull/17463) ([Amos Bird](https://github.com/amosbird)).
* Inclui colunas dinâmicas, como MATERIALIZED / ALIAS, em consultas com curinga quando as configurações `asterisk_include_materialized_columns` e `asterisk_include_alias_columns` estão ativadas. [#17462](https://github.com/ClickHouse/ClickHouse/pull/17462) ([Ken Chen](https://github.com/chenziliang)).
* Permite especificar [TTL](/docs/pt-BR/reference/engines/table-engines/mergetree-family/mergetree#mergetree-table-ttl) para remover registros antigos das [tabelas de log do sistema](/docs/pt-BR/reference/system-tables/index), usando o atributo `<ttl>` em `config.xml`. [#17438](https://github.com/ClickHouse/ClickHouse/pull/17438) ([Du Chuan](https://github.com/spongedu)).
* Agora, as consultas que chegam ao servidor por meio dos protocolos MySQL e PostgreSQL têm tipos de interface distintos (que podem ser vistos na coluna `interface` da tabela `system.query_log`): `4` para MySQL e `5` para PostgreSQL, em vez do `1`, usado anteriormente e que agora é usado apenas para o protocolo nativo. [#17437](https://github.com/ClickHouse/ClickHouse/pull/17437) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrigido o parsing da cláusula SETTINGS na consulta `INSERT ... SELECT ... SETTINGS`. [#17414](https://github.com/ClickHouse/ClickHouse/pull/17414) ([Azat Khuzhin](https://github.com/azat)).
* Contabiliza corretamente o uso de memória no RadixSort. [#17412](https://github.com/ClickHouse/ClickHouse/pull/17412) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Adicionada uma verificação de eof em `receiveHello` no servidor para evitar a exceção `Attempt to read after eof`. [#17365](https://github.com/ClickHouse/ClickHouse/pull/17365) ([Kruglov Pavel](https://github.com/Avogar)).
* Evita um possível stack overflow na conversão de bigint. Inteiros grandes são experimentais. [#17269](https://github.com/ClickHouse/ClickHouse/pull/17269) ([flynn](https://github.com/ucasFL)).
* Agora, os índices `set` funcionarão com `GLOBAL IN`. Isso corrige [#17232](https://github.com/ClickHouse/ClickHouse/issues/17232), [#5576](https://github.com/ClickHouse/ClickHouse/issues/5576). [#17253](https://github.com/ClickHouse/ClickHouse/pull/17253) ([Amos Bird](https://github.com/amosbird)).
* Adicionado limite para redirecionamentos HTTP em solicitações ao armazenamento S3 (`s3_max_redirects`). [#17220](https://github.com/ClickHouse/ClickHouse/pull/17220) ([ianton-ru](https://github.com/ianton-ru)).
* Quando o combinador `-OrNull` é combinado com os combinadores `-If`, `-Merge`, `-MergeState` e `-State`, devemos colocar `-OrNull` antes. [#16935](https://github.com/ClickHouse/ClickHouse/pull/16935) ([flynn](https://github.com/ucasFL)).
* Suporte a proxy HTTP e à configuração de endpoint S3 com HTTPS. [#16861](https://github.com/ClickHouse/ClickHouse/pull/16861) ([Pavel Kovalenko](https://github.com/Jokser)).
* Adicionada autenticação adequada usando variáveis de ambiente, `~/.aws` e `AssumeRole` para o cliente S3. [#16856](https://github.com/ClickHouse/ClickHouse/pull/16856) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Adiciona mais spans do OpenTelemetry. Adiciona um exemplo de como exportar os dados dos spans para o Zipkin. [#16535](https://github.com/ClickHouse/ClickHouse/pull/16535) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* Dicionários de cache: callbacks e locks foram completamente eliminados para sua aquisição. As chaves não são divididas em "não encontradas" e "expiradas", mas armazenadas no mesmo map durante a consulta. [#14958](https://github.com/ClickHouse/ClickHouse/pull/14958) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correção de `fsync_part_directory`/`fsync_after_insert`/`in_memory_parts_insert_sync`, que nunca funcionou (funcionalidade experimental). [#18845](https://github.com/ClickHouse/ClickHouse/pull/18845) ([Azat Khuzhin](https://github.com/azat)).
* Permite usar a engine `Atomic` para o banco de dados aninhado da engine `MaterializeMySQL`. [#14849](https://github.com/ClickHouse/ClickHouse/pull/14849) ([tavplubix](https://github.com/tavplubix)).

<div id="bug-fix-7">
  #### correção de bug
</div>

* Corrige o problema em que o servidor pode deixar de aceitar conexões em casos muito raros. [#17542](https://github.com/ClickHouse/ClickHouse/pull/17542) (Amos Bird, [alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige a análise de índices de funções binárias com argumento constante, o que leva a resultados incorretos de consulta. Isso corrige [#18364](https://github.com/ClickHouse/ClickHouse/issues/18364). [#18373](https://github.com/ClickHouse/ClickHouse/pull/18373) ([Amos Bird](https://github.com/amosbird)).
* Corrige uma possível análise incorreta de índice quando os tipos na comparação do índice são diferentes. Isso corrige [#17122](https://github.com/ClickHouse/ClickHouse/issues/17122). [#17145](https://github.com/ClickHouse/ClickHouse/pull/17145) ([Amos Bird](https://github.com/amosbird)).
* Desabilitada a escrita com AIO durante merges, porque isso pode levar a casos extremamente raros de corrupção de dados nas colunas de chave primária durante o merge. [#18481](https://github.com/ClickHouse/ClickHouse/pull/18481) ([alesapin](https://github.com/alesapin)).
* Restritas as mesclagens de partes wide para partes compact. No caso de mesclagem vertical, isso levava a uma parte de resultado corrompida. [#18381](https://github.com/ClickHouse/ClickHouse/pull/18381) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige um possível resultado incompleto da consulta ao ler de `MergeTree*` em caso de backoff de leitura (mensagem `<Debug> MergeTreeReadPool: Will lower number of threads` nos logs). Introduzido em [#16423](https://github.com/ClickHouse/ClickHouse/issues/16423). Corrige [#18137](https://github.com/ClickHouse/ClickHouse/issues/18137). [#18216](https://github.com/ClickHouse/ClickHouse/pull/18216) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige bug de uso de memória após liberação na biblioteca `rocksdb`. [#18862](https://github.com/ClickHouse/ClickHouse/pull/18862) ([sundyli](https://github.com/sundy-li)).
* Corrige a leitura infinita de arquivo no formato `ORC` (introduzida em [#10580](https://github.com/ClickHouse/ClickHouse/issues/10580)). Corrige [#19095](https://github.com/ClickHouse/ClickHouse/issues/19095). [#19134](https://github.com/ClickHouse/ClickHouse/pull/19134) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige um bug no mecanismo de gravação de dados do MergeTree que pode fazer com que as marcas tenham tamanho maior que o tamanho fixo da granularidade. Corrige [#18913](https://github.com/ClickHouse/ClickHouse/issues/18913). [#19123](https://github.com/ClickHouse/ClickHouse/pull/19123) ([alesapin](https://github.com/alesapin)).
* Corrige um erro de inicialização quando o ClickHouse não conseguia ler o codec de compressão de `LowCardinality(Nullable(...))` e gerava a exceção `Attempt to read after EOF`. Corrige [#18340](https://github.com/ClickHouse/ClickHouse/issues/18340). [#19101](https://github.com/ClickHouse/ClickHouse/pull/19101) ([alesapin](https://github.com/alesapin)).
* Restringe as consultas `MODIFY TTL` para tabelas `MergeTree` criadas com a sintaxe antiga. Antes, a consulta era concluída com sucesso, mas, na prática, não surtia efeito. [#19064](https://github.com/ClickHouse/ClickHouse/pull/19064) ([Anton Popov](https://github.com/CurtizJ)).
* Certifique-se de que `groupUniqArray` retorne o tipo correto para um argumento do tipo Enum. Isso fecha [#17875](https://github.com/ClickHouse/ClickHouse/issues/17875). [#19019](https://github.com/ClickHouse/ClickHouse/pull/19019) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige o possível erro `Expected single dictionary argument for function` ao usar a função `ignore` com o argumento `LowCardinality`. Corrige [#14275](https://github.com/ClickHouse/ClickHouse/issues/14275). [#19016](https://github.com/ClickHouse/ClickHouse/pull/19016) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige a inserção da coluna `LowCardinality` em uma tabela com o mecanismo `TinyLog`. Corrige [#18629](https://github.com/ClickHouse/ClickHouse/issues/18629). [#19010](https://github.com/ClickHouse/ClickHouse/pull/19010) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Join tenta materializar colunas const, mas nosso código as espera em outros lugares. [#18982](https://github.com/ClickHouse/ClickHouse/pull/18982) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Desativado `optimize_move_functions_out_of_any` porque a otimização nem sempre é correta. Isso encerra [#18051](https://github.com/ClickHouse/ClickHouse/issues/18051). Isso encerra [#18973](https://github.com/ClickHouse/ClickHouse/issues/18973). [#18981](https://github.com/ClickHouse/ClickHouse/pull/18981) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige uma possível exceção `QueryPipeline stream: different number of columns` causada pela mesclagem das etapas `Expression` do plano de consulta. Corrige [#18190](https://github.com/ClickHouse/ClickHouse/issues/18190). [#18980](https://github.com/ClickHouse/ClickHouse/pull/18980) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigido um deadlock raríssimo durante o encerramento. [#18977](https://github.com/ClickHouse/ClickHouse/pull/18977) ([tavplubix](https://github.com/tavplubix)).
* Corrige o comportamento incorreto em que a consulta `ALTER TABLE ... DROP PART 'part_name'` remove todos os blocos de desduplicação da partição inteira. Corrige [#18874](https://github.com/ClickHouse/ClickHouse/issues/18874). [#18969](https://github.com/ClickHouse/ClickHouse/pull/18969) ([alesapin](https://github.com/alesapin)).
* ATTACH PARTITION deve redefinir a mutação. [#18804](https://github.com/ClickHouse/ClickHouse/issues/18804). [#18935](https://github.com/ClickHouse/ClickHouse/pull/18935) ([fastio](https://github.com/fastio)).
* Corrige o problema com `bitmapOrCardinality` que pode levar ao desreferenciamento de nullptr. Fecha [#18911](https://github.com/ClickHouse/ClickHouse/issues/18911). [#18912](https://github.com/ClickHouse/ClickHouse/pull/18912) ([sundyli](https://github.com/sundy-li)).
* Corrige um possível travamento durante o encerramento no `clickhouse-local`. Isso corrige [#18891](https://github.com/ClickHouse/ClickHouse/issues/18891). [#18893](https://github.com/ClickHouse/ClickHouse/pull/18893) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* As consultas para bancos de dados externos (MySQL, ODBC, JDBC) eram reescritas incorretamente se houvesse uma expressão no formato `x IN table`. Isso corrige [#9756](https://github.com/ClickHouse/ClickHouse/issues/9756). [#18876](https://github.com/ClickHouse/ClickHouse/pull/18876) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Correção do combinador \*If com função unária e tipos Nullable. [#18806](https://github.com/ClickHouse/ClickHouse/pull/18806) ([Azat Khuzhin](https://github.com/azat)).
* Corrige o problema em que `INSERTs` distribuídos assíncronos podem ser rejeitados pelo servidor se a configuração `network_compression_method` estiver definida globalmente para um valor diferente do padrão. Isso corrige [#18741](https://github.com/ClickHouse/ClickHouse/issues/18741). [#18776](https://github.com/ClickHouse/ClickHouse/pull/18776) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrigido o erro `Attempt to read after eof` ao tentar fazer `CAST` de `NULL` de `Nullable(String)` para `Nullable(Decimal(P, S))`. Agora, a função `CAST` retorna `NULL` quando não consegue interpretar um valor decimal de uma string `Nullable`. Corrige [#7690](https://github.com/ClickHouse/ClickHouse/issues/7690). [#18718](https://github.com/ClickHouse/ClickHouse/pull/18718) ([Winter Zhang](https://github.com/zhang2014)).
* Corrigido um pequeno problema no logging. [#18717](https://github.com/ClickHouse/ClickHouse/pull/18717) ([sundyli](https://github.com/sundy-li)).
* Corrigida a remoção de partes vazias em tabelas `ReplicatedMergeTree` criadas com a sintaxe antiga. Corrige [#18582](https://github.com/ClickHouse/ClickHouse/issues/18582). [#18614](https://github.com/ClickHouse/ClickHouse/pull/18614) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige um bug anterior em casos de overflow de data com valores diferentes. Limita estritamente o valor de Date a "2106-02-07" e converte datas > "2106-02-07" para o valor 0. [#18565](https://github.com/ClickHouse/ClickHouse/pull/18565) ([hexiaoting](https://github.com/hexiaoting)).
* Adiciona suporte ao tipo de dado FixedString para replicação a partir do MySQL. A replicação a partir do MySQL é um recurso experimental. Esta correção resolve [#18450](https://github.com/ClickHouse/ClickHouse/issues/18450) e também [#6556](https://github.com/ClickHouse/ClickHouse/issues/6556). [#18553](https://github.com/ClickHouse/ClickHouse/pull/18553) ([awesomeleo](https://github.com/awesomeleo)).
* Corrige o possível erro `Pipeline stuck` ao usar `ORDER BY` após subconsulta com `RIGHT` ou `FULL` JOIN. [#18550](https://github.com/ClickHouse/ClickHouse/pull/18550) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigido um bug que podia fazer com que consultas `ALTER` ficassem travadas após o encerramento da mutação correspondente. Detectado pelo thread fuzzer. [#18518](https://github.com/ClickHouse/ClickHouse/pull/18518) ([alesapin](https://github.com/alesapin)).
* Suporte adequado a 12AM na função `parseDateTimeBestEffort`. Isso corrige [#18402](https://github.com/ClickHouse/ClickHouse/issues/18402). [#18449](https://github.com/ClickHouse/ClickHouse/pull/18449) ([vladimir-golovchenko](https://github.com/vladimir-golovchenko)).
* Corrigido o erro `value is too short` ao executar funções `toType(...)` (`toDate`, `toUInt32` etc.) com argumento do tipo `Nullable(String)`. Agora, essas funções retornam `NULL` em caso de erro de parsing, em vez de lançar uma exceção. Corrige [#7673](https://github.com/ClickHouse/ClickHouse/issues/7673). [#18445](https://github.com/ClickHouse/ClickHouse/pull/18445) ([tavplubix](https://github.com/tavplubix)).
* Corrigido o comportamento inesperado de `SHOW TABLES`. [#18431](https://github.com/ClickHouse/ClickHouse/pull/18431) ([fastio](https://github.com/fastio)).
* Correção - O combinador SimpleState gera tipos de argumento e de retorno incompatíveis. [#18404](https://github.com/ClickHouse/ClickHouse/pull/18404) ([Amos Bird](https://github.com/amosbird)).
* Corrige uma possível condição de corrida no uso concorrente de tabelas `Set` ou `Join` e em consultas a `system.tables`. [#18385](https://github.com/ClickHouse/ClickHouse/pull/18385) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrigido o preenchimento da tabela `system.settings_profile_elements`. Este PR corrige o problema [#18231](https://github.com/ClickHouse/ClickHouse/issues/18231). [#18379](https://github.com/ClickHouse/ClickHouse/pull/18379) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige possíveis travamentos em funções de agregação com o combinador `Distinct` ao usar agregação em dois níveis. Corrige [#17682](https://github.com/ClickHouse/ClickHouse/issues/17682). [#18365](https://github.com/ClickHouse/ClickHouse/pull/18365) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigido o problema em que o processo `clickhouse-odbc-bridge` fica inacessível ao servidor em máquinas com pilha dupla IPv4/IPv6; Corrigido o problema em que atualizações de dicionários ODBC são realizadas com consultas malformadas e/ou fazem o processo odbc-bridge travar; Possivelmente fecha [#14489](https://github.com/ClickHouse/ClickHouse/issues/14489). [#18278](https://github.com/ClickHouse/ClickHouse/pull/18278) ([Denis Glazachev](https://github.com/traceon)).
* Controle de acesso: `SELECT count() FROM table` agora pode ser executado se o usuário tiver acesso a pelo menos uma coluna da tabela. Este PR corrige [#10639](https://github.com/ClickHouse/ClickHouse/issues/10639). [#18233](https://github.com/ClickHouse/ClickHouse/pull/18233) ([Vitaly Baranov](https://github.com/vitlibar)).
* Controle de acesso: `SELECT JOIN` agora exige o privilégio `SELECT` em cada uma das tabelas do join. Este PR corrige [#17654](https://github.com/ClickHouse/ClickHouse/issues/17654). [#18232](https://github.com/ClickHouse/ClickHouse/pull/18232) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige a comparação de chaves entre os tipos Enum e Int. Isso corrige [#17989](https://github.com/ClickHouse/ClickHouse/issues/17989). [#18214](https://github.com/ClickHouse/ClickHouse/pull/18214) ([Amos Bird](https://github.com/amosbird)).
* Replicação a partir do MySQL (recurso experimental). Corrige [#18186](https://github.com/ClickHouse/ClickHouse/issues/18186) Corrige [#16372](https://github.com/ClickHouse/ClickHouse/issues/16372) Corrige o problema de conversão de chave única no engine de banco de dados MaterializeMySQL. [#18211](https://github.com/ClickHouse/ClickHouse/pull/18211) ([Winter Zhang](https://github.com/zhang2014)).
* Corrigida inconsistência em consultas com `WITH FILL` e `WITH TIES` [#17466](https://github.com/ClickHouse/ClickHouse/issues/17466). [#18188](https://github.com/ClickHouse/ClickHouse/pull/18188) ([hexiaoting](https://github.com/hexiaoting)).
* Corrige a inserção de uma linha com valor padrão em caso de erro de parsing na última coluna. Corrige [#17712](https://github.com/ClickHouse/ClickHouse/issues/17712). [#18182](https://github.com/ClickHouse/ClickHouse/pull/18182) ([Jianmei Zhang](https://github.com/zhangjmruc)).
* Corrigido o erro `Unknown setting profile` ao tentar definir um perfil de configurações. [#18167](https://github.com/ClickHouse/ClickHouse/pull/18167) ([tavplubix](https://github.com/tavplubix)).
* Corrige um erro em que a consulta `MODIFY COLUMN ... REMOVE TTL` na verdade não remove o TTL da coluna. [#18130](https://github.com/ClickHouse/ClickHouse/pull/18130) ([alesapin](https://github.com/alesapin)).
* Corrigido `std::out_of_range: basic_string` no parsing da URL do S3. [#18059](https://github.com/ClickHouse/ClickHouse/pull/18059) ([Vladimir Chebotarev](https://github.com/excitoon)).
* Corrige a comparação entre `DateTime64` e `Date`. Corrige [#13804](https://github.com/ClickHouse/ClickHouse/issues/13804) e [#11222](https://github.com/ClickHouse/ClickHouse/issues/11222). ... [#18050](https://github.com/ClickHouse/ClickHouse/pull/18050) ([Vasily Nemkov](https://github.com/Enmk)).
* Replicação a partir do MySQL (recurso experimental): Corrige [#15187](https://github.com/ClickHouse/ClickHouse/issues/15187) Corrige [#17912](https://github.com/ClickHouse/ClickHouse/issues/17912) o suporte à conversão de índice de prefixo do MySQL para MaterializeMySQL. [#17944](https://github.com/ClickHouse/ClickHouse/pull/17944) ([Winter Zhang](https://github.com/zhang2014)).
* Quando a rotação dos logs do servidor era configurada usando o parâmetro `logger.size` com um valor numérico maior que 2^32, os logs não eram rotacionados corretamente. Isso foi corrigido. [#17905](https://github.com/ClickHouse/ClickHouse/pull/17905) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* A otimização trivial de consultas estava produzindo resultados incorretos se a consulta contivesse ARRAY JOIN (ou seja, a consulta na verdade não é trivial). [#17887](https://github.com/ClickHouse/ClickHouse/pull/17887) ([sundyli](https://github.com/sundy-li)).
* Corrige um possível segfault na função agregada `topK`. Isso fecha [#17404](https://github.com/ClickHouse/ClickHouse/issues/17404). [#17845](https://github.com/ClickHouse/ClickHouse/pull/17845) ([Maksim Kita](https://github.com/kitaisreal)).
* WAL (recurso experimental): Não restaure partes a partir do WAL se `in_memory_parts_enable_wal` estiver desabilitado. [#17802](https://github.com/ClickHouse/ClickHouse/pull/17802) ([detailyang](https://github.com/detailyang)).
* A mensagem de exceção sobre o tamanho máximo da tabela permitido para remoção era exibida incorretamente. [#17764](https://github.com/ClickHouse/ClickHouse/pull/17764) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrigida uma possível falha de segmentação quando não há espaço suficiente ao inserir na tabela `Distributed`. [#17737](https://github.com/ClickHouse/ClickHouse/pull/17737) ([tavplubix](https://github.com/tavplubix)).
* Corrigido um problema em que o ClickHouse não conseguia restabelecer a conexão com servidores MySQL. [#17681](https://github.com/ClickHouse/ClickHouse/pull/17681) ([Alexander Kazakov](https://github.com/Akazz)).
* Windows: Corrigido o erro `Function not implemented` ao executar a consulta `RENAME` em um banco de dados `Atomic` com o ClickHouse em execução no Windows Subsystem for Linux. Corrige [#17661](https://github.com/ClickHouse/ClickHouse/issues/17661). [#17664](https://github.com/ClickHouse/ClickHouse/pull/17664) ([tavplubix](https://github.com/tavplubix)).
* Pode ser determinado incorretamente se o cluster é replicado circularmente (de forma cruzada) ou não ao executar a consulta `ON CLUSTER`, devido a uma condição de corrida quando `pool_size` > 1. Isso foi corrigido. [#17640](https://github.com/ClickHouse/ClickHouse/pull/17640) ([tavplubix](https://github.com/tavplubix)).
* Corrige a tabela `system.stack_trace` vazia quando o servidor está em execução em modo daemon. [#17630](https://github.com/ClickHouse/ClickHouse/pull/17630) ([Amos Bird](https://github.com/amosbird)).
* A exceção `fmt::v7::format_error` pode ser registrada em log em segundo plano para tabelas MergeTree. Isso corrige [#17613](https://github.com/ClickHouse/ClickHouse/issues/17613). [#17615](https://github.com/ClickHouse/ClickHouse/pull/17615) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Quando o clickhouse-client era usado no modo interativo com consultas de várias linhas, o comentário de uma linha era estendido por engano até o fim da consulta. Isso corrige [#13654](https://github.com/ClickHouse/ClickHouse/issues/13654). [#17565](https://github.com/ClickHouse/ClickHouse/pull/17565) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrige o travamento da consulta ALTER quando a mutação correspondente foi cancelada em uma réplica diferente. Corrige [#16953](https://github.com/ClickHouse/ClickHouse/issues/16953). [#17499](https://github.com/ClickHouse/ClickHouse/pull/17499) ([alesapin](https://github.com/alesapin)).
* Corrige um problema na contabilização de memória quando o tamanho do cache de marcas era subestimado pelo ClickHouse. Isso pode acontecer quando há muitos arquivos minúsculos com marcas. [#17496](https://github.com/ClickHouse/ClickHouse/pull/17496) ([alesapin](https://github.com/alesapin)).
* Corrige `ORDER BY` quando a configuração `optimize_redundant_functions_in_order_by` está habilitada. [#17471](https://github.com/ClickHouse/ClickHouse/pull/17471) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige duplicatas após `DISTINCT`, que podiam ocorrer devido a uma otimização incorreta. Corrige [#17294](https://github.com/ClickHouse/ClickHouse/issues/17294). [#17296](https://github.com/ClickHouse/ClickHouse/pull/17296) ([li chengxiang](https://github.com/chengxianglibra)). [#17439](https://github.com/ClickHouse/ClickHouse/pull/17439) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigido o alto uso de CPU nas tarefas em segundo plano de tabelas \*MergeTree. [#17416](https://github.com/ClickHouse/ClickHouse/pull/17416) ([tavplubix](https://github.com/tavplubix)).
* Corrige uma possível falha ao ler dados de uma tabela `JOIN` com tipos `LowCardinality`. Corrige [#17228](https://github.com/ClickHouse/ClickHouse/issues/17228). [#17397](https://github.com/ClickHouse/ClickHouse/pull/17397) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Replicação a partir do MySQL (recurso experimental): Corrige [#16835](https://github.com/ClickHouse/ClickHouse/issues/16835), tentando corrigir a incompatibilidade de cabeçalho na instrução SHOW do MySQL. [#17366](https://github.com/ClickHouse/ClickHouse/pull/17366) ([Winter Zhang](https://github.com/zhang2014)).
* Corrigidas funções não determinísticas no otimizador de predicados. Isso corrige [#17244](https://github.com/ClickHouse/ClickHouse/issues/17244). [#17273](https://github.com/ClickHouse/ClickHouse/pull/17273) ([Winter Zhang](https://github.com/zhang2014)).
* Corrige um possível erro `Unexpected packet Data received from client` em consultas distribuídas com `LIMIT`. [#17254](https://github.com/ClickHouse/ClickHouse/pull/17254) ([Azat Khuzhin](https://github.com/azat)).
* Corrige a invalidação do índice Set quando há colunas constantes na subconsulta. Isso corrige [#17246](https://github.com/ClickHouse/ClickHouse/issues/17246). [#17249](https://github.com/ClickHouse/ClickHouse/pull/17249) ([Amos Bird](https://github.com/amosbird)).
* clickhouse-copier: Correção para tabelas sem partição [#15235](https://github.com/ClickHouse/ClickHouse/issues/15235). [#17248](https://github.com/ClickHouse/ClickHouse/pull/17248) ([Qi Chen](https://github.com/kaka11chen)).
* Corrigidas possíveis falhas em mutações para partes armazenadas em disco S3 (funcionalidade experimental). [#17227](https://github.com/ClickHouse/ClickHouse/pull/17227) ([Pavel Kovalenko](https://github.com/Jokser)).
* Correção de bug na função `fuzzBits`, issue relacionada: [#16980](https://github.com/ClickHouse/ClickHouse/issues/16980). [#17051](https://github.com/ClickHouse/ClickHouse/pull/17051) ([hexiaoting](https://github.com/hexiaoting)).
* Corrigido `optimize_distributed_group_by_sharding_key` para consulta com apenas OFFSET. [#16996](https://github.com/ClickHouse/ClickHouse/pull/16996) ([Azat Khuzhin](https://github.com/azat)).
* Corrige consultas em tabelas `Merge` sobre tabelas `Distributed` com JOINs. [#16993](https://github.com/ClickHouse/ClickHouse/pull/16993) ([Azat Khuzhin](https://github.com/azat)).
* Corrige a otimização de ORDER BY com funções monotônicas. Corrige [#16107](https://github.com/ClickHouse/ClickHouse/issues/16107). [#16956](https://github.com/ClickHouse/ClickHouse/pull/16956) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigida a comparação incorreta entre tipos `DateTime64` com escalas diferentes. Corrige [#16655](https://github.com/ClickHouse/ClickHouse/issues/16655) ... [#16952](https://github.com/ClickHouse/ClickHouse/pull/16952) ([Vasily Nemkov](https://github.com/Enmk)).
* Corrige a otimização de group by quando a configuração `optimize_aggregators_of_group_by_keys` está habilitada e há junções. Corrige [#12604](https://github.com/ClickHouse/ClickHouse/issues/12604). [#16951](https://github.com/ClickHouse/ClickHouse/pull/16951) ([Anton Popov](https://github.com/CurtizJ)).
* Pequena correção na consulta SHOW ACCESS. [#16866](https://github.com/ClickHouse/ClickHouse/pull/16866) ([tavplubix](https://github.com/tavplubix)).
* Corrige o comportamento quando a configuração `optimize_trivial_count_query` está habilitada com predicado de partição. [#16767](https://github.com/ClickHouse/ClickHouse/pull/16767) ([Azat Khuzhin](https://github.com/azat)).
* Retorna o número de linhas afetadas em consultas INSERT via protocolo wire do MySQL. Anteriormente, o ClickHouse sempre retornava 0; isso foi corrigido. Corrige [#16605](https://github.com/ClickHouse/ClickHouse/issues/16605). [#16715](https://github.com/ClickHouse/ClickHouse/pull/16715) ([Winter Zhang](https://github.com/zhang2014)).
* Corrige o comportamento inconsistente causado por `select_sequential_consistency` em consultas otimizadas de contagem trivial e em tabelas do sistema. [#16309](https://github.com/ClickHouse/ClickHouse/pull/16309) ([Hao Chen](https://github.com/haoch)).
* Retornar erro quando o transformador de coluna `REPLACE` operar sobre uma coluna inexistente. [#16183](https://github.com/ClickHouse/ClickHouse/pull/16183) ([hexiaoting](https://github.com/hexiaoting)).
* Gera uma exceção no caso de uma expressão ON de join não equi em RIGH|FULL JOIN. [#15162](https://github.com/ClickHouse/ClickHouse/pull/15162) ([Artem Zuikov](https://github.com/4ertus2)).

<div id="buildtestingpackaging-improvement-10">
  #### melhoria de Build/Testes/Empacotamento
</div>

* Adiciona uma verificação simples de integridade para o binário do ClickHouse. Isso permite detectar corrupção causada por falhas de hardware (degradação de bits na mídia de armazenamento ou inversão de bits na RAM). [#18811](https://github.com/ClickHouse/ClickHouse/pull/18811) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Altere `OpenSSL` para `BoringSSL`. Isso ajuda a evitar problemas com sanitizers. Isso corrige [#12490](https://github.com/ClickHouse/ClickHouse/issues/12490). Isso corrige [#17502](https://github.com/ClickHouse/ClickHouse/issues/17502). Isso corrige [#12952](https://github.com/ClickHouse/ClickHouse/issues/12952). [#18129](https://github.com/ClickHouse/ClickHouse/pull/18129) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Simplificado o script de init `Sys/V`, que não estava funcionando no Ubuntu 12.04 ou em versões anteriores. [#17428](https://github.com/ClickHouse/ClickHouse/pull/17428) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Diversas melhorias no script `./clickhouse install`. [#17421](https://github.com/ClickHouse/ClickHouse/pull/17421) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Agora o ClickHouse pode se passar por um ZooKeeper falso. Atualmente, a implementação de armazenamento é apenas uma tabela hash em memória, e o servidor oferece suporte parcial ao protocolo ZooKeeper. [#16877](https://github.com/ClickHouse/ClickHouse/pull/16877) ([alesapin](https://github.com/alesapin)).
* Corrigida a remoção de watches na dead list no TestKeeperStorage (um mock para ZooKeeper). [#18065](https://github.com/ClickHouse/ClickHouse/pull/18065) ([alesapin](https://github.com/alesapin)).
* Adicionar o comando `SYSTEM SUSPEND` para injeção de falhas. Ele pode ser usado para facilitar testes de failover. Isso fecha [#15979](https://github.com/ClickHouse/ClickHouse/issues/15979). [#18850](https://github.com/ClickHouse/ClickHouse/pull/18850) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Gerar ID de build quando o ClickHouse é vinculado com `lld`. Verificou-se que o `lld` não o gera por padrão na minha máquina. O ID de build é usado para relatórios de falhas e introspecção. [#18808](https://github.com/ClickHouse/ClickHouse/pull/18808) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Corrigidos erros do shellcheck no Style check. [#18566](https://github.com/ClickHouse/ClickHouse/pull/18566) ([Ilya Yatsishin](https://github.com/qoega)).
* Atualização das informações de fusos horários para 2020e. [#18531](https://github.com/ClickHouse/ClickHouse/pull/18531) ([alesapin](https://github.com/alesapin)).
* Corrigidos avisos do codespell. Verificações de estilo divididas em partes separadas. Atualizada a imagem Docker das verificações de estilo. [#18463](https://github.com/ClickHouse/ClickHouse/pull/18463) ([Ilya Yatsishin](https://github.com/qoega)).
* Verificação automatizada de marcadores de conflito remanescentes na documentação. [#18332](https://github.com/ClickHouse/ClickHouse/pull/18332) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Habilitar o Thread Fuzzer para a verificação instável dos testes stateless. [#18299](https://github.com/ClickHouse/ClickHouse/pull/18299) ([alesapin](https://github.com/alesapin)).
* Não use a função `strerror`, que não é thread-safe. [#18204](https://github.com/ClickHouse/ClickHouse/pull/18204) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Atualiza a action de workflow `anchore/scan-action@main` (foi movida de `master` para `main`). [#18192](https://github.com/ClickHouse/ClickHouse/pull/18192) ([Stig Bakken](https://github.com/stigsb)).
* Agora, o `clickhouse-test` faz DROP/CREATE de bancos de dados com tempo limite. [#18098](https://github.com/ClickHouse/ClickHouse/pull/18098) ([alesapin](https://github.com/alesapin)).
* Adicionado suporte experimental ao framework Pytest para testes sem estado. [#17902](https://github.com/ClickHouse/ClickHouse/pull/17902) ([Ivan](https://github.com/abyss7)).
* Agora usamos a versão mais recente do daemon do Docker nos testes de integração. [#17671](https://github.com/ClickHouse/ClickHouse/pull/17671) ([alesapin](https://github.com/alesapin)).
* Enviar informações sobre a build oficial, memória, CPU e espaço livre em disco para o Sentry, se ele estiver habilitado. O Sentry é um recurso opcional, ativado por adesão, para ajudar os desenvolvedores do ClickHouse. Isso fecha [#17279](https://github.com/ClickHouse/ClickHouse/issues/17279). [#17543](https://github.com/ClickHouse/ClickHouse/pull/17543) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Havia uma variável não inicializada no código do clickhouse-copier. [#17363](https://github.com/ClickHouse/ClickHouse/pull/17363) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrigido um relatório do MSan de [#17309](https://github.com/ClickHouse/ClickHouse/issues/17309). [#17344](https://github.com/ClickHouse/ClickHouse/pull/17344) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correção para o problema com IPv6 na biblioteca Arrow Flight. Consulte [os comentários](https://github.com/ClickHouse/ClickHouse/pull/16243#issuecomment-720830294) para mais detalhes. [#16664](https://github.com/ClickHouse/ClickHouse/pull/16664) ([Zhanna](https://github.com/FawnD2)).
* Adiciona uma biblioteca que substitui algumas funções de `libc` por traps que encerram o processo. [#16366](https://github.com/ClickHouse/ClickHouse/pull/16366) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Fornece diagnósticos nos logs do servidor em caso de stack overflow e envia a mensagem de erro para o clickhouse-client. Isso encerra [#14840](https://github.com/ClickHouse/ClickHouse/issues/14840). [#16346](https://github.com/ClickHouse/ClickHouse/pull/16346) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Agora já podemos executar quase todos os testes funcionais sem estado em paralelo. [#15236](https://github.com/ClickHouse/ClickHouse/pull/15236) ([alesapin](https://github.com/alesapin)).
* Corrige a corrupção na descompressão snappy do `librdkafka` (era um problema apenas em builds com gcc10, mas os builds oficiais já usam clang, então pelo menos as versões oficiais recentes não são afetadas). [#18053](https://github.com/ClickHouse/ClickHouse/pull/18053) ([Azat Khuzhin](https://github.com/azat)).
* Se o servidor for encerrado pelo OOM killer, registrar uma mensagem no log. [#13516](https://github.com/ClickHouse/ClickHouse/pull/13516) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* PODArray: Evita a chamada de `memcpy` com os argumentos `(nullptr, 0)` (corrige o relatório do UBSan). Isso corrige [#18525](https://github.com/ClickHouse/ClickHouse/issues/18525). [#18526](https://github.com/ClickHouse/ClickHouse/pull/18526) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Pequena melhoria na concatenação dos caminhos do ZooKeeper dentro do DDLWorker. [#17767](https://github.com/ClickHouse/ClickHouse/pull/17767) ([Bharat Nallan](https://github.com/bharatnc)).
* Permite recarregar os símbolos a partir do arquivo de depuração. Este PR também corrige um problema de build-id. [#17637](https://github.com/ClickHouse/ClickHouse/pull/17637) ([Amos Bird](https://github.com/amosbird)).

<div id="changelog-for-2020">
  ## [Changelog de 2020](/docs/pt-BR/resources/changelogs/oss/2020)
</div>
