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

# Changelog de 2023

> Changelog de 2023

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

**[Lançamento do ClickHouse v23.12, 2023-12-28](#2312)**<br />
**[Lançamento do ClickHouse v23.11, 2023-12-06](#2311)**<br />
**[Lançamento do ClickHouse v23.10, 2023-11-02](#2310)**<br />
**[Lançamento do ClickHouse v23.9, 2023-09-28](#239)**<br />
**[Lançamento do ClickHouse v23.8 LTS, 2023-08-31](#238)**<br />
**[Lançamento do ClickHouse v23.7, 2023-07-27](#237)**<br />
**[Lançamento do ClickHouse v23.6, 2023-06-30](#236)**<br />
**[Lançamento do ClickHouse v23.5, 2023-06-08](#235)**<br />
**[Lançamento do ClickHouse v23.4, 2023-04-26](#234)**<br />
**[Lançamento do ClickHouse v23.3 LTS, 2023-03-30](#233)**<br />
**[Lançamento do ClickHouse v23.2, 2023-02-23](#232)**<br />
**[Lançamento do ClickHouse v23.1, 2023-01-25](#231)**<br />
**[Changelog de 2022](/pt-BR/resources/changelogs/oss/2022)**<br />

### <a id="2312" /> Lançamento do ClickHouse 23.12, 2023-12-28. [Apresentação](https://presentations.clickhouse.com/2023-release-23.12/), [Vídeo](https://www.youtube.com/watch?v=7TLuT6gt0PQ)

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

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

* Corrigida a verificação de funções não determinísticas em expressões TTL. Antes, em alguns casos, era possível criar uma expressão TTL com funções não determinísticas, o que poderia levar a comportamento indefinido mais adiante. Isso corrige [#37250](https://github.com/ClickHouse/ClickHouse/issues/37250). Expressões TTL que não dependem de nenhuma coluna de uma tabela não são mais permitidas por padrão. Isso pode voltar a ser permitido com `SET allow_suspicious_ttl_expressions = 1` ou `SET compatibility = '23.11'`. Fecha [#37286](https://github.com/ClickHouse/ClickHouse/issues/37286). [#51858](https://github.com/ClickHouse/ClickHouse/pull/51858) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A configuração do MergeTree `clean_deleted_rows` está obsoleta e não tem mais efeito. A palavra-chave `CLEANUP` de `OPTIMIZE` não é permitida por padrão (isso pode ser reabilitado com a configuração `allow_experimental_replacing_merge_with_cleanup`). [#58267](https://github.com/ClickHouse/ClickHouse/pull/58267) ([Alexander Tokmakov](https://github.com/tavplubix)). Isso corrige [#57930](https://github.com/ClickHouse/ClickHouse/issues/57930). Isso fecha [#54988](https://github.com/ClickHouse/ClickHouse/issues/54988). Isso fecha [#54570](https://github.com/ClickHouse/ClickHouse/issues/54570). Isso fecha [#50346](https://github.com/ClickHouse/ClickHouse/issues/50346). Isso fecha [#47579](https://github.com/ClickHouse/ClickHouse/issues/47579). O recurso precisa ser removido porque não é adequado. Precisamos removê-lo o mais rápido possível, porque não há outra opção. [#57932](https://github.com/ClickHouse/ClickHouse/pull/57932) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="new-feature">
  #### Nova funcionalidade
</div>

* Implementação de views materializadas atualizáveis, solicitada em [#33919](https://github.com/ClickHouse/ClickHouse/issues/33919). [#56946](https://github.com/ClickHouse/ClickHouse/pull/56946) ([Michael Kolupaev](https://github.com/al13n321), [Michael Guzov](https://github.com/koloshmet)).
* Introduz o `PASTE JOIN`, que permite unir tabelas sem a cláusula `ON`, com base apenas nos números das linhas. Exemplo: `SELECT * FROM (SELECT number AS a FROM numbers(2)) AS t1 PASTE JOIN (SELECT number AS a FROM numbers(2) ORDER BY a DESC) AS t2`. [#57995](https://github.com/ClickHouse/ClickHouse/pull/57995) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* A cláusula `ORDER BY` agora permite especificar `ALL`, o que significa que o ClickHouse ordena por todas as colunas da cláusula `SELECT`. Exemplo: `SELECT col1, col2 FROM tab WHERE [...] ORDER BY ALL`. [#57875](https://github.com/ClickHouse/ClickHouse/pull/57875) ([zhongyuankai](https://github.com/zhongyuankai)).
* Adicionado um novo comando de mutação `ALTER TABLE <table> APPLY DELETED MASK`, que permite forçar a aplicação da máscara gravada pela exclusão leve e remover do disco as linhas marcadas como excluídas. [#57433](https://github.com/ClickHouse/ClickHouse/pull/57433) ([Anton Popov](https://github.com/CurtizJ)).
* Um handler `/binary` abre um visualizador dos símbolos no binário do ClickHouse. [#58211](https://github.com/ClickHouse/ClickHouse/pull/58211) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Foi adicionada uma nova função SQL, `sqid`, para gerar Sqids ([https://sqids.org/](https://sqids.org/)); exemplo: `SELECT sqid(125, 126)`. [#57512](https://github.com/ClickHouse/ClickHouse/pull/57512) ([Robert Schulze](https://github.com/rschu1ze)).
* Adiciona uma nova função `seriesPeriodDetectFFT` para detectar o período de uma série usando FFT. [#57574](https://github.com/ClickHouse/ClickHouse/pull/57574) ([Bhavna Jindal](https://github.com/bhavnajindal)).
* Adiciona um endpoint HTTP para verificar se o Keeper está pronto para receber tráfego. [#55876](https://github.com/ClickHouse/ClickHouse/pull/55876) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Adiciona o modo 'union' para inferência de esquema. Nesse modo, o esquema da tabela resultante é a união dos esquemas de todos os arquivos (ou seja, o esquema é inferido de cada arquivo). O modo de inferência de esquema é controlado pela configuração `schema_inference_mode`, com dois valores possíveis: `default` e `union`. Fecha [#55428](https://github.com/ClickHouse/ClickHouse/issues/55428). [#55892](https://github.com/ClickHouse/ClickHouse/pull/55892) ([Kruglov Pavel](https://github.com/Avogar)).
* Adiciona a nova configuração `input_format_csv_try_infer_numbers_from_strings`, que permite inferir números a partir de strings no formato CSV. Fecha [#56455](https://github.com/ClickHouse/ClickHouse/issues/56455). [#56859](https://github.com/ClickHouse/ClickHouse/pull/56859) ([Kruglov Pavel](https://github.com/Avogar)).
* Quando o número de bancos de dados ou tabelas exceder um limite configurável, exiba um aviso ao usuário. [#57375](https://github.com/ClickHouse/ClickHouse/pull/57375) ([凌涛](https://github.com/lingtaolf)).
* Dicionário com layout `HASHED_ARRAY` (e `COMPLEX_KEY_HASHED_ARRAY`) suporta `SHARDS`, assim como `HASHED`. [#57544](https://github.com/ClickHouse/ClickHouse/pull/57544) ([vdimir](https://github.com/vdimir)).
* Adicionadas métricas assíncronas para o total de bytes da chave primária e o total de bytes alocados para a chave primária na memória. [#57551](https://github.com/ClickHouse/ClickHouse/pull/57551) ([Bharat Nallan](https://github.com/bharatnc)).
* Adicionada a função `SHA512_256`. [#57645](https://github.com/ClickHouse/ClickHouse/pull/57645) ([Bharat Nallan](https://github.com/bharatnc)).
* Adiciona `FORMAT_BYTES` como alias de `formatReadableSize`. [#57592](https://github.com/ClickHouse/ClickHouse/pull/57592) ([Bharat Nallan](https://github.com/bharatnc)).
* Permite passar um token de sessão opcional para a table function `s3`. [#57850](https://github.com/ClickHouse/ClickHouse/pull/57850) ([Shani Elharrar](https://github.com/shanielh)).
* Introduz uma nova configuração `http_make_head_request`. Se ela estiver desativada, o mecanismo de tabela URL não fará uma requisição HEAD para determinar o tamanho do arquivo. Isso é necessário para oferecer suporte a servidores HTTP ineficientes, mal configurados ou que não sejam compatíveis com isso. [#54602](https://github.com/ClickHouse/ClickHouse/pull/54602) ([Fionera](https://github.com/fionera)).
* Agora é possível fazer referência a uma coluna ALIAS em definições de índice (que não sejam de chave primária) (issue [#55650](https://github.com/ClickHouse/ClickHouse/issues/55650)). Exemplo: `CREATE TABLE tab(col UInt32, col_alias ALIAS col + 1, INDEX idx (col_alias) TYPE minmax) ENGINE = MergeTree ORDER BY col;`. [#57546](https://github.com/ClickHouse/ClickHouse/pull/57546) ([Robert Schulze](https://github.com/rschu1ze)).
* Foi adicionada uma nova configuração `readonly`, que pode ser usada para especificar que um disco S3 é somente leitura. Isso pode ser útil para criar uma tabela em um disco do tipo `s3_plain` e, ao mesmo tempo, ter acesso somente leitura ao bucket do S3 subjacente. [#57977](https://github.com/ClickHouse/ClickHouse/pull/57977) ([Pengyuan Bian](https://github.com/bianpengyuan)).
* A análise da chave primária em tabelas MergeTree agora também será aplicada a predicados que incluem a coluna virtual `_part_offset` (opcionalmente com `_part`). Esse recurso pode servir como um tipo especial de índice secundário. [#58224](https://github.com/ClickHouse/ClickHouse/pull/58224) ([Amos Bird](https://github.com/amosbird)).

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

* Extrai intervalos de partes que não se sobrepõem da tabela MergeTree durante o processamento de FINAL. Dessa forma, podemos evitar a lógica adicional de FINAL para esses intervalos de partes que não se sobrepõem. Caso a quantidade de valores duplicados com a mesma chave primária seja baixa, o desempenho será quase o mesmo que sem FINAL. Melhora o desempenho de leitura do MergeTree FINAL quando a configuração `do_not_merge_across_partitions_select_final` está definida. [#58120](https://github.com/ClickHouse/ClickHouse/pull/58120) ([Maksim Kita](https://github.com/kitaisreal)).
* Passou a ser possível fazer cópia entre discos S3 usando uma cópia no lado do servidor do S3, em vez de copiar por meio do buffer. Isso melhora as operações de `BACKUP/RESTORE` e o comando `clickhouse-disks copy`. [#56744](https://github.com/ClickHouse/ClickHouse/pull/56744) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* O Hash JOIN respeita a configuração `max_joined_block_size_rows` e não produz blocos grandes no `ALL JOIN`. [#56996](https://github.com/ClickHouse/ClickHouse/pull/56996) ([vdimir](https://github.com/vdimir)).
* Libere a memória usada na agregação mais cedo. Isso pode evitar uma agregação externa desnecessária. [#57691](https://github.com/ClickHouse/ClickHouse/pull/57691) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Melhoria no desempenho da serialização de strings. [#57717](https://github.com/ClickHouse/ClickHouse/pull/57717) ([Maksim Kita](https://github.com/kitaisreal)).
* Adiciona suporte à otimização de contagem trivial para tabelas do mecanismo `Merge`. [#57867](https://github.com/ClickHouse/ClickHouse/pull/57867) ([skyoct](https://github.com/skyoct)).
* Agregação otimizada em alguns casos. [#57872](https://github.com/ClickHouse/ClickHouse/pull/57872) ([Anton Popov](https://github.com/CurtizJ)).
* A função `hasAny` agora pode tirar proveito dos índices de skipping de texto completo. [#57878](https://github.com/ClickHouse/ClickHouse/pull/57878) ([Jpnock](https://github.com/Jpnock)).
* A função `if(cond, then, else)` (e seu alias `cond ? then : else`) foi otimizada para usar avaliação sem ramificações. [#57885](https://github.com/ClickHouse/ClickHouse/pull/57885) ([zhanglistar](https://github.com/zhanglistar)).
* MergeTree determina automaticamente a configuração `do_not_merge_across_partitions_select_final` se a expressão da chave de partição contiver apenas colunas da expressão da chave primária. [#58218](https://github.com/ClickHouse/ClickHouse/pull/58218) ([Maksim Kita](https://github.com/kitaisreal)).
* Melhora o desempenho de `MIN` e `MAX` para tipos nativos. [#58231](https://github.com/ClickHouse/ClickHouse/pull/58231) ([Raúl Marín](https://github.com/Algunenano)).
* Implementada a política de cache `SLRU` para o cache do sistema de arquivos. [#57076](https://github.com/ClickHouse/ClickHouse/pull/57076) ([Kseniia Sumarokova](https://github.com/kssenii)).
* O limite do número de conexões por endpoint para fetches em segundo plano foi aumentado de `15` para o valor da configuração `background_fetches_pool_size`. - A configuração de nível MergeTree `replicated_max_parallel_fetches_for_host` tornou-se obsoleta - As configurações de nível MergeTree `replicated_fetches_http_connection_timeout`, `replicated_fetches_http_send_timeout` e `replicated_fetches_http_receive_timeout` foram movidas para o nível do servidor. - A configuração `keep_alive_timeout` foi adicionada à lista de configurações de nível do servidor. [#57523](https://github.com/ClickHouse/ClickHouse/pull/57523) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Faça com que a consulta a `system.filesystem_cache` não consuma muita memória. [#57687](https://github.com/ClickHouse/ClickHouse/pull/57687) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Reduz o consumo de memória na desserialização de strings. [#57787](https://github.com/ClickHouse/ClickHouse/pull/57787) ([Maksim Kita](https://github.com/kitaisreal)).
* Construtor mais eficiente para Enum — faz sentido quando o Enum tem muitos valores. [#57887](https://github.com/ClickHouse/ClickHouse/pull/57887) ([Duc Canh Le](https://github.com/canhld94)).
* Uma melhoria na leitura a partir do cache do sistema de arquivos: sempre usar o método `pread`. [#57970](https://github.com/ClickHouse/ClickHouse/pull/57970) ([Nikita Taranov](https://github.com/nickitat)).
* Adicionada otimização para a sequência AND notEquals no otimizador de expressões lógicas. Essa otimização está disponível apenas com o Analyzer experimental habilitado. [#58214](https://github.com/ClickHouse/ClickHouse/pull/58214) ([Kevin Mingtarja](https://github.com/kevinmingtarja)).

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

* Suporte a limite de memória flexível no Keeper. Ele recusará solicitações se o uso de memória estiver próximo do máximo. [#57271](https://github.com/ClickHouse/ClickHouse/pull/57271) ([Han Fei](https://github.com/hanfei1991)). [#57699](https://github.com/ClickHouse/ClickHouse/pull/57699) ([Han Fei](https://github.com/hanfei1991)).
* Faça com que as inserções em tabelas distribuídas lidem corretamente com a configuração atualizada do cluster. Quando a lista de nós do cluster for atualizada dinamicamente, o Directory Monitor da tabela distribuída a atualizará. [#42826](https://github.com/ClickHouse/ClickHouse/pull/42826) ([zhongyuankai](https://github.com/zhongyuankai)).
* Não permitir a criação de uma tabela replicada com parâmetros de merge inconsistentes. [#56833](https://github.com/ClickHouse/ClickHouse/pull/56833) ([Duc Canh Le](https://github.com/canhld94)).
* Mostrar o tamanho descompactado em `system.tables`. [#56618](https://github.com/ClickHouse/ClickHouse/issues/56618). [#57186](https://github.com/ClickHouse/ClickHouse/pull/57186) ([Chen Lixiang](https://github.com/chenlx0)).
* Adiciona `skip_unavailable_shards` como uma configuração para tabelas `Distributed`, semelhante à configuração correspondente no nível da consulta. Fecha [#43666](https://github.com/ClickHouse/ClickHouse/issues/43666). [#57218](https://github.com/ClickHouse/ClickHouse/pull/57218) ([Gagan Goel](https://github.com/tntnatbry)).
* A função `substring` (aliases: `substr`, `mid`) agora também pode ser usada com tipos `Enum`. Antes, o primeiro argumento da função precisava ser um valor do tipo `String` ou `FixedString`. Isso melhora a compatibilidade com ferramentas de terceiros, como o Tableau, por meio da interface MySQL. [#57277](https://github.com/ClickHouse/ClickHouse/pull/57277) ([Serge Klochkov](https://github.com/slvrtrn)).
* A função `format` agora oferece suporte a tipos de argumentos arbitrários (em vez de apenas argumentos `String` e `FixedString`). Isso é importante para calcular `SELECT format('The {0} to all questions is {1}', 'answer', 42)`. [#57549](https://github.com/ClickHouse/ClickHouse/pull/57549) ([Robert Schulze](https://github.com/rschu1ze)).
* Permite usar a função `date_trunc` com o primeiro argumento sem diferenciar maiúsculas de minúsculas. Agora, ambas as formas são aceitas: `SELECT date_trunc('day', now())` e `SELECT date_trunc('DAY', now())`. [#57624](https://github.com/ClickHouse/ClickHouse/pull/57624) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Melhores dicas quando uma tabela não existe. [#57342](https://github.com/ClickHouse/ClickHouse/pull/57342) ([Bharat Nallan](https://github.com/bharatnc)).
* Permite sobrescrever as configurações do servidor `max_partition_size_to_drop` e `max_table_size_to_drop` no momento da consulta. [#57452](https://github.com/ClickHouse/ClickHouse/pull/57452) ([Jordi Villar](https://github.com/jrdi)).
* Melhoria sutil na inferência de tuplas sem nome em formatos JSON. [#57751](https://github.com/ClickHouse/ClickHouse/pull/57751) ([Kruglov Pavel](https://github.com/Avogar)).
* Adicionado suporte à flag read-only ao se conectar ao Keeper (corrige [#53749](https://github.com/ClickHouse/ClickHouse/issues/53749)). [#57479](https://github.com/ClickHouse/ClickHouse/pull/57479) ([Mikhail Koviazin](https://github.com/mkmkme)).
* Corrige possíveis bloqueios em envios Distributed devido a "Arquivo ou diretório inexistente" (durante a recuperação de um lote do disco). Corrige possíveis problemas com `error_count` em `system.distribution_queue` (no caso de `distributed_directory_monitor_max_sleep_time_ms` > 5 min). Introduz um evento de profile para rastrear falhas de async INSERT — `DistributedAsyncInsertionFailures`. [#57480](https://github.com/ClickHouse/ClickHouse/pull/57480) ([Azat Khuzhin](https://github.com/azat)).
* Suporte para colunas geradas do PostgreSQL e valores padrão de colunas no `MaterializedPostgreSQL` (funcionalidade experimental). Fecha [#40449](https://github.com/ClickHouse/ClickHouse/issues/40449). [#57568](https://github.com/ClickHouse/ClickHouse/pull/57568) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Permite aplicar algumas alterações nas configurações do cache do sistema de arquivos sem reiniciar o servidor. [#57578](https://github.com/ClickHouse/ClickHouse/pull/57578) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Tratamento correto da estrutura de tabela do PostgreSQL com array vazio. [#57618](https://github.com/ClickHouse/ClickHouse/pull/57618) ([Mike Kot](https://github.com/myrrc)).
* Passa a expor o número total de erros ocorridos desde a última reinicialização do servidor como a métrica `ClickHouseErrorMetric_ALL`. [#57627](https://github.com/ClickHouse/ClickHouse/pull/57627) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Permitir nós no arquivo de configuração com referência `from_env`/`from_zk` e elemento não vazio com `replace=1`. [#57628](https://github.com/ClickHouse/ClickHouse/pull/57628) ([Azat Khuzhin](https://github.com/azat)).
* Uma função de tabela `fuzzJSON` que permite gerar uma grande quantidade de JSON malformados para fuzzing. [#57646](https://github.com/ClickHouse/ClickHouse/pull/57646) ([Julia Kartseva](https://github.com/jkartseva)).
* Permite a conversão de IPv6 para UInt128 e a aritmética binária. [#57707](https://github.com/ClickHouse/ClickHouse/pull/57707) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Adicionada uma configuração para `async inserts deduplication cache` — por quanto tempo aguardamos a atualização do cache. A configuração `async_block_ids_cache_min_update_interval_ms` foi descontinuada. Agora o cache é atualizado apenas em caso de conflitos. [#57743](https://github.com/ClickHouse/ClickHouse/pull/57743) ([alesapin](https://github.com/alesapin)).
* A função `sleep()` agora pode ser interrompida com `KILL QUERY`. [#57746](https://github.com/ClickHouse/ClickHouse/pull/57746) ([Vitaly Baranov](https://github.com/vitlibar)).
* Proíbe consultas `CREATE TABLE ... AS SELECT` para motores de tabela `Replicated` no banco de dados experimental `Replicated`, pois elas não são suportadas. Referência [#35408](https://github.com/ClickHouse/ClickHouse/issues/35408). [#57796](https://github.com/ClickHouse/ClickHouse/pull/57796) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige e aprimora a transformação de consultas para bancos de dados externos, a fim de obter recursivamente todos os predicados compatíveis. [#57888](https://github.com/ClickHouse/ClickHouse/pull/57888) ([flynn](https://github.com/ucasfl)).
* Adiciona suporte ao recarregamento dinâmico do tamanho do cache do sistema de arquivos. Fecha [#57866](https://github.com/ClickHouse/ClickHouse/issues/57866). [#57897](https://github.com/ClickHouse/ClickHouse/pull/57897) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Suporte correto a `system.stack_trace` para threads com SIGRTMIN bloqueado (essas threads podem existir em bibliotecas externas de baixa qualidade, como Apache rdkafka). [#57907](https://github.com/ClickHouse/ClickHouse/pull/57907) ([Azat Khuzhin](https://github.com/azat)). Além disso, enviar sinal para as threads somente se ele não estiver bloqueado, para evitar aguardar `storage_system_stack_trace_pipe_read_timeout_ms` quando isso não fizer sentido. [#58136](https://github.com/ClickHouse/ClickHouse/pull/58136) ([Azat Khuzhin](https://github.com/azat)).
* Tolera falhas do Keeper na verificação de inserts com quórum. [#57986](https://github.com/ClickHouse/ClickHouse/pull/57986) ([Raúl Marín](https://github.com/Algunenano)).
* Adicionado RSS máx./de pico (`MemoryResidentMax`) a system.asynchronous\_metrics. [#58095](https://github.com/ClickHouse/ClickHouse/pull/58095) ([Azat Khuzhin](https://github.com/azat)).
* Este PR permite usar links no estilo S3 (`https://` e `s3://`) sem especificar a região quando ela não for a padrão. Também identifica a região correta se o usuário tiver informado a errada. [#58148](https://github.com/ClickHouse/ClickHouse/pull/58148) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* `clickhouse-format --obfuscate` passará a reconhecer Settings, MergeTreeSettings e fusos horários, mantendo seus nomes inalterados. [#58179](https://github.com/ClickHouse/ClickHouse/pull/58179) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionada a função explícita `finalize()` em `ZipArchiveWriter`. Simplificado o código excessivamente complexo em `ZipArchiveWriter`. Isso corrige [#58074](https://github.com/ClickHouse/ClickHouse/issues/58074). [#58202](https://github.com/ClickHouse/ClickHouse/pull/58202) ([Vitaly Baranov](https://github.com/vitlibar)).
* Faça com que caches com o mesmo caminho usem os mesmos objetos de cache. Esse comportamento já existia antes, mas foi quebrado na versão 23.4. Se esses caches com o mesmo caminho tiverem conjuntos diferentes de configurações de cache, será gerada uma exceção informando que isso não é permitido. [#58264](https://github.com/ClickHouse/ClickHouse/pull/58264) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Réplicas paralelas (recurso experimental): configurações mais amigáveis [#57542](https://github.com/ClickHouse/ClickHouse/pull/57542) ([Igor Nikonov](https://github.com/devcrafter)).
* Réplicas paralelas (recurso experimental): melhoria no tratamento das respostas de anúncio [#57749](https://github.com/ClickHouse/ClickHouse/pull/57749) ([Igor Nikonov](https://github.com/devcrafter)).
* Réplicas paralelas (recurso experimental): passam a respeitar mais `min_number_of_marks` em `ParallelReplicasReadingCoordinator` [#57763](https://github.com/ClickHouse/ClickHouse/pull/57763) ([Nikita Taranov](https://github.com/nickitat)).
* Réplicas paralelas (funcionalidade experimental): desabilitar réplicas paralelas com IN (subconsulta) [#58133](https://github.com/ClickHouse/ClickHouse/pull/58133) ([Igor Nikonov](https://github.com/devcrafter)).
* Réplicas paralelas (recurso experimental): adicionado o evento de perfil 'ParallelReplicasUsedCount' [#58173](https://github.com/ClickHouse/ClickHouse/pull/58173) ([Igor Nikonov](https://github.com/devcrafter)).
* Solicitações que não sejam POST, como HEAD, serão readonly, assim como GET. [#58060](https://github.com/ClickHouse/ClickHouse/pull/58060) ([San](https://github.com/santrancisco)).
* Adicionar a coluna `bytes_uncompressed` em `system.part_log` [#58167](https://github.com/ClickHouse/ClickHouse/pull/58167) ([Jordi Villar](https://github.com/jrdi)).
* Adicionar o nome do backup base às tabelas `system.backups` e `system.backup_log` [#58178](https://github.com/ClickHouse/ClickHouse/pull/58178) ([Pradeep Chhetri](https://github.com/chhetripradeep)).
* Adiciona suporte à especificação de parâmetros de consulta na linha de comando no clickhouse-local [#58210](https://github.com/ClickHouse/ClickHouse/pull/58210) ([Pradeep Chhetri](https://github.com/chhetripradeep)).

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

* Randomizar mais configurações [#39663](https://github.com/ClickHouse/ClickHouse/pull/39663) ([Anton Popov](https://github.com/CurtizJ)).
* Randomizar otimizações desabilitadas na CI [#57315](https://github.com/ClickHouse/ClickHouse/pull/57315) ([Raúl Marín](https://github.com/Algunenano)).
* Permitir o uso de motores de tabela/funções relacionados ao Azure no macOS. [#51866](https://github.com/ClickHouse/ClickHouse/pull/51866) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O ClickHouse Fast Test agora usa Musl em vez de GLibc. [#57711](https://github.com/ClickHouse/ClickHouse/pull/57711) ([Alexey Milovidov](https://github.com/alexey-milovidov)). A build totalmente estática com Musl está disponível para download na CI.
* Executar o ClickBench em todos os commits. Isso fecha [#57708](https://github.com/ClickHouse/ClickHouse/issues/57708). [#57712](https://github.com/ClickHouse/ClickHouse/pull/57712) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Remover o uso da função C/POSIX `select`, considerada prejudicial, de bibliotecas externas. [#57467](https://github.com/ClickHouse/ClickHouse/pull/57467) ([Igor Nikonov](https://github.com/devcrafter)).
* As configurações disponíveis apenas no ClickHouse Cloud também estarão presentes na build open-source do ClickHouse, por conveniência. [#57638](https://github.com/ClickHouse/ClickHouse/pull/57638) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).

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

* Corrigida a possibilidade de quebra na ordem de classificação em TTL GROUP BY [#49103](https://github.com/ClickHouse/ClickHouse/pull/49103) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correção: na estratégia de bucket `lttb` com split, o primeiro e o último bucket devem conter apenas um único ponto [#57003](https://github.com/ClickHouse/ClickHouse/pull/57003) ([FFish](https://github.com/wxybear)).
* Corrige um possível deadlock no formato `Template` durante a sincronização após um erro [#57004](https://github.com/ClickHouse/ClickHouse/pull/57004) ([Kruglov Pavel](https://github.com/Avogar)).
* Correção da interrupção antecipada durante o parsing de um arquivo ao ignorar muitos erros [#57006](https://github.com/ClickHouse/ClickHouse/pull/57006) ([Kruglov Pavel](https://github.com/Avogar)).
* Impede o contorno da ACL do dicionário pela função de tabela `dictionary` [#57362](https://github.com/ClickHouse/ClickHouse/pull/57362) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Corrige outro caso de um erro de "set não pronto" encontrado pelo Fuzzer. [#57423](https://github.com/ClickHouse/ClickHouse/pull/57423) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige vários problemas no uso de `array_ndims` no PostgreSQL. [#57436](https://github.com/ClickHouse/ClickHouse/pull/57436) ([Ryan Jacobs](https://github.com/ryanmjacobs)).
* Corrige a inconsistência do RWLock após timeout do bloqueio de escrita [#57454](https://github.com/ClickHouse/ClickHouse/pull/57454) ([Vitaly Baranov](https://github.com/vitlibar)). Corrige a inconsistência do RWLock após timeout do bloqueio de escrita (novamente) [#57733](https://github.com/ClickHouse/ClickHouse/pull/57733) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correção: não excluir a coluna efêmera ao montar a cadeia de envio para a view [#57461](https://github.com/ClickHouse/ClickHouse/pull/57461) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* MaterializedPostgreSQL (experimental): corrige o problema [#41922](https://github.com/ClickHouse/ClickHouse/issues/41922), adiciona um teste para [#41923](https://github.com/ClickHouse/ClickHouse/issues/41923) [#57515](https://github.com/ClickHouse/ClickHouse/pull/57515) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ignora a cláusula ON CLUSTER nas consultas GRANT/REVOKE para gerenciamento de entidades de acesso replicadas.  [#57538](https://github.com/ClickHouse/ClickHouse/pull/57538) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Corrige falha no clickhouse-local [#57553](https://github.com/ClickHouse/ClickHouse/pull/57553) ([Nikolay Degterinsky](https://github.com/evillique)).
* Correção para Hash JOIN. [#57564](https://github.com/ClickHouse/ClickHouse/pull/57564) ([vdimir](https://github.com/vdimir)).
* Corrigido possível erro na origem do PostgreSQL [#57567](https://github.com/ClickHouse/ClickHouse/pull/57567) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige a correção de tipo no Hash JOIN para LowCardinality aninhado. [#57614](https://github.com/ClickHouse/ClickHouse/pull/57614) ([vdimir](https://github.com/vdimir)).
* Evita travamentos no `system.stack_trace` ao proibir corretamente a leitura paralela dele. [#57641](https://github.com/ClickHouse/ClickHouse/pull/57641) ([Azat Khuzhin](https://github.com/azat)).
* Corrige um erro na agregação de colunas esparsas com `any(...) RESPECT NULL` [#57710](https://github.com/ClickHouse/ClickHouse/pull/57710) ([Azat Khuzhin](https://github.com/azat)).
* Corrige o parsing de operadores unários [#57713](https://github.com/ClickHouse/ClickHouse/pull/57713) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige o carregamento das dependências para o mecanismo de tabela experimental `MaterializedPostgreSQL`. [#57754](https://github.com/ClickHouse/ClickHouse/pull/57754) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige as tentativas de repetição para nós desconectados em BACKUP/RESTORE ON CLUSTER [#57764](https://github.com/ClickHouse/ClickHouse/pull/57764) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige o resultado da agregação externa no caso de projeção parcialmente materializada [#57790](https://github.com/ClickHouse/ClickHouse/pull/57790) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigido o merge em funções de agregação com o combinador `*Map` [#57795](https://github.com/ClickHouse/ClickHouse/pull/57795) ([Anton Popov](https://github.com/CurtizJ)).
* Desabilitado `system.kafka_consumers` devido a um bug. [#57822](https://github.com/ClickHouse/ClickHouse/pull/57822) ([Azat Khuzhin](https://github.com/azat)).
* Corrige o suporte a chaves LowCardinality no Merge JOIN. [#57827](https://github.com/ClickHouse/ClickHouse/pull/57827) ([vdimir](https://github.com/vdimir)).
* Uma correção para `InterpreterCreateQuery` relacionada ao bloco de amostragem. [#57855](https://github.com/ClickHouse/ClickHouse/pull/57855) ([Maksim Kita](https://github.com/kitaisreal)).
* `addresses_expr` era ignorado em coleções nomeadas do PostgreSQL. [#57874](https://github.com/ClickHouse/ClickHouse/pull/57874) ([joelynch](https://github.com/joelynch)).
* Corrigido acesso inválido à memória em BLAKE3 (Rust) [#57876](https://github.com/ClickHouse/ClickHouse/pull/57876) ([Raúl Marín](https://github.com/Algunenano)). Em seguida, ele foi reescrito de Rust para C++ para aumentar a [segurança de memória](https://www.memorysafety.org/). [#57994](https://github.com/ClickHouse/ClickHouse/pull/57994) ([Raúl Marín](https://github.com/Algunenano)).
* Normalização de nomes de funções em `CREATE INDEX` [#57906](https://github.com/ClickHouse/ClickHouse/pull/57906) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige o tratamento de réplicas indisponíveis antes da primeira solicitação [#57933](https://github.com/ClickHouse/ClickHouse/pull/57933) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige a classificação incorreta de alias literal [#57988](https://github.com/ClickHouse/ClickHouse/pull/57988) ([Chen768959](https://github.com/Chen768959)).
* Corrigido o pré-processamento inválido no Keeper [#58069](https://github.com/ClickHouse/ClickHouse/pull/58069) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige overflow de inteiro na biblioteca `Poco`, relacionado ao `UTF32Encoding` [#58073](https://github.com/ClickHouse/ClickHouse/pull/58073) ([Andrey Fedotov](https://github.com/anfedotoff)).
* Corrige réplicas paralelas (recurso experimental) na presença de uma subconsulta escalar com um valor inteiro grande [#58118](https://github.com/ClickHouse/ClickHouse/pull/58118) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido `accurateCastOrNull` para `DateTime` com valor fora do intervalo [#58139](https://github.com/ClickHouse/ClickHouse/pull/58139) ([Andrey Zvonov](https://github.com/zvonand)).
* Corrige possível erro `PARAMETER_OUT_OF_BOUND` durante a leitura de subcolunas em uma parte wide do MergeTree [#58175](https://github.com/ClickHouse/ClickHouse/pull/58175) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige a lentidão do CREATE VIEW com um número enorme de subconsultas [#58220](https://github.com/ClickHouse/ClickHouse/pull/58220) ([Tao Wang](https://github.com/wangtZJU)).
* Corrige o parsing paralelo de JSONCompactEachRow [#58181](https://github.com/ClickHouse/ClickHouse/pull/58181) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#58250](https://github.com/ClickHouse/ClickHouse/pull/58250) ([Kruglov Pavel](https://github.com/Avogar)).

### <a id="2311" /> Lançamento do ClickHouse 23.11, 2023-12-06. [Apresentação](https://presentations.clickhouse.com/2023-release-23.11/), [Vídeo](https://www.youtube.com/watch?v=1HJdjOH4Eis)

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

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

* O arquivo de configuração padrão do servidor ClickHouse passou a ter `access_management` (manipulação de usuários por consultas SQL) e `named_collection_control` (manipulação de coleções nomeadas por consultas SQL) habilitados para o usuário `default` por padrão. Isso corrige [#56482](https://github.com/ClickHouse/ClickHouse/issues/56482). [#56619](https://github.com/ClickHouse/ClickHouse/pull/56619) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Várias melhorias em `RESPECT NULLS`/`IGNORE NULLS` para funções de janela. Se você as usar como funções de agregação e armazenar os estados dessas funções com esses modificadores, elas poderão se tornar incompatíveis. [#57189](https://github.com/ClickHouse/ClickHouse/pull/57189) ([Raúl Marín](https://github.com/Algunenano)).
* Removida a otimização `optimize_move_functions_out_of_any`. [#57190](https://github.com/ClickHouse/ClickHouse/pull/57190) ([Raúl Marín](https://github.com/Algunenano)).
* Os formatadores `%l`/`%k`/`%c` na função `parseDateTime` agora conseguem interpretar horas/meses sem zeros à esquerda; por exemplo, `select parseDateTime('2023-11-26 8:14', '%F %k:%i')` agora funciona. Defina `parsedatetime_parse_without_leading_zeros = 0` para restaurar o comportamento anterior, que exigia dois dígitos. A função `formatDateTime` agora também consegue imprimir horas/meses sem zeros à esquerda. Isso é controlado pela configuração `formatdatetime_format_without_leading_zeros`, mas permanece desativado por padrão para não quebrar casos de uso existentes. [#55872](https://github.com/ClickHouse/ClickHouse/pull/55872) ([Azat Khuzhin](https://github.com/azat)).
* Não é mais possível usar a função de agregação `avgWeighted` com argumentos do tipo `Decimal`. Solução alternativa: converta os argumentos para `Float64`. Isso corrige [#43928](https://github.com/ClickHouse/ClickHouse/issues/43928). Isso corrige [#31768](https://github.com/ClickHouse/ClickHouse/issues/31768). Isso corrige [#56435](https://github.com/ClickHouse/ClickHouse/issues/56435). Se você tiver usado essa função dentro de visões materializadas ou projeções com argumentos `Decimal`, entre em contato com [support@clickhouse.com](mailto:support@clickhouse.com). Foi corrigido um erro na função de agregação `sumMap`, e ela ficou cerca de 1,5..2 vezes mais lenta. Isso não importa, porque a função é ruim de qualquer forma. Isso corrige [#54955](https://github.com/ClickHouse/ClickHouse/issues/54955). Isso corrige [#53134](https://github.com/ClickHouse/ClickHouse/issues/53134). Isso corrige [#55148](https://github.com/ClickHouse/ClickHouse/issues/55148). Corrigido um bug na função `groupArraySample` — ela usava a mesma semente aleatória quando mais de um estado de agregação era gerado em uma consulta. [#56350](https://github.com/ClickHouse/ClickHouse/pull/56350) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="new-feature">
  #### Nova funcionalidade
</div>

* Adicionada a configuração de servidor `async_load_databases` para o carregamento assíncrono de bancos de dados e tabelas. Reduz o tempo de inicialização do servidor. Aplica-se a bancos de dados com os motores `Ordinary`, `Atomic` e `Replicated`. Suas tabelas carregam os metadados de forma assíncrona. Uma consulta a uma tabela aumenta a prioridade do job de carregamento e aguarda sua conclusão. Adicionada uma nova tabela `system.asynchronous_loader` para introspecção. [#49351](https://github.com/ClickHouse/ClickHouse/pull/49351) ([Sergei Trifonov](https://github.com/serxa)).
* Adicionada a tabela de sistema `blob_storage_log`. Ela permite auditar todos os dados gravados no S3 e em outros armazenamentos de objetos. [#52918](https://github.com/ClickHouse/ClickHouse/pull/52918) ([vdimir](https://github.com/vdimir)).
* Use estatísticas para ordenar melhor as condições de prewhere. [#53240](https://github.com/ClickHouse/ClickHouse/pull/53240) ([Han Fei](https://github.com/hanfei1991)).
* Adicionado suporte à compressão no protocolo do Keeper. Ela pode ser habilitada no lado do ClickHouse usando a flag `use_compression` dentro da seção `zookeeper`. Tenha em mente que apenas o ClickHouse Keeper oferece suporte à compressão, enquanto o Apache ZooKeeper não. Resolve [#49507](https://github.com/ClickHouse/ClickHouse/issues/49507). [#54957](https://github.com/ClickHouse/ClickHouse/pull/54957) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Introduzido o recurso `storage_metadata_write_full_object_key`. Se ele for definido como `true`, os arquivos de metadados serão gravados no novo formato. Com esse formato, o ClickHouse armazena a chave completa do objeto remoto no arquivo de metadados, o que permite maior flexibilidade e otimização. [#55566](https://github.com/ClickHouse/ClickHouse/pull/55566) ([Sema Checherinda](https://github.com/CheSema)).
* Adiciona novas configurações e sintaxe para impedir a sobrescrita dos campos de coleções nomeadas. O objetivo é evitar que um usuário mal-intencionado obtenha acesso não autorizado a segredos. [#55782](https://github.com/ClickHouse/ClickHouse/pull/55782) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Adicionada a coluna `hostname` a todas as tabelas de log do sistema — isso é útil se você tornar as tabelas do sistema replicadas, compartilhadas ou distribuídas. [#55894](https://github.com/ClickHouse/ClickHouse/pull/55894) ([Bharat Nallan](https://github.com/bharatnc)).
* Adicionada a consulta `CHECK ALL TABLES`. [#56022](https://github.com/ClickHouse/ClickHouse/pull/56022) ([vdimir](https://github.com/vdimir)).
* Adicionada a função `fromDaysSinceYearZero`, semelhante à `FROM_DAYS` do MySQL. Por exemplo, `SELECT fromDaysSinceYearZero(739136)` retorna `2023-09-08`. [#56088](https://github.com/ClickHouse/ClickHouse/pull/56088) ([Joanna Hulboj](https://github.com/jh0x)).
* Adicionada uma ferramenta externa em Python para visualizar backups e extrair informações deles sem usar o ClickHouse. [#56268](https://github.com/ClickHouse/ClickHouse/pull/56268) ([Vitaly Baranov](https://github.com/vitlibar)).
* Implementada uma nova configuração chamada `preferred_optimize_projection_name`. Se ela for definida como uma string não vazia, a projeção especificada será usada, se possível, em vez de ser escolhida entre todas as candidatas. [#56309](https://github.com/ClickHouse/ClickHouse/pull/56309) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Adicionar um comando de 4 letras para ceder/renunciar à liderança ([https://github.com/ClickHouse/ClickHouse/issues/56352](https://github.com/ClickHouse/ClickHouse/issues/56352)). [#56354](https://github.com/ClickHouse/ClickHouse/pull/56354) ([Pradeep Chhetri](https://github.com/chhetripradeep)). [#56620](https://github.com/ClickHouse/ClickHouse/pull/56620) ([Pradeep Chhetri](https://github.com/chhetripradeep)).
* Foi adicionada uma nova função SQL, `arrayRandomSample(arr, k)`, que retorna uma amostra de k elementos do array de entrada. Antes, uma funcionalidade semelhante só podia ser obtida com uma sintaxe menos prática, por exemplo, `SELECT arrayReduce('groupArraySample(3)', range(10))`. [#56416](https://github.com/ClickHouse/ClickHouse/pull/56416) ([Robert Schulze](https://github.com/rschu1ze)).
* Adicionado suporte a dados do tipo `Float16` para uso em arquivos `.npy`. Fecha [#56344](https://github.com/ClickHouse/ClickHouse/issues/56344). [#56424](https://github.com/ClickHouse/ClickHouse/pull/56424) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Adicionada uma view de sistema `information_schema.statistics` para melhor compatibilidade com o Tableau Online. [#56425](https://github.com/ClickHouse/ClickHouse/pull/56425) ([Serge Klochkov](https://github.com/slvrtrn)).
* Adicionada a tabela `system.symbols`, útil para introspecção do binário. [#56548](https://github.com/ClickHouse/ClickHouse/pull/56548) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Painéis configuráveis. As consultas dos gráficos agora são carregadas a partir de uma consulta, que por padrão usa a nova tabela `system.dashboards`. [#56771](https://github.com/ClickHouse/ClickHouse/pull/56771) ([Sergei Trifonov](https://github.com/serxa)).
* Introduz a função de tabela `fileCluster` — ela é útil se um filesystem compartilhado (NFS e similares) for montado no diretório `user_files`. [#56868](https://github.com/ClickHouse/ClickHouse/pull/56868) ([Andrey Zvonov](https://github.com/zvonand)).
* Adicionar a coluna virtual `_size`, com o tamanho do arquivo em bytes, aos motores `s3/file/hdfs/url/azureBlobStorage`. [#57126](https://github.com/ClickHouse/ClickHouse/pull/57126) ([Kruglov Pavel](https://github.com/Avogar)).
* Expõe, no endpoint Prometheus, o número de erros para cada código de erro ocorrido em um servidor desde a última reinicialização. [#57209](https://github.com/ClickHouse/ClickHouse/pull/57209) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* O ClickHouse Keeper informa a zona de disponibilidade em que está em execução no caminho `/keeper/availability-zone`. Isso pode ser configurado por meio de `<availability_zone><value>us-west-1a</value></availability_zone>`. [#56715](https://github.com/ClickHouse/ClickHouse/pull/56715) ([Jianfei Hu](https://github.com/incfly)).
* ALTER materialized\_view MODIFY QUERY deixa de ser experimental, e a configuração `allow_experimental_alter_materialized_view_structure` é descontinuada. Corrige [#15206](https://github.com/ClickHouse/ClickHouse/issues/15206). [#57311](https://github.com/ClickHouse/ClickHouse/pull/57311) ([alesapin](https://github.com/alesapin)).
* A configuração `join_algorithm` respeita a ordem especificada [#51745](https://github.com/ClickHouse/ClickHouse/pull/51745) ([vdimir](https://github.com/vdimir)).
* Adicionado suporte aos [tipos Protobuf bem conhecidos](https://protobuf.dev/reference/protobuf/google.protobuf/) no formato Protobuf. [#56741](https://github.com/ClickHouse/ClickHouse/pull/56741) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).

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

* Timeouts adaptativos para interagir com o S3. A primeira tentativa é feita com timeouts menores de envio e recebimento. [#56314](https://github.com/ClickHouse/ClickHouse/pull/56314) ([Sema Checherinda](https://github.com/CheSema)).
* Aumente o valor padrão de `max_concurrent_queries` de 100 para 1000. Isso faz sentido quando há um grande número de clientes conectados, enviando ou recebendo dados lentamente, de modo que o servidor não fique limitado pela CPU, ou quando o número de núcleos de CPU for maior que 100. Além disso, habilite o controle de concorrência por padrão e defina o número total desejado de threads de processamento de consultas como o dobro do número de núcleos de CPU. Isso melhora o desempenho em cenários com um número muito grande de consultas simultâneas. [#46927](https://github.com/ClickHouse/ClickHouse/pull/46927) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suporte à avaliação paralela de funções de janela. Corrige [#34688](https://github.com/ClickHouse/ClickHouse/issues/34688). [#39631](https://github.com/ClickHouse/ClickHouse/pull/39631) ([Dmitry Novik](https://github.com/novikd)).
* O table engine `Numbers` (da tabela `system.numbers`) agora analisa a condição para gerar o subconjunto necessário de dados, como um índice de tabela. [#50909](https://github.com/ClickHouse/ClickHouse/pull/50909) ([JackyWoo](https://github.com/JackyWoo)).
* Melhorado o desempenho da filtragem com a condição `IN (...)` para o mecanismo de tabela `Merge`. [#54905](https://github.com/ClickHouse/ClickHouse/pull/54905) ([Nikita Taranov](https://github.com/nickitat)).
* Uma melhoria que ocorre quando o cache do sistema de arquivos está cheio e há leituras de grande volume. [#55158](https://github.com/ClickHouse/ClickHouse/pull/55158) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adicionada a capacidade de desabilitar checksums para S3 para evitar uma passagem excessiva pelo arquivo (isso é controlado pela configuração `s3_disable_checksum`). [#55559](https://github.com/ClickHouse/ClickHouse/pull/55559) ([Azat Khuzhin](https://github.com/azat)).
* Agora lemos de forma síncrona de tabelas remotas quando os dados estão na page cache (como fazemos com tabelas locais). Isso é mais rápido, não requer sincronização dentro do pool de threads, não hesita em fazer operações de `seek` no FS local e reduz a espera da CPU. [#55841](https://github.com/ClickHouse/ClickHouse/pull/55841) ([Nikita Taranov](https://github.com/nickitat)).
* Otimização para obter valores de `map`, `arrayElement`. Isso trará um ganho de desempenho de cerca de 30%. - reduzir a memória reservada - reduzir a chamada de `resize`. [#55957](https://github.com/ClickHouse/ClickHouse/pull/55957) ([lgbo](https://github.com/lgbo-ustc)).
* Otimização da filtragem em vários estágios com AVX-512. Os experimentos de desempenho com o conjunto de dados OnTime no dispositivo ICX (CPU Intel Xeon Platinum 8380, 80 cores, 160 threads) mostram que essa mudança pode trazer ganhos de 7,4%, 5,9%, 4,7%, 3,0% e 4,6% no QPS das consultas Q2, Q3, Q4, Q5 e Q6, respectivamente, sem impacto nas demais. [#56079](https://github.com/ClickHouse/ClickHouse/pull/56079) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Limita o número de threads ocupadas no profiler de consultas. Se houver mais, elas pularão o profiling. [#56105](https://github.com/ClickHouse/ClickHouse/pull/56105) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Reduza a quantidade de chamadas de função virtual em funções de janela. [#56120](https://github.com/ClickHouse/ClickHouse/pull/56120) ([Maksim Kita](https://github.com/kitaisreal)).
* Permite a poda recursiva de campos Tuple no formato de dados ORC para acelerar a varredura. [#56122](https://github.com/ClickHouse/ClickHouse/pull/56122) ([李扬](https://github.com/taiyang-li)).
* Otimização trivial de contagem para o formato de dados `Npy`: consultas como `select count() from 'data.npy'` funcionarão muito mais rápido graças ao armazenamento em cache dos resultados. [#56304](https://github.com/ClickHouse/ClickHouse/pull/56304) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Consultas com agregação e um grande número de streams usarão menos memória durante a construção do plano. [#57074](https://github.com/ClickHouse/ClickHouse/pull/57074) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Melhora o desempenho na execução de consultas em casos de uso com muitos usuários e consultas altamente concorrentes (>2000 QPS), otimizando o acesso à ProcessList. [#57106](https://github.com/ClickHouse/ClickHouse/pull/57106) ([Andrej Hoos](https://github.com/adikus)).
* Melhoria trivial no array join, com reutilização de alguns resultados intermediários. [#57183](https://github.com/ClickHouse/ClickHouse/pull/57183) ([李扬](https://github.com/taiyang-li)).
* Havia casos em que o desenrolamento da pilha era lento. Isso não acontece mais. [#57221](https://github.com/ClickHouse/ClickHouse/pull/57221) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Agora usamos o pool de leitura padrão para ler do armazenamento externo quando `max_streams = 1`. Isso é vantajoso quando as pré-leituras estão habilitadas. [#57334](https://github.com/ClickHouse/ClickHouse/pull/57334) ([Nikita Taranov](https://github.com/nickitat)).
* Melhoria no Keeper: melhora no uso de memória durante a inicialização ao adiar o pré-processamento de logs. [#55660](https://github.com/ClickHouse/ClickHouse/pull/55660) ([Antonio Andelic](https://github.com/antonio2368)).
* Melhorado o desempenho da correspondência de padrões glob nos armazenamentos `File` e `HDFS`. [#56141](https://github.com/ClickHouse/ClickHouse/pull/56141) ([Andrey Zvonov](https://github.com/zvonand)).
* As posting lists em índices experimentais de texto completo agora são comprimidas, reduzindo seu tamanho em 10-30%. [#56226](https://github.com/ClickHouse/ClickHouse/pull/56226) ([Harry Lee](https://github.com/HarryLeeIBM)).
* Paralelização do `BackupEntriesCollector` em backups. [#56312](https://github.com/ClickHouse/ClickHouse/pull/56312) ([Kseniia Sumarokova](https://github.com/kssenii)).

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

* Adiciona uma nova configuração de `MergeTree`, `add_implicit_sign_column_constraint_for_collapsing_engine` (desabilitada por padrão). Quando ativada, adiciona uma restrição CHECK implícita para tabelas `CollapsingMergeTree`, limitando o valor da coluna `Sign` a apenas -1 ou 1. [#56701](https://github.com/ClickHouse/ClickHouse/issues/56701). [#56986](https://github.com/ClickHouse/ClickHouse/pull/56986) ([Kevin Mingtarja](https://github.com/kevinmingtarja)).
* Permite adicionar um novo disco à configuração de armazenamento sem reinicialização. [#56367](https://github.com/ClickHouse/ClickHouse/pull/56367) ([Duc Canh Le](https://github.com/canhld94)).
* Suporte à criação e à materialização de índice na mesma consulta ALTER, com suporte também a "modify TTL" e "materialize TTL" na mesma consulta. Fecha [#55651](https://github.com/ClickHouse/ClickHouse/issues/55651). [#56331](https://github.com/ClickHouse/ClickHouse/pull/56331) ([flynn](https://github.com/ucasfl)).
* Adicionada uma nova função de tabela chamada `fuzzJSON`, com linhas contendo versões perturbadas da string JSON de origem com variações aleatórias. [#56490](https://github.com/ClickHouse/ClickHouse/pull/56490) ([Julia Kartseva](https://github.com/jkartseva)).
* O mecanismo `Merge` filtra os registros de acordo com as políticas de linha das tabelas subjacentes, então não é necessário criar outra política de linha em uma tabela `Merge`. [#50209](https://github.com/ClickHouse/ClickHouse/pull/50209) ([Ilya Golshtein](https://github.com/ilejn)).
* Adiciona a configuração `max_execution_time_leaf` para limitar o tempo de execução no shard em consultas distribuídas, e `timeout_overflow_mode_leaf` para controlar o comportamento caso ocorra timeout. [#51823](https://github.com/ClickHouse/ClickHouse/pull/51823) ([Duc Canh Le](https://github.com/canhld94)).
* Adiciona configuração do ClickHouse para desabilitar o tunelamento de requisições HTTPS por proxy HTTP. [#55033](https://github.com/ClickHouse/ClickHouse/pull/55033) ([Arthur Passos](https://github.com/arthurpassos)).
* Defina `background_fetches_pool_size` como 16 e `background&#95;schedule&#95;pool&#95;size` como 512, o que é mais adequado para uso em produção com pequenas inserções frequentes. [#54327](https://github.com/ClickHouse/ClickHouse/pull/54327) ([Denny Crane](https://github.com/den-crane)).
* Ao ler dados de um arquivo no formato CSV, se houver um `\r` no fim da linha e ele não for seguido por `\n`, encontraremos a seguinte exceção: `Cannot parse CSV format: found \r (CR) not followed by \n (LF). Line must end by \n (LF) or \r\n (CR LF) or \n\r.` No ClickHouse, o fim de linha em CSV deve ser `\n`, `\r\n` ou `\n\r`; portanto, `\r` deve ser seguido por `\n`. No entanto, em algumas situações, os dados de entrada em CSV podem estar em um formato anormal, como no exemplo acima, em que `\r` aparece no fim da linha. [#54340](https://github.com/ClickHouse/ClickHouse/pull/54340) ([KevinyhZou](https://github.com/KevinyhZou)).
* Atualiza a biblioteca Arrow para a release-13.0.0, com suporte a novas codificações. Fecha [#44505](https://github.com/ClickHouse/ClickHouse/issues/44505). [#54800](https://github.com/ClickHouse/ClickHouse/pull/54800) ([Kruglov Pavel](https://github.com/Avogar)).
* Melhora o desempenho de consultas ON CLUSTER ao eliminar chamadas de sistema pesadas para obter todas as interfaces de rede ao buscar o endereço IP local na lista de hosts da entrada de DDL. [#54909](https://github.com/ClickHouse/ClickHouse/pull/54909) ([Duc Canh Le](https://github.com/canhld94)).
* Corrigida a contabilização da memória alocada antes de vincular uma thread a uma consulta ou a um usuário. [#56089](https://github.com/ClickHouse/ClickHouse/pull/56089) ([Nikita Taranov](https://github.com/nickitat)).
* Adicionado suporte a `LARGE_LIST` nos formatos Apache Arrow. [#56118](https://github.com/ClickHouse/ClickHouse/pull/56118) ([edef](https://github.com/edef1c)).
* Permite a compactação manual do `EmbeddedRocksDB` por meio da consulta `OPTIMIZE`. [#56225](https://github.com/ClickHouse/ClickHouse/pull/56225) ([Azat Khuzhin](https://github.com/azat)).
* Adicionada a possibilidade de especificar `BlockBasedTableOptions` para tabelas `EmbeddedRocksDB`. [#56264](https://github.com/ClickHouse/ClickHouse/pull/56264) ([Azat Khuzhin](https://github.com/azat)).
* `SHOW COLUMNS` agora exibe o nome do tipo de dado equivalente no MySQL quando a conexão é feita por meio do protocolo MySQL. Anteriormente, isso ocorria ao definir `use_mysql_types_in_show_columns = 1`. A configuração foi mantida, mas tornou-se obsoleta. [#56277](https://github.com/ClickHouse/ClickHouse/pull/56277) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrigido um possível erro `The local set of parts of table doesn't look like the set of parts in ZooKeeper` caso o servidor fosse reiniciado logo após `TRUNCATE` ou `DROP PARTITION`. [#56282](https://github.com/ClickHouse/ClickHouse/pull/56282) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrigido o tratamento de strings de consulta não constantes nas funções `formatQuery`/ `formatQuerySingleLine`. Também foram adicionadas variantes `OrNull` de ambas as funções, que retornam NULL quando uma consulta não pode ser interpretada, em vez de lançar uma exceção. [#56327](https://github.com/ClickHouse/ClickHouse/pull/56327) ([Robert Schulze](https://github.com/rschu1ze)).
* Permitir o backup de visão materializada com tabela interna excluída, em vez de o backup falhar. [#56387](https://github.com/ClickHouse/ClickHouse/pull/56387) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Consultas a `system.replicas` iniciam solicitações ao ZooKeeper quando determinadas colunas são consultadas. Quando há milhares de tabelas, essas solicitações podem gerar uma carga considerável no ZooKeeper. Se houver várias consultas simultâneas a `system.replicas`, elas repetirão as mesmas solicitações várias vezes. A mudança consiste em "deduplicar" as solicitações de consultas concorrentes. [#56420](https://github.com/ClickHouse/ClickHouse/pull/56420) ([Alexander Gololobov](https://github.com/davenger)).
* Corrigida a tradução para uma consulta compatível com MySQL usada para consultar bancos de dados externos. [#56456](https://github.com/ClickHouse/ClickHouse/pull/56456) ([flynn](https://github.com/ucasfl)).
* Adicionado suporte a backup e restauração de tabelas usando o mecanismo `KeeperMap`. [#56460](https://github.com/ClickHouse/ClickHouse/pull/56460) ([Antonio Andelic](https://github.com/antonio2368)).
* A resposta 404 para CompleteMultipartUpload precisa ser verificada novamente. A operação pode ter sido concluída no servidor mesmo que o cliente tenha recebido timeout ou outros erros de rede. A tentativa seguinte de CompleteMultipartUpload recebe uma resposta 404. Se a chave do objeto existir, essa operação é considerada bem-sucedida. [#56475](https://github.com/ClickHouse/ClickHouse/pull/56475) ([Sema Checherinda](https://github.com/CheSema)).
* Habilitado o método HTTP OPTIONS por padrão — isso simplifica as solicitações ao ClickHouse a partir de um navegador web. [#56483](https://github.com/ClickHouse/ClickHouse/pull/56483) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O valor de `dns_max_consecutive_failures` foi alterado por engano em [#46550](https://github.com/ClickHouse/ClickHouse/issues/46550) - isso foi revertido e ajustado para um valor mais adequado. Além disso, o timeout de keep-alive HTTP foi aumentado para um valor razoável usado em produção. [#56485](https://github.com/ClickHouse/ClickHouse/pull/56485) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Carrega backups base sob demanda (um backup base não será carregado até que seja necessário). Adiciona também algumas mensagens de log e eventos de perfil para backups. [#56516](https://github.com/ClickHouse/ClickHouse/pull/56516) ([Vitaly Baranov](https://github.com/vitlibar)).
* A configuração `query_cache_store_results_of_queries_with_nondeterministic_functions` (com os valores `false` ou `true`) foi marcada como obsoleta. Ela foi substituída pela configuração `query_cache_nondeterministic_function_handling`, um enum com três valores que controla como o cache de consultas lida com consultas com funções não determinísticas: a) lançar uma exceção (comportamento padrão), b) salvar o resultado da consulta não determinística independentemente disso, ou c) ignorar, isto é, não lançar uma exceção nem armazenar o resultado em cache. [#56519](https://github.com/ClickHouse/ClickHouse/pull/56519) ([Robert Schulze](https://github.com/rschu1ze)).
* Reescrita de igualdade com verificação `is null` na seção JOIN ON. Experimental. *Somente no Analyzer*. [#56538](https://github.com/ClickHouse/ClickHouse/pull/56538) ([vdimir](https://github.com/vdimir)).
* A função`concat` agora aceita tipos de argumentos arbitrários (em vez de apenas argumentos String e FixedString). Isso faz com que ela se comporte de maneira mais semelhante à implementação de `concat` do MySQL. Por exemplo, `SELECT concat('ab', 42)` agora retorna `ab42`. [#56540](https://github.com/ClickHouse/ClickHouse/pull/56540) ([Serge Klochkov](https://github.com/slvrtrn)).
* Permite obter a configuração de cache da seção 'named\_collection' na configuração ou de named collections criadas em SQL. [#56541](https://github.com/ClickHouse/ClickHouse/pull/56541) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Mecanismo de banco de dados PostgreSQL: torna a remoção de tabelas desatualizadas menos agressiva quando a conexão com o Postgres falha. [#56609](https://github.com/ClickHouse/ClickHouse/pull/56609) ([jsc0218](https://github.com/jsc0218)).
* Levava tempo demais para se conectar ao PG quando a URL não estava correta, então a consulta correspondente ficava presa ali e acabava sendo cancelada. [#56648](https://github.com/ClickHouse/ClickHouse/pull/56648) ([jsc0218](https://github.com/jsc0218)).
* Melhoria no Keeper: desativar logs compactados por padrão no Keeper. [#56763](https://github.com/ClickHouse/ClickHouse/pull/56763) ([Antonio Andelic](https://github.com/antonio2368)).
* Adicionada a configuração `wait_dictionaries_load_at_startup`. [#56782](https://github.com/ClickHouse/ClickHouse/pull/56782) ([Vitaly Baranov](https://github.com/vitlibar)).
* Havia uma vulnerabilidade potencial em versões anteriores do ClickHouse: se um usuário se conectasse e tentasse, sem sucesso, se autenticar com o método "interserver secret", o servidor não encerrava a conexão imediatamente, mas continuava recebendo e ignorando os pacotes remanescentes do cliente. Embora esses pacotes sejam ignorados, eles ainda são processados e, se usarem um método de compressão com outra vulnerabilidade conhecida, isso permitirá sua exploração sem autenticação. Esse problema foi identificado pelo [ClickHouse Bug Bounty Program](https://github.com/ClickHouse/ClickHouse/issues/38986) por [https://twitter.com/malacupa](https://twitter.com/malacupa). [#56794](https://github.com/ClickHouse/ClickHouse/pull/56794) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A obtenção de uma parte passa a aguardar até que essa parte esteja totalmente confirmada na réplica remota. É melhor não enviar a parte no estado PreActive. No caso de zero copy, essa restrição é obrigatória. [#56808](https://github.com/ClickHouse/ClickHouse/pull/56808) ([Sema Checherinda](https://github.com/CheSema)).
* Corrige um possível erro de conversão na replicação lógica do PostgreSQL ao usar o `MaterializedPostgreSQL` experimental. [#53721](https://github.com/ClickHouse/ClickHouse/pull/53721) ([takakawa](https://github.com/takakawa)).
* Implementa a configuração em nível de usuário `alter_move_to_space_execute_async`, que permite executar consultas `ALTER TABLE ... MOVE PARTITION|PART TO DISK|VOLUME` de forma assíncrona. O tamanho do pool de execuções em segundo plano é controlado por `background_move_pool_size`. O comportamento padrão é a execução síncrona. Corrige [#47643](https://github.com/ClickHouse/ClickHouse/issues/47643). [#56809](https://github.com/ClickHouse/ClickHouse/pull/56809) ([alesapin](https://github.com/alesapin)).
* Agora é possível filtrar por engine ao varrer `system.tables`, evitando conexões desnecessárias (potencialmente demoradas). [#56813](https://github.com/ClickHouse/ClickHouse/pull/56813) ([jsc0218](https://github.com/jsc0218)).
* Exibição de `total_bytes` e `total_rows` em tabelas de sistema para armazenamento RocksDB. [#56816](https://github.com/ClickHouse/ClickHouse/pull/56816) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Permite comandos básicos em ALTER para tabelas TEMPORARY. [#56892](https://github.com/ClickHouse/ClickHouse/pull/56892) ([Sergey](https://github.com/icuken)).
* Compressão LZ4. Armazena em buffer o bloco compactado no caso raro em que a capacidade do buffer de saída não é suficiente para gravar o bloco compactado diretamente no buffer de saída. [#56938](https://github.com/ClickHouse/ClickHouse/pull/56938) ([Sema Checherinda](https://github.com/CheSema)).
* Adicionadas métricas para o número de jobs na fila, o que é útil para o pool de threads de E/S. [#56958](https://github.com/ClickHouse/ClickHouse/pull/56958) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona uma configuração do mecanismo de tabela PostgreSQL ao arquivo de configuração. Adicionada uma verificação dessa configuração. Adicionada documentação sobre a configuração adicional. [#56959](https://github.com/ClickHouse/ClickHouse/pull/56959) ([Peignon Melvyn](https://github.com/melvynator)).
* A função `concat` agora pode ser chamada com um único argumento, por exemplo, `SELECT concat('abc')`. Isso torna seu comportamento mais consistente com a implementação da `concat` no MySQL. [#57000](https://github.com/ClickHouse/ClickHouse/pull/57000) ([Serge Klochkov](https://github.com/slvrtrn)).
* Assina todos os headers `x-amz-*`, conforme exigido pela documentação do AWS S3. [#57001](https://github.com/ClickHouse/ClickHouse/pull/57001) ([Arthur Passos](https://github.com/arthurpassos)).
* A função `fromDaysSinceYearZero` (alias: `FROM_DAYS`) agora pode ser usada com tipos inteiros com e sem sinal (anteriormente, precisava ser um inteiro sem sinal). Isso melhora a compatibilidade com ferramentas de terceiros, como o Tableau Online. [#57002](https://github.com/ClickHouse/ClickHouse/pull/57002) ([Serge Klochkov](https://github.com/slvrtrn)).
* Adiciona `system.s3queue_log` à configuração padrão. [#57036](https://github.com/ClickHouse/ClickHouse/pull/57036) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Altere o valor padrão de `wait_dictionaries_load_at_startup` para true e use essa configuração somente se `dictionaries_lazy_load` for false. [#57133](https://github.com/ClickHouse/ClickHouse/pull/57133) ([Vitaly Baranov](https://github.com/vitlibar)).
* Verifica o tipo da origem do dicionário na criação, mesmo se `dictionaries_lazy_load` estiver habilitado. [#57134](https://github.com/ClickHouse/ClickHouse/pull/57134) ([Vitaly Baranov](https://github.com/vitlibar)).
* As otimizações no nível do plano agora podem ser ativadas ou desativadas individualmente. Antes, só era possível desativar todas de uma vez. A configuração que antes fazia isso (`query_plan_enable_optimizations`) foi mantida e ainda pode ser usada para desativar todas as otimizações. [#57152](https://github.com/ClickHouse/ClickHouse/pull/57152) ([Robert Schulze](https://github.com/rschu1ze)).
* O código de saída do servidor corresponderá ao código da exceção. Por exemplo, se o servidor não conseguir iniciar devido ao limite de memória, ele será encerrado com o código 241 = MEMORY\_LIMIT\_EXCEEDED. Em versões anteriores, o código de saída para exceções era sempre 70 = Poco::Util::ExitCode::EXIT\_SOFTWARE. [#57153](https://github.com/ClickHouse/ClickHouse/pull/57153) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Não faça demangling nem simbolização de frames de pilha do arquivo de cabeçalho C++ `functional`. [#57201](https://github.com/ClickHouse/ClickHouse/pull/57201) ([Mike Kot](https://github.com/myrrc)).
* A página do servidor HTTP `/dashboard` agora oferece suporte a gráficos com várias linhas. [#57236](https://github.com/ClickHouse/ClickHouse/pull/57236) ([Sergei Trifonov](https://github.com/serxa)).
* A opção de linha de comando `max_memory_usage_in_client` aceita um valor textual com um sufixo (K, M, G etc.). Fecha [#56879](https://github.com/ClickHouse/ClickHouse/issues/56879). [#57273](https://github.com/ClickHouse/ClickHouse/pull/57273) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Atualizado o Intel QPL (usado pelo codec `DEFLATE_QPL`) da v1.2.0 para a v1.3.1. Também foi corrigido um bug no caso de BOF (Block On Fault) = 0, passando a lidar com falhas de página por meio de fallback para a via de software. [#57291](https://github.com/ClickHouse/ClickHouse/pull/57291) ([jasperzhu](https://github.com/jinjunzh)).
* Aumentado o valor padrão de `replicated_deduplication_window` nas configurações do MergeTree de 100 para 1k. [#57335](https://github.com/ClickHouse/ClickHouse/pull/57335) ([sichenzhao](https://github.com/sichenzhao)).
* Pare de usar `INCONSISTENT_METADATA_FOR_BACKUP` com tanta frequência. Se possível, prefira continuar a varredura em vez de parar e reiniciá-la do backup desde o início. [#57385](https://github.com/ClickHouse/ClickHouse/pull/57385) ([Vitaly Baranov](https://github.com/vitlibar)).

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

* Adicionado teste SQLLogic. [#56078](https://github.com/ClickHouse/ClickHouse/pull/56078) ([Han Fei](https://github.com/hanfei1991)).
* `clickhouse-local` e `clickhouse-client` agora estão disponíveis com nomes curtos (`ch`, `chl`, `chc`), para facilitar o uso. [#56634](https://github.com/ClickHouse/ClickHouse/pull/56634) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O tamanho da build foi otimizado ainda mais com a remoção de código não utilizado de bibliotecas externas. [#56786](https://github.com/ClickHouse/ClickHouse/pull/56786) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionada uma verificação automática para garantir que não haja unidades de tradução grandes. [#56559](https://github.com/ClickHouse/ClickHouse/pull/56559) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Reduzido o tamanho da distribuição em binário único. Isso fecha [#55181](https://github.com/ClickHouse/ClickHouse/issues/55181). [#56617](https://github.com/ClickHouse/ClickHouse/pull/56617) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Informações sobre o tamanho de cada unidade de tradução e arquivo binário após cada build serão enviadas para o banco de dados de CI no ClickHouse Cloud. Isso fecha [#56107](https://github.com/ClickHouse/ClickHouse/issues/56107). [#56636](https://github.com/ClickHouse/ClickHouse/pull/56636) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Determinados arquivos da biblioteca "Apache Arrow" (que usamos apenas para itens não essenciais, como parsing do Arrow format) eram recompilados o tempo todo, independentemente do cache de build. Isso foi corrigido. [#56657](https://github.com/ClickHouse/ClickHouse/pull/56657) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Evitada a recompilação de unidades de tradução que dependem do arquivo source gerado automaticamente com informações de versão. [#56660](https://github.com/ClickHouse/ClickHouse/pull/56660) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Dados de tracing das invocações do linker serão enviados para o banco de dados de CI no ClickHouse Cloud. [#56725](https://github.com/ClickHouse/ClickHouse/pull/56725) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Passam a ser usados símbolos de depuração DWARF 5 para o binário `clickhouse` (antes era DWARF 4). [#56770](https://github.com/ClickHouse/ClickHouse/pull/56770) ([Michael Kolupaev](https://github.com/al13n321)).
* Adicionada uma nova opção de build, `SANITIZE_COVERAGE`. Se ela estiver habilitada, o código será instrumentado para rastrear a cobertura. As informações coletadas ficam disponíveis no ClickHouse por meio de: (1) uma nova função `coverage`, que retorna um Array de endereços únicos no código encontrados desde o último reset da cobertura; (2) da consulta `SYSTEM RESET COVERAGE`, que redefine os dados acumulados. Isso permite comparar a cobertura de diferentes testes, incluindo cobertura diferencial de código. Continuação de [#20539](https://github.com/ClickHouse/ClickHouse/issues/20539). [#56102](https://github.com/ClickHouse/ClickHouse/pull/56102) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Alguns frames da pilha podem não ser resolvidos durante a coleta de stacks. Nesses casos, o endereço bruto pode ser útil. [#56267](https://github.com/ClickHouse/ClickHouse/pull/56267) ([Alexander Gololobov](https://github.com/davenger)).
* Adicionada uma opção para desabilitar `libssh`. [#56333](https://github.com/ClickHouse/ClickHouse/pull/56333) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Habilitado temporary\_data\_in\_cache nos testes de S3 na CI. [#48425](https://github.com/ClickHouse/ClickHouse/pull/48425) ([vdimir](https://github.com/vdimir)).
* Definido o uso máximo de memória para o `clickhouse-client` (`1G`) na CI. [#56873](https://github.com/ClickHouse/ClickHouse/pull/56873) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).

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

* Correção do Analyzer experimental — a inserção a partir de SELECT com subconsulta que referencia a tabela de inserção deve processar apenas o bloco de inserção. [#50857](https://github.com/ClickHouse/ClickHouse/pull/50857) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige um erro na função `str_to_map`. [#56423](https://github.com/ClickHouse/ClickHouse/pull/56423) ([Arthur Passos](https://github.com/arthurpassos)).
* Keeper `reconfig`: adiciona um timeout antes de ceder/assumir a liderança [#53481](https://github.com/ClickHouse/ClickHouse/pull/53481) ([Mike Kot](https://github.com/myrrc)).
* Corrige cabeçalho incorreto no grace hash join e no pushdown de filtro [#53922](https://github.com/ClickHouse/ClickHouse/pull/53922) ([vdimir](https://github.com/vdimir)).
* Selecionar a partir de tabelas do sistema quando a tabela for baseada em uma função de tabela. [#55540](https://github.com/ClickHouse/ClickHouse/pull/55540) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* RFC: Corrige "Não foi possível encontrar a coluna X no fluxo de origem" para consultas distribuídas com LIMIT BY [#55836](https://github.com/ClickHouse/ClickHouse/pull/55836) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido o erro 'Cannot read from file:' ao executar o cliente em segundo plano [#55976](https://github.com/ClickHouse/ClickHouse/pull/55976) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrigido o encerramento do clickhouse-local com uma configuração `send_logs_level` inválida [#55994](https://github.com/ClickHouse/ClickHouse/pull/55994) ([Kruglov Pavel](https://github.com/Avogar)).
* Correção de bug no explain ast com uma view parametrizada [#56004](https://github.com/ClickHouse/ClickHouse/pull/56004) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Corrigida uma falha durante o carregamento da tabela na inicialização [#56232](https://github.com/ClickHouse/ClickHouse/pull/56232) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige dicionários provenientes do ClickHouse com uma consulta explícita [#56236](https://github.com/ClickHouse/ClickHouse/pull/56236) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige falha de segmentação no tratador de sinais do Keeper [#56266](https://github.com/ClickHouse/ClickHouse/pull/56266) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige resultado incompleto de consulta com UNION na função view(). [#56274](https://github.com/ClickHouse/ClickHouse/pull/56274) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigida a inconsistência entre "cast('0' as DateTime64(3))" e "cast('0' as Nullable(DateTime64(3)))" [#56286](https://github.com/ClickHouse/ClickHouse/pull/56286) ([李扬](https://github.com/taiyang-li)).
* Corrige uma rara condição de corrida relacionada a falha na alocação de memória [#56303](https://github.com/ClickHouse/ClickHouse/pull/56303) ([alesapin](https://github.com/alesapin)).
* Corrige a restauração a partir de backup com `flatten_nested` e `data_type_default_nullable` [#56306](https://github.com/ClickHouse/ClickHouse/pull/56306) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correção de travamento ao adicionar uma coluna do tipo Object(JSON) [#56307](https://github.com/ClickHouse/ClickHouse/pull/56307) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrige travamento em filterPushDown [#56380](https://github.com/ClickHouse/ClickHouse/pull/56380) ([vdimir](https://github.com/vdimir)).
* Corrige a restauração a partir de backup com view materializada e tabela de origem excluída [#56383](https://github.com/ClickHouse/ClickHouse/pull/56383) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigida falha de segmentação durante a inicialização do Kerberos [#56401](https://github.com/ClickHouse/ClickHouse/pull/56401) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrigido estouro de buffer em T64 [#56434](https://github.com/ClickHouse/ClickHouse/pull/56434) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige chave primária Nullable no FINAL (2) [#56452](https://github.com/ClickHouse/ClickHouse/pull/56452) ([Amos Bird](https://github.com/amosbird)).
* Correção de consultas ON CLUSTER sem banco de dados no nó inicial [#56484](https://github.com/ClickHouse/ClickHouse/pull/56484) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige a falha de inicialização devido à dependência de TTL [#56489](https://github.com/ClickHouse/ClickHouse/pull/56489) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige consultas `ALTER COMMENT` com `ON CLUSTER` [#56491](https://github.com/ClickHouse/ClickHouse/pull/56491) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrigido ALTER COLUMN com ALIAS [#56493](https://github.com/ClickHouse/ClickHouse/pull/56493) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige NAMED COLLECTIONs vazias [#56494](https://github.com/ClickHouse/ClickHouse/pull/56494) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige dois casos na análise de projeções. [#56502](https://github.com/ClickHouse/ClickHouse/pull/56502) ([Amos Bird](https://github.com/amosbird)).
* Corrigido o tratamento de aliases no cache de consultas [#56545](https://github.com/ClickHouse/ClickHouse/pull/56545) ([Robert Schulze](https://github.com/rschu1ze)).
* Correção da conversão de `Nullable(Enum)` para `Nullable(String)` [#56644](https://github.com/ClickHouse/ClickHouse/pull/56644) ([Nikolay Degterinsky](https://github.com/evillique)).
* Tratamento de logs mais confiável no Keeper [#56670](https://github.com/ClickHouse/ClickHouse/pull/56670) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige a mesclagem da configuração em nós com atributos de substituição [#56694](https://github.com/ClickHouse/ClickHouse/pull/56694) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrigido o uso duplicado da função de tabela input(). [#56695](https://github.com/ClickHouse/ClickHouse/pull/56695) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correção: problema com o carregamento dinâmico do OpenSSL no RabbitMQ [#56703](https://github.com/ClickHouse/ClickHouse/pull/56703) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige falha no codec GCD quando há zeros nos dados [#56704](https://github.com/ClickHouse/ClickHouse/pull/56704) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrige 'mutex lock failed: Invalid argument' no clickhouse-local durante o insert into function [#56710](https://github.com/ClickHouse/ClickHouse/pull/56710) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige o parsing de texto de Date no caminho otimista [#56765](https://github.com/ClickHouse/ClickHouse/pull/56765) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige travamento no codec FPC [#56795](https://github.com/ClickHouse/ClickHouse/pull/56795) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* DatabaseReplicated: corrige timeout de consulta DDL após a recuperação de uma réplica [#56796](https://github.com/ClickHouse/ClickHouse/pull/56796) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige a sinalização incorreta de colunas Nullable no protocolo binário do MySQL [#56799](https://github.com/ClickHouse/ClickHouse/pull/56799) ([Serge Klochkov](https://github.com/slvrtrn)).
* Suporte a arquivos de metadados do Iceberg para tabelas no metastore [#56810](https://github.com/ClickHouse/ClickHouse/pull/56810) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige relatório do TSAN em `transform` [#56817](https://github.com/ClickHouse/ClickHouse/pull/56817) ([Raúl Marín](https://github.com/Algunenano)).
* Correção da consulta SET e da formatação de SETTINGS [#56825](https://github.com/ClickHouse/ClickHouse/pull/56825) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige falha na inicialização devido à dependência de tabela em joinGet [#56828](https://github.com/ClickHouse/ClickHouse/pull/56828) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige o achatamento de colunas Nested existentes na execução de ADD COLUMN [#56830](https://github.com/ClickHouse/ClickHouse/pull/56830) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige a aceitação de CR no fim da linha em CSV [#56901](https://github.com/ClickHouse/ClickHouse/pull/56901) ([KevinyhZou](https://github.com/KevinyhZou)).
* Corrige `tryBase64Decode` para entradas inválidas [#56913](https://github.com/ClickHouse/ClickHouse/pull/56913) ([Robert Schulze](https://github.com/rschu1ze)).
* Correção da geração de colunas profundamente aninhadas em esquemas CapnProto/Protobuf [#56941](https://github.com/ClickHouse/ClickHouse/pull/56941) ([Kruglov Pavel](https://github.com/Avogar)).
* Evitar ALTER incompatível nas colunas da projeção [#56948](https://github.com/ClickHouse/ClickHouse/pull/56948) ([Amos Bird](https://github.com/amosbird)).
* Corrigida a validação do caminho do arquivo sqlite [#56984](https://github.com/ClickHouse/ClickHouse/pull/56984) ([San](https://github.com/santrancisco)).
* S3Queue: corrige o incremento da referência de metadados [#56990](https://github.com/ClickHouse/ClickHouse/pull/56990) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Pequena correção no S3Queue [#56999](https://github.com/ClickHouse/ClickHouse/pull/56999) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige a validação do caminho de arquivo no DatabaseFileSystem [#57029](https://github.com/ClickHouse/ClickHouse/pull/57029) ([San](https://github.com/santrancisco)).
* Corrigido `fuzzBits` com `ARRAY JOIN` [#57033](https://github.com/ClickHouse/ClickHouse/pull/57033) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigido o desreferenciamento de nullptr em partial merge join com joined\_subquery\_re... [#57048](https://github.com/ClickHouse/ClickHouse/pull/57048) ([vdimir](https://github.com/vdimir)).
* Corrigida condição de corrida em RemoteSource [#57052](https://github.com/ClickHouse/ClickHouse/pull/57052) ([Raúl Marín](https://github.com/Algunenano)).
* Implementada `bitHammingDistance` para números inteiros grandes [#57073](https://github.com/ClickHouse/ClickHouse/pull/57073) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correção de bug em links do tipo S3 [#57075](https://github.com/ClickHouse/ClickHouse/pull/57075) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrigida a função JSON\_QUERY com vários caminhos numéricos [#57096](https://github.com/ClickHouse/ClickHouse/pull/57096) ([KevinyhZou](https://github.com/KevinyhZou)).
* Corrigido estouro de buffer no codec Gorilla [#57107](https://github.com/ClickHouse/ClickHouse/pull/57107) ([Nikolay Degterinsky](https://github.com/evillique)).
* Fechar a conexão entre servidores em caso de qualquer exceção antes da autenticação [#57142](https://github.com/ClickHouse/ClickHouse/pull/57142) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigida a falha de segmentação após ALTER UPDATE com coluna MATERIALIZED Nullable [#57147](https://github.com/ClickHouse/ClickHouse/pull/57147) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige a otimização incorreta do plano de JOIN com projeção normal parcialmente materializada [#57196](https://github.com/ClickHouse/ClickHouse/pull/57196) ([Amos Bird](https://github.com/amosbird)).
* Desconsiderar comentários ao comparar descrições de colunas [#57259](https://github.com/ClickHouse/ClickHouse/pull/57259) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigida a métrica `ReadonlyReplica` em todos os casos [#57267](https://github.com/ClickHouse/ClickHouse/pull/57267) ([Antonio Andelic](https://github.com/antonio2368)).
* As mesclagens em segundo plano passam a usar corretamente o armazenamento temporário de dados no cache [#57275](https://github.com/ClickHouse/ClickHouse/pull/57275) ([vdimir](https://github.com/vdimir)).
* Correção no Keeper para changelog e snapshots [#57299](https://github.com/ClickHouse/ClickHouse/pull/57299) ([Antonio Andelic](https://github.com/antonio2368)).
* Ignorar tarefas ON CLUSTER concluídas se o hostname tiver sido alterado [#57339](https://github.com/ClickHouse/ClickHouse/pull/57339) ([Alexander Tokmakov](https://github.com/tavplubix)).
* As mutações do MergeTree reutilizam a granularidade do índice da parte de origem [#57352](https://github.com/ClickHouse/ClickHouse/pull/57352) ([Maksim Kita](https://github.com/kitaisreal)).
* cache do FS: adiciona um limite para downloads em segundo plano [#57424](https://github.com/ClickHouse/ClickHouse/pull/57424) ([Kseniia Sumarokova](https://github.com/kssenii)).

### <a id="2310" /> Lançamento do ClickHouse 23.10, 2023-11-02. [Apresentação](https://presentations.clickhouse.com/2023-release-23.10/), [Vídeo](https://www.youtube.com/watch?v=PGQS6uPb970)

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

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

* Não existe mais a opção de remover automaticamente partes de dados corrompidas. Isso encerra [#55174](https://github.com/ClickHouse/ClickHouse/issues/55174). [#55184](https://github.com/ClickHouse/ClickHouse/pull/55184) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#55557](https://github.com/ClickHouse/ClickHouse/pull/55557) ([Jihyuk Bok](https://github.com/tomahawk28)).
* As partes de dados obsoletas em memória não podem mais ser lidas a partir do write-ahead log. Se você configurou partes em memória anteriormente, elas precisam ser removidas antes da atualização. [#55186](https://github.com/ClickHouse/ClickHouse/pull/55186) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Removida a integração com o Meilisearch. Motivo: ela era compatível apenas com a versão antiga 0.18. A versão mais recente do Meilisearch alterou o protocolo e não funciona mais. Observação: agradeceríamos se você ajudasse a trazê-la de volta. [#55189](https://github.com/ClickHouse/ClickHouse/pull/55189) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O conceito de monitor de diretório foi renomeado para INSERT em segundo plano. Todas as configurações `*directory_monitor*` foram renomeadas para `distributed_background_insert*`. *A compatibilidade com versões anteriores deve ser preservada* (já que as configurações antigas foram adicionadas como alias). [#55978](https://github.com/ClickHouse/ClickHouse/pull/55978) ([Azat Khuzhin](https://github.com/azat)).
* Não interprete o `send_timeout` definido no lado do cliente como `receive_timeout` no lado do servidor, e vice-versa. [#56035](https://github.com/ClickHouse/ClickHouse/pull/56035) ([Azat Khuzhin](https://github.com/azat)).
* A comparação de intervalos de tempo com unidades diferentes lançará uma exceção. Isso encerra [#55942](https://github.com/ClickHouse/ClickHouse/issues/55942). Você pode ter dependido ocasionalmente do comportamento anterior, em que os valores numéricos subjacentes eram comparados independentemente das unidades. [#56090](https://github.com/ClickHouse/ClickHouse/pull/56090) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O table engine experimental `S3Queue` foi completamente reescrito: a forma de manter informações no ZooKeeper foi alterada, o que permite fazer menos requisições ao ZooKeeper; foi adicionado caching do estado do ZooKeeper nos casos em que sabemos que ele não mudará; o processo de polling do S3 foi aprimorado para ser menos agressivo; a forma como o ttl e o max definidos para arquivos rastreados são mantidos foi alterada, e agora isso é feito por um processo em segundo plano. Foram adicionadas as tabelas `system.s3queue` e `system.s3queue_log`. Encerra [#54998](https://github.com/ClickHouse/ClickHouse/issues/54998). [#54422](https://github.com/ClickHouse/ClickHouse/pull/54422) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Caminhos arbitrários no endpoint HTTP não são mais interpretados como uma solicitação ao endpoint `/query`. [#55521](https://github.com/ClickHouse/ClickHouse/pull/55521) ([Konstantin Bogdanov](https://github.com/thevar1able)).

<div id="new-feature">
  #### Nova funcionalidade
</div>

* Adiciona a função `arrayFold(accumulator, x1, ..., xn -> expression, initial, array1, ..., arrayn)`, que aplica uma função lambda a vários arrays com a mesma cardinalidade e armazena o resultado em um acumulador. [#49794](https://github.com/ClickHouse/ClickHouse/pull/49794) ([Lirikl](https://github.com/Lirikl)).
* Suporte ao formato `Npy`. `SELECT * FROM file('example_array.npy', Npy)`. [#55982](https://github.com/ClickHouse/ClickHouse/pull/55982) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Se uma tabela tiver uma curva de preenchimento espacial em sua chave, por exemplo, `ORDER BY mortonEncode(x, y)`, as condições sobre seus argumentos, por exemplo, `x >= 10 AND x <= 20 AND y >= 20 AND y <= 30`, podem ser usadas para indexação. Foi adicionada a configuração `analyze_index_with_space_filling_curves` para habilitar ou desabilitar essa análise. Isso fecha [#41195](https://github.com/ClickHouse/ClickHouse/issue/41195). Continuação de [#4538](https://github.com/ClickHouse/ClickHouse/pull/4538). Continuação de [#6286](https://github.com/ClickHouse/ClickHouse/pull/6286). Continuação de [#28130](https://github.com/ClickHouse/ClickHouse/pull/28130). Continuação de [#41753](https://github.com/ClickHouse/ClickHouse/pull/#41753). [#55642](https://github.com/ClickHouse/ClickHouse/pull/55642) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Uma nova configuração chamada `force_optimize_projection_name` aceita o nome de uma projeção como argumento. Se o valor dela for definido como uma string não vazia, o ClickHouse verifica se essa projeção é usada na consulta pelo menos uma vez. Fecha [#55331](https://github.com/ClickHouse/ClickHouse/issues/55331). [#56134](https://github.com/ClickHouse/ClickHouse/pull/56134) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Suporte a inserções assíncronas com dados externos via protocolo nativo. Antes, isso só funcionava se os dados fossem incluídos diretamente na consulta. [#54730](https://github.com/ClickHouse/ClickHouse/pull/54730) ([Anton Popov](https://github.com/CurtizJ)).
* Adicionada a função de agregação `lttb`, que usa o algoritmo [Largest-Triangle-Three-Buckets](https://skemman.is/bitstream/1946/15343/3/SS_MSthesis.pdf) para fazer a redução de amostragem dos dados para visualização. [#53145](https://github.com/ClickHouse/ClickHouse/pull/53145) ([Sinan](https://github.com/sinsinan)).
* A consulta `CHECK TABLE` tem melhor desempenho e usabilidade (envia atualizações de progresso e pode ser cancelada). Há suporte para verificar uma parte específica com `CHECK TABLE ... PART 'part_name'`. [#53404](https://github.com/ClickHouse/ClickHouse/pull/53404) ([vdimir](https://github.com/vdimir)).
* Adicionada a função `jsonMergePatch`. Ao trabalhar com dados JSON como strings, ela permite mesclar essas strings (de objetos JSON) para formar uma única string contendo um único objeto JSON. [#54364](https://github.com/ClickHouse/ClickHouse/pull/54364) ([Memo](https://github.com/Joeywzr)).
* A segunda parte do suporte ao dialeto Kusto Query Language. A [implementação da fase 1 ](https://github.com/ClickHouse/ClickHouse/pull/37961) foi mesclada. [#42510](https://github.com/ClickHouse/ClickHouse/pull/42510) ([larryluogit](https://github.com/larryluogit)).
* Foi adicionada uma nova função SQL, `arrayRandomSample(arr, k)`, que retorna uma amostra de k elementos do array de entrada. Antes, uma funcionalidade semelhante só podia ser obtida com uma sintaxe menos prática, por exemplo, "SELECT arrayReduce('groupArraySample(3)', range(10))". [#54391](https://github.com/ClickHouse/ClickHouse/pull/54391) ([itayisraelov](https://github.com/itayisraelov)).
* Introduz os combinadores de agregação `-ArgMin`/`-ArgMax`, que permitem agregar com base apenas nos valores mínimos/máximos. Um caso de uso pode ser encontrado em [#54818](https://github.com/ClickHouse/ClickHouse/issues/54818). Este PR também reorganiza os combinadores em uma pasta dedicada. [#54947](https://github.com/ClickHouse/ClickHouse/pull/54947) ([Amos Bird](https://github.com/amosbird)).
* Permite limpar o cache de schema do formato Protobuf com `SYSTEM DROP SCHEMA FORMAT CACHE [FOR Protobuf]`. [#55064](https://github.com/ClickHouse/ClickHouse/pull/55064) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Adicionado autenticador externo com HTTP Basic. [#55199](https://github.com/ClickHouse/ClickHouse/pull/55199) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Adicionada a função `byteSwap`, que reverte os bytes de inteiros sem sinal. Isso é particularmente útil para reverter valores de tipos representados internamente como inteiros sem sinal, como IPv4. [#55211](https://github.com/ClickHouse/ClickHouse/pull/55211) ([Priyansh Agrawal](https://github.com/Priyansh121096)).
* Adicionada a função `formatQuery`, que retorna uma versão formatada (possivelmente em várias linhas) de uma string de consulta SQL. Também foi adicionada a função `formatQuerySingleLine`, que faz o mesmo, mas a string retornada não conterá quebras de linha. [#55239](https://github.com/ClickHouse/ClickHouse/pull/55239) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Adicionado o formato de entrada `DWARF`, que lê símbolos de depuração de um arquivo objeto, executável ou biblioteca ELF. [#55450](https://github.com/ClickHouse/ClickHouse/pull/55450) ([Michael Kolupaev](https://github.com/al13n321)).
* Permite salvar registros não processados e erros nos motores RabbitMQ, NATS e FileLog. Adiciona as colunas virtuais `_error` e `_raw_message` (para NATS e RabbitMQ) e `_raw_record` (para FileLog), que são preenchidas quando o ClickHouse não consegue processar um novo registro. O comportamento é controlado nas configurações de armazenamento `nats_handle_error_mode` para NATS, `rabbitmq_handle_error_mode` para RabbitMQ e `handle_error_mode` para FileLog, de forma semelhante a `kafka_handle_error_mode`. Se estiver definido como `default`, uma exceção será lançada quando o ClickHouse não conseguir processar um registro; se estiver definido como `stream`, o erro e o registro bruto serão salvos nas colunas virtuais. Fecha [#36035](https://github.com/ClickHouse/ClickHouse/issues/36035). [#55477](https://github.com/ClickHouse/ClickHouse/pull/55477) ([Kruglov Pavel](https://github.com/Avogar)).
* Melhoria no cliente Keeper: adiciona o comando `get_all_children_number command`, que retorna o número total de nós filhos em um caminho específico. [#55485](https://github.com/ClickHouse/ClickHouse/pull/55485) ([guoxiaolong](https://github.com/guoxiaolongzte)).
* Melhoria no cliente do Keeper: adiciona o comando `get_direct_children_number`, que retorna o número de nós filhos diretos em um caminho. [#55898](https://github.com/ClickHouse/ClickHouse/pull/55898) ([xuzifu666](https://github.com/xuzifu666)).
* Adicionada a instrução `SHOW SETTING setting_name`, que é uma versão mais simples da instrução existente `SHOW SETTINGS`. [#55979](https://github.com/ClickHouse/ClickHouse/pull/55979) ([Maksim Kita](https://github.com/kitaisreal)).
* Foram adicionados os campos `substreams` e `filenames` à tabela `system.parts_columns`. [#55108](https://github.com/ClickHouse/ClickHouse/pull/55108) ([Anton Popov](https://github.com/CurtizJ)).
* Adicionado suporte à consulta `SHOW MERGES`. [#55815](https://github.com/ClickHouse/ClickHouse/pull/55815) ([megao](https://github.com/jetgm)).
* Adiciona a configuração `create_table_empty_primary_key_by_default` para usar `ORDER BY ()` como padrão. [#55899](https://github.com/ClickHouse/ClickHouse/pull/55899) ([Srikanth Chekuri](https://github.com/srikanthccv)).

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

* Adicionar a opção `query_plan_preserve_num_streams_after_window_functions` para preservar o número de streams após a avaliação de funções de janela, permitindo o processamento paralelo de streams. [#50771](https://github.com/ClickHouse/ClickHouse/pull/50771) ([frinkr](https://github.com/frinkr)).
* Liberar mais streams quando o volume de dados for pequeno. [#53867](https://github.com/ClickHouse/ClickHouse/pull/53867) ([Jiebin Sun](https://github.com/jiebinn)).
* Otimização de RoaringBitmaps antes da serialização. [#55044](https://github.com/ClickHouse/ClickHouse/pull/55044) ([UnamedRus](https://github.com/UnamedRus)).
* As listas de postings em índices invertidos agora são otimizadas para usar a menor representação possível para bitmaps internos. Dependendo da repetição dos dados, isso pode reduzir significativamente o consumo de espaço dos índices invertidos. [#55069](https://github.com/ClickHouse/ClickHouse/pull/55069) ([Harry Lee](https://github.com/HarryLeeIBM)).
* Corrige a contenção no bloqueio de Context, melhorando significativamente o desempenho de muitas consultas simultâneas de curta duração. [#55121](https://github.com/ClickHouse/ClickHouse/pull/55121) ([Maksim Kita](https://github.com/kitaisreal)).
* O desempenho da criação de índice invertido melhorou em 30%. Isso foi alcançado com a substituição de `std::unordered_map` por `absl::flat_hash_map`. [#55210](https://github.com/ClickHouse/ClickHouse/pull/55210) ([Harry Lee](https://github.com/HarryLeeIBM)).
* Suporte a pushdown de filtro ORC (nível de grupo de linhas). [#55330](https://github.com/ClickHouse/ClickHouse/pull/55330) ([李扬](https://github.com/taiyang-li)).
* Melhora no desempenho da agregação externa com muitos arquivos temporários. [#55489](https://github.com/ClickHouse/ClickHouse/pull/55489) ([Maksim Kita](https://github.com/kitaisreal)).
* Definido por padrão um tamanho razoável para o cache de marcas dos índices secundários, para evitar o carregamento repetido das marcas. [#55654](https://github.com/ClickHouse/ClickHouse/pull/55654) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Evita a reconstrução desnecessária de grânulos de índice durante a leitura de skip indexes. Isso corrige [#55653](https://github.com/ClickHouse/ClickHouse/issues/55653#issuecomment-1763766009). [#55683](https://github.com/ClickHouse/ClickHouse/pull/55683) ([Amos Bird](https://github.com/amosbird)).
* Armazena em cache a função CAST no set durante a execução para melhorar o desempenho da função `IN` quando o tipo de elemento do set não corresponde exatamente ao tipo da coluna. [#55712](https://github.com/ClickHouse/ClickHouse/pull/55712) ([Duc Canh Le](https://github.com/canhld94)).
* Melhoria no desempenho de `ColumnVector::insertMany` e `ColumnVector::insertManyFrom`. [#55714](https://github.com/ClickHouse/ClickHouse/pull/55714) ([frinkr](https://github.com/frinkr)).
* Operações de subscrito de map otimizadas com a previsão da posição da chave da próxima linha e a redução do número de comparações. [#55929](https://github.com/ClickHouse/ClickHouse/pull/55929) ([lgbo](https://github.com/lgbo-ustc)).
* Adicionado suporte à poda de campos de struct no Parquet (em versões anteriores, isso não funcionava em alguns casos). [#56117](https://github.com/ClickHouse/ClickHouse/pull/56117) ([lgbo](https://github.com/lgbo-ustc)).
* Adicionada a capacidade de ajustar o número de réplicas paralelas usadas na execução de uma consulta com base na estimativa de linhas a serem lidas. [#51692](https://github.com/ClickHouse/ClickHouse/pull/51692) ([Raúl Marín](https://github.com/Algunenano)).
* Otimizado o consumo de memória da agregação externa quando muitos arquivos temporários eram gerados. [#54798](https://github.com/ClickHouse/ClickHouse/pull/54798) ([Nikita Taranov](https://github.com/nickitat)).
* Consultas distribuídas executadas no modo `async_socket_for_remote` (padrão) agora respeitam o limite de `max_threads`. Antes, algumas consultas podiam criar threads em excesso (até `max_distributed_connections`), causando problemas de desempenho no servidor. [#53504](https://github.com/ClickHouse/ClickHouse/pull/53504) ([filimonov](https://github.com/filimonov)).
* Cache de entradas que podem ser ignoradas ao executar DDL da fila de DDL distribuído do ZooKeeper. [#54828](https://github.com/ClickHouse/ClickHouse/pull/54828) ([Duc Canh Le](https://github.com/canhld94)).
* Índices invertidos experimentais não armazenam tokens com correspondências demais (ou seja, IDs de linha na lista de postings). Isso economiza espaço e evita lookups de índice ineficazes quando varreduras sequenciais seriam tão rápidas quanto ou até mais rápidas. A heurística anterior (o parâmetro `density` passado à definição do índice), que controlava quando os tokens não seriam armazenados, era confusa demais para os usuários. Foi introduzida uma heurística muito mais simples, baseada no parâmetro `max_rows_per_postings_list` (padrão: 64k), que controla diretamente o número máximo permitido de IDs de linha em uma lista de postings. [#55616](https://github.com/ClickHouse/ClickHouse/pull/55616) ([Harry Lee](https://github.com/HarryLeeIBM)).
* Melhora no desempenho de gravação em tabelas `EmbeddedRocksDB`. [#55732](https://github.com/ClickHouse/ClickHouse/pull/55732) ([Duc Canh Le](https://github.com/canhld94)).
* Maior resiliência geral do ClickHouse em casos com muitas partes em uma partição (mais de 1000). Isso pode reduzir o número de erros `TOO_MANY_PARTS`. [#55526](https://github.com/ClickHouse/ClickHouse/pull/55526) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Redução no consumo de memória durante o carregamento de dicionários hierárquicos. [#55838](https://github.com/ClickHouse/ClickHouse/pull/55838) ([Nikita Taranov](https://github.com/nickitat)).
* Todos os dicionários são compatíveis com a configuração `dictionary_use_async_executor`. [#55839](https://github.com/ClickHouse/ClickHouse/pull/55839) ([vdimir](https://github.com/vdimir)).
* Evita o uso excessivo de memória ao desserializar AggregateFunctionTopKGenericData. [#55947](https://github.com/ClickHouse/ClickHouse/pull/55947) ([Raúl Marín](https://github.com/Algunenano)).
* Em um Keeper com muitos watches, as threads de AsyncMetrics podem consumir 100% da CPU por um tempo considerável em `DB::KeeperStorage::getSessionsWithWatchesCount`. A correção evita percorrer os conjuntos `watches` e `list_watches`, que são pesados. [#56054](https://github.com/ClickHouse/ClickHouse/pull/56054) ([Alexander Gololobov](https://github.com/davenger)).
* Adiciona a configuração `optimize_trivial_approximate_count_query` para usar a aproximação de `count` no mecanismo de armazenamento EmbeddedRocksDB. Habilita a contagem trivial para StorageJoin. [#55806](https://github.com/ClickHouse/ClickHouse/pull/55806) ([Duc Canh Le](https://github.com/canhld94)).

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

* As funções `toDayOfWeek` (alias do MySQL: `DAYOFWEEK`), `toYearWeek` (`YEARWEEK`) e `toWeek` (`WEEK`) agora aceitam argumentos `String`. Isso torna seu comportamento consistente com o do MySQL. [#55589](https://github.com/ClickHouse/ClickHouse/pull/55589) ([Robert Schulze](https://github.com/rschu1ze)).
* Foi introduzida a configuração `date_time_overflow_behavior`, com os valores possíveis `ignore`, `throw`, `saturate`, que controla o comportamento em caso de overflow ao converter de Date, Date32, DateTime64, Integer ou Float para Date, Date32, DateTime ou DateTime64. [#55696](https://github.com/ClickHouse/ClickHouse/pull/55696) ([Andrey Zvonov](https://github.com/zvonand)).
* Implementa suporte a parâmetros de consulta em `ALTER TABLE ... ACTION PARTITION [ID] {parameter_name:ParameterType}`. Integra [#49516](https://github.com/ClickHouse/ClickHouse/issues/49516). Fecha [#49449](https://github.com/ClickHouse/ClickHouse/issues/49449). [#55604](https://github.com/ClickHouse/ClickHouse/pull/55604) ([alesapin](https://github.com/alesapin)).
* Exibe IDs de processadores de forma mais elegante no EXPLAIN. [#48852](https://github.com/ClickHouse/ClickHouse/pull/48852) ([Vlad Seliverstov](https://github.com/behebot)).
* A criação de um dicionário direto com um campo lifetime será rejeitada no momento da criação (pois lifetime não faz sentido para dicionários diretos). Corrige: [#27861](https://github.com/ClickHouse/ClickHouse/issues/27861). [#49043](https://github.com/ClickHouse/ClickHouse/pull/49043) ([Rory Crispin](https://github.com/RoryCrispin)).
* Permite parâmetros em consultas com partições, como `ALTER TABLE t DROP PARTITION`. Fecha [#49449](https://github.com/ClickHouse/ClickHouse/issues/49449). [#49516](https://github.com/ClickHouse/ClickHouse/pull/49516) ([Nikolay Degterinsky](https://github.com/evillique)).
* Adiciona uma nova coluna `xid` a `system.zookeeper_connection`. [#50702](https://github.com/ClickHouse/ClickHouse/pull/50702) ([helifu](https://github.com/helifu)).
* Exibir as configurações corretas do servidor em `system.server_settings` após recarregar a configuração. [#53774](https://github.com/ClickHouse/ClickHouse/pull/53774) ([helifu](https://github.com/helifu)).
* Adicionado suporte ao caractere de sinal de menos matemático `−` em consultas, assim como `-`. [#54100](https://github.com/ClickHouse/ClickHouse/pull/54100) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona grupos de réplicas ao mecanismo de banco de dados experimental `Replicated`. Fecha [#53620](https://github.com/ClickHouse/ClickHouse/issues/53620). [#54421](https://github.com/ClickHouse/ClickHouse/pull/54421) ([Nikolay Degterinsky](https://github.com/evillique)).
* É melhor tentar novamente em caso de erros recuperáveis do S3 do que fazer a consulta falhar completamente. Defina um valor maior para s3\_retry\_attempts por padrão. [#54770](https://github.com/ClickHouse/ClickHouse/pull/54770) ([Sema Checherinda](https://github.com/CheSema)).
* Adicionado o modo de balanceamento de carga `hostname_levenshtein_distance`. [#54826](https://github.com/ClickHouse/ClickHouse/pull/54826) ([JackyWoo](https://github.com/JackyWoo)).
* Melhora na ocultação de informações sensíveis nos logs. [#55089](https://github.com/ClickHouse/ClickHouse/pull/55089) ([Vitaly Baranov](https://github.com/vitlibar)).
* Por enquanto, a análise de projeções será realizada apenas sobre o plano de consulta. A configuração `query_plan_optimize_projection` tornou-se obsoleta (ela já estava habilitada por padrão há muito tempo). [#55112](https://github.com/ClickHouse/ClickHouse/pull/55112) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Quando a função `untuple` é chamada em uma tupla com elementos nomeados e ela própria tem um alias (por exemplo, `select untuple(tuple(1)::Tuple(element_alias Int)) AS untuple_alias`), o nome da coluna resultante passa a ser gerado com base no alias de `untuple` e no alias do elemento da tupla (no exemplo: "untuple\_alias.element\_alias"). [#55123](https://github.com/ClickHouse/ClickHouse/pull/55123) ([garcher22](https://github.com/garcher22)).
* Adicionada a configuração `describe_include_virtual_columns`, que permite incluir as colunas virtuais da tabela no resultado da consulta `DESCRIBE`. Adicionada a configuração `describe_compact_output`. Se estiver definida como `true`, a consulta `DESCRIBE` retorna apenas os nomes e tipos das colunas, sem informações adicionais. [#55129](https://github.com/ClickHouse/ClickHouse/pull/55129) ([Anton Popov](https://github.com/CurtizJ)).
* Às vezes, `OPTIMIZE` com `optimize_throw_if_noop=1` pode falhar com o erro `unknown reason`, quando a causa real é haver projeções diferentes em partes distintas. Esse comportamento foi corrigido. [#55130](https://github.com/ClickHouse/ClickHouse/pull/55130) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Permite que várias tabelas `MaterializedPostgreSQL` acompanhem a mesma tabela do Postgres. Por padrão, esse comportamento não está habilitado (por compatibilidade, já que é uma alteração incompatível com versões anteriores), mas pode ser ativado com a configuração `materialized_postgresql_use_unique_replication_consumer_identifier`. Fecha [#54918](https://github.com/ClickHouse/ClickHouse/issues/54918). [#55145](https://github.com/ClickHouse/ClickHouse/pull/55145) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Permite fazer o parse de `DateTime64` e `DateTime` negativos com parte fracionária a partir de strings curtas. [#55146](https://github.com/ClickHouse/ClickHouse/pull/55146) ([Andrey Zvonov](https://github.com/zvonand)).
* Para melhorar a compatibilidade com o MySQL, 1. `information_schema.tables` agora inclui o novo campo `table_rows` e 2. `information_schema.columns` agora inclui o novo campo `extra`. [#55215](https://github.com/ClickHouse/ClickHouse/pull/55215) ([Robert Schulze](https://github.com/rschu1ze)).
* Clickhouse-client não exibirá "0 rows in set" quando o valor for zero e uma exceção for lançada. [#55240](https://github.com/ClickHouse/ClickHouse/pull/55240) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Suporte à renomeação de tabela sem a palavra-chave `TABLE`, como `RENAME db.t1 to db.t2`. [#55373](https://github.com/ClickHouse/ClickHouse/pull/55373) ([凌涛](https://github.com/lingtaolf)).
* Adicionado `internal_replication` a `system.clusters`. [#55377](https://github.com/ClickHouse/ClickHouse/pull/55377) ([Konstantin Morozov](https://github.com/k-morozov)).
* Selecionar o resolvedor de proxy remoto com base no protocolo da solicitação, adicionar a documentação do recurso de proxy e remover `DB::ProxyConfiguration::Protocol::ANY`. [#55430](https://github.com/ClickHouse/ClickHouse/pull/55430) ([Arthur Passos](https://github.com/arthurpassos)).
* Evite novas tentativas de operações do Keeper no INSERT após a desativação da tabela. [#55519](https://github.com/ClickHouse/ClickHouse/pull/55519) ([Azat Khuzhin](https://github.com/azat)).
* `SHOW COLUMNS` agora informa corretamente o tipo `FixedString` como `BLOB` se a configuração `use_mysql_types_in_show_columns` estiver ativada. Também foram adicionadas duas novas configurações, `mysql_map_string_to_text_in_show_columns` e `mysql_map_fixed_string_to_text_in_show_columns`, para alternar a saída dos tipos `String` e `FixedString` entre `TEXT` e `BLOB`. [#55617](https://github.com/ClickHouse/ClickHouse/pull/55617) ([Serge Klochkov](https://github.com/slvrtrn)).
* Durante a inicialização das tabelas ReplicatedMergeTree, o servidor ClickHouse verifica o conjunto de partes em busca de partes inesperadas (que existem localmente, mas não no ZooKeeper). Todas as partes inesperadas são movidas para o diretório detached e, em vez delas, o servidor tenta restaurar algumas partes ancestrais (cobertas). Agora, o servidor tenta restaurar os ancestrais mais próximos em vez de partes cobertas aleatórias. [#55645](https://github.com/ClickHouse/ClickHouse/pull/55645) ([alesapin](https://github.com/alesapin)).
* O dashboard avançado agora oferece suporte a gráficos que podem ser arrastados em dispositivos com tela sensível ao toque. Isso fecha [#54206](https://github.com/ClickHouse/ClickHouse/issues/54206). [#55649](https://github.com/ClickHouse/ClickHouse/pull/55649) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Use o formato padrão da consulta, se estiver declarado, ao gerar uma exceção com `http_write_exception_in_output_format`. [#55739](https://github.com/ClickHouse/ClickHouse/pull/55739) ([Raúl Marín](https://github.com/Algunenano)).
* Fornece uma mensagem melhor para problemas comuns de VISÃO MATERIALIZADA. [#55826](https://github.com/ClickHouse/ClickHouse/pull/55826) ([Raúl Marín](https://github.com/Algunenano)).
* Se você excluiu o banco de dados atual, ainda poderá executar algumas consultas no `clickhouse-local` e alternar para outro banco de dados. Isso torna o comportamento consistente com o `clickhouse-client`. Isso resolve [#55834](https://github.com/ClickHouse/ClickHouse/issues/55834). [#55853](https://github.com/ClickHouse/ClickHouse/pull/55853) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* As funções `(add|subtract)(Year|Quarter|Month|Week|Day|Hour|Minute|Second|Millisecond|Microsecond|Nanosecond)` agora oferecem suporte a argumentos de data em formato de string, por exemplo, `SELECT addDays('2023-10-22', 1)`. Isso aumenta a compatibilidade com o MySQL e é necessário para o Tableau Online. [#55869](https://github.com/ClickHouse/ClickHouse/pull/55869) ([Robert Schulze](https://github.com/rschu1ze)).
* A configuração `apply_deleted_mask`, quando desabilitada, permite ler linhas marcadas como excluídas por consultas de exclusão leve (lightweight DELETE). Isso é útil para depuração. [#55952](https://github.com/ClickHouse/ClickHouse/pull/55952) ([Alexander Gololobov](https://github.com/davenger)).
* Permite ignorar valores `null` ao serializar Tuple como objetos JSON, o que possibilita manter a compatibilidade com a função `to_json` do Spark, algo que também é útil para o gluten. [#55956](https://github.com/ClickHouse/ClickHouse/pull/55956) ([李扬](https://github.com/taiyang-li)).
* As funções `(add|sub)Date` agora oferecem suporte a argumentos de data codificados em string, por exemplo, `SELECT addDate('2023-10-22 11:12:13', INTERVAL 5 MINUTE)`. O mesmo suporte a argumentos de data codificados em string foi adicionado aos operadores de soma e subtração, por exemplo, `SELECT '2023-10-23' + INTERVAL 1 DAY`. Isso aumenta a compatibilidade com o MySQL e é necessário para o Tableau Online. [#55960](https://github.com/ClickHouse/ClickHouse/pull/55960) ([Robert Schulze](https://github.com/rschu1ze)).
* Permitir strings sem aspas contendo CR (`\r`) no formato CSV. Fecha [#39930](https://github.com/ClickHouse/ClickHouse/issues/39930). [#56046](https://github.com/ClickHouse/ClickHouse/pull/56046) ([Kruglov Pavel](https://github.com/Avogar)).
* Permite executar `clickhouse-keeper` com configuração embutida. [#56086](https://github.com/ClickHouse/ClickHouse/pull/56086) ([Maksim Kita](https://github.com/kitaisreal)).
* Foi definido um limite para o valor máximo de configuração de `queued.min.messages` para evitar problemas ao iniciar a busca de dados com o Kafka. [#56121](https://github.com/ClickHouse/ClickHouse/pull/56121) ([Stas Morozov](https://github.com/r3b-fish)).
* Corrigido um erro de digitação na função SQL `minSampleSizeContinous` (renomeada para `minSampleSizeContinuous`). O nome antigo foi preservado para manter a compatibilidade com versões anteriores. Isso fecha: [#56139](https://github.com/ClickHouse/ClickHouse/issues/56139). [#56143](https://github.com/ClickHouse/ClickHouse/pull/56143) ([Dorota Szeremeta](https://github.com/orotaday)).
* Exibe o caminho das partes corrompidas no disco antes de desligar o servidor. Antes dessa mudança, se uma parte estivesse corrompida no disco e o servidor não conseguisse iniciar, era quase impossível identificar qual parte estava corrompida. Isso foi corrigido. [#56181](https://github.com/ClickHouse/ClickHouse/pull/56181) ([Duc Canh Le](https://github.com/canhld94)).

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

* Se o banco de dados no Docker já estiver inicializado, não será necessário inicializá-lo novamente em execuções posteriores. Isso pode corrigir o problema de reinicializações infinitas do contêiner quando o banco de dados não consegue ser carregado em até 1000 tentativas (relevante para bancos de dados muito grandes e configurações com múltiplos nós). [#50724](https://github.com/ClickHouse/ClickHouse/pull/50724) ([Alexander Nikolaev](https://github.com/AlexNik)).
* O artefato com código-fonte, incluindo os submódulos, é gerado na tarefa especial de build do Darwin. Ele pode ser usado para compilar o ClickHouse sem precisar fazer checkout dos submódulos. [#51435](https://github.com/ClickHouse/ClickHouse/pull/51435) ([Ilya Yatsishin](https://github.com/qoega)).
* Ocorreu um erro ao compilar o ClickHouse com a série de instruções AVX habilitada globalmente (o que não é recomendado). O motivo é que o snappy não habilita `SNAPPY_HAVE_X86_CRC32`. [#55049](https://github.com/ClickHouse/ClickHouse/pull/55049) ([monchickey](https://github.com/monchickey)).
* Resolvido um problema ao iniciar o `clickhouse-keeper` autônomo a partir do pacote `clickhouse-server`. [#55226](https://github.com/ClickHouse/ClickHouse/pull/55226) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Nos testes, a versão do RabbitMQ foi atualizada para 3.12.6. A coleta de logs nos testes do RabbitMQ foi aprimorada. [#55424](https://github.com/ClickHouse/ClickHouse/pull/55424) ([Ilya Yatsishin](https://github.com/qoega)).
* A diferença entre as mensagens de erro do openssl e do boringssl foi ajustada para corrigir o teste funcional. [#55975](https://github.com/ClickHouse/ClickHouse/pull/55975) ([MeenaRenganathan22](https://github.com/MeenaRenganathan22)).
* Passa a usar o repositório upstream para o apache datasketches. [#55787](https://github.com/ClickHouse/ClickHouse/pull/55787) ([Nikita Taranov](https://github.com/nickitat)).

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

* Ignorar a criação de hard links de arquivos de índice invertido durante mutações [#47663](https://github.com/ClickHouse/ClickHouse/pull/47663) ([cangyin](https://github.com/cangyin)).
* Corrigido bug na função `match` (regex), em que um pattern contendo alternância produz uma condição de chave incorreta. Fecha #53222. [#54696](https://github.com/ClickHouse/ClickHouse/pull/54696) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correção do erro 'Cannot find column' na otimização de leitura em ordem com ARRAY JOIN [#51746](https://github.com/ClickHouse/ClickHouse/pull/51746) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Adicionado suporte a subcolunas experimentais `Object(Nullable(json))` ausentes em consultas. [#54052](https://github.com/ClickHouse/ClickHouse/pull/54052) ([zps](https://github.com/VanDarkholme7)).
* Readiciona a correção para `accurateCastOrNull` [#54629](https://github.com/ClickHouse/ClickHouse/pull/54629) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Corrigida a detecção de `DEFAULT` em colunas de uma tabela Distributed criada sem AS [#55060](https://github.com/ClickHouse/ClickHouse/pull/55060) ([Vitaly Baranov](https://github.com/vitlibar)).
* Limpeza adequada em caso de exceção no construtor de ShellCommandSource [#55103](https://github.com/ClickHouse/ClickHouse/pull/55103) ([Alexander Gololobov](https://github.com/davenger)).
* Corrigido um deadlock na atualização da role atribuída via LDAP [#55119](https://github.com/ClickHouse/ClickHouse/pull/55119) ([Julian Maicher](https://github.com/jmaicher)).
* Suprimir a atualização das estatísticas de erro para exceções internas [#55128](https://github.com/ClickHouse/ClickHouse/pull/55128) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrigido deadlock em backups [#55132](https://github.com/ClickHouse/ClickHouse/pull/55132) ([alesapin](https://github.com/alesapin)).
* Corrigida a recuperação dos arquivos de armazenamento do Iceberg [#55144](https://github.com/ClickHouse/ClickHouse/pull/55144) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige a poda de partições de colunas adicionais em Set. [#55172](https://github.com/ClickHouse/ClickHouse/pull/55172) ([Amos Bird](https://github.com/amosbird)).
* Corrigido o recálculo de skip indexes nas consultas ALTER UPDATE quando a tabela tem granularidade adaptativa [#55202](https://github.com/ClickHouse/ClickHouse/pull/55202) ([Duc Canh Le](https://github.com/canhld94)).
* Correção do download em segundo plano no cache de fs [#55252](https://github.com/ClickHouse/ClickHouse/pull/55252) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Evita possíveis vazamentos de memória em compressores quando a finalização do buffer está ausente [#55262](https://github.com/ClickHouse/ClickHouse/pull/55262) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida a execução de funções em colunas esparsas [#55275](https://github.com/ClickHouse/ClickHouse/pull/55275) ([Azat Khuzhin](https://github.com/azat)).
* Corrige a mesclagem incorreta de Nested em SELECT FINAL FROM SummingMergeTree [#55276](https://github.com/ClickHouse/ClickHouse/pull/55276) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido bug que impedia remover uma partição detached em MergeTree replicado sobre S3 sem zero copy [#55309](https://github.com/ClickHouse/ClickHouse/pull/55309) ([alesapin](https://github.com/alesapin)).
* Corrige uma falha em MergeSortingPartialResultTransform (devido à ausência de fragmentos após `remerge`) [#55335](https://github.com/ClickHouse/ClickHouse/pull/55335) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida a condição de corrida em CreatingSetsTransform (em caso de erro) causada pelo lançamento de uma exceção compartilhada [#55338](https://github.com/ClickHouse/ClickHouse/pull/55338) ([Azat Khuzhin](https://github.com/azat)).
* Corrige a otimização de lixo (até certo ponto) [#55353](https://github.com/ClickHouse/ClickHouse/pull/55353) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido vazamento em StorageHDFS [#55370](https://github.com/ClickHouse/ClickHouse/pull/55370) ([Azat Khuzhin](https://github.com/azat)).
* Corrige o parsing de arrays no operador CAST [#55417](https://github.com/ClickHouse/ClickHouse/pull/55417) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigida a filtragem por colunas virtuais com filtro OR na consulta [#55418](https://github.com/ClickHouse/ClickHouse/pull/55418) ([Azat Khuzhin](https://github.com/azat)).
* Corrigidos problemas de conexão com o MongoDB [#55419](https://github.com/ClickHouse/ClickHouse/pull/55419) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrigida a representação booleana na interface MySQL [#55427](https://github.com/ClickHouse/ClickHouse/pull/55427) ([Serge Klochkov](https://github.com/slvrtrn)).
* Corrige a formatação de DateTime no protocolo de texto do MySQL e a exibição de tipos LowCardinality(Nullable(T)) [#55479](https://github.com/ClickHouse/ClickHouse/pull/55479) ([Serge Klochkov](https://github.com/slvrtrn)).
* Fazer com que `use_mysql_types_in_show_columns` afete apenas `SHOW COLUMNS` [#55481](https://github.com/ClickHouse/ClickHouse/pull/55481) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige a análise incorreta de `DW_FORM_ref_addr` pelo simbolizador de pilha e falhas ocasionais [#55483](https://github.com/ClickHouse/ClickHouse/pull/55483) ([Michael Kolupaev](https://github.com/al13n321)).
* Destruir a fibra em caso de exceção no cancelBefore do AsyncTaskExecutor [#55516](https://github.com/ClickHouse/ClickHouse/pull/55516) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige parâmetros de consulta que não funcionavam com handlers HTTP personalizados [#55521](https://github.com/ClickHouse/ClickHouse/pull/55521) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige a verificação de dados não processados no formato Values [#55527](https://github.com/ClickHouse/ClickHouse/pull/55527) ([Azat Khuzhin](https://github.com/azat)).
* Correção de 'Invalid cursor state' no ODBC ao interagir com o MS SQL Server [#55558](https://github.com/ClickHouse/ClickHouse/pull/55558) ([vdimir](https://github.com/vdimir)).
* Correção do tempo máximo de execução e do modo de overflow 'break' [#55577](https://github.com/ClickHouse/ClickHouse/pull/55577) ([Alexander Gololobov](https://github.com/davenger)).
* Corrige falha no QueryNormalizer com aliases cíclicos [#55602](https://github.com/ClickHouse/ClickHouse/pull/55602) ([vdimir](https://github.com/vdimir)).
* Desativar a otimização incorreta e adicionar um teste [#55609](https://github.com/ClickHouse/ClickHouse/pull/55609) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mesclagem [#52352](https://github.com/ClickHouse/ClickHouse/issues/52352) [#55621](https://github.com/ClickHouse/ClickHouse/pull/55621) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionar um teste para evitar a ordenação incorreta de decimais [#55662](https://github.com/ClickHouse/ClickHouse/pull/55662) ([Amos Bird](https://github.com/amosbird)).
* Corrige a barra de progresso das funções de cluster s3 e azure com URL sem globs [#55666](https://github.com/ClickHouse/ClickHouse/pull/55666) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige a filtragem por colunas virtuais com o filtro OR na consulta (reenvio) [#55678](https://github.com/ClickHouse/ClickHouse/pull/55678) ([Azat Khuzhin](https://github.com/azat)).
* Correções e melhorias para o armazenamento do Iceberg [#55695](https://github.com/ClickHouse/ClickHouse/pull/55695) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige uma condição de corrida em CreatingSetsTransform (v2) [#55786](https://github.com/ClickHouse/ClickHouse/pull/55786) ([Azat Khuzhin](https://github.com/azat)).
* Lançar exceção ao analisar uma string inválida como float se precise\_float\_parsing for true [#55861](https://github.com/ClickHouse/ClickHouse/pull/55861) ([李扬](https://github.com/taiyang-li)).
* Desative o pushdown de predicados se a CTE contiver funções com estado [#55871](https://github.com/ClickHouse/ClickHouse/pull/55871) ([Raúl Marín](https://github.com/Algunenano)).
* Correção no normalize ASTSelectWithUnionQuery, pois ele removia `FORMAT` da consulta [#55887](https://github.com/ClickHouse/ClickHouse/pull/55887) ([flynn](https://github.com/ucasfl)).
* Tentativa de corrigir um possível segfault no formato de entrada ORC nativo [#55891](https://github.com/ClickHouse/ClickHouse/pull/55891) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige funções de janela em casos de colunas esparsas. [#55895](https://github.com/ClickHouse/ClickHouse/pull/55895) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* correção: StorageNull agora oferece suporte a subcolunas [#55912](https://github.com/ClickHouse/ClickHouse/pull/55912) ([FFish](https://github.com/wxybear)).
* Não registrar erros recuperáveis de mutate/merge do Replicated no log de erros [#55944](https://github.com/ClickHouse/ClickHouse/pull/55944) ([Azat Khuzhin](https://github.com/azat)).
* Correção de `SHOW DATABASES LIMIT <N>` [#55962](https://github.com/ClickHouse/ClickHouse/pull/55962) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige schema Protobuf gerado automaticamente com campos com underscore [#55974](https://github.com/ClickHouse/ClickHouse/pull/55974) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrigido `dateTime64ToSnowflake64()` com escala não padrão [#55983](https://github.com/ClickHouse/ClickHouse/pull/55983) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige a entrada/saída de coluna de dicionário do Arrow [#55989](https://github.com/ClickHouse/ClickHouse/pull/55989) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige a obtenção do schema no schema registry do AvroConfluent [#55991](https://github.com/ClickHouse/ClickHouse/pull/55991) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige 'Block structure mismatch' em ALTERs e INSERTs concorrentes na tabela Buffer [#55995](https://github.com/ClickHouse/ClickHouse/pull/55995) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige o cálculo incorreto do espaço livre para a política JBOD least\_used [#56030](https://github.com/ClickHouse/ClickHouse/pull/56030) ([Azat Khuzhin](https://github.com/azat)).
* Corrige o problema de ausência de valor escalar ao avaliar subconsultas dentro de funções de tabela [#56057](https://github.com/ClickHouse/ClickHouse/pull/56057) ([Amos Bird](https://github.com/amosbird)).
* Corrige resultado incorreto de consulta quando http\_write\_exception\_in\_output\_format=1 [#56135](https://github.com/ClickHouse/ClickHouse/pull/56135) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrigido o cache de schema para o fallback JSON->JSONEachRow com configurações alteradas [#56172](https://github.com/ClickHouse/ClickHouse/pull/56172) ([Kruglov Pavel](https://github.com/Avogar)).
* Adicionar um manipulador de erros ao odbc-bridge [#56185](https://github.com/ClickHouse/ClickHouse/pull/56185) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).

### <a id="239" /> Lançamento do ClickHouse 23.9, 2023-09-28. [Apresentação](https://presentations.clickhouse.com/2023-release-23.9/), [Vídeo](https://www.youtube.com/watch?v=yS8YU-rBpMM)

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

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

* Removida a opção de configuração `status_info` e o status de Dictionaries do handler Prometheus padrão. [#54090](https://github.com/ClickHouse/ClickHouse/pull/54090) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O metadata cache experimental de partes foi removido da base de código. [#54215](https://github.com/ClickHouse/ClickHouse/pull/54215) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A configuração `input_format_json_try_infer_numbers_from_strings` passa a ficar desativada por padrão, para evitar inferir números a partir de strings nos formatos JSON e, assim, possíveis erros de parsing quando os dados de amostra contêm strings que parecem números. [#55099](https://github.com/ClickHouse/ClickHouse/pull/55099) ([Kruglov Pavel](https://github.com/Avogar)).

<div id="new-feature">
  #### Nova funcionalidade
</div>

* Melhora na inferência de esquema em formatos JSON: 1) Agora é possível inferir named Tuples a partir de JSON objects sem o JSON type Experimental, usando a configuração `input_format_json_try_infer_named_tuples_from_objects` nos formatos JSON. Antes, sem o JSON type Experimental, só era possível inferir JSON objects como Strings ou maps; agora também é possível inferi-los como named Tuple. O tipo Tuple resultante conterá todas as chaves dos objetos lidos na amostra de dados durante a inferência de esquema. Isso pode ser útil para ler dados JSON estruturados sem objetos esparsos. A configuração vem enabled por padrão. 2) Permite fazer o parsing de JSON array em uma coluna do tipo String com a configuração `input_format_json_read_arrays_as_strings`. Isso pode ajudar na leitura de arrays com valores de tipos diferentes. 3) Permite usar o tipo String para chaves JSON com tipos desconhecidos (`null`/`[]`/`{}`) nos dados de amostra com a configuração `input_format_json_infer_incomplete_types_as_strings`. Agora, nos formatos JSON, podemos ler qualquer valor em uma coluna String e evitar o error `Cannot determine type for column 'column_name' by first 25000 rows of data, most likely this column contains only Nulls or empty Arrays/Maps` durante a inferência de esquema ao usar o tipo String para tipos desconhecidos, de modo que os dados sejam lidos com sucesso. [#54427](https://github.com/ClickHouse/ClickHouse/pull/54427) ([Kruglov Pavel](https://github.com/Avogar)).
* Adicionado suporte ao agendamento de IO para discos remotos. A configuração de armazenamento para os tipos de disco `s3`, `s3_plain`, `hdfs` e `azure_blob_storage` agora pode conter elementos `read_resource` e `write_resource` com nomes de recursos. As políticas de agendamento desses recursos podem ser configuradas em uma seção separada `resources` da configuração do servidor. As consultas podem ser marcadas usando a configuração `workload` e classificadas usando a seção `workload_classifiers` da configuração do servidor para atingir diferentes objetivos de agendamento de recursos. Mais detalhes na [documentação](/pt-BR/concepts/features/configuration/server-config/workload-scheduling). [#47009](https://github.com/ClickHouse/ClickHouse/pull/47009) ([Sergei Trifonov](https://github.com/serxa)). Adicionado o tipo de nó de agendamento de IO "bandwidth\_limit". Ele permite especificar restrições `max_speed` e `max_burst` para o tráfego que passa por esse nó. [#54618](https://github.com/ClickHouse/ClickHouse/pull/54618) ([Sergei Trifonov](https://github.com/serxa)).
* Adicionado um novo tipo de autenticação baseado em chaves SSH. Funciona apenas com o protocolo TCP nativo. [#41109](https://github.com/ClickHouse/ClickHouse/pull/41109) ([George Gamezardashvili](https://github.com/InfJoker)).
* Adicionada uma nova coluna `_block_number` às tabelas MergeTree. [#44532](https://github.com/ClickHouse/ClickHouse/issues/44532). [#47532](https://github.com/ClickHouse/ClickHouse/pull/47532) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Adicionar a cláusula `IF EMPTY` às consultas `DROP TABLE`. [#48915](https://github.com/ClickHouse/ClickHouse/pull/48915) ([Pavel Novitskiy](https://github.com/pnovitskiy)).
* As funções SQL `toString(datetime, timezone)` e `formatDateTime(datetime, format, timezone)` agora admitem argumentos de fuso horário não constantes. [#53680](https://github.com/ClickHouse/ClickHouse/pull/53680) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Adiciona suporte a `ALTER TABLE MODIFY COMMENT`. Observação: algo semelhante foi adicionado por um colaborador externo há muito tempo, mas a funcionalidade simplesmente não funcionava e só confundia os usuários. Isso fecha [#36377](https://github.com/ClickHouse/ClickHouse/issues/36377). [#51304](https://github.com/ClickHouse/ClickHouse/pull/51304) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Observação: este comando não é propagado entre réplicas, portanto as réplicas de uma tabela podem ter comentários diferentes.
* Foi adicionado `GCD`, também conhecido como "máximo divisor comum", como um novo codec de compressão de dados. O codec calcula o GCD de todos os valores da coluna e, em seguida, divide cada valor pelo GCD. O codec GCD é um codec de preparação de dados (semelhante a Delta e DoubleDelta) e não pode ser usado sozinho. Ele funciona com dados dos tipos inteiro, decimal e data/hora. Um caso de uso viável para o codec GCD são valores de coluna que variam (aumentam/diminuem) em múltiplos do GCD, por exemplo, 24 - 28 - 16 - 24 - 8 - 24 (assumindo GCD = 4). [#53149](https://github.com/ClickHouse/ClickHouse/pull/53149) ([Alexander Nam](https://github.com/seshWCS)).
* Foram adicionados dois novos aliases de tipo: `DECIMAL(P)` (como atalho para `DECIMAL(P, 0)`) e `DECIMAL` (como atalho para `DECIMAL(10, 0)`). Isso torna o ClickHouse mais compatível com o dialeto SQL do MySQL. [#53328](https://github.com/ClickHouse/ClickHouse/pull/53328) ([Val Doroshchuk](https://github.com/valbok)).
* Adicionada uma nova tabela de log do sistema `backup_log` para registrar todas as operações `BACKUP` e `RESTORE`. [#53638](https://github.com/ClickHouse/ClickHouse/pull/53638) ([Victor Krasnov](https://github.com/sirvickr)).
* Adicionada uma configuração de formato `output_format_markdown_escape_special_characters` (padrão: false). A configuração controla se caracteres especiais como `!`, `#`, `$` etc. são escapados (ou seja, precedidos por uma barra invertida) no formato de saída `Markdown`. [#53860](https://github.com/ClickHouse/ClickHouse/pull/53860) ([irenjj](https://github.com/irenjj)).
* Adicionada a função `decodeHTMLComponent`. [#54097](https://github.com/ClickHouse/ClickHouse/pull/54097) ([Bharat Nallan](https://github.com/bharatnc)).
* Adicionada `peak_threads_usage` à tabela query\_log. [#54335](https://github.com/ClickHouse/ClickHouse/pull/54335) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Adicionado suporte a `SHOW FUNCTIONS` ao clickhouse-client. [#54337](https://github.com/ClickHouse/ClickHouse/pull/54337) ([Julia Kartseva](https://github.com/wat-ze-hex)).
* Adicionada a função `toDaysSinceYearZero` com alias `TO_DAYS` (para compatibilidade com MySQL), que retorna o número de dias transcorridos desde `0001-01-01` (no calendário gregoriano proléptico). [#54479](https://github.com/ClickHouse/ClickHouse/pull/54479) ([Robert Schulze](https://github.com/rschu1ze)). A função `toDaysSinceYearZero` agora oferece suporte a argumentos dos tipos `DateTime` e `DateTime64`. [#54856](https://github.com/ClickHouse/ClickHouse/pull/54856) ([Serge Klochkov](https://github.com/slvrtrn)).
* Adicionadas as funções `YYYYMMDDtoDate`, `YYYYMMDDtoDate32`, `YYYYMMDDhhmmssToDateTime` e `YYYYMMDDhhmmssToDateTime64`. Elas convertem uma data ou uma data com hora codificada como inteiro (por exemplo, 20230911) em uma data nativa ou uma data com hora nativa. Assim, fornecem a funcionalidade inversa das funções existentes `YYYYMMDDToDate`, `YYYYMMDDToDateTime`, `YYYYMMDDhhmmddToDateTime`, `YYYYMMDDhhmmddToDateTime64`. [#54509](https://github.com/ClickHouse/ClickHouse/pull/54509) ([Quanfa Fu](https://github.com/dentiscalprum)) ([Robert Schulze](https://github.com/rschu1ze)).
* Adicionadas várias funções de distância de strings, incluindo `byteHammingDistance` e `editDistance`. [#54935](https://github.com/ClickHouse/ClickHouse/pull/54935) ([flynn](https://github.com/ucasfl)).
* Permite especificar a data de expiração e, opcionalmente, o horário das credenciais do usuário com a cláusula `VALID UNTIL datetime`. [#51261](https://github.com/ClickHouse/ClickHouse/pull/51261) ([Nikolay Degterinsky](https://github.com/evillique)).
* Permite URLs no estilo S3 para as table functions `s3`, `gcs`, `oss`. A URL é convertida automaticamente para HTTP. Exemplo: `'s3://clickhouse-public-datasets/hits.csv'` é convertida para `'https://clickhouse-public-datasets.s3.amazonaws.com/hits.csv'`. [#54931](https://github.com/ClickHouse/ClickHouse/pull/54931) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Adiciona a nova configuração `print_pretty_type_names` para imprimir, de forma legível, tipos profundamente aninhados, como Tuple/Maps/Arrays. [#55095](https://github.com/ClickHouse/ClickHouse/pull/55095) ([Kruglov Pavel](https://github.com/Avogar)).

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

* A leitura do S3 fica mais rápida com a habilitação de prefetches por padrão. [#53709](https://github.com/ClickHouse/ClickHouse/pull/53709) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Não leia implicitamente as colunas PK e de versão em partes individuais se isso não for necessário para consultas com FINAL. [#53919](https://github.com/ClickHouse/ClickHouse/pull/53919) ([Duc Canh Le](https://github.com/canhld94)).
* Otimiza o `group by` com chaves constantes. Otimizará consultas com `group by` em `_file/_path` após [https://github.com/ClickHouse/ClickHouse/pull/53529](https://github.com/ClickHouse/ClickHouse/pull/53529). [#53549](https://github.com/ClickHouse/ClickHouse/pull/53549) ([Kruglov Pavel](https://github.com/Avogar)).
* Melhorado o desempenho da ordenação de colunas `Decimal`. Melhorado o desempenho da inserção em `MergeTree` se ORDER BY contiver uma coluna `Decimal`. Melhorado o desempenho da ordenação quando os dados já estão ordenados ou quase ordenados. [#35961](https://github.com/ClickHouse/ClickHouse/pull/35961) ([Maksim Kita](https://github.com/kitaisreal)).
* Melhora o desempenho na análise de consultas muito grandes. Corrige [#51224](https://github.com/ClickHouse/ClickHouse/issues/51224). [#51469](https://github.com/ClickHouse/ClickHouse/pull/51469) ([frinkr](https://github.com/frinkr)).
* Uma otimização para reescrever `COUNT(DISTINCT ...)` e várias variantes de `uniq` como `count` quando selecionados de uma subconsulta com GROUP BY. [#52082](https://github.com/ClickHouse/ClickHouse/pull/52082) [#52645](https://github.com/ClickHouse/ClickHouse/pull/52645) ([JackyWoo](https://github.com/JackyWoo)).
* Remova as chamadas manuais para `mmap/mremap/munmap` e delegue todo esse trabalho ao `jemalloc` — isso melhora um pouco o desempenho. [#52792](https://github.com/ClickHouse/ClickHouse/pull/52792) ([Nikita Taranov](https://github.com/nickitat)).
* Corrigido o alto consumo de CPU ao trabalhar com NATS. [#54399](https://github.com/ClickHouse/ClickHouse/pull/54399) ([Vasilev Pyotr](https://github.com/vahpetr)).
* Como usamos instruções separadas para executar `toString` com argumento datetime, é possível melhorar um pouco o desempenho para argumentos que não são datetime e deixar algumas partes do código mais limpas. Dá continuidade a [#53680](https://github.com/ClickHouse/ClickHouse/issues/53680). [#54443](https://github.com/ClickHouse/ClickHouse/pull/54443) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Em vez de serializar elementos JSON em um `std::stringstream`, este PR tenta gravar o resultado da serialização diretamente em `ColumnString`. [#54613](https://github.com/ClickHouse/ClickHouse/pull/54613) ([lgbo](https://github.com/lgbo-ustc)).
* Habilitada a otimização de ORDER BY para ler dados na ordem correspondente de uma tabela MergeTree quando a tabela é acessada por meio de uma view. [#54628](https://github.com/ClickHouse/ClickHouse/pull/54628) ([Vitaly Baranov](https://github.com/vitlibar)).
* Melhora das funções SQL para JSON com a reutilização de `GeneratorJSONPath` e a remoção de vários ponteiros compartilhados. [#54735](https://github.com/ClickHouse/ClickHouse/pull/54735) ([lgbo](https://github.com/lgbo-ustc)).
* Keeper tenta processar solicitações de flush em lote para melhor desempenho. [#53049](https://github.com/ClickHouse/ClickHouse/pull/53049) ([Antonio Andelic](https://github.com/antonio2368)).
* Agora, o `clickhouse-client` processa arquivos em paralelo ao usar `INFILE 'glob_expression'`. Resolve [#54218](https://github.com/ClickHouse/ClickHouse/issues/54218). [#54533](https://github.com/ClickHouse/ClickHouse/pull/54533) ([Max K.](https://github.com/mkaynov)).
* Permite usar a chave primária na função `IN` quando os tipos das colunas da chave primária são diferentes dos tipos das colunas no lado direito da função `IN`. Exemplo: `SELECT id FROM test_table WHERE id IN (SELECT '5')`. Fecha [#48936](https://github.com/ClickHouse/ClickHouse/issues/48936). [#54544](https://github.com/ClickHouse/ClickHouse/pull/54544) ([Maksim Kita](https://github.com/kitaisreal)).
* O Hash JOIN tenta reduzir os buffers internos, que consomem metade da memória máxima disponível (definida por `max_bytes_in_join`). [#54584](https://github.com/ClickHouse/ClickHouse/pull/54584) ([vdimir](https://github.com/vdimir)).
* Respeita `max_block_size` para array join a fim de evitar possível OOM. Fecha [#54290](https://github.com/ClickHouse/ClickHouse/issues/54290). [#54664](https://github.com/ClickHouse/ClickHouse/pull/54664) ([李扬](https://github.com/taiyang-li)).
* Reutilização de conexões HTTP na função de tabela `s3`. [#54812](https://github.com/ClickHouse/ClickHouse/pull/54812) ([Michael Kolupaev](https://github.com/al13n321)).
* Substitua a busca linear em `MergeTreeRangeReader::Stream::ceilRowsToCompleteGranules` por uma busca binária. [#54869](https://github.com/ClickHouse/ClickHouse/pull/54869) ([usurai](https://github.com/usurai)).

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

* A criação de índices `Annoy` agora pode ser paralelizada usando a configuração `max_threads_for_annoy_index_creation`. [#54047](https://github.com/ClickHouse/ClickHouse/pull/54047) ([Robert Schulze](https://github.com/rschu1ze)).
* Réplicas paralelas em Distributed não leem de todas as réplicas [#54199](https://github.com/ClickHouse/ClickHouse/pull/54199) ([Igor Nikonov](https://github.com/devcrafter)).

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

* Permite substituir nomes longos de arquivos de colunas em partes de dados `MergeTree` por hashes dos nomes. Isso ajuda a evitar o erro `File name too long` em alguns casos. [#50612](https://github.com/ClickHouse/ClickHouse/pull/50612) ([Anton Popov](https://github.com/CurtizJ)).
* Interpretar dados no formato `JSON` como `JSONEachRow` se não for possível analisar os metadados. Isso permitirá ler arquivos com a extensão `.json` mesmo que o formato real seja JSONEachRow. Fecha [#45740](https://github.com/ClickHouse/ClickHouse/issues/45740). [#54405](https://github.com/ClickHouse/ClickHouse/pull/54405) ([Kruglov Pavel](https://github.com/Avogar)).
* Gera JSON/XML válido em caso de exceção durante a execução de consulta HTTP. Adicionada a configuração `http_write_exception_in_output_format` para habilitar/desabilitar esse comportamento (habilitado por padrão). [#52853](https://github.com/ClickHouse/ClickHouse/pull/52853) ([Kruglov Pavel](https://github.com/Avogar)).
* A view `information_schema.tables` agora conta com um novo campo `data_length`, que mostra o tamanho aproximado dos dados em disco. Isso é necessário para executar consultas geradas pelo Amazon QuickSight. [#55037](https://github.com/ClickHouse/ClickHouse/pull/55037) ([Robert Schulze](https://github.com/rschu1ze)).
* A interface MySQL recebeu uma implementação mínima de prepared statements, apenas o suficiente para permitir uma conexão do Tableau Online ao ClickHouse por meio do conector MySQL. [#54115](https://github.com/ClickHouse/ClickHouse/pull/54115) ([Serge Klochkov](https://github.com/slvrtrn)). Observe que a implementação de prepared statements é bem mínima; ainda não oferecemos suporte ao binding de argumentos, pois isso não é necessário neste caso de uso específico do Tableau Online. Isso será implementado posteriormente, se necessário, após testes extensivos do Tableau Online, caso descubramos problemas.
* Adiciona suporte aos modos de correspondência sem distinção entre maiúsculas e minúsculas e dot-all em dicionários `regexp_tree`. [#50906](https://github.com/ClickHouse/ClickHouse/pull/50906) ([Johann Gan](https://github.com/johanngan)).
* Melhoria no Keeper: adicionado um comando `createIfNotExists` do Keeper. [#48855](https://github.com/ClickHouse/ClickHouse/pull/48855) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Inferência mais precisa de tipos inteiros, correção de [#51236](https://github.com/ClickHouse/ClickHouse/issues/51236). [#53003](https://github.com/ClickHouse/ClickHouse/pull/53003) ([Chen768959](https://github.com/Chen768959)).
* Introduzida a resolução de conjuntos de caracteres em literais de string no MaterializedMySQL. [#53220](https://github.com/ClickHouse/ClickHouse/pull/53220) ([Val Doroshchuk](https://github.com/valbok)).
* Corrige um problema sutil com o mecanismo de tabela `EmbeddedRocksDB`, pouco usado, em um cenário extremamente raro: às vezes, o mecanismo de tabela `EmbeddedRocksDB` não fecha corretamente os arquivos no NFS após executar `DROP TABLE`. [#53502](https://github.com/ClickHouse/ClickHouse/pull/53502) ([Mingliang Pan](https://github.com/liangliangpan)).
* `RESTORE TABLE ON CLUSTER` deve criar tabelas replicadas com UUIDs correspondentes nos hosts. Caso contrário, a macro `{uuid}` no path do ZooKeeper não funcionará corretamente após o RESTORE. Este PR implementa isso. [#53765](https://github.com/ClickHouse/ClickHouse/pull/53765) ([Vitaly Baranov](https://github.com/vitlibar)).
* Adicionada a configuração de restore `restore_broken_parts_as_detached`: se estiver ativada, o processo de RESTORE não será interrompido por partes corrompidas durante a restauração; em vez disso, todas as partes corrompidas serão copiadas para a pasta `detached` com o prefixo `broken-from-backup`. Se estiver desativada, o processo de RESTORE será interrompido na primeira parte corrompida (se houver). O valor padrão é false. [#53877](https://github.com/ClickHouse/ClickHouse/pull/53877) ([Vitaly Baranov](https://github.com/vitlibar)).
* Adicionado o campo `elapsed_ns` aos cabeçalhos HTTP X-ClickHouse-Progress e X-ClickHouse-Summary. [#54179](https://github.com/ClickHouse/ClickHouse/pull/54179) ([joelynch](https://github.com/joelynch)).
* Implementação dos comandos `reconfig` ([https://github.com/ClickHouse/ClickHouse/pull/49450](https://github.com/ClickHouse/ClickHouse/pull/49450)), `sync` e `exists` no keeper-client. [#54201](https://github.com/ClickHouse/ClickHouse/pull/54201) ([pufit](https://github.com/pufit)).
* `clickhouse-local` e `clickhouse-client` agora permitem especificar o parâmetro `--query` várias vezes, por exemplo, `./clickhouse-client --query "SELECT 1" --query "SELECT 2"`. Essa sintaxe é um pouco mais intuitiva do que `./clickhouse-client --multiquery "SELECT  1;S ELECT 2"`, um pouco mais fácil de automatizar em scripts (por exemplo, `queries.push_back('--query "$q"')`) e mais consistente com o comportamento do parâmetro existente `--queries-file` (por exemplo, `./clickhouse client --queries-file queries1.sql --queries-file queries2.sql`). [#54249](https://github.com/ClickHouse/ClickHouse/pull/54249) ([Robert Schulze](https://github.com/rschu1ze)).
* Adiciona precisão de subsegundos a `formatReadableTimeDelta`. [#54250](https://github.com/ClickHouse/ClickHouse/pull/54250) ([Andrey Zvonov](https://github.com/zvonand)).
* Ativar `allow_remove_stale_moving_parts` por padrão. [#54260](https://github.com/ClickHouse/ClickHouse/pull/54260) ([vdimir](https://github.com/vdimir)).
* Corrigir o uso da contagem do cache e aprimorar a barra de progresso para leitura de arquivos compactados. [#54271](https://github.com/ClickHouse/ClickHouse/pull/54271) ([Kruglov Pavel](https://github.com/Avogar)).
* Adicionado suporte a credenciais do S3 usando SSO. Para definir um profile a ser usado com SSO, defina a variável de ambiente `AWS_PROFILE`. [#54347](https://github.com/ClickHouse/ClickHouse/pull/54347) ([Antonio Andelic](https://github.com/antonio2368)).
* Suporte a NULL como valor padrão para tipos aninhados Array/Tuple/Map em formatos de entrada. Fecha [#51100](https://github.com/ClickHouse/ClickHouse/issues/51100). [#54351](https://github.com/ClickHouse/ClickHouse/pull/54351) ([Kruglov Pavel](https://github.com/Avogar)).
* Permitir a leitura de algumas configurações incomuns de fragmentos nos formatos Arrow/Parquet. [#54370](https://github.com/ClickHouse/ClickHouse/pull/54370) ([Arthur Passos](https://github.com/arthurpassos)).
* Adiciona o alias `STD` para a função `stddevPop`, para compatibilidade com MySQL. Fecha [#54274](https://github.com/ClickHouse/ClickHouse/issues/54274). [#54382](https://github.com/ClickHouse/ClickHouse/pull/54382) ([Nikolay Degterinsky](https://github.com/evillique)).
* Adicionada a função `addDate` para compatibilidade com MySQL e `subDate` para manter a consistência. Consulte [#54275](https://github.com/ClickHouse/ClickHouse/issues/54275). [#54400](https://github.com/ClickHouse/ClickHouse/pull/54400) ([Nikolay Degterinsky](https://github.com/evillique)).
* Adicionado `modification_time` a `system.detached_parts`. [#54506](https://github.com/ClickHouse/ClickHouse/pull/54506) ([Azat Khuzhin](https://github.com/azat)).
* Foi adicionada uma configuração `splitby_max_substrings_includes_remaining_string` que controla se as funções "splitBy\*()" com o argumento "max\_substring" > 0 incluem o restante da string (se houver) no array de resultado (semântica do Python/Spark) ou não. O comportamento padrão não foi alterado. [#54518](https://github.com/ClickHouse/ClickHouse/pull/54518) ([Robert Schulze](https://github.com/rschu1ze)).
* Inferência aprimorada de tipos inteiros para campos `Int64`/`UInt64`. Continuação de [#53003](https://github.com/ClickHouse/ClickHouse/pull/53003). Agora também funciona para tipos aninhados, como Arrays de Arrays, e para funções como `map/tuple`. Problema: [#51236](https://github.com/ClickHouse/ClickHouse/issues/51236). [#54553](https://github.com/ClickHouse/ClickHouse/pull/54553) ([Kruglov Pavel](https://github.com/Avogar)).
* Adicionadas operações com arrays para multiplicação, divisão e módulo por escalar. Funciona em ambos os sentidos, por exemplo `5 * [5, 5]` e `[5, 5] * 5` - ambos os casos são possíveis. [#54608](https://github.com/ClickHouse/ClickHouse/pull/54608) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Adiciona o argumento opcional `version` ao comando `rm` no `keeper-client` para permitir exclusões mais seguras. [#54708](https://github.com/ClickHouse/ClickHouse/pull/54708) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Desativado o encerramento do servidor pelo systemd (isso pode levar à perda de dados ao usar tabelas Buffer). [#54744](https://github.com/ClickHouse/ClickHouse/pull/54744) ([Azat Khuzhin](https://github.com/azat)).
* Adicionado o campo `is_deterministic` à tabela de sistema `system.functions`, que indica se o resultado de uma função é estável entre duas invocações (com exatamente as mesmas entradas) ou não. [#54766](https://github.com/ClickHouse/ClickHouse/pull/54766) [#55035](https://github.com/ClickHouse/ClickHouse/pull/55035) ([Robert Schulze](https://github.com/rschu1ze)).
* As views no esquema `information_schema` foram tornadas mais compatíveis com as views equivalentes no MySQL (ou seja, foram modificadas e estendidas) a ponto de o Tableau Online conseguir se conectar ao ClickHouse. Mais especificamente: 1. O tipo do campo `information_schema.tables.table_type` mudou de Enum8 para String. 2. Foram adicionados os campos `table_comment` e `table_collation` à view `information_schema.table`. 3. Foram adicionadas as views `information_schema.key_column_usage` e `referential_constraints`. 4. Os aliases em maiúsculas nas views de `information_schema` foram substituídos por colunas concretas em maiúsculas. [#54773](https://github.com/ClickHouse/ClickHouse/pull/54773) ([Serge Klochkov](https://github.com/slvrtrn)).
* O cache de consultas agora retorna um erro se você tentar armazenar em cache o resultado de uma consulta com uma função não determinística, como `now`, `randomString` e `dictGet`. Em comparação com o comportamento anterior (simplesmente não armazenar o resultado em cache), isso reduz a confusão e a surpresa. [#54801](https://github.com/ClickHouse/ClickHouse/pull/54801) ([Robert Schulze](https://github.com/rschu1ze)).
* Proíbe colunas especiais, como materializadas/efêmeras/com alias, para armazenamentos `file`/`s3`/`url`/..., corrige a inserção em colunas efêmeras a partir de arquivos. Fecha [#53477](https://github.com/ClickHouse/ClickHouse/issues/53477). [#54803](https://github.com/ClickHouse/ClickHouse/pull/54803) ([Kruglov Pavel](https://github.com/Avogar)).
* Coleta de metadados para backup mais configurável. [#54804](https://github.com/ClickHouse/ClickHouse/pull/54804) ([Vitaly Baranov](https://github.com/vitlibar)).
* O arquivo de log do `clickhouse-local` (se habilitado com a flag --server\_logs\_file) agora passará a prefixar cada linha com timestamp, ID da thread etc., assim como o `clickhouse-server`. [#54807](https://github.com/ClickHouse/ClickHouse/pull/54807) ([Michael Kolupaev](https://github.com/al13n321)).
* Campo `is_obsolete` na tabela `system.merge_tree_settings` — agora ele é 1 para configurações obsoletas de merge tree. Antes, apenas a descrição indicava que a configuração era obsoleta. [#54837](https://github.com/ClickHouse/ClickHouse/pull/54837) ([Robert Schulze](https://github.com/rschu1ze)).
* Permite usar o plural em literais de intervalo. `INTERVAL 2 HOURS` deve ser equivalente a `INTERVAL 2 HOUR`. [#54860](https://github.com/ClickHouse/ClickHouse/pull/54860) ([Jordi Villar](https://github.com/jrdi)).
* Permitir sempre a criação de uma projeção com PK `Nullable`. Isso corrige [#54814](https://github.com/ClickHouse/ClickHouse/issues/54814). [#54895](https://github.com/ClickHouse/ClickHouse/pull/54895) ([Amos Bird](https://github.com/amosbird)).
* Executar novamente as operações S3 do backup após falha por redefinição da conexão. [#54900](https://github.com/ClickHouse/ClickHouse/pull/54900) ([Vitaly Baranov](https://github.com/vitlibar)).
* Tornar a mensagem de exceção precisa quando o valor máximo de uma configuração for menor que o valor mínimo. [#54925](https://github.com/ClickHouse/ClickHouse/pull/54925) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* `LIKE`, `match` e outras funções de correspondência por expressão regular agora permitem corresponder padrões que contêm substrings não UTF-8, com fallback para correspondência binária. Exemplo: você pode usar `string LIKE '\xFE\xFF%'` para detectar BOM. Isso corrige [#54486](https://github.com/ClickHouse/ClickHouse/issues/54486). [#54942](https://github.com/ClickHouse/ClickHouse/pull/54942) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado o evento de perfil `ContextLockWaitMicroseconds`. [#55029](https://github.com/ClickHouse/ClickHouse/pull/55029) ([Maksim Kita](https://github.com/kitaisreal)).
* O Keeper ajusta dinamicamente os níveis de log. [#50372](https://github.com/ClickHouse/ClickHouse/pull/50372) ([helifu](https://github.com/helifu)).
* Adicionada a função `timestamp` para compatibilidade com o MySQL. Fecha [#54275](https://github.com/ClickHouse/ClickHouse/issues/54275). [#54639](https://github.com/ClickHouse/ClickHouse/pull/54639) ([Nikolay Degterinsky](https://github.com/evillique)).

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

* Atualizado o compilador das builds oficiais e de integração contínua do ClickHouse de Clang 16 para 17. [#53831](https://github.com/ClickHouse/ClickHouse/pull/53831) ([Robert Schulze](https://github.com/rschu1ze)).
* Dados de TLD regenerados para lookups (`tldLookup.generated.cpp`). [#54269](https://github.com/ClickHouse/ClickHouse/pull/54269) ([Bharat Nallan](https://github.com/bharatnc)).
* Removido o link simbólico redundante `clickhouse-keeper-client`. [#54587](https://github.com/ClickHouse/ClickHouse/pull/54587) ([Tomas Barton](https://github.com/deric)).
* Passa a usar `/usr/bin/env` para localizar o bash — agora com suporte ao Nix OS. [#54603](https://github.com/ClickHouse/ClickHouse/pull/54603) ([Fionera](https://github.com/fionera)).
* O CMake adicionou a opção `PROFILE_CPU`, necessária para executar `perf record` sem usar um call graph DWARF. [#54917](https://github.com/ClickHouse/ClickHouse/pull/54917) ([Maksim Kita](https://github.com/kitaisreal)).
* Se o linker for diferente de LLD, a execução é interrompida com um erro fatal. [#55036](https://github.com/ClickHouse/ClickHouse/pull/55036) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A biblioteca usada para manipular (codificar/decodificar) valores em base64 foi trocada de Turbo-Base64 para aklomp-base64. Ambas têm aceleração SIMD em x86 e ARM, mas 1. a licença da segunda (BSD-2) é mais favorável para o ClickHouse, já que a Turbo64 mudou nesse meio-tempo para GPL-3; 2. com mais estrelas no GitHub, a aklomp-base64 parece ser uma opção mais preparada para o futuro; 3. a aklomp-base64 tem uma API ligeiramente melhor (embora isso seja discutivelmente subjetivo); e 4. a aklomp-base64 não exige soluções improvisadas para contornar bugs (como inicialização sem thread safety). Observação: a aklomp-base64 rejeita valores base64 sem padding, enquanto a Turbo-Base64 os decodifica em regime de melhor esforço. A RFC-4648 deixa em aberto se o padding é obrigatório ou não, mas, dependendo do contexto, isso pode representar uma mudança de comportamento que merece atenção. [#54119](https://github.com/ClickHouse/ClickHouse/pull/54119) ([Mikhail Koviazin](https://github.com/mkmkme)).

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

* Corrigido REPLACE/MOVE PARTITION com replicação zero-copy (observação: "replicação zero-copy" é um recurso experimental) [#54193](https://github.com/ClickHouse/ClickHouse/pull/54193) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrigidos bloqueios de zero-copy com hardlinks (observação: "replicação zero-copy" é um recurso experimental) [#54859](https://github.com/ClickHouse/ClickHouse/pull/54859) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige o lixo do zero copy (observação: "replicação zero-copy" é um recurso experimental) [#54550](https://github.com/ClickHouse/ClickHouse/pull/54550) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Enviar o timeout de retry HTTP em milissegundos (antes estava incorreto). [#54438](https://github.com/ClickHouse/ClickHouse/pull/54438) ([Duc Canh Le](https://github.com/canhld94)).
* Corrigida mensagem de erro enganosa em OUTFILE com `CapnProto`/`Protobuf` [#52870](https://github.com/ClickHouse/ClickHouse/pull/52870) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige relatórios resumidos com réplicas paralelas ao usar LIMIT [#53050](https://github.com/ClickHouse/ClickHouse/pull/53050) ([Raúl Marín](https://github.com/Algunenano)).
* Correção do throttling de BACKUPs de/para o S3 (caso a cópia nativa não tenha sido usada) e também em alguns outros pontos [#53336](https://github.com/ClickHouse/ClickHouse/pull/53336) ([Azat Khuzhin](https://github.com/azat)).
* Corrige o throttling de IO ao copiar diretórios inteiros [#53338](https://github.com/ClickHouse/ClickHouse/pull/53338) ([Azat Khuzhin](https://github.com/azat)).
* Correção: ao mover ações para a condição `prewhere`, é possível perder uma coluna [#53492](https://github.com/ClickHouse/ClickHouse/pull/53492) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrigido erro interno ao substituir por partes idênticas em bytes [#53735](https://github.com/ClickHouse/ClickHouse/pull/53735) ([Pedro Riera](https://github.com/priera)).
* Correção: exigir que as colunas participem da expressão `interpolate` [#53754](https://github.com/ClickHouse/ClickHouse/pull/53754) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige a inicialização da descoberta de cluster + a definição de fail points na configuração [#54113](https://github.com/ClickHouse/ClickHouse/pull/54113) ([vdimir](https://github.com/vdimir)).
* Corrige falhas em `accurateCastOrNull` [#54136](https://github.com/ClickHouse/ClickHouse/pull/54136) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Corrigida a chave primária Nullable com o modificador FINAL [#54164](https://github.com/ClickHouse/ClickHouse/pull/54164) ([Amos Bird](https://github.com/amosbird)).
* Corrigido um erro que impedia a inserção de novos dados em uma visão materializada replicada na presença de dados duplicados. [#54184](https://github.com/ClickHouse/ClickHouse/pull/54184) ([Pedro Riera](https://github.com/priera)).
* Correção: permitir `IPv6` em filtro de Bloom [#54200](https://github.com/ClickHouse/ClickHouse/pull/54200) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* corrige uma possível incompatibilidade de tipo com `IPv4` [#54212](https://github.com/ClickHouse/ClickHouse/pull/54212) ([Bharat Nallan](https://github.com/bharatnc)).
* Corrigido o `system.data_skipping_indices` para índices recriados [#54225](https://github.com/ClickHouse/ClickHouse/pull/54225) ([Artur Malchanau](https://github.com/Hexta)).
* corrige conflito de nomes no reescritor v2 para múltiplos join [#54240](https://github.com/ClickHouse/ClickHouse/pull/54240) ([Tao Wang](https://github.com/wangtZJU)).
* Corrige erros inesperados em `system.errors` após JOIN [#54306](https://github.com/ClickHouse/ClickHouse/pull/54306) ([vdimir](https://github.com/vdimir)).
* Corrigido `isZeroOrNull(NULL)` [#54316](https://github.com/ClickHouse/ClickHouse/pull/54316) ([flynn](https://github.com/ucasfl)).
* Correção: réplicas paralelas em Distributed com `prefer_localhost_replica` = 1 [#54334](https://github.com/ClickHouse/ClickHouse/pull/54334) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige erro lógico na mesclagem vertical + ReplacingMergeTree + limpeza do OPTIMIZE [#54368](https://github.com/ClickHouse/ClickHouse/pull/54368) ([alesapin](https://github.com/alesapin)).
* Corrige o possível erro `URI contains invalid characters` na função de tabela `s3` [#54373](https://github.com/ClickHouse/ClickHouse/pull/54373) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrigida falha de segmentação na otimização de AST da função `arrayExists` [#54379](https://github.com/ClickHouse/ClickHouse/pull/54379) ([Nikolay Degterinsky](https://github.com/evillique)).
* Verificação de overflow antes da soma na função `analysisOfVariance` [#54385](https://github.com/ClickHouse/ClickHouse/pull/54385) ([Antonio Andelic](https://github.com/antonio2368)).
* Reproduzir e corrigir o bug no removeSharedRecursive [#54430](https://github.com/ClickHouse/ClickHouse/pull/54430) ([Sema Checherinda](https://github.com/CheSema)).
* Correção de possível resultado incorreto com SimpleAggregateFunction em PREWHERE e FINAL [#54436](https://github.com/ClickHouse/ClickHouse/pull/54436) ([Azat Khuzhin](https://github.com/azat)).
* Corrige a filtragem de partes com indexHint quando o analisador não é usado [#54449](https://github.com/ClickHouse/ClickHouse/pull/54449) ([Azat Khuzhin](https://github.com/azat)).
* Corrige as projeções agregadas com estados normalizados [#54480](https://github.com/ClickHouse/ClickHouse/pull/54480) ([Amos Bird](https://github.com/amosbird)).
* `clickhouse-local`: algo para o parâmetro de multiconsulta [#54498](https://github.com/ClickHouse/ClickHouse/pull/54498) ([CuiShuoGuo](https://github.com/bakam412)).
* `clickhouse-local` agora oferece suporte ao argumento de linha de comando `--database` [#54503](https://github.com/ClickHouse/ClickHouse/pull/54503) ([vdimir](https://github.com/vdimir)).
* Corrige um possível erro de parsing nos formatos `-WithNames` com `input_format_with_names_use_header` desabilitado [#54513](https://github.com/ClickHouse/ClickHouse/pull/54513) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige um caso raro do erro CHECKSUM\_DOESNT\_MATCH [#54549](https://github.com/ClickHouse/ClickHouse/pull/54549) ([alesapin](https://github.com/alesapin)).
* Corrigida a ordenação no UNION ALL de resultados já ordenados [#54564](https://github.com/ClickHouse/ClickHouse/pull/54564) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrigida a instalação de snapshot no Keeper [#54572](https://github.com/ClickHouse/ClickHouse/pull/54572) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige uma condição de corrida em `ColumnUnique` [#54575](https://github.com/ClickHouse/ClickHouse/pull/54575) ([Nikita Taranov](https://github.com/nickitat)).
* Índice Annoy/Usearch: corrige LOGICAL\_ERROR durante a criação com valores padrão [#54600](https://github.com/ClickHouse/ClickHouse/pull/54600) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrigida a serialização de `ColumnDecimal` [#54601](https://github.com/ClickHouse/ClickHouse/pull/54601) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige a inferência de esquema em funções \*Cluster para nomes de colunas com espaços [#54635](https://github.com/ClickHouse/ClickHouse/pull/54635) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige o uso da estrutura das tabelas de inserção em casos de valores padrão e de colunas explicitamente especificadas no insert [#54655](https://github.com/ClickHouse/ClickHouse/pull/54655) ([Kruglov Pavel](https://github.com/Avogar)).
* Correção: evitar usar correspondência por regex, possivelmente contendo alternância, como condição de chave. [#54696](https://github.com/ClickHouse/ClickHouse/pull/54696) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige o ReplacingMergeTree com mesclagem vertical e limpeza de código [#54706](https://github.com/ClickHouse/ClickHouse/pull/54706) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Corrige colunas virtuais que ficam com valores incorretos após ORDER BY [#54811](https://github.com/ClickHouse/ClickHouse/pull/54811) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige a filtragem de partes com indexHint sem o analyzer [#54825](https://github.com/ClickHouse/ClickHouse/pull/54825) [#54449](https://github.com/ClickHouse/ClickHouse/pull/54449) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida falha de segmentação no Keeper durante o desligamento [#54841](https://github.com/ClickHouse/ClickHouse/pull/54841) ([Antonio Andelic](https://github.com/antonio2368)).
* Correção de `Invalid number of rows in Chunk` no MaterializedPostgreSQL [#54844](https://github.com/ClickHouse/ClickHouse/pull/54844) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Mover configurações de formato obsoletas para uma seção separada [#54855](https://github.com/ClickHouse/ClickHouse/pull/54855) ([Kruglov Pavel](https://github.com/Avogar)).
* Reconstruir `minmax_count_projection` quando a chave de partição é modificada [#54943](https://github.com/ClickHouse/ClickHouse/pull/54943) ([Amos Bird](https://github.com/amosbird)).
* Corrige conversão inválida para `ColumnVector<Int128>` na função `if` [#55019](https://github.com/ClickHouse/ClickHouse/pull/55019) ([Kruglov Pavel](https://github.com/Avogar)).
* Impedir a anexação de partes de tabelas com projeções ou índices diferentes [#55062](https://github.com/ClickHouse/ClickHouse/pull/55062) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Armazenar NULL no map do resultado escalar para subconsultas sem resultado [#52240](https://github.com/ClickHouse/ClickHouse/pull/52240) ([vdimir](https://github.com/vdimir)).
* Corrige o problema em que `FINAL` produz intervalos de leitura inválidos em um caso raro [#54934](https://github.com/ClickHouse/ClickHouse/pull/54934) ([Nikita Taranov](https://github.com/nickitat)).
* Correção: quórum de insert sem retentativas do Keeper [#55026](https://github.com/ClickHouse/ClickHouse/pull/55026) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige estado simples com Nullable [#55030](https://github.com/ClickHouse/ClickHouse/pull/55030) ([Pedro Riera](https://github.com/priera)).

### <a id="238" /> Lançamento do ClickHouse 23.8 LTS, 2023-08-31. [Apresentação](https://presentations.clickhouse.com/2023-release-23.8/), [Vídeo](https://www.youtube.com/watch?v=d1_pyoWcydk)

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

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

* Se um disco dinâmico tiver um nome, ele deverá ser especificado como `disk = disk(name = 'disk_name'`, ...) nos argumentos da função `disk`. Na versão anterior, ele podia ser especificado como `disk = disk_<disk_name>(...)`, o que não é mais suportado. [#52820](https://github.com/ClickHouse/ClickHouse/pull/52820) ([Kseniia Sumarokova](https://github.com/kssenii)).
* O `clickhouse-benchmark` estabelecerá conexões em paralelo quando for executado com `--concurrency` maior que um. Antes, ele era inutilizável ao ser executado com 1000 conexões simultâneas da Europa para os EUA. Corrigido o cálculo de QPS para conexões com alta latência. Mudança incompatível com versões anteriores: a opção de saída JSON do `clickhouse-benchmark` foi removida. Se você usava essa opção, também pode extrair dados de `system.query_log` em formato JSON como alternativa. [#53293](https://github.com/ClickHouse/ClickHouse/pull/53293) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A coluna `microseconds` foi removida de `system.text_log`, e a coluna `milliseconds` foi removida de `system.metric_log`, porque são redundantes na presença da coluna `event_time_microseconds`. [#53601](https://github.com/ClickHouse/ClickHouse/pull/53601) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O recurso de metadata cache foi descontinuado. Ele é experimental e nunca foi usado por nós. O recurso é perigoso: [#51182](https://github.com/ClickHouse/ClickHouse/issues/51182). A system table `system.merge_tree_metadata_cache` foi removida. O metadata cache ainda está disponível nesta versão, mas será removido em breve. Isto encerra [#39197](https://github.com/ClickHouse/ClickHouse/issues/39197). [#51303](https://github.com/ClickHouse/ClickHouse/pull/51303) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Desabilitado o suporte a 3DES em conexões TLS. [#52893](https://github.com/ClickHouse/ClickHouse/pull/52893) ([Kenji Noguchi](https://github.com/knoguchi)).

<div id="new-feature">
  #### Nova funcionalidade
</div>

* Importação direta de arquivos compactados zip/7z/tar. Exemplo: `file('*.zip :: *.csv')`. [#50321](https://github.com/ClickHouse/ClickHouse/pull/50321) ([nikitakeba](https://github.com/nikitakeba)).
* Adicionada a coluna `ptr` a `system.trace_log` para `trace_type = 'MemorySample'`. Essa coluna contém um endereço de alocação. Adicionada a função `flameGraph`, que pode gerar um flamegraph com memória alocada e não liberada. Reformulação de [#38391](https://github.com/ClickHouse/ClickHouse/issues/38391). [#45322](https://github.com/ClickHouse/ClickHouse/pull/45322) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Adicionada a função de tabela `azureBlobStorageCluster`. O conjunto de recursos compatíveis é muito semelhante ao da função de tabela `s3Cluster`. [#50795](https://github.com/ClickHouse/ClickHouse/pull/50795) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Permitir o uso de `cluster`, `clusterAllReplicas`, `remote` e `remoteSecure` sem o nome da tabela na issue [#50808](https://github.com/ClickHouse/ClickHouse/issues/50808). [#50848](https://github.com/ClickHouse/ClickHouse/pull/50848) ([Yangkuan Liu](https://github.com/LiuYangkuan)).
* Uma tabela de sistema para monitorar consumidores Kafka. [#50999](https://github.com/ClickHouse/ClickHouse/pull/50999) ([Ilya Golshtein](https://github.com/ilejn)).
* Adicionada a opção `max_sessions_for_user`. [#51724](https://github.com/ClickHouse/ClickHouse/pull/51724) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Novas funções `toUTCTimestamp/fromUTCTimestamp` para funcionar da mesma forma que `to_utc_timestamp/from_utc_timestamp` do Spark. [#52117](https://github.com/ClickHouse/ClickHouse/pull/52117) ([KevinyhZou](https://github.com/KevinyhZou)).
* Adiciona novas funções `structureToCapnProtoSchema`/`structureToProtobufSchema` que convertem a estrutura de tabelas do ClickHouse em esquemas no formato CapnProto/Protobuf. Permite importar/exportar dados no formato CapnProto/Protobuf sem um esquema de formato externo, usando um esquema gerado automaticamente a partir da estrutura da tabela (controlado pelas configurações `format_capn_proto_use_autogenerated_schema`/`format_protobuf_use_autogenerated_schema`). Permite exportar o esquema gerado automaticamente durante a importação/exportação usando a configuração `output_format_schema`. [#52278](https://github.com/ClickHouse/ClickHouse/pull/52278) ([Kruglov Pavel](https://github.com/Avogar)).
* Um novo campo `query_cache_usage` em `system.query_log` agora indica se e como o cache de consultas foi usado. [#52384](https://github.com/ClickHouse/ClickHouse/pull/52384) ([Robert Schulze](https://github.com/rschu1ze)).
* Adicionadas as novas funções `startsWithUTF8` e `endsWithUTF8`. [#52555](https://github.com/ClickHouse/ClickHouse/pull/52555) ([李扬](https://github.com/taiyang-li)).
* Permite um número variável de colunas em TSV/CustomSeparated/JSONCompactEachRow e faz a inferência de esquema funcionar com um número variável de colunas. Adicionadas as configurações `input_format_tsv_allow_variable_number_of_columns`, `input_format_custom_allow_variable_number_of_columns`, `input_format_json_compact_allow_variable_number_of_columns`. [#52692](https://github.com/ClickHouse/ClickHouse/pull/52692) ([Kruglov Pavel](https://github.com/Avogar)).
* Adicionadas as consultas `SYSTEM STOP/START PULLING REPLICATION LOG` (para testar o `ReplicatedMergeTree`). [#52881](https://github.com/ClickHouse/ClickHouse/pull/52881) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Permitir a execução de funções constantes não determinísticas em mutações no nó iniciador. [#53129](https://github.com/ClickHouse/ClickHouse/pull/53129) ([Anton Popov](https://github.com/CurtizJ)).
* Adiciona o formato de entrada `One`, que não lê nenhum dado e sempre retorna uma única linha com a coluna `dummy`, do tipo `UInt8` e valor `0`, como `system.one`. Ele pode ser usado em conjunto com as colunas virtuais `_file/_path` para listar arquivos em table functions file/s3/url/hdfs/etc sem ler nenhum dado. [#53209](https://github.com/ClickHouse/ClickHouse/pull/53209) ([Kruglov Pavel](https://github.com/Avogar)).
* Adicionada a função `tupleConcat`. Fecha [#52759](https://github.com/ClickHouse/ClickHouse/issues/52759). [#53239](https://github.com/ClickHouse/ClickHouse/pull/53239) ([Nikolay Degterinsky](https://github.com/evillique)).
* Suporte à operação `TRUNCATE DATABASE`. [#53261](https://github.com/ClickHouse/ClickHouse/pull/53261) ([Bharat Nallan](https://github.com/bharatnc)).
* Adicionada a configuração `max_threads_for_indexes` para limitar o número de threads usadas no processamento da chave primária. [#53313](https://github.com/ClickHouse/ClickHouse/pull/53313) ([jorisgio](https://github.com/jorisgio)).
* Readicionadas as funções SipHash com chave. [#53525](https://github.com/ClickHouse/ClickHouse/pull/53525) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* ([#52755](https://github.com/ClickHouse/ClickHouse/issues/52755) , [#52895](https://github.com/ClickHouse/ClickHouse/issues/52895)) Foram adicionadas as funções `arrayRotateLeft`, `arrayRotateRight`, `arrayShiftLeft`, `arrayShiftRight`. [#53557](https://github.com/ClickHouse/ClickHouse/pull/53557) ([Mikhail Koviazin](https://github.com/mkmkme)).
* Adicionar a coluna `name` a `system.clusters` como alias de cluster. [#53605](https://github.com/ClickHouse/ClickHouse/pull/53605) ([irenjj](https://github.com/irenjj)).
* O dashboard avançado agora permite edição em massa (salvar/carregar). [#53608](https://github.com/ClickHouse/ClickHouse/pull/53608) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O Dashboard avançado agora tem uma opção para maximizar os gráficos e reorganizá-los. [#53622](https://github.com/ClickHouse/ClickHouse/pull/53622) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado suporte para somar e subtrair arrays: `[5,2] + [1,7]`. A divisão e a multiplicação não foram implementadas devido à confusão entre a multiplicação elemento a elemento e o produto escalar dos operandos. Fecha [#49939](https://github.com/ClickHouse/ClickHouse/issues/49939). [#52625](https://github.com/ClickHouse/ClickHouse/pull/52625) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Adiciona suporte ao uso de literais de texto como nomes de tabelas. Fecha [#52178](https://github.com/ClickHouse/ClickHouse/issues/52178). [#52635](https://github.com/ClickHouse/ClickHouse/pull/52635) ([hendrik-m](https://github.com/hendrik-m)).

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

* Adiciona o novo mecanismo de tabela `S3Queue` para importação de dados em streaming do S3. Fecha [#37012](https://github.com/ClickHouse/ClickHouse/issues/37012). [#49086](https://github.com/ClickHouse/ClickHouse/pull/49086) ([s-kat](https://github.com/s-kat)). Ainda não está pronto para uso. Não o utilize.
* Habilita leitura paralela a partir de réplicas por meio de tabela distribuída. Relacionado a [#49708](https://github.com/ClickHouse/ClickHouse/issues/49708). [#53005](https://github.com/ClickHouse/ClickHouse/pull/53005) ([Igor Nikonov](https://github.com/devcrafter)).
* Adiciona suporte experimental ao HNSW como método de busca aproximada de vizinhos. [#53447](https://github.com/ClickHouse/ClickHouse/pull/53447) ([Davit Vardanyan](https://github.com/davvard)). No momento, isso se destina àqueles que continuam trabalhando na implementação. Não o utilize.

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

* Pushdown de filtro em Parquet. Ou seja, ao ler arquivos Parquet, os grupos de linhas (fragmentos do arquivo) são ignorados com base na condição `WHERE` e nos valores mínimo/máximo de cada coluna. Em particular, se o arquivo estiver aproximadamente ordenado por alguma coluna, as consultas que filtram um intervalo curto dessa coluna serão muito mais rápidas. [#52951](https://github.com/ClickHouse/ClickHouse/pull/52951) ([Michael Kolupaev](https://github.com/al13n321)).
* Otimiza a leitura de pequenos grupos de linhas, processando-os em lote no Parquet. Fecha [#53069](https://github.com/ClickHouse/ClickHouse/issues/53069). [#53281](https://github.com/ClickHouse/ClickHouse/pull/53281) ([Kruglov Pavel](https://github.com/Avogar)).
* Otimiza a contagem em arquivos na maioria dos formatos de entrada. Fecha [#44334](https://github.com/ClickHouse/ClickHouse/issues/44334). [#53637](https://github.com/ClickHouse/ClickHouse/pull/53637) ([Kruglov Pavel](https://github.com/Avogar)).
* Aplica filtro por arquivo/caminho antes da leitura nas funções de tabela `url`/`file`/`hdfs`. [#53529](https://github.com/ClickHouse/ClickHouse/pull/53529) ([Kruglov Pavel](https://github.com/Avogar)).
* Ativada a compilação JIT para AArch64, PowerPC, SystemZ e RISC-V. [#38217](https://github.com/ClickHouse/ClickHouse/pull/38217) ([Maksim Kita](https://github.com/kitaisreal)).
* Adiciona a configuração `rewrite_count_distinct_if_with_count_distinct_implementation` para reescrever `countDistinctIf` usando `count_distinct_implementation`. Fecha [#30642](https://github.com/ClickHouse/ClickHouse/issues/30642). [#46051](https://github.com/ClickHouse/ClickHouse/pull/46051) ([flynn](https://github.com/ucasfl)).
* Acelera a mesclagem dos estados das funções de agregação `uniq` e `uniqExact` ao paralelizar a conversão antes da mesclagem. [#50748](https://github.com/ClickHouse/ClickHouse/pull/50748) ([Jiebin Sun](https://github.com/jiebinn)).
* Otimiza o desempenho da agregação com chave String Nullable ao usar um grande número de chaves de tamanho variável. [#51399](https://github.com/ClickHouse/ClickHouse/pull/51399) ([LiuNeng](https://github.com/liuneng1994)).
* Adiciona uma etapa no Analyzer para otimização do filtro de tempo com pré-imagem. Os experimentos de desempenho do SSB no dispositivo ICX (CPU Intel Xeon Platinum 8380, 80 núcleos, 160 threads) mostram que essa mudança pode trazer uma melhora de 8,5% na média geométrica de QPS quando o Analyzer experimental está habilitado. [#52091](https://github.com/ClickHouse/ClickHouse/pull/52091) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Otimize o merge se todos os conjuntos de hash forem de um único nível na função `uniqExact` (COUNT DISTINCT). [#52973](https://github.com/ClickHouse/ClickHouse/pull/52973) ([Jiebin Sun](https://github.com/jiebinn)).
* Mecanismo de tabela `Join`: não clona a estrutura de dados do hash join com todas as colunas. [#53046](https://github.com/ClickHouse/ClickHouse/pull/53046) ([Duc Canh Le](https://github.com/canhld94)).
* Implementar o formato de entrada `ORC` nativo sem a biblioteca "apache arrow" para melhorar o desempenho. [#53324](https://github.com/ClickHouse/ClickHouse/pull/53324) ([李扬](https://github.com/taiyang-li)).
* O dashboard instruirá o servidor a comprimir os dados, o que é útil para intervalos de tempo longos em conexões lentas com a internet. Por exemplo, um gráfico com 86400 pontos pode ter 1,5 MB sem compressão e 60 KB comprimidos com `br`. [#53569](https://github.com/ClickHouse/ClickHouse/pull/53569) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Melhor aproveitamento do pool de threads para BACKUPs e RESTOREs. [#53649](https://github.com/ClickHouse/ClickHouse/pull/53649) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Carrega os metadados do cache do filesystem em paralelo na inicialização. Configurado pela definição de configuração de cache `load_metadata_threads` (padrão: 1). Relacionado a [#52037](https://github.com/ClickHouse/ClickHouse/issues/52037). [#52943](https://github.com/ClickHouse/ClickHouse/pull/52943) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Melhorado `move_primary_key_columns_to_end_of_prewhere`. [#53337](https://github.com/ClickHouse/ClickHouse/pull/53337) ([Han Fei](https://github.com/hanfei1991)).
* Isso otimiza a interação com o ClickHouse Keeper. Antes, o chamador podia registrar o mesmo callback de watch várias vezes. Nesse caso, cada entrada consumia memória e o mesmo callback era invocado várias vezes, o que não fazia muito sentido. Para evitar isso, o chamador podia implementar alguma lógica para não adicionar o mesmo watch várias vezes. Com esta mudança, essa desduplicação passa a ser feita internamente se o callback de watch for passado via shared\_ptr. [#53452](https://github.com/ClickHouse/ClickHouse/pull/53452) ([Alexander Gololobov](https://github.com/davenger)).
* Armazena em cache o número de linhas em arquivos para contagem nas funções file/s3/url/hdfs/azure. O cache pode ser ativado/desativado com a configuração `use_cache_for_count_from_files` (ativado por padrão). Continuação de [https://github.com/ClickHouse/ClickHouse/pull/53637](https://github.com/ClickHouse/ClickHouse/pull/53637). [#53692](https://github.com/ClickHouse/ClickHouse/pull/53692) ([Kruglov Pavel](https://github.com/Avogar)).
* Um gerenciamento mais cuidadoso das threads aumentará em mais de \~25% a velocidade da função de tabela S3 ao lidar com um grande número de arquivos. [#53668](https://github.com/ClickHouse/ClickHouse/pull/53668) ([pufit](https://github.com/pufit)).

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

* Adiciona a configuração/setting `stderr_reaction` para controlar a reação (`none`, `log` ou `throw`) quando há dados no stderr de um comando externo. Isso facilita a depuração de comandos externos. [#43210](https://github.com/ClickHouse/ClickHouse/pull/43210) ([Amos Bird](https://github.com/amosbird)).
* Adicionar a coluna `partition` à tabela `system part_log` e à tabela `merge`. [#48990](https://github.com/ClickHouse/ClickHouse/pull/48990) ([Jianfei Hu](https://github.com/incfly)).
* Os tamanhos dos caches de índice (dados não compactados/marks), mmap e consultas agora podem ser configurados dinamicamente em tempo de execução (sem reiniciar o servidor). [#51446](https://github.com/ClickHouse/ClickHouse/pull/51446) ([Robert Schulze](https://github.com/rschu1ze)).
* Se um dicionário for criado com uma chave complexa, escolha automaticamente a variante de layout "complex key". [#49587](https://github.com/ClickHouse/ClickHouse/pull/49587) ([xiebin](https://github.com/xbthink)).
* Adicionada a configuração `use_concurrency_control` para melhorar os testes do novo recurso de controle de concorrência. [#49618](https://github.com/ClickHouse/ClickHouse/pull/49618) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionadas sugestões para nomes de bancos de dados e tabelas digitados incorretamente. [#49801](https://github.com/ClickHouse/ClickHouse/pull/49801) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Ao ler arquivos pequenos do HDFS com o Gluten, descobrimos que isso levava mais tempo do que executar a consulta diretamente no Spark. E fizemos algo a respeito. [#50063](https://github.com/ClickHouse/ClickHouse/pull/50063) ([KevinyhZou](https://github.com/KevinyhZou)).
* Havia logs de erro inúteis em excesso após o término da sessão, o que não nos agradava. [#50171](https://github.com/ClickHouse/ClickHouse/pull/50171) ([helifu](https://github.com/helifu)).
* Introduz sessões de fallback do ZooKeeper com tempo de vida limitado. Corrige a coluna `index` em system.zookeeper\_connection para endereços DNS. [#50424](https://github.com/ClickHouse/ClickHouse/pull/50424) ([Anton Kozlov](https://github.com/tonickkozlov)).
* Adicionar a capacidade de registrar em log quando max\_partitions\_per\_insert\_block for atingido. [#50948](https://github.com/ClickHouse/ClickHouse/pull/50948) ([Sean Haynes](https://github.com/seandhaynes)).
* Adicionados vários comandos personalizados ao clickhouse-keeper-client (principalmente para facilitar a depuração no ClickHouse). [#51117](https://github.com/ClickHouse/ClickHouse/pull/51117) ([pufit](https://github.com/pufit)).
* Atualizada a verificação da connection string na table function `azureBlobStorage`, pois a connection string com "sas" nem sempre começa com o endpoint padrão, e a URL de conexão também foi atualizada para incluir o token "sas" após adicionar o container do Azure à URL. [#51141](https://github.com/ClickHouse/ClickHouse/pull/51141) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Corrigida a descrição da filtragem de conjuntos no algoritmo JOIN `full_sorting_merge`. [#51329](https://github.com/ClickHouse/ClickHouse/pull/51329) ([Tanay Tummalapalli](https://github.com/ttanay)).
* Corrigido o consumo de memória no `Aggregator` quando `max_block_size` é muito grande. [#51566](https://github.com/ClickHouse/ClickHouse/pull/51566) ([Nikita Taranov](https://github.com/nickitat)).
* Adicionado o comando `SYSTEM SYNC FILESYSTEM CACHE`. Ele comparará o estado em memória do cache do sistema de arquivos com o que está em disco e corrigirá o estado em memória, se necessário. Isso só é necessário se você estiver fazendo intervenções manuais nos dados em disco, o que é fortemente desaconselhado. [#51622](https://github.com/ClickHouse/ClickHouse/pull/51622) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Tentativa de criar um resolvedor de proxy genérico para CH, mantendo a compatibilidade retroativa com o resolvedor de proxy `conf` existente para armazenamento S3. [#51749](https://github.com/ClickHouse/ClickHouse/pull/51749) ([Arthur Passos](https://github.com/arthurpassos)).
* Suporte para leitura de subcolunas de tupla em funções de tabela file/s3/hdfs/url/azureBlobStorage. [#51806](https://github.com/ClickHouse/ClickHouse/pull/51806) ([Kruglov Pavel](https://github.com/Avogar)).
* A função `arrayIntersect` agora retorna os valores na ordem correspondente ao primeiro argumento. Corrige [#27622](https://github.com/ClickHouse/ClickHouse/issues/27622). [#51850](https://github.com/ClickHouse/ClickHouse/pull/51850) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Adicionadas novas consultas, que permitem criar/remover entidades de acesso no armazenamento de acesso especificado ou movê-las de um armazenamento de acesso para outro. [#51912](https://github.com/ClickHouse/ClickHouse/pull/51912) ([pufit](https://github.com/pufit)).
* Consultas `ALTER TABLE FREEZE` deixam de ser replicadas no engine de banco de dados Replicated. [#52064](https://github.com/ClickHouse/ClickHouse/pull/52064) ([Mike Kot](https://github.com/myrrc)).
* Adicionada a possibilidade de fazer flush das tabelas de sistema em caso de desligamento inesperado. [#52174](https://github.com/ClickHouse/ClickHouse/pull/52174) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Corrige o problema em que a função de tabela `s3` se recusava a funcionar com URLs pré-assinadas. fecha [#50846](https://github.com/ClickHouse/ClickHouse/issues/50846). [#52310](https://github.com/ClickHouse/ClickHouse/pull/52310) ([chen](https://github.com/xiedeyantu)).
* Adicionar a coluna `name` como alias de `event` e `metric` nas tabelas `system.events` e `system.metrics`. Fecha [#51257](https://github.com/ClickHouse/ClickHouse/issues/51257). [#52315](https://github.com/ClickHouse/ClickHouse/pull/52315) ([chen](https://github.com/xiedeyantu)).
* Adicionado suporte à sintaxe `CREATE UNIQUE INDEX` no analisador como um no-op, para melhor compatibilidade com SQL. O índice `UNIQUE` não é suportado. Defina `create_index_ignore_unique = 1` para ignorar a palavra-chave UNIQUE nas consultas. [#52320](https://github.com/ClickHouse/ClickHouse/pull/52320) ([Ilya Yatsishin](https://github.com/qoega)).
* Adicionado suporte a macros predefinidas (`{database}` e `{table}`) em algumas configurações do engine Kafka: topic, consumer, client\_id etc. [#52386](https://github.com/ClickHouse/ClickHouse/pull/52386) ([Yury Bogomolov](https://github.com/ybogo)).
* Desabilita a atualização do cache do sistema de arquivos durante backup/restauração. O cache do sistema de arquivos não deve ser atualizado durante backup/restauração, pois isso aparentemente só torna o processo mais lento, sem trazer benefício algum (porque o comando BACKUP pode ler muitos dados, e não faz sentido colocar todos esses dados no cache do sistema de arquivos para logo em seguida expulsá-los dele). [#52402](https://github.com/ClickHouse/ClickHouse/pull/52402) ([Vitaly Baranov](https://github.com/vitlibar)).
* A configuração do endpoint do S3 permite usá-lo a partir da raiz e adicionar '/' automaticamente, se necessário. [#47809](https://github.com/ClickHouse/ClickHouse/issues/47809). [#52600](https://github.com/ClickHouse/ClickHouse/pull/52600) ([xiaolei565](https://github.com/xiaolei565)).
* No clickhouse-local, permitir opções posicionais e preencher as configurações globais de UDF (user\_scripts\_path e user\_defined\_executable\_functions\_config). [#52643](https://github.com/ClickHouse/ClickHouse/pull/52643) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* `system.asynchronous_metrics` agora inclui as métricas "QueryCacheEntries" e "QueryCacheBytes" para inspecionar o cache de consultas. [#52650](https://github.com/ClickHouse/ClickHouse/pull/52650) ([Robert Schulze](https://github.com/rschu1ze)).
* Adicionada a possibilidade de usar o parâmetro `s3_storage_class` na cláusula `SETTINGS` da instrução `BACKUP` para backups no S3. [#52658](https://github.com/ClickHouse/ClickHouse/pull/52658) ([Roman Vasin](https://github.com/rvasin)).
* Adicionar o utilitário `print-backup-info.py`, que interpreta um arquivo de metadados de backup e exibe informações sobre o backup. [#52690](https://github.com/ClickHouse/ClickHouse/pull/52690) ([Vitaly Baranov](https://github.com/vitlibar)).
* Fecha [#49510](https://github.com/ClickHouse/ClickHouse/issues/49510). Atualmente, os nomes de bancos de dados e tabelas diferenciam maiúsculas de minúsculas, mas as ferramentas de BI às vezes fazem consultas a `information_schema` em minúsculas e, outras vezes, em maiúsculas. Por esse motivo, temos o banco de dados `information_schema`, que contém tabelas em minúsculas, como `information_schema.tables`, e o banco de dados `INFORMATION_SCHEMA`, que contém tabelas em maiúsculas, como `INFORMATION_SCHEMA.TABLES`. Mas algumas ferramentas estão consultando `INFORMATION_SCHEMA.tables` e `information_schema.TABLES`. A solução proposta é duplicar as tabelas em minúsculas e em maiúsculas nos bancos de dados `information_schema` e `INFORMATION_SCHEMA`. [#52695](https://github.com/ClickHouse/ClickHouse/pull/52695) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* A consulta `CHECK TABLE` tem melhor desempenho e usabilidade (envia atualizações de progresso, pode ser cancelada). [#52745](https://github.com/ClickHouse/ClickHouse/pull/52745) ([vdimir](https://github.com/vdimir)).
* Adicionado suporte a `modulo`, `intDiv` e `intDivOrZero` para tuplas, distribuindo-os pelos elementos da tupla. [#52758](https://github.com/ClickHouse/ClickHouse/pull/52758) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Procurar configurações padrão `yaml` e `yml` no clickhouse-client depois de `xml`. [#52767](https://github.com/ClickHouse/ClickHouse/pull/52767) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ao mesclar em uma configuração cuja raiz não é 'clickhouse', configs com nomes de nó raiz diferentes eram simplesmente ignoradas, sem gerar exceção. [#52770](https://github.com/ClickHouse/ClickHouse/pull/52770) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Agora é possível especificar o tamanho mínimo (`memory_profiler_sample_min_allocation_size`) e máximo (`memory_profiler_sample_max_allocation_size`) das alocações a serem rastreadas pelo profiler de memória com amostragem. [#52779](https://github.com/ClickHouse/ClickHouse/pull/52779) ([alesapin](https://github.com/alesapin)).
* Adicionada a configuração `precise_float_parsing` para alternar entre métodos de parsing de números de ponto flutuante (rápido/preciso). [#52791](https://github.com/ClickHouse/ClickHouse/pull/52791) ([Andrey Zvonov](https://github.com/zvonand)).
* Use os mesmos caminhos padrão para `clickhouse-keeper` (link simbólico) e para `clickhouse-keeper` (executável). [#52861](https://github.com/ClickHouse/ClickHouse/pull/52861) ([Vitaly Baranov](https://github.com/vitlibar)).
* Melhoria na mensagem de erro da função de tabela `remote`. Fecha [#40220](https://github.com/ClickHouse/ClickHouse/issues/40220). [#52959](https://github.com/ClickHouse/ClickHouse/pull/52959) ([jiyoungyoooo](https://github.com/jiyoungyoooo)).
* Adicionada a possibilidade de especificar uma política de armazenamento personalizada na cláusula `SETTINGS` de consultas `RESTORE`. [#52970](https://github.com/ClickHouse/ClickHouse/pull/52970) ([Victor Krasnov](https://github.com/sirvickr)).
* Adicionada a capacidade de limitar a taxa das solicitações ao S3 em operações de backup (os comandos `BACKUP` e `RESTORE` agora respeitam `s3_max_[get/put]_[rps/burst]`). [#52974](https://github.com/ClickHouse/ClickHouse/pull/52974) ([Daniel Pozo Escalona](https://github.com/danipozo)).
* Adiciona configurações para ignorar a cláusula ON CLUSTER em consultas de gerenciamento de Funções Definidas pelo Usuário replicadas ou de entidades de controle de acesso com armazenamento replicado. [#52975](https://github.com/ClickHouse/ClickHouse/pull/52975) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Ações de EXPLAIN para a etapa JOIN. [#53006](https://github.com/ClickHouse/ClickHouse/pull/53006) ([Maksim Kita](https://github.com/kitaisreal)).
* Faz com que `hasTokenOrNull` e `hasTokenCaseInsensitiveOrNull` retornem null para substrings de busca vazias. [#53059](https://github.com/ClickHouse/ClickHouse/pull/53059) ([ltrk2](https://github.com/ltrk2)).
* Permite restringir os caminhos permitidos para caches do sistema de arquivos. É especialmente útil para discos dinâmicos. Se `filesystem_caches_path` for especificado na configuração do servidor, os caminhos de todos os caches do sistema de arquivos ficarão restritos a esse diretório. Por exemplo, se o `path` na configuração do cache for relativo, ele será colocado em `filesystem_caches_path`; se o `path` na configuração do cache for absoluto, será necessário que ele esteja dentro de `filesystem_caches_path`. Se `filesystem_caches_path` não for especificado na configuração, o comportamento será o mesmo das versões anteriores. [#53124](https://github.com/ClickHouse/ClickHouse/pull/53124) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adicionados vários comandos personalizados (principalmente para facilitar a depuração no ClickHouse). [#53127](https://github.com/ClickHouse/ClickHouse/pull/53127) ([pufit](https://github.com/pufit)).
* Adicionar informações de diagnóstico sobre o nome do arquivo durante a inferência de esquema — o que ajuda ao processar vários arquivos com globs. [#53135](https://github.com/ClickHouse/ClickHouse/pull/53135) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O cliente carregará sugestões usando a conexão principal se a segunda conexão não puder criar uma sessão. [#53177](https://github.com/ClickHouse/ClickHouse/pull/53177) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Adicionada a cláusula EXCEPT à consulta `SYSTEM STOP/START LISTEN QUERIES [ALL/DEFAULT/CUSTOM]`, por exemplo, `SYSTEM STOP LISTEN QUERIES ALL EXCEPT TCP, HTTP`. [#53280](https://github.com/ClickHouse/ClickHouse/pull/53280) ([Nikolay Degterinsky](https://github.com/evillique)).
* Altere o padrão de `max_concurrent_queries` de 100 para 1000. Não há problema em ter muitas consultas concorrentes se elas não forem pesadas e ficarem, em sua maior parte, aguardando a rede. Observação: não confunda consultas concorrentes com QPS: por exemplo, o servidor ClickHouse pode processar dezenas de milhares de QPS com menos de 100 consultas concorrentes. [#53285](https://github.com/ClickHouse/ClickHouse/pull/53285) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Limita o número de mesclagens de otimização de partições em segundo plano executadas simultaneamente. [#53405](https://github.com/ClickHouse/ClickHouse/pull/53405) ([Duc Canh Le](https://github.com/canhld94)).
* Adicionada a configuração `allow_moving_table_directory_to_trash`, que permite ignorar o erro `Directory for table data already exists` ao replicar/recuperar um banco de dados `Replicated`. [#53425](https://github.com/ClickHouse/ClickHouse/pull/53425) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Se as configurações do servidor `asynchronous_metrics_update_period_s` e `asynchronous_heavy_metrics_update_period_s` forem definidas incorretamente como 0, agora a falha será tratada normalmente, em vez de encerrar a aplicação. [#53428](https://github.com/ClickHouse/ClickHouse/pull/53428) ([Robert Schulze](https://github.com/rschu1ze)).
* O servidor ClickHouse agora respeita os limites de memória alterados via cgroups ao recarregar a configuração. [#53455](https://github.com/ClickHouse/ClickHouse/pull/53455) ([Robert Schulze](https://github.com/rschu1ze)).
* Adiciona a possibilidade de desativar o flush de tabelas Distributed em `DETACH`, `DROP` ou no desligamento do servidor. [#53501](https://github.com/ClickHouse/ClickHouse/pull/53501) ([Azat Khuzhin](https://github.com/azat)).
* A função `domainRFC` agora é compatível com IPv6 entre colchetes. [#53506](https://github.com/ClickHouse/ClickHouse/pull/53506) ([Chen768959](https://github.com/Chen768959)).
* Use um timeout mais longo para requisições CopyObject do S3, usadas em backups. [#53533](https://github.com/ClickHouse/ClickHouse/pull/53533) ([Michael Kolupaev](https://github.com/al13n321)).
* Adicionada a configuração do servidor `aggregate_function_group_array_max_element_size`. Essa configuração é usada para limitar o tamanho do array da função `groupArray` no momento da serialização. O valor padrão é `16777215`. [#53550](https://github.com/ClickHouse/ClickHouse/pull/53550) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* `SCHEMA` foi adicionado como alias de `DATABASE` para melhorar a compatibilidade com o MySQL. [#53587](https://github.com/ClickHouse/ClickHouse/pull/53587) ([Daniël van Eeden](https://github.com/dveeden)).
* Adiciona métricas assíncronas para tabelas no banco de dados system. Por exemplo, `TotalBytesOfMergeTreeTablesSystem`. Isso corrige [#53603](https://github.com/ClickHouse/ClickHouse/issues/53603). [#53604](https://github.com/ClickHouse/ClickHouse/pull/53604) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O editor SQL na UI Play e no Dashboard não usará o Grammarly. [#53614](https://github.com/ClickHouse/ClickHouse/pull/53614) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Como configurações avançadas para especialistas, agora é possível (1) configurar o size\_ratio (ou seja, o tamanho relativo da fila protegida) dos caches de marcas/não compactados de \[índice], (2) configurar a política de cache dos caches de marcas de índice e de dados não compactados de índice. [#53657](https://github.com/ClickHouse/ClickHouse/pull/53657) ([Robert Schulze](https://github.com/rschu1ze)).
* Adicionada a validação das informações do cliente no pacote de consulta do TCPHandler. [#53673](https://github.com/ClickHouse/ClickHouse/pull/53673) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Tentar novamente o carregamento de partes em caso de erros de rede ao interagir com o Microsoft Azure. [#53750](https://github.com/ClickHouse/ClickHouse/pull/53750) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Stack trace para exceções; exceções de views materializadas são propagadas. [#53766](https://github.com/ClickHouse/ClickHouse/pull/53766) ([Ilya Golshtein](https://github.com/ilejn)).
* Se nenhum hostname ou porta for especificado, o cliente do Keeper tentará localizar uma string de conexão no config.xml do ClickHouse. [#53769](https://github.com/ClickHouse/ClickHouse/pull/53769) ([pufit](https://github.com/pufit)).
* Adicionar o evento de perfil `PartsLockMicroseconds`, que mostra o tempo, em microssegundos, durante o qual mantemos o bloqueio das partes de dados na família de mecanismos de tabela MergeTree. [#53797](https://github.com/ClickHouse/ClickHouse/pull/53797) ([alesapin](https://github.com/alesapin)).
* Torna configurável no Keeper o limite de reconexão do RAFT. Essa configuração pode ajudar o Keeper a restabelecer mais rapidamente a conexão com outros nós se a conexão atual for interrompida. [#53817](https://github.com/ClickHouse/ClickHouse/pull/53817) ([Pengyuan Bian](https://github.com/bianpengyuan)).
* Ignorar chaves estrangeiras na definição de tabelas para melhorar a compatibilidade com o MySQL, para que o usuário não precise reescrever a parte de chave estrangeira do seu SQL, ref. [#53380](https://github.com/ClickHouse/ClickHouse/issues/53380). [#53864](https://github.com/ClickHouse/ClickHouse/pull/53864) ([jsc0218](https://github.com/jsc0218)).

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

* Não exponha símbolos do executável do ClickHouse ao vinculador dinâmico. Isso pode corrigir [#43933](https://github.com/ClickHouse/ClickHouse/issues/43933). [#47475](https://github.com/ClickHouse/ClickHouse/pull/47475) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionar o link simbólico `clickhouse-keeper-client` ao pacote clickhouse-server. [#51882](https://github.com/ClickHouse/ClickHouse/pull/51882) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Adicionado [https://github.com/elliotchance/sqltest](https://github.com/elliotchance/sqltest) à CI para reportar a conformidade com o SQL 2016. [#52293](https://github.com/ClickHouse/ClickHouse/pull/52293) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Atualizado o PRQL para 0.9.3. [#53060](https://github.com/ClickHouse/ClickHouse/pull/53060) ([Maximilian Roos](https://github.com/max-sixty)).
* As tabelas de sistema das verificações de CI são exportadas para ClickHouse Cloud. [#53086](https://github.com/ClickHouse/ClickHouse/pull/53086) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Os dados de perfil do compilador (`-ftime-trace`) são enviados ao ClickHouse Cloud. [#53100](https://github.com/ClickHouse/ClickHouse/pull/53100) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Compilações Debug e Tidy mais rápidas. [#53178](https://github.com/ClickHouse/ClickHouse/pull/53178) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Acelere a compilação removendo toneladas e mais toneladas de lixo. Um dos arquivos de cabeçalho incluídos com frequência foi envenenado pelo Boost. [#53180](https://github.com/ClickHouse/ClickHouse/pull/53180) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Remover ainda mais lixo. [#53182](https://github.com/ClickHouse/ClickHouse/pull/53182) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A função `arrayAUC` usava templates pesados em C++ — eles foram removidos. [#53183](https://github.com/ClickHouse/ClickHouse/pull/53183) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Algumas unidades de tradução eram sempre recompiladas, independentemente do ccache. A causa foi encontrada e corrigida. [#53184](https://github.com/ClickHouse/ClickHouse/pull/53184) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Os dados de perfil do compilador (`-ftime-trace`) são enviados ao ClickHouse Cloud, na segunda tentativa após [#53100](https://github.com/ClickHouse/ClickHouse/issues/53100). [#53213](https://github.com/ClickHouse/ClickHouse/pull/53213) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Exportar logs da CI em testes stateful para o ClickHouse Cloud. [#53351](https://github.com/ClickHouse/ClickHouse/pull/53351) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Exportar logs do CI durante testes de estresse. [#53353](https://github.com/ClickHouse/ClickHouse/pull/53353) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Exportar logs da CI no fuzzer. [#53354](https://github.com/ClickHouse/ClickHouse/pull/53354) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mantém os parâmetros de ambiente no comando `clickhouse start`. Corrige [#51962](https://github.com/ClickHouse/ClickHouse/issues/51962). [#53418](https://github.com/ClickHouse/ClickHouse/pull/53418) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Continuação de [#53418](https://github.com/ClickHouse/ClickHouse/issues/53418). Pequenas melhorias no install\_check.py, com a adição de testes para o repasse correto dos parâmetros de ambiente ao processo principal em `init.d start`. [#53457](https://github.com/ClickHouse/ClickHouse/pull/53457) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Reorganize o gerenciamento de arquivos no CMake para evitar possíveis duplicidades. Por exemplo, `indexHint.cpp` está duplicado tanto em `dbms_sources` quanto em `clickhouse_functions_sources`. [#53621](https://github.com/ClickHouse/ClickHouse/pull/53621) ([Amos Bird](https://github.com/amosbird)).
* Atualização do snappy para 1.1.10. [#53672](https://github.com/ClickHouse/ClickHouse/pull/53672) ([李扬](https://github.com/taiyang-li)).
* Melhora ligeiramente o build do cmake ao ajustar algumas dependências e remover duplicatas. Cada commit inclui uma breve descrição das alterações realizadas. [#53759](https://github.com/ClickHouse/ClickHouse/pull/53759) ([Amos Bird](https://github.com/amosbird)).

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

* Não reinicialize o índice Annoy (experimental) durante a construção com mais de uma marca [#51325](https://github.com/ClickHouse/ClickHouse/pull/51325) ([Tian Xinhui](https://github.com/xinhuitian)).
* Corrigido o uso de diretórios temporários durante o RESTORE [#51493](https://github.com/ClickHouse/ClickHouse/pull/51493) ([Azat Khuzhin](https://github.com/azat)).
* Corrige a aritmética binária de Nullable(IPv4) [#51642](https://github.com/ClickHouse/ClickHouse/pull/51642) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Adicionado suporte a tipos de dados IPv4 e IPv6 como atributos de dicionário [#51756](https://github.com/ClickHouse/ClickHouse/pull/51756) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Uma correção para o checksum das marcas de compressão [#51777](https://github.com/ClickHouse/ClickHouse/pull/51777) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Corrige a interpretação incorreta da vírgula como parte de `datetime` na análise CSV de melhor esforço [#51950](https://github.com/ClickHouse/ClickHouse/pull/51950) ([Kruglov Pavel](https://github.com/Avogar)).
* Não lançar exceção quando uma UDF executável tiver parâmetros [#51961](https://github.com/ClickHouse/ClickHouse/pull/51961) ([Nikita Taranov](https://github.com/nickitat)).
* Corrigido o recálculo de skip indexes e projeções em consultas `ALTER DELETE` [#52530](https://github.com/ClickHouse/ClickHouse/pull/52530) ([Anton Popov](https://github.com/CurtizJ)).
* MaterializedMySQL: Corrigido o loop infinito em ReadBuffer::read [#52621](https://github.com/ClickHouse/ClickHouse/pull/52621) ([Val Doroshchuk](https://github.com/valbok)).
* Carregamento de sugestões apenas com o dialeto `clickhouse` [#52628](https://github.com/ClickHouse/ClickHouse/pull/52628) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Inicializa e destrói o canal ares quando necessário. [#52634](https://github.com/ClickHouse/ClickHouse/pull/52634) ([Arthur Passos](https://github.com/arthurpassos)).
* Corrigida a filtragem por colunas virtuais ao usar expressão OR [#52653](https://github.com/ClickHouse/ClickHouse/pull/52653) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida a falha na função `tuple` com um argumento de coluna esparsa [#52659](https://github.com/ClickHouse/ClickHouse/pull/52659) ([Anton Popov](https://github.com/CurtizJ)).
* Correção de named collections no cluster [#52687](https://github.com/ClickHouse/ClickHouse/pull/52687) ([Al Korgun](https://github.com/alkorgun)).
* Correção da leitura de coluna desnecessária no caso de `PREWHERE` em múltiplos estágios [#52689](https://github.com/ClickHouse/ClickHouse/pull/52689) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige resultado inesperado ao ordenar várias colunas com a direção `nulls first` [#52761](https://github.com/ClickHouse/ClickHouse/pull/52761) ([copperybean](https://github.com/copperybean)).
* Corrigida a condição de corrida na reconfiguração do Keeper [#52804](https://github.com/ClickHouse/ClickHouse/pull/52804) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigida a ordenação de colunas esparsas com limite alto [#52827](https://github.com/ClickHouse/ClickHouse/pull/52827) ([Anton Popov](https://github.com/CurtizJ)).
* clickhouse-keeper: corrige a implementação do servidor com poll. [#52833](https://github.com/ClickHouse/ClickHouse/pull/52833) ([Andy Fiddaman](https://github.com/citrus-it)).
* Fazer com que o analisador de regexp reconheça grupos de captura nomeados [#52840](https://github.com/ClickHouse/ClickHouse/pull/52840) ([Han Fei](https://github.com/hanfei1991)).
* Corrige possível assert em `~PushingAsyncPipelineExecutor` no clickhouse-local [#52862](https://github.com/ClickHouse/ClickHouse/pull/52862) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige a leitura de `Nested(Array(LowCardinality(...)))` vazia [#52949](https://github.com/ClickHouse/ClickHouse/pull/52949) ([Anton Popov](https://github.com/CurtizJ)).
* Adicionados novos testes para session\_log e corrigida a inconsistência entre login e logout. [#52958](https://github.com/ClickHouse/ClickHouse/pull/52958) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Corrige vazamento de senha no show create mysql table [#52962](https://github.com/ClickHouse/ClickHouse/pull/52962) ([Duc Canh Le](https://github.com/canhld94)).
* Converter o formato de coluna esparsa para o formato completo em CreateSetAndFilterOnTheFlyStep [#53000](https://github.com/ClickHouse/ClickHouse/pull/53000) ([vdimir](https://github.com/vdimir)).
* Corrige uma rara condição de corrida na exclusão do diretório de prefixo de chave vazio no cache fs [#53055](https://github.com/ClickHouse/ClickHouse/pull/53055) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigido um problema em que o ZstdDeflatingWriteBuffer às vezes truncava a saída [#53064](https://github.com/ClickHouse/ClickHouse/pull/53064) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige o query\_id no part\_log em consultas assíncronas de flush [#53103](https://github.com/ClickHouse/ClickHouse/pull/53103) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige um possível erro de cache "Read unexpected size" [#53121](https://github.com/ClickHouse/ClickHouse/pull/53121) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Desativado o novo codificador Parquet [#53130](https://github.com/ClickHouse/ClickHouse/pull/53130) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a exceção "Not-ready Set" [#53162](https://github.com/ClickHouse/ClickHouse/pull/53162) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige o escape de caracteres no engine PostgreSQL [#53250](https://github.com/ClickHouse/ClickHouse/pull/53250) ([Nikolay Degterinsky](https://github.com/evillique)).
* Tabela experimental session\_log: adicionados novos testes para session\_log e corrigida a inconsistência entre login e logout. [#53255](https://github.com/ClickHouse/ClickHouse/pull/53255) ([Alexey Gerasimchuck](https://github.com/Demilivor)). Corrigida a inconsistência entre login bem-sucedido e logout [#53302](https://github.com/ClickHouse/ClickHouse/pull/53302) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Correção na adição de intervalos inferiores a um segundo ao tipo DateTime [#53309](https://github.com/ClickHouse/ClickHouse/pull/53309) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige o erro "Context has expired" em dicionários [#53342](https://github.com/ClickHouse/ClickHouse/pull/53342) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o formato incorreto da AST da projeção normal [#53347](https://github.com/ClickHouse/ClickHouse/pull/53347) ([Amos Bird](https://github.com/amosbird)).
* Proibir o uso de use\_structure\_from\_insertion\_table\_in\_table\_functions ao executar Scalar [#53348](https://github.com/ClickHouse/ClickHouse/pull/53348) ([flynn](https://github.com/ucasfl)).
* Corrige o carregamento de banco de dados lazy durante a consulta select em system.table [#53372](https://github.com/ClickHouse/ClickHouse/pull/53372) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Corrigido o system.data\_skipping\_indices no MaterializedMySQL [#53381](https://github.com/ClickHouse/ClickHouse/pull/53381) ([Filipp Ozinov](https://github.com/bakwc)).
* Corrige o processamento de um único caractere de retorno de carro no engine de segmentação de arquivos TSV [#53407](https://github.com/ClickHouse/ClickHouse/pull/53407) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige adequadamente o erro `Context has expired` [#53433](https://github.com/ClickHouse/ClickHouse/pull/53433) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrigido `timeout_overflow_mode` quando há uma subconsulta no lado direito de IN [#53439](https://github.com/ClickHouse/ClickHouse/pull/53439) ([Duc Canh Le](https://github.com/canhld94)).
* Corrigido um comportamento inesperado em [#53152](https://github.com/ClickHouse/ClickHouse/issues/53152) [#53440](https://github.com/ClickHouse/ClickHouse/pull/53440) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Corrigido erro de parse da função JSON\_QUERY quando o path é totalmente numérico [#53470](https://github.com/ClickHouse/ClickHouse/pull/53470) ([KevinyhZou](https://github.com/KevinyhZou)).
* Corrige a ordem incorreta das colunas em consultas com FINAL paralelo. [#53489](https://github.com/ClickHouse/ClickHouse/pull/53489) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigido o SELECT em ReplacingMergeTree com do\_not\_merge\_across\_partitions\_select\_final [#53511](https://github.com/ClickHouse/ClickHouse/pull/53511) ([Vasily Nemkov](https://github.com/Enmk)).
* Esvaziar primeiro a fila de `async insert` ao desligar [#53547](https://github.com/ClickHouse/ClickHouse/pull/53547) ([joelynch](https://github.com/joelynch)).
* Corrige travamento em `join` com coluna esparsa [#53548](https://github.com/ClickHouse/ClickHouse/pull/53548) ([vdimir](https://github.com/vdimir)).
* Corrige possível UB no índice Set do tipo skipping para funções com argumentos incorretos [#53559](https://github.com/ClickHouse/ClickHouse/pull/53559) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido possível UB em índices invertidos (recurso experimental) [#53560](https://github.com/ClickHouse/ClickHouse/pull/53560) ([Azat Khuzhin](https://github.com/azat)).
* Correção: a expressão de interpolação usa a coluna de origem em vez do alias com o mesmo nome da expressão SELECT. [#53572](https://github.com/ClickHouse/ClickHouse/pull/53572) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrigido o número de grânulos descartados em EXPLAIN PLAN index=1 [#53616](https://github.com/ClickHouse/ClickHouse/pull/53616) ([wangxiaobo](https://github.com/wzb5212)).
* Lida corretamente com totais e extremos com `DelayedSource` [#53644](https://github.com/ClickHouse/ClickHouse/pull/53644) ([Antonio Andelic](https://github.com/antonio2368)).
* Cache de Set preparado no pipeline de mutação ficava travado [#53645](https://github.com/ClickHouse/ClickHouse/pull/53645) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigido um bug em mutações com subcolunas do tipo JSON em predicados de consultas UPDATE e DELETE. [#53677](https://github.com/ClickHouse/ClickHouse/pull/53677) ([VanDarkholme7](https://github.com/VanDarkholme7)).
* Corrigido o pushdown de filtro no join full\_sorting\_merge [#53699](https://github.com/ClickHouse/ClickHouse/pull/53699) ([vdimir](https://github.com/vdimir)).
* Tentativa de corrigir o bug em `NULL::LowCardinality(Nullable(...)) NOT IN` [#53706](https://github.com/ClickHouse/ClickHouse/pull/53706) ([Andrey Zvonov](https://github.com/zvonand)).
* Correção: `distinct` ordenado em colunas esparsas [#53711](https://github.com/ClickHouse/ClickHouse/pull/53711) ([Igor Nikonov](https://github.com/devcrafter)).
* `transform`: lida corretamente com a coluna padrão em múltiplas linhas [#53742](https://github.com/ClickHouse/ClickHouse/pull/53742) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Corrige travamento do fuzzer em parseDateTime [#53764](https://github.com/ClickHouse/ClickHouse/pull/53764) ([Robert Schulze](https://github.com/rschu1ze)).
* MaterializedPostgreSQL: corrige exceção não tratada em getCreateTableQueryImpl [#53832](https://github.com/ClickHouse/ClickHouse/pull/53832) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige um possível segfault ao usar a engine PostgreSQL [#53847](https://github.com/ClickHouse/ClickHouse/pull/53847) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigido o alias named\_collection\_admin [#54066](https://github.com/ClickHouse/ClickHouse/pull/54066) ([Kseniia Sumarokova](https://github.com/kssenii)).

### <a id="237" /> Lançamento do ClickHouse 23.7, 2023-07-27. [Apresentação](https://presentations.clickhouse.com/2023-release-23.7/), [Vídeo](https://www.youtube.com/watch?v=TI1kONfON18)

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

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

* Adiciona o tipo de acesso `NAMED COLLECTION` (aliases `USE NAMED COLLECTION`, `NAMED COLLECTION USAGE`). Este PR é incompatível com versões anteriores porque esse tipo de acesso vem desabilitado por padrão (já que o tipo de acesso pai `NAMED COLLECTION ADMIN` também vem desabilitado por padrão). Proposto em [#50277](https://github.com/ClickHouse/ClickHouse/issues/50277). Para concedê-lo, use `GRANT NAMED COLLECTION ON collection_name TO user` ou `GRANT NAMED COLLECTION ON * TO user`; para poder conceder esses grants, `named_collection_admin` é necessário na configuração (anteriormente ele se chamava `named_collection_control`, portanto continuará disponível como alias). [#50625](https://github.com/ClickHouse/ClickHouse/pull/50625) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige um erro de digitação no nome da coluna `last_removal_attemp_time` de `system.parts`. Agora ela se chama `last_removal_attempt_time`. [#52104](https://github.com/ClickHouse/ClickHouse/pull/52104) ([filimonov](https://github.com/filimonov)).
* Eleva a versão de `distributed_ddl_entry_format_version` para 5 por padrão (habilitando OpenTelemetry e o repasse de `initial_query_idd`). Isso impedirá o processamento de entradas existentes de DDL distribuído após um *downgrade* (mas observe que, normalmente, não deveria haver esse tipo de entrada não processada). [#52128](https://github.com/ClickHouse/ClickHouse/pull/52128) ([Azat Khuzhin](https://github.com/azat)).
* Verifica os metadados das projeções da mesma forma que os metadados comuns. Essa mudança pode impedir o servidor de iniciar caso exista uma tabela com uma projeção inválida. Um exemplo é uma projeção que criou colunas posicionais na PK (por exemplo, `projection p (select * order by 1, 4)`, o que não é permitido na PK da tabela e pode causar uma falha durante insert/merge). Remova essas projeções antes da atualização. Corrige [#52353](https://github.com/ClickHouse/ClickHouse/issues/52353). [#52361](https://github.com/ClickHouse/ClickHouse/pull/52361) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* A funcionalidade experimental `hashid` foi removida devido a um bug. A qualidade da implementação já era questionável desde o início, e ela nem chegou a passar do status experimental. Isso encerra [#52406](https://github.com/ClickHouse/ClickHouse/issues/52406). [#52449](https://github.com/ClickHouse/ClickHouse/pull/52449) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="new-feature">
  #### Nova funcionalidade
</div>

* Adicionado o engine de banco de dados `Overlay` para combinar vários bancos de dados em um só. Adicionado o engine de banco de dados `Filesystem` para representar um diretório no sistema de arquivos como um conjunto de tabelas implicitamente disponíveis, com formatos e estruturas detectados automaticamente. Um novo engine de banco de dados `S3` permite interagir com o armazenamento S3 em modo read-only, representando um prefixo como um conjunto de tabelas. Um novo engine de banco de dados `HDFS` permite interagir com o armazenamento HDFS da mesma forma. [#48821](https://github.com/ClickHouse/ClickHouse/pull/48821) ([alekseygolub](https://github.com/alekseygolub)).
* Adiciona suporte a discos externos no Keeper para armazenar snapshots e logs. [#50098](https://github.com/ClickHouse/ClickHouse/pull/50098) ([Antonio Andelic](https://github.com/antonio2368)).
* Adicionado suporte a globs com seleção de múltiplos diretórios (`{}`). [#50559](https://github.com/ClickHouse/ClickHouse/pull/50559) ([Andrey Zvonov](https://github.com/zvonand)).
* O conector Kafka pode obter o schema Avro do schema registry com autenticação básica usando credenciais codificadas em URL. [#49664](https://github.com/ClickHouse/ClickHouse/pull/49664) ([Ilya Golshtein](https://github.com/ilejn)).
* Adicionada a função `arrayJaccardIndex`, que calcula a similaridade de Jaccard entre dois arrays. [#50076](https://github.com/ClickHouse/ClickHouse/pull/50076) ([FFFFFFFHHHHHHH](https://github.com/FFFFFFFHHHHHHH)).
* Adiciona a coluna `is_obsolete` a `system.settings` e a tabelas semelhantes. Fecha [#50819](https://github.com/ClickHouse/ClickHouse/issues/50819). [#50826](https://github.com/ClickHouse/ClickHouse/pull/50826) ([flynn](https://github.com/ucasfl)).
* Implementado suporte a elementos criptografados no arquivo de configuração. Adicionada a possibilidade de usar texto criptografado nos elementos folha do arquivo de configuração. O texto é criptografado com os codecs de criptografia da seção `<encryption_codecs>`. [#50986](https://github.com/ClickHouse/ClickHouse/pull/50986) ([Roman Vasin](https://github.com/rvasin)).
* O algoritmo Grace Hash Join agora também se aplica a FULL e RIGHT JOINs. [#49483](https://github.com/ClickHouse/ClickHouse/issues/49483). [#51013](https://github.com/ClickHouse/ClickHouse/pull/51013) ([lgbo](https://github.com/lgbo-ustc)).
* Adiciona a consulta `SYSTEM STOP LISTEN` para um encerramento mais controlado. Fecha [#47972](https://github.com/ClickHouse/ClickHouse/issues/47972). [#51016](https://github.com/ClickHouse/ClickHouse/pull/51016) ([Nikolay Degterinsky](https://github.com/evillique)).
* Adicionadas as opções `input_format_csv_allow_variable_number_of_columns`. [#51273](https://github.com/ClickHouse/ClickHouse/pull/51273) ([Dmitry Kardymon](https://github.com/kardymonds)).
* Mais um recurso sem graça: adicionar a função `substring_index`, como no Spark ou no MySQL. [#51472](https://github.com/ClickHouse/ClickHouse/pull/51472) ([李扬](https://github.com/taiyang-li)).
* Uma tabela de sistema `jemalloc_bins` para exibir estatísticas dos bins do jemalloc. Exemplo: `SELECT *, size * (nmalloc - ndalloc) AS allocated_bytes FROM system.jemalloc_bins WHERE allocated_bytes > 0 ORDER BY allocated_bytes DESC LIMIT 10`. Aproveite. [#51674](https://github.com/ClickHouse/ClickHouse/pull/51674) ([Alexander Gololobov](https://github.com/davenger)).
* Adicionado o formato `RowBinaryWithDefaults` com um byte extra antes de cada coluna, como sinalizador para usar o valor padrão da coluna. Fecha [#50854](https://github.com/ClickHouse/ClickHouse/issues/50854). [#51695](https://github.com/ClickHouse/ClickHouse/pull/51695) ([Kruglov Pavel](https://github.com/Avogar)).
* Adicionada a configuração `default_temporary_table_engine`. É igual a `default_table_engine`, mas para tabelas temporárias. [#51292](https://github.com/ClickHouse/ClickHouse/issues/51292). [#51708](https://github.com/ClickHouse/ClickHouse/pull/51708) ([velavokr](https://github.com/velavokr)).
* Adicionadas novas funções `initcap` / `initcapUTF8` que convertem a primeira letra de cada palavra em maiúscula e as demais em minúscula. [#51735](https://github.com/ClickHouse/ClickHouse/pull/51735) ([Dmitry Kardymon](https://github.com/kardymonds)).
* CREATE TABLE agora oferece suporte à sintaxe `PRIMARY KEY` na definição de coluna. As colunas são adicionadas ao índice primário na mesma ordem em que são definidas. [#51881](https://github.com/ClickHouse/ClickHouse/pull/51881) ([Ilya Yatsishin](https://github.com/qoega)).
* Adicionada a possibilidade de usar especificadores de formato de data e hora em nomes de arquivos de log e de log de erro, tanto em arquivos de configuração (tags `log` e `errorlog`) quanto em argumentos de linha de comando (`--log-file` e `--errorlog-file`). [#51945](https://github.com/ClickHouse/ClickHouse/pull/51945) ([Victor Krasnov](https://github.com/sirvickr)).
* Adicionada a estatística de pico de uso de memória aos cabeçalhos HTTP. [#51946](https://github.com/ClickHouse/ClickHouse/pull/51946) ([Dmitry Kardymon](https://github.com/kardymonds)).
* Adicionadas novas funções `hasSubsequence` (+ versões `CaseInsensitive` e `UTF8`) para identificar subsequências em strings. [#52050](https://github.com/ClickHouse/ClickHouse/pull/52050) ([Dmitry Kardymon](https://github.com/kardymonds)).
* Adicionar `array_agg` como alias de `groupArray` para compatibilidade com PostgreSQL. Fecha [#52100](https://github.com/ClickHouse/ClickHouse/issues/52100). ### Item de documentação para alterações voltadas ao usuário. [#52135](https://github.com/ClickHouse/ClickHouse/pull/52135) ([flynn](https://github.com/ucasfl)).
* Adiciona `any_value` como alias de compatibilidade para a função de agregação `any`. Fecha [#52140](https://github.com/ClickHouse/ClickHouse/issues/52140). [#52147](https://github.com/ClickHouse/ClickHouse/pull/52147) ([flynn](https://github.com/ucasfl)).
* Adiciona a função de agregação `array_concat_agg` para compatibilidade com o BigQuery; é um alias de `groupArrayArray`. Fecha [#52139](https://github.com/ClickHouse/ClickHouse/issues/52139). [#52149](https://github.com/ClickHouse/ClickHouse/pull/52149) ([flynn](https://github.com/ucasfl)).
* Adiciona `OCTET_LENGTH` como alias de `length`. Fecha [#52153](https://github.com/ClickHouse/ClickHouse/issues/52153). [#52176](https://github.com/ClickHouse/ClickHouse/pull/52176) ([FFFFFFFHHHHHHH](https://github.com/FFFFFFFHHHHHHH)).
* Adicionada a função `firstLine` para extrair a primeira linha de uma string de várias linhas. Isso fecha [#51172](https://github.com/ClickHouse/ClickHouse/issues/51172). [#52209](https://github.com/ClickHouse/ClickHouse/pull/52209) ([Mikhail Koviazin](https://github.com/mkmkme)).
* Implementada a formatação no estilo KQL para o tipo de dados `Interval`. Isso só é necessário para compatibilidade com a linguagem de consulta `Kusto`. [#45671](https://github.com/ClickHouse/ClickHouse/pull/45671) ([ltrk2](https://github.com/ltrk2)).
* Foi adicionada a consulta `SYSTEM FLUSH ASYNC INSERT QUEUE`, que descarrega todas as inserções assíncronas pendentes para as tabelas de destino. Foi adicionada uma configuração do lado do servidor, `async_insert_queue_flush_on_shutdown` (`true` por padrão), que determina se a fila de inserções assíncronas deve ser descarregada durante um encerramento controlado. A configuração `async_insert_threads` agora é uma configuração do lado do servidor. [#49160](https://github.com/ClickHouse/ClickHouse/pull/49160) ([Anton Popov](https://github.com/CurtizJ)).
* Aliases `current_database` e nova função `current_schemas` para compatibilidade com PostgreSQL. [#51076](https://github.com/ClickHouse/ClickHouse/pull/51076) ([Pedro Riera](https://github.com/priera)).
* Adicionar aliases às funções `today` (agora também disponível pelos nomes `curdate`/`current_date`) e `now` (`current_timestamp`). [#52106](https://github.com/ClickHouse/ClickHouse/pull/52106) ([Lloyd-Pottiger](https://github.com/Lloyd-Pottiger)).
* Suporte a `async_deduplication_token` em insert assíncrono. [#52136](https://github.com/ClickHouse/ClickHouse/pull/52136) ([Han Fei](https://github.com/hanfei1991)).
* Adicionar a nova configuração `disable_url_encoding`, que permite desativar a decodificação/codificação do caminho do URI no URL engine. [#52337](https://github.com/ClickHouse/ClickHouse/pull/52337) ([Kruglov Pavel](https://github.com/Avogar)).

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

* Ative a seleção automática do formato de serialização esparso por padrão. Isso melhora o desempenho. O formato é compatível a partir da versão 22.1. Após essa alteração, talvez não seja possível fazer downgrade para versões anteriores à 22.1. Um downgrade pode exigir a definição de `ratio_of_defaults_for_sparse_serialization=0.9375` [55153](https://github.com/ClickHouse/ClickHouse/issues/55153). Você pode desativar o uso do formato de serialização esparso definindo a configuração `ratio_of_defaults_for_sparse_serialization = 1` para suas tabelas MergeTree. [#49631](https://github.com/ClickHouse/ClickHouse/pull/49631) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* As configurações `move_all_conditions_to_prewhere` e `enable_multiple_prewhere_read_steps` foram habilitadas por padrão. [#46365](https://github.com/ClickHouse/ClickHouse/pull/46365) ([Alexander Gololobov](https://github.com/davenger)).
* Melhora o desempenho de algumas consultas com ajustes no alocador de memória. [#46416](https://github.com/ClickHouse/ClickHouse/pull/46416) ([Azat Khuzhin](https://github.com/azat)).
* Agora usamos tarefas de tamanho fixo em `MergeTreePrefetchedReadPool`, como em `MergeTreeReadPool`. Além disso, agora usamos um pool de conexões para requisições ao S3. [#49732](https://github.com/ClickHouse/ClickHouse/pull/49732) ([Nikita Taranov](https://github.com/nickitat)).
* Mais pushdown no lado direito do join. [#50532](https://github.com/ClickHouse/ClickHouse/pull/50532) ([Nikita Taranov](https://github.com/nickitat)).
* Melhora no `grace_hash join` com a reserva do tamanho da tabela hash (reenvio). [#50875](https://github.com/ClickHouse/ClickHouse/pull/50875) ([lgbo](https://github.com/lgbo-ustc)).
* A espera pelo bloqueio em `OpenedFileCache` às vezes podia ser perceptível. Nós o dividimos em vários sub-mapas (cada um com seu próprio bloqueio) para evitar contenção. [#51341](https://github.com/ClickHouse/ClickHouse/pull/51341) ([Nikita Taranov](https://github.com/nickitat)).
* Mova as condições com colunas de chave primária para o final da cadeia do PREWHERE. A ideia é que as condições com colunas de PK provavelmente sejam usadas na análise de PK e não contribuam muito mais para a filtragem no PREWHERE. [#51958](https://github.com/ClickHouse/ClickHouse/pull/51958) ([Alexander Gololobov](https://github.com/davenger)).
* Acelerar `COUNT(DISTINCT)` para tipos `String` com SipHash inline. Os experimentos de desempenho do *OnTime* no dispositivo ICX (CPU Intel Xeon Platinum 8380, 80 núcleos, 160 threads) mostram que essa mudança pode trazer uma melhoria de *11,6%* no QPS da consulta *Q8*, sem impacto nas demais. [#52036](https://github.com/ClickHouse/ClickHouse/pull/52036) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Ativa `allow_vertical_merges_from_compact_to_wide_parts` por padrão. Isso reduzirá o uso de memória durante as mesclagens. [#52295](https://github.com/ClickHouse/ClickHouse/pull/52295) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a análise incorreta de projeções, que invalida as chaves primárias. Esse problema só ocorre quando `query_plan_optimize_primary_key = 1, query_plan_optimize_projection = 1`. Isso corrige [#48823](https://github.com/ClickHouse/ClickHouse/issues/48823). Isso corrige [#51173](https://github.com/ClickHouse/ClickHouse/issues/51173). [#52308](https://github.com/ClickHouse/ClickHouse/pull/52308) ([Amos Bird](https://github.com/amosbird)).
* Reduza o número de syscalls em `FileCache::loadMetadata` — isso acelera a inicialização do servidor se o cache do sistema de arquivos estiver configurado. [#52435](https://github.com/ClickHouse/ClickHouse/pull/52435) ([Raúl Marín](https://github.com/Algunenano)).
* Permite definir um limite inferior estrito para o tamanho do segmento de arquivo, baixando os dados restantes em segundo plano. O tamanho mínimo do segmento de arquivo (se o tamanho real do arquivo for maior) é configurado pela definição de configuração de cache `boundary_alignment`, com valor padrão de `4Mi`. O número de threads em segundo plano é configurado pela definição de configuração de cache `background_download_threads`, com valor padrão de `2`. Além disso, `max_file_segment_size` foi aumentado de `8Mi` para `32Mi` neste PR. [#51000](https://github.com/ClickHouse/ClickHouse/pull/51000) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Reduzidos os timeouts padrão do S3 de 30 segundos para 3 segundos e os de outras conexões HTTP de 180 segundos para 30 segundos. [#51171](https://github.com/ClickHouse/ClickHouse/pull/51171) ([Michael Kolupaev](https://github.com/al13n321)).
* Nova configuração `merge_tree_determine_task_size_by_prewhere_columns` adicionada. Se definida como `true`, apenas os tamanhos das colunas da seção `PREWHERE` serão considerados para determinar o tamanho da tarefa de leitura. Caso contrário, serão consideradas todas as colunas da consulta. [#52606](https://github.com/ClickHouse/ClickHouse/pull/52606) ([Nikita Taranov](https://github.com/nickitat)).

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

* Use read\_bytes/total\_bytes\_to\_read na barra de progresso em table functions s3/file/url/... para indicar melhor o progresso. [#51286](https://github.com/ClickHouse/ClickHouse/pull/51286) ([Kruglov Pavel](https://github.com/Avogar)).
* Introduz uma configuração de tabela `wait_for_unique_parts_send_before_shutdown_ms` que especifica por quanto tempo a réplica aguardará antes de fechar o handler interserver para envios replicados. Também corrige uma inconsistência no desligamento de tabelas e handlers interserver: agora o servidor desliga primeiro as tabelas e só depois os handlers interserver. [#51851](https://github.com/ClickHouse/ClickHouse/pull/51851) ([alesapin](https://github.com/alesapin)).
* Permite o padrão SQL `FETCH` sem `OFFSET`. Veja [https://antonz.org/sql-fetch/](https://antonz.org/sql-fetch/). [#51293](https://github.com/ClickHouse/ClickHouse/pull/51293) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permite filtrar cabeçalhos HTTP nas funções de tabela URL/S3 com a nova seção `http_forbid_headers` na configuração. Há suporte tanto para correspondência exata quanto para filtros por regexp. [#51038](https://github.com/ClickHouse/ClickHouse/pull/51038) ([Nikolay Degterinsky](https://github.com/evillique)).
* Não exiba mensagens sobre `16 EiB` de espaço livre nos logs, pois elas não fazem sentido. Isso fecha [#49320](https://github.com/ClickHouse/ClickHouse/issues/49320). [#49342](https://github.com/ClickHouse/ClickHouse/pull/49342) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Verifique adequadamente o limite da função `sleepEachRow`. Adicione uma configuração `function_sleep_max_microseconds_per_block`. Isso é necessário para o fuzzer genérico de consultas. [#49343](https://github.com/ClickHouse/ClickHouse/pull/49343) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigidos dois problemas nas funções `geoHash`. [#50066](https://github.com/ClickHouse/ClickHouse/pull/50066) ([李扬](https://github.com/taiyang-li)).
* Registrar no `system.query_log` as consultas de flush de async insert. [#51160](https://github.com/ClickHouse/ClickHouse/pull/51160) ([Raúl Marín](https://github.com/Algunenano)).
* As funções `date_diff` e `age` agora oferecem suporte às unidades de milissegundo e microssegundo e funcionam com precisão de microssegundos. [#51291](https://github.com/ClickHouse/ClickHouse/pull/51291) ([Dmitry Kardymon](https://github.com/kardymonds)).
* Melhoria no parsing do caminho no clickhouse-keeper-client. [#51359](https://github.com/ClickHouse/ClickHouse/pull/51359) ([Azat Khuzhin](https://github.com/azat)).
* Um produto de terceiros que depende do ClickHouse (Gluten: um plugin para dobrar o desempenho do Spark SQL) tinha um bug. Esta correção evita um estouro de heap nesse produto de terceiros durante a leitura do HDFS. [#51386](https://github.com/ClickHouse/ClickHouse/pull/51386) ([李扬](https://github.com/taiyang-li)).
* Adiciona a opção de desabilitar a cópia nativa para S3 (configuração para BACKUP/RESTORE `allow_s3_native_copy` e `s3_allow_native_copy` para discos `s3`/`s3_plain`). [#51448](https://github.com/ClickHouse/ClickHouse/pull/51448) ([Azat Khuzhin](https://github.com/azat)).
* Adicionar a coluna `primary_key_size` à tabela `system.parts` para exibir o tamanho compactado da chave primária em disco. Fecha [#51400](https://github.com/ClickHouse/ClickHouse/issues/51400). [#51496](https://github.com/ClickHouse/ClickHouse/pull/51496) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Permite executar `clickhouse-local` sem procfs, sem que o diretório home exista e sem os plugins de resolução de nomes da glibc. [#51518](https://github.com/ClickHouse/ClickHouse/pull/51518) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionar o placeholder `%a` para o nome completo do arquivo na configuração rename\_files\_after\_processing. [#51603](https://github.com/ClickHouse/ClickHouse/pull/51603) ([Kruglov Pavel](https://github.com/Avogar)).
* Adiciona a coluna `modification_time` a `system.parts_columns`. [#51685](https://github.com/ClickHouse/ClickHouse/pull/51685) ([Azat Khuzhin](https://github.com/azat)).
* Adiciona a nova configuração `input_format_csv_use_default_on_bad_values` ao formato CSV, permitindo inserir o valor padrão quando a análise de um único campo falhar. [#51716](https://github.com/ClickHouse/ClickHouse/pull/51716) ([KevinyhZou](https://github.com/KevinyhZou)).
* Adicionada a gravação do log de falha em disco após uma falha inesperada. [#51720](https://github.com/ClickHouse/ClickHouse/pull/51720) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Corrige o comportamento da página do dashboard em que erros não relacionados à autenticação não são exibidos. Também corrige o comportamento de 'sobreposição' dos gráficos. [#51744](https://github.com/ClickHouse/ClickHouse/pull/51744) ([Zach Naimon](https://github.com/ArctypeZach)).
* Permite a conversão de UUID para UInt128. [#51765](https://github.com/ClickHouse/ClickHouse/pull/51765) ([Dmitry Kardymon](https://github.com/kardymonds)).
* Adicionado suporte à função `range` com argumentos Nullable. [#51767](https://github.com/ClickHouse/ClickHouse/pull/51767) ([Dmitry Kardymon](https://github.com/kardymonds)).
* Converte uma condição como `toyear(x) = c` em `c1 <= x < c2`. [#51795](https://github.com/ClickHouse/ClickHouse/pull/51795) ([Han Fei](https://github.com/hanfei1991)).
* Melhora na compatibilidade da instrução `SHOW INDEX` com o MySQL. [#51796](https://github.com/ClickHouse/ClickHouse/pull/51796) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrigido o problema em que `use_structure_from_insertion_table_in_table_functions` não funciona com colunas `MATERIALIZED` e `ALIAS`. Fecha [#51817](https://github.com/ClickHouse/ClickHouse/issues/51817). Fecha [#51019](https://github.com/ClickHouse/ClickHouse/issues/51019). [#51825](https://github.com/ClickHouse/ClickHouse/pull/51825) ([flynn](https://github.com/ucasfl)).
* O dicionário de cache agora solicita da origem apenas chaves distintas. Fecha [#51762](https://github.com/ClickHouse/ClickHouse/issues/51762). [#51853](https://github.com/ClickHouse/ClickHouse/pull/51853) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrigido o caso em que as configurações não eram aplicadas à consulta EXPLAIN quando FORMAT era especificado. [#51859](https://github.com/ClickHouse/ClickHouse/pull/51859) ([Nikita Taranov](https://github.com/nickitat)).
* Permitir SETTINGS antes de FORMAT na consulta DESCRIBE TABLE, para compatibilidade com a consulta SELECT. Fecha [#51544](https://github.com/ClickHouse/ClickHouse/issues/51544). [#51899](https://github.com/ClickHouse/ClickHouse/pull/51899) ([Nikolay Degterinsky](https://github.com/evillique)).
* Inteiros codificados em Var-Int (por exemplo, usados pelo protocolo nativo) agora podem utilizar toda a faixa de 64 bits. Recomenda-se que clientes de terceiros atualizem seu código de var-int de acordo. [#51905](https://github.com/ClickHouse/ClickHouse/pull/51905) ([Robert Schulze](https://github.com/rschu1ze)).
* Atualize os certificados quando eles forem alterados, sem precisar executar manualmente SYSTEM RELOAD CONFIG. [#52030](https://github.com/ClickHouse/ClickHouse/pull/52030) ([Mike Kot](https://github.com/myrrc)).
* Adicionada a configuração `allow_create_index_without_type`, que permite ignorar consultas `ADD INDEX` sem `TYPE` especificado. As consultas SQL padrão simplesmente serão executadas com sucesso sem alterar o esquema da tabela. [#52056](https://github.com/ClickHouse/ClickHouse/pull/52056) ([Ilya Yatsishin](https://github.com/qoega)).
* As mensagens de log são gravadas em `system.text_log` desde a inicialização do servidor. [#52113](https://github.com/ClickHouse/ClickHouse/pull/52113) ([Dmitry Kardymon](https://github.com/kardymonds)).
* Nos casos em que o endpoint HTTP tem vários endereços IP e o primeiro deles está inacessível, uma exceção de timeout era lançada. A criação da sessão passou a tratar todos os endpoints resolvidos. [#52116](https://github.com/ClickHouse/ClickHouse/pull/52116) ([Aleksei Filatov](https://github.com/aalexfvk)).
* O formato de entrada Avro agora oferece suporte a Union, mesmo quando contém apenas um tipo. Corrige [#52131](https://github.com/ClickHouse/ClickHouse/issues/52131). [#52137](https://github.com/ClickHouse/ClickHouse/pull/52137) ([flynn](https://github.com/ucasfl)).
* Adiciona a configuração `optimize_use_implicit_projections` para desativar projeções implícitas (no momento, apenas a projeção `min_max_count`). [#52152](https://github.com/ClickHouse/ClickHouse/pull/52152) ([Amos Bird](https://github.com/amosbird)).
* Era possível usar a função `hasToken` para criar um loop infinito. Agora, essa possibilidade foi eliminada. Isso fecha [#52156](https://github.com/ClickHouse/ClickHouse/issues/52156). [#52160](https://github.com/ClickHouse/ClickHouse/pull/52160) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Criar os nós ancestrais no ZK de forma otimista. [#52195](https://github.com/ClickHouse/ClickHouse/pull/52195) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige [#50582](https://github.com/ClickHouse/ClickHouse/issues/50582). Evita o erro `Not found column ... in block` em alguns casos de leitura ordenada e constantes. [#52259](https://github.com/ClickHouse/ClickHouse/pull/52259) ([Chen768959](https://github.com/Chen768959)).
* Verifique o quanto antes se os primitivos Geo S2 são inválidos do lado do ClickHouse. Fecha: [#27090](https://github.com/ClickHouse/ClickHouse/issues/27090). [#52260](https://github.com/ClickHouse/ClickHouse/pull/52260) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Readiciona a projeção QueryAccessInfo ausente quando `query_plan_optimize_projection = 1`. Isso corrige [#50183](https://github.com/ClickHouse/ClickHouse/issues/50183). Isso corrige [#50093](https://github.com/ClickHouse/ClickHouse/issues/50093). [#52327](https://github.com/ClickHouse/ClickHouse/pull/52327) ([Amos Bird](https://github.com/amosbird)).
* Quando `ZooKeeperRetriesControl` relança um erro, é mais útil ver a `stack trace` original, não a do próprio `ZooKeeperRetriesControl`. [#52347](https://github.com/ClickHouse/ClickHouse/pull/52347) ([Vitaly Baranov](https://github.com/vitlibar)).
* Aguarde o bloqueio da replicação zero copy, mesmo que alguns discos não tenham suporte a ela. [#52376](https://github.com/ClickHouse/ClickHouse/pull/52376) ([Raúl Marín](https://github.com/Algunenano)).
* Agora, a porta entre servidores só será fechada depois que as tabelas forem desativadas. [#52498](https://github.com/ClickHouse/ClickHouse/pull/52498) ([alesapin](https://github.com/alesapin)).

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

* A gravação de arquivos Parquet está 10x mais rápida; agora usa múltiplas threads. Quase na mesma velocidade da leitura. [#49367](https://github.com/ClickHouse/ClickHouse/pull/49367) ([Michael Kolupaev](https://github.com/al13n321)). Isso é controlado pela configuração `output_format_parquet_use_custom_encoder`, que vem desabilitada por padrão, porque o recurso ainda não está ideal.
* Adicionado suporte a [PRQL](https://prql-lang.org/) como linguagem de consulta. [#50686](https://github.com/ClickHouse/ClickHouse/pull/50686) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Agora é possível adicionar um nome de disco para discos personalizados. Antes, discos personalizados usavam um nome de disco interno gerado automaticamente. Agora isso pode ser feito com `disk = disk_<name>(...)` (por exemplo, o disco terá o nome `name`). [#51552](https://github.com/ClickHouse/ClickHouse/pull/51552) ([Kseniia Sumarokova](https://github.com/kssenii)). Essa sintaxe pode ser alterada neste lançamento.
* (experimental MaterializedMySQL) Corrigido travamento quando `mysqlxx::Pool::Entry` é usado após ter sido desconectado. [#52063](https://github.com/ClickHouse/ClickHouse/pull/52063) ([Val Doroshchuk](https://github.com/valbok)).
* (experimental MaterializedMySQL) `CREATE TABLE ... AS SELECT` .. agora é compatível com MaterializedMySQL. [#52067](https://github.com/ClickHouse/ClickHouse/pull/52067) ([Val Doroshchuk](https://github.com/valbok)).
* (experimental MaterializedMySQL) Introduzida conversão automática de tipos de texto para UTF-8 no MaterializedMySQL. [#52084](https://github.com/ClickHouse/ClickHouse/pull/52084) ([Val Doroshchuk](https://github.com/valbok)).
* (experimental MaterializedMySQL) Agora há suporte a strings UTF-8 sem aspas em DDL para MaterializedMySQL. [#52318](https://github.com/ClickHouse/ClickHouse/pull/52318) ([Val Doroshchuk](https://github.com/valbok)).
* (experimental MaterializedMySQL) Agora há suporte a comentários entre aspas duplas no MaterializedMySQL. [#52355](https://github.com/ClickHouse/ClickHouse/pull/52355) ([Val Doroshchuk](https://github.com/valbok)).
* Atualizado o Intel QPL da v1.1.0 para a v1.2.0 2. Atualizado o Intel accel-config da v3.5 para a v4.0 3. Corrigido um problema em que falhas de Device IOTLB tinham grande impacto no desempenho dos aceleradores IAA. [#52180](https://github.com/ClickHouse/ClickHouse/pull/52180) ([jasperzhu](https://github.com/jinjunzh)).
* A configuração `session_timezone` (nova na versão 23.6) foi rebaixada para experimental. [#52445](https://github.com/ClickHouse/ClickHouse/pull/52445) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado suporte ao comando `reconfig` do ZooKeeper para ClickHouse Keeper com reconfiguração incremental, que pode ser habilitada por meio da configuração `keeper_server.enable_reconfiguration`. Há suporte para adicionar servidores, remover servidores e alterar prioridades de servidores. [#49450](https://github.com/ClickHouse/ClickHouse/pull/49450) ([Mike Kot](https://github.com/myrrc)). Suspeita-se que essa funcionalidade esteja incompleta.

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

* Adiciona builds experimentais do ClickHouse para Linux RISC-V 64 à CI. [#31398](https://github.com/ClickHouse/ClickHouse/pull/31398) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona uma verificação de teste de integração com o analisador habilitado. [#50926](https://github.com/ClickHouse/ClickHouse/pull/50926) [#52210](https://github.com/ClickHouse/ClickHouse/pull/52210) ([Dmitry Novik](https://github.com/novikd)).
* Builds reprodutíveis para Rust. [#52395](https://github.com/ClickHouse/ClickHouse/pull/52395) ([Azat Khuzhin](https://github.com/azat)).
* Atualiza as dependências do Cargo. [#51721](https://github.com/ClickHouse/ClickHouse/pull/51721) ([Raúl Marín](https://github.com/Algunenano)).
* Faz com que a função `CHColumnToArrowColumn::fillArrowArrayWithArrayColumnData` funcione com arrays Nullable, que não são possíveis no ClickHouse, mas são necessários para o Gluten. [#52112](https://github.com/ClickHouse/ClickHouse/pull/52112) ([李扬](https://github.com/taiyang-li)).
* Atualizamos a biblioteca CCTZ para a branch master, mas não há mudanças visíveis para o usuário. [#52124](https://github.com/ClickHouse/ClickHouse/pull/52124) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A tabela `system.licenses` agora inclui a biblioteca Poco, que passou por um hard fork. Isso fecha [#52066](https://github.com/ClickHouse/ClickHouse/issues/52066). [#52127](https://github.com/ClickHouse/ClickHouse/pull/52127) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Verifica se não há casos de pontuação incorreta: espaço em branco antes de uma vírgula, como em `Hello ,world` em vez de `Hello, world`. [#52549](https://github.com/ClickHouse/ClickHouse/pull/52549) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Corrigida a `syncTables` do MaterializedPostgreSQL [#49698](https://github.com/ClickHouse/ClickHouse/pull/49698) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigida a projeção com optimize\_aggregators\_of\_group\_by\_keys [#49709](https://github.com/ClickHouse/ClickHouse/pull/49709) ([Amos Bird](https://github.com/amosbird)).
* Correção do optimize\_skip\_unused\_shards com junções [#51037](https://github.com/ClickHouse/ClickHouse/pull/51037) ([Azat Khuzhin](https://github.com/azat)).
* Corrige formatDateTime() com DateTime64 negativo fracionário [#51290](https://github.com/ClickHouse/ClickHouse/pull/51290) ([Dmitry Kardymon](https://github.com/kardymonds)).
* As funções `hasToken*` estavam totalmente erradas. Foi adicionado um teste para [#43358](https://github.com/ClickHouse/ClickHouse/issues/43358) [#51378](https://github.com/ClickHouse/ClickHouse/pull/51378) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a otimização que move funções antes da ordenação. [#51481](https://github.com/ClickHouse/ClickHouse/pull/51481) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige incompatibilidade na estrutura de bloco em Pipe::unitePipes para FINAL [#51492](https://github.com/ClickHouse/ClickHouse/pull/51492) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige falha SIGSEGV em clusters com peso zero em todos os shards (corrige INSERT INTO FUNCTION clusterAllReplicas()) [#51545](https://github.com/ClickHouse/ClickHouse/pull/51545) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido o timeout em requisições hedged [#51582](https://github.com/ClickHouse/ClickHouse/pull/51582) ([Azat Khuzhin](https://github.com/azat)).
* Correção de erro lógico em ANTI join com NULL [#51601](https://github.com/ClickHouse/ClickHouse/pull/51601) ([vdimir](https://github.com/vdimir)).
* Correção para mover as condições 'IN' para PREWHERE [#51610](https://github.com/ClickHouse/ClickHouse/pull/51610) ([Alexander Gololobov](https://github.com/davenger)).
* Não aplicar o PredicateExpressionsOptimizer para ASOF/ANTI JOIN [#51633](https://github.com/ClickHouse/ClickHouse/pull/51633) ([vdimir](https://github.com/vdimir)).
* Corrigido o async insert com desduplicação para ReplicatedMergeTree usando algoritmos de merge [#51676](https://github.com/ClickHouse/ClickHouse/pull/51676) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigida a leitura a partir de uma coluna vazia em `parseSipHashKey` [#51804](https://github.com/ClickHouse/ClickHouse/pull/51804) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige falha de segmentação ao criar uma tabela EmbeddedRocksdb inválida [#51847](https://github.com/ClickHouse/ClickHouse/pull/51847) ([Duc Canh Le](https://github.com/canhld94)).
* Corrigidas inserções em tabelas do MongoDB [#51876](https://github.com/ClickHouse/ClickHouse/pull/51876) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige deadlock durante o encerramento do DatabaseCatalog [#51908](https://github.com/ClickHouse/ClickHouse/pull/51908) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige erro nos operadores de subconsulta [#51922](https://github.com/ClickHouse/ClickHouse/pull/51922) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a conexão assíncrona com hosts com múltiplos IPs [#51934](https://github.com/ClickHouse/ClickHouse/pull/51934) ([Kruglov Pavel](https://github.com/Avogar)).
* Não remova as entradas após ActionsDAG::merge [#51947](https://github.com/ClickHouse/ClickHouse/pull/51947) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Verifique o `refcount` em `RemoveManyObjectStorageOperation::finalize`, em vez de `execute` [#51954](https://github.com/ClickHouse/ClickHouse/pull/51954) ([vdimir](https://github.com/vdimir)).
* Permite UDFs paramétricas [#51964](https://github.com/ClickHouse/ClickHouse/pull/51964) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Pequena correção em `toDateTime64()` para datas após 2283-12-31 [#52130](https://github.com/ClickHouse/ClickHouse/pull/52130) ([Andrey Zvonov](https://github.com/zvonand)).
* Corrigida a tupla em ORDER BY de funções de janela [#52145](https://github.com/ClickHouse/ClickHouse/pull/52145) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a análise incorreta de projeção quando a expressão de agregação contém funções monotônicas [#52151](https://github.com/ClickHouse/ClickHouse/pull/52151) ([Amos Bird](https://github.com/amosbird)).
* Corrigido erro nas funções `groupArrayMoving` [#52161](https://github.com/ClickHouse/ClickHouse/pull/52161) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Desabilitado o Direct JOIN para dicionário de intervalo [#52187](https://github.com/ClickHouse/ClickHouse/pull/52187) ([Duc Canh Le](https://github.com/canhld94)).
* Corrige o teste de mutações travadas (e uma condição de corrida extremamente rara) [#52197](https://github.com/ClickHouse/ClickHouse/pull/52197) ([alesapin](https://github.com/alesapin)).
* Corrige uma condição de corrida no disco Web [#52211](https://github.com/ClickHouse/ClickHouse/pull/52211) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige condição de corrida em Connection::setAsyncCallback ao receber pacote desconhecido do servidor [#52219](https://github.com/ClickHouse/ClickHouse/pull/52219) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige a exclusão de dados temporários na inicialização e adiciona teste [#52275](https://github.com/ClickHouse/ClickHouse/pull/52275) ([vdimir](https://github.com/vdimir)).
* Não use projeções minmax\_count para contar colunas Nullable [#52297](https://github.com/ClickHouse/ClickHouse/pull/52297) ([Amos Bird](https://github.com/amosbird)).
* MergeTree/ReplicatedMergeTree devem usar o fuso horário do servidor para registros de log [#52325](https://github.com/ClickHouse/ClickHouse/pull/52325) ([Azat Khuzhin](https://github.com/azat)).
* Corrige view parametrizada com CTE e múltiplos usos [#52328](https://github.com/ClickHouse/ClickHouse/pull/52328) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Desabilitar modelos de expressão para intervalos de tempo [#52335](https://github.com/ClickHouse/ClickHouse/pull/52335) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrigido `apply_snapshot` no Keeper [#52358](https://github.com/ClickHouse/ClickHouse/pull/52358) ([Antonio Andelic](https://github.com/antonio2368)).
* Atualização de build-osx.md [#52377](https://github.com/ClickHouse/ClickHouse/pull/52377) ([AlexBykovski](https://github.com/AlexBykovski)).
* Corrige o travamento de `countSubstrings` com needle vazio e haystack em coluna [#52409](https://github.com/ClickHouse/ClickHouse/pull/52409) ([Sergei Trifonov](https://github.com/serxa)).
* Corrige projeção normal com tabela Merge  [#52432](https://github.com/ClickHouse/ClickHouse/pull/52432) ([Amos Bird](https://github.com/amosbird)).
* Correção de possível double-free no Aggregator [#52439](https://github.com/ClickHouse/ClickHouse/pull/52439) ([Nikita Taranov](https://github.com/nickitat)).
* Corrigida a inserção na engine Buffer [#52440](https://github.com/ClickHouse/ClickHouse/pull/52440) ([Vasily Nemkov](https://github.com/Enmk)).
* A implementação de AnyHash não estava em conformidade. [#52448](https://github.com/ClickHouse/ClickHouse/pull/52448) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Verificação da profundidade de recursão em OptimizedRegularExpression [#52451](https://github.com/ClickHouse/ClickHouse/pull/52451) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a condição de corrida em DatabaseReplicated::startupTables()/canExecuteReplicatedMetadataAlter() [#52490](https://github.com/ClickHouse/ClickHouse/pull/52490) ([Azat Khuzhin](https://github.com/azat)).
* Correção de abort na função `transform` [#52513](https://github.com/ClickHouse/ClickHouse/pull/52513) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a exclusão leve após a remoção de uma projeção [#52517](https://github.com/ClickHouse/ClickHouse/pull/52517) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige um possível erro "Cannot drain connections: cancel first" [#52585](https://github.com/ClickHouse/ClickHouse/pull/52585) ([Kruglov Pavel](https://github.com/Avogar)).

### <a id="236" /> Lançamento do ClickHouse 23.6, 2023-06-29. [Apresentação](https://presentations.clickhouse.com/2023-release-23.6/), [Vídeo](https://www.youtube.com/watch?v=cuf_hYn7dqU)

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

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

* Removida a funcionalidade `do_not_evict_index_and_mark_files` do cache do sistema de arquivos. Essa funcionalidade só piorava as coisas. [#51253](https://github.com/ClickHouse/ClickHouse/pull/51253) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Removido o suporte a ALTER para a visualização em tempo real experimental. [#51287](https://github.com/ClickHouse/ClickHouse/pull/51287) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Reduzidos os valores padrão de `http_max_field_value_size` e `http_max_field_name_size` para 128 KiB. [#51163](https://github.com/ClickHouse/ClickHouse/pull/51163) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* As métricas de CGroups relacionadas à CPU foram substituídas por uma única métrica, `CGroupMaxCPU`, para facilitar o uso. As métricas de uso de CPU `Normalized` passarão a ser normalizadas com base nos limites de CGroups, em vez do número total de CPUs, quando esses limites estiverem definidos. Isso fecha [#50836](https://github.com/ClickHouse/ClickHouse/issues/50836). [#50835](https://github.com/ClickHouse/ClickHouse/pull/50835) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="new-feature">
  #### Nova funcionalidade
</div>

* A função `transform`, assim como `CASE` com correspondência de valores, passou a oferecer suporte a todos os tipos de dados. Isso fecha [#29730](https://github.com/ClickHouse/ClickHouse/issues/29730). Isso fecha [#32387](https://github.com/ClickHouse/ClickHouse/issues/32387). Isso fecha [#50827](https://github.com/ClickHouse/ClickHouse/issues/50827). Isso fecha [#31336](https://github.com/ClickHouse/ClickHouse/issues/31336). Isso fecha [#40493](https://github.com/ClickHouse/ClickHouse/issues/40493). [#51351](https://github.com/ClickHouse/ClickHouse/pull/51351) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionada a opção `--rename_files_after_processing <pattern>`. Isso fecha [#34207](https://github.com/ClickHouse/ClickHouse/issues/34207). [#49626](https://github.com/ClickHouse/ClickHouse/pull/49626) ([alekseygolub](https://github.com/alekseygolub)).
* Adicionado suporte ao modificador `TRUNCATE` na cláusula `INTO OUTFILE`. Recomenda-se usar `APPEND` ou `TRUNCATE` com `INTO OUTFILE` quando o arquivo já existir. [#50950](https://github.com/ClickHouse/ClickHouse/pull/50950) ([alekar](https://github.com/alekar)).
* Adicionados o mecanismo de tabela `Redis` e a função de tabela `redis`. Isso permite consultar servidores Redis externos. [#50150](https://github.com/ClickHouse/ClickHouse/pull/50150) ([JackyWoo](https://github.com/JackyWoo)).
* Permite ignorar arquivos vazios nas funções de tabela file/s3/url/hdfs usando as configurações `s3_skip_empty_files`, `hdfs_skip_empty_files`, `engine_file_skip_empty_files`, `engine_url_skip_empty_files`. [#50364](https://github.com/ClickHouse/ClickHouse/pull/50364) ([Kruglov Pavel](https://github.com/Avogar)).
* Adiciona uma nova configuração chamada `use_mysql_types_in_show_columns` para alterar a instrução SQL `SHOW COLUMNS`, de modo que exiba tipos equivalentes do MySQL quando um cliente estiver conectado pela porta de compatibilidade com MySQL. [#49577](https://github.com/ClickHouse/ClickHouse/pull/49577) ([Thomas Panetti](https://github.com/tpanetti)).
* O clickhouse-client agora pode ser chamado com uma string de conexão em vez de "--host", "--port", "--user" etc. [#50689](https://github.com/ClickHouse/ClickHouse/pull/50689) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Adiciona a configuração `session_timezone`; ela é usada como fuso horário padrão de uma sessão quando não for especificado explicitamente. [#44149](https://github.com/ClickHouse/ClickHouse/pull/44149) ([Andrey Zvonov](https://github.com/zvonand)).
* O codec DEFLATE\_QPL agora é controlado pela configuração do servidor "enable\_deflate\_qpl\_codec" (padrão: false) em vez da configuração "allow\_experimental\_codecs". Isso faz com que o DEFLATE\_QPL deixe de ser experimental. [#50775](https://github.com/ClickHouse/ClickHouse/pull/50775) ([Robert Schulze](https://github.com/rschu1ze)).

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

* Melhorado o agendamento das tarefas de seleção de merge e limpeza em `ReplicatedMergeTree`. As tarefas não serão executadas com muita frequência quando não houver nada para mesclar ou limpar. Adicionadas as configurações `max_merge_selecting_sleep_ms`, `merge_selecting_sleep_slowdown_factor`, `max_cleanup_delay_period` e `cleanup_thread_preferred_points_per_iteration`. Isso deve fechar [#31919](https://github.com/ClickHouse/ClickHouse/issues/31919). [#50107](https://github.com/ClickHouse/ClickHouse/pull/50107) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Permite push down de filtro em cross join. [#50605](https://github.com/ClickHouse/ClickHouse/pull/50605) ([Han Fei](https://github.com/hanfei1991)).
* Melhora o desempenho com o QueryProfiler habilitado usando `timer_id` local da thread em vez de um objeto global. [#48778](https://github.com/ClickHouse/ClickHouse/pull/48778) ([Jiebin Sun](https://github.com/jiebinn)).
* Reescreve o formato de entrada/saída CapnProto para melhorar o desempenho. Mapeia nomes de colunas e campos do CapnProto sem diferenciar maiúsculas de minúsculas e corrige a leitura/gravação de campos de estruturas aninhadas. [#49752](https://github.com/ClickHouse/ClickHouse/pull/49752) ([Kruglov Pavel](https://github.com/Avogar)).
* Otimiza o desempenho de gravação em Parquet para threads paralelas. [#50102](https://github.com/ClickHouse/ClickHouse/pull/50102) ([Hongbin Ma](https://github.com/binmahone)).
* Desabilita `parallelize_output_from_storages` para o processamento de MATERIALIZED VIEWs e storages com apenas um bloco. [#50214](https://github.com/ClickHouse/ClickHouse/pull/50214) ([Azat Khuzhin](https://github.com/azat)).
* Incorpora o PR [#46558](https://github.com/ClickHouse/ClickHouse/pull/46558). Evita a permutação de blocos durante a ordenação se o bloco já estiver ordenado. [#50697](https://github.com/ClickHouse/ClickHouse/pull/50697) ([Alexey Milovidov](https://github.com/alexey-milovidov), [Maksim Kita](https://github.com/kitaisreal)).
* Faz várias solicitações de listagem ao ZooKeeper em paralelo para acelerar a leitura da tabela system.zookeeper. [#51042](https://github.com/ClickHouse/ClickHouse/pull/51042) ([Alexander Gololobov](https://github.com/davenger)).
* Acelera a inicialização das tabelas de lookup de DateTime para fusos horários. Isso deve reduzir o tempo de inicialização/conexão do clickhouse-client, especialmente em builds de depuração, já que essa etapa é relativamente pesada. [#51347](https://github.com/ClickHouse/ClickHouse/pull/51347) ([Alexander Gololobov](https://github.com/davenger)).
* Corrige a lentidão em lagos de dados causada por solicitações HEAD síncronas. (Relacionado à lentidão de Iceberg/DeltaLake/Hudi quando há muitos arquivos). [#50976](https://github.com/ClickHouse/ClickHouse/pull/50976) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Não lê todas as colunas da tabela à direita em GLOBAL JOIN. [#50721](https://github.com/ClickHouse/ClickHouse/pull/50721) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).

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

* Suporte a réplicas paralelas com o analisador. [#50441](https://github.com/ClickHouse/ClickHouse/pull/50441) ([Raúl Marín](https://github.com/Algunenano)).
* Adiciona uma espera aleatória antes da execução de grandes merges/mutações para distribuir a carga de forma mais uniforme entre as réplicas em caso de replicação zero-copy. [#51282](https://github.com/ClickHouse/ClickHouse/pull/51282) ([alesapin](https://github.com/alesapin)).
* Não replica consultas `ALTER PARTITION` nem mutações por meio do banco de dados `Replicated` se ele tiver apenas um shard e a tabela subjacente for `ReplicatedMergeTree`. [#51049](https://github.com/ClickHouse/ClickHouse/pull/51049) ([Alexander Tokmakov](https://github.com/tavplubix)).

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

* Torne os limites para "too many parts" mais atuais. Reintroduza a contrapressão durante consultas de insert de longa duração. [#50856](https://github.com/ClickHouse/ClickHouse/pull/50856) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permite converter endereços IPv6 em endereços IPv4 no CIDR ::ffff:0:0/96 (endereços IPv4 mapeados). [#49759](https://github.com/ClickHouse/ClickHouse/pull/49759) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Atualizado o protocolo do MongoDB para oferecer suporte ao MongoDB 5.1 e versões mais recentes. O suporte a versões com o protocolo antigo (\<3.6) foi preservado. Fecha [#45621](https://github.com/ClickHouse/ClickHouse/issues/45621), [#49879](https://github.com/ClickHouse/ClickHouse/issues/49879). [#50061](https://github.com/ClickHouse/ClickHouse/pull/50061) ([Nikolay Degterinsky](https://github.com/evillique)).
* Adiciona a configuração `input_format_max_bytes_to_read_for_schema_inference` para limitar o número de bytes lidos na inferência de esquema. Fecha [#50577](https://github.com/ClickHouse/ClickHouse/issues/50577). [#50592](https://github.com/ClickHouse/ClickHouse/pull/50592) ([Kruglov Pavel](https://github.com/Avogar)).
* Respeita a configuração `input_format_null_as_default` na inferência de esquema. [#50602](https://github.com/ClickHouse/ClickHouse/pull/50602) ([Kruglov Pavel](https://github.com/Avogar)).
* Permite ignorar linhas vazias no final nos formatos CSV/TSV/CustomSeparated por meio das configurações `input_format_csv_skip_trailing_empty_lines`, `input_format_tsv_skip_trailing_empty_lines` e `input_format_custom_skip_trailing_empty_lines` (desabilitadas por padrão). Fecha [#49315](https://github.com/ClickHouse/ClickHouse/issues/49315). [#50635](https://github.com/ClickHouse/ClickHouse/pull/50635) ([Kruglov Pavel](https://github.com/Avogar)).
* As funções "toDateOrDefault|OrNull" e "accuateCast\[OrDefault|OrNull]" agora fazem o parse correto de argumentos numéricos. [#50709](https://github.com/ClickHouse/ClickHouse/pull/50709) ([Dmitry Kardymon](https://github.com/kardymonds)).
* Suporte a CSV com delimitadores de campo de espaço em branco ou `\t`, e esses delimitadores têm suporte no Spark. [#50712](https://github.com/ClickHouse/ClickHouse/pull/50712) ([KevinyhZou](https://github.com/KevinyhZou)).
* As configurações `number_of_mutations_to_delay` e `number_of_mutations_to_throw` agora estão habilitadas por padrão, com os valores 500 e 1000, respectivamente. [#50726](https://github.com/ClickHouse/ClickHouse/pull/50726) ([Anton Popov](https://github.com/CurtizJ)).
* O dashboard mostra corretamente os valores ausentes. Isso encerra [#50831](https://github.com/ClickHouse/ClickHouse/issues/50831). [#50832](https://github.com/ClickHouse/ClickHouse/pull/50832) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Foi adicionada a possibilidade de usar argumentos de data e hora no formato de timestamp do syslog nas funções `parseDateTimeBestEffort*` e `parseDateTime64BestEffort*`. [#50925](https://github.com/ClickHouse/ClickHouse/pull/50925) ([Victor Krasnov](https://github.com/sirvickr)).
* O parâmetro de linha de comando "--password" no clickhouse-client agora só pode ser especificado uma vez. [#50966](https://github.com/ClickHouse/ClickHouse/pull/50966) ([Alexey Gerasimchuck](https://github.com/Demilivor)).
* Use `hash_of_all_files` de `system.parts` para verificar a identidade das partes durante backups no cluster. [#50997](https://github.com/ClickHouse/ClickHouse/pull/50997) ([Vitaly Baranov](https://github.com/vitlibar)).
* A tabela de sistema zookeeper\_connection connected\_time identifica o momento em que a conexão é estabelecida (formato padrão), e session\_uptime\_elapsed\_seconds é adicionada para indicar a duração da sessão de conexão estabelecida (em segundos). [#51026](https://github.com/ClickHouse/ClickHouse/pull/51026) ([郭小龙](https://github.com/guoxiaolongzte)).
* Melhora a barra de progresso para as funções de tabela file/s3/hdfs/url, usando o tamanho dos fragmentos dos dados de origem e a contagem incremental do tamanho total em cada thread. Corrige a barra de progresso para as funções \*Cluster. Isso encerra [#47250](https://github.com/ClickHouse/ClickHouse/issues/47250). [#51088](https://github.com/ClickHouse/ClickHouse/pull/51088) ([Kruglov Pavel](https://github.com/Avogar)).
* Adicionado total\_bytes\_to\_read ao pacote Progress no protocolo TCP para melhorar a barra de progresso. [#51158](https://github.com/ClickHouse/ClickHouse/pull/51158) ([Kruglov Pavel](https://github.com/Avogar)).
* Verificação aprimorada de partes de dados em discos com cache do sistema de arquivos. [#51164](https://github.com/ClickHouse/ClickHouse/pull/51164) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige o valor de current\_elements\_num, que às vezes fica incorreto, no cache de FS. [#51242](https://github.com/ClickHouse/ClickHouse/pull/51242) ([Kseniia Sumarokova](https://github.com/kssenii)).

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

* Adiciona um `keeper-client` embutido ao binário standalone do Keeper. [#50964](https://github.com/ClickHouse/ClickHouse/pull/50964) ([pufit](https://github.com/pufit)).
* A versão real do LZ4 agora é usada. [#50621](https://github.com/ClickHouse/ClickHouse/pull/50621) ([Nikita Taranov](https://github.com/nickitat)).
* O servidor ClickHouse passará a imprimir a lista de configurações alteradas em erros fatais. Isso corrige [#51137](https://github.com/ClickHouse/ClickHouse/issues/51137). [#51138](https://github.com/ClickHouse/ClickHouse/pull/51138) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permite compilar o ClickHouse com clang-17. [#51300](https://github.com/ClickHouse/ClickHouse/pull/51300) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A verificação do [SQLancer](https://github.com/sqlancer/sqlancer) agora é considerada estável, pois os bugs que ela acionava foram corrigidos. Agora, falhas na verificação do SQLancer serão reportadas como status de verificação com falha. [#51340](https://github.com/ClickHouse/ClickHouse/pull/51340) ([Ilya Yatsishin](https://github.com/qoega)).
* Divide o `RUN` enorme no Dockerfile em condicionais menores. Instala as ferramentas necessárias sob demanda na mesma camada `RUN` e as remove em seguida. Atualiza o sistema operacional apenas uma vez no início. Usa uma forma moderna de verificar o repositório assinado. Rebaixa o repositório base para ubuntu:20.04 para corrigir problemas em versões mais antigas do Docker. Atualiza a versão do golang para corrigir vulnerabilidades no golang. [#51504](https://github.com/ClickHouse/ClickHouse/pull/51504) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).

<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 um lançamento estável oficial)
</div>

* Informar corretamente o status de carregamento de dicionários executáveis [#48775](https://github.com/ClickHouse/ClickHouse/pull/48775) ([Anton Kozlov](https://github.com/tonickkozlov)).
* Mutação correta de índices de omissão e projeções [#50104](https://github.com/ClickHouse/ClickHouse/pull/50104) ([Amos Bird](https://github.com/amosbird)).
* Limpeza de partes sendo movidas [#50489](https://github.com/ClickHouse/ClickHouse/pull/50489) ([vdimir](https://github.com/vdimir)).
* Correção da retrocompatibilidade do hash de tipos IP em funções de agregação [#50551](https://github.com/ClickHouse/ClickHouse/pull/50551) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrigida a contagem incorreta de linhas retornada por tabelas da família Log após TRUNCATE [#50585](https://github.com/ClickHouse/ClickHouse/pull/50585) ([flynn](https://github.com/ucasfl)).
* Corrige um erro na mesclagem paralela do `uniqExact` [#50590](https://github.com/ClickHouse/ClickHouse/pull/50590) ([Nikita Taranov](https://github.com/nickitat)).
* Revertidas alterações recentes no grace hash join [#50699](https://github.com/ClickHouse/ClickHouse/pull/50699) ([vdimir](https://github.com/vdimir)).
* Cache de consultas: tentativa de corrigir cast incorreto de `ColumnConst` para `ColumnVector<char8_t>` [#50704](https://github.com/ClickHouse/ClickHouse/pull/50704) ([Robert Schulze](https://github.com/rschu1ze)).
* Evite armazenar no Keeper logs que contenham uma operação desconhecida [#50751](https://github.com/ClickHouse/ClickHouse/pull/50751) ([Antonio Andelic](https://github.com/antonio2368)).
* Suporte do SummingMergeTree a DateTime64 [#50797](https://github.com/ClickHouse/ClickHouse/pull/50797) ([Jordi Villar](https://github.com/jrdi)).
* Adicionada configuração de compatibilidade para timezones não constantes [#50834](https://github.com/ClickHouse/ClickHouse/pull/50834) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige o cálculo do hash dos parâmetros LDAP nas entradas de cache [#50865](https://github.com/ClickHouse/ClickHouse/pull/50865) ([Julian Maicher](https://github.com/jmaicher)).
* Fallback para parsing de inteiro grande a partir de String, em vez de exceção, no formato Parquet [#50873](https://github.com/ClickHouse/ClickHouse/pull/50873) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige a verificação excessivamente frequente do arquivo de bloqueio ao gravar um backup [#50889](https://github.com/ClickHouse/ClickHouse/pull/50889) ([Vitaly Baranov](https://github.com/vitlibar)).
* Não aplique projeção se a leitura em ordem estiver ativada. [#50923](https://github.com/ClickHouse/ClickHouse/pull/50923) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigida a condição de corrida no iterador do Azure Blob Storage [#50936](https://github.com/ClickHouse/ClickHouse/pull/50936) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Corrige a propagação errônea de `sort_description` em `CreatingSets` [#50955](https://github.com/ClickHouse/ClickHouse/pull/50955) ([Nikita Taranov](https://github.com/nickitat)).
* Corrigida a análise de metadados opcionais do Iceberg v2 [#50974](https://github.com/ClickHouse/ClickHouse/pull/50974) ([Kseniia Sumarokova](https://github.com/kssenii)).
* MaterializedMySQL: Manter parênteses para sobrescritas de tabela vazias [#50977](https://github.com/ClickHouse/ClickHouse/pull/50977) ([Val Doroshchuk](https://github.com/valbok)).
* Corrige travamento em BackupCoordinationStageSync::setError() [#51012](https://github.com/ClickHouse/ClickHouse/pull/51012) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige uma falha sutil no copy-on-write do dicionário ColumnLowCardinality [#51064](https://github.com/ClickHouse/ClickHouse/pull/51064) ([Michael Kolupaev](https://github.com/al13n321)).
* Gerar IVs seguros [#51086](https://github.com/ClickHouse/ClickHouse/pull/51086) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Corrige o cache de consultas ineficaz em SELECTs com subconsultas [#51132](https://github.com/ClickHouse/ClickHouse/pull/51132) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrigido o índice Set em comparações constantes com Nullable. [#51205](https://github.com/ClickHouse/ClickHouse/pull/51205) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige um travamento nas funções s3 e s3Cluster [#51209](https://github.com/ClickHouse/ClickHouse/pull/51209) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige uma falha relacionada a expressões compiladas [#51231](https://github.com/ClickHouse/ClickHouse/pull/51231) ([LiuNeng](https://github.com/liuneng1994)).
* Correção de uso após liberação de memória em StorageURL ao alternar URLs [#51260](https://github.com/ClickHouse/ClickHouse/pull/51260) ([Michael Kolupaev](https://github.com/al13n321)).
* Atualização da verificação de view parametrizada [#51272](https://github.com/ClickHouse/ClickHouse/pull/51272) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Corrige a gravação múltipla do mesmo arquivo no backup [#51299](https://github.com/ClickHouse/ClickHouse/pull/51299) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrigida falha do fuzzer no ActionsDAG [#51301](https://github.com/ClickHouse/ClickHouse/pull/51301) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Removido código desnecessário da função `transform` [#51350](https://github.com/ClickHouse/ClickHouse/pull/51350) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

### <a id="235" /> Lançamento do ClickHouse 23.5, 2023-06-08. [Apresentação](https://presentations.clickhouse.com/2023-release-23.5/), [Vídeo](https://www.youtube.com/watch?v=o8Gj1ClU71M)

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

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

* Compactar marcas e a chave primária por padrão. Isso reduz significativamente o tempo de consulta em cache frio. Notas de atualização: o suporte a marcas compactadas e chave primária compactada foi adicionado na versão 22.9. Se você ativou marcas compactadas ou a chave primária compactada, ou instalou a versão 23.5 ou mais recente, que ativa marcas compactadas ou a chave primária compactada por padrão, não será possível fazer downgrade para a versão 22.8 ou anterior. Você também pode desativar explicitamente as marcas compactadas ou as chaves primárias compactadas especificando as configurações `compress_marks` e `compress_primary_key` na seção `<merge_tree>` do arquivo de configuração do servidor. **Notas de atualização:** Se você estiver atualizando de versões anteriores à 22.9, deverá atualizar todas as réplicas de uma vez, ou desativar a compactação antes da atualização, ou atualizar por meio de uma versão intermediária em que as marcas compactadas são compatíveis, mas não ativadas por padrão, como a 23.3. [#42587](https://github.com/ClickHouse/ClickHouse/pull/42587) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Fazer com que o armazenamento de objetos local funcione de forma consistente com o armazenamento de objetos S3, corrigir o problema com append (fecha [#48465](https://github.com/ClickHouse/ClickHouse/issues/48465)) e torná-lo configurável como armazenamento independente. A alteração não é compatível com versões anteriores porque o cache sobre o armazenamento de objetos local não é compatível com versões anteriores. [#48791](https://github.com/ClickHouse/ClickHouse/pull/48791) ([Kseniia Sumarokova](https://github.com/kssenii)).
* O recurso experimental "in-memory data parts" foi removido. O formato de dados ainda é compatível, mas as configurações são no-op, e partes compact ou wide serão usadas no lugar. Isso fecha [#45409](https://github.com/ClickHouse/ClickHouse/issues/45409). [#49429](https://github.com/ClickHouse/ClickHouse/pull/49429) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Os valores padrão das configurações `parallelize_output_from_storages` e `input_format_parquet_preserve_order` foram alterados. Isso permite que o ClickHouse reordene linhas ao ler arquivos (por exemplo, CSV ou Parquet), melhorando bastante o desempenho em muitos casos. Para restaurar o comportamento antigo de preservação da ordem, use `parallelize_output_from_storages = 0`, `input_format_parquet_preserve_order = 1`. [#49479](https://github.com/ClickHouse/ClickHouse/pull/49479) ([Michael Kolupaev](https://github.com/al13n321)).
* Tornar as projeções prontas para produção. Adiciona a configuração `optimize_use_projections` para controlar se as projeções serão selecionadas para consultas SELECT. A configuração `allow_experimental_projection_optimization` está obsoleta e não faz nada. [#49719](https://github.com/ClickHouse/ClickHouse/pull/49719) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Marcar `joinGet` como não determinístico (assim como `dictGet`). Isso permite usá-los em mutações sem necessidade de uma configuração extra. [#49843](https://github.com/ClickHouse/ClickHouse/pull/49843) ([Azat Khuzhin](https://github.com/azat)).
* Reverter a alteração "`groupArray` returns cannot be nullable" (devido à quebra de compatibilidade binária de `groupArray`/`groupArrayLast`/`groupArraySample` sobre tipos `Nullable`, o que provavelmente levará a `TOO_LARGE_ARRAY_SIZE` ou `CANNOT_READ_ALL_DATA`). [#49971](https://github.com/ClickHouse/ClickHouse/pull/49971) ([Azat Khuzhin](https://github.com/azat)).
* A configuração `enable_memory_bound_merging_of_aggregation_results` está ativada por padrão. Se você estiver atualizando de uma versão anterior à 22.12, recomendamos definir esse sinalizador como `false` até a atualização ser concluída. [#50319](https://github.com/ClickHouse/ClickHouse/pull/50319) ([Nikita Taranov](https://github.com/nickitat)).

<div id="new-feature">
  #### Nova funcionalidade
</div>

* Adicionados o mecanismo de armazenamento AzureBlobStorage e a função de tabela azureBlobStorage. O conjunto de funcionalidades suportadas é muito semelhante ao da função de tabela/do mecanismo de armazenamento S3 \[#50604] ([https://github.com/ClickHouse/ClickHouse/pull/50604](https://github.com/ClickHouse/ClickHouse/pull/50604)) ([alesapin](https://github.com/alesapin)) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni).
* Adicionado o cliente CLI nativo do ClickHouse Keeper, disponível como `clickhouse keeper-client` [#47414](https://github.com/ClickHouse/ClickHouse/pull/47414) ([pufit](https://github.com/pufit)).
* Adicionada a função de tabela `urlCluster`. Refatoradas todas as funções de tabela \*Cluster para reduzir a duplicação de código. A inferência de esquema agora funciona para todas as assinaturas possíveis das funções \*Cluster e para coleções nomeadas. Fecha [#38499](https://github.com/ClickHouse/ClickHouse/issues/38499). [#45427](https://github.com/ClickHouse/ClickHouse/pull/45427) ([attack204](https://github.com/attack204)), Pavel Kruglov.
* O cache de consultas agora pode ser usado em cargas de trabalho de produção. [#47977](https://github.com/ClickHouse/ClickHouse/pull/47977) ([Robert Schulze](https://github.com/rschu1ze)). O cache de consultas agora pode oferecer suporte a consultas com `totals` e o modificador `extremes`. [#48853](https://github.com/ClickHouse/ClickHouse/pull/48853) ([Robert Schulze](https://github.com/rschu1ze)). Tornar a configuração `allow_experimental_query_cache` obsoleta para manter a compatibilidade com versões anteriores. Ela foi removida em [https://github.com/ClickHouse/ClickHouse/pull/47977](https://github.com/ClickHouse/ClickHouse/pull/47977). [#49934](https://github.com/ClickHouse/ClickHouse/pull/49934) ([Timur Solodovnikov](https://github.com/tsolodov)).
* Os tipos de dados geográficos (`Point`, `Ring`, `Polygon` e `MultiPolygon`) estão prontos para produção. [#50022](https://github.com/ClickHouse/ClickHouse/pull/50022) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona inferência de esquema aos motores de tabela do PostgreSQL, MySQL, MeiliSearch e SQLite. Fecha [#49972](https://github.com/ClickHouse/ClickHouse/issues/49972). [#50000](https://github.com/ClickHouse/ClickHouse/pull/50000) ([Nikolay Degterinsky](https://github.com/evillique)).
* O tipo de senha em consultas como `CREATE USER u IDENTIFIED BY 'p'` será definido automaticamente de acordo com a configuração `default_password_type` no arquivo `config.xml` do servidor. Fecha [#42915](https://github.com/ClickHouse/ClickHouse/issues/42915). [#44674](https://github.com/ClickHouse/ClickHouse/pull/44674) ([Nikolay Degterinsky](https://github.com/evillique)).
* Adiciona o tipo de autenticação de senha bcrypt. Fecha [#34599](https://github.com/ClickHouse/ClickHouse/issues/34599). [#44905](https://github.com/ClickHouse/ClickHouse/pull/44905) ([Nikolay Degterinsky](https://github.com/evillique)).
* Adiciona a nova palavra-chave `INTO OUTFILE 'file.txt' APPEND`. [#48880](https://github.com/ClickHouse/ClickHouse/pull/48880) ([alekar](https://github.com/alekar)).
* Adicionada a tabela `system.zookeeper_connection`, que exibe informações sobre as conexões do Keeper. [#45245](https://github.com/ClickHouse/ClickHouse/pull/45245) ([mateng915](https://github.com/mateng0915)).
* Adicionada a nova função `generateRandomStructure`, que gera uma estrutura de tabela aleatória. Ela pode ser usada em combinação com a table function `generateRandom`. [#47409](https://github.com/ClickHouse/ClickHouse/pull/47409) ([Kruglov Pavel](https://github.com/Avogar)).
* Permite o uso de `CASE` sem uma cláusula `ELSE` e estende `transform` para lidar com mais tipos. Também corrige alguns problemas que faziam `transform()` retornar resultados incorretos quando tipos decimais eram misturados com outros tipos numéricos. [#48300](https://github.com/ClickHouse/ClickHouse/pull/48300) ([Salvatore Mesoraca](https://github.com/aiven-sal)). Fecha #2655. Fecha #9596. Fecha #38666.
* Adicionada [criptografia no lado do servidor com chaves KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) para tabelas S3 e a configuração `header` para discos S3. Fecha [#48723](https://github.com/ClickHouse/ClickHouse/issues/48723). [#48724](https://github.com/ClickHouse/ClickHouse/pull/48724) ([Johann Gan](https://github.com/johanngan)).
* Adiciona o MemoryTracker para as tarefas em segundo plano (merges e mutações). Introduz as configurações `merges_mutations_memory_usage_soft_limit` e `merges_mutations_memory_usage_to_ram_ratio`, que representam o limite suave de memória para merges e mutações. Se esse limite for atingido, o ClickHouse não agendará novas tarefas de merge ou mutação. Também introduz a métrica `MergesMutationsMemoryTracking` para permitir observar o uso atual de memória das tarefas em segundo plano. Reenvio de [#46089](https://github.com/ClickHouse/ClickHouse/issues/46089). Fecha [#48774](https://github.com/ClickHouse/ClickHouse/issues/48774). [#48787](https://github.com/ClickHouse/ClickHouse/pull/48787) ([Dmitry Novik](https://github.com/novikd)).
* A função `dotProduct` agora funciona com Array. [#49050](https://github.com/ClickHouse/ClickHouse/pull/49050) ([FFFFFFFHHHHHHH](https://github.com/FFFFFFFHHHHHHH)).
* Adiciona suporte à instrução `SHOW INDEX` para melhorar a compatibilidade com o MySQL. [#49158](https://github.com/ClickHouse/ClickHouse/pull/49158) ([Robert Schulze](https://github.com/rschu1ze)).
* Adicionado suporte às colunas virtuais `_file` e `_path` na função de tabela `url`. - Melhorada a mensagem de erro da função de tabela `url`. - resolve [#49231](https://github.com/ClickHouse/ClickHouse/issues/49231) - resolve [#49232](https://github.com/ClickHouse/ClickHouse/issues/49232). [#49356](https://github.com/ClickHouse/ClickHouse/pull/49356) ([Ziyi Tan](https://github.com/Ziy1-Tan)).
* Adicionado o campo `grants` ao arquivo users.xml, permitindo especificar permissões para usuários. [#49381](https://github.com/ClickHouse/ClickHouse/pull/49381) ([pufit](https://github.com/pufit)).
* Suporte a FULL/RIGHT JOIN com o algoritmo grace hash join. [#49483](https://github.com/ClickHouse/ClickHouse/pull/49483) ([lgbo](https://github.com/lgbo-ustc)).
* O modificador `WITH FILL` agrupa o preenchimento com base no prefixo de ordenação. É controlado pela configuração `use_with_fill_by_sorting_prefix` (habilitada por padrão). Relacionado a [#33203](https://github.com/ClickHouse/ClickHouse/issues/33203)#issuecomment-1418736794. [#49503](https://github.com/ClickHouse/ClickHouse/pull/49503) ([Igor Nikonov](https://github.com/devcrafter)).
* Clickhouse-client agora aceita consultas após "--multiquery" quando "--query" (ou "-q") não é informado. exemplo: clickhouse-client --multiquery "select 1; select 2;". [#49870](https://github.com/ClickHouse/ClickHouse/pull/49870) ([Alexey Gerasimchuk](https://github.com/Demilivor)).
* Adiciona um `handshake_timeout` separado para receber o pacote Hello da réplica. Fecha [#48854](https://github.com/ClickHouse/ClickHouse/issues/48854). [#49948](https://github.com/ClickHouse/ClickHouse/pull/49948) ([Kruglov Pavel](https://github.com/Avogar)).
* Adicionada a função "space", que repete um espaço o número de vezes especificado. [#50103](https://github.com/ClickHouse/ClickHouse/pull/50103) ([Robert Schulze](https://github.com/rschu1ze)).
* Foi adicionada a opção --input\_format\_csv\_trim\_whitespaces. [#50215](https://github.com/ClickHouse/ClickHouse/pull/50215) ([Alexey Gerasimchuk](https://github.com/Demilivor)).
* Permite que a função `dictGetAll` para dicionários do tipo regexp tree retorne valores de múltiplas correspondências como arrays. Fecha [#50254](https://github.com/ClickHouse/ClickHouse/issues/50254). [#50255](https://github.com/ClickHouse/ClickHouse/pull/50255) ([Johann Gan](https://github.com/johanngan)).
* Adicionada a função `toLastDayOfWeek` para arredondar para cima uma data ou uma data com hora até o sábado ou domingo mais próximo. [#50315](https://github.com/ClickHouse/ClickHouse/pull/50315) ([Victor Krasnov](https://github.com/sirvickr)).
* Capacidade de ignorar um skip index ao especificar `ignore_data_skipping_indices`. [#50329](https://github.com/ClickHouse/ClickHouse/pull/50329) ([Boris Kuschel](https://github.com/bkuschel)).
* Adiciona a tabela `system.user_processes` e a consulta `SHOW USER PROCESSES` para exibir informações de memória e ProfileEvents no nível do usuário. [#50492](https://github.com/ClickHouse/ClickHouse/pull/50492) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Adicionadas as configurações de servidor e de format `display_secrets_in_show_and_select` para exibir segredos de tabelas, bancos de dados, table functions e dicionários. Adicionado o privilégio `displaySecretsInShowAndSelect`, que controla quais usuários podem visualizar segredos. [#46528](https://github.com/ClickHouse/ClickHouse/pull/46528) ([Mike Kot](https://github.com/myrrc)).
* Permite configurar uma ROW POLICY para todas as tabelas de um banco de dados. [#47640](https://github.com/ClickHouse/ClickHouse/pull/47640) ([Ilya Golshtein](https://github.com/ilejn)).

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

* Comprime as marcas e a chave primária por padrão. Isso reduz significativamente o tempo de consultas a frio. Notas de atualização: o suporte a marcas e chave primária comprimidas foi adicionado na versão 22.9. Se você ativou a compressão de marcas ou da chave primária, ou instalou a versão 23.5 ou posterior, na qual a compressão de marcas e da chave primária vem ativada por padrão, não será possível fazer downgrade para a versão 22.8 ou anterior. Você também pode desativar explicitamente a compressão de marcas ou de chaves primárias especificando as configurações `compress_marks` e `compress_primary_key` na seção `<merge_tree>` do arquivo de configuração do servidor. [#42587](https://github.com/ClickHouse/ClickHouse/pull/42587) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Nova configuração s3\_max\_inflight\_parts\_for\_one\_file define o limite de partes carregadas simultaneamente em uma solicitação de upload multipart para um único arquivo. [#49961](https://github.com/ClickHouse/ClickHouse/pull/49961) ([Sema Checherinda](https://github.com/CheSema)).
* Ao ler vários arquivos, reduza o número de threads de parsing em paralelo para cada arquivo. Resolve [#42192](https://github.com/ClickHouse/ClickHouse/issues/42192). [#46661](https://github.com/ClickHouse/ClickHouse/pull/46661) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Use a projeção agregada apenas se ela ler menos grânulos do que na leitura normal. Isso deve ajudar caso a consulta atinja a PK da tabela, mas não a projeção. Corrige [#49150](https://github.com/ClickHouse/ClickHouse/issues/49150). [#49417](https://github.com/ClickHouse/ClickHouse/pull/49417) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Não armazene blocos no `ANY` hash join se nada for inserido. [#48633](https://github.com/ClickHouse/ClickHouse/pull/48633) ([vdimir](https://github.com/vdimir)).
* Corrige o combinador de agregação `-If` quando compilado com JIT e habilita a compilação JIT de funções de agregação. Fecha [#48120](https://github.com/ClickHouse/ClickHouse/issues/48120). [#49083](https://github.com/ClickHouse/ClickHouse/pull/49083) ([Igor Nikonov](https://github.com/devcrafter)).
* Para ler tabelas remotas, usamos tarefas menores (em vez de ler a parte inteira) para que o roubo de tarefas funcione \* o tamanho da tarefa é determinado pelo tamanho das colunas a serem lidas \* sempre use buffers de 1 MB para leitura do S3 \* os limites dos segmentos de cache são alinhados a 1 MB para que tenham um tamanho adequado mesmo com tarefas pequenas. isso também deve evitar a fragmentação. [#49287](https://github.com/ClickHouse/ClickHouse/pull/49287) ([Nikita Taranov](https://github.com/nickitat)).
* Configurações introduzidas: - `merge_max_block_size_bytes` para limitar a quantidade de memória usada em operações em segundo plano. - `vertical_merge_algorithm_min_bytes_to_activate` para acrescentar outra condição para ativar mesclagens verticais. [#49313](https://github.com/ClickHouse/ClickHouse/pull/49313) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* O tamanho padrão do buffer de leitura para ler do filesystem local foi alterado para um valor um pouco melhor. Além disso, duas novas configurações foram introduzidas: `max_read_buffer_size_local_fs` e `max_read_buffer_size_remote_fs`. [#49321](https://github.com/ClickHouse/ClickHouse/pull/49321) ([Nikita Taranov](https://github.com/nickitat)).
* Melhorado o uso de memória e a velocidade dos dicionários `SPARSE_HASHED`/`HASHED` (por exemplo, `SPARSE_HASHED` agora consome 2.6x menos memória e é \~2x mais rápido). [#49380](https://github.com/ClickHouse/ClickHouse/pull/49380) ([Azat Khuzhin](https://github.com/azat)).
* Otimize as tabelas `system.query_log` e `system.query_thread_log` aplicando `LowCardinality` quando for apropriado. As consultas nessas tabelas serão mais rápidas. [#49530](https://github.com/ClickHouse/ClickHouse/pull/49530) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Melhor desempenho na leitura de arquivos `Parquet` locais (por meio de leitura paralela). [#49539](https://github.com/ClickHouse/ClickHouse/pull/49539) ([Michael Kolupaev](https://github.com/al13n321)).
* Melhora o desempenho de `RIGHT/FULL JOIN` em até 2 vezes em determinados cenários, especialmente ao combinar uma tabela pequena à esquerda com uma tabela grande à direita. [#49585](https://github.com/ClickHouse/ClickHouse/pull/49585) ([lgbo](https://github.com/lgbo-ustc)).
* Melhoria de 11% no desempenho do BLAKE3 ao habilitar LTO para Rust. [#49600](https://github.com/ClickHouse/ClickHouse/pull/49600) ([Azat Khuzhin](https://github.com/azat)). Agora ele está no mesmo nível do C++.
* Otimize a estrutura de `system.opentelemetry_span_log`. Use `LowCardinality` onde for apropriado. Embora essa tabela em geral seja bastante mal projetada (ela usa o tipo de dados Map até mesmo para atributos comuns), ela ficará um pouco melhor. [#49647](https://github.com/ClickHouse/ClickHouse/pull/49647) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Tentar reservar previamente o tamanho da tabela hash no join `grace_hash`. [#49816](https://github.com/ClickHouse/ClickHouse/pull/49816) ([lgbo](https://github.com/lgbo-ustc)).
* Mesclagem paralela dos estados de `uniqExactIf`. Fecha [#49885](https://github.com/ClickHouse/ClickHouse/issues/49885). [#50285](https://github.com/ClickHouse/ClickHouse/pull/50285) ([flynn](https://github.com/ucasfl)).
* Melhoria no Keeper: adição da solicitação `CheckNotExists` ao Keeper, o que melhora o desempenho de tabelas Replicated. [#48897](https://github.com/ClickHouse/ClickHouse/pull/48897) ([Antonio Andelic](https://github.com/antonio2368)).
* Melhorias de desempenho do Keeper: evita a serialização da mesma requisição duas vezes durante o processamento. Armazena em cache os resultados da desserialização de requisições grandes. Controlado pela nova configuração de coordenação `min_request_size_for_cache`. [#49004](https://github.com/ClickHouse/ClickHouse/pull/49004) ([Antonio Andelic](https://github.com/antonio2368)).
* Redução no número de solicitações `List` ao ZooKeeper ao selecionar partes para merge quando muitas partições não têm nada para mesclar. [#49637](https://github.com/ClickHouse/ClickHouse/pull/49637) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Reformulação do bloqueio no cache do FS [#44985](https://github.com/ClickHouse/ClickHouse/pull/44985) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Desabilita réplicas paralelas puras quando a otimização trivial de contagem é possível. [#50594](https://github.com/ClickHouse/ClickHouse/pull/50594) ([Raúl Marín](https://github.com/Algunenano)).
* Não envie requisição HEAD para todas as chaves na inferência de esquema do Iceberg, apenas para as chaves usadas para ler dados. [#50203](https://github.com/ClickHouse/ClickHouse/pull/50203) ([Kruglov Pavel](https://github.com/Avogar)).
* A configuração `enable_memory_bound_merging_of_aggregation_results` vem habilitada por padrão. [#50319](https://github.com/ClickHouse/ClickHouse/pull/50319) ([Nikita Taranov](https://github.com/nickitat)).

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

* O codec `DEFLATE_QPL` reduz a versão mínima de SIMD para SSE 4.2. [alteração na documentação do qpl](https://github.com/intel/qpl/commit/3f8f5cea27739f5261e8fd577dc233ffe88bf679) - o Intel® QPL usa um despachante de kernels em tempo de execução e uma verificação de CPUID para escolher a melhor implementação disponível (sse/avx2/avx512) - o arquivo CMake do build do qpl no ClickHouse foi reestruturado para se alinhar à versão upstream mais recente do qpl. [#49811](https://github.com/ClickHouse/ClickHouse/pull/49811) ([jasperzhu](https://github.com/jinjunzh)).
* Adicionado suporte inicial para fazer JOINs com réplicas paralelas puras. [#49544](https://github.com/ClickHouse/ClickHouse/pull/49544) ([Raúl Marín](https://github.com/Algunenano)).
* Mais paralelismo na remoção de partes `Outdated` com "replicação zero-copy". [#49630](https://github.com/ClickHouse/ClickHouse/pull/49630) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Réplicas paralelas: 1) Corrigido um erro `NOT_FOUND_COLUMN_IN_BLOCK` ao usar réplicas paralelas com armazenamento não replicado, com a configuração `parallel_replicas_for_non_replicated_merge_tree` desabilitada 2) Agora `allow_experimental_parallel_reading_from_replicas` tem 3 valores possíveis - 0, 1 e 2. 0 - desabilitado, 1 - habilitado, com desativação silenciosa em caso de falha (no caso de FINAL ou JOIN), 2 - habilitado, lança uma exceção em caso de falha. 3) Se o modificador FINAL for usado em uma consulta SELECT e as réplicas paralelas estiverem habilitadas, o ClickHouse tentará desabilitá-las se `allow_experimental_parallel_reading_from_replicas` estiver definido como 1; caso contrário, lançará uma exceção. [#50195](https://github.com/ClickHouse/ClickHouse/pull/50195) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Quando as réplicas paralelas estiverem habilitadas, elas sempre ignorarão servidores indisponíveis (o comportamento é controlado pela configuração `skip_unavailable_shards`, habilitada por padrão e que só pode ser desabilitada). Isso fecha: [#48565](https://github.com/ClickHouse/ClickHouse/issues/48565). [#50293](https://github.com/ClickHouse/ClickHouse/pull/50293) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).

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

* O comando `BACKUP` não descriptografa dados de discos criptografados ao fazer um backup. Em vez disso, os dados serão armazenados no backup em formato criptografado. Esses backups só podem ser restaurados em um disco criptografado com a mesma lista de chaves de criptografia (ou uma lista ampliada). [#48896](https://github.com/ClickHouse/ClickHouse/pull/48896) ([Vitaly Baranov](https://github.com/vitlibar)).
* Adicionada a possibilidade de usar tabelas temporárias na cláusula `FROM` de ATTACH PARTITION FROM e REPLACE PARTITION FROM. [#49436](https://github.com/ClickHouse/ClickHouse/pull/49436) ([Roman Vasin](https://github.com/rvasin)).
* Adicionada a configuração `async_insert` para tabelas `MergeTree`. Ela tem o mesmo significado da configuração `async_insert` no nível da consulta e habilita inserções assíncronas para uma tabela específica. Observação: ela não tem efeito em consultas de insert do `clickhouse-client`; nesse caso, use a configuração no nível da consulta. [#49122](https://github.com/ClickHouse/ClickHouse/pull/49122) ([Anton Popov](https://github.com/CurtizJ)).
* Adicionado suporte a sufixos de tamanho nos parâmetros da instrução de criação de QUOTA. [#49087](https://github.com/ClickHouse/ClickHouse/pull/49087) ([Eridanus](https://github.com/Eridanus117)).
* Estende `first_value` e `last_value` para aceitarem NULL. [#46467](https://github.com/ClickHouse/ClickHouse/pull/46467) ([lgbo](https://github.com/lgbo-ustc)).
* Adiciona os aliases `str_to_map` e `mapFromString` para `extractKeyValuePairs`. Fecha [https://github.com/clickhouse/clickhouse/issues/47185](https://github.com/clickhouse/clickhouse/issues/47185). [#49466](https://github.com/ClickHouse/ClickHouse/pull/49466) ([flynn](https://github.com/ucasfl)).
* Adicionado suporte à versão 2 do CGroup para métricas assíncronas sobre uso e disponibilidade de memória. Isso fecha [#37983](https://github.com/ClickHouse/ClickHouse/issues/37983). [#45999](https://github.com/ClickHouse/ClickHouse/pull/45999) ([sichenzhao](https://github.com/sichenzhao)).
* As funções de tabela de cluster devem sempre ignorar shards indisponíveis. Fecha [#46314](https://github.com/ClickHouse/ClickHouse/issues/46314). [#46765](https://github.com/ClickHouse/ClickHouse/pull/46765) ([zk\_kiger](https://github.com/zk-kiger)).
* Permitir que arquivos CSV contenham colunas vazias no cabeçalho. [#47496](https://github.com/ClickHouse/ClickHouse/pull/47496) ([你不要过来啊](https://github.com/iiiuwioajdks)).
* Adicionada a função de tabela `gcs`, compatível com S3, do Google Cloud Storage. Assim como as funções `oss` e `cosn`, ela é apenas um alias da função de tabela `s3` e não adiciona nenhum recurso novo. [#47815](https://github.com/ClickHouse/ClickHouse/pull/47815) ([Kuba Kaflik](https://github.com/jkaflik)).
* Adicionada a possibilidade de usar tamanho estrito de partes para S3 (compatibilidade com o armazenamento S3 CloudFlare R2). [#48492](https://github.com/ClickHouse/ClickHouse/pull/48492) ([Azat Khuzhin](https://github.com/azat)).
* Adicionadas novas colunas com informações sobre as réplicas do banco de dados `Replicated` em `system.clusters`: `database_shard_name`, `database_replica_name`, `is_active`. Adicionada uma cláusula opcional `FROM SHARD` à consulta `SYSTEM DROP DATABASE REPLICA`. [#48548](https://github.com/ClickHouse/ClickHouse/pull/48548) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Adicionada uma nova coluna `zookeeper_name` em system.replicas para indicar em qual cluster (auxiliar) do ZooKeeper os metadados da tabela replicada estão armazenados. [#48549](https://github.com/ClickHouse/ClickHouse/pull/48549) ([cangyin](https://github.com/cangyin)).
* O operador `IN` oferece suporte à comparação entre `Date` e `Date32`. Fecha [#48736](https://github.com/ClickHouse/ClickHouse/issues/48736). [#48806](https://github.com/ClickHouse/ClickHouse/pull/48806) ([flynn](https://github.com/ucasfl)).
* Suporte a códigos de apagamento no `HDFS`, autor: @M1eyu2018, @tomscut. [#48833](https://github.com/ClickHouse/ClickHouse/pull/48833) ([M1eyu](https://github.com/M1eyu2018)).
* Implementa SYSTEM DROP REPLICA a partir de clusters auxiliares do ZooKeeper, podendo encerrar [#48931](https://github.com/ClickHouse/ClickHouse/issues/48931). [#48932](https://github.com/ClickHouse/ClickHouse/pull/48932) ([wangxiaobo](https://github.com/wzb5212)).
* Adiciona o tipo de dado Array ao MongoDB. Fecha [#48598](https://github.com/ClickHouse/ClickHouse/issues/48598). [#48983](https://github.com/ClickHouse/ClickHouse/pull/48983) ([Nikolay Degterinsky](https://github.com/evillique)).
* Suporte para armazenar tipos de dados `Interval` em tabelas. [#49085](https://github.com/ClickHouse/ClickHouse/pull/49085) ([larryluogit](https://github.com/larryluogit)).
* Permite usar a função de janela `ntile` sem definir explicitamente o frame da janela: `ntile(3) OVER (ORDER BY a)`, fecha [#46763](https://github.com/ClickHouse/ClickHouse/issues/46763). [#49093](https://github.com/ClickHouse/ClickHouse/pull/49093) ([vdimir](https://github.com/vdimir)).
* Adicionadas configurações (`number_of_mutations_to_delay`, `number_of_mutations_to_throw`) para adiar ou gerar exceção em consultas `ALTER` que criam mutações (`ALTER UPDATE`, `ALTER DELETE`, `ALTER MODIFY COLUMN`, ...) caso a tabela já tenha muitas mutações não concluídas. [#49117](https://github.com/ClickHouse/ClickHouse/pull/49117) ([Anton Popov](https://github.com/CurtizJ)).
* Captura exceção de `create_directories` no cache do sistema de arquivos. [#49203](https://github.com/ClickHouse/ClickHouse/pull/49203) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Copia exemplos embutidos para um novo campo `example` em `system.functions`, para complementar o campo `description`. [#49222](https://github.com/ClickHouse/ClickHouse/pull/49222) ([Dan Roscigno](https://github.com/DanRoscigno)).
* Habilita opções de conexão para o Dicionário do MongoDB. Exemplo: `xml <source> <mongodb> <host>localhost</host> <port>27017</port> <user></user> <password></password> <db>test</db> <collection>dictionary_source</collection> <options>ssl=true</options> </mongodb> </source>` ### Entrada de documentação para alterações voltadas ao usuário. [#49225](https://github.com/ClickHouse/ClickHouse/pull/49225) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Adicionado o alias `asymptotic` para o método computacional `asymp` de `kolmogorovSmirnovTest`. Documentação aprimorada. [#49286](https://github.com/ClickHouse/ClickHouse/pull/49286) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* As funções de agregação groupBitAnd/Or/Xor agora funcionam com inteiros com sinal. Isso as torna consistentes com o comportamento das funções escalares bitAnd/Or/Xor. [#49292](https://github.com/ClickHouse/ClickHouse/pull/49292) ([exmy](https://github.com/exmy)).
* Documentação de funções dividida em campos mais granulares. [#49300](https://github.com/ClickHouse/ClickHouse/pull/49300) ([Robert Schulze](https://github.com/rschu1ze)).
* Passa a usar várias threads compartilhadas entre todas as tabelas em um servidor para carregar partes de dados desatualizadas. O tamanho do pool e da sua fila é controlado pelas configurações `max_outdated_parts_loading_thread_pool_size` e `outdated_part_loading_thread_pool_queue_size`. [#49317](https://github.com/ClickHouse/ClickHouse/pull/49317) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Não superestime o tamanho dos dados processados para colunas `LowCardinality` quando elas compartilham dicionários entre blocos. Isso fecha [#49322](https://github.com/ClickHouse/ClickHouse/issues/49322). Veja também [#48745](https://github.com/ClickHouse/ClickHouse/issues/48745). [#49323](https://github.com/ClickHouse/ClickHouse/pull/49323) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O gravador do Parquet agora usa um tamanho razoável de grupo de linhas quando chamado via `OUTFILE`. [#49325](https://github.com/ClickHouse/ClickHouse/pull/49325) ([Michael Kolupaev](https://github.com/al13n321)).
* Permite palavras-chave restritas como `ARRAY` como alias, desde que o alias esteja entre aspas. Fecha [#49324](https://github.com/ClickHouse/ClickHouse/issues/49324). [#49360](https://github.com/ClickHouse/ClickHouse/pull/49360) ([Nikolay Degterinsky](https://github.com/evillique)).
* Os jobs de carregamento e exclusão de partes de dados foram movidos para pools compartilhados em todo o servidor, em vez de pools por tabela. Os tamanhos dos pools são controlados pelas configurações `max_active_parts_loading_thread_pool_size`, `max_outdated_parts_loading_thread_pool_size` e `max_parts_cleaning_thread_pool_size` na configuração de nível superior. As configurações em nível de tabela `max_part_loading_threads` e `max_part_removal_threads` tornaram-se obsoletas. [#49474](https://github.com/ClickHouse/ClickHouse/pull/49474) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Permite `?password=pass` na URL da UI do Play. A senha é substituída no histórico do navegador. [#49505](https://github.com/ClickHouse/ClickHouse/pull/49505) ([Mike Kot](https://github.com/myrrc)).
* Permitir a leitura de objetos de tamanho zero em sistemas de arquivos remotos. (porque arquivos vazios não entram no backup, então podemos acabar com zero blobs no arquivo de metadados). Fecha [#49480](https://github.com/ClickHouse/ClickHouse/issues/49480). [#49519](https://github.com/ClickHouse/ClickHouse/pull/49519) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Anexe a thread MemoryTracker ao `total_memory_tracker` após o `ThreadGroup` ser desanexado. [#49527](https://github.com/ClickHouse/ClickHouse/pull/49527) ([Dmitry Novik](https://github.com/novikd)).
* Corrigidas views parametrizadas quando um parâmetro de consulta é usado várias vezes na mesma consulta. [#49556](https://github.com/ClickHouse/ClickHouse/pull/49556) ([Azat Khuzhin](https://github.com/azat)).
* Libera a memória alocada para o último snapshot de ProfileEvents enviado no contexto de uma consulta. Em continuidade a [#47564](https://github.com/ClickHouse/ClickHouse/issues/47564). [#49561](https://github.com/ClickHouse/ClickHouse/pull/49561) ([Dmitry Novik](https://github.com/novikd)).
* A função "makeDate" agora passa a oferecer uma sobrecarga compatível com MySQL (com argumentos de ano & dia do ano). [#49603](https://github.com/ClickHouse/ClickHouse/pull/49603) ([Robert Schulze](https://github.com/rschu1ze)).
* Adicionado suporte à função de tabela `dictionary` para `RegExpTreeDictionary`. [#49666](https://github.com/ClickHouse/ClickHouse/pull/49666) ([Han Fei](https://github.com/hanfei1991)).
* Adicionada política de escalonamento justo ponderado de E/S. Adicionado gerenciador dinâmico de recursos, que permite atualizar a hierarquia de escalonamento de E/S em tempo de execução sem reinicializar o servidor. [#49671](https://github.com/ClickHouse/ClickHouse/pull/49671) ([Sergei Trifonov](https://github.com/serxa)).
* Adiciona uma solicitação de compose após o `multipart upload` para o GCS. Isso permite usar a operação de cópia em objetos enviados com `multipart upload`. Recomenda-se definir `s3_strict_upload_part_size` com algum valor, porque a solicitação de compose pode falhar em objetos criados com partes de tamanhos diferentes. [#49693](https://github.com/ClickHouse/ClickHouse/pull/49693) ([Antonio Andelic](https://github.com/antonio2368)).
* Para a função `extractKeyValuePairs`: melhorar a lógica de parsing de "best-effort" para aceitar `key_value_delimiter` como parte válida do valor. Isso também simplifica a lógica condicional e pode até acelerar um pouco as coisas. [#49760](https://github.com/ClickHouse/ClickHouse/pull/49760) ([Arthur Passos](https://github.com/arthurpassos)).
* Adicionado o campo `initial_query_id` a system.processors\_profile\_log [#49777](https://github.com/ClickHouse/ClickHouse/pull/49777) ([helifu](https://github.com/helifu)).
* As tabelas de log do sistema agora podem ter chaves de classificação personalizadas. [#49778](https://github.com/ClickHouse/ClickHouse/pull/49778) ([helifu](https://github.com/helifu)).
* Um novo campo `partitions` em `system.query_log` é usado para indicar quais partições participam do cálculo. [#49779](https://github.com/ClickHouse/ClickHouse/pull/49779) ([helifu](https://github.com/helifu)).
* Adicionada a configuração `enable_the_endpoint_id_with_zookeeper_name_prefix` para `ReplicatedMergeTree` (desativada por padrão). Quando ativada, ela adiciona o nome do cluster do ZooKeeper ao endpoint de comunicação entre servidores da tabela. Isso evita erros de `Duplicate interserver IO endpoint` quando há tabelas replicadas com o mesmo caminho, mas com ZooKeepers auxiliares diferentes. [#49780](https://github.com/ClickHouse/ClickHouse/pull/49780) ([helifu](https://github.com/helifu)).
* Adiciona parâmetros de consulta ao `clickhouse-local`. Fecha [#46561](https://github.com/ClickHouse/ClickHouse/issues/46561). [#49785](https://github.com/ClickHouse/ClickHouse/pull/49785) ([Nikolay Degterinsky](https://github.com/evillique)).
* Permitir o carregamento de dicionários e funções a partir de YAML por padrão. Em versões anteriores, era necessário editar `dictionaries_config` ou `user_defined_executable_functions_config` no arquivo de configuração, pois esses parâmetros esperavam arquivos `*.xml`. [#49812](https://github.com/ClickHouse/ClickHouse/pull/49812) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O mecanismo de tabela Kafka agora permite usar colunas com alias. [#49824](https://github.com/ClickHouse/ClickHouse/pull/49824) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Adicionar uma configuração para limitar o número máximo de pares gerados por `extractKeyValuePairs`, como proteção para evitar o uso excessivo de memória. [#49836](https://github.com/ClickHouse/ClickHouse/pull/49836) ([Arthur Passos](https://github.com/arthurpassos)).
* Adicionado suporte a um caso (incomum) em que os argumentos do operador `IN` são tuplas de um único elemento. [#49844](https://github.com/ClickHouse/ClickHouse/pull/49844) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* A função `bitHammingDistance` é compatível com os tipos de dados `String` e `FixedString`. Fecha [#48827](https://github.com/ClickHouse/ClickHouse/issues/48827). [#49858](https://github.com/ClickHouse/ClickHouse/pull/49858) ([flynn](https://github.com/ucasfl)).
* Corrige erros ao redefinir o timeout no cliente no OS X. [#49863](https://github.com/ClickHouse/ClickHouse/pull/49863) ([alekar](https://github.com/alekar)).
* Adicionado suporte a inteiros grandes, como UInt128, Int128, UInt256 e Int256, na função `bitCount`. Isso permite calcular a distância de Hamming em grandes máscaras de bits para aplicações de IA. [#49867](https://github.com/ClickHouse/ClickHouse/pull/49867) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Impressões digitais para uso no lugar de identificadores de chave em discos criptografados. Isso simplifica a configuração dos discos criptografados. [#49882](https://github.com/ClickHouse/ClickHouse/pull/49882) ([Vitaly Baranov](https://github.com/vitlibar)).
* Adicionar o tipo de dado UUID ao PostgreSQL. Fecha [#49739](https://github.com/ClickHouse/ClickHouse/issues/49739). [#49894](https://github.com/ClickHouse/ClickHouse/pull/49894) ([Nikolay Degterinsky](https://github.com/evillique)).
* A função `toUnixTimestamp` agora aceita os argumentos `Date` e `Date32`. [#49989](https://github.com/ClickHouse/ClickHouse/pull/49989) ([Victor Krasnov](https://github.com/sirvickr)).
* Contabilize apenas a memória do servidor para dicionários. [#49995](https://github.com/ClickHouse/ClickHouse/pull/49995) ([Azat Khuzhin](https://github.com/azat)).
* O servidor passará a permitir o uso das configurações `SQL_*`, como `SQL_AUTO_IS_NULL`, sem efeito, para compatibilidade com o MySQL. Isso fecha [#49927](https://github.com/ClickHouse/ClickHouse/issues/49927). [#50013](https://github.com/ClickHouse/ClickHouse/pull/50013) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Preserva o initial\_query\_id em consultas ON CLUSTER, o que é útil para introspecção (em `distributed_ddl_entry_format_version=5`). [#50015](https://github.com/ClickHouse/ClickHouse/pull/50015) ([Azat Khuzhin](https://github.com/azat)).
* Preserve a incompatibilidade com versões anteriores para configurações renomeadas usando aliases (`allow_experimental_projection_optimization` para `optimize_use_projections`, `allow_experimental_lightweight_delete` para `enable_lightweight_delete`). [#50044](https://github.com/ClickHouse/ClickHouse/pull/50044) ([Azat Khuzhin](https://github.com/azat)).
* Suporte à passagem de FQDN por meio da configuração my\_hostname para registrar o nó do cluster no Keeper. Adicionada a configuração invisible para oferecer suporte a vários grupos de computação. Um grupo de computação, dentro de um cluster, é invisível para outros grupos de computação. [#50186](https://github.com/ClickHouse/ClickHouse/pull/50186) ([Yangkuan Liu](https://github.com/LiuYangkuan)).
* Correção da leitura de todos os dados do PostgreSQL, mesmo quando `LIMIT n` podia ser especificado. [#50187](https://github.com/ClickHouse/ClickHouse/pull/50187) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adicionar novos eventos de perfil para consultas com subconsultas (`QueriesWithSubqueries`/`SelectQueriesWithSubqueries`/`InsertQueriesWithSubqueries`). [#50204](https://github.com/ClickHouse/ClickHouse/pull/50204) ([Azat Khuzhin](https://github.com/azat)).
* Adição do campo roles no arquivo users.xml, permitindo especificar roles com grants por meio de um arquivo de configuração. [#50278](https://github.com/ClickHouse/ClickHouse/pull/50278) ([pufit](https://github.com/pufit)).
* Passa a relatar `CGroupCpuCfsPeriod` e `CGroupCpuCfsQuota` em AsynchronousMetrics. - Respeita os limites de memória do cgroup v2 durante a inicialização do servidor. [#50379](https://github.com/ClickHouse/ClickHouse/pull/50379) ([alekar](https://github.com/alekar)).
* Adiciona um manipulador de sinal para SIGQUIT, para que funcione da mesma forma que SIGINT. Fecha [#50298](https://github.com/ClickHouse/ClickHouse/issues/50298). [#50435](https://github.com/ClickHouse/ClickHouse/pull/50435) ([Nikolay Degterinsky](https://github.com/evillique)).
* Caso o parse de JSON falhe devido ao grande tamanho da saída do objeto, exiba a última posição para facilitar a depuração. [#50474](https://github.com/ClickHouse/ClickHouse/pull/50474) ([Valentin Alexeev](https://github.com/valentinalexeev)).
* Suporte para decimais sem tamanho fixo. Fecha [#49130](https://github.com/ClickHouse/ClickHouse/issues/49130). [#50586](https://github.com/ClickHouse/ClickHouse/pull/50586) ([Kruglov Pavel](https://github.com/Avogar)).

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

* Novo e aprimorado `keeper-bench`. Tudo pode ser personalizado a partir de um arquivo YAML/XML: - gerador de requisições - cada tipo de gerador de requisições pode ter um conjunto específico de campos - múltiplas requisições podem ser geradas simplesmente fazendo o mesmo na chave `multi` - para cada requisição ou sub-requisição em múltiplas requisições, é possível definir um campo `weight` para controlar a distribuição - definir árvores que precisam ser configuradas para uma execução de teste - os hosts podem ser definidos com todos os timeouts personalizáveis, e é possível controlar quantas sessões gerar para cada host - inteiros definidos com os campos `min_value` e `max_value` são geradores de números aleatórios. [#48547](https://github.com/ClickHouse/ClickHouse/pull/48547) ([Antonio Andelic](https://github.com/antonio2368)).
* Io\_uring não tem suporte no macOS; não o escolha ao executar testes localmente, para evitar falhas ocasionais. [#49250](https://github.com/ClickHouse/ClickHouse/pull/49250) ([Frank Chen](https://github.com/FrankChen021)).
* Suporte para injeção de falhas nomeadas em testes. [#49361](https://github.com/ClickHouse/ClickHouse/pull/49361) ([Han Fei](https://github.com/hanfei1991)).
* Permite executar o ClickHouse em sistemas operacionais nos quais a chamada de sistema `prctl` (controle de processos) não está disponível, como o AWS Lambda. [#49538](https://github.com/ClickHouse/ClickHouse/pull/49538) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido o problema de conflito de compilação entre contrib/isa-l e isa-l no qpl [49296](https://github.com/ClickHouse/ClickHouse/issues/49296). [#49584](https://github.com/ClickHouse/ClickHouse/pull/49584) ([jasperzhu](https://github.com/jinjunzh)).
* Os utilitários agora só são compilados quando solicitados explicitamente ("-DENABLE\_UTILS=1"), em vez de serem compilados por padrão; isso reduz o tempo de linkedição em compilações típicas de desenvolvimento. [#49620](https://github.com/ClickHouse/ClickHouse/pull/49620) ([Robert Schulze](https://github.com/rschu1ze)).
* Separar a descrição de build do idxd-config em um arquivo CMake separado para evitar sua remoção acidental no futuro. [#49651](https://github.com/ClickHouse/ClickHouse/pull/49651) ([jasperzhu](https://github.com/jinjunzh)).
* Adiciona uma verificação de CI com o analyzer habilitado na branch master. Continuação em [#49562](https://github.com/ClickHouse/ClickHouse/issues/49562). [#49668](https://github.com/ClickHouse/ClickHouse/pull/49668) ([Dmitry Novik](https://github.com/novikd)).
* Migração para LLVM/clang 16. [#49678](https://github.com/ClickHouse/ClickHouse/pull/49678) ([Azat Khuzhin](https://github.com/azat)).
* Permitir a compilação do ClickHouse com clang-17. [#49851](https://github.com/ClickHouse/ClickHouse/pull/49851) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#50410](https://github.com/ClickHouse/ClickHouse/pull/50410) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Agora, é mais fácil integrar o ClickHouse a outros projetos cmake. [#49991](https://github.com/ClickHouse/ClickHouse/pull/49991) ([Amos Bird](https://github.com/amosbird)). (O que é fortemente desaconselhado — Alexey Milovidov).
* Corrige logs adicionais estranhos do QEMU após [#47151](https://github.com/ClickHouse/ClickHouse/issues/47151), consulte [https://s3.amazonaws.com/clickhouse-test-reports/50078/a4743996ee4f3583884d07bcd6501df0cfdaa346/stateless\&#95;tests\&#95;\&#95;release\&#95;\&#95;databasereplicated\&#95;\&#95;\[3\&#95;4\].html](https://s3.amazonaws.com/clickhouse-test-reports/50078/a4743996ee4f3583884d07bcd6501df0cfdaa346/stateless\&#95;tests\&#95;\&#95;release\&#95;\&#95;databasereplicated\&#95;\&#95;\[3\&#95;4].html). [#50442](https://github.com/ClickHouse/ClickHouse/pull/50442) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* ClickHouse pode ser executado no Linux RISC-V 6.1.22. Isso fecha [#50456](https://github.com/ClickHouse/ClickHouse/issues/50456). [#50457](https://github.com/ClickHouse/ClickHouse/pull/50457) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Atualiza o protobuf interno para a v3.18 (corrige o falso positivo CVE-2022-1941). [#50400](https://github.com/ClickHouse/ClickHouse/pull/50400) ([Robert Schulze](https://github.com/rschu1ze)).
* Atualiza a libxml2 interna para v2.10.4 (corrige os falsos CVE-2023-28484 e CVE-2023-29469). [#50402](https://github.com/ClickHouse/ClickHouse/pull/50402) ([Robert Schulze](https://github.com/rschu1ze)).
* Atualizado o c-ares para v1.19.1 (CVE-2023-32067 falso, CVE-2023-31130 falso, CVE-2023-31147 falso). [#50403](https://github.com/ClickHouse/ClickHouse/pull/50403) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrigido o falso CVE-2022-2469 na libgsasl. [#50404](https://github.com/ClickHouse/ClickHouse/pull/50404) ([Robert Schulze](https://github.com/rschu1ze)).

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

* ActionsDAG: corrige otimização incorreta [#47584](https://github.com/ClickHouse/ClickHouse/pull/47584) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Corrigir o tratamento de snapshots concorrentes no Keeper [#48466](https://github.com/ClickHouse/ClickHouse/pull/48466) ([Antonio Andelic](https://github.com/antonio2368)).
* MergeTreeMarksLoader passa a manter DataPart em vez de DataPartStorage [#48515](https://github.com/ClickHouse/ClickHouse/pull/48515) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Correção no estado da sequência [#48603](https://github.com/ClickHouse/ClickHouse/pull/48603) ([Ilya Golshtein](https://github.com/ilejn)).
* Verificação de concorrência de backup/restauração em caso de falhas anteriores [#48726](https://github.com/ClickHouse/ClickHouse/pull/48726) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Correção: anexar uma tabela com um caminho ZK inexistente não aumenta a métrica ReadonlyReplica [#48954](https://github.com/ClickHouse/ClickHouse/pull/48954) ([wangxiaobo](https://github.com/wzb5212)).
* Corrige possíveis chamadas a terminate por exceções não capturadas em alguns pontos [#49112](https://github.com/ClickHouse/ClickHouse/pull/49112) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrigido o erro "key not found" em consultas com vários StorageJoin [#49137](https://github.com/ClickHouse/ClickHouse/pull/49137) ([vdimir](https://github.com/vdimir)).
* Corrige resultado incorreto de consulta ao usar chave primária anulável [#49172](https://github.com/ClickHouse/ClickHouse/pull/49172) ([Duc Canh Le](https://github.com/canhld94)).
* Corrigido `reinterpretAs*()` em máquinas big-endian [#49198](https://github.com/ClickHouse/ClickHouse/pull/49198) ([Suzy Wang](https://github.com/SuzyWangIBMer)).
* (Replicação zero-copy experimental) Tornar o bloqueio de partes zero-copy mais atômico [#49211](https://github.com/ClickHouse/ClickHouse/pull/49211) ([alesapin](https://github.com/alesapin)).
* Corrige uma condição de corrida durante o carregamento de partes desatualizadas [#49223](https://github.com/ClickHouse/ClickHouse/pull/49223) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrigido o caso em que todos os valores de chave são nulos e o GROUP com rollup retornava um resultado incorreto [#49282](https://github.com/ClickHouse/ClickHouse/pull/49282) ([Shuai li](https://github.com/loneylee)).
* Corrigido o cálculo de load\_factor para dicionários HASHED com SHARDS [#49319](https://github.com/ClickHouse/ClickHouse/pull/49319) ([Azat Khuzhin](https://github.com/azat)).
* Não permitir a configuração de CODECs de compressão para colunas alias [#49363](https://github.com/ClickHouse/ClickHouse/pull/49363) ([Timur Solodovnikov](https://github.com/tsolodov)).
* Corrige bug na remoção do diretório de uma part existente [#49365](https://github.com/ClickHouse/ClickHouse/pull/49365) ([alesapin](https://github.com/alesapin)).
* Corrigir adequadamente o GCS ao usar HMAC [#49390](https://github.com/ClickHouse/ClickHouse/pull/49390) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige um bug de fuzzing quando o conjunto da subconsulta não é criado ao ler a partir de remote() [#49425](https://github.com/ClickHouse/ClickHouse/pull/49425) ([Alexander Gololobov](https://github.com/davenger)).
* Inverte `shutdown_wait_unfinished_queries` [#49427](https://github.com/ClickHouse/ClickHouse/pull/49427) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* (Replicação zero-copy experimental) Corrige outro bug relacionado a zero-copy [#49473](https://github.com/ClickHouse/ClickHouse/pull/49473) ([alesapin](https://github.com/alesapin)).
* Corrige a configuração do banco de dados Postgres [#49481](https://github.com/ClickHouse/ClickHouse/pull/49481) ([Mal Curtis](https://github.com/snikch)).
* Corrigir o tratamento dos argumentos de `s3Cluster` [#49490](https://github.com/ClickHouse/ClickHouse/pull/49490) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigido erro no destrutor do TraceCollector. [#49508](https://github.com/ClickHouse/ClickHouse/pull/49508) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige a falha do AsynchronousReadIndirectBufferFromRemoteFS que ocorria em reposicionamentos curtos [#49525](https://github.com/ClickHouse/ClickHouse/pull/49525) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrigida a ordem de carregamento de dicionários [#49560](https://github.com/ClickHouse/ClickHouse/pull/49560) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Impede a alteração do tipo de dados da coluna Object('json') [#49563](https://github.com/ClickHouse/ClickHouse/pull/49563) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrigido o teste de estresse (Erro lógico: esperado 7134 >= 11030) [#49623](https://github.com/ClickHouse/ClickHouse/pull/49623) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige bug no DISTINCT [#49628](https://github.com/ClickHouse/ClickHouse/pull/49628) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correção: DISTINCT em ordem com valores iguais a zero em colunas não ordenadas [#49636](https://github.com/ClickHouse/ClickHouse/pull/49636) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige um erro pontual em inteiros grandes identificado pelo UBSan com um fuzzer [#49645](https://github.com/ClickHouse/ClickHouse/pull/49645) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a leitura de colunas esparsas após reiniciar [#49660](https://github.com/ClickHouse/ClickHouse/pull/49660) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige falha de `assert` em SpanHolder::finish() com fibers [#49673](https://github.com/ClickHouse/ClickHouse/pull/49673) ([Kruglov Pavel](https://github.com/Avogar)).
* Correção de funções com curto-circuito e de mutações com argumentos esparsos [#49716](https://github.com/ClickHouse/ClickHouse/pull/49716) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige a gravação de arquivos adicionados em backups incrementais [#49725](https://github.com/ClickHouse/ClickHouse/pull/49725) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige o erro "There is no physical column \_row\_exists in table" que ocorre durante a mutação de exclusão leve em uma tabela com coluna Object. [#49737](https://github.com/ClickHouse/ClickHouse/pull/49737) ([Alexander Gololobov](https://github.com/davenger)).
* Corrigido o problema de msan em randomStringUTF8(número ímpar) [#49750](https://github.com/ClickHouse/ClickHouse/pull/49750) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrigida a função de agregação kolmogorovSmirnovTest [#49768](https://github.com/ClickHouse/ClickHouse/pull/49768) ([FFFFFFFHHHHHHH](https://github.com/FFFFFFFHHHHHHH)).
* Corrigidos aliases de configurações no protocolo nativo [#49776](https://github.com/ClickHouse/ClickHouse/pull/49776) ([Azat Khuzhin](https://github.com/azat)).
* Correção do `arrayMap` com array de tuplas com um único argumento [#49789](https://github.com/ClickHouse/ClickHouse/pull/49789) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige as configurações de limitação de E/S/BACKUPs por consulta [#49797](https://github.com/ClickHouse/ClickHouse/pull/49797) ([Azat Khuzhin](https://github.com/azat)).
* Corrige a atribuição de NULL na definição de perfil [#49831](https://github.com/ClickHouse/ClickHouse/pull/49831) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrigido um bug nas projeções e na configuração aggregate\_functions\_null\_for\_empty (para query\_plan\_optimize\_projection) [#49873](https://github.com/ClickHouse/ClickHouse/pull/49873) ([Amos Bird](https://github.com/amosbird)).
* Corrige o processamento do lote pendente do INSERT assíncrono em Distributed após reinicialização [#49884](https://github.com/ClickHouse/ClickHouse/pull/49884) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida a asserção em CacheMetadata::doCleanup [#49914](https://github.com/ClickHouse/ClickHouse/pull/49914) ([Kseniia Sumarokova](https://github.com/kssenii)).
* corrige `is_prefix` no OptimizeRegularExpression [#49919](https://github.com/ClickHouse/ClickHouse/pull/49919) ([Han Fei](https://github.com/hanfei1991)).
* Corrigidas as métricas `WriteBufferFromS3Bytes`, `WriteBufferFromS3Microseconds` e `WriteBufferFromS3RequestsErrors` [#49930](https://github.com/ClickHouse/ClickHouse/pull/49930) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Corrigida a codificação de IPv6 no protobuf [#49933](https://github.com/ClickHouse/ClickHouse/pull/49933) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige possível erro lógico no parsing incorreto de Nullable em formatos de texto [#49960](https://github.com/ClickHouse/ClickHouse/pull/49960) ([Kruglov Pavel](https://github.com/Avogar)).
* Adicionada a configuração output\_format\_parquet\_compliant\_nested\_types para gerar arquivos Parquet mais compatíveis [#50001](https://github.com/ClickHouse/ClickHouse/pull/50001) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige um erro lógico no teste de estresse "Not enough space to add ..." [#50021](https://github.com/ClickHouse/ClickHouse/pull/50021) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Evita um deadlock ao iniciar a tabela na thread de attach do `ReplicatedMergeTree` [#50026](https://github.com/ClickHouse/ClickHouse/pull/50026) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigido assert em SpanHolder::finish() com fibers, tentativa 2 [#50034](https://github.com/ClickHouse/ClickHouse/pull/50034) ([Kruglov Pavel](https://github.com/Avogar)).
* Adiciona o escape adequado para a serialização do contexto do OpenTelemetry em DDL [#50045](https://github.com/ClickHouse/ClickHouse/pull/50045) ([Azat Khuzhin](https://github.com/azat)).
* Corrige a geração de relatórios de partes de projeção corrompidas [#50052](https://github.com/ClickHouse/ClickHouse/pull/50052) ([Amos Bird](https://github.com/amosbird)).
* Correção na compilação JIT para NaN com operador diferente de [#50056](https://github.com/ClickHouse/ClickHouse/pull/50056) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige travamento no caso de banco de dados Replicated sem argumentos [#50058](https://github.com/ClickHouse/ClickHouse/pull/50058) ([Azat Khuzhin](https://github.com/azat)).
* Corrige uma falha com `multiIf`, condição constante e argumentos Nullable [#50123](https://github.com/ClickHouse/ClickHouse/pull/50123) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige a análise de índice inválida para chaves relacionadas a datas [#50153](https://github.com/ClickHouse/ClickHouse/pull/50153) ([Amos Bird](https://github.com/amosbird)).
* não permitir a modificação de ORDER BY quando não houver colunas em ORDER BY [#50154](https://github.com/ClickHouse/ClickHouse/pull/50154) ([Han Fei](https://github.com/hanfei1991)).
* Corrige a falha na análise de índice quando o operador binário contém um argumento constante NULL [#50177](https://github.com/ClickHouse/ClickHouse/pull/50177) ([Amos Bird](https://github.com/amosbird)).
* clickhouse-client: impedir o uso simultâneo de `--query` e `--queries-file` [#50210](https://github.com/ClickHouse/ClickHouse/pull/50210) ([Alexey Gerasimchuk](https://github.com/Demilivor)).
* Corrigido o UB nas extensões do INTO OUTFILE (APPEND / AND STDOUT) e no WATCH EVENTS [#50216](https://github.com/ClickHouse/ClickHouse/pull/50216) ([Azat Khuzhin](https://github.com/azat)).
* Corrige o fato de espaços no fim da linha serem ignorados no formato CustomSeparatedIgnoreSpaces [#50224](https://github.com/ClickHouse/ClickHouse/pull/50224) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrigir o parsing de metadados do Iceberg [#50232](https://github.com/ClickHouse/ClickHouse/pull/50232) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige `SELECT` distribuído aninhado na cláusula `WITH` [#50234](https://github.com/ClickHouse/ClickHouse/pull/50234) ([Azat Khuzhin](https://github.com/azat)).
* Corrige problema de msan no SipHash com chave [#50245](https://github.com/ClickHouse/ClickHouse/pull/50245) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrigidos bugs nos sockets do Poco no modo não bloqueante, com uso de sockets realmente não bloqueantes [#50252](https://github.com/ClickHouse/ClickHouse/pull/50252) ([Kruglov Pavel](https://github.com/Avogar)).
* Correção do cálculo de checksum para entradas de backup [#50264](https://github.com/ClickHouse/ClickHouse/pull/50264) ([Vitaly Baranov](https://github.com/vitlibar)).
* Correção de NaN nas funções de comparação [#50287](https://github.com/ClickHouse/ClickHouse/pull/50287) ([Maksim Kita](https://github.com/kitaisreal)).
* Correção da chave Nullable na agregação JIT [#50291](https://github.com/ClickHouse/ClickHouse/pull/50291) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige travamento do clickhouse-local ao gravar saída Arrow ou Parquet vazia [#50328](https://github.com/ClickHouse/ClickHouse/pull/50328) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige travamento quando Pool::Entry::disconnect() é chamado [#50334](https://github.com/ClickHouse/ClickHouse/pull/50334) ([Val Doroshchuk](https://github.com/valbok)).
* Melhorado o fetch da part mantendo o bloqueio do diretório por mais tempo [#50339](https://github.com/ClickHouse/ClickHouse/pull/50339) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Corrige as funções bitShift\* quando ambos os argumentos são constantes [#50343](https://github.com/ClickHouse/ClickHouse/pull/50343) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige deadlock no Keeper em caso de exceção durante o pré-processamento de solicitações. [#50387](https://github.com/ClickHouse/ClickHouse/pull/50387) ([frinkr](https://github.com/frinkr)).
* Corrige o cálculo de hash de valores inteiros `const` [#50421](https://github.com/ClickHouse/ClickHouse/pull/50421) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige merge\_tree\_min\_rows\_for\_seek/merge\_tree\_min\_bytes\_for\_seek em data skipping indexes [#50432](https://github.com/ClickHouse/ClickHouse/pull/50432) ([Azat Khuzhin](https://github.com/azat)).
* Limita o número de tarefas em andamento no carregamento de partes desatualizadas [#50450](https://github.com/ClickHouse/ClickHouse/pull/50450) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correção no Keeper: aplicar o estado não confirmado após instalar o snapshot [#50483](https://github.com/ClickHouse/ClickHouse/pull/50483) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige o folding incorreto de constantes [#50536](https://github.com/ClickHouse/ClickHouse/pull/50536) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige erro lógico em teste de estresse (Not enough space to add ...) [#50583](https://github.com/ClickHouse/ClickHouse/pull/50583) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correção da conversão de Null para LowCardinality(Nullable) na função de tabela values [#50637](https://github.com/ClickHouse/ClickHouse/pull/50637) ([Kruglov Pavel](https://github.com/Avogar)).
* Reverte a otimização inválida do RegExpTreeDictionary [#50642](https://github.com/ClickHouse/ClickHouse/pull/50642) ([Johann Gan](https://github.com/johanngan)).

### <a id="234" /> Lançamento do ClickHouse 23.4, 2023-04-26. [Apresentação](https://presentations.clickhouse.com/2023-release-23.4/), [Vídeo](https://www.youtube.com/watch?v=4rrf6bk_mOg)

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

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

* O Formatter '%M' na função formatDateTime() agora exibe o nome do mês em vez dos minutos. Isso torna o comportamento consistente com o MySQL. O comportamento anterior pode ser restaurado usando a configuração "formatdatetime\_parsedatetime\_m\_is\_month\_name = 0". [#47246](https://github.com/ClickHouse/ClickHouse/pull/47246) ([Robert Schulze](https://github.com/rschu1ze)).
* Essa alteração só faz sentido se você estiver usando o cache do sistema de arquivos virtual. Se `path` na configuração do cache do sistema de arquivos virtual não estiver vazio e não for um caminho absoluto, ele será colocado em `<diretório de dados do servidor ClickHouse>/caches/<path_from_cache_config>`. [#48784](https://github.com/ClickHouse/ClickHouse/pull/48784) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Índices primários/secundários e chaves de ordenação com expressões idênticas agora são rejeitados. Esse comportamento pode ser desativado usando a configuração `allow_suspicious_indices`. [#48536](https://github.com/ClickHouse/ClickHouse/pull/48536) ([凌涛](https://github.com/lingtaolf)).

<div id="new-feature">
  #### Nova funcionalidade
</div>

* Adiciona suporte à nova função de agregação `quantileGK`/`quantilesGK`, como [approx\_percentile](https://spark.apache.org/docs/latest/api/sql/index.html#approx_percentile) no Spark. Consulte o algoritmo de Greenwald-Khanna em [http://infolab.stanford.edu/\~datar/courses/cs361a/papers/quantiles.pdf](http://infolab.stanford.edu/~datar/courses/cs361a/papers/quantiles.pdf). [#46428](https://github.com/ClickHouse/ClickHouse/pull/46428) ([李扬](https://github.com/taiyang-li)).
* Adiciona uma instrução `SHOW COLUMNS` que mostra informações resumidas de system.columns. [#48017](https://github.com/ClickHouse/ClickHouse/pull/48017) ([Robert Schulze](https://github.com/rschu1ze)).
* Foram adicionados os modificadores `LIGHTWEIGHT` e `PULL` à consulta `SYSTEM SYNC REPLICA`. A versão `LIGHTWEIGHT` aguarda apenas fetches e drop-ranges (merges e mutações são ignoradas). A versão `PULL` extrai novas entradas do ZooKeeper sem esperar por elas. Corrige [#47794](https://github.com/ClickHouse/ClickHouse/issues/47794). [#48085](https://github.com/ClickHouse/ClickHouse/pull/48085) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Adicionada a função `kafkaMurmurHash` para compatibilidade com o DefaultPartitioner do Kafka. Fecha [#47834](https://github.com/ClickHouse/ClickHouse/issues/47834). [#48185](https://github.com/ClickHouse/ClickHouse/pull/48185) ([Nikolay Degterinsky](https://github.com/evillique)).
* Permite criar facilmente um usuário com os mesmos privilégios do usuário atual por meio de `GRANT CURRENT GRANTS`. [#48262](https://github.com/ClickHouse/ClickHouse/pull/48262) ([pufit](https://github.com/pufit)).
* Adicionada a função de agregação estatística `kolmogorovSmirnovTest`. Fecha [#48228](https://github.com/ClickHouse/ClickHouse/issues/48228). [#48325](https://github.com/ClickHouse/ClickHouse/pull/48325) ([FFFFFFFHHHHHHH](https://github.com/FFFFFFFHHHHHHH)).
* Adicionada uma coluna `lost_part_count` à tabela `system.replicas`. O valor da coluna mostra o número total de partes perdidas na tabela correspondente. O valor é armazenado no zookeeper e pode ser usado, para fins de monitoramento, em vez do evento de perfil `ReplicatedDataLoss`, que não é persistente. [#48526](https://github.com/ClickHouse/ClickHouse/pull/48526) ([Sergei Trifonov](https://github.com/serxa)).
* Adicionada a função `soundex` para compatibilidade. Fecha [#39880](https://github.com/ClickHouse/ClickHouse/issues/39880). [#48567](https://github.com/ClickHouse/ClickHouse/pull/48567) ([FriendLey](https://github.com/FriendLey)).
* Suporte ao tipo `Map` no JSONExtract. [#48629](https://github.com/ClickHouse/ClickHouse/pull/48629) ([李扬](https://github.com/taiyang-li)).
* Adiciona o formato `PrettyJSONEachRow` para produzir JSON formatado com delimitadores de quebra de linha e recuo de 4 espaços. [#48898](https://github.com/ClickHouse/ClickHouse/pull/48898) ([Kruglov Pavel](https://github.com/Avogar)).
* Adiciona o formato de entrada `ParquetMetadata` para ler metadados de arquivos Parquet. [#48911](https://github.com/ClickHouse/ClickHouse/pull/48911) ([Kruglov Pavel](https://github.com/Avogar)).
* Adicionar a função `extractKeyValuePairs` para extrair pares de chave-valor de strings. As strings de entrada podem conter ruído (isto é, arquivos de log / não precisam estar 100% no formato de pares de chave-valor); o algoritmo procurará pares de chave-valor que correspondam aos argumentos passados para a função. No momento, a função aceita os seguintes argumentos: `data_column` (obrigatório), `key_value_pair_delimiter` (o padrão é `:`), `pair_delimiters` (o padrão é `\space \, \;`) e `quoting_character` (o padrão são aspas duplas). [#43606](https://github.com/ClickHouse/ClickHouse/pull/43606) ([Arthur Passos](https://github.com/arthurpassos)).
* As funções replaceOne(), replaceAll(), replaceRegexpOne() e replaceRegexpAll() agora podem ser chamadas com os argumentos de padrão e substituição não constantes. [#46589](https://github.com/ClickHouse/ClickHouse/pull/46589) ([Robert Schulze](https://github.com/rschu1ze)).
* Foram adicionadas funções para trabalhar com colunas do tipo `Map`: `mapConcat`, `mapSort`, `mapExists`. [#48071](https://github.com/ClickHouse/ClickHouse/pull/48071) ([Anton Popov](https://github.com/CurtizJ)).

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

* A leitura de arquivos no formato `Parquet` agora está muito mais rápida. IO e decodificação são paralelizados (controlados pela configuração `max_threads`), e apenas os intervalos de dados necessários são lidos. [#47964](https://github.com/ClickHouse/ClickHouse/pull/47964) ([Michael Kolupaev](https://github.com/al13n321)).
* Se executarmos uma mutação com `IN` (subconsulta) assim: `ALTER TABLE t UPDATE col='new value' WHERE id IN (SELECT id FROM huge_table)` e a tabela `t` tiver múltiplas partes, então, para cada parte, um Set da subconsulta `SELECT id FROM huge_table` será construído na memória. Se houver muitas partes, isso pode consumir muita memória (e levar a OOM) e CPU. A solução é introduzir um cache de curta duração dos Sets que estão sendo construídos no momento por tarefas de mutação. Se outra tarefa da mesma mutação for executada de forma concorrente, ela poderá procurar o Set no cache, esperar que ele seja construído e reutilizá-lo. [#46835](https://github.com/ClickHouse/ClickHouse/pull/46835) ([Alexander Gololobov](https://github.com/davenger)).
* Verifica dependências apenas quando necessário ao aplicar consultas `ALTER TABLE`. [#48062](https://github.com/ClickHouse/ClickHouse/pull/48062) ([Raúl Marín](https://github.com/Algunenano)).
* Otimiza a função `mapUpdate`. [#48118](https://github.com/ClickHouse/ClickHouse/pull/48118) ([Anton Popov](https://github.com/CurtizJ)).
* Agora, uma consulta interna para a réplica local é enviada explicitamente, e os dados dela são recebidos por meio da interface de loopback. A configuração `prefer_localhost_replica` não é respeitada para réplicas paralelas. Isso é necessário para um melhor agendamento e torna o código mais limpo: o iniciador é responsável apenas por coordenar o processo de leitura e mesclar resultados, respondendo continuamente às solicitações, enquanto todas as consultas secundárias leem os dados. Observação: usar a interface de loopback não é tão eficiente em termos de desempenho; caso contrário, algumas réplicas poderiam ficar sem tarefas, o que poderia levar a uma execução de consulta ainda mais lenta e ao não aproveitamento de todos os recursos possíveis. A inicialização do coordenador agora é ainda mais tardia. Todas as solicitações recebidas contêm informações sobre o algoritmo de leitura, e o coordenador é inicializado com elas quando a primeira solicitação chega. Se alguma réplica decidir ler com um algoritmo diferente, será lançada uma exceção e a consulta será abortada. [#48246](https://github.com/ClickHouse/ClickHouse/pull/48246) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Não constrói o Set do lado direito da cláusula `IN` com subconsulta quando ele é usado apenas para análise de skip indexes, e eles estão desabilitados pela configuração (`use_skip_indexes=0`). Antes, isso podia afetar o desempenho das consultas. [#48299](https://github.com/ClickHouse/ClickHouse/pull/48299) ([Anton Popov](https://github.com/CurtizJ)).
* O processamento de consultas é paralelizado logo após a leitura de `FROM file(...)`. Relacionado a [#38755](https://github.com/ClickHouse/ClickHouse/issues/38755). [#48525](https://github.com/ClickHouse/ClickHouse/pull/48525) ([Igor Nikonov](https://github.com/devcrafter)). O processamento de consultas é paralelizado logo após a leitura de qualquer fonte de dados. As fontes de dados afetadas são principalmente armazenamentos simples ou externos, como as funções de tabela `url` e `file`. [#48727](https://github.com/ClickHouse/ClickHouse/pull/48727) ([Igor Nikonov](https://github.com/devcrafter)). Isso é controlado pela configuração `parallelize_output_from_storages`, que não é habilitada por padrão.
* Reduz a contenção do mutex do ThreadPool (pode aumentar o desempenho com uma grande quantidade de jobs pequenos). [#48750](https://github.com/ClickHouse/ClickHouse/pull/48750) ([Sergei Trifonov](https://github.com/serxa)).
* Reduz o uso de memória para múltiplas mutações `ALTER DELETE`. [#48522](https://github.com/ClickHouse/ClickHouse/pull/48522) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Remove as tentativas excessivas de conexão se a configuração `skip_unavailable_shards` estiver habilitada. [#48771](https://github.com/ClickHouse/ClickHouse/pull/48771) ([Azat Khuzhin](https://github.com/azat)).

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

* As entradas no cache de consultas agora são combinadas em blocos de até `max_block_size` e compactadas. [#45912](https://github.com/ClickHouse/ClickHouse/pull/45912) ([Robert Schulze](https://github.com/rschu1ze)).
* Agora é possível definir quotas por usuário no cache de consultas. [#48284](https://github.com/ClickHouse/ClickHouse/pull/48284) ([Robert Schulze](https://github.com/rschu1ze)).
* Algumas correções para réplicas paralelas [#48433](https://github.com/ClickHouse/ClickHouse/pull/48433) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Implementa zero-copy-replication (uma funcionalidade experimental) em discos criptografados. [#48741](https://github.com/ClickHouse/ClickHouse/pull/48741) ([Vitaly Baranov](https://github.com/vitlibar)).

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

* Aumenta o valor padrão de `connect_timeout_with_failover_ms` para 1000 ms (devido à adição de conexões assíncronas em [https://github.com/ClickHouse/ClickHouse/pull/47229](https://github.com/ClickHouse/ClickHouse/pull/47229)). Fecha [#5188](https://github.com/ClickHouse/ClickHouse/issues/5188). [#49009](https://github.com/ClickHouse/ClickHouse/pull/49009) ([Kruglov Pavel](https://github.com/Avogar)).
* Várias melhorias em lagos de dados: - Fazer o `Iceberg` funcionar com dados não particionados. - Suporte ao formato `Iceberg` v2 (antes, apenas a v1 era compatível) - Suporte à leitura de dados particionados no `DeltaLake`/`Hudi` - Leitura mais rápida dos metadados do `DeltaLake` usando os arquivos de checkpoint do Delta - Correção de leituras incorretas no `Hudi`: antes, ele escolhia incorretamente quais dados ler e, por isso, só conseguia ler corretamente tabelas pequenas - Fazer com que esses motores detectem atualizações em dados alterados (antes, o estado era definido na criação da tabela) - Fazer testes adequados para `Iceberg`/`DeltaLake`/`Hudi` usando spark. [#47307](https://github.com/ClickHouse/ClickHouse/pull/47307) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adicionar conexão assíncrona ao socket e escrita assíncrona no socket. Tornar assíncronos a criação de conexões e o envio de consultas/tabelas externas entre shards. Refatorar o código usando fibras. Fecha [#46931](https://github.com/ClickHouse/ClickHouse/issues/46931). Depois deste PR, poderemos aumentar `connect_timeout_with_failover_ms` por padrão ([https://github.com/ClickHouse/ClickHouse/issues/5188](https://github.com/ClickHouse/ClickHouse/issues/5188)). [#47229](https://github.com/ClickHouse/ClickHouse/pull/47229) ([Kruglov Pavel](https://github.com/Avogar)).
* Suporte às seções de configuração `keeper`/`keeper_server` como alternativa a `zookeeper`. Fecha [#34766](https://github.com/ClickHouse/ClickHouse/issues/34766), [#34767](https://github.com/ClickHouse/ClickHouse/issues/34767). [#35113](https://github.com/ClickHouse/ClickHouse/pull/35113) ([李扬](https://github.com/taiyang-li)).
* É possível definir a flag *secure* em named\_collections para um dicionário com uma tabela do ClickHouse como fonte. Corrige [#38450](https://github.com/ClickHouse/ClickHouse/issues/38450). [#46323](https://github.com/ClickHouse/ClickHouse/pull/46323) ([Ilya Golshtein](https://github.com/ilejn)).
* A função `bitCount` é compatível com os tipos de dados `FixedString` e `String`. [#49044](https://github.com/ClickHouse/ClickHouse/pull/49044) ([flynn](https://github.com/ucasfl)).
* Foram adicionadas tentativas de repetição configuráveis para todas as operações com \[Zoo]Keeper em consultas Backup. [#47224](https://github.com/ClickHouse/ClickHouse/pull/47224) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Ativa `use_environment_credentials` para S3 por padrão, fazendo com que toda a cadeia de provedores seja construída por padrão. [#47397](https://github.com/ClickHouse/ClickHouse/pull/47397) ([Antonio Andelic](https://github.com/antonio2368)).
* Atualmente, a função JSON\_VALUE é semelhante à função get\_json\_object do Spark, que permite obter um valor de uma string JSON por um path como '\$.key'. Mas ainda há algumas diferenças - 1. o get\_json\_object do Spark retorna null quando o path não existe, mas o JSON\_VALUE retorna uma string vazia; - 2. o get\_json\_object do Spark retorna um valor de tipo complexo, como um JSON object/array, mas o JSON\_VALUE retorna uma string vazia. [#47494](https://github.com/ClickHouse/ClickHouse/pull/47494) ([KevinyhZou](https://github.com/KevinyhZou)).
* Para `use_structure_from_insertion_table_in_table_functions`, propagação mais flexível da estrutura da tabela de inserção para a função de tabela. Corrigido um problema com o mapeamento de nomes e o uso de colunas virtuais. A configuração 'auto' não é mais necessária. [#47962](https://github.com/ClickHouse/ClickHouse/pull/47962) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Não continue tentando se conectar ao Keeper se a consulta for cancelada ou exceder os limites. [#47985](https://github.com/ClickHouse/ClickHouse/pull/47985) ([Raúl Marín](https://github.com/Algunenano)).
* Suporte a entrada/saída de Enum em `BSONEachRow`, permissão para todos os tipos de chave de map e eliminação de cálculos extras na saída. [#48122](https://github.com/ClickHouse/ClickHouse/pull/48122) ([Kruglov Pavel](https://github.com/Avogar)).
* Suporte a mais tipos do ClickHouse nos formatos `ORC`/`Arrow`/`Parquet`: Enum(8|16), (U)Int(128|256), Decimal256 (para ORC), permitir a leitura de IPv4 a partir de valores Int32 (o ORC gera IPv4 como Int32, e não conseguíamos lê-lo de volta), corrigir a leitura de Nullable(IPv6) a partir de dados binários no `ORC`. [#48126](https://github.com/ClickHouse/ClickHouse/pull/48126) ([Kruglov Pavel](https://github.com/Avogar)).
* Adiciona as colunas `perform_ttl_move_on_insert` e `load_balancing` à tabela `system.storage_policies` e altera o tipo da coluna `volume_type` para `Enum8`. [#48167](https://github.com/ClickHouse/ClickHouse/pull/48167) ([lizhuoyu5](https://github.com/lzydmxy)).
* Adicionado suporte ao comando `BACKUP ALL`, que faz backup de todas as tabelas e de todos os bancos de dados, incluindo os temporários e os do sistema. [#48189](https://github.com/ClickHouse/ClickHouse/pull/48189) ([Vitaly Baranov](https://github.com/vitlibar)).
* A função mapFromArrays agora aceita o tipo `Map` como entrada. [#48207](https://github.com/ClickHouse/ClickHouse/pull/48207) ([李扬](https://github.com/taiyang-li)).
* A saída de alguns SHOW PROCESSLIST agora vem ordenada. [#48241](https://github.com/ClickHouse/ClickHouse/pull/48241) ([Robert Schulze](https://github.com/rschu1ze)).
* Limitação por consulta/por servidor para IO remoto/IO local/backups (configurações do servidor: `max_remote_read_network_bandwidth_for_server`, `max_remote_write_network_bandwidth_for_server`, `max_local_read_bandwidth_for_server`, `max_local_write_bandwidth_for_server`, `max_backup_bandwidth_for_server`, configurações: `max_remote_read_network_bandwidth`, `max_remote_write_network_bandwidth`, `max_local_read_bandwidth`, `max_local_write_bandwidth`, `max_backup_bandwidth`). [#48242](https://github.com/ClickHouse/ClickHouse/pull/48242) ([Azat Khuzhin](https://github.com/azat)).
* Suporte a mais tipos no formato `CapnProto`: Map, (U)Int(128|256), Decimal(128|256). Permitir conversões de inteiros durante a entrada/saída. [#48257](https://github.com/ClickHouse/ClickHouse/pull/48257) ([Kruglov Pavel](https://github.com/Avogar)).
* Não lançar CURRENT\_WRITE\_BUFFER\_IS\_EXHAUSTED em condições normais. [#48288](https://github.com/ClickHouse/ClickHouse/pull/48288) ([Raúl Marín](https://github.com/Algunenano)).
* Adiciona a nova configuração `keeper_map_strict_mode`, que impõe garantias adicionais às operações realizadas em tabelas `KeeperMap`. [#48293](https://github.com/ClickHouse/ClickHouse/pull/48293) ([Antonio Andelic](https://github.com/antonio2368)).
* Verifique se o tipo da chave primária de um dicionário simples é um tipo inteiro sem sinal nativo. Adicione a configuração `check_dictionary_primary_key ` para compatibilidade (defina `check_dictionary_primary_key =false` para desativar a verificação). [#48335](https://github.com/ClickHouse/ClickHouse/pull/48335) ([lizhuoyu5](https://github.com/lzydmxy)).
* Não replicar mutações para `KeeperMap`, pois isso é desnecessário. [#48354](https://github.com/ClickHouse/ClickHouse/pull/48354) ([Antonio Andelic](https://github.com/antonio2368)).
* Permite gravar/ler tupla sem nome como Message aninhada no formato Protobuf. Os elementos da Tuple e os campos da Message são associados por posição. [#48390](https://github.com/ClickHouse/ClickHouse/pull/48390) ([Kruglov Pavel](https://github.com/Avogar)).
* Suporte às configurações `additional_table_filters` e `additional_result_filter` no novo planner. Além disso, foi adicionada uma entrada na documentação para `additional_result_filter`. [#48405](https://github.com/ClickHouse/ClickHouse/pull/48405) ([Dmitry Novik](https://github.com/novikd)).
* `parseDateTime` agora entende a string de formato '%f' (segundos fracionários). [#48420](https://github.com/ClickHouse/ClickHouse/pull/48420) ([Robert Schulze](https://github.com/rschu1ze)).
* A format string "%f" em formatDateTime() agora imprime "000000" se o valor formatado não tiver segundos fracionários; o comportamento anterior (um único zero) pode ser restaurado usando a configuração "formatdatetime\_f\_prints\_single\_zero = 1". [#48422](https://github.com/ClickHouse/ClickHouse/pull/48422) ([Robert Schulze](https://github.com/rschu1ze)).
* Não replicar DELETE e TRUNCATE no KeeperMap. [#48434](https://github.com/ClickHouse/ClickHouse/pull/48434) ([Antonio Andelic](https://github.com/antonio2368)).
* Gerar valores Decimals e Bools válidos na função generateRandom. [#48436](https://github.com/ClickHouse/ClickHouse/pull/48436) ([Kruglov Pavel](https://github.com/Avogar)).
* Permitir vírgulas finais na lista de expressões da consulta SELECT, por exemplo `SELECT a, b, c, FROM table`. Fecha [#37802](https://github.com/ClickHouse/ClickHouse/issues/37802). [#48438](https://github.com/ClickHouse/ClickHouse/pull/48438) ([Nikolay Degterinsky](https://github.com/evillique)).
* Faz com que os parâmetros de cliente `--user` e `--password` sobrescrevam as variáveis de ambiente `CLICKHOUSE_USER` e `CLICKHOUSE_PASSWORD`. Fecha [#38909](https://github.com/ClickHouse/ClickHouse/issues/38909). [#48440](https://github.com/ClickHouse/ClickHouse/pull/48440) ([Nikolay Degterinsky](https://github.com/evillique)).
* Adicionadas novas tentativas ao carregar partes de dados em tabelas `MergeTree` em caso de erros recuperáveis. [#48442](https://github.com/ClickHouse/ClickHouse/pull/48442) ([Anton Popov](https://github.com/CurtizJ)).
* Adicionado suporte aos tipos de dados `Date`, `Date32`, `DateTime` e `DateTime64` nas funções `arrayMin`, `arrayMax` e `arrayDifference`. Fecha [#21645](https://github.com/ClickHouse/ClickHouse/issues/21645). [#48445](https://github.com/ClickHouse/ClickHouse/pull/48445) ([Nikolay Degterinsky](https://github.com/evillique)).
* Adicionar suporte à macro `{server_uuid}`. Ela é útil para identificar réplicas em clusters com escalonamento automático quando novas réplicas são constantemente adicionadas e removidas durante a execução. Isso fecha [#48554](https://github.com/ClickHouse/ClickHouse/issues/48554). [#48563](https://github.com/ClickHouse/ClickHouse/pull/48563) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O script de instalação criará um hard link em vez de fazer uma cópia, se possível. [#48578](https://github.com/ClickHouse/ClickHouse/pull/48578) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona suporte à sintaxe `SHOW TABLE` com o mesmo significado de `SHOW CREATE TABLE`. Fecha [#48580](https://github.com/ClickHouse/ClickHouse/issues/48580). [#48591](https://github.com/ClickHouse/ClickHouse/pull/48591) ([flynn](https://github.com/ucasfl)).
* Os buffers temporários de HTTP agora podem funcionar removendo dados do cache virtual do sistema de arquivos. [#48664](https://github.com/ClickHouse/ClickHouse/pull/48664) ([Vladimir C](https://github.com/vdimir)).
* Faz com que a inferência de esquema funcione para `CREATE AS SELECT`. Fecha [#47599](https://github.com/ClickHouse/ClickHouse/issues/47599). [#48679](https://github.com/ClickHouse/ClickHouse/pull/48679) ([flynn](https://github.com/ucasfl)).
* Adicionada a configuração `replicated_max_mutations_in_one_entry` para `ReplicatedMergeTree`, que permite limitar o número de comandos de mutação em cada entrada `MUTATE_PART` (o padrão é 10000). [#48731](https://github.com/ClickHouse/ClickHouse/pull/48731) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Nos tipos AggregateFunction, os bytes de arena não utilizados não são contabilizados como `read_bytes`. [#48745](https://github.com/ClickHouse/ClickHouse/pull/48745) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige algumas configurações relacionadas ao MySQL que não eram tratadas corretamente com a fonte de dicionário MySQL + coleção nomeada. Fecha [#48402](https://github.com/ClickHouse/ClickHouse/issues/48402). [#48759](https://github.com/ClickHouse/ClickHouse/pull/48759) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se um usuário definir `max_single_part_upload_size` com um valor muito alto, isso pode causar uma falha devido a um bug no AWS S3 SDK. Isso corrige [#47679](https://github.com/ClickHouse/ClickHouse/issues/47679). [#48816](https://github.com/ClickHouse/ClickHouse/pull/48816) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige uma condição de corrida em `RabbitMQ` ([relatório](https://pastila.nl/?004f7100/de1505289ab5bb355e67ebe6c7cc8707)), refatora o código. [#48845](https://github.com/ClickHouse/ClickHouse/pull/48845) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adiciona os aliases `name` e `part_name` de `system.parts` e `system.part_log`. Fecha [#48718](https://github.com/ClickHouse/ClickHouse/issues/48718). [#48850](https://github.com/ClickHouse/ClickHouse/pull/48850) ([sichenzhao](https://github.com/sichenzhao)).
* As funções "arrayDifferenceSupport()", "arrayCumSum()" e "arrayCumSumNonNegative()" agora oferecem suporte a arrays de entrada com tipos inteiros estendidos (U)Int128/256. [#48866](https://github.com/ClickHouse/ClickHouse/pull/48866) ([cluster](https://github.com/infdahai)).
* O histórico multilinha no clickhouse-client não é mais preenchido. Isso torna mais natural colar conteúdo. [#48870](https://github.com/ClickHouse/ClickHouse/pull/48870) ([Joanna Hulboj](https://github.com/jh0x)).
* Implementa uma pequena melhoria para o caso raro em que o ClickHouse é executado dentro do LXC e o LXCFS é usado. O LXCFS tem um problema: às vezes retorna o erro "Transport endpoint is not connected" ao ler um arquivo dentro de `/proc`. Esse erro foi corretamente registrado no log do servidor do ClickHouse. Além disso, contornamos esse problema reabrindo o arquivo. Trata-se de uma alteração mínima. [#48922](https://github.com/ClickHouse/ClickHouse/pull/48922) ([Real](https://github.com/RunningXie)).
* Melhorada a contabilização de memória para prefetches. Configurações de prefetch randomizadas na CI. [#48973](https://github.com/ClickHouse/ClickHouse/pull/48973) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Definidos corretamente os cabeçalhos para operações nativas de cópia no GCS. [#48981](https://github.com/ClickHouse/ClickHouse/pull/48981) ([Antonio Andelic](https://github.com/antonio2368)).
* Adicionado suporte para especificar nomes de configurações na linha de comando com hífens em vez de underscores, por exemplo, `--max-threads` em vez de `--max_threads`. Além disso, há suporte para caracteres Unicode de hífen, como `—` em vez de `--` — isso é útil quando você se comunica com uma equipe de outra empresa e um gerente dessa equipe copiou e colou código do MS Word. [#48985](https://github.com/ClickHouse/ClickHouse/pull/48985) ([alekseygolub](https://github.com/alekseygolub)).
* Adicionar fallback para autenticação por senha caso a autenticação com certificado SSL do usuário falhe. Fecha [#48974](https://github.com/ClickHouse/ClickHouse/issues/48974). [#48989](https://github.com/ClickHouse/ClickHouse/pull/48989) ([Nikolay Degterinsky](https://github.com/evillique)).
* Melhora o dashboard incorporado. Fecha [#46671](https://github.com/ClickHouse/ClickHouse/issues/46671). [#49036](https://github.com/ClickHouse/ClickHouse/pull/49036) ([Kevin Zhang](https://github.com/Kinzeng)).
* Adicionados eventos de perfil para mensagens de log, para que você possa ver facilmente a quantidade de mensagens de log por severidade. [#49042](https://github.com/ClickHouse/ClickHouse/pull/49042) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Nas versões anteriores, o formato `LineAsString` funcionava de maneira inconsistente, independentemente de o parsing paralelo estar habilitado ou não, na presença de quebras de linha do DOS ou do macOS Classic. Isso encerra [#49039](https://github.com/ClickHouse/ClickHouse/issues/49039). [#49052](https://github.com/ClickHouse/ClickHouse/pull/49052) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A mensagem de exceção sobre o parâmetro de consulta não analisado também informará o nome desse parâmetro. Reimplementação de [#48878](https://github.com/ClickHouse/ClickHouse/issues/48878). Fecha [#48772](https://github.com/ClickHouse/ClickHouse/issues/48772). [#49061](https://github.com/ClickHouse/ClickHouse/pull/49061) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Atualização dos fusos horários. Foram atualizados: Africa/Cairo, Africa/Casablanca, Africa/El\_Aaiun, America/Bogota, America/Cambridge\_Bay, America/Ciudad\_Juarez, America/Godthab, America/Inuvik, America/Iqaluit, America/Nuuk, America/Ojinaga, America/Pangnirtung, America/Rankin\_Inlet, America/Resolute, America/Whitehorse, America/Yellowknife, Asia/Gaza, Asia/Hebron, Asia/Kuala\_Lumpur, Asia/Singapore, Canada/Yukon, Egypt, Europe/Kirov, Europe/Volgograd, Singapore. [#48572](https://github.com/ClickHouse/ClickHouse/pull/48572) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Redução do número de dependências nos arquivos de cabeçalho para acelerar o build. [#47984](https://github.com/ClickHouse/ClickHouse/pull/47984) ([Dmitry Novik](https://github.com/novikd)).
* Randomização da compressão de marcas e índices nos testes. [#48286](https://github.com/ClickHouse/ClickHouse/pull/48286) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Atualização do ZSTD interno de 1.5.4 para 1.5.5. [#46797](https://github.com/ClickHouse/ClickHouse/pull/46797) ([Robert Schulze](https://github.com/rschu1ze)).
* Randomização das mesclagens verticais de partes compact para wide nos testes. [#48287](https://github.com/ClickHouse/ClickHouse/pull/48287) ([Raúl Marín](https://github.com/Algunenano)).
* Suporte a checksum CRC32 no HDFS. Correção de problemas de desempenho. [#48614](https://github.com/ClickHouse/ClickHouse/pull/48614) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Remoção dos resquícios de suporte ao GCC. [#48671](https://github.com/ClickHouse/ClickHouse/pull/48671) ([Robert Schulze](https://github.com/rschu1ze)).
* Adicionada uma execução de CI com a infraestrutura do analyzer habilitada. [#48719](https://github.com/ClickHouse/ClickHouse/pull/48719) ([Dmitry Novik](https://github.com/novikd)).

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

* Corrige o system.query\_views\_log para MVs enviadas por threads em segundo plano [#46668](https://github.com/ClickHouse/ClickHouse/pull/46668) ([Azat Khuzhin](https://github.com/azat)).
* Corrige vários erros em `RENAME COLUMN` [#46946](https://github.com/ClickHouse/ClickHouse/pull/46946) ([alesapin](https://github.com/alesapin)).
* Corrige pequenos problemas de realce no clickhouse-format [#47610](https://github.com/ClickHouse/ClickHouse/pull/47610) ([Natasha Murashkina](https://github.com/murfel)).
* Corrige um bug no libc++ do LLVM que causava um travamento ao enviar partes para o S3 com tamanho maior que INT\_MAX [#47693](https://github.com/ClickHouse/ClickHouse/pull/47693) ([Azat Khuzhin](https://github.com/azat)).
* Corrige o overflow na função `sparkbar` [#48121](https://github.com/ClickHouse/ClickHouse/pull/48121) ([Vladimir C](https://github.com/vdimir)).
* Corrige condição de corrida no S3 [#48190](https://github.com/ClickHouse/ClickHouse/pull/48190) ([Anton Popov](https://github.com/CurtizJ)).
* Desativado o JIT para funções de agregação devido a comportamento inconsistente [#48195](https://github.com/ClickHouse/ClickHouse/pull/48195) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a formatação de ALTER (ajuste menor) [#48289](https://github.com/ClickHouse/ClickHouse/pull/48289) ([Natasha Murashkina](https://github.com/murfel)).
* Corrige o uso de CPU no RabbitMQ (que havia piorado na versão 23.2 após [#44404](https://github.com/ClickHouse/ClickHouse/issues/44404)) [#48311](https://github.com/ClickHouse/ClickHouse/pull/48311) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige travamento no EXPLAIN PIPELINE para Merge over Distributed [#48320](https://github.com/ClickHouse/ClickHouse/pull/48320) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida a serialização de LowCardinality como dicionário do Arrow [#48361](https://github.com/ClickHouse/ClickHouse/pull/48361) ([Kruglov Pavel](https://github.com/Avogar)).
* Reinicialização do downloader para o segmento de arquivo do cache no TemporaryFileStream [#48386](https://github.com/ClickHouse/ClickHouse/pull/48386) ([Vladimir C](https://github.com/vdimir)).
* Corrige possível travamento do SYSTEM SYNC REPLICA em caso de DROP/REPLACE PARTITION [#48391](https://github.com/ClickHouse/ClickHouse/pull/48391) ([Azat Khuzhin](https://github.com/azat)).
* Corrige um erro de inicialização ao carregar uma tabela distribuída que depende de um dicionário [#48419](https://github.com/ClickHouse/ClickHouse/pull/48419) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Não verificar dependências ao renomear tabelas de sistema automaticamente [#48431](https://github.com/ClickHouse/ClickHouse/pull/48431) ([Raúl Marín](https://github.com/Algunenano)).
* Atualiza somente as linhas afetadas no armazenamento KeeperMap [#48435](https://github.com/ClickHouse/ClickHouse/pull/48435) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige uma possível falha de segmentação no cache da VFS [#48469](https://github.com/ClickHouse/ClickHouse/pull/48469) ([Kseniia Sumarokova](https://github.com/kssenii)).
* `toTimeZone` gera um erro quando não é fornecida uma string constante [#48471](https://github.com/ClickHouse/ClickHouse/pull/48471) ([Jordi Villar](https://github.com/jrdi)).
* Corrige erro lógico relacionado a IPv4 no Protobuf e adiciona suporte a Date32 [#48486](https://github.com/ClickHouse/ClickHouse/pull/48486) ([Kruglov Pavel](https://github.com/Avogar)).
* o sinalizador "changed" em system.settings foi calculado incorretamente para configurações com múltiplos valores [#48516](https://github.com/ClickHouse/ClickHouse/pull/48516) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Corrige o mecanismo de armazenamento `Memory` com compressão ativada [#48517](https://github.com/ClickHouse/ClickHouse/pull/48517) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige o modo de colagem com colchetes que atrapalhava a inserção de senha em caso de reconexão do cliente [#48528](https://github.com/ClickHouse/ClickHouse/pull/48528) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrigido map aninhado para chaves dos tipos IP e UUID [#48556](https://github.com/ClickHouse/ClickHouse/pull/48556) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige uma exceção não capturada no carregador paralelo de dicionários com hash [#48571](https://github.com/ClickHouse/ClickHouse/pull/48571) ([Azat Khuzhin](https://github.com/azat)).
* A função de agregação `groupArray` funciona corretamente com resultados vazios em tipos Nullable [#48593](https://github.com/ClickHouse/ClickHouse/pull/48593) ([lgbo](https://github.com/lgbo-ustc)).
* Corrigido um bug no Keeper em que, às vezes, um nó não era criado com o esquema `auth` na ACL. [#48595](https://github.com/ClickHouse/ClickHouse/pull/48595) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Permitir operadores de comparação entre IPv4 e UInt [#48611](https://github.com/ClickHouse/ClickHouse/pull/48611) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige possível erro no cache [#48636](https://github.com/ClickHouse/ClickHouse/pull/48636) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Inserções assíncronas com dados vazios não gerarão mais uma exceção. [#48663](https://github.com/ClickHouse/ClickHouse/pull/48663) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige as dependências de tabelas em caso de falha no RENAME TABLE [#48683](https://github.com/ClickHouse/ClickHouse/pull/48683) ([Azat Khuzhin](https://github.com/azat)).
* Se a chave primária tiver colunas duplicadas (o que só é possível em projeções), isso poderia levar, em versões anteriores, ao bug [#48838](https://github.com/ClickHouse/ClickHouse/pull/48838) ([Amos Bird](https://github.com/amosbird)).
* Correção de uma condição de corrida no ZooKeeper durante o join de send\_thread/receive\_thread [#48849](https://github.com/ClickHouse/ClickHouse/pull/48849) ([Alexander Gololobov](https://github.com/davenger)).
* Corrige erro inesperado no nome da parte ao tentar remover uma parte detached ignorada com zero copy replication [#48862](https://github.com/ClickHouse/ClickHouse/pull/48862) ([Michael Lex](https://github.com/mlex)).
* Corrige a leitura de uma coluna Parquet/Arrow `Date32` em uma coluna que não é `Date32` [#48864](https://github.com/ClickHouse/ClickHouse/pull/48864) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige o erro `UNKNOWN_IDENTIFIER` ao selecionar de uma tabela com row policy e coluna com pontos [#48976](https://github.com/ClickHouse/ClickHouse/pull/48976) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige a agregação com strings Nullable vazias [#48999](https://github.com/ClickHouse/ClickHouse/pull/48999) ([LiuNeng](https://github.com/liuneng1994)).

### <a id="233" /> lançamento do ClickHouse 23.3 LTS, 2023-03-30. [Apresentação](https://presentations.clickhouse.com/2023-release-23.3/), [Vídeo](https://www.youtube.com/watch?v=ISaGUjvBNao)

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

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

* As exclusões leves (`DELETE`) estão prontas para produção e habilitadas por padrão. A consulta `DELETE` para tabelas MergeTree agora está disponível por padrão.
* O comportamento das funções `*domain*RFC` e `netloc` mudou ligeiramente: o conjunto de símbolos permitidos na autoridade da URL foi flexibilizado para melhorar a conformidade. [#46841](https://github.com/ClickHouse/ClickHouse/pull/46841) ([Azat Khuzhin](https://github.com/azat)).
* Foi proibida a criação de tabelas baseadas em KafkaEngine com instruções DEFAULT/EPHEMERAL/ALIAS/MATERIALIZED para colunas. [#47138](https://github.com/ClickHouse/ClickHouse/pull/47138) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Um recurso de "drenagem assíncrona de conexão" foi removido. As configurações e métricas relacionadas também foram removidas. Era um recurso interno, portanto a remoção não deve afetar usuários que nunca tinham ouvido falar dele. [#47486](https://github.com/ClickHouse/ClickHouse/pull/47486) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Suporte ao tipo de dado Decimal de 256 bits (mais de 38 dígitos) em `arraySum`/`Min`/`Max`/`Avg`/`Product`, `arrayCumSum`/`CumSumNonNegative`, `arrayDifference`, construção de arrays, operador IN, parâmetros de consulta, `groupArrayMovingSum`, funções estatísticas, `min`/`max`/`any`/`argMin`/`argMax`, protocolo wire do PostgreSQL, table engine e função MySQL, `sumMap`, `mapAdd`, `mapSubtract`, `arrayIntersect`. Adicionado suporte a inteiros grandes em `arrayIntersect`. Funções de agregação estatísticas que envolvem momentos (como `corr` ou vários `TTest`s) usarão `Float64` como representação interna (antes desta mudança elas usavam `Decimal128`, mas isso não fazia sentido), e essas funções podem retornar `nan` em vez de `inf` em caso de variância infinita. Algumas funções eram permitidas em tipos de dado `Decimal256`, mas retornavam `Decimal128` em versões anteriores — agora isso foi corrigido. Isso fecha [#47569](https://github.com/ClickHouse/ClickHouse/issues/47569). Isso fecha [#44864](https://github.com/ClickHouse/ClickHouse/issues/44864). Isso fecha [#28335](https://github.com/ClickHouse/ClickHouse/issues/28335). [#47594](https://github.com/ClickHouse/ClickHouse/pull/47594) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `backup_threads`/`restore_threads` passam a ser configurações do servidor (em vez de configurações do usuário). [#47881](https://github.com/ClickHouse/ClickHouse/pull/47881) ([Azat Khuzhin](https://github.com/azat)).
* Não permitir índices secundários constantes e não determinísticos [#46839](https://github.com/ClickHouse/ClickHouse/pull/46839) ([Anton Popov](https://github.com/CurtizJ)).

<div id="new-feature">
  #### Nova funcionalidade
</div>

* Adiciona um novo modo de dividir o trabalho entre as réplicas usando as configurações `parallel_replicas_custom_key` e `parallel_replicas_custom_key_filter_type`. Se o cluster consistir em um único shard com várias réplicas, até `max_parallel_replicas` serão escolhidas aleatoriamente e tratadas como shards. Para cada shard, um filtro correspondente é adicionado à consulta no nó iniciador antes de ela ser enviada ao shard. Se o cluster consistir em múltiplos shards, ele se comportará da mesma forma que `sample_key`, mas com a possibilidade de definir uma chave arbitrária. [#45108](https://github.com/ClickHouse/ClickHouse/pull/45108) ([Antonio Andelic](https://github.com/antonio2368)).
* Uma opção para exibir resultado parcial ao cancelar: adicionada a configuração de consulta `partial_result_on_first_cancel`, permitindo que a consulta cancelada (por exemplo, por Ctrl-C) retorne um resultado parcial. [#45689](https://github.com/ClickHouse/ClickHouse/pull/45689) ([Alexey Perevyshin](https://github.com/alexX512)).
* Adicionado suporte a motores de tabela arbitrários em tabelas temporárias (exceto os motores Replicated e KeeperMap). Fecha [#31497](https://github.com/ClickHouse/ClickHouse/issues/31497). [#46071](https://github.com/ClickHouse/ClickHouse/pull/46071) ([Roman Vasin](https://github.com/rvasin)).
* Adicionado suporte à replicação de funções SQL definidas pelo usuário com armazenamento centralizado no Keeper. [#46085](https://github.com/ClickHouse/ClickHouse/pull/46085) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Implementado `system.server_settings` (semelhante a `system.settings`), que conterá configurações do servidor. [#46550](https://github.com/ClickHouse/ClickHouse/pull/46550) ([pufit](https://github.com/pufit)).
* Suporte à consulta `UNDROP TABLE`. Fecha [#46811](https://github.com/ClickHouse/ClickHouse/issues/46811). [#47241](https://github.com/ClickHouse/ClickHouse/pull/47241) ([chen](https://github.com/xiedeyantu)).
* Permite grants separados para named collections (por exemplo, para que seja possível conceder acesso a `SHOW/CREATE/ALTER/DROP named collection` apenas a determinadas coleções, em vez de a todas de uma só vez). Fecha [#40894](https://github.com/ClickHouse/ClickHouse/issues/40894). Adiciona o novo tipo de acesso `NAMED_COLLECTION_CONTROL`, que não é concedido ao usuário `default` a menos que seja explicitamente adicionado à configuração do usuário (ele é necessário para poder executar `GRANT ALL`); além disso, `show_named_collections` não precisa mais ser especificado manualmente para que o usuário `default` tenha direitos de acesso completos, como acontecia na versão 23.2. [#46241](https://github.com/ClickHouse/ClickHouse/pull/46241) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Permitir discos personalizados aninhados. Antes, os discos personalizados suportavam apenas uma estrutura de discos plana. [#47106](https://github.com/ClickHouse/ClickHouse/pull/47106) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adiciona a função `widthBucket` (com o alias `WIDTH_BUCKET` para compatibilidade). [#42974](https://github.com/ClickHouse/ClickHouse/issues/42974). [#46790](https://github.com/ClickHouse/ClickHouse/pull/46790) ([avoiderboi](https://github.com/avoiderboi)).
* Adiciona a nova função `parseDateTime`/`parseDateTimeInJodaSyntax` de acordo com a string de formato especificada. `parseDateTime` converte `String` em `DateTime` na sintaxe MySQL, e `parseDateTimeInJodaSyntax` converte na sintaxe Joda. [#46815](https://github.com/ClickHouse/ClickHouse/pull/46815) ([李扬](https://github.com/taiyang-li)).
* Use `dummy UInt8` como estrutura padrão da função de tabela `null`. Fecha [#46930](https://github.com/ClickHouse/ClickHouse/issues/46930). [#47006](https://github.com/ClickHouse/ClickHouse/pull/47006) ([flynn](https://github.com/ucasfl)).
* Suporte a formato de data com vírgula, como `Dec 15, 2021`, na função `parseDateTimeBestEffort`. Fecha [#46816](https://github.com/ClickHouse/ClickHouse/issues/46816). [#47071](https://github.com/ClickHouse/ClickHouse/pull/47071) ([chen](https://github.com/xiedeyantu)).
* Adicionadas as configurações `http_wait_end_of_query` e `http_response_buffer_size`, que correspondem aos parâmetros de URL `wait_end_of_query` e `buffer_size` da interface HTTP. Isso permite alterar essas configurações nos perfis. [#47108](https://github.com/ClickHouse/ClickHouse/pull/47108) ([Vladimir C](https://github.com/vdimir)).
* Adiciona a tabela `system.dropped_tables`, que mostra as tabelas removidas de bancos de dados `Atomic`, mas que ainda não foram totalmente excluídas. [#47364](https://github.com/ClickHouse/ClickHouse/pull/47364) ([chen](https://github.com/xiedeyantu)).
* Adiciona `INSTR` como alias de `positionCaseInsensitive` para compatibilidade com o MySQL. Fecha [#47529](https://github.com/ClickHouse/ClickHouse/issues/47529). [#47535](https://github.com/ClickHouse/ClickHouse/pull/47535) ([flynn](https://github.com/ucasfl)).
* Adicionada a função `toDecimalString`, que permite converter números em string com precisão fixa. [#47838](https://github.com/ClickHouse/ClickHouse/pull/47838) ([Andrey Zvonov](https://github.com/zvonand)).
* Adiciona uma configuração do MergeTree `max_number_of_mutations_for_replica`. Ela limita o número de mutações de partes por réplica ao valor especificado. Zero significa que não há limite para o número de mutações por réplica (a execução ainda pode ser restringida por outras configurações). [#48047](https://github.com/ClickHouse/ClickHouse/pull/48047) ([Vladimir C](https://github.com/vdimir)).
* Adiciona a função relacionada a map `mapFromArrays`, que permite criar um map a partir de um par de arrays. [#31125](https://github.com/ClickHouse/ClickHouse/pull/31125) ([李扬](https://github.com/taiyang-li)).
* Permite controlar a compressão nos formatos de saída Parquet/ORC/Arrow e adiciona suporte a mais formatos de entrada com compressão. Isso fecha [#13541](https://github.com/ClickHouse/ClickHouse/issues/13541). [#47114](https://github.com/ClickHouse/ClickHouse/pull/47114) ([Kruglov Pavel](https://github.com/Avogar)).
* Adiciona autenticação por certificado SSL de usuário ao protocolo nativo. Fecha [#47077](https://github.com/ClickHouse/ClickHouse/issues/47077). [#47596](https://github.com/ClickHouse/ClickHouse/pull/47596) ([Nikolay Degterinsky](https://github.com/evillique)).
* Adicionadas as variantes \*OrNull() e \*OrZero() para `parseDateTime`, e adicionado o alias `str_to_date` para compatibilidade com o MySQL. [#48000](https://github.com/ClickHouse/ClickHouse/pull/48000) ([Robert Schulze](https://github.com/rschu1ze)).
* Adicionado o operador `REGEXP` (semelhante aos operadores "LIKE", "IN", "MOD" etc.) para maior compatibilidade com o MySQL [#47869](https://github.com/ClickHouse/ClickHouse/pull/47869) ([Robert Schulze](https://github.com/rschu1ze)).

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

* As marcas em memória agora são compactadas e usam de 3 a 6x menos memória. [#47290](https://github.com/ClickHouse/ClickHouse/pull/47290) ([Michael Kolupaev](https://github.com/al13n321)).
* Backups com grandes quantidades de arquivos eram inacreditavelmente lentos nas versões anteriores. Não mais. Agora estão inacreditavelmente rápidos. [#47251](https://github.com/ClickHouse/ClickHouse/pull/47251) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Foi introduzido um pool de threads separado para as operações de E/S dos backups. Isso permitirá escalá-lo independentemente dos outros pools e aumentar o desempenho. [#47174](https://github.com/ClickHouse/ClickHouse/pull/47174) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). Use a solicitação MultiRead e novas tentativas para coletar metadados na etapa final do processamento do backup. [#47243](https://github.com/ClickHouse/ClickHouse/pull/47243) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). Se um backup e os dados que estão sendo restaurados estiverem ambos no S3, a partir de agora deverá ser usada a cópia no lado do servidor. [#47546](https://github.com/ClickHouse/ClickHouse/pull/47546) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrigido o excesso de leitura nas consultas com `FINAL`. [#47801](https://github.com/ClickHouse/ClickHouse/pull/47801) ([Nikita Taranov](https://github.com/nickitat)).
* A configuração `max_final_threads` será definida com base no número de núcleos na inicialização do servidor (usando o mesmo algoritmo de `max_threads`). Isso melhora a concorrência da execução de `final` em servidores com um grande número de CPUs. [#47915](https://github.com/ClickHouse/ClickHouse/pull/47915) ([Nikita Taranov](https://github.com/nickitat)).
* Permite executar o pipeline de leitura do Dicionário DIRECT com origem CLICKHOUSE em várias threads. Para habilitar, defina `dictionary_use_async_executor=1` na seção `SETTINGS` da origem na instrução `CREATE DICTIONARY`. [#47986](https://github.com/ClickHouse/ClickHouse/pull/47986) ([Vladimir C](https://github.com/vdimir)).
* Otimiza o desempenho da agregação com uma chave Nullable. [#45772](https://github.com/ClickHouse/ClickHouse/pull/45772) ([LiuNeng](https://github.com/liuneng1994)).
* Implementado o uso do índice `tokenbf_v1` em minúsculas para `hasTokenOrNull`, `hasTokenCaseInsensitive` e `hasTokenCaseInsensitiveOrNull`. [#46252](https://github.com/ClickHouse/ClickHouse/pull/46252) ([ltrk2](https://github.com/ltrk2)).
* Otimize as funções `position` e `LIKE` com a busca pelos dois primeiros caracteres usando SIMD. [#46289](https://github.com/ClickHouse/ClickHouse/pull/46289) ([Jiebin Sun](https://github.com/jiebinn)).
* Otimizadas as queries em `system.detached_parts`, que podiam ser significativamente grandes. Adicionadas várias fontes em relação à limitação de tamanho do bloco; em cada bloco, um pool de threads de E/S é usado para calcular o tamanho da parte, ou seja, para fazer chamadas de sistema em paralelo. [#46624](https://github.com/ClickHouse/ClickHouse/pull/46624) ([Sema Checherinda](https://github.com/CheSema)).
* Aumenta o valor padrão de `max_replicated_merges_in_queue` para tabelas ReplicatedMergeTree de 16 para 1000. Isso permite operações de merge em segundo plano mais rápidas em clusters com um número muito grande de réplicas, como clusters com armazenamento compartilhado no ClickHouse Cloud. [#47050](https://github.com/ClickHouse/ClickHouse/pull/47050) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Atualizado o `clickhouse-copier` para usar `GROUP BY` em vez de `DISTINCT` para obter a lista de partições. Em tabelas grandes, isso reduziu o tempo de consulta de mais de 500s para menos de 1s. [#47386](https://github.com/ClickHouse/ClickHouse/pull/47386) ([Clayton McClure](https://github.com/cmcclure-twilio)).
* Corrigida a degradação de desempenho em `ASOF JOIN`. [#47544](https://github.com/ClickHouse/ClickHouse/pull/47544) ([Ongkong](https://github.com/ongkong)).
* Ainda mais processamento em lotes no Keeper. Melhora o desempenho ao evitar dividir lotes em solicitações de leitura. [#47978](https://github.com/ClickHouse/ClickHouse/pull/47978) ([Antonio Andelic](https://github.com/antonio2368)).
* Permitir PREWHERE para Merge com diferentes expressões DEFAULT nas colunas. [#46831](https://github.com/ClickHouse/ClickHouse/pull/46831) ([Azat Khuzhin](https://github.com/azat)).

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

* Réplicas paralelas: melhorou o desempenho geral ao aproveitar melhor a réplica local e passou a proibir, por padrão, a leitura com réplicas paralelas em MergeTree não replicado. [#47858](https://github.com/ClickHouse/ClickHouse/pull/47858) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Suporte ao push down de filtro para a tabela da esquerda em JOIN com tabelas `Join`, `Dictionary` e `EmbeddedRocksDB` se o analisador experimental estiver habilitado. [#47280](https://github.com/ClickHouse/ClickHouse/pull/47280) ([Maksim Kita](https://github.com/kitaisreal)).
* Agora, o ReplicatedMergeTree com replicação zero copy gera menos carga no Keeper. [#47676](https://github.com/ClickHouse/ClickHouse/pull/47676) ([alesapin](https://github.com/alesapin)).
* Corrigida a criação de visão materializada com MaterializedPostgreSQL [#40807](https://github.com/ClickHouse/ClickHouse/pull/40807) ([Maksim Buren](https://github.com/maks-buren630501)).

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

* Habilite `input_format_json_ignore_unknown_keys_in_named_tuple` por padrão. [#46742](https://github.com/ClickHouse/ClickHouse/pull/46742) ([Kruglov Pavel](https://github.com/Avogar)).
* Permitir ignorar erros ao enviar para MATERIALIZED VIEW (adiciona a nova configuração `materialized_views_ignore_errors`, com padrão `false`, mas ela é definida como `true` para fazer flush dos logs nas tabelas `system.*_log` incondicionalmente). [#46658](https://github.com/ClickHouse/ClickHouse/pull/46658) ([Azat Khuzhin](https://github.com/azat)).
* Rastreie em memória a fila de arquivos de envios distribuídos. [#45491](https://github.com/ClickHouse/ClickHouse/pull/45491) ([Azat Khuzhin](https://github.com/azat)).
* Agora, os headers `X-ClickHouse-Query-Id` e `X-ClickHouse-Timezone` são adicionados às respostas de todas as consultas via protocolo HTTP. Antes, isso era feito apenas para consultas `SELECT`. [#46364](https://github.com/ClickHouse/ClickHouse/pull/46364) ([Anton Popov](https://github.com/CurtizJ)).
* Tabelas externas de `MongoDB`: suporte à conexão com um conjunto de réplicas por meio de uma URI com uma enumeração de host:port e suporte à opção readPreference em dicionários do MongoDB. Exemplo de URI: `mongodb://db0.example.com:27017,db1.example.com:27017,db2.example.com:27017/?replicaSet=myRepl&amp;readPreference=primary`. [#46524](https://github.com/ClickHouse/ClickHouse/pull/46524) ([artem-yadr](https://github.com/artem-yadr)).
* Esta melhoria deve ser imperceptível para você. Reimplementada a análise de projection com base no plano de consulta. Adicionada a configuração `query_plan_optimize_projection=1` para alternar entre a versão antiga e a nova. Corrige [#44963](https://github.com/ClickHouse/ClickHouse/issues/44963). [#46537](https://github.com/ClickHouse/ClickHouse/pull/46537) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Use o formato Parquet v2 em vez do v1 como padrão no formato de saída. Adicione a configuração `output_format_parquet_version` para controlar a versão do Parquet, com os possíveis valores `1.0`, `2.4`, `2.6`, `2.latest` (padrão). [#46617](https://github.com/ClickHouse/ClickHouse/pull/46617) ([Kruglov Pavel](https://github.com/Avogar)).
* Agora é possível usar a nova sintaxe de configuração para configurar tópicos do Kafka com ponto (`.`) no nome. [#46752](https://github.com/ClickHouse/ClickHouse/pull/46752) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige heurísticas que verificam padrões do hyperscan em busca de repetições problemáticas. [#46819](https://github.com/ClickHouse/ClickHouse/pull/46819) ([Robert Schulze](https://github.com/rschu1ze)).
* Não reporte em system.errors que o nó ZK já existe quando um bloco tiver sido criado simultaneamente por uma réplica diferente. [#46820](https://github.com/ClickHouse/ClickHouse/pull/46820) ([Raúl Marín](https://github.com/Algunenano)).
* Aumente o limite de arquivos abertos no `clickhouse-local`. Ele poderá ler tabelas `web` em servidores com um grande número de núcleos de CPU. Não interrompa a leitura do mecanismo de tabela URL em caso de arquivos abertos demais. Isso encerra [#46852](https://github.com/ClickHouse/ClickHouse/issues/46852). [#46853](https://github.com/ClickHouse/ClickHouse/pull/46853) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* As exceções geradas quando não é possível analisar números agora têm uma mensagem de exceção mais fácil de entender. [#46917](https://github.com/ClickHouse/ClickHouse/pull/46917) ([Robert Schulze](https://github.com/rschu1ze)).
* Adicionada atualização em `system.backups` após cada tarefa processada para acompanhar o progresso dos backups. [#46989](https://github.com/ClickHouse/ClickHouse/pull/46989) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Permite a conversão de tipos no formato de entrada Native. Adicionada a configuração `input_format_native_allow_types_conversion` para controlar isso (ativada por padrão). [#46990](https://github.com/ClickHouse/ClickHouse/pull/46990) ([Kruglov Pavel](https://github.com/Avogar)).
* Permite usar IPv4 na função `range` para gerar intervalos de IP. [#46995](https://github.com/ClickHouse/ClickHouse/pull/46995) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Aprimora a mensagem de exceção quando não é possível mover uma parte de um volume/disco para outro. [#47032](https://github.com/ClickHouse/ClickHouse/pull/47032) ([alesapin](https://github.com/alesapin)).
* Adicionado suporte ao tipo `Bool` na função `JSONType`. Anteriormente, o tipo `Null` era retornado por engano para valores booleanos. [#47046](https://github.com/ClickHouse/ClickHouse/pull/47046) ([Anton Popov](https://github.com/CurtizJ)).
* Use o parâmetro `_request_body` para configurar consultas HTTP predefinidas. [#47086](https://github.com/ClickHouse/ClickHouse/pull/47086) ([Constantine Peresypkin](https://github.com/pkit)).
* Indentação automática no SQL Editor da UI integrada ao pressionar Enter. [#47113](https://github.com/ClickHouse/ClickHouse/pull/47113) ([Alexey Korepanov](https://github.com/alexkorep)).
* A autoextração com 'sudo' tentará definir o UID e o GID dos arquivos extraídos para o usuário em execução. [#47116](https://github.com/ClickHouse/ClickHouse/pull/47116) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Anteriormente, o segundo argumento da função `repeat` aceitava apenas um tipo inteiro sem sinal, o que significava que não podia receber valores como -1. Esse comportamento diferia do da função do Spark. Nesta atualização, a função `repeat` foi modificada para corresponder ao comportamento da função do Spark. Agora, ela aceita os mesmos tipos de entrada, incluindo inteiros negativos. Foram realizados testes extensivos para verificar a correção da implementação atualizada. [#47134](https://github.com/ClickHouse/ClickHouse/pull/47134) ([KevinyhZou](https://github.com/KevinyhZou)). Observação: a entrada de changelog foi reescrita pelo ChatGPT.
* Remover a parte `::__1` dos stacktraces. Exibir `std::basic_string<char, ...` como `String` nos stacktraces. [#47171](https://github.com/ClickHouse/ClickHouse/pull/47171) ([Mike Kot](https://github.com/myrrc)).
* Reimplementação do modo interservidor para evitar ataques de repetição (observe que essa alteração é retrocompatível com servidores mais antigos). [#47213](https://github.com/ClickHouse/ClickHouse/pull/47213) ([Azat Khuzhin](https://github.com/azat)).
* Melhora no reconhecimento de grupos de expressões regulares e aprimoramento do dicionário regexp\_tree. [#47218](https://github.com/ClickHouse/ClickHouse/pull/47218) ([Han Fei](https://github.com/hanfei1991)).
* Melhoria no Keeper: adiciona um novo 4LW `clrs` para limpar os recursos usados pelo Keeper (por exemplo, liberar memória não utilizada). [#47256](https://github.com/ClickHouse/ClickHouse/pull/47256) ([Antonio Andelic](https://github.com/antonio2368)).
* Adiciona argumentos opcionais aos codecs `DoubleDelta(bytes_size)`, `Gorilla(bytes_size)`, `FPC(level, float_size)`, o que permite usar esses codecs no `clickhouse-compressor` sem o tipo da coluna. Corrige possíveis interrupções e erros aritméticos no `clickhouse-compressor` com esses codecs. Correção: [https://github.com/ClickHouse/ClickHouse/discussions/47262](https://github.com/ClickHouse/ClickHouse/discussions/47262). [#47271](https://github.com/ClickHouse/ClickHouse/pull/47271) ([Kruglov Pavel](https://github.com/Avogar)).
* Adicionado suporte a tipos bigint na função `runningDifference`. Fecha [#47194](https://github.com/ClickHouse/ClickHouse/issues/47194). [#47322](https://github.com/ClickHouse/ClickHouse/pull/47322) ([Nikolay Degterinsky](https://github.com/evillique)).
* Adiciona uma janela de expiração para credenciais do S3 com prazo de expiração, a fim de evitar erros `ExpiredToken` em alguns casos extremos. Isso pode ser controlado pela configuração `expiration_window_seconds`; o padrão é 120 segundos. [#47423](https://github.com/ClickHouse/ClickHouse/pull/47423) ([Antonio Andelic](https://github.com/antonio2368)).
* Adicionado suporte a Decimals e Date32 no formato `Avro`. [#47434](https://github.com/ClickHouse/ClickHouse/pull/47434) ([Kruglov Pavel](https://github.com/Avogar)).
* Não inicie o servidor se for detectada uma conversão interrompida de `Ordinary` para `Atomic`; exiba uma mensagem de erro mais clara com instruções de solução de problemas. [#47487](https://github.com/ClickHouse/ClickHouse/pull/47487) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Adiciona uma nova coluna `kind` à `system.opentelemetry_span_log`. Essa coluna armazena o valor de [SpanKind](https://opentelemetry.io/docs/reference/specification/trace/api/#spankind) definido no OpenTelemetry. [#47499](https://github.com/ClickHouse/ClickHouse/pull/47499) ([Frank Chen](https://github.com/FrankChen021)).
* Permite ler/gravar arrays aninhados no formato `Protobuf` usando apenas o nome do campo raiz como nome da coluna. Antes, o nome da coluna precisava conter todos os nomes dos campos aninhados (como `a.b.c Array(Array(Array(UInt32)))`, mas agora você pode usar apenas `a Array(Array(Array(UInt32)))`. [#47650](https://github.com/ClickHouse/ClickHouse/pull/47650) ([Kruglov Pavel](https://github.com/Avogar)).
* Adicionado um modificador `STRICT` opcional para `SYSTEM SYNC REPLICA`, que faz a consulta aguardar até que a fila de replicação fique vazia (como funcionava antes em [https://github.com/ClickHouse/ClickHouse/pull/45648](https://github.com/ClickHouse/ClickHouse/pull/45648)). [#47659](https://github.com/ClickHouse/ClickHouse/pull/47659) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Melhora os nomes de alguns logs de spans do OpenTelemetry. [#47667](https://github.com/ClickHouse/ClickHouse/pull/47667) ([Frank Chen](https://github.com/FrankChen021)).
* Impede o uso de cadeias excessivamente longas de combinadores de funções de agregação (isso pode levar a consultas lentas na etapa de análise). Isso fecha [#47715](https://github.com/ClickHouse/ClickHouse/issues/47715). [#47716](https://github.com/ClickHouse/ClickHouse/pull/47716) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suporte a subconsulta em views parametrizadas; corrige [#46741](https://github.com/ClickHouse/ClickHouse/issues/46741) [#47725](https://github.com/ClickHouse/ClickHouse/pull/47725) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Corrigido vazamento de memória na integração com MySQL (reproduzido com `connection_auto_close=1`). [#47732](https://github.com/ClickHouse/ClickHouse/pull/47732) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Melhoria no tratamento de erros no código relacionado a parâmetros Decimal, resultando em mensagens de erro mais informativas. Antes, quando parâmetros Decimal incorretos eram fornecidos, a mensagem de erro gerada era pouco clara ou pouco útil. Com esta atualização, a mensagem de erro exibida foi corrigida para fornecer informações mais detalhadas e úteis, facilitando a identificação e a correção de problemas relacionados a parâmetros Decimal. [#47812](https://github.com/ClickHouse/ClickHouse/pull/47812) ([Yu Feng](https://github.com/Vigor-jpg)). Observação: esta entrada de changelog foi reescrita pelo ChatGPT.
* O parâmetro `exact_rows_before_limit` é usado para fazer com que `rows_before_limit_at_least` reflita com precisão o número de linhas retornadas antes de o limite ser atingido. Este pull request corrige problemas encontrados quando a consulta envolve processamento distribuído em vários shards ou operações de ordenação. Antes desta atualização, esses cenários não funcionavam como esperado. [#47874](https://github.com/ClickHouse/ClickHouse/pull/47874) ([Amos Bird](https://github.com/amosbird)).
* Introspecção das métricas de ThreadPools. [#47880](https://github.com/ClickHouse/ClickHouse/pull/47880) ([Azat Khuzhin](https://github.com/azat)).
* Adiciona os eventos de perfil `WriteBufferFromS3Microseconds` e `WriteBufferFromS3RequestsErrors`. [#47885](https://github.com/ClickHouse/ClickHouse/pull/47885) ([Antonio Andelic](https://github.com/antonio2368)).
* Adicionadas as opções `--link` e `--noninteractive` (`-y`) à instalação do ClickHouse. Corrige [#47750](https://github.com/ClickHouse/ClickHouse/issues/47750). [#47887](https://github.com/ClickHouse/ClickHouse/pull/47887) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrigida a exceção `UNKNOWN_TABLE` ao fazer attach de uma visão materializada com tabelas dependentes indisponíveis. Isso pode ser útil ao tentar restaurar o estado a partir de um backup. [#47975](https://github.com/ClickHouse/ClickHouse/pull/47975) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Corrigido o caso em que o `path` (opcional) não é adicionado à configuração de um disco criptografado. [#47981](https://github.com/ClickHouse/ClickHouse/pull/47981) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Suporte a CTE em views parametrizadas Implementação: implementação atualizada para permitir parâmetros de consulta durante a avaliação de subconsultas escalares. [#48065](https://github.com/ClickHouse/ClickHouse/pull/48065) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Suporte a inteiros grandes `(U)Int128/(U)Int256`, `Map` com qualquer tipo de chave e `DateTime64` com qualquer nível de precisão (não apenas 3 e 6). [#48119](https://github.com/ClickHouse/ClickHouse/pull/48119) ([Kruglov Pavel](https://github.com/Avogar)).
* Permitir ignorar erros relacionados a valores enum desconhecidos em formatos de entrada por linha. [#48133](https://github.com/ClickHouse/ClickHouse/pull/48133) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* O ClickHouse agora é compilado com `C++23`. [#47424](https://github.com/ClickHouse/ClickHouse/pull/47424) ([Robert Schulze](https://github.com/rschu1ze)).
* Faz fuzzing de queries `EXPLAIN` no AST Fuzzer. [#47803](https://github.com/ClickHouse/ClickHouse/pull/47803) [#47852](https://github.com/ClickHouse/ClickHouse/pull/47852) ([flynn](https://github.com/ucasfl)).
* Separou o teste de estresse da verificação automatizada de compatibilidade retroativa (agora Upgrade check). [#44879](https://github.com/ClickHouse/ClickHouse/pull/44879) ([Kruglov Pavel](https://github.com/Avogar)).
* Atualizou a imagem Ubuntu do Docker para amenizar alguns alertas de segurança incorretos. [#46784](https://github.com/ClickHouse/ClickHouse/pull/46784) ([Julio Jimenez](https://github.com/juliojimenez)). Observe que o ClickHouse não tem dependências e não requer Docker.
* Adiciona um prompt para permitir a remoção de um download existente de `clickhouse` ao usar o download do ClickHouse com "curl | sh". O prompt é "ClickHouse binary clickhouse already exists. Overwrite? \[y/N]". [#46859](https://github.com/ClickHouse/ClickHouse/pull/46859) ([Dan Roscigno](https://github.com/DanRoscigno)).
* Corrige um error durante a inicialização do servidor em distribuições antigas (por exemplo, Amazon Linux 2) e em ARM, quando os símbolos da glibc 2.28 não são encontrados. [#47008](https://github.com/ClickHouse/ClickHouse/pull/47008) ([Robert Schulze](https://github.com/rschu1ze)).
* Prepara para o clang 16. [#47027](https://github.com/ClickHouse/ClickHouse/pull/47027) ([Amos Bird](https://github.com/amosbird)).
* Adicionou uma check de CI que garante que o ClickHouse possa ser executado com uma glibc antiga em ARM. [#47063](https://github.com/ClickHouse/ClickHouse/pull/47063) ([Robert Schulze](https://github.com/rschu1ze)).
* Adiciona uma Style check para evitar o uso incorreto da macro `NDEBUG`. [#47699](https://github.com/ClickHouse/ClickHouse/pull/47699) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Acelera um pouco a compilação. [#47714](https://github.com/ClickHouse/ClickHouse/pull/47714) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Atualiza `vectorscan` para 5.4.9. [#47955](https://github.com/ClickHouse/ClickHouse/pull/47955) ([Robert Schulze](https://github.com/rschu1ze)).
* Adiciona um teste unitário para garantir que o logging fatal do Apache Arrow não provoque abortamento. Ele cobre as alterações em [ClickHouse/arrow#16](https://github.com/ClickHouse/arrow/pull/16). [#47958](https://github.com/ClickHouse/ClickHouse/pull/47958) ([Arthur Passos](https://github.com/arthurpassos)).
* Restaura a capacidade de inicialização da build nativa de depuração do servidor no macOS. [#48050](https://github.com/ClickHouse/ClickHouse/pull/48050) ([Robert Schulze](https://github.com/rschu1ze)). Observação: esta mudança é relevante apenas para desenvolvimento, pois as builds oficiais do ClickHouse são feitas com compilação cruzada.

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

* Corrige a reinicialização do parser de formatos, testa o processamento de mensagens inválidas no `Kafka` [#45693](https://github.com/ClickHouse/ClickHouse/pull/45693) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige o cálculo do tamanho dos dados no Keeper [#46086](https://github.com/ClickHouse/ClickHouse/pull/46086) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigido um bug nas tentativas automáticas de repetir a consulta `DROP TABLE` com tabelas `ReplicatedMergeTree` e bancos de dados `Atomic`. Em casos raros, isso poderia causar os erros `Can't get data for node /zk_path/log_pointer` e `The specified key does not exist` se a sessão do ZooKeeper expirasse durante o DROP e uma nova tabela replicada com o mesmo caminho no ZooKeeper fosse criada em paralelo. [#46384](https://github.com/ClickHouse/ClickHouse/pull/46384) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige a recursão incorreta de alias durante a normalização de consultas, o que impedia a execução de algumas delas. [#46609](https://github.com/ClickHouse/ClickHouse/pull/46609) ([Raúl Marín](https://github.com/Algunenano)).
* Correção da serialização/desserialização de IPv4/IPv6 em formatos binários [#46616](https://github.com/ClickHouse/ClickHouse/pull/46616) ([Kruglov Pavel](https://github.com/Avogar)).
* ActionsDAG: não alterar o resultado de `and` durante a otimização [#46653](https://github.com/ClickHouse/ClickHouse/pull/46653) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Melhoria no cancelamento de consultas quando um cliente falha [#46681](https://github.com/ClickHouse/ClickHouse/pull/46681) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Correção de operações aritméticas na otimização de agregação [#46705](https://github.com/ClickHouse/ClickHouse/pull/46705) ([Duc Canh Le](https://github.com/canhld94)).
* Corrige possível falha do `clickhouse-local` durante a inferência de esquema do JSONEachRow [#46731](https://github.com/ClickHouse/ClickHouse/pull/46731) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrigida a alteração de uma Role expirada [#46772](https://github.com/ClickHouse/ClickHouse/pull/46772) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrigido o acúmulo combinado de colunas PREWHERE de várias etapas [#46785](https://github.com/ClickHouse/ClickHouse/pull/46785) ([Alexander Gololobov](https://github.com/davenger)).
* Use o intervalo inicial para determinar o tamanho do arquivo no buffer de leitura HTTP. Sem essa alteração, alguns arquivos remotos não podiam ser processados. [#46824](https://github.com/ClickHouse/ClickHouse/pull/46824) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige a barra de progresso incorreta ao usar tabelas URL [#46830](https://github.com/ClickHouse/ClickHouse/pull/46830) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige relatório do MSan na função `maxIntersections` [#46847](https://github.com/ClickHouse/ClickHouse/pull/46847) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um erro no tipo de dado `Map` [#46856](https://github.com/ClickHouse/ClickHouse/pull/46856) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige resultados incorretos de algumas buscas com `LIKE` quando o padrão `LIKE` contém caracteres não escapáveis entre aspas [#46875](https://github.com/ClickHouse/ClickHouse/pull/46875) ([Robert Schulze](https://github.com/rschu1ze)).
* Correção - WITH FILL causava um encerramento abrupto quando o Filling Transform processava um bloco vazio [#46897](https://github.com/ClickHouse/ClickHouse/pull/46897) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige a inferência de data e inteiro a partir de string em JSON [#46972](https://github.com/ClickHouse/ClickHouse/pull/46972) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige bug na escolha do disco da replicação zero-copy durante o fetch [#47010](https://github.com/ClickHouse/ClickHouse/pull/47010) ([alesapin](https://github.com/alesapin)).
* Corrigido um erro de digitação na definição do serviço systemd [#47051](https://github.com/ClickHouse/ClickHouse/pull/47051) ([Palash Goel](https://github.com/palash-goel)).
* Corrigido o erro NOT\_IMPLEMENTED com CROSS JOIN e algorithm = auto [#47068](https://github.com/ClickHouse/ClickHouse/pull/47068) ([Vladimir C](https://github.com/vdimir)).
* Corrigido o problema em que a tabela 'ReplicatedMergeTree' falhava ao inserir dois registros semelhantes quando o 'part\_type' estava configurado no modo 'InMemory' (recurso experimental). [#47121](https://github.com/ClickHouse/ClickHouse/pull/47121) ([liding1992](https://github.com/liding1992)).
* Dicionários externos / library-bridge: corrigido o erro "método desconhecido da biblioteca 'extDict\_libClone'" [#47136](https://github.com/ClickHouse/ClickHouse/pull/47136) ([alex filatov](https://github.com/phil-88)).
* Corrige uma condição de corrida em um grace hash join com limite [#47153](https://github.com/ClickHouse/ClickHouse/pull/47153) ([Vladimir C](https://github.com/vdimir)).
* Corrigido o suporte do PREWHERE para colunas concretas [#47154](https://github.com/ClickHouse/ClickHouse/pull/47154) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido um possível deadlock no status da consulta [#47161](https://github.com/ClickHouse/ClickHouse/pull/47161) ([Kruglov Pavel](https://github.com/Avogar)).
* Proibir `insert select` na mesma tabela `Join`, pois isso leva a um deadlock [#47260](https://github.com/ClickHouse/ClickHouse/pull/47260) ([Vladimir C](https://github.com/vdimir)).
* Ignorar partições já mescladas nas mesclagens de `min_age_to_force_merge_seconds` [#47303](https://github.com/ClickHouse/ClickHouse/pull/47303) ([Antonio Andelic](https://github.com/antonio2368)).
* Modificar find\_first\_symbols para que funcione como esperado com find\_first\_not\_symbols [#47304](https://github.com/ClickHouse/ClickHouse/pull/47304) ([Arthur Passos](https://github.com/arthurpassos)).
* Corrigida a inferência de números grandes em CSV [#47410](https://github.com/ClickHouse/ClickHouse/pull/47410) ([Kruglov Pavel](https://github.com/Avogar)).
* Desabilitado o otimizador de expressões lógicas para expressões com aliases. [#47451](https://github.com/ClickHouse/ClickHouse/pull/47451) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigido erro em `decodeURLComponent` [#47457](https://github.com/ClickHouse/ClickHouse/pull/47457) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correção do gráfico do EXPLAIN com projection [#47473](https://github.com/ClickHouse/ClickHouse/pull/47473) ([flynn](https://github.com/ucasfl)).
* Corrigidos os parâmetros de consulta [#47488](https://github.com/ClickHouse/ClickHouse/pull/47488) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* View parametrizada: uma correção de bug. [#47495](https://github.com/ClickHouse/ClickHouse/pull/47495) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Fuzzer para formatos de dados e as correções correspondentes. [#47519](https://github.com/ClickHouse/ClickHouse/pull/47519) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a verificação de monotonicidade de `DateTime64` [#47526](https://github.com/ClickHouse/ClickHouse/pull/47526) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige a "incompatibilidade na estrutura do bloco" para uma coluna Nullable LowCardinality [#47537](https://github.com/ClickHouse/ClickHouse/pull/47537) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correção correta de um bug no Apache Parquet [#45878](https://github.com/ClickHouse/ClickHouse/issues/45878) [#47538](https://github.com/ClickHouse/ClickHouse/pull/47538) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige a análise paralela de `BSONEachRow` quando o tamanho do documento é inválido [#47540](https://github.com/ClickHouse/ClickHouse/pull/47540) ([Kruglov Pavel](https://github.com/Avogar)).
* Preserva o erro em `system.distribution_queue` no `SYSTEM FLUSH DISTRIBUTED` [#47541](https://github.com/ClickHouse/ClickHouse/pull/47541) ([Azat Khuzhin](https://github.com/azat)).
* Verificação de colunas duplicadas no formato `BSONEachRow` [#47609](https://github.com/ClickHouse/ClickHouse/pull/47609) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrigida a espera pelo bloqueio de zero copy durante a movimentação [#47631](https://github.com/ClickHouse/ClickHouse/pull/47631) ([alesapin](https://github.com/alesapin)).
* Corrigida a agregação por partições [#47634](https://github.com/ClickHouse/ClickHouse/pull/47634) ([Nikita Taranov](https://github.com/nickitat)).
* Corrigido erro na serialização de tuple como array no formato `BSONEachRow` [#47690](https://github.com/ClickHouse/ClickHouse/pull/47690) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige travamento em `polygonsSymDifferenceCartesian` [#47702](https://github.com/ClickHouse/ClickHouse/pull/47702) ([pufit](https://github.com/pufit)).
* Corrigida a leitura, no armazenamento `File`, de arquivos compactados com compressão `zlib` e `gzip` [#47796](https://github.com/ClickHouse/ClickHouse/pull/47796) ([Anton Popov](https://github.com/CurtizJ)).
* Melhora na detecção de consultas vazias no PostgreSQL (para o driver pgx em Golang) [#47854](https://github.com/ClickHouse/ClickHouse/pull/47854) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida a verificação da monotonicidade de DateTime em tipos LowCardinality [#47860](https://github.com/ClickHouse/ClickHouse/pull/47860) ([Antonio Andelic](https://github.com/antonio2368)).
* Use restore\_threads (não backup\_threads) para RESTORE ASYNC [#47861](https://github.com/ClickHouse/ClickHouse/pull/47861) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido o DROP COLUMN com ReplicatedMergeTree contendo projeções [#47883](https://github.com/ClickHouse/ClickHouse/pull/47883) ([Antonio Andelic](https://github.com/antonio2368)).
* Correção para a recuperação do banco de dados Replicated [#47901](https://github.com/ClickHouse/ClickHouse/pull/47901) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Correção emergencial para avisos muito verbosos em HTTP [#47903](https://github.com/ClickHouse/ClickHouse/pull/47903) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige o erro "Valor do campo muito longo" em `catboostEvaluate` [#47970](https://github.com/ClickHouse/ClickHouse/pull/47970) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrigido [#36971](https://github.com/ClickHouse/ClickHouse/issues/36971): Watchdog: encerrar com código diferente de zero se o processo filho for encerrado [#47973](https://github.com/ClickHouse/ClickHouse/pull/47973) ([Коренберг Марк](https://github.com/socketpair)).
* Correção para "o arquivo de índice `cidx` está mais longo do que o esperado" [#48010](https://github.com/ClickHouse/ClickHouse/pull/48010) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Corrige a consulta do MaterializedPostgreSQL para obter atributos (identidade da réplica) [#48015](https://github.com/ClickHouse/ClickHouse/pull/48015) ([Solomatov Sergei](https://github.com/solomatovs)).
* parseDateTime(): Corrige UB (overflow de inteiro com sinal) [#48019](https://github.com/ClickHouse/ClickHouse/pull/48019) ([Robert Schulze](https://github.com/rschu1ze)).
* Use nomes exclusivos para Records no Avro para evitar reutilizar o esquema deles [#48057](https://github.com/ClickHouse/ClickHouse/pull/48057) ([Kruglov Pavel](https://github.com/Avogar)).
* Definir corretamente os tempos limite do socket TCP/HTTP no Keeper [#48108](https://github.com/ClickHouse/ClickHouse/pull/48108) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigida possível chamada de membro em ponteiro nulo no formato `Avro` [#48184](https://github.com/ClickHouse/ClickHouse/pull/48184) ([Kruglov Pavel](https://github.com/Avogar)).

### <a id="232" /> Lançamento do ClickHouse 23.2, 2023-02-23. [Apresentação](https://presentations.clickhouse.com/2023-release-23.2/), [Vídeo](https://www.youtube.com/watch?v=2o0vRMMIrkY)

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

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

* Estende a função "toDayOfWeek()" (alias: "DAYOFWEEK") com um argumento de modo que define se a semana começa na segunda-feira ou no domingo e se a contagem começa em 0 ou 1. Para manter a consistência com outras funções de date time, o argumento de modo foi inserido entre os argumentos de tempo e fuso horário. Isso quebra o uso existente da sintaxe de 2 argumentos (antes não documentada) "toDayOfWeek(time, time\_zone)". A correção é reescrever a função como "toDayOfWeek(time, 0, time\_zone)". [#45233](https://github.com/ClickHouse/ClickHouse/pull/45233) ([Robert Schulze](https://github.com/rschu1ze)).
* Renomeia a configuração `max_query_cache_size` para `filesystem_cache_max_download_size`. [#45614](https://github.com/ClickHouse/ClickHouse/pull/45614) ([Kseniia Sumarokova](https://github.com/kssenii)).
* O usuário `default` não terá, por padrão, permissões para o tipo de acesso `SHOW NAMED COLLECTION` (por exemplo, o usuário `default` não poderá mais conceder ALL a outros usuários como antes; portanto, este PR é incompatível com versões anteriores). [#46010](https://github.com/ClickHouse/ClickHouse/pull/46010) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Se a cláusula SETTINGS for especificada antes da cláusula FORMAT, as configurações também serão aplicadas à formatação. [#46003](https://github.com/ClickHouse/ClickHouse/pull/46003) ([Azat Khuzhin](https://github.com/azat)).
* Remove o suporte à configuração `materialized_postgresql_allow_automatic_update` (que, por padrão, ficava desativada). [#46106](https://github.com/ClickHouse/ClickHouse/pull/46106) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Melhora ligeiramente o desempenho de `countDigits` em datasets realistas. Isso fechou [#44518](https://github.com/ClickHouse/ClickHouse/issues/44518). Em versões anteriores, `countDigits(0)` retornava `0`; agora retorna `1`, o que é mais correto e está de acordo com a documentação existente. [#46187](https://github.com/ClickHouse/ClickHouse/pull/46187) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Proíbe a criação de novas colunas compactadas com uma combinação dos codecs "Delta" ou "DoubleDelta" seguida pelos codecs "Gorilla" ou "FPC". Isso pode ser contornado usando a configuração "allow\_suspicious\_codecs = true". [#45652](https://github.com/ClickHouse/ClickHouse/pull/45652) ([Robert Schulze](https://github.com/rschu1ze)).

<div id="new-feature">
  #### Nova funcionalidade
</div>

* Adicionar `StorageIceberg` e a função de tabela `iceberg` para acessar tabelas Iceberg armazenadas no S3. [#45384](https://github.com/ClickHouse/ClickHouse/pull/45384) ([flynn](https://github.com/ucasfl)).
* Permite configurar o armazenamento com `SETTINGS disk = '<disk_name>'` (em vez de `storage_policy`) e com a criação explícita de disco `SETTINGS disk = disk(type=s3, ...)`. [#41976](https://github.com/ClickHouse/ClickHouse/pull/41976) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Expor contadores `ProfileEvents` em `system.part_log`. [#38614](https://github.com/ClickHouse/ClickHouse/pull/38614) ([Bharat Nallan](https://github.com/bharatnc)).
* Aprimoramento do engine `ReplacingMergeTree` existente para permitir inserções duplicadas. Ele combina os recursos de `ReplacingMergeTree` e `CollapsingMergeTree` em um único engine MergeTree. Os dados excluídos não são retornados nas consultas, mas também não são removidos do disco. [#41005](https://github.com/ClickHouse/ClickHouse/pull/41005) ([youennL-cs](https://github.com/youennL-cs)).
* Adiciona a função `generateULID`. Fecha [#36536](https://github.com/ClickHouse/ClickHouse/issues/36536). [#44662](https://github.com/ClickHouse/ClickHouse/pull/44662) ([Nikolay Degterinsky](https://github.com/evillique)).
* Adiciona a função de agregação `corrMatrix`, calculando cada par de colunas. Além disso, como as funções de agregação `covarSamp` e `covarPop` são semelhantes a `corr`, adiciono também `covarSampMatrix` e `covarPopMatrix`. @alexey-milovidov fecha [#44587](https://github.com/ClickHouse/ClickHouse/issues/44587). [#44680](https://github.com/ClickHouse/ClickHouse/pull/44680) ([FFFFFFFHHHHHHH](https://github.com/FFFFFFFHHHHHHH)).
* Adiciona a função arrayShuffle para permutações aleatórias de arrays. [#45271](https://github.com/ClickHouse/ClickHouse/pull/45271) ([Joanna Hulboj](https://github.com/jh0x)).
* Suporte aos tipos `FIXED_SIZE_BINARY` no Arrow e `FIXED_LENGTH_BYTE_ARRAY` no `Parquet`, com mapeamento para `FixedString`. Adicionadas as configurações `output_format_parquet_fixed_string_as_fixed_byte_array/output_format_arrow_fixed_string_as_fixed_byte_array` para controlar o tipo de saída padrão de `FixedString`. Fecha [#45326](https://github.com/ClickHouse/ClickHouse/issues/45326). [#45340](https://github.com/ClickHouse/ClickHouse/pull/45340) ([Kruglov Pavel](https://github.com/Avogar)).
* Adiciona uma nova coluna `last_exception_time` a system.replication\_queue. [#45457](https://github.com/ClickHouse/ClickHouse/pull/45457) ([Frank Chen](https://github.com/FrankChen021)).
* Adiciona duas novas funções que permitem usar chaves/sementes definidas pelo usuário com SipHash{64,128}. [#45513](https://github.com/ClickHouse/ClickHouse/pull/45513) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Permite uma versão de três argumentos para a função de tabela `format`. fecha [#45808](https://github.com/ClickHouse/ClickHouse/issues/45808). [#45873](https://github.com/ClickHouse/ClickHouse/pull/45873) ([FFFFFFFHHHHHHH](https://github.com/FFFFFFFHHHHHHH)).
* Adicionado suporte ao formato `JodaTime` para 'x','w','S'. Consulte [https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html). [#46073](https://github.com/ClickHouse/ClickHouse/pull/46073) ([zk\_kiger](https://github.com/zk-kiger)).
* Suporte para a função de janela `ntile`. ([lgbo](https://github.com/lgbo-ustc)).
* Adiciona a configuração `final` para aplicar implicitamente o modificador `FINAL` a cada tabela. [#40945](https://github.com/ClickHouse/ClickHouse/pull/40945) ([Arthur Passos](https://github.com/arthurpassos)).
* Adicionadas as funções `arrayPartialSort` e `arrayPartialReverseSort`. [#46296](https://github.com/ClickHouse/ClickHouse/pull/46296) ([Joanna Hulboj](https://github.com/jh0x)).
* O novo parâmetro HTTP `client_protocol_version` permite definir uma versão do protocolo do cliente para respostas HTTP no formato Native. [#40397](https://github.com/ClickHouse/ClickHouse/issues/40397). [#46360](https://github.com/ClickHouse/ClickHouse/pull/46360) ([Geoff Genz](https://github.com/genzgd)).
* Adiciona a nova função `regexpExtract`, como a função `REGEXP_EXTRACT` do Spark, para compatibilidade. Ela é semelhante à função existente `extract`. [#46469](https://github.com/ClickHouse/ClickHouse/pull/46469) ([李扬](https://github.com/taiyang-li)).
* Adiciona a nova função `JSONArrayLength`, que retorna o número de elementos no array JSON de nível mais externo. A função retorna NULL se a string JSON de entrada for inválida. [#46631](https://github.com/ClickHouse/ClickHouse/pull/46631) ([李扬](https://github.com/taiyang-li)).

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

* A lógica introduzida funciona se a condição PREWHERE for uma conjunção de múltiplas condições (cond1 AND cond2 AND ... ). Ela agrupa em passos as condições que exigem a leitura das mesmas colunas. Após cada passo, a parte correspondente da condição completa é avaliada, e as linhas resultantes podem ser filtradas. Isso permite ler menos linhas nos passos seguintes, economizando largura de banda de E/S e exigindo menos processamento. Por enquanto, essa lógica está desabilitada por padrão. Ela será habilitada por padrão em um dos próximos lançamentos, quando se souber que não causa regressões; portanto, seu uso em testes é fortemente recomendado. Ela pode ser controlada por 2 configurações: "enable\_multiple\_prewhere\_read\_steps" e "move\_all\_conditions\_to\_prewhere". [#46140](https://github.com/ClickHouse/ClickHouse/pull/46140) ([Alexander Gololobov](https://github.com/davenger)).
* Uma opção foi adicionada para agregar partições de forma independente, se a chave de partição da tabela e a chave de agrupamento forem compatíveis. Ela é controlada pela configuração `allow_aggregate_partitions_independently`. Fica desabilitada por padrão devido à aplicabilidade limitada (consulte a documentação). [#45364](https://github.com/ClickHouse/ClickHouse/pull/45364) ([Nikita Taranov](https://github.com/nickitat)).
* Permite usar o algoritmo de mesclagem vertical com partes no formato Compact. Isso permitirá que o servidor ClickHouse use muito menos memória nas operações em segundo plano. Isso fecha [#46084](https://github.com/ClickHouse/ClickHouse/issues/46084). [#45681](https://github.com/ClickHouse/ClickHouse/pull/45681) [#46282](https://github.com/ClickHouse/ClickHouse/pull/46282) ([Anton Popov](https://github.com/CurtizJ)).
* Otimização do leitor de `Parquet` com o uso de um leitor em lote. [#45878](https://github.com/ClickHouse/ClickHouse/pull/45878) ([LiuNeng](https://github.com/liuneng1994)).
* Adicionado o novo método `local_filesystem_read_method` `io_uring`, baseado no subsistema assíncrono do Linux [io\_uring](https://kernel.dk/io_uring.pdf), o que melhora o desempenho de leitura em quase todos os casos em comparação com o método padrão `pread`. [#38456](https://github.com/ClickHouse/ClickHouse/pull/38456) ([Saulius Valatka](https://github.com/sauliusvl)).
* Reescrita de funções de agregação com a expressão `if` como argumento, quando forem logicamente equivalentes. Por exemplo, `avg(if(cond, col, null))` pode ser reescrito como avgIf(cond, col). Isso melhora o desempenho. [#44730](https://github.com/ClickHouse/ClickHouse/pull/44730) ([李扬](https://github.com/taiyang-li)).
* Melhoria no desempenho das funções lower/upper com instruções avx512. [#37894](https://github.com/ClickHouse/ClickHouse/pull/37894) ([yaqi-zhao](https://github.com/yaqi-zhao)).
* Removida a limitação pela qual, em sistemas com >=32 núcleos e SMT desabilitado, o ClickHouse usava apenas metade dos núcleos (caso em que o Hyper Threading é desabilitado na BIOS). [#44973](https://github.com/ClickHouse/ClickHouse/pull/44973) ([Robert Schulze](https://github.com/rschu1ze)).
* Melhora o desempenho da função `multiIf` com execução colunar, com ganho de velocidade de 2,3x. [#45296](https://github.com/ClickHouse/ClickHouse/pull/45296) ([李扬](https://github.com/taiyang-li)).
* Adiciona uma otimização para a função `position` quando a subcadeia buscada está vazia. [#45382](https://github.com/ClickHouse/ClickHouse/pull/45382) ([李扬](https://github.com/taiyang-li)).
* Habilitar a otimização `query_plan_remove_redundant_sorting` por padrão. Otimização implementada em [#45420](https://github.com/ClickHouse/ClickHouse/issues/45420). [#45567](https://github.com/ClickHouse/ClickHouse/pull/45567) ([Igor Nikonov](https://github.com/devcrafter)).
* Aumentado o tamanho dos fragmentos da codificação de transferência HTTP para melhorar o desempenho de consultas grandes usando a interface HTTP. [#45593](https://github.com/ClickHouse/ClickHouse/pull/45593) ([Geoff Genz](https://github.com/genzgd)).
* Melhorado o desempenho de consultas `SELECT` curtas que leem de tabelas com um grande número de colunas `Array`/`Map`/`Nested`. [#45630](https://github.com/ClickHouse/ClickHouse/pull/45630) ([Anton Popov](https://github.com/CurtizJ)).
* Melhora o desempenho da filtragem para inteiros grandes e tipos decimais. [#45949](https://github.com/ClickHouse/ClickHouse/pull/45949) ([李扬](https://github.com/taiyang-li)).
* Essa alteração pode reduzir significativamente a sobrecarga para obter o filtro de `ColumnNullable(UInt8)` e melhorar o desempenho geral das consultas. Para avaliar o impacto dessa alteração, adotamos o benchmark TPC-H, mas alteramos os tipos das colunas de non-nullable para nullable e medimos o QPS das consultas como indicador de desempenho. [#45962](https://github.com/ClickHouse/ClickHouse/pull/45962) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Define as colunas virtuais `_part` e `_partition_id` como do tipo `LowCardinality(String)`. Fecha [#45964](https://github.com/ClickHouse/ClickHouse/issues/45964). [#45975](https://github.com/ClickHouse/ClickHouse/pull/45975) ([flynn](https://github.com/ucasfl)).
* Melhorado o desempenho da conversão de Decimal quando a escala não muda. [#46095](https://github.com/ClickHouse/ClickHouse/pull/46095) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permite aumentar o pré-carregamento na leitura de dados. [#46168](https://github.com/ClickHouse/ClickHouse/pull/46168) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Reescrita de `arrayExists(x -> x = 1, arr)` -> `has(arr, 1)`, melhorando o desempenho em 1,34x. [#46188](https://github.com/ClickHouse/ClickHouse/pull/46188) ([李扬](https://github.com/taiyang-li)).
* Corrigido o uso excessivo de memória nas mesclagens verticais em discos não remotos. Respeitado `max_insert_delayed_streams_for_parallel_write` no disco remoto. [#46275](https://github.com/ClickHouse/ClickHouse/pull/46275) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Atualize o zstd para a v1.5.4. Ela traz pequenas melhorias de desempenho e na taxa de compressão. Se você executar réplicas com versões diferentes do ClickHouse, poderá ver mensagens de erro adequadas `Data after merge/mutation is not byte-identical to data on another replicas.`, com explicação. Essas mensagens são normais, e você não deve se preocupar. [#46280](https://github.com/ClickHouse/ClickHouse/pull/46280) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige a queda de desempenho causada por [#39737](https://github.com/ClickHouse/ClickHouse/issues/39737). [#46309](https://github.com/ClickHouse/ClickHouse/pull/46309) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O handle `replicas_status` responderá rapidamente mesmo no caso de uma fila de replicação grande. [#46310](https://github.com/ClickHouse/ClickHouse/pull/46310) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado suporte a avx512 para a função de agregação `sum`, aritmética unária e comparação. [#37870](https://github.com/ClickHouse/ClickHouse/pull/37870) ([zhao zhou](https://github.com/zzachimed)).
* Reescreveu o código relacionado à distribuição de marcas e à coordenação geral da leitura para obter o máximo ganho de desempenho. Isso fecha [#34527](https://github.com/ClickHouse/ClickHouse/issues/34527). [#43772](https://github.com/ClickHouse/ClickHouse/pull/43772) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Remoção de cláusulas DISTINCT redundantes em consultas (subconsultas). Implementado sobre o plano de consulta. Faz uma otimização semelhante à de `optimize_duplicate_order_by_and_distinct` em relação às cláusulas DISTINCT. Pode ser habilitado por meio da configuração `query_plan_remove_redundant_distinct`. Relacionado a [#42648](https://github.com/ClickHouse/ClickHouse/issues/42648). [#44176](https://github.com/ClickHouse/ClickHouse/pull/44176) ([Igor Nikonov](https://github.com/devcrafter)).
* Algumas otimizações de reescrita de consultas: `sumIf(123, cond) -> 123 * countIf(1, cond)`, `sum(if(cond, 123, 0)) -> 123 * countIf(cond)`, `sum(if(cond, 0, 123)) -> 123 * countIf(not(cond))` [#44728](https://github.com/ClickHouse/ClickHouse/pull/44728) ([李扬](https://github.com/taiyang-li)).
* Foi aprimorada a forma como a mesclagem limitada por memória e a agregação em ordem no topo do plano de consulta interagem. Antes, em alguns casos, recorríamos à ordenação explícita para AIO mesmo quando isso não era necessário. [#45892](https://github.com/ClickHouse/ClickHouse/pull/45892) ([Nikita Taranov](https://github.com/nickitat)).
* As mesclagens concorrentes são agendadas com round-robin por padrão para garantir uma operação justa e sem starvation. Anteriormente, em shards fortemente sobrecarregados, mesclagens grandes podiam acabar preteridas por mesclagens menores devido ao uso de agendamento com prioridade estrita. Foi adicionada a opção de configuração do servidor `background_merges_mutations_scheduling_policy` para selecionar o algoritmo de agendamento (`round_robin` ou `shortest_task_first`). [#46247](https://github.com/ClickHouse/ClickHouse/pull/46247) ([Sergei Trifonov](https://github.com/serxa)).

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

* Ativar novas tentativas de INSERT por padrão em caso de perda da sessão do ZooKeeper. Já usamos isso em produção. [#46308](https://github.com/ClickHouse/ClickHouse/pull/46308) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionada a opção de ignorar chaves desconhecidas em objetos JSON para tuplas nomeadas (`input_format_json_ignore_unknown_keys_in_named_tuple`). [#45678](https://github.com/ClickHouse/ClickHouse/pull/45678) ([Azat Khuzhin](https://github.com/azat)).
* Suporte à otimização da cláusula `where`, movendo a expressão da chave de ordenação para `prewhere`, em consultas com `final`. [#38893](https://github.com/ClickHouse/ClickHouse/issues/38893). [#38950](https://github.com/ClickHouse/ClickHouse/pull/38950) ([hexiaoting](https://github.com/hexiaoting)).
* Adicionadas novas métricas para backups: num\_processed\_files e processed\_files\_size, que descrevem o número real de arquivos processados. [#42244](https://github.com/ClickHouse/ClickHouse/pull/42244) ([Aleksandr](https://github.com/AVMusorin)).
* Adicionadas tentativas novamente em erros de DNS entre servidores. [#43179](https://github.com/ClickHouse/ClickHouse/pull/43179) ([Anton Kozlov](https://github.com/tonickkozlov)).
* Melhoria do Keeper: tentativa de pré-alocar espaço em disco para evitar problemas indefinidos por falta de espaço. Introdução da configuração `max_log_file_size` para definir o tamanho máximo dos arquivos de log do Raft do Keeper. [#44370](https://github.com/ClickHouse/ClickHouse/pull/44370) ([Antonio Andelic](https://github.com/antonio2368)).
* Otimizar o comportamento da lógica da API de atraso da réplica quando a réplica estiver em modo somente leitura. [#45148](https://github.com/ClickHouse/ClickHouse/pull/45148) ([mateng915](https://github.com/mateng0915)).
* Solicita a senha interativamente no clickhouse-client quando uma senha vazia estiver incorreta. Fecha [#46702](https://github.com/ClickHouse/ClickHouse/issues/46702). [#46730](https://github.com/ClickHouse/ClickHouse/pull/46730) ([Nikolay Degterinsky](https://github.com/evillique)).
* Sinalizar a compressão `Gorilla` em colunas de tipo não-Float\* como suspeita. [#45376](https://github.com/ClickHouse/ClickHouse/pull/45376) ([Robert Schulze](https://github.com/rschu1ze)).
* Exibir o nome da réplica que está executando um merge na coluna `postpone_reason`. [#45458](https://github.com/ClickHouse/ClickHouse/pull/45458) ([Frank Chen](https://github.com/FrankChen021)).
* Salvar o stack trace da exceção em part\_log. [#45459](https://github.com/ClickHouse/ClickHouse/pull/45459) ([Frank Chen](https://github.com/FrankChen021)).
* O Dicionário `regexp_tree` foi refinado e agora é compatível com [https://github.com/ua-parser/uap-core](https://github.com/ua-parser/uap-core). [#45631](https://github.com/ClickHouse/ClickHouse/pull/45631) ([Han Fei](https://github.com/hanfei1991)).
* Verificação de `SYSTEM SYNC REPLICA` atualizada, resolve [#45508](https://github.com/ClickHouse/ClickHouse/issues/45508) [#45648](https://github.com/ClickHouse/ClickHouse/pull/45648) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Renomeada a configuração `replication_alter_partitions_sync` para `alter_sync`. [#45659](https://github.com/ClickHouse/ClickHouse/pull/45659) ([Antonio Andelic](https://github.com/antonio2368)).
* A função de tabela `generateRandom` e o mecanismo agora suportam tipos de dados `LowCardinality`. Isso é útil para testes; por exemplo, você pode escrever `INSERT INTO table SELECT * FROM generateRandom() LIMIT 1000`. Isso é necessário para depurar [#45590](https://github.com/ClickHouse/ClickHouse/issues/45590). [#45661](https://github.com/ClickHouse/ClickHouse/pull/45661) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O cache experimental de resultados de consulta agora oferece configurações mais modulares. [#45679](https://github.com/ClickHouse/ClickHouse/pull/45679) ([Robert Schulze](https://github.com/rschu1ze)).
* Renomeado "cache de resultados de consultas" para "cache de consultas". [#45682](https://github.com/ClickHouse/ClickHouse/pull/45682) ([Robert Schulze](https://github.com/rschu1ze)).
* adiciona o comando `SYSTEM SYNC FILE CACHE`. Ele executará a chamada de sistema `sync`. [#8921](https://github.com/ClickHouse/ClickHouse/issues/8921). [#45685](https://github.com/ClickHouse/ClickHouse/pull/45685) ([DR](https://github.com/freedomDR)).
* Adiciona uma nova configuração do S3 `allow_head_object_request`. Este PR torna opcional o uso da requisição `GetObjectAttributes` em vez de `HeadObject`, introduzido em [https://github.com/ClickHouse/ClickHouse/pull/45288](https://github.com/ClickHouse/ClickHouse/pull/45288), e a desabilita por padrão. [#45701](https://github.com/ClickHouse/ClickHouse/pull/45701) ([Vitaly Baranov](https://github.com/vitlibar)).
* Adicionada a possibilidade de substituir as configurações de conexão com base nos nomes das conexões (ou seja, agora você não precisa mais armazenar a senha de cada conexão; basta colocar tudo em `~/.clickhouse-client/config.xml` e até mesmo usar arquivos de histórico diferentes para cada uma delas, o que também pode ser útil). [#45715](https://github.com/ClickHouse/ClickHouse/pull/45715) ([Azat Khuzhin](https://github.com/azat)).
* Formato Arrow: suporte para o tipo duration. Fecha [#45669](https://github.com/ClickHouse/ClickHouse/issues/45669). [#45750](https://github.com/ClickHouse/ClickHouse/pull/45750) ([flynn](https://github.com/ucasfl)).
* Amplie o logging no cache de consultas para melhorar a investigação do comportamento do cache. [#45751](https://github.com/ClickHouse/ClickHouse/pull/45751) ([Robert Schulze](https://github.com/rschu1ze)).
* As configurações do cache de consultas no nível do servidor agora podem ser reconfiguradas em tempo de execução. [#45758](https://github.com/ClickHouse/ClickHouse/pull/45758) ([Robert Schulze](https://github.com/rschu1ze)).
* Ocultar a senha nos logs quando os argumentos de uma função de tabela são especificados usando uma coleção nomeada. [#45774](https://github.com/ClickHouse/ClickHouse/pull/45774) ([Vitaly Baranov](https://github.com/vitlibar)).
* Melhora no cliente interno do S3 para deduzir corretamente regiões e redirecionamentos para diferentes tipos de URL. [#45783](https://github.com/ClickHouse/ClickHouse/pull/45783) ([Antonio Andelic](https://github.com/antonio2368)).
* Adicionado suporte aos tipos Map, IPv4 e IPv6 no generateRandom. Útil principalmente para testes. [#45785](https://github.com/ClickHouse/ClickHouse/pull/45785) ([Raúl Marín](https://github.com/Algunenano)).
* Adicionado suporte a empty/notEmpty para tipos IP. [#45799](https://github.com/ClickHouse/ClickHouse/pull/45799) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* A coluna `num_processed_files` foi desmembrada em duas colunas: `num_files` (para BACKUP) e `files_read` (para RESTORE). A coluna `processed_files_size` foi desmembrada em duas colunas: `total_size` (para BACKUP) e `bytes_read` (para RESTORE). [#45800](https://github.com/ClickHouse/ClickHouse/pull/45800) ([Vitaly Baranov](https://github.com/vitlibar)).
* Adicionar suporte à consulta `SHOW ENGINES` para compatibilidade com MySQL. [#45859](https://github.com/ClickHouse/ClickHouse/pull/45859) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Melhorada a forma como o ofuscador lida com consultas. [#45867](https://github.com/ClickHouse/ClickHouse/pull/45867) ([Raúl Marín](https://github.com/Algunenano)).
* Melhoria no comportamento da conversão para Date para o valor limite 65535 (2149-06-06). [#46042](https://github.com/ClickHouse/ClickHouse/pull/46042) [#45914](https://github.com/ClickHouse/ClickHouse/pull/45914) ([Joanna Hulboj](https://github.com/jh0x)).
* Adiciona a configuração `check_referential_table_dependencies` para verificar dependências referenciais no `DROP TABLE`. Este PR resolve [#38326](https://github.com/ClickHouse/ClickHouse/issues/38326). [#45936](https://github.com/ClickHouse/ClickHouse/pull/45936) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige `tupleElement` para retornar `Null` ao receber argumento `Null`. Fecha [#45894](https://github.com/ClickHouse/ClickHouse/issues/45894). [#45952](https://github.com/ClickHouse/ClickHouse/pull/45952) ([flynn](https://github.com/ucasfl)).
* Gerar um erro quando nenhum arquivo corresponder ao curinga do S3. Fecha [#45587](https://github.com/ClickHouse/ClickHouse/issues/45587). [#45957](https://github.com/ClickHouse/ClickHouse/pull/45957) ([chen](https://github.com/xiedeyantu)).
* Use os dados de estado do cluster para verificar backups/restaurações simultâneos. [#45982](https://github.com/ClickHouse/ClickHouse/pull/45982) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* ClickHouse Client: Use correspondência "exata" para pesquisa difusa, que tem a distinção correta entre maiúsculas e minúsculas e um algoritmo mais adequado para corresponder a consultas SQL. [#46000](https://github.com/ClickHouse/ClickHouse/pull/46000) ([Azat Khuzhin](https://github.com/azat)).
* Proíbe a sintaxe incorreta de criação de View `CREATE View X TO Y AS SELECT`. Fecha [#4331](https://github.com/ClickHouse/ClickHouse/issues/4331). [#46043](https://github.com/ClickHouse/ClickHouse/pull/46043) ([flynn](https://github.com/ucasfl)).
* A família de armazenamento `Log` passou a oferecer suporte à configuração de `storage_policy`. Fecha [#43421](https://github.com/ClickHouse/ClickHouse/issues/43421). [#46044](https://github.com/ClickHouse/ClickHouse/pull/46044) ([flynn](https://github.com/ucasfl)).
* Aprimora o formato `JSONColumns` quando o resultado está vazio. Fecha [#46024](https://github.com/ClickHouse/ClickHouse/issues/46024). [#46053](https://github.com/ClickHouse/ClickHouse/pull/46053) ([flynn](https://github.com/ucasfl)).
* Adicionada a implementação de referência para SipHash128. [#46065](https://github.com/ClickHouse/ClickHouse/pull/46065) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Adicionada uma nova métrica para registrar tempos e bytes de alocação usando `mmap`. [#46068](https://github.com/ClickHouse/ClickHouse/pull/46068) ([李扬](https://github.com/taiyang-li)).
* Atualmente, para funções como `leftPad`, `rightPad`, `leftPadUTF8` e `rightPadUTF8`, o segundo argumento, `length`, deve ser UInt8|16|32|64|128|256. Isso é rígido demais para os usuários do ClickHouse e, além disso, não é consistente com outras funções semelhantes, como `arrayResize`, `substring` etc. [#46103](https://github.com/ClickHouse/ClickHouse/pull/46103) ([李扬](https://github.com/taiyang-li)).
* Corrigida a asserção na função `welchTTest` na compilação de depuração quando a estatística resultante é NaN. O comportamento foi unificado com o de outras funções semelhantes. Alterado o comportamento de `studentTTest` para retornar NaN em vez de gerar uma exceção, pois o comportamento anterior era inconveniente. Isso fecha [#41176](https://github.com/ClickHouse/ClickHouse/issues/41176). Isso fecha [#42162](https://github.com/ClickHouse/ClickHouse/issues/42162). [#46141](https://github.com/ClickHouse/ClickHouse/pull/46141) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Uso mais prático de inteiros grandes e ORDER BY WITH FILL. Permite usar inteiros comuns para os pontos de início e fim em WITH FILL ao usar ORDER BY com inteiros grandes (128 bits e 256 bits). Corrige o resultado incorreto para inteiros grandes com pontos de início ou fim negativos. Isso fecha [#16733](https://github.com/ClickHouse/ClickHouse/issues/16733). [#46152](https://github.com/ClickHouse/ClickHouse/pull/46152) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionar as colunas `parts`, `active_parts` e `total_marks` em `system.tables` na [issue](https://github.com/ClickHouse/ClickHouse/issues/44336). [#46161](https://github.com/ClickHouse/ClickHouse/pull/46161) ([attack204](https://github.com/attack204)).
* As funções "multi\[Fuzzy]Match(Any|AnyIndex|AllIndices}" agora rejeitam expressões regulares que provavelmente seriam avaliadas muito lentamente no vectorscan. [#46167](https://github.com/ClickHouse/ClickHouse/pull/46167) ([Robert Schulze](https://github.com/rschu1ze)).
* Quando `insert_null_as_default` está habilitado e a coluna não tem um valor padrão definido, será usado o valor padrão do tipo da coluna. Além disso, este PR corrige o uso de valores padrão para nulls no caso de colunas LowCardinality. [#46171](https://github.com/ClickHouse/ClickHouse/pull/46171) ([Kruglov Pavel](https://github.com/Avogar)).
* Prefira definir explicitamente as chaves de acesso para clientes S3. Se `use_environment_credentials` estiver definido como `true` e o usuário tiver fornecido a chave de acesso por meio da consulta ou da configuração, ela será usada em vez da variável de ambiente. [#46191](https://github.com/ClickHouse/ClickHouse/pull/46191) ([Antonio Andelic](https://github.com/antonio2368)).
* Adiciona um alias "DATE\_FORMAT()" para a função "formatDateTime()" para melhorar a compatibilidade com o dialeto SQL do MySQL, amplia a função `formatDateTime` com as substituições "a", "b", "c", "h", "i", "k", "l" "r", "s", "W". ### Entrada de documentação para alterações voltadas ao usuário Breve descrição legível para o usuário: `DATE_FORMAT` é um alias de `formatDateTime`. Formata um valor Time de acordo com a string de formato fornecida. O formato é uma expressão constante, portanto não é possível ter vários formatos para uma única coluna de resultado. (Forneça um link para [formatDateTime](/pt-BR/reference/functions/regular-functions/date-time-functions#formatDateTime)). [#46302](https://github.com/ClickHouse/ClickHouse/pull/46302) ([Jake Bamrah](https://github.com/JakeBamrah)).
* Adicionar `ProfileEvents` e `CurrentMetrics` relacionados às tarefas de callback para réplicas paralelas (tabelas `s3Cluster` e `MergeTree`). [#46313](https://github.com/ClickHouse/ClickHouse/pull/46313) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado suporte a `DELETE` e `UPDATE` em tabelas que usam o mecanismo de armazenamento `KeeperMap`. [#46330](https://github.com/ClickHouse/ClickHouse/pull/46330) ([Antonio Andelic](https://github.com/antonio2368)).
* Permitir o uso de parâmetros de consulta em consultas RENAME. Resolve [#45778](https://github.com/ClickHouse/ClickHouse/issues/45778). [#46407](https://github.com/ClickHouse/ClickHouse/pull/46407) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige consultas SELECT parametrizadas com o transformador REPLACE. Resolve [#33002](https://github.com/ClickHouse/ClickHouse/issues/33002). [#46420](https://github.com/ClickHouse/ClickHouse/pull/46420) ([Nikolay Degterinsky](https://github.com/evillique)).
* Excluir do cálculo da métrica assíncrona "NumberOfDatabases" o banco de dados interno usado para tabelas temporárias/externas. Isso torna o comportamento consistente com a tabela de sistema "system.databases". [#46435](https://github.com/ClickHouse/ClickHouse/pull/46435) ([Robert Schulze](https://github.com/rschu1ze)).
* Adicionada a coluna `last_exception_time` à tabela distribution\_queue. [#46564](https://github.com/ClickHouse/ClickHouse/pull/46564) ([Aleksandr](https://github.com/AVMusorin)).
* Suporte à cláusula IN com parâmetro em views parametrizadas. [#46583](https://github.com/ClickHouse/ClickHouse/pull/46583) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Não carregue coleções nomeadas na inicialização do servidor (carregue-as no primeiro acesso). [#46607](https://github.com/ClickHouse/ClickHouse/pull/46607) ([Kseniia Sumarokova](https://github.com/kssenii)).

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

* Introduz o GWP-ASan implementado pelo runtime do LLVM. Isso fecha [#27039](https://github.com/ClickHouse/ClickHouse/issues/27039). [#45226](https://github.com/ClickHouse/ClickHouse/pull/45226) ([Han Fei](https://github.com/hanfei1991)).
* Queremos tornar nossos testes menos estáveis e mais propensos a falhas intermitentes: adicionar aleatorização às configurações da MergeTree nos testes. [#38983](https://github.com/ClickHouse/ClickHouse/pull/38983) ([Anton Popov](https://github.com/CurtizJ)).
* Habilita o suporte a HDFS no PowerPC, o que ajuda a corrigir os seguintes testes funcionais: 02113\_hdfs\_assert.sh, 02244\_hdfs\_cluster.sql e 02368\_cancel\_write\_into\_hdfs.sh. [#44949](https://github.com/ClickHouse/ClickHouse/pull/44949) ([MeenaRenganathan22](https://github.com/MeenaRenganathan22)).
* Adiciona o arquivo systemd.service para o clickhouse-keeper. Corrige [#44293](https://github.com/ClickHouse/ClickHouse/issues/44293). [#45568](https://github.com/ClickHouse/ClickHouse/pull/45568) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* O fork do Poco do ClickHouse foi movido de "contrib/" para "base/poco/". [#46075](https://github.com/ClickHouse/ClickHouse/pull/46075) ([Robert Schulze](https://github.com/rschu1ze)).
* Adiciona uma opção ao `clickhouse-watchdog` para reiniciar o processo filho. Isso não é muito útil. [#46312](https://github.com/ClickHouse/ClickHouse/pull/46312) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Se a variável de ambiente `CLICKHOUSE_DOCKER_RESTART_ON_EXIT` estiver definida como 1, o contêiner Docker executará `clickhouse-server` como processo filho em vez de processo principal e o reiniciará quando ele for encerrado. [#46391](https://github.com/ClickHouse/ClickHouse/pull/46391) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o arquivo de serviço do systemd. [#46461](https://github.com/ClickHouse/ClickHouse/pull/46461) ([SuperDJY](https://github.com/cmsxbc)).
* Aumenta a versão mínima do Clang necessária para compilar o ClickHouse de 12 para 15. [#46710](https://github.com/ClickHouse/ClickHouse/pull/46710) ([Robert Schulze](https://github.com/rschu1ze)).
* Atualiza o Intel QPL da v0.3.0 para a v1.0.0 2. Compila a libaccel-config e a vincula estaticamente à biblioteca QPL em vez de dinamicamente. [#45809](https://github.com/ClickHouse/ClickHouse/pull/45809) ([jasperzhu](https://github.com/jinjunzh)).

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

* Faz o flush dos dados exatamente por `rabbitmq_flush_interval_ms` ou por `rabbitmq_max_block_size` em `StorageRabbitMQ`. Fecha [#42389](https://github.com/ClickHouse/ClickHouse/issues/42389). Fecha [#45160](https://github.com/ClickHouse/ClickHouse/issues/45160). [#44404](https://github.com/ClickHouse/ClickHouse/pull/44404) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Usa PODArray para renderizar na função `sparkBar`, para podermos controlar o uso de memória. Fecha [#44467](https://github.com/ClickHouse/ClickHouse/issues/44467). [#44489](https://github.com/ClickHouse/ClickHouse/pull/44489) ([Duc Canh Le](https://github.com/canhld94)).
* Corrige as funções (quantilesExactExclusive, quantilesExactInclusive) que retornavam um elemento de array fora de ordem. [#45379](https://github.com/ClickHouse/ClickHouse/pull/45379) ([wujunfu](https://github.com/wujunfu)).
* Corrige exceção não capturada no HTTPHandler quando o OpenTelemetry está habilitado. [#45456](https://github.com/ClickHouse/ClickHouse/pull/45456) ([Frank Chen](https://github.com/FrankChen021)).
* Não infira datas a partir de números de 8 dígitos. Isso pode levar à leitura incorreta dos dados. [#45581](https://github.com/ClickHouse/ClickHouse/pull/45581) ([Kruglov Pavel](https://github.com/Avogar)).
* Correções para o uso correto da configuração `odbc_bridge_use_connection_pooling`. [#45591](https://github.com/ClickHouse/ClickHouse/pull/45591) ([Bharat Nallan](https://github.com/bharatnc)).
* Quando o callback do cache é chamado, é possível que esse cache seja destruído. Para garantir a segurança, capturamos os membros por valor. Isso também é seguro para o agendamento de tarefas, porque ele será desativado antes de o armazenamento ser destruído. Resolve [#45548](https://github.com/ClickHouse/ClickHouse/issues/45548). [#45601](https://github.com/ClickHouse/ClickHouse/pull/45601) ([Han Fei](https://github.com/hanfei1991)).
* Corrige a corrupção de dados quando os codecs Delta ou DoubleDelta são combinados com o codec Gorilla. [#45615](https://github.com/ClickHouse/ClickHouse/pull/45615) ([Robert Schulze](https://github.com/rschu1ze)).
* Verificação correta dos tipos ao usar o índice de filtro de Bloom N-gram para evitar leituras inválidas. [#45617](https://github.com/ClickHouse/ClickHouse/pull/45617) ([Antonio Andelic](https://github.com/antonio2368)).
* Alguns `segfaults` envolvendo o `c-ares` foram relatados. Eles foram introduzidos em meus pull requests anteriores. Eu os corrigi com a ajuda de Alexander Tokmakov. [#45629](https://github.com/ClickHouse/ClickHouse/pull/45629) ([Arthur Passos](https://github.com/arthurpassos)).
* Corrige a descrição da chave ao encontrar chaves primárias duplicadas. Isso pode acontecer em projeções. Consulte [#45590](https://github.com/ClickHouse/ClickHouse/issues/45590) para mais detalhes. [#45686](https://github.com/ClickHouse/ClickHouse/pull/45686) ([Amos Bird](https://github.com/amosbird)).
* Define o método e o nível de compressão para backup. Fecha [#45690](https://github.com/ClickHouse/ClickHouse/issues/45690). [#45737](https://github.com/ClickHouse/ClickHouse/pull/45737) ([Pradeep Chhetri](https://github.com/chhetripradeep)).
* Deve ser usado `select_query_typed.limitByOffset` em vez de `select_query_typed.limitOffset`. [#45817](https://github.com/ClickHouse/ClickHouse/pull/45817) ([刘陶峰](https://github.com/taofengliu)).
* Ao usar o analyzer experimental, consultas como `SELECT number FROM numbers(100) LIMIT 10 OFFSET 10;` retornam resultados incorretos (resultado vazio para este SQL). Isso é causado por um passo de OFFSET desnecessário adicionado pelo planner. [#45822](https://github.com/ClickHouse/ClickHouse/pull/45822) ([刘陶峰](https://github.com/taofengliu)).
* Compatibilidade com versões anteriores - permitir conversão implícita com redução de tipo de UInt64 para IPv4 - necessária para a expressão "INSERT ... VALUES ...". [#45865](https://github.com/ClickHouse/ClickHouse/pull/45865) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correção no parser IPv6 para endereço IPv4 misto sem o primeiro octeto (como `::.1.2.3`). [#45871](https://github.com/ClickHouse/ClickHouse/pull/45871) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Adiciona a coluna `query_kind` à tabela `system.processes` e à consulta `SHOW PROCESSLIST`. Remove código duplicado. Isso corrige um bug: o parâmetro global de configuração `max_concurrent_select_queries` não era aplicado a consultas com cadeias `INTERSECT` ou `EXCEPT`. [#45872](https://github.com/ClickHouse/ClickHouse/pull/45872) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige uma falha na função `stochasticLinearRegression`. Encontrada pelo WingFuzz. [#45985](https://github.com/ClickHouse/ClickHouse/pull/45985) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige falha em consultas `SELECT` com os modificadores `INTERSECT` e `EXCEPT` que leem dados de tabelas com colunas esparsas ativadas (controladas pela configuração `ratio_of_defaults_for_sparse_serialization`). [#45987](https://github.com/ClickHouse/ClickHouse/pull/45987) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige a otimização de leitura em ordem para ordenação DESC com FINAL, fecha [#45815](https://github.com/ClickHouse/ClickHouse/issues/45815). [#46009](https://github.com/ClickHouse/ClickHouse/pull/46009) ([Vladimir C](https://github.com/vdimir)).
* Corrigida a leitura de colunas aninhadas inexistentes com vários níveis em partes compactas. [#46045](https://github.com/ClickHouse/ClickHouse/pull/46045) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida a coluna elapsed em system.processes (erro de 10x). [#46047](https://github.com/ClickHouse/ClickHouse/pull/46047) ([Azat Khuzhin](https://github.com/azat)).
* Correção adicional para substituir tipos de domínio de IP (IPv4, IPv6) por tipos nativos [https://github.com/ClickHouse/ClickHouse/pull/43221](https://github.com/ClickHouse/ClickHouse/pull/43221). [#46087](https://github.com/ClickHouse/ClickHouse/pull/46087) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige a substituição de variáveis de ambiente na configuração quando um parâmetro já possui um valor. Fecha [#46131](https://github.com/ClickHouse/ClickHouse/issues/46131). Fecha [#9547](https://github.com/ClickHouse/ClickHouse/issues/9547). [#46144](https://github.com/ClickHouse/ClickHouse/pull/46144) ([pufit](https://github.com/pufit)).
* Corrige o pushdown incorreto de predicados com grouping sets. Fecha [#45947](https://github.com/ClickHouse/ClickHouse/issues/45947). [#46151](https://github.com/ClickHouse/ClickHouse/pull/46151) ([flynn](https://github.com/ucasfl)).
* Corrige um possível erro em que o pipeline fica travado em `fulls_sorting_join` com chaves constantes. [#46175](https://github.com/ClickHouse/ClickHouse/pull/46175) ([Vladimir C](https://github.com/vdimir)).
* Nunca reescreva funções de tupla como literais durante a formatação, para evitar resultados incorretos. [#46232](https://github.com/ClickHouse/ClickHouse/pull/46232) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Corrigido um possível erro de acesso fora dos limites ao ler LowCardinality(Nullable) no formato Arrow. [#46270](https://github.com/ClickHouse/ClickHouse/pull/46270) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige falhas em consultas `SYSTEM UNFREEZE` com a exceção `CANNOT_PARSE_INPUT_ASSERTION_FAILED`. [#46325](https://github.com/ClickHouse/ClickHouse/pull/46325) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Corrige um possível travamento causado por overflow de inteiro ao desserializar o estado de agregação de uma função que armazena HashTable. [#46349](https://github.com/ClickHouse/ClickHouse/pull/46349) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigido possível `LOGICAL_ERROR` em inserts assíncronos com dados inválidos enviados no formato `VALUES`. [#46350](https://github.com/ClickHouse/ClickHouse/pull/46350) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigido um LOGICAL\_ERROR ao tentar executar `ALTER ... MOVE PART ... TO TABLE`. Esse tipo de consulta nunca teve suporte de fato. [#46359](https://github.com/ClickHouse/ClickHouse/pull/46359) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrige a inferência de esquema do s3Cluster em `insert select` distribuído em paralelo quando `parallel_distributed_insert_select` está habilitado. [#46381](https://github.com/ClickHouse/ClickHouse/pull/46381) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige consultas como `ALTER TABLE ... UPDATE nested.arr1 = nested.arr2 ...`, em que `arr1` e `arr2` são campos da mesma coluna `Nested`. [#46387](https://github.com/ClickHouse/ClickHouse/pull/46387) ([Anton Popov](https://github.com/CurtizJ)).
* O agendador pode não conseguir agendar uma tarefa. Se isso acontecer, todo o MulityPartUpload deverá ser abortado, e o `UploadHelper` deve aguardar as tarefas já agendadas. [#46451](https://github.com/ClickHouse/ClickHouse/pull/46451) ([Dmitry Novik](https://github.com/novikd)).
* Corrige o `PREWHERE` para Merge com tipos padrão diferentes (corrige alguns `NOT_FOUND_COLUMN_IN_BLOCK` quando o tipo padrão da coluna é diferente; também permite `PREWHERE` quando o tipo da coluna é o mesmo em todas as tabelas e o proíbe apenas quando for diferente). [#46454](https://github.com/ClickHouse/ClickHouse/pull/46454) ([Azat Khuzhin](https://github.com/azat)).
* Corrige um travamento que podia ocorrer quando valores constantes eram usados em `ORDER BY`. Corrige [#46466](https://github.com/ClickHouse/ClickHouse/issues/46466). [#46493](https://github.com/ClickHouse/ClickHouse/pull/46493) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Não lançar exceção se a configuração `disk` tiver sido especificada no nível da consulta, mas `storage_policy` tiver sido especificada na seção de configurações do MergeTree no arquivo de configuração. `disk` substituirá a configuração do arquivo. [#46533](https://github.com/ClickHouse/ClickHouse/pull/46533) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige o processamento inválido de um argumento constante `LowCardinality` na função `arrayMap`. Esse bug podia causar uma falha de segmentação em build de release e o erro lógico `Bad cast` em build de depuração. [#46569](https://github.com/ClickHouse/ClickHouse/pull/46569) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* corrige [#46557](https://github.com/ClickHouse/ClickHouse/issues/46557). [#46611](https://github.com/ClickHouse/ClickHouse/pull/46611) ([Alexander Gololobov](https://github.com/davenger)).
* Corrige reinicializações sem fim da unidade systemd do clickhouse-server se o servidor não conseguir iniciar em até 1 min e 30 s (desativa a lógica de timeout na inicialização do clickhouse-server pelo serviço systemd). [#46613](https://github.com/ClickHouse/ClickHouse/pull/46613) ([Azat Khuzhin](https://github.com/azat)).
* A memória alocada nos buffers em memória durante as inserções assíncronas foi desalocada no contexto global, e os contadores do MemoryTracker para o usuário e a consulta correspondentes não foram atualizados corretamente. Isso levou a exceções de OOM por falso positivo. [#46622](https://github.com/ClickHouse/ClickHouse/pull/46622) ([Dmitry Novik](https://github.com/novikd)).
* Atualizado para não limpar on\_expression de table\_join, pois isso é usado em execuções futuras de analyze; corrige [#45185](https://github.com/ClickHouse/ClickHouse/issues/45185). [#46487](https://github.com/ClickHouse/ClickHouse/pull/46487) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).

### <a id="231" /> Lançamento do ClickHouse 23.1, 2023-01-26. [Apresentação](https://presentations.clickhouse.com/2023-release-23.1/), [Vídeo](https://www.youtube.com/watch?v=zYSZXBnTMSE)

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

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

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

* A consulta `SYSTEM RESTART DISK` passa a ser um no-op. [#44647](https://github.com/ClickHouse/ClickHouse/pull/44647) ([alesapin](https://github.com/alesapin)).
* A opção `PREALLOCATE` para dicionários `HASHED`/`SPARSE_HASHED` passa a ser um no-op. [#45388](https://github.com/ClickHouse/ClickHouse/pull/45388) ([Azat Khuzhin](https://github.com/azat)). Ela não oferece mais vantagens significativas.
* É proibido usar o codec `Gorilla` em colunas que não sejam do tipo Float32 ou Float64. [#45252](https://github.com/ClickHouse/ClickHouse/pull/45252) ([Robert Schulze](https://github.com/rschu1ze)). Isso não fazia sentido e levava a inconsistências.
* Inserts com quorum em paralelo podem funcionar incorretamente com tabelas `*MergeTree` criadas com a sintaxe obsoleta. Portanto, o suporte a inserts com quorum em paralelo foi totalmente desabilitado para essas tabelas. Isso não afeta tabelas criadas com a nova sintaxe. [#45430](https://github.com/ClickHouse/ClickHouse/pull/45430) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Use a requisição `GetObjectAttributes` em vez da requisição `HeadObject` para obter o tamanho de um objeto no AWS S3. Essa alteração corrige, por exemplo, o tratamento de endpoints sem regiões explícitas após a atualização do AWS SDK. [#45288](https://github.com/ClickHouse/ClickHouse/pull/45288) ([Vitaly Baranov](https://github.com/vitlibar)). AWS S3 e Minio foram testados, mas tenha em mente que vários serviços compatíveis com S3 (GCS, R2, B2) podem ter incompatibilidades sutis. Essa alteração também pode exigir que você ajuste a ACL para permitir a requisição `GetObjectAttributes`.
* Não são permitidos caminhos em nomes de fuso horário. Por exemplo, um nome de fuso horário como `/usr/share/zoneinfo/Asia/Aden` não é permitido; deve ser usado o nome do banco de dados de fusos horários da IANA, como `Asia/Aden`. [#44225](https://github.com/ClickHouse/ClickHouse/pull/44225) ([Kruglov Pavel](https://github.com/Avogar)).
* Consultas que combinam equijoin e expressões constantes (por exemplo, `JOIN ON t1.x = t2.x AND 1 = 1`) são proibidas devido a resultados incorretos. [#44016](https://github.com/ClickHouse/ClickHouse/pull/44016) ([Vladimir C](https://github.com/vdimir)).

<div id="new-feature">
  #### Nova funcionalidade
</div>

* Fonte de dicionário para extrair chaves ao percorrer a árvore de expressões regulares. Pode ser usada para análise de User-Agent. [#40878](https://github.com/ClickHouse/ClickHouse/pull/40878) ([Vage Ogannisian](https://github.com/nooblose)). [#43858](https://github.com/ClickHouse/ClickHouse/pull/43858) ([Han Fei](https://github.com/hanfei1991)).
* Adicionada a funcionalidade de views parametrizadas; agora é possível especificar parâmetros de consulta para o mecanismo de tabela View. Resolve [#40907](https://github.com/ClickHouse/ClickHouse/issues/40907). [#41687](https://github.com/ClickHouse/ClickHouse/pull/41687) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Adicionadas as funções `quantileInterpolatedWeighted`/`quantilesInterpolatedWeighted`. [#38252](https://github.com/ClickHouse/ClickHouse/pull/38252) ([Bharat Nallan](https://github.com/bharatnc)).
* Suporte a ARRAY JOIN para o tipo `Map`, como a função "explode" do Spark. [#43239](https://github.com/ClickHouse/ClickHouse/pull/43239) ([李扬](https://github.com/taiyang-li)).
* Suporte a literais de strings binárias e hexadecimais no padrão SQL. [#43785](https://github.com/ClickHouse/ClickHouse/pull/43785) ([Mo Xuan](https://github.com/mo-avatar)).
* Permite formatar `DateTime` no estilo Joda-Time. Consulte [a documentação do Joda-Time](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html). [#43818](https://github.com/ClickHouse/ClickHouse/pull/43818) ([李扬](https://github.com/taiyang-li)).
* Implementado um formatador de frações de segundo (`%f`) para `formatDateTime`. [#44060](https://github.com/ClickHouse/ClickHouse/pull/44060) ([ltrk2](https://github.com/ltrk2)). [#44497](https://github.com/ClickHouse/ClickHouse/pull/44497) ([Alexander Gololobov](https://github.com/davenger)).
* Adicionada a função `age` para calcular a diferença entre duas datas ou entre datas com valores de tempo, expressa como o número de unidades completas. Fecha [#41115](https://github.com/ClickHouse/ClickHouse/issues/41115). [#44421](https://github.com/ClickHouse/ClickHouse/pull/44421) ([Robert Schulze](https://github.com/rschu1ze)).
* Adicionada a fonte `Null` para dicionários. Fecha [#44240](https://github.com/ClickHouse/ClickHouse/issues/44240). [#44502](https://github.com/ClickHouse/ClickHouse/pull/44502) ([mayamika](https://github.com/mayamika)).
* Permite configurar a classe de armazenamento do S3 com a opção de configuração `s3_storage_class`, como em `<s3_storage_class>STANDARD/INTELLIGENT_TIERING</s3_storage_class>`. Fecha [#44443](https://github.com/ClickHouse/ClickHouse/issues/44443). [#44707](https://github.com/ClickHouse/ClickHouse/pull/44707) ([chen](https://github.com/xiedeyantu)).
* Insere valores padrão em caso de elementos ausentes em objeto JSON durante a análise de uma tupla nomeada. Adiciona a configuração `input_format_json_defaults_for_missing_elements_in_named_tuple`, que controla esse comportamento. Fecha [#45142](https://github.com/ClickHouse/ClickHouse/issues/45142)#issuecomment-1380153217. [#45231](https://github.com/ClickHouse/ClickHouse/pull/45231) ([Kruglov Pavel](https://github.com/Avogar)).
* Registra o tempo de inicialização do servidor em ProfileEvents (`ServerStartupMilliseconds`). Corrige [#43188](https://github.com/ClickHouse/ClickHouse/issues/43188). [#45250](https://github.com/ClickHouse/ClickHouse/pull/45250) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Refatore e melhore os motores de streaming Kafka/RabbitMQ/NATS e adicione suporte a todos os formatos, além de refatorar um pouco os formatos: - Corrija a produção de mensagens em formatos baseados em linhas com sufixos/prefixos. Agora, cada mensagem é formatada por completo com todos os delimitadores e pode ser analisada novamente usando o formato de entrada. - Adicione suporte a formatos baseados em blocos, como Native, Parquet, ORC etc. Cada bloco é formatado como uma mensagem separada. O número de linhas em uma mensagem depende do tamanho do bloco, então você pode controlá-lo por meio da configuração `max_block_size`. - Adicione novas configurações de engine `kafka_max_rows_per_message/rabbitmq_max_rows_per_message/nats_max_rows_per_message`. Elas controlam o número de linhas formatadas em uma mensagem nos formatos baseados em linhas. Valor padrão: 1. - Corrija o alto consumo de memória no table engine NATS. - Adicione suporte a dados binários arbitrários no produtor NATS (anteriormente, funcionava apenas com strings contendo \0 no final) - Adicione à documentação as configurações de engine ausentes para Kafka/RabbitMQ/NATS. - Refatore a produção e o consumo em Kafka/RabbitMQ/NATS, separando-os da semântica de WriteBuffers/ReadBuffers. - Refatore os formatos de saída: remova os callbacks por linha usados em Kafka/RabbitMQ/NATS (agora não usamos callbacks ali), permita usar IRowOutputFormat diretamente, esclareça os delimitadores de fim de linha e entre linhas, e torne possível redefinir o formato de saída para reiniciar a formatação - Adicione uma implementação adequada na função formatRow (bônus após a refatoração dos formatos). [#42777](https://github.com/ClickHouse/ClickHouse/pull/42777) ([Kruglov Pavel](https://github.com/Avogar)).
* Suporte para leitura/gravação de tabelas `Nested` como `List` de `Struct` no formato `CapnProto`. Leitura/gravação de `Decimal32/64` como `Int32/64`. Fecha [#43319](https://github.com/ClickHouse/ClickHouse/issues/43319). [#43379](https://github.com/ClickHouse/ClickHouse/pull/43379) ([Kruglov Pavel](https://github.com/Avogar)).
* Foi adicionada uma coluna `message_format_string` a `system.text_log`. A coluna contém um padrão usado para formatar a mensagem. [#44543](https://github.com/ClickHouse/ClickHouse/pull/44543) ([Alexander Tokmakov](https://github.com/tavplubix)). Isso permite diversas análises dos logs do ClickHouse.
* Tenta detectar automaticamente cabeçalhos com nomes de colunas (e talvez tipos) em formatos de entrada CSV/TSV/CustomSeparated.
  Adiciona as configurações input\_format\_tsv/csv/custom\_detect\_header, que habilitam esse comportamento (ativado por padrão). Fecha [#44640](https://github.com/ClickHouse/ClickHouse/issues/44640). [#44953](https://github.com/ClickHouse/ClickHouse/pull/44953) ([Kruglov Pavel](https://github.com/Avogar)).

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

* Adicionado um índice invertido experimental como novo tipo de índice secundário para pesquisa de texto eficiente. [#38667](https://github.com/ClickHouse/ClickHouse/pull/38667) ([larryluogit](https://github.com/larryluogit)).
* Adicionado cache experimental de resultados de consulta. [#43797](https://github.com/ClickHouse/ClickHouse/pull/43797) ([Robert Schulze](https://github.com/rschu1ze)).
* Adicionado um subsistema de agendamento extensível e configurável para solicitações de E/S (ainda não integrado ao próprio código de E/S). [#41840](https://github.com/ClickHouse/ClickHouse/pull/41840) ([Sergei Trifonov](https://github.com/serxa)). Esta funcionalidade não faz absolutamente nada, aproveite.
* Adicionado `SYSTEM DROP DATABASE REPLICA`, que remove os metadados de uma réplica inativa de um banco de dados `Replicated`. Resolve [#41794](https://github.com/ClickHouse/ClickHouse/issues/41794). [#42807](https://github.com/ClickHouse/ClickHouse/pull/42807) ([Alexander Tokmakov](https://github.com/tavplubix)).

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

* Não carregar partes inativas na inicialização de tabelas `MergeTree`. [#42181](https://github.com/ClickHouse/ClickHouse/pull/42181) ([Anton Popov](https://github.com/CurtizJ)).
* Foi melhorada a latência de leitura do armazenamento `S3` e da função de tabela `s3` com grandes quantidades de arquivos pequenos. Agora, as configurações `remote_filesystem_read_method` e `remote_filesystem_read_prefetch` passam a surtir efeito durante a leitura do armazenamento `S3`. [#43726](https://github.com/ClickHouse/ClickHouse/pull/43726) ([Anton Popov](https://github.com/CurtizJ)).
* Otimização na leitura de campos de struct em arquivos Parquet/ORC. Apenas os campos necessários são carregados. [#44484](https://github.com/ClickHouse/ClickHouse/pull/44484) ([lgbo](https://github.com/lgbo-ustc)).
* O algoritmo de agregação em dois níveis foi desabilitado por engano para consultas pela interface HTTP. Ele foi habilitado novamente, o que traz uma grande melhoria de desempenho. [#45450](https://github.com/ClickHouse/ClickHouse/pull/45450) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Foi adicionado suporte a mmap ao StorageFile, o que deve melhorar o desempenho do clickhouse-local. [#43927](https://github.com/ClickHouse/ClickHouse/pull/43927) ([pufit](https://github.com/pufit)).
* Adicionado suporte a sharding no HashedDictionary para permitir carregamento em paralelo (escalabilidade quase linear com base no número de shards). [#40003](https://github.com/ClickHouse/ClickHouse/pull/40003) ([Azat Khuzhin](https://github.com/azat)).
* Acelera o parsing de consultas. [#42284](https://github.com/ClickHouse/ClickHouse/pull/42284) ([Raúl Marín](https://github.com/Algunenano)).
* Sempre substitua a cadeia OR `expr = x1 OR ... OR expr = xN` por `expr IN (x1, ..., xN)` quando `expr` for uma coluna `LowCardinality`. A configuração `optimize_min_equality_disjunction_chain_length` é ignorada nesse caso. [#42889](https://github.com/ClickHouse/ClickHouse/pull/42889) ([Guo Wangyang](https://github.com/guowangy)).
* Melhora leve no desempenho ao otimizar o código em torno de ThreadStatus. [#43586](https://github.com/ClickHouse/ClickHouse/pull/43586) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Otimização da avaliação da lógica ternária por coluna por meio de autovetorização. No teste de desempenho deste [microbenchmark](https://github.com/ZhiguoZh/ClickHouse/blob/20221123-ternary-logic-opt-example/src/Functions/examples/associative_applier_perf.cpp), observamos um pico de **ganho de desempenho** de **21x** na plataforma ICX (CPU Intel Xeon Platinum 8380). [#43669](https://github.com/ClickHouse/ClickHouse/pull/43669) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Evite adquirir bloqueios de leitura na tabela `system.tables` sempre que possível. [#43840](https://github.com/ClickHouse/ClickHouse/pull/43840) ([Raúl Marín](https://github.com/Algunenano)).
* Otimização do ThreadPool. Os experimentos de desempenho do SSB (Star Schema Benchmark) no dispositivo ICX (CPU Intel Xeon Platinum 8380, 80 núcleos, 160 threads) mostram que essa alteração pode reduzir efetivamente a contenção de bloqueio em ThreadPoolImpl::mutex em **75%**, aumentando a utilização da CPU e melhorando o desempenho geral em **2,4%**. [#44308](https://github.com/ClickHouse/ClickHouse/pull/44308) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
* Agora, a otimização para prever o tamanho da tabela hash é aplicada somente se o tamanho da tabela hash armazenado em cache for suficientemente grande (os limiares foram determinados empiricamente e fixados no código). [#44455](https://github.com/ClickHouse/ClickHouse/pull/44455) ([Nikita Taranov](https://github.com/nickitat)).
* Pequena melhoria de desempenho para leitura assíncrona em sistemas de arquivos remotos. [#44868](https://github.com/ClickHouse/ClickHouse/pull/44868) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adicionar via rápida para: - `col like '%%'`; - `col like '%'`; - `col not like '%'`; - `col not like '%'`; - `match(col, '.*')`. [#45244](https://github.com/ClickHouse/ClickHouse/pull/45244) ([李扬](https://github.com/taiyang-li)).
* Pequena melhoria na otimização do caso mais comum na filtragem (cláusula WHERE). [#45289](https://github.com/ClickHouse/ClickHouse/pull/45289) ([Nikita Taranov](https://github.com/nickitat)).
* Adiciona informações de monotonicidade para `toUnixTimestamp64*`, permitindo mais otimizações algébricas na análise de índices. [#44116](https://github.com/ClickHouse/ClickHouse/pull/44116) ([Nikita Taranov](https://github.com/nickitat)).
* Permitir que a configuração de dados temporários para o processamento de consultas (gravação em disco) coopere com o cache do sistema de arquivos (usando o espaço do disco de cache) [#43972](https://github.com/ClickHouse/ClickHouse/pull/43972) ([Vladimir C](https://github.com/vdimir)). Isso beneficia principalmente o [ClickHouse Cloud](https://console.clickhouse.cloud/), mas também pode ser usado em implantações autogerenciadas, se você souber o que está fazendo.
* Faz com que a tabela `system.replicas` realize fetches paralelos dos status das réplicas. Fecha [#43918](https://github.com/ClickHouse/ClickHouse/issues/43918). [#43998](https://github.com/ClickHouse/ClickHouse/pull/43998) ([Nikolay Degterinsky](https://github.com/evillique)).
* Otimize o consumo de memória durante o backup para o S3: os arquivos enviados ao S3 agora serão copiados diretamente, sem usar `WriteBufferFromS3` (o que poderia consumir muita memória). [#45188](https://github.com/ClickHouse/ClickHouse/pull/45188) ([Vitaly Baranov](https://github.com/vitlibar)).
* Adiciona um cache para IDs de blocos assíncronos. Isso reduzirá o número de requisições ao ZooKeeper quando habilitarmos a desduplicação de async inserts. [#45106](https://github.com/ClickHouse/ClickHouse/pull/45106) ([Han Fei](https://github.com/hanfei1991)).

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

* Usar a estrutura da tabela de inserção no generateRandom sem argumentos. [#45239](https://github.com/ClickHouse/ClickHouse/pull/45239) ([Kruglov Pavel](https://github.com/Avogar)).
* Permite converter implicitamente números de ponto flutuante armazenados em campos de texto em JSON para inteiros nas funções `JSONExtract`. Ex.: `JSONExtract('{"a": "1000.111"}', 'a', 'UInt64')` -> `1000`; anteriormente, retornava 0. [#45432](https://github.com/ClickHouse/ClickHouse/pull/45432) ([Anton Popov](https://github.com/CurtizJ)).
* Adicionados os campos `supports_parallel_parsing` e `supports_parallel_formatting` à tabela `system.formats` para melhorar a introspecção. [#45499](https://github.com/ClickHouse/ClickHouse/pull/45499) ([Anton Popov](https://github.com/CurtizJ)).
* Melhoria na leitura de campos CSV no formato CustomSeparated/Template. Fecha [#42352](https://github.com/ClickHouse/ClickHouse/issues/42352) Fecha [#39620](https://github.com/ClickHouse/ClickHouse/issues/39620). [#43332](https://github.com/ClickHouse/ClickHouse/pull/43332) ([Kruglov Pavel](https://github.com/Avogar)).
* Unificar as medições do tempo de execução da consulta. [#43455](https://github.com/ClickHouse/ClickHouse/pull/43455) ([Raúl Marín](https://github.com/Algunenano)).
* Melhora o uso automático da estrutura da tabela de inserção nas funções de tabela file/hdfs/s3 quando há colunas virtuais presentes em uma consulta SELECT; isso corrige o possível erro `Block structure mismatch` ou `number of columns mismatch`. [#43695](https://github.com/ClickHouse/ClickHouse/pull/43695) ([Kruglov Pavel](https://github.com/Avogar)).
* Adiciona suporte a argumentos com sinal na função `range`. Corrige [#43333](https://github.com/ClickHouse/ClickHouse/issues/43333). [#43733](https://github.com/ClickHouse/ClickHouse/pull/43733) ([sanyu](https://github.com/wineternity)).
* Remove a ordenação redundante, por exemplo, cláusulas `ORDER BY` relacionadas em subconsultas. Implementado sobre o plano de consulta. Faz uma otimização semelhante à de `optimize_duplicate_order_by_and_distinct` em relação às cláusulas `ORDER BY`, mas é mais genérico, pois se aplica a quaisquer passos de ordenação redundantes (não apenas aos causados pela cláusula ORDER BY) e a subconsultas de qualquer profundidade. Relacionado a [#42648](https://github.com/ClickHouse/ClickHouse/issues/42648). [#43905](https://github.com/ClickHouse/ClickHouse/pull/43905) ([Igor Nikonov](https://github.com/devcrafter)).
* Adiciona a possibilidade de desabilitar a desduplicação de arquivos para BACKUP (para backups sem desduplicação, ATTACH pode ser usado em vez de um RESTORE completo). Por exemplo, `BACKUP foo TO S3(...) SETTINGS deduplicate_files=0` (o padrão é `deduplicate_files=1`). [#43947](https://github.com/ClickHouse/ClickHouse/pull/43947) ([Azat Khuzhin](https://github.com/azat)).
* Refatorada e aprimorada a inferência de esquema para formatos de texto. Adicionada a nova configuração `schema_inference_make_columns_nullable`, que controla se os tipos de resultado serão `Nullable` (habilitada por padrão). [#44019](https://github.com/ClickHouse/ClickHouse/pull/44019) ([Kruglov Pavel](https://github.com/Avogar)).
* Suporte aprimorado ao protocolo `PROXYv1`. [#44135](https://github.com/ClickHouse/ClickHouse/pull/44135) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Adiciona informações sobre a verificação mais recente das partes realizada pelas threads de limpeza na tabela `system.parts`. [#44244](https://github.com/ClickHouse/ClickHouse/pull/44244) ([Dmitry Novik](https://github.com/novikd)).
* Desabilitar funções de tabela para inserções no modo readonly. [#44290](https://github.com/ClickHouse/ClickHouse/pull/44290) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Adiciona a configuração `simultaneous_parts_removal_limit` para limitar o número de partes processadas em uma iteração da CleanupThread. [#44461](https://github.com/ClickHouse/ClickHouse/pull/44461) ([Dmitry Novik](https://github.com/novikd)).
* Não inicialize o ReadBufferFromS3 quando apenas colunas virtuais forem necessárias em uma consulta. Isso pode ajudar com [#44246](https://github.com/ClickHouse/ClickHouse/issues/44246). [#44493](https://github.com/ClickHouse/ClickHouse/pull/44493) ([chen](https://github.com/xiedeyantu)).
* Evita avisos sobre nomes de coluna duplicados. Fecha [#44130](https://github.com/ClickHouse/ClickHouse/issues/44130). [#44519](https://github.com/ClickHouse/ClickHouse/pull/44519) ([Joanna Hulboj](https://github.com/jh0x)).
* Permitir a substituição de macros no endpoint dos discos. Corrige [#40951](https://github.com/ClickHouse/ClickHouse/issues/40951). [#44533](https://github.com/ClickHouse/ClickHouse/pull/44533) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Melhora a inferência de esquema quando `input_format_json_read_object_as_string` está ativado. [#44546](https://github.com/ClickHouse/ClickHouse/pull/44546) ([Kruglov Pavel](https://github.com/Avogar)).
* Adiciona uma configuração no nível do usuário `database_replicated_allow_replicated_engine_arguments` que permite bloquear a criação de tabelas `ReplicatedMergeTree` com argumentos em `DatabaseReplicated`. [#44566](https://github.com/ClickHouse/ClickHouse/pull/44566) ([alesapin](https://github.com/alesapin)).
* Evita que os usuários especifiquem por engano o valor zero (inválido) para `index_granularity`. Isso corrige [#44536](https://github.com/ClickHouse/ClickHouse/issues/44536). [#44578](https://github.com/ClickHouse/ClickHouse/pull/44578) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionada a possibilidade de definir o caminho do arquivo keytab do serviço no parâmetro `keytab`, na seção `kerberos` do config.xml. [#44594](https://github.com/ClickHouse/ClickHouse/pull/44594) ([Roman Vasin](https://github.com/rvasin)).
* Use a parte já escrita da consulta para busca difusa (passada para a biblioteca `skim`, escrita em Rust e vinculada estaticamente ao ClickHouse). [#44600](https://github.com/ClickHouse/ClickHouse/pull/44600) ([Azat Khuzhin](https://github.com/azat)).
* Habilita `input_format_json_read_objects_as_strings` por padrão para permitir a leitura de objetos JSON aninhados enquanto o tipo JSON Object ainda é experimental. [#44657](https://github.com/ClickHouse/ClickHouse/pull/44657) ([Kruglov Pavel](https://github.com/Avogar)).
* Melhoria na desduplicação de inserções assíncronas: quando houver inserções assíncronas duplicadas, devemos fazer a desduplicação na memória antes de consultar o Keeper. [#44682](https://github.com/ClickHouse/ClickHouse/pull/44682) ([Han Fei](https://github.com/hanfei1991)).
* O formato `Avro` de entrada/saída interpretará o tipo bool como o tipo bool do ClickHouse. [#44684](https://github.com/ClickHouse/ClickHouse/pull/44684) ([Kruglov Pavel](https://github.com/Avogar)).
* Suporte ao tipo Bool em Arrow/Parquet/ORC. Fecha [#43970](https://github.com/ClickHouse/ClickHouse/issues/43970). [#44698](https://github.com/ClickHouse/ClickHouse/pull/44698) ([Kruglov Pavel](https://github.com/Avogar)).
* Não faça o parsing de UUIDs de forma gulosa além das aspas — isso pode fazer com que dados incorretos sejam parseados com sucesso por engano. [#44686](https://github.com/ClickHouse/ClickHouse/pull/44686) ([Raúl Marín](https://github.com/Algunenano)).
* Inferir UInt64 em caso de overflow de Int64 e corrigir algumas transformações na inferência de esquema. [#44696](https://github.com/ClickHouse/ClickHouse/pull/44696) ([Kruglov Pavel](https://github.com/Avogar)).
* Antes, a resolução de dependências dentro do banco de dados `Replicated` era feita de forma meio improvisada, e agora é feita corretamente usando um grafo explícito. [#44697](https://github.com/ClickHouse/ClickHouse/pull/44697) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrige `output_format_pretty_row_numbers`, que não preservava o contador entre os blocos. Fecha [#44815](https://github.com/ClickHouse/ClickHouse/issues/44815). [#44832](https://github.com/ClickHouse/ClickHouse/pull/44832) ([flynn](https://github.com/ucasfl)).
* Não relatar erros em `system.errors` devido à mesclagem simultânea de partes com o processo de limpeza em segundo plano. [#44874](https://github.com/ClickHouse/ClickHouse/pull/44874) ([Raúl Marín](https://github.com/Algunenano)).
* Otimiza e corrige as métricas do INSERT assíncrono em Distributed. [#44922](https://github.com/ClickHouse/ClickHouse/pull/44922) ([Azat Khuzhin](https://github.com/azat)).
* Foram adicionadas configurações para impedir backups e restaurações simultâneos, resolvendo [#43891](https://github.com/ClickHouse/ClickHouse/issues/43891) Implementação: \* Foram adicionadas configurações no nível do servidor para impedir backups e restaurações simultâneos, lidas e definidas quando o BackupWorker é criado no Context. \* As configurações são definidas como true por padrão. \* Antes de iniciar um backup ou uma restauração, foi adicionada uma verificação para conferir se há outros backups/restaurações em execução. Para solicitações internas, é verificado se elas vêm do próprio nó usando backup\_uuid. [#45072](https://github.com/ClickHouse/ClickHouse/pull/45072) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Adicionar o parâmetro de configuração `<storage_policy>` para os logs do sistema. [#45320](https://github.com/ClickHouse/ClickHouse/pull/45320) ([Stig Bakken](https://github.com/stigsb)).

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

* Vinculação estática com a biblioteca `skim` (escrita em Rust) para busca difusa no histórico local/no clickhouse client. [#44239](https://github.com/ClickHouse/ClickHouse/pull/44239) ([Azat Khuzhin](https://github.com/azat)).
* Removemos o suporte a vinculação dinâmica por causa do Rust. Na verdade, o Rust é apenas um pretexto para essa remoção, que já queríamos fazer de qualquer forma. [#44828](https://github.com/ClickHouse/ClickHouse/pull/44828) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Removida a dependência da ferramenta `adduser` nos pacotes, porque não a usamos. Isso corrige [#44934](https://github.com/ClickHouse/ClickHouse/issues/44934). [#45011](https://github.com/ClickHouse/ClickHouse/pull/45011) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A biblioteca `SQLite` foi atualizada para a versão mais recente. Ela é usada para os motores de integração de banco de dados e de tabela do SQLite. Além disso, foi corrigido um falso positivo no TSan. Isso fecha [#45027](https://github.com/ClickHouse/ClickHouse/issues/45027). [#45031](https://github.com/ClickHouse/ClickHouse/pull/45031) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Alterações no CRC-32 para resolver o problema de colisão de WeakHash no PowerPC. [#45144](https://github.com/ClickHouse/ClickHouse/pull/45144) ([MeenaRenganathan22](https://github.com/MeenaRenganathan22)).
* Atualização dos submódulos aws-c\* [#43020](https://github.com/ClickHouse/ClickHouse/pull/43020) ([Vitaly Baranov](https://github.com/vitlibar)).
* Mesclagem automática de backport PRs aprovados com status verde e de PRs aprovados com status verde [#41110](https://github.com/ClickHouse/ClickHouse/pull/41110) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Introdução de um [site](https://aretestsgreenyet.com/) para o status da CI do ClickHouse. [Source](https://github.com/ClickHouse/aretestsgreenyet).

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

* Substitui tipos de domínio de IP (IPv4, IPv6) por tipos nativos. [#43221](https://github.com/ClickHouse/ClickHouse/pull/43221) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). Isso corrige automaticamente algumas implementações ausentes no código.
* Corrige o processo de backup caso mutações sejam interrompidas durante o backup. [#45351](https://github.com/ClickHouse/ClickHouse/pull/45351) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige a mensagem da exceção `Invalid number of rows in Chunk`. [#41404](https://github.com/ClickHouse/ClickHouse/issues/41404). [#42126](https://github.com/ClickHouse/ClickHouse/pull/42126) ([Alexander Gololobov](https://github.com/davenger)).
* Corrige um possível uso de valor não inicializado após a execução de expressões depois da ordenação. Fecha [#43386](https://github.com/ClickHouse/ClickHouse/issues/43386) [#43635](https://github.com/ClickHouse/ClickHouse/pull/43635) ([Kruglov Pavel](https://github.com/Avogar)).
* Melhor tratamento de NULL em combinadores de agregação, corrige um possível segfault/erro lógico ao usar uma otimização pouco conhecida, `optimize_rewrite_sum_if_to_count_if`. Fecha [#43758](https://github.com/ClickHouse/ClickHouse/issues/43758). [#43813](https://github.com/ClickHouse/ClickHouse/pull/43813) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige as restrições das configurações de consulta em CREATE USER/ROLE. [#43993](https://github.com/ClickHouse/ClickHouse/pull/43993) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrigido bug com valor padrão não interpretável para a coluna `EPHEMERAL` nos metadados da tabela. [#44026](https://github.com/ClickHouse/ClickHouse/pull/44026) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige o parsing de uma versão inválida na configuração de compatibilidade. [#44224](https://github.com/ClickHouse/ClickHouse/pull/44224) ([Kruglov Pavel](https://github.com/Avogar)).
* Alinhar a subtração de intervalos em datetime à adição. [#44241](https://github.com/ClickHouse/ClickHouse/pull/44241) ([ltrk2](https://github.com/ltrk2)).
* Removidos os limites do tamanho máximo do resultado de uma view. [#44261](https://github.com/ClickHouse/ClickHouse/pull/44261) ([lizhuoyu5](https://github.com/lzydmxy)).
* Corrige um possível erro lógico no cache se `do_not_evict_index_and_mrk_files=1`. Fecha [#42142](https://github.com/ClickHouse/ClickHouse/issues/42142). [#44268](https://github.com/ClickHouse/ClickHouse/pull/44268) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige uma possível interrupção prematura da gravação no cache em cache write-through (o armazenamento em cache poderia ser interrompido devido a uma suposição incorreta quando isso não deveria ocorrer). [#44289](https://github.com/ClickHouse/ClickHouse/pull/44289) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige uma possível falha quando a função `IN` com argumentos constantes era usada como argumento constante junto com `LowCardinality`. Corrige [#44221](https://github.com/ClickHouse/ClickHouse/issues/44221). [#44346](https://github.com/ClickHouse/ClickHouse/pull/44346) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige o suporte a parâmetros complexos (como arrays) em funções agregadas paramétricas. Isso fecha [#30975](https://github.com/ClickHouse/ClickHouse/issues/30975). A função agregada `sumMapFiltered` era inutilizável em consultas distribuídas antes dessa mudança. [#44358](https://github.com/ClickHouse/ClickHouse/pull/44358) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a leitura de `ObjectId` na inferência de esquema BSON. [#44382](https://github.com/ClickHouse/ClickHouse/pull/44382) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrigida uma condição de corrida que pode levar à remoção prematura de partes temporárias antes que o merge termine no ReplicatedMergeTree. Esse problema podia causar erros como `No such file or directory: xxx`. Corrige [#43983](https://github.com/ClickHouse/ClickHouse/issues/43983). [#44383](https://github.com/ClickHouse/ClickHouse/pull/44383) ([alesapin](https://github.com/alesapin)).
* Algumas consultas `SYSTEM ... ON CLUSTER` inválidas funcionavam de forma inesperada quando nenhum nome de cluster era especificado. Isso foi corrigido: agora, consultas inválidas retornam `SYNTAX_ERROR`, como deveriam. Corrige [#44264](https://github.com/ClickHouse/ClickHouse/issues/44264). [#44387](https://github.com/ClickHouse/ClickHouse/pull/44387) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrigida a leitura do tipo Map no formato ORC. [#44400](https://github.com/ClickHouse/ClickHouse/pull/44400) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige a leitura de colunas que não estão presentes nos dados de entrada nos formatos Parquet/ORC. Antes, isso podia levar ao erro `INCORRECT_NUMBER_OF_COLUMNS`. Fecha [#44333](https://github.com/ClickHouse/ClickHouse/issues/44333). [#44405](https://github.com/ClickHouse/ClickHouse/pull/44405) ([Kruglov Pavel](https://github.com/Avogar)).
* Anteriormente, a função `bar` usava o mesmo caractere '▋' (U+258B "bloco à esquerda de cinco oitavos") para exibir barras de 5/8 e 6/8. Esta alteração corrige esse comportamento usando '▊' (U+258A "bloco à esquerda de três quartos") para exibir a barra de 6/8. [#44410](https://github.com/ClickHouse/ClickHouse/pull/44410) ([Alexander Gololobov](https://github.com/davenger)).
* Colocar as configurações do perfil após as restrições das configurações do perfil no arquivo de configuração tornou essas restrições ineficazes. [#44411](https://github.com/ClickHouse/ClickHouse/pull/44411) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige `SYNTAX_ERROR` ao executar consultas `EXPLAIN AST INSERT` contendo dados. Fecha [#44207](https://github.com/ClickHouse/ClickHouse/issues/44207). [#44413](https://github.com/ClickHouse/ClickHouse/pull/44413) ([save-my-heart](https://github.com/save-my-heart)).
* Corrige a leitura de valor bool com CRLF no formato CSV. Fecha [#44401](https://github.com/ClickHouse/ClickHouse/issues/44401). [#44442](https://github.com/ClickHouse/ClickHouse/pull/44442) ([Kruglov Pavel](https://github.com/Avogar)).
* Não executa and/or/if/multiIf em um dicionário LowCardinality, portanto o tipo de resultado não pode ser LowCardinality. Isso poderia levar ao erro `Illegal column ColumnLowCardinality` em alguns casos. Corrige [#43603](https://github.com/ClickHouse/ClickHouse/issues/43603). [#44469](https://github.com/ClickHouse/ClickHouse/pull/44469) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige mutações com a configuração `max_streams_for_merge_tree_reading`. [#44472](https://github.com/ClickHouse/ClickHouse/pull/44472) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigido um possível desreferenciamento de ponteiro nulo com GROUPING SETS em ASTSelectQuery::formatImpl ([#43049](https://github.com/ClickHouse/ClickHouse/issues/43049)). [#44479](https://github.com/ClickHouse/ClickHouse/pull/44479) ([Robert Schulze](https://github.com/rschu1ze)).
* Validação de tipos nos argumentos de funções de tabela, nos argumentos da função CAST e na inferência de esquema do JSONAsObject de acordo com as configurações. [#44501](https://github.com/ClickHouse/ClickHouse/pull/44501) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige a função IN com LowCardinality e coluna const, fechando [#44503](https://github.com/ClickHouse/ClickHouse/issues/44503). [#44506](https://github.com/ClickHouse/ClickHouse/pull/44506) ([Duc Canh Le](https://github.com/canhld94)).
* Corrigido um bug na normalização de uma expressão `DEFAULT` na instrução `CREATE TABLE`. O segundo argumento da função `in` (ou o argumento à direita do operador `IN`) poderia ser substituído pelo resultado da sua avaliação durante a execução da consulta CREATE. Corrige [#44496](https://github.com/ClickHouse/ClickHouse/issues/44496). [#44547](https://github.com/ClickHouse/ClickHouse/pull/44547) ([Alexander Tokmakov](https://github.com/tavplubix)).
* As projeções não funcionam na presença de WITH ROLLUP, WITH CUBE e WITH TOTALS. Em versões anteriores, uma consulta gerava uma exceção em vez de simplesmente ignorar o uso de projeções. Isso fecha [#44614](https://github.com/ClickHouse/ClickHouse/issues/44614). Isso fecha [#42772](https://github.com/ClickHouse/ClickHouse/issues/42772). [#44615](https://github.com/ClickHouse/ClickHouse/pull/44615) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Os blocos assíncronos não foram limpos porque a função `get all blocks sorted by time` não recuperava os blocos assíncronos. [#44651](https://github.com/ClickHouse/ClickHouse/pull/44651) ([Han Fei](https://github.com/hanfei1991)).
* Corrige `LOGICAL_ERROR` `The top step of the right pipeline should be ExpressionStep` em JOIN com subconsulta, UNION e TOTALS. Corrige [#43687](https://github.com/ClickHouse/ClickHouse/issues/43687). [#44673](https://github.com/ClickHouse/ClickHouse/pull/44673) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Evita a exceção `std::out_of_range` no mecanismo de tabela Executable. [#44681](https://github.com/ClickHouse/ClickHouse/pull/44681) ([Kruglov Pavel](https://github.com/Avogar)).
* Não aplique `optimize_syntax_fuse_functions` aos quantis na AST, fecha [#44712](https://github.com/ClickHouse/ClickHouse/issues/44712). [#44713](https://github.com/ClickHouse/ClickHouse/pull/44713) ([Vladimir C](https://github.com/vdimir)).
* Corrige um bug de tipo incorreto na tabela Merge e em PREWHERE, fecha [#43324](https://github.com/ClickHouse/ClickHouse/issues/43324). [#44716](https://github.com/ClickHouse/ClickHouse/pull/44716) ([Vladimir C](https://github.com/vdimir)).
* Corrige um possível travamento durante o encerramento (ao destruir o TraceCollector). Corrige [#44757](https://github.com/ClickHouse/ClickHouse/issues/44757). [#44758](https://github.com/ClickHouse/ClickHouse/pull/44758) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige uma possível falha no processamento distribuído de consultas. A falha poderia ocorrer se uma consulta com totais ou extremos retornasse um resultado vazio e houvesse tipos incompatíveis entre as tabelas Distributed e as tabelas locais. Corrige [#44738](https://github.com/ClickHouse/ClickHouse/issues/44738). [#44760](https://github.com/ClickHouse/ClickHouse/pull/44760) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigido o fsync para fetches (`min_compressed_bytes_to_fsync_after_fetch`)/arquivos pequenos (ttl.txt, columns.txt) em mutações (`min_rows_to_fsync_after_merge`/`min_compressed_bytes_to_fsync_after_merge`). [#44781](https://github.com/ClickHouse/ClickHouse/pull/44781) ([Azat Khuzhin](https://github.com/azat)).
* Uma rara condição de corrida podia ocorrer ao consultar as tabelas `system.parts` ou `system.parts_columns` enquanto partes eram movidas entre discos. Introduzido em [#41145](https://github.com/ClickHouse/ClickHouse/issues/41145). [#44809](https://github.com/ClickHouse/ClickHouse/pull/44809) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o erro `Context has expired`, que podia aparecer com a otimização de projeções ativada. Pode ser reproduzido em consultas com funções específicas, como `dictHas/dictGet`, que usam contexto em tempo de execução. Corrige [#44844](https://github.com/ClickHouse/ClickHouse/issues/44844). [#44850](https://github.com/ClickHouse/ClickHouse/pull/44850) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Correção para o erro `Cannot read all data`, que podia ocorrer ao ler o dicionário `LowCardinality` do remote fs. Corrige [#44709](https://github.com/ClickHouse/ClickHouse/issues/44709). [#44875](https://github.com/ClickHouse/ClickHouse/pull/44875) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Ignora os casos em que os sensores de monitoramento de hardware não podem ser lidos, em vez de exibir a mensagem completa da exceção nos logs. [#44895](https://github.com/ClickHouse/ClickHouse/pull/44895) ([Raúl Marín](https://github.com/Algunenano)).
* Use o valor de `max_delay_to_insert` quando o tempo de atraso calculado para o INSERT exceder o valor configurado. Relacionado a [#44902](https://github.com/ClickHouse/ClickHouse/issues/44902). [#44916](https://github.com/ClickHouse/ClickHouse/pull/44916) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige o erro `Different order of columns in UNION subquery` em consultas com `UNION`. Corrige [#44866](https://github.com/ClickHouse/ClickHouse/issues/44866). [#44920](https://github.com/ClickHouse/ClickHouse/pull/44920) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* O atraso do INSERT pode ser calculado incorretamente, o que pode fazer com que a configuração `max_delay_to_insert` seja sempre usada como atraso, em vez do valor correto. Usa-se a fórmula simples `max_delay_to_insert * (parts_over_threshold/max_allowed_parts_over_threshold)`, ou seja, o atraso aumenta proporcionalmente às partes acima do limite. Fecha [#44902](https://github.com/ClickHouse/ClickHouse/issues/44902). [#44954](https://github.com/ClickHouse/ClickHouse/pull/44954) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige o erro de `alter table TTL` quando uma parte wide tem a máscara de exclusão leve. [#44959](https://github.com/ClickHouse/ClickHouse/pull/44959) ([Mingliang Pan](https://github.com/liangliangpan)).
* Correção complementar para substituir tipos IP de domínio (IPv4, IPv6) por tipos nativos [#43221](https://github.com/ClickHouse/ClickHouse/issues/43221). [#45024](https://github.com/ClickHouse/ClickHouse/pull/45024) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correção complementar para substituir os tipos de IP de domínio (IPv4, IPv6) por tipos nativos [https://github.com/ClickHouse/ClickHouse/pull/43221](https://github.com/ClickHouse/ClickHouse/pull/43221). [#45043](https://github.com/ClickHouse/ClickHouse/pull/45043) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Havia a possibilidade de buffer overflow no parser. Encontrado por um fuzzer. [#45047](https://github.com/ClickHouse/ClickHouse/pull/45047) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um possível erro de `cannot-read-all-data` no armazenamento FileLog. Fecha [#45051](https://github.com/ClickHouse/ClickHouse/issues/45051), [#38257](https://github.com/ClickHouse/ClickHouse/issues/38257). [#45057](https://github.com/ClickHouse/ClickHouse/pull/45057) ([Kseniia Sumarokova](https://github.com/kssenii)).
* A agregação com uso eficiente de memória (configuração `distributed_aggregation_memory_efficient`) é desativada quando há grouping sets na consulta. [#45058](https://github.com/ClickHouse/ClickHouse/pull/45058) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige o dicionário `RANGE_HASHED` para considerar as colunas de intervalo como parte da chave primária durante as atualizações quando `update_field` é especificado. Fecha [#44588](https://github.com/ClickHouse/ClickHouse/issues/44588). [#45061](https://github.com/ClickHouse/ClickHouse/pull/45061) ([Maksim Kita](https://github.com/kitaisreal)).
* Corrige o erro `Cannot capture column` no argumento `LowCardinality` capturado de uma lambda aninhada. Corrige [#45028](https://github.com/ClickHouse/ClickHouse/issues/45028). [#45065](https://github.com/ClickHouse/ClickHouse/pull/45065) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige o resultado incorreto da consulta de `additional_table_filters` (o filtro adicional não era aplicado) no caso de uso da projeção minmax/count. [#45133](https://github.com/ClickHouse/ClickHouse/pull/45133) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigido bug na função `histogram`, que aceitava valores negativos. [#45147](https://github.com/ClickHouse/ClickHouse/pull/45147) ([simpleton](https://github.com/rgzntrade)).
* Corrige a nulabilidade incorreta da coluna no StoreageJoin, fecha [#44940](https://github.com/ClickHouse/ClickHouse/issues/44940). [#45184](https://github.com/ClickHouse/ClickHouse/pull/45184) ([Vladimir C](https://github.com/vdimir)).
* Corrigido o recarregamento da configuração `background_fetches_pool_size` (aumento em tempo de execução). [#45189](https://github.com/ClickHouse/ClickHouse/pull/45189) ([Raúl Marín](https://github.com/Algunenano)).
* Processar corretamente consultas `SELECT` em motores KV (por exemplo, KeeperMap, EmbeddedRocksDB) usando `IN` na chave com subconsulta que retorna um tipo diferente. [#45215](https://github.com/ClickHouse/ClickHouse/pull/45215) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige um erro lógico em SEMI JOIN & join\_use\_nulls em alguns casos, fecha [#45163](https://github.com/ClickHouse/ClickHouse/issues/45163) e [#45209](https://github.com/ClickHouse/ClickHouse/issues/45209). [#45230](https://github.com/ClickHouse/ClickHouse/pull/45230) ([Vladimir C](https://github.com/vdimir)).
* Corrige `heap-use-after-free` ao ler do S3. [#45253](https://github.com/ClickHouse/ClickHouse/pull/45253) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrige um bug que ocorria quando o tipo Union do Avro é \['null', tipo Nested], fecha [#45275](https://github.com/ClickHouse/ClickHouse/issues/45275). Corrige um bug que inferia incorretamente o tipo `bytes` como `Float`. [#45276](https://github.com/ClickHouse/ClickHouse/pull/45276) ([flynn](https://github.com/ucasfl)).
* Lançar a exceção correta quando o PREWHERE explícito não puder ser usado com uma tabela que utiliza o mecanismo de armazenamento `Merge`. [#45319](https://github.com/ClickHouse/ClickHouse/pull/45319) ([Antonio Andelic](https://github.com/antonio2368)).
* No Ubuntu no WSL1, o ClickHouse autoextraível não consegue descompactar devido a uma inconsistência: `/proc/self/maps` informa o inode de um arquivo de 32 bits, enquanto `stat` informa um inode de 64 bits. [#45339](https://github.com/ClickHouse/ClickHouse/pull/45339) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige uma condição de corrida na inicialização da tabela Distributed (o que poderia fazer com que o arquivo de `async INSERT` fosse processado várias vezes). [#45360](https://github.com/ClickHouse/ClickHouse/pull/45360) ([Azat Khuzhin](https://github.com/azat)).
* Corrige uma possível falha ao ler do armazenamento `S3` e da função de tabela `s3` quando a requisição `ListObject` falha. [#45371](https://github.com/ClickHouse/ClickHouse/pull/45371) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigida a exceção de `SELECT ... FROM system.dictionaries` quando há um dicionário com estrutura inválida (por exemplo, tipo incorreto na configuração XML). [#45399](https://github.com/ClickHouse/ClickHouse/pull/45399) ([Aleksei Filatov](https://github.com/aalexfvk)).
* Corrigida a inferência de esquema do s3Cluster quando a estrutura da tabela de inserção é usada em consultas `INSERT INTO ... SELECT * FROM s3Cluster`. [#45422](https://github.com/ClickHouse/ClickHouse/pull/45422) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrigido erro na análise de JSON/BSONEachRow via HTTP que poderia levar ao uso de valores padrão para algumas colunas em vez dos valores dos dados. [#45424](https://github.com/ClickHouse/ClickHouse/pull/45424) ([Kruglov Pavel](https://github.com/Avogar)).
* Corrigido bug (Code: 632. DB::Exception: Unexpected data ... after parsed IPv6 value ...) no parsing tipado de tipos IP a partir de uma fonte de texto. [#45425](https://github.com/ClickHouse/ClickHouse/pull/45425) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* fecha [#45297](https://github.com/ClickHouse/ClickHouse/issues/45297) Adiciona verificação para expressões regulares vazias. [#45428](https://github.com/ClickHouse/ClickHouse/pull/45428) ([Han Fei](https://github.com/hanfei1991)).
* Corrige um possível travamento de consulta (provavelmente distribuída). [#45448](https://github.com/ClickHouse/ClickHouse/pull/45448) ([Azat Khuzhin](https://github.com/azat)).
* Corrige possível deadlock com `allow_asynchronous_read_from_io_pool_for_merge_tree` habilitado no caso de exceção em `ThreadPool::schedule`. [#45481](https://github.com/ClickHouse/ClickHouse/pull/45481) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige possível problema de tabela em uso após DETACH. [#45493](https://github.com/ClickHouse/ClickHouse/pull/45493) ([Azat Khuzhin](https://github.com/azat)).
* Corrige uma falha rara no caso em que uma consulta é cancelada e o parsing paralelo foi usado durante sua execução. [#45498](https://github.com/ClickHouse/ClickHouse/pull/45498) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige uma condição de corrida entre a criação de uma tabela Distributed e o INSERT nela (o que poderia causar CANNOT\_LINK durante o INSERT na tabela). [#45502](https://github.com/ClickHouse/ClickHouse/pull/45502) ([Azat Khuzhin](https://github.com/azat)).
* Adiciona o valor padrão adequado (SLRU) ao getter da política de cache. Fecha [#45514](https://github.com/ClickHouse/ClickHouse/issues/45514). [#45524](https://github.com/ClickHouse/ClickHouse/pull/45524) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Proibição de array join em mutações corrige [#42637](https://github.com/ClickHouse/ClickHouse/issues/42637) [#44447](https://github.com/ClickHouse/ClickHouse/pull/44447) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Correção de asteriscos qualificados com nome de tabela de alias e transformador de coluna. Resolve [#44736](https://github.com/ClickHouse/ClickHouse/issues/44736). [#44755](https://github.com/ClickHouse/ClickHouse/pull/44755) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).

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