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

# Changelog de 2024

> Changelog de 2024

<div id="table-of-contents">
  ### Sumário
</div>

**[lançamento do ClickHouse v24.12, 2024-12-19](/pt-BR/resources/changelogs/oss/2024#a-id2412a-clickhouse-release-2412-2024-12-19)**<br />
**[lançamento do ClickHouse v24.11, 2024-11-26](/pt-BR/resources/changelogs/oss/2024#a-id2411a-clickhouse-release-2411-2024-11-26)**<br />
**[lançamento do ClickHouse v24.10, 2024-10-31](/pt-BR/resources/changelogs/oss/2024#a-id2410a-clickhouse-release-2410-2024-10-31)**<br />
**[lançamento do ClickHouse v24.9, 2024-09-26](/pt-BR/resources/changelogs/oss/2024#a-id249a-clickhouse-release-249-2024-09-26)**<br />
**[lançamento do ClickHouse v24.8 LTS, 2024-08-20](/pt-BR/resources/changelogs/oss/2024#a-id248a-clickhouse-release-248-lts-2024-08-20)**<br />
**[lançamento do ClickHouse v24.7, 2024-07-30](/pt-BR/resources/changelogs/oss/2024#a-id247a-clickhouse-release-247-2024-07-30)**<br />
**[lançamento do ClickHouse v24.6, 2024-07-01](/pt-BR/resources/changelogs/oss/2024#a-id246a-clickhouse-release-246-2024-07-01)**<br />
**[lançamento do ClickHouse v24.5, 2024-05-30](/pt-BR/resources/changelogs/oss/2024#a-id245a-clickhouse-release-245-2024-05-30)**<br />
**[lançamento do ClickHouse v24.4, 2024-04-30](/pt-BR/resources/changelogs/oss/2024#a-id244a-clickhouse-release-244-2024-04-30)**<br />
**[lançamento do ClickHouse v24.3 LTS, 2024-03-26](/pt-BR/resources/changelogs/oss/2024#a-id243a-clickhouse-release-243-lts-2024-03-27)**<br />
**[lançamento do ClickHouse v24.2, 2024-02-29](/pt-BR/resources/changelogs/oss/2024#a-id242a-clickhouse-release-242-2024-02-29)**<br />
**[lançamento do ClickHouse v24.1, 2024-01-30](/pt-BR/resources/changelogs/oss/2024#a-id241a-clickhouse-release-241-2024-01-30)**<br />
**[Changelog de 2023](/pt-BR/resources/changelogs/oss/2023)**<br />

### <a id="2412" /> Lançamento do ClickHouse 24.12, 2024-12-19. [Apresentação](https://presentations.clickhouse.com/2024-release-24.12/), [Vídeo](https://www.youtube.com/watch?v=bv-ut-Q6vnc)

<Frame>
  <iframe src="https://www.youtube.com/embed/bv-ut-Q6vnc" 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 funções `greatest` e `least` agora passam a ignorar valores de entrada NULL, enquanto antes retornavam NULL se um dos argumentos fosse NULL. Por exemplo, `SELECT greatest(1, 2, NULL)` agora retorna 2. Isso torna o comportamento compatível com o PostgreSQL, mas, ao mesmo tempo, quebra a compatibilidade com o MySQL, que retorna NULL. Para manter o comportamento anterior, defina a configuração `least_greatest_legacy_null_behavior` (padrão: `false`) como `true`. [#65519](https://github.com/ClickHouse/ClickHouse/pull/65519) [#73344](https://github.com/ClickHouse/ClickHouse/pull/73344) ([kevinyhzou](https://github.com/KevinyhZou)).
* Uma nova integração com o MongoDB agora é a padrão. Usuários que preferirem usar o driver legado do MongoDB (baseado no driver Poco) podem habilitar a configuração do servidor `use_legacy_mongodb_integration`. [#73359](https://github.com/ClickHouse/ClickHouse/pull/73359) ([Kirill Nikiforov](https://github.com/allmazz).

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

* Tipos `JSON`/`Dynamic`/`Variant` passam de recursos experimentais para beta. [#72294](https://github.com/ClickHouse/ClickHouse/pull/72294) ([Pavel Kruglov](https://github.com/Avogar)). Também fizemos o backport de todas as correções, bem como dessa alteração, para a 24.11.
* A evolução de esquema para o formato de [armazenamento de dados Iceberg](https://iceberg.apache.org/spec/#file-system-operations) oferece ao usuário amplas opções para modificar o esquema da tabela. A ordem das colunas, os nomes das colunas e extensões simples de tipos podem ser alterados internamente. [#69445](https://github.com/ClickHouse/ClickHouse/pull/69445) ([Daniil Ivanik](https://github.com/divanik)).
* Integração com o Iceberg REST Catalog: um novo mecanismo de banco de dados, chamado Iceberg, que integra todo o catálogo ao ClickHouse. [#71542](https://github.com/ClickHouse/ClickHouse/pull/71542) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adicionado cache do índice primário para tabelas `MergeTree` (pode ser habilitado pela configuração da tabela `use_primary_key_cache`). Se o carregamento sob demanda e o cache estiverem habilitados para o índice primário, ele será carregado no cache conforme necessário (semelhante ao mark cache), em vez de ficar em memória o tempo todo. Adicionado o pré-aquecimento do índice primário em inserts/merges/fetches de partes de dados e nas reinicializações da tabela (pode ser habilitado pela configuração `prewarm_primary_key_cache`). Isso reduz o uso de memória em tabelas enormes em armazenamento compartilhado, e testamos isso em tabelas com mais de um quatrilhão de registros. [#72102](https://github.com/ClickHouse/ClickHouse/pull/72102) ([Anton Popov](https://github.com/CurtizJ)). [#72750](https://github.com/ClickHouse/ClickHouse/pull/72750) ([Alexander Gololobov](https://github.com/davenger)).
* Implementado o comando `SYSTEM LOAD PRIMARY KEY` para carregar os índices primários de todas as partes de uma tabela especificada ou de todas as tabelas, se nenhuma tabela for especificada. Isso será útil em benchmarks e para evitar latência adicional durante a execução de consultas. [#66252](https://github.com/ClickHouse/ClickHouse/pull/66252) [#67733](https://github.com/ClickHouse/ClickHouse/pull/67733) ([ZAWA\_ll](https://github.com/Zawa-ll)).
* Adicionada uma consulta para anexar tabelas `MergeTree` como `ReplicatedMergeTree` e vice-versa: `ATTACH TABLE ... AS REPLICATED` e `ATTACH TABLE ... AS NOT REPLICATED`. [#65401](https://github.com/ClickHouse/ClickHouse/pull/65401) ([Kirill](https://github.com/kirillgarbar)).
* Uma nova configuração, `http_response_headers`, que permite personalizar os cabeçalhos de resposta HTTP. Por exemplo, você pode instruir o navegador a exibir uma imagem armazenada no banco de dados. Isso fecha [#59620](https://github.com/ClickHouse/ClickHouse/issues/59620). [#72656](https://github.com/ClickHouse/ClickHouse/pull/72656) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona a função `toUnixTimestamp64Second`, que converte um `DateTime64` em um valor `Int64` com precisão fixa de segundos, permitindo retornar um valor negativo se a data for anterior à epoch Unix. [#70597](https://github.com/ClickHouse/ClickHouse/pull/70597) ([zhanglistar](https://github.com/zhanglistar)). [#73146](https://github.com/ClickHouse/ClickHouse/pull/73146) ([Robert Schulze](https://github.com/rschu1ze)).
* Adiciona a nova configuração `enforce_index_structure_match_on_partition_manipulation` para permitir o attach quando o conjunto de projeções e índices secundários da tabela de origem for um subconjunto dos da tabela de destino. Fecha [#70602](https://github.com/ClickHouse/ClickHouse/issues/70602). [#70603](https://github.com/ClickHouse/ClickHouse/pull/70603) ([zwy991114](https://github.com/zwy991114)).
* Foi adicionada a sintaxe ALTER USER `{ADD|MODIFY|DROP SETTING}`, ALTER USER `{ADD|DROP PROFILE}`, e o mesmo para ALTER ROLE e ALTER PROFILE. Assim, em vez de substituir todo o conjunto de configurações, você pode modificá-lo. [#72050](https://github.com/ClickHouse/ClickHouse/pull/72050) ([pufit](https://github.com/pufit)).
* Adicionada a função `arrayPRAUC`, que calcula a AUC (Área Sob a Curva) da curva de Precisão-Recall. [#72073](https://github.com/ClickHouse/ClickHouse/pull/72073) ([Emmanuel](https://github.com/emmanuelsdias)).
* Adiciona a função `indexOfAssumeSorted` para tipos de array. Otimiza a busca no caso de um array ordenado em ordem não decrescente. O efeito é perceptível em arrays muito grandes (mais de 100.000 elementos). [#72517](https://github.com/ClickHouse/ClickHouse/pull/72517) ([Eric Kurbanov](https://github.com/erickurbanov)).
* Permite usar um delimitador como segundo argumento opcional da função de agregação `groupConcat`. [#72540](https://github.com/ClickHouse/ClickHouse/pull/72540) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* A função `translate` agora permite excluir caracteres se o argumento `from` contiver mais caracteres do que o argumento `to`. Exemplo: `SELECT translate('clickhouse', 'clickhouse', 'CLICK')` agora retorna `CLICK`. [#71441](https://github.com/ClickHouse/ClickHouse/pull/71441) ([shuai.xu](https://github.com/shuai-xu)).

<div id="experimental-features">
  #### Recursos experimentais
</div>

* Uma nova configuração do MergeTree, `allow_experimental_reverse_key`, que habilita o suporte à ordem de classificação decrescente nas chaves de ordenação do MergeTree. Isso é útil para análise de séries temporais, especialmente para consultas TopN. Exemplo de uso: `ENGINE = MergeTree ORDER BY (time DESC, key)` - ordem decrescente para o campo `time`. [#71095](https://github.com/ClickHouse/ClickHouse/pull/71095) ([Amos Bird](https://github.com/amosbird)).

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

* Reordenação de JOIN. Foi adicionada uma opção para selecionar o lado do join que atuará como tabela interna (build) no plano de consulta. Isso é controlado por `query_plan_join_swap_table`, que pode ser definido como `auto`. Nesse modo, o ClickHouse tentará escolher a tabela com o menor número de linhas. [#71577](https://github.com/ClickHouse/ClickHouse/pull/71577) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Agora, o algoritmo `parallel_hash` será usado (quando aplicável) quando a configuração `join_algorithm` estiver definida como `default`. As duas alternativas anteriores (`direct` e `hash`) ainda serão consideradas quando não for possível usar `parallel_hash`. [#70788](https://github.com/ClickHouse/ClickHouse/pull/70788) ([Nikita Taranov](https://github.com/nickitat)).
* Adiciona a opção de extrair expressões comuns de expressões `WHERE` e `ON` para reduzir o número de tabelas hash usadas durante junções. Isso faz sentido quando a condição `JOIN ON` tem partes em comum dentro de `AND` em diferentes partes de `OR`. Pode ser habilitado com `optimize_extract_common_expressions = 1`. [#71537](https://github.com/ClickHouse/ClickHouse/pull/71537) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Permite usar índices em `SELECT` quando uma coluna indexada é convertida com CAST para `LowCardinality(String)`, o que pode ocorrer quando uma consulta é executada em uma tabela Merge com algumas tabelas usando `String` e outras `LowCardinality(String)`. [#71598](https://github.com/ClickHouse/ClickHouse/pull/71598) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Durante a execução da consulta com réplicas paralelas e plano local ativado, não faça análise de índice nos workers. O coordenador escolherá os intervalos que os workers devem ler com base na análise de índice feita do seu lado (no iniciador da consulta). Isso faz com que consultas curtas com réplicas paralelas tenham latência tão baixa quanto a de consultas em um único nó. [#72109](https://github.com/ClickHouse/ClickHouse/pull/72109) ([Igor Nikonov](https://github.com/devcrafter)).
* O uso de memória de `clickhouse disks remove --recursive` foi reduzido em discos de armazenamento de objetos. [#67323](https://github.com/ClickHouse/ClickHouse/pull/67323) ([Kirill](https://github.com/kirillgarbar)).
* Traz de volta a otimização para a leitura de subcolunas de uma única coluna em partes compactas de [#57631](https://github.com/ClickHouse/ClickHouse/pull/57631). Ela foi removida acidentalmente. [#72285](https://github.com/ClickHouse/ClickHouse/pull/72285) ([Pavel Kruglov](https://github.com/Avogar)).
* Aceleração da ordenação de colunas `LowCardinality(String)` com a desvirtualização de chamadas no comparador. [#72337](https://github.com/ClickHouse/ClickHouse/pull/72337) ([Alexander Gololobov](https://github.com/davenger)).
* Otimização da função `argMin`/`argMax` para alguns tipos de dados simples. [#72350](https://github.com/ClickHouse/ClickHouse/pull/72350) ([alesapin](https://github.com/alesapin)).
* Otimiza o bloqueio no rastreador de memória com bloqueios compartilhados para reduzir a contenção, melhorando o desempenho em sistemas com um número muito alto de CPUs. [#72375](https://github.com/ClickHouse/ClickHouse/pull/72375) ([Jiebin Sun](https://github.com/jiebinn)).
* Adicionada uma nova configuração, `use_async_executor_for_materialized_views`. Permite usar execução assíncrona e, potencialmente, multithread da consulta da visão materializada; isso pode acelerar o processamento das visões durante INSERT, mas também consome mais memória. [#72497](https://github.com/ClickHouse/ClickHouse/pull/72497) ([alesapin](https://github.com/alesapin)).
* Melhorado o desempenho da deserialização dos estados de funções de agregação (no tipo de dado `AggregateFunction` e em consultas distribuídas). Melhorado ligeiramente o desempenho do parsing do formato `RowBinary`. [#72818](https://github.com/ClickHouse/ClickHouse/pull/72818) ([Anton Popov](https://github.com/CurtizJ)).
* Divisão de intervalos durante a leitura com réplicas paralelas, na ordem da chave da tabela, para consumir menos memória durante a leitura. [#72173](https://github.com/ClickHouse/ClickHouse/pull/72173) ([JIaQi](https://github.com/JiaQiTang98)).
* Acelera as inserções no MergeTree quando há um único valor de chave de partição no lote inserido. [#72348](https://github.com/ClickHouse/ClickHouse/pull/72348) ([alesapin](https://github.com/alesapin)).
* Implementada a criação paralela de tabelas durante a restauração de um backup. Antes deste PR, o comando `RESTORE` sempre criava tabelas em uma thread, o que podia ser lento no caso de backups com muitas tabelas. [#72427](https://github.com/ClickHouse/ClickHouse/pull/72427) ([Vitaly Baranov](https://github.com/vitlibar)).
* Descartar o mark cache pode levar um tempo considerável se ele for grande. Se mantivermos o mutex do Context durante esse processo, isso bloqueará muitas outras atividades; nem mesmo novas conexões de cliente poderão ser estabelecidas até que ele seja liberado. Além disso, manter esse mutex não é realmente necessário para sincronização: basta ter uma referência local ao cache via shared ptr. [#72749](https://github.com/ClickHouse/ClickHouse/pull/72749) ([Alexander Gololobov](https://github.com/davenger)).

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

* Removida a configuração `allow_experimental_join_condition`, permitindo condições não equi por padrão. [#69910](https://github.com/ClickHouse/ClickHouse/pull/69910) ([Vladimir Cherkasov](https://github.com/vdimir)).
* As configurações da config do servidor (users.xml) agora também se aplicam ao cliente. Útil para configurações de formato, por exemplo, `date_time_output_format`. [#71178](https://github.com/ClickHouse/ClickHouse/pull/71178) ([Michael Kolupaev](https://github.com/al13n321)).
* Uso automático de disco para `GROUP BY`/`ORDER BY`, com base no uso de memória do servidor/usuário. Controlado pelas configurações de consulta `max_bytes_ratio_before_external_group_by`/`max_bytes_ratio_before_external_sort`. [#71406](https://github.com/ClickHouse/ClickHouse/pull/71406) ([Azat Khuzhin](https://github.com/azat)).
* Adicionada uma nova lógica de cancelamento: `CancellationChecker` verifica os timeouts de cada consulta iniciada e as interrompe quando o timeout é atingido. [#69880](https://github.com/ClickHouse/ClickHouse/pull/69880) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Suporte a ALTER de `Object` para `JSON`, o que significa que agora é possível migrar facilmente do tipo Object, que está obsoleto. [#71784](https://github.com/ClickHouse/ClickHouse/pull/71784) ([Pavel Kruglov](https://github.com/Avogar)).
* Permite valores desconhecidos em Set que não estejam presentes em Enum. Corrige [#72662](https://github.com/ClickHouse/ClickHouse/issues/72662). [#72686](https://github.com/ClickHouse/ClickHouse/pull/72686) ([zhanglistar](https://github.com/zhanglistar)).
* Adiciona suporte ao operador de busca em strings (por exemplo, LIKE) para o tipo de dado `Enum`, implementando [#72661](https://github.com/ClickHouse/ClickHouse/issues/72661). [#72732](https://github.com/ClickHouse/ClickHouse/pull/72732) ([zhanglistar](https://github.com/zhanglistar)).
* Algumas consultas ALTER USER inválidas foram aceitas. Corrige [#71227](https://github.com/ClickHouse/ClickHouse/issues/71227). [#71286](https://github.com/ClickHouse/ClickHouse/pull/71286) ([Arthur Passos](https://github.com/arthurpassos)).
* Respeita `prefer_locahost_replica` ao montar o plano para `INSERT ... SELECT` distribuído. [#72190](https://github.com/ClickHouse/ClickHouse/pull/72190) ([filimonov](https://github.com/filimonov)).
* O Azure violou a especificação do Iceberg, rotulando incorretamente o Iceberg v1 como Iceberg v2. O problema é [descrito aqui](https://github.com/ClickHouse/ClickHouse/issues/72091). O Azure Iceberg Writer cria arquivos de metadados do Iceberg (assim como arquivos de manifesto) que violam a especificação. Agora tentamos ler metadados no formato Iceberg v1 com o leitor v2 (porque eles os gravam dessa forma) e adicionamos um erro para quando eles não criam os campos correspondentes em um arquivo de manifesto. [#72277](https://github.com/ClickHouse/ClickHouse/pull/72277) ([Daniil Ivanik](https://github.com/divanik)).
* Agora é permitido usar `CREATE MATERIALIZED VIEW` com `UNION [ALL]` na consulta. O comportamento é o mesmo de uma visão materializada com `JOIN`: apenas a primeira tabela na expressão `SELECT` funcionará como gatilho para insert; todas as outras tabelas serão ignoradas. No entanto, se houver várias referências à primeira tabela (por exemplo, UNION com ela mesma), todas elas serão processadas como o bloco de dados inserido. [#72347](https://github.com/ClickHouse/ClickHouse/pull/72347) ([alesapin](https://github.com/alesapin)).
* Adicionada a validação da consulta de origem quando o ClickHouse é usado como origem para um dicionário. [#72548](https://github.com/ClickHouse/ClickHouse/pull/72548) ([Alexey Katsman](https://github.com/alexkats)).
* Garanta que o ClickHouse detecte as alterações do ZooKeeper ao recarregar a configuração. [#72593](https://github.com/ClickHouse/ClickHouse/pull/72593) ([Azat Khuzhin](https://github.com/azat)).
* Melhor aproximação do uso de memória das marcas armazenadas em cache para reduzir o uso total de memória do cache. [#72630](https://github.com/ClickHouse/ClickHouse/pull/72630) ([Antonio Andelic](https://github.com/antonio2368)).
* Adicionada uma nova métrica `StartupScriptsExecutionState`. A métrica pode ter três valores: 0 = os scripts de inicialização ainda não terminaram, 1 = os scripts de inicialização foram executados com sucesso, 2 = os scripts de inicialização falharam. Precisamos dessa métrica para saber se os scripts de inicialização estão sendo executados com sucesso na nuvem, especialmente após releases das configurações de base. [#72637](https://github.com/ClickHouse/ClickHouse/pull/72637) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Adicione a nova métrica `MergeTreeIndexGranularityInternalArraysTotalSize` ao `system.metrics`. Essa métrica é necessária para encontrar as instâncias com conjuntos de dados muito grandes suscetíveis à alta
* Adiciona retentativas na criação de uma tabela replicada. [#72682](https://github.com/ClickHouse/ClickHouse/pull/72682) ([Vitaly Baranov](https://github.com/vitlibar)).
* Adicionar `total_bytes_with_inactive` à `system.tables` para contabilizar o total de bytes das partes inativas. [#72690](https://github.com/ClickHouse/ClickHouse/pull/72690) ([Kai Zhu](https://github.com/nauu)).
* Adicionadas configurações do MergeTree em `system.settings_changes`. [#72694](https://github.com/ClickHouse/ClickHouse/pull/72694) ([Raúl Marín](https://github.com/Algunenano)).
* Suporte para o tipo JSON na função `notEmpty`. [#72741](https://github.com/ClickHouse/ClickHouse/pull/72741) ([Pavel Kruglov](https://github.com/Avogar)).
* Suporte ao parsing do erro GCS S3 `AuthenticationRequired`. [#72753](https://github.com/ClickHouse/ClickHouse/pull/72753) ([Vitaly Baranov](https://github.com/vitlibar)).
* Adicionado suporte ao tipo `Dynamic` nas funções `ifNull` e `coalesce`. [#72772](https://github.com/ClickHouse/ClickHouse/pull/72772) ([Pavel Kruglov](https://github.com/Avogar)).
* Suporte a `Dynamic` em funções `toFloat64`/`touInt32`/etc. [#72989](https://github.com/ClickHouse/ClickHouse/pull/72989) ([Pavel Kruglov](https://github.com/Avogar)).
* Adicionar as configurações de requisição do S3 `http_max_fields`, `http_max_field_name_size`, `http_max_field_value_size` e usá-las ao processar respostas da API do S3 durante a criação de backup ou a restauração. [#72778](https://github.com/ClickHouse/ClickHouse/pull/72778) ([Vitaly Baranov](https://github.com/vitlibar)).
* Excluir os metadados da tabela no Keeper em Storage S3(Azure)Queue somente após a remoção da última tabela que usa esses metadados. [#72810](https://github.com/ClickHouse/ClickHouse/pull/72810) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Foram adicionados os eventos de perfil `JoinBuildTableRowCount`/`JoinProbeTableRowCount/JoinResultRowCount`. [#72842](https://github.com/ClickHouse/ClickHouse/pull/72842) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Suporte a subcolunas na chave de ordenação do MergeTree e nos índices de salto. [#72644](https://github.com/ClickHouse/ClickHouse/pull/72644) ([Pavel Kruglov](https://github.com/Avogar)).

<div id="bug-fix-user-visible-misbehavior-in-an-official-stable-release">
  #### Correção de bug (comportamento incorreto perceptível ao usuário em uma versão estável oficial)
</div>

* Corrige possíveis partes que se sobrepõem no MergeTree (após a falha de uma operação de mover uma parte para o diretório detached, possivelmente devido a uma operação no armazenamento de objetos). [#70476](https://github.com/ClickHouse/ClickHouse/pull/70476) ([Azat Khuzhin](https://github.com/azat)).
* Corrige a detecção de erro quando um nome de tabela é longo demais. Fornece um diagnóstico informando o comprimento máximo permitido. Adiciona uma nova função `getMaxTableNameLengthForDatabase`. [#70810](https://github.com/ClickHouse/ClickHouse/pull/70810) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrigidos processos zumbis após a falha do `clickhouse-library-bridge` (este programa permite executar bibliotecas não seguras). [#71301](https://github.com/ClickHouse/ClickHouse/pull/71301) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Corrige o erro NoSuchKey durante o rollback da transação quando a criação de um diretório falha no disco `plain_rewritable`. [#71439](https://github.com/ClickHouse/ClickHouse/pull/71439) ([Julia Kartseva](https://github.com/jkartseva)).
* Corrigida a serialização de valores `Dynamic` nos formatos JSON `Pretty`. [#71923](https://github.com/ClickHouse/ClickHouse/pull/71923) ([Pavel Kruglov](https://github.com/Avogar)).
* Adicionar o nome do formato inferido à consulta CREATE nos motores `File`/`S3`/`URL`/`HDFS`/`Azure`. Antes, o nome do formato era inferido toda vez que o servidor era reiniciado e, se os arquivos de dados especificados fossem removidos, isso causava erros durante a inicialização do servidor. [#72108](https://github.com/ClickHouse/ClickHouse/pull/72108) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige bugs ao usar uma UDF na expressão JOIN ON com o analisador antigo. [#72179](https://github.com/ClickHouse/ClickHouse/pull/72179) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige alguns bugs menores em `StorageObjectStorage`. É preciso habilitar `use_hive_partitioning` por padrão. [#72185](https://github.com/ClickHouse/ClickHouse/pull/72185) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige um bug em que `min_age_to_force_merge_on_partition_only` ficava travado tentando mesclar repetidamente a mesma partição, que já havia sido mesclada em uma única parte, e deixava de mesclar partições com múltiplas partes. [#72209](https://github.com/ClickHouse/ClickHouse/pull/72209) ([Christoph Wurm](https://github.com/cwurm)).
* Corrigido um travamento em `SimpleSquashingChunksTransform` que ocorria em casos raros ao processar colunas esparsas. [#72226](https://github.com/ClickHouse/ClickHouse/pull/72226) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrigida uma condição de corrida em `GraceHashJoin`, o que podia fazer com que algumas linhas ficassem ausentes na saída do join. [#72233](https://github.com/ClickHouse/ClickHouse/pull/72233) ([Nikita Taranov](https://github.com/nickitat)).
* Corrigidas as consultas `ALTER DELETE` com a coluna `_block_number` materializada (se a configuração `enable_block_number_column` estiver habilitada). [#72261](https://github.com/ClickHouse/ClickHouse/pull/72261) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigida uma corrida de dados quando `ColumnDynamic::dumpStructure()` é chamado concorrentemente, por exemplo, no construtor de `ConcurrentHashJoin`. [#72278](https://github.com/ClickHouse/ClickHouse/pull/72278) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige um possível `LOGICAL_ERROR` com colunas duplicadas em `ORDER BY ... WITH FILL`. [#72387](https://github.com/ClickHouse/ClickHouse/pull/72387) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrigidos problemas de incompatibilidade de tipos em vários casos após aplicar `optimize_functions_to_subcolumns`. [#72394](https://github.com/ClickHouse/ClickHouse/pull/72394) ([Anton Popov](https://github.com/CurtizJ)).
* Use `AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE` em vez de `AWS_CONTAINER_AUTHORIZATION_TOKEN_PATH`. Corrigido [#71074](https://github.com/ClickHouse/ClickHouse/issues/71074). [#72397](https://github.com/ClickHouse/ClickHouse/pull/72397) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige falha ao analisar consultas `BACKUP DATABASE db EXCEPT TABLES db.table`. [#72429](https://github.com/ClickHouse/ClickHouse/pull/72429) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Impedir a criação de `Variant` vazio. [#72454](https://github.com/ClickHouse/ClickHouse/pull/72454) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrigida a formatação inválida de `result_part_path` em `system.merges`. [#72567](https://github.com/ClickHouse/ClickHouse/pull/72567) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige o parsing de um glob com um elemento (como `{file}`). [#72572](https://github.com/ClickHouse/ClickHouse/pull/72572) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige a geração da consulta para o servidor seguidor em caso de consulta distribuída com `ARRAY JOIN`. Corrige [#69276](https://github.com/ClickHouse/ClickHouse/issues/69276). [#72608](https://github.com/ClickHouse/ClickHouse/pull/72608) ([Dmitry Novik](https://github.com/novikd)).
* Corrigido um bug em que `DateTime64 IN DateTime64` não retornava nenhum resultado. [#72640](https://github.com/ClickHouse/ClickHouse/pull/72640) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrigidos metadados inconsistentes ao adicionar uma nova réplica a um banco de dados Replicated com uma tabela criada com `flatten_nested=0`. [#72685](https://github.com/ClickHouse/ClickHouse/pull/72685) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige a configuração avançada de SSL na comunicação interna do Keeper. [#72730](https://github.com/ClickHouse/ClickHouse/pull/72730) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigido o erro "No such key" no modo não ordenado do S3Queue quando a configuração `tracked_files_limit` é menor do que a taxa de surgimento de arquivos no S3. [#72738](https://github.com/ClickHouse/ClickHouse/pull/72738) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige a exceção lançada no RemoteQueryExecutor quando um usuário não existe localmente. [#72759](https://github.com/ClickHouse/ClickHouse/pull/72759) ([Andrey Zvonov](https://github.com/zvonand)).
* Corrigidas as mutações com a coluna `_block_number` materializada (se a configuração `enable_block_number_column` estiver habilitada). [#72854](https://github.com/ClickHouse/ClickHouse/pull/72854) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige backup/restauração com disco regravável simples quando há arquivos vazios no backup. [#72858](https://github.com/ClickHouse/ClickHouse/pull/72858) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Cancela corretamente inserts em DistributedAsyncInsertDirectoryQueue. [#72885](https://github.com/ClickHouse/ClickHouse/pull/72885) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigida falha ao analisar dados incorretos em colunas esparsas (isso pode acontecer com a configuração `enable_parsing_to_custom_serialization` habilitada). [#72891](https://github.com/ClickHouse/ClickHouse/pull/72891) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige uma possível falha durante a restauração de backup. [#72947](https://github.com/ClickHouse/ClickHouse/pull/72947) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigido um bug no método JOIN `parallel_hash` que podia ocorrer quando a consulta tem uma condição complexa na cláusula `ON` com filtros de desigualdade. [#72993](https://github.com/ClickHouse/ClickHouse/pull/72993) ([Nikita Taranov](https://github.com/nickitat)).
* Use as configurações padrão do formato durante o parsing de JSON para evitar falhas na desserialização. [#73043](https://github.com/ClickHouse/ClickHouse/pull/73043) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige travamento em transações com armazenamento sem suporte. [#73045](https://github.com/ClickHouse/ClickHouse/pull/73045) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige uma possível superestimação no rastreamento de memória (quando a diferença entre `MemoryTracking` e `MemoryResident` seguia aumentando). [#73081](https://github.com/ClickHouse/ClickHouse/pull/73081) ([Azat Khuzhin](https://github.com/azat)).
* Verificação de chaves JSON duplicadas durante o parsing de Tuple. Antes, isso podia causar o erro lógico `Invalid number of rows in Chunk` durante o parsing. [#73082](https://github.com/ClickHouse/ClickHouse/pull/73082) ([Pavel Kruglov](https://github.com/Avogar)).

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

* Todos os pequenos utilitários anteriormente armazenados na pasta `/utils` e que exigiam compilação manual a partir do código-fonte agora fazem parte do pacote principal do ClickHouse. Isso fecha: [#72404](https://github.com/ClickHouse/ClickHouse/issues/72404). [#72426](https://github.com/ClickHouse/ClickHouse/pull/72426) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Reverte a remoção de `/etc/systemd/system/clickhouse-server.service` introduzida na versão 22.3 [#39323](https://github.com/ClickHouse/ClickHouse/issues/39323). [#72259](https://github.com/ClickHouse/ClickHouse/pull/72259) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Divide grandes unidades de tradução para evitar falhas de compilação devido a limitações de memória/CPU. [#72352](https://github.com/ClickHouse/ClickHouse/pull/72352) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* OSX: Compilação com suporte a ICU, o que habilita collations, conversões de conjunto de caracteres e outros recursos de localização. [#73083](https://github.com/ClickHouse/ClickHouse/pull/73083) ([Raúl Marín](https://github.com/Algunenano)).

### <a id="2411" /> Lançamento do ClickHouse 24.11, 2024-11-26. [Apresentação](https://presentations.clickhouse.com/2024-release-24.11/), [Vídeo](https://www.youtube.com/watch?v=0hpTvtq__4g)

<Frame>
  <iframe src="https://www.youtube.com/embed/0hpTvtq__4g" 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>

* Removidas as tabelas de sistema `generate_series` e `generateSeries`. Elas foram adicionadas por engano aqui: [#59390](https://github.com/ClickHouse/ClickHouse/issues/59390). [#71091](https://github.com/ClickHouse/ClickHouse/pull/71091) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Removido `StorageExternalDistributed`. Fecha [#70600](https://github.com/ClickHouse/ClickHouse/issues/70600). [#71176](https://github.com/ClickHouse/ClickHouse/pull/71176) ([flynn](https://github.com/ucasfl)).
* Os motores de tabela Kafka, NATS e RabbitMQ agora são cobertos por grants próprios na hierarquia `SOURCES`. Adicione grants a todos os usuários de banco de dados não padrão que criem tabelas com esses tipos de engine. [#71250](https://github.com/ClickHouse/ClickHouse/pull/71250) ([Christoph Wurm](https://github.com/cwurm)).
* Verifique a consulta de mutação completa antes de executá-la (incluindo subconsultas). Isso evita a execução acidental de uma consulta inválida e o acúmulo de mutações mortas que bloqueiam mutações válidas. [#71300](https://github.com/ClickHouse/ClickHouse/pull/71300) ([Christoph Wurm](https://github.com/cwurm)).
* Renomeada a configuração do cache do filesystem `skip_download_if_exceeds_query_cache` para `filesystem_cache_skip_download_if_exceeds_per_query_cache_write_limit`. [#71578](https://github.com/ClickHouse/ClickHouse/pull/71578) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Removido o suporte a argumentos `Enum`, bem como `UInt128` e `UInt256`, em `deltaSumTimestamp`. Removido o suporte a `Int8`, `UInt8`, `Int16` e `UInt16` no segundo argumento ("timestamp") de `deltaSumTimestamp`. [#71790](https://github.com/ClickHouse/ClickHouse/pull/71790) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ao recuperar dados diretamente de um dicionário usando o armazenamento Dictionary, a table function de dicionário ou um `SELECT` direto no próprio dicionário, agora basta ter a permissão `SELECT` ou a permissão `dictGet` para o dicionário. Isso está alinhado com tentativas anteriores de evitar contornos de ACL: [https://github.com/ClickHouse/ClickHouse/pull/57362](https://github.com/ClickHouse/ClickHouse/pull/57362) e [https://github.com/ClickHouse/ClickHouse/pull/65359](https://github.com/ClickHouse/ClickHouse/pull/65359). Isso também torna a segunda delas retrocompatível. [#72051](https://github.com/ClickHouse/ClickHouse/pull/72051) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).

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

* Implementa `allow_feature_tier` como um mecanismo global para desabilitar todos os recursos experimentais / beta. [#71841](https://github.com/ClickHouse/ClickHouse/pull/71841) [#71145](https://github.com/ClickHouse/ClickHouse/pull/71145) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige o possível erro `No such file or directory` devido a símbolos especiais não escapados em arquivos de subcolunas JSON. [#71182](https://github.com/ClickHouse/ClickHouse/pull/71182) ([Pavel Kruglov](https://github.com/Avogar)).
* Adiciona suporte a ALTER de String para JSON. Este PR também altera a serialização dos tipos JSON e Dynamic para a nova versão V2. A versão antiga V1 ainda pode ser usada ao habilitar a configuração `merge_tree_use_v1_object_and_dynamic_serialization` (ela pode ser usada durante a atualização para permitir reverter a versão sem problemas). [#70442](https://github.com/ClickHouse/ClickHouse/pull/70442) ([Pavel Kruglov](https://github.com/Avogar)).
* Implementa um CAST simples de Map/Tuple/Object para o novo JSON por meio de serialização/desserialização a partir de uma string JSON. [#71320](https://github.com/ClickHouse/ClickHouse/pull/71320) ([Pavel Kruglov](https://github.com/Avogar)).
* Não permite tipos Variant/Dynamic em ORDER BY/GROUP BY/PARTITION BY/PRIMARY KEY por padrão, porque isso pode levar a resultados inesperados. [#69731](https://github.com/ClickHouse/ClickHouse/pull/69731) ([Pavel Kruglov](https://github.com/Avogar)).
* Proíbe tipos Dynamic/Variant em funções min/max para evitar confusão. [#71761](https://github.com/ClickHouse/ClickHouse/pull/71761) ([Pavel Kruglov](https://github.com/Avogar)).

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

* Adicionada sintaxe SQL para descrever workload e gerenciamento de recursos. [https://clickhouse.com/docs/operations/workload-scheduling](https://clickhouse.com/docs/operations/workload-scheduling). [#69187](https://github.com/ClickHouse/ClickHouse/pull/69187) ([Sergei Trifonov](https://github.com/serxa)).
* Um novo tipo de dado, `BFloat16`, representa números de ponto flutuante de 16 bits, com expoente de 8 bits, sinal e mantissa de 7 bits. Isso encerra [#44206](https://github.com/ClickHouse/ClickHouse/issues/44206). Isso encerra [#49937](https://github.com/ClickHouse/ClickHouse/issues/49937). [#64712](https://github.com/ClickHouse/ClickHouse/pull/64712) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionada a consulta `CHECK GRANT` para verificar se o usuário/role atual recebeu o privilégio específico e se a tabela/coluna correspondente existe na memória. [#68885](https://github.com/ClickHouse/ClickHouse/pull/68885) ([Unalian](https://github.com/Unalian)).
* Adicionadas as funções de tabela `iceberg[S3;HDFS;Azure]Cluster`, `deltaLakeCluster`, `hudiCluster`. [#72045](https://github.com/ClickHouse/ClickHouse/pull/72045) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Adicionada a capacidade de definir usuário/senha em http\_handlers (para `dynamic_query_handler`/`predefined_query_handler`). [#70725](https://github.com/ClickHouse/ClickHouse/pull/70725) ([Azat Khuzhin](https://github.com/azat)).
* Adicionado suporte à cláusula de staleness no operador ORDER BY WITH FILL. [#71151](https://github.com/ClickHouse/ClickHouse/pull/71151) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Permite que cada método de autenticação tenha sua própria data de expiração, removendo essa configuração da entidade de usuário. [#70090](https://github.com/ClickHouse/ClickHouse/pull/70090) ([Arthur Passos](https://github.com/arthurpassos)).
* Adicionadas as novas funções `parseDateTime64`, `parseDateTime64OrNull` e `parseDateTime64OrZero`. Em comparação com a função existente `parseDateTime` (e variantes), elas retornam um valor do tipo `DateTime64` em vez de `DateTime`. [#71581](https://github.com/ClickHouse/ClickHouse/pull/71581) ([kevinyhzou](https://github.com/KevinyhZou)).

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

* Uso de memória otimizado para os valores da granularidade do índice quando a granularidade é constante para a parte. Foi adicionada a capacidade de sempre selecionar granularidade constante para a parte (configuração `use_const_adaptive_granularity`), o que ajuda a garantir que ela permaneça sempre otimizada em memória. Isso ajuda, em workloads grandes (trilhões de linhas em armazenamento compartilhado), a evitar o crescimento constante do uso de memória pelos metadados (valores da granularidade do índice) das partes de dados. [#71786](https://github.com/ClickHouse/ClickHouse/pull/71786) ([Anton Popov](https://github.com/CurtizJ)).
* Agora, as colunas dos blocos de entrada não são copiadas para `join_algorithm = 'parallel_hash'` ao distribuí-las entre threads para processamento paralelo. [#67782](https://github.com/ClickHouse/ClickHouse/pull/67782) ([Nikita Taranov](https://github.com/nickitat)).
* Algoritmo de mesclagem `Replacing` otimizado para partes sem sobreposição. [#70977](https://github.com/ClickHouse/ClickHouse/pull/70977) ([Anton Popov](https://github.com/CurtizJ)).
* Não listar partes detached em discos somente leitura e de gravação única nas métricas e em system.detached\_parts. [#71086](https://github.com/ClickHouse/ClickHouse/pull/71086) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Não calcule métricas assíncronas pesadas por padrão. A funcionalidade foi introduzida em [#40332](https://github.com/ClickHouse/ClickHouse/issues/40332), mas não é adequado ter um job pesado em segundo plano necessário para apenas um único cliente. [#71087](https://github.com/ClickHouse/ClickHouse/pull/71087) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Para os discos `plain_rewritable`: não faça chamadas à API de armazenamento de objetos ao listar diretórios, pois isso pode ser pouco eficiente em termos de custo. Em vez disso, armazene a lista de nomes de arquivo em memória. As desvantagens são o aumento no tempo de carga inicial e na memória necessária para armazenar os nomes de arquivo. [#70823](https://github.com/ClickHouse/ClickHouse/pull/70823) ([Julia Kartseva](https://github.com/jkartseva)).
* Melhore o desempenho e a precisão do intervalo de coleta de `system.query_metric_log` reduzindo a seção crítica. [#71473](https://github.com/ClickHouse/ClickHouse/pull/71473) ([Pablo Marcos](https://github.com/pamarcos)).
* Otimização da leitura em ordem por meio da geração de linhas virtuais, de modo que menos dados sejam lidos durante o merge sort, especialmente útil quando há várias partes. [#62125](https://github.com/ClickHouse/ClickHouse/pull/62125) ([Shichao Jin](https://github.com/jsc0218)).
* Adicionada a configuração no servidor `async_load_system_database`, que permite que o servidor seja iniciado com o banco de dados do sistema sem estar totalmente carregado. Isso ajuda a iniciar o ClickHouse mais rapidamente se houver muitas tabelas do sistema. [#69847](https://github.com/ClickHouse/ClickHouse/pull/69847) ([Sergei Trifonov](https://github.com/serxa)).
* Adicionado o parâmetro `--threads` ao `clickhouse-compressor`, o que permite compactar dados em paralelo. [#70860](https://github.com/ClickHouse/ClickHouse/pull/70860) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionada uma configuração `prewarm_mark_cache` que permite carregar marcas no cache de marcas em inserts, merges, fetches de partes e na inicialização da tabela. [#71053](https://github.com/ClickHouse/ClickHouse/pull/71053) ([Anton Popov](https://github.com/CurtizJ)).
* Ajusta o array index\_granularity na memória ao tamanho necessário para reduzir o consumo de memória da família de motores de tabela MergeTree. [#71595](https://github.com/ClickHouse/ClickHouse/pull/71595) ([alesapin](https://github.com/alesapin)).
* Desativa a configuração `boundary_alignment` do cache do sistema de arquivos para leituras sem disco, o que melhora o desempenho da leitura de arquivos remotos independentes com cache. [#71827](https://github.com/ClickHouse/ClickHouse/pull/71827) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Consultas como `SELECT * FROM table LIMIT ...` costumavam carregar os índices das partes, embora eles não fossem usados. [#71866](https://github.com/ClickHouse/ClickHouse/pull/71866) ([Alexander Gololobov](https://github.com/davenger)).
* Habilite `parallel_replicas_local_plan` por padrão. Criar um plano local completo no nó iniciador da consulta melhora o desempenho das réplicas paralelas com menor consumo de recursos e cria oportunidades para aplicar mais otimizações de consulta. [#70171](https://github.com/ClickHouse/ClickHouse/pull/70171) ([Igor Nikonov](https://github.com/devcrafter)).

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

* Permitir usar o clickhouse com um argumento de arquivo, como `ch queries.sql`. [#71589](https://github.com/ClickHouse/ClickHouse/pull/71589) ([Raúl Marín](https://github.com/Algunenano)).
* O formato `Vertical` (que também é ativado quando você termina sua consulta com `\G`) passa a contar com os recursos dos formatos Pretty, como: - destaque dos separadores de milhar em números; - exibição de uma dica numérica de fácil leitura. [#71630](https://github.com/ClickHouse/ClickHouse/pull/71630) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Propaga roles de usuários externos do nó de origem da consulta para outros nós do cluster. Útil quando apenas o nó de origem tem acesso ao autenticador externo (como LDAP). [#70332](https://github.com/ClickHouse/ClickHouse/pull/70332) ([Andrey Zvonov](https://github.com/zvonand)).
* Foram adicionados os aliases `anyRespectNulls`, `firstValueRespectNulls` e `anyValueRespectNulls` para a função de agregação `any`. Também foram adicionados os aliases `anyLastRespectNulls` e `lastValueRespectNulls` para a função de agregação `anyLast`. Isso permite usar uma sintaxe mais natural somente com camel case, em vez de uma sintaxe mista de camel case e underscore, por exemplo: `SELECT anyLastRespectNullsStateIf` em vez de `anyLast_respect_nullsStateIf`. [#71403](https://github.com/ClickHouse/ClickHouse/pull/71403) ([Peter Nguyen](https://github.com/petern48)).
* Adicionado o parâmetro de configuração `date_time_utc`, permitindo que a formatação de logs em JSON ofereça suporte a data e hora em UTC no formato RFC 3339/ISO8601. [#71560](https://github.com/ClickHouse/ClickHouse/pull/71560) ([Ali](https://github.com/xogoodnow)).
* Adicionado um novo tipo de cabeçalho para endpoints S3 para autenticação de usuário (`access_header`). Isso permite obter um cabeçalho de acesso com a menor prioridade, que será substituído por `access_key_id` de qualquer outra fonte (por exemplo, um esquema de tabela ou uma coleção nomeada). [#71011](https://github.com/ClickHouse/ClickHouse/pull/71011) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Funções de ordem superior com arrays constantes e argumentos capturados constantes retornarão valores constantes. [#58400](https://github.com/ClickHouse/ClickHouse/pull/58400) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Os nomes das etapas do plano de consulta (`EXPLAIN PLAN json=1`) e os nomes dos processadores do pipeline (`EXPLAIN PIPELINE compact=0,graph=1`) agora têm um ID exclusivo como sufixo. Isso permite correlacionar a saída do Profiler dos processadores e os traces do OpenTelemetry com a saída do EXPLAIN. [#63518](https://github.com/ClickHouse/ClickHouse/pull/63518) ([qhsong](https://github.com/qhsong)).
* Adicionada a opção de verificar se o objeto existe após ser gravado no Azure Blob Storage; isso é controlado pela configuração `check_objects_after_upload`. [#64847](https://github.com/ClickHouse/ClickHouse/pull/64847) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Usa o banco de dados `Atomic` por padrão no `clickhouse-local`. Resolve os itens 1 e 5 de [#50647](https://github.com/ClickHouse/ClickHouse/issues/50647). Fecha [#44817](https://github.com/ClickHouse/ClickHouse/issues/44817). [#68024](https://github.com/ClickHouse/ClickHouse/pull/68024) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* As exceções interrompem o protocolo HTTP para informar o cliente sobre o erro. [#68800](https://github.com/ClickHouse/ClickHouse/pull/68800) ([Sema Checherinda](https://github.com/CheSema)).
* Passa a informar os hosts que executam consultas de DDL distribuído ao criar replica\_dir e marca as réplicas como ativas no DDLWorker. [#69658](https://github.com/ClickHouse/ClickHouse/pull/69658) ([tuanpach](https://github.com/tuanpach)).
* Aguarde apenas réplicas ativas nas consultas de banco de dados ON CLUSTER se distributed\_ddl\_output\_mode estiver definido como \*\_only\_active. [#69660](https://github.com/ClickHouse/ClickHouse/pull/69660) ([tuanpach](https://github.com/tuanpach)).
* Melhoria no tratamento de erros e no cancelamento de backups e restaurações `ON CLUSTER`: - Se um backup ou uma restauração falhar em um host, será cancelado automaticamente nos outros hosts - Nenhum erro estranho deve ser gerado quando alguns hosts falharem enquanto outros continuarem o processamento - Se um backup ou uma restauração for cancelado em um host, será cancelado automaticamente nos outros hosts - Correção de problemas com `test_disallow_concurrency` - agora a desativação da concorrência deve funcionar melhor - Backups e restaurações agora são muito mais resistentes a desconexões do ZooKeeper. [#70027](https://github.com/ClickHouse/ClickHouse/pull/70027) ([Vitaly Baranov](https://github.com/vitlibar)).
* Adiciona suporte a `ALTER TABLE ... MODIFY/RESET SETTING ...` para determinadas configurações no armazenamento S3Queue. [#70811](https://github.com/ClickHouse/ClickHouse/pull/70811) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adicionada a possibilidade de recarregar certificados de cliente da mesma forma que no procedimento de recarga dos certificados do servidor. [#70997](https://github.com/ClickHouse/ClickHouse/pull/70997) ([Roman Antonov](https://github.com/Romeo58rus)).
* Permita configurar o tamanho do histórico do cliente e aumente o tamanho padrão. [#71014](https://github.com/ClickHouse/ClickHouse/pull/71014) ([Jiří Kozlovský](https://github.com/jirislav)).
* Suporte a tipos booleanos no leitor nativo de Parquet. [#71055](https://github.com/ClickHouse/ClickHouse/pull/71055) ([Arthur Passos](https://github.com/arthurpassos)).
* Repetir a tentativa em mais erros ao interagir com o S3, como "Malformed message". [#71088](https://github.com/ClickHouse/ClickHouse/pull/71088) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Redução do nível de log de algumas mensagens sobre S3. [#71090](https://github.com/ClickHouse/ClickHouse/pull/71090) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suporte para gravar arquivos HDFS com espaços. [#71105](https://github.com/ClickHouse/ClickHouse/pull/71105) ([exmy](https://github.com/exmy)).
* Adicionadas configurações para limitar o número de tabelas replicadas, dicionários e views. [#71179](https://github.com/ClickHouse/ClickHouse/pull/71179) ([Kirill](https://github.com/kirillgarbar)).
* Use `AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE` em vez de `AWS_CONTAINER_AUTHORIZATION_TOKEN` se ele estiver disponível. Corrige [#71074](https://github.com/ClickHouse/ClickHouse/issues/71074). [#71269](https://github.com/ClickHouse/ClickHouse/pull/71269) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Remove a criação do nó metadata\_version no ZooKeeper da thread de reinicialização do ReplicatedMergeTree. O único cenário em que precisamos criar esse nó é quando o usuário atualiza de uma versão anterior à 20.4 diretamente para uma posterior à 24.10. O ClickHouse não oferece suporte a atualizações que abrangem mais de um ano, portanto devemos lançar uma exceção e pedir ao usuário que atualize gradualmente, em vez de criar o nó. [#71385](https://github.com/ClickHouse/ClickHouse/pull/71385) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Adiciona ao dashboard avançado os dashboards por host `Overview (host)` e `Cloud overview (host)`. [#71422](https://github.com/ClickHouse/ClickHouse/pull/71422) ([alesapin](https://github.com/alesapin)).
* `clickhouse-local` usa `SELECT` implícito por padrão, o que permite utilizá-lo como calculadora. Melhorado o realce de sintaxe para o modo de `SELECT` implícito. [#71620](https://github.com/ClickHouse/ClickHouse/pull/71620) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Os aplicativos de linha de comando destacarão a sintaxe mesmo em múltiplas instruções. [#71622](https://github.com/ClickHouse/ClickHouse/pull/71622) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Aplicações de linha de comando retornarão códigos de saída diferentes de zero em caso de erro. Em versões anteriores, a aplicação `disks` retornava zero em caso de erro, e outras aplicações retornavam zero para os erros 256 (`PARTITION_ALREADY_EXISTS`) e 512 (`SET_NON_GRANTED_ROLE`). [#71623](https://github.com/ClickHouse/ClickHouse/pull/71623) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Quando o usuário/grupo é informado como ID, o `clickhouse su` falha. Este patch corrige isso para também aceitar `UID:GID`. [#71626](https://github.com/ClickHouse/ClickHouse/pull/71626) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Permite desativar o aumento do buffer de memória para o cache do sistema de arquivos por meio da configuração `filesystem_cache_prefer_bigger_buffer_size`. [#71640](https://github.com/ClickHouse/ClickHouse/pull/71640) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adicionada uma configuração separada `background_download_max_file_segment_size` para definir o tamanho máximo do segmento de arquivo em downloads em segundo plano no cache do sistema de arquivos. [#71648](https://github.com/ClickHouse/ClickHouse/pull/71648) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Melhoria sutil no parsing do tipo JSON: se o bloco atual para o caminho JSON contiver valores de vários tipos, tente escolher o tipo mais adequado testando os tipos em uma ordem especial de melhor esforço. [#71785](https://github.com/ClickHouse/ClickHouse/pull/71785) ([Pavel Kruglov](https://github.com/Avogar)).
* Antes, ler de `system.asynchronous_metrics` fazia com que fosse necessário aguardar a conclusão da atualização concorrente. Isso pode levar muito tempo se o sistema estiver sob alta carga. Com essa mudança, os valores coletados anteriormente sempre podem ser lidos. [#71798](https://github.com/ClickHouse/ClickHouse/pull/71798) ([Alexander Gololobov](https://github.com/davenger)).
* S3Queue e AzureQueue: defina `polling_max_timeout_ms` como 10 minutos e `polling_backoff_ms` como 30 segundos. [#71817](https://github.com/ClickHouse/ClickHouse/pull/71817) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Atualiza `HostResolver` três vezes durante um período de `history`. [#71863](https://github.com/ClickHouse/ClickHouse/pull/71863) ([Sema Checherinda](https://github.com/CheSema)).
* Na página HTML do Advanced dashboard, foi adicionado um seletor suspenso para escolher o dashboard a partir da tabela `system.dashboards`. [#72081](https://github.com/ClickHouse/ClickHouse/pull/72081) ([Sergei Trifonov](https://github.com/serxa)).
* Verifique se o banco de dados padrão está disponível após a autorização. Corrige [#71097](https://github.com/ClickHouse/ClickHouse/issues/71097). [#71140](https://github.com/ClickHouse/ClickHouse/pull/71140) ([Konstantin Bogdanov](https://github.com/thevar1able)).

<div id="bug-fix-user-visible-misbehavior-in-an-official-stable-release">
  #### Correção de bug (comportamento incorreto perceptível ao usuário em uma versão estável oficial)
</div>

* As partes deduplicadas durante a consulta `ATTACH PART` não ficam mais com o prefixo `attaching_`. [#65636](https://github.com/ClickHouse/ClickHouse/pull/65636) ([Kirill](https://github.com/kirillgarbar)).
* Correção de um bug em que o DateTime64 perdia precisão na função `IN`. [#67230](https://github.com/ClickHouse/ClickHouse/pull/67230) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige um possível erro lógico ao usar funções com `IGNORE/RESPECT NULLS` em `ORDER BY ... WITH FILL`; fecha [#57609](https://github.com/ClickHouse/ClickHouse/issues/57609). [#68234](https://github.com/ClickHouse/ClickHouse/pull/68234) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrigidos erros lógicos raros em inserções assíncronas com o formato `Native` quando o limite de memória é atingido. [#68965](https://github.com/ClickHouse/ClickHouse/pull/68965) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigido COMMENT em CREATE TABLE para coluna EPHEMERAL. [#70458](https://github.com/ClickHouse/ClickHouse/pull/70458) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige um erro lógico em JSONExtract com LowCardinality(Nullable). [#70549](https://github.com/ClickHouse/ClickHouse/pull/70549) ([Pavel Kruglov](https://github.com/Avogar)).
* Permitir system drop replica zkpath quando houver outra réplica com o mesmo caminho no zk. [#70642](https://github.com/ClickHouse/ClickHouse/pull/70642) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Corrige um crash e um vazamento de memória em AggregateFunctionGroupArraySorted. [#70820](https://github.com/ClickHouse/ClickHouse/pull/70820) ([Michael Kolupaev](https://github.com/al13n321)).
* Adicionada a capacidade de substituir o Content-Type por meio de cabeçalhos do usuário no engine URL. [#70859](https://github.com/ClickHouse/ClickHouse/pull/70859) ([Artem Iurin](https://github.com/ortyomka)).
* Corrigido erro lógico em `StorageS3Queue` "Não é possível criar um nó persistente em /processed porque ele já existe". [#70984](https://github.com/ClickHouse/ClickHouse/pull/70984) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigido o problema em que sessões nomeadas não eram encerradas e permaneciam travadas indefinidamente em determinadas circunstâncias. [#70998](https://github.com/ClickHouse/ClickHouse/pull/70998) ([Márcio Martins](https://github.com/marcio-absmartly)).
* Corrige o bug que não levava em conta a coluna \_row\_exists na opção de reconstrução da exclusão leve de projeções. [#71089](https://github.com/ClickHouse/ClickHouse/pull/71089) ([Shichao Jin](https://github.com/jsc0218)).
* Corrige o problema `AT_* is out of range` ao rodar no Oracle Linux UEK 6.10. [#71109](https://github.com/ClickHouse/ClickHouse/pull/71109) ([Örjan Fors](https://github.com/op)).
* Corrige valor incorreto no system.query\_metric\_log devido a uma condição de corrida inesperada. [#71124](https://github.com/ClickHouse/ClickHouse/pull/71124) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrige o nome incorreto da função de agregação quantileExactWeightedInterpolated. O bug foi introduzido em [https://github.com/ClickHouse/ClickHouse/pull/69619](https://github.com/ClickHouse/ClickHouse/pull/69619). cc @Algunenano. [#71168](https://github.com/ClickHouse/ClickHouse/pull/71168) ([李扬](https://github.com/taiyang-li)).
* Corrigida a exceção bad\_weak\_ptr com Dynamic na comparação de funções. [#71183](https://github.com/ClickHouse/ClickHouse/pull/71183) ([Pavel Kruglov](https://github.com/Avogar)).
* Verifica se o arquivo 7z lido está na máquina local. [#71184](https://github.com/ClickHouse/ClickHouse/pull/71184) ([Daniil Ivanik](https://github.com/divanik)).
* Corrigido problema em que as configurações de formato eram ignoradas no Native format via HTTP e em Async Inserts. [#71193](https://github.com/ClickHouse/ClickHouse/pull/71193) ([Pavel Kruglov](https://github.com/Avogar)).
* Consultas SELECT executadas com a configuração `use_query_cache = 1` não são mais rejeitadas se o nome de uma tabela de sistema aparecer como literal; por exemplo, `SELECT * FROM users WHERE name = 'system.metrics' SETTINGS use_query_cache = true;` agora funciona. [#71254](https://github.com/ClickHouse/ClickHouse/pull/71254) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige o bug de aumento no uso de memória quando enable\_filesystem\_cache=1 está habilitado, mas o disco na configuração de armazenamento não tem nenhuma configuração de cache. [#71261](https://github.com/ClickHouse/ClickHouse/pull/71261) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige o possível erro "Cannot read all data" durante a desserialização do Dicionário LowCardinality da coluna Dynamic. [#71299](https://github.com/ClickHouse/ClickHouse/pull/71299) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrigida a limpeza incompleta do formato de saída paralelo no cliente. [#71304](https://github.com/ClickHouse/ClickHouse/pull/71304) ([Raúl Marín](https://github.com/Algunenano)).
* Adicionada a desescapagem que faltava em named collections. Sem essa correção, o clickhouse-server não consegue iniciar. [#71308](https://github.com/ClickHouse/ClickHouse/pull/71308) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Corrige inserts assíncronos com blocos vazios via protocolo nativo. [#71312](https://github.com/ClickHouse/ClickHouse/pull/71312) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige a formatação inconsistente da AST ao conceder privilégios curingas incorretos [#71309](https://github.com/ClickHouse/ClickHouse/issues/71309). [#71332](https://github.com/ClickHouse/ClickHouse/pull/71332) ([pufit](https://github.com/pufit)).
* Adiciona try/catch aos destrutores das partes de dados para evitar `std::terminate`. [#71364](https://github.com/ClickHouse/ClickHouse/pull/71364) ([alesapin](https://github.com/alesapin)).
* Verificação de tipos suspeitos e experimentais nas indicações de tipo em JSON. [#71369](https://github.com/ClickHouse/ClickHouse/pull/71369) ([Pavel Kruglov](https://github.com/Avogar)).
* Inicia também a thread worker de memória em sistemas operacionais que não sejam Linux (corrige [#71051](https://github.com/ClickHouse/ClickHouse/issues/71051)). [#71384](https://github.com/ClickHouse/ClickHouse/pull/71384) ([Alexandre Snarskii](https://github.com/snar)).
* Corrige o erro Invalid number of rows in Chunk na coluna Variant. [#71388](https://github.com/ClickHouse/ClickHouse/pull/71388) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige o erro de coluna "attgenerated" inexistente em versões mais antigas do PostgreSQL; corrige [#60651](https://github.com/ClickHouse/ClickHouse/issues/60651). [#71396](https://github.com/ClickHouse/ClickHouse/pull/71396) ([0xMihalich](https://github.com/0xMihalich)).
* Para evitar poluir os logs do servidor, as tentativas de autenticação malsucedidas agora são registradas no nível `DEBUG` em vez de `ERROR`. [#71405](https://github.com/ClickHouse/ClickHouse/pull/71405) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrigido crash na função de tabela `mongodb` ao passar argumentos incorretos (por exemplo, `NULL`). [#71426](https://github.com/ClickHouse/ClickHouse/pull/71426) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrigida falha com optimize\_rewrite\_array\_exists\_to\_has. [#71432](https://github.com/ClickHouse/ClickHouse/pull/71432) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigido o uso da configuração `max_insert_delayed_streams_for_parallel_write` em inserções. Antes, ela funcionava de forma incorreta, o que podia levar a alto uso de memória em inserções que gravam dados em várias partições. [#71474](https://github.com/ClickHouse/ClickHouse/pull/71474) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige um possível erro `Argument for function must be constant` (analisador antigo) no caso em que `arrayJoin` aparentemente pode aparecer na condição `WHERE`. Regressão após [https://github.com/ClickHouse/ClickHouse/pull/65414](https://github.com/ClickHouse/ClickHouse/pull/65414). [#71476](https://github.com/ClickHouse/ClickHouse/pull/71476) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Evita falha no SortCursor com 0 colunas (analisador antigo). [#71494](https://github.com/ClickHouse/ClickHouse/pull/71494) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige `Date32` fora do intervalo causado por dados ORC não inicializados. Para mais detalhes, consulte [https://github.com/apache/incubator-gluten/issues/7823](https://github.com/apache/incubator-gluten/issues/7823). [#71500](https://github.com/ClickHouse/ClickHouse/pull/71500) ([李扬](https://github.com/taiyang-li)).
* Corrige a contagem do tamanho da coluna na parte wide para os tipos Dynamic e JSON. [#71526](https://github.com/ClickHouse/ClickHouse/pull/71526) ([Pavel Kruglov](https://github.com/Avogar)).
* Correção no analisador quando a consulta em uma visão materializada usa IN com CTE. Fecha [#65598](https://github.com/ClickHouse/ClickHouse/issues/65598). [#71538](https://github.com/ClickHouse/ClickHouse/pull/71538) ([Maksim Kita](https://github.com/kitaisreal)).
* Evita travamento ao usar uma UDF em uma restrição. [#71541](https://github.com/ClickHouse/ClickHouse/pull/71541) ([Raúl Marín](https://github.com/Algunenano)).
* Retorna 0 ou o caractere padrão em vez de gerar um erro nas funções bitShift em caso de acesso fora dos limites. [#71580](https://github.com/ClickHouse/ClickHouse/pull/71580) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrigidas falhas no servidor ao usar visão materializada com certos motores. [#71593](https://github.com/ClickHouse/ClickHouse/pull/71593) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Array join com uma estrutura de dados aninhada que contém um alias para um array constante estava causando uma desreferenciação de ponteiro nulo. Isso encerra [#71677](https://github.com/ClickHouse/ClickHouse/issues/71677). [#71678](https://github.com/ClickHouse/ClickHouse/pull/71678) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige LOGICAL\_ERROR ao executar ALTER com uma tupla vazia. Isso corrige [#71647](https://github.com/ClickHouse/ClickHouse/issues/71647). [#71679](https://github.com/ClickHouse/ClickHouse/pull/71679) ([Amos Bird](https://github.com/amosbird)).
* Não transforme um conjunto constante em predicados sobre colunas de partição no caso do operador NOT IN. [#71695](https://github.com/ClickHouse/ClickHouse/pull/71695) ([Eduard Karacharov](https://github.com/korowa)).
* Corrige a mensagem de log de falha do script de inicialização do Docker para ficar mais clara. [#71734](https://github.com/ClickHouse/ClickHouse/pull/71734) ([Андрей](https://github.com/andreineustroev)).
* Corrige CAST de LowCardinality(Nullable) para Dynamic. Antes, isso podia causar o erro `Bad cast from type DB::ColumnVector<int> to DB::ColumnNullable`. [#71742](https://github.com/ClickHouse/ClickHouse/pull/71742) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrigida a exceção em `toDayOfWeek` na cláusula `WHERE` com chave primária do tipo DateTime64. [#71849](https://github.com/ClickHouse/ClickHouse/pull/71849) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrigido o preenchimento de valores padrão após o parsing para colunas esparsas. [#71854](https://github.com/ClickHouse/ClickHouse/pull/71854) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige erro na função GROUPING quando a entrada é um ALIAS em tabela distribuída, fecha [#68602](https://github.com/ClickHouse/ClickHouse/issues/68602). [#71855](https://github.com/ClickHouse/ClickHouse/pull/71855) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige possível travamento ao usar `allow_experimental_join_condition`, fecha [#71693](https://github.com/ClickHouse/ClickHouse/issues/71693). [#71857](https://github.com/ClickHouse/ClickHouse/pull/71857) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrigidas instruções SELECT que usam a cláusula `WITH TIES` e podem não retornar linhas suficientes. [#71886](https://github.com/ClickHouse/ClickHouse/pull/71886) ([wxybear](https://github.com/wxybear)).
* Corrige a exceção TOO\_LARGE\_ARRAY\_SIZE causada quando uma coluna resultante da avaliação de arrayWithConstant é erroneamente considerada como excedendo o limite de tamanho do array. [#71894](https://github.com/ClickHouse/ClickHouse/pull/71894) ([Udi](https://github.com/udiz)).
* `clickhouse-benchmark` apresentou métricas incorretas para consultas que demoravam mais de um segundo. [#71898](https://github.com/ClickHouse/ClickHouse/pull/71898) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a corrida de dados entre o indicador de progresso e a tabela de progresso no clickhouse-client. Esse problema fica visível quando `FROM INFILE` é usado. Intercepta teclas pressionadas durante consultas `INSERT` para alternar a exibição da tabela de progresso. [#71901](https://github.com/ClickHouse/ClickHouse/pull/71901) ([Julia Kartseva](https://github.com/jkartseva)).
* Use Keepers auxiliares para a autodescoberta de clusters. [#71911](https://github.com/ClickHouse/ClickHouse/pull/71911) ([Anton Ivashkin](https://github.com/ianton-ru)).
* Corrigida a coluna rows\_processed em system.s3/azure\_queue\_log, que estava com problema na versão 24.6. Fecha [#69975](https://github.com/ClickHouse/ClickHouse/issues/69975). [#71946](https://github.com/ClickHouse/ClickHouse/pull/71946) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigido o caso em que as funções `s3`/`s3Cluster` podiam retornar um resultado incompleto ou lançar uma exceção. Isso ocorria ao usar um glob pattern na URI do S3 (como `pattern/*`) e quando existia um objeto vazio com a chave `pattern/` (esses objetos são criados automaticamente pelo S3 Console). Além disso, o valor padrão da configuração `s3_skip_empty_files` mudou de `false` para `true`. [#71947](https://github.com/ClickHouse/ClickHouse/pull/71947) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige um travamento no realce de sintaxe do `clickhouse-client`. Fecha [#71864](https://github.com/ClickHouse/ClickHouse/issues/71864). [#71949](https://github.com/ClickHouse/ClickHouse/pull/71949) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige o erro `Illegal type` em tabelas `MergeTree` com função monotônica binária em `ORDER BY` quando o primeiro argumento é constante. Corrige [#71941](https://github.com/ClickHouse/ClickHouse/issues/71941). [#71966](https://github.com/ClickHouse/ClickHouse/pull/71966) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Permitir apenas consultas SELECT em EXPLAIN AST quando usado dentro de subconsulta. Outros tipos de consultas levam ao erro lógico: 'Bad cast from type DB::ASTCreateQuery to DB::ASTSelectWithUnionQuery' ou `Inconsistent AST formatting`. [#71982](https://github.com/ClickHouse/ClickHouse/pull/71982) ([Pavel Kruglov](https://github.com/Avogar)).
* Ao inserir um registro com `clickhouse-client`, o cliente lê as descrições das colunas do servidor. Mas havia um bug: gravávamos as descrições na ordem errada; o correto é \[statistics, ttl, settings]. [#71991](https://github.com/ClickHouse/ClickHouse/pull/71991) ([Han Fei](https://github.com/hanfei1991)).
* Corrige a formatação dos comandos ALTER `MOVE PARTITION ... TO TABLE ...` quando `format_alter_commands_with_parentheses` está habilitado. [#72080](https://github.com/ClickHouse/ClickHouse/pull/72080) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige junções RIGHT / FULL em consultas com réplicas paralelas. Agora, junções RIGHT podem ser executadas com réplicas paralelas (a leitura da tabela à direita é distribuída). Junções FULL n'ão podem ser paralelizadas entre os nós e são executadas localmente. [#71162](https://github.com/ClickHouse/ClickHouse/pull/71162) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige o problema em que o ClickHouse em contêineres Docker escrevia "get\_mempolicy: Operation not permitted" na stderr devido a chamadas de sistema restritas. [#70900](https://github.com/ClickHouse/ClickHouse/pull/70900) ([filimonov](https://github.com/filimonov)).
* Corrige o registro metadata\_version no ZooKeeper na thread de reinicialização, em vez da thread de attach. [#70297](https://github.com/ClickHouse/ClickHouse/pull/70297) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Esta é uma correção para a replicação "zero-copy", que não tem suporte e será removida por completo. Não exclua um blob quando houver nós usando esse blob no ReplicatedMergeTree com replicação "zero-copy". [#71186](https://github.com/ClickHouse/ClickHouse/pull/71186) ([Antonio Andelic](https://github.com/antonio2368)).
* Esta é uma correção para a replicação "zero-copy", que não é compatível e será removida por completo. Aquisição de um bloqueio compartilhado zero-copy antes de mover uma parte para um disco zero-copy, para evitar possível perda de dados se o Keeper estiver indisponível. [#71845](https://github.com/ClickHouse/ClickHouse/pull/71845) ([Aleksei Filatov](https://github.com/aalexfvk)).

### <a id="2410" /> Lançamento do ClickHouse 24.10, 2024-10-31. [Apresentação](https://presentations.clickhouse.com/2024-release-24.10/), [Vídeo](https://www.youtube.com/watch?v=AamIAjURp4U)

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

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

* Agora é possível escrever `SETTINGS` antes de `FORMAT` em uma cadeia de consultas com `UNION` quando as subconsultas estiverem entre parênteses. Isso fecha [#39712](https://github.com/ClickHouse/ClickHouse/issues/39712). O comportamento também muda quando uma consulta tem a cláusula SETTINGS especificada duas vezes em sequência. A cláusula SETTINGS mais próxima terá preferência para a subconsulta correspondente. Nas versões anteriores, a cláusula SETTINGS mais externa podia ter preferência sobre a interna. [#68614](https://github.com/ClickHouse/ClickHouse/pull/68614) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A reordenação das condições de filtro da cláusula `[PRE]WHERE` agora é permitida por padrão. Isso pode ser desativado definindo `allow_reorder_prewhere_conditions` como `false`. [#70657](https://github.com/ClickHouse/ClickHouse/pull/70657) ([Nikita Taranov](https://github.com/nickitat)).
* Remove a biblioteca `idxd-config`, que tem uma licença incompatível. Isso também remove o codec Intel DeflateQPL experimental. [#70987](https://github.com/ClickHouse/ClickHouse/pull/70987) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Permite conceder acesso a prefixos com caractere curinga. `GRANT SELECT ON db.table_pefix_* TO user`. [#65311](https://github.com/ClickHouse/ClickHouse/pull/65311) ([pufit](https://github.com/pufit)).
* Se você pressionar a barra de espaço durante a execução da consulta, o cliente exibirá uma tabela em tempo real com métricas detalhadas. Você pode habilitá-la globalmente com a nova opção `--progress-table` no clickhouse-client; a nova opção `--enable-progress-table-toggle` está associada à opção `--progress-table` e alterna a exibição da tabela de progresso ao pressionar a tecla de controle (Space). [#63689](https://github.com/ClickHouse/ClickHouse/pull/63689) ([Maria Khristenko](https://github.com/mariaKhr)), [#70423](https://github.com/ClickHouse/ClickHouse/pull/70423) ([Julia Kartseva](https://github.com/jkartseva)).
* Permite usar cache para arquivos lidos em motores de tabela com armazenamento de objetos e lagos de dados, usando o hash de ETag + caminho do arquivo como chave de cache. [#70135](https://github.com/ClickHouse/ClickHouse/pull/70135) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Suporte à criação de uma tabela com uma consulta: `CREATE TABLE ... CLONE AS ...`. Isso clona o esquema da tabela de origem e depois anexa todas as partições à tabela recém-criada. Esse recurso é compatível apenas com tabelas da família `MergeTree`. Fecha [#65015](https://github.com/ClickHouse/ClickHouse/issues/65015). [#69091](https://github.com/ClickHouse/ClickHouse/pull/69091) ([tuanpach](https://github.com/tuanpach)).
* Adiciona uma nova tabela de sistema, `system.query_metric_log`, que contém o histórico dos valores de memória e de métricas da tabela `system.events` para consultas individuais, gravados em disco periodicamente. [#66532](https://github.com/ClickHouse/ClickHouse/pull/66532) ([Pablo Marcos](https://github.com/pamarcos)).
* Uma consulta SELECT simples pode ser escrita usando SELECT implícito para permitir expressões em estilo de calculadora, por exemplo, `ch "1 + 2"`. Isso é controlado por uma nova configuração, `implicit_select`. [#68502](https://github.com/ClickHouse/ClickHouse/pull/68502) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suporte ao modo `--copy` no clickhouse local como atalho para conversão de formato [#68503](https://github.com/ClickHouse/ClickHouse/issues/68503). [#68583](https://github.com/ClickHouse/ClickHouse/pull/68583) ([Denis Hananein](https://github.com/denis-hananein)).
* Adiciona uma página HTML integrada para visualizar merges, disponível no caminho `/merges`. [#70821](https://github.com/ClickHouse/ClickHouse/pull/70821) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado suporte à função `arrayUnion`. [#68989](https://github.com/ClickHouse/ClickHouse/pull/68989) ([Peter Nguyen](https://github.com/petern48)).
* Permitir aliases SQL com parâmetros. [#50665](https://github.com/ClickHouse/ClickHouse/pull/50665) ([Anton Kozlov](https://github.com/tonickkozlov)).
* Uma nova função de agregação `quantileExactWeightedInterpolated`, que é uma versão interpolada baseada em `quantileExactWeighted`. Algumas pessoas podem se perguntar por que precisamos de uma nova `quantileExactWeightedInterpolated`, já que já temos `quantileExactInterpolatedWeighted`. O motivo é que a nova é mais precisa que a antiga. Isso é para compatibilidade com o Spark. [#69619](https://github.com/ClickHouse/ClickHouse/pull/69619) ([李扬](https://github.com/taiyang-li)).
* Uma nova função `arrayElementOrNull`. Ela retorna `NULL` se o índice do array estiver fora do intervalo ou se uma chave do map não for encontrada. [#69646](https://github.com/ClickHouse/ClickHouse/pull/69646) ([李扬](https://github.com/taiyang-li)).
* Permite que os usuários especifiquem expressões regulares por meio dos novos campos `message_regexp` e `message_regexp_negative` no arquivo `config.xml` para filtrar o logging. O logging é aplicado ao texto formatado sem cores para proporcionar uma experiência mais intuitiva aos desenvolvedores. [#69657](https://github.com/ClickHouse/ClickHouse/pull/69657) ([Peter Nguyen](https://github.com/petern48)).
* Adicionada a função `RIPEMD160`, que calcula o hash criptográfico RIPEMD-160 de uma string. Exemplo: `SELECT HEX(RIPEMD160('The quick brown fox jumps over the lazy dog'))` retorna `37F332F68DB77BD9D7EDD4969571AD671CF9DD3B`. [#70087](https://github.com/ClickHouse/ClickHouse/pull/70087) ([Dergousov Maxim](https://github.com/m7kss1)).
* Suporte à leitura de tabelas `Iceberg` em `HDFS`. [#70268](https://github.com/ClickHouse/ClickHouse/pull/70268) ([flynn](https://github.com/ucasfl)).
* Suporte a CTE no formato `WITH ... INSERT`, já que anteriormente só havia suporte para `INSERT ... WITH ...`. [#70593](https://github.com/ClickHouse/ClickHouse/pull/70593) ([Shichao Jin](https://github.com/jsc0218)).
* Integração com MongoDB: suporte a todos os tipos do MongoDB, às instruções WHERE e ORDER BY no lado do MongoDB, com restrição para expressões não suportadas pelo MongoDB. Observe que a nova integração está desabilitada por padrão; para usá-la, defina `<use_legacy_mongodb_integration>` como `false` na configuração do servidor. [#63279](https://github.com/ClickHouse/ClickHouse/pull/63279) ([Kirill Nikiforov](https://github.com/allmazz)).
* Uma nova função `getSettingOrDefault` foi adicionada para retornar o valor padrão e evitar uma exceção caso uma configuração personalizada não seja encontrada no perfil atual. [#69917](https://github.com/ClickHouse/ClickHouse/pull/69917) ([Shankar](https://github.com/shiyer7474)).

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

* Views materializadas atualizáveis estão prontas para produção. [#70550](https://github.com/ClickHouse/ClickHouse/pull/70550) ([Michael Kolupaev](https://github.com/al13n321)). Views materializadas atualizáveis agora têm suporte em bancos de dados Replicated. [#60669](https://github.com/ClickHouse/ClickHouse/pull/60669) ([Michael Kolupaev](https://github.com/al13n321)).
* Réplicas paralelas passaram de experimental para beta. As configurações que controlam o comportamento dos algoritmos de réplicas paralelas foram reformuladas. Resumindo: o ClickHouse tem quatro algoritmos diferentes para leitura paralela envolvendo várias réplicas, o que se reflete na configuração `parallel_replicas_mode`; o valor padrão é `read_tasks`. Além disso, foi adicionada a configuração de alternância `enable_parallel_replicas`. [#63151](https://github.com/ClickHouse/ClickHouse/pull/63151) ([Alexey Milovidov](https://github.com/alexey-milovidov)), ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Suporte ao tipo `Dynamic` na maioria das funções, executando-as sobre tipos internos dentro de `Dynamic`. [#69691](https://github.com/ClickHouse/ClickHouse/pull/69691) ([Pavel Kruglov](https://github.com/Avogar)).
* Permite ler/gravar o tipo `JSON` como uma string binária no formato `RowBinary` com as configurações `input_format_binary_read_json_as_string/output_format_binary_write_json_as_string`. [#70288](https://github.com/ClickHouse/ClickHouse/pull/70288) ([Pavel Kruglov](https://github.com/Avogar)).
* Permite serializar/desserializar a coluna `JSON` como uma única coluna String no Native format. Para saída, use a configuração `output_format_native_write_json_as_string`. Para entrada, use a versão de serialização `1` antes dos dados da coluna. [#70312](https://github.com/ClickHouse/ClickHouse/pull/70312) ([Pavel Kruglov](https://github.com/Avogar)).
* Foi introduzido um modo especial (experimental) de merge selector para tabelas MergeTree, que o torna mais agressivo para partições próximas do limite de número de partes. Ele é controlado pela configuração em nível de MergeTree `merge_selector_use_blurry_base`. [#70645](https://github.com/ClickHouse/ClickHouse/pull/70645) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Implementa ser/de genérico entre os tipos `Union` do Avro e `Variant` do ClickHouse. Resolve [#69713](https://github.com/ClickHouse/ClickHouse/issues/69713). [#69712](https://github.com/ClickHouse/ClickHouse/pull/69712) ([Jiří Kozlovský](https://github.com/jirislav)).

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

* Refatoração de `IDisk` e `IObjectStorage` para melhorar o desempenho. As tabelas dos armazenamentos de objetos `plain` e `plain_rewritable` serão inicializadas mais rapidamente. [#68146](https://github.com/ClickHouse/ClickHouse/pull/68146) ([Alexey Milovidov](https://github.com/alexey-milovidov), [Julia Kartseva](https://github.com/jkartseva)). A API LIST do armazenamento de objetos não é mais chamada ao determinar se um arquivo ou diretório existe no disco plain\_rewritable, pois isso pode gerar custos desnecessários. [#70852](https://github.com/ClickHouse/ClickHouse/pull/70852) ([Julia Kartseva](https://github.com/jkartseva)). Redução do número de requisições à API HEAD do armazenamento de objetos no disco plain\_rewritable. [#70915](https://github.com/ClickHouse/ClickHouse/pull/70915) ([Julia Kartseva](https://github.com/jkartseva)).
* Adicionada a capacidade de interpretar dados diretamente em colunas esparsas. [#69828](https://github.com/ClickHouse/ClickHouse/pull/69828) ([Anton Popov](https://github.com/CurtizJ)).
* Melhorado o desempenho do parsing de formatos com um grande número de valores ausentes (por exemplo, `JSONEachRow`). [#69875](https://github.com/ClickHouse/ClickHouse/pull/69875) ([Anton Popov](https://github.com/CurtizJ)).
* Oferece suporte à leitura paralela de grupos de linhas do Parquet e ao pré-carregamento de grupos de linhas no modo de execução com uma única thread. [#69862](https://github.com/ClickHouse/ClickHouse/pull/69862) ([LiuNeng](https://github.com/liuneng1994)).
* Adicionado suporte ao índice minmax para `pointInPolygon`. [#62085](https://github.com/ClickHouse/ClickHouse/pull/62085) ([JackyWoo](https://github.com/JackyWoo)).
* Usa filtros de Bloom na leitura de arquivos Parquet. [#62966](https://github.com/ClickHouse/ClickHouse/pull/62966) ([Arthur Passos](https://github.com/arthurpassos)).
* Renomeação sem bloqueio das partes para evitar que `INSERT` afete `SELECT` (devido ao bloqueio das partes) (em condições normais com `fsync_part_directory`, o QPS de `SELECT` com `INSERT` em paralelo aumentou 2x; sob carga elevada, o efeito é ainda maior). Observe que, por enquanto, isso se aplica apenas a `ReplicatedMergeTree`. [#64955](https://github.com/ClickHouse/ClickHouse/pull/64955) ([Azat Khuzhin](https://github.com/azat)).
* Passa a respeitar `ttl_only_drop_parts` em `materialize ttl`; lê apenas as colunas necessárias para recalcular o TTL e remove as partes substituindo-as por uma vazia. [#65488](https://github.com/ClickHouse/ClickHouse/pull/65488) ([Andrey Zvonov](https://github.com/zvonand)).
* Otimizada a criação de threads no ThreadPool para minimizar a contenção em locks. A criação de threads agora é feita fora da seção crítica para evitar atrasos no agendamento de tarefas e no gerenciamento de threads em cenários de alta carga. Isso deixa o ClickHouse muito mais responsivo sob alta carga concorrente. [#68694](https://github.com/ClickHouse/ClickHouse/pull/68694) ([filimonov](https://github.com/filimonov)).
* Habilita a leitura de colunas de texto `LowCardinality` a partir de `ORC`. [#69481](https://github.com/ClickHouse/ClickHouse/pull/69481) ([李扬](https://github.com/taiyang-li)).
* Use `LowCardinality` para `ProfileEvents` em logs do sistema, como `part_log`, `query_views_log`, `filesystem_cache_log`. [#70152](https://github.com/ClickHouse/ClickHouse/pull/70152) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Melhora no desempenho das funções `fromUnixTimestamp`/`toUnixTimestamp`. [#71042](https://github.com/ClickHouse/ClickHouse/pull/71042) ([kevinyhzou](https://github.com/KevinyhZou)).
* Não desative a leitura não bloqueante do cache de páginas para o servidor inteiro ao ler a partir de uma E/S bloqueante. Isso causava piora no desempenho quando um único sistema de arquivos (por exemplo, tmpfs) não oferecia suporte à syscall `preadv2`, enquanto outros ofereciam. [#70299](https://github.com/ClickHouse/ClickHouse/pull/70299) ([Antonio Andelic](https://github.com/antonio2368)).
* `ALTER TABLE .. REPLACE PARTITION` não espera mais por mutações/merges que ocorram em outras partições. [#59138](https://github.com/ClickHouse/ClickHouse/pull/59138) ([Vasily Nemkov](https://github.com/Enmk)).
* Não validar as ACLs ao sincronizá-las do Keeper. A validação já é feita durante a criação. Isso não deve fazer tanta diferença, mas há instalações com dezenas de milhares ou até mais usuários criados, e a validação desnecessária de hash pode levar muito tempo para ser concluída durante a inicialização do servidor (ele sincroniza tudo do Keeper). [#70644](https://github.com/ClickHouse/ClickHouse/pull/70644) ([Raúl Marín](https://github.com/Algunenano)).

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

* `CREATE TABLE AS` copiará a `PRIMARY KEY`, `ORDER BY` e cláusulas semelhantes (de tabelas `MergeTree`). [#69739](https://github.com/ClickHouse/ClickHouse/pull/69739) ([sakulali](https://github.com/sakulali)).
* Suporte a XID de 64 bits no Keeper. Isso pode ser habilitado com o valor de configuração `use_xid_64`. [#69908](https://github.com/ClickHouse/ClickHouse/pull/69908) ([Antonio Andelic](https://github.com/antonio2368)).
* Argumentos de linha de comando para configurações Bool passam a ser definidos como true quando nenhum valor é fornecido para o argumento (por exemplo, `clickhouse-client --optimize_aggregation_in_order --query "SELECT 1"`). [#70459](https://github.com/ClickHouse/ClickHouse/pull/70459) ([davidtsuk](https://github.com/davidtsuk)).
* Adicionadas configurações no nível do usuário `min_free_disk_bytes_to_perform_insert` e `min_free_disk_perform_to_throw_insert` para evitar inserções em discos quase cheios. [#69755](https://github.com/ClickHouse/ClickHouse/pull/69755) ([Marco Vilas Boas](https://github.com/marco-vb)).
* A documentação embutida das configurações será muito mais detalhada e completa do que a documentação no site. Este é o primeiro passo para que a documentação do site passe a ser sempre gerada automaticamente a partir do código-fonte. Isso tem implicações duradouras: - ficará garantido que todas as configurações estejam incluídas; - não haverá risco de os valores padrão ficarem obsoletos; - poderemos gerar essa documentação para cada versão do ClickHouse; - a documentação poderá ser exibida pelo próprio servidor mesmo sem acesso à Internet. Gerar a documentação do site a partir do código-fonte. [#70289](https://github.com/ClickHouse/ClickHouse/pull/70289) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permitir `needle` vazio na função `replace`, com o mesmo comportamento do PostgreSQL. [#69918](https://github.com/ClickHouse/ClickHouse/pull/69918) ([zhanglistar](https://github.com/zhanglistar)).
* Permitir `needle` vazio nas funções `replaceRegexp*`. [#70053](https://github.com/ClickHouse/ClickHouse/pull/70053) ([zhanglistar](https://github.com/zhanglistar)).
* Links simbólicos para tabelas no diretório `data/database_name/` passam a ser criados para os caminhos reais dos dados da tabela, de acordo com a política de armazenamento, em vez do diretório `store/...` no disco padrão. [#61777](https://github.com/ClickHouse/ClickHouse/pull/61777) ([Kirill](https://github.com/kirillgarbar)).
* Ao fazer o parsing de um campo `Enum` de `JSON`, uma string que contém um inteiro será interpretada como o elemento `Enum` correspondente. Isso fecha [#65119](https://github.com/ClickHouse/ClickHouse/issues/65119). [#66801](https://github.com/ClickHouse/ClickHouse/pull/66801) ([scanhex12](https://github.com/scanhex12)).
* Permite usar `TRIM` com string vazia em `LEADING` ou `TRAILING` sem efeito. Fecha [#67792](https://github.com/ClickHouse/ClickHouse/issues/67792). [#68455](https://github.com/ClickHouse/ClickHouse/pull/68455) ([Peter Nguyen](https://github.com/petern48)).
* Melhorada a compatibilidade de `cast(timestamp as String)` com o Spark. [#69179](https://github.com/ClickHouse/ClickHouse/pull/69179) ([Wenzheng Liu](https://github.com/lwz9103)).
* Sempre use o novo analisador para calcular expressões constantes quando `enable_analyzer` estiver definido como `true`. Suporte para calcular argumentos da função de tabela `executable` sem usar a consulta `SELECT` para expressões constantes. [#69292](https://github.com/ClickHouse/ClickHouse/pull/69292) ([Dmitry Novik](https://github.com/novikd)).
* Adiciona a configuração `enable_secure_identifiers` para impedir identificadores com caracteres especiais. [#69411](https://github.com/ClickHouse/ClickHouse/pull/69411) ([tuanpach](https://github.com/tuanpach)).
* Adiciona `show_create_query_identifier_quoting_rule` para definir o comportamento de aspas em identificadores no resultado da consulta `SHOW CREATE TABLE`. Valores possíveis: - `user_display`: Quando os identificadores forem palavras-chave. - `when_necessary`: Quando os identificadores forem um de `{"distinct", "all", "table"}` e quando isso puder gerar ambiguidade: nomes de coluna, nomes de atributos de Dicionário. - `always`: Sempre colocar aspas nos identificadores. [#69448](https://github.com/ClickHouse/ClickHouse/pull/69448) ([tuanpach](https://github.com/tuanpach)).
* Melhora na restauração das dependências das entidades de acesso [#69563](https://github.com/ClickHouse/ClickHouse/pull/69563) ([Vitaly Baranov](https://github.com/vitlibar)).
* Se você executar o `clickhouse-client` ou outro aplicativo de CLI, e ele demorar para iniciar devido a um servidor sobrecarregado, e você começar a digitar sua consulta, como `SELECT`, as versões anteriores exibirão o restante do conteúdo do terminal ecoado antes de imprimir a mensagem de saudação, como `SELECTClickHouse local version 24.10.1.1.` em vez de `ClickHouse local version 24.10.1.1.`. Agora isso foi corrigido. Isso encerra [#31696](https://github.com/ClickHouse/ClickHouse/issues/31696). [#69856](https://github.com/ClickHouse/ClickHouse/pull/69856) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionada a nova coluna `readonly_duration` à tabela `system.replicas`. Necessária para distinguir réplicas realmente em somente leitura das réplicas sentinela nos alertas. [#69871](https://github.com/ClickHouse/ClickHouse/pull/69871) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Altere o tipo da configuração `join_output_by_rowlist_perkey_rows_threshold` para um inteiro sem sinal. [#69886](https://github.com/ClickHouse/ClickHouse/pull/69886) ([kevinyhzou](https://github.com/KevinyhZou)).
* Melhora o logging de spans do OpenTelemetry para incluir as configurações da consulta. [#70011](https://github.com/ClickHouse/ClickHouse/pull/70011) ([sharathks118](https://github.com/sharathks118)).
* Adicionar informações de diagnóstico sobre funções de array de ordem superior quando o tipo de resultado da lambda for inesperado. [#70093](https://github.com/ClickHouse/ClickHouse/pull/70093) ([ttanay](https://github.com/ttanay)).
* Melhoria no Keeper: menos bloqueios durante alterações no cluster. [#70275](https://github.com/ClickHouse/ClickHouse/pull/70275) ([Antonio Andelic](https://github.com/antonio2368)).
* Adicionadas as palavras-chave `WITH IMPLICIT` e `FINAL` ao comando `SHOW GRANTS`. Corrigido um pequeno bug relacionado a privilégios implícitos: [#70094](https://github.com/ClickHouse/ClickHouse/issues/70094). [#70293](https://github.com/ClickHouse/ClickHouse/pull/70293) ([pufit](https://github.com/pufit)).
* Passa a respeitar `compatibility` nas configurações do MergeTree. O valor de `compatibility` é obtido do perfil `default` na inicialização do servidor, e as configurações padrão do MergeTree são ajustadas de acordo. Alterações posteriores na configuração `compatibility` não afetam as configurações do MergeTree. [#70322](https://github.com/ClickHouse/ClickHouse/pull/70322) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Evite encher os logs com corpos grandes de resposta HTTP em caso de erros durante a comunicação entre servidores. [#70487](https://github.com/ClickHouse/ClickHouse/pull/70487) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Foi adicionada uma nova configuração `max_parts_to_move` para controlar o número máximo de partes que podem ser movidas de uma vez. [#70520](https://github.com/ClickHouse/ClickHouse/pull/70520) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Limita a frequência de determinadas mensagens de log. [#70601](https://github.com/ClickHouse/ClickHouse/pull/70601) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `CHECK TABLE` com o modificador `PART` foi formatado incorretamente no cliente. [#70660](https://github.com/ClickHouse/ClickHouse/pull/70660) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suporte à gravação do índice de coluna e do índice de deslocamento usando o gravador nativo do Parquet. [#70669](https://github.com/ClickHouse/ClickHouse/pull/70669) ([LiuNeng](https://github.com/liuneng1994)).
* Suporte ao parsing de `DateTime64` com microssegundos e fuso horário na sintaxe Joda ("joda" é uma biblioteca Java popular para data e hora, e a "sintaxe Joda" é o estilo dessa biblioteca). [#70737](https://github.com/ClickHouse/ClickHouse/pull/70737) ([kevinyhzou](https://github.com/KevinyhZou)).
* Foi alterada a forma de determinar se um armazenamento em nuvem oferece suporte à [exclusão em lote](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html) ou não. [#70786](https://github.com/ClickHouse/ClickHouse/pull/70786) ([Vitaly Baranov](https://github.com/vitlibar)).
* Suporte à página v2 do Parquet no leitor nativo. [#70807](https://github.com/ClickHouse/ClickHouse/pull/70807) ([Arthur Passos](https://github.com/arthurpassos)).
* Uma verificação para conferir se a tabela tem `storage_policy` e `disk` definidos. Foi adicionada uma verificação para conferir se uma nova política de armazenamento é compatível com a anterior ao usar a configuração `disk`. [#70839](https://github.com/ClickHouse/ClickHouse/pull/70839) ([Kirill](https://github.com/kirillgarbar)).
* Adicionados `system.s3_queue_settings` e `system.azure_queue_settings`. [#70841](https://github.com/ClickHouse/ClickHouse/pull/70841) ([Kseniia Sumarokova](https://github.com/kssenii)).
* As funções `base58Encode` e `base58Decode` agora aceitam argumentos do tipo `FixedString`. Exemplo: `SELECT base58Encode(toFixedString('plaintext', 9));`. [#70846](https://github.com/ClickHouse/ClickHouse/pull/70846) ([Faizan Patel](https://github.com/faizan2786)).
* Adiciona a coluna `partition` a todos os tipos de entrada do log de partes. Anteriormente, ela era preenchida apenas para algumas entradas. Isso fecha [#70819](https://github.com/ClickHouse/ClickHouse/issues/70819). [#70848](https://github.com/ClickHouse/ClickHouse/pull/70848) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona os eventos `MergeStart` e `MutateStart` ao `system.part_log`, o que ajuda na análise e na visualização de merges. [#70850](https://github.com/ClickHouse/ClickHouse/pull/70850) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado um evento de perfil sobre o número de partes de origem mescladas. Isso permite monitorar o fanout da MergeTree em produção. [#70908](https://github.com/ClickHouse/ClickHouse/pull/70908) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Os downloads em segundo plano para o cache do sistema de arquivos foram habilitados novamente. [#70929](https://github.com/ClickHouse/ClickHouse/pull/70929) ([Nikita Taranov](https://github.com/nickitat)).
* Adiciona um novo algoritmo seletor de merge, chamado `Trivial`, apenas para uso profissional. Ele é inferior ao seletor de merge `Simple`. [#70969](https://github.com/ClickHouse/ClickHouse/pull/70969) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suporte a `CREATE OR REPLACE VIEW` atômico. [#70536](https://github.com/ClickHouse/ClickHouse/pull/70536) ([tuanpach](https://github.com/tuanpach))
* Adicionado o modo `strict_once` à função de agregação `windowFunnel` para evitar contar o mesmo evento várias vezes caso ele corresponda a várias condições, resolvendo [#21835](https://github.com/ClickHouse/ClickHouse/issues/21835). [#69738](https://github.com/ClickHouse/ClickHouse/pull/69738) ([Vladimir Cherkasov](https://github.com/vdimir)).

<div id="bug-fix-user-visible-misbehavior-in-an-official-stable-release-2">
  #### Correção de bug (comportamento incorreto visível ao usuário em uma versão estável oficial)
</div>

* Aplicar atualizações de configuração ao objeto de contexto global. Isso corrige problemas como o [#62308](https://github.com/ClickHouse/ClickHouse/issues/62308). [#62944](https://github.com/ClickHouse/ClickHouse/pull/62944) ([Amos Bird](https://github.com/amosbird)).
* Correção de `ReadSettings`, que não usava os valores definidos pelo usuário, pois apenas os valores padrão eram usados. [#65625](https://github.com/ClickHouse/ClickHouse/pull/65625) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige a incompatibilidade de tipos em `sumMapFiltered` ao usar argumentos com sinal. [#58408](https://github.com/ClickHouse/ClickHouse/pull/58408) ([Chen768959](https://github.com/Chen768959)).
* Correção na monotonicidade de funções de conversão como toHour quando um argumento opcional de fuso horário é fornecido. [#60264](https://github.com/ClickHouse/ClickHouse/pull/60264) ([Amos Bird](https://github.com/amosbird)).
* Verificação `supportsPrewhere` flexibilizada para tabelas `Merge`. Isso corrige [#61064](https://github.com/ClickHouse/ClickHouse/issues/61064). Ela havia sido reforçada desnecessariamente em [#60082](https://github.com/ClickHouse/ClickHouse/issues/60082). [#61091](https://github.com/ClickHouse/ClickHouse/pull/61091) ([Amos Bird](https://github.com/amosbird)).
* Corrige o tratamento da configuração `use_concurrency_control` para garantir a aplicação correta do limite `concurrent_threads_soft_limit_num`. Isso ativa o controle de concorrência por padrão, porque antes ele não funcionava corretamente. [#61473](https://github.com/ClickHouse/ClickHouse/pull/61473) ([Sergei Trifonov](https://github.com/serxa)).
* Corrige a otimização incorreta da cláusula `JOIN ON` no caso de verificação de `IS NULL` sob qualquer outra função (como `NOT`), o que pode levar a resultados incorretos. Fecha [#67915](https://github.com/ClickHouse/ClickHouse/issues/67915). [#68049](https://github.com/ClickHouse/ClickHouse/pull/68049) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Impedir consultas `ALTER` que invalidariam a consulta `CREATE` das tabelas. [#68574](https://github.com/ClickHouse/ClickHouse/pull/68574) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige a formatação inconsistente da AST para as funções `negate` (`-`) e `NOT` com tuplas e arrays. [#68600](https://github.com/ClickHouse/ClickHouse/pull/68600) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige a inserção de um tipo incompleto em `Dynamic` durante a desserialização. Isso pode levar a erros `Parameter out of bound`. [#69291](https://github.com/ClickHouse/ClickHouse/pull/69291) ([Pavel Kruglov](https://github.com/Avogar)).
* Replicação zero-copy, que é experimental e não deve ser usada em produção: corrige loop infinito após `restore replica` na MergeTree replicada com zero-copy. [#69293](https://github.com/CljmnickHouse/ClickHouse/pull/69293) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Restaura o valor padrão de `processing_threads_num` para o número de núcleos da CPU no armazenamento `S3Queue`. [#69384](https://github.com/ClickHouse/ClickHouse/pull/69384) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Contorna o fluxo de `try/catch` ao de/serializar protobuf aninhado repetido em colunas aninhadas (corrige [#41971](https://github.com/ClickHouse/ClickHouse/issues/41971)). [#69556](https://github.com/ClickHouse/ClickHouse/pull/69556) ([Eliot Hautefeuille](https://github.com/hileef)).
* Corrigida uma falha ao inserir em uma coluna FixedString no mecanismo PostgreSQL. [#69584](https://github.com/ClickHouse/ClickHouse/pull/69584) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrigida a falha ao executar `create view t as (with recursive 42 as ttt select ttt);`. [#69676](https://github.com/ClickHouse/ClickHouse/pull/69676) ([Han Fei](https://github.com/hanfei1991)).
* Corrigido `maxMapState`, que gerava 'Bad get' quando o tipo do valor era DateTime64. [#69787](https://github.com/ClickHouse/ClickHouse/pull/69787) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige `getSubcolumn` em colunas `LowCardinality`, sobrescrevendo `useDefaultImplementationForLowCardinalityColumns` para retornar `true`. [#69831](https://github.com/ClickHouse/ClickHouse/pull/69831) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrigido o bloqueio permanente de envios distribuídos caso um DROP de tabela distribuída falhasse. [#69843](https://github.com/ClickHouse/ClickHouse/pull/69843) ([Azat Khuzhin](https://github.com/azat)).
* Corrige consultas não canceláveis com WITH FILL e chaves NaN. Isso fecha [#69261](https://github.com/ClickHouse/ClickHouse/issues/69261). [#69845](https://github.com/ClickHouse/ClickHouse/pull/69845) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ajusta o valor padrão do analyzer para o valor de compatibilidade antigo. [#69895](https://github.com/ClickHouse/ClickHouse/pull/69895) ([Raúl Marín](https://github.com/Algunenano)).
* Não verificar dependências durante CREATE OR REPLACE VIEW ao executar DROP da tabela antiga. Antes, a consulta CREATE OR REPLACE falhava quando havia tabelas dependentes da view recriada. [#69907](https://github.com/ClickHouse/ClickHouse/pull/69907) ([Pavel Kruglov](https://github.com/Avogar)).
* Ajuste para Decimal. Corrige [#69730](https://github.com/ClickHouse/ClickHouse/issues/69730). [#69978](https://github.com/ClickHouse/ClickHouse/pull/69978) ([Arthur Passos](https://github.com/arthurpassos)).
* Agora, DEFINER/INVOKER passarão a funcionar com views parametrizadas. [#69984](https://github.com/ClickHouse/ClickHouse/pull/69984) ([pufit](https://github.com/pufit)).
* Corrige o parsing dos definidores de view. [#69985](https://github.com/ClickHouse/ClickHouse/pull/69985) ([pufit](https://github.com/pufit)).
* Corrigido um bug em que o fuso horário podia alterar o resultado da consulta com argumentos do tipo `Date` ou `Date32`. [#70036](https://github.com/ClickHouse/ClickHouse/pull/70036) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige `Block structure mismatch` em consultas com views aninhadas e cláusula `WHERE`. Corrige [#66209](https://github.com/ClickHouse/ClickHouse/issues/66209). [#70054](https://github.com/ClickHouse/ClickHouse/pull/70054) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Evite reutilizar colunas em diferentes tuplas nomeadas ao avaliar funções `tuple`. Isso corrige [#70022](https://github.com/ClickHouse/ClickHouse/issues/70022). [#70103](https://github.com/ClickHouse/ClickHouse/pull/70103) ([Amos Bird](https://github.com/amosbird)).
* Correção de LOGICAL\_ERROR incorreto ao substituir literais em intervalos. [#70122](https://github.com/ClickHouse/ClickHouse/pull/70122) ([Pablo Marcos](https://github.com/pamarcos)).
* Verificação do tipo Nullable(Nothing) em ALTER TABLE MODIFY COLUMN/QUERY para evitar tabelas com esse tipo de dado. [#70123](https://github.com/ClickHouse/ClickHouse/pull/70123) ([Pavel Kruglov](https://github.com/Avogar)).
* Mensagem de erro apropriada para a consulta ilegal `JOIN ... ON *` , fecha [#68650](https://github.com/ClickHouse/ClickHouse/issues/68650). [#70124](https://github.com/ClickHouse/ClickHouse/pull/70124) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrigido resultado incorreto com índice de skipping. [#70127](https://github.com/ClickHouse/ClickHouse/pull/70127) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigida uma condição de corrida no método de descompressão de ColumnObject/ColumnTuple que poderia levar ao uso de memória heap após a liberação. [#70137](https://github.com/ClickHouse/ClickHouse/pull/70137) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige possível travamento no ALTER COLUMN com o tipo Dynamic. [#70144](https://github.com/ClickHouse/ClickHouse/pull/70144) ([Pavel Kruglov](https://github.com/Avogar)).
* Agora, o ClickHouse passará a considerar mais erros como passíveis de nova tentativa e não marcará as partes de dados como corrompidas em caso de erros desse tipo. [#70145](https://github.com/ClickHouse/ClickHouse/pull/70145) ([alesapin](https://github.com/alesapin)).
* Use o parâmetro `max_types` adequado ao criar o tipo Dynamic para a subcoluna JSON. [#70147](https://github.com/ClickHouse/ClickHouse/pull/70147) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrigido o problema de exibição da senha em `system.query_log` para usuários com método de autenticação por senha bcrypt. [#70148](https://github.com/ClickHouse/ClickHouse/pull/70148) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrigido o contador de eventos da interface nativa (InterfaceNativeSendBytes). [#70153](https://github.com/ClickHouse/ClickHouse/pull/70153) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige possível travamento relacionado a colunas JSON. [#70172](https://github.com/ClickHouse/ClickHouse/pull/70172) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige diversos problemas no arrayMin e no arrayMax. [#70207](https://github.com/ClickHouse/ClickHouse/pull/70207) ([Raúl Marín](https://github.com/Algunenano)).
* Respeita a configuração allow\_simdjson no parser do tipo JSON. [#70218](https://github.com/ClickHouse/ClickHouse/pull/70218) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige uma desreferenciação de ponteiro nulo ao criar uma visão materializada com dois `SELECT`s e um `INTERSECT`, por exemplo `CREATE MATERIALIZED VIEW v0 AS (SELECT 1) INTERSECT (SELECT 1);`. [#70264](https://github.com/ClickHouse/ClickHouse/pull/70264) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Não modifique as configurações globais com scripts de inicialização. Antes, alterar uma configuração em um script de inicialização fazia com que ela fosse alterada globalmente. [#70310](https://github.com/ClickHouse/ClickHouse/pull/70310) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige o ALTER do tipo `Dynamic` ao reduzir o parâmetro max\_types, o que poderia causar uma falha no servidor. [#70328](https://github.com/ClickHouse/ClickHouse/pull/70328) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige uma falha ao usar `WITH FILL` incorretamente. [#70338](https://github.com/ClickHouse/ClickHouse/pull/70338) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige um possível use-after-free em `SYSTEM DROP FORMAT SCHEMA CACHE FOR Protobuf`. [#70358](https://github.com/ClickHouse/ClickHouse/pull/70358) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido travamento durante GROUP BY de subcoluna de subobjeto JSON. [#70374](https://github.com/ClickHouse/ClickHouse/pull/70374) ([Pavel Kruglov](https://github.com/Avogar)).
* Não faça o pré-carregamento de partes para mesclagens verticais se a parte não tiver linhas. [#70452](https://github.com/ClickHouse/ClickHouse/pull/70452) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigida falha em `WHERE` com funções lambda. [#70464](https://github.com/ClickHouse/ClickHouse/pull/70464) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigida a criação de tabelas com `CREATE ... AS table_function(...)` em banco de dados `Replicated`, quando a fonte da função de tabela está indisponível na réplica secundária. [#70511](https://github.com/ClickHouse/ClickHouse/pull/70511) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ignore toda a saída do async insert com `wait_for_async_insert=1`. Fecha [#62644](https://github.com/ClickHouse/ClickHouse/issues/62644). [#70530](https://github.com/ClickHouse/ClickHouse/pull/70530) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Ignora frozen\_metadata.txt ao percorrer o diretório shadow em system.remote\_data\_paths. [#70590](https://github.com/ClickHouse/ClickHouse/pull/70590) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Corrigida a criação de funções de janela com estado em memória desalinhada. [#70631](https://github.com/ClickHouse/ClickHouse/pull/70631) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigidas falhas raras em `SELECT`-s e merges após adicionar uma coluna do tipo `Array` com expressão padrão não vazia. [#70695](https://github.com/ClickHouse/ClickHouse/pull/70695) ([Anton Popov](https://github.com/CurtizJ)).
* A inserção na função de tabela s3 respeitará as configurações da consulta. [#70696](https://github.com/ClickHouse/ClickHouse/pull/70696) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige a recursão infinita ao inferir o esquema protobuf quando a opção de ignorar campos sem suporte está habilitada. [#70697](https://github.com/ClickHouse/ClickHouse/pull/70697) ([Raúl Marín](https://github.com/Algunenano)).
* Desativa enable\_named\_columns\_in\_function\_tuple por padrão. [#70833](https://github.com/ClickHouse/ClickHouse/pull/70833) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige a configuração processing\_threads\_num do engine de tabela S3Queue, que não surtia efeito quando era inferida a partir do número de núcleos de CPU no servidor. [#70837](https://github.com/ClickHouse/ClickHouse/pull/70837) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Normaliza argumentos de tupla nomeada em estados de agregação. Isso corrige [#69732](https://github.com/ClickHouse/ClickHouse/issues/69732). [#70853](https://github.com/ClickHouse/ClickHouse/pull/70853) ([Amos Bird](https://github.com/amosbird)).
* Corrige um erro lógico causado por zeros negativos na tabela hash de dois níveis. Isso fecha [#70973](https://github.com/ClickHouse/ClickHouse/issues/70973). [#70979](https://github.com/ClickHouse/ClickHouse/pull/70979) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige `limit by` e `limit with ties` em ambientes distribuídos e com réplicas paralelas. [#70880](https://github.com/ClickHouse/ClickHouse/pull/70880) ([Nikita Taranov](https://github.com/nickitat)).

### <a id="249" /> Lançamento do ClickHouse 24.9, 2024-09-26. [Apresentação](https://presentations.clickhouse.com/2024-release-24.9/), [Vídeo](https://www.youtube.com/watch?v=ray6wJGCHbs)

<Frame>
  <iframe src="https://www.youtube.com/embed/ray6wJGCHbs" 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>

* Expressões como `a[b].c` agora são suportadas para tuplas nomeadas, assim como subscritos nomeados em expressões arbitrárias, por exemplo, `expr().name`. Isso é útil para processar JSON. Isso fecha [#54965](https://github.com/ClickHouse/ClickHouse/issues/54965). Em versões anteriores, uma expressão na forma `expr().name` era interpretada como `tupleElement(expr(), name)`, e o analisador de consultas procurava uma coluna `name` em vez do elemento de tupla correspondente; na nova versão, isso foi alterado para `tupleElement(expr(), 'name')`. Na maioria dos casos, a versão anterior não funcionava, mas é possível imaginar um cenário bastante incomum em que essa alteração poderia causar incompatibilidade: se você armazenasse nomes de elementos de tupla em uma coluna ou alias com um nome diferente do nome do elemento da tupla: `SELECT 'b' AS a, CAST([tuple(123)] AS 'Array(Tuple(b UInt8))') AS t, t[1].a`. É muito improvável que você tenha usado consultas desse tipo, mas ainda assim precisamos marcar essa alteração como potencialmente incompatível com versões anteriores. [#68435](https://github.com/ClickHouse/ClickHouse/pull/68435) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Quando a configuração `print_pretty_type_names` está habilitada, ela imprime o tipo de dado `Tuple` em uma forma Pretty nas Instruções `SHOW CREATE TABLE`, na função `formatQuery` e no modo interativo do `clickhouse-client` e do `clickhouse-local`. Em versões anteriores, essa configuração era aplicada apenas a consultas `DESCRIBE` e a `toTypeName`. Isso fecha [#65753](https://github.com/ClickHouse/ClickHouse/issues/65753). [#68492](https://github.com/ClickHouse/ClickHouse/pull/68492) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Não permitir a especificação explícita de UUID ao criar uma tabela em bancos de dados `Replicated`. Além disso, não permitir a especificação explícita do caminho do Keeper e do nome da réplica para tabelas \*MergeTree em bancos de dados `Replicated`. Isso introduz uma nova configuração `database_replicated_allow_explicit_uuid` e altera o tipo de `database_replicated_allow_replicated_engine_arguments` de Bool para UInt64 [#66104](https://github.com/ClickHouse/ClickHouse/pull/66104) ([Alexander Tokmakov](https://github.com/tavplubix)).

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

* Permite que um usuário tenha vários métodos de autenticação, em vez de apenas um. Permite redefinir os métodos de autenticação para o método adicionado mais recentemente. Se você quiser executar instâncias na versão 24.8 e uma na 24.9 por algum tempo, é melhor definir `max_authentication_methods_per_user` = 1 nesse período para evitar possíveis incompatibilidades. [#65277](https://github.com/ClickHouse/ClickHouse/pull/65277) ([Arthur Passos](https://github.com/arthurpassos)).
* Adicionado suporte a `ATTACH PARTITION ALL FROM`. [#61987](https://github.com/ClickHouse/ClickHouse/pull/61987) ([Kirill Nikiforov](https://github.com/allmazz)).
* Adiciona a configuração `input_format_json_empty_as_default`, que, quando habilitada, trata campos vazios em entradas JSON como valores padrão. Fecha [#59339](https://github.com/ClickHouse/ClickHouse/issues/59339). [#66782](https://github.com/ClickHouse/ClickHouse/pull/66782) ([Alexis Arnaud](https://github.com/a-a-f)).
* Adicionadas as funções `overlay` e `overlayUTF8`, que substituem trechos de uma string por outra. Exemplo: `SELECT overlay('Hello New York', 'Jersey', 11)` retorna `Hello New Jersey`. [#66933](https://github.com/ClickHouse/ClickHouse/pull/66933) ([李扬](https://github.com/taiyang-li)).
* Adicionar suporte a exclusões leves em partições `DELETE FROM [db.]table [ON CLUSTER cluster] [IN PARTITION partition_expr] WHERE expr; ` [#67805](https://github.com/ClickHouse/ClickHouse/pull/67805) ([sunny](https://github.com/sunny19930321)).
* Implementada a comparação de valores do tipo de dado `Interval` de diferentes domínios (como segundos e minutos), que agora são convertidos para o menor supertipo comum. [#68057](https://github.com/ClickHouse/ClickHouse/pull/68057) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Adiciona a configuração `create_if_not_exists` para adotar por padrão o comportamento `IF NOT EXISTS` em instruções CREATE. [#68164](https://github.com/ClickHouse/ClickHouse/pull/68164) ([Peter Nguyen](https://github.com/petern48)).
* Agora é possível ler tabelas `Iceberg` no Azure e localmente. [#68210](https://github.com/ClickHouse/ClickHouse/pull/68210) ([Daniil Ivanik](https://github.com/divanik)).
* Agora é possível remover entradas do cache de consultas por tag. Por exemplo, a entrada do cache de consultas criada por `SELECT 1 SETTINGS use_query_cache = true, query_cache_tag = 'abc'` agora pode ser removida com `SYSTEM DROP QUERY CACHE TAG 'abc'`. [#68477](https://github.com/ClickHouse/ClickHouse/pull/68477) ([Michał Tabaszewski](https://github.com/pinsvin00)).
* Adicionada criptografia de armazenamento para named collections. [#68615](https://github.com/ClickHouse/ClickHouse/pull/68615) ([Pablo Marcos](https://github.com/pamarcos)).
* Adicionada a coluna virtual `_headers` ao mecanismo de tabela `URL`. Fecha [#65026](https://github.com/ClickHouse/ClickHouse/issues/65026). [#68867](https://github.com/ClickHouse/ClickHouse/pull/68867) ([flynn](https://github.com/ucasfl)).
* Adicionada a tabela `system.projections` para acompanhar as projeções disponíveis. [#68901](https://github.com/ClickHouse/ClickHouse/pull/68901) ([Jordi Villar](https://github.com/jrdi)).
* Adiciona a nova função `arrayZipUnaligned` para compatibilidade com o Spark (onde ela se chama `arrays_zip`), permitindo arrays não alinhados com base na `arrayZip` original. [#69030](https://github.com/ClickHouse/ClickHouse/pull/69030) ([李扬](https://github.com/taiyang-li)).
* Adicionados os comandos `cp`/`mv` ao aplicativo de linha de comando do cliente Keeper, para copiar/mover nós atomicamente. [#69034](https://github.com/ClickHouse/ClickHouse/pull/69034) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Adiciona o argumento `scale` (padrão: `true`) à função `arrayAUC`, o que permite pular a etapa de normalização (issue [#69609](https://github.com/ClickHouse/ClickHouse/issues/69609)). [#69717](https://github.com/ClickHouse/ClickHouse/pull/69717) ([gabrielmcg44](https://github.com/gabrielmcg44)).

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

* Adiciona a configuração `input_format_try_infer_variants`, que permite inferir o tipo `Variant` durante a inferência de esquema para formatos de texto quando há mais de um tipo possível para elementos de coluna/array. [#63798](https://github.com/ClickHouse/ClickHouse/pull/63798) ([Shaun Struwig](https://github.com/Blargian)).
* Adiciona as funções agregadas `distinctDynamicTypes`/`distinctJSONPaths`/`distinctJSONPathsAndTypes` para melhor introspecção do conteúdo do tipo de coluna JSON. [#68463](https://github.com/ClickHouse/ClickHouse/pull/68463) ([Kruglov Pavel](https://github.com/Avogar)).
* Novo algoritmo para determinar a unidade de distribuição de marcas entre réplicas paralelas por meio de um hash consistente. Quantidades diferentes de marcas são escolhidas para diferentes padrões de leitura para melhorar o desempenho. [#68424](https://github.com/ClickHouse/ClickHouse/pull/68424) ([Nikita Taranov](https://github.com/nickitat)).
* Anteriormente, a complexidade algorítmica da lógica de desduplicação de partes no processamento de anúncios de réplicas paralelas era O(n^2), o que podia levar um tempo considerável em tabelas com muitas partes (ou partições). Esta alteração reduz a complexidade para O(n\*log(n)). [#69596](https://github.com/ClickHouse/ClickHouse/pull/69596) ([Alexander Gololobov](https://github.com/davenger)).
* Melhorias em view materializada atualizável: modo append (`... REFRESH EVERY 1 MINUTE APPEND ...`) para adicionar linhas à tabela existente em vez de sobrescrever a tabela inteira, novas tentativas (desabilitadas por padrão, configuradas na seção SETTINGS da consulta), consulta `SYSTEM WAIT VIEW <name>` que aguarda a atualização em execução no momento, além de algumas correções. [#58934](https://github.com/ClickHouse/ClickHouse/pull/58934) ([Michael Kolupaev](https://github.com/al13n321)).
* Adicionado `min_max` como um novo tipo de estatística (experimental). Ele oferece suporte à estimativa de predicados de intervalo em colunas numéricas, por exemplo `x < 100`. [#67013](https://github.com/ClickHouse/ClickHouse/pull/67013) ([JackyWoo](https://github.com/JackyWoo)).
* Melhora o `castOrDefault` em colunas Variant/Dynamic para que funcione quando os tipos internos não forem conversíveis de forma alguma. [#67150](https://github.com/ClickHouse/ClickHouse/pull/67150) ([Kruglov Pavel](https://github.com/Avogar)).
* A replicação de um subconjunto de colunas agora está disponível por meio do MaterializedPostgreSQL. Fecha [#33748](https://github.com/ClickHouse/ClickHouse/issues/33748). [#69092](https://github.com/ClickHouse/ClickHouse/pull/69092) ([Kruglov Kirill](https://github.com/1on)).

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

* Implementada a leitura apenas dos arquivos necessários para o particionamento Hive. [#68963](https://github.com/ClickHouse/ClickHouse/pull/68963) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Melhora o desempenho de JOIN reorganizando a tabela da direita pelas chaves quando as chaves da tabela são densas em hash joins LEFT ou INNER. [#60341](https://github.com/ClickHouse/ClickHouse/pull/60341) ([kevinyhzou](https://github.com/KevinyhZou)).
* Melhora o desempenho de ALL JOIN ao acrescentar a lista de linhas de forma lazy. [#63677](https://github.com/ClickHouse/ClickHouse/pull/63677) ([kevinyhzou](https://github.com/KevinyhZou)).
* Carrega os metadados do cache do sistema de arquivos de forma assíncrona durante a inicialização, para tornar as reinicializações mais rápidas (controlado pela configuração `load_metadata_asynchronously`). [#65736](https://github.com/ClickHouse/ClickHouse/pull/65736) ([Daniel Pozo Escalona](https://github.com/danipozo)).
* As funções `array` e `map` foram otimizadas para processar certos casos comuns muito mais rapidamente. [#67707](https://github.com/ClickHouse/ClickHouse/pull/67707) ([李扬](https://github.com/taiyang-li)).
* Otimização simples na leitura de strings ORC, especialmente quando uma coluna não contém NULLs. [#67794](https://github.com/ClickHouse/ClickHouse/pull/67794) ([李扬](https://github.com/taiyang-li)).
* Melhorado o desempenho geral das mesclagens ao reduzir a sobrecarga do agendamento de suas etapas. [#68016](https://github.com/ClickHouse/ClickHouse/pull/68016) ([Anton Popov](https://github.com/CurtizJ)).
* Acelera as solicitações ao S3 quando nenhum profile está definido, as credenciais não estão definidas e o IMDS não está disponível (por exemplo, quando você está consultando um bucket público em uma máquina fora da Cloud). Isso fecha [#52771](https://github.com/ClickHouse/ClickHouse/issues/52771). [#68082](https://github.com/ClickHouse/ClickHouse/pull/68082) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Desvirtualiza o leitor de formato em `RowInputFormatWithNamesAndTypes` para obter algum ganho de desempenho. [#68437](https://github.com/ClickHouse/ClickHouse/pull/68437) ([李扬](https://github.com/taiyang-li)).
* Adiciona a mesclagem paralela para a função de agregação `uniq` ao agregar com GROUP BY por chave, para maximizar a utilização da CPU. [#68441](https://github.com/ClickHouse/ClickHouse/pull/68441) ([Jiebin Sun](https://github.com/jiebinn)).
* Adiciona a configuração `output_format_orc_dictionary_key_size_threshold` para permitir que o usuário habilite a codificação por dicionário para colunas string no formato de saída `ORC`. Isso ajuda a reduzir significativamente o tamanho do arquivo `ORC` de saída e a melhorar o desempenho de leitura. [#68591](https://github.com/ClickHouse/ClickHouse/pull/68591) ([李扬](https://github.com/taiyang-li)).
* Introduz a nova requisição RemoveRecursive do Keeper, que remove um nó com toda a sua subárvore. [#69332](https://github.com/ClickHouse/ClickHouse/pull/69332) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Acelera o desempenho de inserção em uma tabela com índice de similaridade vetorial ao adicionar dados ao índice vetorial em paralelo. [#69493](https://github.com/ClickHouse/ClickHouse/pull/69493) ([flynn](https://github.com/ucasfl)).
* Reduz o uso de memória de inserções em JSON usando um tamanho adaptativo para o buffer de escrita. Muitos arquivos criados por uma coluna JSON em uma parte wide contêm pouca quantidade de dados, e não faz sentido alocar um buffer de 1 MB para eles. [#69272](https://github.com/ClickHouse/ClickHouse/pull/69272) ([Kruglov Pavel](https://github.com/Avogar)).
* Evita devolver uma thread ao thread pool da junção hash concorrente, para evitar que a consulta crie threads em excesso. [#69406](https://github.com/ClickHouse/ClickHouse/pull/69406) ([Duc Canh Le](https://github.com/canhld94)).

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

* CREATE TABLE AS agora também copia PRIMARY KEY, ORDER BY e cláusulas semelhantes. No momento, isso é compatível apenas com a família MergeTree de motores de tabela. [#69076](https://github.com/ClickHouse/ClickHouse/pull/69076) ([sakulali](https://github.com/sakulali)).
* Foram reforçadas as partes do código relacionadas à análise sintática de pequenas entidades. Os seguintes bugs (menores) foram encontrados e corrigidos: - se uma tabela `DeltaLake` estiver particionada por Bool, o valor da partição será sempre interpretado como false; - a tabela `ExternalDistributed` estava usando apenas um shard entre os endereços fornecidos; o valor da configuração `max_threads` e de configurações semelhantes era impresso como `'auto(N)'` em vez de `auto(N)`. [#52503](https://github.com/ClickHouse/ClickHouse/pull/52503) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Use métricas específicas de cgroup para contabilizar o uso de CPU, em vez de métricas de todo o sistema. [#62003](https://github.com/ClickHouse/ClickHouse/pull/62003) ([Nikita Taranov](https://github.com/nickitat)).
* O agendamento de E/S para discos S3 remotos agora é feito no nível dos fluxos dos sockets HTTP (em vez de requisições S3 inteiras) para resolver problemas de throttling com `bandwidth_limit`. [#65182](https://github.com/ClickHouse/ClickHouse/pull/65182) ([Sergei Trifonov](https://github.com/serxa)).
* As funções `upperUTF8` e `lowerUTF8` anteriormente só conseguiam converter caracteres cirílicos para maiúsculas / minúsculas. Essa limitação foi removida, e agora caracteres de qualquer idioma são convertidos para maiúsculas/minúsculas. Exemplo: `SELECT upperUTF8('Süden')` agora retorna `SÜDEN`. [#65761](https://github.com/ClickHouse/ClickHouse/pull/65761) ([李扬](https://github.com/taiyang-li)).
* Quando ocorre uma exclusão leve em uma tabela com projeção(ões), embora os usuários possam optar por gerar uma exceção (por padrão) ou descartar a projeção quando a exclusão leve ocorrer, agora há uma terceira opção: manter a exclusão leve e depois reconstruir a(s) projeção(ões). [#66169](https://github.com/ClickHouse/ClickHouse/pull/66169) ([jsc0218](https://github.com/jsc0218)).
* Duas opções (`dns_allow_resolve_names_to_ipv4` e `dns_allow_resolve_names_to_ipv6`) foram adicionadas para permitir o bloqueio de conexões por família de IP. [#66895](https://github.com/ClickHouse/ClickHouse/pull/66895) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Tornar configurável a opção de ignorar Ctrl-Z (ignore\_shell\_suspend) no clickhouse-client. [#67134](https://github.com/ClickHouse/ClickHouse/pull/67134) ([Azat Khuzhin](https://github.com/azat)).
* Aprimora a validação de UTF-8 em formatos JSON de saída. Garante que JSON válido seja gerado em caso de determinadas sequências de bytes nos dados de resultado. [#67938](https://github.com/ClickHouse/ClickHouse/pull/67938) ([mwoenker](https://github.com/mwoenker)).
* Adicionados eventos de perfil para merges e mutações, melhorando a introspecção. [#68015](https://github.com/ClickHouse/ClickHouse/pull/68015) ([Anton Popov](https://github.com/CurtizJ)).
* ODBC: obter http\_max\_tries a partir da configuração do servidor. [#68128](https://github.com/ClickHouse/ClickHouse/pull/68128) ([Rodolphe Dugé de Bernonville](https://github.com/RodolpheDuge)).
* Adicionado suporte a curingas para identificação de usuários na extensão SubjectAltName do X.509. [#68236](https://github.com/ClickHouse/ClickHouse/pull/68236) ([Marco Vilas Boas](https://github.com/marco-vb)).
* Aprimorada a inferência de esquema para datas e horas. Agora, `DateTime64` é usado apenas quando a data e hora têm parte fracionária; caso contrário, é usado o `DateTime` normal. A inferência de `Date`/`DateTime` agora está mais rigorosa, especialmente quando `date_time_input_format='best_effort'`, para evitar inferir datas e horas a partir de strings em casos limítrofes. [#68382](https://github.com/ClickHouse/ClickHouse/pull/68382) ([Kruglov Pavel](https://github.com/Avogar)).
* Removido o código antigo de named collections de dictionaries e substituído pelo novo, que permite usar named collections criadas com DDL em dictionaries. Fecha [#60936](https://github.com/ClickHouse/ClickHouse/issues/60936), fecha [#36890](https://github.com/ClickHouse/ClickHouse/issues/36890). [#68412](https://github.com/ClickHouse/ClickHouse/pull/68412) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Use HTTP/1.1 em vez de HTTP/1.0 (padrão) para autenticadores HTTP externos. [#68456](https://github.com/ClickHouse/ClickHouse/pull/68456) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Adicionado um novo conjunto de métricas para introspecção do pool de threads, oferecendo informações mais detalhadas sobre o desempenho e o comportamento desse pool de threads. [#68674](https://github.com/ClickHouse/ClickHouse/pull/68674) ([filimonov](https://github.com/filimonov)).
* Adicionado suporte a parâmetros de consulta em inserts assíncronos com o formato `Values`. [#68741](https://github.com/ClickHouse/ClickHouse/pull/68741) ([Anton Popov](https://github.com/CurtizJ)).
* Suporte para `Date32` em `dateTrunc` e `toStartOfInterval`. [#68874](https://github.com/ClickHouse/ClickHouse/pull/68874) ([LiuNeng](https://github.com/liuneng1994)).
* Adicionar as colunas `plan_step_name` e `plan_step_description` à `system.processors_profile_log`. [#68954](https://github.com/ClickHouse/ClickHouse/pull/68954) ([Alexander Gololobov](https://github.com/davenger)).
* Suporte ao idioma espanhol nos dicionários embutidos. [#69035](https://github.com/ClickHouse/ClickHouse/pull/69035) ([Vasily Okunev](https://github.com/VOkunev)).
* Adiciona a arquitetura da CPU à mensagem curta com informações sobre falha. [#69037](https://github.com/ClickHouse/ClickHouse/pull/69037) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* As consultas falharão mais rapidamente se não for possível estabelecer uma nova conexão com o Keeper durante as tentativas. [#69148](https://github.com/ClickHouse/ClickHouse/pull/69148) ([Raúl Marín](https://github.com/Algunenano)).
* Atualizar o Database Factory para permitir que motores de banco de dados definidos pelo usuário tenham argumentos, configurações e sobrescritas de tabela (semelhante ao StorageFactory). [#69201](https://github.com/ClickHouse/ClickHouse/pull/69201) ([NikBarykin](https://github.com/NikBarykin)).
* O modo de restauração que substitui todos os motores de tabela externos e funções pelo motor `Null` (configurações `restore_replace_external_engines_to_null`, `restore_replace_external_table_functions_to_null`) falhava se a tabela tivesse SETTINGS. Agora, nesse caso, ele remove os SETTINGS da definição da tabela e permite restaurar essas tabelas. [#69253](https://github.com/ClickHouse/ClickHouse/pull/69253) ([Ilya Yatsishin](https://github.com/qoega)).
* CLICKHOUSE\_PASSWORD está corretamente escapado para XML no entrypoint da imagem do ClickHouse. [#69301](https://github.com/ClickHouse/ClickHouse/pull/69301) ([aohoyd](https://github.com/aohoyd)).
* Permitir argumentos vazios para `arrayZip`/`arrayZipUnaligned`, como já ocorreu com concat em [https://github.com/ClickHouse/ClickHouse/pull/65887](https://github.com/ClickHouse/ClickHouse/pull/65887). Isso serve para compatibilidade com o Spark no backend CH do Gluten. [#69576](https://github.com/ClickHouse/ClickHouse/pull/69576) ([李扬](https://github.com/taiyang-li)).
* Suporte a opções de SSL mais avançadas para a comunicação interna do Keeper (por exemplo, chaves privadas protegidas por senha). [#69582](https://github.com/ClickHouse/ClickHouse/pull/69582) ([Antonio Andelic](https://github.com/antonio2368)).
* A análise de índices pode levar um tempo considerável em tabelas grandes com muitas partes ou partições. Essa mudança deve possibilitar interromper uma consulta pesada nessa etapa. [#69606](https://github.com/ClickHouse/ClickHouse/pull/69606) ([Alexander Gololobov](https://github.com/davenger)).
* Mascaramento de informações sensíveis na função de tabela `gcs`. [#69611](https://github.com/ClickHouse/ClickHouse/pull/69611) ([Vitaly Baranov](https://github.com/vitlibar)).
* Reconstrução da projeção para mesclagens que reduzem o número de linhas. [#62364](https://github.com/ClickHouse/ClickHouse/pull/62364) ([cangyin](https://github.com/cangyin)).

<div id="bug-fix-user-visible-misbehavior-in-an-official-stable-release-3">
  #### Correção de bug (mau funcionamento perceptível ao usuário em uma release estável oficial)
</div>

* Corrige a anexação de tabela quando o `dbname` do PostgreSQL contém "-" no engine MaterializedPostgreSQL, que é experimental e sem suporte. [#62730](https://github.com/ClickHouse/ClickHouse/pull/62730) ([takakawa](https://github.com/takakawa)).
* Corrigido erro em colunas geradas no engine MaterializedPostgreSQL experimental e totalmente sem suporte quando a ordenação de adnum está quebrada [#63161](https://github.com/ClickHouse/ClickHouse/issues/63161). Corrigido erro na coluna id com a expressão nextval como padrão no MaterializedPostgreSQL experimental e totalmente sem suporte quando há colunas geradas na tabela. Corrigido erro ao remover a publication com símbolos fora de \[a-z1-9-]. [#67664](https://github.com/ClickHouse/ClickHouse/pull/67664) ([Kruglov Kirill](https://github.com/1on)).
* Storage Join com suporte a colunas Nullable na tabela da esquerda, corrige [#61247](https://github.com/ClickHouse/ClickHouse/issues/61247). [#66926](https://github.com/ClickHouse/ClickHouse/pull/66926) ([vdimir](https://github.com/vdimir)).
* Resultado incorreto de consulta com réplicas paralelas (também ao distribuir consultas) quando o operador `IN` contém conversão para Decimal(). O bug foi introduzido com o novo analisador. [#67234](https://github.com/ClickHouse/ClickHouse/pull/67234) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige o problema em que `alter modify order by` gera metadados inconsistentes. [#67436](https://github.com/ClickHouse/ClickHouse/pull/67436) ([iceFireser](https://github.com/iceFireser)).
* Corrige o limite superior da função `fromModifiedJulianDay`. O valor correto deveria ser `9999-12-31`, mas foi definido incorretamente como `9999-01-01`. [#67583](https://github.com/ClickHouse/ClickHouse/pull/67583) ([PHO](https://github.com/depressed-pho)).
* Correção de um problema em que o índice não estava no início da tupla durante a consulta `IN`. [#67626](https://github.com/ClickHouse/ClickHouse/pull/67626) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrigida a expiração no `RoleCache`. [#67748](https://github.com/ClickHouse/ClickHouse/pull/67748) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige blocos ausentes na window view devido à lentidão ao gravar na view. [#67983](https://github.com/ClickHouse/ClickHouse/pull/67983) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige um problema no MSan causado por um formato de data incorreto. [#68105](https://github.com/ClickHouse/ClickHouse/pull/68105) ([JackyWoo](https://github.com/JackyWoo)).
* Corrigida uma falha na filtragem de Parquet quando os tipos de dados no arquivo diferem substancialmente dos tipos solicitados (por exemplo, `... FROM file('a.parquet', Parquet, 'x String')`, mas o arquivo contém `x Int64`). Sem essa correção, use `input_format_parquet_filter_push_down = 0` como solução alternativa. [#68131](https://github.com/ClickHouse/ClickHouse/pull/68131) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige travamento em `lag`/`lead` introduzido em [#67091](https://github.com/ClickHouse/ClickHouse/issues/67091). [#68262](https://github.com/ClickHouse/ClickHouse/pull/68262) ([lgbo](https://github.com/lgbo-ustc)).
* Tentativa de corrigir falha no Postgres quando a consulta é cancelada. [#68288](https://github.com/ClickHouse/ClickHouse/pull/68288) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Após [https://github.com/ClickHouse/ClickHouse/pull/61984](https://github.com/ClickHouse/ClickHouse/pull/61984), `schema_inference_make_columns_nullable=0` ainda pode fazer com que colunas se tornem `Nullable` nos formatos Parquet/Arrow. A mudança não era compatível com versões anteriores, e os usuários notaram as alterações no comportamento. Este PR faz com que `schema_inference_make_columns_nullable=0` volte a funcionar como antes (nenhuma coluna `Nullable` será inferida) e introduz o novo valor `auto` para essa configuração, que fará com que as colunas sejam `Nullable` apenas se os dados contiverem informações sobre nulabilidade. [#68298](https://github.com/ClickHouse/ClickHouse/pull/68298) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige [#50868](https://github.com/ClickHouse/ClickHouse/issues/50868). Pequenos valores constantes de DateTime64 retornados por uma subconsulta aninhada em uma consulta distribuída eram incorretamente convertidos em NULL, causando erros e possivelmente resultados incorretos de consulta. [#68323](https://github.com/ClickHouse/ClickHouse/pull/68323) ([Shankar](https://github.com/shiyer7474)).
* Corrige a falta do modo de sincronização de réplica na consulta `SYSTEM SYNC REPLICA`. [#68326](https://github.com/ClickHouse/ClickHouse/pull/68326) ([Duc Canh Le](https://github.com/canhld94)).
* Corrige um erro na condição de chave. [#68354](https://github.com/ClickHouse/ClickHouse/pull/68354) ([Han Fei](https://github.com/hanfei1991)).
* Corrige falha ao remover ou renomear uma role usada no diretório externo de usuários LDAP. [#68355](https://github.com/ClickHouse/ClickHouse/pull/68355) ([Andrey Zvonov](https://github.com/zvonand)).
* Corrige o valor da coluna Progress de system.view\_refreshes quando maior que 1 [#68377](https://github.com/ClickHouse/ClickHouse/issues/68377). [#68378](https://github.com/ClickHouse/ClickHouse/pull/68378) ([megao](https://github.com/jetgm)).
* Processar corretamente as flags de regexp. [#68389](https://github.com/ClickHouse/ClickHouse/pull/68389) ([Han Fei](https://github.com/hanfei1991)).
* O operador de conversão de tipo no estilo PostgreSQL (`::`) funciona corretamente até mesmo com literais hexadecimais e de strings binárias no estilo SQL (por exemplo, `SELECT x'414243'::String`). Isso corrige [#68324](https://github.com/ClickHouse/ClickHouse/issues/68324). [#68482](https://github.com/ClickHouse/ClickHouse/pull/68482) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Pequena correção para [https://github.com/ClickHouse/ClickHouse/pull/68131](https://github.com/ClickHouse/ClickHouse/pull/68131). [#68494](https://github.com/ClickHouse/ClickHouse/pull/68494) ([Chang chen](https://github.com/baibaichen)).
* Corrige [#68239](https://github.com/ClickHouse/ClickHouse/issues/68239) SAMPLE n, em que n é um inteiro. [#68499](https://github.com/ClickHouse/ClickHouse/pull/68499) ([Denis Hananein](https://github.com/denis-hananein)).
* Corrigido um bug em mann-whitney-utest quando os tamanhos de duas distribuições não são iguais. [#68556](https://github.com/ClickHouse/ClickHouse/pull/68556) ([Han Fei](https://github.com/hanfei1991)).
* Após uma reinicialização inesperada, a replicação do ReplicatedMergeTree não inicia devido ao tratamento anormal da parte marcada como covered-by-broken. [#68584](https://github.com/ClickHouse/ClickHouse/pull/68584) ([baolin](https://github.com/baolinhuang)).
* Corrige `LOGICAL_ERROR`s quando as funções `sipHash64Keyed`, `sipHash128Keyed` ou `sipHash128ReferenceKeyed` são aplicadas a arrays ou tuplas vazios. [#68630](https://github.com/ClickHouse/ClickHouse/pull/68630) ([Robert Schulze](https://github.com/rschu1ze)).
* O índice de texto completo pode filtrar colunas incorretas ao indexar várias colunas, pois não redefinia o row\_id entre colunas diferentes; o procedimento para reproduzir o problema está em tests/queries/0\_stateless/03228\_full\_text\_with\_multi\_col.sql. Sem isso. [#68644](https://github.com/ClickHouse/ClickHouse/pull/68644) ([siyuan](https://github.com/linkwk7)).
* Corrige os caracteres inválidos '\t' e '\n' em replica\_name ao criar uma tabela Replicated, o que causa a interpretação incorreta de 'réplica de origem' em LogEntry. Mencionado na issue [#68640](https://github.com/ClickHouse/ClickHouse/issues/68640). [#68645](https://github.com/ClickHouse/ClickHouse/pull/68645) ([Zhigao Hong](https://github.com/zghong)).
* Adicionadas novamente as colunas virtuais ` _table` e `_database` às tabelas distribuídas. Elas estavam disponíveis até a versão 24.3. [#68672](https://github.com/ClickHouse/ClickHouse/pull/68672) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige possível erro `Size of permutation (0) is less than required (...)` durante a permutação da coluna Variant. [#68681](https://github.com/ClickHouse/ClickHouse/pull/68681) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige possível erro `DB::Exception: Block structure mismatch in joined block stream: different columns:` com a nova coluna JSON. [#68686](https://github.com/ClickHouse/ClickHouse/pull/68686) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige um problema com chaves constantes materializadas ao calcular o hash de maps com arrays como chaves nas funções `sipHash(64/128)Keyed`. [#68731](https://github.com/ClickHouse/ClickHouse/pull/68731) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Faça com que `ColumnsDescription::toString` formate cada coluna usando o mesmo objeto `IAST::FormatState`. Isso resulta na gravação, em disco e no ZooKeeper, de metadados de colunas uniformes. [#68733](https://github.com/ClickHouse/ClickHouse/pull/68733) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrige a mesclagem de dados agregados em `grouping sets`. [#68744](https://github.com/ClickHouse/ClickHouse/pull/68744) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige um erro lógico ao criar uma MergeTree replicada, alterar uma coluna e depois executar MODIFY STATISTICS. [#68820](https://github.com/ClickHouse/ClickHouse/pull/68820) ([Han Fei](https://github.com/hanfei1991)).
* Corrigida a resolução de subcolunas dinâmicas de subconsultas no analisador. [#68824](https://github.com/ClickHouse/ClickHouse/pull/68824) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige o parsing dos metadados de tipos complexos no DeltaLake. Fecha [#68739](https://github.com/ClickHouse/ClickHouse/issues/68739). [#68836](https://github.com/ClickHouse/ClickHouse/pull/68836) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigidas as inserções assíncronas nos casos em que os metadados da tabela são alterados (por consultas `ALTER ADD/MODIFY COLUMN`) após a inserção, mas antes de serem gravadas na tabela. [#68837](https://github.com/ClickHouse/ClickHouse/pull/68837) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige uma exceção inesperada ao passar uma tupla vazia para um array. Isso corrige [#68618](https://github.com/ClickHouse/ClickHouse/issues/68618). [#68848](https://github.com/ClickHouse/ClickHouse/pull/68848) ([Amos Bird](https://github.com/amosbird)).
* Corrigido o parsing de comandos de mutações que afetam apenas metadados. [#68935](https://github.com/ClickHouse/ClickHouse/pull/68935) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige um possível resultado incorreto durante a mesclagem do estado anyHeavy. [#68950](https://github.com/ClickHouse/ClickHouse/pull/68950) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigida a escrita em visões materializadas com a configuração `optimize_functions_to_subcolumns` habilitada. [#68951](https://github.com/ClickHouse/ClickHouse/pull/68951) ([Anton Popov](https://github.com/CurtizJ)).
* Não use o cache de serializações em métodos const da coluna Dynamic. Isso poderia levar ao uso de um valor não inicializado ou até mesmo a uma condição de corrida durante agregações. [#68953](https://github.com/ClickHouse/ClickHouse/pull/68953) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrigido erro de parsing em que NULL deveria ser inserido como valor padrão em alguns casos durante o parsing do tipo JSON. [#68955](https://github.com/ClickHouse/ClickHouse/pull/68955) ([Kruglov Pavel](https://github.com/Avogar)).
* Correção de `Content-Encoding`, que não era enviado em algumas respostas compactadas. [#64802](https://github.com/ClickHouse/ClickHouse/issues/64802). [#68975](https://github.com/ClickHouse/ClickHouse/pull/68975) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Houve casos em que o caminho era concatenado incorretamente e continha a parte `//`; esse problema foi resolvido com a normalização do caminho. [#69066](https://github.com/ClickHouse/ClickHouse/pull/69066) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrigido erro lógico quando há async insert vazio. [#69080](https://github.com/ClickHouse/ClickHouse/pull/69080) ([Han Fei](https://github.com/hanfei1991)).
* Corrigida uma condição de corrida na exibição do progresso no clickhouse-client durante o cancelamento da consulta. [#69081](https://github.com/ClickHouse/ClickHouse/pull/69081) ([Sergei Trifonov](https://github.com/serxa)).
* Corrige um bug em que o índice de similaridade vetorial (atualmente experimental) não era utilizado ao usar a distância de cosseno como função de distância. [#69090](https://github.com/ClickHouse/ClickHouse/pull/69090) ([flynn](https://github.com/ucasfl)).
* Esta alteração corrige um problema em que tentar criar novamente um banco de dados Replicated após uma falha do servidor durante o processo inicial de criação podia resultar em erro. [#69102](https://github.com/ClickHouse/ClickHouse/pull/69102) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Não inferir o tipo Bool a partir de String em CSV quando `input_format_csv_try_infer_numbers_from_strings = 1`, porque não permitimos a leitura de valores bool a partir de strings. [#69109](https://github.com/ClickHouse/ClickHouse/pull/69109) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige erros de análise sintática no cliente ao processar consultas EXPLAIN AST INSERT quando `--multiquery` está habilitado. [#69123](https://github.com/ClickHouse/ClickHouse/pull/69123) ([wxybear](https://github.com/wxybear)).
* A cláusula `UNION` em subconsultas não era tratada corretamente em consultas com réplicas paralelas e causava o LOGICAL\_ERROR `Duplicate announcement received for replica`. [#69146](https://github.com/ClickHouse/ClickHouse/pull/69146) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrigida a propagação do argumento de estrutura no s3Cluster. Anteriormente, a expressão `DEFAULT` da coluna podia se perder ao enviar a consulta para as réplicas no s3Cluster. [#69147](https://github.com/ClickHouse/ClickHouse/pull/69147) ([Kruglov Pavel](https://github.com/Avogar)).
* Respeitar as configurações do formato Values durante a conversão de uma expressão para o tipo de destino. [#69149](https://github.com/ClickHouse/ClickHouse/pull/69149) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige o `clickhouse-client --queries-file` para usuários com acesso somente leitura (antes falhava com `Cannot modify 'log_comment' setting in readonly mode`). [#69175](https://github.com/ClickHouse/ClickHouse/pull/69175) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida uma condição de corrida no clickhouse-client quando ele é redirecionado via pipe para um processo que termina antecipadamente. [#69186](https://github.com/ClickHouse/ClickHouse/pull/69186) ([vdimir](https://github.com/vdimir)).
* Corrige resultados incorretos de uniq e GROUP BY para tipos JSON/Dynamic. [#69203](https://github.com/ClickHouse/ClickHouse/pull/69203) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrigida a detecção do formato no INFILE para inserts assíncronos. Se o formato não for explicitamente definido na cláusula FORMAT, ele poderá ser detectado pela extensão do arquivo INFILE. [#69237](https://github.com/ClickHouse/ClickHouse/pull/69237) ([Julia Kartseva](https://github.com/jkartseva)).
* Após [este problema](https://github.com/ClickHouse/ClickHouse/pull/59946#issuecomment-1943653197), há várias réplicas de tabelas em produção em que o valor do nó `metadata_version` é igual a `0` e, ao mesmo tempo, difere da versão do nó `metadata` da respectiva tabela. Isso faz com que consultas `alter` falhem nessas réplicas. [#69274](https://github.com/ClickHouse/ClickHouse/pull/69274) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Marcar o tipo Dynamic como um tipo não seguro para chave primária, para evitar problemas com Fields. [#69311](https://github.com/ClickHouse/ClickHouse/pull/69311) ([Kruglov Pavel](https://github.com/Avogar)).
* Melhora a restauração das dependências de entidades de acesso. [#69346](https://github.com/ClickHouse/ClickHouse/pull/69346) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige o comportamento indefinido quando falham todas as tentativas de obter uma conexão para inserções. [#69390](https://github.com/ClickHouse/ClickHouse/pull/69390) ([Pablo Marcos](https://github.com/pamarcos)).
* Fecha [#69135](https://github.com/ClickHouse/ClickHouse/issues/69135). Se tentarmos reutilizar dados de join para `cross` join, isso não é possível no ClickHouse no momento. É melhor manter `have_compressed` em `reuseJoinedData`. [#69404](https://github.com/ClickHouse/ClickHouse/pull/69404) ([lgbo](https://github.com/lgbo-ustc)).
* Faz a função `materialize()` retornar uma coluna completa quando o parâmetro é uma coluna esparsa. [#69429](https://github.com/ClickHouse/ClickHouse/pull/69429) ([Alexander Gololobov](https://github.com/davenger)).
* Corrigido o `LOGICAL_ERROR` na função `sqidDecode` ([#69450](https://github.com/ClickHouse/ClickHouse/issues/69450)). [#69451](https://github.com/ClickHouse/ClickHouse/pull/69451) ([Robert Schulze](https://github.com/rschu1ze)).
* Correção rápida para o problema do s3queue no 24.6 ou para consulta CREATE com banco de dados replicado. [#69454](https://github.com/ClickHouse/ClickHouse/pull/69454) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigido um caso em que o consumo de memória ficava excessivamente alto devido ao squashing em consultas `INSERT INTO ... SELECT` ou `CREATE TABLE AS SELECT`. [#69469](https://github.com/ClickHouse/ClickHouse/pull/69469) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* As instruções `SHOW COLUMNS` e `SHOW INDEX` agora funcionam corretamente caso a tabela tenha pontos no nome. [#69514](https://github.com/ClickHouse/ClickHouse/pull/69514) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* O uso do cache de consultas para consultas com modo de overflow != 'throw' agora é proibido. Isso evita situações em que resultados de consulta potencialmente truncados e incorretos poderiam ser armazenados no cache de consultas. (issue [#67476](https://github.com/ClickHouse/ClickHouse/issues/67476)). [#69549](https://github.com/ClickHouse/ClickHouse/pull/69549) ([Robert Schulze](https://github.com/rschu1ze)).
* Mantenha a ordem original das condições ao movê-las para prewhere. Anteriormente, a ordem podia mudar, o que podia levar à falha de consultas quando ela é importante. [#69560](https://github.com/ClickHouse/ClickHouse/pull/69560) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige o pré-processamento de várias solicitações do Keeper após o erro ZNOAUTH. [#69627](https://github.com/ClickHouse/ClickHouse/pull/69627) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige o METADATA\_MISMATCH que pode ter ocorrido devido a TTL com cláusula WHERE em DatabaseReplicated ao criar uma nova réplica. [#69736](https://github.com/ClickHouse/ClickHouse/pull/69736) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrigidas as configurações `tracked_file_ttl_sec` de `StorageS3(Azure)Queue`. Ela era gravada no Keeper com a chave `tracked_file_ttl_sec`, mas lida como `tracked_files_ttl_sec`, o que era um erro de digitação. [#69742](https://github.com/ClickHouse/ClickHouse/pull/69742) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Use tryconvertfieldtotype em gethyperrectangleforrowgroup. [#69745](https://github.com/ClickHouse/ClickHouse/pull/69745) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Reverte "Corrigir prewhere sem colunas e sem granularidade adaptativa do índice (quase sem nada)"'. Devido a essa reversão, alguns erros podem ocorrer ao ler partes de dados produzidas por versões antigas do CH (provavelmente de 2021 ou anteriores). [#68897](https://github.com/ClickHouse/ClickHouse/pull/68897) ([Alexander Gololobov](https://github.com/davenger)).

### <a id="248" /> Lançamento do ClickHouse 24.8 LTS, 2024-08-20. [Apresentação](https://presentations.clickhouse.com/2024-release-24.8/), [Vídeo](https://www.youtube.com/watch?v=AeLmp2jc51k)

<Frame>
  <iframe src="https://www.youtube.com/embed/AeLmp2jc51k" 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>

* `clickhouse-client` e `clickhouse-local` agora usam por padrão o modo de múltiplas consultas (em vez do modo de consulta única). Por exemplo, `clickhouse-client -q "SELECT 1; SELECT 2"` agora funciona, enquanto antes os usuários precisavam adicionar `--multiquery` (ou `-n`). A opção `--multiquery/-n` tornou-se obsoleta. Consultas INSERT em instruções com múltiplas consultas recebem tratamento especial com base na cláusula FORMAT: se o FORMAT for `VALUES` (o caso mais comum), o fim da instrução INSERT é representado por um ponto e vírgula `;` ao final da consulta. Para todos os outros FORMATs (por exemplo, `CSV` ou `JSONEachRow`), o fim da instrução INSERT é representado por duas quebras de linha `\n\n` ao final da consulta. [#63898](https://github.com/ClickHouse/ClickHouse/pull/63898) ([FFish](https://github.com/wxybear)).
* Em versões anteriores, era possível usar uma sintaxe alternativa para os tipos de dados `LowCardinality`, acrescentando `WithDictionary` ao nome do tipo de dado. Era uma implementação funcional inicial, e nunca foi documentada nem exposta ao público. Agora, ela está obsoleta. Se você usou essa sintaxe, precisa executar ALTER em suas tabelas e renomear os tipos de dados para `LowCardinality`. [#66842](https://github.com/ClickHouse/ClickHouse/pull/66842) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige erros lógicos no armazenamento `Buffer` usado com tabela de destino distribuída. Esta é uma alteração incompatível com versões anteriores: consultas que usam `Buffer` com uma tabela de destino distribuída podem deixar de funcionar se a tabela aparecer mais de uma vez na consulta (por exemplo, em um self-join). [#67015](https://github.com/ClickHouse/ClickHouse/pull/67015) ([vdimir](https://github.com/vdimir)).
* Em versões anteriores, chamar funções para distribuições aleatórias baseadas na função gama (como Chi-Squared, Student e Fisher) com argumentos negativos próximos de zero levava a um tempo de computação muito longo ou a um loop infinito. Na nova versão, chamar essas funções com argumentos nulos ou negativos produzirá uma exceção. Isto encerra [#67297](https://github.com/ClickHouse/ClickHouse/issues/67297). [#67326](https://github.com/ClickHouse/ClickHouse/pull/67326) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A tabela de sistema `text_log` está habilitada por padrão. Isso é totalmente compatível com versões anteriores, mas você pode notar um aumento sutil no uso do disco local (essa tabela de sistema ocupa uma quantidade mínima de espaço em disco). [#67428](https://github.com/ClickHouse/ClickHouse/pull/67428) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Em versões anteriores, `arrayWithConstant` podia ser lenta quando solicitada a gerar arrays muito grandes. Na nova versão, ela está limitada a 1 GB por array. Isto encerra [#32754](https://github.com/ClickHouse/ClickHouse/issues/32754). [#67741](https://github.com/ClickHouse/ClickHouse/pull/67741) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a formatação do modificador REPLACE (proíbe omitir os parênteses). [#67774](https://github.com/ClickHouse/ClickHouse/pull/67774) ([Azat Khuzhin](https://github.com/azat)).
* Backport em [#68349](https://github.com/ClickHouse/ClickHouse/issues/68349): reimplementa o tipo `Dynamic`. Agora, quando o limite de tipos de dados dinâmicos é atingido, novos tipos não são convertidos para String, mas armazenados em uma estrutura de dados especial em formato binário, com o tipo de dado codificado em binário. Agora, qualquer tipo já inserido na coluna `Dynamic` pode ser lido dela como subcoluna. [#68132](https://github.com/ClickHouse/ClickHouse/pull/68132) ([Kruglov Pavel](https://github.com/Avogar)).

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

* Adicionada uma nova configuração do `MergeTree`, `deduplicate_merge_projection_mode`, para controlar as projeções durante as mesclagens (para motores específicos) e a consulta `OPTIMIZE DEDUPLICATE`. Opções compatíveis: `throw` (gera uma exceção caso a projeção não tenha suporte completo para o motor \*MergeTree), `drop` (remove a projeção durante a mesclagem se ela própria não puder ser mesclada de forma consistente) e `rebuild` (reconstrói a projeção do zero, o que é uma operação pesada). [#66672](https://github.com/ClickHouse/ClickHouse/pull/66672) ([jsc0218](https://github.com/jsc0218)).
* Adiciona a coluna virtual `_etag` ao mecanismo de tabela S3. Corrige [#65312](https://github.com/ClickHouse/ClickHouse/issues/65312). [#65386](https://github.com/ClickHouse/ClickHouse/pull/65386) ([skyoct](https://github.com/skyoct)).
* Foi adicionado um mecanismo de marcação (`namespace`) ao cache de consultas. As mesmas consultas com tags diferentes são consideradas distintas pelo cache de consultas. Exemplo: `SELECT 1 SETTINGS use_query_cache = 1, query_cache_tag = 'abc'` e `SELECT 1 SETTINGS use_query_cache = 1, query_cache_tag = 'def'` agora criam entradas distintas no cache de consultas. [#68235](https://github.com/ClickHouse/ClickHouse/pull/68235) ([sakulali](https://github.com/sakulali)).
* Agora há suporte a mais variantes de strictness de JOIN (`LEFT/RIGHT SEMI/ANTI/ANY JOIN`) com condições de desigualdade que envolvem colunas das tabelas da esquerda e da direita. Ex.: `t1.y < t2.y` (consulte a configuração `allow_experimental_join_condition`). [#64281](https://github.com/ClickHouse/ClickHouse/pull/64281) ([lgbo](https://github.com/lgbo-ustc)).
* Interpretar o particionamento no estilo Hive para diferentes motores (`File`, `URL`, `S3`, `AzureBlobStorage`, `HDFS`). O particionamento no estilo Hive organiza os dados em subdiretórios particionados, tornando mais eficiente consultar e gerenciar grandes volumes de dados. Atualmente, ele cria apenas colunas virtuais com o nome e os dados correspondentes. O próximo PR introduzirá a filtragem de dados adequada (ganho de desempenho). [#65997](https://github.com/ClickHouse/ClickHouse/pull/65997) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Adicionada a função `printf` para compatibilidade com o Spark (mas você pode usar a função `format` já existente). [#66257](https://github.com/ClickHouse/ClickHouse/pull/66257) ([李扬](https://github.com/taiyang-li)).
* Adicionadas as opções `restore_replace_external_engines_to_null` e `restore_replace_external_table_functions_to_null` para substituir motores externos e table\_engines pelo motor `Null`, o que pode ser útil para testes. Deve funcionar com RESTORE e com a criação explícita de tabelas. [#66536](https://github.com/ClickHouse/ClickHouse/pull/66536) ([Ilya Yatsishin](https://github.com/qoega)).
* Adicionado suporte à leitura da geometria `MULTILINESTRING` no formato `WKT` usando a função `readWKTLineString`. [#67647](https://github.com/ClickHouse/ClickHouse/pull/67647) ([Jacob Reckhard](https://github.com/jacobrec)).
* Adiciona uma nova função de tabela `fuzzQuery`. Essa função permite modificar uma string de consulta específica com variações aleatórias. Exemplo: `SELECT query FROM fuzzQuery('SELECT 1') LIMIT 5;`. [#67655](https://github.com/ClickHouse/ClickHouse/pull/67655) ([pufit](https://github.com/pufit)).
* Adiciona a consulta `ALTER TABLE ... DROP DETACHED PARTITION ALL` para remover todas as partições em estado detached. [#67885](https://github.com/ClickHouse/ClickHouse/pull/67885) ([Duc Canh Le](https://github.com/canhld94)).
* Adiciona a estatística `rows_before_aggregation_at_least` à resposta da consulta quando uma nova configuração, `rows_before_aggregation`, está habilitada. Essa estatística representa o número de linhas lidas antes da agregação. No contexto de uma consulta distribuída, ao usar `group by` ou a função de agregação `max` sem um `limit`, `rows_before_aggregation_at_least` pode refletir o número de linhas acessadas pela consulta. [#66084](https://github.com/ClickHouse/ClickHouse/pull/66084) ([morning-color](https://github.com/morning-color)).
* Suporte à consulta `OPTIMIZE` em tabelas `Join` para reduzir o uso de memória. [#67883](https://github.com/ClickHouse/ClickHouse/pull/67883) ([Duc Canh Le](https://github.com/canhld94)).
* Permite executar a consulta instantaneamente no play ao adicionar `&run=1` à URL [#66457](https://github.com/ClickHouse/ClickHouse/pull/66457) ([Aleksandr Musorin](https://github.com/AVMusorin)).

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

* Implementado um novo tipo de dado `JSON`. [#66444](https://github.com/ClickHouse/ClickHouse/pull/66444) ([Kruglov Pavel](https://github.com/Avogar)).
* Adicionado o novo engine de tabela `TimeSeries`. [#64183](https://github.com/ClickHouse/ClickHouse/pull/64183) ([Vitaly Baranov](https://github.com/vitlibar)).
* Adicionado um novo engine de armazenamento experimental `Kafka` para armazenar offsets no Keeper em vez de depender do commit deles no Kafka. Isso torna atômico o commit nas tabelas do ClickHouse em relação ao consumo da fila. [#57625](https://github.com/ClickHouse/ClickHouse/pull/57625) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Passa a usar um método adaptativo para calcular o tamanho da tarefa de leitura (adaptativo significa que ele depende dos tamanhos das colunas lidas) para réplicas paralelas. [#60377](https://github.com/ClickHouse/ClickHouse/pull/60377) ([Nikita Taranov](https://github.com/nickitat)).
* Adicionado o tipo de estatística `count_min` (count-min sketches), que fornece estimativas de seletividade para predicados de igualdade, como `col = 'val'`. Os tipos de dados compatíveis são string, date, datetime e tipos numéricos. [#65521](https://github.com/ClickHouse/ClickHouse/pull/65521) ([JackyWoo](https://github.com/JackyWoo)).

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

* A configuração `optimize_functions_to_subcolumns` vem habilitada por padrão. [#68053](https://github.com/ClickHouse/ClickHouse/pull/68053) ([Anton Popov](https://github.com/CurtizJ)).
* Armazena os metadados do diretório de disco `plain_rewritable` no layout `__meta`, separadamente dos dados do MergeTree no armazenamento de objetos. Move o disco `plain_rewritable` para uma estrutura plana de diretórios. [#65751](https://github.com/ClickHouse/ClickHouse/pull/65751) ([Julia Kartseva](https://github.com/jkartseva)).
* Melhora o squashing de colunas (uma operação que ocorre em consultas INSERT) para os tipos `String`/`Array`/`Map`/`Variant`/`Dynamic`, reservando antecipadamente a memória necessária para todas as subcolunas. [#67043](https://github.com/ClickHouse/ClickHouse/pull/67043) ([Kruglov Pavel](https://github.com/Avogar)).
* Acelera `SYSTEM FLUSH LOGS` e faz flush dos logs no desligamento. [#67472](https://github.com/ClickHouse/ClickHouse/pull/67472) ([Sema Checherinda](https://github.com/CheSema)).
* Melhora o desempenho geral das merges ao reduzir a sobrecarga das etapas de agendamento. [#68016](https://github.com/ClickHouse/ClickHouse/pull/68016) ([Anton Popov](https://github.com/CurtizJ)).
* Acelera a remoção de tabelas na consulta `DROP DATABASE`, aumentando o valor padrão de `database_catalog_drop_table_concurrency` para 16. [#67228](https://github.com/ClickHouse/ClickHouse/pull/67228) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Evita alocar capacidade excessiva para a coluna de array ao gravar em ORC. O desempenho aumenta em 15% para uma coluna Array. [#67879](https://github.com/ClickHouse/ClickHouse/pull/67879) ([李扬](https://github.com/taiyang-li)).
* Acelera significativamente as mutações em MergeTree não replicado [#66911](https://github.com/ClickHouse/ClickHouse/pull/66911) [#66909](https://github.com/ClickHouse/ClickHouse/pull/66909) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* A configuração `allow_experimental_analyzer` foi renomeada para `enable_analyzer`. O nome antigo é mantido como um alias. Isso significa que o Analyzer não está mais em beta e foi oficialmente promovido para produção. [#66438](https://github.com/ClickHouse/ClickHouse/pull/66438) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Melhoria na inferência de esquema de valores de data e hora. Agora, `DateTime64` é usado apenas quando a data e hora tem parte fracionária; caso contrário, usa-se o `DateTime` comum. A inferência de `Date`/`DateTime` agora está mais rigorosa, especialmente quando `date_time_input_format='best_effort'`, para evitar inferir valores de data e hora a partir de strings em casos-limite. [#68382](https://github.com/ClickHouse/ClickHouse/pull/68382) ([Kruglov Pavel](https://github.com/Avogar)).
* O servidor ClickHouse agora oferece suporte à nova configuração `max_keep_alive_requests`. Para conexões HTTP keep-alive com o servidor, ela funciona em conjunto com `keep_alive_timeout` — se o tempo limite de inatividade não tiver expirado, mas já tiverem sido feitas mais de `max_keep_alive_requests` solicitações por essa conexão, ela será fechada pelo servidor. [#61793](https://github.com/ClickHouse/ClickHouse/pull/61793) ([Nikita Taranov](https://github.com/nickitat)).
* Várias melhorias no dashboard avançado. Fecha [#67697](https://github.com/ClickHouse/ClickHouse/issues/67697). Fecha [#63407](https://github.com/ClickHouse/ClickHouse/issues/63407). Fecha [#51129](https://github.com/ClickHouse/ClickHouse/issues/51129). Fecha [#61204](https://github.com/ClickHouse/ClickHouse/issues/61204). [#67701](https://github.com/ClickHouse/ClickHouse/pull/67701) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Não exigir privilégio para REMOTE ao criar uma tabela distribuída: basta um privilégio para o mecanismo Distributed. [#65419](https://github.com/ClickHouse/ClickHouse/pull/65419) ([jsc0218](https://github.com/jsc0218)).
* Não inclua explicitamente os logs do Keeper na imagem Docker, para permitir sobrescrita. [#65564](https://github.com/ClickHouse/ClickHouse/pull/65564) ([Azat Khuzhin](https://github.com/azat)).
* Foi introduzida a configuração `use_same_password_for_base_backup` para as consultas `BACKUP` e `RESTORE`, permitindo criar e restaurar backups incrementais em/de arquivos protegidos por senha. [#66214](https://github.com/ClickHouse/ClickHouse/pull/66214) ([Samuele](https://github.com/sguerrini97)).
* Ignora `async_load_databases` para a consulta `ATTACH` (anteriormente, era possível que ATTACH retornasse antes que as tabelas fossem anexadas). [#66240](https://github.com/ClickHouse/ClickHouse/pull/66240) ([Azat Khuzhin](https://github.com/azat)).
* Adicionados logs e métricas para conexões recusadas (quando não há recursos suficientes). [#66410](https://github.com/ClickHouse/ClickHouse/pull/66410) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Suporte adequado ao tipo `UUID` para o engine MongoDB. [#66671](https://github.com/ClickHouse/ClickHouse/pull/66671) ([Azat Khuzhin](https://github.com/azat)).
* Adicionadas métricas de latência de replicação e de tempo de recuperação. [#66703](https://github.com/ClickHouse/ClickHouse/pull/66703) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Adicionada a métrica `DiskS3NoSuchKeyErrors`. [#66704](https://github.com/ClickHouse/ClickHouse/pull/66704) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Garante que a cláusula `COMMENT` funcione em todos os motores de tabela. [#66832](https://github.com/ClickHouse/ClickHouse/pull/66832) ([Joe Lynch](https://github.com/joelynch)).
* A função `mapFromArrays` agora aceita `Map(K, V)` como primeiro argumento. Por exemplo, `SELECT mapFromArrays(map('a', 4, 'b', 4), ['aa', 'bb'])` agora funciona e retorna `{('a',4):'aa',('b',4):'bb'}`. Além disso, se o 1º argumento for um Array, ele agora também pode ser do tipo `Array(Nullable(T))` ou `Array(LowCardinality(Nullable(T)))`, desde que os valores reais do array não sejam `NULL`. [#67103](https://github.com/ClickHouse/ClickHouse/pull/67103) ([李扬](https://github.com/taiyang-li)).
* Passa a ler a configuração do `clickhouse-local` a partir de `~/.clickhouse-local`. [#67135](https://github.com/ClickHouse/ClickHouse/pull/67135) ([Azat Khuzhin](https://github.com/azat)).
* Renomeie a configuração `input_format_orc_read_use_writer_time_zone` para `input_format_orc_reader_timezone` e permita que o usuário defina o fuso horário do leitor. [#67175](https://github.com/ClickHouse/ClickHouse/pull/67175) ([kevinyhzou](https://github.com/KevinyhZou)).
* Reduzido o nível do erro `Socket is not connected` quando a conexão HTTP é imediatamente resetada pela outra ponta após ser estabelecida, fecha [#34218](https://github.com/ClickHouse/ClickHouse/issues/34218). [#67177](https://github.com/ClickHouse/ClickHouse/pull/67177) ([vdimir](https://github.com/vdimir)).
* Adicionada a capacidade de carregar dashboards de `system.dashboards` a partir da configuração (uma vez definidos, eles substituem o conjunto padrão de dashboards). [#67232](https://github.com/ClickHouse/ClickHouse/pull/67232) ([Azat Khuzhin](https://github.com/azat)).
* As window functions em SQL tradicionalmente usam snake case. O ClickHouse usa `camelCase`, então foram criados novos aliases: `denseRank()` e `percentRank()`. Essas novas funções podem ser chamadas exatamente da mesma forma que as funções originais `dense_rank()` e `percent_rank()`. Tanto a sintaxe em snake case quanto a em camelCase continuam disponíveis. Um novo teste para cada uma dessas funções também foi adicionado. Isso fecha [#67042](https://github.com/ClickHouse/ClickHouse/issues/67042). [#67334](https://github.com/ClickHouse/ClickHouse/pull/67334) ([Peter Nguyen](https://github.com/petern48)).
* Detecta automaticamente o formato do arquivo de configuração se ele não for `.xml`, `.yml` ou `.yaml`. Se o arquivo começar com \<, pode ser XML; caso contrário, pode ser YAML. Isso é útil ao fornecer um arquivo de configuração por um pipe: `clickhouse-server --config-file <(echo "hello: world")`. [#67391](https://github.com/ClickHouse/ClickHouse/pull/67391) ([sakulali](https://github.com/sakulali)).
* As funções `formatDateTime` e `formatDateTimeInJodaSyntax` agora consideram o parâmetro de formato opcional. Se ele não for especificado, assumem-se as strings de formato `%Y-%m-%d %H:%i:%s` e `yyyy-MM-dd HH:mm:ss`. Exemplo: `SELECT parseDateTime('2021-01-04 23:12:34')` agora retorna o valor DateTime `2021-01-04 23:12:34` (antes, isso gerava uma exceção). [#67399](https://github.com/ClickHouse/ClickHouse/pull/67399) ([Robert Schulze](https://github.com/rschu1ze)).
* Repetir automaticamente as solicitações ao Keeper no KeeperMap quando falharem por timeout ou perda de conexão. [#67448](https://github.com/ClickHouse/ClickHouse/pull/67448) ([Antonio Andelic](https://github.com/antonio2368)).
* Adicionado `-no-pie` às compilações do Linux Aarch64 para permitir a introspecção adequada e a simbolização dos stacktraces após a reinicialização do ClickHouse. [#67916](https://github.com/ClickHouse/ClickHouse/pull/67916) ([filimonov](https://github.com/filimonov)).
* Adicionados eventos de perfil para merges e mutações, para facilitar a introspecção. [#68015](https://github.com/ClickHouse/ClickHouse/pull/68015) ([Anton Popov](https://github.com/CurtizJ)).
* Remoção de logs desnecessários para `MergeTree` não replicado. [#68238](https://github.com/ClickHouse/ClickHouse/pull/68238) ([Daniil Ivanik](https://github.com/divanik)).

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

* A verificação de instabilidade dos testes de integração não executará cada caso de teste várias vezes para encontrar mais problemas nos testes e torná-los mais confiáveis. Ela usa a biblioteca `pytest-repeat` para executar o caso de teste várias vezes no mesmo ambiente. É importante limpar tabelas e outras entidades ao final de um caso de teste para que ele seja aprovado. A repetição é muito mais rápida do que várias execuções do pytest, pois inicia os contêineres necessários apenas uma vez. [#66986](https://github.com/ClickHouse/ClickHouse/pull/66986) ([Ilya Yatsishin](https://github.com/qoega)).
* Desbloqueado o uso do CLion com ClickHouse. Em versões anteriores, o CLion congelava por um minuto a cada tecla pressionada. Isso fecha [#66994](https://github.com/ClickHouse/ClickHouse/issues/66994). [#66995](https://github.com/ClickHouse/ClickHouse/pull/66995) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* getauxval: evita uma falha durante um re-exec do sanitizer devido à alta entropia de ASLR em kernels Linux mais recentes. [#67081](https://github.com/ClickHouse/ClickHouse/pull/67081) ([Raúl Marín](https://github.com/Algunenano)).
* Algumas partes do código do cliente foram extraídas para um único arquivo, e o nível mais alto possível de otimização é aplicado a elas mesmo em builds de depuração. Isso fecha: [#65745](https://github.com/ClickHouse/ClickHouse/issues/65745). [#67215](https://github.com/ClickHouse/ClickHouse/pull/67215) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).

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

* Aplicável apenas ao tipo de dados Variant experimental. Corrige falha com o tipo Variant + AggregateFunction. [#67122](https://github.com/ClickHouse/ClickHouse/pull/67122) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige travamento no DistributedAsyncInsert quando a conexão está vazia. [#67219](https://github.com/ClickHouse/ClickHouse/pull/67219) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrige o travamento de `uniq` e `uniqTheta ` com o argumento `tuple()`. Fecha [#67303](https://github.com/ClickHouse/ClickHouse/issues/67303). [#67306](https://github.com/ClickHouse/ClickHouse/pull/67306) ([flynn](https://github.com/ucasfl)).
* Corrige [#66026](https://github.com/ClickHouse/ClickHouse/issues/66026). Evita percorrer argumentos não resolvidos de função de tabela em `ReplaceTableNodeToDummyVisitor`. [#67522](https://github.com/ClickHouse/ClickHouse/pull/67522) ([Dmitry Novik](https://github.com/novikd)).
* Corrigido um possível estouro de pilha na função `JSONMergePatch`. Essa função foi renomeada de `jsonMergePatch` para `JSONMergePatch` porque o nome anterior estava incorreto. O nome anterior ainda é mantido por compatibilidade. Melhorado o diagnóstico de erros na função. Isso encerra [#67304](https://github.com/ClickHouse/ClickHouse/issues/67304). [#67756](https://github.com/ClickHouse/ClickHouse/pull/67756) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida uma desreferenciação de ponteiro NULL, acionada por uma consulta especialmente elaborada, que derrubava o servidor por meio de hopEnd, hopStart, tumbleEnd e tumbleStart. [#68098](https://github.com/ClickHouse/ClickHouse/pull/68098) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Corrigido `Not-ready Set` em algumas tabelas de sistema ao aplicar filtros com subconsultas. [#66018](https://github.com/ClickHouse/ClickHouse/pull/66018) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrigida a leitura das subcolunas após a consulta `ALTER ADD COLUMN`. [#66243](https://github.com/ClickHouse/ClickHouse/pull/66243) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige literais booleanos na consulta enviada para o banco de dados externo (para motores como `PostgreSQL`). [#66282](https://github.com/ClickHouse/ClickHouse/pull/66282) ([vdimir](https://github.com/vdimir)).
* Corrige a formatação da consulta com expressão `JOIN ON` com alias, por exemplo, `... JOIN t2 ON (x = y) AS e ORDER BY x` deve ser formatada como `... JOIN t2 ON ((x = y) AS e) ORDER BY x`. [#66312](https://github.com/ClickHouse/ClickHouse/pull/66312) ([vdimir](https://github.com/vdimir)).
* Corrigido `cluster()` para o segredo entre servidores (preserva o usuário inicial como antes). [#66364](https://github.com/ClickHouse/ClickHouse/pull/66364) ([Azat Khuzhin](https://github.com/azat)).
* Corrige um possível erro em tempo de execução ao converter um campo Array com valores nulos para Array(Variant). [#66727](https://github.com/ClickHouse/ClickHouse/pull/66727) ([Kruglov Pavel](https://github.com/Avogar)).
* Correção de deadlock ocasional em Context::getDDLWorker. [#66843](https://github.com/ClickHouse/ClickHouse/pull/66843) ([Alexander Gololobov](https://github.com/davenger)).
* Corrige a criação da tabela KeeperMap após um drop incompleto. [#66865](https://github.com/ClickHouse/ClickHouse/pull/66865) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigido o erro de parte corrompida ao restaurar para um disco `s3_plain_rewritable`. [#66881](https://github.com/ClickHouse/ClickHouse/pull/66881) ([Vitaly Baranov](https://github.com/vitlibar)).
* Em casos raros, o ClickHouse podia considerar as partes corrompidas devido a algumas projeções inesperadas no disco. Agora isso foi corrigido. [#66898](https://github.com/ClickHouse/ClickHouse/pull/66898) ([alesapin](https://github.com/alesapin)).
* Corrige a detecção incorreta de formato na inferência de esquema, que poderia levar ao erro lógico Format {} doesn't support schema inference. [#66899](https://github.com/ClickHouse/ClickHouse/pull/66899) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige um possível deadlock ao cancelar uma consulta com réplicas paralelas. [#66905](https://github.com/ClickHouse/ClickHouse/pull/66905) ([Nikita Taranov](https://github.com/nickitat)).
* Proíbe `create as select` mesmo quando `database_replicated_allow_heavy_create` está definido. Isso foi proibido incondicionalmente na 23.12 e acidentalmente permitido por essa configuração na 24.7, que não chegou a ser lançada. [#66980](https://github.com/ClickHouse/ClickHouse/pull/66980) ([vdimir](https://github.com/vdimir)).
* A leitura de `numbers` podia, incorretamente, gerar uma exceção quando o limite `max_rows_to_read` estava definido. Isso fecha [#66992](https://github.com/ClickHouse/ClickHouse/issues/66992). [#66996](https://github.com/ClickHouse/ClickHouse/pull/66996) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionada a conversão adequada de tipos às funções de janela lagInFrame e leadInFrame - corrige o teste do msan. [#67091](https://github.com/ClickHouse/ClickHouse/pull/67091) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* TRUNCATE DATABASE era usado para interromper a replicação como se fosse uma consulta DROP DATABASE; isso foi corrigido. [#67129](https://github.com/ClickHouse/ClickHouse/pull/67129) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Use um contexto de cliente separado em `clickhouse-local`. [#67133](https://github.com/ClickHouse/ClickHouse/pull/67133) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrigido o erro `Cannot convert column because it is non constant in source stream but must be constant in result.` em uma consulta que lê da tabela `Merge` sobre a tabela `Distriburted` com um shard. [#67146](https://github.com/ClickHouse/ClickHouse/pull/67146) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Funcionamento correto de `ORDER BY all` com `enable_order_by_all` desabilitado e réplicas paralelas (inclusive em consultas distribuídas). [#67153](https://github.com/ClickHouse/ClickHouse/pull/67153) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige o uso incorreto de input\_format\_max\_bytes\_to\_read\_for\_schema\_inference no cache de schema. [#67157](https://github.com/ClickHouse/ClickHouse/pull/67157) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrigido o vazamento de memória em count distinct quando uma exceção era gerada durante o group by com uma única chave Nullable. [#67171](https://github.com/ClickHouse/ClickHouse/pull/67171) ([Jet He](https://github.com/compasses)).
* Corrige um erro na otimização que converte `OUTER JOIN` em `INNER JOIN`. Isso encerra [#67156](https://github.com/ClickHouse/ClickHouse/issues/67156). Isso encerra [#66447](https://github.com/ClickHouse/ClickHouse/issues/66447). O bug foi introduzido em [https://github.com/ClickHouse/ClickHouse/pull/62907](https://github.com/ClickHouse/ClickHouse/pull/62907). [#67178](https://github.com/ClickHouse/ClickHouse/pull/67178) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige o erro `Conversion from AggregateFunction(name, Type) to AggregateFunction(name, Nullable(Type)) is not supported`. O problema era causado pela otimização `optimize_rewrite_aggregate_function_with_if`. Corrige [#67112](https://github.com/ClickHouse/ClickHouse/issues/67112). [#67229](https://github.com/ClickHouse/ClickHouse/pull/67229) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige o travamento de consulta ao usar tupla vazia como lhs da função IN. [#67295](https://github.com/ClickHouse/ClickHouse/pull/67295) ([Duc Canh Le](https://github.com/canhld94)).
* Era possível criar um JSON com aninhamento muito profundo que acionava um estouro de pilha ao ignorar campos desconhecidos. Isso encerra [#67292](https://github.com/ClickHouse/ClickHouse/issues/67292). [#67324](https://github.com/ClickHouse/ClickHouse/pull/67324) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido o problema ao anexar a tabela ReplicatedMergeTree após uma exceção durante a inicialização. [#67360](https://github.com/ClickHouse/ClickHouse/pull/67360) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige falha de segmentação causada por desvinculação incorreta do grupo de threads em `Aggregator`. [#67385](https://github.com/ClickHouse/ClickHouse/pull/67385) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigido mais um caso em que uma função não determinística é especificada na PK. [#67395](https://github.com/ClickHouse/ClickHouse/pull/67395) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigido um problema em que o índice `bloom_filter` quebrava consultas com condições um pouco incomuns, como `(k=2)=(k=2)` ou `has([1,2,3], k)`. [#67423](https://github.com/ClickHouse/ClickHouse/pull/67423) ([Michael Kolupaev](https://github.com/al13n321)).
* Interpretar corretamente o nome de arquivo/URI que contém `::` se não for um arquivo compactado. [#67433](https://github.com/ClickHouse/ClickHouse/pull/67433) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigida a espera pelas tarefas em `~WriteBufferFromS3` caso `WriteBuffer` fosse cancelado. [#67459](https://github.com/ClickHouse/ClickHouse/pull/67459) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Proteção dos diretórios temporários das partes contra remoção durante o RESTORE. [#67491](https://github.com/ClickHouse/ClickHouse/pull/67491) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrigida a execução de funções aninhadas com curto-circuito. [#67520](https://github.com/ClickHouse/ClickHouse/pull/67520) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrigido `Logical error: Expected the argument №N of type T to have X rows, but it has 0`. O erro podia ocorrer em uma consulta remota com expressão constante em `GROUP BY` (com o novo analisador). [#67536](https://github.com/ClickHouse/ClickHouse/pull/67536) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correção de join em tupla com `NULL`s: algumas consultas com o novo analisador e `NULL` dentro da tupla na cláusula `JOIN ON` retornavam resultados incorretos. [#67538](https://github.com/ClickHouse/ClickHouse/pull/67538) ([vdimir](https://github.com/vdimir)).
* Corrigido o reagendamento redundante de FileCache::freeSpaceRatioKeepingThreadFunc() no caso de cache cheio e sem possibilidade de evicção. [#67540](https://github.com/ClickHouse/ClickHouse/pull/67540) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige a inserção em motores do tipo stream (Kafka, RabbitMQ, NATS) por meio da interface HTTP. [#67554](https://github.com/ClickHouse/ClickHouse/pull/67554) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Correção da função `toStartOfWeek`, que retornava um resultado incorreto com um valor pequeno de `DateTime64`. [#67558](https://github.com/ClickHouse/ClickHouse/pull/67558) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrigida a criação de view com CTE recursiva. [#67587](https://github.com/ClickHouse/ClickHouse/pull/67587) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige `Logical error: 'file_offset_of_buffer_end <= read_until_position'` no cache do filesystem. Fecha [#57508](https://github.com/ClickHouse/ClickHouse/issues/57508). [#67623](https://github.com/ClickHouse/ClickHouse/pull/67623) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige [#62282](https://github.com/ClickHouse/ClickHouse/issues/62282). A chamada para `convertFieldToString()` foi removida, e foi adicionado código de serialização específico para cada tipo de dado. A substituição em view parametrizada não funcionava para vários tipos de dados quando o valor do parâmetro era uma função ou expressão que retornava uma instância de tipo de dado. [#67654](https://github.com/ClickHouse/ClickHouse/pull/67654) ([Shankar](https://github.com/shiyer7474)).
* Corrige travamento em `percent_rank`. O tipo de frame padrão de `percent_rank` foi alterado para `range unbounded preceding and unbounded following`. O frame de janela padrão de `IWindowFunction` passa a ser considerado, e agora funções de janela sem definição de frame de janela em SQL podem ser corretamente alocadas em diferentes `WindowTransfomer`s. [#67661](https://github.com/ClickHouse/ClickHouse/pull/67661) ([lgbo](https://github.com/lgbo-ustc)).
* Corrigido o recarregamento de UDFs SQL com UNION. Antes, reiniciar o servidor podia invalidar uma UDF. [#67665](https://github.com/ClickHouse/ClickHouse/pull/67665) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige um possível erro lógico "Unexpected return type from if" com o tipo Variant experimental e com a configuração `use_variant_as_common_type ` habilitada na função if com Tuples e Maps. [#67687](https://github.com/ClickHouse/ClickHouse/pull/67687) ([Kruglov Pavel](https://github.com/Avogar)).
* Devido a um bug no kernel do Linux, uma consulta pode travar em `TimerDescriptor::drain`. Isso fecha [#37686](https://github.com/ClickHouse/ClickHouse/issues/37686). [#67702](https://github.com/ClickHouse/ClickHouse/pull/67702) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a finalização do comando `RESTORE ON CLUSTER`. [#67720](https://github.com/ClickHouse/ClickHouse/pull/67720) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige o travamento do dicionário em caso de CANNOT\_SCHEDULE\_TASK durante o carregamento. [#67751](https://github.com/ClickHouse/ClickHouse/pull/67751) ([Azat Khuzhin](https://github.com/azat)).
* Consultas como `SELECT count() FROM t WHERE cast(c = 1 or c = 9999 AS Bool) SETTINGS use_skip_indexes=1`, com índices de filtro de Bloom em `c`, agora funcionam corretamente. [#67781](https://github.com/ClickHouse/ClickHouse/pull/67781) ([jsc0218](https://github.com/jsc0218)).
* Corrige um resultado de agregação incorreto em algumas consultas com agregação sem chaves e com filtro, fecha [#67419](https://github.com/ClickHouse/ClickHouse/issues/67419). [#67804](https://github.com/ClickHouse/ClickHouse/pull/67804) ([vdimir](https://github.com/vdimir)).
* Validar tipos de dados experimentais/suspeitos em ALTER ADD/MODIFY COLUMN. [#67911](https://github.com/ClickHouse/ClickHouse/pull/67911) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige o parsing de DateTime64 após constant folding em consultas distribuídas; fecha [#66773](https://github.com/ClickHouse/ClickHouse/issues/66773). [#67920](https://github.com/ClickHouse/ClickHouse/pull/67920) ([vdimir](https://github.com/vdimir)).
* Corrige o resultado incorreto de `count()` quando há uma função não determinística no predicado. [#67922](https://github.com/ClickHouse/ClickHouse/pull/67922) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrigido o cálculo do soft limit máximo de threads em ambientes containerizados em que o número de CPUs utilizáveis é limitado. [#67963](https://github.com/ClickHouse/ClickHouse/pull/67963) ([Robert Schulze](https://github.com/rschu1ze)).
* Agora, o ClickHouse não considera a part corrompida se a projeção não existir em disco, mas existir em `checksums.txt`. [#68003](https://github.com/ClickHouse/ClickHouse/pull/68003) ([alesapin](https://github.com/alesapin)).
* Corrigido o ignoramento de partes não afetadas em mutações com o novo analisador. Antes, com o analisador habilitado, os dados em uma parte podiam ser reescritos por uma mutação, mesmo que ela não afetasse essa parte de acordo com o predicado. [#68052](https://github.com/ClickHouse/ClickHouse/pull/68052) ([Anton Popov](https://github.com/CurtizJ)).
* Remove uma otimização incorreta de eliminação da ordenação em subconsultas que usam `OFFSET`. Corrige [#67906](https://github.com/ClickHouse/ClickHouse/issues/67906). [#68099](https://github.com/ClickHouse/ClickHouse/pull/68099) ([Graham Campbell](https://github.com/GrahamCampbell)).
* Tentativa de corrigir `Block structure mismatch in AggregatingStep stream: different types` na otimização de projeções agregadas. [#68107](https://github.com/ClickHouse/ClickHouse/pull/68107) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Tentativa de corrigir falha do postgres quando a consulta é cancelada. [#68288](https://github.com/ClickHouse/ClickHouse/pull/68288) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige a ausência do modo de sincronização de réplica na consulta `SYSTEM SYNC REPLICA`. [#68326](https://github.com/ClickHouse/ClickHouse/pull/68326) ([Duc Canh Le](https://github.com/canhld94)).

### <a id="247" /> Lançamento do ClickHouse 24.7, 2024-07-30. [Apresentação](https://presentations.clickhouse.com/2024-release-24.7/), [Vídeo](https://www.youtube.com/watch?v=GerQFdJCk7A)

<Frame>
  <iframe src="https://www.youtube.com/embed/GerQFdJCk7A" 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>

* Proibir `CRATE MATERIALIZED VIEW ... ENGINE Replicated*MergeTree POPULATE AS SELECT ...` com bancos de dados Replicated. [#63963](https://github.com/ClickHouse/ClickHouse/pull/63963) ([vdimir](https://github.com/vdimir)).
* `clickhouse-keeper-client` aceitará apenas caminhos em literais de string, como `ls '/hello/world'`, e não strings sem aspas, como `ls /hello/world`. [#65494](https://github.com/ClickHouse/ClickHouse/pull/65494) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A métrica `KeeperOutstandingRequets` foi renomeada para `KeeperOutstandingRequests`. [#66206](https://github.com/ClickHouse/ClickHouse/pull/66206) ([Robert Schulze](https://github.com/rschu1ze)).
* Remove o campo `is_deterministic` da tabela `system.functions`. [#66630](https://github.com/ClickHouse/ClickHouse/pull/66630) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A função `tuple` agora tentará construir tuplas nomeadas na consulta (controlado por `enable_named_columns_in_function_tuple`). Introduz a função `tupleNames` para extrair nomes de tuplas. [#54881](https://github.com/ClickHouse/ClickHouse/pull/54881) ([Amos Bird](https://github.com/amosbird)).
* Altera a forma como a desduplicação de visões materializadas funciona. Corrige vários casos, como: - na tabela de destino: os dados são divididos em 2 ou mais blocos, e esses blocos são considerados duplicados quando são inseridos em paralelo. - na tabela de destino da MV: blocos iguais são desduplicados; isso acontece quando a MV frequentemente produz dados iguais como resultado de dados de entrada diferentes devido à agregação. - na tabela de destino da MV: blocos iguais vindos de MVs diferentes são desduplicados. [#61601](https://github.com/ClickHouse/ClickHouse/pull/61601) ([Sema Checherinda](https://github.com/CheSema)).
* As funções `bitShiftLeft` e `bitShitfRight` retornam um erro para posições de shift fora dos limites. [#65838](https://github.com/ClickHouse/ClickHouse/pull/65838) ([Pablo Marcos](https://github.com/pamarcos)).

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

* Adiciona suporte a `ASOF JOIN` para o algoritmo `full_sorting_join`. [#55051](https://github.com/ClickHouse/ClickHouse/pull/55051) ([vdimir](https://github.com/vdimir)).
* Adiciona suporte à autenticação JWT no `clickhouse-client` (estará disponível apenas no ClickHouse Cloud). [#62829](https://github.com/ClickHouse/ClickHouse/pull/62829) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Adiciona as funções SQL `changeYear`, `changeMonth`, `changeDay`, `changeHour`, `changeMinute`, `changeSecond`. Por exemplo, `SELECT changeMonth(toDate('2024-06-14'), 7)` retorna a data `2024-07-14`. [#63186](https://github.com/ClickHouse/ClickHouse/pull/63186) ([cucumber95](https://github.com/cucumber95)).
* Introduz scripts de inicialização, que permitem executar consultas pré-configuradas na etapa de inicialização. [#64889](https://github.com/ClickHouse/ClickHouse/pull/64889) ([pufit](https://github.com/pufit)).
* Adiciona suporte a `accept_invalid_certificate` na configuração do cliente para permitir que ele se conecte via TCP seguro a um servidor em execução com certificado autoassinado — pode ser usado como forma abreviada das configurações correspondentes do cliente `openSSL`: `verificationMode=none` + `invalidCertificateHandler.name=AcceptCertificateHandler`. [#65238](https://github.com/ClickHouse/ClickHouse/pull/65238) ([peacewalker122](https://github.com/peacewalker122)).
* Adiciona `system.error_log`, que contém o histórico de valores de erro da tabela `system.errors`, gravados periodicamente em disco. [#65381](https://github.com/ClickHouse/ClickHouse/pull/65381) ([Pablo Marcos](https://github.com/pamarcos)).
* Adiciona a função de agregação `groupConcat`. É praticamente igual a `arrayStringConcat( groupArray(column), ',')`. Pode receber 2 parâmetros: um delimitador de string e o número de elementos a serem processados. [#65451](https://github.com/ClickHouse/ClickHouse/pull/65451) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Adiciona o armazenamento AzureQueue. [#65458](https://github.com/ClickHouse/ClickHouse/pull/65458) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adiciona uma nova configuração para desabilitar/habilitar a gravação do índice de página em arquivos Parquet. [#65475](https://github.com/ClickHouse/ClickHouse/pull/65475) ([lgbo](https://github.com/lgbo-ustc)).
* Introduz a configuração do servidor `logger.console_log_level` para controlar o nível de log no console (se habilitado). [#65559](https://github.com/ClickHouse/ClickHouse/pull/65559) ([Azat Khuzhin](https://github.com/azat)).
* Anexa automaticamente um caractere curinga `*` ao final de um caminho de diretório com a função de tabela `file`. [#66019](https://github.com/ClickHouse/ClickHouse/pull/66019) ([Zhidong (David) Guo](https://github.com/Gun9niR)).
* Adiciona a opção `--memory-usage` ao cliente no modo não interativo. [#66393](https://github.com/ClickHouse/ClickHouse/pull/66393) ([vdimir](https://github.com/vdimir)).
* Torna o `clickhouse-disks` um cliente interativo e adiciona disco local a partir do diretório local. [#64446](https://github.com/ClickHouse/ClickHouse/pull/64446) ([Daniil Ivanik](https://github.com/divanik)).
* Quando ocorre uma exclusão leve em uma tabela com projeção(ões), os usuários podem optar por lançar uma exceção (padrão) ou remover a projeção [#65594](https://github.com/ClickHouse/ClickHouse/pull/65594) ([jsc0218](https://github.com/jsc0218)).
* Adiciona tabelas de sistema com as principais informações sobre todas as tabelas detached. [#65400](https://github.com/ClickHouse/ClickHouse/pull/65400) ([Konstantin Morozov](https://github.com/k-morozov)).

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

* Altera a serialização binária do tipo de dado `Variant`: adiciona o modo `compact` para evitar gravar o mesmo discriminador várias vezes em grânulos com uma única variante ou apenas valores NULL. Adiciona a configuração do MergeTree `use_compact_variant_discriminators_serialization`, habilitada por padrão. Observe que o tipo Variant ainda é experimental, e uma mudança incompatível com versões anteriores na serialização é aceitável. [#62774](https://github.com/ClickHouse/ClickHouse/pull/62774) ([Kruglov Pavel](https://github.com/Avogar)).
* Adiciona suporte a armazenamento backend em disco para o clickhouse-keeper. [#56626](https://github.com/ClickHouse/ClickHouse/pull/56626) ([Han Fei](https://github.com/hanfei1991)).
* Refatora as funções JSONExtract, com suporte a mais tipos, incluindo o tipo Dynamic experimental. [#66046](https://github.com/ClickHouse/ClickHouse/pull/66046) ([Kruglov Pavel](https://github.com/Avogar)).
* Adiciona suporte a subcoluna `map` nula para subcolunas `Variant` e `Dynamic`. [#66178](https://github.com/ClickHouse/ClickHouse/pull/66178) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige a leitura de subcolunas `Dynamic` de uma tabela `Memory` alterada. Antes, se o parâmetro `max_types` de um tipo Dynamic fosse alterado na tabela Memory via alter, leituras subsequentes das subcolunas poderiam retornar resultados incorretos. [#66066](https://github.com/ClickHouse/ClickHouse/pull/66066) ([Kruglov Pavel](https://github.com/Avogar)).
* Adiciona suporte a `cluster_for_parallel_replicas` ao usar réplicas paralelas com chave personalizada. Isso permite usar réplicas paralelas com chave personalizada em tabelas MergeTree. [#65453](https://github.com/ClickHouse/ClickHouse/pull/65453) ([Antonio Andelic](https://github.com/antonio2368)).

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

* Substituído o algoritmo de conversão de int para string por uma versão mais rápida (de um amdn/itoa modificado para um jeaiii/itoa modificado). [#61661](https://github.com/ClickHouse/ClickHouse/pull/61661) ([Raúl Marín](https://github.com/Algunenano)).
* Os tamanhos das tabelas hash criadas por join (algoritmo `parallel_hash`) agora são coletados e armazenados em cache. Essas informações serão usadas para pré-alocar espaço nas tabelas hash em execuções subsequentes de consultas e economizar tempo com redimensionamentos de tabela hash. [#64553](https://github.com/ClickHouse/ClickHouse/pull/64553) ([Nikita Taranov](https://github.com/nickitat)).
* Otimizadas consultas com `ORDER BY` na chave primária e `WHERE` com condição de alta seletividade usando buffering. Isso é controlado pela configuração `read_in_order_use_buffering` (habilitada por padrão) e pode aumentar o uso de memória da consulta. [#64607](https://github.com/ClickHouse/ClickHouse/pull/64607) ([Anton Popov](https://github.com/CurtizJ)).
* Melhorado o desempenho do carregamento de metadados `plain_rewritable`. [#65634](https://github.com/ClickHouse/ClickHouse/pull/65634) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O Attach de tabelas em discos read-only usará menos recursos por não carregar partes desatualizadas. [#65635](https://github.com/ClickHouse/ClickHouse/pull/65635) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suporte a hiperetângulo minmax para índices Set. [#65676](https://github.com/ClickHouse/ClickHouse/pull/65676) ([AntiTopQuark](https://github.com/AntiTopQuark)).
* Descarrega o índice primário de partes desatualizadas para reduzir o uso total de memória. [#65852](https://github.com/ClickHouse/ClickHouse/pull/65852) ([Anton Popov](https://github.com/CurtizJ)).
* As funções `replaceRegexpAll` e `replaceRegexpOne` agora são significativamente mais rápidas quando o pattern é trivial, ou seja, não contém metacaracteres, classes de padrão, flags, caracteres de agrupamento etc. (Agradecimentos a Taiyang Li). [#66185](https://github.com/ClickHouse/ClickHouse/pull/66185) ([Robert Schulze](https://github.com/rschu1ze)).
* Requisições ao S3: redução do tempo de retry para consultas e aumento da quantidade de retries para backups. 8,5 minutos e 100 retries para consultas; 1,2 horas e 1000 retries para restore de backup. [#65232](https://github.com/ClickHouse/ClickHouse/pull/65232) ([Sema Checherinda](https://github.com/CheSema)).
* Suporte à otimização de LIMIT no plano de consulta. Suporte a pushdown de LIMIT para o mecanismo PostgreSQL e table function. [#65454](https://github.com/ClickHouse/ClickHouse/pull/65454) ([Maksim Kita](https://github.com/kitaisreal)).
* Melhorado o balanceamento de carga do ZooKeeper. A sessão atual não expira até que os nós ideais fiquem disponíveis, apesar de `fallback_session_lifetime`. Adicionado suporte a balanceamento com reconhecimento de AZ. [#65570](https://github.com/ClickHouse/ClickHouse/pull/65570) ([Alexander Tokmakov](https://github.com/tavplubix)).
* O DatabaseCatalog remove tabelas mais rapidamente usando até `database_catalog_drop_table_concurrency` threads. [#66065](https://github.com/ClickHouse/ClickHouse/pull/66065) ([Sema Checherinda](https://github.com/CheSema)).

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

* Balanceamento de carga do ZooKeeper aprimorado. A sessão atual não expira até que os nós ideais voltem a ficar disponíveis, apesar de `fallback_session_lifetime`. Adicionado suporte a balanceamento com reconhecimento de zonas de disponibilidade (AZ). [#65570](https://github.com/ClickHouse/ClickHouse/pull/65570) ([Alexander Tokmakov](https://github.com/tavplubix)).
* A configuração `optimize_trivial_insert_select` é desabilitada por padrão. Na maioria dos casos, isso deve ser vantajoso. Ainda assim, se você estiver observando um `INSERT SELECT` mais lento ou aumento no uso de memória, poderá reabilitá-la ou usar `SET compatibility = '24.6'`. [#58970](https://github.com/ClickHouse/ClickHouse/pull/58970) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Imprimir o stack trace e informações de diagnóstico se `clickhouse-client` ou `clickhouse-local` travar. [#61109](https://github.com/ClickHouse/ClickHouse/pull/61109) ([Alexander Tokmakov](https://github.com/tavplubix)).
* O resultado de `SHOW INDEX | INDEXES | INDICES | KEYS` era anteriormente ordenado pelos nomes das colunas da chave primária. Como isso não era intuitivo, agora o resultado é ordenado pela posição das colunas dentro da chave primária. [#61131](https://github.com/ClickHouse/ClickHouse/pull/61131) ([Robert Schulze](https://github.com/rschu1ze)).
* Altera a forma como a desduplicação em visões materializadas funciona. Foram corrigidos vários casos, como: - na tabela de destino: os dados são divididos em 2 ou mais blocos, e esses blocos são considerados duplicados quando são inseridos em paralelo. - na tabela de destino da MV: blocos iguais são desduplicados; isso acontece quando a MV frequentemente produz dados iguais como resultado de dados de entrada diferentes devido à agregação. - na tabela de destino da MV: blocos iguais provenientes de MVs diferentes são desduplicados. [#61601](https://github.com/ClickHouse/ClickHouse/pull/61601) ([Sema Checherinda](https://github.com/CheSema)).
* Suporte à leitura de dados DeltaLake particionados. Inferência do esquema do DeltaLake pela leitura dos metadados, em vez dos dados. [#63201](https://github.com/ClickHouse/ClickHouse/pull/63201) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Na camada TLS dos protocolos composáveis, apenas os parâmetros `certificateFile` e `privateKeyFile` eram aceitos. [https://clickhouse.com/docs/operations/settings/composable-protocols](https://clickhouse.com/docs/operations/settings/composable-protocols). [#63985](https://github.com/ClickHouse/ClickHouse/pull/63985) ([Anton Ivashkin](https://github.com/ianton-ru)).
* Adicionado o evento de perfil `SelectQueriesWithPrimaryKeyUsage`, que indica quantas consultas SELECT usam a chave primária para avaliar a cláusula WHERE. [#64492](https://github.com/ClickHouse/ClickHouse/pull/64492) ([0x01f](https://github.com/0xfei)).
* Correções e melhorias relacionadas ao `StorageS3Queue`. Determinar o valor padrão de `s3queue_processing_threads_num` com base no número de núcleos físicos de CPU no servidor (em vez do valor padrão anterior, que era 1). Definir o valor padrão de `s3queue_loading_retries` como 10. Corrigir a possível exceção vaga "Uncaught exception" na coluna de exceção de `system.s3queue`. Não incrementar o contador de tentativas na exceção `MEMORY_LIMIT_EXCEEDED`. Mover o commit dos arquivos para uma etapa posterior à conclusão total da inserção na tabela, para evitar que arquivos sejam comitados sem terem sido inseridos. Adicionar as configurações `s3queue_max_processed_files_before_commit`, `s3queue_max_processed_rows_before_commit`, `s3queue_max_processed_bytes_before_commit`, `s3queue_max_processing_time_sec_before_commit` para controlar melhor o commit e o tempo de flush. [#65046](https://github.com/ClickHouse/ClickHouse/pull/65046) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Suporte a aliases em funções de views parametrizadas (apenas no novo analisador). [#65190](https://github.com/ClickHouse/ClickHouse/pull/65190) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Atualizado para mascarar a chave da conta nos logs do azureBlobStorage. [#65273](https://github.com/ClickHouse/ClickHouse/pull/65273) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Poda de partições em predicados `IN` quando a expressão de filtro faz parte da expressão `PARTITION BY`. [#65335](https://github.com/ClickHouse/ClickHouse/pull/65335) ([Eduard Karacharov](https://github.com/korowa)).
* `arrayMin`/`arrayMax` podem ser aplicados a todos os tipos de dados comparáveis. [#65455](https://github.com/ClickHouse/ClickHouse/pull/65455) ([pn](https://github.com/chloro-pn)).
* Melhorada a contabilização de memória para cgroups v2 para excluir a parcela ocupada pelo cache de páginas. [#65470](https://github.com/ClickHouse/ClickHouse/pull/65470) ([Nikita Taranov](https://github.com/nickitat)).
* Não crie configurações de formato para cada linha ao serializar fragmentos para inserção na tabela EmbeddedRocksDB. [#65474](https://github.com/ClickHouse/ClickHouse/pull/65474) ([Duc Canh Le](https://github.com/canhld94)).
* Reduza o prompt do `clickhouse-local` para apenas `:)`. `getFQDNOrHostName()` demora muito no macOS e, de qualquer forma, não queremos um hostname no prompt do `clickhouse-local`. [#65510](https://github.com/ClickHouse/ClickHouse/pull/65510) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Evita a exibição de uma mensagem do jemalloc sobre arenas por CPU em máquinas virtuais de baixo desempenho. [#65532](https://github.com/ClickHouse/ClickHouse/pull/65532) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Desativa o download em segundo plano do cache do sistema de arquivos por padrão. Ele será reativado quando corrigirmos o problema do possível "Memory limit exceeded", porque a desalocação de memória é feita fora do contexto da consulta (enquanto o buffer é alocado dentro do contexto da consulta) se usarmos threads de download em segundo plano. Além disso, precisamos adicionar uma configuração separada para definir o tamanho máximo de download para os workers em segundo plano (atualmente, ele é limitado por max\_file\_segment\_size, que pode ser grande demais). [#65534](https://github.com/ClickHouse/ClickHouse/pull/65534) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adicionada uma nova opção à configuração `<config_reload_interval_ms>`, que permite especificar com que frequência o ClickHouse recarregará a configuração. [#65545](https://github.com/ClickHouse/ClickHouse/pull/65545) ([alesapin](https://github.com/alesapin)).
* Implemente a codificação binária para os tipos de dados do ClickHouse e adicione sua especificação à documentação. Use-a na serialização binária de Dynamic e permita seu uso nos formatos RowBinaryWithNamesAndTypes e Native por meio de configurações. [#65546](https://github.com/ClickHouse/ClickHouse/pull/65546) ([Kruglov Pavel](https://github.com/Avogar)).
* As configurações de servidor `compiled_expression_cache_size` e `compiled_expression_cache_elements_size` agora são exibidas em `system.server_settings`. [#65584](https://github.com/ClickHouse/ClickHouse/pull/65584) ([Robert Schulze](https://github.com/rschu1ze)).
* Adicionado suporte à identificação de usuários com base na extensão SubjectAltName do x509. [#65626](https://github.com/ClickHouse/ClickHouse/pull/65626) ([Anton Kozlov](https://github.com/tonickkozlov)).
* `clickhouse-local` respeitará `max_server_memory_usage` e `max_server_memory_usage_to_ram_ratio` do arquivo de configuração. Ele também definirá, por padrão, o uso máximo de memória como 90% da memória do sistema, assim como o `clickhouse-server`. [#65697](https://github.com/ClickHouse/ClickHouse/pull/65697) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicione um script para fazer backup dos seus arquivos no ClickHouse. [#65699](https://github.com/ClickHouse/ClickHouse/pull/65699) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Origem PostgreSQL com suporte a cancelamento de consultas. [#65722](https://github.com/ClickHouse/ClickHouse/pull/65722) ([Maksim Kita](https://github.com/kitaisreal)).
* Faz com que `allow_experimental_analyzer` seja controlado pelo nó iniciador nas consultas distribuídas. Isso garante compatibilidade e comportamento correto durante operações em clusters com versões mistas. [#65777](https://github.com/ClickHouse/ClickHouse/pull/65777) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Respeita o limite de CPU do cgroup no Keeper. [#65819](https://github.com/ClickHouse/ClickHouse/pull/65819) ([Antonio Andelic](https://github.com/antonio2368)).
* Permite o uso da função `concat` com argumentos vazios `:) select concat();`. [#65887](https://github.com/ClickHouse/ClickHouse/pull/65887) ([李扬](https://github.com/taiyang-li)).
* Permite controlar as named collections no `clickhouse-local`. [#65973](https://github.com/ClickHouse/ClickHouse/pull/65973) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Melhora nos eventos de perfil relacionados ao Azure. [#65999](https://github.com/ClickHouse/ClickHouse/pull/65999) ([alesapin](https://github.com/alesapin)).
* Suporte à leitura de arquivos ORC com base no fuso horário do gravador. [#66025](https://github.com/ClickHouse/ClickHouse/pull/66025) ([kevinyhzou](https://github.com/KevinyhZou)).
* Adiciona configurações para controlar as conexões com o PostgreSQL. A configuração `postgresql_connection_attempt_timeout` especifica o valor passado para o parâmetro `connect_timeout` da URL de conexão. A configuração `postgresql_connection_pool_retries` especifica o número de tentativas para estabelecer uma conexão com o endpoint do PostgreSQL. [#66232](https://github.com/ClickHouse/ClickHouse/pull/66232) ([Dmitry Novik](https://github.com/novikd)).
* Reduz a imprecisão de `input_wait_elapsed_us`/`elapsed_us` em `system.processors_profile_log`. [#66239](https://github.com/ClickHouse/ClickHouse/pull/66239) ([Azat Khuzhin](https://github.com/azat)).
* Aprimora os ProfileEvents do cache do sistema de arquivos. [#66249](https://github.com/ClickHouse/ClickHouse/pull/66249) ([zhukai](https://github.com/nauu)).
* Adicionadas configurações para ignorar a cláusula `ON CLUSTER` nas consultas de gerenciamento de coleção nomeada com armazenamento replicado. [#66288](https://github.com/ClickHouse/ClickHouse/pull/66288) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* A função `generateSnowflakeID` agora permite especificar um ID de máquina como parâmetro para evitar colisões em clusters de grande porte. [#66374](https://github.com/ClickHouse/ClickHouse/pull/66374) ([ZAWA\_ll](https://github.com/Zawa-ll)).
* Desabilitar a suspensão com `Ctrl+Z` no modo interativo. Essa é uma armadilha comum e não é o comportamento esperado para quase nenhum usuário. Imagino que apenas alguns usuários avançados mais extremos possam achar útil suspender aplicativos de terminal em segundo plano, mas não conheço nenhum. [#66511](https://github.com/ClickHouse/ClickHouse/pull/66511) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionada uma opção para validar o tipo da chave primária em Dictionaries. Sem essa opção, em layouts simples, qualquer tipo de coluna será convertido implicitamente para UInt64. [#66595](https://github.com/ClickHouse/ClickHouse/pull/66595) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).

<div id="bug-fix-user-visible-misbehavior-in-an-official-stable-release-4">
  #### Correção de bug (mau funcionamento perceptível ao usuário em uma versão estável oficial)
</div>

* Verifica dependências cíclicas em consultas CREATE/REPLACE/RENAME/EXCHANGE e lança uma exceção se houver dependência cíclica. Antes, essas dependências cíclicas podiam causar um deadlock durante a inicialização do servidor. Também corrige alguns bugs na criação de dependências. [#65405](https://github.com/ClickHouse/ClickHouse/pull/65405) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige tamanhos inesperados em colunas `LowCardinality` em chamadas de função. [#65298](https://github.com/ClickHouse/ClickHouse/pull/65298) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige um travamento em maxIntersections. [#65689](https://github.com/ClickHouse/ClickHouse/pull/65689) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigido o problema em que a cláusula `VALID UNTIL` na definição do usuário era redefinida após uma reinicialização. [#66409](https://github.com/ClickHouse/ClickHouse/pull/66409) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrigida a coluna de tempo restante em `SHOW MERGES`. [#66735](https://github.com/ClickHouse/ClickHouse/pull/66735) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `Query was cancelled` pode ter sido impresso duas vezes no clickhouse-client. Esse comportamento foi corrigido. [#66005](https://github.com/ClickHouse/ClickHouse/pull/66005) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrigido um travamento ao usar `MaterializedMySQL` (que é um recurso experimental sem suporte) com TABLE OVERRIDE que mapeia um campo MySQL NULL para um campo ClickHouse NOT NULL. [#54649](https://github.com/ClickHouse/ClickHouse/pull/54649) ([Filipp Ozinov](https://github.com/bakwc)).
* Corrigido erro lógico quando a expressão `PREWHERE` não lê nenhuma coluna e a tabela não tem granularidade adaptativa de índice (tabela muito antiga). [#59173](https://github.com/ClickHouse/ClickHouse/pull/59173) ([Alexander Gololobov](https://github.com/davenger)).
* Corrigido bug no buffer de cancelamento ao cancelar uma consulta. [#64478](https://github.com/ClickHouse/ClickHouse/pull/64478) ([Sema Checherinda](https://github.com/CheSema)).
* Corrigido o preenchimento das colunas das partes a partir dos metadados (quando `columns.txt` não existe). [#64757](https://github.com/ClickHouse/ClickHouse/pull/64757) ([Azat Khuzhin](https://github.com/azat)).
* Corrige falha em `ALTER TABLE ... ON CLUSTER ... MODIFY SQL SECURITY`. [#64957](https://github.com/ClickHouse/ClickHouse/pull/64957) ([pufit](https://github.com/pufit)).
* Corrige falha ao destruir o AccessControl: adiciona encerramento explícito. [#64993](https://github.com/ClickHouse/ClickHouse/pull/64993) ([Vitaly Baranov](https://github.com/vitlibar)).
* Eliminar recursivamente funções injetivas nos argumentos das funções `uniq*`. Isso costumava funcionar corretamente, mas foi quebrado no novo analisador. [#65140](https://github.com/ClickHouse/ClickHouse/pull/65140) ([Duc Canh Le](https://github.com/canhld94)).
* Corrige nome de projeção inesperado em consulta com CTE. [#65267](https://github.com/ClickHouse/ClickHouse/pull/65267) ([wudidapaopao](https://github.com/wudidapaopao)).
* Exigir o privilégio `dictGet` para acessar dicionários por consulta direta ou pelo mecanismo de tabela `Dictionary`. [#65359](https://github.com/ClickHouse/ClickHouse/pull/65359) ([Joe Lynch](https://github.com/joelynch)).
* Corrige a autenticação do S3 por usuário com backups incrementais. [#65481](https://github.com/ClickHouse/ClickHouse/pull/65481) ([Antonio Andelic](https://github.com/antonio2368)).
* Desabilite a otimização `non-intersecting-parts` para consultas com `FINAL` caso a otimização `read-in-order` esteja habilitada. Isso pode levar a um resultado incorreto da consulta. Como solução alternativa, desabilite `do_not_merge_across_partitions_select_final` e `split_parts_ranges_into_intersecting_and_non_intersecting_final` antes que essa correção seja incorporada. [#65505](https://github.com/ClickHouse/ClickHouse/pull/65505) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigida a ocorrência da exceção `Index out of bound for blob metadata` caso todos os arquivos do lote da lista fossem filtrados. [#65523](https://github.com/ClickHouse/ClickHouse/pull/65523) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige NOT\_FOUND\_COLUMN\_IN\_BLOCK no merge de desduplicação de projeção. [#65573](https://github.com/ClickHouse/ClickHouse/pull/65573) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrigido um bug no MergeJoin. Uma coluna na serialização esparsa poderia ser tratada como uma coluna do seu tipo aninhado, embora a conversão necessária não fosse realizada. [#65632](https://github.com/ClickHouse/ClickHouse/pull/65632) ([Nikita Taranov](https://github.com/nickitat)).
* Corrigido um bug que impedia a aplicação correta do nível de compatibilidade '23.4'. [#65737](https://github.com/ClickHouse/ClickHouse/pull/65737) ([cw5121](https://github.com/cw5121)).
* Corrige a tabela ODBC com campos Nullable. [#65738](https://github.com/ClickHouse/ClickHouse/pull/65738) ([Rodolphe Dugé de Bernonville](https://github.com/RodolpheDuge)).
* Corrige uma condição de corrida em `TCPHandler`, que poderia ocorrer em caso de erro fatal. [#65744](https://github.com/ClickHouse/ClickHouse/pull/65744) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigidas exceções incorretas na função `parseDateTime` com os placeholders `%F` e `%D`. [#65768](https://github.com/ClickHouse/ClickHouse/pull/65768) ([Antonio Andelic](https://github.com/antonio2368)).
* Para consultas que leem do `PostgreSQL`, cancele a consulta interna no `PostgreSQL` se a consulta do `ClickHouse` já tiver sido concluída. Caso contrário, a consulta do `ClickHouse` não poderá ser cancelada até que a consulta interna no `PostgreSQL` seja concluída. [#65771](https://github.com/ClickHouse/ClickHouse/pull/65771) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige um bug na lógica de curto-circuito quando são usados o analisador antigo e `dictGetOrDefault`. [#65802](https://github.com/ClickHouse/ClickHouse/pull/65802) ([jsc0218](https://github.com/jsc0218)).
* Corrige um bug que fazia com que o EmbeddedRocksDB com escrita TTL corrompesse arquivos SST. [#65816](https://github.com/ClickHouse/ClickHouse/pull/65816) ([Duc Canh Le](https://github.com/canhld94)).
* As funções `bitTest`, `bitTestAll` e `bitTestAny` agora retornam um erro se o índice de bit especificado estiver fora do intervalo válido [#65818](https://github.com/ClickHouse/ClickHouse/pull/65818) ([Pablo Marcos](https://github.com/pamarcos)).
* A configuração `join_any_take_last_row` é compatível com qualquer consulta que use hash join. [#65820](https://github.com/ClickHouse/ClickHouse/pull/65820) ([vdimir](https://github.com/vdimir)).
* Melhor tratamento de condições de join que envolvem verificações `IS NULL` (por exemplo, `ON (a = b AND (a IS NOT NULL) AND (b IS NOT NULL) ) OR ( (a IS NULL) AND (b IS NULL) )` é reescrita como `ON a <=> b`), corrigindo a otimização incorreta quando há condições diferentes de `IS NULL`. [#65835](https://github.com/ClickHouse/ClickHouse/pull/65835) ([vdimir](https://github.com/vdimir)).
* Corrigido o aumento do uso de memória no S3Queue. [#65839](https://github.com/ClickHouse/ClickHouse/pull/65839) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigido o tratamento de empates em `arrayAUC` para corresponder ao sklearn. [#65840](https://github.com/ClickHouse/ClickHouse/pull/65840) ([gabrielmcg44](https://github.com/gabrielmcg44)).
* Corrige possíveis problemas nas conexões TLS do protocolo de servidor MySQL. [#65917](https://github.com/ClickHouse/ClickHouse/pull/65917) ([Azat Khuzhin](https://github.com/azat)).
* Corrige possíveis problemas nas conexões TLS do protocolo de cliente MySQL. [#65938](https://github.com/ClickHouse/ClickHouse/pull/65938) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido o tratamento de `SSL_ERROR_WANT_READ`/`SSL_ERROR_WANT_WRITE` com timeout zero. [#65941](https://github.com/ClickHouse/ClickHouse/pull/65941) ([Azat Khuzhin](https://github.com/azat)).
* Adiciona as configurações ausentes `input_format_csv_skip_first_lines/input_format_tsv_skip_first_lines/input_format_csv_try_infer_numbers_from_strings/input_format_csv_try_infer_strings_from_quoted_tuples` ao cache de inferência de esquema, pois elas podem alterar o esquema resultante. Isso evita resultados incorretos da inferência de esquema quando essas configurações são alteradas. [#65980](https://github.com/ClickHouse/ClickHouse/pull/65980) ([Kruglov Pavel](https://github.com/Avogar)).
* A coluna \_size no engine S3 e na função de tabela S3 indica o tamanho de um arquivo dentro do arquivo compactado, não o tamanho do próprio arquivo compactado. [#65993](https://github.com/ClickHouse/ClickHouse/pull/65993) ([Daniil Ivanik](https://github.com/divanik)).
* Corrigida a resolução de subcolunas dinâmicas no analisador, evitando a leitura da coluna inteira ao ler subcolunas dinâmicas. [#66004](https://github.com/ClickHouse/ClickHouse/pull/66004) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige a mesclagem de configurações do from\_env com sobrescritas de replace. [#66034](https://github.com/ClickHouse/ClickHouse/pull/66034) ([Azat Khuzhin](https://github.com/azat)).
* Corrige um possível travamento no `GRPCServer` durante o desligamento. [#66061](https://github.com/ClickHouse/ClickHouse/pull/66061) ([Vitaly Baranov](https://github.com/vitlibar)).
* Foram corrigidos vários casos na função `has` com argumentos `LowCardinality` não constantes. [#66088](https://github.com/ClickHouse/ClickHouse/pull/66088) ([Anton Popov](https://github.com/CurtizJ)).
* Correção para `groupArrayIntersect`. Havia um comportamento incorreto na função `merge()`. Além disso, foi corrigido o comportamento em `deserialise()` para dados numéricos e dados em geral. [#66103](https://github.com/ClickHouse/ClickHouse/pull/66103) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrigido bug de overflow de buffer na implementação de `unbin`/`unhex`. [#66106](https://github.com/ClickHouse/ClickHouse/pull/66106) ([Nikita Taranov](https://github.com/nickitat)).
* Desabilita a otimização `merge-filters`, introduzida em [#64760](https://github.com/ClickHouse/ClickHouse/issues/64760). Ela pode causar uma exceção se a otimização mesclar duas expressões de filtro sem aplicar avaliação de curto-circuito. [#66126](https://github.com/ClickHouse/ClickHouse/pull/66126) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigido o problema em que o servidor não conseguia interpretar arquivos Avro com arrays codificados com bloco de tamanho negativo, o que agora é permitido pela especificação do Avro. [#66130](https://github.com/ClickHouse/ClickHouse/pull/66130) ([Serge Klochkov](https://github.com/slvrtrn)).
* Corrigido um bug no cliente ZooKeeper: uma sessão podia ficar travada em um estado inutilizável após receber um erro de hardware do ZooKeeper. Por exemplo, isso podia acontecer devido ao "soft memory limit" no ClickHouse Keeper. [#66140](https://github.com/ClickHouse/ClickHouse/pull/66140) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrigido problema no SumIfToCountIfVisitor e em inteiros com sinal. [#66146](https://github.com/ClickHouse/ClickHouse/pull/66146) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige um caso raro de ausência de dados no resultado de uma consulta distribuída. [#66174](https://github.com/ClickHouse/ClickHouse/pull/66174) ([vdimir](https://github.com/vdimir)).
* Corrigida a ordem de parsing dos campos de metadados no StorageDeltaLake. [#66211](https://github.com/ClickHouse/ClickHouse/pull/66211) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Não gere `TIMEOUT_EXCEEDED` para o modo `none_only_active` de `distributed_ddl_output_mode`. [#66218](https://github.com/ClickHouse/ClickHouse/pull/66218) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrigido o tratamento do limite em `system.numbers_mt` quando nenhum índice pode ser usado. [#66231](https://github.com/ClickHouse/ClickHouse/pull/66231) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrigida a forma como o servidor ClickHouse detecta o número máximo de núcleos de CPU utilizáveis, conforme especificado pelo cgroups v2, quando o servidor é executado em um contêiner, como o Docker. Mais especificamente, os contêineres frequentemente executam seus processos no cgroup raiz, que tem um nome vazio. Nesse caso, o ClickHouse ignorava os limites de CPU definidos pelo cgroups v2. [#66237](https://github.com/ClickHouse/ClickHouse/pull/66237) ([filimonov](https://github.com/filimonov)).
* Corrige o erro `Not-ready set` ao usar uma subconsulta com `IN` na restrição. [#66261](https://github.com/ClickHouse/ClickHouse/pull/66261) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige o reporte de erros durante a cópia para S3 ou AzureBlobStorage. [#66295](https://github.com/ClickHouse/ClickHouse/pull/66295) ([Vitaly Baranov](https://github.com/vitlibar)).
* Impedir que o watchdog mantenha descritores de arquivos de log já desvinculados (rotacionados). [#66334](https://github.com/ClickHouse/ClickHouse/pull/66334) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Corrige o bug em que o logicalexpressionoptimizerpass perdia o tipo lógico de uma constante. [#66344](https://github.com/ClickHouse/ClickHouse/pull/66344) ([pn](https://github.com/chloro-pn)).
* Corrige o erro `Column identifier is already registered` ao usar `group_by_use_nulls=true` e o novo analisador. [#66400](https://github.com/ClickHouse/ClickHouse/pull/66400) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige possíveis resultados incorretos em consultas que fazem join e filtram tabelas com engine externa (como PostgreSQL), devido a um pushdown de filtro excessivamente agressivo. A partir de agora, as condições da seção WHERE não serão enviadas ao banco de dados externo no caso de outer join com tabela externa. [#66402](https://github.com/ClickHouse/ClickHouse/pull/66402) ([vdimir](https://github.com/vdimir)).
* Adicionada a materialização da coluna ausente para CROSS JOIN. [#66413](https://github.com/ClickHouse/ClickHouse/pull/66413) ([lgbo](https://github.com/lgbo-ustc)).
* Corrige o erro `Cannot find column` em consultas com expressão constante na chave `GROUP BY` e com o novo analisador ativado. [#66433](https://github.com/ClickHouse/ClickHouse/pull/66433) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Evita um possível erro lógico na importação do formato Npy em caso de nível incorreto de aninhamento de array e corrige os testes para outros tipos de erro. [#66461](https://github.com/ClickHouse/ClickHouse/pull/66461) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige o resultado incorreto de count() quando há uma função não determinística no predicado. [#66510](https://github.com/ClickHouse/ClickHouse/pull/66510) ([Duc Canh Le](https://github.com/canhld94)).
* Rastrear corretamente o uso de memória em `Allocator::realloc`. [#66548](https://github.com/ClickHouse/ClickHouse/pull/66548) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige a leitura de memória não inicializada ao calcular o hash de tuplas vazias. [#66562](https://github.com/ClickHouse/ClickHouse/pull/66562) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um resultado inválido em consultas com `WINDOW`. Isso podia acontecer quando as colunas de `PARTITION` têm serialização esparsa e funções de janela são executadas em paralelo. [#66579](https://github.com/ClickHouse/ClickHouse/pull/66579) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correção na remoção de coleções nomeadas do armazenamento local. [#66599](https://github.com/ClickHouse/ClickHouse/pull/66599) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrigido: `column_length` não é atualizado em `ColumnTuple::insertManyFrom`. [#66626](https://github.com/ClickHouse/ClickHouse/pull/66626) ([lgbo](https://github.com/lgbo-ustc)).
* Corrige os erros `Unknown identifier` e `Column is not under aggregate function` em consultas com a expressão `(column IS NULL).` O bug era acionado apenas por [#65088](https://github.com/ClickHouse/ClickHouse/issues/65088), com o analisador desativado. [#66654](https://github.com/ClickHouse/ClickHouse/pull/66654) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige o erro `Method getResultType is not supported for QUERY query node` quando uma subconsulta escalar era usada como primeiro argumento de IN (com o novo analisador). [#66655](https://github.com/ClickHouse/ClickHouse/pull/66655) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige possível erro PARAMETER\_OUT\_OF\_BOUND ao ler a subcoluna Variant. [#66659](https://github.com/ClickHouse/ClickHouse/pull/66659) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige um caso raro em que o merge fica travado após excluir uma coluna. [#66707](https://github.com/ClickHouse/ClickHouse/pull/66707) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigida a asserção `isUniqTypes` ao fazer insert select a partir de fontes remotas. [#66722](https://github.com/ClickHouse/ClickHouse/pull/66722) ([Sema Checherinda](https://github.com/CheSema)).
* Corrigido um erro lógico em PrometheusRequestHandler. [#66621](https://github.com/ClickHouse/ClickHouse/pull/66621) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige um caso na função `indexHint` encontrado pelo fuzzer. [#66286](https://github.com/ClickHouse/ClickHouse/pull/66286) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigida a formatação da AST de 'create table b empty as a'. [#64951](https://github.com/ClickHouse/ClickHouse/pull/64951) ([Michael Kolupaev](https://github.com/al13n321)).

### <a id="246" /> lançamento do ClickHouse 24.6, 2024-07-01. [Apresentação](https://presentations.clickhouse.com/2024-release-24.6/), [Vídeo](https://www.youtube.com/watch?v=BK-x8lpvOQw)

<Frame>
  <iframe src="https://www.youtube.com/embed/BK-x8lpvOQw" 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>

* Habilita o carregamento assíncrono de bancos de dados e tabelas por padrão. Veja `async_load_databases` em config.xml. Embora essa alteração seja totalmente compatível, ela pode introduzir uma diferença de comportamento. Quando `async_load_databases` é false, como nas versões anteriores, o servidor não aceitará conexões até que todas as tabelas sejam carregadas. Quando `async_load_databases` é true, como na nova versão, o servidor pode aceitar conexões antes que todas as tabelas sejam carregadas. Se uma consulta for feita a uma tabela que ainda não foi carregada, ela aguardará o carregamento da tabela, o que pode levar um tempo considerável. Isso pode alterar o comportamento do servidor se ele fizer parte de um grande sistema distribuído atrás de um balanceador de carga. No primeiro caso, o balanceador de carga pode receber uma recusa de conexão e fazer failover rapidamente para outro servidor. No segundo caso, o balanceador de carga pode se conectar a um servidor que ainda está carregando as tabelas, e a consulta terá latência maior. Além disso, se muitas consultas se acumularem no estado de espera, isso pode levar a um problema de "thundering herd" quando começarem a ser processadas simultaneamente. Isso só pode fazer diferença para backends distribuídos com alta carga. Você pode definir o valor de `async_load_databases` como false para evitar esse problema. [#57695](https://github.com/ClickHouse/ClickHouse/pull/57695) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A setting `replace_long_file_name_to_hash` é habilitada por padrão para tabelas `MergeTree`. [#64457](https://github.com/ClickHouse/ClickHouse/pull/64457) ([Anton Popov](https://github.com/CurtizJ)). Essa setting é totalmente compatível, e nenhuma ação é necessária durante a atualização. O novo formato de dados é suportado por todas as versões a partir da 23.9. Depois de habilitar essa setting, você não poderá mais fazer downgrade para a versão 23.8 ou anterior.
* Algumas consultas inválidas falharão mais cedo durante o parsing. Observação: foi desabilitado o suporte a expressões KQL inline (a linguagem Kusto experimental) quando elas são colocadas em uma table function `kql` sem um literal de string, por exemplo `kql(garbage | trash)` em vez de `kql('garbage | trash')` ou `kql($$garbage | trash$$)`. Esse recurso foi introduzido sem intenção e não deveria existir. [#61500](https://github.com/ClickHouse/ClickHouse/pull/61500) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Reformula o processamento paralelo no modo `Ordered` do armazenamento `S3Queue`. Este PR é incompatível com versões anteriores para o modo `Ordered` se você usava as settings `s3queue_processing_threads_num` ou `s3queue_total_shards_num`. A setting `s3queue_total_shards_num` foi removida; anteriormente, era permitido usá-la apenas com `s3queue_allow_experimental_sharded_mode`, que agora está deprecated. Uma nova setting foi adicionada - `s3queue_buckets`. [#64349](https://github.com/ClickHouse/ClickHouse/pull/64349) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Foram adicionadas novas funções `snowflakeIDToDateTime`, `snowflakeIDToDateTime64`, `dateTimeToSnowflakeID` e `dateTime64ToSnowflakeID`. Diferentemente das funções existentes `snowflakeToDateTime`, `snowflakeToDateTime64`, `dateTimeToSnowflake` e `dateTime64ToSnowflake`, as novas funções são compatíveis com a função `generateSnowflakeID`, ou seja, aceitam os Snowflake ID gerados por `generateSnowflakeID` e produzem Snowflake ID do mesmo tipo que `generateSnowflakeID` (isto é, `UInt64`). Além disso, as novas funções usam por padrão a epoch UNIX (isto é, 1970-01-01), assim como `generateSnowflakeID`. Se necessário, uma epoch diferente, por exemplo a epoch do Twitter/X de 2010-11-04, também conhecida como 1288834974657 msec desde a epoch UNIX, pode ser informada. As antigas funções de conversão estão deprecated e serão removidas após um período de transição: para usá-las mesmo assim, habilite a setting `allow_deprecated_snowflake_conversion_functions`. [#64948](https://github.com/ClickHouse/ClickHouse/pull/64948) ([Robert Schulze](https://github.com/rschu1ze)).

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

* Permite armazenar coleções nomeadas no ClickHouse Keeper. [#64574](https://github.com/ClickHouse/ClickHouse/pull/64574) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adicionado suporte a tuplas vazias. [#55061](https://github.com/ClickHouse/ClickHouse/pull/55061) ([Amos Bird](https://github.com/amosbird)).
* Adicionadas funções de codificação e decodificação da curva de Hilbert. [#60156](https://github.com/ClickHouse/ClickHouse/pull/60156) ([Artem Mustafin](https://github.com/Artemmm91)).
* Adicionar suporte à análise de índice com `hilbertEncode`. [#64662](https://github.com/ClickHouse/ClickHouse/pull/64662) ([Artem Mustafin](https://github.com/Artemmm91)).
* Adicionado suporte à leitura da geometria `LINESTRING` no formato WKT usando a função `readWKTLineString`. [#62519](https://github.com/ClickHouse/ClickHouse/pull/62519) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Permite anexar partes de um disco diferente. [#63087](https://github.com/ClickHouse/ClickHouse/pull/63087) ([Unalian](https://github.com/Unalian)).
* Adicionadas novas funções SQL `generateSnowflakeID` para gerar IDs Snowflake no estilo do Twitter. [#63577](https://github.com/ClickHouse/ClickHouse/pull/63577) ([Danila Puzov](https://github.com/kazalika)).
* Adicionadas as configurações `merge_workload` e `mutation_workload` para regular como os recursos são utilizados e compartilhados entre operações de merge, mutações e outras cargas de trabalho. [#64061](https://github.com/ClickHouse/ClickHouse/pull/64061) ([Sergei Trifonov](https://github.com/serxa)).
* Adicionado suporte à comparação entre os tipos `IPv4` e `IPv6` usando o operador `=`. [#64292](https://github.com/ClickHouse/ClickHouse/pull/64292) ([Francisco J. Jurado Moreno](https://github.com/Beetelbrox)).
* Suporte a argumentos do tipo Decimal em funções matemáticas binárias (`pow`, `atan2`, `max2`, `min2`, `hypot`). [#64582](https://github.com/ClickHouse/ClickHouse/pull/64582) ([Mikhail Gorshkov](https://github.com/mgorshkov)).
* Adicionadas as funções SQL `parseReadableSize` (bem como as variantes `OrNull` e `OrZero`). [#64742](https://github.com/ClickHouse/ClickHouse/pull/64742) ([Francisco J. Jurado Moreno](https://github.com/Beetelbrox)).
* Adiciona as configurações de servidor `max_table_num_to_throw` e `max_database_num_to_throw` para limitar o número de bancos de dados ou de tabelas em consultas `CREATE`. [#64781](https://github.com/ClickHouse/ClickHouse/pull/64781) ([Xu Jia](https://github.com/XuJia0210)).
* Adicionada a coluna virtual `_time` a armazenamentos do tipo arquivo (s3/file/hdfs/url/azureBlobStorage). [#64947](https://github.com/ClickHouse/ClickHouse/pull/64947) ([Ilya Golshtein](https://github.com/ilejn)).
* Adicionadas as novas funções `base64URLEncode`, `base64URLDecode` e `tryBase64URLDecode`. [#64991](https://github.com/ClickHouse/ClickHouse/pull/64991) ([Mikhail Gorshkov](https://github.com/mgorshkov)).
* Adiciona a nova função `editDistanceUTF8`, que calcula a [distância de edição](https://en.wikipedia.org/wiki/Edit_distance) entre duas strings UTF-8. [#65269](https://github.com/ClickHouse/ClickHouse/pull/65269) ([LiuNeng](https://github.com/liuneng1994)).
* Adiciona a configuração `http_response_headers` para dar suporte a cabeçalhos de resposta personalizados em handlers HTTP personalizados. [#63562](https://github.com/ClickHouse/ClickHouse/pull/63562) ([Grigorii](https://github.com/GSokol)).
* Adicionada uma nova função de tabela `loop` para permitir o retorno dos resultados da consulta em loop infinito. [#63452](https://github.com/ClickHouse/ClickHouse/pull/63452) ([Sariel](https://github.com/sarielwxm)). Isso é útil para testes.
* Foram adicionadas duas colunas ao `system.query_log`: `used_privileges` e `missing_privileges`. `used_privileges` é preenchida com os privilégios verificados durante a execução da consulta, e `missing_privileges` contém os privilégios obrigatórios que estão faltando. [#64597](https://github.com/ClickHouse/ClickHouse/pull/64597) ([Alexey Katsman](https://github.com/alexkats)).
* Foi adicionada a configuração `output_format_pretty_display_footer_column_names` que, quando habilitada, exibe os nomes das colunas no rodapé da tabela em tabelas longas (50 linhas por padrão), com o limite mínimo de linhas controlado por `output_format_pretty_display_footer_column_names_min_rows`. [#65144](https://github.com/ClickHouse/ClickHouse/pull/65144) ([Shaun Struwig](https://github.com/Blargian)).

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

* Adiciona estatísticas do tipo "número de valores distintos". [#59357](https://github.com/ClickHouse/ClickHouse/pull/59357) ([Han Fei](https://github.com/hanfei1991)).
* Adiciona suporte a estatísticas com ReplicatedMergeTree. [#64934](https://github.com/ClickHouse/ClickHouse/pull/64934) ([Han Fei](https://github.com/hanfei1991)).
* Se "grupo de réplicas" estiver configurado para um banco de dados `Replicated`, cria automaticamente um cluster que inclui réplicas de todos os grupos. [#64312](https://github.com/ClickHouse/ClickHouse/pull/64312) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Adiciona as configurações `parallel_replicas_custom_key_range_lower` e `parallel_replicas_custom_key_range_upper` para controlar como as réplicas paralelas com shards dinâmicos paralelizam as consultas ao usar um filtro de intervalo. [#64604](https://github.com/ClickHouse/ClickHouse/pull/64604) ([josh-hildred](https://github.com/josh-hildred)).

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

* Adiciona a possibilidade de reordenar linhas durante a inserção para otimizar o tamanho sem violar a ordem definida pela `PRIMARY KEY`. Isso é controlado pela configuração `optimize_row_order` (desativada por padrão). [#63578](https://github.com/ClickHouse/ClickHouse/pull/63578) ([Igor Markelov](https://github.com/ElderlyPassionFruit)).
* Adiciona um leitor nativo de Parquet, capaz de ler dados binários em Parquet diretamente em colunas do ClickHouse. Ele é controlado pela configuração `input_format_parquet_use_native_reader` (desabilitada por padrão). [#60361](https://github.com/ClickHouse/ClickHouse/pull/60361) ([ZhiHong Zhang](https://github.com/copperybean)).
* Suporte à otimização parcial da contagem trivial quando o filtro da consulta consegue selecionar intervalos exatos em tabelas MergeTree. [#60463](https://github.com/ClickHouse/ClickHouse/pull/60463) ([Amos Bird](https://github.com/amosbird)).
* Reduz o pico de uso de memória de `INSERT`s multithread ao reunir fragmentos de várias threads em uma única transformação. [#61047](https://github.com/ClickHouse/ClickHouse/pull/61047) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Reduz o uso de memória ao usar o armazenamento de objetos do Azure com alocação fixa de memória, evitando a alocação de um buffer extra. [#63160](https://github.com/ClickHouse/ClickHouse/pull/63160) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Reduz o número de chamadas de função virtual em `ColumnNullable::size`. [#60556](https://github.com/ClickHouse/ClickHouse/pull/60556) ([HappenLee](https://github.com/HappenLee)).
* Otimização do `splitByRegexp` quando o argumento de expressão regular é um único caractere. [#62696](https://github.com/ClickHouse/ClickHouse/pull/62696) ([Robert Schulze](https://github.com/rschu1ze)).
* Acelera a agregação por chaves de 8 e 16 bits ao manter o controle das chaves mínima e máxima utilizadas. Isso permite reduzir o número de células que precisam ser verificadas. [#62746](https://github.com/ClickHouse/ClickHouse/pull/62746) ([Jiebin Sun](https://github.com/jiebinn)).
* Otimiza o operador IN quando o lado esquerdo é `LowCardinality` e o lado direito é um conjunto de constantes. [#64060](https://github.com/ClickHouse/ClickHouse/pull/64060) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Use um pool de threads para inicializar e destruir tabelas hash no `ConcurrentHashJoin`. [#64241](https://github.com/ClickHouse/ClickHouse/pull/64241) ([Nikita Taranov](https://github.com/nickitat)).
* Mesclagens verticais otimizadas em tabelas com colunas esparsas. [#64311](https://github.com/ClickHouse/ClickHouse/pull/64311) ([Anton Popov](https://github.com/CurtizJ)).
* Foi habilitado o pré-carregamento de dados do sistema de arquivos remoto durante mesclagens verticais. Isso melhora a latência das mesclagens verticais em tabelas com dados armazenados em sistema de arquivos remoto. [#64314](https://github.com/ClickHouse/ClickHouse/pull/64314) ([Anton Popov](https://github.com/CurtizJ)).
* Redução de chamadas redundantes a `isDefault` em `ColumnSparse::filter` para melhorar o desempenho. [#64426](https://github.com/ClickHouse/ClickHouse/pull/64426) ([Jiebin Sun](https://github.com/jiebinn)).
* Aumento de velocidade dos comandos `find_super_nodes` e `find_big_family` do keeper-client ao fazer várias solicitações assíncronas de getChildren. [#64628](https://github.com/ClickHouse/ClickHouse/pull/64628) ([Alexander Gololobov](https://github.com/davenger)).
* Melhoria na função `least`/`greatest` para argumentos numéricos Nullable. [#64668](https://github.com/ClickHouse/ClickHouse/pull/64668) ([KevinyhZou](https://github.com/KevinyhZou)).
* Permite mesclar duas etapas consecutivas de filtragem de um plano de consulta. Isso melhora a otimização de `filter-push-down` se a condição de filtro puder ser propagada da etapa pai para baixo. [#64760](https://github.com/ClickHouse/ClickHouse/pull/64760) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Remova a otimização problemática na implementação vertical do FINAL e reative o algoritmo vertical do FINAL por padrão. [#64783](https://github.com/ClickHouse/ClickHouse/pull/64783) ([Duc Canh Le](https://github.com/canhld94)).
* Remova os nós ALIAS da expressão de filtro. Isso melhora ligeiramente o desempenho de consultas que usam `PREWHERE` (com o novo analisador). [#64793](https://github.com/ClickHouse/ClickHouse/pull/64793) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Reativado o cache de sessão do OpenSSL. [#65111](https://github.com/ClickHouse/ClickHouse/pull/65111) ([Robert Schulze](https://github.com/rschu1ze)).
* Adicionadas configurações para desabilitar a materialização de skip indexes e estatísticas durante as inserções (`materialize_skip_indexes_on_insert` e `materialize_statistics_on_insert`). [#64391](https://github.com/ClickHouse/ClickHouse/pull/64391) ([Anton Popov](https://github.com/CurtizJ)).
* Use o tamanho da memória alocada para calcular o tamanho do grupo de linhas e reduzir o pico de memória do gravador de Parquet no modo de thread única. [#64424](https://github.com/ClickHouse/ClickHouse/pull/64424) ([LiuNeng](https://github.com/liuneng1994)).
* Melhora o iterador da coluna esparsa para reduzir as chamadas a `size`. [#64497](https://github.com/ClickHouse/ClickHouse/pull/64497) ([Jiebin Sun](https://github.com/jiebinn)).
* Atualizada a condição para usar cópia do lado do servidor para backups no Azure Blob Storage. [#64518](https://github.com/ClickHouse/ClickHouse/pull/64518) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Uso de memória das mesclagens verticais otimizado para tabelas com um grande número de skip indexes. [#64580](https://github.com/ClickHouse/ClickHouse/pull/64580) ([Anton Popov](https://github.com/CurtizJ)).

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

* `SHOW CREATE TABLE` executado em tabelas de sistema agora mostrará o comentário, extremamente útil e exclusivo de cada tabela, que explicará por que essa tabela é necessária. [#63788](https://github.com/ClickHouse/ClickHouse/pull/63788) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* O segundo argumento (escala) das funções `round()`, `roundBankers()`, `floor()`, `ceil()` e `trunc()` agora pode ser não constante. [#64798](https://github.com/ClickHouse/ClickHouse/pull/64798) ([Mikhail Gorshkov](https://github.com/mgorshkov)).
* Recarregamento a quente da política de armazenamento para tabelas `Distributed` ao adicionar um novo disco. [#58285](https://github.com/ClickHouse/ClickHouse/pull/58285) ([Duc Canh Le](https://github.com/canhld94)).
* Evita um possível deadlock durante a análise de índices do MergeTree ao agendar threads em um serviço sobrecarregado. [#59427](https://github.com/ClickHouse/ClickHouse/pull/59427) ([Sean Haynes](https://github.com/seandhaynes)).
* Várias pequenas correções em casos extremos no suporte a proxy S3 & tunelamento. [#63427](https://github.com/ClickHouse/ClickHouse/pull/63427) ([Arthur Passos](https://github.com/arthurpassos)).
* Melhora a visibilidade dos reenvios do io\_uring. Renomeia o evento de perfil `IOUringSQEsResubmits` -> `IOUringSQEsResubmitsAsync` e adiciona um novo, `IOUringSQEsResubmitsSync`. [#63699](https://github.com/ClickHouse/ClickHouse/pull/63699) ([Tomer Shafir](https://github.com/tomershafir)).
* Adicionada uma nova configuração, `metadata_keep_free_space_bytes`, para manter espaço livre no disco de armazenamento de metadados. [#64128](https://github.com/ClickHouse/ClickHouse/pull/64128) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Adiciona métricas para acompanhar o número de diretórios criados e removidos pelo armazenamento de metadados `plain_rewritable`, e o número de entradas no mapa em memória de local para remoto. [#64175](https://github.com/ClickHouse/ClickHouse/pull/64175) ([Julia Kartseva](https://github.com/jkartseva)).
* O cache de consultas agora considera consultas idênticas com configurações diferentes como sendo distintas. Isso aumenta a robustez nos casos em que configurações diferentes (por exemplo, `limit` ou `additional_table_filters`) afetam o resultado da consulta. [#64205](https://github.com/ClickHouse/ClickHouse/pull/64205) ([Robert Schulze](https://github.com/rschu1ze)).
* Suporte ao código de erro não padrão `QpsLimitExceeded` no armazenamento de objetos como erro passível de repetição. [#64225](https://github.com/ClickHouse/ClickHouse/pull/64225) ([Sema Checherinda](https://github.com/CheSema)).
* Impedir a conversão de uma tabela MergeTree em replicada se o caminho do ZooKeeper dessa tabela já existir. [#64244](https://github.com/ClickHouse/ClickHouse/pull/64244) ([Kirill](https://github.com/kirillgarbar)).
* Foi adicionada uma nova configuração `input_format_parquet_prefer_block_bytes` para controlar a média de bytes dos blocos de saída, e o valor padrão de `input_format_parquet_max_block_size` foi alterado para 65409. [#64427](https://github.com/ClickHouse/ClickHouse/pull/64427) ([LiuNeng](https://github.com/liuneng1994)).
* Permitir ignorar o proxy para hosts especificados na variável de ambiente `no_proxy` e na configuração de proxy do ClickHouse. [#63314](https://github.com/ClickHouse/ClickHouse/pull/63314) ([Arthur Passos](https://github.com/arthurpassos)).
* Sempre inicie o Keeper com uma quantidade suficiente de threads no pool global de threads. [#64444](https://github.com/ClickHouse/ClickHouse/pull/64444) ([Duc Canh Le](https://github.com/canhld94)).
* As configurações definidas no arquivo de configuração do usuário não afetam os merges e as mutações do `MergeTree` com armazenamento de objetos. [#64456](https://github.com/ClickHouse/ClickHouse/pull/64456) ([alesapin](https://github.com/alesapin)).
* Suporte ao código de erro não padrão `TotalQpsLimitExceeded` no armazenamento de objetos como erro passível de nova tentativa. [#64520](https://github.com/ClickHouse/ClickHouse/pull/64520) ([Sema Checherinda](https://github.com/CheSema)).
* Dashboard Avançado atualizado nas versões open-source e ClickHouse Cloud para incluir um gráfico de 'Número máximo de conexões de rede simultâneas'. [#64610](https://github.com/ClickHouse/ClickHouse/pull/64610) ([Thom O'Connor](https://github.com/thomoco)).
* Melhorado o relatório de progresso em `zeros_mt` e `generateRandom`. [#64804](https://github.com/ClickHouse/ClickHouse/pull/64804) ([Raúl Marín](https://github.com/Algunenano)).
* Adiciona uma métrica assíncrona `jemalloc.profile.active` para indicar se a amostragem está ativa no momento. Este é um mecanismo de ativação adicional ao `prof.active`; ambos devem estar ativos para que a thread chamadora faça a amostragem. [#64842](https://github.com/ClickHouse/ClickHouse/pull/64842) ([Unalian](https://github.com/Unalian)).
* Removida a marcação de `allow_experimental_join_condition` como importante. Essa marcação pode ter impedido a execução bem-sucedida de consultas distribuídas em um cluster com versões mistas. [#65008](https://github.com/ClickHouse/ClickHouse/pull/65008) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Adicionadas métricas assíncronas do servidor `DiskGetObjectThrottler*` e `DiskGetObjectThrottler*`, que refletem o limite de taxa de solicitações por segundo definido pelas configurações de disco `s3_max_get_rps` e `s3_max_put_rps`, bem como a quantidade de solicitações atualmente disponível que ainda pode ser enviada sem atingir o limite de throttling do disco. As métricas são definidas para cada disco com um limite configurado. [#65050](https://github.com/ClickHouse/ClickHouse/pull/65050) ([Sergei Trifonov](https://github.com/serxa)).
* Inicializado o coletor global de traces para `Poco::ThreadPool` (necessário para Keeper, etc.). [#65239](https://github.com/ClickHouse/ClickHouse/pull/65239) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adicionada uma validação ao criar um usuário com `bcrypt_hash`. [#65242](https://github.com/ClickHouse/ClickHouse/pull/65242) ([Raúl Marín](https://github.com/Algunenano)).
* Adiciona eventos de profile para o número de linhas lidas durante/após `PREWHERE`. [#64198](https://github.com/ClickHouse/ClickHouse/pull/64198) ([Nikita Taranov](https://github.com/nickitat)).
* Exibe a consulta no `EXPLAIN PLAN` com réplicas paralelas. [#64298](https://github.com/ClickHouse/ClickHouse/pull/64298) ([vdimir](https://github.com/vdimir)).
* Renomeado `allow_deprecated_functions` para `allow_deprecated_error_prone_window_functions`. [#64358](https://github.com/ClickHouse/ClickHouse/pull/64358) ([Raúl Marín](https://github.com/Algunenano)).
* Respeitar a configuração `max_read_buffer_size` também para descritores de arquivo na função de tabela `file`. [#64532](https://github.com/ClickHouse/ClickHouse/pull/64532) ([Azat Khuzhin](https://github.com/azat)).
* Desabilita transações para mecanismos de armazenamento sem suporte, mesmo para visões materializadas. [#64918](https://github.com/ClickHouse/ClickHouse/pull/64918) ([alesapin](https://github.com/alesapin)).
* Proibir a cláusula `QUALIFY` no analisador antigo. Como o analisador antigo ignorava `QUALIFY`, isso podia levar à remoção inesperada de dados em mutações. [#65356](https://github.com/ClickHouse/ClickHouse/pull/65356) ([Dmitry Novik](https://github.com/novikd)).

<div id="bug-fix-user-visible-misbehavior-in-an-official-stable-release">
  #### Correção de bug (comportamento incorreto perceptível ao usuário em uma versão estável oficial)
</div>

* Um bug na biblioteca Apache ORC foi corrigido: corrigido o cálculo das estatísticas do ORC durante a gravação para tipos sem sinal em todas as plataformas e para Int8 em ARM. [#64563](https://github.com/ClickHouse/ClickHouse/pull/64563) ([Michael Kolupaev](https://github.com/al13n321)).
* Restaurado o comportamento original de como o ClickHouse funciona e interpreta Tuples no formato CSV. Essa mudança efetivamente reverte [https://github.com/ClickHouse/ClickHouse/pull/60994](https://github.com/ClickHouse/ClickHouse/pull/60994) e o disponibiliza apenas sob algumas configurações: `output_format_csv_serialize_tuple_into_separate_columns`, `input_format_csv_deserialize_separate_columns_into_tuple` e `input_format_csv_try_infer_strings_from_quoted_tuples`. [#65170](https://github.com/ClickHouse/ClickHouse/pull/65170) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrige um erro de permissão em que, em uma situação específica, um usuário pode elevar seus privilégios no banco de dados padrão sem as grants necessárias. [#64769](https://github.com/ClickHouse/ClickHouse/pull/64769) ([pufit](https://github.com/pufit)).
* Corrigida falha com UniqInjectiveFunctionsEliminationPass e uniqCombined. [#65188](https://github.com/ClickHouse/ClickHouse/pull/65188) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige um bug no ClickHouse Keeper que causa divergência de digest durante o encerramento da sessão. [#65198](https://github.com/ClickHouse/ClickHouse/pull/65198) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Use o alinhamento de memória correto para o combinator Distinct. Antes, podia ocorrer uma falha devido a uma alocação de memória inválida quando o combinator era usado. [#65379](https://github.com/ClickHouse/ClickHouse/pull/65379) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigida falha ao usar `DISTINCT` e funções de janela. [#64767](https://github.com/ClickHouse/ClickHouse/pull/64767) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrigido o problema em que o índice de omissão 'set' não funcionava com IN e indexHint(). [#62083](https://github.com/ClickHouse/ClickHouse/pull/62083) ([Michael Kolupaev](https://github.com/al13n321)).
* Adicionado suporte à execução de funções ao atribuir valores a views parametrizadas. [#63502](https://github.com/ClickHouse/ClickHouse/pull/63502) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Corrigido o rastreamento de memória do Parquet. [#63584](https://github.com/ClickHouse/ClickHouse/pull/63584) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrigida a leitura de colunas do tipo `Tuple(Map(LowCardinality(String), String), ...)`. [#63956](https://github.com/ClickHouse/ClickHouse/pull/63956) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige o erro `Cyclic aliases` em aliases cíclicos de tipos diferentes (expressão e função). [#63993](https://github.com/ClickHouse/ClickHouse/pull/63993) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Essa correção usará um contexto redefinido corretamente, com o definidor adequado para cada view individual no pipeline da consulta. [#64079](https://github.com/ClickHouse/ClickHouse/pull/64079) ([pufit](https://github.com/pufit)).
* Correção no analyzer: o erro "coluna não encontrada" ao usar INTERPOLATE foi corrigido. [#64096](https://github.com/ClickHouse/ClickHouse/pull/64096) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige a criação de backups em buckets do S3 com credenciais diferentes das usadas no disco que contém o arquivo. [#64153](https://github.com/ClickHouse/ClickHouse/pull/64153) ([Antonio Andelic](https://github.com/antonio2368)).
* O cache de consultas agora considera duas consultas idênticas em bancos de dados diferentes como distintas. O comportamento anterior podia ser usado para contornar a ausência de privilégios para ler de uma tabela. [#64199](https://github.com/ClickHouse/ClickHouse/pull/64199) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige uma possível interrupção causada por uma exceção não capturada em \~WriteBufferFromFileDescriptor no StatusFile. [#64206](https://github.com/ClickHouse/ClickHouse/pull/64206) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige o erro `duplicate alias` em consultas distribuídas com `ARRAY JOIN`. [#64226](https://github.com/ClickHouse/ClickHouse/pull/64226) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige o `accurateCast` inesperado de string para inteiro. [#64255](https://github.com/ClickHouse/ClickHouse/pull/64255) ([wudidapaopao](https://github.com/wudidapaopao)).
* Corrigida a simplificação de CNF quando algum grupo OR contém átomos mutuamente exclusivos. [#64256](https://github.com/ClickHouse/ClickHouse/pull/64256) ([Eduard Karacharov](https://github.com/korowa)).
* Corrigida a validação do tamanho da Query Tree. [#64377](https://github.com/ClickHouse/ClickHouse/pull/64377) ([Dmitry Novik](https://github.com/novikd)).
* Corrigido o `Logical error: Bad cast` na tabela `Buffer` com `PREWHERE`. [#64388](https://github.com/ClickHouse/ClickHouse/pull/64388) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Evitar logging recursivo em `blob_storage_log` quando armazenado em armazenamento de objetos. [#64393](https://github.com/ClickHouse/ClickHouse/pull/64393) ([vdimir](https://github.com/vdimir)).
* Corrigidas as consultas `CREATE TABLE AS` para tabelas com expressões padrão. [#64455](https://github.com/ClickHouse/ClickHouse/pull/64455) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigido o comportamento de `optimize_read_in_order` para ORDER BY ... NULLS FIRST / LAST em tabelas com chaves Nullable. [#64483](https://github.com/ClickHouse/ClickHouse/pull/64483) ([Eduard Karacharov](https://github.com/korowa)).
* Corrige os erros `Expression nodes list expected 1 projection names` e `Unknown expression or identifier` em consultas que usam aliases para `GLOBAL IN.`. [#64517](https://github.com/ClickHouse/ClickHouse/pull/64517) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige um erro `Cannot find column` em consultas distribuídas com CTE constante na chave de `GROUP BY`. [#64519](https://github.com/ClickHouse/ClickHouse/pull/64519) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigido o loop de falhas quando a restauração de backup é bloqueada pela criação de uma MV com um definidor que ainda não foi restaurado. [#64595](https://github.com/ClickHouse/ClickHouse/pull/64595) ([pufit](https://github.com/pufit)).
* Corrige a saída da função `formatDateTimeInJodaSyntax` quando um formatter gera uma quantidade ímpar de caracteres e o último caractere é `0`. Por exemplo, `SELECT formatDateTimeInJodaSyntax(toDate('2012-05-29'), 'D')` agora retorna corretamente `150`, em vez de `15` como antes. [#64614](https://github.com/ClickHouse/ClickHouse/pull/64614) ([LiuNeng](https://github.com/liuneng1994)).
* Não reescreva a agregação se o combinador `-If` já estiver sendo usado. [#64638](https://github.com/ClickHouse/ClickHouse/pull/64638) ([Dmitry Novik](https://github.com/novikd)).
* Corrige a inferência de tipo de float (no caso de buffer pequeno, ou seja, `--max_read_buffer_size 1`). [#64641](https://github.com/ClickHouse/ClickHouse/pull/64641) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido um bug que poderia fazer com que TTLs com expressões deixassem de funcionar. [#64694](https://github.com/ClickHouse/ClickHouse/pull/64694) ([alesapin](https://github.com/alesapin)).
* Corrigida a remoção das expressões `WHERE` e `PREWHERE` que são sempre verdadeiras (no novo analisador). [#64695](https://github.com/ClickHouse/ClickHouse/pull/64695) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigida a eliminação excessiva de partes causada por índices de texto baseados em tokens (`ngrambf` , `full_text`) ao filtrar com base no resultado de `startsWith`, `endsWith`, `match`, `multiSearchAny`. [#64720](https://github.com/ClickHouse/ClickHouse/pull/64720) ([Eduard Karacharov](https://github.com/korowa)).
* Corrige o comportamento incorreto no escapamento ANSI CSI na função `UTF8::computeWidth`. [#64756](https://github.com/ClickHouse/ClickHouse/pull/64756) ([Shaun Struwig](https://github.com/Blargian)).
* Corrige um caso de remoção indevida de `ORDER BY` / `LIMIT BY` em subconsultas. [#64766](https://github.com/ClickHouse/ClickHouse/pull/64766) ([Raúl Marín](https://github.com/Algunenano)).
* Correção (experimental) de JOIN desigual com subconsultas para conjuntos presentes nas condições mistas de JOIN. [#64775](https://github.com/ClickHouse/ClickHouse/pull/64775) ([lgbo](https://github.com/lgbo-ustc)).
* Corrige um travamento em um cache local no disco `plain_rewritable`. [#64778](https://github.com/ClickHouse/ClickHouse/pull/64778) ([Julia Kartseva](https://github.com/jkartseva)).
* Correção no Keeper: retorna o valor correto para `zk_latest_snapshot_size` no comando `mntr`. [#64784](https://github.com/ClickHouse/ClickHouse/pull/64784) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigido `Cannot find column` em consulta distribuída com `ARRAY JOIN` ao usar a coluna `Nested`. Corrige [#64755](https://github.com/ClickHouse/ClickHouse/issues/64755). [#64801](https://github.com/ClickHouse/ClickHouse/pull/64801) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigido um vazamento de memória na política de cache SLRU. [#64803](https://github.com/ClickHouse/ClickHouse/pull/64803) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigida uma possível contabilização incorreta de memória em vários tipos de consultas: consultas que leem dados do S3, consultas via protocolo HTTP, inserts assíncronos. [#64844](https://github.com/ClickHouse/ClickHouse/pull/64844) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige o erro `Block structure mismatch` em consultas que leem da visão materializada com `PREWHERE` quando a visão materializada tem colunas de tipos diferentes da tabela de origem. Corrige [#64611](https://github.com/ClickHouse/ClickHouse/issues/64611). [#64855](https://github.com/ClickHouse/ClickHouse/pull/64855) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige um travamento raro quando a tabela tem TTL com subconsulta + banco de dados replicado + réplicas paralelas + analyzer. É realmente muito raro, mas, por favor, não use TTLs com subconsultas. [#64858](https://github.com/ClickHouse/ClickHouse/pull/64858) ([alesapin](https://github.com/alesapin)).
* Corrige a duplicação de eventos `Delete` em `blob_storage_log` no caso de um lote grande de exclusão. [#64924](https://github.com/ClickHouse/ClickHouse/pull/64924) ([vdimir](https://github.com/vdimir)).
* Corrigido o erro `Session moved to another server` do \[Zoo]Keeper, que podia ocorrer após a inicialização do servidor quando a configuração continha includes do \[Zoo]Keeper. [#64986](https://github.com/ClickHouse/ClickHouse/pull/64986) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige a consulta `ALTER MODIFY COMMENT`, que estava com problema em VIEWs parametrizadas, em [https://github.com/ClickHouse/ClickHouse/pull/54211](https://github.com/ClickHouse/ClickHouse/pull/54211). [#65031](https://github.com/ClickHouse/ClickHouse/pull/65031) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige o `host_id` no DatabaseReplicated quando o parâmetro `cluster_secure_connection` está habilitado. Antes, todas as conexões dentro do cluster criadas pelo DatabaseReplicated não eram seguras, mesmo com o parâmetro habilitado. [#65054](https://github.com/ClickHouse/ClickHouse/pull/65054) ([Nikolay Degterinsky](https://github.com/evillique)).
* Correção do erro `Not-ready Set` após a otimização `PREWHERE` no StorageMerge. [#65057](https://github.com/ClickHouse/ClickHouse/pull/65057) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Evite gravar em um buffer já finalizado em armazenamentos do tipo File. [#65063](https://github.com/ClickHouse/ClickHouse/pull/65063) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige a possível duração infinita de consulta no caso de aliases cíclicos. Corrige [#64849](https://github.com/ClickHouse/ClickHouse/issues/64849). [#65081](https://github.com/ClickHouse/ClickHouse/pull/65081) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige o erro `Unknown expression identifier` em consultas remotas com `INTERPOLATE (alias)` (novo analisador). Corrige [#64636](https://github.com/ClickHouse/ClickHouse/issues/64636). [#65090](https://github.com/ClickHouse/ClickHouse/pull/65090) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigido o problema ao mover operações aritméticas para fora da agregação. No novo analisador, a otimização era aplicada apenas uma vez. [#65104](https://github.com/ClickHouse/ClickHouse/pull/65104) ([Dmitry Novik](https://github.com/novikd)).
* Corrigida a reescrita do nome da função de agregação no novo analisador. [#65110](https://github.com/ClickHouse/ClickHouse/pull/65110) ([Dmitry Novik](https://github.com/novikd)).
* Responder com 5xx em vez de 200 OK em caso de timeout de recebimento ao ler (partes de) o corpo da solicitação do socket do cliente. [#65118](https://github.com/ClickHouse/ClickHouse/pull/65118) ([Julian Maicher](https://github.com/jmaicher)).
* Corrige possível travamento em requisições hedged. [#65206](https://github.com/ClickHouse/ClickHouse/pull/65206) ([Azat Khuzhin](https://github.com/azat)).
* Corrige o bug na avaliação de curto-circuito dos dicionários Hashed e Hashed\_Array, que pode ler um número não inicializado e causar vários erros. [#65256](https://github.com/ClickHouse/ClickHouse/pull/65256) ([jsc0218](https://github.com/jsc0218)).
* Este PR garante que o tipo da constante (o segundo parâmetro do operador IN) permaneça sempre visível durante o processo de conversão de tipos do operador IN. Caso contrário, a perda de informações de tipo pode fazer com que algumas conversões falhem, como a conversão de DateTime para Date. Isso corrige ([#64487](https://github.com/ClickHouse/ClickHouse/issues/64487)). [#65315](https://github.com/ClickHouse/ClickHouse/pull/65315) ([pn](https://github.com/chloro-pn)).

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

* Adicionado suporte ao LLVM XRay. [#64592](https://github.com/ClickHouse/ClickHouse/pull/64592) [#64837](https://github.com/ClickHouse/ClickHouse/pull/64837) ([Tomer Shafir](https://github.com/tomershafir)).
* Unificadas as implementações de armazenamento s3/hdfs/azure em uma única classe que funciona com IObjectStorage. O mesmo vale para os armazenamentos \*Cluster, lago de dados e Queue. [#59767](https://github.com/ClickHouse/ClickHouse/pull/59767) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Refatorado o gravador de data part para remover dependências de MergeTreeData e DataPart. [#63620](https://github.com/ClickHouse/ClickHouse/pull/63620) ([Alexander Gololobov](https://github.com/davenger)).
* Refatorados `KeyCondition` e a análise de key para melhorar o PartitionPruner e a otimização de contagem trivial. Isso foi separado de [#60463](https://github.com/ClickHouse/ClickHouse/issues/60463). [#61459](https://github.com/ClickHouse/ClickHouse/pull/61459) ([Amos Bird](https://github.com/amosbird)).
* Introduzidas asserções para verificar se todas as funções são chamadas com colunas do tamanho correto. [#63723](https://github.com/ClickHouse/ClickHouse/pull/63723) ([Raúl Marín](https://github.com/Algunenano)).
* O serviço `network` passa a ser obrigatório ao usar o script de init `rc` para iniciar o daemon do servidor ClickHouse. [#60650](https://github.com/ClickHouse/ClickHouse/pull/60650) ([Chun-Sheng, Li](https://github.com/peter279k)).
* Reduzido o tamanho de alguns testes lentos. [#64387](https://github.com/ClickHouse/ClickHouse/pull/64387) [#64452](https://github.com/ClickHouse/ClickHouse/pull/64452) ([Raúl Marín](https://github.com/Algunenano)).
* Reprodução de logs do ZooKeeper usando keeper-bench. [#62481](https://github.com/ClickHouse/ClickHouse/pull/62481) ([Antonio Andelic](https://github.com/antonio2368)).

### <a id="245" /> lançamento do ClickHouse 24.5, 2024-05-30. [Apresentação](https://presentations.clickhouse.com/2024-release-24.5/), [Vídeo](https://www.youtube.com/watch?v=dURnKjLuZLg)

<Frame>
  <iframe src="https://www.youtube.com/embed/dURnKjLuZLg" 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>

* "inverted indexes" foram renomeados para "full-text indexes", um nome menos técnico e mais amigável para o usuário. Isso também altera os metadados internos da tabela e torna incompatíveis as tabelas com inverted indexes (experimentais) já existentes. Certifique-se de remover esses índices antes da atualização e recriá-los após a atualização. [#62884](https://github.com/ClickHouse/ClickHouse/pull/62884) ([Robert Schulze](https://github.com/rschu1ze)).
* O uso das funções `neighbor`, `runningAccumulate`, `runningDifferenceStartingWithFirstValue` e `runningDifference` foi descontinuado (por ser propenso a erros). Em vez disso, devem ser usadas window functions adequadas. Para reativá-las, defina `allow_deprecated_error_prone_window_functions = 1` ou `compatibility = '24.4'` ou inferior. [#63132](https://github.com/ClickHouse/ClickHouse/pull/63132) ([Nikita Taranov](https://github.com/nickitat)).
* As consultas em `system.columns` funcionarão mais rapidamente quando houver um grande número de colunas, mas muitos bancos de dados ou tabelas não tiverem a permissão `SHOW TABLES` concedida. Observe que, em versões anteriores, se você concedesse `SHOW COLUMNS` a colunas individuais sem conceder `SHOW TABLES` às tabelas correspondentes, a tabela `system.columns` mostraria essas colunas; na nova versão, porém, ela ignorará a tabela por completo. Também foram removidas as mensagens de log de trace "Access granted" e "Access denied", que deixavam as consultas mais lentas. [#63439](https://github.com/ClickHouse/ClickHouse/pull/63439) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Adiciona o formato `Form` para ler e gravar um único registro no formato `application/x-www-form-urlencoded`. [#60199](https://github.com/ClickHouse/ClickHouse/pull/60199) ([Shaun Struwig](https://github.com/Blargian)).
* Adicionada a possibilidade de usar compressão em CROSS JOIN. [#60459](https://github.com/ClickHouse/ClickHouse/pull/60459) ([p1rattttt](https://github.com/p1rattttt)).
* Adicionada a possibilidade de fazer `CROSS JOIN` usando arquivos temporários se o tamanho exceder os limites. [#63432](https://github.com/ClickHouse/ClickHouse/pull/63432) ([p1rattttt](https://github.com/p1rattttt)).
* Suporte a `join` com condições de desigualdade envolvendo colunas tanto da tabela à esquerda quanto da tabela à direita. Ex.: `t1.y < t2.y`. Para habilitar, `SET allow_experimental_join_condition = 1`. [#60920](https://github.com/ClickHouse/ClickHouse/pull/60920) ([lgbo](https://github.com/lgbo-ustc)).
* Maps agora podem usar `Float32`, `Float64`, `Array(T)`, `Map(K, V)` e `Tuple(T1, T2, ...)` como chaves. Fecha [#54537](https://github.com/ClickHouse/ClickHouse/issues/54537). [#59318](https://github.com/ClickHouse/ClickHouse/pull/59318) ([李扬](https://github.com/taiyang-li)).
* Introduz o carregamento em massa no `EmbeddedRocksDB` por meio da criação e ingestão de arquivo SST, em vez de depender da memtable interna do rocksdb. Isso ajuda a aumentar a velocidade de importação, especialmente para consultas insert de longa duração em tabelas StorageEmbeddedRocksDB. Além disso, adiciona configurações de tabela para o `EmbeddedRocksDB`. [#59163](https://github.com/ClickHouse/ClickHouse/pull/59163) [#63324](https://github.com/ClickHouse/ClickHouse/pull/63324) ([Duc Canh Le](https://github.com/canhld94)).
* Agora, é possível processar CRLF no formato TSV usando a configuração `input_format_tsv_crlf_end_of_line`. Fecha [#56257](https://github.com/ClickHouse/ClickHouse/issues/56257). [#59747](https://github.com/ClickHouse/ClickHouse/pull/59747) ([Shaun Struwig](https://github.com/Blargian)).
* Uma nova configuração `input_format_force_null_for_omitted_fields` que força valores NULL para campos ausentes. [#60887](https://github.com/ClickHouse/ClickHouse/pull/60887) ([Constantine Peresypkin](https://github.com/pkit)).
* Antes, nosso armazenamento S3 e a função de tabela S3 não ofereciam suporte à seleção a partir de arquivos compactados, como tarballs, zip e 7z. Agora, eles permitem iterar pelos arquivos dentro desses arquivos no S3. [#62259](https://github.com/ClickHouse/ClickHouse/pull/62259) ([Daniil Ivanik](https://github.com/divanik)).
* Suporte à função condicional `clamp`. [#62377](https://github.com/ClickHouse/ClickHouse/pull/62377) ([skyoct](https://github.com/skyoct)).
* Adicionado o formato de saída `NPy`. [#62430](https://github.com/ClickHouse/ClickHouse/pull/62430) ([豪肥肥](https://github.com/HowePa)).
* Formato `Raw` como sinônimo de `TSVRaw`. [#63394](https://github.com/ClickHouse/ClickHouse/pull/63394) ([Unalian](https://github.com/Unalian)).
* Adicionada uma nova função SQL `generateUUIDv7` para gerar UUIDs versão 7, também conhecidos como UUIDs baseados em timestamp com componente aleatório. Também foi adicionada a função `UUIDToNum` para extrair bytes de um UUID e a função `UUIDv7ToDateTime` para extrair o componente de timestamp de um UUID versão 7. [#62852](https://github.com/ClickHouse/ClickHouse/pull/62852) ([Alexey Petrunyaka](https://github.com/pet74alex)).
* No Linux e no MacOS, se o programa tiver o stdout redirecionado para um arquivo com uma extensão de compressão, use o método de compressão correspondente em vez de não usar nenhum (fazendo com que ele se comporte de forma semelhante a `INTO OUTFILE`). [#63662](https://github.com/ClickHouse/ClickHouse/pull/63662) ([v01dXYZ](https://github.com/v01dXYZ)).
* Alterado o aviso para um alto número de tabelas anexadas, a fim de diferenciar tabelas, views e dicionários. [#64180](https://github.com/ClickHouse/ClickHouse/pull/64180) ([Francisco J. Jurado Moreno](https://github.com/Beetelbrox)).
* Adiciona suporte à função `azureBlobStorage` no servidor ClickHouse para usar o Azure Workload Identity na autenticação com o Azure blob storage. Se o parâmetro `use_workload_identity` estiver definido na configuração, a [Workload Identity](https://github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/identity/azure-identity#authenticate-azure-hosted-applications) será usada para autenticação. [#57881](https://github.com/ClickHouse/ClickHouse/pull/57881) ([Vinay Suryadevara](https://github.com/vinay92-ch)).
* Adiciona informações de TTL à tabela `system.parts_columns`. [#63200](https://github.com/ClickHouse/ClickHouse/pull/63200) ([litlig](https://github.com/litlig)).

<div id="experimental-features">
  #### Recursos experimentais
</div>

* Implementado o tipo de dados `Dynamic`, que permite armazenar valores de qualquer tipo sem conhecê-los todos antecipadamente. O tipo `Dynamic` está disponível na configuração `allow_experimental_dynamic_type`. Referência: [#54864](https://github.com/ClickHouse/ClickHouse/issues/54864). [#63058](https://github.com/ClickHouse/ClickHouse/pull/63058) ([Kruglov Pavel](https://github.com/Avogar)).
* Passou a ser permitido criar um banco de dados `MaterializedMySQL` sem conexão com o MySQL. [#63397](https://github.com/ClickHouse/ClickHouse/pull/63397) ([Kirill](https://github.com/kirillgarbar)).
* Uma réplica de um banco de dados `Replicated` passa a ser marcada automaticamente como perdida, e a recuperação é iniciada se alguma tarefa DDL falhar mais de `max_retries_before_automatic_recovery` (100 por padrão) vezes seguidas com o mesmo erro. Além disso, foi corrigido um bug que podia fazer com que entradas DDL fossem ignoradas quando uma exceção é lançada em um estágio inicial da execução da entrada. [#63549](https://github.com/ClickHouse/ClickHouse/pull/63549) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Passam a ser considerados arquivos com falha em `s3queue_tracked_file_ttl_sec` e `s3queue_traked_files_limit` para `StorageS3Queue`. [#63638](https://github.com/ClickHouse/ClickHouse/pull/63638) ([Kseniia Sumarokova](https://github.com/kssenii)).

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

* Menos contenção no cache do sistema de arquivos (parte 4). Permite manter o cache do sistema de arquivos sem preenchê-lo até o limite, fazendo descarte adicional em segundo plano (controlado por `keep_free_space_size(elements)_ratio`). Isso ajuda a aliviar a pressão da reserva de espaço para consultas (no método `tryReserve`). Além disso, isso é feito de forma lock-free sempre que possível, ou seja, sem bloquear o uso normal do cache. [#61250](https://github.com/ClickHouse/ClickHouse/pull/61250) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ignora a mesclagem de blocos de projeção recém-criados durante `INSERT`-s. [#59405](https://github.com/ClickHouse/ClickHouse/pull/59405) ([Nikita Taranov](https://github.com/nickitat)).
* Processa funções de string `...UTF8` de forma ASCII quando as strings de entrada contêm apenas caracteres ASCII. Inspirado em [https://github.com/apache/doris/pull/29799](https://github.com/apache/doris/pull/29799). Ganho geral de desempenho de 1.07x\~1.62x. Observe que o pico de uso de memória diminuiu em alguns casos. [#61632](https://github.com/ClickHouse/ClickHouse/pull/61632) ([李扬](https://github.com/taiyang-li)).
* Desempenho aprimorado dos globs de seleção (`{}`) no StorageS3. [#62120](https://github.com/ClickHouse/ClickHouse/pull/62120) ([Andrey Zvonov](https://github.com/zvonand)).
* O HostResolver contém cada endereço IP várias vezes. Se o host remoto tiver vários IPs e, por algum motivo (regras de firewall, por exemplo), o acesso a alguns IPs for permitido e a outros proibido, então apenas o primeiro registro dos IPs proibidos será marcado como com falha, e, a cada tentativa, esses IPs poderão ser escolhidos novamente (e falhar de novo). Mesmo com essa correção, a cada 120 segundos o cache de DNS é descartado, e os IPs podem voltar a ser escolhidos. [#62652](https://github.com/ClickHouse/ClickHouse/pull/62652) ([Anton Ivashkin](https://github.com/ianton-ru)).
* Adiciona uma nova configuração `prefer_merge_sort_block_bytes` para controlar o uso de memória e dobrar a velocidade da ordenação durante a mesclagem quando há muitas colunas. [#62904](https://github.com/ClickHouse/ClickHouse/pull/62904) ([LiuNeng](https://github.com/liuneng1994)).
* `clickhouse-local` iniciará mais rápido. Em versões anteriores, por engano, ele não excluía diretórios temporários. Agora, vai excluí-los. Isso fecha [#62941](https://github.com/ClickHouse/ClickHouse/issues/62941). [#63074](https://github.com/ClickHouse/ClickHouse/pull/63074) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Micro-otimizações para o novo analisador. [#63429](https://github.com/ClickHouse/ClickHouse/pull/63429) ([Raúl Marín](https://github.com/Algunenano)).
* A análise de índices passará a funcionar quando `DateTime` for comparado com `DateTime64`. Isso fecha [#63441](https://github.com/ClickHouse/ClickHouse/issues/63441). [#63443](https://github.com/ClickHouse/ClickHouse/pull/63443) [#63532](https://github.com/ClickHouse/ClickHouse/pull/63532) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Acelera um pouco os índices do tipo `set` (cerca de 1,5 vez) removendo lixo. [#64098](https://github.com/ClickHouse/ClickHouse/pull/64098) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Remove a cópia de dados ao gravar no cache do sistema de arquivos. [#63401](https://github.com/ClickHouse/ClickHouse/pull/63401) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Agora os backups com Azure blob storage usarão multicopy. [#64116](https://github.com/ClickHouse/ClickHouse/pull/64116) ([alesapin](https://github.com/alesapin)).
* Permite usar cópia nativa no Azure mesmo com containers diferentes. [#64154](https://github.com/ClickHouse/ClickHouse/pull/64154) ([alesapin](https://github.com/alesapin)).
* Finalmente habilita a cópia nativa no Azure. [#64182](https://github.com/ClickHouse/ClickHouse/pull/64182) ([alesapin](https://github.com/alesapin)).

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

* Permite usar `clickhouse-local` e seus atalhos `clickhouse` e `ch` com uma consulta ou um arquivo de consultas como argumento posicional. Exemplos: `ch "SELECT 1"`, `ch --param_test Hello "SELECT {test:String}"`, `ch query.sql`. Isso resolve [#62361](https://github.com/ClickHouse/ClickHouse/issues/62361). [#63081](https://github.com/ClickHouse/ClickHouse/pull/63081) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Habilitar metadados plain\_rewritable para armazenamentos de objetos locais e do Azure (azure\_blob\_storage). [#63365](https://github.com/ClickHouse/ClickHouse/pull/63365) ([Julia Kartseva](https://github.com/jkartseva)).
* Suporte a aspas Unicode no estilo do inglês, por exemplo, “Hello”, 'world'. Isso é questionável em geral, mas útil quando você digita sua consulta em um editor de texto, como o Google Docs. Isso encerra [#58634](https://github.com/ClickHouse/ClickHouse/issues/58634). [#63381](https://github.com/ClickHouse/ClickHouse/pull/63381) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permitir vírgulas finais na lista de colunas da consulta INSERT. Por exemplo, `INSERT INTO test (a, b, c, ) VALUES ...`. [#63803](https://github.com/ClickHouse/ClickHouse/pull/63803) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mensagens de exceção melhores para o formato `Regexp`. [#63804](https://github.com/ClickHouse/ClickHouse/pull/63804) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permite vírgulas à direita no formato `Values`. Por exemplo, esta consulta é permitida: `INSERT INTO test (a, b, c) VALUES (4, 5, 6,);`. [#63810](https://github.com/ClickHouse/ClickHouse/pull/63810) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Faz com que o RabbitMQ aplique nack a mensagens corrompidas. Fecha [#45350](https://github.com/ClickHouse/ClickHouse/issues/45350). [#60312](https://github.com/ClickHouse/ClickHouse/pull/60312) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige um travamento no desenrolamento assíncrono da pilha (como ao usar o profiler de consulta por amostragem) durante a interpretação de informações de depuração. Isso fecha [#60460](https://github.com/ClickHouse/ClickHouse/issues/60460). [#60468](https://github.com/ClickHouse/ClickHouse/pull/60468) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mensagens distintas para o erro do S3 'no key' nos casos de disco e de armazenamento. [#61108](https://github.com/ClickHouse/ClickHouse/pull/61108) ([Sema Checherinda](https://github.com/CheSema)).
* A barra de progresso passará a funcionar para queries triviais com LIMIT de `system.zeros`, `system.zeros_mt` (ela já funciona para `system.numbers` e `system.numbers_mt`) e para a table function `generateRandom`. Como bônus, se o número total de registros for maior que o limite `max_rows_to_read`, ela lançará uma exceção mais cedo. Isso fecha [#58183](https://github.com/ClickHouse/ClickHouse/issues/58183). [#61823](https://github.com/ClickHouse/ClickHouse/pull/61823) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suporte a "Merge Key" em configurações YAML (este é um recurso estranho do YAML, por favor, desconsidere). [#62685](https://github.com/ClickHouse/ClickHouse/pull/62685) ([Azat Khuzhin](https://github.com/azat)).
* Melhora a mensagem de erro quando uma função não determinística é usada com a origem Replicated. [#62896](https://github.com/ClickHouse/ClickHouse/pull/62896) ([Grégoire Pineau](https://github.com/lyrixx)).
* Corrige o segredo entre servidores para Distributed sobre Distributed a partir de `remote`. [#63013](https://github.com/ClickHouse/ClickHouse/pull/63013) ([Azat Khuzhin](https://github.com/azat)).
* Suporte a `include_from` para arquivos YAML. No entanto, é preferível usar `config.d` [#63106](https://github.com/ClickHouse/ClickHouse/pull/63106) ([Eduard Karacharov](https://github.com/korowa)).
* Manter os dados anteriores no terminal após escolher uma das sugestões do skim. [#63261](https://github.com/ClickHouse/ClickHouse/pull/63261) ([FlameFactory](https://github.com/FlameFactory)).
* A largura dos campos (nos formatos Pretty ou na função `visibleWidth`) agora passa a ignorar corretamente as sequências de escape ANSI. [#63270](https://github.com/ClickHouse/ClickHouse/pull/63270) ([Shaun Struwig](https://github.com/Blargian)).
* Atualizado o uso do código de erro `NUMBER_OF_ARGUMENTS_DOESNT_MATCH` para códigos de erro mais precisos, quando apropriado. [#63406](https://github.com/ClickHouse/ClickHouse/pull/63406) ([Yohann Jardin](https://github.com/yohannj)).
* `os_user` e `client_hostname` agora são configurados corretamente para consultas usadas nas sugestões de linha de comando no clickhouse-client. Isso fecha [#63430](https://github.com/ClickHouse/ClickHouse/issues/63430). [#63433](https://github.com/ClickHouse/ClickHouse/pull/63433) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige automaticamente `max_block_size` para o valor padrão caso seja zero. [#63587](https://github.com/ClickHouse/ClickHouse/pull/63587) ([Antonio Andelic](https://github.com/antonio2368)).
* Adiciona uma coluna build\_id ALIAS a trace\_log para facilitar a renomeação automática ao detectar alterações no binário. Isso visa corrigir [#52086](https://github.com/ClickHouse/ClickHouse/issues/52086). [#63656](https://github.com/ClickHouse/ClickHouse/pull/63656) ([Zimu Li](https://github.com/woodlzm)).
* Habilitada a operação TRUNCATE para discos de armazenamento de objetos. [#63693](https://github.com/ClickHouse/ClickHouse/pull/63693) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* O carregamento da lista de palavras-chave agora depende da revisão do servidor e será desabilitado para versões mais antigas do servidor ClickHouse. CC @azat. [#63786](https://github.com/ClickHouse/ClickHouse/pull/63786) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Os discos do ClickHouse precisam ler a configuração do servidor para obter a versão efetiva do formato dos metadados. [#63831](https://github.com/ClickHouse/ClickHouse/pull/63831) ([Sema Checherinda](https://github.com/CheSema)).
* Desabilite as restrições do formato Pretty (`output_format_pretty_max_rows`/`output_format_pretty_max_value_width`) quando `stdout` não for TTY. [#63942](https://github.com/ClickHouse/ClickHouse/pull/63942) ([Azat Khuzhin](https://github.com/azat)).
* O tratamento de exceções agora funciona quando o ClickHouse é usado no AWS Lambda. Autor: [Alexey Coolnev](https://github.com/acoolnev). [#64014](https://github.com/ClickHouse/ClickHouse/pull/64014) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Lançar `CANNOT_DECOMPRESS` em vez de `CORRUPTED_DATA` quando dados compactados inválidos forem enviados via HTTP. [#64036](https://github.com/ClickHouse/ClickHouse/pull/64036) ([vdimir](https://github.com/vdimir)).
* Uma dica para um único número grande nos formatos Pretty agora funciona com Nullable e LowCardinality. Isso encerra [#61993](https://github.com/ClickHouse/ClickHouse/issues/61993). [#64084](https://github.com/ClickHouse/ClickHouse/pull/64084) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionadas métricas, logs e nomes de thread na filtragem de partes com índices. [#64130](https://github.com/ClickHouse/ClickHouse/pull/64130) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ignorar `allow_suspicious_primary_key` no `ATTACH` e verificar no `ALTER`. [#64202](https://github.com/ClickHouse/ClickHouse/pull/64202) ([Azat Khuzhin](https://github.com/azat)).

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

* ClickHouse é compilado com clang-18. Muitas novas verificações do clang-tidy-18 foram habilitadas. [#60469](https://github.com/ClickHouse/ClickHouse/pull/60469) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suporte experimental ao loongarch64 como nova plataforma para o ClickHouse. [#63733](https://github.com/ClickHouse/ClickHouse/pull/63733) ([qiangxuhui](https://github.com/qiangxuhui)).
* O Dockerfile foi revisado pela biblioteca oficial do Docker em [https://github.com/docker-library/official-images/pull/15846](https://github.com/docker-library/official-images/pull/15846). [#63400](https://github.com/ClickHouse/ClickHouse/pull/63400) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Informações sobre cada símbolo em cada unidade de tradução serão coletadas no banco de dados de CI para cada build no CI. Isso fecha [#63494](https://github.com/ClickHouse/ClickHouse/issues/63494). [#63495](https://github.com/ClickHouse/ClickHouse/pull/63495) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Atualiza a biblioteca Apache Datasketches. Isso resolve [#63858](https://github.com/ClickHouse/ClickHouse/issues/63858). [#63923](https://github.com/ClickHouse/ClickHouse/pull/63923) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Habilita suporte a gRPC para Linux aarch64 durante a compilação cruzada do binário. [#64072](https://github.com/ClickHouse/ClickHouse/pull/64072) ([alesapin](https://github.com/alesapin)).
* Corrige o unwind em SIGSEGV no aarch64 (devido à pilha pequena para o sinal). [#64058](https://github.com/ClickHouse/ClickHouse/pull/64058) ([Azat Khuzhin](https://github.com/azat)).

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

* A configuração `enable_vertical_final` foi desativada por padrão. Esse recurso não deve ser usado porque contém um bug: [#64543](https://github.com/ClickHouse/ClickHouse/issues/64543). [#64544](https://github.com/ClickHouse/ClickHouse/pull/64544) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrigida a criação de backup ao usar vários shards [#57684](https://github.com/ClickHouse/ClickHouse/pull/57684) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrigida a transferência de projeções/índices/chave primária da lista de colunas da consulta CREATE para a tabela interna da MV [#59183](https://github.com/ClickHouse/ClickHouse/pull/59183) ([Azat Khuzhin](https://github.com/azat)).
* Corrige o merge incorreto de boundRatio [#60532](https://github.com/ClickHouse/ClickHouse/pull/60532) ([Tao Wang](https://github.com/wangtZJU)).
* Corrigido travamento ao chamar algumas funções em colunas const de baixa cardinalidade [#61966](https://github.com/ClickHouse/ClickHouse/pull/61966) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige consultas com FINAL que retornavam resultados incorretos quando a tabela não usava granularidade adaptativa [#62432](https://github.com/ClickHouse/ClickHouse/pull/62432) ([Duc Canh Le](https://github.com/canhld94)).
* Melhorada a detecção de suporte a cgroups v2 para controladores de memória [#62903](https://github.com/ClickHouse/ClickHouse/pull/62903) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrigido o uso subsequente de tabelas externas no cliente [#62964](https://github.com/ClickHouse/ClickHouse/pull/62964) ([Azat Khuzhin](https://github.com/azat)).
* Corrige um travamento com untuple e lambda não resolvida [#63131](https://github.com/ClickHouse/ClickHouse/pull/63131) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige o servidor começar a aceitar conexões prematuramente [#63181](https://github.com/ClickHouse/ClickHouse/pull/63181) ([alesapin](https://github.com/alesapin)).
* Corrige o problema de partes sobrepostas ao reiniciar após um comando DROP PART [#63202](https://github.com/ClickHouse/ClickHouse/pull/63202) ([Han Fei](https://github.com/hanfei1991)).
* Carregar corretamente os valores padrão de SQL security durante a inicialização [#63209](https://github.com/ClickHouse/ClickHouse/pull/63209) ([pufit](https://github.com/pufit)).
* Correção no push down de filtro de JOIN [#63234](https://github.com/ClickHouse/ClickHouse/pull/63234) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrigido loop infinito em AzureObjectStorage::listObjects [#63257](https://github.com/ClickHouse/ClickHouse/pull/63257) ([Julia Kartseva](https://github.com/jkartseva)).
* CROSS join ignora a configuração join\_algorithm [#63273](https://github.com/ClickHouse/ClickHouse/pull/63273) ([vdimir](https://github.com/vdimir)).
* Corrige a finalização de WriteBufferToFileSegment e StatusFile [#63346](https://github.com/ClickHouse/ClickHouse/pull/63346) ([vdimir](https://github.com/vdimir)).
* Corrige erro lógico durante consulta SELECT após ALTER em casos raros [#63353](https://github.com/ClickHouse/ClickHouse/pull/63353) ([alesapin](https://github.com/alesapin)).
* Corrigido o cabeçalho `X-ClickHouse-Timezone` com `session_timezone` [#63377](https://github.com/ClickHouse/ClickHouse/pull/63377) ([Andrey Zvonov](https://github.com/zvonand)).
* Correção de assert de depuração ao usar agrupamento WITH ROLLUP e tipos LowCardinality  [#63398](https://github.com/ClickHouse/ClickHouse/pull/63398) ([Raúl Marín](https://github.com/Algunenano)).
* Pequenas correções em group\_by\_use\_nulls [#63405](https://github.com/ClickHouse/ClickHouse/pull/63405) ([vdimir](https://github.com/vdimir)).
* Corrige o backup/restauração da parte de projeção caso a projeção tenha sido removida dos metadados da tabela, mas a parte ainda contenha a projeção [#63426](https://github.com/ClickHouse/ClickHouse/pull/63426) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigida a fonte do dicionário MySQL [#63481](https://github.com/ClickHouse/ClickHouse/pull/63481) ([vdimir](https://github.com/vdimir)).
* Inserção de QueryFinish em AsyncInsertFlush sem dados [#63483](https://github.com/ClickHouse/ClickHouse/pull/63483) ([Raúl Marín](https://github.com/Algunenano)).
* Correção: `used_dictionaries` vazio no `system.query_log` [#63487](https://github.com/ClickHouse/ClickHouse/pull/63487) ([Eduard Karacharov](https://github.com/korowa)).
* Deixar `MergeTreePrefetchedReadPool` mais seguro [#63513](https://github.com/ClickHouse/ClickHouse/pull/63513) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigido travamento ao encerrar com o sentry habilitado (porque o OpenSSL era destruído antes do sentry) [#63548](https://github.com/ClickHouse/ClickHouse/pull/63548) ([Azat Khuzhin](https://github.com/azat)).
* Corrige o suporte a Array e map com hashing por chave [#63628](https://github.com/ClickHouse/ClickHouse/pull/63628) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Corrigido o pushdown de filtro no Parquet e talvez no StorageMerge [#63642](https://github.com/ClickHouse/ClickHouse/pull/63642) ([Michael Kolupaev](https://github.com/al13n321)).
* Evita a conversão para Replicated se o caminho do ZooKeeper já existir [#63670](https://github.com/ClickHouse/ClickHouse/pull/63670) ([Kirill](https://github.com/kirillgarbar)).
* Analisador: views leem somente as colunas necessárias [#63688](https://github.com/ClickHouse/ClickHouse/pull/63688) ([Maksim Kita](https://github.com/kitaisreal)).
* Analisador: proibir a redefinição de WINDOW [#63694](https://github.com/ClickHouse/ClickHouse/pull/63694) ([Dmitry Novik](https://github.com/novikd)).
* flatten\_nested não funcionava com o banco de dados experimental Replicated. [#63695](https://github.com/ClickHouse/ClickHouse/pull/63695) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correção de [#63653](https://github.com/ClickHouse/ClickHouse/issues/63653) [#63722](https://github.com/ClickHouse/ClickHouse/pull/63722) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Permitir cast de Array(Nothing) para Map(Nothing, Nothing) [#63753](https://github.com/ClickHouse/ClickHouse/pull/63753) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigido ILLEGAL\_COLUMN em join partial\_merge [#63755](https://github.com/ClickHouse/ClickHouse/pull/63755) ([vdimir](https://github.com/vdimir)).
* Correção: remover DISTINCT redundante em funções de janela [#63776](https://github.com/ClickHouse/ClickHouse/pull/63776) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige possível travamento ao usar SYSTEM UNLOAD PRIMARY KEY [#63778](https://github.com/ClickHouse/ClickHouse/pull/63778) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigida uma consulta com alias cíclico duplicado. [#63791](https://github.com/ClickHouse/ClickHouse/pull/63791) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Tornar `TokenIterator` lazy, como deveria ser [#63801](https://github.com/ClickHouse/ClickHouse/pull/63801) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionar a configuração `endpoint_subpath` do URI do S3 [#63806](https://github.com/ClickHouse/ClickHouse/pull/63806) ([Julia Kartseva](https://github.com/jkartseva)).
* Corrigido deadlock em `ParallelReadBuffer` [#63814](https://github.com/ClickHouse/ClickHouse/pull/63814) ([Antonio Andelic](https://github.com/antonio2368)).
* Correção do push down de filtro de JOIN em colunas equivalentes [#63819](https://github.com/ClickHouse/ClickHouse/pull/63819) ([Maksim Kita](https://github.com/kitaisreal)).
* Remoção de dados de todos os discos após DROP com o banco de dados Lazy. [#63848](https://github.com/ClickHouse/ClickHouse/pull/63848) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Corrige resultado incorreto na leitura de MV com réplicas paralelas e o novo analisador [#63861](https://github.com/ClickHouse/ClickHouse/pull/63861) ([Nikita Taranov](https://github.com/nickitat)).
* Correções nos comandos `find_super_nodes` e `find_big_family` do keeper-client [#63862](https://github.com/ClickHouse/ClickHouse/pull/63862) ([Alexander Gololobov](https://github.com/davenger)).
* Atualizado o nome de execução da lambda [#63864](https://github.com/ClickHouse/ClickHouse/pull/63864) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correção de SIGSEGV causado pelo profiler de CPU/tempo real [#63865](https://github.com/ClickHouse/ClickHouse/pull/63865) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida a consulta `EXPLAIN CURRENT TRANSACTION` [#63926](https://github.com/ClickHouse/ClickHouse/pull/63926) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige o analyzer: tartarugas até o fim... [#63930](https://github.com/ClickHouse/ClickHouse/pull/63930) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Permite determinados comandos `ALTER TABLE` para o disco `plain_rewritable` [#63933](https://github.com/ClickHouse/ClickHouse/pull/63933) ([Julia Kartseva](https://github.com/jkartseva)).
* Correção para CTE recursiva distribuída [#63939](https://github.com/ClickHouse/ClickHouse/pull/63939) ([Maksim Kita](https://github.com/kitaisreal)).
* Analisador: corrige a resolução de COLUMNS [#63962](https://github.com/ClickHouse/ClickHouse/pull/63962) ([Dmitry Novik](https://github.com/novikd)).
* LIMIT BY e skip\_unused\_shards no analisador [#63983](https://github.com/ClickHouse/ClickHouse/pull/63983) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Uma correção para alguns resquícios (Kusto experimental) [#63992](https://github.com/ClickHouse/ClickHouse/pull/63992) ([Yong Wang](https://github.com/kashwy)).
* Desserialize entradas binárias não confiáveis com mais segurança [#64024](https://github.com/ClickHouse/ClickHouse/pull/64024) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige a análise de consultas com a configuração `final` = 1 para tabelas Distributed sobre tabelas que não são da família MergeTree. [#64037](https://github.com/ClickHouse/ClickHouse/pull/64037) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Adiciona as configurações ausentes ao `recoverLostReplica` [#64040](https://github.com/ClickHouse/ClickHouse/pull/64040) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige as verificações de acesso do SQL security com o analisador [#64079](https://github.com/ClickHouse/ClickHouse/pull/64079) ([pufit](https://github.com/pufit)).
* Corrigido o analisador: para DAG, apenas a expressão `interpolate` deve ser usada [#64096](https://github.com/ClickHouse/ClickHouse/pull/64096) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige a gravação multipart em backups do Azure usando blocos de 1 MiB (tamanho do buffer de leitura) em vez de `max_upload_part_size` (no caso de cópia não nativa) [#64117](https://github.com/ClickHouse/ClickHouse/pull/64117) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Executa o fallback corretamente durante a cópia do backup [#64153](https://github.com/ClickHouse/ClickHouse/pull/64153) ([Antonio Andelic](https://github.com/antonio2368)).
* Evitar LOGICAL\_ERROR ao usar CREATE TABLE como visão materializada [#64174](https://github.com/ClickHouse/ClickHouse/pull/64174) ([Raúl Marín](https://github.com/Algunenano)).
* Cache de consultas: considerar consultas idênticas em bancos de dados diferentes como distintas [#64199](https://github.com/ClickHouse/ClickHouse/pull/64199) ([Robert Schulze](https://github.com/rschu1ze)).
* Ignorar `text_log` no Keeper [#64218](https://github.com/ClickHouse/ClickHouse/pull/64218) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigido erro lógico: CAST inválido para tabela Buffer com prewhere. [#64388](https://github.com/ClickHouse/ClickHouse/pull/64388) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).

### <a id="244" /> Lançamento do ClickHouse 24.4, 2024-04-30. [Apresentação](https://presentations.clickhouse.com/2024-release-24.4/), [Vídeo](https://www.youtube.com/watch?v=dtUqgcfOGmE)

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

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

* `clickhouse-odbc-bridge` e `clickhouse-library-bridge` agora são pacotes separados. Isso corrige [#61677](https://github.com/ClickHouse/ClickHouse/issues/61677). [#62114](https://github.com/ClickHouse/ClickHouse/pull/62114) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Não é mais permitido definir max\_parallel\_replicas (para a leitura paralela experimental a partir de réplicas) como `0`, pois isso não faz sentido. Corrige [#60140](https://github.com/ClickHouse/ClickHouse/issues/60140). [#61201](https://github.com/ClickHouse/ClickHouse/pull/61201) ([Kruglov Pavel](https://github.com/Avogar)).
* Removido o suporte à consulta `INSERT WATCH` (parte do recurso `LIVE VIEW`, agora descontinuado). [#62382](https://github.com/ClickHouse/ClickHouse/pull/62382) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Removida a configuração `optimize_monotonous_functions_in_order_by`. [#63004](https://github.com/ClickHouse/ClickHouse/pull/63004) ([Raúl Marín](https://github.com/Algunenano)).
* A tag experimental foi removida do engine de banco de dados `Replicated`. Agora ele está em Beta. [#62937](https://github.com/ClickHouse/ClickHouse/pull/62937) ([Justin de Guzman](https://github.com/justindeguzman)).

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

* Suporte a CTEs recursivas. [#62074](https://github.com/ClickHouse/ClickHouse/pull/62074) ([Maksim Kita](https://github.com/kitaisreal)).
* Suporte à cláusula `QUALIFY`. Fecha [#47819](https://github.com/ClickHouse/ClickHouse/issues/47819). [#62619](https://github.com/ClickHouse/ClickHouse/pull/62619) ([Maksim Kita](https://github.com/kitaisreal)).
* Agora é possível conceder grants em motores de tabela, sem afetar o comportamento dos usuários existentes. [#60117](https://github.com/ClickHouse/ClickHouse/pull/60117) ([jsc0218](https://github.com/jsc0218)).
* Foi adicionado um disco S3 regravável com suporte a operações `INSERT` e que não requer metadados armazenados localmente. [#61116](https://github.com/ClickHouse/ClickHouse/pull/61116) ([Julia Kartseva](https://github.com/jkartseva)). O principal caso de uso é para tabelas de sistema.
* O realce de sintaxe durante a digitação no cliente passará a funcionar no nível da sintaxe (antes, funcionava no nível do lexer). [#62123](https://github.com/ClickHouse/ClickHouse/pull/62123) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Passa a ser possível remover várias tabelas ao mesmo tempo, como em `DROP TABLE a, b, c`;. [#58705](https://github.com/ClickHouse/ClickHouse/pull/58705) ([zhongyuankai](https://github.com/zhongyuankai)).
* Agora há suporte para modificar as configurações da tabela Memory por meio de `ALTER MODIFY SETTING`. Exemplo: `ALTER TABLE memory MODIFY SETTING min_rows_to_keep = 100, max_rows_to_keep = 1000;`. [#62039](https://github.com/ClickHouse/ClickHouse/pull/62039) ([zhongyuankai](https://github.com/zhongyuankai)).
* Foi adicionado o parâmetro de consulta `role` à interface HTTP. Ele funciona de forma semelhante a `SET ROLE x`, aplicando a role antes de a instrução ser executada. Isso permite contornar uma limitação da interface HTTP, já que múltiplas instruções não são permitidas e não é possível enviar `SET ROLE x` e a própria instrução ao mesmo tempo. Também é possível definir várias roles dessa forma, por exemplo, `?role=x&role=y`, o que equivale a `SET ROLE x, y`. [#62669](https://github.com/ClickHouse/ClickHouse/pull/62669) ([Serge Klochkov](https://github.com/slvrtrn)).
* Adiciona `SYSTEM UNLOAD PRIMARY KEY` para liberar memória usada pela chave primária de uma tabela. [#62738](https://github.com/ClickHouse/ClickHouse/pull/62738) ([Pablo Marcos](https://github.com/pamarcos)).
* Foram adicionadas as colunas `value1`, `value2`, ..., `value10` a `system.text_log`. Essas colunas contêm os valores usados para formatar a mensagem. [#59619](https://github.com/ClickHouse/ClickHouse/pull/59619) ([Alexey Katsman](https://github.com/alexkats)).
* Foi adicionada a coluna virtual persistente `_block_offset`, que armazena o número original da linha no bloco atribuído no momento do insert. A persistência da coluna `_block_offset` pode ser habilitada pela configuração do MergeTree `enable_block_offset_column`. Foi adicionada a coluna virtual `_part_data_version`, que contém o número mínimo do bloco ou a versão de mutação da parte. A coluna virtual persistente `_block_number` não é mais considerada experimental. [#60676](https://github.com/ClickHouse/ClickHouse/pull/60676) ([Anton Popov](https://github.com/CurtizJ)).
* Adiciona a configuração `input_format_json_throw_on_bad_escape_sequence`; desabilitá-la permite salvar sequências de escape inválidas em formatos de entrada JSON. [#61889](https://github.com/ClickHouse/ClickHouse/pull/61889) ([Kruglov Pavel](https://github.com/Avogar)).

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

* Melhorias no pushdown de filtros em JOIN usando conjuntos equivalentes. [#61216](https://github.com/ClickHouse/ClickHouse/pull/61216) ([Maksim Kita](https://github.com/kitaisreal)).
* Otimização que converte OUTER JOIN em INNER JOIN se o filtro após o JOIN sempre filtrar valores padrão. A otimização pode ser controlada pela configuração `query_plan_convert_outer_join_to_inner_join`, ativada por padrão. [#62907](https://github.com/ClickHouse/ClickHouse/pull/62907) ([Maksim Kita](https://github.com/kitaisreal)).
* Melhoria para AWS S3. O cliente precisa enviar o cabeçalho 'Keep-Alive: timeout=X' ao servidor. Se o cliente receber uma resposta do servidor com esse cabeçalho, deverá usar o valor fornecido pelo servidor. Além disso, é melhor que o cliente não use uma conexão prestes a expirar, para evitar uma condição de corrida no fechamento da conexão. [#62249](https://github.com/ClickHouse/ClickHouse/pull/62249) ([Sema Checherinda](https://github.com/CheSema)).
* Reduz a sobrecarga das mutações em SELECTs (v2). [#60856](https://github.com/ClickHouse/ClickHouse/pull/60856) ([Azat Khuzhin](https://github.com/azat)).
* As funções mais frequentemente invocadas em PODArray agora passam por inline forçado. [#61144](https://github.com/ClickHouse/ClickHouse/pull/61144) ([李扬](https://github.com/taiyang-li)).
* Acelera o parsing de JSON ao ignorar o restante do objeto quando todas as colunas necessárias já tiverem sido lidas. [#62210](https://github.com/ClickHouse/ClickHouse/pull/62210) ([lgbo](https://github.com/lgbo-ustc)).
* Melhora o insert select trivial de arquivos usando as table functions file/s3/hdfs/url/.... Adiciona a configuração separada max\_parsing\_threads para controlar o número de threads usadas no parsing paralelo. [#62404](https://github.com/ClickHouse/ClickHouse/pull/62404) ([Kruglov Pavel](https://github.com/Avogar)).
* As funções `to_utc_timestamp` e `from_utc_timestamp` agora são cerca de 2x mais rápidas. [#62583](https://github.com/ClickHouse/ClickHouse/pull/62583) ([KevinyhZou](https://github.com/KevinyhZou)).
* As funções `parseDateTimeOrNull`, `parseDateTimeOrZero`, `parseDateTimeInJodaSyntaxOrNull` e `parseDateTimeInJodaSyntaxOrZero` agora executam significativamente mais rápido (10x - 1000x) quando a entrada contém principalmente valores que não podem ser interpretados. [#62634](https://github.com/ClickHouse/ClickHouse/pull/62634) ([LiuNeng](https://github.com/liuneng1994)).
* As consultas `SELECT` em `system.query_cache` agora estão visivelmente mais rápidas quando o cache de consultas contém muitas entradas (por exemplo, mais de 100.000). [#62671](https://github.com/ClickHouse/ClickHouse/pull/62671) ([Robert Schulze](https://github.com/rschu1ze)).
* Menos contenção no cache do sistema de arquivos (parte 3): executar a remoção no sistema de arquivos sem bloqueio na tentativa de reserva de espaço. [#61163](https://github.com/ClickHouse/ClickHouse/pull/61163) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Acelera o redimensionamento dinâmico do cache do sistema de arquivos. [#61723](https://github.com/ClickHouse/ClickHouse/pull/61723) ([Kseniia Sumarokova](https://github.com/kssenii)).
* A fonte do dicionário com `INVALIDATE_QUERY` não é recarregada duas vezes na inicialização. [#62050](https://github.com/ClickHouse/ClickHouse/pull/62050) ([vdimir](https://github.com/vdimir)).
* Corrige um problema em que, quando um `= 1` ou `= 0` redundante é adicionado após uma expressão booleana envolvendo a chave primária, o índice primário deixa de ser usado. Por exemplo, tanto `SELECT * FROM <table> WHERE <primary-key> IN (<value>) = 1` quanto `SELECT * FROM <table> WHERE <primary-key> NOT IN (<value>) = 0` acabam fazendo uma varredura completa da tabela, embora o índice primário pudesse ser usado. [#62142](https://github.com/ClickHouse/ClickHouse/pull/62142) ([josh-hildred](https://github.com/josh-hildred)).
* Retorna um fluxo de fragmentos de `system.remote_data_paths` em vez de acumular todo o resultado em um único fragmento grande. Isso permite consumir menos memória, mostrar o progresso intermediário e cancelar a consulta. [#62613](https://github.com/ClickHouse/ClickHouse/pull/62613) ([Alexander Gololobov](https://github.com/davenger)).

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

* Suporte a buffer de gravação paralelo para o Azure Blob Storage, controlado pela configuração `azure_allow_parallel_part_upload`. [#62534](https://github.com/ClickHouse/ClickHouse/pull/62534) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* O cache de páginas em espaço de usuário agora funciona com armazenamento web estático (`disk(type = web)`). Use a configuração do cliente `use_page_cache_for_disks_without_file_cache=1` para habilitar. [#61911](https://github.com/ClickHouse/ClickHouse/pull/61911) ([Michael Kolupaev](https://github.com/al13n321)).
* Não tratar Bool e variantes numéricas como suspeitos no tipo `Variant`. [#61999](https://github.com/ClickHouse/ClickHouse/pull/61999) ([Kruglov Pavel](https://github.com/Avogar)).
* Implementar uma conversão aprimorada de String para `Variant` usando parsing. [#62005](https://github.com/ClickHouse/ClickHouse/pull/62005) ([Kruglov Pavel](https://github.com/Avogar)).
* Suporte a `Variant` nas funções JSONExtract. [#62014](https://github.com/ClickHouse/ClickHouse/pull/62014) ([Kruglov Pavel](https://github.com/Avogar)).
* Marcar o tipo `Variant` como comparável para que possa ser usado na chave primária. [#62693](https://github.com/ClickHouse/ClickHouse/pull/62693) ([Kruglov Pavel](https://github.com/Avogar)).

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

* Por conveniência, `SELECT * FROM numbers() `funcionará da mesma forma que `SELECT * FROM system.numbers` — sem limite. [#61969](https://github.com/ClickHouse/ClickHouse/pull/61969) ([YenchangChan](https://github.com/YenchangChan)).
* Introduz tags separadas para consumer e producer na configuração do Kafka. Isso evita avisos do librdkafka (uma biblioteca C ruim, com muitos bugs) de que propriedades de consumer foram especificadas para instâncias de producer e vice-versa (por exemplo, `Configuration property session.timeout.ms is a consumer property and will be ignored by this producer instance`). Fecha: [#58983](https://github.com/ClickHouse/ClickHouse/issues/58983). [#58956](https://github.com/ClickHouse/ClickHouse/pull/58956) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* As funções `date_diff` e `age` agora calculam seus resultados com precisão de nanossegundos em vez de microssegundos. Elas também passam a oferecer `nanosecond` (ou `nanoseconds` ou `ns`) como um valor possível para o parâmetro `unit`. [#61409](https://github.com/ClickHouse/ClickHouse/pull/61409) ([Austin Kothig](https://github.com/kothiga)).
* Adicionadas as unidades de nano-, micro- e milissegundos para `date_trunc`. [#62335](https://github.com/ClickHouse/ClickHouse/pull/62335) ([Misz606](https://github.com/Misz606)).
* Recarrega a cadeia de certificados ao recarregar o certificado. [#61671](https://github.com/ClickHouse/ClickHouse/pull/61671) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Tentar evitar o erro [#60432](https://github.com/ClickHouse/ClickHouse/issues/60432) impedindo que uma tabela seja anexada caso exista uma réplica ativa para esse caminho da réplica. [#61876](https://github.com/ClickHouse/ClickHouse/pull/61876) ([Arthur Passos](https://github.com/arthurpassos)).
* Adicionado suporte a `input` para `clickhouse-local`. [#61923](https://github.com/ClickHouse/ClickHouse/pull/61923) ([Azat Khuzhin](https://github.com/azat)).
* O mecanismo de tabela `Join` com strictness `ANY` passa a ser consistente após a recarga. Quando várias linhas com a mesma chave são inseridas, a primeira terá maior prioridade (antes, ela era escolhida aleatoriamente durante o carregamento da tabela). fecha [#51027](https://github.com/ClickHouse/ClickHouse/issues/51027). [#61972](https://github.com/ClickHouse/ClickHouse/pull/61972) ([vdimir](https://github.com/vdimir)).
* Inferência automática de tipos de coluna Nullable a partir do esquema do Apache Arrow. [#61984](https://github.com/ClickHouse/ClickHouse/pull/61984) ([Maksim Kita](https://github.com/kitaisreal)).
* Permite cancelar a mesclagem paralela de estados de agregação durante a agregação. Exemplo: `uniqExact`. [#61992](https://github.com/ClickHouse/ClickHouse/pull/61992) ([Maksim Kita](https://github.com/kitaisreal)).
* Use `system.keywords` para preencher as sugestões e também para usá-las internamente em todos os lugares. [#62000](https://github.com/ClickHouse/ClickHouse/pull/62000) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* `OPTIMIZE FINAL` para `ReplicatedMergeTree` agora aguardará a conclusão das mesclagens atualmente ativas e, em seguida, tentará novamente agendar uma mesclagem final. Isso o deixará mais alinhado ao comportamento padrão do `MergeTree`. [#62067](https://github.com/ClickHouse/ClickHouse/pull/62067) ([Nikita Taranov](https://github.com/nickitat)).
* Ao ler dados de um arquivo de texto do Hive, era usada a primeira linha do arquivo para ajustar a quantidade de campos de entrada, e às vezes a quantidade de campos da primeira linha não correspondia ao que estava definido na tabela Hive. Por exemplo, a tabela Hive é definida com 3 colunas, como `test_tbl(a Int32, b Int32, c Int32)`, mas a primeira linha do arquivo de texto tem apenas 2 campos. Nessa situação, os campos de entrada são ajustados para 2 e, se a próxima linha do arquivo de texto tiver 3 campos, o terceiro campo não poderá ser lido e receberá o valor padrão 0, o que está incorreto. [#62086](https://github.com/ClickHouse/ClickHouse/pull/62086) ([KevinyhZou](https://github.com/KevinyhZou)).
* `CREATE AS` copia o comentário da tabela. [#62117](https://github.com/ClickHouse/ClickHouse/pull/62117) ([Pablo Marcos](https://github.com/pamarcos)).
* Adicionar progresso da consulta à tabela zookeeper. [#62152](https://github.com/ClickHouse/ClickHouse/pull/62152) ([JackyWoo](https://github.com/JackyWoo)).
* Adicionada a capacidade de ativar o coletor de traces (Real e CPU) no servidor inteiro. [#62189](https://github.com/ClickHouse/ClickHouse/pull/62189) ([alesapin](https://github.com/alesapin)).
* Adicionada a configuração `lightweight_deletes_sync` (valor padrão: 2 - aguarda todas as réplicas de forma síncrona). Ela é semelhante à configuração `mutations_sync`, mas afeta apenas o comportamento das exclusões leves. [#62195](https://github.com/ClickHouse/ClickHouse/pull/62195) ([Anton Popov](https://github.com/CurtizJ)).
* Diferencia booleanos de inteiros ao analisar valores para configurações personalizadas: `SET custom_a = true; SET custom_b = 1;`. [#62206](https://github.com/ClickHouse/ClickHouse/pull/62206) ([Vitaly Baranov](https://github.com/vitlibar)).
* Adiciona suporte ao acesso ao S3 por meio de endpoints de interface do AWS Private Link. Fecha [#60021](https://github.com/ClickHouse/ClickHouse/issues/60021), [#31074](https://github.com/ClickHouse/ClickHouse/issues/31074) e [#53761](https://github.com/ClickHouse/ClickHouse/issues/53761). [#62208](https://github.com/ClickHouse/ClickHouse/pull/62208) ([Arthur Passos](https://github.com/arthurpassos)).
* Não crie um diretório para UDF no clickhouse-client se ele não existir. Isso resolve [#59597](https://github.com/ClickHouse/ClickHouse/issues/59597). [#62366](https://github.com/ClickHouse/ClickHouse/pull/62366) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O cache de consultas agora não armazena mais os resultados de consultas em tabelas de sistema (`system.*`, `information_schema.*`, `INFORMATION_SCHEMA.*`). [#62376](https://github.com/ClickHouse/ClickHouse/pull/62376) ([Robert Schulze](https://github.com/rschu1ze)).
* A consulta `MOVE PARTITION TO TABLE` pode ser atrasada ou lançar a exceção `TOO_MANY_PARTS` para evitar exceder os limites para a contagem de partes. Aplicam-se as mesmas configurações e limites da consulta `INSERT` (consulte as configurações `max_parts_in_total`, `parts_to_delay_insert`, `parts_to_throw_insert`, `inactive_parts_to_throw_insert`, `inactive_parts_to_delay_insert`, `max_avg_part_size_for_too_many_parts`, `min_delay_to_insert_ms` e `max_delay_to_insert`). [#62420](https://github.com/ClickHouse/ClickHouse/pull/62420) ([Sergei Trifonov](https://github.com/serxa)).
* O diretório de instalação padrão no macOS foi alterado de `/usr/bin` para `/usr/local/bin`. Isso é necessário porque a Proteção de Integridade do Sistema da Apple, introduzida com o macOS El Capitan (2015), impede a gravação em `/usr/bin`, mesmo com `sudo`. [#62489](https://github.com/ClickHouse/ClickHouse/pull/62489) ([haohang](https://github.com/yokofly)).
* Faz com que `transform` sempre retorne a primeira correspondência. [#62518](https://github.com/ClickHouse/ClickHouse/pull/62518) ([Raúl Marín](https://github.com/Algunenano)).
* Adicionada a coluna `hostname` que faltava na tabela de sistema `blob_storage_log`. [#62456](https://github.com/ClickHouse/ClickHouse/pull/62456) ([Jayme Bird](https://github.com/jaymebrd)).
* Para manter a consistência com outras tabelas do sistema, `system.backup_log` agora tem uma coluna `event_time`. [#62541](https://github.com/ClickHouse/ClickHouse/pull/62541) ([Jayme Bird](https://github.com/jaymebrd)).
* A tabela `system.backup_log` agora usa a chave de ordenação "padrão", `event_date, event_time`, a mesma dos demais motores de tabela `_log`. [#62667](https://github.com/ClickHouse/ClickHouse/pull/62667) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Evita a avaliação de expressões DEFAULT de tabelas durante a execução de `RESTORE`. [#62601](https://github.com/ClickHouse/ClickHouse/pull/62601) ([Vitaly Baranov](https://github.com/vitlibar)).
* O armazenamento S3 e os backups também precisam das mesmas configurações padrão de keep alive usadas no disco S3. [#62648](https://github.com/ClickHouse/ClickHouse/pull/62648) ([Sema Checherinda](https://github.com/CheSema)).
* Adiciona o identificador do cliente do librdkafka (aquela infame biblioteca em C, que tem muitos bugs) às mensagens de log para permitir diferenciar as mensagens de log de diferentes consumidores de uma única tabela. [#62813](https://github.com/ClickHouse/ClickHouse/pull/62813) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Permitir macros especiais `{uuid}` e `{database}` em um caminho do ZooKeeper para um banco de dados Replicated. [#62818](https://github.com/ClickHouse/ClickHouse/pull/62818) ([Vitaly Baranov](https://github.com/vitlibar)).
* Permitir que a chave de quota use um esquema de autenticação diferente em requisições HTTP. [#62842](https://github.com/ClickHouse/ClickHouse/pull/62842) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Reduza a verbosidade da saída do argumento de linha de comando `--help` no `clickhouse client` e no `clickhouse local`. A saída anterior agora é gerada por `--help --verbose`. [#62973](https://github.com/ClickHouse/ClickHouse/pull/62973) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* `log_bin_use_v1_row_events` foi removido no MySQL 8.3, e ajustamos o mecanismo experimental `MaterializedMySQL` para essa mudança [#60479](https://github.com/ClickHouse/ClickHouse/issues/60479). [#63101](https://github.com/ClickHouse/ClickHouse/pull/63101) ([Eugene Klimov](https://github.com/Slach)). Autor: Nikolay Yankin.

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

* As dependências do Rust foram incorporadas, para que o código em Rust (que usamos para recursos menores por hype e zoeira) possa ser compilado de maneira organizada, de forma semelhante ao C++. [#62297](https://github.com/ClickHouse/ClickHouse/pull/62297) ([Raúl Marín](https://github.com/Algunenano)).
* O ClickHouse agora usa OpenSSL 3.2 em vez de BoringSSL. [#59870](https://github.com/ClickHouse/ClickHouse/pull/59870) ([Robert Schulze](https://github.com/rschu1ze)). Observe que, em geral, o OpenSSL tem uma cultura de engenharia inferior (como um número não nulo de relatórios de sanitizer, que tivemos de corrigir, um sistema de build complexo com arquivos gerados etc.), mas oferece melhor compatibilidade.
* Ignorar consultas DROP em testes de estresse com probabilidade de 1/2; usar TRUNCATE em vez de ignorar DROP na verificação de upgrade para tabelas Memory/JOIN. [#61476](https://github.com/ClickHouse/ClickHouse/pull/61476) ([Kruglov Pavel](https://github.com/Avogar)).
* Remova, da imagem Docker do Keeper, os volumes em /etc/clickhouse-keeper e /var/log/clickhouse-keeper. [#61683](https://github.com/ClickHouse/ClickHouse/pull/61683) ([Tristan](https://github.com/Tristan971)).
* Adiciona testes para todos os problemas que deixaram de ser relevantes com o analyzer habilitado por padrão. Closes: [#55794](https://github.com/ClickHouse/ClickHouse/issues/55794) Closes: [#49472](https://github.com/ClickHouse/ClickHouse/issues/49472) Closes: [#44414](https://github.com/ClickHouse/ClickHouse/issues/44414) Closes: [#13843](https://github.com/ClickHouse/ClickHouse/issues/13843) Closes: [#55803](https://github.com/ClickHouse/ClickHouse/issues/55803) Closes: [#48308](https://github.com/ClickHouse/ClickHouse/issues/48308) Closes: [#45535](https://github.com/ClickHouse/ClickHouse/issues/45535) Closes: [#44365](https://github.com/ClickHouse/ClickHouse/issues/44365) Closes: [#44153](https://github.com/ClickHouse/ClickHouse/issues/44153) Closes: [#42399](https://github.com/ClickHouse/ClickHouse/issues/42399) Closes: [#27115](https://github.com/ClickHouse/ClickHouse/issues/27115) Closes: [#23162](https://github.com/ClickHouse/ClickHouse/issues/23162) Closes: [#15395](https://github.com/ClickHouse/ClickHouse/issues/15395) Closes: [#15411](https://github.com/ClickHouse/ClickHouse/issues/15411) Closes: [#14978](https://github.com/ClickHouse/ClickHouse/issues/14978) Closes: [#17319](https://github.com/ClickHouse/ClickHouse/issues/17319) Closes: [#11813](https://github.com/ClickHouse/ClickHouse/issues/11813) Closes: [#13210](https://github.com/ClickHouse/ClickHouse/issues/13210) Closes: [#23053](https://github.com/ClickHouse/ClickHouse/issues/23053) Closes: [#37729](https://github.com/ClickHouse/ClickHouse/issues/37729) Closes: [#32639](https://github.com/ClickHouse/ClickHouse/issues/32639) Closes: [#9954](https://github.com/ClickHouse/ClickHouse/issues/9954) Closes: [#41964](https://github.com/ClickHouse/ClickHouse/issues/41964) Closes: [#54317](https://github.com/ClickHouse/ClickHouse/issues/54317) Closes: [#7520](https://github.com/ClickHouse/ClickHouse/issues/7520) Closes: [#36973](https://github.com/ClickHouse/ClickHouse/issues/36973) Closes: [#40955](https://github.com/ClickHouse/ClickHouse/issues/40955) Closes: [#19687](https://github.com/ClickHouse/ClickHouse/issues/19687) Closes: [#23104](https://github.com/ClickHouse/ClickHouse/issues/23104) Closes: [#21584](https://github.com/ClickHouse/ClickHouse/issues/21584) Closes: [#23344](https://github.com/ClickHouse/ClickHouse/issues/23344) Closes: [#22627](https://github.com/ClickHouse/ClickHouse/issues/22627) Closes: [#10276](https://github.com/ClickHouse/ClickHouse/issues/10276) Closes: [#19687](https://github.com/ClickHouse/ClickHouse/issues/19687) Closes: [#4567](https://github.com/ClickHouse/ClickHouse/issues/4567) Closes: [#17710](https://github.com/ClickHouse/ClickHouse/issues/17710) Closes: [#11068](https://github.com/ClickHouse/ClickHouse/issues/11068) Closes: [#24395](https://github.com/ClickHouse/ClickHouse/issues/24395) Closes: [#23416](https://github.com/ClickHouse/ClickHouse/issues/23416) Closes: [#23162](https://github.com/ClickHouse/ClickHouse/issues/23162) Closes: [#25655](https://github.com/ClickHouse/ClickHouse/issues/25655) Closes: [#11757](https://github.com/ClickHouse/ClickHouse/issues/11757) Closes: [#6571](https://github.com/ClickHouse/ClickHouse/issues/6571) Closes: [#4432](https://github.com/ClickHouse/ClickHouse/issues/4432) Closes: [#8259](https://github.com/ClickHouse/ClickHouse/issues/8259) Closes: [#9233](https://github.com/ClickHouse/ClickHouse/issues/9233) Closes: [#14699](https://github.com/ClickHouse/ClickHouse/issues/14699) Closes: [#27068](https://github.com/ClickHouse/ClickHouse/issues/27068) Closes: [#28687](https://github.com/ClickHouse/ClickHouse/issues/28687) Closes: [#28777](https://github.com/ClickHouse/ClickHouse/issues/28777) Closes: [#29734](https://github.com/ClickHouse/ClickHouse/issues/29734) Closes: [#61238](https://github.com/ClickHouse/ClickHouse/issues/61238) Closes: [#33825](https://github.com/ClickHouse/ClickHouse/issues/33825) Closes: [#35608](https://github.com/ClickHouse/ClickHouse/issues/35608) Closes: [#29838](https://github.com/ClickHouse/ClickHouse/issues/29838) Closes: [#35652](https://github.com/ClickHouse/ClickHouse/issues/35652) Closes: [#36189](https://github.com/ClickHouse/ClickHouse/issues/36189) Closes: [#39634](https://github.com/ClickHouse/ClickHouse/issues/39634) Closes: [#47432](https://github.com/ClickHouse/ClickHouse/issues/47432) Closes: [#54910](https://github.com/ClickHouse/ClickHouse/issues/54910) Closes: [#57321](https://github.com/ClickHouse/ClickHouse/issues/57321) Closes: [#59154](https://github.com/ClickHouse/ClickHouse/issues/59154) Closes: [#61014](https://github.com/ClickHouse/ClickHouse/issues/61014) Closes: [#61950](https://github.com/ClickHouse/ClickHouse/issues/61950) Closes: [#55647](https://github.com/ClickHouse/ClickHouse/issues/55647) Closes: [#61947](https://github.com/ClickHouse/ClickHouse/issues/61947). [#62185](https://github.com/ClickHouse/ClickHouse/pull/62185) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Adiciona mais testes de issues que deixaram de ser relevantes ou foram corrigidas pelo analyzer. Fecha: [#58985](https://github.com/ClickHouse/ClickHouse/issues/58985) Fecha: [#59549](https://github.com/ClickHouse/ClickHouse/issues/59549) Fecha: [#36963](https://github.com/ClickHouse/ClickHouse/issues/36963) Fecha: [#39453](https://github.com/ClickHouse/ClickHouse/issues/39453) Fecha: [#56521](https://github.com/ClickHouse/ClickHouse/issues/56521) Fecha: [#47552](https://github.com/ClickHouse/ClickHouse/issues/47552) Fecha: [#56503](https://github.com/ClickHouse/ClickHouse/issues/56503) Fecha: [#59101](https://github.com/ClickHouse/ClickHouse/issues/59101) Fecha: [#50271](https://github.com/ClickHouse/ClickHouse/issues/50271) Fecha: [#54954](https://github.com/ClickHouse/ClickHouse/issues/54954) Fecha: [#56466](https://github.com/ClickHouse/ClickHouse/issues/56466) Fecha: [#11000](https://github.com/ClickHouse/ClickHouse/issues/11000) Fecha: [#10894](https://github.com/ClickHouse/ClickHouse/issues/10894) Fecha: [https://github.com/ClickHouse/ClickHouse/issues/448](https://github.com/ClickHouse/ClickHouse/issues/448) Fecha: [#8030](https://github.com/ClickHouse/ClickHouse/issues/8030) Fecha: [#32139](https://github.com/ClickHouse/ClickHouse/issues/32139) Fecha: [#47288](https://github.com/ClickHouse/ClickHouse/issues/47288) Fecha: [#50705](https://github.com/ClickHouse/ClickHouse/issues/50705) Fecha: [#54511](https://github.com/ClickHouse/ClickHouse/issues/54511) Fecha: [#55466](https://github.com/ClickHouse/ClickHouse/issues/55466) Fecha: [#58500](https://github.com/ClickHouse/ClickHouse/issues/58500) Fecha: [#39923](https://github.com/ClickHouse/ClickHouse/issues/39923) Fecha: [#39855](https://github.com/ClickHouse/ClickHouse/issues/39855) Fecha: [#4596](https://github.com/ClickHouse/ClickHouse/issues/4596) Fecha: [#47422](https://github.com/ClickHouse/ClickHouse/issues/47422) Fecha: [#33000](https://github.com/ClickHouse/ClickHouse/issues/33000) Fecha: [#14739](https://github.com/ClickHouse/ClickHouse/issues/14739) Fecha: [#44039](https://github.com/ClickHouse/ClickHouse/issues/44039) Fecha: [#8547](https://github.com/ClickHouse/ClickHouse/issues/8547) Fecha: [#22923](https://github.com/ClickHouse/ClickHouse/issues/22923) Fecha: [#23865](https://github.com/ClickHouse/ClickHouse/issues/23865) Fecha: [#29748](https://github.com/ClickHouse/ClickHouse/issues/29748) Fecha: [#4222](https://github.com/ClickHouse/ClickHouse/issues/4222). [#62457](https://github.com/ClickHouse/ClickHouse/pull/62457) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correção de erros de compilação quando o OpenSSL é vinculado dinamicamente (observação: isso geralmente não tem suporte e é necessário apenas para as plataformas s390x da IBM). [#62888](https://github.com/ClickHouse/ClickHouse/pull/62888) ([Harry Lee](https://github.com/HarryLeeIBM)).

<div id="bug-fix-user-visible-misbehavior-in-an-official-stable-release-6">
  #### correção de bug (comportamento incorreto perceptível ao usuário em uma versão estável oficial)
</div>

* Corrigido erro lógico ao reverter a transação de insert com quorum. [#61953](https://github.com/ClickHouse/ClickHouse/pull/61953) ([Han Fei](https://github.com/hanfei1991)).
* Corrigido erro do parser ao usar COUNT(\*) com a cláusula FILTER [#61357](https://github.com/ClickHouse/ClickHouse/pull/61357) ([Duc Canh Le](https://github.com/canhld94)).
* Corrigido erro lógico em `group_by_use_nulls` + grouping sets + analyzer + materialize/constant [#61567](https://github.com/ClickHouse/ClickHouse/pull/61567) ([Kruglov Pavel](https://github.com/Avogar)).
* Cancelar merges antes de remover partes movidas [#61610](https://github.com/ClickHouse/ClickHouse/pull/61610) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige erro de abort no Apache Arrow [#61720](https://github.com/ClickHouse/ClickHouse/pull/61720) ([Kruglov Pavel](https://github.com/Avogar)).
* Buscar a flag `convert_to_replicated` no caminho correto correspondente ao disco específico [#61769](https://github.com/ClickHouse/ClickHouse/pull/61769) ([Kirill](https://github.com/kirillgarbar)).
* Corrige uma possível condição de corrida nas conexões para distributed\_foreground\_insert/distributed\_background\_insert\_batch [#61867](https://github.com/ClickHouse/ClickHouse/pull/61867) ([Azat Khuzhin](https://github.com/azat)).
* Marcar o erro CANNOT\_PARSE\_ESCAPE\_SEQUENCE como erro de parsing para que seja possível ignorá-lo em formatos de entrada por linha [#61883](https://github.com/ClickHouse/ClickHouse/pull/61883) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrigida a escrita da mensagem de exceção no formato de saída via HTTP quando http\_wait\_end\_of\_query é usado [#61951](https://github.com/ClickHouse/ClickHouse/pull/61951) ([Kruglov Pavel](https://github.com/Avogar)).
* Correção apropriada do LowCardinality em conjunto com as funções JSONExtact [#61957](https://github.com/ClickHouse/ClickHouse/pull/61957) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Falha no Engine Merge se a Row Policy não tiver uma expressão [#61971](https://github.com/ClickHouse/ClickHouse/pull/61971) ([Ilya Golshtein](https://github.com/ilejn)).
* Corrigida exceção não tratada no destrutor do WriteBufferAzureBlobStorage [#61988](https://github.com/ClickHouse/ClickHouse/pull/61988) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Corrigido o CREATE TABLE sem definição de colunas para ReplicatedMergeTree [#62040](https://github.com/ClickHouse/ClickHouse/pull/62040) ([Azat Khuzhin](https://github.com/azat)).
* Correção do optimize\_skip\_unused\_shards\_rewrite\_in para chave de sharding composta [#62047](https://github.com/ClickHouse/ClickHouse/pull/62047) ([Azat Khuzhin](https://github.com/azat)).
* ReadWriteBufferFromHTTP define o cabeçalho Host correto ao ser redirecionado [#62068](https://github.com/ClickHouse/ClickHouse/pull/62068) ([Sema Checherinda](https://github.com/CheSema)).
* Correção de erro em que a tabela externa não conseguia interpretar o tipo de dado Bool [#62115](https://github.com/ClickHouse/ClickHouse/pull/62115) ([Duc Canh Le](https://github.com/canhld94)).
* Analisador: corrige a resolução de parâmetros de consulta [#62186](https://github.com/ClickHouse/ClickHouse/pull/62186) ([Dmitry Novik](https://github.com/novikd)).
* Corrigida a restauração de partes em modo somente leitura [#62207](https://github.com/ClickHouse/ClickHouse/pull/62207) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrigido travamento na definição de índice contendo SQL UDF [#62225](https://github.com/ClickHouse/ClickHouse/pull/62225) ([vdimir](https://github.com/vdimir)).
* Correção da semente aleatória NULL no generateRandom com o analisador. [#62248](https://github.com/ClickHouse/ClickHouse/pull/62248) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Lidar corretamente com colunas const em Distinct Transfom [#62250](https://github.com/ClickHouse/ClickHouse/pull/62250) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigido o Parts Splitter em consultas com o modificador FINAL [#62268](https://github.com/ClickHouse/ClickHouse/pull/62268) ([Nikita Taranov](https://github.com/nickitat)).
* Analisador: corrige a resolução de alias para view parametrizada [#62274](https://github.com/ClickHouse/ClickHouse/pull/62274) ([Dmitry Novik](https://github.com/novikd)).
* Analisador: corrige a resolução de nomes em escopos pai [#62281](https://github.com/ClickHouse/ClickHouse/pull/62281) ([Dmitry Novik](https://github.com/novikd)).
* Corrige o argMax com coluna numérica não nativa Nullable [#62285](https://github.com/ClickHouse/ClickHouse/pull/62285) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige o BACKUP e o RESTORE de uma visão materializada no banco de dados Ordinary [#62295](https://github.com/ClickHouse/ClickHouse/pull/62295) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige condição de corrida em escalares no Context [#62305](https://github.com/ClickHouse/ClickHouse/pull/62305) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrigida a chave primária em visão materializada [#62319](https://github.com/ClickHouse/ClickHouse/pull/62319) ([Murat Khairulin](https://github.com/mxwell)).
* Não criar pipeline multithread de `insert` para tabelas sem suporte [#62333](https://github.com/ClickHouse/ClickHouse/pull/62333) ([vdimir](https://github.com/vdimir)).
* Corrigido o analisador com argumentos posicionais em consulta distribuída [#62362](https://github.com/ClickHouse/ClickHouse/pull/62362) ([flynn](https://github.com/ucasfl)).
* Corrige o pushdown de filtro de additional\_table\_filters no engine Merge no analyzer [#62398](https://github.com/ClickHouse/ClickHouse/pull/62398) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrigidas consultas de tabela com `GLOBAL IN` no analisador. [#62409](https://github.com/ClickHouse/ClickHouse/pull/62409) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Respeitar as configurações truncate\_on\_insert/create\_new\_file\_on\_insert nos motores s3/hdfs/azure durante a escrita particionada [#62425](https://github.com/ClickHouse/ClickHouse/pull/62425) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige o caminho de restauração de backup para o AzureBlobStorage [#62447](https://github.com/ClickHouse/ClickHouse/pull/62447) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Corrigido o SimpleSquashingChunksTransform [#62451](https://github.com/ClickHouse/ClickHouse/pull/62451) ([Nikita Taranov](https://github.com/nickitat)).
* Corrigida a captura em lambda aninhada. [#62462](https://github.com/ClickHouse/ClickHouse/pull/62462) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Evita travamento ao ler protobuf com tipos recursivos [#62506](https://github.com/ClickHouse/ClickHouse/pull/62506) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige um bug ao mover uma partição para ela mesma [#62524](https://github.com/ClickHouse/ClickHouse/pull/62524) ([helifu](https://github.com/helifu)).
* Correção de subconsulta escalar em LIMIT [#62567](https://github.com/ClickHouse/ClickHouse/pull/62567) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige um `segfault` no engine Hive experimental e sem suporte, de que nem gostamos mesmo [#62578](https://github.com/ClickHouse/ClickHouse/pull/62578) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrigido vazamento de memória em groupArraySorted [#62597](https://github.com/ClickHouse/ClickHouse/pull/62597) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigida falha em largestTriangleThreeBuckets [#62646](https://github.com/ClickHouse/ClickHouse/pull/62646) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige `tumble[Start,End]` e `hop[Start,End]` em resoluções maiores [#62705](https://github.com/ClickHouse/ClickHouse/pull/62705) ([Jordi Villar](https://github.com/jrdi)).
* Corrige o estado do combinador argMin/argMax [#62708](https://github.com/ClickHouse/ClickHouse/pull/62708) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige a falha de dados temporários no cache causada pela otimização da contenção de bloqueio do cache [#62715](https://github.com/ClickHouse/ClickHouse/pull/62715) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigida falha na função `mergeTreeIndex` [#62762](https://github.com/ClickHouse/ClickHouse/pull/62762) ([Anton Popov](https://github.com/CurtizJ)).
* correção: atualização: colunas materializadas aninhadas: correções na verificação de tamanho [#62773](https://github.com/ClickHouse/ClickHouse/pull/62773) ([Eliot Hautefeuille](https://github.com/hileef)).
* Correção do problema em que o modificador FINAL não é respeitado em CTE com o analisador [#62811](https://github.com/ClickHouse/ClickHouse/pull/62811) ([Duc Canh Le](https://github.com/canhld94)).
* Corrige travamento na função `formatRow` com o formato `JSON` e a interface HTTP [#62840](https://github.com/ClickHouse/ClickHouse/pull/62840) ([Anton Popov](https://github.com/CurtizJ)).
* Azure: corrigida a geração da URL final a partir do objeto endpoint [#62850](https://github.com/ClickHouse/ClickHouse/pull/62850) ([Daniel Pozo Escalona](https://github.com/danipozo)).
* Corrigido o codec GCD [#62853](https://github.com/ClickHouse/ClickHouse/pull/62853) ([Nikita Taranov](https://github.com/nickitat)).
* Corrigida a chave LowCardinality(Nullable) em hiperretângulo [#62866](https://github.com/ClickHouse/ClickHouse/pull/62866) ([Amos Bird](https://github.com/amosbird)).
* Corrigido o `fromUnixtimestamp` na sintaxe Joda quando o valor de entrada ultrapassa `UInt32` [#62901](https://github.com/ClickHouse/ClickHouse/pull/62901) ([KevinyhZou](https://github.com/KevinyhZou)).
* Desativa optimize\_rewrite\_aggregate\_function\_with\_if para sum(nullable) [#62912](https://github.com/ClickHouse/ClickHouse/pull/62912) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige o PREWHERE no StorageBuffer quando a tabela de origem tem tipos de coluna diferentes. [#62916](https://github.com/ClickHouse/ClickHouse/pull/62916) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige dados temporários no cache quando a falha na criação do diretório da chave de cache é processada incorretamente [#62925](https://github.com/ClickHouse/ClickHouse/pull/62925) ([Kseniia Sumarokova](https://github.com/kssenii)).
* gRPC: corrige falha em conexão IPv6 entre pares [#62978](https://github.com/ClickHouse/ClickHouse/pull/62978) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige possíveis CHECKSUM\_DOESNT\_MATCH (e outros) durante fetches de réplicas [#62987](https://github.com/ClickHouse/ClickHouse/pull/62987) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido o encerramento causado por exceção não tratada em dados temporários no cache [#62998](https://github.com/ClickHouse/ClickHouse/pull/62998) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correção do cast implícito em optimize\_rewrite\_aggregate\_function\_with\_if [#62999](https://github.com/ClickHouse/ClickHouse/pull/62999) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigida exceção não tratada no \~RestorerFromBackup [#63040](https://github.com/ClickHouse/ClickHouse/pull/63040) ([Vitaly Baranov](https://github.com/vitlibar)).
* Não remova constantes do servidor da chave do GROUP BY na consulta secundária. [#63047](https://github.com/ClickHouse/ClickHouse/pull/63047) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correção da avaliação incorreta da monotonicidade da função abs [#63097](https://github.com/ClickHouse/ClickHouse/pull/63097) ([Duc Canh Le](https://github.com/canhld94)).
* Definir o nome do servidor para o handshake SSL no mecanismo MongoDB [#63122](https://github.com/ClickHouse/ClickHouse/pull/63122) ([Alexander Gololobov](https://github.com/davenger)).
* Use o banco de dados especificado pelo usuário em vez de "config" para verificar a versão do protocolo wire do MongoDB [#63126](https://github.com/ClickHouse/ClickHouse/pull/63126) ([Alexander Gololobov](https://github.com/davenger)).

### <a id="243" /> Lançamento do ClickHouse 24.3 LTS, 2024-03-27. [Apresentação](https://presentations.clickhouse.com/2024-release-24.3/), [Vídeo](https://www.youtube.com/watch?v=FGhdXXXTuTg)

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

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

* A configuração `allow_experimental_analyzer` está habilitada por padrão e muda a análise de consultas para uma nova implementação, com melhor compatibilidade e maior cobertura de recursos. O recurso "analyzer" agora é considerado beta, em vez de experimental. Você pode restaurar o comportamento antigo definindo `compatibility` como `24.2` ou desabilitando a configuração `allow_experimental_analyzer`. Assista ao [vídeo no YouTube](https://www.youtube.com/watch?v=zhrOYQpgvkk).
* O ClickHouse permite dados binários arbitrários no tipo de dado String, que normalmente é UTF-8. Strings em Parquet/ORC/Arrow aceitam apenas UTF-8. Por isso, você pode escolher qual tipo de dado do Arrow usar para o tipo de dado String do ClickHouse: String ou Binary. Isso é controlado pelas configurações `output_format_parquet_string_as_string`, `output_format_orc_string_as_string`, `output_format_arrow_string_as_string`. Embora Binary seja mais correto e compatível, usar String por padrão atende às expectativas dos usuários na maioria dos casos. Parquet/ORC/Arrow oferece suporte a muitos métodos de compressão, incluindo lz4 e zstd. O ClickHouse oferece suporte a todos os métodos de compressão. Algumas ferramentas menos robustas não oferecem suporte ao método de compressão `lz4`, que é mais rápido; por isso, definimos `zstd` como padrão. Isso é controlado pelas configurações `output_format_parquet_compression_method`, `output_format_orc_compression_method` e `output_format_arrow_compression_method`. Alteramos o padrão para `zstd` em Parquet e ORC, mas não em Arrow (que é mais voltado a usos de baixo nível). [#61817](https://github.com/ClickHouse/ClickHouse/pull/61817) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Na nova versão do ClickHouse, as funções `geoDistance`, `greatCircleDistance` e `greatCircleAngle` usarão o tipo de dados de ponto flutuante de dupla precisão de 64 bits para cálculos internos e como tipo de retorno se todos os argumentos forem Float64. Isso corrige [#58476](https://github.com/ClickHouse/ClickHouse/issues/58476). Em versões anteriores, a função sempre usava Float32. Você pode voltar ao comportamento antigo definindo `geo_distance_returns_float64_on_float64_arguments` como `false` ou `compatibility` como `24.2` ou anterior. [#61848](https://github.com/ClickHouse/ClickHouse/pull/61848) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Em coautoria com [Geet Patel](https://github.com/geetptl).
* As partes de dados em memória obsoletas foram descontinuadas desde a versão 23.5 e não são mais compatíveis desde a versão 23.10. Agora, o código restante foi removido. Continuação de [#55186](https://github.com/ClickHouse/ClickHouse/issues/55186) e [#45409](https://github.com/ClickHouse/ClickHouse/issues/45409). É improvável que você tenha usado partes de dados em memória, porque elas estavam disponíveis apenas antes da versão 23.5 e somente quando eram habilitadas manualmente por meio da especificação dos `SETTINGS` correspondentes para uma tabela MergeTree. Para verificar se você tem partes de dados em memória, execute a seguinte consulta: `SELECT part_type, count() FROM system.parts GROUP BY part_type ORDER BY part_type`. Para desabilitar o uso de partes de dados em memória, execute `ALTER TABLE ... MODIFY SETTING min_bytes_for_compact_part = DEFAULT, min_rows_for_compact_part = DEFAULT`. Antes de atualizar a partir de versões antigas do ClickHouse, primeiro verifique se você não tem partes de dados em memória. Se houver partes de dados em memória, primeiro desabilite-as, depois aguarde até que não haja mais partes de dados em memória e prossiga com a atualização. [#61127](https://github.com/ClickHouse/ClickHouse/pull/61127) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Alterado o nome da coluna de `duration_ms` para `duration_microseconds` na tabela `system.zookeeper` para refletir o fato de que a duração está em microssegundos. [#60774](https://github.com/ClickHouse/ClickHouse/pull/60774) ([Duc Canh Le](https://github.com/canhld94)).
* Rejeitar consultas INSERT recebidas quando as configurações no nível da consulta `async_insert` e `deduplicate_blocks_in_dependent_materialized_views` estiverem ativadas ao mesmo tempo. Esse comportamento é controlado pela configuração `throw_if_deduplication_in_dependent_materialized_views_enabled_with_async_insert` e é ativado por padrão. Esta é uma continuação de [https://github.com/ClickHouse/ClickHouse/pull/59699](https://github.com/ClickHouse/ClickHouse/pull/59699) necessária para desbloquear [https://github.com/ClickHouse/ClickHouse/pull/59915](https://github.com/ClickHouse/ClickHouse/pull/59915). [#60888](https://github.com/ClickHouse/ClickHouse/pull/60888) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* O utilitário `clickhouse-copier` foi movido para um repositório separado no GitHub: [https://github.com/ClickHouse/copier](https://github.com/ClickHouse/copier). Ele não faz mais parte do pacote, mas ainda está disponível para download separadamente. Isso fecha: [#60734](https://github.com/ClickHouse/ClickHouse/issues/60734) Isso fecha: [#60540](https://github.com/ClickHouse/ClickHouse/issues/60540) Isso fecha: [#60250](https://github.com/ClickHouse/ClickHouse/issues/60250) Isso fecha: [#52917](https://github.com/ClickHouse/ClickHouse/issues/52917) Isso fecha: [#51140](https://github.com/ClickHouse/ClickHouse/issues/51140) Isso fecha: [#47517](https://github.com/ClickHouse/ClickHouse/issues/47517) Isso fecha: [#47189](https://github.com/ClickHouse/ClickHouse/issues/47189) Isso fecha: [#46598](https://github.com/ClickHouse/ClickHouse/issues/46598) Isso fecha: [#40257](https://github.com/ClickHouse/ClickHouse/issues/40257) Isso fecha: [#36504](https://github.com/ClickHouse/ClickHouse/issues/36504) Isso fecha: [#35485](https://github.com/ClickHouse/ClickHouse/issues/35485) Isso fecha: [#33702](https://github.com/ClickHouse/ClickHouse/issues/33702) Isso fecha: [#26702](https://github.com/ClickHouse/ClickHouse/issues/26702).
* Para aumentar a compatibilidade com o MySQL, o alias de compatibilidade `locate` agora aceita, por padrão, os argumentos `(needle, haystack[, start_pos])`. O comportamento anterior `(haystack, needle, [, start_pos])` pode ser restaurado ao definir `function_locate_has_mysql_compatible_argument_order = 0`. [#61092](https://github.com/ClickHouse/ClickHouse/pull/61092) ([Robert Schulze](https://github.com/rschu1ze)).
* Proibir `SimpleAggregateFunction` no `ORDER BY` de tabelas `MergeTree` (assim como `AggregateFunction`, elas são proibidas por não serem comparáveis) por padrão (use `allow_suspicious_primary_key` para permiti-las). [#61399](https://github.com/ClickHouse/ClickHouse/pull/61399) ([Azat Khuzhin](https://github.com/azat)).
* O engine de banco de dados `Ordinary` está obsoleto. Você receberá um aviso no clickhouse-client se o seu servidor estiver usando esse engine. Isso encerra [#52229](https://github.com/ClickHouse/ClickHouse/issues/52229). [#56942](https://github.com/ClickHouse/ClickHouse/pull/56942) ([shabroo](https://github.com/shabroo)).

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

* Suporte à leitura e gravação de backups no formato `tar` (além de `zip`). [#59535](https://github.com/ClickHouse/ClickHouse/pull/59535) ([josh-hildred](https://github.com/josh-hildred)).
* Adicionado suporte a buckets S3 Express. [#59965](https://github.com/ClickHouse/ClickHouse/pull/59965) ([Nikita Taranov](https://github.com/nickitat)).
* Permite anexar partes de um disco diferente (usando cópia em vez de link físico). [#60112](https://github.com/ClickHouse/ClickHouse/pull/60112) ([Unalian](https://github.com/Unalian)).
* Tabelas `Memory` com tamanho limitado: controladas pelas configurações `min_bytes_to_keep, max_bytes_to_keep, min_rows_to_keep` e `max_rows_to_keep`. [#60612](https://github.com/ClickHouse/ClickHouse/pull/60612) ([Jake Bamrah](https://github.com/JakeBamrah)).
* Limites separados para o número de consultas em espera e em execução. Foi adicionada a nova configuração de servidor `max_waiting_queries`, que limita o número de consultas em espera devido a `async_load_databases`. Os limites existentes para o número de consultas em execução não contam mais as consultas em espera. [#61053](https://github.com/ClickHouse/ClickHouse/pull/61053) ([Sergei Trifonov](https://github.com/serxa)).
* Foi adicionada uma tabela `system.keywords` que contém todas as palavras-chave do parser. Ela é necessária principalmente para melhorar o fuzzing e o realce de sintaxe. [#51808](https://github.com/ClickHouse/ClickHouse/pull/51808) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Adicionado suporte a `ATTACH PARTITION ALL`. [#61107](https://github.com/ClickHouse/ClickHouse/pull/61107) ([Kirill Nikiforov](https://github.com/allmazz)).
* Adicionada uma nova função, `getClientHTTPHeader`. Isso resolve [#54665](https://github.com/ClickHouse/ClickHouse/issues/54665). Em coautoria com @lingtaolf. [#61820](https://github.com/ClickHouse/ClickHouse/pull/61820) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado `generate_series` como função de tabela (alias de compatibilidade com PostgreSQL para a função `numbers` já existente). Essa função gera uma tabela com uma progressão aritmética de números naturais. [#59390](https://github.com/ClickHouse/ClickHouse/pull/59390) ([divanik](https://github.com/divanik)).
* Adicionado um modo de suporte para `topK`/`topkWeighed`, que retorna a contagem dos valores e seu erro. [#54508](https://github.com/ClickHouse/ClickHouse/pull/54508) ([UnamedRus](https://github.com/UnamedRus)).
* Adicionada a função `toMillisecond`, que retorna o componente de milissegundos para valores do tipo `DateTime` ou `DateTime64`. [#60281](https://github.com/ClickHouse/ClickHouse/pull/60281) ([Shaun Struwig](https://github.com/Blargian)).
* Permite configurar handlers de redirecionamento HTTP para o clickhouse-server. Por exemplo, você pode fazer com que `/` redirecione para a UI do Play. [#60390](https://github.com/ClickHouse/ClickHouse/pull/60390) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Função `dotProduct` otimizada para eliminar cópias de memória desnecessárias e custosas. [#60928](https://github.com/ClickHouse/ClickHouse/pull/60928) ([Robert Schulze](https://github.com/rschu1ze)).
* Impressão 30x mais rápida de inteiros de 256 bits. [#61100](https://github.com/ClickHouse/ClickHouse/pull/61100) ([Raúl Marín](https://github.com/Algunenano)).
* Se a chave primária da tabela contiver colunas em sua maioria inúteis, não as mantenha na memória. Isso é controlado por uma nova configuração `primary_key_ratio_of_unique_prefix_values_to_skip_suffix_columns`, com o valor `0.9` por padrão, o que significa: para uma chave primária composta, se uma coluna mudar de valor em pelo menos 90% das vezes, as colunas seguintes não serão carregadas. [#60255](https://github.com/ClickHouse/ClickHouse/pull/60255) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Melhora o desempenho de métodos de agregação serializados ao envolver várias colunas `Nullable`. [#55809](https://github.com/ClickHouse/ClickHouse/pull/55809) ([Amos Bird](https://github.com/amosbird)).
* Passa a gerar a saída JSON sob demanda para melhorar o desempenho do ALL JOIN. [#58278](https://github.com/ClickHouse/ClickHouse/pull/58278) ([LiuNeng](https://github.com/liuneng1994)).
* Torna reutilizáveis, para todos os casos de uso, as conexões HTTP/HTTPS com serviços externos, como o S3 da AWS. Mesmo quando a resposta é 3xx ou 4xx. [#58845](https://github.com/ClickHouse/ClickHouse/pull/58845) ([Sema Checherinda](https://github.com/CheSema)).
* Melhorias nas funções de agregação `argMin` / `argMax` / `any` / `anyLast` / `anyHeavy`, bem como em consultas com `ORDER BY {u8/u16/u32/u64/i8/i16/u32/i64) LIMIT 1`. [#58640](https://github.com/ClickHouse/ClickHouse/pull/58640) ([Raúl Marín](https://github.com/Algunenano)).
* Otimização trivial para o filtro de coluna. O pico de memória pode ser reduzido para 44% do original em alguns casos. [#59698](https://github.com/ClickHouse/ClickHouse/pull/59698) ([李扬](https://github.com/taiyang-li)).
* Executa a função `multiIf` de forma colunar quando o tipo subjacente do resultado é numérico. [#60384](https://github.com/ClickHouse/ClickHouse/pull/60384) ([李扬](https://github.com/taiyang-li)).
* Mutexes mais rápidos (quase 2x). [#60823](https://github.com/ClickHouse/ClickHouse/pull/60823) ([Azat Khuzhin](https://github.com/azat)).
* Esvaziar várias conexões em paralelo ao finalizar uma consulta distribuída. [#60845](https://github.com/ClickHouse/ClickHouse/pull/60845) ([lizhuoyu5](https://github.com/lzydmxy)).
* Otimizada a movimentação de dados entre colunas de um número Nullable ou de uma string Nullable, o que melhora alguns microbenchmarks. [#60846](https://github.com/ClickHouse/ClickHouse/pull/60846) ([李扬](https://github.com/taiyang-li)).
* As operações com o cache do sistema de arquivos sofrerão menos com a disputa por bloqueios. [#61066](https://github.com/ClickHouse/ClickHouse/pull/61066) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Otimize o array join e outras junções, evitando uma otimização incorreta do compilador. Fecha [#61074](https://github.com/ClickHouse/ClickHouse/issues/61074).  [#61075](https://github.com/ClickHouse/ClickHouse/pull/61075) ([李扬](https://github.com/taiyang-li)).
* Se uma consulta com erro de sintaxe continha o matcher `COLUMNS` com uma expressão regular, a expressão regular era compilada a cada vez durante o backtracking do parser, em vez de ser compilada apenas uma vez. Isso era um erro fundamental. A regexp compilada era colocada na AST. Mas a letra A em AST significa "abstrata", o que quer dizer que ela não deve conter objetos pesados. Partes da AST podem ser criadas e descartadas durante o parsing, inclusive com um grande número de backtrackings. Isso causa lentidão no parsing e, consequentemente, permite DoS por um usuário com permissão somente leitura. Mas o principal problema é que isso impede o progresso dos fuzzers. [#61543](https://github.com/ClickHouse/ClickHouse/pull/61543) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionada uma nova etapa do analisador para otimizar o operador IN para um único valor. [#61564](https://github.com/ClickHouse/ClickHouse/pull/61564) ([LiuNeng](https://github.com/liuneng1994)).
* DNSResolver embaralha o conjunto de IPs resolvidos, o que é necessário para distribuir uniformemente o uso de múltiplos endpoints do S3 da AWS. [#60965](https://github.com/ClickHouse/ClickHouse/pull/60965) ([Sema Checherinda](https://github.com/CheSema)).

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

* Adiciona suporte à leitura paralela no Azure Blob Storage. Isso melhora o desempenho do armazenamento de objetos experimental no Azure. [#61503](https://github.com/ClickHouse/ClickHouse/pull/61503) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Adiciona um `WriteBuffer` assíncrono para o Azure Blob Storage, semelhante ao S3. Isso melhora o desempenho do armazenamento de objetos experimental no Azure. [#59929](https://github.com/ClickHouse/ClickHouse/pull/59929) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Usa identidade gerenciada para a E/S de backups ao usar o Azure Blob Storage. Adiciona uma configuração para impedir que o ClickHouse tente criar um contêiner inexistente, o que exige permissões no nível da conta de armazenamento. [#61785](https://github.com/ClickHouse/ClickHouse/pull/61785) ([Daniel Pozo Escalona](https://github.com/danipozo)).
* Adiciona a configuração `parallel_replicas_allow_in_with_subquery = 1`, que permite usar subconsultas com IN em réplicas paralelas. [#60950](https://github.com/ClickHouse/ClickHouse/pull/60950) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Uma alteração na replicação "zero-copy": todos os bloqueios zero-copy relacionados a uma tabela precisam ser removidos quando a tabela é removida. O diretório que contém esses bloqueios também precisa ser removido. [#57575](https://github.com/ClickHouse/ClickHouse/pull/57575) ([Sema Checherinda](https://github.com/CheSema)).

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

* Use `MergeTree` como engine de tabela padrão. [#60524](https://github.com/ClickHouse/ClickHouse/pull/60524) ([Alexey Milovidov](https://github.com/alexey-milovidov))
* Ativa `output_format_pretty_row_numbers` por padrão. Isso melhora a usabilidade. [#61791](https://github.com/ClickHouse/ClickHouse/pull/61791) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Na versão anterior, alguns números nos formatos Pretty não estavam bonitos o suficiente. [#61794](https://github.com/ClickHouse/ClickHouse/pull/61794) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Um valor longo nos formatos Pretty não será truncado se for o único valor no conjunto de resultados, como no resultado da consulta `SHOW CREATE TABLE`. [#61795](https://github.com/ClickHouse/ClickHouse/pull/61795) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Assim como `clickhouse-local`, `clickhouse-client` passa a aceitar a opção `--output-format` como sinônimo da opção `--format`. Isso fecha [#59848](https://github.com/ClickHouse/ClickHouse/issues/59848). [#61797](https://github.com/ClickHouse/ClickHouse/pull/61797) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se `stdout` for um terminal e o formato de saída não for especificado, `clickhouse-client` e ferramentas semelhantes usarão `PrettyCompact` por padrão, assim como no modo interativo. `clickhouse-client` e `clickhouse-local` tratarão os argumentos de linha de comando para os formatos de entrada e saída de forma unificada. Isso fecha [#61272](https://github.com/ClickHouse/ClickHouse/issues/61272). [#61800](https://github.com/ClickHouse/ClickHouse/pull/61800) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Agrupamento de dígitos com sublinhados nos formatos Pretty para melhor legibilidade. Isso é controlado por uma nova configuração, `output_format_pretty_highlight_digit_groups`. [#61802](https://github.com/ClickHouse/ClickHouse/pull/61802) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionada a possibilidade de sobrescrever as configurações iniciais de INSERT via `SYSTEM FLUSH DISTRIBUTED`. [#61832](https://github.com/ClickHouse/ClickHouse/pull/61832) ([Azat Khuzhin](https://github.com/azat)).
* Ativa, por padrão, o profiling dos processors (tempo gasto e bytes de entrada/saída em ordenação, agregação, ...). [#61096](https://github.com/ClickHouse/ClickHouse/pull/61096) ([Azat Khuzhin](https://github.com/azat)).
* Suporte para arquivos sem extensão de formato no banco de dados Filesystem. [#60795](https://github.com/ClickHouse/ClickHouse/pull/60795) ([Kruglov Pavel](https://github.com/Avogar)).
* Torne todos os nomes de formato insensíveis a maiúsculas e minúsculas, como Tsv, TSV, tsv ou até rowbinary. [#60420](https://github.com/ClickHouse/ClickHouse/pull/60420) ([豪肥肥](https://github.com/HowePa)). Agradeço se você continuar escrevendo-os corretamente, por exemplo, `JSON` 😇, e não `Json` 🤮, mas não nos importamos se você preferir escrevê-los do seu jeito.
* Foi adicionado o modo `none_only_active` à configuração `distributed_ddl_output_mode`. [#60340](https://github.com/ClickHouse/ClickHouse/pull/60340) ([Alexander Tokmakov](https://github.com/tavplubix)).
* O dashboard avançado tem cores um pouco melhores para gráficos com várias linhas. [#60391](https://github.com/ClickHouse/ClickHouse/pull/60391) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O dashboard Advanced agora mantém os controles sempre visíveis durante a rolagem. Isso permite adicionar um novo gráfico sem precisar rolar para cima. [#60692](https://github.com/ClickHouse/ClickHouse/pull/60692) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ao executar a consulta `MODIFY COLUMN` em visões materializadas, verifique a estrutura da tabela interna para garantir que todas as colunas existam. [#47427](https://github.com/ClickHouse/ClickHouse/pull/47427) ([sunny](https://github.com/sunny19930321)).
* Tipos String e enums podem ser usados no mesmo contexto, como em: arrays, consultas UNION e expressões condicionais. Isso encerra [#60726](https://github.com/ClickHouse/ClickHouse/issues/60726). [#60727](https://github.com/ClickHouse/ClickHouse/pull/60727) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permite declarar Enums na estrutura de dados externos para o processamento de consultas (ou seja, uma tabela temporária imediata que você pode fornecer na sua consulta). [#57857](https://github.com/ClickHouse/ClickHouse/pull/57857) ([Duc Canh Le](https://github.com/canhld94)).
* Leve em conta as linhas excluídas por exclusão leve ao selecionar as partes para mesclagem, para que o tamanho em disco da parte resultante seja estimado com mais precisão. [#58223](https://github.com/ClickHouse/ClickHouse/pull/58223) ([Zhuo Qiu](https://github.com/jewelzqiu)).
* Adicionados comentários para colunas em mais tabelas do sistema. Continuação de [https://github.com/ClickHouse/ClickHouse/pull/58356](https://github.com/ClickHouse/ClickHouse/pull/58356). [#59016](https://github.com/ClickHouse/ClickHouse/pull/59016) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Agora podemos usar colunas virtuais em `PREWHERE`. Isso é útil para colunas virtuais não constantes, como `_part_offset`. [#59033](https://github.com/ClickHouse/ClickHouse/pull/59033) ([Amos Bird](https://github.com/amosbird)). Melhorou a usabilidade geral das colunas virtuais. Agora é permitido usar colunas virtuais em `PREWHERE` (isso é útil para colunas virtuais não constantes, como `_part_offset`). Agora há documentação interna disponível para colunas virtuais como comentário da coluna na consulta `DESCRIBE`, com a configuração `describe_include_virtual_columns` habilitada. [#60205](https://github.com/ClickHouse/ClickHouse/pull/60205) ([Anton Popov](https://github.com/CurtizJ)).
* Em vez de usar uma chave constante, o armazenamento de objetos agora gera uma chave para determinar a permissão de remover objetos. [#59495](https://github.com/ClickHouse/ClickHouse/pull/59495) ([Sema Checherinda](https://github.com/CheSema)).
* Permitir "local" como tipo de armazenamento de objetos, em vez de "local\_blob\_storage". [#60165](https://github.com/ClickHouse/ClickHouse/pull/60165) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Flush paralelo dos blocos de INSERT pendentes do mecanismo Distributed em `DETACH`/desligamento do servidor e `SYSTEM FLUSH DISTRIBUTED` (o paralelismo só funcionará se você tiver uma política de múltiplos discos para uma tabela, como tudo no mecanismo Distributed atualmente). [#60225](https://github.com/ClickHouse/ClickHouse/pull/60225) ([Azat Khuzhin](https://github.com/azat)).
* Adiciona uma configuração para forçar o uso de cache read-through em operações de merge. [#60308](https://github.com/ClickHouse/ClickHouse/pull/60308) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Uma melhoria para o protocolo de compatibilidade com MySQL. A issue [#57598](https://github.com/ClickHouse/ClickHouse/issues/57598) menciona um comportamento diferente em relação ao gerenciamento de transações. A execução de COMMIT/ROLLBACK quando nenhuma transação está ativa é reportada como erro, ao contrário do comportamento do MySQL. [#60338](https://github.com/ClickHouse/ClickHouse/pull/60338) ([PapaToemmsn](https://github.com/PapaToemmsn)).
* A função `substring` agora tem o alias `byteSlice`. [#60494](https://github.com/ClickHouse/ClickHouse/pull/60494) ([Robert Schulze](https://github.com/rschu1ze)).
* O nome da configuração do servidor `dns_cache_max_size` foi alterado para `dns_cache_max_entries` para reduzir a ambiguidade. [#60500](https://github.com/ClickHouse/ClickHouse/pull/60500) ([Kirill Nikiforov](https://github.com/allmazz)).
* `SHOW INDEX | INDEXES | INDICES | KEYS` não é mais ordenado pelas colunas da chave primária (o que era pouco intuitivo). [#60514](https://github.com/ClickHouse/ClickHouse/pull/60514) ([Robert Schulze](https://github.com/rschu1ze)).
* Melhoria no Keeper: interromper a inicialização se um snapshot inválido for detectado, para evitar perda de dados. [#60537](https://github.com/ClickHouse/ClickHouse/pull/60537) ([Antonio Andelic](https://github.com/antonio2368)).
* Atualize o tzdata para 2024a. [#60768](https://github.com/ClickHouse/ClickHouse/pull/60768) ([Raúl Marín](https://github.com/Algunenano)).
* Melhoria no Keeper: suporte a `leadership_expiry_ms` nas configurações do Keeper. [#60806](https://github.com/ClickHouse/ClickHouse/pull/60806) ([Brokenice0415](https://github.com/Brokenice0415)).
* Sempre infira números em notação exponencial em formatos JSON, independentemente da configuração `input_format_try_infer_exponent_floats`. Adicionada a configuração `input_format_json_use_string_type_for_ambiguous_paths_in_named_tuples_inference_from_objects`, que permite usar o tipo String para caminhos ambíguos, em vez de gerar uma exceção durante a inferência de Tuples nomeadas a partir de objetos JSON. [#60808](https://github.com/ClickHouse/ClickHouse/pull/60808) ([Kruglov Pavel](https://github.com/Avogar)).
* Adiciona suporte à sintaxe `START TRANSACTION`, normalmente usada no MySQL, resolvendo [https://github.com/ClickHouse/ClickHouse/discussions/60865](https://github.com/ClickHouse/ClickHouse/discussions/60865). [#60886](https://github.com/ClickHouse/ClickHouse/pull/60886) ([Zach Naimon](https://github.com/ArctypeZach)).
* Adiciona uma flag para o algoritmo de merge join com ordenação completa tratar NULL como o maior/menor valor. Assim, o comportamento pode ficar compatível com outros sistemas SQL, como o Apache Spark. [#60896](https://github.com/ClickHouse/ClickHouse/pull/60896) ([loudongfeng](https://github.com/loudongfeng)).
* Suporte à detecção do formato de saída pela extensão do arquivo em `clickhouse-client` e `clickhouse-local`. [#61036](https://github.com/ClickHouse/ClickHouse/pull/61036) ([豪肥肥](https://github.com/HowePa)).
* Atualizado o limite de memória em runtime quando o valor de CGroups no Linux é alterado. [#61049](https://github.com/ClickHouse/ClickHouse/pull/61049) ([Han Fei](https://github.com/hanfei1991)).
* Adiciona a função `toUInt128OrZero`, que havia sido omitida por engano (o erro está relacionado a [https://github.com/ClickHouse/ClickHouse/pull/945](https://github.com/ClickHouse/ClickHouse/pull/945)). Os aliases de compatibilidade `FROM_UNIXTIME` e `DATE_FORMAT` (não são nativos do ClickHouse e existem apenas para compatibilidade com MySQL) agora não diferenciam maiúsculas de minúsculas, como esperado para aliases de compatibilidade com SQL. [#61114](https://github.com/ClickHouse/ClickHouse/pull/61114) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Melhorias nas verificações de acesso, permitindo revogar privilégios não concedidos caso o usuário de destino também não tenha os privilégios para revogá-los. Exemplo: `GRANT SELECT ON *.* TO user1; REVOKE SELECT ON system.* FROM user1;`. [#61115](https://github.com/ClickHouse/ClickHouse/pull/61115) ([pufit](https://github.com/pufit)).
* Corrige a função `has()` ao usar coluna `Nullable` (corrige [#60214](https://github.com/ClickHouse/ClickHouse/issues/60214)). [#61249](https://github.com/ClickHouse/ClickHouse/pull/61249) ([Mikhail Koviazin](https://github.com/mkmkme)).
* Agora é possível especificar o atributo `merge="true"` em substituições de configuração para subárvores `<include from_zk="/path" merge="true">`. Se esse atributo for especificado, o ClickHouse mesclará a subárvore com a configuração existente; caso contrário, o comportamento padrão será anexar novo conteúdo à configuração. [#61299](https://github.com/ClickHouse/ClickHouse/pull/61299) ([alesapin](https://github.com/alesapin)).
* Adiciona métricas assíncronas para mapeamentos de memória virtual: `VMMaxMapCount` & `VMNumMaps`. Fecha [#60662](https://github.com/ClickHouse/ClickHouse/issues/60662). [#61354](https://github.com/ClickHouse/ClickHouse/pull/61354) ([Tuan Pham Anh](https://github.com/tuanpavn)).
* Use a configuração `temporary_files_codec` em todos os casos em que criamos dados temporários, por exemplo, na ordenação com memória externa e no GROUP BY com memória externa. Antes, isso funcionava apenas no algoritmo de JOIN `partial_merge`. [#61456](https://github.com/ClickHouse/ClickHouse/pull/61456) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionada a nova configuração `max_parser_backtracks`, que permite limitar a complexidade da análise de consultas. [#61502](https://github.com/ClickHouse/ClickHouse/pull/61502) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Menor contenção durante o redimensionamento dinâmico do cache do sistema de arquivos. [#61524](https://github.com/ClickHouse/ClickHouse/pull/61524) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Modo com shards da fila StorageS3 desabilitado, pois ela será reescrita. [#61537](https://github.com/ClickHouse/ClickHouse/pull/61537) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigido um erro de digitação: de `use_leagcy_max_level` para `use_legacy_max_level`. [#61545](https://github.com/ClickHouse/ClickHouse/pull/61545) ([William Schoeffel](https://github.com/wiledusc)).
* Removidas algumas entradas duplicadas em `system.blob_storage_log`. [#61622](https://github.com/ClickHouse/ClickHouse/pull/61622) ([YenchangChan](https://github.com/YenchangChan)).
* Adicionada a função `current_user` como um alias de compatibilidade com o MySQL. [#61770](https://github.com/ClickHouse/ClickHouse/pull/61770) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige estados inconsistentes de funções de agregação de ponto flutuante em clusters mistos x86-64 / ARM [#60610](https://github.com/ClickHouse/ClickHouse/pull/60610) ([Harry Lee](https://github.com/HarryLeeIBM)).

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

* O profiler de consultas em tempo real agora funciona em AArch64. Em versões anteriores, ele só funcionava quando o programa não passava tempo dentro de uma syscall. [#60807](https://github.com/ClickHouse/ClickHouse/pull/60807) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A versão do ClickHouse foi adicionada às labels do Docker. Fecha [#54224](https://github.com/ClickHouse/ClickHouse/issues/54224). [#60949](https://github.com/ClickHouse/ClickHouse/pull/60949) ([Nikolay Monkov](https://github.com/nikmonkov)).
* Atualização do `prqlc` para 0.11.3. [#60616](https://github.com/ClickHouse/ClickHouse/pull/60616) ([Maximilian Roos](https://github.com/max-sixty)).
* Adicionado um fuzzer genérico de texto de consulta ao `clickhouse-local`. [#61508](https://github.com/ClickHouse/ClickHouse/pull/61508) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="bug-fix-user-visible-misbehavior-in-an-official-stable-release-7">
  #### Correção de bug
</div>

* Corrigido finished\_mutations\_to\_keep=0 no MergeTree (como a documentação diz que 0 mantém tudo) [#60031](https://github.com/ClickHouse/ClickHouse/pull/60031) ([Azat Khuzhin](https://github.com/azat)).
* Havia um problema com a otimização FINAL; o autor a descreve assim: "PartsSplitter invalid ranges for the same part". [#60041](https://github.com/ClickHouse/ClickHouse/pull/60041) ([Maksim Kita](https://github.com/kitaisreal)).
* Havia um problema com o Apache Hive, que é experimental e não tem suporte. [#60262](https://github.com/ClickHouse/ClickHouse/pull/60262) ([shanfengp](https://github.com/Aed-p)).
* Uma melhoria para réplicas paralelas experimentais: forçar a reanálise caso as réplicas paralelas tenham mudado [#60362](https://github.com/ClickHouse/ClickHouse/pull/60362) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige o uso do tipo de metadados plain com a nova opção de configuração de discos [#60396](https://github.com/ClickHouse/ClickHouse/pull/60396) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Tentativa de corrigir o erro lógico 'Não é possível capturar a coluna porque ela tem um tipo incompatível' em mapContainsKeyLike [#60451](https://github.com/ClickHouse/ClickHouse/pull/60451) ([Kruglov Pavel](https://github.com/Avogar)).
* Evitar o cálculo de subconsultas escalares para CREATE TABLE. [#60464](https://github.com/ClickHouse/ClickHouse/pull/60464) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige deadlock no parsing paralelo quando muitas linhas são ignoradas devido a erros [#60516](https://github.com/ClickHouse/ClickHouse/pull/60516) ([Kruglov Pavel](https://github.com/Avogar)).
* Havia um problema com o suporte experimental ao KQL (Kusto): correção de `max_query_size_for_kql_compound_operator`: [#60534](https://github.com/ClickHouse/ClickHouse/pull/60534) ([Yong Wang](https://github.com/kashwy)).
* Correção no Keeper: adiciona timeouts ao aguardar logs de commit [#60544](https://github.com/ClickHouse/ClickHouse/pull/60544) ([Antonio Andelic](https://github.com/antonio2368)).
* Não mostrar dicas numéricas para tipos de data [#60577](https://github.com/ClickHouse/ClickHouse/pull/60577) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigida a leitura do MergeTree quando há funções não determinísticas no filtro [#60586](https://github.com/ClickHouse/ClickHouse/pull/60586) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrigido erro lógico em tipo de valor inválido na configuração de compatibilidade [#60596](https://github.com/ClickHouse/ClickHouse/pull/60596) ([Kruglov Pavel](https://github.com/Avogar)).
* fix(prql): Manipulador robusto de panic [#60615](https://github.com/ClickHouse/ClickHouse/pull/60615) ([Maximilian Roos](https://github.com/max-sixty)).
* Corrigido `intDiv` para argumentos decimais e de data [#60672](https://github.com/ClickHouse/ClickHouse/pull/60672) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Correção: expandir CTE na consulta ALTER MODIFY [#60682](https://github.com/ClickHouse/ClickHouse/pull/60682) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige `system.parts` para bancos de dados com engine não Atomic/Ordinary (ou seja, Memory) [#60689](https://github.com/ClickHouse/ClickHouse/pull/60689) ([Azat Khuzhin](https://github.com/azat)).
* Corrige "Invalid storage definition in metadata file" em views parametrizadas [#60708](https://github.com/ClickHouse/ClickHouse/pull/60708) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido estouro de buffer em CompressionCodecMultiple [#60731](https://github.com/ClickHouse/ClickHouse/pull/60731) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Remover problemas no SQL/JSON [#60738](https://github.com/ClickHouse/ClickHouse/pull/60738) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Removida a asserção incorreta na função de agregação quantileGK [#60740](https://github.com/ClickHouse/ClickHouse/pull/60740) ([李扬](https://github.com/taiyang-li)).
* Corrige o erro de insert-select + insert\_deduplication\_token ao definir streams como 1 [#60745](https://github.com/ClickHouse/ClickHouse/pull/60745) ([Jordi Villar](https://github.com/jrdi)).
* Impedir a configuração de cabeçalhos de metadados personalizados em operações de upload multipart não suportadas [#60748](https://github.com/ClickHouse/ClickHouse/pull/60748) ([Francisco J. Jurado Moreno](https://github.com/Beetelbrox)).
* Correção de toStartOfInterval [#60763](https://github.com/ClickHouse/ClickHouse/pull/60763) ([Andrey Zvonov](https://github.com/zvonand)).
* Corrigido travamento no arrayEnumerateRanked [#60764](https://github.com/ClickHouse/ClickHouse/pull/60764) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige travamento ao usar input() em INSERT SELECT JOIN [#60765](https://github.com/ClickHouse/ClickHouse/pull/60765) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrigido travamento com um valor diferente de allow\_experimental\_analyzer em subconsultas [#60770](https://github.com/ClickHouse/ClickHouse/pull/60770) ([Dmitry Novik](https://github.com/novikd)).
* Removida a recursão na leitura do S3 [#60849](https://github.com/ClickHouse/ClickHouse/pull/60849) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigido um possível travamento em caso de erro no HashedDictionaryParallelLoader [#60926](https://github.com/ClickHouse/ClickHouse/pull/60926) ([vdimir](https://github.com/vdimir)).
* Corrigido o RESTORE assíncrono com banco de dados Replicated (funcionalidade experimental) [#60934](https://github.com/ClickHouse/ClickHouse/pull/60934) ([Antonio Andelic](https://github.com/antonio2368)).
* Correção de deadlock em inserts assíncronos em tabelas `Log` via protocolo nativo [#61055](https://github.com/ClickHouse/ClickHouse/pull/61055) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige a avaliação preguiçosa do argumento padrão em dictGetOrDefault para RangeHashedDictionary [#61196](https://github.com/ClickHouse/ClickHouse/pull/61196) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige diversos bugs em groupArraySorted [#61203](https://github.com/ClickHouse/ClickHouse/pull/61203) ([Raúl Marín](https://github.com/Algunenano)).
* Correção da reconfiguração do Keeper para o binário standalone [#61233](https://github.com/ClickHouse/ClickHouse/pull/61233) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigido o uso de session\_token no engine S3 [#61234](https://github.com/ClickHouse/ClickHouse/pull/61234) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige um possível resultado incorreto da função de agregação `uniqExact` [#61257](https://github.com/ClickHouse/ClickHouse/pull/61257) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige erros em show database [#61269](https://github.com/ClickHouse/ClickHouse/pull/61269) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigir erro lógico no armazenamento do RabbitMQ com colunas MATERIALIZED [#61320](https://github.com/ClickHouse/ClickHouse/pull/61320) ([vdimir](https://github.com/vdimir)).
* Corrigido CREATE OR REPLACE DICTIONARY [#61356](https://github.com/ClickHouse/ClickHouse/pull/61356) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrigida consulta ATTACH com ON CLUSTER externo [#61365](https://github.com/ClickHouse/ClickHouse/pull/61365) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige a otimização para chaves consecutivas em chaves Nullable [#61393](https://github.com/ClickHouse/ClickHouse/pull/61393) ([Anton Popov](https://github.com/CurtizJ)).
* corrige problema na divisão do DAG de actions [#61458](https://github.com/ClickHouse/ClickHouse/pull/61458) ([Raúl Marín](https://github.com/Algunenano)).
* Correção da finalização de um RESTORE que falhou [#61466](https://github.com/ClickHouse/ClickHouse/pull/61466) ([Vitaly Baranov](https://github.com/vitlibar)).
* Desabilita corretamente async\_insert\_use\_adaptive\_busy\_timeout com as configurações de compatibilidade [#61468](https://github.com/ClickHouse/ClickHouse/pull/61468) ([Raúl Marín](https://github.com/Algunenano)).
* Permitir o enfileiramento no pool de restauração [#61475](https://github.com/ClickHouse/ClickHouse/pull/61475) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige uma inconsistência na leitura de `system.parts` usando UUID. [#61479](https://github.com/ClickHouse/ClickHouse/pull/61479) ([Dan Wu](https://github.com/wudanzy)).
* Corrigido ALTER QUERY MODIFY SQL SECURITY [#61480](https://github.com/ClickHouse/ClickHouse/pull/61480) ([pufit](https://github.com/pufit)).
* Corrigido um travamento em window view (funcionalidade experimental) [#61526](https://github.com/ClickHouse/ClickHouse/pull/61526) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido `repeat` para inteiros não nativos [#61527](https://github.com/ClickHouse/ClickHouse/pull/61527) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigido o argumento `-s` do cliente [#61530](https://github.com/ClickHouse/ClickHouse/pull/61530) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Corrigida falha em `arrayPartialReverseSort` [#61539](https://github.com/ClickHouse/ClickHouse/pull/61539) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige a busca por strings com posição constante [#61547](https://github.com/ClickHouse/ClickHouse/pull/61547) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige um erro causado por `addDays` ao usar `DateTime64` [#61561](https://github.com/ClickHouse/ClickHouse/pull/61561) ([Shuai li](https://github.com/loneylee)).
* Não permitir o tipo de entrada LowCardinality no JSONExtract [#61617](https://github.com/ClickHouse/ClickHouse/pull/61617) ([Julia Kartseva](https://github.com/jkartseva)).
* Correção de `system.part_log` para async insert com desduplicação [#61620](https://github.com/ClickHouse/ClickHouse/pull/61620) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigida a exceção `Non-ready set` em system.parts. [#61666](https://github.com/ClickHouse/ClickHouse/pull/61666) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigido actual\_part\_name para REPLACE\_RANGE (`Entry actual part isn't empty yet`) [#61675](https://github.com/ClickHouse/ClickHouse/pull/61675) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige um alerta do sanitizer em `multiSearchAllPositionsCaseInsensitiveUTF8` para UTF-8 inválido [#61749](https://github.com/ClickHouse/ClickHouse/pull/61749) ([pufit](https://github.com/pufit)).
* Corrige o problema de o frame RANGE não ser compatível com colunas Nullable. [#61766](https://github.com/ClickHouse/ClickHouse/pull/61766) ([YuanLiu](https://github.com/ditgittube)).

### <a id="242" /> Lançamento do ClickHouse 24.2, 2024-02-29. [Apresentação](https://presentations.clickhouse.com/2024-release-24.2/), [Vídeo](https://www.youtube.com/watch?v=iN2y-TK8f3A)

<Frame>
  <iframe src="https://www.youtube.com/embed/iN2y-TK8f3A" 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>

* Validar tipos suspeitos/experimentais em tipos aninhados. Antes, esses tipos (exceto JSON) não eram validados em tipos aninhados, como Array/Tuple/Map. [#59385](https://github.com/ClickHouse/ClickHouse/pull/59385) ([Kruglov Pavel](https://github.com/Avogar)).
* Adicionar uma verificação de consistência para o número de threads e os tamanhos de bloco. [#60138](https://github.com/ClickHouse/ClickHouse/pull/60138) ([Raúl Marín](https://github.com/Algunenano)).
* Não inferir números de ponto flutuante em notação exponencial por padrão. Adiciona a configuração `input_format_try_infer_exponent_floats`, que restaura o comportamento anterior (desabilitada por padrão). Fecha [#59476](https://github.com/ClickHouse/ClickHouse/issues/59476). [#59500](https://github.com/ClickHouse/ClickHouse/pull/59500) ([Kruglov Pavel](https://github.com/Avogar)).
* Permitir que operações ALTER sejam envolvidas por parênteses. A inclusão de parênteses pode ser controlada pela configuração `format_alter_operations_with_parentheses`. Por padrão, em consultas formatadas, os parênteses são incluídos, já que armazenamos operações ALTER formatadas em alguns locais como metadados (por exemplo: mutações). A nova sintaxe deixa mais claras algumas consultas em que as operações ALTER terminam em uma lista. Por exemplo: `ALTER TABLE x MODIFY TTL date GROUP BY a, b, DROP COLUMN c` não pode ser analisada corretamente com a sintaxe antiga. Na nova sintaxe, a consulta `ALTER TABLE x (MODIFY TTL date GROUP BY a, b), (DROP COLUMN c)` fica inequívoca. Versões antigas não conseguem ler a nova sintaxe; portanto, usá-la pode causar problemas se versões mais novas e mais antigas do ClickHouse estiverem misturadas em um único cluster. [#59532](https://github.com/ClickHouse/ClickHouse/pull/59532) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Correção do problema de segurança da visão materializada, que permitia a um usuário inserir em uma tabela sem os grants necessários para isso. A correção valida que o usuário tem permissão para inserir não apenas em uma visão materializada, mas também em todas as tabelas subjacentes. Isso significa que algumas consultas que funcionavam antes agora podem falhar com `Not enough privileges`. Para resolver esse problema, esta versão introduz um novo recurso de SQL security para views [https://clickhouse.com/docs/sql-reference/statements/create/view#sql\&#95;security](https://clickhouse.com/docs/sql-reference/statements/create/view#sql\&#95;security). [#54901](https://github.com/ClickHouse/ClickHouse/pull/54901) [#60439](https://github.com/ClickHouse/ClickHouse/pull/60439) ([pufit](https://github.com/pufit)).

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

* Adicionada uma nova sintaxe que permite especificar o usuário definidor em view/visão materializada. Isso permite executar consultas/inserções a partir de views sem permissões explícitas para as tabelas subjacentes. Assim, uma view encapsulará as permissões. [#54901](https://github.com/ClickHouse/ClickHouse/pull/54901) [#60439](https://github.com/ClickHouse/ClickHouse/pull/60439) ([pufit](https://github.com/pufit)).
* Detectar automaticamente o formato de arquivo durante a inferência de esquema quando ele for desconhecido nos motores `file/s3/hdfs/url/azureBlobStorage`. Fecha [#50576](https://github.com/ClickHouse/ClickHouse/issues/50576). [#59092](https://github.com/ClickHouse/ClickHouse/pull/59092) ([Kruglov Pavel](https://github.com/Avogar)).
* Implementado o ajuste automático dos timeouts de inserção assíncrona. As seguintes configurações foram introduzidas: async\_insert\_poll\_timeout\_ms, async\_insert\_use\_adaptive\_busy\_timeout, async\_insert\_busy\_timeout\_min\_ms, async\_insert\_busy\_timeout\_max\_ms, async\_insert\_busy\_timeout\_increase\_rate, async\_insert\_busy\_timeout\_decrease\_rate. [#58486](https://github.com/ClickHouse/ClickHouse/pull/58486) ([Julia Kartseva](https://github.com/jkartseva)).
* Permite definir uma cota para o número máximo de falhas consecutivas de login. [#54737](https://github.com/ClickHouse/ClickHouse/pull/54737) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Uma nova função agregada `groupArrayIntersect`. Em seguimento a: [#49862](https://github.com/ClickHouse/ClickHouse/issues/49862). [#59598](https://github.com/ClickHouse/ClickHouse/pull/59598) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Suporte a backup e restauração para `AzureBlobStorage`. Resolve [#50747](https://github.com/ClickHouse/ClickHouse/issues/50747). [#56988](https://github.com/ClickHouse/ClickHouse/pull/56988) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Agora, o usuário pode especificar diretamente na consulta a string do template usando `format_schema_rows_template` como alternativa a `format_template_row`. Fecha [#31363](https://github.com/ClickHouse/ClickHouse/issues/31363). [#59088](https://github.com/ClickHouse/ClickHouse/pull/59088) ([Shaun Struwig](https://github.com/Blargian)).
* Implementada a conversão automática de tabelas MergeTree de diferentes tipos para o engine Replicated. Crie um arquivo vazio `convert_to_replicated` no diretório de dados da tabela (`/clickhouse/store/xxx/xxxyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy/`), e a tabela será convertida automaticamente na próxima inicialização do servidor. [#57798](https://github.com/ClickHouse/ClickHouse/pull/57798) ([Kirill](https://github.com/kirillgarbar)).
* Foi adicionada a consulta `ALTER TABLE table FORGET PARTITION partition`, que remove nós do ZooKeeper relacionados a uma partição vazia. [#59507](https://github.com/ClickHouse/ClickHouse/pull/59507) ([Sergei Trifonov](https://github.com/serxa)). Este é um recurso para especialistas.
* Suporte a arquivo de credenciais JWT para o mecanismo de tabela NATS. [#59543](https://github.com/ClickHouse/ClickHouse/pull/59543) ([Nickolaj Jepsen](https://github.com/nickolaj-jepsen)).
* Implementada a tabela `system.dns_cache`, que pode ser útil para depurar problemas de DNS. [#59856](https://github.com/ClickHouse/ClickHouse/pull/59856) ([Kirill Nikiforov](https://github.com/allmazz)).
* O codec `LZ4HC` aceitará um novo nível 2, que é mais rápido do que o nível mínimo anterior, 3, em troca de menor compressão. Em versões anteriores, `LZ4HC(2)` e níveis inferiores eram equivalentes a `LZ4HC(3)`. Autor: [Cyan4973](https://github.com/Cyan4973). [#60090](https://github.com/ClickHouse/ClickHouse/pull/60090) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Implementada a tabela `system.dns_cache`, que pode ser útil para solucionar problemas de DNS. Nova configuração do servidor dns\_cache\_max\_size. [#60257](https://github.com/ClickHouse/ClickHouse/pull/60257) ([Kirill Nikiforov](https://github.com/allmazz)).
* Adicionar suporte à versão com um único argumento da função de tabela `merge`, como `merge(['db_name', ] 'tables_regexp')`. [#60372](https://github.com/ClickHouse/ClickHouse/pull/60372) ([豪肥肥](https://github.com/HowePa)).
* Adiciona suporte a argumentos posicionais negativos. Fecha [#57736](https://github.com/ClickHouse/ClickHouse/issues/57736). [#58292](https://github.com/ClickHouse/ClickHouse/pull/58292) ([flynn](https://github.com/ucasfl)).
* Suporte para especificar, na configuração, um conjunto de usuários permitidos para configurações específicas do S3 usando a chave `user`. [#60144](https://github.com/ClickHouse/ClickHouse/pull/60144) ([Antonio Andelic](https://github.com/antonio2368)).
* Adicionada a função de tabela `mergeTreeIndex`. Ela representa o conteúdo dos arquivos de índice e de marcas das tabelas `MergeTree`. Pode ser usada para introspecção. Sintaxe: `mergeTreeIndex(database, table, [with_marks = true])`, em que `database.table` é uma tabela existente com engine `MergeTree`. [#58140](https://github.com/ClickHouse/ClickHouse/pull/58140) ([Anton Popov](https://github.com/CurtizJ)).

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

* Adicionada a função `seriesOutliersDetectTukey` para detectar outliers em séries de dados usando o algoritmo de cercas de Tukey. [#58632](https://github.com/ClickHouse/ClickHouse/pull/58632) ([Bhavna Jindal](https://github.com/bhavnajindal)). Tenha em mente que esse comportamento será alterado na próxima versão de patch.
* Adicionada a função `variantType`, que retorna um Enum com o nome do tipo variante para cada linha. [#59398](https://github.com/ClickHouse/ClickHouse/pull/59398) ([Kruglov Pavel](https://github.com/Avogar)).
* Suporte a `LEFT JOIN`, `ALL INNER JOIN` e subconsultas simples para réplicas paralelas (apenas com o analisador). A nova configuração `parallel_replicas_prefer_local_join` escolhe entre a execução local de `JOIN` (padrão) e `GLOBAL JOIN`. Todas as tabelas devem existir em cada réplica de `cluster_for_parallel_replicas`. As novas configurações `min_external_table_block_size_rows` e `min_external_table_block_size_bytes` são usadas para agrupar blocos pequenos enviados para tabelas temporárias (apenas com o analisador). [#58916](https://github.com/ClickHouse/ClickHouse/pull/58916) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Permite a criação simultânea de tabelas no banco de dados `Replicated` durante a adição ou recuperação de uma nova réplica. [#59277](https://github.com/ClickHouse/ClickHouse/pull/59277) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Implementado operador de comparação para valores `Variant` e inserção correta de Field na coluna `Variant`. Por padrão, não é permitido criar o tipo `Variant` com tipos variantes semelhantes (permitido com a configuração `allow_suspicious_variant_types`). Fecha [#59996](https://github.com/ClickHouse/ClickHouse/issues/59996). Fecha [#59850](https://github.com/ClickHouse/ClickHouse/issues/59850). [#60198](https://github.com/ClickHouse/ClickHouse/pull/60198) ([Kruglov Pavel](https://github.com/Avogar)).
* Desabilita `JOIN` de réplicas paralelas com CTE (sem analisador). [#59239](https://github.com/ClickHouse/ClickHouse/pull/59239) ([Raúl Marín](https://github.com/Algunenano)).

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

* A chave primária usará menos memória. [#60049](https://github.com/ClickHouse/ClickHouse/pull/60049) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Melhorado o uso de memória da chave primária e de algumas outras operações. [#60050](https://github.com/ClickHouse/ClickHouse/pull/60050) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* As chaves primárias das tabelas serão carregadas na memória sob demanda, no primeiro acesso. Isso é controlado pela nova configuração do MergeTree `primary_key_lazy_load`, que fica ativada por padrão. Isso oferece várias vantagens: - ela não será carregada para tabelas que não forem usadas; - se não houver memória suficiente, uma exceção será lançada no primeiro uso em vez de na inicialização do servidor. Isso também traz várias desvantagens: - o custo de latência do carregamento da chave primária ocorrerá na primeira consulta, em vez de antes de aceitar conexões; isso, em teoria, pode introduzir um problema de thundering herd. Isso fecha [#11188](https://github.com/ClickHouse/ClickHouse/issues/11188). [#60093](https://github.com/ClickHouse/ClickHouse/pull/60093) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Funções vetorizadas de distância usadas na busca vetorial. [#58866](https://github.com/ClickHouse/ClickHouse/pull/58866) ([Robert Schulze](https://github.com/rschu1ze)).
* Função vetorizada `dotProduct`, útil para busca vetorial. [#60202](https://github.com/ClickHouse/ClickHouse/pull/60202) ([Robert Schulze](https://github.com/rschu1ze)).
* Adicionar suporte a curto-circuito para a função `dictGetOrDefault`. Fecha [#52098](https://github.com/ClickHouse/ClickHouse/issues/52098). [#57767](https://github.com/ClickHouse/ClickHouse/pull/57767) ([jsc0218](https://github.com/jsc0218)).
* Melhoria no Keeper: armazenar em cache na memória apenas uma certa quantidade de logs, controlada por `latest_logs_cache_size_threshold` e `commit_logs_cache_size_threshold`. [#59460](https://github.com/ClickHouse/ClickHouse/pull/59460) ([Antonio Andelic](https://github.com/antonio2368)).
* Melhoria no Keeper: reduzir ainda mais o tamanho do nó de dados. [#59592](https://github.com/ClickHouse/ClickHouse/pull/59592) ([Antonio Andelic](https://github.com/antonio2368)).
* Continue otimizando falhas de predição de desvio da função `if` quando o tipo de resultado é `Float*/Decimal*/*Int*`, em continuação a [https://github.com/ClickHouse/ClickHouse/pull/57885](https://github.com/ClickHouse/ClickHouse/pull/57885). [#59148](https://github.com/ClickHouse/ClickHouse/pull/59148) ([李扬](https://github.com/taiyang-li)).
* Otimizada a função `if` quando o tipo de entrada é `Map`, com aceleração de até \~10x. [#59413](https://github.com/ClickHouse/ClickHouse/pull/59413) ([李扬](https://github.com/taiyang-li)).
* Melhorado o desempenho do tipo `Int8` com a implementação de aliasing estrito (isso já existe para `UInt8` e todos os outros tipos inteiros). [#59485](https://github.com/ClickHouse/ClickHouse/pull/59485) ([Raúl Marín](https://github.com/Algunenano)).
* Otimize o desempenho condicional de `sum`/`avg` para tipos bigint e decimal de alta precisão, reduzindo falhas de predição de desvio. [#59504](https://github.com/ClickHouse/ClickHouse/pull/59504) ([李扬](https://github.com/taiyang-li)).
* Melhora de desempenho em `SELECT`s com mutações ativas. [#59531](https://github.com/ClickHouse/ClickHouse/pull/59531) ([Azat Khuzhin](https://github.com/azat)).
* Otimizada a função `isNotNull` com AVX2. [#59621](https://github.com/ClickHouse/ClickHouse/pull/59621) ([李扬](https://github.com/taiyang-li)).
* Melhora o desempenho do ASOF JOIN para dados ordenados ou quase ordenados. [#59731](https://github.com/ClickHouse/ClickHouse/pull/59731) ([Maksim Kita](https://github.com/kitaisreal)).
* O valor padrão anterior de 1 MB para `async_insert_max_data_size` parecia ser pequeno demais. O novo valor será de 10 MiB. [#59536](https://github.com/ClickHouse/ClickHouse/pull/59536) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Use múltiplas threads para ler os metadados das tabelas de um backup durante a execução do comando RESTORE. [#60040](https://github.com/ClickHouse/ClickHouse/pull/60040) ([Vitaly Baranov](https://github.com/vitlibar)).
* Agora, se `StorageBuffer` tiver mais de 1 shard (`num_layers` > 1), o flush em segundo plano ocorrerá simultaneamente para todos os shards em várias threads. [#60111](https://github.com/ClickHouse/ClickHouse/pull/60111) ([alesapin](https://github.com/alesapin)).

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

* Quando o output format é `Pretty` e um bloco consiste em um único valor numérico superior a um milhão, um número legível será exibido à direita da tabela. [#60379](https://github.com/ClickHouse/ClickHouse/pull/60379) ([rogeryk](https://github.com/rogeryk)).
* Foram adicionadas as configurações `split_parts_ranges_into_intersecting_and_non_intersecting_final` e `split_intersecting_parts_ranges_into_layers_final`. Essas configurações são necessárias para desativar otimizações em consultas com `FINAL` e devem ser usadas apenas para depuração. [#59705](https://github.com/ClickHouse/ClickHouse/pull/59705) ([Maksim Kita](https://github.com/kitaisreal)). Na verdade, não só para isso — elas também podem reduzir o uso de memória em troca de desempenho.
* Renomeie a configuração `extract_kvp_max_pairs_per_row` para `extract_key_value_pairs_max_pairs_per_row`. O problema (abreviação desnecessária no nome da configuração) foi introduzido em [https://github.com/ClickHouse/ClickHouse/pull/43606](https://github.com/ClickHouse/ClickHouse/pull/43606). Corrija a documentação dessa configuração. [#59683](https://github.com/ClickHouse/ClickHouse/pull/59683) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#59960](https://github.com/ClickHouse/ClickHouse/pull/59960) ([jsc0218](https://github.com/jsc0218)).
* A execução de `ALTER COLUMN MATERIALIZE` em uma coluna com expressão `DEFAULT` ou `MATERIALIZED` agora segue precisamente a semântica. [#58023](https://github.com/ClickHouse/ClickHouse/pull/58023) ([Duc Canh Le](https://github.com/canhld94)).
* Foi implementada uma lógica de backoff exponencial para erros durante mutações. Isso reduzirá o uso de CPU e de memória, além do tamanho dos arquivos de log. [#58036](https://github.com/ClickHouse/ClickHouse/pull/58036) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Adicionada melhoria para contabilizar o evento de Profile `InitialQuery`. [#58195](https://github.com/ClickHouse/ClickHouse/pull/58195) ([Unalian](https://github.com/Unalian)).
* Permite definir `volume_priority` na `storage_configuration`. [#58533](https://github.com/ClickHouse/ClickHouse/pull/58533) ([Andrey Zvonov](https://github.com/zvonand)).
* Adicionado suporte para o tipo `Date32` no codec `T64`. [#58738](https://github.com/ClickHouse/ClickHouse/pull/58738) ([Hongbin Ma](https://github.com/binmahone)).
* Permite vírgulas finais em tipos com vários itens. [#59119](https://github.com/ClickHouse/ClickHouse/pull/59119) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* As configurações do mecanismo de tabela Distributed agora podem ser definidas no arquivo de configuração do servidor (de forma semelhante às configurações do MergeTree), por exemplo, `<distributed> <flush_on_detach>false</flush_on_detach> </distributed>`. [#59291](https://github.com/ClickHouse/ClickHouse/pull/59291) ([Azat Khuzhin](https://github.com/azat)).
* Tentar novamente em caso de desconexões e sessões expiradas ao ler `system.zookeeper`. Isso é útil ao ler muitas linhas da tabela `system.zookeeper`, especialmente na presença de desconexões induzidas por falhas. [#59388](https://github.com/ClickHouse/ClickHouse/pull/59388) ([Alexander Gololobov](https://github.com/davenger)).
* Não interprete como octais os números com zeros à esquerda quando `input_format_values_interpret_expressions=0`. [#59403](https://github.com/ClickHouse/ClickHouse/pull/59403) ([Joanna Hulboj](https://github.com/jh0x)).
* Na inicialização e sempre que os arquivos de configuração são alterados, o ClickHouse atualiza os limites rígidos de memória do seu memory tracker total. Esses limites são calculados com base em várias configurações do servidor e nos limites de cgroups (no Linux). Anteriormente, o valor de `/sys/fs/cgroup/memory.max` (para cgroups v2) era fixado no código. Como resultado, os limites de memória do cgroup v2 configurados para grupos aninhados (hierarquias), por exemplo `/sys/fs/cgroup/my/nested/group/memory.max`, eram ignorados. Isso foi corrigido. O comportamento dos limites de memória v1 permanece inalterado. [#59435](https://github.com/ClickHouse/ClickHouse/pull/59435) ([Robert Schulze](https://github.com/rschu1ze)).
* Novos eventos de perfil foram adicionados para observar o tempo gasto no cálculo de PK/projeções/índices secundários durante operações de `INSERT`. [#59436](https://github.com/ClickHouse/ClickHouse/pull/59436) ([Nikita Taranov](https://github.com/nickitat)).
* Permite definir um ponto de partida para o S3Queue no modo Ordered durante a criação usando a configuração `s3queue_last_processed_path`. [#59446](https://github.com/ClickHouse/ClickHouse/pull/59446) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Os comentários das tabelas de sistema também passaram a ficar disponíveis em `system.tables` no `clickhouse-local`. [#59493](https://github.com/ClickHouse/ClickHouse/pull/59493) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Tabela `system.zookeeper`: anteriormente, todo o resultado era acumulado na memória e retornado como um único fragmento grande. Essa alteração deve ajudar a reduzir o consumo de memória ao ler muitas linhas de `system.zookeeper`, permitir a exibição do progresso intermediário (quantas linhas já foram lidas até o momento) e evitar exceder o tempo limite da conexão quando o conjunto de resultados for grande. [#59545](https://github.com/ClickHouse/ClickHouse/pull/59545) ([Alexander Gololobov](https://github.com/davenger)).
* Agora o painel reconhece tanto o estado compactado quanto o não compactado do #hash da URL (retrocompatibilidade). Continuação de [#59124](https://github.com/ClickHouse/ClickHouse/issues/59124) . [#59548](https://github.com/ClickHouse/ClickHouse/pull/59548) ([Amos Bird](https://github.com/amosbird)).
* Atualizado o Intel QPL (usado pelo codec `DEFLATE_QPL`) da v1.3.1 para a v1.4.0. Também foi corrigido um bug no mecanismo de polling de timeout, pois observamos que, em alguns casos, o timeout não funcionava corretamente; se ocorrer um timeout, o IAA e a CPU podem processar o buffer de forma concorrente. Por enquanto, é melhor garantir que o status do codec IAA não seja QPL\_STS\_BEING\_PROCESSED e, então, recorrer ao codec de software como fallback. [#59551](https://github.com/ClickHouse/ClickHouse/pull/59551) ([jasperzhu](https://github.com/jinjunzh)).
* Não exiba um aviso sobre a versão do servidor no ClickHouse Cloud, pois o ClickHouse Cloud gerencia automaticamente atualizações contínuas. [#59657](https://github.com/ClickHouse/ClickHouse/pull/59657) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Após a autoextração, o binário temporário é movido em vez de ser copiado. [#59661](https://github.com/ClickHouse/ClickHouse/pull/59661) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige o desenrolamento da pilha no Apple macOS. Isso fecha [#53653](https://github.com/ClickHouse/ClickHouse/issues/53653). [#59690](https://github.com/ClickHouse/ClickHouse/pull/59690) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Verificação de estouro de pilha nos parsers, mesmo que o usuário tenha configurado incorretamente a configuração `max_parser_depth` com um valor muito alto. Isso corrige [#59622](https://github.com/ClickHouse/ClickHouse/issues/59622). [#59697](https://github.com/ClickHouse/ClickHouse/pull/59697) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#60434](https://github.com/ClickHouse/ClickHouse/pull/60434)
* Unificar o comportamento das coleções nomeadas criadas em XML e em SQL no armazenamento Kafka. [#59710](https://github.com/ClickHouse/ClickHouse/pull/59710) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* No caso de `merge_max_block_size_bytes` ser pequeno o suficiente e as tabelas conterem linhas extensas (strings ou tuplas), as mesclagens em segundo plano podem ficar presas em um loop infinito. Esse comportamento foi corrigido. Complemento de [https://github.com/ClickHouse/ClickHouse/pull/59340](https://github.com/ClickHouse/ClickHouse/pull/59340). [#59812](https://github.com/ClickHouse/ClickHouse/pull/59812) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Permitir `uuid` em replica\_path se ele estiver explicitamente em CREATE TABLE. [#59908](https://github.com/ClickHouse/ClickHouse/pull/59908) ([Azat Khuzhin](https://github.com/azat)).
* Adicionada a coluna `metadata_version` da tabela ReplicatedMergeTree à tabela de sistema `system.tables`. [#59942](https://github.com/ClickHouse/ClickHouse/pull/59942) ([Maksim Kita](https://github.com/kitaisreal)).
* Melhoria no Keeper: enviar apenas métricas/eventos relacionados ao Keeper para o Prometheus. [#59945](https://github.com/ClickHouse/ClickHouse/pull/59945) ([Antonio Andelic](https://github.com/antonio2368)).
* O dashboard exibirá métricas em diferentes versões do ClickHouse, mesmo que a estrutura das tabelas de sistema tenha mudado após a atualização. [#59967](https://github.com/ClickHouse/ClickHouse/pull/59967) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permite carregar informações de AZ de um arquivo. [#59976](https://github.com/ClickHouse/ClickHouse/pull/59976) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Melhoria no Keeper: adicionar novas tentativas em caso de falha nas operações relacionadas ao Disk. [#59980](https://github.com/ClickHouse/ClickHouse/pull/59980) ([Antonio Andelic](https://github.com/antonio2368)).
* Adicionada a nova configuração `backups.remove_backup_files_after_failure`: `<clickhouse> <backups> <remove_backup_files_after_failure>true</remove_backup_files_after_failure> </backups> </clickhouse>`. [#60002](https://github.com/ClickHouse/ClickHouse/pull/60002) ([Vitaly Baranov](https://github.com/vitlibar)).
* Usar cópia em buffer como fallback para cópia de arquivos S3 do GCP caso o GCP retorne `Internal Error` com o código de erro HTTP `GATEWAY_TIMEOUT`. [#60164](https://github.com/ClickHouse/ClickHouse/pull/60164) ([Maksim Kita](https://github.com/kitaisreal)).
* Execução com curto-circuito para `ULIDStringToDateTime`. [#60211](https://github.com/ClickHouse/ClickHouse/pull/60211) ([Juan Madurga](https://github.com/jlmadurga)).
* Adicionada a coluna `query_id` às tabelas `system.backups` e `system.backup_log`. Adicionada a stack trace do erro à coluna `error`. [#60220](https://github.com/ClickHouse/ClickHouse/pull/60220) ([Maksim Kita](https://github.com/kitaisreal)).
* As conexões pela porta MySQL agora são executadas automaticamente com a configuração `prefer_column_name_to_alias = 1` para oferecer suporte pronto para uso ao QuickSight. Além disso, as configurações `mysql_map_string_to_text_in_show_columns` e `mysql_map_fixed_string_to_text_in_show_columns` agora vêm habilitadas por padrão, afetando apenas as conexões MySQL. Isso aumenta a compatibilidade com mais ferramentas de BI. [#60365](https://github.com/ClickHouse/ClickHouse/pull/60365) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige uma condição de corrida no código JavaScript que fazia gráficos duplicados serem exibidos sobrepostos. [#60392](https://github.com/ClickHouse/ClickHouse/pull/60392) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Adicionados builds e testes com coleta de cobertura e introspecção. Continuação de [#56102](https://github.com/ClickHouse/ClickHouse/issues/56102). [#58792](https://github.com/ClickHouse/ClickHouse/pull/58792) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Atualizada a toolchain do Rust em `corrosion-cmake` quando a variável da toolchain de compilação cruzada do CMake está definida. [#59309](https://github.com/ClickHouse/ClickHouse/pull/59309) ([Aris Tritas](https://github.com/aris-aiven)).
* Adicionado fuzzing para ASTLiterals. [#59383](https://github.com/ClickHouse/ClickHouse/pull/59383) ([Raúl Marín](https://github.com/Algunenano)).
* Se você quiser executar scripts do initdb sempre que o contêiner do ClickHouse for iniciado, deverá definir a variável de ambiente CLICKHOUSE\_ALWAYS\_RUN\_INITDB\_SCRIPTS. [#59808](https://github.com/ClickHouse/ClickHouse/pull/59808) ([Alexander Nikolaev](https://github.com/AlexNik)).
* Removida a capacidade de desabilitar componentes genéricos do ClickHouse (como servidor/cliente/...), mas mantidos alguns que exigem bibliotecas extras (como ODBC ou Keeper). [#59857](https://github.com/ClickHouse/ClickHouse/pull/59857) ([Azat Khuzhin](https://github.com/azat)).
* O fuzzer de consultas fará fuzzing de SETTINGS dentro das consultas. [#60087](https://github.com/ClickHouse/ClickHouse/pull/60087) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado suporte para compilar o ClickHouse com clang-19 (master). [#60448](https://github.com/ClickHouse/ClickHouse/pull/60448) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="bug-fix-user-visible-misbehavior-in-an-official-stable-release-4">
  #### Correção de bug (mau funcionamento perceptível ao usuário em uma versão estável oficial)
</div>

* Corrige um erro de "Set não pronto" em TTL WHERE. [#57430](https://github.com/ClickHouse/ClickHouse/pull/57430) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigido um bug na função `quantilesGK` [#58216](https://github.com/ClickHouse/ClickHouse/pull/58216) ([李扬](https://github.com/taiyang-li)).
* Corrige um comportamento incorreto do `intDiv` com argumentos Decimal [#59243](https://github.com/ClickHouse/ClickHouse/pull/59243) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrigido `translate` com entrada FixedString [#59356](https://github.com/ClickHouse/ClickHouse/pull/59356) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige o cálculo do digest no Keeper [#59439](https://github.com/ClickHouse/ClickHouse/pull/59439) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige stacktraces de binários sem símbolos de depuração [#59444](https://github.com/ClickHouse/ClickHouse/pull/59444) ([Azat Khuzhin](https://github.com/azat)).
* Corrige `ASTAlterCommand::formatImpl` no caso de configurações específicas da coluna... [#59445](https://github.com/ClickHouse/ClickHouse/pull/59445) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Correção de `SELECT * FROM [...] ORDER BY ALL` com o analisador [#59462](https://github.com/ClickHouse/ClickHouse/pull/59462) ([zhongyuankai](https://github.com/zhongyuankai)).
* Corrige uma possível exceção não tratada durante o cancelamento de consulta distribuída [#59487](https://github.com/ClickHouse/ClickHouse/pull/59487) ([Azat Khuzhin](https://github.com/azat)).
* Faça o MAX usar as mesmas regras da permutação para tipos complexos [#59498](https://github.com/ClickHouse/ClickHouse/pull/59498) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige um caso específico ao passar `update_insert_deduplication_token_in_dependent_materialized_views` [#59544](https://github.com/ClickHouse/ClickHouse/pull/59544) ([Jordi Villar](https://github.com/jrdi)).
* Corrigido o resultado incorreto de arrayElement / map com valor vazio [#59594](https://github.com/ClickHouse/ClickHouse/pull/59594) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige falha em topK ao mesclar estados vazios [#59603](https://github.com/ClickHouse/ClickHouse/pull/59603) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigida tabela distribuída com uma chave de sharding constante [#59606](https://github.com/ClickHouse/ClickHouse/pull/59606) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrigir o problema de KQL encontrado pelo WingFuzz [#59626](https://github.com/ClickHouse/ClickHouse/pull/59626) ([Yong Wang](https://github.com/kashwy)).
* Corrigido o erro "Read beyond last offset" no AsynchronousBoundedReadBuffer [#59630](https://github.com/ClickHouse/ClickHouse/pull/59630) ([Vitaly Baranov](https://github.com/vitlibar)).
* Preservar o alias da função em RewriteSumFunctionWithSumAndCountVisitor [#59658](https://github.com/ClickHouse/ClickHouse/pull/59658) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige o horário de início de consultas não iniciais [#59662](https://github.com/ClickHouse/ClickHouse/pull/59662) ([Raúl Marín](https://github.com/Algunenano)).
* Validar os tipos de argumentos do índice de skipping `minmax` [#59733](https://github.com/ClickHouse/ClickHouse/pull/59733) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige a função leftPad / rightPad com entrada do tipo FixedString [#59739](https://github.com/ClickHouse/ClickHouse/pull/59739) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige problema identificado pelo AST fuzzer na função `countMatches` [#59752](https://github.com/ClickHouse/ClickHouse/pull/59752) ([Robert Schulze](https://github.com/rschu1ze)).
* RabbitMQ: correção do caso em que não havia mensagens com ack nem com nack [#59775](https://github.com/ClickHouse/ClickHouse/pull/59775) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige o StorageURL, que executava parte da consulta em uma única thread [#59833](https://github.com/ClickHouse/ClickHouse/pull/59833) ([Michael Kolupaev](https://github.com/al13n321)).
* S3Queue: corrige valor não inicializado [#59897](https://github.com/ClickHouse/ClickHouse/pull/59897) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigida a análise sintática de expressões de partição entre parênteses [#59901](https://github.com/ClickHouse/ClickHouse/pull/59901) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige falha no formato JSONColumnsWithMetadata via HTTP [#59925](https://github.com/ClickHouse/ClickHouse/pull/59925) ([Kruglov Pavel](https://github.com/Avogar)).
* Não reescreva `sum` como `count` se o valor de retorno for diferente no Analyzer [#59926](https://github.com/ClickHouse/ClickHouse/pull/59926) ([Azat Khuzhin](https://github.com/azat)).
* Correção de falha na leitura do UniqExactSet [#59928](https://github.com/ClickHouse/ClickHouse/pull/59928) ([Maksim Kita](https://github.com/kitaisreal)).
* Correção de metadata\_version inválida no ReplicatedMergeTree [#59946](https://github.com/ClickHouse/ClickHouse/pull/59946) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrigida uma condição de corrida em `StorageDistributed` [#59987](https://github.com/ClickHouse/ClickHouse/pull/59987) ([Nikita Taranov](https://github.com/nickitat)).
* Docker: executar scripts de inicialização quando a opção estiver ativada, e não desativada [#59991](https://github.com/ClickHouse/ClickHouse/pull/59991) ([jktng](https://github.com/jktng)).
* Corrige INSERT no `SQLite` com aspas simples (escapando aspas simples com aspas, em vez de barra invertida) [#60015](https://github.com/ClickHouse/ClickHouse/pull/60015) ([Azat Khuzhin](https://github.com/azat)).
* Corrigidos vários erros lógicos no `arrayFold` [#60022](https://github.com/ClickHouse/ClickHouse/pull/60022) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige o optimize\_uniq\_to\_count ao remover o alias da coluna [#60026](https://github.com/ClickHouse/ClickHouse/pull/60026) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige possível exceção na tabela S3Queue ao executar DROP [#60036](https://github.com/ClickHouse/ClickHouse/pull/60036) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige a formatação de NOT com literais isolados [#60042](https://github.com/ClickHouse/ClickHouse/pull/60042) ([Raúl Marín](https://github.com/Algunenano)).
* Usar max\_query\_size do contexto em DDLLogEntry em vez do valor fixo 4096 [#60083](https://github.com/ClickHouse/ClickHouse/pull/60083) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige a formatação inconsistente de consultas que contêm tabelas chamadas `table`. Corrige a formatação incorreta de consultas com `UNION ALL`, `INTERSECT` e `EXCEPT` quando a estrutura delas não era linear. Isso fecha #52349. Corrige a formatação incorreta de consultas `SYSTEM`, incluindo `SYSTEM ... DROP FILESYSTEM CACHE`, `SYSTEM ... REFRESH/START/STOP/CANCEL/TEST VIEW` e `SYSTEM ENABLE/DISABLE FAILPOINT`. Corrige a formatação de consultas DDL parametrizadas. Corrige a formatação da consulta `DESCRIBE FILESYSTEM CACHE`. Corrige a formatação incorreta de `SET param_...` (uma consulta que define um parâmetro). Corrige a formatação incorreta de consultas `CREATE INDEX`. Corrige a formatação inconsistente de `CREATE USER` e consultas semelhantes. Corrige a formatação inconsistente de `CREATE SETTINGS PROFILE`. Corrige a formatação incorreta de `ALTER ... MODIFY REFRESH`. Corrige a formatação inconsistente de funções de janela quando os offsets do frame eram expressões. Corrige a formatação inconsistente de `RESPECT NULLS` e `IGNORE NULLS` quando usados após uma função que implementa um operador (como `plus`). Corrige a formatação absurda de `SYSTEM SYNC REPLICA ... LIGHTWEIGHT FROM ...`. Corrige a formatação inconsistente de consultas inválidas com `GROUP BY GROUPING SETS ... WITH ROLLUP/CUBE/TOTALS`. Corrige a formatação inconsistente de `GRANT CURRENT GRANTS`. Corrige a formatação inconsistente de `CREATE TABLE (... COLLATE)`. Além disso, corrigi a formatação incorreta de `EXPLAIN` em subconsultas (#60102). Corrigida a formatação incorreta de funções lambda (#60012). Adicionada uma verificação para evitar que essas aberrações passem despercebidas no futuro. [#60095](https://github.com/ClickHouse/ClickHouse/pull/60095) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a formatação inconsistente do explain em subconsultas [#60102](https://github.com/ClickHouse/ClickHouse/pull/60102) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige travamento de `cosineDistance` com Nullable [#60150](https://github.com/ClickHouse/ClickHouse/pull/60150) ([Raúl Marín](https://github.com/Algunenano)).
* Permite converter bools em formato de string para bools reais [#60160](https://github.com/ClickHouse/ClickHouse/pull/60160) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrigido `system.s3queue_log` [#60166](https://github.com/ClickHouse/ClickHouse/pull/60166) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige arrayReduce com nome de função de agregação Nullable [#60188](https://github.com/ClickHouse/ClickHouse/pull/60188) ([Raúl Marín](https://github.com/Algunenano)).
* Oculta informações sensíveis para `S3Queue` [#60233](https://github.com/ClickHouse/ClickHouse/pull/60233) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigidos os códigos de exceção HTTP. [#60252](https://github.com/ClickHouse/ClickHouse/pull/60252) ([Austin Kothig](https://github.com/kothiga)).
* S3Queue: corrige um erro (também corrige o teste instável test\_storage\_s3\_queue/test.py::test\_shards\_distributed) [#60282](https://github.com/ClickHouse/ClickHouse/pull/60282) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige o uso de valor não inicializado e resultado inválido em funções de hash com IPv6 [#60359](https://github.com/ClickHouse/ClickHouse/pull/60359) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige o OptimizeDateOrDateTimeConverterWithPreimageVisitor com argumentos nulos [#60453](https://github.com/ClickHouse/ClickHouse/pull/60453) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigido um pequeno bug que impedia a execução, em réplicas, de consultas de tabelas distribuídas enviadas por clientes dos dialetos KQL ou PRQL. [#59674](https://github.com/ClickHouse/ClickHouse/issues/59674). [#60470](https://github.com/ClickHouse/ClickHouse/pull/60470) ([Alexey Milovidov](https://github.com/alexey-milovidov)) [#59674](https://github.com/ClickHouse/ClickHouse/pull/59674) ([Austin Kothig](https://github.com/kothiga)).

### <a id="241" /> Lançamento do ClickHouse 24.1, 2024-01-30. [Apresentação](https://presentations.clickhouse.com/2024-release-24.1/), [Vídeo](https://www.youtube.com/watch?v=pBF9g0wGAGs)

<Frame>
  <iframe src="https://www.youtube.com/embed/pBF9g0wGAGs" 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>

* A configuração `print_pretty_type_names` agora vem ativada por padrão. Você pode desativá-la para manter o comportamento antigo ou usar `SET compatibility = '23.12'`. [#57726](https://github.com/ClickHouse/ClickHouse/pull/57726) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A configuração do MergeTree `clean_deleted_rows` foi descontinuada e não tem mais efeito. A palavra-chave `CLEANUP` para `OPTIMIZE` não é permitida por padrão (a menos que `allow_experimental_replacing_merge_with_cleanup` esteja ativada). [#58316](https://github.com/ClickHouse/ClickHouse/pull/58316) ([Alexander Tokmakov](https://github.com/tavplubix)).
* A função `reverseDNSQuery` não está mais disponível. Isso encerra [#58368](https://github.com/ClickHouse/ClickHouse/issues/58368). [#58369](https://github.com/ClickHouse/ClickHouse/pull/58369) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ative várias mudanças para melhorar o controle de acesso no arquivo de configuração. Essas mudanças afetam o comportamento, e você deve verificar o `config.xml` na seção `access_control_improvements`. Caso não tenha certeza, mantenha os valores no arquivo de configuração como estavam na versão anterior. [#58584](https://github.com/ClickHouse/ClickHouse/pull/58584) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Melhora o funcionamento de `sumMapFiltered` com valores NaN. Os valores NaN agora são colocados no final (em vez de aleatoriamente) e considerados diferentes de quaisquer outros valores. `-0` agora também é tratado como igual a `0`; como valores 0 são descartados, valores `-0` também são descartados. [#58959](https://github.com/ClickHouse/ClickHouse/pull/58959) ([Raúl Marín](https://github.com/Algunenano)).
* A função `visibleWidth` passará a se comportar de acordo com a documentação. Em versões anteriores, ela simplesmente contava pontos de código após a serialização da string, como a função `lengthUTF8`, mas não considerava caracteres de largura zero e caracteres combinantes, caracteres de largura total, tabulações e caracteres de exclusão. Agora, o comportamento foi alterado em conformidade. Se você quiser manter o comportamento antigo, defina `function_visible_width_behavior` como `0` ou `compatibility` como `23.12` ou inferior. [#59022](https://github.com/ClickHouse/ClickHouse/pull/59022) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O dialeto `Kusto` está desativado até que estes dois bugs sejam corrigidos: [#59037](https://github.com/ClickHouse/ClickHouse/issues/59037) e [#59036](https://github.com/ClickHouse/ClickHouse/issues/59036). [#59305](https://github.com/ClickHouse/ClickHouse/pull/59305) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Qualquer tentativa de usar `Kusto` resultará em uma exceção.
* Uma implementação mais eficiente do modificador `FINAL` não garante mais a preservação da ordem, mesmo se `max_threads = 1`. Se você dependia do comportamento anterior, defina `enable_vertical_final` como 0 ou `compatibility` como `23.12`.

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

* Implementa o tipo de dado Variant, que representa uma união de outros tipos de dados. O tipo `Variant(T1, T2, ..., TN)` significa que cada linha desse tipo tem um valor do tipo `T1`, `T2`, ... ou `TN`, ou nenhum deles (valor `NULL`). O tipo Variant está disponível com a configuração `allow_experimental_variant_type`. Referência: [#54864](https://github.com/ClickHouse/ClickHouse/issues/54864). [#58047](https://github.com/ClickHouse/ClickHouse/pull/58047) ([Kruglov Pavel](https://github.com/Avogar)).
* Agora, determinadas configurações (atualmente `min_compress_block_size` e `max_compress_block_size`) podem ser especificadas no nível da coluna, onde têm prioridade sobre a configuração correspondente no nível da tabela. Exemplo: `CREATE TABLE tab (col String SETTINGS (min_compress_block_size = 81920, max_compress_block_size = 163840)) ENGINE = MergeTree ORDER BY tuple();`. [#55201](https://github.com/ClickHouse/ClickHouse/pull/55201) ([Duc Canh Le](https://github.com/canhld94)).
* Adiciona a função de agregação `quantileDD`, bem como as correspondentes `quantilesDD` e `medianDD`. Ela se baseia no DDSketch [https://www.vldb.org/pvldb/vol12/p2195-masson.pdf](https://www.vldb.org/pvldb/vol12/p2195-masson.pdf). ### Item da documentação para alterações voltadas ao usuário. [#56342](https://github.com/ClickHouse/ClickHouse/pull/56342) ([Srikanth Chekuri](https://github.com/srikanthccv)).
* Permite configurar qualquer tipo de armazenamento de objetos com qualquer tipo de metadado. [#58357](https://github.com/ClickHouse/ClickHouse/pull/58357) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adicionados os modos `null_status_on_timeout_only_active` e `throw_only_active` para `distributed_ddl_output_mode`, que permitem não esperar por réplicas inativas. [#58350](https://github.com/ClickHouse/ClickHouse/pull/58350) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Adicionar a função `arrayShingles` para gerar subarrays; por exemplo, `arrayShingles([1, 2, 3, 4, 5], 3)` retorna `[[1,2,3],[2,3,4],[3,4,5]]`. [#58396](https://github.com/ClickHouse/ClickHouse/pull/58396) ([Zheng Miao](https://github.com/zenmiao7)).
* Foram adicionadas as funções `punycodeEncode`, `punycodeDecode`, `idnaEncode` e `idnaDecode`, úteis para converter nomes de domínio internacionalizados em uma representação ASCII de acordo com o padrão IDNA. [#58454](https://github.com/ClickHouse/ClickHouse/pull/58454) ([Robert Schulze](https://github.com/rschu1ze)).
* Adicionadas as funções de similaridade entre strings `dramerauLevenshteinDistance`, `jaroSimilarity` e `jaroWinklerSimilarity`. [#58531](https://github.com/ClickHouse/ClickHouse/pull/58531) ([Robert Schulze](https://github.com/rschu1ze)).
* Adiciona duas configurações: `output_format_compression_level`, para alterar o nível de compressão de saída, e `output_format_compression_zstd_window_log`, para definir explicitamente o tamanho da janela de compressão e habilitar o modo de longo alcance para a compressão zstd, caso o método de compressão de saída seja `zstd`. Aplicado a `INTO OUTFILE` e à gravação em table functions `file`, `url`, `hdfs`, `s3` e `azureBlobStorage`. [#58539](https://github.com/ClickHouse/ClickHouse/pull/58539) ([Duc Canh Le](https://github.com/canhld94)).
* Desabilita automaticamente as sequências de escape ANSI nos formatos Pretty quando a saída não é um terminal. Adiciona o novo modo `auto` à configuração `output_format_pretty_color`. [#58614](https://github.com/ClickHouse/ClickHouse/pull/58614) ([Shaun Struwig](https://github.com/Blargian)).
* Adicionada a função `sqidDecode`, que decodifica [Sqids](https://sqids.org/). [#58544](https://github.com/ClickHouse/ClickHouse/pull/58544) ([Robert Schulze](https://github.com/rschu1ze)).
* Permite ler valores Bool como String em formatos de entrada JSON. Isso é feito com a configuração `input_format_json_read_bools_as_strings`, que vem habilitada por padrão. [#58561](https://github.com/ClickHouse/ClickHouse/pull/58561) ([Kruglov Pavel](https://github.com/Avogar)).
* Adicionada a função `seriesDecomposeSTL`, que decompõe uma série temporal em sazonalidade, tendência e um componente residual. [#57078](https://github.com/ClickHouse/ClickHouse/pull/57078) ([Bhavna Jindal](https://github.com/bhavnajindal)).
* Adicionado o cliente MySQL Binlog para MaterializedMySQL: uma conexão de binlog para vários bancos de dados. [#57323](https://github.com/ClickHouse/ClickHouse/pull/57323) ([Val Doroshchuk](https://github.com/valbok)).
* A Intel QuickAssist Technology (QAT) fornece compressão e criptografia aceleradas por hardware. O ClickHouse recebeu um novo codec de compressão `ZSTD_QAT`, que utiliza QAT para compressão zstd. O codec usa a [QATlib da Intel](https://github.com/intel/qatlib) e o [plugin QAT ZSTD da Intel](https://github.com/intel/QAT-ZSTD-Plugin). No momento, apenas a compressão pode ser acelerada por hardware (um fallback para software entra em ação caso o QAT não possa ser inicializado); a descompressão sempre é executada por software. [#57509](https://github.com/ClickHouse/ClickHouse/pull/57509) ([jasperzhu](https://github.com/jinjunzh)).
* Implementação de uma nova forma de gerar as chaves do armazenamento de objetos para discos S3. Agora, o formato pode ser definido com a sintaxe de regex `re2`, usando a opção `key_template` na descrição do disco. [#57663](https://github.com/ClickHouse/ClickHouse/pull/57663) ([Sema Checherinda](https://github.com/CheSema)).
* A tabela system.dropped\_tables\_parts contém partes das tabelas system.dropped\_tables (tabelas descartadas, mas ainda não removidas). [#58038](https://github.com/ClickHouse/ClickHouse/pull/58038) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Adicionada a configuração `max_materialized_views_size_for_table` para limitar o número de visões materializadas vinculadas a uma tabela. [#58068](https://github.com/ClickHouse/ClickHouse/pull/58068) ([zhongyuankai](https://github.com/zhongyuankai)).
* Melhorias no `clickhouse-format`: suporte a consultas INSERT com `VALUES`; suporte a comentários (use `--comments` para exibi-los); suporte à opção `--max_line_length` para formatar apenas consultas longas em várias linhas. [#58246](https://github.com/ClickHouse/ClickHouse/pull/58246) ([vdimir](https://github.com/vdimir)).
* Anexa todas as tabelas do sistema no `clickhouse-local`, incluindo `system.parts`. Fecha [#58312](https://github.com/ClickHouse/ClickHouse/issues/58312). [#58359](https://github.com/ClickHouse/ClickHouse/pull/58359) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suporte a tipos de dados `Enum` na função `transform`. Isso fecha [#58241](https://github.com/ClickHouse/ClickHouse/issues/58241). [#58360](https://github.com/ClickHouse/ClickHouse/pull/58360) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionada a tabela `system.database_engines`. [#58390](https://github.com/ClickHouse/ClickHouse/pull/58390) ([Bharat Nallan](https://github.com/bharatnc)). Permite registrar motores de banco de dados independentemente no código-base. [#58365](https://github.com/ClickHouse/ClickHouse/pull/58365) ([Bharat Nallan](https://github.com/bharatnc)). Permite registrar interpretadores de forma independente. [#58443](https://github.com/ClickHouse/ClickHouse/pull/58443) ([Bharat Nallan](https://github.com/bharatnc)).
* Adicionado o modificador `FROM <Replicas>` à consulta `SYSTEM SYNC REPLICA LIGHTWEIGHT`. Com o modificador `FROM`, garantimos que aguardamos fetches e drop-ranges apenas das réplicas de origem especificadas, bem como de qualquer réplica que não esteja no zookeeper ou com source\_replica vazio. [#58393](https://github.com/ClickHouse/ClickHouse/pull/58393) ([Jayme Bird](https://github.com/jaymebrd)).
* Adicionada a configuração `update_insert_deduplication_token_in_dependent_materialized_views`. Essa configuração permite atualizar o token de desduplicação de insert com o identificador da tabela durante o insert em visões materializadas dependentes. Corrige [#59165](https://github.com/ClickHouse/ClickHouse/issues/59165). [#59238](https://github.com/ClickHouse/ClickHouse/pull/59238) ([Maksim Kita](https://github.com/kitaisreal)).
* Adicionada a instrução `SYSTEM RELOAD ASYNCHRONOUS METRICS`, que atualiza as métricas assíncronas. Útil principalmente para testes e desenvolvimento. [#53710](https://github.com/ClickHouse/ClickHouse/pull/53710) ([Robert Schulze](https://github.com/rschu1ze)).

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

* A coordenação para réplicas paralelas foi reescrita para proporcionar melhor paralelismo e melhor localidade de cache. Ela foi testada quanto à escalabilidade linear em centenas de réplicas. Também passou a oferecer suporte à leitura em ordem. [#57968](https://github.com/ClickHouse/ClickHouse/pull/57968) ([Nikita Taranov](https://github.com/nickitat)).
* Substitua o buffer de saída HTTP pelos buffers nativos do ClickHouse. Adicione métricas de contagem de bytes para as interfaces. [#56064](https://github.com/ClickHouse/ClickHouse/pull/56064) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Grandes estados de agregação de `uniqExact` passarão a ser mesclados em paralelo em consultas distribuídas. [#59009](https://github.com/ClickHouse/ClickHouse/pull/59009) ([Nikita Taranov](https://github.com/nickitat)).
* Menor uso de memória após a leitura de tabelas `MergeTree`. [#59290](https://github.com/ClickHouse/ClickHouse/pull/59290) ([Anton Popov](https://github.com/CurtizJ)).
* Menor consumo de memória nas mesclagens verticais. [#59340](https://github.com/ClickHouse/ClickHouse/pull/59340) ([Anton Popov](https://github.com/CurtizJ)).
* Evite consumo excessivo de memória durante a inicialização do Keeper em mais situações. [#58455](https://github.com/ClickHouse/ClickHouse/pull/58455) ([Antonio Andelic](https://github.com/antonio2368)).
* Melhoria no Keeper: redução do uso de memória do Keeper para nós armazenados. [#59002](https://github.com/ClickHouse/ClickHouse/pull/59002) ([Antonio Andelic](https://github.com/antonio2368)).
* Implementação de `FINAL` mais amigável ao cache. Observação sobre a mudança de comportamento: anteriormente, consultas com o modificador `FINAL` que liam com um único stream (por exemplo, `max_threads = 1`) produziam saída ordenada sem uma cláusula `ORDER BY` explicitamente especificada. Isso não é mais garantido quando `enable_vertical_final = true` (e esse é o padrão). [#54366](https://github.com/ClickHouse/ClickHouse/pull/54366) ([Duc Canh Le](https://github.com/canhld94)).
* Evita cópia extra em `ReadBufferFromIStream`, que é usado, por exemplo, para leitura do S3. [#56961](https://github.com/ClickHouse/ClickHouse/pull/56961) ([Nikita Taranov](https://github.com/nickitat)).
* Otimização da função de elemento de array quando a entrada é Array(Map)/Array(Array(Num)/Array(Array(String))/Array(BigInt)/Array(Decimal). As implementações anteriores faziam mais alocações do que o necessário. O ganho de desempenho com a otimização chega a \~6x, especialmente quando o tipo de entrada é Array(Map). [#56403](https://github.com/ClickHouse/ClickHouse/pull/56403) ([李扬](https://github.com/taiyang-li)).
* Ler a coluna uma única vez ao ler mais de uma subcoluna dela em partes compactas. [#57631](https://github.com/ClickHouse/ClickHouse/pull/57631) ([Kruglov Pavel](https://github.com/Avogar)).
* Reescrita da AST da função `sum(column + constant)`. Isso está disponível como uma etapa de otimização do Analisador [#57853](https://github.com/ClickHouse/ClickHouse/pull/57853) ([Jiebin Sun](https://github.com/jiebinn)).
* A função `match` agora é avaliada usando os índices de skipping `ngrambf_v1` e `tokenbf_v1`. [#57882](https://github.com/ClickHouse/ClickHouse/pull/57882) ([凌涛](https://github.com/lingtaolf)).
* A avaliação da função `match` agora usa índices invertidos. [#58284](https://github.com/ClickHouse/ClickHouse/pull/58284) ([凌涛](https://github.com/lingtaolf)).
* O `FINAL` do MergeTree não compara linhas de uma mesma parte não L0. [#58142](https://github.com/ClickHouse/ClickHouse/pull/58142) ([Duc Canh Le](https://github.com/canhld94)).
* Acelerar chamadas de iota (preenchimento de array com números consecutivos). [#58271](https://github.com/ClickHouse/ClickHouse/pull/58271) ([Raúl Marín](https://github.com/Algunenano)).
* Melhoria de desempenho de MIN/MAX para tipos não numéricos. [#58334](https://github.com/ClickHouse/ClickHouse/pull/58334) ([Raúl Marín](https://github.com/Algunenano)).
* Otimize a combinação de filtros (como em PREWHERE em múltiplos estágios) com intrínsecos BMI2/SSE [#58800](https://github.com/ClickHouse/ClickHouse/pull/58800) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Use uma thread a menos no `clickhouse-local`. [#58968](https://github.com/ClickHouse/ClickHouse/pull/58968) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Melhora no desempenho da função `multiIf` quando o tipo é Nullable. [#57745](https://github.com/ClickHouse/ClickHouse/pull/57745) ([KevinyhZou](https://github.com/KevinyhZou)).
* Adiciona `SYSTEM JEMALLOC PURGE` para liberar páginas jemalloc não utilizadas, `SYSTEM JEMALLOC [ ENABLE | DISABLE | FLUSH ] PROFILE` para controlar o perfil do jemalloc se o profiler estiver habilitado. Adiciona comandos 4LW relacionados ao jemalloc no Keeper: `jmst` para gerar um dump das estatísticas do jemalloc, `jmfp`, `jmep`, `jmdp` para controlar o perfil do jemalloc se o profiler estiver habilitado. [#58665](https://github.com/ClickHouse/ClickHouse/pull/58665) ([Antonio Andelic](https://github.com/antonio2368)).
* Menor consumo de memória nos backups para S3. [#58962](https://github.com/ClickHouse/ClickHouse/pull/58962) ([Vitaly Baranov](https://github.com/vitlibar)).

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

* Adicionados comentários (breves descrições) a todas as colunas das tabelas de sistema. Há vários motivos para isso: - Usamos bastante as tabelas de sistema, e às vezes pode ser muito difícil para o desenvolvedor entender a finalidade e o significado de uma determinada coluna. - Alteramos com frequência as tabelas de sistema (adicionando novas ou modificando as existentes), e a documentação delas está sempre desatualizada. Por exemplo, dê uma olhada na página de documentação de [`system.parts`](/pt-BR/reference/system-tables/parts). Faltam muitas colunas - Gostaríamos, no futuro, de gerar a documentação diretamente do ClickHouse. [#58356](https://github.com/ClickHouse/ClickHouse/pull/58356) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Permite consultas sem alias para subconsultas no `PASTE JOIN`. [#58654](https://github.com/ClickHouse/ClickHouse/pull/58654) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Ativa a integração de `MySQL`/`MariaDB` no macOS. Fecha [#21191](https://github.com/ClickHouse/ClickHouse/issues/21191). [#46316](https://github.com/ClickHouse/ClickHouse/pull/46316) ([Alexey Milovidov](https://github.com/alexey-milovidov)) ([Robert Schulze](https://github.com/rschu1ze)).
* Desabilitado `max_rows_in_set_to_optimize_join` por padrão. [#56396](https://github.com/ClickHouse/ClickHouse/pull/56396) ([vdimir](https://github.com/vdimir)).
* Adicionado o parâmetro de configuração `<host_name>`, que permite evitar resolver nomes de host em consultas DDL com ON CLUSTER e em motores de banco de dados Replicated. Isso reduz a possibilidade de a fila ficar travada em caso de alteração na definição do cluster. Fecha [#57573](https://github.com/ClickHouse/ClickHouse/issues/57573). [#57603](https://github.com/ClickHouse/ClickHouse/pull/57603) ([Nikolay Degterinsky](https://github.com/evillique)).
* Aumente `load_metadata_threads` para 16 no cache do sistema de arquivos. Isso fará o servidor iniciar mais rápido. [#57732](https://github.com/ClickHouse/ClickHouse/pull/57732) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionada a capacidade de limitar a taxa de merges/mutações (`max_mutations_bandwidth_for_server`/`max_merges_bandwidth_for_server`). [#57877](https://github.com/ClickHouse/ClickHouse/pull/57877) ([Azat Khuzhin](https://github.com/azat)).
* Substituiu a coluna não documentada (booleana) `is_hot_reloadable` na tabela de sistema `system.server_settings` pela coluna (Enum8) `changeable_without_restart`, com os valores possíveis `No`, `Yes`, `IncreaseOnly` e `DecreaseOnly`. A coluna também foi documentada. [#58029](https://github.com/ClickHouse/ClickHouse/pull/58029) ([skyoct](https://github.com/skyoct)).
* A descoberta de cluster permite definir nome de usuário e senha, fecha [#58063](https://github.com/ClickHouse/ClickHouse/issues/58063). [#58123](https://github.com/ClickHouse/ClickHouse/pull/58123) ([vdimir](https://github.com/vdimir)).
* Suporte para parâmetros de consulta em `ALTER TABLE ... PART`. [#58297](https://github.com/ClickHouse/ClickHouse/pull/58297) ([Azat Khuzhin](https://github.com/azat)).
* Criar consumidores para tabelas do Kafka sob demanda (mas mantê-los por algum tempo — `kafka_consumers_pool_ttl_ms`, desde o último uso); isso deve corrigir o problema com as estatísticas de `system.kafka_consumers` (que não eram atualizadas quando ninguém lia da tabela do Kafka, o que levava a um vazamento contínuo de memória e à lentidão ao desanexar a tabela) e também faz com que este PR volte a habilitar, por padrão, as estatísticas de `system.kafka_consumers`. [#58310](https://github.com/ClickHouse/ClickHouse/pull/58310) ([Azat Khuzhin](https://github.com/azat)).
* `sparkBar` como alias de `sparkbar`. [#58335](https://github.com/ClickHouse/ClickHouse/pull/58335) ([凌涛](https://github.com/lingtaolf)).
* Evite enviar solicitações `ComposeObject` depois do upload para o `GCS`. [#58343](https://github.com/ClickHouse/ClickHouse/pull/58343) ([Azat Khuzhin](https://github.com/azat)).
* Lida corretamente com chaves com ponto no nome em arquivos XML de configuração. [#58354](https://github.com/ClickHouse/ClickHouse/pull/58354) ([Azat Khuzhin](https://github.com/azat)).
* Faz a função `format` retornar uma constante quando recebe argumentos constantes. Isso encerra [#58355](https://github.com/ClickHouse/ClickHouse/issues/58355). [#58358](https://github.com/ClickHouse/ClickHouse/pull/58358) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionada a configuração `max_estimated_execution_time` para separar `max_execution_time` de `max_estimated_execution_time`. [#58402](https://github.com/ClickHouse/ClickHouse/pull/58402) ([Zhang Yifan](https://github.com/zhangyifan27)).
* Exibe uma dica quando um nome inválido de mecanismo de banco de dados é usado. [#58444](https://github.com/ClickHouse/ClickHouse/pull/58444) ([Bharat Nallan](https://github.com/bharatnc)).
* Adiciona configurações para um melhor controle do tipo de índices no dicionário Arrow. Usa, por padrão, o tipo inteiro com sinal para índices, como recomendado pelo Arrow. Fecha [#57401](https://github.com/ClickHouse/ClickHouse/issues/57401). [#58519](https://github.com/ClickHouse/ClickHouse/pull/58519) ([Kruglov Pavel](https://github.com/Avogar)).
* Implementado [#58575](https://github.com/ClickHouse/ClickHouse/issues/58575) suporte à variável de ambiente `CLICKHOUSE_PASSWORD_FILE ` na execução da imagem Docker. [#58583](https://github.com/ClickHouse/ClickHouse/pull/58583) ([Eyal Halpern Shalev](https://github.com/Eyal-Shalev)).
* Ao executar algumas consultas que exigem muitos streams para ler dados, antes era gerado o erro `"Paste JOIN requires sorted tables only"`. Agora, o número de streams é ajustado para 1 nesse caso. [#58608](https://github.com/ClickHouse/ClickHouse/pull/58608) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Mensagem de erro melhor para INVALID\_IDENTIFIER. [#58703](https://github.com/ClickHouse/ClickHouse/pull/58703) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Tratamento aprimorado de literais numéricos com sinal em normalizeQuery. [#58710](https://github.com/ClickHouse/ClickHouse/pull/58710) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Suporte ao tipo de dado Point para MySQL. [#58721](https://github.com/ClickHouse/ClickHouse/pull/58721) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ao comparar uma coluna Float32 com uma string constante, leia a string como Float32 (em vez de Float64). [#58724](https://github.com/ClickHouse/ClickHouse/pull/58724) ([Raúl Marín](https://github.com/Algunenano)).
* Melhorada a compatibilidade com S3, com adição de suporte ao armazenamento ECloud EOS. [#58786](https://github.com/ClickHouse/ClickHouse/pull/58786) ([xleoken](https://github.com/xleoken)).
* Permite que `KILL QUERY` cancele backups / restaurações. Este PR também torna visíveis em `system.processes` os backups e as restaurações em execução. Além disso, agora há uma nova configuração na configuração do servidor: `shutdown_wait_backups_and_restores` (default=true), que faz com que o servidor, ao ser desligado, espere a conclusão de todos os backups e restaurações em execução ou simplesmente os cancele. [#58804](https://github.com/ClickHouse/ClickHouse/pull/58804) ([Vitaly Baranov](https://github.com/vitlibar)).
* Formato Avro com suporte ao codec ZSTD. Corrige [#58735](https://github.com/ClickHouse/ClickHouse/issues/58735). [#58805](https://github.com/ClickHouse/ClickHouse/pull/58805) ([flynn](https://github.com/ucasfl)).
* A interface MySQL ganhou suporte às configurações `net_write_timeout` e `net_read_timeout`. `net_write_timeout` é mapeada para a configuração nativa `send_timeout` do ClickHouse e, da mesma forma, `net_read_timeout` para `receive_timeout`. Foi corrigido um problema em que só era possível definir a configuração MySQL `sql_select_limit` se toda a instrução estivesse em letras maiúsculas. [#58835](https://github.com/ClickHouse/ClickHouse/pull/58835) ([Serge Klochkov](https://github.com/slvrtrn)).
* Uma mensagem de exceção melhor em caso de conflito ao criar Dicionário e tabela com o mesmo nome. [#58841](https://github.com/ClickHouse/ClickHouse/pull/58841) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Certifique-se de que, para discos personalizados (criados a partir de SQL), `filesystem_caches_path` (um prefixo de diretório comum para todos os caches do filesystem) ou `custom_cached_disks_base_directory` (um prefixo de diretório comum apenas para caches do filesystem criados a partir de discos personalizados) esteja especificado na configuração do servidor. `custom_cached_disks_base_directory` tem prioridade maior para discos personalizados em relação a `filesystem_caches_path`, que é usado se o primeiro não estiver presente. A configuração `path` do filesystem cache deve estar dentro desse diretório; caso contrário, será lançada uma exceção, impedindo a criação do disco. Isso não afetará discos criados em uma versão mais antiga cujo servidor tenha sido atualizado — nesse caso, a exceção não será lançada para permitir que o servidor seja iniciado com sucesso. `custom_cached_disks_base_directory` foi adicionado à configuração padrão do servidor como `/var/lib/clickhouse/caches/`. Fecha [#57825](https://github.com/ClickHouse/ClickHouse/issues/57825). [#58869](https://github.com/ClickHouse/ClickHouse/pull/58869) ([Kseniia Sumarokova](https://github.com/kssenii)).
* A interface do MySQL passou a ser compatível com as consultas `SHOW WARNINGS`/`SHOW COUNT(*) WARNINGS`, embora o resultado retornado seja sempre um conjunto vazio. [#58929](https://github.com/ClickHouse/ClickHouse/pull/58929) ([Serge Klochkov](https://github.com/slvrtrn)).
* Ignorar réplicas indisponíveis ao executar `INSERT SELECT` distribuído em paralelo. [#58931](https://github.com/ClickHouse/ClickHouse/pull/58931) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Exibe o nível de log com descrição textual ao habilitar a formatação estruturada de logs em JSON. [#58936](https://github.com/ClickHouse/ClickHouse/pull/58936) ([Tim Liou](https://github.com/wheatdog)).
* A interface MySQL passou a oferecer suporte às instruções `CAST(x AS SIGNED)` e `CAST(x AS UNSIGNED)` por meio de aliases de tipos de dados: `SIGNED` para Int64 e `UNSIGNED` para UInt64. Isso melhora a compatibilidade com ferramentas de BI, como o Looker Studio. [#58954](https://github.com/ClickHouse/ClickHouse/pull/58954) ([Serge Klochkov](https://github.com/slvrtrn)).
* Diretório de trabalho alterado para o caminho de dados no contêiner Docker. [#58975](https://github.com/ClickHouse/ClickHouse/pull/58975) ([cangyin](https://github.com/cangyin)).
* Adicionada a configuração para Azure Blob Storage `azure_max_unexpected_write_error_retries`, que também pode ser definida no arquivo de configuração, na seção azure. [#59001](https://github.com/ClickHouse/ClickHouse/pull/59001) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Permitir que o servidor inicie com uma tabela de lago de dados corrompida. Fecha [#58625](https://github.com/ClickHouse/ClickHouse/issues/58625). [#59080](https://github.com/ClickHouse/ClickHouse/pull/59080) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Permite ignorar a evolução do schema no engine de tabela `Iceberg` e ler todos os dados usando o schema especificado pelo usuário na criação da tabela ou o schema mais recente analisado a partir dos metadados no momento da criação da tabela. Isso é feito por meio da configuração `iceberg_engine_ignore_schema_evolution`, que vem desabilitada por padrão. Observe que habilitar essa configuração pode levar a resultados incorretos, pois, em caso de evolução do schema, todos os data files serão lidos usando o mesmo schema. [#59133](https://github.com/ClickHouse/ClickHouse/pull/59133) ([Kruglov Pavel](https://github.com/Avogar)).
* Proíba operações mutáveis (`INSERT`/`ALTER`/`OPTIMIZE`/...) em armazenamentos somente leitura/de gravação única com o erro `TABLE_IS_READ_ONLY` apropriado (para evitar sobras). Evite deixar sobras em discos de gravação única (`format_version.txt`) em `CREATE`/`ATTACH`. Ignore `DROP` para `ReplicatedMergeTree` (assim como para `MergeTree`). Corrija a iteração em `s3_plain` (`MetadataStorageFromPlainObjectStorage::iterateDirectory`). Observe que somente leitura corresponde ao disco `web`, e gravação única, a `s3_plain`. [#59170](https://github.com/ClickHouse/ClickHouse/pull/59170) ([Azat Khuzhin](https://github.com/azat)).
* Corrige um erro na coluna experimental `_block_number` que poderia causar um erro lógico durante uma combinação complexa de `ALTER`s e `merge`s. Corrige [#56202](https://github.com/ClickHouse/ClickHouse/issues/56202). Substitui [#58601](https://github.com/ClickHouse/ClickHouse/issues/58601). [#59295](https://github.com/ClickHouse/ClickHouse/pull/59295) ([alesapin](https://github.com/alesapin)).
* A UI Play reconhece quando uma exceção é retornada em JSON. Ajuste para [#52853](https://github.com/ClickHouse/ClickHouse/issues/52853). [#59303](https://github.com/ClickHouse/ClickHouse/pull/59303) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O handler HTTP `/binary` permite especificar usuário, host e, opcionalmente, senha na query string. [#59311](https://github.com/ClickHouse/ClickHouse/pull/59311) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona suporte a backups para tabelas compactadas em memória. Isso fecha [#57893](https://github.com/ClickHouse/ClickHouse/issues/57893). [#59315](https://github.com/ClickHouse/ClickHouse/pull/59315) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suporte à cláusula `FORMAT` em consultas `BACKUP` e `RESTORE`. [#59338](https://github.com/ClickHouse/ClickHouse/pull/59338) ([Vitaly Baranov](https://github.com/vitlibar)).
* A função `concatWithSeparator` agora aceita tipos de argumento arbitrários (em vez de apenas argumentos `String` e `FixedString`). Por exemplo, `SELECT concatWithSeparator('.', 'number', 1)` agora retorna `number.1`. [#59341](https://github.com/ClickHouse/ClickHouse/pull/59341) ([Robert Schulze](https://github.com/rschu1ze)).

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

* Melhora os aliases do binário `clickhouse` (agora `ch`/`clickhouse` é `clickhouse-local` ou `clickhouse`, dependendo dos argumentos) e adiciona autocompletar no bash para os novos aliases. [#58344](https://github.com/ClickHouse/ClickHouse/pull/58344) ([Azat Khuzhin](https://github.com/azat)).
* Adiciona ao CI uma verificação de alterações em settings para garantir que todas as mudanças em settings sejam refletidas no histórico de alterações de settings. [#58555](https://github.com/ClickHouse/ClickHouse/pull/58555) ([Kruglov Pavel](https://github.com/Avogar)).
* Usa tabelas anexadas diretamente do S3 em testes stateful. [#58791](https://github.com/ClickHouse/ClickHouse/pull/58791) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Salva todo o `fuzzer.log` como um arquivo, em vez de apenas as últimas 100 mil linhas. `tail -n 100000` frequentemente remove linhas com definições de tabelas. Exemplo:. [#58821](https://github.com/ClickHouse/ClickHouse/pull/58821) ([Dmitry Novik](https://github.com/novikd)).
* Habilita Rust no macOS com Aarch64 (isso vai adicionar busca difusa no cliente com skim e a linguagem PRQL, embora eu ache que quase ninguém hospede o ClickHouse no darwin, então eu diria que isso serve principalmente para a busca difusa no cliente). [#59272](https://github.com/ClickHouse/ClickHouse/pull/59272) ([Azat Khuzhin](https://github.com/azat)).
* Corrige um problema de aggregation em clusters mistos x86\_64 e ARM [#59132](https://github.com/ClickHouse/ClickHouse/pull/59132) ([Harry Lee](https://github.com/HarryLeeIBM)).

<div id="bug-fix-user-visible-misbehavior-in-an-official-stable-release-9">
  #### Correção de bug (mau funcionamento visível para o usuário em uma versão estável oficial)
</div>

* Adicionada a conversão das chaves de junção para `LowCardinality` aninhado [#51550](https://github.com/ClickHouse/ClickHouse/pull/51550) ([vdimir](https://github.com/vdimir)).
* Achatar apenas o tipo Nested de fato quando flatten\_nested=1, não todos os Array(Tuple) [#56132](https://github.com/ClickHouse/ClickHouse/pull/56132) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige um bug em projeções e na configuração `aggregate_functions_null_for_empty` durante a inserção. [#56944](https://github.com/ClickHouse/ClickHouse/pull/56944) ([Amos Bird](https://github.com/amosbird)).
* Corrigida uma possível exceção devido a um UUID de perfil desatualizado [#57263](https://github.com/ClickHouse/ClickHouse/pull/57263) ([Vasily Nemkov](https://github.com/Enmk)).
* Correção do funcionamento com buffers de leitura no StreamingFormatExecutor [#57438](https://github.com/ClickHouse/ClickHouse/pull/57438) ([Kruglov Pavel](https://github.com/Avogar)).
* Ignorar MVs com tabela de destino removida ao enviar para views [#57520](https://github.com/ClickHouse/ClickHouse/pull/57520) ([Kruglov Pavel](https://github.com/Avogar)).
* Elimina uma possível condição de corrida entre ALTER\_METADATA e MERGE\_PARTS [#57755](https://github.com/ClickHouse/ClickHouse/pull/57755) ([Azat Khuzhin](https://github.com/azat)).
* Corrige o bug na ordem das expressões no group by com rollup [#57786](https://github.com/ClickHouse/ClickHouse/pull/57786) ([Chen768959](https://github.com/Chen768959)).
* Uma correção para o recurso obsoleto de replicação "zero-copy": corrige blobs perdidos após excluir uma réplica com partes desanexadas corrompidas [#58333](https://github.com/ClickHouse/ClickHouse/pull/58333) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Permitir que os usuários usem links simbólicos em user\_files\_path [#58447](https://github.com/ClickHouse/ClickHouse/pull/58447) ([Duc Canh Le](https://github.com/canhld94)).
* Corrige um travamento quando a tabela graphite não possui uma função agg [#58453](https://github.com/ClickHouse/ClickHouse/pull/58453) ([Duc Canh Le](https://github.com/canhld94)).
* Adiar a leitura de StorageKafka para permitir múltiplas leituras em visões materializadas [#58477](https://github.com/ClickHouse/ClickHouse/pull/58477) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige um caso absurdo de partes sobrepostas [#58482](https://github.com/ClickHouse/ClickHouse/pull/58482) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Desabilitado o MergeTreePrefetchedReadPool para consultas somente com LIMIT [#58505](https://github.com/ClickHouse/ClickHouse/pull/58505) ([Maksim Kita](https://github.com/kitaisreal)).
* Habilita bancos de dados comuns durante a restauração [#58520](https://github.com/ClickHouse/ClickHouse/pull/58520) ([Jihyuk Bok](https://github.com/tomahawk28)).
* Corrige a leitura do threadpool do Apache Hive para ORC/Parquet/... [#58537](https://github.com/ClickHouse/ClickHouse/pull/58537) ([sunny](https://github.com/sunny19930321)).
* Ocultar credenciais na coluna `base_backup_name` de `system.backup_log` [#58550](https://github.com/ClickHouse/ClickHouse/pull/58550) ([Daniel Pozo Escalona](https://github.com/danipozo)).
* `toStartOfInterval` para arredondamento de valores em milissegundos e microssegundos [#58557](https://github.com/ClickHouse/ClickHouse/pull/58557) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Desativado `max_joined_block_rows` no ConcurrentHashJoin [#58595](https://github.com/ClickHouse/ClickHouse/pull/58595) ([vdimir](https://github.com/vdimir)).
* Corrigido o join usando Nullable no analyzer antigo [#58596](https://github.com/ClickHouse/ClickHouse/pull/58596) ([vdimir](https://github.com/vdimir)).
* `makeDateTime64`: Permite argumento de fração não constante [#58597](https://github.com/ClickHouse/ClickHouse/pull/58597) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige possível desreferenciamento de NULL ao simbolizar frames inline [#58607](https://github.com/ClickHouse/ClickHouse/pull/58607) ([Azat Khuzhin](https://github.com/azat)).
* Melhora no isolamento das entradas do cache de consultas em usuários recriados ou em trocas de função [#58611](https://github.com/ClickHouse/ClickHouse/pull/58611) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige a falha na análise da chave de partição ao fazer a otimização de projeção [#58638](https://github.com/ClickHouse/ClickHouse/pull/58638) ([Amos Bird](https://github.com/amosbird)).
* Cache de consultas: correção da cota por usuário [#58731](https://github.com/ClickHouse/ClickHouse/pull/58731) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrigido o particionamento de streams em funções de janela paralelas [#58739](https://github.com/ClickHouse/ClickHouse/pull/58739) ([Dmitry Novik](https://github.com/novikd)).
* Corrige a chamada duplicada de `destroy` ao lançar uma exceção em addBatchLookupTable8 [#58745](https://github.com/ClickHouse/ClickHouse/pull/58745) ([Raúl Marín](https://github.com/Algunenano)).
* Não processar requisições no Keeper durante o desligamento [#58765](https://github.com/ClickHouse/ClickHouse/pull/58765) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigida uma desreferenciação de ponteiro nulo em `SlabsPolygonIndex::find` [#58771](https://github.com/ClickHouse/ClickHouse/pull/58771) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Correção da função JSONExtract para colunas LowCardinality(Nullable) [#58808](https://github.com/ClickHouse/ClickHouse/pull/58808) ([vdimir](https://github.com/vdimir)).
* Uma correção para o acúmulo inesperado de consumo de memória ao criar um grande número de tabelas com CREATE e DROP. [#58831](https://github.com/ClickHouse/ClickHouse/pull/58831) ([Maksim Kita](https://github.com/kitaisreal)).
* Armazenamento de log de arquivo com múltiplas leituras em mv [#58877](https://github.com/ClickHouse/ClickHouse/pull/58877) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Restrição do ID da chave de acesso do S3. [#58900](https://github.com/ClickHouse/ClickHouse/pull/58900) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Corrige uma possível queda no clickhouse-local durante o carregamento de sugestões [#58907](https://github.com/ClickHouse/ClickHouse/pull/58907) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige travamento ao usar `indexHint` [#58911](https://github.com/ClickHouse/ClickHouse/pull/58911) ([Dmitry Novik](https://github.com/novikd)).
* Corrige o problema de o StorageURL esquecer os cabeçalhos ao reiniciar o servidor [#58933](https://github.com/ClickHouse/ClickHouse/pull/58933) ([Michael Kolupaev](https://github.com/al13n321)).
* Analisador: corrige a substituição do armazenamento pelo bloco de inserção [#58958](https://github.com/ClickHouse/ClickHouse/pull/58958) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrigida a operação de seek no ReadBufferFromZipArchive [#58966](https://github.com/ClickHouse/ClickHouse/pull/58966) ([Michael Kolupaev](https://github.com/al13n321)).
* Correção para índices invertidos experimentais (não use em produção): `DROP INDEX` de índice invertido agora remove todos os arquivos relevantes do armazenamento persistente [#59040](https://github.com/ClickHouse/ClickHouse/pull/59040) ([mochi](https://github.com/MochiXu)).
* Corrige uma condição de corrida em query\_factories\_info [#59049](https://github.com/ClickHouse/ClickHouse/pull/59049) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Desabilitar nova tentativa para o erro "Too many redirects" [#59099](https://github.com/ClickHouse/ClickHouse/pull/59099) ([skyoct](https://github.com/skyoct)).
* Corrigido deadlock ao encerrar banco de dados que não foi iniciado [#59137](https://github.com/ClickHouse/ClickHouse/pull/59137) ([Sergei Trifonov](https://github.com/serxa)).
* Correção: LIMIT BY e LIMIT em consulta distribuída [#59153](https://github.com/ClickHouse/ClickHouse/pull/59153) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige travamento com fuso horário Nullable em `toString` [#59190](https://github.com/ClickHouse/ClickHouse/pull/59190) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige falha nos metadados do Iceberg causada por caminhos de arquivo inválidos [#59275](https://github.com/ClickHouse/ClickHouse/pull/59275) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrigido o nome da arquitetura na seleção do alvo Rust [#59307](https://github.com/ClickHouse/ClickHouse/pull/59307) ([p1rattttt](https://github.com/p1rattttt)).
* Corrige um erro lógico relacionado ao "not-ready set" ao consultar `system.tables` com uma subconsulta na cláusula IN. [#59351](https://github.com/ClickHouse/ClickHouse/pull/59351) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).

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