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

> Changelog de 2026

# Changelog 2026

<div id="267">
  ### Lançamento do ClickHouse 26.7, 2026-07-22. [Apresentação](https://presentations.clickhouse.com/2026-release-26.7/), [Vídeo](https://www.youtube.com/watch?v=mKBNLaFOVDA)
</div>

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

* O acesso ao S3 originado de SQL de usuário não resolve mais, por padrão, as credenciais de nuvem do próprio servidor (ambiente, IMDS/IRSA, perfil de instância, arquivos de configuração da AWS, STS baseado em `role_arn`, metadados OAuth do GCP); essa solicitação deve usar explicit credentials ou `NOSIGN`. As named collections agora usam `use_environment_credentials` = `0` por padrão. O comportamento anterior pode ser restaurado por solicitação com `use_environment_credentials = 1` (ou globalmente pela configuração `<s3>`), juntamente com a nova server setting `s3_allow_server_credentials_in_user_queries` (desabilitada por padrão). As credenciais de configuração fornecidas explicitamente e provisionadas pelo operador não são afetadas. Na inicialização do servidor ou em `RESTORE`, uma table persistente `S3`/`S3Queue`, um disk S3 dinâmico ou um `DataLakeCatalog` cuja definição resolva essas credenciais é carregado anonimamente (inacessível até receber novas credenciais), em vez de interromper a inicialização; isso é controlado pela nova server setting `s3_load_table_anonymously_if_credentials_restricted` (habilitada por padrão). [#106855](https://github.com/ClickHouse/ClickHouse/pull/106855) ([Raúl Marín](https://github.com/Algunenano)).
* O glob `**/` (qualquer número de diretórios) agora também corresponde ao próprio diretório. Antes, `**/` em glob patterns não era tratado como um caso especial, então `data/**/file.txt` não correspondia a `data/file.txt` (zero níveis de diretório). [#97676](https://github.com/ClickHouse/ClickHouse/pull/97676) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Rejeita o formato de arquivo de backup `zip`/`zipx` para backups armazenados em armazenamento de objetos — destinos diretos `S3(...)`/`AzureBlobStorage(...)` e destinos `Disk(...)` backed by S3 ou Azure — tanto para `BACKUP` quanto para `RESTORE`. O Zip exige acesso aleatório para ler seu diretório central, o que é muito lento em armazenamento de objetos. Use um formato baseado em tar, como `tar.gz`, em vez disso. [#101770](https://github.com/ClickHouse/ClickHouse/pull/101770) ([Yash ](https://github.com/Onyx2406)).
* Ampliou o intervalo suportado de `DateTime64` de `[1900-01-01, 2299-12-31]` para `[0000-01-01, 9999-12-31]`. Valores fora do intervalo anterior agora são calculados corretamente (via cctz), em vez de serem limitados aos limites do intervalo. Com precision 8 ou 9, o intervalo continua mais estreito porque os ticks são armazenados como `Int64` (com precisão de nanossegundos, o máximo continua sendo `2262-04-11`). compatibilidade retroativa: se você usava date-times fora do intervalo antes, mas dependia das regras muito específicas de saturação dentro do intervalo antigo, tenha em mente que agora os resultados mudam para ficarem mais corretos. [#107907](https://github.com/ClickHouse/ClickHouse/pull/107907) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `AggregatingMergeTree` agora rejeita, no momento da criação da table, esquemas em que uma coluna não faz parte da sorting key nem é uma medida de estado agregado (`AggregateFunction`/`SimpleAggregateFunction`). Essas colunas são colapsadas silenciosamente para um valor arbitrário durante os background merges, produzindo resultados incorretos para queries que fazem `GROUP BY` ou filtram por elas. Defina `allow_dimensions_outside_sorting_key = 1` para restaurar o comportamento anterior. Fecha [#751](https://github.com/ClickHouse/ClickHouse/issues/751). [#108087](https://github.com/ClickHouse/ClickHouse/pull/108087) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Removeu a configuração de Workload scheduling baseada em config (as seções de configuração do servidor `resources` e `workload_classifiers`). Use queries `CREATE RESOURCE` e `CREATE WORKLOAD` em vez disso. As seções de configuração obsoletas são ignoradas com um aviso. [#108286](https://github.com/ClickHouse/ClickHouse/pull/108286) ([Sergei Trifonov](https://github.com/serxa)).
* O ClickHouse agora sempre usa o hash unificado de desduplicação de inserts tanto para inserts síncronos quanto assíncronos; os comportamentos legados de desduplicação por insert foram removidos. A configuração do servidor `insert_deduplication_version` é mantida como uma proteção de migração: o servidor se recusa a iniciar se ela estiver definida com um valor legado (`old_separate_hashes` ou `compatible_double_hashes`). Para atualizar a partir de uma versão que usava um valor legado, primeiro execute uma versão que ofereça suporte a `compatible_double_hashes` (que grava tanto os hashes legados quanto os unificados). Para tabelas replicadas, execute-a por pelo menos `replicated_deduplication_window_seconds` (uma hora por padrão; as janelas padrão retêm os hashes unificados de todos os inserts durante esse intervalo, o que é considerado suficiente para um loop de repetição de insert). Para tabelas não replicadas com `non_replicated_deduplication_window` > 0, essa janela é baseada em contagem, e não em tempo, então execute `compatible_double_hashes` por pelo menos essa quantidade de inserts. Em seguida, remova a configuração (ou defina-a como `new_unified_hash`) antes de atualizar para esta versão. [#108361](https://github.com/ClickHouse/ClickHouse/pull/108361) ([Sema Checherinda](https://github.com/CheSema)). Se você nunca definiu `insert_deduplication_version`, pode ignorar este item.
* Foram removidas as funções há muito tempo obsoletas `snowflakeToDateTime`, `snowflakeToDateTime64`, `dateTimeToSnowflake` e `dateTime64ToSnowflake`. Elas foram descontinuadas ainda na v24.6 em favor de `snowflakeIDToDateTime`, `snowflakeIDToDateTime64`, `dateTimeToSnowflakeID` e `dateTime64ToSnowflakeID`, que devem ser usadas no lugar. A configuração `allow_deprecated_snowflake_conversion_functions` (que antes as reativava) agora está obsoleta e não tem efeito. [#108711](https://github.com/ClickHouse/ClickHouse/pull/108711) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A configuração `use_legacy_to_time` agora é `0` por padrão, então `toTime` converte valores para o tipo de dado `Time` em vez de converter uma data com hora em uma data fixa. O comportamento legado ainda está disponível por meio da função `toTimeWithFixedDate` ou definindo `use_legacy_to_time = 1`. [#108729](https://github.com/ClickHouse/ClickHouse/pull/108729) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Os modelos Naive Bayes (usados por `naiveBayesClassifier`) agora são configurados como um dicionário com o layout `NAIVE_BAYES`, criado no momento do carregamento a partir de uma tabela de contagens de n-gramas pré-agregadas por classe, em vez da configuração anterior no servidor (um arquivo de configuração XML que referencia arquivos de modelo `.bin` serializados), que não é mais compatível — os modelos existentes devem ser recriados como dicionários. Três novas funções foram adicionadas junto com `naiveBayesClassifier`: `naiveBayesClassifierWithProb` retorna a classe prevista junto com sua probabilidade, `naiveBayesClassifierWithAllProbs` retorna cada classe com sua probabilidade, e `naiveBayesNgrams` tokeniza o texto em n-gramas da mesma forma que o dicionário faz, para criar os dados de treinamento a partir de texto bruto rotulado. Além disso, várias otimizações de desempenho foram aplicadas: em um modelo de linguagem de trigramas de pontos de código de 9.7 MiB, ele usa \~49× menos memória (de 1.84 GiB para 38 MiB), carrega \~11× mais rápido e classifica \~11× mais rápido. [#108773](https://github.com/ClickHouse/ClickHouse/pull/108773) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* A função `hasColumnInTable` não aceita mais os argumentos opcionais `hostname`, `username` e `password` para verificar uma coluna em um servidor remoto arbitrário; apenas a forma `hasColumnInTable(database, table, column)` permanece. O modo remoto removido era uma preocupação de segurança: ele permitia que qualquer usuário disparasse conexões de saída para hosts arbitrários e vazava credenciais para os logs de consultas, além de não ser controlado por nenhum privilégio. [#110881](https://github.com/ClickHouse/ClickHouse/pull/110881) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Adicionado `EXPLAIN ANALYZE` para examinar o desempenho da consulta: a consulta é executada, e as métricas reais de execução são apresentadas no formato familiar de plano de consulta. [#106586](https://github.com/ClickHouse/ClickHouse/pull/106586) ([Kirill Kopnev](https://github.com/Fgrtue)). [#110668](https://github.com/ClickHouse/ClickHouse/pull/110668) ([Kirill Kopnev](https://github.com/Fgrtue)).
* Adicionado suporte a cláusulas `WHERE` em definições de projeções. Projeções com `WHERE` materializam apenas as linhas que correspondem ao predicado, e o otimizador pode usá-las (com base em custo) quando o `WHERE` da consulta implica o `WHERE` da projeção. [#102347](https://github.com/ClickHouse/ClickHouse/pull/102347) ([S Bala Vignesh](https://github.com/SBALAVIGNESH123)).
* Adicionada a configuração `skip_unavailable_shards_mode` (também disponível como uma configuração da engine `Distributed`) para controlar quais exceções de um shard remoto são ignoradas silenciosamente quando `skip_unavailable_shards` está habilitado. [#79091](https://github.com/ClickHouse/ClickHouse/pull/79091) ([cjw](https://github.com/byte-sourcerer)).
* Adicionada a função de agregação `groupFormat`, que formata as linhas de cada grupo usando um formato de saída especificado e retorna o resultado como string. [#93201](https://github.com/ClickHouse/ClickHouse/pull/93201) ([Yang Hu](https://github.com/wandersofb)).
* Adicionado `AWS_MSK_IAM` como valor compatível para `kafka_sasl_mechanism`, permitindo que o ClickHouse se autentique no Amazon MSK usando IAM roles sem precisar gerenciar credenciais SASL/SCRAM. [#96100](https://github.com/ClickHouse/ClickHouse/pull/96100) ([kalavt](https://github.com/kalavt)).
* Adicionado o combinador de função de agregação `-Tuple`, que aplica a função de agregação subjacente a cada elemento de uma coluna `Tuple` independentemente e retorna uma `Tuple` com os resultados, preservando os nomes dos elementos: `sumTuple(t)` para `t = (a, b)` retorna `(sum(a), sum(b))`. Funções de agregação com vários argumentos recebem uma tupla por argumento, pareadas por posição: `corrTuple((a1, a2), (b1, b2))` retorna `(corr(a1, b1), corr(a2, b2))`. Diferentemente de `-ForEach` em arrays, os elementos podem ter tipos diferentes, e os tipos e nomes dos resultados por elemento são preservados. [#98190](https://github.com/ClickHouse/ClickHouse/pull/98190) ([RinChanNOW](https://github.com/RinChanNOWWW)).
* Índices de texto agora oferecem suporte a um argumento `postprocessor` — uma expressão arbitrária que transforma cada token após a tokenização (por exemplo, `lower`). [#98939](https://github.com/ClickHouse/ClickHouse/pull/98939) ([Jimmy Aguilar Mena](https://github.com/Ergus)). [#108606](https://github.com/ClickHouse/ClickHouse/pull/108606) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Adicionada a tabela de sistema `system.stemmers`, que lista todos os idiomas que podem ser especificados para a função `stem`. [#100611](https://github.com/ClickHouse/ClickHouse/pull/100611) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Adicionado suporte a `WITH TIES` para `LIMIT` negativo. [#100930](https://github.com/ClickHouse/ClickHouse/pull/100930) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Adicionado suporte aos operadores pós-fixos do SQL padrão `AT TIME ZONE` e `AT LOCAL` como açúcar sintático para `toTimeZone`. A expressão `expr AT TIME ZONE zone` agora é equivalente a `toTimeZone(expr, zone)`, e `expr AT LOCAL` é equivalente a `toTimeZone(expr, timeZone())`. [#106092](https://github.com/ClickHouse/ClickHouse/pull/106092) ([lizepeng](https://github.com/lvzhipin03)).
* O motor de tabela `URL` e a table function `url` agora fazem o encaminhamento para o backend apropriado com base no esquema da URL: `file://` é atendido pelo motor `File`, `s3://`/`gs://`/`gcs://`/`oss://` por `S3`, `az://`/`azure://`/`abfss://`/`abfs://` por `AzureBlobStorage`, `hdfs://` por `HDFS` e `http(s)://` pelo motor `URL`, como antes. A configuração `url_base` é aplicada antes do encaminhamento por esquema. Apenas os esquemas S3 resolvidos pelos `url_scheme_mappers` padrão são encaminhados; outros esquemas de fornecedores compatíveis com S3 (`cos`, `obs`, ...) não são e exigem o uso direto do motor/função `s3`. [#106093](https://github.com/ClickHouse/ClickHouse/pull/106093) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Foram adicionados os motores de tabela `Remote` e `RemoteSecure`, as contrapartes persistentes das table functions `remote` e `remoteSecure`. `CREATE TABLE ... ENGINE = Remote('addresses', db, table, ...)` agora funciona além de `CREATE TABLE ... AS remote(...)`. [#106189](https://github.com/ClickHouse/ClickHouse/pull/106189) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Foram adicionados os comandos `SYSTEM STOP`, `SYSTEM START`, `SYSTEM PAUSE`, `SYSTEM CANCEL` e `SYSTEM REFRESH`, independentes do motor, e suas formas `... ALL BACKGROUND` para todo o servidor, para controlar a atividade em segundo plano de tabelas `Kafka`, `RabbitMQ`, `NATS`, `S3Queue`/`AzureQueue` e views materializadas atualizáveis por meio de uma interface unificada. No caso de views materializadas atualizáveis, eles são aliases dos comandos `SYSTEM ... VIEW` já existentes. Como parte do suporte a esses controles no NATS, as tabelas JetStream agora confirmam mensagens apenas após um insert bem-sucedido (pelo menos uma vez; antes, as mensagens eram confirmadas automaticamente na entrega e podiam ser perdidas se o insert falhasse). Uma nova configuração `nats_wait_for_flush_interval` (padrão `false`, preservando o comportamento anterior de baixa latência) opcionalmente mantém um ciclo de consumption aberto durante todo o intervalo de flush, em vez de fazer flush assim que a fila se esvazia. Uma nova configuração `nats_commit_on_select` faz com que um `SELECT` direto em uma tabela JetStream consuma (confirme) as mensagens que lê. [#107476](https://github.com/ClickHouse/ClickHouse/pull/107476) ([Samuel Krempaský](https://github.com/NIKTONIKTO717)).
* Foi adicionado suporte para que as table functions e os motores de tabela `mysql`, `postgresql` e `sqlite` aceitem uma consulta do usuário (em vez de um nome de tabela) e a repassem ao banco de dados externo exatamente como foi escrita, seja como uma subconsulta `(SELECT ...)` ou como `query('SELECT ...')`. A estrutura da tabela resultante é inferida a partir do query result, e essa tabela é somente leitura. Fecha [#46758](https://github.com/ClickHouse/ClickHouse/issues/46758). Com base na implementação inicial de [Denis Vidiaev](https://github.com/the-devid) ([#79652](https://github.com/ClickHouse/ClickHouse/pull/79652)). [#107740](https://github.com/ClickHouse/ClickHouse/pull/107740) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Foram adicionadas tabs à UI Web do ClickHouse (Play) para trabalhar com várias consultas ao mesmo tempo. As tabs, seus títulos, parâmetros, estado ativo e pequenos snapshots de resultados são persistidos entre recarregamentos (resultados grandes e imagens não são restaurados), integram-se ao histórico do navegador e à URL, e podem ser alternadas com a roda do mouse. [#107826](https://github.com/ClickHouse/ClickHouse/pull/107826) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Foi introduzido o motor de tabela `QueryRunner`. Registros inserted em uma tabela `QueryRunner` representam consultas que o motor executa. O motor pode ser usado para query execution assíncrona, execução em lote de consultas geradas, direcionamento de consultas para clusters remotos, benchmarks, fuzzing e testes com tráfego espelho. [#107888](https://github.com/ClickHouse/ClickHouse/pull/107888) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Adicionado o formato de saída `GeoJSON` para gravar documentos `FeatureCollection` do [GeoJSON](https://geojson.org/), produzindo uma feature por linha. A única coluna do tipo geo (`Point`, `LineString`, `MultiLineString`, `Polygon`, `MultiPolygon`, `Ring` ou `Geometry`) torna-se a `geometry` de cada feature; uma coluna chamada `id` torna-se o `id` da feature; e todas as demais colunas tornam-se as `properties` da feature, sendo que uma única coluna do tipo objeto chamada `properties` (um `JSON`, `Map` ou `Tuple` nomeado) é gravada diretamente como o objeto `properties`. Um `Ring` é gravado como um `Polygon` de anel único. A nova configuração `format_geojson_validate_geometry` (habilitada por padrão) controla se geometrias que não são formas GeoJSON válidas — como um `Polygon` com menos de quatro pontos ou um anel de `Polygon` não fechado — são rejeitadas na leitura e na gravação. Além disso, o formato de entrada `GeoJSON` agora infere a coluna `id` como `Nullable(String)` em vez de `String`, de modo que uma feature com o membro `"id": null` ausente ou explicitamente definido seja lida como `NULL` e permaneça distinta de uma string vazia `""`. Baseado na implementação inicial de [Mark Needham](https://github.com/mneedham) ([#98124](https://github.com/ClickHouse/ClickHouse/pull/98124)). [#108065](https://github.com/ClickHouse/ClickHouse/pull/108065) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Adicionada a função `dotProductTransposed` (alias `scalarProductTransposed`), que calcula o produto interno aproximado entre uma coluna `QBit` e um vetor de referência, complementando as funções existentes `L2DistanceTransposed` e `cosineDistanceTransposed`. [#108100](https://github.com/ClickHouse/ClickHouse/pull/108100) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Também foram adicionadas as funções de distância transposta quantizada `cosineDistanceTransposedQuantized`, `L2DistanceTransposedQuantized` e `dotProductTransposedQuantized`, que operam sobre um `QBit(Int8)` de códigos Lloyd-Max de `quantizeBFloat16ToInt8`, desquantizando os códigos armazenados dinamicamente. Um vetor de referência de ponto flutuante é a consulta em precisão total, comparada com precisão `Float32` (uma consulta `Float64` é reduzida); uma referência `Array(Int8)` é ela própria desquantizada, para uma distância simétrica quantized-vs-quantized. [#109405](https://github.com/ClickHouse/ClickHouse/pull/109405) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado um parâmetro opcional de stride ao tipo de dado `QBit` (`QBit(T, dimension, stride)`), que armazena grupos de dimensões em fluxos separados, para que uma busca vetorial possa ler com eficiência apenas as primeiras dimensões (por exemplo, para Matryoshka embeddings). As funções de distância transposta aceitam um quarto argumento opcional `used_dims` para ler um número reduzido de dimensões. [#108103](https://github.com/ClickHouse/ClickHouse/pull/108103) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado suporte ao tipo de elemento `Int8` no tipo de dado `QBit`, permitindo armazenamento e busca vetorial por distância transposta (`L2DistanceTransposed`, `cosineDistanceTransposed`) sobre vetores inteiros quantizados de 8 bits. [#108105](https://github.com/ClickHouse/ClickHouse/pull/108105) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Nova função `randomHadamardTransform(vector[, seed[, output_dims]])`: uma transformada Hadamard aleatória determinística de um vetor de ponto flutuante — uma rotação ortogonal que preserva a norma, útil para o pré-processamento de embeddings antes da quantização e, quando truncada, como projeção aleatória Johnson–Lindenstrauss / subsampled-randomized-Hadamard. [#108227](https://github.com/ClickHouse/ClickHouse/pull/108227) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suporte para configurar o carregamento lazy de dicionários individualmente com a configuração `dictionary_lazy_load` na definição do dicionário, substituindo a configuração global de servidor `dictionaries_lazy_load`, para que alguns dicionários possam ser carregados de forma lazy enquanto outros sejam carregados antecipadamente. [#108314](https://github.com/ClickHouse/ClickHouse/pull/108314) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Adicionada uma página integrada de Busca na documentação, disponível no caminho `/docs` da interface HTTP, que oferece busca instantânea na tabela `system.documentation` e renderiza a documentação de referência (com realce de sintaxe, fórmulas matemáticas e links cruzados). [#108345](https://github.com/ClickHouse/ClickHouse/pull/108345) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionada a função `xxHash64Spark`, que calcula valores `xxHash64` compatíveis com o Spark para entradas `String` e `NULL` usando a seed `42` e retorna `Int64`. [#108436](https://github.com/ClickHouse/ClickHouse/pull/108436) ([Lalit Yadav](https://github.com/lalitium)).
* `ALTER USER`, `ALTER ROLE` e `ALTER SETTINGS PROFILE` agora aceitam `SET name = value` como alias de `MODIFY SETTING name = value`. Isso altera configurações individuais no local, preservando as demais, ao contrário da cláusula `SETTINGS` sem modificador, que substitui toda a lista de configurações. Com isso, fica menos provável apagar acidentalmente outras configurações de um usuário. [#108722](https://github.com/ClickHouse/ClickHouse/pull/108722) ([Groene AI](https://github.com/groeneai)).
* Suporte a `ALTER TABLE ... MODIFY CONSTRAINT [IF EXISTS] name CHECK expr` para alterar, no local, a expressão de uma restrição existente. [#108768](https://github.com/ClickHouse/ClickHouse/pull/108768) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Web UI: adicionado um seletor de colorização por coluna (o ícone 🌈 no cabeçalho da coluna) para alternar entre barra, heatmap, categórica e nenhuma visualização. Os modos selecionados são mantidos na URL e no histórico do navegador. [#108873](https://github.com/ClickHouse/ClickHouse/pull/108873) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `Keeper` agora trata corretamente o opcode `CreateContainer` (19) do `ZooKeeper`, controlado por uma nova feature flag opcional `create_container` (desabilitada por padrão, assim como `create_ttl`). Depois de habilitada após um upgrade completo do ensemble, clientes externos de `ZooKeeper` (por exemplo, `ZooKeeper` 3.9+ em Java) podem criar nós de contêiner no `Keeper` em vez de receber `ConnectionLoss`; os nós de contêiner reportam o valor sentinela `ephemeralOwner` esperado, e uma thread de GC em background no líder exclui automaticamente contêineres sem filhos. Uma requisição `Create` simples com a flag de modo de criação `CONTAINER`, sem o opcode 19, continua sendo rejeitada (`ZBADARGUMENTS`): nenhum cliente `ZooKeeper` conhecido emite essa combinação. Isso é apenas compatibilidade de protocolo server-side: o cliente `ZooKeeper` do próprio ClickHouse (`zkutil`) permanece inalterado e não tem API para criar nós de contêiner por conta própria. [#108908](https://github.com/ClickHouse/ClickHouse/pull/108908) ([unintended](https://github.com/unintended)).
* Adicionadas as funções `geoToUTM`, `UTMToGeo`, `geoToMGRS` e `MGRSToGeo` para converter entre coordenadas geográficas WGS84 e os sistemas de coordenadas UTM e MGRS. [#108939](https://github.com/ClickHouse/ClickHouse/pull/108939) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionada a função `digits(n, offset[, length])`, que retorna os dígitos de `n` a partir do `offset`, com indexação iniciada em 1, abrangendo `length` dígitos, ou até o fim do número se `length` for omitido. [#109012](https://github.com/ClickHouse/ClickHouse/pull/109012) ([Umang Agrawal](https://github.com/1000ms)).
* Adicionada a função aritmética `sqr` para calcular o quadrado de um número. [#109061](https://github.com/ClickHouse/ClickHouse/pull/109061) ([Lalit Yadav](https://github.com/lalitium)).
* Adicionada a nova função `dictGetRoot`, que retorna o ancestral mais alto (a raiz) de uma chave em um dicionário hierárquico. Ela é um equivalente prático de `dictGetHierarchy(dict_name, key)[-1]`. [#109459](https://github.com/ClickHouse/ClickHouse/pull/109459) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionados os comandos `SYSTEM UNLOAD DICTIONARY` e `SYSTEM UNLOAD DICTIONARIES` para liberar a memória do dicionário sem remover sua definição. Os dicionários serão recarregados sob demanda no próximo acesso. [#109639](https://github.com/ClickHouse/ClickHouse/pull/109639) ([Matheus Nerone](https://github.com/Manerone)).
* Adicionadas as funções `geometryIntersectCartesian` e `geometryIntersectSpherical`, que indicam se duas geometrias se intersectam. Diferentemente de `polygonsIntersectCartesian`/`polygonsIntersectSpherical`, elas aceitam qualquer tipo de geometria (`Point`, `LineString`, `MultiLineString`, `Ring`, `Polygon`, `MultiPolygon`), incluindo o tipo comum `Geometry`, e os dois argumentos podem ser de tipos diferentes. [#110062](https://github.com/ClickHouse/ClickHouse/pull/110062) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Parâmetros de consulta (substituições `{name:Type}`) agora podem ser usados como valores de configuração, tanto na cláusula `SETTINGS` de uma consulta (como `SELECT` ou `INSERT`) quanto em consultas `SET` independentes, por exemplo, `SELECT ... SETTINGS max_threads = {threads:UInt64}` e `SET max_threads = {threads:UInt64}`. [#108760](https://github.com/ClickHouse/ClickHouse/pull/108760) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Expansão de curingas para a table function `url` e o table engine `URL`: os curingas no caminho da URL são expandidos listando páginas de índice HTTP (listagens de diretório em HTML ou plaintext) e extraindo as URLs correspondentes, com limites para o tamanho da página de índice e para o número de diretórios lidos. Habilitado pela configuração `allow_experimental_url_wildcard_from_index_pages`. [#95181](https://github.com/ClickHouse/ClickHouse/pull/95181) ([Yue Ni](https://github.com/niyue)).
* Os índices de texto agora podem armazenar posições de tokens (o argumento de índice `support_phrase_search`) para permitir correspondência exata de frases com leituras diretas na função `hasPhrase`. Requer a habilitação da configuração `allow_experimental_text_index_phrase_search` do `MergeTree`. [#103172](https://github.com/ClickHouse/ClickHouse/pull/103172) ([Elmi Ahmadov](https://github.com/ahmadov)). O argumento foi introduzido inicialmente com o nome `positions`. [#109900](https://github.com/ClickHouse/ClickHouse/pull/109900) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Suporte à compactação de arquivos manifest para tabelas `Iceberg` via `OPTIMIZE TABLE ... MANIFEST` (controlado pela configuração `allow_experimental_iceberg_compaction`). Fecha [#95174](https://github.com/ClickHouse/ClickHouse/issues/95174). [#98178](https://github.com/ClickHouse/ClickHouse/pull/98178) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). Corrige `OPTIMIZE TABLE ... MANIFEST` para tabelas `Iceberg` quando as tuplas de partição do manifest não correspondem à respectiva especificação de partição. [#111368](https://github.com/ClickHouse/ClickHouse/pull/111368) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Adiciona uma variante Real Doubles (RD) e um argumento opcional `ALP(AUTO|STD|RD)` ao codec experimental `ALP`. `ALP` sem argumentos agora seleciona automaticamente entre o esquema `STD` existente e `RD`, em vez de sempre usar `STD`. [#99654](https://github.com/ClickHouse/ClickHouse/pull/99654) ([Nazarii Piontko](https://github.com/nazarii-piontko)).
* Adiciona um cache SLRU em memória para arquivos de metadados `Paimon` desserializados (manifest lists e manifests). Quando habilitado pela configuração `use_paimon_metadata_files_cache`, consultas repetidas na mesma tabela `Paimon` evitam baixar novamente e reprocessar os metadados do armazenamento de objetos. [#104657](https://github.com/ClickHouse/ClickHouse/pull/104657) ([XiaoBinMu](https://github.com/Binnn-MX)).
* Adicionados "drivers" para Funções Definidas pelo Usuário executáveis. Um driver declarado em `<user_defined_executable_function_drivers_config>` pode ser usado em `CREATE FUNCTION name ARGUMENTS (...) RETURNS T ENGINE = DriverName(...) AS '...code...'` para compilar ou processar de outra forma um trecho de código do usuário no momento da criação da função e produzir uma UDF executável pronta para uso. A configuração resultante é armazenada em `<dynamic_user_defined_executable_functions_path>`, e a consulta de origem é persistida como `ATTACH FUNCTION` para que a função sobreviva a reinicializações do servidor. Um driver `c_function_body` de prova de conceito compila e executa corpos de função em C dentro de contêineres Docker isolados no modo `executable_pool`. Baseado na implementação inicial de [Daniil Timižev](https://github.com/dahbka-lis) ([#77128](https://github.com/ClickHouse/ClickHouse/pull/77128)). [#105131](https://github.com/ClickHouse/ClickHouse/pull/105131) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Atende `SELECT count(*) FROM t WHERE col <op> default(col)` usando estatísticas de esparsidade por coluna em `serialization.json`, sem varredura de dados, quando o predicado particiona exatamente a coluna entre valores default e não default (sob a nova configuração experimental `optimize_trivial_count_with_sparsity_filter`, desabilitada por padrão). [#105890](https://github.com/ClickHouse/ClickHouse/pull/105890) ([Raúl Marín](https://github.com/Algunenano)).
* Requisições da Prometheus Query API para `/api/v1/query` e `/api/v1/query_range` agora são registradas em `system.query_log` com as métricas `read_rows` e `read_bytes`. [#106611](https://github.com/ClickHouse/ClickHouse/pull/106611) ([James Cunningham](https://github.com/JTCunning)).
* O caminho de leitura experimental do `ReaderExecutor` (`use_reader_executor`, desativado por padrão) agora pode manter aberta uma conexão remota com a fonte e reutilizá-la em leituras sequenciais, reduzindo o número de solicitações ao armazenamento de objetos durante varreduras. [#107735](https://github.com/ClickHouse/ClickHouse/pull/107735) ([Sema Checherinda](https://github.com/CheSema)). Agora ele também oferece suporte à leitura de arquivos criptografados, com um cache global de cabeçalhos de criptografia configurado pela server setting `encryption_header_cache_size` e limpo por `SYSTEM DROP ENCRYPTION HEADERS CACHE`. [#109702](https://github.com/ClickHouse/ClickHouse/pull/109702) ([Sema Checherinda](https://github.com/CheSema)).
* Suporte a leituras com plano de consulta distribuído para `SELECT ... FINAL` em tabelas da família `MergeTree` quando `make_distributed_plan` está habilitado. [#108148](https://github.com/ClickHouse/ClickHouse/pull/108148) ([Alexander Gololobov](https://github.com/davenger)).
* Adicionada execução experimental de réplicas paralelas baseada em plano para consultas `MergeTree`. [#108504](https://github.com/ClickHouse/ClickHouse/pull/108504) ([Igor Nikonov](https://github.com/devcrafter)).
* Adicionada a família experimental de codec vetorial `Quantize` e uma reescrita opcional de busca vetorial aproximada em dois estágios sobre streams complementares quantizados. [#108565](https://github.com/ClickHouse/ClickHouse/pull/108565) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Reativado o codec experimental de compressão com perda `SZ3`, com erro limitado, para colunas `Float32`/`Float64` (e arrays delas), implementado originalmente por [Konstantin Vedernikov](https://github.com/scanhex12) ([#83088](https://github.com/ClickHouse/ClickHouse/pull/83088)). Ele requer `allow_experimental_codecs`. [#108788](https://github.com/ClickHouse/ClickHouse/pull/108788) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Corrigida a leitura de dados comprimidos com `SZ3('ALGO_LORENZO_REG', ...)`, que antes falhava com `CORRUPTED_DATA`, e evitado comportamento indefinido ao comprimir valores de ponto flutuante não finitos (`NaN` e infinitos). [#110762](https://github.com/ClickHouse/ClickHouse/pull/110762) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado o codec experimental `ZXC` — um codec LZ assimétrico com compressão lenta e descompressão muito rápida, com uma taxa de compressão entre `LZ4` e `ZSTD`. Ele requer `allow_experimental_codecs = 1`, e `system.compression_codecs` o informa como experimental. [#110620](https://github.com/ClickHouse/ClickHouse/pull/110620) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#111007](https://github.com/ClickHouse/ClickHouse/pull/111007) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Agora você pode se autenticar no OneLake usando um bearer token obtido previamente por meio da configuração `onelake_bearer_token`, em vez de `onelake_client_id` e `onelake_client_secret`. Isso evita compartilhar um client secret de longa duração. O token não é renovado, então o banco de dados deve ser recriado quando ele expirar. [#109104](https://github.com/ClickHouse/ClickHouse/pull/109104) ([Asya Shneerson](https://github.com/asya-ch)).
* As funções de IA não usam mais a coleção nomeada como primeiro argumento posicional. As credenciais vêm das configurações `ai_function_text_default_credentials` / `ai_function_embedding_default_credentials` ou de uma chave `credentials` em um argumento opcional final `Map(String, String)`, que também carrega parâmetros ajustáveis (`model`, `max_tokens`, `temperature`, `system_prompt`, `instructions`, `dimensions`). [#109232](https://github.com/ClickHouse/ClickHouse/pull/109232) ([George Larionov](https://github.com/george-larionov)). A função `aiEmbed` agora recebe `model` como um argumento posicional obrigatório (`aiEmbed(text, model[, params])`) em vez de lê-lo da coleção nomeada, o que garante reprodutibilidade para embeddings. [#110619](https://github.com/ClickHouse/ClickHouse/pull/110619) ([George Larionov](https://github.com/george-larionov)).
* Corrigido `data_uncompressed_bytes` para índices de salto empacotados em `skp_idx.packed` (via `packed_skip_index_max_bytes`): o tamanho não comprimido reportado era, na verdade, o tamanho comprimido, o que também podia impedir a ativação de `distributed_index_analysis`. [#109272](https://github.com/ClickHouse/ClickHouse/pull/109272) ([Raúl Marín](https://github.com/Algunenano)).
* Adicionado armazenamento experimental de data part empacotada para tabelas `MergeTree`, que armazena a maioria dos arquivos de uma part em um único arquivo `data.packed`, em vez de um arquivo por stream (as projeções e alguns arquivos de serviço, como `txn_version.txt`, ainda são gravados separadamente). Ele é controlado pelas configurações `min_bytes_for_full_part_storage`, `min_rows_for_full_part_storage` e `min_level_for_full_part_storage` e fica desabilitado por padrão. Depois que uma tabela grava parts empacotadas, versões mais antigas do servidor não conseguem lê-las; portanto, habilitar esse formato impede o downgrade do servidor. [#108118](https://github.com/ClickHouse/ClickHouse/pull/108118) ([Raúl Marín](https://github.com/Algunenano)).
* Adicionada a table function experimental `eval`, que avalia uma expressão constante como uma string de consulta e executa a única consulta `SELECT` resultante. O recurso fica desabilitado por padrão e pode ser habilitado com a configuração `allow_experimental_eval_table_function`. Autor: [Yue Ni](https://github.com/niyue). [#110132](https://github.com/ClickHouse/ClickHouse/pull/110132) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado suporte à compressão `zstd` ao handler HTTP experimental de remote-write v1 do Prometheus. [#110907](https://github.com/ClickHouse/ClickHouse/pull/110907) ([James Cunningham](https://github.com/JTCunning)).
* A gravação em tabelas `DeltaLake` (a configuração `allow_experimental_delta_lake_writes`) foi promovida a Beta. [#107034](https://github.com/ClickHouse/ClickHouse/pull/107034) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adicionados os `ProfileEvents` `DistributedPlanRemoteTasks`, `DistributedPlanLocalExecution` e `DistributedPlanHostsUsed` para observar a execução de planos de consulta distribuída experimentais (`make_distributed_plan`). [#107985](https://github.com/ClickHouse/ClickHouse/pull/107985) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Removido o armazenamento experimental baseado em RocksDB no Keeper (`experimental_use_rocksdb`). Um armazenamento em disco novo e melhor estará disponível em breve. [#108000](https://github.com/ClickHouse/ClickHouse/pull/108000) ([Michael Kolupaev](https://github.com/al13n321)).
* A análise de índice distribuída (um recurso experimental controlado pela configuração `distributed_index_analysis`) agora envia grandes listas de nomes de data parts para servidores remotos como escalares, em vez de incorporá-las ao texto da consulta. Isso evita possíveis falhas devido aos limites `max_ast_elements` / `max_query_size` e elimina a sobrecarga de parsing da AST. [#110419](https://github.com/ClickHouse/ClickHouse/pull/110419) ([Azat Khuzhin](https://github.com/azat)).
* Otimizadas as funções experimentais de agregação `timeSeries*ToGrid`: os buckets agora são alinhados tanto ao passo quanto à window, e a agregação final é muito mais rápida quando a window é muito maior que o passo. O formato de serialização do estado de agregação foi alterado de forma incompatível (essas funções são experimentais). [#106724](https://github.com/ClickHouse/ClickHouse/pull/106724) ([Vitaly Baranov](https://github.com/vitlibar)).
* As target tables externas de uma tabela `TimeSeries` agora são registradas como dependências referenciais: assim como ocorre com visões materializadas, isso impede remover uma target table externa antes de remover a tabela `TimeSeries` que a referencia (se `check_referential_table_dependencies` estiver habilitado). [#108388](https://github.com/ClickHouse/ClickHouse/pull/108388) ([Vitaly Baranov](https://github.com/vitlibar)).
* Adicionada a função PromQL `increase`. [#111023](https://github.com/ClickHouse/ClickHouse/pull/111023) ([Vitaly Baranov](https://github.com/vitlibar)).

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

* `JOIN`s agora podem usar o índice de chave primária ou skip indexes na tabela do lado esquerdo para podar grânulos. Controlado pela configuração `enable_join_runtime_filters_index_analysis`. [#109085](https://github.com/ClickHouse/ClickHouse/pull/109085) ([Shankar Iyer](https://github.com/shankar-iyer)).
* A serialização e a desserialização de vetores de tipos trivialmente serializáveis agora usam uma única chamada de E/S em buffer, em vez de processar elementos individualmente. [#89842](https://github.com/ClickHouse/ClickHouse/pull/89842) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Otimiza buscas inversas em Dicionário: um predicado de igualdade constante como `WHERE dictGet(dict, attr, key_expr) = value` agora é simplificado diretamente para um filtro de chave (`key_expr = const`, `key_expr IN [...]` ou `WHERE 0`), em vez de ser reescrito como uma subconsulta `IN (SELECT ... FROM dictionary(...))`, e o caminho constante de `dictGetKeys` agora é executado em paralelo. [#91164](https://github.com/ClickHouse/ClickHouse/pull/91164) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Adiciona uma nova configuração `merge_tree_generic_exclusion_search_max_steps` que limita o número de passos que o algoritmo generic exclusion search gasta analisando o índice de chave primária de cada parte de dados. O orçamento é gasto primeiro nos maiores intervalos de chave restantes, de modo que mesmo um orçamento pequeno poda a maior parte dos dados; intervalos que não forem totalmente analisados são lidos por completo, de modo que os resultados da consulta permaneçam corretos, mas mais grânulos possam ser lidos. O limite é aplicado de forma flexível: ele pode ser excedido em no máximo `merge_tree_coarse_index_granularity` passos, mais um passo para cada intervalo em que a parte já esteja dividida (por exemplo, pelo cache de condição de consulta). O valor padrão 0 significa passos ilimitados. [#92779](https://github.com/ClickHouse/ClickHouse/pull/92779) ([Michael Jarrett](https://github.com/EmeraldShift)).
* Consultas com `ORDER BY` e `LIMIT` em views sobre tabelas `Distributed` agora usam a otimização merge-sorted-streams: o `ORDER BY`/`LIMIT` externo é enviado para a consulta interna de uma view simples, para que cada shard ordene seus dados localmente e o coordinator faça o merge de streams pré-ordenados, em vez de realizar uma ordenação completa. [#94102](https://github.com/ClickHouse/ClickHouse/pull/94102) ([matanper](https://github.com/matanper)).
* Habilita `optimize_or_like_chain` por padrão. Fecha [#87779](https://github.com/ClickHouse/ClickHouse/issues/87779). [#94517](https://github.com/ClickHouse/ClickHouse/pull/94517) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Marca tabelas de log do sistema `MergeTree` rotacionadas e não replicadas sem TTL como `table_readonly` para evitar operações em segundo plano desnecessárias. A configuração `table_readonly` de `MergeTree` agora também suprime todo o trabalho em segundo plano em uma tabela `MergeTree` simples — merges regulares, de TTL (`DELETE`/`MOVE`/recompressão) e de recompressão, mutações em segundo plano e movimentações de partes em segundo plano — e rejeita os comandos de partição mutáveis (`ATTACH`/`MOVE`/`DROP`/`DROP DETACHED`/`FETCH`/`REPLACE PARTITION` e `MOVE PARTITION ... TO TABLE` para dentro da tabela), além dos inserts, mutações e `OPTIMIZE` que já rejeitava. Como resultado, uma tabela `table_readonly` com TTL deixa de remover seus dados expirados enquanto a configuração estiver habilitada. [#95079](https://github.com/ClickHouse/ClickHouse/pull/95079) ([Mathuranath Metivier](https://github.com/matt-metivier)).
* Melhora o desempenho da busca de um único registro de usuário em `system.users` quando o servidor tem muitos usuários. [#96699](https://github.com/ClickHouse/ClickHouse/pull/96699) ([Alistair Evans](https://github.com/alistairjevans)).
* A leitura ordenada com parallel replicas agora usa a mesma lógica da leitura local para dividir a tabela em `max_threads` partes, para melhor paralelismo. [#101434](https://github.com/ClickHouse/ClickHouse/pull/101434) ([Nikita Taranov](https://github.com/nickitat)).
* Use os limites do índice minmax da partição para fazer pruning de mais grânulos durante a análise da chave primária em tabelas `MergeTree`, quando uma coluna da chave primária também é uma coluna de entrada da chave de partição. Por exemplo, em uma tabela `MergeTree` com `ORDER BY (id, event_time)` e `PARTITION BY toYYYYMM(event_time)`, o ClickHouse usará o índice minmax da partição em `event_time` durante a análise do índice da chave primária para tomar decisões de pruning de grânulos mais precisas. Controlado pela nova configuração `use_partition_minmax_for_primary_key_pruning` (habilitada por padrão). [#103480](https://github.com/ClickHouse/ClickHouse/pull/103480) ([UnamedRus](https://github.com/UnamedRus)).
* Habilita o cache de condições da consulta para consultas que usam filtragem dinâmica Top-K (`ORDER BY ... LIMIT n`). A entrada do cache é particionada pelos parâmetros do plano Top-K, de modo que a mesma consulta reutiliza os resultados em cache do filtro `WHERE`, enquanto um `LIMIT`, uma coluna de ordenação ou uma direção de ordenação diferente gera uma nova entrada. [#104478](https://github.com/ClickHouse/ClickHouse/pull/104478) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona a configuração `use_constant_folding_in_index_analysis` (desabilitada por padrão). Quando habilitada, a análise da chave primária, de `MinMax` e de índices de skip do `MergeTree` incorpora constantes no nível da partição ao predicado de filtro separadamente para cada part, melhorando o pruning para filtros cujos branches dependem de valores da partição, por exemplo `(a = 1 AND b >= 1) OR (a = 2 AND b > 10)` com `PARTITION BY a`. [#104582](https://github.com/ClickHouse/ClickHouse/pull/104582) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Envia `LIMIT` para a agregação em ordem para permitir encerramento antecipado quando a chave `GROUP BY` corresponde à chave `ORDER BY` e à chave de ordenação da tabela, reduzindo significativamente o número de linhas lidas. [#104859](https://github.com/ClickHouse/ClickHouse/pull/104859) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* A atualização de profile events agora é até 30 vezes mais rápida, usando operações atômicas por CPU para contadores de todo o servidor e por usuário. Controlado pela configuração no nível do servidor `user_profile_events_per_cpu` (ela usa cerca de 640 KiB por usuário em 64 núcleos, então, com um número muito grande de usuários, pode fazer sentido mantê-la desabilitada). [#105056](https://github.com/ClickHouse/ClickHouse/pull/105056) ([Azat Khuzhin](https://github.com/azat)).
* Habilita `allow_aggregate_partitions_independently` por padrão. Quando uma chave `GROUP BY` se adequa à chave de partição, o ClickHouse pode agregar cada partição de forma independente e pular a etapa de merge global. Heurísticas em tempo de execução ignoram automaticamente a otimização quando o layout das partições a tornaria desfavorável (partições demais ou de menos, ou tamanhos de partição significativamente desbalanceados). [#105128](https://github.com/ClickHouse/ClickHouse/pull/105128) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Consultas de busca vetorial com rescoring (`vector_search_with_rescoring = 1`) agora calculam a distância exata apenas para as linhas retornadas pelo índice vetorial, aplicando um filtro exato por posição da linha em vez de rescoring por força bruta de linhas vizinhas do mesmo grânulo `MergeTree`. [#105591](https://github.com/ClickHouse/ClickHouse/pull/105591) ([Sergey Kuznetsov](https://github.com/skuznetsov)). [#108846](https://github.com/ClickHouse/ClickHouse/pull/108846) ([Sergey Kuznetsov](https://github.com/skuznetsov)).
* Melhora o desempenho do algoritmo de join `partial_merge` em chaves `FixedString` ao comparar sequências de valores de uma só vez, em vez de fazer uma chamada de comparação para cada valor. [#105737](https://github.com/ClickHouse/ClickHouse/pull/105737) ([Artem Zuikov](https://github.com/4ertus2)).
* `SHOW TABLES` e `system.tables` em catálogos de lago de dados (Iceberg REST, Glue, Unity, Hive, Paimon) agora fazem pushdown de predicados limitados ao espaço de nomes para o catálogo, evitando uma varredura completa. Fecha [#105022](https://github.com/ClickHouse/ClickHouse/issues/105022). [#106029](https://github.com/ClickHouse/ClickHouse/pull/106029) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Limitou a memória não rastreada por CPU para evitar overcommit e erros de falta de memória (os limites são configurados com as configurações do servidor `max_per_cpu_untracked_memory` e `per_cpu_untracked_memory_thread_buffer`). [#106055](https://github.com/ClickHouse/ClickHouse/pull/106055) ([Azat Khuzhin](https://github.com/azat)).
* Acelerou os operadores que varrem um stream ordenado em busca de sequências de valores de chave iguais — `DISTINCT` in order, `LIMIT BY` in order, negative `LIMIT BY` in order e junções `full_sorting_merge` e `partial_merge`. [#106502](https://github.com/ClickHouse/ClickHouse/pull/106502) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Implementou um leitor e um gravador nativos para os formatos `Arrow` e `ArrowStream` que não usam a biblioteca Apache Arrow, evitando cópias e conversões extras de dados. Agora essa é a opção padrão (settings `input_format_arrow_use_native_reader` e `output_format_arrow_use_native_writer`) e ela é mais rápida tanto para leitura quanto para gravação. [#106522](https://github.com/ClickHouse/ClickHouse/pull/106522) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Reativou o LTO para o jemalloc após corrigir uma corrupção no cache de threads que aparecia com LTO, o que melhora o desempenho. [#106898](https://github.com/ClickHouse/ClickHouse/pull/106898) ([Azat Khuzhin](https://github.com/azat)).
* Reduziu o uso de memória e melhorou o desempenho de `JOIN`s. O lado direito de uma hash join agora usa uma referência de linha compacta de 8 bytes baseada em índice, de modo que as entradas da tabela hash de junções `ALL` sejam tão pequenas quanto as de junções `ANY` para qualquer tipo de chave. Em benchmarks com consultas de join `parallel_hash` de grande porte — junções `INNER` e `ANY` de tabelas com 100 a 300 milhões de linhas em chaves `UInt64` e `String`, com chaves únicas e duplicadas — a consulta mediana ficou cerca de 12% mais rápida e usou cerca de 15% menos memória de pico, sem que nenhuma consulta tenha ficado mais lenta. As junções `INNER` com chaves `UInt64` tiveram o maior ganho (mediana de cerca de 21% mais rapidez com 38% menos memória). [#107189](https://github.com/ClickHouse/ClickHouse/pull/107189) ([Harikrishnan Prabakaran](https://github.com/harikrishnan94)).
* Chaves de junção `LowCardinality(String)` não `Nullable` de coluna única agora têm suporte nativo em hash join. [#107264](https://github.com/ClickHouse/ClickHouse/pull/107264) ([Nikita Taranov](https://github.com/nickitat)).
* Adicionou o algoritmo `dpsub` de enumeração de ordem de join (programação dinâmica sobre subconjuntos), fornecendo planos de join ideais com menor sobrecarga de otimização do que `dpsize` e suporte a junções não internas. [#107351](https://github.com/ClickHouse/ClickHouse/pull/107351) ([Fisnik Kastrati](https://github.com/fkastrati)).
* Acelerou o carregamento do cache do filesystem na inicialização ao codificar o tamanho de cada arquivo de cache no próprio nome (`<offset>_<size>`), evitando um `stat` por arquivo. O carregamento de arquivos de cache gravados por versões mais antigas continua sendo compatível. [#107415](https://github.com/ClickHouse/ClickHouse/pull/107415) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Melhorou o desempenho de `arrayElement` em `Array(LowCardinality(String))` e das funções `LIKE` de map em `Map`s com chaves ou valores `LowCardinality(String)`, evitando a materialização desnecessária de strings. [#107450](https://github.com/ClickHouse/ClickHouse/pull/107450) ([Michael Jarrett](https://github.com/EmeraldShift)).
* Evitou converter aggregation de nível único em aggregation two-level quando o uso de memória é baixo, rastreando a memória do próprio aggregation state em vez da memória da consulta inteira. [#107490](https://github.com/ClickHouse/ClickHouse/pull/107490) ([Hechem Selmi](https://github.com/m-selmi)).
* Acelerou a análise de consultas com aggregation: a chave de cache para as estatísticas de tamanho da tabela hash de aggregation agora é calculada a partir do plano da consulta, em vez de construir a AST completa da consulta. [#107643](https://github.com/ClickHouse/ClickHouse/pull/107643) ([Dmitry Novik](https://github.com/novikd)).
* Melhora o desempenho de `INTERSECT ALL` e `EXCEPT ALL` (o modo padrão de `INTERSECT` e `EXCEPT`) em várias vezes, usando o valor da linha como chave do multiconjunto em vez de aplicar SipHash a cada linha. [#107649](https://github.com/ClickHouse/ClickHouse/pull/107649) ([Raúl Marín](https://github.com/Algunenano)).
* Recria filtros de ROW POLICY sem manter o bloqueio do cache, melhorando a escalabilidade das consultas durante operações concorrentes de `CREATE ROW POLICY` e `DROP ROW POLICY`. [#107917](https://github.com/ClickHouse/ClickHouse/pull/107917) ([Azat Khuzhin](https://github.com/azat)).
* Acelera as funções `match`, `extract`, `extractAll`, `replaceRegexpOne` e `replaceRegexpAll` para expressões regulares simples, compilando-as em código nativo com LLVM. Controlado pela nova configuração `compile_regular_expressions` (habilitada por padrão); padrões fora do subconjunto compatível recorrem de forma transparente ao mecanismo RE2. [#108004](https://github.com/ClickHouse/ClickHouse/pull/108004) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Acelera a descompressão ZSTD em AArch64 (ARM) para colunas com offsets de correspondência pequenos, como colunas inteiras de largura fixa, vetorizando cópias sobrepostas de offset curto com NEON. Por exemplo, a descompressão de uma coluna `UInt64` fica até \~2,3x mais rápida no AWS Graviton 4. [#108049](https://github.com/ClickHouse/ClickHouse/pull/108049) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Usa a biblioteca `libdeflate` para compressão e descompressão gzip/zlib/deflate, tornando-as mais rápidas (compressão \~1,15× com melhor razão, descompressão \~1,4–1,5×) para dados `.gz`/HTTP/`url`/`s3` e para o codec GZIP do Parquet. [#108074](https://github.com/ClickHouse/ClickHouse/pull/108074) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Melhora o desempenho de consultas de busca textual combinadas com um filtro de chave primária. [#108114](https://github.com/ClickHouse/ClickHouse/pull/108114) ([Anton Popov](https://github.com/CurtizJ)).
* Usa estatísticas de runtime coletadas durante a primeira execução de uma consulta para otimizar execuções subsequentes: o algoritmo de join `hash` pode mudar automaticamente para `parallel_hash` com base nas estatísticas coletadas. [#108125](https://github.com/ClickHouse/ClickHouse/pull/108125) ([Hechem Selmi](https://github.com/m-selmi)). O tamanho dos filtros de runtime de join é otimizado usando o tamanho da tabela hash das estatísticas de join em runtime, controlado pela nova configuração `join_runtime_filter_size_from_hash_table_stats`. [#108313](https://github.com/ClickHouse/ClickHouse/pull/108313) ([Hechem Selmi](https://github.com/m-selmi)).
* Melhora a velocidade de descompressão LZ4 para colunas de tamanho fixo e baixa cardinalidade. [#108175](https://github.com/ClickHouse/ClickHouse/pull/108175) ([Nikita Taranov](https://github.com/nickitat)).
* Acelera as funções `trimLeft`/`trimRight`/`trimBoth` para espaços em branco padrão (e seus aliases `ltrim`/`rtrim`/`trim`): linhas consecutivas que não precisam de trim são copiadas em um único lote, e a varredura de espaços por linha é executada apenas nas linhas que realmente têm espaço no início ou no fim. [#108177](https://github.com/ClickHouse/ClickHouse/pull/108177) ([Groene AI](https://github.com/groeneai)).
* Melhora o desempenho de `replaceAll` e `replaceRegexpAll` quando o padrão é um único caractere e a substituição é um único caractere (por exemplo, `replaceRegexpAll(s, ' ', '_')`). Essas substituições não alteram mais o layout da string, então a coluna agora é copiada uma vez, e os bytes correspondentes são reescritos no local em vez de executar um loop de busca por correspondência. [#108178](https://github.com/ClickHouse/ClickHouse/pull/108178) ([Groene AI](https://github.com/groeneai)).
* Melhora o desempenho da função `pointInPolygon` com um polígono constante. O cache de polígonos pré-processados agora usa os argumentos constantes brutos como chave, de modo que um polígono constante é analisado apenas uma vez (em caso de cache miss), em vez de ser analisado novamente a cada bloco de entrada. [#108184](https://github.com/ClickHouse/ClickHouse/pull/108184) ([Groene AI](https://github.com/groeneai)).
* Acelera a análise da representação canônica de data e hora `YYYY-MM-DD hh:mm:ss` no modo best-effort (`date_time_input_format = 'best_effort'`, `cast_string_to_date_time_mode = 'best_effort'`), que é o padrão. Isso recupera uma regressão de desempenho na análise introduzida quando esses padrões foram alterados de `basic` para `best_effort`. [#108187](https://github.com/ClickHouse/ClickHouse/pull/108187) ([Groene AI](https://github.com/groeneai)).
* Evita manter os contadores de seletividade de `system.predicate_statistics_log` no caminho de leitura do `MergeTree` quando o recurso está desativado (`predicate_statistics_sample_rate = 0`, o padrão). Isso remove, de cada leitura, uma atualização atômica por grânulo e um `popcount` de filtro em `O(rows)`, recuperando uma regressão de desempenho mais visível em AArch64. [#108190](https://github.com/ClickHouse/ClickHouse/pull/108190) ([Groene AI](https://github.com/groeneai)).
* Acelera a análise de números de ponto flutuante a partir de texto com `precise_float_parsing = 1`, tornando-a tão rápida quanto ou mais rápida que o analisador padrão em quase todas as entradas. Também atualiza a biblioteca `fast_float` incluída para a v8.2.10. [#108205](https://github.com/ClickHouse/ClickHouse/pull/108205) ([Raúl Marín](https://github.com/Algunenano)).
* Usa a biblioteca `simdutf` nas funções de codificação e decodificação em base64, melhorando seu desempenho. [#108333](https://github.com/ClickHouse/ClickHouse/pull/108333) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Otimiza `DISTINCT` para chaves caras de alta cardinalidade. [#108366](https://github.com/ClickHouse/ClickHouse/pull/108366) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Em compilações que não são para Linux (macOS e FreeBSD), o jemalloc não remove mais dirty pages de forma agressiva (uma syscall `madvise` por `free`); agora, ele usa uma thread de limpeza em background com `dirty_decay_ms` finito, como no Linux. Isso acelera significativamente workloads com alta rotatividade de alocação, como CTEs recursivas (\~2x em um benchmark de CTE recursiva no macOS), com impacto desprezível no RSS. [#108430](https://github.com/ClickHouse/ClickHouse/pull/108430) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Acelera o planejamento de consultas no analisador para expressões que referenciam o mesmo alias `WITH` ou repetem a mesma subexpressão muitas vezes (por exemplo, cadeias `if`/`multiIf` profundamente aninhadas), evitando reconstruir subexpressões compartilhadas ao construir o DAG de ações. [#108523](https://github.com/ClickHouse/ClickHouse/pull/108523) ([Dmitry Novik](https://github.com/novikd)).
* Runtime filters agora são criados com base em chaves de igualdade mesmo quando a cláusula `ON` também contém predicados sem igualdade, reduzindo o número de linhas que entram no hash join em joins que misturam condições de igualdade e desigualdade. `LEFT ANTI JOIN` não é afetado. [#108579](https://github.com/ClickHouse/ClickHouse/pull/108579) ([Antonio Álvarez Caballero](https://github.com/29antonioac)).
* Habilita `-fno-math-errno` globalmente em todo o codebase, permitindo que o compilador otimize melhor as funções matemáticas. [#108628](https://github.com/ClickHouse/ClickHouse/pull/108628) ([Nikita Taranov](https://github.com/nickitat)).
* Reduz o limite de prefetch por software para tabelas hash de aggregation e join de `4 * L2 cache size` para `L2 cache size`, para que o prefetch seja habilitado assim que a tabela hash deixar de caber na L2. Isso recupera uma regressão em `GROUP BY` e `JOIN` sobre tabelas hash de tamanho médio (\~1-8 MiB) em plataformas cujo L2 reportado é grande (por exemplo, AArch64 com L2 de 2 MiB). [#108655](https://github.com/ClickHouse/ClickHouse/pull/108655) ([Groene AI](https://github.com/groeneai)).
* Melhora o desempenho de window functions. Consultas com funções de janela em wide tables que incluem `SELECT *` agora usam significativamente menos memória e são executadas mais rapidamente. Agregações de janela, incluindo `quantile*`, `uniq*` e `groupArray`, ficaram mais rápidas com `OVER ()` e `OVER (ORDER BY ... RANGE ...)`. A função `cume_dist` também ficou mais rápida, e janelas que usam `PARTITION BY` ou `ORDER BY` agora têm melhor desempenho em colunas com muitos valores repetidos. [#108688](https://github.com/ClickHouse/ClickHouse/pull/108688) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* A análise de consultas foi acelerada para consultas com muitas cadeias de comparações com `AND` ou cadeias de `AND` muito grandes: a otimização `optimize_and_compare_chain` agora é limitada por um orçamento de trabalho (nova configuração `optimize_and_compare_chain_max_hash_work`) em vez de calcular hash de uma grande fração da árvore da consulta, e a resolução de lambda não recalcula mais os hashes do corpo da lambda para proteção contra recursão. [#108757](https://github.com/ClickHouse/ClickHouse/pull/108757) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige uma regressão de desempenho ao ler colunas `JSON`/`Dynamic` com múltiplas threads: uma consulta por valor da configuração `input_format_binary_max_type_complexity` causava contenção na contagem de referências no contexto compartilhado da consulta, serializando leituras paralelas; o valor da configuração agora é armazenado em cache por thread. [#108797](https://github.com/ClickHouse/ClickHouse/pull/108797) ([Seva Potapov](https://github.com/seva-potapov)).
* Corrige uma regressão de desempenho (introduzida em [#71781](https://github.com/ClickHouse/ClickHouse/issues/71781)) em que a leitura de muitos arquivos pequenos do armazenamento de objetos por meio da table function `s3` e de outras table functions deixou de fazer prefetching e passou a recorrer a leituras síncronas, tornando significativamente mais lentas as leituras, com baixa concorrência ou de thread única, de muitos arquivos minúsculos. [#108872](https://github.com/ClickHouse/ClickHouse/pull/108872) ([Nikita Fomichev](https://github.com/fm4v)). O prefetch inicial de objetos pequenos agora também é disparado quando as leituras do armazenamento de objetos passam pelo cache do sistema de arquivos (`filesystem_cache_name`), de modo que leituras de muitos arquivos pequenos (por exemplo, ingestão do `S3Queue`) com o cache ativado não são mais síncronas nem limitadas pela latência. [#109478](https://github.com/ClickHouse/ClickHouse/pull/109478) ([Nikita Fomichev](https://github.com/fm4v)).
* Faz o parse de literais de array e tupla profundamente aninhados em tempo linear, em vez de quadrático. [#108892](https://github.com/ClickHouse/ClickHouse/pull/108892) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Reduz a sobrecarga causada pela contenção de locks no algoritmo de join `parallel_hash`. [#108938](https://github.com/ClickHouse/ClickHouse/pull/108938) ([Hechem Selmi](https://github.com/m-selmi)).
* Acelera `estimateCompressionRatio` para colunas codificadas com `T64` ao calcular analiticamente o tamanho comprimido em vez de comprimir. [#109054](https://github.com/ClickHouse/ClickHouse/pull/109054) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Remove um gargalo de thread única na etapa de embaralhamento de planos de consultas distribuídas: cada stream de entrada agora distribui suas linhas por bucket de destino de forma independente, em vez de fazer todo o stream de dados passar por uma única transformação. [#109206](https://github.com/ClickHouse/ClickHouse/pull/109206) ([Alexander Gololobov](https://github.com/davenger)).
* Reduz o uso de CPU ociosa do servidor Keeper. [#109255](https://github.com/ClickHouse/ClickHouse/pull/109255) ([Michael Kolupaev](https://github.com/al13n321)).
* Acelera a serialização e os merges de colunas `JSON` cujos dados compartilhados contêm muitos caminhos esparsos: ao achatar dados compartilhados em colunas por caminho, a varredura por linha em todas as colunas de caminho acumuladas é removida, e as lacunas são preenchidas em lote em vez de inserir valores padrão uma célula por vez. [#109341](https://github.com/ClickHouse/ClickHouse/pull/109341) ([Groene AI](https://github.com/groeneai)).
* Reduz a sobrecarga de CPU da avaliação de expressões em consultas com um grande número de colunas (por exemplo, busca vetorial em uma coluna `QBit` com stride pequeno, em que cada vetor se expande em centenas de subcolunas de planos de bits, todas passadas para uma única chamada `*DistanceTransposed`). [#109380](https://github.com/ClickHouse/ClickHouse/pull/109380) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Melhora o desempenho das funções Geo do H3 (`h3ToGeoBoundary`, `h3ToGeo`, `h3CellAreaM2`/`h3CellAreaRads2`, `geoToH3`) ao calcular pares de seno/cosseno em conjunto e eliminar chamadas trigonométricas redundantes nas transformadas de coordenadas. Os resultados permanecem inalterados (idênticos bit a bit). [#109399](https://github.com/ClickHouse/ClickHouse/pull/109399) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Melhora em até 7 vezes o desempenho de comparações (`<`, `>`, `<=`, `>=`) de tipos inteiros largos (`Int128`, `UInt128`, `Int256`, `UInt256` e tipos baseados neles, como `Decimal128`) e da conversão de inteiros com sinal para `Int256` (até 7 vezes em dados com sinais mistos), tornando o código de comparação e extensão de sinal livre de desvios condicionais. [#109474](https://github.com/ClickHouse/ClickHouse/pull/109474) ([Manuel](https://github.com/raimannma)).
* Otimizou `uniqCombined` (incluindo o caso de agregação sem chaves) e `uniqHLL12`. [#109794](https://github.com/ClickHouse/ClickHouse/pull/109794) ([Anton Popov](https://github.com/CurtizJ)). [#109831](https://github.com/ClickHouse/ClickHouse/pull/109831) ([Anton Popov](https://github.com/CurtizJ)).
* As funções `arraySort` e `arrayReverseSort` ficam várias vezes mais rápidas em arrays numéricos (incluindo `Decimal` e `DateTime64`) quando chamadas sem uma lambda. [#109832](https://github.com/ClickHouse/ClickHouse/pull/109832) ([Manuel](https://github.com/raimannma)).
* Acelera `addDays`, `addWeeks`, `subtractDays` e `subtractWeeks` em valores `DateTime` e `DateTime64` em fusos horários com deslocamento fixo (como UTC) ao usar um caminho aritmético rápido. [#109836](https://github.com/ClickHouse/ClickHouse/pull/109836) ([Manuel](https://github.com/raimannma)).
* Otimizou a análise do índice de texto. [#109886](https://github.com/ClickHouse/ClickHouse/pull/109886) ([Anton Popov](https://github.com/CurtizJ)).
* Paraleliza o processamento de linhas sem correspondência no algoritmo de join `parallel_hash` em mais dois casos: quando há um filtro residual e no caso de chaves de junção pequenas (mapa hash de nível único). [#110008](https://github.com/ClickHouse/ClickHouse/pull/110008) ([Hechem Selmi](https://github.com/m-selmi)).
* As respostas internas da interface web (a UI Play, os painéis e os manipuladores de arquivos estáticos) agora são comprimidas de acordo com o cabeçalho `Accept-Encoding` do cliente, usando zstd, gzip, deflate, brotli, lz4, xz, snappy ou bzip2. Por exemplo, a página `/play` passa de \~350 KB sem compressão para menos de 120 KB com zstd, reduzindo o tempo de carregamento em conexões lentas. Respostas já comprimidas permanecem intocadas, e `Vary: Accept-Encoding` é emitido para o particionamento correto de CDN e cache. [#110108](https://github.com/ClickHouse/ClickHouse/pull/110108) ([Sayantanu Dey](https://github.com/sayantanu-dey)).
* Empurra um filtro para baixo de uma função de janela ou de `LIMIT BY` quando isso é seguro: um predicado escrito acima deles (um `WHERE` externo em torno da subconsulta, ou uma conjunção em `QUALIFY`) que referencia apenas as colunas de `PARTITION BY` da janela, ou apenas as colunas-chave de `LIMIT BY` (para `LIMIT n BY` com `n >= 1` e sem `OFFSET`), agora chega ao armazenamento e habilita a poda por chave primária e por partição, skip indexes e projeções. Por exemplo, `SELECT ... row_number() OVER (PARTITION BY key ORDER BY ts) AS rn ... QUALIFY rn = 1 AND key = 'x'` não lê mais a tabela inteira nem calcula a janela sobre ela. [#110114](https://github.com/ClickHouse/ClickHouse/pull/110114) ([Groene AI](https://github.com/groeneai)). [#110116](https://github.com/ClickHouse/ClickHouse/pull/110116) ([Groene AI](https://github.com/groeneai)).
* Com `join_use_nulls = 1`, um `WHERE` que rejeita nulos e referencia colunas de ambos os lados de um outer join (por exemplo, `WHERE l.k = 42 AND r.k = 42`) agora converte o join em `INNER` (ou `LEFT`/`RIGHT`) e faz a poda da chave primária, da mesma forma que com `join_use_nulls = 0`. Antes, a conversão era ignorada nesse caso, e ambas as tabelas eram lidas por completo. [#110121](https://github.com/ClickHouse/ClickHouse/pull/110121) ([Groene AI](https://github.com/groeneai)).
* Funções com um único argumento `Nullable` não constante agora compartilham o mapa de nulos do argumento com o resultado, em vez de alocar e mesclar um novo. [#110151](https://github.com/ClickHouse/ClickHouse/pull/110151) ([Manuel](https://github.com/raimannma)).
* Evita uma alocação na heap por verificação de hiper-retângulo na análise do índice de chave primária, acelerando a filtragem de marcas em 5-26%, dependendo do formato da consulta. [#110153](https://github.com/ClickHouse/ClickHouse/pull/110153) ([Manuel](https://github.com/raimannma)).
* Melhora o desempenho das funções `arrayMin` e `arrayMax` em arrays numéricos em \~1,3-1,5x ao usar redução vetorizada em vez de um loop de comparação por elemento. [#110163](https://github.com/ClickHouse/ClickHouse/pull/110163) ([Manuel](https://github.com/raimannma)).
* Vetoriza a descompressão do codec `Delta`. A decodificação agora é de 1,5 a 5 vezes mais rápida para tipos de dados de 8/16/32 bits, tornando as varreduras de colunas comprimidas com `Delta` até 20% mais rápidas. [#110189](https://github.com/ClickHouse/ClickHouse/pull/110189) ([Manuel](https://github.com/raimannma)).
* Acelera as funções de busca em strings (`like`, `position`, `match`, `countSubstrings`, `hasToken` etc.) em colunas `Enum` com um padrão constante, buscando apenas os nomes distintos do enum e mapeando os resultados de volta para cada linha, em vez de buscar em todas as linhas. [#110325](https://github.com/ClickHouse/ClickHouse/pull/110325) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Acelera as funções de agregação `groupBitOr`/`groupBitAnd`/`groupBitXor` e a família de variância (`varPop`, `varSamp`, `stddevPop`, `stddevSamp`, `skewPop`, `skewSamp`, `kurtPop`, `kurtSamp`, `covarPop`, `covarSamp`, `corr`) com processamento vetorizado em lote: até 4x mais rápidas com o combinador `-If` em condições imprevisíveis e até 3x mais rápidas para a família de variância sem ele. [#110461](https://github.com/ClickHouse/ClickHouse/pull/110461) ([Manuel](https://github.com/raimannma)).
* Acelera a análise do índice de texto (a etapa que seleciona quais grânulos ler): usa busca por exclusão em vez de iterar por todos os grânulos e evita criar um bitmap temporário para cada verificação de intervalo. [#110530](https://github.com/ClickHouse/ClickHouse/pull/110530) ([Anton Popov](https://github.com/CurtizJ)).
* Leva em conta o tamanho em disco das subcolunas de `Map` na otimização automática de `PREWHERE`. Isso corrige uma regressão de desempenho em `PREWHERE` introduzida em [#99200](https://github.com/ClickHouse/ClickHouse/pull/99200). Parte de [#110462](https://github.com/ClickHouse/ClickHouse/issues/110462). [#110623](https://github.com/ClickHouse/ClickHouse/pull/110623) ([Pavel Kruglov](https://github.com/Avogar)).
* Acelera a análise de valores `UUID` a partir de texto (por exemplo, `JSONExtract` em `LowCardinality(UUID)`, `toUUID`, `CAST AS UUID`) ao validar e converter dígitos hexadecimais em uma única passada, em vez de duas. [#110625](https://github.com/ClickHouse/ClickHouse/pull/110625) ([Groene AI](https://github.com/groeneai)).
* Melhora significativamente o desempenho das funções de agregação `timeSeries*ToGrid` usando implementações mais rápidas de ordenação e tabela hash. [#110875](https://github.com/ClickHouse/ClickHouse/pull/110875) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Consultas como `SELECT * FROM t WHERE id` agora usam o índice para ignorar blocos de dados na coluna `id`. Fecha [#89222](https://github.com/ClickHouse/ClickHouse/issues/89222). [#89603](https://github.com/ClickHouse/ClickHouse/pull/89603) ([Aditya Chopra](https://github.com/adityachopra29)).
* Adicionada a configuração `query_plan_merge_expression_into_join` (habilitada por padrão) para permitir a mesclagem de etapas de expressão em etapas de `JOIN` durante a otimização de reordenação de `JOIN`. Isso permite reordenar `JOIN`s entre subconsultas que encapsulam junções (por exemplo, quando um `JOIN` está dentro de uma subconsulta com colunas calculadas), resultando em uma otimização melhor de árvores complexas de `JOIN`. [#98533](https://github.com/ClickHouse/ClickHouse/pull/98533) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Otimiza cadeias de `AND` com múltiplas condições de comparação sobre a mesma expressão: detecta contradições (por exemplo, `a < 3 AND a > 5` → `false`) e elimina condições redundantes (por exemplo, `a = 3 AND a < 5` → `a = 3`). [#99736](https://github.com/ClickHouse/ClickHouse/pull/99736) ([Xiaozhe Yu](https://github.com/wudidapaopao)).
* Materialized CTEs referenciadas por múltiplos branches de uma consulta `UNION` agora são materializadas uma única vez e compartilhadas entre todos os branches. Antes, cada branch recebia sua própria cópia da CTE, que era inline e avaliada separadamente. [#102107](https://github.com/ClickHouse/ClickHouse/pull/102107) ([Dmitry Novik](https://github.com/novikd)).
* Threads em `BackgroundSchedulePool` agora são criadas sob demanda, em vez de todas de uma vez na inicialização do servidor. Uma nova configuração de servidor, `background_schedule_pool_initial_size` (padrão `16`), controla quantos workers são pré-iniciados; o pool cresce até `background_schedule_pool_size` quando necessário. Isso reduz o número de threads ociosas em servidores com pouca carga. Fecha [#85265](https://github.com/ClickHouse/ClickHouse/issues/85265). [#105066](https://github.com/ClickHouse/ClickHouse/pull/105066) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Evita carregamentos desnecessários de mark files para a serialização avançada de shared data do tipo `JSON`. [#107051](https://github.com/ClickHouse/ClickHouse/pull/107051) ([Pavel Kruglov](https://github.com/Avogar)).
* O cache de polígonos constantes pré-processados da função `pointInPolygon` agora é compartilhado entre consultas e threads e é limitado pela nova configuração de servidor `point_in_polygon_cache_size` (padrão de 256 MiB, `0` desabilita o cache, alterável em tempo de execução). Antes, o cache mantinha até `max_threads` cópias de cada polígono pré-processado, crescia sem limite entre polígonos distintos e nunca era liberado até o reinício do servidor. Ele pode ser limpo com `SYSTEM DROP POINT IN POLYGON CACHE`, e o uso atual é reportado em `system.metrics` como `PointInPolygonCacheBytes`, `PointInPolygonCacheCells` e `PointInPolygonCacheSizeLimit`. Fecha [#106393](https://github.com/ClickHouse/ClickHouse/issues/106393). [#107247](https://github.com/ClickHouse/ClickHouse/pull/107247) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* O Keeper não mantém mais seu bloqueio interno de snapshots enquanto serializa e grava um snapshot em disco ou move snapshots entre discos, de modo que as transferências de snapshots para outros nós e o processamento do Raft não ficam mais paralisados pela criação local de snapshots. [#107595](https://github.com/ClickHouse/ClickHouse/pull/107595) ([Antonio Andelic](https://github.com/antonio2368)).
* Paraleliza a remoção em segundo plano do cache do sistema de arquivos (controlada pelas configurações `keep_free_space_ratio`). Foi adicionada uma nova configuração `keep_free_space_eviction_threads` para controlar o paralelismo, e o valor padrão de `keep_free_space_remove_batch` foi aumentado de `100` para `250`. [#108147](https://github.com/ClickHouse/ClickHouse/pull/108147) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Limita o número de partes preparadas simultaneamente na cópia com leitura seguida de gravação do Azure Blob Storage (usada por backups quando a cópia nativa não está disponível) a `max_inflight_parts_for_one_file`, evitando uso excessivo de memória quando muitos arquivos grandes são copiados em paralelo. [#108232](https://github.com/ClickHouse/ClickHouse/pull/108232) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Habilitou globalmente os três caches de índice de texto — antes, eles só eram habilitados dentro das consultas. Além disso, o tamanho do cache de posting lists agora é zero, o que o desabilita efetivamente de novo, porque posting lists são grandes e armazená-las em cache é custoso demais. [#108274](https://github.com/ClickHouse/ClickHouse/pull/108274) ([Robert Schulze](https://github.com/rschu1ze)).
* Adiciona compressão em fluxo das marcas em memória durante o carregamento das marcas para reduzir o pico de uso de memória. Fecha [#108285](https://github.com/ClickHouse/ClickHouse/issues/108285). [#108325](https://github.com/ClickHouse/ClickHouse/pull/108325) ([Pavel Kruglov](https://github.com/Avogar)).
* A nova configuração `reserve_granularity` do cache do sistema de arquivos (padrão de 4 MiB) reserva espaço antecipadamente em grânulos maiores, reduzindo a contenção de bloqueio no caminho crítico de reserva de espaço do cache do sistema de arquivos. [#108369](https://github.com/ClickHouse/ClickHouse/pull/108369) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Reduz a quantidade de memória usada pelos metadados do cache do sistema de arquivos (por segmento de arquivo e por chave). [#108477](https://github.com/ClickHouse/ClickHouse/pull/108477) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Consultas a `system.iceberg_history` com filtros `WHERE` nas colunas `database` e `table` agora acessam apenas os bancos de dados correspondentes, o que pode economizar tempo se você tiver muitos bancos de dados remotos não relacionados no servidor. [#108492](https://github.com/ClickHouse/ClickHouse/pull/108492) ([Den Kalantaevskii](https://github.com/Diskein)).
* Removeu bloqueios desnecessários no cache do sistema de arquivos para reduzir a contenção de bloqueio. [#108932](https://github.com/ClickHouse/ClickHouse/pull/108932) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Reduzido o uso de memória no tratamento de metadados de `BACKUP` e `RESTORE`. Abrir um backup (para `RESTORE` ou como base de um `BACKUP` incremental) agora analisa os metadados `.backup` como fluxo, em vez de carregá-los em uma árvore XML DOM em memória, o que, no caso de backups grandes (especialmente incrementais), evita a alocação de uma árvore DOM de vários gigabytes. [#109107](https://github.com/ClickHouse/ClickHouse/pull/109107) ([Julia Kartseva](https://github.com/jkartseva)). A finalização de um `BACKUP` também não copia mais as informações de todos os arquivos para um vetor temporário, o que, em backups com milhões de arquivos, chegava a consumir vários gigabytes temporariamente. [#109861](https://github.com/ClickHouse/ClickHouse/pull/109861) ([Julia Kartseva](https://github.com/jkartseva)). A gravação de entradas de backup também não copia mais a lista de informações de arquivos do host atual. [#111162](https://github.com/ClickHouse/ClickHouse/pull/111162) ([Julia Kartseva](https://github.com/jkartseva)).
* Redução do consumo de memória no agregador. [#109224](https://github.com/ClickHouse/ClickHouse/pull/109224) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Suporte ao cache de condições de consulta para arquivos `Parquet` locais lidos pelo table engine `File` (antes compatível apenas com armazenamento de objetos e lagos de dados). [#109247](https://github.com/ClickHouse/ClickHouse/pull/109247) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Reduzido em 2 a 2,5 vezes o uso de memória do cache de cabeçalhos do índice de texto. Com isso, mais cabeçalhos de partes de dados cabem no cache (configuração `text_index_header_cache_size`), reduzindo leituras em disco em consultas de busca textual. [#109332](https://github.com/ClickHouse/ClickHouse/pull/109332) ([Anton Popov](https://github.com/CurtizJ)).
* As funções transpostas de distância vetorial `L2DistanceTransposed`, `cosineDistanceTransposed` e `dotProductTransposed` agora aplicam a otimização de leitura parcial de bit planes a colunas `Nullable(QBit)`, lendo apenas os bit planes solicitados em vez da coluna inteira. [#109358](https://github.com/ClickHouse/ClickHouse/pull/109358) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `IS NOT DISTINCT FROM` e `IS TRUE` agora usam a chave primária e índices MinMax para podar grânulos, assim como `=`. Antes, `k IS NOT DISTINCT FROM 42` e `(k = 42) IS TRUE` faziam varredura de todos os grânulos. [#110006](https://github.com/ClickHouse/ClickHouse/pull/110006) ([Groene AI](https://github.com/groeneai)).
* Conexões em pool não são mais verificadas com ping antes de cada uso. Isso elimina uma ida e volta `Ping`-`Pong` que era adicionada a cada conexão reutilizada, reduzindo a latência de consultas distribuídas e do `clickhouse-benchmark`. Uma conexão em pool obsoleta é detectada com um `poll` de timeout zero (uma verificação non-blocking que não adiciona ida e volta) e recuperada por meio de uma nova conexão. [#110068](https://github.com/ClickHouse/ClickHouse/pull/110068) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigidas reconexões espúrias de conexões HTTP keep-alive em pool via TLS (HTTPS, S3). A verificação de conexão obsoleta usava `poll` no socket, o que informava incorretamente como fechada uma conexão segura ativa que carregava um registro TLS pós-handshake ainda não lido (um ticket de sessão ou `KeyUpdate`); agora, ela usa `MSG_PEEK` non-blocking em sockets sem TLS e `SSL_peek`/`SSL_has_pending` em sockets TLS, o que também detecta corretamente um encerramento ordenado de TLS e um registro TLS que chegou apenas parcialmente. [#110402](https://github.com/ClickHouse/ClickHouse/pull/110402) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Consultas aceleradas por filtragem dinâmica TopK (`ORDER BY ... LIMIT k`) agora fazem uso mais completo do cache de condições de consulta: o cache é populado mesmo quando `lazy materialization` é aplicada à consulta, e essas consultas podem reutilizar entradas gravadas anteriormente por uma consulta comum com o mesmo predicado `WHERE`. [#110507](https://github.com/ClickHouse/ClickHouse/pull/110507) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Um padrão `LIKE`/`NOT LIKE` sem curingas (`%`, `_`) agora usa um intervalo exato da chave primária, de modo que lê o mesmo número de grânulos que o predicado `=`/`!=` equivalente, em vez de um intervalo de prefixo mais amplo. [#107077](https://github.com/ClickHouse/ClickHouse/pull/107077) ([Groene AI](https://github.com/groeneai)).
* Corrige a contenção redundante no bloqueio de segmentos de arquivo (uma regressão de desempenho introduzida na 26.1) ao ler dados pelo cache do sistema de arquivos. [#109577](https://github.com/ClickHouse/ClickHouse/pull/109577) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigido o problema em que skip indexes definidos em subcolunas `Tuple` não eram usados quando o campo era acessado via `tupleElement(t, 'name')`, `tupleElement(t, N)` ou `t.N`, enquanto a tupla completa também era lida na mesma consulta (por exemplo, `SELECT *`). Todas essas formas agora descartam grânulos da mesma forma que o acesso à subcoluna nomeada `t.name`. [#110056](https://github.com/ClickHouse/ClickHouse/pull/110056) ([Groene AI](https://github.com/groeneai)).
* Corrigidas consultas lentas com `ORDER BY ... LIMIT` em tabelas `Distributed` quando `prefer_localhost_replica` seleciona uma réplica local: o limite preliminar foi removido do plano do shard local, o que impedia a materialização lazy e a filtragem top-K dinâmica. [#110136](https://github.com/ClickHouse/ClickHouse/pull/110136) ([Michael Jarrett](https://github.com/EmeraldShift)).
* Corrigido o problema em que o índice de texto não era usado com o operador `ILIKE` quando o índice era definido sobre uma expressão, em vez de uma coluna simples (por exemplo, `assumeNotNull(col)` com um pré-processador `lower(...)`): essas consultas liam todos os grânulos em vez de usar o índice. Isto encerra [#110350](https://github.com/ClickHouse/ClickHouse/issues/110350). [#110595](https://github.com/ClickHouse/ClickHouse/pull/110595) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Reduz a contenção de bloqueio no cache do sistema de arquivos: consultas que leem do cache não ficam mais bloqueadas no lock da fila de prioridade ao atualizar a prioridade LRU de uma entrada. [#109065](https://github.com/ClickHouse/ClickHouse/pull/109065) ([Antonio Andelic](https://github.com/antonio2368)).
* Consultas de índice de texto que usam uma expressão `postprocessor` apenas para filtragem (por exemplo, `if(..., '', token)`) agora descartam tokens vazios de antemão, em vez de materializá-los linha por linha, melhorando o desempenho. [#109049](https://github.com/ClickHouse/ClickHouse/pull/109049) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Reduz a contenção de bloqueio nas filas de logs do sistema, diminuindo a latência de cauda das consultas em clusters sobrecarregados. [#110539](https://github.com/ClickHouse/ClickHouse/pull/110539) ([Sean Haynes](https://github.com/seandhaynes)).
* Melhorado o desempenho das funções de busca de substring (`position`, `countSubstrings`, `multiSearch*`, `replaceAll`, `replaceOne` e suas variantes case-insensitive e UTF-8) com uma agulha não constante em até 1,5x, usando buscadores de string com suporte a SIMD no caminho por linha em vez de uma implementação ingênua. [#110580](https://github.com/ClickHouse/ClickHouse/pull/110580) ([Raúl Marín](https://github.com/Algunenano)).
* A materialização lazy agora é aplicada a consultas `ReplacingMergeTree` com `FINAL`, um filtro e um `LIMIT` pequeno, mesmo sem `ORDER BY`. Colunas desnecessárias para o filtro e para o merge `FINAL` são buscadas apenas para as linhas que restam após o limite, o que torna essas consultas muito mais rápidas quando selecionam colunas largas com um filtro seletivo. Controlado por `query_plan_optimize_lazy_materialization` e `query_plan_max_limit_for_lazy_materialization`. [#110722](https://github.com/ClickHouse/ClickHouse/pull/110722) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Melhorado o desempenho de async insert quando a desduplicação está habilitada e um flush é dividido entre várias partições: o ClickHouse agora reutiliza os hashes de desduplicação calculados entre as partições, em vez de recalculá-los para cada uma. [#111150](https://github.com/ClickHouse/ClickHouse/pull/111150) ([Valery Petrov](https://github.com/valerypetrov)).

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

* Adicionada a configuração `input_format_csv_missing_nullable_as_empty_string` (desabilitada por padrão). Quando habilitada, um valor ausente em uma coluna `Nullable(String)` na entrada CSV é lido como uma `String` vazia em vez de `NULL`, independentemente de `input_format_csv_empty_as_default`. [#58225](https://github.com/ClickHouse/ClickHouse/pull/58225) ([kevinyhzou](https://github.com/KevinyhZou)). [#107577](https://github.com/ClickHouse/ClickHouse/pull/107577) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* As funções `toDateOrNull`, `toDateTimeOrNull` e `toDateTime64OrNull` agora aceitam argumentos inteiros de todos os tipos inteiros nativos (interpretados da mesma forma que em `toDate`, `toDateTime` e `toDateTime64`, com um argumento opcional de timezone), retornando `NULL` para valores fora do intervalo do tipo de resultado. Por exemplo, `toDateTimeOrNull(1583851242, 'Asia/Shanghai')` retorna `2020-03-10 22:40:42` e `toDateTimeOrNull(4294967296)` retorna `NULL`. [#79791](https://github.com/ClickHouse/ClickHouse/pull/79791) ([Jitendra](https://github.com/jitendra1411)).
* Adicionada uma coluna `is_wildcard` à tabela `system.grants` que indica se um grant usa correspondência de prefixo com curinga (por exemplo, `GRANT SELECT ON db*.*`). Antes, grants com curinga e grants exatos com o mesmo nome eram indistinguíveis em `system.grants`. Fecha [#92835](https://github.com/ClickHouse/ClickHouse/issues/92835). [#98577](https://github.com/ClickHouse/ClickHouse/pull/98577) ([DQ](https://github.com/il9ue)).
* Permite compactação Snappy na interface HTTP (`Accept-Encoding: snappy`) e adiciona a configuração `snappy_mode` para escolher entre o formato de bloco Hadoop Snappy e o formato de framing do Snappy para E/S genérica com snappy em `file`/`url`. [#100752](https://github.com/ClickHouse/ClickHouse/pull/100752) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona suporte à compatibilidade com o analyzer antigo por meio da configuração `analyzer_compatibility_allow_non_aggregate_in_having`. Se habilitada, conjunções não agregadas são movidas de `HAVING` para `WHERE`. [#104232](https://github.com/ClickHouse/ClickHouse/pull/104232) ([Dmitry Novik](https://github.com/novikd)).
* Adicionada uma nova configuração de servidor `memory_worker_rss_speculative_reserve_ratio` (padrão `1.0`) que faz com que o memory tracker global reserve memória especulativamente além do RSS observado quando o crescimento do RSS supera o rastreamento do tracker entre as amostras. Com isso, as alocações recebem `MEMORY_LIMIT_EXCEEDED` mais cedo, e é menos provável que o OOM-killer do kernel seja acionado primeiro. Defina a razão como `0` para desabilitar a especulação. [#104976](https://github.com/ClickHouse/ClickHouse/pull/104976) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionadas métricas Prometheus opt-in para atividade de eviction do filesystem cache (`filesystem_cache_evictions_total`, `filesystem_cache_evicted_bytes_total`, `filesystem_cache_evicted_segment_hits`, `filesystem_cache_evicted_segment_size_bytes` e suas variantes por usuário rotuladas com `user_id`), expostas por cache via `system.dimensional_metrics`, `system.histogram_metrics` e o Prometheus endpoint. Elas são controladas pelas configurações do cache disk `expose_prometheus_eviction_metrics` e `expose_prometheus_eviction_metrics_per_user` (ambas desativadas por padrão), que podem ser alternadas em runtime via `SYSTEM RELOAD CONFIG`. [#105020](https://github.com/ClickHouse/ClickHouse/pull/105020) ([Sacheendra Talluri](https://github.com/sacheendra)).
* Define `EXPLAIN [PLAN] actions=1, compact=1, pretty=1` como padrão. [#105036](https://github.com/ClickHouse/ClickHouse/pull/105036) ([Kirill Kopnev](https://github.com/Fgrtue)).
* Atualiza `delta-kernel-rs` (a library por trás da integração `DeltaLake`) para a v0.23.0. [#105861](https://github.com/ClickHouse/ClickHouse/pull/105861) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Adicionados os comandos `du` e `wc` ao `clickhouse-disks`. Eles, respectivamente, exibem o tamanho total em bytes de um determinado arquivo ou diretório e listam o número de bytes, linhas e palavras em um arquivo. [#106268](https://github.com/ClickHouse/ClickHouse/pull/106268) ([Asya Shneerson](https://github.com/asya-ch)).
* Adicionada uma nova métrica assíncrona `UntrackedMemory` (visível em `system.asynchronous_metrics`) que informa a memória já alocada por threads, mas ainda não contabilizada no contador global de rastreamento de memória: cada thread acumula pequenas alocações localmente e as reporta em lote. Isso ajuda a explicar discrepâncias entre `MemoryTracking` e o uso real de memória do processo. As mensagens de erro `MEMORY_LIMIT_EXCEEDED` agora também incluem a quantidade de memória não rastreada, facilitando entender por que uma consulta ou o servidor atingiu o limite de memória. [#106386](https://github.com/ClickHouse/ClickHouse/pull/106386) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Upgrade do ClickStack (a interface de observabilidade) para a versão 2.28.0. [#106406](https://github.com/ClickHouse/ClickHouse/pull/106406) ([Aaron Knudtson](https://github.com/knudtty)).
* Adicionado suporte a `BFloat16` em `dotProduct` e melhorado seu desempenho com batching no caminho SIMD. [#106569](https://github.com/ClickHouse/ClickHouse/pull/106569) ([Nikita Taranov](https://github.com/nickitat)).
* As configurações `max_named_collection_num_to_throw`, `max_table_num_to_throw`, `max_replicated_table_num_to_throw`, `max_view_num_to_throw`, `max_dictionary_num_to_throw` e `max_database_num_to_throw` agora podem ser alteradas sem reiniciar o servidor. [#106821](https://github.com/ClickHouse/ClickHouse/pull/106821) ([Maxim Orlovsky](https://github.com/UberDever)).
* Adicionado suporte aos valores `REDUCED_REDUNDANCY`, `STANDARD_IA`, `ONEZONE_IA`, `GLACIER_IR` e `EXPRESS_ONEZONE` (além de `STANDARD` e `INTELLIGENT_TIERING`) na configuração `s3_storage_class_name`. [#107251](https://github.com/ClickHouse/ClickHouse/pull/107251) ([Aditya Kumar](https://github.com/adityaksolves)).
* Adicionada a configuração em tempo de criação `materialized_postgresql_use_extended_date_and_time_types` para o database engine `MaterializedPostgreSQL`. Por padrão (enabled), as colunas PostgreSQL `date`/`timestamp` são inferidas como `Date32`/`DateTime64`; ao defini-la como `0` no momento de `CREATE DATABASE`, são inferidos os tipos mais restritos `Date`/`DateTime`. A configuração não se aplica ao table engine `MaterializedPostgreSQL`. [#107428](https://github.com/ClickHouse/ClickHouse/pull/107428) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O quantificador de Array `SOME` / `ALL` (`expr OP SOME(array)` / `expr OP ALL(array)`) agora também oferece suporte aos predicates de comparação por palavra-chave `IS DISTINCT FROM` e `IS NOT DISTINCT FROM`, e aos predicates de busca de strings `LIKE`, `ILIKE`, `NOT LIKE`, `NOT ILIKE` e `REGEXP`, reescritos como `arrayExists` / `arrayAll`. [#107454](https://github.com/ClickHouse/ClickHouse/pull/107454) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido um vazamento de memória que ocorria quando a abertura de um database SQLite falhava (por exemplo, quando a table function `sqlite` ou o database engine `SQLite` recebe um path que não pode ser aberto). [#107807](https://github.com/ClickHouse/ClickHouse/pull/107807) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Na interface web (`play.html`), a indicação do atalho de execução agora mostra `Cmd+Enter` no Mac e `Ctrl+Enter` em outras plataformas, em vez de sempre mostrar `Ctrl/Cmd+Enter`, e a parte `, +Shift to run all` da indicação é exibida apenas quando há várias consultas. [#107817](https://github.com/ClickHouse/ClickHouse/pull/107817) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#108957](https://github.com/ClickHouse/ClickHouse/pull/108957) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O table engine `Alias` agora oferece suporte à leitura com réplicas paralelas quando a tabela de destino é da família `MergeTree`. [#107830](https://github.com/ClickHouse/ClickHouse/pull/107830) ([Kai Zhu](https://github.com/nauu)).
* Adicionado o tipo de estatísticas de coluna `uniq_v2` — uma alternativa leve às estatísticas `uniq`, baseada no sketch `uniqCombined64`. [#107863](https://github.com/ClickHouse/ClickHouse/pull/107863) ([Han Fei](https://github.com/hanfei1991)). O tipo de estatísticas de coluna `minmax` foi descontinuado, e o valor padrão de `auto_statistics_types` foi alterado para `basic, uniq_v2`. [#108680](https://github.com/ClickHouse/ClickHouse/pull/108680) ([Han Fei](https://github.com/hanfei1991)).
* As AI functions (`aiGenerate`, `aiEmbed`, `aiClassify`, `aiExtract`, `aiTranslate`) agora tentam novamente após falhas transitórias de rede (redefinições de conexão, falhas na conexão TLS, timeouts, endereços inacessíveis) quando `ai_function_max_retries` está definido, seguindo o comportamento de retry da table function `url`. Antes, apenas respostas de erro HTTP do lado do provider eram repetidas. [#107927](https://github.com/ClickHouse/ClickHouse/pull/107927) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `INSERT` em uma tabela `MergeTree` agora respeita o cancelamento da consulta e `max_execution_time` ao gravar muitas parts, em vez de potencialmente continuar em execução por muito tempo após ser interrompido. [#107929](https://github.com/ClickHouse/ClickHouse/pull/107929) ([Michael Kolupaev](https://github.com/al13n321)).
* Na interface web (`play.html`), o ícone do Terminal Web agora pode ser aberto em uma nova guia do navegador com clique do botão do meio ou Ctrl/Cmd/Shift+clique. [#108006](https://github.com/ClickHouse/ClickHouse/pull/108006) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A geração de SQL com IA no cliente não envia mais o parâmetro `temperature`, a menos que ele seja definido explicitamente por meio de `ai.temperature` na configuração. Isso corrige a geração de SQL com IA para modelos que rejeitam o parâmetro `temperature`. [#108014](https://github.com/ClickHouse/ClickHouse/pull/108014) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionadas a tabela `system.masking_policies` e a introspecção `SHOW MASKING POLICIES` às compilações de código aberto. As masking policies em si continuam sendo um recurso do ClickHouse Cloud, portanto a tabela fica vazia nas compilações de código aberto, mas as consultas de introspecção não falham mais com erro. [#108030](https://github.com/ClickHouse/ClickHouse/pull/108030) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O consumer Kafka baseado em Keeper agora embaralha a ordem em que adquire locks temporários de partição entre as réplicas, melhorando a distribuição equilibrada das partições e reduzindo a contenção de lock. Antes, o embaralhamento pretendido não tinha efeito. [#108033](https://github.com/ClickHouse/ClickHouse/pull/108033) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado autocompletar à interface web (`play.html`), com base em `system.completions` e no lexer SQL baseado em WASM. [#108059](https://github.com/ClickHouse/ClickHouse/pull/108059) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `clickhouse-client` e `clickhouse-local` agora mostram sugestões de preenchimento automático à medida que você digita (texto "fantasma" em linha) com a melhor correspondência quando o cursor está no fim da entrada. As sugestões mais relevantes (usadas recentemente e identificadores já presentes na consulta) aparecem primeiro. Navegue com Up/Down (ou Ctrl-Up/Ctrl-Down); aceite uma sugestão única ou selecionada com Tab ou Right, e aceite uma sugestão selecionada com Enter; Tab também abre a lista clássica de preenchimento. Controlado pela nova opção `--hints` (ativada por padrão; requer `--highlight`). [#108070](https://github.com/ClickHouse/ClickHouse/pull/108070) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suporte à função `length` para o tipo de dados `QBit` — ela retorna a dimensão do vetor como uma constante. [#108071](https://github.com/ClickHouse/ClickHouse/pull/108071) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Suporte a `CAST` de `QBit` para `Array`, reconstruindo o vetor original — o inverso da conversão existente de `Array` para `QBit`. [#108072](https://github.com/ClickHouse/ClickHouse/pull/108072) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Requisições para catálogos REST de lago de dados (como OneLake) agora incluem um cabeçalho `User-Agent` do ClickHouse. [#108117](https://github.com/ClickHouse/ClickHouse/pull/108117) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* `arrayFold` agora respeita o cancelamento de consulta e `max_execution_time`. Antes, uma redução sobre um array muito longo era executada inteiramente dentro de uma única chamada de função e não podia ser interrompida, então `KILL QUERY` e os limites de tempo eram ignorados até que a redução terminasse. [#108192](https://github.com/ClickHouse/ClickHouse/pull/108192) ([Groene AI](https://github.com/groeneai)).
* `MVTEncodeGeom` agora ajusta a geometria à grade de pixels inteiros antes do recorte e recorta polígonos com a biblioteca `wagyu`, para que a saída recortada seja válida (anéis com autointerseção são corrigidos) e alinhada às bordas, correspondendo ao PostGIS `ST_AsMVTGeom`. [#108248](https://github.com/ClickHouse/ClickHouse/pull/108248) ([Saarthak Gupta](https://github.com/saarthak2002)).
* Adiciona `ProfileEvents` de pré-execução de consulta por fase: `QueryParseMicroseconds`, `QueryAnalysisMicroseconds`, `QueryPlanBuildMicroseconds` e `QueryPipelineBuildMicroseconds`. Eles mostram onde o tempo é gasto antes da execução da consulta (parsing, análise, compilação do plano de consulta e compilação do pipeline) e estão disponíveis em `system.query_log` e `system.events`. [#108282](https://github.com/ClickHouse/ClickHouse/pull/108282) ([Jordi Villar](https://github.com/jrdi)).
* Operações `ALTER TABLE` que produziriam metadados da tabela acima de `max_query_size` agora são rejeitadas antecipadamente, evitando que tabelas se tornem impossíveis de carregar por componentes como a distribuição de DDL e a recuperação de réplica. [#108283](https://github.com/ClickHouse/ClickHouse/pull/108283) ([Andrew Kravchuk](https://github.com/lockie)).
* Adicionadas as colunas `settings` e `engine_settings` a `system.backups` e `system.backup_log`. `settings` expõe as configurações específicas de backup/restore solicitadas para uma operação (por exemplo, `allow_s3_native_copy`, `deduplicate_files`, `structure_only`), e `engine_settings` expõe as configurações efetivamente usadas pelo leitor e gravador do mecanismo de backup (por exemplo, as configurações de requisição S3, como `allow_native_copy`, que podem diferir do que foi solicitado após a mesclagem da configuração do endpoint). Isso torna possível ver com quais configurações uma operação `BACKUP`/`RESTORE` realmente foi executada. [#108334](https://github.com/ClickHouse/ClickHouse/pull/108334) ([Julia Kartseva](https://github.com/jkartseva)).
* Adicionada uma coluna `source` a `system.documentation` contendo o caminho do arquivo-fonte em que a documentação de cada entidade é definida. A tabela agora também documenta codecs de compressão, eventos de perfil, métricas atuais, métricas assíncronas e as próprias tabelas do sistema (com suas colunas), e a documentação das configurações agora inclui seu tipo e valor padrão. [#108346](https://github.com/ClickHouse/ClickHouse/pull/108346) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Um valor padrão de configuração vazio agora é exibido como *string vazia* em vez de backticks vazios. [#108708](https://github.com/ClickHouse/ClickHouse/pull/108708) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suporte a leituras assíncronas de réplicas remotas (`async_socket_for_remote`) no macOS por meio da implementação dos primitivos de polling baseados em epoll sobre `kqueue`. Isso permite que consultas distribuídas leiam shards em paralelo no macOS, em vez de de forma serial. [#108403](https://github.com/ClickHouse/ClickHouse/pull/108403) ([Raúl Marín](https://github.com/Algunenano)).
* Suporte a `BFloat16` em funções matemáticas binárias. [#108442](https://github.com/ClickHouse/ClickHouse/pull/108442) ([Zhang Yifan](https://github.com/zhangyifan27)).
* `MergeTree` agora pode ler um fluxo comprimido cujos blocos usam codecs diferentes. Este é o pré-requisito do lado da leitura para a seleção adaptativa de codec ([#105404](https://github.com/ClickHouse/ClickHouse/issues/105404)). [#108592](https://github.com/ClickHouse/ClickHouse/pull/108592) ([Raufs Dunamalijevs](https://github.com/rienath)).
* O valor automático de `max_threads` e de configurações semelhantes agora é mostrado em `system.settings` como `auto(8)` em vez de `'auto(8)'`; as aspas simples ao redor eram um artefato antigo incorporado ao valor. A compatibilidade entre versões foi preservada: a forma legada com aspas ainda é aceita ao processar configurações recebidas de servidores mais antigos. [#108657](https://github.com/ClickHouse/ClickHouse/pull/108657) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Várias correções de usabilidade para a UI web `/schema`: carregar o esquema ao pressionar Enter, barras de rolagem adaptadas ao tema, nomes de tabela legíveis, agrupamento consistente por banco de dados de tabelas independentes, sem seleção de texto ao arrastar e um formulário de autenticação no estilo `play` (Credential Management API, credenciais fornecidas por URL com remoção de senha e validação de credenciais em tempo real). [#108724](https://github.com/ClickHouse/ClickHouse/pull/108724) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O modo lazy de aplicação da posting list do índice de texto não é mais experimental e pode ser selecionado com `text_index_posting_list_apply_mode = 'lazy'` sem `allow_experimental_text_index_lazy_apply`. A configuração de limite de densidade foi renomeada de `text_index_density_threshold` para `text_index_lazy_intersection_density_threshold`. [#108814](https://github.com/ClickHouse/ClickHouse/pull/108814) ([Anton Popov](https://github.com/CurtizJ)).
* Adicionado um novo tipo de catálogo `delta_sharing` ao `DataLakeCatalog` para o endpoint REST Iceberg do Databricks Delta Sharing, cujos espaços de nomes são planos e que ignora o filtro de listagem `parent`. Use-o em vez de `catalog_type = 'rest'` para esses endpoints, nos quais `SHOW TABLES` ficaria travado de outra forma. [#108865](https://github.com/ClickHouse/ClickHouse/pull/108865) ([Seva Potapov](https://github.com/seva-potapov)).
* Adicionada uma nova opção de `clickhouse-client`/`clickhouse-local`, `--echo-query-separator`, que imprime um separador personalizado antes da consulta formatada exibida em eco, facilitando distinguir a consulta digitada do eco reformatado. Desabilitada por padrão. [#108888](https://github.com/ClickHouse/ClickHouse/pull/108888) ([David Meng](https://github.com/davidmenggx)).
* Melhorias no painel de bancos de dados da interface web: o número de tabelas é exibido entre parênteses ao lado do nome do banco de dados quando ele é expandido. [#108891](https://github.com/ClickHouse/ClickHouse/pull/108891) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Um botão de atualização ao lado de um banco de dados expandido recarrega sua lista de tabelas. [#108958](https://github.com/ClickHouse/ClickHouse/pull/108958) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Ao reabrir o painel, os bancos de dados expandidos anteriormente são restaurados. [#108964](https://github.com/ClickHouse/ClickHouse/pull/108964) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permite calcular o benefício combinado do skip-index em `EXPLAIN WHATIF`: ele mostra a proporção de dados para a interseção de todos os índices hipotéticos adequados existentes. [#108934](https://github.com/ClickHouse/ClickHouse/pull/108934) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrigido o problema de a posição da rolagem horizontal da tabela de resultados ser redefinida na interface web ao clicar em um link em uma célula e voltar para a página. [#108941](https://github.com/ClickHouse/ClickHouse/pull/108941) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O mecanismo de banco de dados `MySQL`, o mecanismo de tabela e a função de tabela agora mapeiam os tipos de coluna espaciais do MySQL (`LINESTRING`, `POLYGON`, `MULTILINESTRING`, `MULTIPOLYGON` e o genérico `GEOMETRY`) para os tipos geométricos correspondentes do ClickHouse, em vez de `String`. Isso é controlado pelo novo sinalizador `geometry` da configuração `mysql_datatypes_support_level`, habilitado por padrão. `POINT` ainda é sempre convertido para `Point`. A coluna genérica `GEOMETRY` é mapeada para o tipo abrangente `Geometry`; ler um valor cujo subtipo não tenha correspondente no ClickHouse (`MULTIPOINT`, `GEOMETRYCOLLECTION`) gera uma exceção no momento da leitura. [#108944](https://github.com/ClickHouse/ClickHouse/pull/108944) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Interface web (`play.html`): navegação completa por teclado — navegação com as teclas de seta no painel de bancos de dados e na tabela de resultados, acesso por teclado aos botões da barra de ferramentas, ao seletor de tema e ao menu de download, além de contornos de foco visíveis. [#108972](https://github.com/ClickHouse/ClickHouse/pull/108972) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* interface HTTP: quando credenciais são fornecidas tanto por parâmetros de URL (`user`/`password`) quanto por um cabeçalho `Authorization`, os parâmetros de URL agora têm precedência, em vez de a solicitação ser rejeitada. Isso corrige a falha no download de resultados pela interface web (`play.html`) quando o navegador memorizou credenciais Basic, causando `AUTHENTICATION_FAILED` (erro 516). [#108980](https://github.com/ClickHouse/ClickHouse/pull/108980) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Restaura `show_data_lake_catalogs_in_system_tables` como a configuração que controla apenas a visibilidade de `DataLakeCatalog` em `system.tables`, `system.columns` e `system.completions`. Adicionado `show_remote_databases_in_system_tables`, habilitado por padrão, para permitir que os usuários ocultem bancos de dados `MySQL` e `PostgreSQL` dessas tabelas de sistema separadamente. [#109082](https://github.com/ClickHouse/ClickHouse/pull/109082) ([Pablo Marcos](https://github.com/pamarcos)).
* Passa a usar por padrão o algoritmo preciso de parsing de ponto flutuante (o representável mais próximo) e aplica a configuração `precise_float_parsing` aos formatos de entrada (`CSV`, `TSV`, `JSON`, `VALUES`, ...) e a literais numéricos, não apenas a `toFloat*`/`CAST`. Defina `precise_float_parsing = 0` para voltar ao comportamento anterior, mais rápido em alguns casos, mas menos preciso. Fecha [#60146](https://github.com/ClickHouse/ClickHouse/issues/60146). Fecha [#74647](https://github.com/ClickHouse/ClickHouse/issues/74647). Fecha [#68914](https://github.com/ClickHouse/ClickHouse/issues/68914). [#109086](https://github.com/ClickHouse/ClickHouse/pull/109086) ([Raúl Marín](https://github.com/Algunenano)).
* Uma consulta com um único CTE agora é formatada com a mesma quebra de linha e o mesmo recuo de uma consulta com vários CTEs. Antes, `WITH a AS (...)` mantinha o CTE na mesma linha de `WITH`, enquanto dois ou mais CTEs colocavam `WITH` em uma linha própria, com cada CTE recuado. [#109092](https://github.com/ClickHouse/ClickHouse/pull/109092) ([Groene AI](https://github.com/groeneai)).
* Interface web: quando a conclusão destacada é igual à palavra já digitada, ou à mesma palavra com capitalização diferente (por exemplo, `HASH` sugerido para um `hash` digitado), pressionar Right/Tab/Enter não reescreve mais a palavra nem é interceptado pelo autocompletar — a tecla move o cursor ou insere uma nova linha como esperado. [#109106](https://github.com/ClickHouse/ClickHouse/pull/109106) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#109384](https://github.com/ClickHouse/ClickHouse/pull/109384) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado à interface web (`play.html`) o destaque de parênteses coloridos, colchetes correspondentes, identificadores correspondentes e grupos de dígitos, assim como no `clickhouse-client`. [#109108](https://github.com/ClickHouse/ClickHouse/pull/109108) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Na interface web, `Tab` e `Shift+Tab` agora aumentam e reduzem o recuo das linhas selecionadas em 4 espaços. [#109110](https://github.com/ClickHouse/ClickHouse/pull/109110) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Interface web: a posição de um erro de sintaxe no editor de consultas passa a ser destacada com fundo vermelho. O destaque é removido assim que o usuário volta o foco ao editor. [#109112](https://github.com/ClickHouse/ClickHouse/pull/109112) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `clickhouse-compressor --stat` e a detecção do codec padrão para partes antigas agora relatam cabeçalhos de bloco corrompidos como corrupção, em vez de um enganoso erro de fim de arquivo. [#109157](https://github.com/ClickHouse/ClickHouse/pull/109157) ([Raufs Dunamalijevs](https://github.com/rienath)).
* O ClickHouse Keeper agora respeita a configuração `os_collect_psi_metrics` e pula a coleta de métricas PSI quando ela está desabilitada. [#109179](https://github.com/ClickHouse/ClickHouse/pull/109179) ([Maxim Orlovsky](https://github.com/UberDever)).
* Na interface web, quando as abas de consulta são exibidas, os parâmetros de conexão (host, usuário, senha) ficam ocultos atrás de um ícone de chave no canto superior direito e são mostrados em um menu suspenso quando necessário. [#109243](https://github.com/ClickHouse/ClickHouse/pull/109243) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Interface web: exibe um resultado com valor único (uma linha, uma coluna, por exemplo `SHOW CREATE TABLE`) com altura completa, em vez de limitá-lo a três linhas. [#109245](https://github.com/ClickHouse/ClickHouse/pull/109245) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Na interface web, clicar em uma tabela no painel de bancos de dados com o botão do meio do mouse, com Shift ou com o modificador de nova aba da plataforma (Cmd no macOS, Ctrl em outros lugares) agora abre a consulta em uma nova aba da interface web. [#109246](https://github.com/ClickHouse/ClickHouse/pull/109246) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O cache de condição de consulta para arquivos `Parquet` remotos em armazenamento de objetos agora usa o ETag, além do caminho, como chave, para que sobrescrever um objeto no mesmo local não sirva mais resultados em cache desatualizados. [#109310](https://github.com/ClickHouse/ClickHouse/pull/109310) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Na interface web, strings vazias e NULLs não são mais colorizados no modo de coloração categórica. [#109342](https://github.com/ClickHouse/ClickHouse/pull/109342) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Interface web: clicar no ícone de uma tabela no painel do banco de dados agora mostra a lista de colunas, com ícones de tipo, uma barra de tamanho proporcional ao tamanho comprimido e um tooltip com o tamanho comprimido/descomprimido e a razão de compressão. [#109346](https://github.com/ClickHouse/ClickHouse/pull/109346) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Interface web: exibir o título completo da aba como tooltip ao passar o cursor quando ele estiver truncado. [#109354](https://github.com/ClickHouse/ClickHouse/pull/109354) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Na interface web, clicar com o botão do meio no título de uma aba (ou Ctrl/Shift/Cmd+clique nela) agora duplica a aba. [#109357](https://github.com/ClickHouse/ClickHouse/pull/109357) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Interface web: redimensionar uniformemente as áreas de progresso final e estatísticas da consulta para que não quebrem de forma estranha quando a janela do navegador estiver estreita. [#109363](https://github.com/ClickHouse/ClickHouse/pull/109363) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Interface web: selecionar um banco de dados no painel de banco de dados agora o usa como banco de dados padrão para consultas executadas no editor. [#109372](https://github.com/ClickHouse/ClickHouse/pull/109372) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suporte a `reinterpret` de um `Array` de elementos de tamanho fixo como `String`, o inverso do `reinterpret` já existente de `String`/`FixedString` como `Array`. [#109383](https://github.com/ClickHouse/ClickHouse/pull/109383) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Na interface web, não exibir os toggles de colorização por coluna quando o resultado tiver no máximo uma linha. [#109385](https://github.com/ClickHouse/ClickHouse/pull/109385) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permitir `CAST` entre tipos `QBit` que diferem no tipo de elemento e/ou no stride, desde que a dimensão permaneça a mesma (por exemplo, `CAST(x AS QBit(Float64, N))` a partir de um `QBit(Float32, N)`). Alterações apenas no stride não causam perda; alterações no tipo de elemento seguem a semântica de conversão correspondente de `Array` (por exemplo, `Float32` para `BFloat16` pode perder precisão, e `accurateCast` / `accurateCastOrNull` rejeitam linhas que não são exatamente representáveis). [#109387](https://github.com/ClickHouse/ClickHouse/pull/109387) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* As funções `quantizeBFloat16ToInt8` e `dequantizeInt8ToBFloat16` agora também aceitam argumentos `Array` e `QBit`, aplicando o codec Lloyd-Max ao vetor inteiro (retornando `Array`/`QBit` do tipo de elemento correspondente), além das sobrecargas escalares já existentes. [#109398](https://github.com/ClickHouse/ClickHouse/pull/109398) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Interface web: o link `Documentation` agora inclui o nome do usuário atual na URL. [#109419](https://github.com/ClickHouse/ClickHouse/pull/109419) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suporte a `arraySum`, `arrayAvg` e `arrayProduct` para arrays de `BFloat16`. [#109420](https://github.com/ClickHouse/ClickHouse/pull/109420) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O especificador de formato no estilo MySQL `%f` em `parseDateTime` / `parseDateTime64` (e suas variantes `OrZero` / `OrNull`) agora aceita entre 1 e 6 dígitos fracionários, interpretados como microssegundos alinhados à esquerda, como no `STR_TO_DATE` do MySQL, em vez de exigir exatamente 6. Também foram corrigidas tabelas `PrettyCompact` desalinhadas nos exemplos da documentação de funções integradas. [#109421](https://github.com/ClickHouse/ClickHouse/pull/109421) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Interface web: as abas de consulta agora são persistentes — cada aba mantém o resultado renderizado (incluindo imagens e gráficos) e a consulta em execução quando você alterna para outra aba e volta, e consultas longas continuam sendo executadas em segundo plano. Os títulos das abas mostram um spinner, uma barra de progresso e uma marca de verificação de conclusão para a consulta. [#109425](https://github.com/ClickHouse/ClickHouse/pull/109425) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Interface web: exibição correta de erro quando uma consulta falha depois que parte do resultado já foi transmitida via streaming, em vez de mostrar `SyntaxError: Unexpected end of JSON input` no lado do cliente (ou, com `http_write_exception_in_output_format`, marcar a consulta com falha como bem-sucedida). [#109430](https://github.com/ClickHouse/ClickHouse/pull/109430) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionadas colunas fixadas à interface web: uma coluna pode ser fixada pelo cabeçalho para permanecer visível (presa à borda) enquanto a tabela de resultados é rolada horizontalmente. [#109439](https://github.com/ClickHouse/ClickHouse/pull/109439) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* No dashboard avançado (`/dashboard`), gráficos de métricas específicas agora podem ser adicionados diretamente pelo nome da métrica, como aparece no código-fonte ou na documentação, o que facilita adicionar várias métricas durante sessões de depuração. [#109449](https://github.com/ClickHouse/ClickHouse/pull/109449) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Interface web: corrigido o fechamento do menu suspenso de configurações de conexão ao selecionar texto com o mouse e arrastar além da borda. [#109451](https://github.com/ClickHouse/ClickHouse/pull/109451) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Interface web: ao passar o cursor sobre o cabeçalho de uma coluna da tabela de resultados, agora são exibidos o nome completo da coluna e o tipo em uma dica de ferramenta, para que cabeçalhos truncados possam ser lidos por inteiro. [#109463](https://github.com/ClickHouse/ClickHouse/pull/109463) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Corrigido o recorte dos títulos dos cabeçalhos de coluna com reticências mesmo quando a coluna era larga o suficiente para mostrar o título completo. [#110397](https://github.com/ClickHouse/ClickHouse/pull/110397) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado suporte a dicionários de cache SSD (layout `SSD_CACHE`) e ao mecanismo de tabela `FileLog` em compilações para macOS. [#109493](https://github.com/ClickHouse/ClickHouse/pull/109493) ([Raúl Marín](https://github.com/Algunenano)).
* Interface web: não restaurar abas com consultas vazias ao abrir a página. [#109529](https://github.com/ClickHouse/ClickHouse/pull/109529) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigidas dicas de autocompletar ilegíveis durante a digitação e cores fortes no cliente interativo em terminais cujo `TERM` não contém `256` (por exemplo, Ghostty, kitty, Alacritty, foot): as cores fortes agora são emitidas incondicionalmente como códigos de cor brilhante aixterm, em vez de recorrer a negrito + cor escura, que terminais modernos renderizam como uma cor escura e difícil de ler em fundos escuros. [#109622](https://github.com/ClickHouse/ClickHouse/pull/109622) ([Alasdair Brown](https://github.com/sdairs)).
* Habilitadas arenas jemalloc por CPU e profiling de alocação em compilações para macOS. [#109684](https://github.com/ClickHouse/ClickHouse/pull/109684) ([Raúl Marín](https://github.com/Algunenano)).
* Permitida a alteração de algumas configurações de autenticação de um banco de dados de catálogo de lago de dados `OneLake` com `ALTER DATABASE ... MODIFY SETTING`. [#110019](https://github.com/ClickHouse/ClickHouse/pull/110019) ([alesapin](https://github.com/alesapin)).
* O engine `Hive` agora lê metadados de arquivos `ORC` (índices min/max, contagens de linhas) com o leitor nativo de `ORC` do ClickHouse, em vez do adaptador `ORC` do Apache Arrow. [#110086](https://github.com/ClickHouse/ClickHouse/pull/110086) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Reduziu o tamanho do binário em \~10,5 MB ao executar operações de comparação e aritméticas em pares de tipos mistos raramente usados (`Decimal` vs. inteiro com largura diferente, e pares envolvendo `Int128`/`UInt128`/`Int256`/`UInt256`) por meio da conversão para um tipo comum, em vez de usar um kernel compilado dedicado para cada combinação de tipos. Pares do mesmo tipo, pares usados com frequência e as operações `plus`/`minus`/`multiply`, limitadas por memória, mantêm seus kernels dedicados; os resultados, os tipos de resultado e os casos excepcionais permanecem inalterados. [#110131](https://github.com/ClickHouse/ClickHouse/pull/110131) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Uma subquery no lado direito de `IN`, cuja única coluna é um array com uma dimensão a mais que o argumento à esquerda, agora é interpretada como o conjunto dos elementos do array (como um literal de array ou uma função que retorna array), em vez de falhar com um erro confuso de incompatibilidade de tipos. Por exemplo, `x IN (SELECT groupArray(x) FROM ...)` agora funciona. [#110169](https://github.com/ClickHouse/ClickHouse/pull/110169) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ler de um table engine `SQLite` ou de uma table function `sqlite` não consome mais, em loop, um CPU core inteiro quando o banco de dados SQLite está bloqueado por outra conexão. A leitura agora fica ociosa enquanto aguarda o lock e continua podendo ser cancelada. [#110248](https://github.com/ClickHouse/ClickHouse/pull/110248) ([Groene AI](https://github.com/groeneai)).
* Arredonda valores de tempo decorrido, taxa e razão em mensagens de log e exceção para três dígitos, para que números como `1.345844286 sec.` não sejam mais exibidos com precisão total. [#110277](https://github.com/ClickHouse/ClickHouse/pull/110277) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Na interface web (Play), `BFloat16` agora é reconhecido como um número de ponto flutuante, e suas colunas são alinhadas à direita e coloridas de acordo. [#110433](https://github.com/ClickHouse/ClickHouse/pull/110433) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona suporte à cláusula `SETTINGS` para o table engine `PostgreSQL` e a table function `postgresql` (por exemplo, `SETTINGS postgresql_connection_pool_size = 50`), trazendo paridade de recursos com o engine `MySQL`. [#110614](https://github.com/ClickHouse/ClickHouse/pull/110614) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `SHOW CREATE TABLE` (e `SHOW CREATE VIEW` / `SHOW CREATE DICTIONARY`) agora sugere uma tabela com nome semelhante na mensagem de erro quando a tabela solicitada não existe, da mesma forma que as queries `SELECT`. [#110633](https://github.com/ClickHouse/ClickHouse/pull/110633) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Habilita a setting `merge_selector_enable_heuristic_to_lower_max_parts_to_merge_at_once` por padrão: o merge selector agora reduz automaticamente o número máximo de partes a mesclar de uma vez com base em quão cheia está a partição. Veja [#91163](https://github.com/ClickHouse/ClickHouse/pull/91163). [#110726](https://github.com/ClickHouse/ClickHouse/pull/110726) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Aceita os comandos de limpeza do PostgreSQL `RESET`, `UNLISTEN` e `DISCARD` como no-ops no PostgreSQL wire protocol, em vez de falhar com erro de sintaxe. Isso melhora a compatibilidade com drivers como Skunk, que enviam `RESET ALL` e `UNLISTEN *` durante a configuração e a limpeza da conexão. [#110780](https://github.com/ClickHouse/ClickHouse/pull/110780) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Altera o valor padrão da setting `auto_statistics_types` de `basic, uniq` para `basic, uniq_v2`. [#110878](https://github.com/ClickHouse/ClickHouse/pull/110878) ([Han Fei](https://github.com/hanfei1991)).
* `randomHadamardTransform` agora calcula uma transformada exata que preserva o comprimento para qualquer vetor cujo maior fator ímpar seja no máximo 64 (por exemplo, `3584 = 512 * 7`, comum em modelos de embedding), ampliando as famílias anteriores `2^N`, `2^k * {12, 20}` e `2^k * 9`. Uma transformada completa de um comprimento que não pode ser representado exatamente agora gera uma exceção, em vez de preencher silenciosamente com zeros até um vetor maior; passe `output_dims` para calcular uma projeção truncada com comprimento arbitrário. [#111006](https://github.com/ClickHouse/ClickHouse/pull/111006) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida uma exceção `LOGICAL_ERROR` durante o backup de um banco de dados `Replicated` que está sendo removido e recriado de forma concorrente; esses backups agora falham de forma controlada com `CANNOT_GET_REPLICATED_DATABASE_SNAPSHOT`. [#100651](https://github.com/ClickHouse/ClickHouse/pull/100651) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Agora exibe o erro real subjacente quando um arquivo zip não pode ser descompactado (por exemplo, quando o arquivo é lido do S3 e o read buffer recusa um seek). Antes, o erro real ficava oculto atrás da mensagem genérica `Couldn't unpack zip archive: Code = -100` / `Couldn't open zip archive`. [#105103](https://github.com/ClickHouse/ClickHouse/pull/105103) ([Groene AI](https://github.com/groeneai)).
* Corrige uma dica confusa "Maybe you meant X?" após uma reinicialização do servidor (ou `DETACH DATABASE`/`ATTACH DATABASE`): remover uma tabela já removida podia sugerir, como alternativa, o nome que acabara de ser removido. [#106238](https://github.com/ClickHouse/ClickHouse/pull/106238) ([Groene AI](https://github.com/groeneai)).
* Corrigido um erro lógico (`Logical error: 'removed'`, que abortava o servidor em compilações de debug) na fila em segundo plano de remoção de tabelas, acionado quando o mesmo UUID explícito é reutilizado em várias consultas `CREATE OR REPLACE TABLE`, o que enfileira mais de uma tabela removida com esse UUID. [#107031](https://github.com/ClickHouse/ClickHouse/pull/107031) ([Groene AI](https://github.com/groeneai)).
* Corrigido um erro lógico `Inconsistent AST formatting` que podia abortar o servidor em compilações de debug e com sanitizer quando uma lambda com alias era usada como operando de um operador de acesso (elemento de tupla `.N` ou elemento de array `[]`) em uma posição que não fosse a primeira em uma lista de expressões, por exemplo `SELECT 1, ((p0, p1) -> p0 AS a7).4[3] FROM t`. [#107092](https://github.com/ClickHouse/ClickHouse/pull/107092) ([Groene AI](https://github.com/groeneai)).
* Uma cluster table function (`urlCluster`, `fileCluster`, `s3Cluster`, ...) aninhada em outra consulta distribuída, como `clusterAllReplicas(..., urlCluster(...))`, agora é rejeitada com um erro `BAD_ARGUMENTS` em vez de falhar com um erro lógico (`Distributed task iterator is not initialized`). [#107107](https://github.com/ClickHouse/ClickHouse/pull/107107) ([Groene AI](https://github.com/groeneai)).
* `OPTIMIZE ... DRY RUN` interrompido por um timeout de consulta (`max_execution_time` com `timeout_overflow_mode = 'break'`) agora retorna `TIMEOUT_EXCEEDED` em vez de um erro lógico relacionado a `rows_sources` (que abortava o servidor em compilações de debug/sanitizer). [#107114](https://github.com/ClickHouse/ClickHouse/pull/107114) ([Groene AI](https://github.com/groeneai)).
* Deixa de registrar o erro benigno `Net Exception: Socket is not connected` durante a finalização da sessão do `ZooKeeper` no macOS. `clickhouse keeper-client` não imprime mais esse erro espúrio em stderr ao encerrar. [#107438](https://github.com/ClickHouse/ClickHouse/pull/107438) ([Groene AI](https://github.com/groeneai)).
* Corrigido um overflow de inteiro com sinal quando uma view materializada atualizável tenta novamente uma atualização com falha com `refresh_retries` definido como um valor muito alto (próximo ao máximo de `Int64`). O overflow podia abortar o servidor em compilações com o sanitizer de comportamento indefinido. [#108005](https://github.com/ClickHouse/ClickHouse/pull/108005) ([Groene AI](https://github.com/groeneai)).
* Corrige um `LOGICAL_ERROR` (aborto do servidor em compilações de debug/sanitizer) quando um `JOIN` usa o operador de comparação null-safe (`<=>` / `IS NOT DISTINCT FROM`) e uma das chaves é uma subconsulta escalar, por exemplo `... JOIN t2 ON (SELECT x FROM t1) <=> t2.k`, com o analyzer antigo (`enable_analyzer = 0`). Agora, essa consulta retorna um erro `NOT_FOUND_COLUMN_IN_BLOCK` normal em vez de um erro lógico. [#108123](https://github.com/ClickHouse/ClickHouse/pull/108123) ([Groene AI](https://github.com/groeneai)).
* Consultas de busca vetorial que selecionam a coluna `_distance` agora retornam um erro apropriado em vez de falharem com um erro lógico. [#108423](https://github.com/ClickHouse/ClickHouse/pull/108423) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige um `std::future_error` (`The associated promise has been destructed prior to the associated state becoming ready`) que podia ocorrer e abortar o servidor em compilações de debug e sanitizer quando falhava o agendamento da tarefa assíncrona final de conclusão do upload multipart para S3/Azure (por exemplo, em caso de esgotamento do pool de threads). Agora, o erro real de agendamento é reportado em seu lugar. [#108730](https://github.com/ClickHouse/ClickHouse/pull/108730) ([Groene AI](https://github.com/groeneai)).
* Evita saída excessiva no log do servidor e uma mensagem de erro grande demais ao compilar uma expressão regular muito grande (por exemplo, um padrão `LIKE` ou `match` com centenas de milhares de curingas); esses padrões agora falham com um erro `CANNOT_COMPILE_REGEXP` claro. [#108821](https://github.com/ClickHouse/ClickHouse/pull/108821) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige comportamento indefinido ao converter em string um packet type de protocolo fora do intervalo (por exemplo, nas mensagens de erro `Unexpected packet from server` / `Received ... packet`) em uma conexão dessincronizada ou submetida a fuzzing. [#108885](https://github.com/ClickHouse/ClickHouse/pull/108885) ([Groene AI](https://github.com/groeneai)).
* Corrige um erro interno confuso (`Method getResultType is not supported for TABLE query tree node`) quando uma expressão de tabela era usada como argumento à esquerda do operador `IN`; essas consultas agora produzem uma mensagem de erro clara. [#109412](https://github.com/ClickHouse/ClickHouse/pull/109412) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a leitura de uma tabela Iceberg com um arquivo de metadados cujo número da versão é composto apenas por dígitos, mas excede o intervalo de inteiro de 32 bits (por exemplo `v99999999999999999999.metadata.json`). Antes, esse nome produzia um `std::out_of_range` opaco (`STD_EXCEPTION`) em vez de um erro `BAD_ARGUMENTS` claro. [#109619](https://github.com/ClickHouse/ClickHouse/pull/109619) ([Groene AI](https://github.com/groeneai)).
* Corrige um possível `Logical error: 'ReadBuffer is canceled. Can't read from it.'` quando um formato de entrada baseado em linhas (por exemplo `TSV`/`CSV`) falhava ao analisar a entrada e a leitura subjacente já havia sido cancelada (por exemplo, um chunk HTTP malformado ou um corpo truncado). A geração dos diagnósticos detalhados de análise não lê mais a partir de um buffer cancelado. [#109708](https://github.com/ClickHouse/ClickHouse/pull/109708) ([Groene AI](https://github.com/groeneai)).
* Expressões de filtro de ROW POLICY que usam `arrayJoin` (ou seu alias `unnest`) agora são rejeitadas com um erro claro; anteriormente, essas policies geravam um erro lógico `column->size() == num_rows` no momento da consulta. [#109753](https://github.com/ClickHouse/ClickHouse/pull/109753) ([Raúl Marín](https://github.com/Algunenano)). [#109973](https://github.com/ClickHouse/ClickHouse/pull/109973) ([Raúl Marín](https://github.com/Algunenano)).
* Ler uma tabela Paimon cujo schema contém um tipo Nested sem suporte (por exemplo, um campo `ROW`) agora reporta um erro `BAD_ARGUMENTS` claro informando o tipo sem suporte, em vez de um simples `DB::Exception. (OK)` com código de erro 0 e sem mensagem. [#109762](https://github.com/ClickHouse/ClickHouse/pull/109762) ([Groene AI](https://github.com/groeneai)).
* Corrigido um `LOGICAL_ERROR` (`std::length_error`) quando uma consulta com a configuração experimental `make_distributed_plan = 1` usava um valor muito alto para `distributed_plan_default_reader_bucket_count` ou `distributed_plan_default_shuffle_join_bucket_count`. Esses valores agora são rejeitados com `INVALID_SETTING_VALUE`. [#109770](https://github.com/ClickHouse/ClickHouse/pull/109770) ([Groene AI](https://github.com/groeneai)).
* Corrigido um `LOGICAL_ERROR` (`query tree node does not have valid source node`) quando uma CTE recursiva resolvia um identificador de um escopo externo como coluna correlacionada (com `allow_experimental_correlated_subqueries = 1`). Essas consultas agora retornam um erro `UNSUPPORTED_METHOD` claro. [#109863](https://github.com/ClickHouse/ClickHouse/pull/109863) ([Groene AI](https://github.com/groeneai)).
* Corrigido um overflow de inteiro com sinal quando `ORDER BY ... WITH FILL` pula uma lacuna muito grande em uma coluna `Int64`/`UInt64` (por exemplo, um passo de 2 sobre uma lacuna próxima de 2^63). O overflow era um comportamento indefinido em builds com sanitizers e fazia wrap silenciosamente em builds de release. [#109937](https://github.com/ClickHouse/ClickHouse/pull/109937) ([Groene AI](https://github.com/groeneai)).
* Corrigido um erro lógico `Bad cast from type DB::FunctionNode to DB::ConstantNode` (aborto do servidor em builds de debug/sanitizer) ao executar `SELECT ... ORDER BY ... WITH FILL` em uma tabela `Distributed` com `optimize_const_name_size` baixo. [#109938](https://github.com/ClickHouse/ClickHouse/pull/109938) ([Groene AI](https://github.com/groeneai)).
* Corrigido um erro lógico `Invalid number of rows in Chunk` quando um destino `INTERPOLATE` é um alias de uma coluna `WITH FILL` com o analyzer antigo (`enable_analyzer = 0`). Essas consultas agora são rejeitadas com um erro `INVALID_WITH_FILL_EXPRESSION` claro. [#110103](https://github.com/ClickHouse/ClickHouse/pull/110103) ([Groene AI](https://github.com/groeneai)).
* Corrigido um erro lógico (aborto do servidor em builds de debug/sanitizer) quando as funções `indexHint`/`ignore`/`isZeroOrNull` recebem um argumento cujo tipo é resolvido como `Nothing`, por exemplo, em expressões como `indexHint(assumeNotNull(materialize(NULL)))`. [#110192](https://github.com/ClickHouse/ClickHouse/pull/110192) ([Groene AI](https://github.com/groeneai)).
* Corrigido um erro lógico `Too large size (...) passed to allocator` que podia ocorrer quando um valor fora do intervalo era definido para uma configuração de tamanho de read buffer, como `max_read_buffer_size` ou `max_read_buffer_size_local_fs`. Esses valores agora são limitados a 256 MiB pela verificação de sanidade das configurações e, adicionalmente, no ponto de consumo de `INSERT ... FROM INFILE`, que lê arquivos dentro do `clickhouse-client`, onde a verificação de sanidade não se aplica. [#110207](https://github.com/ClickHouse/ClickHouse/pull/110207) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `CHECK TABLE` agora relata a corrupção real de uma projection part que falhou ao carregar seus metadados, em vez do erro enganoso `Columns doesn't match ... Expected: 0 columns`. [#110262](https://github.com/ClickHouse/ClickHouse/pull/110262) ([Raúl Marín](https://github.com/Algunenano)).
* Uma incompatibilidade de tipo ao ler um valor de uma source PostgreSQL (por exemplo, a table function `postgresql` ou o table engine `PostgreSQL`) que não pode ser convertido para o tipo de coluna declarado (por exemplo, uma coluna `text` declarada como `Int32`) agora é reportada como um erro de consulta apropriado; anteriormente, isso abortava o servidor em builds de debug e sanitizer. [#110264](https://github.com/ClickHouse/ClickHouse/pull/110264) ([Groene AI](https://github.com/groeneai)).
* Suporte ao query profiler, aos profilers de memória e de trace e à simbolização de `system.trace_log` no macOS. [#109825](https://github.com/ClickHouse/ClickHouse/pull/109825) ([Raúl Marín](https://github.com/Algunenano)).
* Atualiza o `chdig` para [v26.7.1](https://github.com/azat/chdig/releases/tag/v26.7.1): stack traces comprimidos para compartilhamento, padrões de consulta, suporte a memória com arena separada, melhorias no Perfetto e correções de compatibilidade. [#110938](https://github.com/ClickHouse/ClickHouse/pull/110938) ([Azat Khuzhin](https://github.com/azat)).
* Corrige a inferência incorreta de monotonicidade para `intDiv` em uma chave sem sinal dividida por uma constante com sinal, o que podia desativar a poda de índice da chave primária para predicados `IN`/`NOT IN` que cruzam o limite de sinal do tipo de resultado; compilações de depuração também encontravam um `LOGICAL_ERROR` `Invalid binary search result in MergeTreeSetIndex`. [#107586](https://github.com/ClickHouse/ClickHouse/pull/107586) ([Groene AI](https://github.com/groeneai)).
* Adiciona a configuração `allow_lossy_numeric_supertype` (desabilitada por padrão). Quando habilitada, `if`, `multiIf`, `coalesce`, `ifNull`, `array` e `map` com argumentos numéricos que não têm um tipo comum sem perda (por exemplo, `Decimal` e `Float64`, ou `Int64` e `Float64`) passam a resultar em `Float64` em vez de `Variant`, para que o resultado possa ser usado com funções de agregação como `sum`, `avg`, `min` e `max`. As mensagens de erro relevantes de funções de agregação agora mencionam a configuração pelo nome. Fecha [#106707](https://github.com/ClickHouse/ClickHouse/issues/106707). [#107236](https://github.com/ClickHouse/ClickHouse/pull/107236) ([Groene AI](https://github.com/groeneai)).
* Inicia o endpoint do Prometheus (para configurações somente de métricas) e a coleta assíncrona de métricas antes do carregamento das tabelas, para que as métricas fiquem visíveis durante a fase potencialmente longa de carregamento de metadados. [#108402](https://github.com/ClickHouse/ClickHouse/pull/108402) ([Christoph Wurm](https://github.com/cwurm)).

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

* Corrige falhas em `TRUNCATE TABLE` e `DROP PARTITION` em tabelas com muitos blocos de desduplicação, em que removê-los em uma única request do ZooKeeper podia exceder o limite padrão de 1 MB de `jute.maxbuffer`. [#105991](https://github.com/ClickHouse/ClickHouse/pull/105991) ([Clayton McClure](https://github.com/cmcclure-twilio)). Isso só afeta você se usar o Apache ZooKeeper (não recomendado) em vez do ClickHouse Keeper.
* Corrige o uso de nomes de coluna qualificados (`database.table.column`) na cláusula `WHERE` de mutações, como `DELETE FROM` e `ALTER TABLE ... UPDATE/DELETE`, em tabelas da família `MergeTree`; antes, essas consultas falhavam com um erro de colunas ausentes. Fecha [#71760](https://github.com/ClickHouse/ClickHouse/issues/71760). [#109491](https://github.com/ClickHouse/ClickHouse/pull/109491) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Corrige o cache de resultado de consulta para consultas PromQL. O dialeto `promql` ignorava a verificação de funções não determinísticas e podia retornar resultados desatualizados ancorados em `now()`; a API HTTP do Prometheus (`/api/v1/query`, `/api/v1/query_range`) nem sequer armazenava entradas de cache. [#110887](https://github.com/ClickHouse/ClickHouse/pull/110887) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Corrige a falha na inicialização do servidor quando a variável de ambiente `TZ` está vazia. Fecha [#68920](https://github.com/ClickHouse/ClickHouse/issues/68920). [#68921](https://github.com/ClickHouse/ClickHouse/pull/68921) ([Ardenwick](https://github.com/ardenwick)).
* Corrige a falha na inicialização do servidor quando um database engine `Backup` faz referência a um backup que se tornou indisponível (por exemplo, quando seus arquivos foram excluídos ou o armazenamento subjacente está inacessível). O banco de dados agora é carregado sem tabelas, em vez de impedir a inicialização de todo o servidor. [#83188](https://github.com/ClickHouse/ClickHouse/pull/83188) ([Vitaly Orlov](https://github.com/orloffv)).
* Ao usar inserts em segundo plano em tabelas com o engine `Distributed`, os atrasos causados por erros repetidos no envio de dados para shards remotos agora diminuem quando os erros são resolvidos. Antes, o atraso só aumentava e nunca era redefinido. [#87378](https://github.com/ClickHouse/ClickHouse/pull/87378) ([Andrei Kochemirovskii](https://github.com/Blackmorse)).
* Corrige `broken_data_files` em `system.distribution_queue` e a métrica `BrokenDistributedFilesToInsert`, que sempre reportavam `0` para arquivos corrompidos descobertos ao varrer a fila de async-insert de `Distributed` na inicialização. [#92124](https://github.com/ClickHouse/ClickHouse/pull/92124) ([KG.Xu](https://github.com/squalfof)).
* Corrige a recuperação do logging após erro de disco cheio. Antes, quando o disco de log ficava cheio, o ClickHouse entrava em estado de falha e passava a enviar continuamente mensagens de erro para o syslog (potencialmente gravando mais de 100 GB/hora), sem nunca se recuperar, mesmo depois que espaço em disco fosse liberado. Agora, o sistema de logging se recupera automaticamente assim que há espaço em disco disponível, sem exigir reinicialização do servidor. [#93127](https://github.com/ClickHouse/ClickHouse/pull/93127) ([jaehanbyun](https://github.com/jaehanbyun)).
* Encaminha credenciais estáticas do S3 para leituras de tabelas `DataLakeCatalog` do Unity quando `vended_credentials` está desabilitado, evitando falhas de acesso anônimo ao armazenamento de objetos. [#96910](https://github.com/ClickHouse/ClickHouse/pull/96910) ([kgeg401](https://github.com/kgeg401)).
* Corrige uma falha no código de parsing de esquema do table engine `DeltaLake`. [#97112](https://github.com/ClickHouse/ClickHouse/pull/97112) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige um problema de segurança em que um cliente TCP não autenticado podia sondar a existência de tabelas e o status da replicação pela porta interserver. [#99854](https://github.com/ClickHouse/ClickHouse/pull/99854) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Corrige um erro de sintaxe quando um alias vem após uma subconsulta em `DESCRIBE TABLE`. Corrige [#100031](https://github.com/ClickHouse/ClickHouse/issues/100031). [#100205](https://github.com/ClickHouse/ClickHouse/pull/100205) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrigida uma exceção em subconsultas correlacionadas quando colunas externas se tornam `Nullable` com `group_by_use_nulls` e `ROLLUP`/`CUBE`. [#100365](https://github.com/ClickHouse/ClickHouse/pull/100365) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido um encerramento abrupto do servidor (em builds com sanitizer) e perda silenciosa de dados durante a inicialização da tabela quando uma part `MergeTree` transacional revertida intersecta uma part confirmada. [#100992](https://github.com/ClickHouse/ClickHouse/pull/100992) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Corrigido o `indexOfAssumeSorted`, que retornava resultados incorretos para colunas `Array(LowCardinality(String))` em tabelas `MergeTree`. [#101771](https://github.com/ClickHouse/ClickHouse/pull/101771) ([Yash ](https://github.com/Onyx2406)).
* Corrige a pruning incorreta da chave primária quando a chave de ordenação de uma tabela envolve uma coluna `Date` em `toDateTime` (por exemplo, `ORDER BY toDateTime(date_column)`) e uma consulta filtra a coluna original com uma comparação como `WHERE date_column >= '...'`. `toDateTime(Date)` causa overflow para valores `Date` fora do intervalo de `DateTime` (após `2106-02-07`), então a chave armazenada deixa de ser monotônica; o ClickHouse não usa mais a pruning da chave primária para essa combinação de chave/predicado, porque isso poderia descartar grânulos que contêm linhas correspondentes. Fecha [#101744](https://github.com/ClickHouse/ClickHouse/issues/101744). [#101814](https://github.com/ClickHouse/ClickHouse/pull/101814) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrigidos `intDivOrNull`, `moduloOrNull` e `positiveModuloOrNull`, que retornavam `0` em vez de `NULL`, e `intDivOrNull` e `intDivOrZero`, que geravam uma exceção em vez de retornar `NULL` / `0`, quando a divisão levava a uma exceção de ponto flutuante (divisão por zero ou `INT_MIN / -1`), inclusive para argumentos mistos signed/unsigned. [#101976](https://github.com/ClickHouse/ClickHouse/pull/101976) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige exceções `LOGICAL_ERROR` ao ler tabelas `Iceberg` ou `DeltaLake` em casos extremos, como atualizações simultâneas de metadados do `Iceberg` ou leituras pela função de tabela `merge` sobre tabelas `DeltaLake`. [#102033](https://github.com/ClickHouse/ClickHouse/pull/102033) ([Groene AI](https://github.com/groeneai)).
* Corrige falhas em requisições HTTP de saída (por exemplo, a função `aiGenerate`, a função de tabela `url`, S3) com `No route to host` em hosts que anunciam endereços IPv4 e IPv6 quando apenas uma das famílias de endereços é roteável. O pool de conexões HTTP agora passa a usar o próximo endereço resolvido quando o primeiro falha com um erro de rede, em vez de propagar o erro logo na primeira requisição. [#103786](https://github.com/ClickHouse/ClickHouse/pull/103786) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um encerramento abrupto do servidor durante `RESTORE` de backups que contêm tabelas com dependências cíclicas. [#103824](https://github.com/ClickHouse/ClickHouse/pull/103824) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* A inferência de esquema para colunas Arrow `time32`/`time64` (por exemplo, `SELECT * FROM file(..., 'Arrow')`) agora infere `Time64` em vez de `DateTime64`; qualquer componente downstream que dependa do tipo inferido antigo passará a observar o novo tipo após uma atualização. Além disso, valores `Time`/`Time64` agora podem ser exportados para Arrow com o tipo de tempo apropriado do Apache Arrow selecionado de acordo com a precisão. Corrige [#104038](https://github.com/ClickHouse/ClickHouse/issues/104038). [#104316](https://github.com/ClickHouse/ClickHouse/pull/104316) ([/bin/cat](https://github.com/Maoyao233)).
* Corrigida uma condição de corrida entre `ALTER TABLE ... RENAME COLUMN` e um `OPTIMIZE TABLE ... FINAL` concorrente (ou qualquer merge em segundo plano) em `MergeTree`, que podia substituir silenciosamente os dados da coluna renomeada por valores padrão. [#104822](https://github.com/ClickHouse/ClickHouse/pull/104822) ([Groene AI](https://github.com/groeneai)).
* Corrigido um erro lógico `Block structure mismatch` durante um `INSERT` concorrente enquanto um `ALTER TABLE ... RENAME COLUMN` está em andamento, em um banco de dados `Atomic` com `lazy_load_tables = 1`, após `DETACH DATABASE`/`ATTACH DATABASE`. [#104852](https://github.com/ClickHouse/ClickHouse/pull/104852) ([Groene AI](https://github.com/groeneai)).
* Corrigido `groupConcat` quando as formas paramétrica e de dois argumentos são misturadas, por exemplo, `groupConcat(',', 2)(x, '/')`: o parâmetro de limite de linhas era ignorado silenciosamente, então todas as linhas eram retornadas em vez da quantidade solicitada; o delimitador do segundo argumento agora substitui corretamente o parâmetro. [#104882](https://github.com/ClickHouse/ClickHouse/pull/104882) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrigido um `LOGICAL_ERROR` (`Expected one block from input stream`) lançado por `KILL QUERY`/`KILL MUTATION`/`KILL PART_MOVE_TO_SHARD`/`KILL TRANSACTION` quando a cláusula `WHERE` contém uma subconsulta por linha, ou quando `max_block_size` é pequeno o bastante para que o `SELECT` interno sobre a tabela `system.*` relevante emita mais de um bloco. [#104927](https://github.com/ClickHouse/ClickHouse/pull/104927) ([Groene AI](https://github.com/groeneai)).
* Corrigido `CAST` de unidades de interval menores para maiores que retornava resultados incorretos (por exemplo, `CAST(toIntervalSecond(60) AS IntervalMinute)` retornava `0` em vez de `1`). Fecha [#104986](https://github.com/ClickHouse/ClickHouse/issues/104986). [#105058](https://github.com/ClickHouse/ClickHouse/pull/105058) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrigido um erro lógico (`Assertion 'row < chunk.getNumRows()' failed`) em consultas `LIMIT ... WITH TIES` executadas com o pipeline de leitura em ordem (`optimize_read_in_order = 1` e `read_in_order_use_virtual_row_per_block = 1`). [#105102](https://github.com/ClickHouse/ClickHouse/pull/105102) ([Groene AI](https://github.com/groeneai)).
* Corrigido um vazamento em views materializadas atualizáveis (`MATERIALIZED VIEW ... REFRESH ...`): a tabela interna temporária que uma atualização removia por rotação via `EXCHANGE TABLES` não podia ser removida se fosse maior que `max_table_size_to_drop`, então cada atualização subsequente criava outra tabela interna temporária, fazendo o diretório de dados da view crescer até esgotar o disco. O drop interno da tarefa de atualização agora ignora `max_table_size_to_drop` e `max_partition_size_to_drop`; essas proteções continuam valendo para `DROP TABLE` da própria view emitido pelo usuário. Fecha [#104900](https://github.com/ClickHouse/ClickHouse/issues/104900). [#105106](https://github.com/ClickHouse/ClickHouse/pull/105106) ([Groene AI](https://github.com/groeneai)).
* Corrigido um erro inesperado `DATA_TYPE_CANNOT_BE_USED_IN_KEY` em consultas `ALTER` que não alteram a chave de ordenação (alteração de settings, comments, codecs, adição de uma coluna que não faz parte da chave etc.) em tabelas `MergeTree` que têm uma `SimpleAggregateFunction` (ou outro tipo permitido somente com `allow_suspicious_primary_key = 1`) na chave de ordenação. [#105111](https://github.com/ClickHouse/ClickHouse/pull/105111) ([Groene AI](https://github.com/groeneai)).
* Corrigido um uso após liberação ao consultar colunas de estado de réplica de `system.clusters` (como `is_active`, `unsynced_after_recovery`, `recovery_time`) enquanto um banco de dados `Replicated` está sendo removido ou desanexado. Além disso, exceções benignas do Keeper suprimidas nesse caminho de código (o banco de dados afetado é tratado como temporariamente indisponível e ignorado) agora são registradas no nível `Information`, em vez de `Error`, e por isso não chegam mais aos clientes com o padrão `send_logs_level = 'warning'`. [#105149](https://github.com/ClickHouse/ClickHouse/pull/105149) ([Groene AI](https://github.com/groeneai)).
* Corrigido um problema em que executar várias instruções em `clickhouse-local --ignore-error` fazia com que cada instrução subsequente fosse repetida na mensagem de erro para cada erro léxico ou de parênteses não correspondentes. [#105480](https://github.com/ClickHouse/ClickHouse/pull/105480) ([Groene AI](https://github.com/groeneai)).
* Corrigida uma falha rara do servidor quando views materializadas atualizáveis são removidas ou substituídas concorrentemente com seu agendamento de atualização. [#105588](https://github.com/ClickHouse/ClickHouse/pull/105588) ([Groene AI](https://github.com/groeneai)).
* Rejeita `ALTER TABLE ... DELETE` e `ALTER TABLE ... UPDATE` em tabelas `Iceberg` cujo formato de arquivo de dados não seja `Parquet`, com um erro `NOT_IMPLEMENTED` claro, em vez de derrubar o servidor ou corromper silenciosamente a tabela. [#105893](https://github.com/ClickHouse/ClickHouse/pull/105893) ([Groene AI](https://github.com/groeneai)).
* Corrige resultados incorretos de uma view definida com `EXCEPT` ou `INTERSECT` cujo operando é uma cadeia de `UNION`, após `DETACH`/`ATTACH` ou a reinicialização do servidor. No formatter, faltavam parênteses ao redor de filhos `UNION` de `INTERSECT`/`EXCEPT`, então o SQL armazenado era analisado novamente com precedência invertida. [#105935](https://github.com/ClickHouse/ClickHouse/pull/105935) ([Groene AI](https://github.com/groeneai)).
* Corrige dados `JSON` detectados incorretamente como `TSKV` durante a autodetecção de formato. Fecha [#100797](https://github.com/ClickHouse/ClickHouse/issues/100797). [#106009](https://github.com/ClickHouse/ClickHouse/pull/106009) ([Pavel Kruglov](https://github.com/Avogar)).
* Proíbe criar um índice de salto `minmax` diretamente em colunas `JSON` — isso podia fazer com que inserções falhassem mais tarde com uma exceção `NO_COMMON_TYPE` quando arrays de tipos mistos eram inseridos. Em vez disso, crie o índice em subcolunas tipadas (por exemplo, `INDEX idx json.field TYPE minmax`). [#106094](https://github.com/ClickHouse/ClickHouse/pull/106094) ([linhaojie](https://github.com/linhaojie)).
* Corrigido um erro lógico (`Parsed partition value ... doesn't match partition value for an existing part with the same partition ID`) gerado por `OPTIMIZE TABLE ... PARTITION ...` e outras consultas que resolvem um valor de partição, em tabelas com uma chave de partição do tipo `Time`. [#106202](https://github.com/ClickHouse/ClickHouse/pull/106202) ([Groene AI](https://github.com/groeneai)).
* Corrige um data part marcado incorretamente como tendo uma projeção corrompida depois que uma exclusão leve não deixa nenhum projection part — seja quando a projeção é reconstruída com zero linhas de saída, seja quando é removida (`lightweight_mutation_projection_mode = 'rebuild'`/`'drop'`). Esse estado corrompido antes desabilitava a otimização de projeção para consultas nesse part. [#106273](https://github.com/ClickHouse/ClickHouse/pull/106273) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Corrigido `removeDirectory` em discos `plain` de armazenamento de objetos (como `s3_plain`), que removia todos os arquivos dentro de um diretório não vazio como se a remoção fosse recursiva; agora, remover um diretório não vazio falha com `CANNOT_RMDIR`, e a remoção recursiva lida explicitamente com o conteúdo. [#106281](https://github.com/ClickHouse/ClickHouse/pull/106281) ([RinChanNOW](https://github.com/RinChanNOWWW)).
* Corrigido um erro lógico (`Part ... doesn't exist`) que podia abortar o servidor durante a recuperação de um `INSERT` com quorum a partir de um erro de hardware do Keeper, quando o quorum era marcado concorrentemente como com falha. [#106424](https://github.com/ClickHouse/ClickHouse/pull/106424) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige uma exceção `LOGICAL_ERROR` sobre nomes de coluna duplicados ao aplicar políticas de linha. [#106438](https://github.com/ClickHouse/ClickHouse/pull/106438) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige `CREATE OR REPLACE TABLE` e `REPLACE TABLE`, que deixavam uma tabela `_tmp_replace_*` órfã no disco e substituíam a tabela original por uma vazia quando o destino existente excedia `max_table_size_to_drop`. A verificação de tamanho agora é executada antes da troca, para que a violação seja interrompida corretamente, com o nome da tabela visível ao usuário no erro. [#106782](https://github.com/ClickHouse/ClickHouse/pull/106782) ([Groene AI](https://github.com/groeneai)).
* Corrige `JSON_QUERY`/`JSON_VALUE`/`JSON_EXISTS` retornando `Dynamic` em vez de `String`/`UInt8` para argumentos `Dynamic`. Fecha [#106461](https://github.com/ClickHouse/ClickHouse/issues/106461). [#106877](https://github.com/ClickHouse/ClickHouse/pull/106877) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige resultados incorretos ao consultar uma tabela `ReplacingMergeTree` com `FINAL` e um filtro em um índice de texto enquanto `query_plan_optimize_lazy_final` estava habilitado. A otimização `FINAL` lazy criava etapas de leitura que não reproduziam a leitura direta do índice de texto, fazendo com que o filtro descartasse todas as linhas correspondentes. [#106894](https://github.com/ClickHouse/ClickHouse/pull/106894) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Aplica `query_masking_rules` às mensagens anexadas a exceções, para que credenciais codificadas em URL em sufixos `(in file/uri ...)` de erros das funções de tabela `jdbc`/`odbc` não vazem quando regras de mascaramento estiverem configuradas. [#106916](https://github.com/ClickHouse/ClickHouse/pull/106916) ([Gaurav Dubey](https://github.com/gaurav0107)).
* Corrige partes sendo marcadas como corrompidas e desanexadas em qualquer recarga de parte (reinicialização do servidor, `DETACH`/`ATTACH`) para tabelas com uma coluna `LowCardinality(Nullable(...))` na chave de partição. Desde a 26.5, o arquivo de índice minmax por parte não era gravado quando o mínimo e o máximo dessa coluna eram `NULL`, enquanto a verificação de consistência da parte ainda exigia o arquivo. Partes gravadas por versões afetadas não têm o arquivo de índice minmax e ainda precisam ser reanexadas manualmente. Fecha [#106837](https://github.com/ClickHouse/ClickHouse/issues/106837). [#106945](https://github.com/ClickHouse/ClickHouse/pull/106945) ([Pedro Ferreira](https://github.com/PedroTadim)).
* Corrige um `LOGICAL_ERROR` (`Unexpected expression in JOIN ON section. Expected boolean (UInt8), got 'Nothing'`) quando um predicado não equi em `JOIN ... ON` faz referência a uma coluna tipada como `Nothing`, como uma produzida por `ARRAY JOIN []`. [#106981](https://github.com/ClickHouse/ClickHouse/pull/106981) ([Groene AI](https://github.com/groeneai)).
* Corrige um raro `LOGICAL_ERROR` (`Attempt to release query context that does not exist`) e o crash do servidor associado ao ler tabelas `MergeTree` por meio de um disco de cache do sistema de arquivos criado com `enable_filesystem_query_cache_limit = 1`. [#107028](https://github.com/ClickHouse/ClickHouse/pull/107028) ([Groene AI](https://github.com/groeneai)).
* Corrige um crash do servidor ao mover uma parte vazia para um disco `plain_rewritable` (por exemplo, com `ALTER TABLE ... MOVE PARTITION ... TO DISK` para uma parte vazia mantida por `remove_empty_parts = 0`). [#107040](https://github.com/ClickHouse/ClickHouse/pull/107040) ([Groene AI](https://github.com/groeneai)).
* Corrige a ordem incorreta das linhas em consultas `ORDER BY` sobre `UNION ALL` com `optimize_read_in_order` e `read_in_order_use_virtual_row` habilitados. Fecha [#106879](https://github.com/ClickHouse/ClickHouse/issues/106879). [#107053](https://github.com/ClickHouse/ClickHouse/pull/107053) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrigido um `LOGICAL_ERROR` (`Unsupported argument types`) na função `geohashesInBox` quando seus argumentos de coordenadas misturavam valores constantes e não constantes, ou quando uma coordenada era `BFloat16`. Argumentos `Float32` mistos entre constantes e não constantes agora funcionam, e argumentos `BFloat16` são rejeitados com um erro claro. [#107063](https://github.com/ClickHouse/ClickHouse/pull/107063) ([Groene AI](https://github.com/groeneai)).
* Corrigidos resultados incorretos (linhas duplicadas) para `SELECT DISTINCT` sobre um `GROUP BY` com `WITH CUBE`, `WITH ROLLUP` ou `GROUPING SETS` nas mesmas chaves. A otimização `query_plan_remove_redundant_distinct` não remove mais o `DISTINCT` nesses casos, porque os modificadores de agrupamento emitem linhas extras com as colunas de chave preenchidas com o valor padrão, o que pode colidir com valores reais de grupos. [#107072](https://github.com/ClickHouse/ClickHouse/pull/107072) ([Groene AI](https://github.com/groeneai)).
* Corrigido um resultado incorreto em um `OUTER JOIN` quando o filtro `WHERE` é uma conjunção que contém um termo constante (por exemplo, `p AND 1`, ou `WHERE p QUALIFY NULL`, quando `QUALIFY NULL` é mesclado em `WHERE`). O termo constante podia ser empurrado para o lado não preservado do join e removido do filtro pós-join, fazendo com que o join produzisse linhas sem correspondência com as colunas desse lado preenchidas com o valor padrão, e essas linhas passassem incorretamente pelo filtro. [#107084](https://github.com/ClickHouse/ClickHouse/pull/107084) ([Groene AI](https://github.com/groeneai)).
* Corrigidas Funções Definidas pelo Usuário `executable_pool` configuradas com `<lifetime>` que não captavam alterações no script subjacente. Anteriormente, apenas `SYSTEM RELOAD FUNCTIONS` relia um script editado; as recargas periódicas de `<lifetime>` continuavam executando a versão antiga. [#107087](https://github.com/ClickHouse/ClickHouse/pull/107087) ([Groene AI](https://github.com/groeneai)).
* Corrigida uma exceção `LOGICAL_ERROR` (`Cannot find input column ... on its position in inputs of expression actions DAG`) para uma subconsulta escalar correlacionada sobre uma origem que projetava o mesmo identificador de coluna duas vezes (por exemplo, `SELECT number, *`) quando `correlated_subqueries_default_join_kind = 'left'`. [#107112](https://github.com/ClickHouse/ClickHouse/pull/107112) ([Groene AI](https://github.com/groeneai)).
* Corrigida uma condição de corrida no coletor global de traces do servidor entre uma worker thread iniciando seu profiler e o desligamento do servidor. [#107307](https://github.com/ClickHouse/ClickHouse/pull/107307) ([Groene AI](https://github.com/groeneai)).
* Backups incrementais não armazenam mais credenciais `S3` no localizador `<base_backup>` do arquivo de metadados `.backup`. Backups criados com `use_same_s3_credentials_for_base_backup = 1`, ou com credenciais explícitas do backup base correspondentes a este localizador de backup, armazenam um marcador sem segredo e são restaurados sem configurações extras no momento da restauração; para backups criados com credenciais explícitas diferentes para o backup base ou com argumentos extras de autenticação do backup base, passe-os para `RESTORE` com a configuração `base_backup`. Backups criados por versões antigas com credenciais incorporadas continuam podendo ser restaurados. [#107357](https://github.com/ClickHouse/ClickHouse/pull/107357) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrigido o `header` de `CSVWithNames` e `CSVWithNamesAndTypes`, que tinha menos colunas do que os dados quando `output_format_csv_serialize_tuple_into_separate_columns` está habilitado (padrão). O cabeçalho (e a linha de tipos) agora expande colunas `Tuple` em seus campos folha com nomes pontilhados (por exemplo, `t.a`, `t.b`), para que a contagem de colunas do cabeçalho corresponda aos dados. Uma nova configuração, `output_format_csv_header_serialize_tuple_into_separate_columns` (padrão `1`), controla isso e pode ser definida como `0` para restaurar o cabeçalho anterior com um único nome. [#107371](https://github.com/ClickHouse/ClickHouse/pull/107371) ([Groene AI](https://github.com/groeneai)).
* Corrigida a leitura de tabelas `Iceberg` v3 cujos arquivos de dados `Parquet` contêm colunas reservadas de linhagem de linha (como `_row_id`); o leitor nativo de `Parquet` não gera mais `ICEBERG_SPECIFICATION_VIOLATION` para IDs de campo reservados que não fazem parte do esquema da tabela. [#107377](https://github.com/ClickHouse/ClickHouse/pull/107377) ([Greg Maher](https://github.com/gregakinman)).
* Corrigido um raro abortamento do servidor durante o desligamento (`std::future_error`: `The associated promise has been destructed prior to the associated state becoming ready`), causado pela remoção de uma tarefa agendada da fila de um thread pool antes de sua execução. [#107383](https://github.com/ClickHouse/ClickHouse/pull/107383) ([Groene AI](https://github.com/groeneai)).
* Corrigidos os engines de tabela e de banco de dados `MaterializedPostgreSQL` para permitir a replicação de uma única tabela ou banco de dados a partir de um schema não padrão do PostgreSQL (`materialized_postgresql_schema`), inclusive quando existem tabelas com o mesmo nome em vários schemas do mesmo banco de dados (antes, elas compartilhavam uma publication e um replication slot, causando interferência entre si). [#107425](https://github.com/ClickHouse/ClickHouse/pull/107425) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a interrupção da replicação de um banco de dados inteiro pelo `MaterializedPostgreSQL` (com `LOGICAL_ERROR: Columns number mismatch`) quando a structure de uma única tabela replicada era alterada enquanto o servidor estava fora do ar. Agora, apenas a tabela afetada é ignorada e pode ser recuperada com `DETACH`/`ATTACH`. [#107427](https://github.com/ClickHouse/ClickHouse/pull/107427) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O `BACKUP` de um banco de dados `MaterializedPostgreSQL` não fica mais travado indefinidamente com `Table ... were created or changed its definition during scanning` e agora realmente faz backup dos dados da tabela (delegado ao `ReplacingMergeTree` subjacente), que pode ser restaurado como um `ReplacingMergeTree` standalone. [#107433](https://github.com/ClickHouse/ClickHouse/pull/107433) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida uma regressão em que a configuração `compatibility = '26.6'` (que habilita implicitamente a partition strategy `hive`) aceitava silenciosamente `{_partition_id}` em caminhos de tabela S3/armazenamento de objetos, em vez de gerar `BAD_ARGUMENTS`. [#107437](https://github.com/ClickHouse/ClickHouse/pull/107437) ([Lefteris](https://github.com/LefterisXefteris)).
* Corrigido um vazamento de memória no `mongo-c-driver` incluído, que podia ocorrer ao ler do MongoDB (por exemplo, por meio de um Dicionário do MongoDB ou da table function `mongodb`) se um erro de leitura retryable fosse seguido por uma falha na seleção do servidor para a nova tentativa. [#107448](https://github.com/ClickHouse/ClickHouse/pull/107448) ([Groene AI](https://github.com/groeneai)).
* Corrigida uma exceção ao inserir em uma tabela `Iceberg` cujos metadados foram criados por um external engine e omitem os arrays opcionais `snapshots`, `metadata-log` ou `snapshot-log`. Essas inserções agora são concluídas com sucesso, em vez de falhar. [#107473](https://github.com/ClickHouse/ClickHouse/pull/107473) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Corrigido o fato de `DELETE FROM` (exclusão leve) exigir o privilege `ALTER UPDATE` além de `ALTER DELETE`. Um usuário com apenas `ALTER DELETE` agora pode executar `DELETE FROM`, como documentado. [#107491](https://github.com/ClickHouse/ClickHouse/pull/107491) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Corrigido `NOT_FOUND_COLUMN_IN_BLOCK` ao ler arquivos particionados por Hive com `use_hive_partitioning = 1` e uma cláusula `WHERE`/`PREWHERE` que filtra uma coluna real (não virtual), enquanto uma coluna de partição do Hive também é selecionada. [#107505](https://github.com/ClickHouse/ClickHouse/pull/107505) ([Groene AI](https://github.com/groeneai)).
* Corrigido um `LOGICAL_ERROR` (`Different order of columns in UNION subquery`) quando o analyzer antigo (`enable_analyzer = 0`) lê um subconjunto de colunas de uma subquery cujos filhos de `UNION` são set operations `INTERSECT`/`EXCEPT`. [#107511](https://github.com/ClickHouse/ClickHouse/pull/107511) ([Groene AI](https://github.com/groeneai)).
* Corrigida a conversão silenciosa de valores `NULL` em strings vazias ao inserir dados `Arrow`/`ORC` em uma coluna `LowCardinality(Nullable(...))`. Essa regressão foi introduzida na versão 26.5. [#107532](https://github.com/ClickHouse/ClickHouse/pull/107532) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Corrige um erro lógico (`Stream ... variant_discr ... is not found`) que podia ocorrer ao mesclar ou ler uma part de `MergeTree` produzida por uma mutation de uma tabela com uma coluna `Dynamic`. [#107562](https://github.com/ClickHouse/ClickHouse/pull/107562) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido um erro lógico (`WhichDataType(const_type).isArray()`) durante a análise da primary key quando `pointInPolygon` é chamado com um argumento de polígono constante de um tipo encapsulador, como `Variant` ou `Dynamic` (por exemplo, `pointInPolygon((x, y), if(c, [(0, 0), ...], NULL))`). [#107589](https://github.com/ClickHouse/ClickHouse/pull/107589) ([Groene AI](https://github.com/groeneai)).
* Corrigido um erro lógico (`Last stored last_written_position in meta file ... is bigger than current last_written_pos`) no engine `FileLog` que podia ocorrer quando um arquivo monitorado era excluído e recriado reutilizando o mesmo inode. [#107617](https://github.com/ClickHouse/ClickHouse/pull/107617) ([Groene AI](https://github.com/groeneai)).
* Corrige uma rara interrupção do servidor (`std::future_error`: `The associated promise has been destructed prior to the associated state becoming ready`) durante o processamento de requests do cliente ZooKeeper, quando uma Keeper request assíncrona era descartada enquanto estava sendo enviada, por exemplo sob pressão de memória. [#107647](https://github.com/ClickHouse/ClickHouse/pull/107647) ([Groene AI](https://github.com/groeneai)).
* Corrigido `RESTORE` para tabelas `ReplicatedMergeTree`, para que parts com conteúdo duplicado de um backup sejam preservadas em vez de serem deduplicadas silenciosamente. [#107652](https://github.com/ClickHouse/ClickHouse/pull/107652) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrige um filtro de join em tempo de execução que produzia resultados incorretos para colunas `JSON`. Fecha [#107646](https://github.com/ClickHouse/ClickHouse/issues/107646). [#107663](https://github.com/ClickHouse/ClickHouse/pull/107663) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrigidos resultados incorretos de consultas distribuídas que selecionavam colunas `ALIAS` que compartilhavam uma subexpressão comum: as colunas podiam ficar desalinhadas, e os valores eram retornados na coluna errada. [#107675](https://github.com/ClickHouse/ClickHouse/pull/107675) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Cotas indexadas por `normalized_query_hash` agora contabilizam todos os recursos (`read_rows`, `read_bytes`, `result_rows`, `result_bytes`, `execution_time`, `written_bytes`, `errors`) por query pattern, como os counters de contagem de consultas, em vez de contabilizá-los em um único bucket compartilhado por usuário. [#107681](https://github.com/ClickHouse/ClickHouse/pull/107681) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido um erro lógico `Block structure mismatch in UnionStep stream` (interrupção do servidor em builds de debug/sanitizer, `Code: 49` em builds de release) que ocorria quando branches irmãs de um `UNION`/`INTERSECT`/`EXCEPT` diferiam apenas no predicado `WHERE` e o predicado de uma das branches era constant-folded em uma coluna `Const`. [#107719](https://github.com/ClickHouse/ClickHouse/pull/107719) ([Groene AI](https://github.com/groeneai)).
* Corrige erros lógicos (`Bad cast`) causados pela remoção inconsistente de `LowCardinality` aninhado dentro de colunas `Variant` e `Dynamic`, por exemplo em `concat`, `format` e na análise de primary key. Fecha [#107598](https://github.com/ClickHouse/ClickHouse/issues/107598). [#107773](https://github.com/ClickHouse/ClickHouse/pull/107773) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrigida uma grave distorção na distribuição de trabalho com parallel replicas quando o cluster contém replicas inativas (por exemplo, entradas obsoletas deixadas após o autoscaling). Essas replicas não são mais contabilizadas pelo coordinator de leitura, de modo que o trabalho é balanceado entre as replicas online em vez de se concentrar em uma única. [#107805](https://github.com/ClickHouse/ClickHouse/pull/107805) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a exceção `Not-ready Set is passed as the second argument`, que podia ocorrer quando a construção de um conjunto de subconsulta `IN` durante a análise da chave primária falhava silenciosamente (por exemplo, por um timeout da subconsulta com `overflow_mode = 'break'`), deixando o conjunto permanentemente sem ser construído no pipeline da consulta. [#107924](https://github.com/ClickHouse/ClickHouse/pull/107924) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige uma falha do servidor no pushdown de predicado (`enable_optimize_predicate_expression`, analyzer legado) quando uma subconsulta `UNION` aparece dentro de uma condição `JOIN ... ON`. [#107930](https://github.com/ClickHouse/ClickHouse/pull/107930) ([Groene AI](https://github.com/groeneai)).
* Corrige erros espúrios de `CHECKSUM_DOESNT_MATCH` e de leitura de `Parquet` (e, para alguns formatos, resultados silenciosamente incorretos) quando um objeto do S3 ou compatível com S3 (por exemplo, GCS) é sobrescrito no mesmo local enquanto está sendo lido. Essas leituras agora falham com um erro claro, passível de nova tentativa, em vez de retornar dados costurados a partir de duas versões do objeto; isso é controlado pela nova configuração `s3_validate_etag_on_read` (ativada por padrão). [#107934](https://github.com/ClickHouse/ClickHouse/pull/107934) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Corrige um `SELECT` que falhava com `NOT_FOUND_COLUMN_IN_BLOCK` em uma tabela com índice de data-skipping `set` quando uma política de linha a filtrava usando uma condição sempre verdadeira combinada com uma verificação em uma coluna não indexada. [#107971](https://github.com/ClickHouse/ClickHouse/pull/107971) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Corrige o parsing dos parâmetros de comando de função definida pelo usuário executável para que placeholders com nomes vazios ou inválidos não sejam aceitos como parâmetros. [#107983](https://github.com/ClickHouse/ClickHouse/pull/107983) ([Goutam Adwant](https://github.com/goutamadwant)).
* Corrige uma regressão de desempenho em subcolunas de `Map` com `PREWHERE`. Fecha [#107912](https://github.com/ClickHouse/ClickHouse/issues/107912). Causado por [#99200](https://github.com/ClickHouse/ClickHouse/pull/99200). [#107988](https://github.com/ClickHouse/ClickHouse/pull/107988) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige uma gravação fora dos limites ao ler uma coluna `Variant` de um bloco `Native` malformado cujos discriminadores fazem referência a um índice de variante que não existe. [#107991](https://github.com/ClickHouse/ClickHouse/pull/107991) ([uwezkhan](https://github.com/uwezkhan)).
* Corrige resultados de consulta incorretos causados por poda incorreta da chave primária e da partição quando `toStartOfDay`, `toStartOfISOYear`, `toDaysSinceYearZero`, `toRelativeSecondNum`, `toRelativeMinuteNum`, `toRelativeHourNum`, `toRelativeWeekNum`, `toRelativeDayNum`, `toMonthNumSinceEpoch` ou `toYearNumSinceEpoch` é aplicado a uma coluna-chave `Date32` contendo datas fora do intervalo que a função consegue representar (em particular, datas anteriores a `1970-01-01`). Essas funções se declaram monotônicas para o índice primário, mas antes faziam wraparound para esses argumentos, de modo que o índice podia eliminar grânulos que na verdade continham linhas correspondentes; agora elas saturam nos limites do seu tipo de resultado e permanecem monotônicas em todo o intervalo de `Date32`. [#108018](https://github.com/ClickHouse/ClickHouse/pull/108018) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige `accurateCastOrNull` de um `Tuple` cujo elemento é `Dynamic`/`Variant`: um `NULL` de origem real era tratado como falha de conversão. Para um elemento de destino `Nullable`, um `NULL` de origem agora permanece como um elemento `NULL` (em linha com uma origem simples `Tuple(Nullable(...))`); para um elemento de destino não `Nullable`, um `NULL` de origem agora torna `NULL` a tupla inteira, em vez de produzir o valor padrão do elemento; falhas de parse/overflow ainda tornam `NULL` a tupla inteira. [#108023](https://github.com/ClickHouse/ClickHouse/pull/108023) ([Groene AI](https://github.com/groeneai)). Também corrige um erro lógico ao converter uma coluna `Dynamic` ou `Variant` aninhada dentro de um `Tuple` para um tipo de elemento não `Nullable` com `accurateCastOrNull` ou `accurateCastOrDefault`. [#108061](https://github.com/ClickHouse/ClickHouse/pull/108061) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido `numericIndexedVectorPointwiseMultiply`, que retornava um resultado vazio ao multiplicar por um vetor de uns com uma configuração de BSI (bit-sliced index) diferente. [#108027](https://github.com/ClickHouse/ClickHouse/pull/108027) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido `toTime64` e `CAST(... AS Time64)`, que não restringiam valores fora do intervalo ao intervalo de `Time64` nos modos de overflow `saturate` e `ignore`, o que podia produzir valores exibidos de forma idêntica, mas comparados como diferentes. [#108028](https://github.com/ClickHouse/ClickHouse/pull/108028) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `getClientHTTPHeader` agora é tratado corretamente como não determinístico, portanto seu resultado não é mais reutilizado incorretamente pelo cache de resultado da consulta. [#108029](https://github.com/ClickHouse/ClickHouse/pull/108029) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `clickhouse-client --port 9440` volta a habilitar automaticamente uma conexão segura (TLS); isso havia sido quebrado por uma refatoração que deixou de passar a porta para a verificação de conexão segura. [#108032](https://github.com/ClickHouse/ClickHouse/pull/108032) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Um erro transitório durante a atualização de partes de dados de uma tabela read-only não interrompe mais permanentemente a tarefa de atualização em segundo plano. [#108034](https://github.com/ClickHouse/ClickHouse/pull/108034) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido o atraso de um ciclo nos avisos de sobrecarga de memória/CPU/mutation em `system.warnings` em relação ao ciclo de métricas assíncronas (além de sua ausência no primeiro ciclo). [#108035](https://github.com/ClickHouse/ClickHouse/pull/108035) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A table function `mongodb` agora aceita `oid_columns` passado como argumento nomeado (por exemplo, `oid_columns='_id'`), em vez de rejeitá-lo com `BAD_ARGUMENTS`. [#108039](https://github.com/ClickHouse/ClickHouse/pull/108039) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige uma exceção `Bad cast from type DB::ColumnNullable to DB::ColumnVector<...>` (erro lógico) quando um asterisco qualificado (`t.*`) seleciona uma chave `JOIN USING` e esse join está aninhado sob um join `PASTE`/`CROSS`/por vírgula ou um join `ON` externo, com `join_use_nulls = 0`. [#108043](https://github.com/ClickHouse/ClickHouse/pull/108043) ([Groene AI](https://github.com/groeneai)).
* Corrigido o tratamento incorreto de asserções de largura zero (`\b`, `^`, `$`) nas funções regexp "match all" `extractAll`, `extractAllGroupsVertical`, `extractAllGroupsHorizontal`, `countMatches` e `splitByRegexp`. Por exemplo, `extractAll('new york is the greatest', '\b(\w)')` agora retorna corretamente a primeira letra de cada palavra, em vez de todas as letras. [#108047](https://github.com/ClickHouse/ClickHouse/pull/108047) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido `CREATE TABLE ... AS SELECT` em bancos de dados `Atomic`, que deixava uma tabela vazia para trás quando a consulta falhava — por exemplo, quando o usuário não tem acesso a uma tabela referenciada em uma subconsulta. Anteriormente, uma nova tentativa informava que a tabela já existe em vez de retornar o erro original. A tabela agora é criada por meio de uma tabela temporária e se torna visível somente depois de ser totalmente populada. [#108048](https://github.com/ClickHouse/ClickHouse/pull/108048) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permite consultar um Dicionário `range_hashed` ou `complex_key_range_hashed` que usa um intervalo `DateTime64`, `Decimal` ou de ponto flutuante com um argumento correspondente para `dictGet`/`dictHas`. Anteriormente, essas consultas falhavam com `must be convertible to Int64`, e intervalos abertos de faixas `Decimal`/`DateTime64` retornavam incorretamente o valor padrão. [#108052](https://github.com/ClickHouse/ClickHouse/pull/108052) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida uma exceção (`CANNOT_PARSE_TEXT`) ao carregar um Dicionário com uma chave composta cujas colunas-chave não são as primeiras colunas na definição do dicionário, com uma source local `ClickHouse` usando uma consulta explícita. As colunas de origem agora são associadas à estrutura do dicionário pelo nome em vez da posição. [#108053](https://github.com/ClickHouse/ClickHouse/pull/108053) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a falha da table function `values` com `ARGUMENT_OUT_OF_BOUND` quando é usado um literal decimal que não pode ser representado exatamente em uma coluna de ponto flutuante estreita (como `0.1` para uma coluna `Float32`), por exemplo, `SELECT * FROM values('x Float32', 0.1)`. Esses valores agora são aceitos e convertidos para o valor representável mais próximo, de forma consistente com `CAST` e `INSERT ... VALUES`. [#108055](https://github.com/ClickHouse/ClickHouse/pull/108055) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido um `LOGICAL_ERROR` (`No available columns`) ao executar `SELECT count()` (ou outras consultas triviais) em uma tabela na qual o usuário recebeu acesso `SELECT` apenas a uma coluna `ALIAS`. [#108056](https://github.com/ClickHouse/ClickHouse/pull/108056) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido `mapFilter`, `mapSort` (e suas variantes) e `mapConcat`, que removiam `LowCardinality` dos tipos de chave e valor de um `Map`. Anteriormente, `mapFilter` sobre uma coluna `Map(LowCardinality(String), String)` retornava `Map(String, String)`, o que podia corromper os metadados de uma tabela criada por `CREATE TABLE ... AS SELECT` e fazer `CHECK TABLE` falhar. [#108057](https://github.com/ClickHouse/ClickHouse/pull/108057) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige resultados incorretos ao usar `hasToken` em text indexes com um tokenizer diferente de `splitByNonAlpha`. [#108066](https://github.com/ClickHouse/ClickHouse/pull/108066) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrigido um travamento de `SYSTEM RELOAD DICTIONARIES` (e `RELOAD DICTIONARY`) quando muitos dicionários MySQL definidos em XML compartilhavam um único pool de conexões por meio de `share_connection`. Esses pools agora respeitam `connection_pool_size` e `connection_wait_timeout` (padrão de 5 segundos) da configuração, em conformidade com dicionários definidos por named collections. [#108083](https://github.com/ClickHouse/ClickHouse/pull/108083) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permite `EXISTS <dictionary>` para um usuário que tem apenas o privilégio `SHOW DICTIONARIES` no dicionário (anteriormente exigia `SHOW TABLES`). [#108084](https://github.com/ClickHouse/ClickHouse/pull/108084) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido o caso em que `CREATE TABLE dst AS src SETTINGS ...` (e variantes semelhantes com `ORDER BY`/`PARTITION BY`, mas sem um `ENGINE` explícito) descartava silenciosamente o engine, as cláusulas de armazenamento (como `TTL` da tabela e chaves) e as configurações da tabela de origem. O engine e as cláusulas de armazenamento não sobrescritas agora são herdados da tabela de origem, e as configurações especificadas são mescladas às configurações da tabela de origem. [#108085](https://github.com/ClickHouse/ClickHouse/pull/108085) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a falha de `INSERT` em tabelas `MergeTree` com `filesystem error: in rename: Permission denied` em sistemas de arquivos baseados em Windows (WSL, CIFS/SMB, montagens bind do Docker Desktop), causada pelo gravador de partes deixar descritores de arquivo abertos durante a renomeação do diretório da partição. [#108089](https://github.com/ClickHouse/ClickHouse/pull/108089) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido um crash (desreferência de ponteiro nulo) ao executar uma consulta em uma tabela `Hive` sem cláusula `WHERE`, por exemplo `SELECT * FROM hive_table`. [#108094](https://github.com/ClickHouse/ClickHouse/pull/108094) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido um `LOGICAL_ERROR` ("Unexpected return type from if") ao ler uma coluna com `apply_mutations_on_fly = 1` após um `ALTER UPDATE col = ... WHERE <cond>` com uma condição não constante ou falsa, seguido de `ALTER MODIFY COLUMN col <new type>`. [#108128](https://github.com/ClickHouse/ClickHouse/pull/108128) ([Groene AI](https://github.com/groeneai)).
* Corrigidos `toStartOfInterval` e `dateTrunc`, que retornavam um valor arredondado em vez do início do intervalo correspondente quando a entrada tinha precisão mais fina do que a unidade do intervalo; por exemplo, `toStartOfInterval(toDateTime64('2023-10-09 10:11:12.000999', 6), INTERVAL 1 millisecond)` retornava `10:11:12.001` em vez de `10:11:12.000`. A sobrecarga com uma origem explícita também era afetada. Fecha [#103535](https://github.com/ClickHouse/ClickHouse/issues/103535). [#108186](https://github.com/ClickHouse/ClickHouse/pull/108186) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Oculta informações sensíveis na coluna `view_query` de `system.query_views_log`. [#108214](https://github.com/ClickHouse/ClickHouse/pull/108214) ([Valerii Mordovskii](https://github.com/Fidelaggio)).
* Corrigido um travamento em uma tabela `MergeTree` anexada com um skip index `hypothesis` legado (um tipo de índice removido mantido apenas para compatibilidade com `ATTACH`). Antes, um `DELETE` lightweight, `OPTIMIZE`, um `INSERT` simples ou um `SELECT` com filtro nessa tabela falhava com `ILLEGAL_INDEX` ("Index of type 'hypothesis' is no longer supported"), e a mutação `DELETE` era repetida indefinidamente. O índice obsoleto agora é tratado como inerte: é mantido intacto durante merge/mutation, ignorado no insert e no planejamento da consulta, e ainda pode ser removido com `ALTER TABLE ... DROP INDEX`. [#108217](https://github.com/ClickHouse/ClickHouse/pull/108217) ([Groene AI](https://github.com/groeneai)).
* Corrigida a configuração `type_json_allow_duplicated_key_with_literal_and_nested_object`, que não funcionava com caminhos tipados em `JSON`. [#108218](https://github.com/ClickHouse/ClickHouse/pull/108218) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrigido um `LOGICAL_ERROR` (`Different list of shards in child plans`) ao executar uma consulta com `make_distributed_plan = 1` em uma tabela `MergeTree` que tem uma projeção normal/agregada. [#108256](https://github.com/ClickHouse/ClickHouse/pull/108256) ([Groene AI](https://github.com/groeneai)).
* Corrigidos `replaceRegexpOne` e `replaceRegexpAll` para que `.` corresponda a caracteres de nova linha por padrão, de forma consistente com outras funções de expressão regular. [#108265](https://github.com/ClickHouse/ClickHouse/pull/108265) ([linjiayu1025-collab](https://github.com/linjiayu1025-collab)).
* Corrige um erro lógico ao converter um `Array(Dynamic)` ou `Array(Variant)` para `QBit` com `accurateCastOrNull`, por exemplo `accurateCastOrNull(CAST(range(114), 'Array(Dynamic)'), 'QBit(Float32, 114)')`. [#108288](https://github.com/ClickHouse/ClickHouse/pull/108288) ([Groene AI](https://github.com/groeneai)).
* `index_granularity_bytes` agora é respeitado para colunas de estado `AggregateFunction`. Antes, o limite de bytes do grânulo era ignorado para essas colunas (por exemplo, estados `uniqExact` em tabelas `AggregatingMergeTree` e projeções de agregação), produzindo grânulos muito maiores que o limite configurado e aumentando a amplificação de leitura e o uso de memória no momento da consulta. [#108297](https://github.com/ClickHouse/ClickHouse/pull/108297) ([Groene AI](https://github.com/groeneai)).
* Corrige a avaliação duplicada de condições de `UPDATE`/`DELETE` lightweight, o que poderia causar comportamento incorreto para condições não determinísticas e trabalho extra para as determinísticas. Fecha [#86032](https://github.com/ClickHouse/ClickHouse/issues/86032). [#108323](https://github.com/ClickHouse/ClickHouse/pull/108323) ([ofeliacode](https://github.com/ofeliacode)).
* Corrige uma exceção em um manipulador HTTP predefinido quando um cabeçalho cuja expressão regular `headers_regexp` permite um valor vazio está ausente da requisição. [#108324](https://github.com/ClickHouse/ClickHouse/pull/108324) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige `arrayPartialSort` com um argumento `limit` não constante. [#108327](https://github.com/ClickHouse/ClickHouse/pull/108327) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige um `INSERT` cancelado ou encerrado com `KILL` que continuava em execução por muito tempo ao construir um skip index (por exemplo, um índice `set(0)` sem limite em uma coluna de alta cardinalidade). A construção do índice agora é interrompida prontamente quando a consulta é cancelada. [#108351](https://github.com/ClickHouse/ClickHouse/pull/108351) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Corrige um `SELECT` da função de tabela `primes` que não respondia ao cancelamento: com um `step` grande (ou `limit`), a consulta podia continuar em execução por muito tempo após `KILL QUERY` ou um timeout. Agora ela para prontamente. [#108353](https://github.com/ClickHouse/ClickHouse/pull/108353) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Corrige a análise de nomes de tipos de dados que contêm a substring `INT` (por exemplo, um nome no estilo de função, como `quantileInterpolatedWeighted`, usado em uma posição de tipo de dado). Esses nomes eram confundidos com tipos inteiros do MySQL e tinham seu primeiro grupo de argumentos `(...)` silenciosamente consumido como modificador de largura de exibição, o que podia quebrar a ida e volta da formatação da consulta. [#108354](https://github.com/ClickHouse/ClickHouse/pull/108354) ([Groene AI](https://github.com/groeneai)).
* Corrige uma inconsistência em que um `ARRAY JOIN` malformado, seguido por uma vírgula e uma lista de tabelas entre parênteses, era interpretado incorretamente como um cross join, em vez de ser rejeitado. [#108365](https://github.com/ClickHouse/ClickHouse/pull/108365) ([Raúl Marín](https://github.com/Algunenano)).
* Oculta argumentos secretos de funções como `encrypt`, `decrypt` e `HMAC` na saída de `EXPLAIN actions`, `EXPLAIN header` e `EXPLAIN PIPELINE` quando `format_display_secrets_in_show_and_select` está desabilitado (o padrão). [#108386](https://github.com/ClickHouse/ClickHouse/pull/108386) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige `CREATE OR REPLACE` de uma view materializada atualizável com um destino `TO`: ele era rejeitado incorretamente porque a tabela de destino já pertence à view que está sendo substituída. [#108392](https://github.com/ClickHouse/ClickHouse/pull/108392) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrigido um crash do servidor (`Received signal 4`, instrução ilegal) que podia ser provocado por um fluxo malformado ou dessincronizado do protocolo TCP nativo. O endereço inicial fornecido pelo cliente agora é validado para garantir que seja um `host:port` numérico antes de ser analisado, em vez de permitir que uma porta não numérica chegue à função libc `getservbyname`, que gerava o trap. [#108410](https://github.com/ClickHouse/ClickHouse/pull/108410) ([Groene AI](https://github.com/groeneai)).
* Corrigido um crash do servidor durante o desligamento quando o desligamento de um banco de dados lança uma exceção (por exemplo, quando o flush de uma tabela atinge um timeout do ZooKeeper). O restante da sequência de desligamento não é mais ignorado, de modo que os logs do sistema são descarregados e suas threads são finalizadas antes de o servidor encerrar. [#108417](https://github.com/ClickHouse/ClickHouse/pull/108417) ([Groene AI](https://github.com/groeneai)).
* Corrigidas funções de expressão regular (`match`, `extract`, `extractAll`, `replaceRegexpOne`, `replaceRegexpAll`, etc.) que retornavam resultados incorretos silenciosamente quando o padrão continha um byte NUL (`\0`). O NUL agora é tratado como um byte literal comum, em conformidade com o RE2. [#108427](https://github.com/ClickHouse/ClickHouse/pull/108427) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido o `clickhouse-local`, que retornava uma resposta vazia a requisições HTTP `OPTIONS` quando nenhum `http_options_response` estava configurado, o que fazia a UI web (`/play`) mostrar a conexão como quebrada, embora as consultas funcionassem. [#108428](https://github.com/ClickHouse/ClickHouse/pull/108428) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida uma exceção `LOGICAL_ERROR` ("Invalid action query tree node ...") quando uma consulta distribuída tanto removia duplicatas de colunas `ALIAS` estruturalmente idênticas quanto referenciava uma função de tabela com um argumento de coleção nomeada `key = value` (por exemplo, `oss(s3_conn, filename = '...')`). [#108435](https://github.com/ClickHouse/ClickHouse/pull/108435) ([Groene AI](https://github.com/groeneai)).
* Corrigido um crash do servidor (`LOGICAL_ERROR: 'Unexpected exception in refresh scheduling'`) que podia acontecer na inicialização quando uma view materializada atualizável coordenada em um banco de dados `Replicated` era anexada a um Keeper que não oferece suporte à flag de recurso `MULTI_READ` (por exemplo, após um downgrade do Keeper). A view agora é interrompida de forma controlada em vez de abortar o servidor. [#108441](https://github.com/ClickHouse/ClickHouse/pull/108441) ([Groene AI](https://github.com/groeneai)).
* Corrigido o erro `NOT_FOUND_COLUMN_IN_BLOCK` (por exemplo, `Column _part not found`) ao selecionar colunas virtuais de uma tabela `MergeTree` com réplicas paralelas, incluindo via `SELECT *` com `asterisk_include_virtual_columns = 1`. [#108451](https://github.com/ClickHouse/ClickHouse/pull/108451) ([Groene AI](https://github.com/groeneai)).
* `SYSTEM RESET DDL WORKER` agora requer o novo privilégio `SYSTEM RESET DDL WORKER`. Antes, qualquer usuário autenticado (incluindo os `readonly`) podia executá-lo e redefinir repetidamente o estado do worker de DDL, bloqueando DDL `ON CLUSTER`. [#108460](https://github.com/ClickHouse/ClickHouse/pull/108460) ([Groene AI](https://github.com/groeneai)).
* Restrito o caminho do modelo de `catboostEvaluate` ao diretório `user_files`, assim como na função de tabela `file` e nas fontes de dicionário. Antes, a função aceitava um caminho arbitrário do sistema de arquivos sem verificação de contenção, o que permitia sondar a existência de arquivos fora de `user_files` e acionar leituras desses arquivos. Agora, os modelos devem estar localizados dentro de `user_files`. [#108463](https://github.com/ClickHouse/ClickHouse/pull/108463) ([Groene AI](https://github.com/groeneai)).
* A função `hasColumnInTable` agora requer o privilégio `SHOW COLUMNS` na tabela de destino, a mesma permissão exigida por `DESCRIBE` e `SHOW CREATE TABLE`. Antes, qualquer usuário podia chamar `hasColumnInTable` para sondar nomes de colunas e testar a existência de tabela e banco de dados sem qualquer verificação de acesso. [#108464](https://github.com/ClickHouse/ClickHouse/pull/108464) ([Groene AI](https://github.com/groeneai)).
* Corrigida a alocação excessiva de memória ao desserializar estados de funções de agregação especialmente construídos para `mannWhitneyUTest`, `rankCorr`, `largestTriangleThreeBuckets`, `quantileGK`, `sequenceMatch`/`sequenceCount` e `groupArrayIntersect`. Um estado malformado podia declarar uma quantidade enorme de elementos e fazer o servidor tentar alocar dezenas de gigabytes a partir de poucos bytes de entrada; esses estados agora são rejeitados com `TOO_LARGE_ARRAY_SIZE`. [#108465](https://github.com/ClickHouse/ClickHouse/pull/108465) ([Groene AI](https://github.com/groeneai)).
* Validado o destino do redirecionamento de uma resposta S3 `301 Moved Permanently` com base em `remote_url_allow_hosts` (`RemoteHostFilter`). Antes, o tratamento de 301 do AWS SDK seguia o endpoint fornecido pelo atacante na resposta (cabeçalho `Location` ou elemento `<Endpoint>`) sem verificar o host, de modo que um servidor compatível com S3 malicioso ou comprometido podia redirecionar o ClickHouse para um host arbitrário (SSRF). O caminho de redirecionamento 307 já fazia essa verificação; agora ambos os caminhos estão consistentes. [#108466](https://github.com/ClickHouse/ClickHouse/pull/108466) ([Groene AI](https://github.com/groeneai)).
* Corrigido um vazamento de credenciais em que as configurações legadas `storage_aws_access_key_id`, `storage_aws_secret_access_key`, `storage_catalog_credential` e `storage_auth_header` do mecanismo de banco de dados `DataLakeCatalog` eram exibidas em texto puro em `system.databases.engine_full` e `SHOW CREATE DATABASE`. Agora elas são ocultadas como `[HIDDEN]`. [#108470](https://github.com/ClickHouse/ClickHouse/pull/108470) ([Groene AI](https://github.com/groeneai)).
* Corrigida a identificação de usuário por `ssl_certificate` para que um único curinga `*` corresponda exatamente a um componente de nome (RFC 6125 6.4.3). Antes, um curinga em um sujeito SAN `CN` ou `DNS:` (por exemplo, `*.corp.example.com`) também correspondia a nomes com múltiplos rótulos, como `evil.deep.corp.example.com`, permitindo que o portador de um certificado para um subdomínio mais profundo se autenticassse como o usuário curinga. A correspondência de SAN `URI:` permanece inalterada. [#108472](https://github.com/ClickHouse/ClickHouse/pull/108472) ([Groene AI](https://github.com/groeneai)).
* Corrigida uma injeção de SQL no MySQL wire protocol: o argumento de `SHOW TABLE STATUS LIKE` e o valor de `SET <mysql_setting>` enviados pela MySQL interface (porta 9004) agora são analisados e colocados novamente entre aspas, em vez de serem concatenados literalmente na consulta reescrita. Também foi corrigido o fato de `KILL QUERY <id>` pela MySQL interface ignorar silenciosamente IDs de conexão com múltiplos dígitos. [#108474](https://github.com/ClickHouse/ClickHouse/pull/108474) ([Groene AI](https://github.com/groeneai)).
* Valores sensíveis passados como parâmetros da query string HTTP (por exemplo, o binding de parâmetro de consulta `param_*`, como `param_secret_key`/`param_aws_secret_access_key`, o parâmetro `password` ou parâmetros `signature` no estilo S3) não são mais gravados literalmente em `system.text_log` ou em spans do OpenTelemetry. A linha de log `Request URI` agora oculta os valores de parâmetros cujos nomes parecem sensíveis, substituindo-os por `[HIDDEN]`. [#108475](https://github.com/ClickHouse/ClickHouse/pull/108475) ([Groene AI](https://github.com/groeneai)).
* Passou a ser aplicada a configuração `http_forbid_headers` durante a inferência de esquema para a table function `url` e o motor de armazenamento `URL`. Antes, um header proibido ainda era enviado pela rede durante a inferência de esquema (por exemplo, com o formato `Regexp` ou `DESCRIBE`), e seu corpo da resposta podia ser refletido de volta em um erro de análise, vazando segredos. O filtro de header agora é verificado antes de qualquer acesso à rede no caminho de inferência, em conformidade com o comportamento já existente de `urlCluster`. [#108476](https://github.com/ClickHouse/ClickHouse/pull/108476) ([Groene AI](https://github.com/groeneai)).
* Corrigidos resultados incorretos ao usar `SELECT ... SAMPLE ...` junto com o cache de condições de consulta (configuração `use_query_condition_cache`, habilitada por padrão). [#108488](https://github.com/ClickHouse/ClickHouse/pull/108488) ([Groene AI](https://github.com/groeneai)).
* Corrigida uma falha do servidor (stack overflow) causada por expressões profundamente aninhadas, como `[[[ ... ]]]` ou `array(array( ... ))`, quando `max_parser_depth` é definido com um valor alto. [#108493](https://github.com/ClickHouse/ClickHouse/pull/108493) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigido um problema em que o mecanismo de tabela `RabbitMQ` podia ficar bloqueado indefinidamente em `DROP TABLE` ou durante o desligamento do servidor quando o broker fechava a conexão AMQP devido à perda de heartbeats sem enviar um TCP RST. Agora, todas as chamadas bloqueantes do loop de eventos têm timeout de 30 segundos, para que o desligamento sempre seja concluído. [#108497](https://github.com/ClickHouse/ClickHouse/pull/108497) ([Aly Ayman](https://github.com/alyelmorsy-dataengineer)).
* Consultas secundárias executadas como parte de consultas internas agora serão registradas como consultas internas. [#108506](https://github.com/ClickHouse/ClickHouse/pull/108506) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* O mecanismo de tabela `ArrowFlight` e a função de tabela `arrowFlight` agora respeitam a lista de permissões `<remote_url_allow_hosts>`. Antes, o host e a porta da conexão não eram validados, então uma consulta podia alcançar hosts que não estavam na lista de permissões. [#108507](https://github.com/ClickHouse/ClickHouse/pull/108507) ([Groene AI](https://github.com/groeneai)).
* Os comandos do MySQL wire protocol `COM_FIELD_LIST` (`mysql_list_fields`) e `COM_INIT_DB` (`USE database`) agora aplicam o mesmo controle de acesso que seus equivalentes em SQL (`SHOW COLUMNS`/`DESCRIBE` e `USE`). Antes, eles podiam expor nomes de colunas de tabelas nas quais o usuário tinha apenas permissões parciais em colunas e trocar o banco de dados atual sem o privilégio `SHOW DATABASES`. [#108508](https://github.com/ClickHouse/ClickHouse/pull/108508) ([Groene AI](https://github.com/groeneai)).
* A correspondência de `http_forbid_headers` agora não diferencia maiúsculas de minúsculas. Nomes de HTTP header não diferenciam maiúsculas de minúsculas, então proibir `Authorization` agora também bloqueia `authorization`, `AUTHORIZATION` e outras variações de capitalização. Os padrões configurados de `header_regexp` agora são correspondidos sem diferenciar maiúsculas de minúsculas, sem necessidade de uma flag `(?i)` explícita. [#108509](https://github.com/ClickHouse/ClickHouse/pull/108509) ([Groene AI](https://github.com/groeneai)).
* Corrigida uma falha do servidor (falha de segmentação) que podia ocorrer quando uma consulta distribuída referenciava um CTE `MATERIALIZED` ainda não materializado como tabela externa e a origem remota era criada sob demanda. [#108547](https://github.com/ClickHouse/ClickHouse/pull/108547) ([Groene AI](https://github.com/groeneai)).
* Corrigidos resultados incorretos quando o cache de condições de consulta (`use_query_condition_cache = 1`) reutilizava uma exclusão de marcas derivada de skip index para uma consulta que executava um conjunto diferente de skip indexes, por exemplo com `use_skip_indexes = 0`, `ignore_data_skipping_indices` ou um modo diferente de `use_skip_indexes_for_disjunctions`. As entradas de cache derivadas de skip index agora são indexadas pelo conjunto efetivo de skip indexes executado. [#108548](https://github.com/ClickHouse/ClickHouse/pull/108548) ([Groene AI](https://github.com/groeneai)).
* Corrigidos vários bugs em `changeYear`, `changeMonth`, `changeDay`, `changeHour`, `changeMinute` e `changeSecond` com argumentos `DateTime64`: a coluna de resultado era criada com a escala padrão 3 codificada em vez da escala do argumento, o que levava a um `LOGICAL_ERROR` (`writeSlice expects same column types`) quando o resultado era passado para `arrayPushBack`/`arrayPushFront`/`arrayConcat`; entradas com precisão de nanossegundos (escala 9) geravam `DECIMAL_OVERFLOW`; e entradas subsegundo anteriores à epoch retornavam o segundo de calendário incorreto. Também foi corrigido o `timeSlots` sobre `DateTime64`, que ignorava a escala do argumento opcional `Size` em seu tipo de retorno declarado e retornava timestamps incorretos para a maior escala em `Size`. [#108551](https://github.com/ClickHouse/ClickHouse/pull/108551) ([Groene AI](https://github.com/groeneai)). [#108681](https://github.com/ClickHouse/ClickHouse/pull/108681) ([Takumi Hara](https://github.com/takumihara)). [#108994](https://github.com/ClickHouse/ClickHouse/pull/108994) ([Groene AI](https://github.com/groeneai)).
* Corrige o erro `NOT_FOUND_COLUMN_IN_BLOCK` quando um predicado composto recebe um alias em `GROUP BY` e é referenciado novamente, com `enable_identifier_resolve_cache` habilitado (padrão). [#108553](https://github.com/ClickHouse/ClickHouse/pull/108553) ([Groene AI](https://github.com/groeneai)).
* Corrige um erro lógico (`Equal values are not contiguous within the range assumed to be sorted`) ao executar `DISTINCT` em uma leitura `STREAM` (`SELECT DISTINCT ... FROM table STREAM`). As otimizações de leitura em ordem não são mais aplicadas a leituras `STREAM`, que produzem linhas na ordem de commit, e não na ordem da chave de ordenação. [#108568](https://github.com/ClickHouse/ClickHouse/pull/108568) ([Groene AI](https://github.com/groeneai)).
* Corrige projeções que retornavam o valor padrão do tipo de uma coluna (por exemplo, `0`) em vez do valor `DEFAULT` declarado (por exemplo, `-1`) em dois casos: ao ler uma coluna adicionada com `ALTER TABLE ... ADD COLUMN ... DEFAULT` após a criação da projeção (as leituras da tabela base já estavam corretas) e após o `TTL` da coluna expirar em uma Wide part. [#108569](https://github.com/ClickHouse/ClickHouse/pull/108569) ([Shaohua Wang](https://github.com/tiandiwonder)). [#109013](https://github.com/ClickHouse/ClickHouse/pull/109013) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Corrige um erro `ReadBuffer is canceled. Can't read from it.` que podia ocorrer quando um upload para o S3 (por exemplo, de um backup) era repetido após um erro transitório de leitura. [#108573](https://github.com/ClickHouse/ClickHouse/pull/108573) ([Groene AI](https://github.com/groeneai)).
* Corrige `ATTACH PARTITION ... FROM` rejeitando tabelas cujas chaves primárias são equivalentes, mas declaradas de forma diferente (uma com `PRIMARY KEY` explícita, a outra implícita a partir de `ORDER BY`). [#108590](https://github.com/ClickHouse/ClickHouse/pull/108590) ([Jordi Orihuela](https://github.com/jordiori)).
* Corrige falha na leitura direta do índice de texto quando vários índices de texto estão parcialmente materializados. Corrige [#108530](https://github.com/ClickHouse/ClickHouse/issues/108530). [#108607](https://github.com/ClickHouse/ClickHouse/pull/108607) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige uma exposição de metadados em que `DESCRIBE loop('db', 'table')` e `DESCRIBE loop(<inner table function>)` contornavam a verificação de acesso à origem / `SHOW COLUMNS`, permitindo que um usuário sem privilégios lesse o esquema de colunas de uma tabela. [#108624](https://github.com/ClickHouse/ClickHouse/pull/108624) ([Groene AI](https://github.com/groeneai)).
* Corrige a coluna virtual `_etag` dos motores de tabela `S3Queue` e `AzureQueue`: ela era declarada, mas nunca preenchida, então `SELECT _etag` sempre retornava uma string vazia. Agora, ela retorna o ETag do objeto, assim como o motor `S3` e a table function `s3`. [#108625](https://github.com/ClickHouse/ClickHouse/pull/108625) ([Groene AI](https://github.com/groeneai)).
* Corrige a leitura de arquivos `Arrow`, `ArrowStream` e `ORC` baseados em Arrow cuja coluna de timestamp usa um deslocamento UTC numérico fixo (por exemplo, `+05:30`, `-08:00`, `00:00`) ou o marcador não IANA `fixed` como timezone, o que antes falhava com `Cannot load time zone ...` (`BAD_ARGUMENTS`). [#108633](https://github.com/ClickHouse/ClickHouse/pull/108633) ([Groene AI](https://github.com/groeneai)).
* Corrige uma exceção (`LOGICAL_ERROR: Join is supported only for pipelines with one output port` ou `NOT_IMPLEMENTED: MergeJoinAlgorithm is not implemented for strictness Semi`) quando `join_algorithm = 'full_sorting_merge'` era usado para um join `SEMI`/`ANTI`, incluindo joins produzidos pela decorrelação de uma subconsulta correlacionada `EXISTS`. `full_sorting_merge` agora rejeita combinações de strictness/tipo que não consegue executar, para que o planejador recorra a outro algoritmo habilitado ou informe que o join não pode ser executado. [#108658](https://github.com/ClickHouse/ClickHouse/pull/108658) ([Groene AI](https://github.com/groeneai)).
* Corrigido um heap buffer overflow ao construir um índice de texto com `positions = 1` sobre muitos tokens curtos distintos. [#108659](https://github.com/ClickHouse/ClickHouse/pull/108659) ([Groene AI](https://github.com/groeneai)).
* Uma consulta que lê de ou grava em S3 e é cancelada (por exemplo, por `KILL QUERY`) enquanto uma solicitação ao S3 está em andamento agora é reportada como cancelada, em vez de retornar um erro de rede/S3 enganoso. Em particular, um backup ou restore para S3 cancelado agora reporta `BACKUP_CANCELLED`/`RESTORE_CANCELLED` em `system.backups`. [#108673](https://github.com/ClickHouse/ClickHouse/pull/108673) ([Julia Kartseva](https://github.com/jkartseva)).
* Corrigida uma falha de inicialização em que um database `DataLakeCatalog` criado por uma versão mais antiga (25.12 ou anterior) com um `auth_header` malformado não podia ser anexado após a atualização para 26.2 ou posterior, impedindo o servidor de iniciar. O `auth_header` agora é validado apenas em `CREATE`, e em `ATTACH` o catálogo passa a ser construído de forma lazy no primeiro uso, em vez de durante a inicialização, de modo que um único database de catálogo mal configurado ou inacessível não bloqueie mais a inicialização do servidor. [#108674](https://github.com/ClickHouse/ClickHouse/pull/108674) ([Groene AI](https://github.com/groeneai)).
* Corrigido um erro lógico (`Sort order of blocks violated`) durante uma mesclagem, além de leituras incorretas, quando um elemento `LowCardinality` não anulável de uma coluna `Nullable(Tuple(...))` é usado como subcoluna (por exemplo, como chave de ordenação). [#108679](https://github.com/ClickHouse/ClickHouse/pull/108679) ([Groene AI](https://github.com/groeneai)).
* Corrigida uma possível falha (use-after-free) quando `SYSTEM FLUSH DISTRIBUTED` é executado concorrentemente com `DROP TABLE` da mesma tabela `Distributed`. [#108684](https://github.com/ClickHouse/ClickHouse/pull/108684) ([Groene AI](https://github.com/groeneai)).
* Corrigida uma falha na decodificação em Base64 da chave da conta do Azure, acessível via `azureBlobStorage` (e funções de tabela e storages relacionadas do Azure) quando a chave não é um Base64 válido: um byte `>= 0x80` causava uma leitura fora dos limites, e qualquer byte inválido causava comportamento indefinido. Chaves inválidas agora são rejeitadas corretamente. [#108716](https://github.com/ClickHouse/ClickHouse/pull/108716) ([Groene AI](https://github.com/groeneai)).
* Corrigido o erro `NUMBER_OF_COLUMNS_DOESNT_MATCH` quando uma subconsulta sobre uma tabela `Distributed` lê duas ou mais colunas `ALIAS` que se expandem para a mesma expressão (por exemplo, `a1 String ALIAS toString(x), a2 String ALIAS toString(x)`) e a subconsulta alimenta uma consulta externa, por exemplo `SELECT count() FROM (SELECT a1, a2 FROM dist GROUP BY a1, a2)`. [#108725](https://github.com/ClickHouse/ClickHouse/pull/108725) ([Groene AI](https://github.com/groeneai)).
* Corrigido `CREATE OR REPLACE MATERIALIZED VIEW ... POPULATE`, que fazia com que a nova visão materializada ficasse sem se inscrever na tabela de origem, descartando silenciosamente todas as linhas inseridas após a substituição. [#108728](https://github.com/ClickHouse/ClickHouse/pull/108728) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida uma exceção (`Cannot find sharding key column`, e em compilações de debug e com sanitizer um abort do servidor) quando a chave de sharding de uma tabela `Distributed` é uma expressão que o analyzer reduz a uma constante, por exemplo `if(1, toInt32(id), toInt32(id) + 1)`, com `optimize_skip_unused_shards = 1`. [#108737](https://github.com/ClickHouse/ClickHouse/pull/108737) ([Groene AI](https://github.com/groeneai)).
* Corrigido um erro lógico (`Bad cast from type DB::ColumnNullable to DB::ColumnString`) e possíveis resultados incorretos ao usar `group_by_use_nulls` com uma chave de agrupamento constante `LowCardinality` em `GROUPING SETS`/`ROLLUP`/`CUBE`. [#108771](https://github.com/ClickHouse/ClickHouse/pull/108771) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a desativação silenciosa da poda de partição e de chave primária quando uma coluna-chave `LowCardinality(FixedString)` (ou `LowCardinality(Nullable(FixedString))`) é encapsulada em uma função na chave, por exemplo `PARTITION BY sipHash64(k) % N` com `WHERE k = 'literal'`. Essas consultas examinavam todas as partições em vez de podá-las. [#108777](https://github.com/ClickHouse/ClickHouse/pull/108777) ([Groene AI](https://github.com/groeneai)).
* Corrigido um logical error (aborto do servidor em compilações de debug e sanitizer) quando um `INSERT ... SELECT` por meio de uma tabela `Alias`, ou em uma tabela `TimeSeries`, é cancelado sem exceção, por exemplo com `timeout_overflow_mode = 'break'`. [#108783](https://github.com/ClickHouse/ClickHouse/pull/108783) ([Groene AI](https://github.com/groeneai)). [#108796](https://github.com/ClickHouse/ClickHouse/pull/108796) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Corrige um logical error `Bad cast from type DB::ColumnSparse to DB::ColumnString` (aborto do servidor em compilações de debug e sanitizer) quando `groupConcat` é aplicado a uma `Tuple` cujo elemento `String` é armazenado de forma esparsa. [#108790](https://github.com/ClickHouse/ClickHouse/pull/108790) ([Groene AI](https://github.com/groeneai)).
* Corrige `TYPE_MISMATCH` em `mapFilter`, `mapSort`, `mapReverseSort`, `mapPartialSort` e `mapConcat` quando um valor `Map` contém um `Map` aninhado com `LowCardinality`, por exemplo `mapFilter((k, v) -> 1, map('a'::LowCardinality(String), map('x'::LowCardinality(String), 'y')))`. [#108798](https://github.com/ClickHouse/ClickHouse/pull/108798) ([Groene AI](https://github.com/groeneai)).
* Corrigido o fato de `insert_quorum = 'auto'` não rejeitar inserts de imediato quando menos da maioria das réplicas estava ativa. Esses inserts agora falham imediatamente com `TOO_FEW_LIVE_REPLICAS` em vez de gravar uma partição local e depois expirar com `UNKNOWN_STATUS_OF_INSERT`. [#108800](https://github.com/ClickHouse/ClickHouse/pull/108800) ([Gagan Dhakrey](https://github.com/gagandhakrey)).
* Corrigido um bug em que a linha `WITH TOTALS` de um `JOIN` podia conter valores padrão (como `0`) em vez dos valores constantes vindos de uma subconsulta constante em um dos lados do join. O resultado incorreto aparecia apenas em algumas ordenações de join ou com a configuração `query_plan_join_swap_table`. [#108807](https://github.com/ClickHouse/ClickHouse/pull/108807) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrigida uma falha de segmentação (desreferenciamento de ponteiro nulo) que podia ocorrer quando o desligamento do servidor acontecia concorrentemente com o desligamento de uma tabela `S3Queue`/`AzureQueue`. [#108810](https://github.com/ClickHouse/ClickHouse/pull/108810) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrigido um aborto na inicialização (`Cannot allocate ThreadStack`, `EINVAL`) em compilações com glibc executadas em CPUs com pilha de sinal muito grande (por exemplo, Intel Sapphire Rapids / Granite Rapids com um kernel compatível com AMX), em que o tamanho da pilha alternativa de sinal não era arredondado para um múltiplo do tamanho da página. [#108813](https://github.com/ClickHouse/ClickHouse/pull/108813) ([Groene AI](https://github.com/groeneai)).
* Corrige consultas distribuídas que ocasionalmente falhavam com `UNEXPECTED_PACKET_FROM_SERVER` (`expected TablesStatusResponse, got ProfileInfo`) quando uma conexão deixada fora de sincronia por uma consulta cancelada anteriormente era reutilizada do pool. [#108854](https://github.com/ClickHouse/ClickHouse/pull/108854) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido um erro lógico (uma exceção em compilações de release e um abortamento do servidor em compilações de debug e com sanitizer) que podia ocorrer em uma chamada de função com mais de um argumento `LowCardinality` em uma tabela distribuída, por exemplo `concatAssumeInjective((SELECT toLowCardinality('p')), s)` usado como chave de `GROUP BY` com a função de tabela `remote`. As mensagens eram `Default functions implementation for LowCardinality is supported only with a single LowCardinality argument` ou `Expected the argument ... to have N rows, but it has M`. [#108871](https://github.com/ClickHouse/ClickHouse/pull/108871) ([Groene AI](https://github.com/groeneai)).
* Corrigido `reinterpret(x, 'Decimal128(scale)')` (e destinos `Decimal32`/`Decimal64`/`Decimal256`/`DateTime64`), que produzia uma coluna de resultado cuja escala interna era a escala de origem, em vez da escala de destino solicitada, quando a origem e o destino tinham o mesmo tipo físico. Os valores estavam corretos, mas o objeto da coluna era estruturalmente inconsistente com seu tipo declarado. [#108878](https://github.com/ClickHouse/ClickHouse/pull/108878) ([Groene AI](https://github.com/groeneai)).
* Corrigido um `LOGICAL_ERROR` (`New empty part is about to materialize but the directory already exist`) que podia abortar o servidor em compilações de debug e com sanitizer quando um `DROP`/`DETACH`/`MOVE`/`REPLACE PARTITION` em uma tabela `MergeTree` era executado após uma operação anterior desse tipo ter sido interrompida (por exemplo, por uma transação revertida ou uma falha) e ter deixado para trás um diretório `tmp_empty_<part>` obsoleto. O diretório obsoleto agora é reaproveitado em vez de causar falha. [#108879](https://github.com/ClickHouse/ClickHouse/pull/108879) ([Groene AI](https://github.com/groeneai)).
* Corrigido o ClickHouse Keeper retornando `dataLength = 0` incorreto no `Stat` de respostas `Create2`, e o cliente ClickHouse ZooKeeper não desserializando o `Stat` das respostas `Create2`. [#108909](https://github.com/ClickHouse/ClickHouse/pull/108909) ([unintended](https://github.com/unintended)).
* Corrigido o `clickhouse-local`, que rejeitava um valor de opção vazio escrito junto de `=` (por exemplo `--format_csv_null_representation=''`); agora ele se comporta da mesma forma que `--format_csv_null_representation ""` e `SET format_csv_null_representation = ''`. [#108910](https://github.com/ClickHouse/ClickHouse/pull/108910) ([Vismay](https://github.com/vismaytiwari)).
* Corrigido um `LOGICAL_ERROR` (`Inconsistent AST formatting`) que abortava o servidor em compilações de debug e com sanitizer ao formatar um tipo de dado `Tuple` que mistura elementos nomeados e não nomeados (por exemplo `Tuple(a UInt8, UInt16)`). [#108915](https://github.com/ClickHouse/ClickHouse/pull/108915) ([Groene AI](https://github.com/groeneai)).
* Corrigida uma falha de segmentação ao mesclar aggregate states de `uniqExact` com `GROUPING SETS`, `ROLLUP` ou `CUBE` e `max_threads > 1`. [#108928](https://github.com/ClickHouse/ClickHouse/pull/108928) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigidos possíveis resultados incorretos ou leituras fora dos limites quando um `INSERT` é revertido após um erro no meio do lote (por exemplo, em tabelas `Buffer`, inserções assíncronas ou nos engines `Kafka`/`RabbitMQ`/`FileLog`) enquanto a replicação lazy de colunas (`enable_lazy_columns_replication`) está em vigor. [#108935](https://github.com/ClickHouse/ClickHouse/pull/108935) ([Groene AI](https://github.com/groeneai)).
* `join_any_take_last_row` agora é respeitado por todos os caminhos de join baseados em hash compatíveis, incluindo joins que usam spilling automático para disco. [#108936](https://github.com/ClickHouse/ClickHouse/pull/108936) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrigido um bug no analisador em que `FINAL` em uma tabela de um `JOIN` (por exemplo `FROM t1 FINAL JOIN t2`) era aplicado incorretamente também às outras tabelas do `JOIN`, o que podia tornar essas consultas mais lentas. [#108979](https://github.com/ClickHouse/ClickHouse/pull/108979) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige um `LOGICAL_ERROR` ("Cannot find `__grouping_set` column in header of MergingAggregatedTransform with grouping sets" ou "Chunk info was not set for chunk in MergingAggregatedTransform") que podia ocorrer, com o analyzer desabilitado, em um `UNION ALL`/`INTERSECT`/`EXCEPT` no qual um ramo usa `GROUP BY GROUPING SETS` com réplicas em paralelo e outro usa `FINAL`. [#109003](https://github.com/ClickHouse/ClickHouse/pull/109003) ([Groene AI](https://github.com/groeneai)).
* Corrigido um `LOGICAL_ERROR` no planejador automático de réplicas em paralelo que podia ocorrer quando `automatic_parallel_replicas_mode` está habilitado junto com `parallel_replicas_min_number_of_rows_per_replica` maior que 0. [#109011](https://github.com/ClickHouse/ClickHouse/pull/109011) ([Groene AI](https://github.com/groeneai)).
* Corrigida uma alocação excessiva de memória durante a inferência de esquema do formato `MsgPack`: uma entrada corrompida cujo cabeçalho de array/mapa/string/binário declara uma quantidade enorme de elementos não provoca mais uma única alocação de vários gigabytes e passa a ser rejeitada como entrada malformada. Isso corrige uma condição de falta de memória em compilações de release (e um abort `allocation-size-too-big` com sanitizers). [#109019](https://github.com/ClickHouse/ClickHouse/pull/109019) ([Groene AI](https://github.com/groeneai)).
* Corrigido o fato de `use_client_time_zone` ser ignorado para literais de string `DateTime`/`DateTime64` interpretados no servidor (`INSERT` assíncrono, literais em `SELECT`). O client agora propaga seu fuso horário local como `session_timezone` quando `use_client_time_zone` está habilitado, para que a análise no servidor corresponda ao caminho síncrono de `INSERT`. [#109051](https://github.com/ClickHouse/ClickHouse/pull/109051) ([Groene AI](https://github.com/groeneai)).
* Corrige o erro `NOT_FOUND_COLUMN_IN_BLOCK` quando `query_plan_optimize_lazy_final` está habilitado junto com um filtro `WHERE` parcialmente enviado para `PREWHERE` (via `optimize_move_to_prewhere_if_final`). [#109073](https://github.com/ClickHouse/ClickHouse/pull/109073) ([Groene AI](https://github.com/groeneai)).
* Corrigido um erro ao usar um asterisco qualificado como `b.*` em uma consulta em que `b` é um alias de tabela (ou subconsulta/CTE) que compartilha o nome com uma coluna não composta de outra tabela. Essas consultas não falham mais e agora selecionam corretamente todas as colunas de `b`. [#109078](https://github.com/ClickHouse/ClickHouse/pull/109078) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige um erro lógico `Block structure mismatch in JoinStep` (um abort do servidor em compilações de debug e sanitizer) quando uma subconsulta correlacionada é descorrelacionada em um join e a relação de origem contém o mesmo nome de coluna mais de uma vez, por exemplo, `WITH t AS (SELECT number, * FROM numbers(3)) SELECT *, (SELECT t.number WHERE t.number >= 0) FROM t` com `correlated_subqueries_default_join_kind = 'right'`. [#109114](https://github.com/ClickHouse/ClickHouse/pull/109114) ([Groene AI](https://github.com/groeneai)).
* Corrigido um travamento em que uma consulta lendo por meio do filesystem cache podia continuar aguardando um download em andamento após ser cancelada com `KILL QUERY`, e em que remover ou executar `SYSTEM STOP VIEW` em uma view materializada atualizável cuja atualização estivesse presa nessa espera causava bloqueio. [#109116](https://github.com/ClickHouse/ClickHouse/pull/109116) ([Murphy](https://github.com/murphy-4o)).
* Corrigido o fato de a configuração `parallel_view_processing` ser ignorada ao inserir em uma tabela com visões materializadas — desde a 25.10, as views sempre eram executadas em paralelo, independentemente da configuração. [#109170](https://github.com/ClickHouse/ClickHouse/pull/109170) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigida uma inconsistência no parser em que uma lista de colunas de `INSERT` aceitava um correspondedor de colunas qualificado escrito como `t.* LIKE '<pattern>'` / `t.* ILIKE '<pattern>'`, mas rejeitava sua forma canônica `t.COLUMNS('<regexp>')`, quebrando o round-trip do formato da consulta (e abortando o servidor em compilações de debug e sanitizer). [#109176](https://github.com/ClickHouse/ClickHouse/pull/109176) ([Groene AI](https://github.com/groeneai)).
* Corrigidos incrementos não monotônicos de `ProfileEvents`: os contadores `NetworkReceiveBytes` e `AIOWriteBytes` podiam ser incrementados em uma quantidade negativa (fazendo wraparound para um valor enorme) em caso de timeout de socket ou falha de AIO, e `MemoryOvercommitWaitTimeMicroseconds` era medido com um relógio não monotônico. [#109180](https://github.com/ClickHouse/ClickHouse/pull/109180) ([Azat Khuzhin](https://github.com/azat)).
* Corrige a inferência de esquema nos formatos `Arrow`, `ArrowStream`, `Avro` e nos leitores legados de `ORC` e `Parquet`, que retornavam `Nullable(Tuple)` para colunas struct anuláveis, embora o tipo `Nullable(Tuple)` não seja permitido (`allow_experimental_nullable_tuple_type` está desabilitado). `DESCRIBE` retornava um tipo que `CREATE TABLE` rejeita, então a criação de tabelas ou a inserção de dados usando o esquema inferido falhava com o erro `Nullable Tuple type is not allowed`. [#109185](https://github.com/ClickHouse/ClickHouse/pull/109185) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrigido um resultado incorreto de `EXISTS` correlacionado e de subconsultas escalares quando a correlação aparece apenas na projeção da subconsulta, junto com uma cláusula `WHERE` não correlacionada (a subconsulta podia ser avaliada como false / `NULL` para todas as linhas). Corrige [#105760](https://github.com/ClickHouse/ClickHouse/issues/105760). [#109186](https://github.com/ClickHouse/ClickHouse/pull/109186) ([Dmitry Novik](https://github.com/novikd)).
* Corrigido `CREATE USER ... HOST LIKE 'a', 'b'` (e o `ALTER USER` equivalente), que silenciosamente mantinha apenas o primeiro pattern. Todos os patterns `HOST LIKE` especificados agora são armazenados na lista de hosts permitidos do usuário. [#109187](https://github.com/ClickHouse/ClickHouse/pull/109187) ([Groene AI](https://github.com/groeneai)).
* Corrigido um text index definido em `mapValues(map)` ou `mapKeys(map)` que silenciosamente deixava de ser usado quando uma tabela era consultada por meio de uma tabela com engine `Distributed` usando o analyzer. O índice era usado para a tabela local e via as table functions `cluster`/`remote`, mas uma consulta por meio de uma tabela com engine `Distributed` o ignorava (e falhava com `INDEX_NOT_USED` sob `force_data_skipping_indices`). [#109188](https://github.com/ClickHouse/ClickHouse/pull/109188) ([Groene AI](https://github.com/groeneai)).
* Corrigido um `LOGICAL_ERROR` falso (`There was an error on <host>: Cannot obtain error message (probably it's a bug)`) que podia abortar o servidor em builds de debug e sanitizer ao executar uma consulta DDL em um banco de dados `Replicated`, quando o nó de status `finished` por host no Keeper já havia sido limpo. [#109192](https://github.com/ClickHouse/ClickHouse/pull/109192) ([Groene AI](https://github.com/groeneai)).
* Corrige proporções de `SAMPLE` com um expoente cuja magnitude estoura `Int32` (por exemplo, `SAMPLE 1e-3000000000`) e que eram silenciosamente tratadas como `SAMPLE 1`. [#109197](https://github.com/ClickHouse/ClickHouse/pull/109197) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige a verificação de acesso para `SYSTEM PREWARM PRIMARY INDEX CACHE ... ON CLUSTER`, que incorretamente exigia o privilégio `SYSTEM PREWARM MARK CACHE` em vez de `SYSTEM PREWARM PRIMARY INDEX CACHE`. [#109198](https://github.com/ClickHouse/ClickHouse/pull/109198) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigidas falhas em consultas `ALTER` para tabelas `MergeTree` criadas com uma configuração `disk` personalizada (`SETTINGS disk = disk(...)`). Corrige [#63019](https://github.com/ClickHouse/ClickHouse/issues/63019). [#109199](https://github.com/ClickHouse/ClickHouse/pull/109199) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Corrigida uma falha do servidor quando estados de funções de agregação `cramersV`, `cramersVBiasCorrected`, `contingency` ou `theilsU` de um contexto de janela (`OVER ()`) e de uma agregação simples são combinados por meio de operações de conjunto encadeadas (`EXCEPT`, `INTERSECT`) ou de `UNION ALL` aninhado e depois lidos, por exemplo, pelo combinador `-Merge`. [#109200](https://github.com/ClickHouse/ClickHouse/pull/109200) ([Groene AI](https://github.com/groeneai)).
* Corrige um resultado incorreto para `ANY JOIN` com uma condição `ON` constante (por exemplo, `t1 ANY INNER JOIN t2 ON 1`): a consulta retornava o produto cartesiano completo em vez do resultado de `ANY JOIN`. [#109207](https://github.com/ClickHouse/ClickHouse/pull/109207) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrigida uma falha do servidor em insert assíncrono com desduplicação quando `optimize_on_insert` faz com que o bloco inserido fique vazio (por exemplo, linhas cuja soma é zero em `SummingMergeTree`). [#109229](https://github.com/ClickHouse/ClickHouse/pull/109229) ([Den Kalantaevskii](https://github.com/Diskein)).
* Corrige `SYSTEM DROP REPLICA` e `SYSTEM DROP DATABASE REPLICA ... FROM ZKPATH` para rejeitar caminhos do ZooKeeper vazios ou apenas com a raiz no momento da análise com `BAD_ARGUMENTS`, direcionar caminhos auxiliares do Keeper para o Keeper nomeado e canonizar caminhos do Keeper para que as verificações locais de autoproteção não apontem para a réplica errada nem contornem a réplica pretendida. [#109230](https://github.com/ClickHouse/ClickHouse/pull/109230) ([Groene AI](https://github.com/groeneai)).
* Corrige a prioridade das configurações de S3 para que um bloco de endpoint `<s3>` com escopo de URL tenha precedência sobre os padrões `<s3>` de nível superior. [#109251](https://github.com/ClickHouse/ClickHouse/pull/109251) ([Bharat Nallan](https://github.com/bharatnc)).
* Corrigido um bug em que valores `DEFAULT` de coluna não eram aplicados a `INSERT INTO TABLE FUNCTION` (por exemplo, `remote` ou `file`) com dados `VALUES` inline quando o servidor analisa os próprios dados inline (`send_table_structure_on_insert_with_inline_data = 0`). Um `NULL` explícito inserido em uma coluna não `Nullable` com `DEFAULT` passava a ser `0` em vez do valor padrão declarado. Agora, o comportamento é igual ao de um `INSERT` em tabela comum e ao do protocolo HTTP. [#109258](https://github.com/ClickHouse/ClickHouse/pull/109258) ([Groene AI](https://github.com/groeneai)).
* Corrige a falha de `CREATE TABLE ... AS SELECT` a partir de `s3Cluster` (e de outras cluster table functions, como `fileCluster`/`urlCluster`) com `NOT_FOUND_COLUMN_IN_BLOCK` dentro de um database `Replicated`. [#109266](https://github.com/ClickHouse/ClickHouse/pull/109266) ([Groene AI](https://github.com/groeneai)).
* Corrigido `SHOW TABLES` e `SELECT ... FROM system.tables` retornando resultados diferentes para databases do catálogo do lago de dados: tabelas que o ClickHouse não consegue ler agora são ocultadas de forma consistente em ambos. [#109273](https://github.com/ClickHouse/ClickHouse/pull/109273) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Corrigido um bug em que a mesclagem de uma table `MergeTree` com projeções, enquanto a configuração `enable_block_number_column` ou `enable_block_offset_column` está habilitada, produzia projection parts contendo uma coluna `_block_number`/`_block_offset` espúria. A projection part mesclada então deixava de corresponder à definição da projeção e às projection parts produzidas por insert, de modo que `CHECK TABLE` e `OPTIMIZE ... DRY RUN` a reportavam como corrompida (`CORRUPTED_DATA`). [#109284](https://github.com/ClickHouse/ClickHouse/pull/109284) ([Groene AI](https://github.com/groeneai)).
* Permite ler um `array` Avro de registros `{key, value}` com dois campos em uma coluna `Map` do ClickHouse. Essa é a codificação que Iceberg e Spark produzem para um `MAP<K, V>` com uma key que não é string (maps nativos do Avro só oferecem suporte a keys string). Antes, esse arquivo podia ser lido como `Array(Tuple(key, value))`, mas não como `Map(K, V)`, o que falhava com `Type Map(...) is not compatible with Avro array`. [#109289](https://github.com/ClickHouse/ClickHouse/pull/109289) ([Groene AI](https://github.com/groeneai)).
* Corrigida uma falha do servidor em `CREATE HYPOTHETICAL INDEX ... TYPE set` (e `ngrambf_v1`/`tokenbf_v1`) quando o argumento de índice obrigatório é omitido. Essas instruções agora são rejeitadas com um erro claro. [#109294](https://github.com/ClickHouse/ClickHouse/pull/109294) ([Groene AI](https://github.com/groeneai)).
* Corrigido um `LOGICAL_ERROR` (`Current component is empty`) que podia ser gerado por operações de mutação, como `KILL MUTATION`, em uma tabela `MergeTree` que armazena seus metadados no Keeper, quando a configuração de servidor `enforce_keeper_component_tracking` está habilitada. [#109297](https://github.com/ClickHouse/ClickHouse/pull/109297) ([Groene AI](https://github.com/groeneai)).
* Corrigida a leitura de timestamps `ORC` além de aproximadamente o ano 2262 em uma coluna `DateTime64` com escala menor que 9. O leitor nativo de `ORC` costumava converter cada timestamp por meio de um intermediário fixo `DateTime64(9)`, o que causa overflow em `Int64` na escala de nanossegundos e rejeitava esses valores com `VALUE_IS_OUT_OF_RANGE_OF_DATA_TYPE`, mesmo quando a escala `DateTime64` solicitada (por exemplo, `DateTime64(6)`, como produzida pelo Iceberg) pode representar o valor. Os timestamps agora são lidos diretamente na escala solicitada, e `date_time_overflow_behavior` é respeitado mesmo quando nem a escala de destino consegue comportar o valor. [#109302](https://github.com/ClickHouse/ClickHouse/pull/109302) ([Groene AI](https://github.com/groeneai)).
* `clickhouse-local`, atuando como servidor (após `SYSTEM START LISTEN HTTP`), agora atende conexões HTTP usando o formato de saída padrão `TabSeparated`, em conformidade com `clickhouse-server`, em vez do padrão interativo `PrettyCompact`. Isso corrige a conexão ao `clickhouse-local` via HTTP com drivers como `clickhouse-connect`. A sessão interativa no terminal ainda renderiza os resultados como `PrettyCompact`. [#109362](https://github.com/ClickHouse/ClickHouse/pull/109362) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida uma falha transitória `Code: 499 ... InvalidPart` (`S3_ERROR`) em uploads multipart no S3. O MinIO pode, por um breve período, relatar uma parte recém-enviada como ausente em `CompleteMultipartUpload`; esse erro agora é repetido, assim como o `NoSuchKey` já tratado, limitado por `s3_max_unexpected_write_error_retries`. [#109364](https://github.com/ClickHouse/ClickHouse/pull/109364) ([Groene AI](https://github.com/groeneai)).
* Corrigido o erro `UNKNOWN_IDENTIFIER` em `ALTER TABLE ... DROP COLUMN` quando outra coluna tem uma expressão `DEFAULT` ou `MATERIALIZED` que define e referencia um alias inline. [#109374](https://github.com/ClickHouse/ClickHouse/pull/109374) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida uma condição de corrida (e a rara falha resultante) na mesclagem paralela de estados agregados de `uniqExact` com sets de dois níveis, o que podia ocorrer com `GROUPING SETS`, `ROLLUP` e `CUBE`. [#109389](https://github.com/ClickHouse/ClickHouse/pull/109389) ([Groene AI](https://github.com/groeneai)).
* Corrigido um erro (`NOT_FOUND_COLUMN_IN_BLOCK`, ou `std::bad_function_call` em versões mais antigas) ao executar `CREATE TABLE ... ON CLUSTER ... AS SELECT` lendo uma tabela `Distributed` em um cluster com dois ou mais shards. [#109407](https://github.com/ClickHouse/ClickHouse/pull/109407) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigidas as mesclagens para tabelas com `TTL ... GROUP BY` (rollup): partes que já estavam totalmente agregadas podiam ser reagendadas para mesclagem repetidamente, indefinidamente, e tabelas com colunas `MATERIALIZED` ou colunas virtuais persistentes habilitadas eram tratadas incorretamente — essas colunas agora são agregadas com `any`. Fecha [#105647](https://github.com/ClickHouse/ClickHouse/issues/105647). [#109410](https://github.com/ClickHouse/ClickHouse/pull/109410) ([Mikhail Artemenko](https://github.com/Michicosun)). [#109532](https://github.com/ClickHouse/ClickHouse/pull/109532) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Corrigido o caso em que `IN` com uma coluna array simples no argumento da direita retornava silenciosamente um resultado incorreto (sempre falso) ou lançava uma exceção, de modo que `x IN arr` passe a se comportar como `has(arr, x)`. [#109416](https://github.com/ClickHouse/ClickHouse/pull/109416) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigidos erros `UNKNOWN_IDENTIFIER` em operações `ALTER TABLE` (`RENAME`/`ADD`/`MODIFY COLUMN` e `MATERIALIZE INDEX` em uma tabela com partes recém-inseridas) para tabelas `MergeTree` com um índice min-max implícito sobre as colunas virtuais persistentes `_block_number`/`_block_offset` (habilitado por `add_minmax_index_for_block_number_column`/`add_minmax_index_for_block_offset_column`). [#109428](https://github.com/ClickHouse/ClickHouse/pull/109428) ([Groene AI](https://github.com/groeneai)). [#110236](https://github.com/ClickHouse/ClickHouse/pull/110236) ([Groene AI](https://github.com/groeneai)).
* Corrigido um `LOGICAL_ERROR` em `arrayFold` sobre um argumento `Array(LowCardinality(T))` não constante (por exemplo, `arrayFold((acc, x) -> acc + x, materialize([1, 2, 3]::Array(LowCardinality(Int64))), toInt64(0))`), que falhava com `Arguments of 'plus' have incorrect data types` (fazendo o servidor abortar em builds de depuração e com sanitizer). [#109462](https://github.com/ClickHouse/ClickHouse/pull/109462) ([Groene AI](https://github.com/groeneai)).
* Corrigido o caso em que `CHECK TABLE` em uma tabela `ReplicatedMergeTree` relatava uma parte íntegra como corrompida quando ocorria um erro transitório e passível de retry do ZooKeeper (por exemplo, perda de conexão) durante a verificação; esses erros agora são exibidos como um erro de consulta passível de retry. [#109465](https://github.com/ClickHouse/ClickHouse/pull/109465) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigidos segfaults em `groupArrayLastMerge` e na função de agregação `largestTriangleThreeBuckets`: a desserialização de estados de funções de agregação agora é validada, para que um estado corrompido não leve a um acesso de memória fora dos limites. [#109485](https://github.com/ClickHouse/ClickHouse/pull/109485) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). [#109492](https://github.com/ClickHouse/ClickHouse/pull/109492) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrigido o fato de o limite global `max_rows_in_join` / `max_bytes_in_join` não estar sendo aplicado ao algoritmo de join `parallel_hash`, situação em que uma consulta com `join_overflow_mode = 'throw'` podia ser concluída silenciosamente em vez de gerar `SET_SIZE_LIMIT_EXCEEDED`. [#109488](https://github.com/ClickHouse/ClickHouse/pull/109488) ([Hechem Selmi](https://github.com/m-selmi)).
* Corrigida a leitura de tabelas Paimon particionadas por uma coluna `BIGINT` cujo valor não cabe em `Int32`. Esses valores de partição eram truncados (por exemplo, `9223372036854775807` se tornava `-1`), o que produzia um caminho de partição incorreto e falhava com um erro de sistema de arquivos. [#109510](https://github.com/ClickHouse/ClickHouse/pull/109510) ([Groene AI](https://github.com/groeneai)).
* Corrigido um crash ao ler tabelas Iceberg com arquivos de exclusão por igualdade. Se uma coluna fosse anulável no arquivo de exclusão por igualdade, mas não anulável no esquema da tabela (ou vice-versa), os valores lidos do arquivo de exclusão eram inseridos em uma coluna de tipo diferente por meio de um cast sem verificação (uma confusão de tipos de coluna), corrompendo a coluna e derrubando o servidor. [#109551](https://github.com/ClickHouse/ClickHouse/pull/109551) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrigido o fato de `connect_timeout` e os timeouts de leitura e gravação do MySQL não surtirem efeito: uma tentativa de conexão com um servidor MySQL sem resposta podia ficar travada por mais de dois minutos mesmo com `connect_timeout = 1`, porque os sinais periódicos do sampling query profiler continuavam redefinindo o prazo interno de poll do cliente MySQL. [#109592](https://github.com/ClickHouse/ClickHouse/pull/109592) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Corrigido um `LOGICAL_ERROR` (`creation_csn is not set while removal_csn is set to 1`) que podia ocorrer quando um `TRUNCATE` não transacional era executado concorrentemente com uma transação não confirmada que havia feito insert na mesma tabela. Esse `TRUNCATE` não remove mais partes criadas por transações ainda não confirmadas. [#109598](https://github.com/ClickHouse/ClickHouse/pull/109598) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Corrigidos erros `TYPE_MISMATCH` ao ler colunas struct de `Parquet` cuja nulabilidade física difere do tipo ClickHouse solicitado: um grupo `Parquet` não anulável agora pode ser lido como `Nullable(Tuple(...))`, e o leitor nativo de `Parquet` pode ler uma struct fisicamente anulável (um grupo `OPTIONAL` de `Parquet`) como `Nullable(Tuple(...))`. [#109615](https://github.com/ClickHouse/ClickHouse/pull/109615) ([Groene AI](https://github.com/groeneai)). [#109898](https://github.com/ClickHouse/ClickHouse/pull/109898) ([Groene AI](https://github.com/groeneai)).
* Corrigida perda silenciosa de dados quando um `INSERT ... VALUES` em um stream com múltiplas consultas é seguido por um comentário SQL no final (por exemplo, `VALUES (1) -- comment`) no caminho de parsing de insert inline no lado do servidor (`send_table_structure_on_insert_with_inline_data = 0`). O comentário final era interpretado como dados de linha após o `;` de término, fazendo com que as consultas seguintes no stream fossem ignoradas silenciosamente. [#109643](https://github.com/ClickHouse/ClickHouse/pull/109643) ([Groene AI](https://github.com/groeneai)).
* Corrigido um segfault quando uma consulta chega em uma breve janela durante o desligamento do servidor após um erro na inicialização. [#109675](https://github.com/ClickHouse/ClickHouse/pull/109675) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrigidos índices de skipping obsoletos (`text`, `bloom_filter` etc.) e projeções após materializar atualizações leves com `ALTER TABLE ... APPLY PATCHES`. Antes, os arquivos de índice e projeção que dependiam de uma coluna atualizada por patch permaneciam inalterados, de modo que consultas que os usavam podiam retornar resultados incorretos (por exemplo, `hasToken` deixando de encontrar uma linha atualizada, ou uma projeção retornando agregações obsoletas depois que a patch part já consumida era removida). [#109709](https://github.com/ClickHouse/ClickHouse/pull/109709) ([Groene AI](https://github.com/groeneai)).
* Corrigido o `system.tables`, que ignorava silenciosamente bancos de dados para usuários com permissões por banco de dados quando a consulta lia apenas as colunas `name`/`database`. Introduzido na versão 26.2. [#109723](https://github.com/ClickHouse/ClickHouse/pull/109723) ([Samay Sharma](https://github.com/samay-sharma)).
* Corrigido um `LOGICAL_ERROR` ao gravar uma coluna `LowCardinality(Time)` no formato `Arrow` com `output_format_arrow_low_cardinality_as_dictionary = 1`. [#109730](https://github.com/ClickHouse/ClickHouse/pull/109730) ([Groene AI](https://github.com/groeneai)).
* Corrigido `ObjectStorageQueue`/`AzureQueue` (e a table function `azureBlobStorage`) ignorando silenciosamente objetos quando o armazenamento de objetos retorna uma página de listagem vazia junto com um token de continuação. O Azure Blob Storage faz isso (por exemplo, quando uma listagem cruza um limite interno de partição), e o iterador assíncrono de listagem tratava a página vazia como o fim da listagem e descartava o token. Agora ele segue o token de continuação. [#109761](https://github.com/ClickHouse/ClickHouse/pull/109761) ([Gal Ben Moshe](https://github.com/GalBenMoshe)).
* Corrigido o partition pruning, que não retornava nenhuma linha para Iceberg tables particionadas por uma coluna de timestamp (`DateTime64`). [#109764](https://github.com/ClickHouse/ClickHouse/pull/109764) ([Den Kalantaevskii](https://github.com/Diskein)).
* Corrigida uma exceção `ILLEGAL_COLUMN` na função `conv` para argumentos `FixedString`; agora eles são corretamente convertidos para `String`. Fecha [#109670](https://github.com/ClickHouse/ClickHouse/issues/109670). [#109771](https://github.com/ClickHouse/ClickHouse/pull/109771) ([hp](https://github.com/hp77-creator)).
* A função `getClientHTTPHeader` agora trata nomes de header como case-insensitive, de acordo com a [RFC 9110](https://www.rfc-editor.org/info/rfc9110/#section-5.1); em particular, o header `authorization` agora é filtrado independentemente de maiúsculas e minúsculas. Fecha [#103957](https://github.com/ClickHouse/ClickHouse/issues/103957). [#109791](https://github.com/ClickHouse/ClickHouse/pull/109791) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Corrige um problema em `max_execution_time` (com `timeout_overflow_mode = 'throw'`) que às vezes fazia uma consulta nunca ser cancelada: quando o monitor interno de timeout já estava aguardando uma consulta com um deadline posterior, uma consulta com um deadline anterior registrada depois podia passar completamente despercebida, permitindo que continuasse em execução muito além do limite de tempo. [#109792](https://github.com/ClickHouse/ClickHouse/pull/109792) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Corrigido o nome do arquivo de metadados Iceberg comprimido com gzip. O ClickHouse o gravava como `v{N}.gzip.metadata.json` (o token HTTP `Content-Encoding`), enquanto a especificação do Iceberg espera a extensão `gz`, isto é, `v{N}.gz.metadata.json`. Como resultado, o Spark e outros leitores de catálogo Hadoop não conseguiam encontrar os metadados gravados pelo ClickHouse. O ClickHouse agora grava `v{N}.gz.metadata.json` e continua lendo o nome legado `gzip` para compatibilidade retroativa. [#109812](https://github.com/ClickHouse/ClickHouse/pull/109812) ([Groene AI](https://github.com/groeneai)).
* Corrigido o erro `NOT_IMPLEMENTED` ("Method getDataAt is not supported for Nullable(String)") que podia ser gerado por um join com `enable_join_runtime_filters = 1` (ativado por padrão desde a versão 26.2) quando a chave de join do lado de build era `LowCardinality(Nullable(...))` com valores `NULL` e o runtime filter recorria ao seu filtro de Bloom. [#109824](https://github.com/ClickHouse/ClickHouse/pull/109824) ([Groene AI](https://github.com/groeneai)).
* Os database engines externos (por exemplo, `PostgreSQL`) não fazem mais pushdown de comparações de intervalo (`>=`, `>`, `<=`, `<`) em colunas `UUID`. O ClickHouse e os bancos de dados externos ordenam UUIDs de forma diferente, então esse pushdown removia linhas do resultado silenciosamente; esses predicates agora são avaliados pelo ClickHouse. [#109833](https://github.com/ClickHouse/ClickHouse/pull/109833) ([Vismay](https://github.com/vismaytiwari)).
* Corrigido um crash do servidor quando uma expressão lambda era passada onde uma higher-order function espera um valor concreto (por exemplo, o acumulador de `arrayFold`, como em `arrayFold(lambda, arr, another_lambda)`). Essas consultas agora são rejeitadas com `ILLEGAL_TYPE_OF_ARGUMENT` em vez de causar um crash quando `enable_analyzer = 0`. [#109840](https://github.com/ClickHouse/ClickHouse/pull/109840) ([Groene AI](https://github.com/groeneai)).
* Corrigidos a table function `icebergLocal` e o engine `IcebergLocal`, que declaravam `azure` em vez de `local` como tipo de armazenamento de objetos, o que fazia com que falhassem na verificação do tipo de disco (`Disk type doesn't match`) quando usados com um disco local via `SETTINGS disk = '...'`. [#109872](https://github.com/ClickHouse/ClickHouse/pull/109872) ([Pedro Ferreira](https://github.com/PedroTadim)).
* Corrige a leitura de tabelas Iceberg particionadas pela mesma coluna de origem mais de uma vez (por exemplo, `PARTITIONED BY (hours(ts), ts)`). Antes, essas tabelas falhavam com `Cannot add column ...: column with this name already exists (ILLEGAL_COLUMN)`. [#109895](https://github.com/ClickHouse/ClickHouse/pull/109895) ([Groene AI](https://github.com/groeneai)).
* Corrige resultados de consulta incorretos causados pelo primary key index, que fazia a poda de grânulos incorretamente em tabelas com uma coluna-chave invertida (`DESC`) quando as partes não têm marca final (granularidade não adaptativa, `index_granularity_bytes = 0`). [#109901](https://github.com/ClickHouse/ClickHouse/pull/109901) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrigido o `generateRandomStructure`, que ocasionalmente produzia uma string de estrutura inválida com dois tipos de dados concatenados (por exemplo, `Decimal32(7)IPv4`) quando o aninhamento de tipos excedia o limite interno de profundidade, o que tornava o resultado impossível de interpretar. [#109928](https://github.com/ClickHouse/ClickHouse/pull/109928) ([Groene AI](https://github.com/groeneai)).
* Corrigido o erro `NOT_IMPLEMENTED` (`Method getDataAt is not supported for Nullable(String) in case if value is NULL`) quando um índice `text` é criado em `Array(LowCardinality(Nullable(String)))` (incluindo campos `Nested` armazenados dessa forma) e um array indexado contém um elemento `NULL`. Elementos `NULL` em arrays agora são ignorados durante a construção do índice, em conformidade com `Array(Nullable(String))`. [#110055](https://github.com/ClickHouse/ClickHouse/pull/110055) ([Groene AI](https://github.com/groeneai)).
* Corrige resultados incorretos quando um índice de salto `minmax` é criado em uma coluna `LowCardinality(Nullable(...))`: predicados `WHERE`/`PREWHERE`/`HAVING ... IS NULL` enviados ao armazenamento antes descartavam todo granule e retornavam 0 linhas, mesmo quando a coluna continha valores `NULL`. [#110061](https://github.com/ClickHouse/ClickHouse/pull/110061) ([Groene AI](https://github.com/groeneai)).
* Corrige `distinct_overflow_mode = 'break'`: `DISTINCT` agora retorna o resultado parcial acumulado até o limite e para de ler a origem, como documentado. Antes, o fragmento que ultrapassava `max_rows_in_distinct` / `max_bytes_in_distinct` era descartado (resultados truncados ou vazios), e a consulta continuava lendo e inserindo no conjunto hash até o fim da entrada, o que podia terminar em `MEMORY_LIMIT_EXCEEDED`. [#110075](https://github.com/ClickHouse/ClickHouse/pull/110075) ([Sergey Kuznetsov](https://github.com/skuznetsov-clickhouse)).
* Corrigido um erro lógico `ChunkInfoRowNumbers does not exist` em `OPTIMIZE TABLE` de uma tabela Iceberg contendo um arquivo de dados em um formato que não é Parquet (por exemplo, `ORC`) mais recente do que todos os arquivos de exclusão por posição. [#110107](https://github.com/ClickHouse/ClickHouse/pull/110107) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige `max_bytes_in_distinct` e `max_bytes_in_set`: chaves string são armazenadas em uma arena que não era contabilizada pelas verificações de limite, portanto `DISTINCT` / `IN` sobre chaves string podiam usar memória acima do limite de bytes pelo payload completo da chave (sem limite para o comprimento da chave). Os limites agora contabilizam a arena, em conformidade com a documentação; consultas com chaves string próximas do limite de bytes agora podem atingi-lo mais cedo (corretamente). [#110120](https://github.com/ClickHouse/ClickHouse/pull/110120) ([Sergey Kuznetsov](https://github.com/skuznetsov-clickhouse)).
* Corrige um `LOGICAL_ERROR` (`Bad cast from type ColumnLowCardinality to ColumnString`) quando `identity` (ou o resultado de uma subconsulta escalar) encapsula um valor contendo um `LowCardinality` aninhado e a consulta usa `WITH TOTALS`/`WITH ROLLUP`. [#110138](https://github.com/ClickHouse/ClickHouse/pull/110138) ([Groene AI](https://github.com/groeneai)).
* Corrigida a leitura de arquivos `Npy` com dimensões internas de tamanho zero: o número de linhas materializadas e os resultados otimizados e não otimizados de `count` agora coincidem. [#110146](https://github.com/ClickHouse/ClickHouse/pull/110146) ([Yanjun Qiu](https://github.com/qiuyanjun888)).
* Corrigido um aumento para tempo quadrático (e falta de resposta a `max_execution_time`) em agregação in order ao agrupar por múltiplas chaves cuja ordenação é apenas um prefixo da chave de agrupamento. [#110159](https://github.com/ClickHouse/ClickHouse/pull/110159) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um erro lógico (`Unexpected number of columns in result sample block`) quando um filtro contendo uma subconsulta correlacionada (por exemplo, `exists((SELECT ...))`) é otimizado com `convert_query_to_cnf` ou `optimize_and_compare_chain`. [#110187](https://github.com/ClickHouse/ClickHouse/pull/110187) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida uma exceção (`UNION mode UNION_DEFAULT must be normalized`) quando uma mutação `DELETE` ou `ALTER UPDATE` usava uma operação de conjunto (`UNION`/`UNION ALL`/`UNION DISTINCT`/`EXCEPT`/`INTERSECT`) dentro de uma subquery em sua condição `WHERE` ou em uma atribuição de `UPDATE`. [#110196](https://github.com/ClickHouse/ClickHouse/pull/110196) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido um logical error `ReadBuffer is canceled. Can't read from it.` (abort do servidor em compilações de debug/sanitizer) que podia ocorrer ao ler um arquivo zip (por exemplo, durante `RESTORE` de um backup zip) após uma leitura anterior do mesmo arquivo falhar no meio do fluxo. [#110197](https://github.com/ClickHouse/ClickHouse/pull/110197) ([Groene AI](https://github.com/groeneai)).
* Corrigidos o desligamento lento do servidor e a falta de resposta do `KILL MUTATION` quando uma mutation com `x IN (subquery)` estava construindo o conjunto da subquery durante a análise da chave primária; a construção do conjunto agora é cancelada prontamente. [#110198](https://github.com/ClickHouse/ClickHouse/pull/110198) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O Keeper agora rejeita a definição das settings de coordination `max_requests_batch_size` e `max_requests_append_size` como `0`, em vez de ficar preso em um loop infinito de append-entries em uma configuração com vários nós. [#110200](https://github.com/ClickHouse/ClickHouse/pull/110200) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido um error `NOT_FOUND_COLUMN_IN_BLOCK` ao usar `GROUP BY ALL` em uma expressão de tupla junto com `ORDER BY`. [#110206](https://github.com/ClickHouse/ClickHouse/pull/110206) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido um error `NOT_FOUND_COLUMN_IN_BLOCK` em `INSERT` em uma table que tem uma restrição `CHECK` referenciando uma subcolumn (como `x.null` de uma coluna `Nullable` ou `arr.size0` de um `Array`). [#110208](https://github.com/ClickHouse/ClickHouse/pull/110208) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a leitura de Iceberg tables cuja ordenação padrão referencia uma coluna que precisa de aspas (por exemplo, `@timestamp`). Essas tables não podiam ser lidas porque o `ORDER BY` de armazenamento sintetizado era construído a partir do nome bruto da coluna e falhava na análise com `SYNTAX_ERROR`. [#110233](https://github.com/ClickHouse/ClickHouse/pull/110233) ([Groene AI](https://github.com/groeneai)).
* Corrigido o caso em que `system.tables` de um database `DataLakeCatalog` (Iceberg/Glue) abortava a consulta inteira ou removia tables silenciosamente quando os metadata de uma única table não podiam ser resolvidos. Essa table agora continua listada pelo nome, com valores padrão/NULL para as colunas que precisam do objeto de armazenamento aberto (`engine`, `total_rows`, etc.), independentemente de `database_datalake_require_metadata_access`. O acesso direto à table com problema ainda reporta o error. [#110242](https://github.com/ClickHouse/ClickHouse/pull/110242) ([Groene AI](https://github.com/groeneai)).
* Corrigida uma possível falha (heap-buffer-overflow) quando uma coluna de estado de função aggregate da família `quantileTDigest` era usada como chave de `GROUP BY` e serializada de forma concurrente por vários threads. [#110263](https://github.com/ClickHouse/ClickHouse/pull/110263) ([Groene AI](https://github.com/groeneai)).
* Corrigido o caso em que `INSERT` em uma table `DataLakeCatalog` do Microsoft Fabric / OneLake falhava com `IncorrectEndpointError` (HTTP 400), direcionando gravações ADLS Gen2 (DFS) para o host do endpoint `.dfs` em vez do host `.blob`. Observação: com `remote_url_allow_hosts`, tanto os hosts Fabric `.blob` (leitura) quanto `.dfs` (gravação) devem estar na allow-list para `INSERT`. [#110290](https://github.com/ClickHouse/ClickHouse/pull/110290) ([Mohammad Lareb Zafar](https://github.com/zlareb1)).
* Corrigido um abort do servidor ao analisar certas consultas PRQL (`SET dialect = 'prql'`). Um panic dentro do compilador `prqlc` fazia o processo ser abortado em vez de ser reportado como um erro de consulta. [#110316](https://github.com/ClickHouse/ClickHouse/pull/110316) ([Groene AI](https://github.com/groeneai)).
* Corrige resultados de consulta silenciosamente incorretos quando uma projection part gravada antes de o conjunto de colunas da projeção mudar (por exemplo, após uma atualização entre versões que materializam de forma diferente a origem de uma coluna `ALIAS`, ou após `ALTER TABLE ... MODIFY COLUMN` redirecionar uma coluna `ALIAS` usada por uma projeção) era lida por meio da projeção ou mesclada: a coluna ausente era preenchida com valores padrão em vez dos dados reais. Essas partes agora são lidas da tabela base, e as mesclagens recompõem a projeção a partir dos dados de base. [#110328](https://github.com/ClickHouse/ClickHouse/pull/110328) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Corrigido o fato de `ORDER BY ... WITH FILL` não respeitar `max_execution_time` e demorar para ser cancelado ao gerar um grande intervalo de preenchimento (especialmente com `INTERPOLATE`). [#110332](https://github.com/ClickHouse/ClickHouse/pull/110332) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um erro lógico (um abort do servidor em compilações de debug/sanitizer) quando um `ALTER` com vários comandos, como `UPDATE ..., DELETE ...`, era executado em uma tabela Iceberg. Essas mutações agora são rejeitadas com um erro `NOT_IMPLEMENTED` claro. [#110347](https://github.com/ClickHouse/ClickHouse/pull/110347) ([Groene AI](https://github.com/groeneai)).
* Corrigido um bug do parser em que `COMMENT` era incorretamente interpretado como um alias implícito quando uma consulta `SELECT` terminava logo após um identificador de tabela simples (por exemplo, `... FROM t COMMENT 'x'`), causando um erro de sintaxe enganoso em vez de aplicar o comentário à view/tabela. [#110372](https://github.com/ClickHouse/ClickHouse/pull/110372) ([Aditya Kumar](https://github.com/adityaksolves)).
* Corrigido um crash do servidor (stack overflow nativo) quando um literal `Array`/`Tuple`/`Map`/`Object` profundamente aninhado é copiado ou destruído, por exemplo, em uma consulta com um literal muito profundamente aninhado e `max_parser_depth` elevado. [#110393](https://github.com/ClickHouse/ClickHouse/pull/110393) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigidos dois casos em que a busca vetorial podia retornar menos linhas do que o esperado: valores de `vector_search_index_fetch_multiplier` abaixo de 1.0 podiam truncar para zero a contagem de fetch calculada e produzir um resultado vazio (esses valores agora são rejeitados), e a otimização de busca vetorial agora é ignorada para consultas `LIMIT ... WITH TIES`, porque a otimização limita a busca a exatamente N candidatos e descartava linhas empatadas com a N-ésima linha. [#110452](https://github.com/ClickHouse/ClickHouse/pull/110452) ([Tamish Mhatre](https://github.com/tamish560)). [#110453](https://github.com/ClickHouse/ClickHouse/pull/110453) ([Tamish Mhatre](https://github.com/tamish560)).
* Corrige o erro lógico `Expected CommonSubplanReferenceStep to reference CommonSubplanStep`, o erro `Subplan cannot be used to build pipeline` e o erro lógico `Trying to extract chunk from ChunkBuffer before all inputs are finished` em `IN (subquery)` quando a subquery contém uma subquery correlacionada e o conjunto é criado durante a análise de índice. [#110491](https://github.com/ClickHouse/ClickHouse/pull/110491) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a substituição de parâmetros de consulta dentro das definições de uma cláusula `WINDOW` nomeada. Antes, os parâmetros ali permaneciam silenciosamente sem substituição, e um parâmetro `Identifier` não definido podia levar à exceção `Logical error: '!part.empty()'` durante `EXPLAIN SYNTAX`. [#110506](https://github.com/ClickHouse/ClickHouse/pull/110506) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a falha na inicialização do servidor para tabelas `MergeTree` em object storage disks quando um arquivo residual `txn_version.txt.tmp` deixava corrompidos os metadados no nível do disco. [#110519](https://github.com/ClickHouse/ClickHouse/pull/110519) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um erro lógico no filesystem cache (`Expected file ... not to exist`) que podia ocorrer quando um download de cache em segundo plano falhava com um erro que não era do filesystem (por exemplo, ao executar `OPTIMIZE` em uma Iceberg table), deixando para trás um arquivo de cache órfão vazio. [#110549](https://github.com/ClickHouse/ClickHouse/pull/110549) ([Groene AI](https://github.com/groeneai)).
* Corrigida a leitura de um stream corrompido no formato `Native` cuja contagem do tipo `Dynamic` ou a contagem de caminhos `JSON`/`Object` está próxima de `SIZE_MAX`: essa entrada malformada agora é rejeitada com um erro `INCORRECT_DATA` claro, em vez de um `std::length_error` não tratado. [#110590](https://github.com/ClickHouse/ClickHouse/pull/110590) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido um crash do servidor no database engine `MaterializedPostgreSQL` que podia acontecer quando uma table era detached (ou tinha sua structure alterada) enquanto ainda estava na fila de sincronização. [#110596](https://github.com/ClickHouse/ClickHouse/pull/110596) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido o comportamento incorreto de `SET param_<name>` no cliente (e das flags `--param_<name>`) quando o nome do parâmetro coincide com um setting name interno, como `limit`, `offset`, `max_threads` ou `log_comment`. Dependendo do setting em conflito, a consulta falhava com `CANNOT_PARSE_QUOTED_STRING`, o valor era normalizado silenciosamente (por exemplo, `max_threads=0` se tornava `auto(N)`), ou o nome de um alias de setting era perdido. Esse parâmetro também quebrava todos os `SET param_*` subsequentes na mesma sessão. [#110597](https://github.com/ClickHouse/ClickHouse/pull/110597) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige a leitura de subcolumns de uma coluna que tem uma expression `DEFAULT` e não está materialized em uma part (por exemplo, após `ALTER TABLE ADD COLUMN` ou durante `ALTER TABLE MATERIALIZE COLUMN`): a subcolumn era preenchida com os valores padrão do tipo em vez da expression `DEFAULT` avaliada, e as Functions de distância vetorial transpostas (`cosineDistanceTransposed` e outras) nessas colunas `QBit` falhavam com o erro `SIZES_OF_ARRAYS_DONT_MATCH`. Isso fecha [#110634](https://github.com/ClickHouse/ClickHouse/issues/110634). [#110636](https://github.com/ClickHouse/ClickHouse/pull/110636) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido um `LOGICAL_ERROR` `Invalid partition key size: 0` que podia fazer falhar um `INSERT` em uma table `MergeTree` particionada com `non_replicated_deduplication_window` habilitado, quando um lote de async insert era desduplicado apenas parcialmente (alguns valores de `insert_deduplication_token` eram duplicados e outros eram novos). [#110651](https://github.com/ClickHouse/ClickHouse/pull/110651) ([Groene AI](https://github.com/groeneai)).
* Um flush assíncrono de insert em segundo plano agora é interrompido prontamente quando finalizado com `KILL QUERY`; antes, o flush de uma carga útil grande em buffer continuava fazendo parsing até o fim e ignorava o cancelamento. [#110652](https://github.com/ClickHouse/ClickHouse/pull/110652) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Corrigidos resultados incorretos de `GROUP BY` com `optimize_aggregation_in_order` e de `DISTINCT` com `optimize_distinct_in_order` aplicados sobre um JOIN `partial_merge`. A otimização de leitura em ordem era propagada pelo join partial-merge, que reordena sua entrada à esquerda pela chave de join e, portanto, não preserva a ordem original do stream à esquerda, fazendo com que as linhas fossem agrupadas incorretamente. [#110671](https://github.com/ClickHouse/ClickHouse/pull/110671) ([Groene AI](https://github.com/groeneai)).
* Corrigido um overflow de inteiro com sinal em `toStartOfInterval` com uma contagem extrema de intervalos `MONTH`, `WEEK` ou `DAY` em valores `Date`/`Date32`/`DateTime64`. [#110688](https://github.com/ClickHouse/ClickHouse/pull/110688) ([Groene AI](https://github.com/groeneai)).
* Corrige o erro `NOT_FOUND_COLUMN_IN_BLOCK` em consultas com subconsulta em `FROM` quando réplicas paralelas são executadas no modo `custom_key_sampling` / `custom_key_range`. Antes, essas consultas (por exemplo, `SELECT * FROM (SELECT id, k, v FROM t WHERE id < 20) ORDER BY k`) falhavam com `Not found column __table2.id in block ...`. [#110690](https://github.com/ClickHouse/ClickHouse/pull/110690) ([Groene AI](https://github.com/groeneai)).
* Corrigido o `readWKT`, que rejeitava strings WKT com espaço em branco no início (por exemplo, `readWKT(' POINT(1 2)')`), embora elas sejam aceitas pelos leitores tipados `readWKTPoint`/`readWKTPolygon`/... e pela gramática WKT. [#110706](https://github.com/ClickHouse/ClickHouse/pull/110706) ([Groene AI](https://github.com/groeneai)).
* Corrige um logical error (`Column ... already added for reading`, um aborto do servidor em compilações de debug/sanitizer) quando o mesmo predicado de índice de texto é usado tanto em `PREWHERE` quanto em `WHERE` de uma consulta sobre uma tabela `Merge` construída sobre uma tabela `Distributed`. [#110710](https://github.com/ClickHouse/ClickHouse/pull/110710) ([Groene AI](https://github.com/groeneai)).
* Corrige o erro `NOT_FOUND_COLUMN_IN_BLOCK` nas funções de distância transpostas sobre colunas `QBit` (como `cosineDistanceTransposed`) chamadas com uma subconsulta escalar ou um vetor de referência constante quando réplicas paralelas estão habilitadas. Isso fecha [#110719](https://github.com/ClickHouse/ClickHouse/issues/110719). [#110729](https://github.com/ClickHouse/ClickHouse/pull/110729) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um `LOGICAL_ERROR` raro (`Unexpected number of parts to remove from parts_queue`; um aborto do servidor em compilações de debug/sanitizer) em `ReplicatedMergeTree` quando duas operações de partição (por exemplo, duas consultas `MOVE PARTITION`/`REPLACE PARTITION`, ou uma concorrendo com um `DROP_RANGE` em segundo plano) cancelavam ao mesmo tempo a verificação de parte em segundo plano em intervalos sobrepostos. [#110738](https://github.com/ClickHouse/ClickHouse/pull/110738) ([Groene AI](https://github.com/groeneai)).
* Corrigido um logical error `Hash is not set for serialization` que podia ocorrer quando uma coluna com codec `Quantized(...)` era encapsulada em outra serialização, por exemplo, em uma tabela `Merge` sobre fontes cuja coluna de mesmo nome tem tipos diferentes (mesclados em um `Variant`). [#110776](https://github.com/ClickHouse/ClickHouse/pull/110776) ([Groene AI](https://github.com/groeneai)).
* Corrige um travamento do servidor ao multiplicar o estado de uma aggregate function `median`/`quantile` por uma constante inteira enorme (por exemplo, `medianState(x) * 18446744073709551615`). A consulta deixava de responder ao cancelamento e podia ficar em execução indefinidamente. [#110779](https://github.com/ClickHouse/ClickHouse/pull/110779) ([Groene AI](https://github.com/groeneai)).
* Corrige uma falha do servidor (divisão inteira por zero) quando uma quota com um interval de duração zero (por exemplo, `CREATE QUOTA q FOR INTERVAL 0 SECOND MAX queries = 1000`) era consumida. Agora, uma duração de interval de quota não positiva é rejeitada na criação da quota. [#110846](https://github.com/ClickHouse/ClickHouse/pull/110846) ([Pedro Ferreira](https://github.com/PedroTadim)).
* Corrigido o `throwIf(notLike(col, pattern))` (e outros `throwIf` aplicados sobre uma função), que lançava exceção incondicionalmente quando `col` é `LowCardinality`. A implementação padrão de `LowCardinality` executava `throwIf` sobre o dicionário inteiro, que sempre contém o valor default reservado mesmo quando nenhuma linha o referencia; assim, um valor diferente de zero nessa posição não usada fazia o `throwIf` lançar exceção para dados que não satisfazem a condição. [#110864](https://github.com/ClickHouse/ClickHouse/pull/110864) ([Groene AI](https://github.com/groeneai)).
* Propaga as roles ativas de uma consulta (`SET ROLE` ou o parâmetro `role`) para nós remotos em leituras com réplicas paralelas e `Distributed` em um cluster protegido com um segredo interserver; anteriormente, os nós remotos recorriam às roles padrão do usuário, avaliando as políticas de linha de forma inconsistente em relação ao nó iniciador. [#110867](https://github.com/ClickHouse/ClickHouse/pull/110867) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrigido um problema em que tabelas Iceberg produziam IDs de campo duplicados após `ALTER TABLE ... ADD COLUMN` quando o schema inicial continha campos aninhados (`Tuple`/`Array`/`Map`). `last-column-id` agora registra o maior ID de campo atribuído, incluindo os filhos aninhados, para que uma coluna adicionada posteriormente não reutilize mais o ID de um campo aninhado e as leituras não falhem mais com `ICEBERG_SPECIFICATION_VIOLATION` (`Duplicate field id`). [#110884](https://github.com/ClickHouse/ClickHouse/pull/110884) ([Groene AI](https://github.com/groeneai)).
* Corrigida uma falha em compilações FIPS ao usar uma chave SSH Ed25519 (`CREATE USER ... IDENTIFIED WITH ssh_key ... TYPE 'ssh-ed25519'`, ou essa chave em `users.xml`). Ed25519 não é aprovado para FIPS; essas chaves agora são rejeitadas com um erro `LIBSSH_ERROR` claro. [#110891](https://github.com/ClickHouse/ClickHouse/pull/110891) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige os resultados com precisão reduzida das funções de distância transpostas em colunas `QBit` (`cosineDistanceTransposed`, `L2DistanceTransposed`, `dotProductTransposed`). Valores truncados para `precision` planos de bits eram reconstruídos com os bits descartados preenchidos com zero, o que enviesava cada valor reconstruído em direção a zero e se tornava degenerado em baixa precisão: para `QBit(BFloat16)` com precisão 1, apenas o bit de sinal sobrevive, de modo que cada valor era reconstruído como `±0.0` e a distância era a mesma constante para toda linha, sem carregar informação de ordenação. Valores truncados agora são reconstruídos para um ponto médio limitado da célula de precisão restante (códigos `Int8` brutos para o centro de sua célula; zeros exatos e infinitos são preservados), de modo que uma `precision` menor troque exatidão por velocidade sem resultados fortemente enviesados. Os resultados com precisão total permanecem inalterados. Isso fecha [#110898](https://github.com/ClickHouse/ClickHouse/issues/110898). [#110911](https://github.com/ClickHouse/ClickHouse/pull/110911) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige uma falha do servidor (use-after-free) durante o desligamento gracioso após tabelas Iceberg serem consultadas em sessões que também usavam tabelas temporárias. [#110914](https://github.com/ClickHouse/ClickHouse/pull/110914) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrigido um `LOGICAL_ERROR: Cannot sum Bools` (uma interrupção do servidor em compilações de debug/sanitizer) ao mesclar estados de agregação `sumMap`/`sumMapWithOverflow`/`sumMapFiltered` com valores `Bool` que foram serializados no formato antigo de estado (versão 0). A mesma correção também corrige dois casos silenciosos de resultado incorreto com estados `Bool` da versão 0: chaves de mapa do tipo `Bool` não eram deduplicadas entre estados, e a compactação de valores zero descartava as entradas erradas. [#110922](https://github.com/ClickHouse/ClickHouse/pull/110922) ([Groene AI](https://github.com/groeneai)).
* Corrigida uma falha quando uma função de agregação com o combinador `-Tuple` era usada com `RESPECT NULLS` e produzia um estado intermediário (`-State`, agregação distribuída, `WITH ROLLUP`/`WITH CUBE`). A função combinada recebia o nome da variante de estado errada, de modo que seu tipo `AggregateFunction` serializado era resolvido novamente, em um round-trip, para um layout em memória incompatível. [#110930](https://github.com/ClickHouse/ClickHouse/pull/110930) ([Groene AI](https://github.com/groeneai)).
* Corrige `PREWHERE` (e políticas em nível de linha) em uma coluna Iceberg que foi renomeada por schema evolution e retornava silenciosamente `0` linhas para arquivos de dados antigos. Essas consultas agora retornam as linhas corretas, em conformidade com `WHERE`. [#110941](https://github.com/ClickHouse/ClickHouse/pull/110941) ([Groene AI](https://github.com/groeneai)).
* Corrige um `LOGICAL_ERROR` (`LazyMaterializingTransform: Number of rows in lazy chunk N does not match number of offsets M`) que podia ocorrer em consultas de busca vetorial com `vector_search_with_rescoring = 1` combinadas com materialização lazy quando várias distâncias empatavam. [#111003](https://github.com/ClickHouse/ClickHouse/pull/111003) ([Groene AI](https://github.com/groeneai)).
* Corrigida a leitura de dados `Arrow`/`ArrowStream` com colunas aninhadas `Array`/`Map` vazias produzidas pelo Apache Arrow Java \< 19.0.0 (incluído no Apache Spark), que antes eram rejeitadas com um erro `INCORRECT_DATA` informando que o buffer de offsets era pequeno demais. [#111101](https://github.com/ClickHouse/ClickHouse/pull/111101) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige leituras desatualizadas em discos `plain_rewritable` com o page cache habilitado. [#111105](https://github.com/ClickHouse/ClickHouse/pull/111105) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Corrige o erro `CANNOT_CONVERT_TYPE` para constantes do tipo `Variant` (incluindo `Geometry`) em consultas distribuídas e consultas com réplicas paralelas. [#111136](https://github.com/ClickHouse/ClickHouse/pull/111136) ([Nikita Fomichev](https://github.com/fm4v)).
* Corrige um bug em que a leitura de arquivos grandes do HDFS podia falhar ou retornar dados incorretos quando uma única requisição de leitura excedia o limite de tamanho de 32 bits do `hdfsPread` (`INT_MAX`). [#98470](https://github.com/ClickHouse/ClickHouse/pull/98470) ([Arup Chauhan](https://github.com/arup-chauhan)).
* Corrige o uso incorreto do índice de texto em comparações de igualdade com uma needle vazia. [#108340](https://github.com/ClickHouse/ClickHouse/pull/108340) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrigido um travamento em `SYSTEM SYNC MERGES` com o merge selector `Manual` quando um merge agendado não podia ser alocado em um background pool cheio. [#108770](https://github.com/ClickHouse/ClickHouse/pull/108770) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige `ATTACH TABLE ... AS REPLICATED` descartando dados confirmados e ressuscitando linhas anteriores à mutation quando um arquivo `txn_version.txt.tmp` desatualizado era deixado em uma data part. [#108772](https://github.com/ClickHouse/ClickHouse/pull/108772) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige uma possível race condition em `ALTER TABLE ... MOVE PARTITION TO TABLE` com tabelas `MergeTree` não replicadas que podia produzir data parts sobrepostas, porque o commit das partes movidas e a alocação do número de bloco não estavam sob o mesmo lock. [#108922](https://github.com/ClickHouse/ClickHouse/pull/108922) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Corrige a leitura de tabelas `Iceberg` gravadas pelo Databricks UniForm, que grava um esquema placeholder degenerado (com uma lista de campos vazia) em arquivos de manifesto. [#108945](https://github.com/ClickHouse/ClickHouse/pull/108945) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrige um use-after-free ao ler uma tabela `Hive` não particionada com várias threads. [#109164](https://github.com/ClickHouse/ClickHouse/pull/109164) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o fato de o log level do console não ser revertido após a inicialização do servidor quando `logger.startup_console_log_level` está definido: o nível era capturado da chave de configuração errada, então o console permanecia no Startup level elevado durante todo o ciclo de vida do servidor. Fecha [#103472](https://github.com/ClickHouse/ClickHouse/issues/103472). [#109858](https://github.com/ClickHouse/ClickHouse/pull/109858) ([Garrett Thomas](https://github.com/garrettthomaskth)).
* Corrige anomalias de isolamento de snapshot em transações de metadados do disco `plain_rewritable`. Corrige [#92055](https://github.com/ClickHouse/ClickHouse/issues/92055). [#110948](https://github.com/ClickHouse/ClickHouse/pull/110948) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Corrige um abort (`front() called on an empty vector`) em `clickhouse-client --login` quando o host não era passado como um argumento `--host` explícito, por exemplo, quando vinha de `--connection`, do arquivo de configuração ou da variável de ambiente `CLICKHOUSE_HOST`. Fecha [#103603](https://github.com/ClickHouse/ClickHouse/issues/103603). [#110279](https://github.com/ClickHouse/ClickHouse/pull/110279) ([Christoph Wurm](https://github.com/cwurm)).
* Corrige um erro lógico (`!part.empty()`) quando um argumento lambda é um identificador entre crases cujo nome contém um ponto (por exemplo, `__table1.`). Antes, essa consulta gerava uma exceção tratada em compilações de release e abortava o servidor em compilações de debug e com sanitizer durante a formatação de uma mensagem de erro. [#108735](https://github.com/ClickHouse/ClickHouse/pull/108735) ([Groene AI](https://github.com/groeneai)).
* Corrige um `LOGICAL_ERROR` (`No set is registered for key`) em mutações `ALTER TABLE ... DROP COLUMN`, `ALTER TABLE ... DELETE`/`UPDATE` e em `DELETE FROM` lightweight, em tabelas que têm uma coluna `ALIAS` cuja expressão usa o operador `IN` (inclusive por meio de outra coluna `ALIAS`). [#111039](https://github.com/ClickHouse/ClickHouse/pull/111039) ([Pedro Ferreira](https://github.com/PedroTadim)).
* Corrige perda silenciosa de dados com async inserts e desduplicação (`async_insert=1`, `async_insert_deduplicate=1`). Quando várias entradas de async-insert com valores distintos de `insert_deduplication_token` eram agrupadas em um único flush que escrevia em partições disjuntas, cada token era registrado no log de desduplicação de todas as partições afetadas pelo flush, e não apenas na partição em que suas próprias linhas eram gravadas. Depois, um insert posterior que reutilizasse um desses tokens em uma partição na qual ele nunca havia escrito era silenciosamente desduplicado. Agora, os tokens são registrados apenas na partição em que suas linhas realmente foram gravadas. Fecha [#111031](https://github.com/ClickHouse/ClickHouse/issues/111031). [#111049](https://github.com/ClickHouse/ClickHouse/pull/111049) ([Groene AI](https://github.com/groeneai)).
* Corrige uma exceção `LOGICAL_ERROR` (`ScatterExchangeStep should have one source shard, got 8`) e linhas duplicadas ao consultar uma tabela `Merge` sobre tabelas ou views `Distributed` com a configuração experimental `make_distributed_plan = 1`. Fecha [#107946](https://github.com/ClickHouse/ClickHouse/issues/107946). [#108401](https://github.com/ClickHouse/ClickHouse/pull/108401) ([Groene AI](https://github.com/groeneai)).
* Serializa uma coluna `Nullable(Tuple(...))` como um único campo `CSV`, em vez de achatá-la em colunas separadas. Antes, um valor não nulo era escrito como vários campos `CSV`, enquanto `NULL` era um único `\N`, produzindo uma contagem de colunas dependente da linha, o que quebrava os cabeçalhos `CSVWithNames`/`CSVWithNamesAndTypes` e os round-trips. [#108959](https://github.com/ClickHouse/ClickHouse/pull/108959) ([Groene AI](https://github.com/groeneai)).
* Corrige um erro lógico (`KeyCondition uses PREWHERE output`) no leitor `Parquet` v3 quando uma condição de chave no nível do formato referencia uma coluna que não é lida do arquivo `Parquet`. [#109267](https://github.com/ClickHouse/ClickHouse/pull/109267) ([Groene AI](https://github.com/groeneai)).
* Corrige resultados incorretos em leituras por table function com `FINAL` ou `SAMPLE` sob `serialize_query_plan = 1`. Também corrige a chave de cache das estatísticas da tabela hash de agregação para table functions, para que diferentes table functions não compartilhem mais a mesma entrada de pré-alocação. [#109847](https://github.com/ClickHouse/ClickHouse/pull/109847) ([Azat Khuzhin](https://github.com/azat)).
* Corrige a limpeza de um `BACKUP ... TO Memory(...)` que falha antes da finalização: o backup com falha permanecia registrado, então seu nome não podia ser reutilizado. [#109947](https://github.com/ClickHouse/ClickHouse/pull/109947) ([Julia Kartseva](https://github.com/jkartseva)).
* Corrige a aritmética de intervalos extremos para `WITH FILL STEP` e as funções de intervalo de data/hora `add*` / `subtract*`: deltas fora do intervalo não dependem mais de overflow com sinal, e `WITH FILL` com um passo `YEAR` enorme não trava mais ao percorrer o calendário para trás. [#110158](https://github.com/ClickHouse/ClickHouse/pull/110158) ([Groene AI](https://github.com/groeneai)).
* Corrige erros `411 Length Required` de serviços do Azure: o transporte HTTP do Azure baseado em Poco agora define `Content-Length` a partir do corpo da requisição para clientes SDK que não o definem por conta própria, como o Azure Key Vault. [#110299](https://github.com/ClickHouse/ClickHouse/pull/110299) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* A otimização lazy de `FINAL` (`query_plan_optimize_lazy_final`, desabilitada por padrão) não é mais aplicada quando a consulta lê na ordem da chave de ordenação, porque o plano de substituição não preserva essa ordem e pode retornar resultados em ordem incorreta. Ela também não é mais aplicada quando um `LIMIT` menor que o número de linhas a serem lidas se aplica diretamente à etapa de leitura, caso em que a passagem obrigatória de construção do conjunto impede a interrupção antecipada. [#110576](https://github.com/ClickHouse/ClickHouse/pull/110576) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige `readWKT` e `readWKTPoint`, que retornavam coordenadas não inicializadas (escalares) ou reaproveitadas da linha anterior (vetorizadas) para `POINT EMPTY`. `POINT EMPTY` agora é rejeitado com `CANNOT_PARSE_TEXT`, já que `Point` no ClickHouse é uma `Tuple(Float64, Float64)` fixa, sem representação vazia. [#110692](https://github.com/ClickHouse/ClickHouse/pull/110692) ([Groene AI](https://github.com/groeneai)).
* Corrige o tratamento incorreto de timezone ao materializar colunas do lado direito em hash joins. Fecha [#111033](https://github.com/ClickHouse/ClickHouse/issues/111033). [#111074](https://github.com/ClickHouse/ClickHouse/pull/111074) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige resultados incorretos de `count()` e linhas descartadas quando uma chave `String` (ou `FixedString` mais curta) ou um skip index minmax é filtrado por uma comparação com uma constante `FixedString` mais longa, por exemplo `toFixedString('abc', 257) = string_col`. A chave primária e o pruning minmax construíam o intervalo a partir da constante preenchida com NUL e ignoravam incorretamente grânulos correspondentes. [#111106](https://github.com/ClickHouse/ClickHouse/pull/111106) ([Groene AI](https://github.com/groeneai)).
* Corrige inserts assíncronos no formato `Native`, para que uma entrada em buffer que se torne incompatível após `ALTER ... MODIFY COLUMN` não faça mais o lote inteiro falhar. Fecha [#111064](https://github.com/ClickHouse/ClickHouse/issues/111064). [#111108](https://github.com/ClickHouse/ClickHouse/pull/111108) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Corrige `CREATE OR REPLACE` de um Dicionário com um objeto de outro tipo: a operação falhava com `CANNOT_DETACH_DICTIONARY_AS_TABLE` depois que a substituição já havia sido confirmada, deixando uma tabela `_tmp_replace_*` órfã. [#111142](https://github.com/ClickHouse/ClickHouse/pull/111142) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige `INCOMPATIBLE_TYPE_OF_JOIN` para um join `ANY` em uma tabela do engine `Join` quando um filtro `WHERE` em uma coluna do lado direito permitia que o planner da consulta reescrevesse o join para `SEMI` ou `ANTI`. Uma tabela do engine `Join` tem uma strictness declarada fixa que não pode ser alterada, portanto essa conversão agora é recusada para essas tabelas. [#111362](https://github.com/ClickHouse/ClickHouse/pull/111362) ([Groene AI](https://github.com/groeneai)).
* Corrige a table function `format`, que não retornava colunas quando os dados de entrada eram convertidos em zero linhas (por exemplo, um documento JSON vazio ou uma `FeatureCollection` GeoJSON sem features). Agora ela retorna um resultado vazio com as colunas corretas em vez de lançar `NOT_FOUND_COLUMN_IN_BLOCK`. Fecha [#111390](https://github.com/ClickHouse/ClickHouse/issues/111390). [#111428](https://github.com/ClickHouse/ClickHouse/pull/111428) ([Groene AI](https://github.com/groeneai)).

<div id="267-build-testing-packaging-improvement">
  #### melhorias em build, testes e empacotamento
</div>

* As compilações com sanitizer agora capturam o relatório do sanitizer no buffer global `sanitizer_report`, para que o analisador de core dump possa lê-lo a partir do próprio core dump. [#109333](https://github.com/ClickHouse/ClickHouse/pull/109333) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Compile `musl` a partir do código-fonte em vez de usar binários vendorizados. [#97452](https://github.com/ClickHouse/ClickHouse/pull/97452) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Use implementações SIMD de `memcmp`/`memcpy`/`memmove`/`memset`/`bcmp`/`memmem` da LLVM-libc. [#107566](https://github.com/ClickHouse/ClickHouse/pull/107566) ([Konstantin Bogdanov](https://github.com/thevar1able)). Corrige corrupção silenciosa de `memmove` em compilações de Debug com `-O0` (`-DDEBUG_O_LEVEL=0`) em máquinas com AVX-512. [#110904](https://github.com/ClickHouse/ClickHouse/pull/110904) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Remove usos da biblioteca `curl` em toda a base de código e nas bibliotecas de terceiros incluídas. [#108296](https://github.com/ClickHouse/ClickHouse/pull/108296) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* `mariadb-connector-c` foi atualizado para 3.4.9. [#108328](https://github.com/ClickHouse/ClickHouse/pull/108328) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Atualiza `libssh` para 0.12.0. [#108329](https://github.com/ClickHouse/ClickHouse/pull/108329) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige um travamento no `COMMIT` de transações no macOS. [#108375](https://github.com/ClickHouse/ClickHouse/pull/108375) ([Raúl Marín](https://github.com/Algunenano)).
* Adicionada uma opção CMake `COMPRESS_DEBUG_SECTIONS` que comprime as seções de debug DWARF em arquivos objeto (`-gz`), habilitada automaticamente onde o compilador oferece suporte, para reduzir os diretórios de compilação de Debug; os binários finais não são comprimidos, portanto a simbolização de stack trace em tempo de execução não é afetada. [#109306](https://github.com/ClickHouse/ClickHouse/pull/109306) ([Murphy](https://github.com/murphy-4o)). A toolchain LLVM incluída agora é compilada com zlib, de modo que seu clang passou a oferecer suporte a `-gz=zlib`, e o symlink `clang++-21` ausente foi adicionado. [#109596](https://github.com/ClickHouse/ClickHouse/pull/109596) ([Murphy](https://github.com/murphy-4o)).
* As compilações de Debug agora compilam os crates Rust vendorizados com informações de debug reduzidas (`debug = 1`, nível `limited` do cargo) e sem cache incremental (`REDUCE_RUST_DEBUG_INFO`, ativado por padrão), reduzindo os artefatos de compilação do Rust (\~12 → \~7 GB do zero) e evitando o crescimento ilimitado do cache do cargo entre recompilações. Defina `-DREDUCE_RUST_DEBUG_INFO=OFF` para restaurar o DWARF completo e a compilação incremental. [#109471](https://github.com/ClickHouse/ClickHouse/pull/109471) ([Murphy](https://github.com/murphy-4o)).
* Oferece suporte ao exchange de consultas distribuídas em streaming e a leituras `STREAM` no macOS. [#109769](https://github.com/ClickHouse/ClickHouse/pull/109769) ([Raúl Marín](https://github.com/Algunenano)).
* Atualiza `libarchive` de 3.8.7 para 3.8.8. [#109874](https://github.com/ClickHouse/ClickHouse/pull/109874) ([Robert Schulze](https://github.com/rschu1ze)).
* Atualiza `c-ares` de 1.34.6 para 1.34.8. [#109905](https://github.com/ClickHouse/ClickHouse/pull/109905) ([Robert Schulze](https://github.com/rschu1ze)).
* Atualiza `krb5` para corrigir CVE-2026-40355 e CVE-2026-40356. [#109910](https://github.com/ClickHouse/ClickHouse/pull/109910) ([Robert Schulze](https://github.com/rschu1ze)).
* Removida a dependência de terceiros `libpng`. `FORMAT PNG` agora usa um pequeno codificador PNG integrado (baseado no zlib incluído) em vez disso. [#110051](https://github.com/ClickHouse/ClickHouse/pull/110051) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Agora, as alocações C diretas (que não passam por `operator new`) são rastreadas no memory tracker no macOS ao encapsular a malloc zone do jemalloc, para que os limites de memória sejam aplicados a elas. [#110370](https://github.com/ClickHouse/ClickHouse/pull/110370) ([Raúl Marín](https://github.com/Algunenano)).
* As imagens Docker `-distroless` de `clickhouse-server` e `clickhouse-keeper` agora são geradas a partir do estágio de produção sem shell; antes, eram geradas a partir do estágio de depuração e incluíam `/busybox/sh`. Corrige [#105677](https://github.com/ClickHouse/ClickHouse/issues/105677). [#105678](https://github.com/ClickHouse/ClickHouse/pull/105678) ([ashishch432](https://github.com/ashishch432)).
* Atualizado `abseil-cpp` para LTS `20260526.0`. [#108991](https://github.com/ClickHouse/ClickHouse/pull/108991) ([Konstantin Bogdanov](https://github.com/thevar1able)).

<div id="266">
  ### Lançamento do ClickHouse 26.6, 2026-06-25. [Apresentação](https://presentations.clickhouse.com/2026-release-26.6/), [Vídeo](https://www.youtube.com/watch?v=-NmqMH9y4EY)
</div>

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

* Esta alteração remove o recurso `allow_experimental_query_deduplication`. Esse recurso era experimental havia muito tempo, não tem testes e não terá suporte (os testes iniciais eram instáveis e foram removidos em [#49579](https://github.com/ClickHouse/ClickHouse/pull/49579)). [#99398](https://github.com/ClickHouse/ClickHouse/pull/99398) ([Igor Nikonov](https://github.com/devcrafter)).
* O recurso `SYSTEM INSTRUMENT`, baseado em XRay, agora usa `arguments` em vez de `parameters`: a coluna `system.instrumentation.parameters` foi renomeada para `arguments`, e a sintaxe `SYSTEM INSTRUMENT ADD ... HANDLER PARAMETERS ...` foi renomeada para `SYSTEM INSTRUMENT ADD ... HANDLER ARGUMENTS ...`. Consultas ou automações que usam a coluna ou a sintaxe antigas devem ser atualizadas para usar os novos nomes; os nomes antigos não são mais suportados. [#103854](https://github.com/ClickHouse/ClickHouse/pull/103854) ([Pablo Marcos](https://github.com/pamarcos)).
* A configuração `show_data_lake_catalogs_in_system_tables` foi renomeada para `show_remote_databases_in_system_tables` e teve seu escopo ampliado: quando seu valor é 0 (o padrão), os bancos de dados `MySQL` e `PostgreSQL` também ficam ocultos em `system.tables`, `system.columns` e `system.completions`, além dos catálogos do lago de dados. O nome antigo da configuração foi mantido como alias. [#104416](https://github.com/ClickHouse/ClickHouse/pull/104416) ([Pablo Marcos](https://github.com/pamarcos)).
* A compilação x86 padrão agora tem como destino x86-64-v3 (AVX2) em vez de x86-64-v2 (SSE4.2). Isso exige uma CPU com suporte a AVX2 (Intel Haswell ou posterior, AMD Excavator ou posterior). Se a sua CPU não oferecer suporte a AVX2, use a compilação `amd64compat`, que tem como destino o x86-64 básico. [#105019](https://github.com/ClickHouse/ClickHouse/pull/105019) ([Raúl Marín](https://github.com/Algunenano)).
* Rejeita `Dynamic`/`Variant` aninhados em agregações `min`/`max` e indexes `minmax`. Antes, apenas `Dynamic`/`Variant` de nível superior eram verificados. Fecha [#104747](https://github.com/ClickHouse/ClickHouse/issues/104747). [#105468](https://github.com/ClickHouse/ClickHouse/pull/105468) ([Pavel Kruglov](https://github.com/Avogar)).
* `icebergHash` e `icebergBucket` agora rejeitam argumentos `Int128`, `UInt128`, `Int256`, `UInt256` e `Decimal256` com um erro explícito. Antes, eles truncavam silenciosamente valores mais amplos e produziam hashes com colisões. A spec do Iceberg define hashing apenas para inteiros de 32/64 bits e decimals com precisão de até 38; faça cast para `Int64` ou `Decimal128` para manter o comportamento anterior nos valores que couberem. [#105866](https://github.com/ClickHouse/ClickHouse/pull/105866) ([Raúl Marín](https://github.com/Algunenano)).
* Foi adicionado controle granular sobre a exibição de consultas na CLI. A opção `--echo` agora aceita um valor booleano opcional e funciona tanto no modo interativo quanto no modo batch. As novas opções `--echo-formatted` e `--echo-query-id` controlam se as consultas exibidas são formatadas e se o `query_id` é impresso, respectivamente. A opção `--hilite`/`--highlight` agora também controla o realce das consultas exibidas. Como efeito colateral, `--echo` agora é uma opção com valor booleano, então uma consulta posicional logo após um `--echo` sem valor é tratada como seu valor; use `--echo --query "..."` ou `--echo=false` em vez disso. [#106191](https://github.com/ClickHouse/ClickHouse/pull/106191) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Foram removidas as funções experimentais KQL (Kusto) `array_sort_asc` e `array_sort_desc`, bem como seus backends SQL `kql_array_sort_asc` e `kql_array_sort_desc`. Essas funções eram experimentais, tinham uma implementação de baixa qualidade e eram a origem de bugs de corretude e de parser. Consultas que usam esses nomes agora retornam `UNKNOWN_FUNCTION`. [#108101](https://github.com/ClickHouse/ClickHouse/pull/108101) ([Groene AI](https://github.com/groeneai)).
* `ALTER TABLE ... REPLACE PARTITION ... FROM ...` não remove mais silenciosamente os dados da partição de destino quando a tabela de origem não tem partes na partição solicitada. Antes, essa solicitação removia a partição de destino e não gravava nada no lugar — uma armadilha que podia causar perda de dados. Agora, ela é rejeitada com `BAD_ARGUMENTS` por padrão. Para restaurar o comportamento anterior de limpeza silenciosa, defina a nova configuração `allow_replace_partition_from_empty_source = 1` ou ajuste `compatibility` para `26.5` ou inferior; para remover explicitamente os dados de destino, use `ALTER TABLE ... DROP PARTITION`. [#104939](https://github.com/ClickHouse/ClickHouse/pull/104939) ([Groene AI](https://github.com/groeneai)).
* O valor padrão da configuração do servidor `insert_deduplication_version` mudou de `compatible_double_hashes` para `new_unified_hash`. A desduplicação de insert agora funciona sobre o bloco inserido inteiro (por insert), em vez de por parte/partição: uma nova tentativa do mesmo insert continua sendo desduplicada, mas dois inserts diferentes que produzem uma parte idêntica não são mais desduplicados entre si, e inserts reordenados das mesmas linhas não são mais desduplicados. Defina `insert_deduplication_version = compatible_double_hashes` para restaurar o comportamento anterior. Instâncias que fizerem upgrade diretamente de um lançamento cujo padrão era `old_separate_hashes` devem primeiro executar com `compatible_double_hashes` até que a maior janela de desduplicação relevante tenha decorrido, antes de passar a confiar em `new_unified_hash`. [#107886](https://github.com/ClickHouse/ClickHouse/pull/107886) ([Sema Checherinda](https://github.com/CheSema)).

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

* Adicionado suporte a consultas contínuas em tabelas `MergeTree`, implementado por meio de uma série de leituras de snapshot. Este é um primeiro passo rumo ao suporte geral a consultas em streaming. [#105114](https://github.com/ClickHouse/ClickHouse/pull/105114) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Adicionados skip indexes hipotéticos (what-if). Use `CREATE HYPOTHETICAL INDEX ... ON t (expr) TYPE ...` para definir um skip index virtual com escopo de sessão e, em seguida, `EXPLAIN WHATIF SELECT ...` para estimar sua taxa de descarte e custo sem materializá-lo. Os índices definidos ficam visíveis na nova tabela `system.hypothetical_indexes`. [#104608](https://github.com/ClickHouse/ClickHouse/pull/104608) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Adiciona uma interface web embutida em `/schema` no `clickhouse-server` que visualiza o grafo de dependências entre tabelas, visões materializadas, views materializadas atualizáveis, dicionários, tabelas distribuídas e views. [#105276](https://github.com/ClickHouse/ClickHouse/pull/105276) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Adicionado suporte ao formato de saída `PNG`, permitindo que os resultados de consultas sejam renderizados diretamente como imagens PNG. [#74691](https://github.com/ClickHouse/ClickHouse/pull/74691) ([Maksim Dergousov](https://github.com/m7kss1)).
* Adicionada a detecção do agente de IA para programação (Claude Code, Cursor, Codex, Gemini CLI, Goose etc.) que invocou `clickhouse-client` ou `clickhouse-local`, com base em variáveis de ambiente. O agente detectado é informado na nova coluna `client_agent` de `system.query_log`, `system.query_thread_log` e `system.processes`. [#106619](https://github.com/ClickHouse/ClickHouse/pull/106619) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionada uma nova tabela de sistema, `system.documentation`, que reúne em uma única tabela a documentação de referência embutida dos componentes uniformes do sistema (funções, motores de tabela, tipos de dados, configurações, formatos e outros), com a documentação renderizada em Markdown. [#107463](https://github.com/ClickHouse/ClickHouse/pull/107463) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona o formato de entrada `GeoJSON` para leitura de documentos `FeatureCollection` do [GeoJSON](https://geojson.org/), produzindo uma linha por feature com colunas `id` (`String`), `geometry` (`Geometry`) e `properties` (`Nullable(JSON)`). As geometries `Point`, `LineString`, `MultiLineString`, `Polygon` e `MultiPolygon` são lidas no tipo `Geometry` nativo do ClickHouse. `GeometryCollection` e `MultiPoint`, que o tipo `Geometry` não consegue representar, geram uma exceção por padrão, ou podem ser armazenados como `NULL` por meio da configuração `input_format_geojson_unsupported_geometry_handling`. Contribui para [#91533](https://github.com/ClickHouse/ClickHouse/issues/91533). [#98124](https://github.com/ClickHouse/ClickHouse/pull/98124) ([Mark Needham](https://github.com/mneedham)).
* Adicionadas funções para servir Mapbox Vector Tiles diretamente via SQL: `MVTEncodeGeom` projeta uma geometria no espaço de pixels de um tile e a recorta, `MVTEncode` agrega as geometries projetadas de um grupo nos bytes binários de um tile de camada única, e `MVTBoundingBox` / `MVTBoundingBoxMercator` retornam a bounding box de um tile para restringir as linhas a ela. Há suporte para geometria de ponto, linha e polígono. Também disponível com os aliases PostGIS `ST_AsMVTGeom` e `ST_AsMVT`. [#106107](https://github.com/ClickHouse/ClickHouse/pull/106107) ([Saarthak Gupta](https://github.com/saarthak2002)).
* `clickhouse-local` agora oferece suporte às consultas `SYSTEM START LISTEN` e `SYSTEM STOP LISTEN`, permitindo que ele seja transformado em um servidor que aceita conexões TCP e HTTP. [#101143](https://github.com/ClickHouse/ClickHouse/pull/101143) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado um comando interativo `help` ao `clickhouse-client` e ao `clickhouse-local`. Ao digitar `help <name>` (também `/help`, `man`, `/man`), é exibida a documentação de uma função, engine de tabela, tipo de dado, formato, configuração ou outro componente, renderizada a partir de Markdown no terminal com destaque de sintaxe para SQL. Quando a palavra é ambígua, todas as correspondências são mostradas; quando não é encontrada, nomes semelhantes são sugeridos. [#108042](https://github.com/ClickHouse/ClickHouse/pull/108042) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suporte para gravação no Azure Data Lake Storage Gen2. [#105406](https://github.com/ClickHouse/ClickHouse/pull/105406) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Adicionado o formato `RowBinaryWithNamesAndTypesAndDefaults` para oferecer melhor suporte à evolução de esquema. [#105736](https://github.com/ClickHouse/ClickHouse/pull/105736) ([Mark Zitnik](https://github.com/mzitnik)).
* Implementado `ADD ENUM VALUES` em consultas `ALTER TABLE` para simplificar a adição de novos valores a um tipo `Enum` existente, sem a necessidade de especificar novamente todos os valores atuais de `Enum`. [#93830](https://github.com/ClickHouse/ClickHouse/pull/93830) ([Ilya Golshtein](https://github.com/ilejn)).
* A view materializada atualizável agora oferece suporte a `REFRESH DEPENDS ON` para disparar atualizações com base nas atualizações de outra RMV, em vez de um agendamento baseado em tempo. (`REFRESH EVERY ... DEPENDS ON` já existia, mas não podia ser usado de forma confiável nesse caso de uso.) Consulte a documentação de `CREATE MATERIALIZED VIEW`. [#104440](https://github.com/ClickHouse/ClickHouse/pull/104440) ([Michael Kolupaev](https://github.com/al13n321)).
* Adicionado suporte para selecionar colunas por padrão de nome com `* LIKE '<pattern>'` e `* ILIKE '<pattern>'`, incluindo formas qualificadas como `table.* LIKE '<pattern>'` e `table.* ILIKE '<pattern>'`. `LIKE` faz correspondência com nomes de coluna diferenciando maiúsculas de minúsculas; `ILIKE`, sem diferenciar maiúsculas de minúsculas. [#104569](https://github.com/ClickHouse/ClickHouse/pull/104569) ([Yue Ni](https://github.com/niyue)).
* Adicionada a sintaxe `ESCAPE`, que define um caractere de escape personalizado em um padrão `LIKE`, permitindo tratar `%` e `_` como caracteres literais em vez de curingas. [#99774](https://github.com/ClickHouse/ClickHouse/pull/99774) ([Ilya Yatsishin](https://github.com/qoega)).
* Adicionadas as configurações de tabela do `MergeTree` `materialize_projections_on_insert` e `materialize_projections_on_merge`. Quando `materialize_projections_on_insert = 0`, os `INSERT`s deixam de criar projection parts, o que melhora a vazão de insert em tabelas com muitas projeções. Quando `materialize_projections_on_merge = 1`, um merge recria uma projeção ausente em todas as partes de origem, permitindo que projeções sejam criadas durante merges em vez de no insert. Os merges ainda combinam apenas partes que compartilham o mesmo conjunto de projeções. [#100993](https://github.com/ClickHouse/ClickHouse/pull/100993) ([Christoph Wurm](https://github.com/cwurm)).
* Adicionada uma nova configuração imutável do `MergeTree`, `allow_tuple_element_aggregation`, desabilitada por padrão. Quando habilitada, `SummingMergeTree`, `AggregatingMergeTree` e `CoalescingMergeTree` achatam recursivamente colunas `Tuple` e agregam cada elemento folha de forma independente durante os merges, exatamente como se fosse uma coluna de nível superior — o `SummingMergeTree` o soma, o `AggregatingMergeTree` faz o merge do estado da função de agregação e o `CoalescingMergeTree` mantém seu último valor não `NULL`. A configuração deve ser especificada no momento da criação da tabela e é ignorada silenciosamente por engines que não a suportam. [#98039](https://github.com/ClickHouse/ClickHouse/pull/98039) ([johnjing](https://github.com/JingYanchao)).
* Novas funções `quantizeBFloat16ToInt8` e `dequantizeInt8ToBFloat16`: um codec escalar que comprime componentes de embedding em 8 bits usando um quantizador gaussiano Lloyd-Max de 256 níveis, do qual códigos Int4/Int2/binários podem ser extraídos por truncamento de bits. [#108102](https://github.com/ClickHouse/ClickHouse/pull/108102) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionadas as funções `arrayTopK` e `arrayBottomK`: - `arrayTopK(k, array)` retorna os K maiores elementos em ordem decrescente - `arrayBottomK(k, array)` retorna os K menores elementos em ordem crescente. [#104563](https://github.com/ClickHouse/ClickHouse/pull/104563) ([Vitaly Baranov](https://github.com/vitlibar)).
* Adicionada uma nova tabela de sistema `system.iceberg_files`, que expõe os metadados por arquivo de tabelas `Iceberg`, com uma linha para cada arquivo de dados ou de exclusão no snapshot atual de cada tabela. Isso fecha [#98777](https://github.com/ClickHouse/ClickHouse/issues/98777). [#104415](https://github.com/ClickHouse/ClickHouse/pull/104415) ([Asya Shneerson](https://github.com/asya-ch)).
* Adicionada a tabela `system.constraints`, que fornece informações sobre todas as constraints `CHECK` e `ASSUME` em todas as tabelas, incluindo o nome, o tipo e a expressão da constraint. [#105337](https://github.com/ClickHouse/ClickHouse/pull/105337) ([Pedro Ferreira](https://github.com/PedroTadim)).
* Adicionada uma nova tabela `system.dictionary_layouts` que lista os layouts de dicionário disponíveis junto com a documentação embutida (`description`, `syntax`, `examples`, `introduced_in`, `related`). [#106182](https://github.com/ClickHouse/ClickHouse/pull/106182) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionada uma nova tabela `system.dictionary_sources` que lista as fontes de dicionário disponíveis junto com a documentação embutida (`description`, `syntax`, `examples`, `introduced_in`, `related`). [#106184](https://github.com/ClickHouse/ClickHouse/pull/106184) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionada uma nova tabela `system.data_skipping_index_types` que lista os tipos de índice de data skipping disponíveis junto com a documentação embutida (`description`, `syntax`, `examples`, `introduced_in`, `related`). [#106186](https://github.com/ClickHouse/ClickHouse/pull/106186) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionada uma nova tabela `system.disk_types` que lista os tipos de disco disponíveis junto com a documentação embutida (`description`, `syntax`, `examples`, `introduced_in`, `related`). [#106187](https://github.com/ClickHouse/ClickHouse/pull/106187) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Implementado `SYSTEM RESTART DISK <name>`: agora ele recarrega os metadados em memória de um disco e faz uma nova varredura das partes de dados de tabelas com réplica readonly localizadas nele. Isso permite que uma réplica readonly de uma tabela em armazenamento compartilhado `plain_rewritable` veja, sob demanda, os dados gravados por outro servidor, sem esperar por `refresh_parts_interval` nem reiniciar o servidor. [#106645](https://github.com/ClickHouse/ClickHouse/pull/106645) ([Jordi Villar](https://github.com/jrdi)).
* O estilo PostgreSQL `expr OP SOME(array)` / `expr OP ALL(array)` (com lado direito que não é uma subquery) agora é compatível e reescrito para `has` / `NOT has` para `=`/`<>`, ou para lambdas `arrayExists` / `arrayAll` para outros operadores de comparação. `ANY` não é aceito para a forma com array porque `any` também é uma aggregate function; use `SOME` em vez disso. A forma com subquery de `ANY`/`SOME`/`ALL` continua sendo reduzida para `IN` / `NOT IN`. [#105129](https://github.com/ClickHouse/ClickHouse/pull/105129) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionadas duas novas estratégias de `load_balancing`, `hostname_longest_common_prefix` e `hostname_longest_common_suffix`, que preferem a réplica cujo hostname compartilha o prefixo comum mais longo (respectivamente, sufixo) com o hostname do initiator. Elas são úteis quando o data center é codificado como prefixo ou sufixo de hostnames cujos segmentos numéricos têm comprimento variável, situação em que as estratégias existentes `nearest_hostname` e `hostname_levenshtein_distance` escolhem a réplica errada. [#107360](https://github.com/ClickHouse/ClickHouse/pull/107360) ([Denny \[DBA at Innervate\]](https://github.com/den-crane)).
* Adicionadas informações do certificado TLS do cliente (subject, número de série, emissor e período de validade) à tabela `system.session_log` para melhorar a observabilidade da autenticação baseada em certificados. [#107679](https://github.com/ClickHouse/ClickHouse/pull/107679) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona uma credencial opcional `external_id` para acesso baseado em funções no `S3`. [#106941](https://github.com/ClickHouse/ClickHouse/pull/106941) ([Elian Gidoni](https://github.com/eliangidoni)).
* Adicionada uma nova configuração do `S3Queue`, `after_processing_move_preserve_path`. Quando habilitada junto com `after_processing='move'` e `after_processing_move_prefix`, os objetos processados são movidos preservando todo o caminho de origem sob o prefixo de destino, em vez de serem reduzidos apenas ao nome do arquivo. [#105354](https://github.com/ClickHouse/ClickHouse/pull/105354) ([Asya Shneerson](https://github.com/asya-ch)).
* Adiciona a configuração do servidor `message_queue_disable_insertion` para desabilitar a inserção de motores de fila de mensagens (`Kafka`, `RabbitMQ`, `NATS`) em visões materializadas anexadas. Útil para cenários de réplica somente leitura. [#104911](https://github.com/ClickHouse/ClickHouse/pull/104911) ([JIaQi Tang](https://github.com/JiaQiTang98)).
* Adicionados `LOCALTIME` e `LOCALTIMESTAMP` (sintaxe padrão SQL / PostgreSQL). `LOCALTIMESTAMP` é um alias de `now()` (retorna `DateTime`); `LOCALTIME` retorna a hora atual do dia como um valor `Time`. [#106139](https://github.com/ClickHouse/ClickHouse/pull/106139) ([Thomas Cabral](https://github.com/thomas-cabral)).
* Adicionado `date_part('unit', expr)` como açúcar sintático para `EXTRACT(unit FROM expr)`. Todos os tipos de intervalos padrão e os extras do PostgreSQL (`epoch`, `dow`, `doy`, `isodow`, `isoyear`, `century`, `decade`, `millennium`) são suportados. [#105127](https://github.com/ClickHouse/ClickHouse/pull/105127) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `EXTRACT(TIMEZONE_HOUR FROM dt)` e `EXTRACT(TIMEZONE_MINUTE FROM dt)` compatíveis com PostgreSQL para as partes de hora e minuto de um deslocamento de fuso horário, e `EXTRACT(<unit> FROM INTERVAL n <unit>)` / `date_part('<unit>', INTERVAL n <unit>)` para extrair o valor de um intervalo. [#106227](https://github.com/ClickHouse/ClickHouse/pull/106227) ([Vinayak Joshi](https://github.com/vinayakj592)).
* Adicionados aliases de agregação `min_by` e `max_by` para `argMin` e `argMax`. [#105712](https://github.com/ClickHouse/ClickHouse/pull/105712) ([Joey Yu](https://github.com/itsjoeoui)). Esses aliases são estúpidos; engenheiros de verdade usam os nomes originais do ClickHouse.
* Adicionado `REGEXP_SUBSTR` como um alias que não diferencia maiúsculas de minúsculas de `regexpExtract` para compatibilidade com Oracle/MySQL/Snowflake. [#105122](https://github.com/ClickHouse/ClickHouse/pull/105122) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado `SESSION_USER` como um alias que não diferencia maiúsculas de minúsculas de `currentUser()` para compatibilidade com PostgreSQL / padrão SQL. [#106081](https://github.com/ClickHouse/ClickHouse/pull/106081) ([Takumi Hara](https://github.com/takumihara)).
* Suporte a um modificador `NULL` / `NOT NULL` no final de `ALTER TABLE ... ADD/MODIFY COLUMN`, espelhando `CREATE TABLE`. [#106150](https://github.com/ClickHouse/ClickHouse/pull/106150) ([Takumi Hara](https://github.com/takumihara)).
* Agora você pode usar a função `h3PolygonToCellsWithContainment` do h3 para aproveitar o novo algoritmo, que oferece suporte aos modos de contenção baseado no centro, totalmente contido e sobreposto. [#104455](https://github.com/ClickHouse/ClickHouse/pull/104455) ([Youssef Kadry](https://github.com/yousefQadry)).
* Adiciona as flags `IPV4_PREFIX_BITS and IPV6_PREFIX_BITS` quando a chave é definida por `IP_ADDRESS` ou `FORWARDED_IP_ADDRESS`. [#89270](https://github.com/ClickHouse/ClickHouse/pull/89270) ([Aditya Chopra](https://github.com/adityachopra29)).
* `formatReadableTimeDelta` agora aceita como entrada uma expressão `INTERVAL` de tipo diferente de `Month` e `Year`. [#64315](https://github.com/ClickHouse/ClickHouse/pull/64315) ([Francisco J. Jurado Moreno](https://github.com/Beetelbrox)).
* O usuário agora pode especificar um argumento de precisão opcional para as funções `formatReadableSize`, `formatReadableDecimalSize` e `formatReadableQuantity`, controlando o número de dígitos após o separador decimal. O padrão é 2, preservando o comportamento anterior. [#104648](https://github.com/ClickHouse/ClickHouse/pull/104648) ([Antonio Filipovic](https://github.com/antoniofilipovic)).
* Adiciona a configuração `output_format_float_precision` para controlar o número de dígitos decimais na saída de texto de ponto flutuante. [#99721](https://github.com/ClickHouse/ClickHouse/pull/99721) ([phulv94](https://github.com/phulv94)).
* Foi adicionada a configuração `output_format_always_write_decimal_point_in_float_and_decimal` para sempre imprimir um separador decimal para números de ponto flutuante e `Decimal` em formatos de texto, mesmo quando o valor for um número inteiro. Por exemplo, gerar `1.` em vez de `1`. Desabilitada por padrão. [#62614](https://github.com/ClickHouse/ClickHouse/pull/62614) ([Ilya Yatsishin](https://github.com/qoega)).
* Adiciona suporte a novos elementos de configuração de handlers HTTP `<url_prefix>` e `<full_url_prefix>` (correspondem a todos os paths sob um path base, úteis, por exemplo, para handlers do Prometheus), bem como `<url_regexp>`, `<full_url_regexp>` e `<headers_regexp>`. A forma antiga `<url>regex:...</url>` agora está obsoleta. [#107492](https://github.com/ClickHouse/ClickHouse/pull/107492) ([Vitaly Baranov](https://github.com/vitlibar)).
* Oferece suporte a estatísticas `basic`, uma estatística compacta por coluna que armazena min/max numérico, comprimento médio de string e contagens de NULL quando aplicável. [#106048](https://github.com/ClickHouse/ClickHouse/pull/106048) ([Han Fei](https://github.com/hanfei1991)).
* Oferece suporte a nós TTL no ClickHouse Keeper, com ativação opcional pela feature flag `create_ttl`. [#100397](https://github.com/ClickHouse/ClickHouse/pull/100397) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Introduz um recurso de reserva de memória para cargas de trabalho. Consulte a documentação de [agendamento de cargas de trabalho](https://clickhouse.com/docs/operations/workload-scheduling). [#82414](https://github.com/ClickHouse/ClickHouse/pull/82414) ([Sergei Trifonov](https://github.com/serxa)).

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

* Execução de consultas distribuídas em vários estágios: o planejador divide o plano da consulta em estágios conectados por exchanges de scatter / broadcast / gather / shuffle e encaminha os fragmentos do plano para os nós worker. Os dados entre os estágios são transmitidos via TCP ou repassados por arquivos temporários em armazenamento de objetos compartilhado; esse fluxo oferece suporte a shuffle e broadcast hash joins distribuídos, agregação por shuffle e ordenação distribuída. O recurso é experimental e vem desabilitado por padrão. [#106020](https://github.com/ClickHouse/ClickHouse/pull/106020) ([Alexander Gololobov](https://github.com/davenger)). O mecanismo experimental de distributed query plan (`make_distributed_plan`) agora pode usar uma porta diferente para encaminhamento de tarefas e para streaming exchange por worker, configurada por réplica em `<remote_servers>` com `stateless_worker_port` e `streaming_exchange_port`. Quando não estiver definida, serão usadas as portas anteriores no nível do servidor (`stateless_worker_client.port` e `distributed_query.streaming_exchange_port`). Isso permite executar vários workers em um único host. [#107885](https://github.com/ClickHouse/ClickHouse/pull/107885) ([Alexander Gololobov](https://github.com/davenger)).
* Adicionado o algoritmo experimental de reordenação de join `dphyp` para junções internas como opção para a configuração `query_plan_optimize_join_order_algorithm`, além da configuração `query_plan_optimize_join_order_max_searched_plans`, que limita a busca da ordem de join e recorre ao próximo algoritmo da cadeia quando esse limite é excedido; defina-a como `0` para manter o comportamento anterior de busca sem limites. [#98798](https://github.com/ClickHouse/ClickHouse/pull/98798) ([Alexander Gololobov](https://github.com/davenger)).
* Adicionada a função `aiEmbed` para usar APIs de LLM a fim de gerar embeddings de dentro do ClickHouse. [#102922](https://github.com/ClickHouse/ClickHouse/pull/102922) ([George Larionov](https://github.com/george-larionov)).
* Adicionado um canário experimental do Linux OOM: um processo filho sacrificial que o Linux OOM killer alveja antes do processo principal do servidor. Quando habilitado com `oom_canary_enable`, ele reduz a pressão de memória limpando caches do alocador, cancelando consultas, cancelando merges e registrando um evento em `system.crash_log`. A resposta a OOM exige evidência de OOM-kill em `memory.events` do cgroup v2. [#101942](https://github.com/ClickHouse/ClickHouse/pull/101942) ([Peng](https://github.com/fastio)).
* A interface de terminal web em `/webterminal` agora é um recurso de produção e vem habilitada por padrão. Ela é controlada pela nova configuração de servidor `enable_webterminal`; a configuração antiga `allow_experimental_webterminal` está obsoleta, mas ainda é respeitada para compatibilidade retroativa. Para desabilitar o endpoint, defina `enable_webterminal` como `false`. [#106255](https://github.com/ClickHouse/ClickHouse/pull/106255) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Os endpoints HTTP do PromQL agora oferecem suporte à especificação do banco de dados e da tabela por meio de parâmetros de consulta da URL (`database=`, `table=`, ou `table=db.table`). O fallback implícito anterior para a tabela `default.prometheus` foi removido: se nem a config do handler nem a URL especificarem uma tabela, o handler agora retorna `The time series table name is not set`. Para manter o comportamento anterior, configure `<table>default.prometheus</table>` ou passe `table=...` na URL. [#107553](https://github.com/ClickHouse/ClickHouse/pull/107553) ([Vitaly Baranov](https://github.com/vitlibar)).
* Adicionado suporte à função PromQL `histogram_quantile` nas table functions `prometheusQuery` e `prometheusQueryRange`. Isso permite calcular quantis sobre buckets de histogramas clássicos do Prometheus identificados pelo rótulo `le`. [#103477](https://github.com/ClickHouse/ClickHouse/pull/103477) ([Joe Smith](https://github.com/Yasumoto)).
* Adicionado o modo lazy de aplicação de posting list para o text index. Quando habilitado por `SET allow_experimental_text_index_lazy_apply = 1` e `SET text_index_posting_list_apply_mode = 'lazy'`, as posting lists são decodificadas sob demanda, na granularidade de blocos compactados, usando uma abordagem baseada em cursor, em vez de serem totalmente materializadas em Roaring Bitmaps, reduzindo o uso de memória e o tempo de CPU em consultas seletivas com text index. [#100035](https://github.com/ClickHouse/ClickHouse/pull/100035) ([Peng](https://github.com/fastio)).
* Adicionado suporte à ABI do [AssemblyScript](https://www.assemblyscript.org) para UDFs em WebAssembly. Você pode testar a ABI do AssemblyScript sem instalar o toolchain localmente usando o [playground](https://pastila.nl/?0009878e/b9768c4e2144d0c2f3dd512e7a1aaf69.html) no navegador, que compila código em AssemblyScript e carrega o módulo WebAssembly resultante no ClickHouse local. [#104606](https://github.com/ClickHouse/ClickHouse/pull/104606) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Permite anexar handlers do Prometheus à porta HTTP principal com um prefixo opcional. [#104975](https://github.com/ClickHouse/ClickHouse/pull/104975) ([James Cunningham](https://github.com/JTCunning)).
* Adicionada a configuração experimental do `MergeTree` `packed_skip_index_max_bytes`, que agrupa pequenos subfluxos de índices de salto em um único arquivo `skp_idx.packed` por parte, reduzindo a pressão sobre inodes quando muitos índices de salto são definidos em uma tabela. A decisão é tomada por subfluxo no momento da gravação: subfluxos cujo tamanho serializado permanece abaixo do limite vão para o arquivo, enquanto os maiores mantêm o layout independente `skp_idx_<name>.idx2` / `.mrk2`. Uma única parte pode misturar layouts. Índices de texto completo não são suportados e são sempre armazenados por arquivo. O padrão é 0 (empacotamento desabilitado). [#105321](https://github.com/ClickHouse/ClickHouse/pull/105321) ([Raúl Marín](https://github.com/Algunenano)).
* Adicionado suporte à serialização `Buffers` para UDFs em WebAssembly usando `ABI BUFFERED_V1`, além da adição de `webassembly_udf_enable_fuel` como configuração persistida de função UDF em WASM. [#105574](https://github.com/ClickHouse/ClickHouse/pull/105574) ([Antonio Andelic](https://github.com/antonio2368)).
* Adicionada a configuração experimental `use_reader_executor` (desativada por padrão), que encaminha as leituras por um novo `ReaderExecutor` baseado em pipeline em vez da cadeia legada de buffers de leitura. [#106570](https://github.com/ClickHouse/ClickHouse/pull/106570) ([Sema Checherinda](https://github.com/CheSema)). Adicionadas métricas de observabilidade para o caminho de leitura experimental `use_reader_executor`, incluindo um KPI modelado de custo de leitura (`ReaderExecutorModeledCostMsPerRequestedMiB`). [#106968](https://github.com/ClickHouse/ClickHouse/pull/106968) ([Sema Checherinda](https://github.com/CheSema)). Introduzido o buffer `ChainedBuffers` no caminho de leitura experimental `use_reader_executor`, com a métrica `ReaderExecutorChainedBufferBytes`. [#107210](https://github.com/ClickHouse/ClickHouse/pull/107210) ([Sema Checherinda](https://github.com/CheSema)).
* A ordenação decrescente nas chaves de ordenação do `MergeTree` (por exemplo, `ORDER BY (time DESC, key)`) agora é sempre suportada e não exige mais a configuração experimental `allow_experimental_reverse_key`, que se tornou obsoleta. [#106440](https://github.com/ClickHouse/ClickHouse/pull/106440) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* `Nullable(Tuple(...))` agora está em Beta. Desabilitado por padrão; defina `enable_nullable_tuple_type = 1` para usá-lo. [#107754](https://github.com/ClickHouse/ClickHouse/pull/107754) ([Nihal Z. Miaji](https://github.com/nihalzp)).

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

* Várias mudanças no Keeper o deixaram cerca de 2x mais rápido no geral (melhor batching, pipeline de mensagens para o líder, pipeline de acréscimos ao log). [#101757](https://github.com/ClickHouse/ClickHouse/pull/101757) ([Michael Kolupaev](https://github.com/al13n321)).
* Reduz a sobrecarga por consulta em consultas `SELECT` simples (parsing, análise e planejamento). Por exemplo, `SELECT count() FROM hits` em uma única conexão fica aproximadamente 50% mais rápido. [#104513](https://github.com/ClickHouse/ClickHouse/pull/104513) ([Raúl Marín](https://github.com/Algunenano)).
* Otimiza a análise do índice de chave primária para chaves primárias longas e de alta cardinalidade. Para uma chave primária longa, o tempo de execução da análise de índice agora depende principalmente da complexidade do filtro da consulta (as colunas-chave que ela realmente usa), e não do comprimento da chave primária — portanto, estender a chave de ordenação adiciona uma sobrecarga praticamente desprezível à análise de índice em consultas que filtram apenas algumas de suas colunas. Para uma chave primária de alta cardinalidade, em que o ClickHouse mantém em memória apenas um prefixo seletivo das colunas-chave e não carrega as colunas finais, a análise de índice agora funciona apenas com esse prefixo em memória, em vez da chave inteira. A otimização vem habilitada por padrão e pode ser desativada com a nova configuração `use_lightweight_primary_key_index_analysis`. Fecha [#65103](https://github.com/ClickHouse/ClickHouse/issues/65103). [#91836](https://github.com/ClickHouse/ClickHouse/pull/91836) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* A compilação x86 padrão agora tem como alvo x86-64-v3 (AVX2) em vez de x86-64-v2 (SSE4.2). Isso requer uma CPU com suporte a AVX2 (Intel Haswell ou posterior, AMD Excavator ou posterior). Se sua CPU não oferecer suporte a AVX2, use a compilação `amd64compat`, que tem como alvo x86-64 puro. [#105019](https://github.com/ClickHouse/ClickHouse/pull/105019) ([Raúl Marín](https://github.com/Algunenano)).
* Usa `ipnsort` e `driftsort` (ordenação estável) — portas em C++ das implementações de ordenação da biblioteca padrão do Rust — para ordenações por comparação de uso geral. Acelera `ORDER BY` em colunas não numéricas e ordenações estáveis, além de eliminar um pior caso em entradas ordenadas em ordem inversa. [#106650](https://github.com/ClickHouse/ClickHouse/pull/106650) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Nova otimização de `GROUP BY` para chaves de alta cardinalidade distribuídas uniformemente, que distribui as linhas entre threads com base no hash da chave de agrupamento, de modo que cada thread agregue um subconjunto distinto de chaves sem uma fase de mesclagem. Defina `enable_sharding_aggregator = 1` para habilitá-la. [#104233](https://github.com/ClickHouse/ClickHouse/pull/104233) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Habilita prefetching de tabela hash para consultas `GROUP BY` com chave do tipo string, melhorando em \~8% o desempenho da agregação de strings de alta cardinalidade. [#101007](https://github.com/ClickHouse/ClickHouse/pull/101007) ([Le Zhang](https://github.com/damahua)).
* Reduz o pico de uso de memória ao mesclar resultados parciais de agregação em dois níveis com estados de agregação grandes (por exemplo, `groupArray`), liberando incrementalmente os estados de origem de cada bucket durante a mesclagem em vez de mantê-los todos ativos até sua conclusão. [#102330](https://github.com/ClickHouse/ClickHouse/pull/102330) ([Yuri Fedoseev](https://github.com/yurifedoseev)).
* A representação em memória de `Enum` `DataType` foi otimizada. A pegada de memória de tabelas que contêm o tipo `Enum` pode melhorar em até 10x para o componente `Enum`. O tempo para recuperar o nome a partir do valor (número) é semelhante ou menor. A busca por nome é um pouco mais lenta, mas essa forma de acesso é menos comum. [#95668](https://github.com/ClickHouse/ClickHouse/pull/95668) ([Ilya Yatsishin](https://github.com/qoega)).
* Adiciona cache de resolução de identificadores para evitar resolução duplicada de identificadores durante a análise da consulta. [#88043](https://github.com/ClickHouse/ClickHouse/pull/88043) ([Max Justus Spransy](https://github.com/maxjustus)).
* Melhora o desempenho da análise de consultas em tabelas com muitas colunas: evita calcular hashes de nós de coluna (que incluem toda a expressão da tabela de origem) quando isso não é necessário. A análise de subconsultas `SELECT *` aninhadas sobre uma tabela com \~1200 colunas agora está cerca de 50 vezes mais rápida. [#106957](https://github.com/ClickHouse/ClickHouse/pull/106957) ([Dmitry Novik](https://github.com/novikd)).
* Acelerou a análise de consultas com muitas chamadas de função ou com chamadas de função profundamente aninhadas ao remover um hash redundante da árvore de consultas do cache de resolução de funções. [#107516](https://github.com/ClickHouse/ClickHouse/pull/107516) ([Dmitry Novik](https://github.com/novikd)).
* Corrige longas pausas no login e na inicialização de consultas com armazenamento de acesso replicado quando muitas entidades de acesso (políticas de linha, papéis, cotas, perfis de configurações) mudam ao mesmo tempo. Agora, cada cache por entidade é recalculado uma vez por lote de notificações, em vez de uma vez por entidade alterada, eliminando trabalho quadrático que podia manter o bloqueio de acesso por minutos. [#107672](https://github.com/ClickHouse/ClickHouse/pull/107672) ([Azat Khuzhin](https://github.com/azat)).
* Compartilha o `FixedHashMap` do hash join como runtime filter do join no lado de probe. Quando a tabela hash do lado de build é (ou pode ser convertida em) um `FixedHashMap`, ela é publicada como runtime filter e substitui o `Set`/`BloomFilter` que `BuildRuntimeFilterStep` instalaria de outra forma. Controlado pela nova configuração `join_runtime_filter_from_fixed_hash_table` (padrão `true`). [#105640](https://github.com/ClickHouse/ClickHouse/pull/105640) ([Xiaozhe Yu](https://github.com/wudidapaopao)).
* Aplicação lazy de índices de seletor e de replicação no caso de `JOIN` seguido por um `LIMIT` seletivo, `TopN` ou outro `JOIN`. Para controlar o número de colunas de payload necessário para habilitar a indexação lazy de seletor, use a configuração `query_plan_min_columns_for_join_lazy_indexing` (0 significa que a otimização está desabilitada). Para controlar o `LIMIT` ao qual a otimização é aplicada, use a configuração `query_plan_max_limit_for_join_lazy_indexing`. [#106566](https://github.com/ClickHouse/ClickHouse/pull/106566) ([Hechem Selmi](https://github.com/m-selmi)).
* A reordenação de JOIN por DP (programação dinâmica) agora é permitida com réplicas paralelas. [#105889](https://github.com/ClickHouse/ClickHouse/pull/105889) ([Nikita Taranov](https://github.com/nickitat)).
* Melhora o plano de consulta quando o JOIN usa runtime filters (`enable_join_runtime_filters`, ativado por padrão): o modelo de custo de reordenação de joins agora enxerga através de `WindowTransform` (e de outras etapas do plano que preservam linhas) na subárvore da direita e usa a contagem de linhas subjacente e o NDV por coluna, em vez de ficar sem estatísticas. [#107229](https://github.com/ClickHouse/ClickHouse/pull/107229) ([UnamedRus](https://github.com/UnamedRus)).
* Remove a virtualização da emissão de linhas não associadas em joins RIGHT e FULL, processando-as em lote. [#105679](https://github.com/ClickHouse/ClickHouse/pull/105679) ([Hechem Selmi](https://github.com/m-selmi)).
* Adiciona suporte a métodos `keys32` e `keys64` packed em `HashJoin`. [#107202](https://github.com/ClickHouse/ClickHouse/pull/107202) ([Nikita Taranov](https://github.com/nickitat)).
* Adiciona suporte a métodos `keys32` e `keys64` packed em `Set`. [#107564](https://github.com/ClickHouse/ClickHouse/pull/107564) ([Nikita Taranov](https://github.com/nickitat)).
* Tratamento mais otimizado de colunas Nullable na agregação. [#106015](https://github.com/ClickHouse/ClickHouse/pull/106015) ([Nikita Taranov](https://github.com/nickitat)).
* Melhora o desempenho de consultas `LIMIT BY`. [#103349](https://github.com/ClickHouse/ClickHouse/pull/103349) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Acelera consultas `ORDER BY ... LIMIT BY` executando `LIMIT BY` dentro de cada stream ordenado em paralelo durante `Sort`, quando as colunas de `LIMIT BY` são um prefixo de `ORDER BY`. Isso reduz o número de linhas que passam pela mesclagem final da ordenação e por quaisquer etapas posteriores do pipeline. Essa otimização é controlada pela nova configuração `query_plan_push_limit_by_into_sort` (habilitada por padrão). [#104000](https://github.com/ClickHouse/ClickHouse/pull/104000) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Acelera consultas `SELECT ... LIMIT N BY <cols>` quando `<cols>` são um prefixo da chave de ordenação da tabela, ou passam a ser depois que `WHERE col = const` fixa as colunas iniciais. Com isso habilitado, o `MergeTree` lê os dados na ordem da chave primária, e `LIMIT BY` primeiro filtra em modo streaming com memória O(1) por stream ordenado, descartando a maior parte dos dados; em seguida, executa o `LIMIT BY` normal sobre o conjunto reduzido para obter o resultado final. Controlado pela nova configuração `optimize_limit_by_in_order` (habilitada por padrão). [#105135](https://github.com/ClickHouse/ClickHouse/pull/105135) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Acelera consultas `LIMIT BY` em tabelas `MergeTree` particionadas executando `LIMIT BY` dentro do stream de cada partição em paralelo, em vez de mesclar todos os streams em um só antes de aplicar o limite. Isso se aplica quando a expressão de partição é uma função determinística das colunas de `LIMIT BY`, de modo que nenhum grupo de `LIMIT BY` possa abranger duas partições. Controlado pela nova configuração `allow_limit_by_partitions_independently` (habilitada por padrão). [#105126](https://github.com/ClickHouse/ClickHouse/pull/105126) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Acelera consultas `LIMIT BY` removendo expressões-chave redundantes: uma chave que é uma função determinística das outras chaves é descartada (por exemplo, `LIMIT 5 BY x, f(x)` se torna `LIMIT 5 BY x`), e uma função injetiva de uma chave é substituída por seu argumento (por exemplo, `LIMIT 5 BY toString(x)` se torna `LIMIT 5 BY x`). Isso avalia menos expressões, e mais baratas, por linha. Controlado pelas novas configurações `optimize_limit_by_function_keys` e `optimize_injective_functions_in_limit_by`, ambas habilitadas por padrão. [#106818](https://github.com/ClickHouse/ClickHouse/pull/106818) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Acelera a agregação em shards, o bucketing de joins `grace_hash` e o particionamento de janelas em paralelo, substituindo o hashing de colunas por fragmento por um kernel que usa CRC32C por hardware. [#106538](https://github.com/ClickHouse/ClickHouse/pull/106538) ([Harikrishnan Prabakaran](https://github.com/harikrishnan94)).
* Otimiza `L1Distance`, `L2Distance`, `L2SquaredDistance`, `LinfDistance` e `cosineDistance` para argumentos de array com autovetorização multi-target em x86-64-v4/v3. Para argumentos de array não constantes, todos eles, exceto `LpDistance`, que usa `std::pow` com um expoente em tempo de execução, agora podem usar kernels vetorizados pelo compilador. Os caminhos rápidos existentes para argumentos constantes com AVX-512 e `BFloat16` em Sapphire Rapids para `L2Distance` e `cosineDistance` são preservados. [#101310](https://github.com/ClickHouse/ClickHouse/pull/101310) ([Peng](https://github.com/fastio)).
* Melhor desempenho das funções `{Norm}Distance` e `dotProduct`. [#106007](https://github.com/ClickHouse/ClickHouse/pull/106007) ([Nikita Taranov](https://github.com/nickitat)).
* Melhor desempenho da função `arrayNorm`. [#106211](https://github.com/ClickHouse/ClickHouse/pull/106211) ([Nikita Taranov](https://github.com/nickitat)).
* O desempenho de `dotProduct` melhorou em alguns casos. [#106210](https://github.com/ClickHouse/ClickHouse/pull/106210) ([Nikita Taranov](https://github.com/nickitat)).
* Melhorado o desempenho dos caminhos const-left em AVX-512 para `L2Distance` e `cosineDistance` em `Array(Float32)`, `Array(Float64)` e `Array(BFloat16)` quando o comprimento do array é exatamente divisível pela largura do processamento vetorizado. [#104625](https://github.com/ClickHouse/ClickHouse/pull/104625) ([Sergey Kuznetsov](https://github.com/skuznetsov)).
* Habilitada a geração de código AVX-512 para AMD e aprimorada a geração de código para `arrayDistance`. [#106505](https://github.com/ClickHouse/ClickHouse/pull/106505) ([Nikita Taranov](https://github.com/nickitat)).
* Melhorado o desempenho das funções `L2DistanceTransposed` e `cosineDistanceTransposed` para o tipo de dado `QBit`. [#106701](https://github.com/ClickHouse/ClickHouse/pull/106701) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Melhorado o desempenho das funções `encrypt`, `decrypt`, `tryDecrypt`, `aes_encrypt_mysql` e `aes_decrypt_mysql` em até uma ordem de magnitude, recuperando o desempenho perdido na migração do BoringSSL para o OpenSSL 3.x (24.4). [#107339](https://github.com/ClickHouse/ClickHouse/pull/107339) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Melhorado o desempenho das funções `encrypt`, `decrypt` e `halfMD5` ao evitar lookups implícitos por linha de providers do OpenSSL no OpenSSL 3.x. [#99105](https://github.com/ClickHouse/ClickHouse/pull/99105) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Adicionada uma implementação SIMD de `SHA1` que calcula o hash de múltiplas entradas em paralelo usando AVX-512, melhorando a vazão. [#105459](https://github.com/ClickHouse/ClickHouse/pull/105459) ([Joanna Hulboj](https://github.com/jh0x)).
* Adicionado um backend AArch64 ASIMD/NEON para a implementação multi-buffer de `MD5`. [#105563](https://github.com/ClickHouse/ClickHouse/pull/105563) ([Venkata  Vineel ](https://github.com/vyalamar)).
* Compactados os blocos de origem antes de calcular a projeção durante `MATERIALIZE PROJECTION` para reduzir o número de partes temporárias da projeção e a sobrecarga de merge. \~3,4x mais rápido em uma tabela com 50 milhões de linhas. [#100047](https://github.com/ClickHouse/ClickHouse/pull/100047) ([Amos Bird](https://github.com/amosbird)).
* Reduzida a latência de `INSERT` em tabelas `MergeTree` com índices de salto em colunas `ORDER BY`, evitando permutações redundantes de colunas durante a escrita das partes (\~17% em workloads com formato de traces). [#101101](https://github.com/ClickHouse/ClickHouse/pull/101101) ([Amos Bird](https://github.com/amosbird)).
* Habilitados os caminhos de código SIMD do Arrow (NEON em ARM, SSE4.2/AVX2/AVX512 em x86) e usados para acelerar a decodificação de colunas Parquet `FLOAT`/`DOUBLE` codificadas com `BYTE_STREAM_SPLIT`. [#106376](https://github.com/ClickHouse/ClickHouse/pull/106376) ([Raúl Marín](https://github.com/Algunenano)).
* Melhorado o desempenho de inserção em colunas `LowCardinality` com índices `bloom_filter`. [#106410](https://github.com/ClickHouse/ClickHouse/pull/106410) ([Michael Jarrett](https://github.com/EmeraldShift)).
* Paralelizadas as cópias de blobs em `DiskObjectStorageTransaction::copyFile` usando um pool de threads por disk. [#105089](https://github.com/ClickHouse/ClickHouse/pull/105089) ([Asya Shneerson](https://github.com/asya-ch)).
* Evitada a leitura do conteúdo dos arquivos ao usar o formato de entrada `One` com table functions semelhantes a arquivos, como `file` e `s3`. [#105157](https://github.com/ClickHouse/ClickHouse/pull/105157) ([Yue Ni](https://github.com/niyue)).
* Acelerada a inicialização do `clickhouse` no macOS em cerca de 3x ao não exportar símbolos dinâmicos, que, de outra forma, seriam processados pelo vinculador dinâmico a cada inicialização. [#107768](https://github.com/ClickHouse/ClickHouse/pull/107768) ([Raúl Marín](https://github.com/Algunenano)).
* Acelera o carregamento do cache do sistema de arquivos na inicialização ao evitar uma abertura redundante de diretório para cada chave de cache. [#107414](https://github.com/ClickHouse/ClickHouse/pull/107414) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Acelera o carregamento do cache do sistema de arquivos na inicialização ao permitir que as threads de listagem de diretórios também ajudem a carregar os metadados do cache após o fim da listagem, em vez de deixar metade delas ociosas. [#107416](https://github.com/ClickHouse/ClickHouse/pull/107416) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Reduz a sobrecarga de inicialização do processo `clickhouse` ao atualizar a biblioteca WasmEdge incluída, que não gera mais um segredo de hash aleatório em um inicializador global a cada inicialização. [#107869](https://github.com/ClickHouse/ClickHouse/pull/107869) ([Raúl Marín](https://github.com/Algunenano)).
* A chave primária do `MergeTree` e os skip indexes agora podem podar grânulos para filtros em que `ifNull` ou `coalesce` envolvem uma condição, como `ifNull(key = 0, 0)` ou `coalesce(key = 0, 0)`. Esses predicados — frequentemente emitidos por geradores de consultas para transformar uma comparação possivelmente `NULL` em um booleano definido — antes eram opacos à análise de índices e não conseguiam ignorar grânulos. Isso amplia a configuração `allow_key_condition_coalesce_rewrite` existente (habilitada por padrão). Fecha [#106264](https://github.com/ClickHouse/ClickHouse/issues/106264). [#106272](https://github.com/ClickHouse/ClickHouse/pull/106272) ([Andy Zhao](https://github.com/andyzzhao)).
* A avaliação de skip index em tipos `DateTime64` deve consumir menos CPU na versão 26.6. [#107707](https://github.com/ClickHouse/ClickHouse/pull/107707) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Melhora o desempenho da análise de índice de texto em buscas com vários tokens ao otimizar o tratamento de tokens raros. [#98226](https://github.com/ClickHouse/ClickHouse/pull/98226) ([Anton Popov](https://github.com/CurtizJ)).
* Usa um cache para os segmentos comprimidos da lista de postings do índice de texto. [#106299](https://github.com/ClickHouse/ClickHouse/pull/106299) ([Anton Popov](https://github.com/CurtizJ)).
* Melhora o desempenho da busca genérica por exclusão para consultas que selecionam grandes intervalos consecutivos da tabela. [#93813](https://github.com/ClickHouse/ClickHouse/pull/93813) ([Michael Jarrett](https://github.com/EmeraldShift)).
* Clientes `S3` com o mesmo endpoint e bucket compartilham um cache, evitando descoberta duplicada de região. Fecha [#92482](https://github.com/ClickHouse/ClickHouse/issues/92482). [#96802](https://github.com/ClickHouse/ClickHouse/pull/96802) ([Andrey Zvonov](https://github.com/zvonand)).
* Se uma consulta contiver `has(<constant array>, <expr>)`, o analisador transformará o nó para usar uma implementação `in` mais rápida, se isso for viável. [#97341](https://github.com/ClickHouse/ClickHouse/pull/97341) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Quando um novo job é agendado em `ThreadPool`, desperta a worker thread que ficou ociosa mais recentemente (LIFO), em vez de uma thread arbitrária. Isso reduz a fragmentação de memória causada pelos caches do allocator por thread. A ordem em que os jobs são processados não é alterada. [#100177](https://github.com/ClickHouse/ClickHouse/pull/100177) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Melhora o desempenho de runtime filters aproximados e de índices de filtro de Bloom. [#100201](https://github.com/ClickHouse/ClickHouse/pull/100201) ([Christoph Viebig](https://github.com/cv4g)).
* Permite que `ASOF JOIN` use o algoritmo de join `parallel_hash`, paralelizando a construção entre valores distintos da chave de igualdade. Antes, `ASOF` era excluído incondicionalmente de `parallel_hash`. [#105375](https://github.com/ClickHouse/ClickHouse/pull/105375) ([Greg Maher](https://github.com/gregakinman)).
* Evita a leitura de entradas sem limite para consultas `INTERSECT` e `EXCEPT` quando uma entrada vazia já determina que o resultado será vazio. [#105393](https://github.com/ClickHouse/ClickHouse/pull/105393) ([Yue Ni](https://github.com/niyue)).
* Adiciona `constinit` para vários bloqueadores do `MemoryTracker`. [#105490](https://github.com/ClickHouse/ClickHouse/pull/105490) ([Azat Khuzhin](https://github.com/azat)).
* Melhora o desempenho de `bitmapContains` para estados `groupBitmap` diferentes de `UInt64`, evitando chamadas repetidas de `rb_max` durante as verificações de intervalo. [#105960](https://github.com/ClickHouse/ClickHouse/pull/105960) ([Yue Ni](https://github.com/niyue)).
* Consultas não contíguas mais rápidas para colunas `LowCardinality` baseadas em um único dicionário. [#103662](https://github.com/ClickHouse/ClickHouse/pull/103662) ([Ivan Babrou](https://github.com/bobrik)).
* Adiciona um caminho rápido para a sondagem de `HashJoin` quando o bloco tem uma única linha. [#106008](https://github.com/ClickHouse/ClickHouse/pull/106008) ([Nikita Taranov](https://github.com/nickitat)).
* Predicados de consultas como `SELECT ... FROM view(SELECT ... FROM remote(...)) WHERE ... ` agora são inseridos na consulta enviada ao shard remoto. Faltava à otimização `allow_push_predicate_ast_for_distributed_subqueries` um caso para table functions. [#105986](https://github.com/ClickHouse/ClickHouse/pull/105986) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Ativa `enable_join_transitive_predicates` por padrão. [#103724](https://github.com/ClickHouse/ClickHouse/pull/103724) ([Alexander Gololobov](https://github.com/davenger)).
* Adiciona suporte às funções `multiSearchAny`, `multiSearchAnyUTF8` e `multiMatchAny` em índices de texto. Também melhora a análise de índices de texto para a função `match`: agora, padrões com grupos alternativos podem ignorar mais grânulos. [#106279](https://github.com/ClickHouse/ClickHouse/pull/106279) ([Anton Popov](https://github.com/CurtizJ)).
* Permite que filtros introduzidos após a seleção inicial de PREWHERE (predicate pushdown, runtime filters ou PREWHERE explícito mais um WHERE definido pelo planejador) sejam mesclados ao PREWHERE existente em uma segunda passagem do otimizador, em vez de permanecerem como uma etapa `Filter` separada acima da leitura de `MergeTree`. [#105445](https://github.com/ClickHouse/ClickHouse/pull/105445) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* O `QueryConditionCache` agora registra individualmente os grânulos filtrados, mesmo dentro de lotes de leitura que passam parcialmente pelo PREWHERE, reduzindo o número de marks relidos por consultas subsequentes com a mesma condição. [#105335](https://github.com/ClickHouse/ClickHouse/pull/105335) ([Han Fei](https://github.com/hanfei1991)).
* Adiciona a configuração do Keeper `nuraft_use_bg_thread_for_snapshot_io`, habilitada por padrão, para fazer com que o `NuRaft` leia objetos de snapshot em uma thread em segundo plano, em vez de usar worker threads do Raft. [#106285](https://github.com/ClickHouse/ClickHouse/pull/106285) ([Antonio Andelic](https://github.com/antonio2368)).
* Reduz o pico de uso de memória ao aplicar snapshots recebidos no ClickHouse Keeper com `KeeperMemoryStorage`. [#105851](https://github.com/ClickHouse/ClickHouse/pull/105851) ([Antonio Andelic](https://github.com/antonio2368)).
* Direciona alocações de LLVM/JIT para uma Arena dedicada do jemalloc. Reduz a fragmentação de RSS causada pela intercalação entre o bookkeeping de longa duração do JIT e as alocações de consultas de curta duração. Adiciona novas métricas assíncronas `jemalloc.jit_arena.active_bytes`, `jemalloc.jit_arena.dirty_bytes`, `CompiledExpressionCacheBytesMax` e `CompiledExpressionCacheCountMax` para observabilidade. `SYSTEM DROP COMPILED EXPRESSION CACHE` agora também remove as instâncias subjacentes do CHJIT e limpa a Arena do JIT. [#104113](https://github.com/ClickHouse/ClickHouse/pull/104113) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige a reserva excessiva de memória ao ler colunas esparsas `Nullable(String)` codificadas por dicionário de `Parquet` com o leitor V3 nativo. [#102805](https://github.com/ClickHouse/ClickHouse/pull/102805) ([Francisco](https://github.com/Milias)).
* Corrigido o problema em `CREATE TABLE ... CLONE AS (and REPLACE / ATTACH PARTITION ... FROM)` em discos criptografados, que copiava os dados em vez de criar hard links. [#106731](https://github.com/ClickHouse/ClickHouse/pull/106731) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Melhorada a estimativa de cardinalidade no otimizador do plano de consulta: uma coluna produzida por uma função determinística de um único argumento (por exemplo, `toYear(date)`) agora herda, como limite superior, o número de valores distintos do argumento, em vez de ficar sem estatísticas, o que leva a uma reordenação de joins mais precisa. [#107757](https://github.com/ClickHouse/ClickHouse/pull/107757) ([Alexander Gololobov](https://github.com/davenger)).
* Reduzida a sobrecarga de CPU do logging assíncrono sob altas taxas de logs, notificando o consumidor de log apenas na transição da fila de vazia para não vazia, em vez de a cada mensagem. [#107352](https://github.com/ClickHouse/ClickHouse/pull/107352) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Removidos cálculos duplicados durante a execução da consulta em um número maior de cenários. [#106113](https://github.com/ClickHouse/ClickHouse/pull/106113) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Paralelizado o processamento do resultado de uma CTE recursiva: um `GROUP BY` ou outra operação sobre um grande resultado de `WITH RECURSIVE` não fica mais limitado a uma única thread. [#107694](https://github.com/ClickHouse/ClickHouse/pull/107694) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Melhorado o desempenho da busca por substring sem diferenciar maiúsculas de minúsculas (`positionCaseInsensitiveUTF8`, `ILIKE`, `multiSearchAnyCaseInsensitiveUTF8` e funções relacionadas) com a adição de um caminho SIMD NEON em ARM e de um kernel AVX2 mais amplo em x86. [#107882](https://github.com/ClickHouse/ClickHouse/pull/107882) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigida uma regressão de \~16% na vazão do codec de ponto flutuante `FPC` em ARM, introduzida quando suas tabelas preditoras passaram a usar `VectorWithMemoryTracking`. [#108182](https://github.com/ClickHouse/ClickHouse/pull/108182) ([Groene AI](https://github.com/groeneai)).

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

* O `MemoryWorker` em segundo plano agora atualiza periodicamente o limite rígido de memória do servidor com base no uso de memória atual e na quantidade de memória que o kernel informa como disponível, para que o ClickHouse deixe espaço para outros processos em execução no mesmo host. A fórmula é `(resident memory + system MemAvailable) * max_server_memory_usage_to_ram_ratio`. A mesma configuração do servidor `max_server_memory_usage_to_ram_ratio` controla tanto o limite na inicialização quanto o ajuste dinâmico; defina-a como `0` para desabilitar ambos. Para manter apenas o limite estático de inicialização/recarga (o comportamento das versões anteriores), defina a nova configuração do servidor `memory_worker_dynamic_hard_limit` como `0`. [#104964](https://github.com/ClickHouse/ClickHouse/pull/104964) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suporte a cliente PostgreSQL para C# no protocolo `PostgreSQL`. Isso fecha [#18611](https://github.com/ClickHouse/ClickHouse/issues/18611). [#80785](https://github.com/ClickHouse/ClickHouse/pull/80785) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* As mutações agora usam o analyzer. [#98884](https://github.com/ClickHouse/ClickHouse/pull/98884) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Adicionado controle granular sobre a exibição de consultas na CLI. A opção `--echo` agora aceita um valor booleano opcional e funciona tanto no modo interativo quanto no modo batch. As novas opções `--echo-formatted` e `--echo-query-id` controlam se as consultas exibidas são formatadas e se o `query_id` é impresso, respectivamente. A opção `--hilite`/`--highlight` agora também controla o realce das consultas exibidas. Como efeito colateral, `--echo` agora é uma opção com valor booleano, então uma consulta posicional logo após um `--echo` sem valor é tratada como esse valor; use `--echo --query "..."` ou `--echo=false` em vez disso. [#106191](https://github.com/ClickHouse/ClickHouse/pull/106191) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suporte a evolução de esquema junto com verificações de consistência concorrentes para catálogos de lago de dados. [#106102](https://github.com/ClickHouse/ClickHouse/pull/106102) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Permite disco de cache para motores de tabela de data lake. [#102017](https://github.com/ClickHouse/ClickHouse/pull/102017) ([RinChanNOW](https://github.com/RinChanNOWWW)).
* Corrige bancos de dados `DataLakeCatalog` com `catalog_type = 'onelake'` para ler dados de tabela usando o endpoint Blob do OneLake (`.blob.fabric.microsoft.com`) por padrão. Defina `onelake_use_blob_endpoint = false` para manter o comportamento anterior do endpoint DFS (`.dfs.fabric.microsoft.com`). [#106843](https://github.com/ClickHouse/ClickHouse/pull/106843) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Atualiza o valor padrão da configuração `persistent_processing_node_ttl_seconds` de `S3(Azure)Queue` de `1 hour` para `6 hours` (o que representa o tempo de limpeza devido a reinicializações não limpas do serviço etc.). O valor padrão anterior era adequado para o TTL dos nós de processamento, mas também é usado para o TTL do bloqueio de bucket, que pode ser mantido por mais tempo; portanto, 1 hora não era suficiente. [#106838](https://github.com/ClickHouse/ClickHouse/pull/106838) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Reduzido o tamanho padrão do cache de metadados de `Iceberg` de 1 GB para 128 MB. [#106492](https://github.com/ClickHouse/ClickHouse/pull/106492) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Propaga o `query_id` da tarefa de streaming `S3Queue` para inserções em tabelas dependentes. [#106494](https://github.com/ClickHouse/ClickHouse/pull/106494) ([Christoph Wurm](https://github.com/cwurm)).
* Preenche `used_storages` em `system.query_log` com o nome do motor de armazenamento ao consultar tabelas via `DataLakeCatalog`. [#100706](https://github.com/ClickHouse/ClickHouse/pull/100706) ([Melvyn Peignon](https://github.com/melvynator)).
* Você pode verificar quais `operation` e `summary` os snapshots do Iceberg têm. Útil para testes e depuração. [#106246](https://github.com/ClickHouse/ClickHouse/pull/106246) ([Den Kalantaevskii](https://github.com/Diskein)).
* Conclui a solicitação final de multipart upload do `S3` de forma assíncrona por meio do rastreador de tarefas, para que ela possa se sobrepor ao upload da última parte, em vez de ser executada em série na finalização. [#105487](https://github.com/ClickHouse/ClickHouse/pull/105487) ([Asya Shneerson](https://github.com/asya-ch)).
* Adicionadas quatro novas configurações de tabela do `MergeTree` para controlar os parâmetros padrão de índices de texto: `text_index_dictionary_block_size`, `text_index_dictionary_block_frontcoding_compression`, `text_index_posting_list_block_size` e `text_index_posting_list_codec`. Essas configurações permitem ajustar o comportamento do índice de texto no nível da tabela sem especificar parâmetros em cada definição de índice. Argumentos explícitos por índice ainda têm precedência. [#100626](https://github.com/ClickHouse/ClickHouse/pull/100626) ([Anton Popov](https://github.com/CurtizJ)).
* Permite que projeções substituam configurações adicionais do `MergeTree` (compressão, formato de part, serialização), além de apenas `index_granularity`, com uma lista de permissões de configurações permitidas e validação. [#101170](https://github.com/ClickHouse/ClickHouse/pull/101170) ([Amos Bird](https://github.com/amosbird)).
* Adiciona as colunas `current_projection`, `current_projection_progress`, `projections_completed` e `projections_remaining` a `system.merges` para expor o progresso da merge de projeções. [#102611](https://github.com/ClickHouse/ClickHouse/pull/102611) ([Amos Bird](https://github.com/amosbird)).
* Corrigido `PREWHERE` com subconsulta `IN` em colunas de chave primária que não usava o índice da chave primária para Granule pruning, causando full table scans em vez de ler apenas os granules relevantes. [#102570](https://github.com/ClickHouse/ClickHouse/pull/102570) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* A função `h3PolygonToCells` agora aplica o tamanho máximo de array a todos os polígonos de um `MultiPolygon`, valida os códigos de retorno da biblioteca H3 subjacente e rejeita argumentos `MultiLineString` em vez de retornar silenciosamente um resultado vazio. [#106399](https://github.com/ClickHouse/ClickHouse/pull/106399) ([Raúl Marín](https://github.com/Algunenano)).
* Adiciona uma nova tabela somente do Keeper, `system.keeper_snapshots`, com informações sobre snapshots locais do ClickHouse Keeper. [#105571](https://github.com/ClickHouse/ClickHouse/pull/105571) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Adiciona uma nova tabela somente do Keeper, `system.keeper_changelogs`, com informações sobre arquivos locais de changelog (log do Raft) do ClickHouse Keeper. [#105617](https://github.com/ClickHouse/ClickHouse/pull/105617) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Adiciona uma tabela somente do Keeper, `system.keeper_cluster`. Contém uma linha por membro do cluster Raft, conforme visto pelo Keeper atual. [#105646](https://github.com/ClickHouse/ClickHouse/pull/105646) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Adiciona mais eventos de perfil do Keeper (server-side + client-side) para watches. Fecha [#97703](https://github.com/ClickHouse/ClickHouse/issues/97703). [#105336](https://github.com/ClickHouse/ClickHouse/pull/105336) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Adicionadas `coordination_settings` do Keeper para limitar a admissão de entradas de log não confirmadas do `NuRaft` e fazer throttling de backward-probe de append-entries. [#106108](https://github.com/ClickHouse/ClickHouse/pull/106108) ([Antonio Andelic](https://github.com/antonio2368)).
* Adiciona a configuração `enable_compression` para a table function `mysql`, o table engine `MySQL`, o database engine `MySQL`, o Dicionário `SOURCE(MYSQL)` e named collections. Quando habilitada, o ClickHouse negocia compressão no nível do protocolo MySQL para todos os dados transferidos pela conexão. [#103229](https://github.com/ClickHouse/ClickHouse/pull/103229) ([Bernard Lim](https://github.com/bernardlim)).
* Reduzida a latência de cancelamento para consultas executadas pelo PostgreSQL wire protocol: `KILL QUERY` agora interrompe a serialização da saída dentro de um único fragmento, em vez de esperar que o fragmento inteiro seja enviado ao cliente. [#106535](https://github.com/ClickHouse/ClickHouse/pull/106535) ([Roman Vasin](https://github.com/rvasin)).
* Reduzida a latência de cancelamento para consultas executadas pelo MySQL wire protocol: `KILL QUERY` agora interrompe a serialização da saída dentro de um único fragmento, em vez de esperar que o fragmento inteiro seja enviado ao cliente. [#107228](https://github.com/ClickHouse/ClickHouse/pull/107228) ([Roman Vasin](https://github.com/rvasin)).
* Corrigida a leitura do comprimento de `auth_response` no handshake do MySQL, em que um byte de comprimento `>= 128` era interpretado como um valor de vários gigabytes porque era lido como um `char` com sinal. [#107384](https://github.com/ClickHouse/ClickHouse/pull/107384) ([uwezkhan](https://github.com/uwezkhan)).
* `MaterializedPostgreSQL` agora mapeia colunas PostgreSQL `numeric(p, 0)` com precisão maior que 76 (por exemplo, `numeric(78, 0)` usado para inteiros de 256 bits) para ClickHouse `Int256`, em vez de falhar com "Precision too big". Valores que não cabem em `Int256` são rejeitados com uma mensagem de erro clara. [#107431](https://github.com/ClickHouse/ClickHouse/pull/107431) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Envia uma exceção ao cliente quando a inicialização da conexão TCP falha. [#107317](https://github.com/ClickHouse/ClickHouse/pull/107317) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Agora os usuários podem inserir campos `Fixed` do `Avro` para variantes de inteiros de 8/16/32/64 bits. [#98139](https://github.com/ClickHouse/ClickHouse/pull/98139) ([Patrick Pichler](https://github.com/patrickpichler)).
* O format `AvroConfluent` agora faz novas tentativas no Confluent Schema Registry HTTP client em falhas transitórias (timeouts de transporte, conexão recusada, erros de DNS, HTTP `5xx`/`408`/`429`) com backoff exponencial, em vez de abortar o INSERT na primeira instabilidade de rede. As novas Settings `format_avro_schema_registry_max_retries` (padrão `5`) e `format_avro_schema_registry_retry_initial_backoff_ms` (padrão `100`) controlam essa política. Erros de validação de schema (HTTP `409`, Avro JSON malformado) continuam sendo fatais. [#106661](https://github.com/ClickHouse/ClickHouse/pull/106661) ([Groene AI](https://github.com/groeneai)).
* Registra privilégios em `system.query_log.used_privileges` para todas as verificações de acesso concedidas, incluindo as que passam pelo caminho sem exceção `isGranted` (`checkAccessWithFilter`). Antes, apenas os privilégios verificados por pontos de entrada que lançam exceção (`checkAccess` / `checkGrantOption`) eram registrados, o que deixava `READ ON FILE` / `READ ON S3` / `READ ON AZURE` / `READ ON URL` invisíveis no log de auditoria de `DESCRIBE`, `CREATE TABLE AS` e consultas semelhantes que usam table functions `file` / `s3` / `azure` / `url`. A aplicação do controle de acesso permanece inalterada. [#104693](https://github.com/ClickHouse/ClickHouse/pull/104693) ([Alexey Bakharew](https://github.com/alexbakharew)).
* Adicionadas as métricas assíncronas `TotalUncompressedBytesOfMergeTreeTables` e `TotalUncompressedBytesOfMergeTreeTablesSystem`, que informam o tamanho total não comprimido dos dados armazenados em tabelas da família MergeTree. [#106364](https://github.com/ClickHouse/ClickHouse/pull/106364) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado o evento de perfil `GlobalMemoryLimitExceeded` para que operadores possam monitorar quando o limite global de memória do servidor é atingido. [#106466](https://github.com/ClickHouse/ClickHouse/pull/106466) ([Sacheendra Talluri](https://github.com/sacheendra)).
* Popula os contadores `ExecutableUserDefinedFunction*` de `ProfileEvents` para UDFs `executable_pool`. A contagem de invocações por chamada, o tempo total e o tempo de espera no pool, a CPU e a memória de pico dos processos filhos, além dos bytes de stdin/stdout, agora estão visíveis em `system.query_log.ProfileEvents`. [#105010](https://github.com/ClickHouse/ClickHouse/pull/105010) ([Xu Jia](https://github.com/XuJia0210)) [#105618](https://github.com/ClickHouse/ClickHouse/pull/105618) ([Ilya Andreev](https://github.com/andreev-io)).
* Adicionadas as métricas assíncronas `ExecutableUserDefinedFunctionMemoryResidentBytes` e `ExecutableUserDefinedFunctionProcesses`, que informam a memória residente (`VmRSS`) e o número de processos em execução de Funções Definidas pelo Usuário `executable` e `executable_pool`, incluindo processos descendentes e workers ociosos do pool. [#107300](https://github.com/ClickHouse/ClickHouse/pull/107300) ([Hanzi Jiang](https://github.com/HanziJiang)).
* Adicionadas três métricas async exclusivas do Linux — `MemoryThreadStacksCount`, `MemoryThreadStacksVirtual` e `MemoryThreadStacksResident` — que informam a memória de stack de pthread separadamente do restante da memória anônima. Habilitadas via `asynchronous_metrics_enable_heavy_metrics`. Requer Linux 5.17+ (`prctl(PR_SET_VMA_ANON_NAME)`) e `/proc/self/smaps` legível; caso contrário, as métricas ficam ausentes e a limitação é informada em `system.warnings`. [#106230](https://github.com/ClickHouse/ClickHouse/pull/106230) ([Raúl Marín](https://github.com/Algunenano)).
* Expõe as métricas assíncronas `MemoryThreadStacks*` (tamanho residente/virtual e contagem de stacks de threads) no macOS. [#107752](https://github.com/ClickHouse/ClickHouse/pull/107752) ([Raúl Marín](https://github.com/Algunenano)).
* Os motores de tabela agora incluem documentação embutida, inspecionável por meio das novas colunas `description`, `syntax`, `examples`, `introduced_in` e `related` da tabela `system.table_engines`. [#106177](https://github.com/ClickHouse/ClickHouse/pull/106177) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Os motores de banco de dados agora incluem documentação embutida, inspecionável por meio das novas colunas `description`, `syntax`, `examples`, `introduced_in` e `related` da tabela `system.database_engines`. [#106178](https://github.com/ClickHouse/ClickHouse/pull/106178) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Os tipos de dados agora incluem documentação embutida, inspecionável por meio das novas colunas `description`, `syntax`, `examples`, `introduced_in` e `related` da tabela `system.data_type_families`. [#106180](https://github.com/ClickHouse/ClickHouse/pull/106180) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Os formatos de entrada/saída agora incluem documentação embutida, inspecionável por meio das novas colunas `description`, `examples`, `introduced_in` e `related` da tabela `system.formats`. [#106181](https://github.com/ClickHouse/ClickHouse/pull/106181) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Os combinadores de função de agregação agora incluem documentação embutida, inspecionável por meio das novas colunas `description`, `syntax`, `examples`, `introduced_in` e `related` da tabela `system.aggregate_function_combinators`. [#106185](https://github.com/ClickHouse/ClickHouse/pull/106185) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionada a opção de linha de comando `--chime` ao `clickhouse-client`, `clickhouse-local` e ao client embutido. Quando uma consulta termina (com sucesso ou com erro) após ser executada por pelo menos N segundos, o client grava o caractere de controle ASCII `BEL` (`\x07`) em stderr. Os terminais decidem se devem emitir um som ou um alerta visual com base nas preferências do usuário. Habilitado por padrão com um limite de 5 segundos; passe `--chime N` para um limite personalizado ou `--chime 0` para desabilitar. Fecha [#92718](https://github.com/ClickHouse/ClickHouse/issues/92718). [#104545](https://github.com/ClickHouse/ClickHouse/pull/104545) ([Groene AI](https://github.com/groeneai)).
* No `clickhouse-client`, quando o terminal não oferece suporte a colagem entre colchetes, as quebras de linha embutidas em uma consulta multilinha colada agora são agrupadas no mesmo buffer de edição, em vez de alternar para o prompt de continuação a cada linha. A consulta colada permanece em um único prompt, e as teclas de seta permitem navegar entre suas linhas. Esta é uma melhoria de melhor esforço, que depende do comportamento típico de colagem com buffer de TTY. [#104299](https://github.com/ClickHouse/ClickHouse/pull/104299) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Agora também funciona com o syntax highlighting desabilitado (`--highlight 0`). [#106665](https://github.com/ClickHouse/ClickHouse/pull/106665) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona controle de pager em runtime no estilo do MySQL para `clickhouse-client`/`clickhouse-local`. [#105706](https://github.com/ClickHouse/ClickHouse/pull/105706) ([Azat Khuzhin](https://github.com/azat)).
* O `clickhouse-client` agora respeita terminais não UTF-8: quando a codificação de caracteres do terminal não é UTF-8 (por exemplo, com `LANG=C`), os formatos `Pretty` passam a usar bordas de grade ASCII em vez de imprimir caracteres Unicode de desenho de caixa que corromperiam o terminal. [#106213](https://github.com/ClickHouse/ClickHouse/pull/106213) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Sanitiza as strings de exibição fornecidas pelo servidor no tratamento do pacote `Hello` do `clickhouse-client` (nome do servidor, time zone, nome de exibição, patterns e mensagens de regras de senha), para que um servidor malicioso não possa injetar bytes que o client renderize literalmente, e limita seu tamanho para evitar allocation sem limites. [#105243](https://github.com/ClickHouse/ClickHouse/pull/105243) ([Raúl Marín](https://github.com/Algunenano)).
* A interface web agora exibe o resultado como uma imagem quando uma consulta usa um output format de imagem, como `FORMAT PNG`, em vez de mostrar os raw bytes como tabela. [#107638](https://github.com/ClickHouse/ClickHouse/pull/107638) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona a configuração `output_format_pretty_use_nbsp_for_padding` para renderizar o padding do layout de tabela nos formatos `Pretty` em estilo de tabela como `U+00A0` NO-BREAK SPACE quando `output_format_pretty_grid_charset` for `UTF-8`. Isso ajuda a saída `Pretty` copiada a manter o alinhamento da tabela em ferramentas que colapsam espaços comuns. A configuração vem desabilitada por padrão, e a saída com charset `ASCII` mantém espaços comuns. [#103559](https://github.com/ClickHouse/ClickHouse/pull/103559) ([Ashrith Bandla](https://github.com/ashrithb)).
* O script de instalação universal agora também instala `clickhousectl` em `~/.local/bin` no Linux e macOS, com um link simbólico `chctl`. Defina `CLICKHOUSE_ONLY=1` para pular isso. [#105399](https://github.com/ClickHouse/ClickHouse/pull/105399) ([Alasdair Brown](https://github.com/sdairs)).
* Corrigido um `Syntax error: Unterminated quoted string` espúrio que podia ocorrer intermitentemente ao instalar o ClickHouse via `curl https://clickhouse.com/ | sh` quando já existia um binary `clickhouse` no current directory. [#106417](https://github.com/ClickHouse/ClickHouse/pull/106417) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a altura do painel esquerdo na página `play.html` quando o web terminal está aberto, para que o botão de toggle do terminal na parte inferior permaneça visível. [#105087](https://github.com/ClickHouse/ClickHouse/pull/105087) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Evita selecionar a única consulta na interface web depois de executá-la. [#105711](https://github.com/ClickHouse/ClickHouse/pull/105711) ([Joey Yu](https://github.com/itsjoeoui)).
* A interface web SQL agora expande o editor de consultas quando uma consulta tem altura no máximo 30% maior que a altura atual do editor. [#105713](https://github.com/ClickHouse/ClickHouse/pull/105713) ([Joey Yu](https://github.com/itsjoeoui)).
* Na interface web, disponha os ícones do menu inferior (Terminal web e GitHub) horizontalmente quando o painel esquerdo estiver expandido, dando à lista de bancos de dados e tabelas mais espaço vertical. [#106427](https://github.com/ClickHouse/ClickHouse/pull/106427) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Na interface web (`play.html`), pressionar `Escape` agora desativa a célula atualmente selecionada na tabela de resultados. [#107777](https://github.com/ClickHouse/ClickHouse/pull/107777) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Melhorias no painel de bancos de dados da interface web SQL (Play): uma dica de ferramenta no ícone do banco de dados, um botão para ocultar o painel, nomes de bancos de dados/tabelas clicáveis em toda a largura e uma correção para a mudança na largura do painel quando a barra de rolagem aparece. [#108013](https://github.com/ClickHouse/ClickHouse/pull/108013) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona uma configuração do servidor (`min_allocation_size_to_throw_on_memory_limit`) para permitir que qualquer alocação lance `MEMORY_LIMIT_EXCEEDED`; isso deve ajudar a evitar OOMs. [#105265](https://github.com/ClickHouse/ClickHouse/pull/105265) ([Azat Khuzhin](https://github.com/azat)).
* Permite autenticação `NONE` para SSH (evita pedir senha para usuários `no_password`). [#105476](https://github.com/ClickHouse/ClickHouse/pull/105476) ([Azat Khuzhin](https://github.com/azat)).
* Redefine a lista de grupos suplementares em `clickhouse su` antes de descartar privilégios, alinhando-se ao comportamento de `/bin/su` e `sudo`. Antes, o processo com privilégios descartados herdava os grupos suplementares de quem o invocava. [#105247](https://github.com/ClickHouse/ClickHouse/pull/105247) ([Raúl Marín](https://github.com/Algunenano)).
* Adiciona suporte a `BFloat16` para funções de predicado numérico (`isFinite`, `isNaN`). [#105391](https://github.com/ClickHouse/ClickHouse/pull/105391) ([Mohamed Hussain S](https://github.com/mohhddhassan)).
* Reduz o uso de memória dos dicionários de polígonos (`polygon_index_cell`, `polygon_index_each`) e faz com que `system.dictionaries.bytes_allocated` reflita corretamente o índice de busca que eles constroem. [#105431](https://github.com/ClickHouse/ClickHouse/pull/105431) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige consumers do Kafka table engine que continuavam usando um intervalo de poll curto após a atribuição de partição, para que voltem ao `kafka_poll_timeout_ms` configurado e evitem polls vazios em excesso, partes inseridas menores e sobrecarga extra de merge após rebalances. [#100431](https://github.com/ClickHouse/ClickHouse/pull/100431) ([sugaf1204](https://github.com/sugaf1204)).
* Identifica colunas por posição (em vez de por nome) ao remover colunas não utilizadas no plano de consulta. Isso permite remover colunas não utilizadas quando há nomes de coluna duplicados. [#100586](https://github.com/ClickHouse/ClickHouse/pull/100586) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* O ClickHouse lança uma exceção apropriada para tentativas de usar `table_readonly` em engines replicados, com melhor tratamento de exceções para consultas DDL (e `DatabaseReplicated`) relacionadas a essa configuração. [#100950](https://github.com/ClickHouse/ClickHouse/pull/100950) ([alesapin](https://github.com/alesapin)). `OPTIMIZE TABLE ... ON CLUSTER` e outros DDL não ficam mais travados quando a tabela de destino tem `table_readonly = 1`. A configuração agora lança um novo código de erro dedicado, `TABLE_IS_PERMANENTLY_READ_ONLY`, que `DDLWorker` trata como não passível de nova tentativa (distinto do transitório `TABLE_IS_READ_ONLY`, que surge durante desconexões temporárias do ZooKeeper em `ReplicatedMergeTree`). A configuração `table_readonly` agora também é explicitamente rejeitada para `ReplicatedMergeTree`, tanto na criação quanto via `ALTER MODIFY SETTING`. Continuação de [#97652](https://github.com/ClickHouse/ClickHouse/issues/97652). [#105109](https://github.com/ClickHouse/ClickHouse/pull/105109) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigidas atualizações de views materializadas atualizáveis que podiam falhar com `UNKNOWN_TABLE` após a tabela de destino ter sido substituída (por exemplo, via `EXCHANGE TABLES` ou ao excluir e recriar): agora a atualização resolve a tabela de destino pelo nome, em vez de depender de um UUID obsoleto. [#102724](https://github.com/ClickHouse/ClickHouse/pull/102724) ([Seva Potapov](https://github.com/seva-potapov)).
* Adicionada a configuração `wait_for_part_commit_in_dependent_materialized_views` (padrão `false`). Quando o `SELECT` de uma visão materializada relê sua própria tabela de origem (por exemplo, via um `INNER JOIN` com a origem), a cascata podia não ver a linha que estava sendo inserida naquele momento, porque a part inserida só recebe commit depois que as views dependentes são executadas. Ao ativar essa configuração, a part recebe commit antes de as views dependentes serem acionadas, para que elas vejam a linha em trânsito, com o custo de menor paralelismo de insert. [#105943](https://github.com/ClickHouse/ClickHouse/pull/105943) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Não suprimir erros fatais (por exemplo, `MEMORY_LIMIT_EXCEEDED`) em `tryDeserialize`. [#106808](https://github.com/ClickHouse/ClickHouse/pull/106808) ([Azat Khuzhin](https://github.com/azat)).
* Verificação sob demanda da permissão `CREATE TEMPORARY TABLE` em `InverseDictionaryLookupPass`. [#107098](https://github.com/ClickHouse/ClickHouse/pull/107098) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido um erro `ILLEGAL_TYPE_OF_ARGUMENT` para consultas distribuídas com `serialize_query_plan = 1` que contêm uma lambda com um argumento constante (por exemplo, `arrayMap(t -> t.2, ...)`). As colunas constantes dos nós `INPUT` de `ActionsDAG` agora são preservadas durante a serialização do plano de consulta. [#107124](https://github.com/ClickHouse/ClickHouse/pull/107124) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A desserialização dos estados das funções agregadas `contingency`, `cramersV`, `cramersVBiasCorrected` e `theilsU` agora valida que as contagens armazenadas formam uma tabela de contingência consistente e lança uma exceção `CORRUPTED_DATA` caso contrário. Fecha [#106899](https://github.com/ClickHouse/ClickHouse/issues/106899). [#107185](https://github.com/ClickHouse/ClickHouse/pull/107185) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Preservados os códigos de erro originais para exceções encapsuladas em `arrow::Status`. [#107267](https://github.com/ClickHouse/ClickHouse/pull/107267) ([Azat Khuzhin](https://github.com/azat)).
* Adicionado suporte a `keyed_by_normalized_query_hash` para quotas definidas na configuração estática do servidor (`users.xml`), em conformidade com a sintaxe DDL existente `CREATE QUOTA ... KEYED BY normalized_query_hash`. [#107654](https://github.com/ClickHouse/ClickHouse/pull/107654) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A configuração de compatibilidade não aplica mais configurações obsoletas, portanto não as marca como alteradas nem gera avisos de configuração obsoleta. [#107737](https://github.com/ClickHouse/ClickHouse/pull/107737) ([Maxim Orlovsky](https://github.com/UberDever)).
* Os inserts assíncronos não registram mais a lista completa de `query_id`s no nível `trace`/`debug`, o que, desde a versão 26.2, podia inflar `text_log` em serviços com tráfego intenso de inserts assíncronos. As entradas detalhadas agora ficam no nível `test`. [#107852](https://github.com/ClickHouse/ClickHouse/pull/107852) ([Sema Checherinda](https://github.com/CheSema)).
* Melhoria no cache do sistema de arquivos: impedir que entradas de prioridade invalidadas mantenham `KeyMetadata` fixado. Continuação de [#106387](https://github.com/ClickHouse/ClickHouse/pull/106387). [#107903](https://github.com/ClickHouse/ClickHouse/pull/107903) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Melhoria nas métricas de `FileCache`. [#106116](https://github.com/ClickHouse/ClickHouse/pull/106116) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Não imprimir o preâmbulo "Stack trace (when copying this message, always include the lines below):" em mensagens de exceção quando o stack trace estiver de fato vazio. [#106524](https://github.com/ClickHouse/ClickHouse/pull/106524) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um possível overflow em `roundUpToMultiple` ao calcular o alinhamento da fronteira do filesystem cache para offsets muito grandes. [#92579](https://github.com/ClickHouse/ClickHouse/pull/92579) ([Bharat Nallan](https://github.com/bharatnc)).
* `EXPLAIN SYNTAX` agora formata operadores como chamadas de função de maneira consistente na saída do explain (por exemplo, `plus(1, 2)` em vez de `1 + 2`). [#94681](https://github.com/ClickHouse/ClickHouse/pull/94681) ([Mohamed Abdelhalim ](https://github.com/1abdelhalim)).
* Melhoradas as sugestões de nomes de tabelas nas mensagens de erro: não sugere mais exatamente o mesmo nome e inclui o nome do banco de dados na sugestão (por exemplo, "Maybe you meant `other_db.my_table`?"). [#95116](https://github.com/ClickHouse/ClickHouse/pull/95116) ([Mathuranath Metivier](https://github.com/matt-metivier)).
* Melhorada a mensagem de erro para identificadores não resolvidos em consultas sem uma cláusula `FROM`, sugerindo adicionar uma. [#101769](https://github.com/ClickHouse/ClickHouse/pull/101769) ([Yash ](https://github.com/Onyx2406)).
* Adiciona a opção `EXPLAIN PIPELINE` para compactar cadeias repetidas de processadores. [#104662](https://github.com/ClickHouse/ClickHouse/pull/104662) ([Yue Ni](https://github.com/niyue)).
* Corrige uma leitura com heap-buffer-overflow na construção de mensagens de erro de sintaxe (`UTF8::computeWidthImpl` via `parseQuery.cpp`) que ocorria quando o parser retrocedia além do primeiro token de ponto e vírgula / fim de fluxo; nas compilações de lançamento, bytes da memória heap vizinha eram inseridos no erro exibido, enquanto compilações com ASan abortavam. [#105086](https://github.com/ClickHouse/ClickHouse/pull/105086) ([Groene AI](https://github.com/groeneai)).
* Torna a estratégia de partição hive o padrão na configuração de compatibilidade `file_like_engine_default_partition_strategy`. [#86746](https://github.com/ClickHouse/ClickHouse/pull/86746) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Usa uma stack de thread maior (8 MiB) no macOS para corresponder ao padrão do Linux, corrigindo falhas raras do servidor por stack overflow durante a compilação JIT. [#107033](https://github.com/ClickHouse/ClickHouse/pull/107033) ([Raúl Marín](https://github.com/Algunenano)).
* O limite de tamanho do armazenamento temporário do `clickhouse-local` não é mais fixado em 1 GiB. O padrão foi aumentado para 1 TiB e pode ser configurado com a configuração do servidor `max_temporary_data_on_disk_size`. [#106689](https://github.com/ClickHouse/ClickHouse/pull/106689) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona o comando `read-checksums` ao `clickhouse-disks`. Ele lê o arquivo `checksums.txt` de uma `MergeTreeDataPart` e o imprime como uma tabela legível por humanos, separada por tabulação. [#106901](https://github.com/ClickHouse/ClickHouse/pull/106901) ([Asya Shneerson](https://github.com/asya-ch)).
* Adiciona o comando `read-bitmap` ao `clickhouse-disks`. [#107834](https://github.com/ClickHouse/ClickHouse/pull/107834) ([murphy-4o](https://github.com/murphy-4o)).
* Chdig: habilita TLS para conexões seguras (antes, isso levava a "unknown setting `skip_verify`" ou "connection reset by peer"). [#105864](https://github.com/ClickHouse/ClickHouse/pull/105864) ([Azat Khuzhin](https://github.com/azat)).
* [`chdig` v26.5.1](https://github.com/azat/chdig/releases/tag/v26.5.1). [#105918](https://github.com/ClickHouse/ClickHouse/pull/105918) ([Azat Khuzhin](https://github.com/azat)).
* [`chdig` v26.6.1](https://github.com/azat/chdig/releases/v26.6.1) - `{asynchronous_,}metric_log`, padrões de consulta, mapas de calor, logs/traces armazenados em disco (antes podia consumir >40GiB para 1 hora de traces). [#107678](https://github.com/ClickHouse/ClickHouse/pull/107678) ([Azat Khuzhin](https://github.com/azat)).
* A configuração do servidor (`programs/server/config.xml`) agora define `keep_alive_timeout` como 30 (antes, 10), alinhando-o ao valor padrão real documentado e implementado. [#107779](https://github.com/ClickHouse/ClickHouse/pull/107779) ([Dan Checkoway](https://github.com/dcheckoway)).
* O valor padrão da configuração do servidor `disk_connections_rcvbuf` mudou de `0` (autotuning de TCP do kernel) para `204800` (200 KB), limitando o buffer de recepção TCP por socket para conexões de disco com armazenamento de objetos (`S3`/`Azure`/`GCS`). [#107859](https://github.com/ClickHouse/ClickHouse/pull/107859) ([Sema Checherinda](https://github.com/CheSema)).
* O otimizador `PREWHERE` agora agrupa conjunções que fazem referência ao mesmo conjunto de colunas antes de estimar a seletividade, para que condições como `a > 2500 AND a < 2502` sejam avaliadas em conjunto como um intervalo combinado, em vez de dois predicados independentes, produzindo uma estimativa de seletividade mais precisa. [#106337](https://github.com/ClickHouse/ClickHouse/pull/106337) ([Han Fei](https://github.com/hanfei1991)).
* Adicionadas implementações de socket seguras e sem criptografia com suporte a silk fiber. [#107680](https://github.com/ClickHouse/ClickHouse/pull/107680) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrigida uma mensagem de erro corrompida (argumentos invertidos) e um erro de digitação na função `nested`. [#108031](https://github.com/ClickHouse/ClickHouse/pull/108031) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado um comando `sed` ao `clickhouse-disks` que aplica uma expressão sed a um caminho especificado, no próprio local. [#107131](https://github.com/ClickHouse/ClickHouse/pull/107131) ([Asya Shneerson](https://github.com/asya-ch)).
* Adicionada a configuração em tempo de criação `materialized_postgresql_use_extended_date_and_time_types` para o database engine `MaterializedPostgreSQL`. Por padrão (habilitada), as colunas `date`/`timestamp` do PostgreSQL são inferidas como `Date32`/`DateTime64`; ao defini-la como `0` no momento de `CREATE DATABASE`, são inferidos os tipos mais restritos `Date`/`DateTime`. [#107428](https://github.com/ClickHouse/ClickHouse/pull/107428) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Passa a ser possível remover detached parts com o sufixo `tryN`. [#58957](https://github.com/ClickHouse/ClickHouse/pull/58957) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige uma exceção `MULTIPLE_EXPRESSIONS_FOR_ALIAS` em consultas com aliases de projeção duplicados (por exemplo, `SELECT *, day + 365 AS day`) dentro de subconsultas aninhadas ao executar com réplicas paralelas. [#80310](https://github.com/ClickHouse/ClickHouse/pull/80310) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um bug em `splitMultipartQuery` que gerava o erro "Empty query" em consultas que terminam com comentário após o ponto e vírgula. [#85491](https://github.com/ClickHouse/ClickHouse/pull/85491) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige uma exceção com `ARRAY JOIN`s: `Function writeSlice expects same column types for GenericArraySlice and GenericArraySink`, que ocorre quando são usados tipos numéricos `LowCardinality` (issue [#57243](https://github.com/ClickHouse/ClickHouse/issues/57243)). [#91784](https://github.com/ClickHouse/ClickHouse/pull/91784) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Corrige a exceção `NOT_FOUND_COLUMN_IN_BLOCK` ao usar `LIMIT BY` com colunas constantes junto com `DISTINCT` e `ORDER BY` no novo analyzer. [#93195](https://github.com/ClickHouse/ClickHouse/pull/93195) ([Ashrith Bandla](https://github.com/ashrithb)).
* Corrige colunas `NOT NULL` sendo criadas silenciosamente como `Nullable` quando `data_type_default_nullable = 1` e a tabela é criada em um banco de dados `Replicated` ou via `ON CLUSTER`. [#97572](https://github.com/ClickHouse/ClickHouse/pull/97572) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* Corrigida a estabilidade da conexão do HiveCatalog com a adição de um mecanismo de retry automático e lógica de reconexão para lidar com erros TTransportException na comunicação com o Hive Metastore. [#98471](https://github.com/ClickHouse/ClickHouse/pull/98471) ([Dmitriy Borisenko](https://github.com/otselnik)).
* Corrigida a função `nested` (usada internamente por `ARRAY JOIN`) que removia `LowCardinality` dos tipos de coluna, fazendo com que `Array(LowCardinality(String))` se tornasse `Array(String)` na saída. Fecha [#95582](https://github.com/ClickHouse/ClickHouse/issues/95582). [#98974](https://github.com/ClickHouse/ClickHouse/pull/98974) ([Yash ](https://github.com/Onyx2406)).
* Corrige a exceção "Distributed task iterator is not initialized" ao usar `url`, `s3` ou funções de tabela semelhantes em consultas com réplicas paralelas habilitadas. [#100146](https://github.com/ClickHouse/ClickHouse/pull/100146) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige uma exceção de erro lógico ao ler tabelas Iceberg cuja versão de formato foi atualizada por uma ferramenta externa (por exemplo, Spark). [#100407](https://github.com/ClickHouse/ClickHouse/pull/100407) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* As funções `like`, `ilike`, `notLike`, `notILike` e `match` agora oferecem suporte a haystack constante com needle não constante (por exemplo, `'foo' LIKE pattern_column`), o que antes gerava `ILLEGAL_COLUMN`. [#100479](https://github.com/ClickHouse/ClickHouse/pull/100479) ([Yash ](https://github.com/Onyx2406)).
* Corrigida a contagem incorreta de linhas retornada por uma consulta de `MaterializedView` com `query_plan_enable_optimizations = 0` quando a view mapeia uma coluna inteira para uma coluna `Bool`. [#100692](https://github.com/ClickHouse/ClickHouse/pull/100692) ([Maksim Moisiuk](https://github.com/Maximus5)).
* Corrige uma exceção (`LOGICAL_ERROR: 'PREWHERE passed to format that doesn't support it'`) ao ler tabelas Iceberg que contêm arquivos de dados ORC com a otimização PREWHERE habilitada. [#101206](https://github.com/ClickHouse/ClickHouse/pull/101206) ([Groene AI](https://github.com/groeneai)).
* Corrige uma condição de corrida no RestCatalog. [#101216](https://github.com/ClickHouse/ClickHouse/pull/101216) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Corrige o erro `NOT_FOUND_COLUMN_IN_BLOCK` ao selecionar dados de uma VIEW sobre uma tabela com uma projeção normal. [#101218](https://github.com/ClickHouse/ClickHouse/pull/101218) ([Amos Bird](https://github.com/amosbird)).
* Corrige metadados desatualizados no FileLog quando um arquivo é excluído e recriado. [#101408](https://github.com/ClickHouse/ClickHouse/pull/101408) ([Azat Khuzhin](https://github.com/azat)).
* Corrige a reordenação de join, que descartava silenciosamente linhas sem correspondência de um `RIGHT`/`LEFT JOIN` quando ele era combinado por vírgula (cross) com outra tabela, por exemplo, `t1 RIGHT JOIN t2 ON t1.c = t2.c, t3`. Antes, a consulta retornava o resultado de um inner join em vez de um outer join. [#101684](https://github.com/ClickHouse/ClickHouse/pull/101684) ([Groene AI](https://github.com/groeneai)).
* Corrige o caso em que a cláusula `FORMAT` era consumida por `INSERT` em vez de ser aplicada à saída de `EXPLAIN` em `EXPLAIN INSERT INTO ... SELECT ... FORMAT ...`. [#101772](https://github.com/ClickHouse/ClickHouse/pull/101772) ([Yash ](https://github.com/Onyx2406)).
* Corrige a seleção incorreta do compression codec para partes `MergeTree` quando a configuração `default_compression_codec` no nível da tabela era definida explicitamente. As partes gravadas on insert, durante merges e para projeções usavam o codec padrão do servidor em vez da configuração no nível da tabela (a parte vazia produzida por uma mutação que exclui tudo agora também está coberta). [#101784](https://github.com/ClickHouse/ClickHouse/pull/101784) ([Yash ](https://github.com/Onyx2406)).
* Rejeita valores negativos de `Float64` (por exemplo, `-100.5`) em configurações de workload como `max_bytes_per_second`, `max_cpus` etc. Antes, apenas inteiros negativos eram validados, permitindo que floats negativos criassem silenciosamente nós de scheduler inválidos. Fecha [#101825](https://github.com/ClickHouse/ClickHouse/issues/101825). [#101842](https://github.com/ClickHouse/ClickHouse/pull/101842) ([Groene AI](https://github.com/groeneai)).
* Corrige um `LOGICAL_ERROR` ("Port is not connected", código 49) que podia ocorrer ao executar consultas envolvendo uma VIEW com agregação dentro de um JOIN. [#102574](https://github.com/ClickHouse/ClickHouse/pull/102574) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Corrige metadados inconsistentes de partes após mutações de colunas com serializações não padrão. [#102817](https://github.com/ClickHouse/ClickHouse/pull/102817) ([Eduard Karacharov](https://github.com/korowa)).
* Corrige a atualização dos metadados antes da execução da mutação, resolvendo [#96806](https://github.com/ClickHouse/ClickHouse/issues/96806). [#102882](https://github.com/ClickHouse/ClickHouse/pull/102882) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Corrige consultas SELECT significativamente mais lentas quando `INSERT`s concorrentes estão em execução. Antes, um pipeline de `INSERT` reservava slots de CPU até `max_threads` no início da consulta, mesmo quando a maioria desses slots nunca era usada, prejudicando instrução SELECT concorrentes. A alocação de slots de CPU agora passa a ser orientada pela demanda: o pipeline só solicita slots à medida que realmente envia trabalho paralelizável. Isso se aplica tanto ao controle de concorrência quanto ao scheduler preemptivo de CPU para workloads. A nova configuração de servidor `concurrent_threads_lazy_allocation` (padrão `true`) funciona como uma alavanca de rollback. [#102928](https://github.com/ClickHouse/ClickHouse/pull/102928) ([Seva Potapov](https://github.com/seva-potapov)).
* Corrige a propagação de `NULL` ao ler subcolunas extraídas de colunas `Nullable(Tuple(...))`. Por exemplo, para `tup Nullable(Tuple(s Nullable(String)))`, `SELECT tup.s` agora retorna corretamente `NULL` nas linhas em que a tupla externa é `NULL`, em vez de valores lixo. Isso abrange todos os tipos de elemento que podem representar `NULL`: `Nullable`, `Dynamic`, `Variant` e `LowCardinality(Nullable(...))`. Fecha [#105356](https://github.com/ClickHouse/ClickHouse/issues/105356). [#102942](https://github.com/ClickHouse/ClickHouse/pull/102942) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Gera `INCORRECT_DATA` em vez de `LOGICAL_ERROR` quando os dados fornecidos pelo cliente no formato Native estão truncados ou malformados. [#102975](https://github.com/ClickHouse/ClickHouse/pull/102975) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Adiciona verificação de cancelamento à operação de leitura de ObjectStorage. Fecha [#98165](https://github.com/ClickHouse/ClickHouse/issues/98165). [#103016](https://github.com/ClickHouse/ClickHouse/pull/103016) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Passa a respeitar `input_format_binary_max_type_complexity` na decodificação de parâmetros de função de agregação. Fecha [#102903](https://github.com/ClickHouse/ClickHouse/issues/102903). [#103026](https://github.com/ClickHouse/ClickHouse/pull/103026) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige a inferência de nulabilidade para colunas geoespaciais no leitor de Parquet baseado em Arrow. Fecha [#101845](https://github.com/ClickHouse/ClickHouse/issues/101845). [#103032](https://github.com/ClickHouse/ClickHouse/pull/103032) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige o `recursiveRemoveLowCardinality`, que removia nomes personalizados de tipos de geometria (por exemplo, `LineString` vs `Ring`, `MultiLineString` vs `Polygon`), causando interpretação incorreta do tipo de geometria. Fecha [#103207](https://github.com/ClickHouse/ClickHouse/issues/103207). [#103041](https://github.com/ClickHouse/ClickHouse/pull/103041) ([Joanna Hulboj](https://github.com/jh0x)).
* Corrige o problema em que `input_format_max_block_size_bytes` era ignorado silenciosamente durante o parsing de `INSERT` quando `max_insert_block_size_bytes` é `0` (o padrão). A configuração agora limita corretamente o tamanho dos blocos produzidos por formatos de entrada orientados a linhas. [#103068](https://github.com/ClickHouse/ClickHouse/pull/103068) ([Kirill Kopnev](https://github.com/Fgrtue)).
* Corrige o problema em que o ClickHouse ocasionalmente produzia tokens GSSAPI inválidos devido à remoção incorreta de bytes nulos finais. [#103114](https://github.com/ClickHouse/ClickHouse/pull/103114) ([Michael Jarrett](https://github.com/EmeraldShift)).
* Corrige o constant folding em tempo de analyzer para funções de curto-circuito (`if`, `multiIf`, `and`, `or`, etc.), para que ramificações estaticamente inalcançáveis não gerem mais exceções no momento da análise. Por exemplo, `WITH 0 AS n SELECT multiIf(n = 0, 0, intDiv(100, n))` agora retorna corretamente `0` em vez de falhar com um erro de divisão por zero. [#103157](https://github.com/ClickHouse/ClickHouse/pull/103157) ([Peng](https://github.com/fastio)).
* `EXPLAIN SYNTAX` expande views parametrizadas. [#103263](https://github.com/ClickHouse/ClickHouse/pull/103263) ([Jordi Villar](https://github.com/jrdi)).
* Corrige a corrupção de dados ao gravar Parquet (e outros formatos com trailer, como ORC e Arrow) no HDFS via `INSERT INTO FUNCTION hdfs(...)`. Desde a versão 26.1, `WriteBufferFromHDFS` não fazia flush do buffer de trabalho em `finalize()`, então os últimos até `DBMS_DEFAULT_BUFFER_SIZE` bytes de cada arquivo eram perdidos silenciosamente, incluindo o rodapé `PAR1` do Parquet. A leitura desses arquivos retornava `Not a Parquet file (wrong magic bytes at the end of file)`. [#103268](https://github.com/ClickHouse/ClickHouse/pull/103268) ([Groene AI](https://github.com/groeneai)).
* Corrige resultados incorretos e um possível erro lógico em subconsultas correlacionadas quando um limite de tamanho de `join` (`max_rows_in_join` / `max_bytes_in_join`) é definido junto com `join_overflow_mode = 'break'`. O `join` criado internamente para avaliar uma subconsulta correlacionada agora ignora esses limites do usuário, portanto não pode mais parar antes do tempo e descartar linhas. [#103322](https://github.com/ClickHouse/ClickHouse/pull/103322) ([Groene AI](https://github.com/groeneai)).
* Corrige um bug em que `ALTER TABLE ... MODIFY SETTING` em uma tabela `EmbeddedRocksDB` podia persistir um valor de configuração inválido no arquivo de metadados da tabela, mesmo quando o servidor rejeitava a consulta. Na reinicialização seguinte do servidor, a tabela deixava de poder ser anexada com `CANNOT_PARSE_BOOL` (ou um erro de parsing semelhante) e, em bancos de dados em que falhas de carregamento são fatais, o servidor se recusava a iniciar. Valores de configuração inválidos agora são rejeitados antes que qualquer metadado seja gravado. [#103417](https://github.com/ClickHouse/ClickHouse/pull/103417) ([Groene AI](https://github.com/groeneai)).
* Corrige um abort do servidor ao criar uma tabela com um motor de armazenamento de objetos (`AzureBlobStorage`, `DeltaLakeAzure`, `S3`, `HDFS`) usando um número de argumentos sem suporte. O servidor agora retorna um erro `NUMBER_OF_ARGUMENTS_DOESNT_MATCH` claro, em vez de abortar em builds de debug/sanitizer. [#103544](https://github.com/ClickHouse/ClickHouse/pull/103544) ([Groene AI](https://github.com/groeneai)).
* Corrige uma falha do servidor no parsing de parâmetros dos tipos de dados `JSON` e `Dynamic` quando a árvore de sintaxe abstrata (AST) estava estruturalmente malformada (por exemplo, produzida pelo AST fuzzer): a expressão de parâmetro `equals(name, value)` podia ficar com menos de dois filhos, que `DataTypeObject` e `DataTypeDynamic` então desreferenciavam sem verificação de limites. [#103545](https://github.com/ClickHouse/ClickHouse/pull/103545) ([Groene AI](https://github.com/groeneai)).
* Corrige erros lógicos no analyzer com colisão de nomes de coluna em lambda usada em `PREWHERE`. Fecha [#103584](https://github.com/ClickHouse/ClickHouse/issues/103584). [#103627](https://github.com/ClickHouse/ClickHouse/pull/103627) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige o erro esporádico `Logical error: 'Database <name> not found'` de `DataLakeConfiguration::getCatalog` quando uma tabela com engine `Iceberg` é carregada dentro de um banco de dados comum durante o carregamento assíncrono de metadados. [#103775](https://github.com/ClickHouse/ClickHouse/pull/103775) ([Groene AI](https://github.com/groeneai)).
* Corrige erros `MULTIPLE_EXPRESSIONS_FOR_ALIAS` lançados por réplicas remotas ao executar consultas que referenciam aliases de projeção dentro de `PREWHERE` / `WHERE` / `HAVING` / `QUALIFY` (por exemplo, `SELECT x AS a, y AS b, (a AND b) AS c FROM t PREWHERE c`) ou `SELECT *` em autorjunções com nomes de coluna sobrepostos, com réplicas paralelas e `parallel_replicas_local_plan = 0`. Fecha [#74324](https://github.com/ClickHouse/ClickHouse/issues/74324). [#103806](https://github.com/ClickHouse/ClickHouse/pull/103806) ([Groene AI](https://github.com/groeneai)).
* Corrige um abort do servidor quando uma consulta usa comparações aninhadas de `coalesce`/`ifNull` (por exemplo, `WHERE coalesce(a, b, coalesce(c, d), e) = const`) em uma tabela `MergeTree` com vários skip indexes `minmax` e `use_skip_indexes_for_disjunctions = 1`. A reescrita de skip index de `<op>(coalesce(...), const)` agora é aplicada recursivamente aos argumentos internos de `coalesce`, para que a RPN de `KeyCondition` por índice corresponda à RPN do template, como o código de rastreamento de disjunção já pressupõe. [#103929](https://github.com/ClickHouse/ClickHouse/pull/103929) ([Groene AI](https://github.com/groeneai)).
* Corrige `max_rows_to_transfer` e `max_bytes_to_transfer`, que eram ignorados silenciosamente em consultas `GLOBAL IN` e `GLOBAL JOIN` no novo analyzer. As configurações agora geram `SET_SIZE_LIMIT_EXCEEDED` (ou interrompem a execução, dependendo de `transfer_overflow_mode`) quando a tabela external materializada excede o limite configurado, alinhando-se ao comportamento do analyzer antigo. Fecha [#103333](https://github.com/ClickHouse/ClickHouse/issues/103333). [#104119](https://github.com/ClickHouse/ClickHouse/pull/104119) ([Groene AI](https://github.com/groeneai)).
* Corrige leituras excessivas de metadata de catálogo/S3 quando um `INSERT` ou uma instrução DDL faz referência a uma tabela inexistente em um database de catálogo DataLake com `show_data_lake_catalogs_in_system_tables` habilitado. O caminho de sugestão para correção de erros de digitação carregava todos os metadata Iceberg por tabela de todo o catálogo, o que podia esgotar a memória em catálogos grandes. [#104124](https://github.com/ClickHouse/ClickHouse/pull/104124) ([DQ](https://github.com/il9ue)).
* Corrige uma falha (`LOGICAL_ERROR` "Columns are assumed to be of identical types, but they are different in Nullable" em compilações de depuração, um SIGSEGV por ponteiro nulo em `ColumnString::compareAt` em compilações de lançamento) e um resultado incorreto que podiam ocorrer em consultas usando `direct` `join_algorithm` com uma tabela `MergeTree` no lado direito quando o query plan reordenava colunas durante a otimização. As colunas do lado direito podiam acabar em slots com nomes incorretos, fazendo com que um filter ou uma comparação na chave de junção visse uma coluna do tipo errado. Detectado pelo AST fuzzer como STID 2139-5111 e reportado em [#107272](https://github.com/ClickHouse/ClickHouse/issues/107272). [#104174](https://github.com/ClickHouse/ClickHouse/pull/104174) ([Groene AI](https://github.com/groeneai)).
* Rejeita partition ID inteiro fora do intervalo para `Date`, em vez de causar overflow silencioso ou `LOGICAL_ERROR` em `ALTER`. [#104250](https://github.com/ClickHouse/ClickHouse/pull/104250) ([Azat Khuzhin](https://github.com/azat)).
* Desabilita `additional_table_filters` com réplicas paralelas e o analyzer sem serialização do query plan. Antes, isso podia levar a resultados incorretos. [#104296](https://github.com/ClickHouse/ClickHouse/pull/104296) ([Azat Khuzhin](https://github.com/azat)).
* Corrige `dictGetOrNull`, que sobrescrevia silenciosamente outras colunas na projeção `SELECT` com `NULL` quando chamada com uma coluna-chave `Nullable` cujos valores estão ausentes no Dicionário. A função estava modificando in place um mapa de nulos com alias da entrada; agora, ela faz uma cópia profunda da coluna de resultado antes da mutação. Fecha [#73633](https://github.com/ClickHouse/ClickHouse/issues/73633). [#104327](https://github.com/ClickHouse/ClickHouse/pull/104327) ([Groene AI](https://github.com/groeneai)).
* Corrige uma patch part corrompida após `ALTER TABLE ... DROP PARTITION ID 'patch-...'` seguido de `DETACH`/`ATTACH TABLE`. Antes, a parte de cobertura vazia era gravada sem `partition.dat` e `source_parts.dat`, o que levava a uma entrada `broken-on-start_patch-...` em `system.detached_parts` após o próximo attach ou a reinicialização do servidor. Fecha [#93132](https://github.com/ClickHouse/ClickHouse/issues/93132). Fecha [#102103](https://github.com/ClickHouse/ClickHouse/issues/102103). [#104353](https://github.com/ClickHouse/ClickHouse/pull/104353) ([Groene AI](https://github.com/groeneai)).
* Corrige `INSERT` em streaming com `input_format_max_block_wait_ms` para a interface `HTTP` e para `INSERT SELECT FROM input`, para que blocos de entrada parciais sejam gravados em disco antes do fim da request. [#104534](https://github.com/ClickHouse/ClickHouse/pull/104534) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um bug em que consultas que combinavam `arrayJoin` com `ORDER BY ... LIMIT` após um `JOIN` podiam retornar zero linhas silenciosamente. A otimização do plano de consulta que move a avaliação de função para antes do `SortingStep` não se aplica mais quando a expressão movida contém `arrayJoin`, já que `arrayJoin` pode alterar o número de linhas. Fecha [#82279](https://github.com/ClickHouse/ClickHouse/issues/82279). [#104558](https://github.com/ClickHouse/ClickHouse/pull/104558) ([Groene AI](https://github.com/groeneai)).
* Corrige um raro aborto do servidor durante a destruição de uma tabela da família `MergeTree`. O aborto podia ocorrer quando `shutdown` lançava uma exceção antes que o scheduler de tarefas em segundo plano fosse totalmente interrompido: uma tarefa em segundo plano disparada nessa pequena janela faria o encaminhamento de uma chamada virtual por meio de um objeto de armazenamento parcialmente destruído e atingiria `__cxa_pure_virtual`. [#104561](https://github.com/ClickHouse/ClickHouse/pull/104561) ([Groene AI](https://github.com/groeneai)).
* Corrige resultado inconsistente em subcoluna combinada `JSON` com uma dica de tipo contendo valor nulo. [#104584](https://github.com/ClickHouse/ClickHouse/pull/104584) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige resultados incorretos ou projeção ignorada quando uma projeção agregada contém vários agregados `sumIf` com diferentes condições `IN (...)`. [#104765](https://github.com/ClickHouse/ClickHouse/pull/104765) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Corrige contagem incorreta de linhas de `arrayJoin()` usado dentro de `JOIN ON`: o resultado era multiplicado pelo comprimento do array uma vez a mais. [#104785](https://github.com/ClickHouse/ClickHouse/pull/104785) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Corrige `deltaSumTimestamp` retornando resultados incorretos para tipos inteiros com sinal que cruzam zero. Resolve [#104750](https://github.com/ClickHouse/ClickHouse/issues/104750). [#104830](https://github.com/ClickHouse/ClickHouse/pull/104830) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige incompatibilidade na estrutura de blocos em UnionStep após push-down de filtro com constantes NULL. Fecha [#104821](https://github.com/ClickHouse/ClickHouse/issues/104821). [#104853](https://github.com/ClickHouse/ClickHouse/pull/104853) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige `Logical error: 'Metadata is not initialized'` gerado por `DELETE FROM` em uma tabela `Iceberg`, `DeltaLake` ou `Hudi` recém-attached cujo arquivo de metadados está corrompido ou não pode ser carregado. Em vez disso, é reportada uma exceção normal voltada ao usuário, e o servidor continua em execução. Fecha [#104891](https://github.com/ClickHouse/ClickHouse/issues/104891). [#104917](https://github.com/ClickHouse/ClickHouse/pull/104917) ([Groene AI](https://github.com/groeneai)).
* Corrige o fato de `max_memory_usage_soft_limit` não ser atualizado on-the-fly quando a configuração mudava. O soft memory limit era calculado uma vez na inicialização e armazenado em cache, portanto recarregamentos posteriores da configuração não tinham efeito. Após essa correção, o limite é recalculado e aplicado imediatamente a cada recarregamento da configuração, sem necessidade de reiniciar o Keeper. [#104940](https://github.com/ClickHouse/ClickHouse/pull/104940) ([Kai Zhu](https://github.com/nauu)).
* Corrige a resolução de símbolos JIT no macOS para que a compilação JIT de ordenação, expressão e agregação não falhe mais com `CANNOT_COMPILE_CODE: Could not find symbol _<name>`. [#104946](https://github.com/ClickHouse/ClickHouse/pull/104946) ([Alexei Fedotov](https://github.com/leshikus)).
* Corrige uma exceção (`Received signal 6 (abort)` no hardening de vetor, observável como `Tuple::back()` em um vetor vazio) ao executar uma consulta no formato `SELECT ... FROM <Distributed table> WHERE/HAVING/GROUP BY ... (sharding_key_column IN tuple())` com `optimize_skip_unused_shards_rewrite_in` habilitado sob o novo analisador. [#104966](https://github.com/ClickHouse/ClickHouse/pull/104966) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige uma interrupção do servidor com `Logical error: 'Inconsistent AST formatting'` (STID 1941-1bfa) em consultas como `CREATE TABLE t (c0 Int CODEC(not((not(materialize(1), materialize(2)))), ZSTD)) ENGINE = Memory` em compilações de debug / sanitiser. O formatador não emite mais parênteses externos redundantes em torno de uma chamada da função `tuple(...)` com vários argumentos dentro de listas de argumentos de `CODEC` / `STATISTICS` / `BACKUP_NAME` (onde a forma de operador `(a, b)` fica desabilitada), mantendo estável o round-trip de formatar-analisar-formatar. [#104991](https://github.com/ClickHouse/ClickHouse/pull/104991) ([Groene AI](https://github.com/groeneai)).
* Corrige `NOT_FOUND_COLUMN_IN_BLOCK` lançado por `ALTER TABLE ... MATERIALIZE INDEX` em partes criadas na 25.8 que contêm um skip index sobre uma coluna adicionada com um `ALTER TABLE ... ADD COLUMN` separado. A mutation agora lê corretamente cada coluna exigida por cada skip index e projeção preexistente na partição durante o recálculo forçado. Fecha [#104872](https://github.com/ClickHouse/ClickHouse/issues/104872). [#105039](https://github.com/ClickHouse/ClickHouse/pull/105039) ([Groene AI](https://github.com/groeneai)).
* Corrige dois casos de `LOGICAL_ERROR: Reading from materialized CTE 'X' before it has been materialized` lançados por consultas com `enable_materialized_cte`: (1) uma materialized CTE reutilizada e filtrada por `IN (subquery)` sobre outra materialized CTE; e (2) uma materialized CTE referenciada tanto diretamente quanto dentro de um filtro `WHERE ... IN (...)` que atinge uma chave primária do MergeTree por meio de uma subconsulta `IN` aninhada. O `EXPLAIN` dessas mesmas consultas também era afetado, porque os bugs eram disparados durante a otimização do plano. Fecha [#101940](https://github.com/ClickHouse/ClickHouse/issues/101940), fecha [#102320](https://github.com/ClickHouse/ClickHouse/issues/102320). [#105041](https://github.com/ClickHouse/ClickHouse/pull/105041) ([Dmitry Novik](https://github.com/novikd)).
* Corrige a estimativa de seletividade de `PREWHERE` nas estatísticas `countmin` para colunas `Float32`. Dois bugs faziam com que as estatísticas `countmin` produzissem silenciosamente estimativas incorretas para colunas `Float32`: `ConditionSelectivityEstimator` ignorava completamente as estatísticas quando o tipo da coluna (`Float32`) era mais estreito que o tipo do literal (`Float64`), recorrendo à seletividade padrão e ignorando o sketch; e `StatisticsCountMinSketch::estimateEqual` calculava o hash dos primeiros N bytes de um objeto `Field`, mas `Field` armazena `Float32` como `Float64` (`NearestFieldType<Float32>` = `Float64`), então o padrão de bytes usado no momento da consulta diferia dos bytes reais de `Float32` armazenados durante a compilação. [#105047](https://github.com/ClickHouse/ClickHouse/pull/105047) ([Han Fei](https://github.com/hanfei1991)).
* Consultas `ATTACH TABLE name <clauses>;` que fornecem cláusulas de armazenamento (`ORDER BY`, `PARTITION BY`, `PRIMARY KEY`, `SAMPLE BY`, `TTL`, `UNIQUE KEY` ou `SETTINGS` do engine) sem um `ENGINE` agora lançam `BAD_ARGUMENTS`, em vez de simplesmente reanexar a tabela com sua definição armazenada e descartar as cláusulas fornecidas pelo usuário. `SETTINGS` de sessão no nível da consulta (como `log_comment`) continuam sendo aplicados. Use `ATTACH TABLE t;` para reanexar usando os metadata armazenados, ou `ALTER TABLE t MODIFY SETTING ...` após `ATTACH` para alterar as configurações. [#105068](https://github.com/ClickHouse/ClickHouse/pull/105068) ([Groene AI](https://github.com/groeneai)).
* Corrige um use-after-free em `runningAccumulate` quando chamado em uma coluna cuja função aggregate retorna seu próprio state (por exemplo, `uniqStateOrDefaultState`, `sumStateOrDefaultState`, `uniqStateForEachState`). [#105085](https://github.com/ClickHouse/ClickHouse/pull/105085) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige um bug na UI Web (`play.html`): executar uma consulta enquanto o cursor estava após o único `;` final retornava "consulta vazia" em vez de executar a consulta. [#105107](https://github.com/ClickHouse/ClickHouse/pull/105107) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige `LOGICAL_ERROR: 'No user in current context, it's a bug'` quando um `CREATE TABLE ... AS SELECT` dentro de um banco de dados `Replicated` lê de `system.current_roles` ou `system.enabled_roles`. A consulta agora é executada com sucesso e retorna um conjunto de resultados vazio nesse contexto interno do worker de DDL. [#105150](https://github.com/ClickHouse/ClickHouse/pull/105150) ([Groene AI](https://github.com/groeneai)).
* Corrigido `ILLEGAL_TYPE_OF_ARGUMENT` ao mesclar estados agregados de `quantileExactWeightedInterpolated`, `quantileDD` ou `quantilePrometheusHistogram` com suas contrapartes no plural `quantilesXxxMerge` (e vice-versa). As variantes no singular e no plural dessas três famílias de quantile compartilham o mesmo estado agregado interno, mas não estavam listadas na tabela interna de mapeamento de nomes, por isso a mesclagem de estados entre funções — e a otimização de fusão de funções para essas famílias — era rejeitada. [#105189](https://github.com/ClickHouse/ClickHouse/pull/105189) ([Groene AI](https://github.com/groeneai)).
* Corrige resultados incorretos de `toStartOfWeek`, `toLastDayOfWeek`, `toMonday`, `toStartOfMonth`, `toLastDayOfMonth`, `toStartOfQuarter` e `toStartOfYear` para argumentos `Date32` e `DateTime64` cujo resultado fica fora do intervalo de `Date`: em vez de estourar para datas arbitrárias, os resultados anteriores a `1970-01-01` agora são limitados a `1970-01-01`, e os resultados posteriores a `2149-06-06` são limitados a `2149-06-06`. Isso também corrige resultados de consulta incorretos (partes e grânulos podados incorretamente) quando essas funções eram usadas em `WHERE` sobre uma chave `Date32` ou `DateTime64` contendo valores fora do intervalo. [#105244](https://github.com/ClickHouse/ClickHouse/pull/105244) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige um logical error em `arrayRemove` quando o primeiro argumento é um array de `Variant` cujas alternativas são todas incompatíveis com o tipo do segundo argumento e `variant_throw_on_type_mismatch` está desabilitado. A função agora trata a comparação como "nunca igual" e retorna o array inalterado, em vez de acionar uma falha de `assertTypeEquality` no servidor. [#105248](https://github.com/ClickHouse/ClickHouse/pull/105248) ([Groene AI](https://github.com/groeneai)).
* A consulta pode ser executada com sucesso mesmo que `FileCache` não consiga criar algum diretório no disco para caching. [#105250](https://github.com/ClickHouse/ClickHouse/pull/105250) ([Den Kalantaevskii](https://github.com/Diskein)).
* Corrige a interrupção do servidor com `Assertion 'px != 0' failed` em `ExtremesTransform` quando uma consulta com `extremes = 1` encontra uma Exception (por exemplo, `MEMORY_LIMIT_EXCEEDED`) enquanto a transformação está montando suas colunas de extremos a partir do primeiro chunk. O cliente agora recebe a Exception original em vez de provocar a falha do servidor. [#105264](https://github.com/ClickHouse/ClickHouse/pull/105264) ([Groene AI](https://github.com/groeneai)).
* `LEFT ANTI JOIN` agora retorna corretamente a coluna da chave de junção do lado direito com valores padrão para linhas sem correspondência, em vez de duplicar o valor da chave da esquerda. Antes, `SELECT a.x AS l, b.x AS r FROM a LEFT ANTI JOIN b ON a.x = b.x` podia retornar `r = a.x` para as linhas sem correspondência, quando deveria retornar o valor padrão (`0` para `Int32`, `''` para `String`, `NULL` para `Nullable`). Apenas a coluna da chave de junção era afetada; as colunas não chave do lado direito já recebiam corretamente os valores padrão. O mesmo bug aparecia em `RIGHT ANTI JOIN` sempre que o otimizador invertia os lados. Fecha [#99959](https://github.com/ClickHouse/ClickHouse/issues/99959). [#105278](https://github.com/ClickHouse/ClickHouse/pull/105278) ([Groene AI](https://github.com/groeneai)).
* Corrige a perda de dados no `clickhouse-local` quando ele é iniciado repetidamente com um `--default_database` diferente de `default` (por exemplo, `clickhouse-local --path X -- --default_database=mydb`): a busca pelo UUID do banco de dados persistido estava fixada em `metadata/default`, então cada reinicialização gerava um novo UUID e as tabelas da execução anterior ficavam invisíveis. Fecha [#101831](https://github.com/ClickHouse/ClickHouse/issues/101831). [#105284](https://github.com/ClickHouse/ClickHouse/pull/105284) ([Groene AI](https://github.com/groeneai)).
* Corrige um erro lógico `Mutation of `Memory` table produced incomplete output` gerado ao executar `ALTER TABLE <memory_table> APPLY PATCHES` ou `ALTER TABLE <memory_table> APPLY DELETED MASK`. Tabelas `Memory` não possuem patch parts nem deletion masks, então ambos os comandos agora são corretamente tratados como no-ops. [#105286](https://github.com/ClickHouse/ClickHouse/pull/105286) ([Groene AI](https://github.com/groeneai)).
* Corrige consultas de longa duração com Unity Catalog ao passar um parâmetro `table_id` na solicitação da consulta. [#105303](https://github.com/ClickHouse/ClickHouse/pull/105303) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrige `CANNOT_CONVERT_TYPE` para `Merge` sobre `Merge` sobre `Distributed` com `distributed_group_by_no_merge=1`. [#105330](https://github.com/ClickHouse/ClickHouse/pull/105330) ([Azat Khuzhin](https://github.com/azat)).
* Corrige o caso em que `clickhouse local` e `clickhouse client` ignoravam silenciosamente `--query`/`-q` quando um argumento posicional de arquivo também era fornecido. Ambas as formas agora produzem `BAD_ARGUMENTS` de forma consistente. [#105334](https://github.com/ClickHouse/ClickHouse/pull/105334) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige `REPLACE TEMPORARY TABLE`, que criava silenciosamente uma nova tabela quando o destino não existia. Agora ele gera `UNKNOWN_TABLE`, em conformidade com a semântica de `REPLACE TABLE`. Use `CREATE OR REPLACE TEMPORARY TABLE` para manter o comportamento de criar ou substituir. [#105373](https://github.com/ClickHouse/ClickHouse/pull/105373) ([Groene AI](https://github.com/groeneai)).
* Corrige falhas em leituras de longa duração (por exemplo, `INSERT ... SELECT`) de um banco de dados `DataLakeCatalog` com `catalog_type = 'glue'`, que passavam a falhar com um erro `ExpiredToken` quando as credentials de sessão do STS capturadas no momento do carregamento dos metadados da tabela expiravam. As credentials do AWS STS agora são atualizadas no meio da consulta, para que essas leituras continuem após a expiração do token. [#105381](https://github.com/ClickHouse/ClickHouse/pull/105381) ([Pratima Patel](https://github.com/pratimapatel2008)).
* Corrige erro lógico em `LIMIT BY` negativo em alguns casos quando usado com `ARRAY JOIN`. [#105403](https://github.com/ClickHouse/ClickHouse/pull/105403) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige `read_bytes` inflado (e os bytes/s derivados mostrados em `system.query_log`, na barra de progresso etc.) ao ler arquivos Parquet. A implementação anterior informava o compressed size total do row group em cada chunk, então ler K de N colunas gerava uma supercontagem de `N / K`. Agora ele é somado apenas entre as colunas selecionadas. Também corrige o rastreamento de progresso no nível do arquivo para Iceberg tables, que antes nunca informava o tamanho do arquivo de dados. [#105413](https://github.com/ClickHouse/ClickHouse/pull/105413) ([Groene AI](https://github.com/groeneai)).
* Corrige um possível segfault do servidor em cluster table functions (`s3Cluster`, `urlCluster`, `fileCluster`, ...) quando o planner produz um `SELECT` com a flag `recursive_with` definida, mas sem expressão `WITH`. Fecha [#105370](https://github.com/ClickHouse/ClickHouse/issues/105370). [#105433](https://github.com/ClickHouse/ClickHouse/pull/105433) ([Groene AI](https://github.com/groeneai)).
* Corrige resultado incorreto de `countDistinct` / `uniqExact` em colunas `Nullable` quando `count_distinct_optimization = 1` (o grupo `NULL` era contado incorretamente). [#105439](https://github.com/ClickHouse/ClickHouse/pull/105439) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigido um heap-buffer-overflow ao ler arquivos Arrow ou ArrowStream com offsets intermediários corrompidos em uma coluna binária ou de string, e uma desreferenciação de ponteiro nulo ao ler colunas Arrow com geotags. [#105449](https://github.com/ClickHouse/ClickHouse/pull/105449) ([Raúl Marín](https://github.com/Algunenano)).
* Valida tipos `Dynamic`/`Variant` em `PARTITION BY` de janela; isso não era verificado antes quando `allow_suspicious_types_in_group_by` está desabilitado. Fecha [#105028](https://github.com/ClickHouse/ClickHouse/issues/105028). [#105450](https://github.com/ClickHouse/ClickHouse/pull/105450) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige `input_format_json_empty_as_default`, que não funcionava nos formatos JSONStrings\*. Fecha [#104913](https://github.com/ClickHouse/ClickHouse/issues/104913). [#105453](https://github.com/ClickHouse/ClickHouse/pull/105453) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige a inserção de `NULL` em coluna `Variant` via formato `VALUES` durante a análise de expressões. Fecha [#104909](https://github.com/ClickHouse/ClickHouse/issues/104909). [#105455](https://github.com/ClickHouse/ClickHouse/pull/105455) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige `dictGetOrDefault` lançando `CANNOT_INSERT_NULL_IN_ORDINARY_COLUMN` quando o argumento padrão é uma expressão `Nullable` e `short_circuit_function_evaluation` está habilitado, com uma mistura de chaves de dicionário encontradas e não encontradas. [#105461](https://github.com/ClickHouse/ClickHouse/pull/105461) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige o truncamento silencioso de valor em colunas `Dynamic` quando o leitor de texto `Quoted` (Values) recorre a `String` para tipos inferidos incompletos, como `Map(Array(Nothing), ...)`. Antes, o fallback encapsulava o campo bruto com concatenação ingênua de `'...'`, então uma aspa simples interna (sempre presente nesses fallbacks) encerrava prematuramente a string entre aspas, e o restante do valor era perdido. [#105463](https://github.com/ClickHouse/ClickHouse/pull/105463) ([Groene AI](https://github.com/groeneai)).
* Corrige SIGSEGV ao ler subcolunas `Dynamic` de tabela `Memory` comprimida após `ALTER`. Fecha [#104901](https://github.com/ClickHouse/ClickHouse/issues/104901). [#105464](https://github.com/ClickHouse/ClickHouse/pull/105464) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige `toFloat64`/`toUInt32`/`toString`/etc. em `Dynamic`, que ignorava `cast_keep_nullable`. Fecha [#104789](https://github.com/ClickHouse/ClickHouse/issues/104789). [#105467](https://github.com/ClickHouse/ClickHouse/pull/105467) ([Pavel Kruglov](https://github.com/Avogar)).
* Inclui `skip_first_lines` na chave de cache de esquema para formatos `WithNames`. Fecha [#104527](https://github.com/ClickHouse/ClickHouse/issues/104527). [#105469](https://github.com/ClickHouse/ClickHouse/pull/105469) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige um segfault no servidor em `uniqStateOrNull` / `uniqStateOrDefault` / `uniqOrNullState` (e cadeias de combinadores semelhantes sobre `uniq`) quando usados com `GROUP BY ... WITH ROLLUP`, `WITH CUBE` ou `WITH TOTALS` e um argumento `Nullable`. [#105470](https://github.com/ClickHouse/ClickHouse/pull/105470) ([Groene AI](https://github.com/groeneai)).
* Corrige a exceção `NOT_FOUND_COLUMN_IN_BLOCK` ao combinar `ORDER BY ... WITH FILL INTERPOLATE` e `LIMIT N BY` com o analyzer habilitado. Fecha [#103474](https://github.com/ClickHouse/ClickHouse/issues/103474). [#105481](https://github.com/ClickHouse/ClickHouse/pull/105481) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige `toStartOfMillisecond` e `toStartOfMicrosecond`, que retornavam um resultado com erro de quase um segundo para valores negativos (anteriores à epoch) de `DateTime64`, e corrige o overflow de inteiro com sinal detectado pelo `UndefinedBehaviorSanitizer` em `toStartOfSecond`, `toStartOfMillisecond` e `toStartOfMicrosecond` para entradas `DateTime64` próximas de `INT64_MIN`. [#105482](https://github.com/ClickHouse/ClickHouse/pull/105482) ([Groene AI](https://github.com/groeneai)).
* Adiciona uma nova configuração de compatibilidade `analyzer_compatibility_prefer_alias_over_subcolumn` (desabilitada por padrão). Quando habilitada, o novo analisador passa a priorizar a interpretação de prefixo de alias em vez da correspondência com subcolunas de `Tuple` / colunas com ponto em identificadores de várias partes, restaurando o comportamento do interpretador anterior. Isso evita erros `AMBIGUOUS_IDENTIFIER` (e relacionados) quando uma consulta faz join com uma tabela cujo nome coincide com o de uma tabela interna de uma CTE/subconsulta que usa `SELECT *` sobre um join, situação em que colunas renomeadas pelo asterisco (por exemplo, `b.id`) poderiam, de outra forma, fazer com que identificadores da tabela interna vazassem para o escopo externo. [#105491](https://github.com/ClickHouse/ClickHouse/pull/105491) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Uma consulta de busca vetorial executada com a optimization *index only* agora retorna o valor correto de `L2Distance()` se ela estiver na lista `SELECT`. A função estava retornando incorretamente o valor da distância *L2-squared*. Observe que a consulta de busca vetorial retornava os resultados na ordem correta; apenas aplicações que **recuperavam e interpretavam explicitamente** o valor de `L2Distance()` veriam o valor ao quadrado. [#105495](https://github.com/ClickHouse/ClickHouse/pull/105495) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Corrige um problema raro no novo mecanismo de tabela Kafka, em que mensagens podiam ser tratadas incorretamente durante a reatribuição de partições do tópico, potencialmente levando ao pulo de mensagens após rollback de offset. [#105500](https://github.com/ClickHouse/ClickHouse/pull/105500) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige uma exceção (`Trying to execute PLACEHOLDER action` logical error) quando uma CTE `MATERIALIZED` cujo corpo é uma subconsulta correlacionada é usada no lado direito de `IN`. Essa CTE agora é rejeitada na fase de análise, de forma consistente com o fato de que o mesmo padrão já é rejeitado quando a CTE é referenciada diretamente em `FROM`. [#105518](https://github.com/ClickHouse/ClickHouse/pull/105518) ([Groene AI](https://github.com/groeneai)).
* Corrige a não aplicação da compressão em stdout/stdin quando o formato é especificado explicitamente. Fecha [#104441](https://github.com/ClickHouse/ClickHouse/issues/104441). [#105528](https://github.com/ClickHouse/ClickHouse/pull/105528) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige segfault na desserialização de `singleValueOrNull` para o tipo `JSON`. Fecha [#103630](https://github.com/ClickHouse/ClickHouse/issues/103630). [#105535](https://github.com/ClickHouse/ClickHouse/pull/105535) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige `clickhouse-format --backslash` removendo silenciosamente dados de `INSERT` `VALUES`. Fecha [#103533](https://github.com/ClickHouse/ClickHouse/issues/103533). [#105536](https://github.com/ClickHouse/ClickHouse/pull/105536) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige `variant_throw_on_type_mismatch/dynamic_throw_on_type_mismatch=false` não capturando exceções durante a execução da função. Fecha [#103484](https://github.com/ClickHouse/ClickHouse/issues/103484). [#105543](https://github.com/ClickHouse/ClickHouse/pull/105543) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige o fato de `input_format_try_infer_datetimes` ser ignorado durante a inserção em shared data em `JSON`. Fecha [#103221](https://github.com/ClickHouse/ClickHouse/issues/103221). [#105544](https://github.com/ClickHouse/ClickHouse/pull/105544) ([Pavel Kruglov](https://github.com/Avogar)).
* Correção de `histogram`, que produzia resultados incorretos para entradas pequenas não ordenadas. Fecha [#103109](https://github.com/ClickHouse/ClickHouse/issues/103109). [#105548](https://github.com/ClickHouse/ClickHouse/pull/105548) ([Pavel Kruglov](https://github.com/Avogar)).
* Correção de `DateTime`, que dava a volta para valores fora do intervalo em `JSONExtract` e em desserializações de texto. Fecha [#103094](https://github.com/ClickHouse/ClickHouse/issues/103094). [#105551](https://github.com/ClickHouse/ClickHouse/pull/105551) ([Pavel Kruglov](https://github.com/Avogar)).
* Correção do uso da insertion table em table functions quando `optimize_trivial_insert_select` está habilitado. Fecha [#103083](https://github.com/ClickHouse/ClickHouse/issues/103083). [#105555](https://github.com/ClickHouse/ClickHouse/pull/105555) ([Pavel Kruglov](https://github.com/Avogar)).
* Correção de `CASE` que retornava o branch `ELSE` em vez do `THEN` correspondente quando tanto a expression quanto um valor `WHEN` eram `NULL`. [#105556](https://github.com/ClickHouse/ClickHouse/pull/105556) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigido um crash em `replxx` causado pelo limite `FD_SETSIZE` de `select` (agora substituído por `poll`). Antes, com SSH ou o terminal web habilitados, isso podia derrubar o servidor. [#105559](https://github.com/ClickHouse/ClickHouse/pull/105559) ([Azat Khuzhin](https://github.com/azat)).
* Materializa subcolumns em `executePartitionByExpression` antes de executar a expression. Fecha [#103057](https://github.com/ClickHouse/ClickHouse/issues/103057). [#105573](https://github.com/ClickHouse/ClickHouse/pull/105573) ([Pavel Kruglov](https://github.com/Avogar)).
* Correção da exceção `NOT_FOUND_COLUMN_IN_BLOCK` quando a expression `TTL` faz referência a uma subcolumn. [#105578](https://github.com/ClickHouse/ClickHouse/pull/105578) ([Pavel Kruglov](https://github.com/Avogar)).
* Correção de um crash do servidor (SIGSEGV) acessível a qualquer usuário com permissões de `CREATE TABLE` ao enviar `CREATE TABLE ... TO INNER UUID '...'` sem uma cláusula `ENGINE` por HTTP ou pelo native protocol. O mesmo bug também derrubava o client. O parser agora retorna um erro `BAD_ARGUMENTS` apropriado em vez de desreferenciar um ponteiro nulo. [#105579](https://github.com/ClickHouse/ClickHouse/pull/105579) ([Groene AI](https://github.com/groeneai)).
* Correção da window function `estimateCompressionRatio`, que perdia dados acumulados entre linhas. Fecha [#101738](https://github.com/ClickHouse/ClickHouse/issues/101738). [#105581](https://github.com/ClickHouse/ClickHouse/pull/105581) ([Pavel Kruglov](https://github.com/Avogar)).
* Correção de crash ao inserir tuples de tamanhos diferentes na mesma cláusula VALUES em uma coluna `String`. Fecha [#101727](https://github.com/ClickHouse/ClickHouse/issues/101727). [#105582](https://github.com/ClickHouse/ClickHouse/pull/105582) ([Pavel Kruglov](https://github.com/Avogar)).
* A extração do valor de partição do Hive agora respeita a configuração `cast_string_to_date_time_mode` e aceita timestamps ISO 8601 com sufixos de timezone (por exemplo, `+0000`, `+00:00`, `Z`) em partition keys por padrão. [#105584](https://github.com/ClickHouse/ClickHouse/pull/105584) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o erro `NOT_IMPLEMENTED` em `toString` de `DateTime` com Timezone contendo valor `NULL`. Fecha [#103712](https://github.com/ClickHouse/ClickHouse/issues/103712). [#105587](https://github.com/ClickHouse/ClickHouse/pull/105587) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Correção de leitura fora dos limites na desserialização `Native` da coluna `Dynamic` achatada. [#105666](https://github.com/ClickHouse/ClickHouse/pull/105666) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige um `LOGICAL_ERROR` (`Unexpected return type from if`) gerado durante o planejamento da consulta para expressões `if` cujo tipo de resultado é `Variant` e cujo segundo ou terceiro ramo é um `if` com condição constante sobre um literal `UInt64` que cabe em `Int64`. Fecha [#105649](https://github.com/ClickHouse/ClickHouse/issues/105649). [#105680](https://github.com/ClickHouse/ClickHouse/pull/105680) ([Groene AI](https://github.com/groeneai)).
* Corrige resultados incorretos ao ler uma tabela Iceberg com `iceberg_use_version_hint = 1` depois que outro processo de gravação (como a função de tabela `icebergLocal`/`icebergS3`) sem essa configuração avança a tabela. Agora, `version-hint.text` é mantido sincronizado por todos os processos de gravação assim que o arquivo existe, de modo que leitores subsequentes que usam a indicação vejam o snapshot mais recente. [#105682](https://github.com/ClickHouse/ClickHouse/pull/105682) ([Groene AI](https://github.com/groeneai)).
* Corrigida uma subcontagem silenciosa em consultas `SELECT` quando `use_query_condition_cache = 1` (padrão). Uma consulta no formato `PREWHERE pk_prefix = X WHERE non_pk IN (...)` em uma coluna com um skip index de filtro Bloom corrompia o `QueryConditionCache` para o predicado `pk_prefix = X`, fazendo com que um `SELECT count() ... WHERE pk_prefix = X` subsequente e benigno retornasse um resultado incorreto, com contagem abaixo do real. Afetava todos os lançamentos 26.x. [#104781](https://github.com/ClickHouse/ClickHouse/issues/104781). [#105686](https://github.com/ClickHouse/ClickHouse/pull/105686) ([Groene AI](https://github.com/groeneai)).
* Corrige `singleValueOrNullMerge`, que retornava um valor concreto em vez de `NULL` ao fazer merge de um estado que já havia observado vários valores distintos. [#105734](https://github.com/ClickHouse/ClickHouse/pull/105734) ([Minh Vu](https://github.com/fallintoplace)).
* Corrige a recuperação de erro do formato de entrada `Template` após linhas malformadas. [#105735](https://github.com/ClickHouse/ClickHouse/pull/105735) ([Yue Ni](https://github.com/niyue)).
* Corrige uma falha na função de tabela `mongodb`, no armazenamento MongoDB e na fonte de dicionário do MongoDB quando o nome da collection está vazio ou contém bytes NUL. [#105776](https://github.com/ClickHouse/ClickHouse/pull/105776) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige a limpeza de snapshots do `Keeper` após falhas de gravação, para que snapshots parciais sejam removidos com segurança e gravações com falha possam ser tentadas novamente sem avançar `latest_snapshot_meta`. [#105779](https://github.com/ClickHouse/ClickHouse/pull/105779) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige a rejeição de `ALTER TABLE ... CLEAR COLUMN` para colunas `columns_to_sum` explícitas de `SummingMergeTree` e `CoalescingMergeTree`. [#105785](https://github.com/ClickHouse/ClickHouse/pull/105785) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige uma asserção em `DatabaseCatalog::tryGetDatabase` (e o consequente erro `UNKNOWN_DATABASE` em builds de release) ao criar uma view parametrizada cujo nome do banco de dados é fornecido por meio de um parâmetro de consulta, por exemplo `CREATE VIEW {db:Identifier}.v AS SELECT {p:UInt64}`. Os parâmetros nas partes DDL da instrução `CREATE` agora são substituídos no momento da criação, enquanto os parâmetros no corpo do `SELECT` permanecem disponíveis para substituição no momento da chamada da view. [#105799](https://github.com/ClickHouse/ClickHouse/pull/105799) ([Groene AI](https://github.com/groeneai)).
* Corrige `Bad get: has Decimal32, requested Decimal128` em `sumMap` e `sumMapWithOverflow` sobre uma coluna `Nested(... Nullable(Decimal(P, S)))` quando o estado agregado é serializado (por exemplo, parallel replicas, `sumMapState` via um formatador de estado binário, external aggregation). [#105816](https://github.com/ClickHouse/ClickHouse/pull/105816) ([Groene AI](https://github.com/groeneai)).
* Corrige os erros `Expected ColumnLowCardinality, got String` / `Bad cast from type DB::ColumnString to DB::ColumnLowCardinality` quando `apply_mutations_on_fly = 1` é usado em uma tabela com mutações `UPDATE`/`DELETE` on-fly pendentes enfileiradas antes de uma mutação `ALTER MODIFY COLUMN ... LowCardinality(...)`. [#105847](https://github.com/ClickHouse/ClickHouse/pull/105847) ([Raúl Marín](https://github.com/Algunenano)).
* Gravações no Iceberg agora preservam valores NULL em colunas de partição `Nullable(T)`. Antes, um NULL gravado pelo ClickHouse aparecia como o valor padrão do tipo interno (`0` para `int`) quando era lido de volta pelo Spark ou por outros leitores Iceberg. Fecha [#105852](https://github.com/ClickHouse/ClickHouse/issues/105852). [#105862](https://github.com/ClickHouse/ClickHouse/pull/105862) ([Groene AI](https://github.com/groeneai)).
* Corrige o pushdown de filtro de `Parquet` e `ORC` para predicados `IN (subquery)`, permitindo que o pruning de row-group/page/bloom-filter funcione em leituras de `file`, `url`, `s3` e armazenamento de objetos. [#105863](https://github.com/ClickHouse/ClickHouse/pull/105863) ([Arsen Muk](https://github.com/arsenmuk)).
* Corrige a leitura em ordem para tabelas `Merge` (com um novo analisador). [#105867](https://github.com/ClickHouse/ClickHouse/pull/105867) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige deletes posicionais merge-on-read do Iceberg v2 que retornavam linhas incorretas quando um único arquivo de delete referencia vários arquivos de dados e vários desses arquivos de delete se aplicam ao mesmo arquivo de dados. O leitor de streaming (`use_roaring_bitmap_iceberg_positional_deletes = 0`) agora filtra as linhas do arquivo de delete por `file_path` em C++, em vez de depender do pruning de row-group do Parquet, restaurando a invariante de posições crescentes. [#105888](https://github.com/ClickHouse/ClickHouse/pull/105888) ([Groene AI](https://github.com/groeneai)).
* Corrige o erro `Cannot find column` em consultas distribuídas com filtro `IN Array(...)` no novo analisador. [#105894](https://github.com/ClickHouse/ClickHouse/pull/105894) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige um SIGSEGV em `ALTER TABLE ... MODIFY COLUMN ... Nullable(...)` em tabelas `MergeTree` quando uma coluna com `STATISTICS` é removida de forma concorrente por outro `ALTER`. Fecha [#105912](https://github.com/ClickHouse/ClickHouse/issues/105912). [#105917](https://github.com/ClickHouse/ClickHouse/pull/105917) ([Groene AI](https://github.com/groeneai)).
* Corrige uma falha do servidor que podia ocorrer quando uma consulta que lia do PostgreSQL — por meio da função de tabela postgresql, do table engine PostgreSQL ou de um dicionário com origem PostgreSQL — era cancelada (por exemplo, com KILL QUERY) e o cancelamento da consulta remota no PostgreSQL falhava. [#105949](https://github.com/ClickHouse/ClickHouse/pull/105949) ([Rory Shanks](https://github.com/rorylshanks)).
* Corrige a formatação de `SYSTEM INSTRUMENT ADD` para que os argumentos do handler sejam separados por um único espaço e rejeita listas inválidas de argumentos de instrumentação `SLEEP` com mais de dois valores ou um intervalo em que o mínimo é maior que o máximo. [#105984](https://github.com/ClickHouse/ClickHouse/pull/105984) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrige resultados possivelmente incorretos para consultas que combinam uma outer join com uma inner join subsequente que referencia o lado da outer join que fornece NULLs. A reordenação de joins podia escolher um plano que movia condições da inner join para a cláusula ON da outer join. [#105992](https://github.com/ClickHouse/ClickHouse/pull/105992) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige uma possível falha causada por um literal de string grande demais enviado na consulta. [#105996](https://github.com/ClickHouse/ClickHouse/pull/105996) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige a exceção `INVALID_WITH_FILL_EXPRESSION` ao usar `INTERPOLATE ()` (vazio) com um prefixo de ordenação em `ORDER BY` e `use_with_fill_by_sorting_prefix` habilitado. As colunas do prefixo de ordenação agora são corretamente excluídas do conjunto de interpolação implícita, em conformidade com o comportamento de `INTERPOLATE (col)` nomeado explicitamente. [#106001](https://github.com/ClickHouse/ClickHouse/pull/106001) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige operações de partição de `ALTER TABLE` que falhavam silenciosamente para chaves de partição `Bool`. Fecha [#101722](https://github.com/ClickHouse/ClickHouse/issues/101722). [#106004](https://github.com/ClickHouse/ClickHouse/pull/106004) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige `JSONExtractRaw` e `JSONHas` para caminhos `JSON` tipados com valores padrão. Fecha [#101721](https://github.com/ClickHouse/ClickHouse/issues/101721). [#106005](https://github.com/ClickHouse/ClickHouse/pull/106005) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige a adição incorreta do prefixo '/' em caminhos base vazios em configurações de lago de dados. Fecha [#105989](https://github.com/ClickHouse/ClickHouse/issues/105989). [#106013](https://github.com/ClickHouse/ClickHouse/pull/106013) ([thewisenerd](https://github.com/thewisenerd)).
* Corrige o mecanismo de tabela `IcebergLocal`, que passava a ficar em modo somente leitura após um ciclo de `DETACH` + `ATTACH` ou uma reinicialização do servidor, fazendo com que todo `INSERT` subsequente falhasse com `Local object storage Local is readonly. (READONLY)`. [#106016](https://github.com/ClickHouse/ClickHouse/pull/106016) ([Groene AI](https://github.com/groeneai)).
* Corrige falhas do `Keeper` durante a sincronização de catch-up de seguidor quando a nova fila de respostas do dispatcher de requisições podia encher antes de a thread de resposta ser iniciada. [#106049](https://github.com/ClickHouse/ClickHouse/pull/106049) ([Antonio Andelic](https://github.com/antonio2368)).
* Melhor compatibilidade com o analyzer antigo. Se a tabela tiver colunas como `x.a Array, x.b Array, x String`, agora dá preferência a arrays em `ARRAY JOIN x`. [#106069](https://github.com/ClickHouse/ClickHouse/pull/106069) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige a desativação silenciosa do cache do sistema de arquivos para o Azure Blob Storage (por exemplo, tabelas Delta Lake no Azure), porque os metadados do objeto não incluíam o ETag do blob. [#106091](https://github.com/ClickHouse/ClickHouse/pull/106091) ([thewisenerd](https://github.com/thewisenerd)).
* Corrige `system.dictionaries` retornando 0 linhas com revogação parcial de `SHOW DICTIONARIES`. [#106105](https://github.com/ClickHouse/ClickHouse/pull/106105) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige uma falha do servidor ao consultar tabelas DeltaLake com `allow_experimental_delta_kernel_rs` habilitado e uma credencial ou opção contendo bytes inválidos (o Rust FFI entrou em pânico ao atravessar a fronteira `extern "C"`). [#106109](https://github.com/ClickHouse/ClickHouse/pull/106109) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige resultados incorretos para queries em tabelas cujo `ORDER BY` contém uma função monotonicamente decrescente, como `(c0 / -42)` ou `intDiv(c0, -42)`. Predicados na coluna subjacente (por exemplo, `c0 < 0`) podiam eliminar grânulos incorretamente que continham linhas correspondentes, resultando em resultados ausentes. Fecha [#106084](https://github.com/ClickHouse/ClickHouse/issues/106084). Fecha [#106124](https://github.com/ClickHouse/ClickHouse/issues/106124). Fecha [#106080](https://github.com/ClickHouse/ClickHouse/issues/106080). [#106136](https://github.com/ClickHouse/ClickHouse/pull/106136) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige o suporte ao uso de UDFs SQL `WASM` em definições de `MATERIALIZED VIEW`. [#106161](https://github.com/ClickHouse/ClickHouse/pull/106161) ([Yue Ni](https://github.com/niyue)).
* O Iceberg partition pruning agora lida corretamente com filtros `WHERE partition_col = (SELECT ... FROM ...)` em que o analyzer envolve o resultado da scalar subquery em um `_CAST(Const, 'TargetType')` interno com tipos de origem e de destino correspondentes. Antes, esses filtros desativavam o partition pruning e disparavam um full table scan. [#106204](https://github.com/ClickHouse/ClickHouse/pull/106204) ([Groene AI](https://github.com/groeneai)).
* Corrige o parâmetro `--query_id` do clickhouse local para permitir especificar um Query id personalizado. [#106205](https://github.com/ClickHouse/ClickHouse/pull/106205) ([Yue Ni](https://github.com/niyue)).
* Corrigido o problema em que a classe de armazenamento S3 (`s3_storage_class` / `s3_storage_class_name`) era ignorada para objetos gravados via multipart upload em disks `S3` e armazenamento de objetos, o que fazia com que objetos grandes fossem criados com a classe padrão `STANDARD`. O nome da opção agora é aceito tanto como `s3_storage_class` quanto como `s3_storage_class_name` para disks, armazenamento de objetos e backups. [#106214](https://github.com/ClickHouse/ClickHouse/pull/106214) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido um problema em que o Keeper às vezes travava na inicialização quando a configuração `nuraft_max_log_gap_in_stream` era definida com um valor diferente do padrão (o padrão é 0, ou seja, desabilita o pipelining de requisições `append_entries`). [#106220](https://github.com/ClickHouse/ClickHouse/pull/106220) ([Michael Kolupaev](https://github.com/al13n321)).
* Valida o state corrompido da função agregada `DDSketch` (chaves de bin) na inserção, em vez de aceitar dados malformados. [#106236](https://github.com/ClickHouse/ClickHouse/pull/106236) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrigida a incompatibilidade de modo do coordinator quando subqueries substituem configurações in-order. [#106243](https://github.com/ClickHouse/ClickHouse/pull/106243) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige o problema em que `optimize_skip_unused_shards` não era aplicado (e `force_optimize_skip_unused_shards` falhava incorretamente) quando uma tabela `Distributed` era consultada por meio de uma tabela `Merge` ou da table function `merge`, com o predicate aplicado acima dela. [#106250](https://github.com/ClickHouse/ClickHouse/pull/106250) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige `INTERPOLATE ()` lançando `INVALID_WITH_FILL_EXPRESSION` quando colunas `ORDER BY` recebem alias na lista `SELECT` com o analyzer antigo. Fecha [#106248](https://github.com/ClickHouse/ClickHouse/issues/106248). [#106252](https://github.com/ClickHouse/ClickHouse/pull/106252) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrigido um abort ao desserializar um state malformado de `AggregateFunction(uniqTheta, ...)` a partir de entrada `RowBinary` ou de um query parameter. A entrada inválida agora é rejeitada com `CORRUPTED_DATA` em vez de escapar como `std::exception` e abortar o processo via `abortOnFailedAssertion`. [#106260](https://github.com/ClickHouse/ClickHouse/pull/106260) ([Groene AI](https://github.com/groeneai)).
* Rejeita bytes `IntervalKind` fora do intervalo durante a decodificação de tipo de `RowBinaryWithNamesAndTypes` (`input_format_binary_decode_types_in_binary_format = 1`) com um erro `INCORRECT_DATA` claro, em vez de construir um `DataTypeInterval` com um kind inválido que poderia posteriormente disparar comportamento undefined em caminhos de hash. [#106261](https://github.com/ClickHouse/ClickHouse/pull/106261) ([Groene AI](https://github.com/groeneai)).
* Corrige o problema de rollback em caso de falha no downgrade de `SLRU` em `26.1+`. Corrige a prioridade da divisão de cache `System`/`Data` com o recurso `keep_free_space_ratio`. [#106286](https://github.com/ClickHouse/ClickHouse/pull/106286) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Ler a subcoluna `null` como um caminho `JSON` em `Nullable(JSON)` em vez do mapa de nulos. Fecha [#106085](https://github.com/ClickHouse/ClickHouse/issues/106085). [#106295](https://github.com/ClickHouse/ClickHouse/pull/106295) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige `RestCatalog::empty`, que retornava um resultado incorreto quando um REST catalog do Iceberg continha tabelas. [#106301](https://github.com/ClickHouse/ClickHouse/pull/106301) ([Lefteris](https://github.com/LefterisXefteris)).
* Corrigida uma exceção em consultas `INNER JOIN` com uma table `MergeTree` à esquerda vazia quando `enable_parallel_replicas`, `query_plan_use_new_logical_join_step` e `query_plan_optimize_join_order_algorithm = 'greedy'` estão habilitados. [#106338](https://github.com/ClickHouse/ClickHouse/pull/106338) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigida uma conversão incorreta de valores subnormais de `Float16` para `Float32` (por exemplo, ao lê-los de arquivos `.npy` do Numpy), causada por um deslocamento da mantissa em uma posição. [#106343](https://github.com/ClickHouse/ClickHouse/pull/106343) ([Joanna Hulboj](https://github.com/jh0x)).
* Corrige uma falha e um possível erro `NOT_FOUND_COLUMN_IN_BLOCK` quando a otimização baseada em constraints (`optimize_using_constraints`) é usada com subconsultas correlacionadas. [#106349](https://github.com/ClickHouse/ClickHouse/pull/106349) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigidas leituras fora dos limites em `sipHash64Keyed`, `sipHash128Keyed` e `sipHash128ReferenceKeyed` ao calcular o hash de uma coluna cujos arrays estão todos vazios e cuja chave não é constante. [#106355](https://github.com/ClickHouse/ClickHouse/pull/106355) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigido o descarte, por `SYSTEM RELOAD CONFIG`, das configurações por endpoint do Azure Blob Storage (como `use_native_copy`), o que fazia com que as configurações definidas para um disco fossem ignoradas em `BACKUP`/`RESTORE` até que o servidor fosse reiniciado. [#106357](https://github.com/ClickHouse/ClickHouse/pull/106357) ([Julia Kartseva](https://github.com/jkartseva)).
* Corrige `regexpExtract(haystack, pattern)` para que padrões sem grupo de captura retornem a correspondência completa em vez de gerar `INDEX_OF_POSITIONAL_ARGUMENT_IS_OUT_OF_RANGE`. [#106374](https://github.com/ClickHouse/ClickHouse/pull/106374) ([Groene AI](https://github.com/groeneai)).
* Corrige a exceção `LOGICAL_ERROR` durante o predownload do cache quando um objeto remoto no S3 é sobrescrito com conteúdo menor entre a listagem e a leitura. [#106375](https://github.com/ClickHouse/ClickHouse/pull/106375) ([Nikita Fomichev](https://github.com/fm4v)).
* Corrige o aumento do uso de memória no filesystem cache. [#106387](https://github.com/ClickHouse/ClickHouse/pull/106387) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige múltiplas leituras fora dos limites da heap no leitor do formato Arrow IPC (`ArrowColumnToCHColumn`). Um arquivo Arrow malformado podia declarar mais linhas do que seus buffers contêm, declarar comprimentos de filhos list/struct/map inconsistentes com o pai, fornecer offsets de lista não monotônicos ou truncar um bitmap de validade filho, causando leituras além do fim das alocações na heap. Isso pode ser explorado por qualquer usuário com privilégio `SELECT` via `file()`, `format()`, table functions ou entradas ArrowFlight. Agora, todos os buffers de dados, offsets, view-struct e bitmap de validade são validados antes de qualquer acesso bruto por ponteiro, e as formas e os offsets de list/struct/map são verificados quanto à consistência. [#106395](https://github.com/ClickHouse/ClickHouse/pull/106395) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigida a falha de backups com `FILE_DOESNT_EXIST` quando o destino REPLACE de uma view materializada atualizável é coletado em um banco de dados Replicated ou Shared cuja visão materializada ainda não foi instanciada na réplica que iniciou o backup. [#106411](https://github.com/ClickHouse/ClickHouse/pull/106411) ([Julia Kartseva](https://github.com/jkartseva)).
* Corrige um erro lógico `Column identifier ... is already registered` quando um predicado de mutation (`DELETE`/`UPDATE`) contém uma subconsulta `IN`/`EXISTS` que lê de uma expressão de tabela padrão aninhada em outra subconsulta. [#106414](https://github.com/ClickHouse/ClickHouse/pull/106414) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um erro lógico (`Left and right columns have same names`) no otimizador de ordem de join que podia ocorrer em joins executados com réplicas paralelas quando duas relações no grafo de joins compartilham nomes de coluna. [#106418](https://github.com/ClickHouse/ClickHouse/pull/106418) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um erro lógico ao criar um dicionário de polígonos a partir de dados de origem que contêm coordenadas de ponto `NaN` ou infinitas. Agora, essas coordenadas são rejeitadas com uma mensagem de erro clara. [#106423](https://github.com/ClickHouse/ClickHouse/pull/106423) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um bug em que as colunas `used_privileges` e `missing_privileges` de `system.query_log` podiam conter strings de privilégios vazadas de consultas anteriores não relacionadas, de outro usuário, banco de dados ou sessão. [#106425](https://github.com/ClickHouse/ClickHouse/pull/106425) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* As funções `base58Encode`, `base58Decode` e `tryBase58Decode` agora respeitam `max_execution_time` e o cancelamento de consulta em entradas grandes, e rejeitam entradas maiores que 10 KB em vez de ficarem executando por muito tempo. O limite é configurável pela nova configuração `function_base58_max_input_size` (`0` a desativa). [#106428](https://github.com/ClickHouse/ClickHouse/pull/106428) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige resultados incorretos esporádicos em consultas `ORDER BY ... DESC` ao ler wide parts em ordem reversa com `read_in_order_use_virtual_row_per_block = 1` e `max_block_size` pequeno. [#106429](https://github.com/ClickHouse/ClickHouse/pull/106429) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige uma exceção `NOT_FOUND_COLUMN_IN_BLOCK` ao consultar uma tabela Iceberg ou S3 com um `WHERE` composto contendo `IS NOT NULL` em uma coluna que não está na lista `SELECT`, usando o Native reader do Parquet V3. [#106443](https://github.com/ClickHouse/ClickHouse/pull/106443) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Permite ao usuário especificar cabeçalhos para `HTTPDictionary` usando coleções nomeadas. [#106459](https://github.com/ClickHouse/ClickHouse/pull/106459) ([Jan Rada](https://github.com/ZelvaMan)).
* Corrige um caso em que uma worker thread podia permanecer associada a um grupo de threads obsoleto depois que `CurrentThread::attachToGroup` falhava no meio do processo, fazendo com que tarefas posteriores na mesma thread falhassem com `Thread is already attached to a group`. [#106462](https://github.com/ClickHouse/ClickHouse/pull/106462) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Corrige uma exceção quando uma consulta de busca vetorial usa um vector index e outro skip index, como `minmax`, com `use_skip_indexes_on_data_read = 1`. [#106473](https://github.com/ClickHouse/ClickHouse/pull/106473) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Valores de enum `Avro` malformados agora são validados e rejeitados com um erro, em vez de causar uma leitura fora dos limites e interromper a execução ao desserializar dados `Avro` corrompidos. [#106476](https://github.com/ClickHouse/ClickHouse/pull/106476) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrige relatórios de progresso inflados ao ler tabelas Iceberg com filtros `_file` ou `_path`. Antes, o progresso `total_bytes_to_read` incluía todos os arquivos do manifest independentemente da filtragem. [#106491](https://github.com/ClickHouse/ClickHouse/pull/106491) ([Pedro Ferreira](https://github.com/PedroTadim)).
* Corrigida uma `Bad cast exception` em dicionários Redis que usam `STORAGE_TYPE 'simple'` com layout `cache`/`direct` e uma única chave string (complexa); esses dicionários agora funcionam, e chaves compostas com armazenamento `simple` passam a retornar um erro claro. [#106501](https://github.com/ClickHouse/ClickHouse/pull/106501) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrigido um bug de resultados incorretos em que `WHERE c0 = const` não retornava linhas para tabelas com `ORDER BY f(c0)` quando `f(const)` era avaliado como NaN, por exemplo, `ORDER BY sqrt(c0)` com uma constante negativa. A análise da chave primária descartava incorretamente todo grânulo e contaminava o query condition cache para consultas subsequentes. [#106507](https://github.com/ClickHouse/ClickHouse/pull/106507) ([Groene AI](https://github.com/groeneai)).
* Corrige `LIMIT WITH TIES` e `LIMIT WITH TIES` fracionário, que não respeitavam a collation de `ORDER BY ... COLLATE` ao determinar empates. Linhas consideradas iguais de acordo com a collation (por exemplo, `'1'` e `'01'` sob collation numérica) eram comparadas byte a byte, então algumas linhas empatadas eram removidas incorretamente do resultado. [#106539](https://github.com/ClickHouse/ClickHouse/pull/106539) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige as otimizações `DISTINCT` in order e `LIMIT BY` in order (incluindo `LIMIT BY` negativo), que retornavam resultados incorretos quando a entrada era ordenada com uma collation (`ORDER BY ... COLLATE`). Linhas consideradas iguais de acordo com a collation (por exemplo, `'a'` e `'A'` sob uma collation sem diferenciar maiúsculas de minúsculas) são ordenadas pela chave de collation e não ficam adjacentes por valor; por isso, a otimização in order agora é ignorada quando um collator é usado. [#106564](https://github.com/ClickHouse/ClickHouse/pull/106564) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrigidos resultados incorretos para `SELECT c, count() FROM t WHERE c GROUP BY c` em tabelas com a `_minmax_count_projection` implícita, uma projeção agregada explícita ou uma projeção normal: antes, cada grupo colapsava em uma única linha com uma chave constante e a contagem total de linhas. [#106590](https://github.com/ClickHouse/ClickHouse/pull/106590) ([Groene AI](https://github.com/groeneai)).
* Corrige um bug em que os usuários não conseguiam usar subconsultas escalares no primeiro argumento de `IN` quando o segundo argumento era uma tupla não constante. [#106610](https://github.com/ClickHouse/ClickHouse/pull/106610) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrigida a exceção `Mutation of `Memory` table produced incomplete output`, gerada ao executar comandos `ALTER TABLE <memory_table>` que não têm efeito nos dados por linha em um engine `Memory`, especificamente `APPLY PATCHES`, `APPLY DELETED MASK`, `MATERIALIZE STATISTICS`, `MATERIALIZE INDEX`, `MATERIALIZE PROJECTION` e `REWRITE PARTS`. Tabelas `Memory` não possuem essas estruturas, então esses comandos agora são tratados como no-ops. [#106621](https://github.com/ClickHouse/ClickHouse/pull/106621) ([Groene AI](https://github.com/groeneai)).
* Corrige o problema de `session_timezone` ser ignorado ao serializar colunas `LowCardinality(DateTime)` para formatos de texto (CSV, TSV, JSONEachRow etc.). Antes, após a primeira gravação de uma coluna `LowCardinality(DateTime)` em um servidor, toda consulta subsequente que gravava esse tipo de coluna passava a formatar a string de horário local usando o primeiro fuso horário visto, independentemente de `session_timezone`. [#106634](https://github.com/ClickHouse/ClickHouse/pull/106634) ([Groene AI](https://github.com/groeneai)).
* Corrigido um `LOGICAL_ERROR` "Trying to get name of not a column: `ExpressionList`" gerado por consultas que passam um asterisco dentro de `multiIf` para um argumento de table function, por exemplo, `numbers(multiIf(*, ...), 2)`. A consulta agora rejeita o matcher não resolvível com `UNSUPPORTED_METHOD`. [#106647](https://github.com/ClickHouse/ClickHouse/pull/106647) ([Groene AI](https://github.com/groeneai)).
* Corrige a falha na inicialização do servidor com `Too many marks in file ...skp_idx_idx.cmrk4, marks expected 0 (bytes size 0)` quando uma tabela `MergeTree` tem uma parte de índice de salto com zero grânulos e um arquivo de marcas não vazio no disco. [#106675](https://github.com/ClickHouse/ClickHouse/pull/106675) ([Groene AI](https://github.com/groeneai)).
* Rejeita glob patterns patológicos de `file` que causariam recursão ilimitada na listagem de diretórios. Agora, é aplicado um limite máximo de profundidade de recursão de 1000; consultas que o excederem gerarão `TOO_DEEP_RECURSION` em vez de derrubar o servidor com stack overflow. [#106676](https://github.com/ClickHouse/ClickHouse/pull/106676) ([Groene AI](https://github.com/groeneai)).
* Corrige o abort do servidor `Bad cast from type DB::ColumnNothing to DB::ColumnVector<char8_t>` em `FunctionIf::executeForConstAndNullableCondition` quando a condição `if`/`multiIf` é reduzida a uma constante `Const(Nullable(Nothing))` (por exemplo, um subscrito fora do intervalo em um array vazio, como `arraySort(x -> x, [])[toNullable(1)]`). [#106678](https://github.com/ClickHouse/ClickHouse/pull/106678) ([Groene AI](https://github.com/groeneai)).
* Corrige a exceção `'Trying to read from input() twice.'` gerada quando a table function `input` é encapsulada em uma CTE não MATERIALIZED referenciada em mais de um ponto da consulta. Agora, a consulta é rejeitada com um erro claro `INVALID_USAGE_OF_INPUT` no momento do planejamento. `input` é um stream de client de uso único e só pode ser consumido por uma única source no plano da consulta. [#106682](https://github.com/ClickHouse/ClickHouse/pull/106682) ([Groene AI](https://github.com/groeneai)).
* Faz com que `FORMAT` também seja aplicado à saída de `EXPLAIN` em `EXPLAIN ... INSERT ... SELECT ... FORMAT ...` quando `SETTINGS` precede `FORMAT` ou quando o output format é `Values`. Continuação de [#101772](https://github.com/ClickHouse/ClickHouse/issues/101772). [#106686](https://github.com/ClickHouse/ClickHouse/pull/106686) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um raro erro espúrio `RESOURCE_ACCESS_DENIED` ("Scheduler queue with resource request is about to be destructed") para uma consulta à qual o acesso a um resource de workload havia, na verdade, sido concedido, causado por um objeto de request local à thread reutilizado que preservava a falha de uma request anterior. [#106690](https://github.com/ClickHouse/ClickHouse/pull/106690) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige uma race entre a destruição de objetos `INATSConsumer` e chamadas a `INATSConsumer::onMsg` nesses objetos por meio de callbacks na biblioteca NATS. [#106692](https://github.com/ClickHouse/ClickHouse/pull/106692) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrige `match`, `extract`, `extractAll` e `countMatches`, que retornavam resultados incorretos para regular expressions contendo escapes hexadecimais ou octais. [#106709](https://github.com/ClickHouse/ClickHouse/pull/106709) ([ofeliacode](https://github.com/ofeliacode)).
* O TLS interno de Raft do Keeper agora respeita a configuração `openSSL.client.verificationMode`. Antes, a verificação de certificados de peer ficava sempre habilitada para a comunicação Raft entre instâncias do Keeper, independentemente dessa configuração, de modo que `none` era ignorado silenciosamente. Agora, `none` desabilita explicitamente a verificação de certificados de peer do Raft, enquanto a ausência da configuração mantém o comportamento anterior, seguro por padrão. Configurações que definem explicitamente `none` deixarão de verificar certificados de peer do Raft após o upgrade, em conformidade com a intenção configurada. [#106726](https://github.com/ClickHouse/ClickHouse/pull/106726) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige logical error em startup scripts em `SYSTEM RELOAD CONFIG`. Além disso, carrega startup scripts em `SYSTEM RELOAD CONFIG` (funcionalidade atualmente disponível apenas de forma privada). [#106727](https://github.com/ClickHouse/ClickHouse/pull/106727) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Reverte uma alteração que fazia `sumMap` / o combinador `-Map` rejeitar tipos numéricos de valor com nomes personalizados (como `SimpleAggregateFunction(sum, T)` e `Bool`) com `ILLEGAL_TYPE_OF_ARGUMENT: Values for -Map cannot be summed`, quebrando agregações que antes funcionavam. [#106729](https://github.com/ClickHouse/ClickHouse/pull/106729) ([Nikita Fomichev](https://github.com/fm4v)).
* Corrigidos vários problemas de segurança de memória e esgotamento de recursos em leitores de formato acessíveis por entrada não confiável: uma leitura fora dos limites do heap no tratamento do comprimento dos níveis de definição/repetição de `DataPageV2` no leitor nativo de Parquet, um estouro de pilha em arquivos Parquet com esquemas profundamente aninhados e alocações que ignoravam `max_memory_usage` ao fazer parsing de geometria WKB/WKT do GeoParquet e de strings/bytes do Avro. [#106739](https://github.com/ClickHouse/ClickHouse/pull/106739) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigido um heap buffer overflow (falha do servidor) em `decodeHTMLComponent` ao decodificar strings contendo as entidades HTML expansivas `&nGt;` ou `&nLt;`, explorável por qualquer usuário com um único `SELECT`. [#106741](https://github.com/ClickHouse/ClickHouse/pull/106741) ([Raúl Marín](https://github.com/Algunenano)).
* Rejeita `CREATE TABLE`, `ALTER TABLE ADD INDEX` e `CREATE INDEX` com `GRANULARITY 0` para skipping indexes com um erro `BAD_ARGUMENTS` claro. Antes, isso acionava uma exceção `Inconsistent AST formatting` em builds de debug. [#106783](https://github.com/ClickHouse/ClickHouse/pull/106783) ([Groene AI](https://github.com/groeneai)).
* Corrigido o problema em que Azure BACKUP/RESTORE ignorava as configurações de endpoint para discos `azure_blob_storage` no formato legado. [#106784](https://github.com/ClickHouse/ClickHouse/pull/106784) ([Julia Kartseva](https://github.com/jkartseva)).
* Corrigida uma exceção `Bad cast` ao podar partes com base em estatísticas `MinMax` quando uma coluna-chave é `LowCardinality` e a constante do predicado é `LowCardinality(Nullable(...))`. [#106793](https://github.com/ClickHouse/ClickHouse/pull/106793) ([Groene AI](https://github.com/groeneai)).
* Corrige colunas inconsistentes (o que depois leva a `LOGICAL_ERROR`) em caso de exceção (isto é, `MEMORY_LIMIT_EXCEEDED`) durante o parsing. [#106802](https://github.com/ClickHouse/ClickHouse/pull/106802) ([Azat Khuzhin](https://github.com/azat)).
* Corrige um problema em que, após configurar `keeper_server.http_control.secure_port`, o servidor retornava uma resposta HTTP ao receber solicitações de clientes HTTPS. [#106822](https://github.com/ClickHouse/ClickHouse/pull/106822) ([linjiayu1025-collab](https://github.com/linjiayu1025-collab)).
* Corrige erro lógico em `parseDateTime` com bytes de entrada não ASCII. [#106856](https://github.com/ClickHouse/ClickHouse/pull/106856) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige `SHOW CREATE ROW POLICY` emitindo `restrictive`/`permissive` em minúsculas em vez de maiúsculas, de forma inconsistente com outras palavras-chave. [#106865](https://github.com/ClickHouse/ClickHouse/pull/106865) ([Valery Petrov](https://github.com/valerypetrov)).
* Corrige o caso em que réplicas paralelas não eram aplicadas a uma view com `UNION` devido a uma tabela vazia no `UNION`. [#106900](https://github.com/ClickHouse/ClickHouse/pull/106900) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige falha do servidor (SIGSEGV) ao ler dados `Protobuf` truncados com `input_format_allow_errors_num > 0`. [#106905](https://github.com/ClickHouse/ClickHouse/pull/106905) ([Andrey Tsarevskiy | Андрей Царевский ](https://github.com/atsarevskiy)).
* Corrige a exceção `THERE_IS_NO_COLUMN` em consultas distribuídas que envolvem a otimização `optimize_rewrite_aggregate_function_with_if` quando o argumento da função de agregação exige um cast para o tipo `Nullable`. [#106908](https://github.com/ClickHouse/ClickHouse/pull/106908) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige uma exceção (`LOGICAL_ERROR`) no JOIN runtime filter quando a chave do join contém um tipo `Variant` ou `Dynamic` aninhado em um `Tuple`, `Array` ou `Map`, e o lado direito do join tem um único valor distinto. [#106931](https://github.com/ClickHouse/ClickHouse/pull/106931) ([Groene AI](https://github.com/groeneai)).
* Corrigido um overflow de inteiro com sinal (comportamento indefinido) em `arrayLevenshteinDistanceWeighted` e `arraySimilarity` quando os arrays de pesos contêm valores inteiros grandes. A distância ponderada agora é acumulada em um inteiro de maior largura para pesos integrais, de modo que pesos inteiros grandes não causam mais overflow e permanecem exatos. [#106934](https://github.com/ClickHouse/ClickHouse/pull/106934) ([Groene AI](https://github.com/groeneai)).
* Corrige uma falha do servidor (desreferência de ponteiro nulo) ao executar `TRUNCATE` ou `DROP` em uma tabela `EmbeddedRocksDB` cujo handle do RocksDB foi liberado, por exemplo, uma tabela `read_only` cujo diretório de dados foi esvaziado por um `TRUNCATE` anterior. [#106940](https://github.com/ClickHouse/ClickHouse/pull/106940) ([Groene AI](https://github.com/groeneai)).
* Corrige uma exceção (`std::length_error` reportado como `LOGICAL_ERROR`) ao ler de uma função de tabela `*Cluster`, como `urlCluster`, com uma configuração `max_streams_for_files_processing_in_cluster_functions` muito alta. O número de streams agora é limitado a um valor razoável. [#106946](https://github.com/ClickHouse/ClickHouse/pull/106946) ([Groene AI](https://github.com/groeneai)).
* Corrige uma falha do servidor (desreferência de ponteiro nulo de `DB::IConnections`) em `RemoteQueryExecutor` quando uma consulta distribuída é cancelada logo antes de ser enviada para um shard. [#106950](https://github.com/ClickHouse/ClickHouse/pull/106950) ([Groene AI](https://github.com/groeneai)).
* Corrigido o problema em que `elapsed_us` era sempre zero, e `read_rows`/`read_bytes` eram subestimados, em `system.processors_profile_log` e `system.query_log` para consultas de flush de insert assíncrono (`AsyncInsertFlush`). [#106982](https://github.com/ClickHouse/ClickHouse/pull/106982) ([Christoph Wurm](https://github.com/cwurm)).
* Corrige uma falha (`Source column is not Map` / `SIGSEGV`) ao mesclar blocos ordenados que contêm uma coluna `Variant` com uma variante `Map` cuja ordem de armazenamento local difere da ordem global. [#107011](https://github.com/ClickHouse/ClickHouse/pull/107011) ([Groene AI](https://github.com/groeneai)).
* Corrige um erro lógico `conflicted_part_name.has_value()` gerado durante um insert síncrono em uma tabela `ReplicatedMergeTree` quando o bloco inserido foi totalmente desduplicado e o nó de desduplicação da part conflitante já havia sido removido (por exemplo, por um `DROP PARTITION` concorrente). [#107026](https://github.com/ClickHouse/ClickHouse/pull/107026) ([Groene AI](https://github.com/groeneai)).
* Corrigida uma exceção (erro lógico `this->visited_views == right->visited_views`) em `INSERT` quando duas visões materializadas na mesma tabela de origem gravam na mesma tabela de destino, e uma visão dependente lê essa tabela de destino, com `materialized_views_squash_parallel_inserts` habilitado. [#107027](https://github.com/ClickHouse/ClickHouse/pull/107027) ([Groene AI](https://github.com/groeneai)).
* Corrigido um erro lógico `Block structure mismatch in UnionStep stream` (aborto do servidor em builds de debug/sanitizer, `Code: 49` em builds de lançamento) que ocorria quando um ramo de `UNION`/`INTERSECT`/`EXCEPT` lia uma coluna serializada como `Sparse`, enquanto o ramo irmão lia a mesma coluna como completa (por exemplo, ao enviar para uma visão materializada). [#107041](https://github.com/ClickHouse/ClickHouse/pull/107041) ([Groene AI](https://github.com/groeneai)).
* Corrigida uma exceção `LOGICAL_ERROR` ao inserir em uma tabela DeltaLake com colunas que não correspondem ao seu esquema de escrita (por exemplo, uma coluna `Nested` que é achatada em subcolunas, ou uma table function com um subconjunto explícito de colunas). Essas inserções agora falham com um erro `INCOMPATIBLE_COLUMNS` exibido ao usuário. Fecha [#87402](https://github.com/ClickHouse/ClickHouse/issues/87402). [#107058](https://github.com/ClickHouse/ClickHouse/pull/107058) ([Groene AI](https://github.com/groeneai)).
* Corrige o erro `TYPE_MISMATCH` ("Cannot convert string ... to type ...") em consultas `ORDER BY <numeric column> ... LIMIT n` quando a lazy materialization colocava outra coluna antes da coluna de ordenação. O limiar top-K agora é lido da coluna de ordenação correta. [#107060](https://github.com/ClickHouse/ClickHouse/pull/107060) ([Groene AI](https://github.com/groeneai)).
* Corrigido um erro de sintaxe quando uma cláusula `FORMAT`, `SETTINGS` ou `INTO OUTFILE` vem após `SHOW ROW POLICIES` ou `SHOW MASKING POLICIES` (por exemplo, `SHOW ROW POLICIES FORMAT TabSeparated`). [#107061](https://github.com/ClickHouse/ClickHouse/pull/107061) ([Groene AI](https://github.com/groeneai)).
* Corrige um `ALTER TABLE ... RENAME COLUMN a TO b, RENAME COLUMN c TO a` composto que reutiliza um nome de coluna liberado (uma "troca") entre colunas de tipos diferentes. A parte materializada registrava o tipo de coluna incorreto, então um `SELECT` posterior falhava com `Conversion between numeric types and IPv6 is not supported` (ou abortava ao carregar a parte em builds de debug). [#107064](https://github.com/ClickHouse/ClickHouse/pull/107064) ([Groene AI](https://github.com/groeneai)).
* Corrigidos resultados não determinísticos da função `roundDown` quando o array de fronteiras contém `NaN`. O mesmo valor de entrada podia retornar uma fronteira finita ou `NaN`, dependendo das linhas ao redor em um lote. As fronteiras `NaN` agora são ignoradas, então o resultado depende apenas das fronteiras finitas. [#107065](https://github.com/ClickHouse/ClickHouse/pull/107065) ([Groene AI](https://github.com/groeneai)).
* Corrigido o fato de `quantileTDigest` e `quantileTDigestWeighted` lançarem `DECIMAL_OVERFLOW` para argumentos `Date` e `DateTime` quando o quantil interpolado é fracionário, mas está dentro do intervalo (por exemplo, `quantileTDigestWeighted(date, weight)` em valores que cabem no tipo). O resultado fracionário agora é truncado para o tipo de resultado, em conformidade com `quantilesTDigestWeighted`; valores realmente fora do intervalo ainda geram erro. Fecha: [#106722](https://github.com/ClickHouse/ClickHouse/issues/106722). [#107066](https://github.com/ClickHouse/ClickHouse/pull/107066) ([Groene AI](https://github.com/groeneai)).
* Corrige `trimLeft`, `trimRight` e `trimBoth` (e os aliases `ltrim`, `rtrim`, `trim`) que lançavam `TOO_LARGE_STRING_SIZE` quando o conjunto de caracteres de trim personalizado tinha mais de 16 caracteres. Conjuntos de trim de qualquer tamanho agora voltam a ser compatíveis. [#107071](https://github.com/ClickHouse/ClickHouse/pull/107071) ([Nikita Fomichev](https://github.com/fm4v)).
* Corrigido o truncamento silencioso de valores inteiros fora do intervalo em definições de tipo `Enum8`/`Enum16`. `Enum8('a' = 200)` agora lança `ARGUMENT_OUT_OF_BOUND` em vez de criar silenciosamente `Enum8('a' = -56)`. [#107081](https://github.com/ClickHouse/ClickHouse/pull/107081) ([Groene AI](https://github.com/groeneai)).
* Corrige a ordem incorreta das linhas (e um `LOGICAL_ERROR` "Rows are not sorted with permutation" em builds de debug) em consultas `ORDER BY ... LIMIT` com várias colunas que ordenam por colunas `Nullable` quando várias linhas empatam nas colunas iniciais. [#107094](https://github.com/ClickHouse/ClickHouse/pull/107094) ([Groene AI](https://github.com/groeneai)).
* Corrige um `LOGICAL_ERROR` (`Expected the argument N to have X rows, but it has Y`) ao executar uma função sobre uma coluna `Dynamic` produzida por um JOIN sobre `Dynamic` (por exemplo, as linhas sem correspondência de um `RIGHT`/`FULL JOIN`, ou uma subconsulta `EXISTS` correlacionada transformada em um join). [#107095](https://github.com/ClickHouse/ClickHouse/pull/107095) ([Groene AI](https://github.com/groeneai)).
* Corrige a recriação espúria da sessão do ZooKeeper ao recarregar a configuração. [#107096](https://github.com/ClickHouse/ClickHouse/pull/107096) ([Azat Khuzhin](https://github.com/azat)).
* Não mantém o mutex durante leituras do ZooKeeper na atualização das entidades de acesso. [#107097](https://github.com/ClickHouse/ClickHouse/pull/107097) ([Azat Khuzhin](https://github.com/azat)).
* Corrige uma exceção `Logical error: Too large size passed to allocator` em `INSERT` em uma tabela `MergeTree` quando `adaptive_write_buffer_initial_size` é definido com um valor extremamente alto. O tamanho inicial adaptativo do buffer de escrita agora é limitado ao tamanho máximo do buffer. [#107104](https://github.com/ClickHouse/ClickHouse/pull/107104) ([Groene AI](https://github.com/groeneai)).
* Corrige `LOGICAL ERROR` (`Bad cast from type DB::ColumnString to DB::ColumnLowCardinality`) quando uma constante `Variant` que contém um membro `LowCardinality` é comparada a uma coluna-chave cuja expressão-chave é uma função determinística não monotônica (por exemplo, um skip index `minmax` sobre `sipHash64(col)`). [#107111](https://github.com/ClickHouse/ClickHouse/pull/107111) ([Groene AI](https://github.com/groeneai)).
* Corrige um erro lógico `Bad cast from type DB::IColumn const* to DB::ColumnNullable const*` quando um asterisco qualificado (`t.*`) sobre uma chave `JOIN ... USING` é passado para uma função de agregação e o outro lado de um outer JOIN tem uma chave `Nullable` (com `join_use_nulls = 0`). [#107129](https://github.com/ClickHouse/ClickHouse/pull/107129) ([Groene AI](https://github.com/groeneai)).
* Corrige lotes de `ALTER TABLE ... ON CLUSTER` que misturam `MODIFY SETTING`/`RESET SETTING` com uma alteração de comentário (por exemplo, `MODIFY COMMENT 'x', MODIFY SETTING old_parts_lifetime = 123`) e eram aplicados apenas na réplica líder, deixando as outras réplicas divergentes. Também corrige casos em que `MODIFY COLUMN ... COMMENT`, posicional ou por coluna com `SETTINGS`, era classificado incorretamente como uma alteração local de metadados apenas de comentário, o que deixava a reordenação da coluna fora dos metadados replicados e podia causar `INCOMPATIBLE_COLUMNS` ao reiniciar a réplica. [#107142](https://github.com/ClickHouse/ClickHouse/pull/107142) ([Groene AI](https://github.com/groeneai)).
* Corrige um `LOGICAL_ERROR` ("Table expression ... data must be initialized") gerado quando um seletor de asterisco qualificado (por exemplo, `x.*`) referenciava uma CTE recursive pelo nome dentro do próprio termo recursivo. Esses seletores agora expandem as colunas da tabela recursiva, da mesma forma que uma coluna qualificada (`x.a`) ou um seletor não qualificado (`*`) já faz nessa posição. [#107144](https://github.com/ClickHouse/ClickHouse/pull/107144) ([Groene AI](https://github.com/groeneai)).
* Corrige resultados de consulta incorretos causados pelo cache de condições de consulta quando mutações on-fly (`apply_mutations_on_fly`) ou patch parts filtravam linhas antes de `PREWHERE`. Uma consulta executada com `apply_mutations_on_fly = 1` podia contaminar o cache, fazendo com que uma consulta posterior com `apply_mutations_on_fly = 0` e o mesmo predicado pulasse marcas que deveria ter lido e retornasse linhas de menos. A mesma correção também cobre políticas de segurança em nível de linha, que são adicionadas como filtro antes de `PREWHERE`: uma consulta executada sob uma row policy restritiva podia contaminar o cache para uma consulta posterior que usa o mesmo predicado sem essa policy. [#107145](https://github.com/ClickHouse/ClickHouse/pull/107145) ([Groene AI](https://github.com/groeneai)).
* Corrigido `BACKUP` para `AzureBlobStorage`: copiar um arquivo de dados dentro de um backup fazia com que o objeto de destino fosse gravado fora do diretório do backup. As verificações de existência de objetos de backup em destinos `S3` agora usam requisições `HeadObject` exatas em vez de listagem por prefixo, evitando correspondências falsas com chaves de prefixo semelhante. [#107153](https://github.com/ClickHouse/ClickHouse/pull/107153) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrigido um overflow de inteiro com sinal em `quantileExactExclusive`, `quantilesExactExclusive`, `quantileExactInclusive` e `quantilesExactInclusive` que podia produzir resultados incorretos para entradas `Int64` cobrindo um intervalo amplo. [#107154](https://github.com/ClickHouse/ClickHouse/pull/107154) ([Groene AI](https://github.com/groeneai)).
* Corrigido um `LOGICAL_ERROR` ("Unexpected exception in refresh scheduling") que podia colocar o servidor em um loop de falhas ao reiniciar quando uma view materializada atualizável tem uma dependência `REFRESH ... DEPENDS ON <name>` cujo nome não qualificado coincide com o nome de uma tabela temporária ou de uma CTE. [#107156](https://github.com/ClickHouse/ClickHouse/pull/107156) ([Groene AI](https://github.com/groeneai)).
* Garantido que scripts de inicialização não sejam executados ao recarregar a config, pois isso é semanticamente incorreto, inesperado para os usuários e já se mostrou propenso a erros. [#107187](https://github.com/ClickHouse/ClickHouse/pull/107187) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Limitado o valor máximo de `queue_size` para pré-reserva. [#107205](https://github.com/ClickHouse/ClickHouse/pull/107205) ([Elian Gidoni](https://github.com/eliangidoni)).
* Corrigido o erro `Argument ... of GROUPING function is not a part of GROUP BY clause` para queries que usam a função `grouping` com a configuração `group_by_use_nulls` habilitada. [#107206](https://github.com/ClickHouse/ClickHouse/pull/107206) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigida a ordem incorreta dos resultados em `ORDER BY` sobre `UNION ALL` com `optimize_read_in_order` habilitado quando o pipeline de union foi reduzido devido às configurações de `max_streams_for_union_step`; essa redução agora é ignorada quando o plano depende de stream de saída ordenados do UNION. Fecha [#106880](https://github.com/ClickHouse/ClickHouse/issues/106880). [#107208](https://github.com/ClickHouse/ClickHouse/pull/107208) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrigida uma possível desreferenciação de ponteiro nulo ao resolver a configuração de proxy durante a fase final de desligamento do servidor. [#107231](https://github.com/ClickHouse/ClickHouse/pull/107231) ([Pedro Ferreira](https://github.com/PedroTadim)).
* Corrigidas queries `UPDATE` lightweight com parallel replicas legadas habilitadas para tabelas `MergeTree` não replicadas. [#107246](https://github.com/ClickHouse/ClickHouse/pull/107246) ([Groene AI](https://github.com/groeneai)).
* Corrigido um abort do servidor (erro lógico `std::out_of_range`) ao inserir em uma tabela `Iceberg` cujos nomes de colunas do bloco de escrita não correspondem aos IDs de campo do schema mais recente (por exemplo, depois que um gravador concorrente renomeia uma coluna dentro da janela `iceberg_metadata_staleness_ms`). A inserção agora falha com um erro de query claro em vez de derrubar o servidor. [#107279](https://github.com/ClickHouse/ClickHouse/pull/107279) ([Groene AI](https://github.com/groeneai)).
* Corrigido o bug de desligamento travado no servidor e no modo local devido a pools de threads estáticos manterem threads ociosas indefinidamente se `max_*_thread_pool_free_size > 0`. [#107291](https://github.com/ClickHouse/ClickHouse/pull/107291) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrigida a `table function` `s3`, que ignorava silenciosamente um `partition_strategy` posicional em minúsculas (por exemplo, `hive`). [#107297](https://github.com/ClickHouse/ClickHouse/pull/107297) ([Julia Kartseva](https://github.com/jkartseva)).
* Corrigido o tratamento de `low_cardinality_allow_in_native_format=0` no empacotamento de blocos em paralelo. [#107319](https://github.com/ClickHouse/ClickHouse/pull/107319) ([Azat Khuzhin](https://github.com/azat)).
* Corrige resultados incorretos (muitas vezes vazios) de `ORDER BY <col> LIMIT n` quando a otimização `use_skip_indexes_for_top_k` está ativa e uma parte com um índice skip `minmax` na coluna de ordenação teve linhas removidas por um lightweight `DELETE`. A otimização não classifica mais o `minmax` desatualizado de partes com lightweight `DELETE` à frente das partes que contêm as linhas de topo ainda ativas. [#107320](https://github.com/ClickHouse/ClickHouse/pull/107320) ([Groene AI](https://github.com/groeneai)).
* Corrigido um bug no ClickHouse Keeper em que os metadados de snapshot reportados via `last_snapshot` (e `zk_latest_snapshot_size` em `mntr`) podiam regredir após a instalação de um snapshot desatualizado ou duplicado, o que também podia permitir que um snapshot local com o mesmo índice sobrescrevesse um arquivo de snapshot registrado no local enquanto ele ainda estava sendo transmitido para um peer ou enviado ao S3. [#107321](https://github.com/ClickHouse/ClickHouse/pull/107321) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigido um possível stack overflow no servidor (crash) ao ler um schema ou valor profundamente aninhado nos formatos `MsgPack`, `BSON`, `ORC`, `Parquet`, `JSON`, `DeltaLake`, `Iceberg` e `Paimon`. Esse input profundamente aninhado agora é rejeitado com uma exceção. [#107341](https://github.com/ClickHouse/ClickHouse/pull/107341) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige um possível logical error em `SYSTEM SYNC DATABASE REPLICA ... STRICT` e faz com que o modificador `STRICT` realmente tenha efeito para réplicas de banco de dados. [#107344](https://github.com/ClickHouse/ClickHouse/pull/107344) ([Pedro Ferreira](https://github.com/PedroTadim)).
* Corrige uma interrupção do servidor em compilações de debug/sanitizer ao ler uma tabela `DeltaLake` cujo schema do ClickHouse nomeia uma coluna ausente do mapeamento de colunas do Delta, por exemplo, depois que uma coluna foi renomeada ou removida no log do Delta. Agora, a consulta falha com um erro `INCORRECT_DATA` capturável. [#107347](https://github.com/ClickHouse/ClickHouse/pull/107347) ([Groene AI](https://github.com/groeneai)).
* Corrige `ORDER BY ... WITH FILL` gerando linhas extras quando uma coluna de `ORDER BY` anterior à coluna de preenchimento usa uma collation `COLLATE`. As linhas agora são agrupadas pelo prefixo de ordenação usando essa collation, em conformidade com a ordenação. [#107365](https://github.com/ClickHouse/ClickHouse/pull/107365) ([Groene AI](https://github.com/groeneai)).
* Corrigido um crash (`LOGICAL_ERROR` em compilações de debug) e um bug silencioso de resultados incorretos (em compilações de lançamento) ao ler uma tabela Iceberg cujos metadados reatribuem um `schema-id` existente a um schema diferente entre versões de metadados. Esses metadados agora são rejeitados com `ICEBERG_SPECIFICATION_VIOLATION`. [#107370](https://github.com/ClickHouse/ClickHouse/pull/107370) ([Groene AI](https://github.com/groeneai)).
* Corrige um `LOGICAL_ERROR` (`Variant N (T) has size X, but expected Y`) quando uma função como `toString` ou `concat` é aplicada a uma coluna `Variant` ou `Dynamic` que contém uma única variante não vazia junto com NULLs, e a função retorna a coluna de entrada sem alterações. [#107374](https://github.com/ClickHouse/ClickHouse/pull/107374) ([Groene AI](https://github.com/groeneai)).
* Corrige `Logical error: 'Duplicate announcement received for replica number N'`, que podia ocorrer com réplicas paralelas quando uma scalar subquery continha subqueries aninhadas que liam a mesma tabela. [#107381](https://github.com/ClickHouse/ClickHouse/pull/107381) ([Groene AI](https://github.com/groeneai)).
* Corrige `getServerSetting` para retornar o valor efetivo em uso de server settings alteráveis em runtime (como `max_server_memory_usage`, `mark_cache_size`, `max_concurrent_queries`, tamanhos de thread pool etc.), em conformidade com o que `system.server_settings` reporta. [#107388](https://github.com/ClickHouse/ClickHouse/pull/107388) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige `arrayResize` com um argumento de tamanho `Decimal`: o tamanho agora é interpretado pelo seu valor real (por exemplo, `arrayResize([1, 2, 3], 1.5::Decimal(2, 1))` retorna um elemento) em vez da representação bruta não escalada. [#107389](https://github.com/ClickHouse/ClickHouse/pull/107389) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um `LOGICAL_ERROR` (`block.rows() == getRows()`) gerado em um `INSERT` assíncrono em uma tabela `Alias` quando `use_strict_insert_block_limits` estava habilitado. [#107400](https://github.com/ClickHouse/ClickHouse/pull/107400) ([Groene AI](https://github.com/groeneai)).
* Corrige um erro lógico (`Unexpected return type from equals. Expected Nullable(UInt8). Got UInt8`) quando a otimização de push-down de disjunção (predicado parcial) aplica uma condição sobre uma chave `USING` cujo tipo é ampliado pelo JOIN. Também corrige uma falha do servidor (segmentation fault) no analisador ao resolver identificadores em consultas `JOIN ... USING` que contêm ramificações `if`/`multiIf` passíveis de constant folding que fazem referência a identificadores desconhecidos. [#107407](https://github.com/ClickHouse/ClickHouse/pull/107407) ([Groene AI](https://github.com/groeneai)).
* Corrigido um heap buffer overflow (falha do servidor) em `windowFunnel` ao finalizar um estado de função de agregação manipulado com um tipo de evento fora do intervalo, explorável por qualquer usuário com um único `SELECT`. [#107412](https://github.com/ClickHouse/ClickHouse/pull/107412) ([uwezkhan](https://github.com/uwezkhan)).
* Corrigido comportamento indefinido quando um valor de ponto flutuante não finito (como `nan` ou `inf`) é passado como argumento de timestamp/duração das table functions `prometheusQuery` / `prometheusQueryRange`. Esse argumento agora gera `BAD_ARGUMENTS` em vez de produzir um timestamp inválido. [#107417](https://github.com/ClickHouse/ClickHouse/pull/107417) ([Groene AI](https://github.com/groeneai)).
* Corrige um problema no `MaterializedPostgreSQL` que fazia a replicação de alterações parar silenciosamente quando o nome do banco de dados ou da tabela no PostgreSQL continha letras maiúsculas (o consumidor `pgoutput` solicitava um nome de publication sem aspas e em minúsculas que não correspondia à publication com preservação de maiúsculas e minúsculas). [#107423](https://github.com/ClickHouse/ClickHouse/pull/107423) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige uma exceção (`Logical error: Not-ready Set is passed as the second argument for function 'in'`) quando uma expressão-chave (`ORDER BY`, `PRIMARY KEY`, `PARTITION BY` ou um `INDEX` de skip) continha um operador `IN` com uma tabela no lado direito, por exemplo `ORDER BY (x IN some_table)`. Essas expressões-chave agora são rejeitadas no momento da criação da tabela. [#107424](https://github.com/ClickHouse/ClickHouse/pull/107424) ([Groene AI](https://github.com/groeneai)).
* Corrige resultados incorretos da otimização `optimize_rewrite_aggregate_function_with_if` para aggregate functions que preservam valores de payload `NULL` (a família `*_respect_nulls`: `anyRespectNulls`, `first_value_respect_nulls`, `anyLast_respect_nulls`, `last_value_respect_nulls`). A otimização não reescreve mais `f(if(cond, x, NULL))` para a forma `-If` nessas funções. [#107430](https://github.com/ClickHouse/ClickHouse/pull/107430) ([Groene AI](https://github.com/groeneai)).
* Corrige uma exceção espúria `filesystem error: in last_write_time: No such file or directory` ao listar um diretório de armazenamento de objetos em disco local (por exemplo, uma Iceberg table em um disk `local`) enquanto arquivos estão sendo substituídos de forma concorrente. Uma entrada removida concorrentemente agora é omitida da listagem em vez de interrompê-la. [#107432](https://github.com/ClickHouse/ClickHouse/pull/107432) ([Groene AI](https://github.com/groeneai)).
* Corrige o erro `THERE_IS_NO_COLUMN` quando `optimize_if_transform_strings_to_enum = 1` e a expressão otimizada `if`/`transform` sobre literais de string é uma chave `GROUP BY` ou `ORDER BY` em uma tabela Distributed ou em parallel replicas. [#107455](https://github.com/ClickHouse/ClickHouse/pull/107455) ([Groene AI](https://github.com/groeneai)).
* Corrigido um crash raro do servidor no processamento de `DISTINCT` que podia ocorrer quando uma alocação falhava (por exemplo, ao atingir um limite de memória) enquanto o conjunto de chaves distintas estava sendo inicializado. [#107467](https://github.com/ClickHouse/ClickHouse/pull/107467) ([Groene AI](https://github.com/groeneai)).
* Corrige `LOGICAL_ERROR: Unexpected return type from materialize` (e erros semelhantes de incompatibilidade de tipo) quando `apply_mutations_on_fly = 1` é usado em uma tabela com um `UPDATE` on-fly pendente cuja coluna de destino também é lida como entrada de função por um `UPDATE` on-fly anterior, antes de uma mutação `ALTER MODIFY COLUMN ... LowCardinality(...)`. [#107475](https://github.com/ClickHouse/ClickHouse/pull/107475) ([Groene AI](https://github.com/groeneai)).
* Corrigidas credenciais AWS STS obsoletas ao ler tabelas `DeltaLake` via `S3`: o engine agora mantém o cliente `S3` com credenciais atualizadas ao renovar seu snapshot, para que leituras de longa duração não falhem mais depois que o TTL do token STS expirar. O provedor de credenciais assume-role do STS agora também respeita a atualização de credenciais para qualquer acesso a `S3` usando STS. [#107480](https://github.com/ClickHouse/ClickHouse/pull/107480) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Corrigido `SELECT ... FINAL` e `OPTIMIZE TABLE ... FINAL` retornando linhas duplicadas após `CREATE TABLE ... CLONE AS`, `ATTACH PARTITION ... FROM` ou `MOVE PARTITION ... TO TABLE` adotarem partes de um `MergeTree` simples em um `ReplacingMergeTree`, `SummingMergeTree` ou `AggregatingMergeTree`. O nível de merge da parte adotada agora é redefinido para 0 quando os engines de origem e destino diferem, para que o destino a deduplique no próximo merge. [#107481](https://github.com/ClickHouse/ClickHouse/pull/107481) ([Groene AI](https://github.com/groeneai)).
* Corrige um underflow de inteiro no parser do PostgreSQL wire protocol, em que uma mensagem com um campo de comprimento menor que 4 causava wraparound em `size - 4` e um `resize`/`ignore` excessivo. [#107485](https://github.com/ClickHouse/ClickHouse/pull/107485) ([uwezkhan](https://github.com/uwezkhan)).
* O cancelamento de consultas agora é rastreado com mais precisão enquanto aguarda o quorum no ReplicatedMergeTree. [#107513](https://github.com/ClickHouse/ClickHouse/pull/107513) ([Nikita Taranov](https://github.com/nickitat)).
* Corrigido `Not-ready Set is passed as the second argument for function 'in'` (`LOGICAL_ERROR`) ao consultar uma tabela com uma chave `PARTITION BY` e uma subconsulta `IN`/`NOT IN` envolvida em uma expressão maior, por exemplo `WHERE (c0 IN (SELECT ...)) != 0`. [#107515](https://github.com/ClickHouse/ClickHouse/pull/107515) ([Groene AI](https://github.com/groeneai)).
* Corrigido `currentUser()`, `user()`, `SESSION_USER` e `authenticatedUser()` sendo avaliados como uma string vazia no caminho de flush de insert assíncrono (com `async_insert = 1`). Isso afetava expressões de coluna `DEFAULT`/`MATERIALIZED` e visões materializadas que referenciam essas funções, que armazenavam silenciosamente uma string vazia em vez do usuário que estava inserindo. [#107541](https://github.com/ClickHouse/ClickHouse/pull/107541) ([Groene AI](https://github.com/groeneai)).
* Com `enable_analyzer = 1` (o padrão), consultar uma tabela pelo nome simples quando ela só existe em outro banco de dados agora sugere a tabela correta; por exemplo, `SELECT * FROM functions` informa `Maybe you meant system.functions?`. Antes, o novo analisador retornava o erro `Unknown table expression identifier` sem sugestão, enquanto o analisador antigo já produzia essa dica útil. [#107550](https://github.com/ClickHouse/ClickHouse/pull/107550) ([Groene AI](https://github.com/groeneai)).
* A memória usada pela biblioteca rapidjson (em `prettyPrintJSON`, `JSONMergePatch` e no parser JSON do rapidjson) agora é contabilizada no memory tracker, para que entradas patológicas sejam rejeitadas com `MEMORY_LIMIT_EXCEEDED` em vez de alocarem sem limite. [#107555](https://github.com/ClickHouse/ClickHouse/pull/107555) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige um `LOGICAL_ERROR` (`updateFormatPrewhereInfo called more than once`) gerado ao consultar uma fonte `file()`, `url()` ou de armazenamento de objetos com um `PREWHERE` explícito e um `WHERE` enquanto `optimize_prewhere_after_pushdown` estava habilitado. [#107568](https://github.com/ClickHouse/ClickHouse/pull/107568) ([Groene AI](https://github.com/groeneai)).
* Corrige uma falha (desreferenciamento de ponteiro nulo) que podia ocorrer quando um plano de consulta distribuída era executado localmente (`make_distributed_plan` + `distributed_plan_execute_locally`) com `log_formatted_queries = 1`. [#107570](https://github.com/ClickHouse/ClickHouse/pull/107570) ([Groene AI](https://github.com/groeneai)).
* Corrige um abort do servidor (`std::terminate`, sinal 6) durante o encerramento de uma consulta com plano distribuído (`make_distributed_plan = 1`) quando uma verificação de status do worker não conseguia reagendar a próxima verificação (por exemplo, `CANNOT_SCHEDULE_TASK` durante o desligamento ou `MEMORY_LIMIT_EXCEEDED`). Agora, a consulta falha de forma limpa e o servidor continua em execução. [#107575](https://github.com/ClickHouse/ClickHouse/pull/107575) ([Groene AI](https://github.com/groeneai)).
* Adiciona verificações de limites ausentes na análise de ELF e DWARF. [#107579](https://github.com/ClickHouse/ClickHouse/pull/107579) ([Michael Kolupaev](https://github.com/al13n321)).
* Adiciona verificações de limites ausentes no leitor ORC. [#107580](https://github.com/ClickHouse/ClickHouse/pull/107580) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige uma exceção (erro lógico `Digest does not match`) que podia ocorrer em `RENAME TABLE`, `RENAME DATABASE` ou `CREATE OR REPLACE TABLE` envolvendo uma tabela `TimeSeries` dentro de um banco de dados `Replicated`. Renomear uma tabela `TimeSeries` agora é suportado. [#107583](https://github.com/ClickHouse/ClickHouse/pull/107583) ([Groene AI](https://github.com/groeneai)).
* Corrige uma negação de serviço não autenticada por exaustão de memória na porta do protocolo MySQL. [#107599](https://github.com/ClickHouse/ClickHouse/pull/107599) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Corrige o `DROP TABLE` de uma tabela `TimeSeries` em um banco de dados `Replicated`, que antes vazava as tabelas internas e fazia a tarefa de remoção em segundo plano tentar novamente indefinidamente (`DROP TABLE ... SYNC` ficava travado). [#107604](https://github.com/ClickHouse/ClickHouse/pull/107604) ([Groene AI](https://github.com/groeneai)).
* Corrige dois problemas de path traversal no protocolo de busca de partes replicadas que podiam permitir que uma réplica maliciosa gravasse arquivos fora do diretório da part. [#107606](https://github.com/ClickHouse/ClickHouse/pull/107606) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige o erro 'Account must be specified error' ao ler uma tabela Delta Lake no Azure. [#107620](https://github.com/ClickHouse/ClickHouse/pull/107620) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Corrige o `ALTER TABLE ... REPLACE PARTITION` em uma tabela `MergeTree` simples, que após uma reinicialização do servidor fazia ressurgir as partes substituídas, fazendo a tabela retornar tanto as linhas de substituição quanto as linhas antigas substituídas. [#107623](https://github.com/ClickHouse/ClickHouse/pull/107623) ([Groene AI](https://github.com/groeneai)).
* Corrige uma falha do servidor ao ler uma visão materializada cujo destino é uma tabela `Distributed` enquanto a consulta é executada com `enable_analyzer = 0`. [#107653](https://github.com/ClickHouse/ClickHouse/pull/107653) ([Groene AI](https://github.com/groeneai)).
* Quando várias quotas são atribuídas ao mesmo usuário ou função, agora todas são aplicadas em conjunto (uma consulta é rejeitada se qualquer uma delas for excedida), em vez de apenas uma quota ser aplicada e escolhida de forma não determinística. `SHOW QUOTA` e `system.quota_usage` agora mostram todas as quotas aplicadas ao usuário atual. [#107664](https://github.com/ClickHouse/ClickHouse/pull/107664) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigidas `s3` e outras funções de tabela de armazenamento de objetos que lançavam `LOGICAL_ERROR` em vez de `BAD_ARGUMENTS` quando um argumento chave-valor era duplicado, por exemplo `s3('http://...', format = 'CSV', format = 'TSV')`. [#107670](https://github.com/ClickHouse/ClickHouse/pull/107670) ([Groene AI](https://github.com/groeneai)).
* Corrigida a interface MySQL, que ficava inutilizável com `MySQL Connector/J` 8.2.0 e versões mais recentes (incluindo 9.x). O campo `info` do pacote `OK` agora é codificado com comprimento, em conformidade com o servidor MySQL, para que o JDBC driver possa se conectar. [#107693](https://github.com/ClickHouse/ClickHouse/pull/107693) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido um `LOGICAL_ERROR` ("Input nodes size mismatch in dag") quando uma consulta com `make_distributed_plan = 1` fazia `join` usando uma chave encapsulada por função cujos dois lados não tinham um tipo em comum (por exemplo, `ON intDiv(-1, t1.key) = t2.key` com uma chave à direita `UInt64`). [#107701](https://github.com/ClickHouse/ClickHouse/pull/107701) ([Groene AI](https://github.com/groeneai)).
* A leitura de dados Arrow/ArrowStream com colunas `String`/`Binary` vazias produzidas por Apache Arrow Java \< 19.0.0 (incluindo Apache Spark) não lança mais `INCORRECT_DATA`. [#107764](https://github.com/ClickHouse/ClickHouse/pull/107764) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigida uma exceção `BAD_GET` ("Bad get: has String, requested UInt64") na estimativa de estatísticas de coluna `countmin` quando uma consulta compara uma coluna com um literal de tipo diferente que não é convertido previamente, como `numeric_col IN (SELECT '5')` ou `string_col IN (SELECT 5)`. [#107793](https://github.com/ClickHouse/ClickHouse/pull/107793) ([Groene AI](https://github.com/groeneai)).
* Corrigidas as funções de tabela `odbc` e `jdbc`, que ficavam travadas por minutos e ignoravam o cancelamento da consulta (`KILL QUERY`, `max_execution_time`) quando a bridge deixava de responder durante a inferência da estrutura da tabela remota. [#107809](https://github.com/ClickHouse/ClickHouse/pull/107809) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida uma exceção (`Logical error: 'index >= result.start'`) ao formatar uma consulta malformada que mistura as formas posicional e nomeada de argumento secreto das funções de tabela `s3`/`gcs`, por exemplo `s3('url', 'a', 'b', secret_access_key = 'c')`. [#107818](https://github.com/ClickHouse/ClickHouse/pull/107818) ([Groene AI](https://github.com/groeneai)).
* Corrigida a falha em que o skip index `set` não fazia a poda de grânulos em colunas `LowCardinality`. [#107868](https://github.com/ClickHouse/ClickHouse/pull/107868) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrigida a desduplicação de inserções, que calculava hashes incorretos para colunas `String` e `Array` com a configuração do servidor `insert_deduplication_version = new_unified_hash`: inserções idênticas podiam não ser desduplicadas porque o hash de desduplicação dependia da posição da linha dentro do bloco inserido. [#107915](https://github.com/ClickHouse/ClickHouse/pull/107915) ([Sema Checherinda](https://github.com/CheSema)).
* Corrigidos resultados incorretos de `ORDER BY` em colunas `Nullable` com múltiplas chaves de ordenação no macOS (Apple Silicon), causados pela ausência de extensão de sinal no comparador de ordenação compilado com JIT. [#107973](https://github.com/ClickHouse/ClickHouse/pull/107973) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigida a regressão de desempenho ao ler colunas `Dynamic` com múltiplas threads. Causada por [#100730](https://github.com/ClickHouse/ClickHouse/pull/100730). Fecha [#107942](https://github.com/ClickHouse/ClickHouse/issues/107942). [#107997](https://github.com/ClickHouse/ClickHouse/pull/107997) ([Pavel Kruglov](https://github.com/Avogar)).
* A configuração obsoleta de lago de dados `storage_catalog_url` agora é corretamente rejeitada pela proteção do catalog (antes, apenas `storage_catalog_type` e `storage_aws_access_key_id` eram verificados), e a mensagem de erro lista todas as configurações obsoletas. [#108040](https://github.com/ClickHouse/ClickHouse/pull/108040) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um logical error `Bad cast from type DB::ColumnSparse to DB::ColumnVector<char8_t>` quando uma consulta `LIKE` lê de um índice `text` pelo caminho de fallback de leitura direta em uma coluna armazenada de forma esparsa. [#108068](https://github.com/ClickHouse/ClickHouse/pull/108068) ([Groene AI](https://github.com/groeneai)).
* Sempre executa os handlers de finalização de batch do cache de acesso, mesmo quando o batch está vazio. [#108124](https://github.com/ClickHouse/ClickHouse/pull/108124) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido um `LOGICAL_ERROR` (`Column identifier is already registered`) em algumas consultas com `UNION ALL`. [#100770](https://github.com/ClickHouse/ClickHouse/pull/100770) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Corrigido um uso após liberação do mutex de armazenamento de workload durante o desligamento do servidor. [#101447](https://github.com/ClickHouse/ClickHouse/pull/101447) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Corrigido um deadlock em `ALTER DATABASE MODIFY COMMENT` com o catalog `Shared`. [#103683](https://github.com/ClickHouse/ClickHouse/pull/103683) ([Nikolay Degterinsky](https://github.com/evillique)).
* Um identificador Unicode vazio entre aspas agora gera `SYNTAX_ERROR` em vez de `CANNOT_PARSE_QUOTED_STRING`. [#104173](https://github.com/ClickHouse/ClickHouse/pull/104173) ([leonard9893](https://github.com/leonard9893)).
* Preserva os tipos de parâmetro originais das aggregate functions `timeSeries*` para que os tipos `AggregateFunction` façam round-trip corretamente entre a reanexação de tabelas e as réplicas paralelas. [#104812](https://github.com/ClickHouse/ClickHouse/pull/104812) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrigido um `LOGICAL_ERROR` para uma CTE materializada com `serialize_query_plan` e réplicas paralelas. [#104896](https://github.com/ClickHouse/ClickHouse/pull/104896) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrigido overflow de inteiro com sinal nas funções `timeSeries*ToGrid` quando o parâmetro de staleness (window) está próximo de `INT64_MAX`. [#105319](https://github.com/ClickHouse/ClickHouse/pull/105319) ([Groene AI](https://github.com/groeneai)).
* Um valor da configuração `compatibility` não faz mais `apply_row_policy_after_final` voltar para `false`, então as row policies agora são sempre aplicadas corretamente com `FINAL`. [#105637](https://github.com/ClickHouse/ClickHouse/pull/105637) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrigido o `clickhouse chdig client` ao respeitar `SETPGROUP`/`RESETIDS`/`SETSIGDEF` no stub `posix_spawn`. [#105858](https://github.com/ClickHouse/ClickHouse/pull/105858) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida uma exceção durante as verificações de consistência da merge-tree em projeções quando o executor de merge/mutate não havia sido inicializado. [#105919](https://github.com/ClickHouse/ClickHouse/pull/105919) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Durante a análise de índice em projeções, o índice `minmax` agora é carregado da própria projeção, em vez da parte parent, produzindo resultados corretos. [#105940](https://github.com/ClickHouse/ClickHouse/pull/105940) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Corrigida uma exceção em `addMonotonicChain` para `materialize(monotonic_chain(...))`. [#106050](https://github.com/ClickHouse/ClickHouse/pull/106050) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigida a falha de `RESTORE` em backups que incluem dependências de `MASKING POLICY`. [#106086](https://github.com/ClickHouse/ClickHouse/pull/106086) ([Julia Kartseva](https://github.com/jkartseva)).
* Corrigida uma possível corrupção de memória ao expandir Funções Definidas pelo Usuário em SQL com `prefer_column_name_to_alias` habilitado. [#106121](https://github.com/ClickHouse/ClickHouse/pull/106121) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Um Dicionário que usa a conexão bridge agora é recarregado após a reinicialização do servidor, restabelecendo a conexão. Fecha [#106151](https://github.com/ClickHouse/ClickHouse/issues/106151). [#106152](https://github.com/ClickHouse/ClickHouse/pull/106152) ([Pedro Ferreira](https://github.com/PedroTadim)).
* Corrigido o cache do sistema de arquivos de `LocalObjectStorage`. [#106239](https://github.com/ClickHouse/ClickHouse/pull/106239) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigida a source remota lazy para funções de tabela com `use_delayed_remote_source`. [#106470](https://github.com/ClickHouse/ClickHouse/pull/106470) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrigido `timeSeriesLastToGrid` para timestamps anteriores ao início da grade e timestamps fora da janela. [#106504](https://github.com/ClickHouse/ClickHouse/pull/106504) ([Vitaly Baranov](https://github.com/vitlibar)). [#106577](https://github.com/ClickHouse/ClickHouse/pull/106577) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrigido um `LOGICAL_ERROR` (`Inconsistent AST formatting`) em um nome de função que continha parâmetros de consulta. [#106635](https://github.com/ClickHouse/ClickHouse/pull/106635) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrigido um erro lógico quando uma tabela é removida antes da desserialização da tarefa do plano distribuído. [#106944](https://github.com/ClickHouse/ClickHouse/pull/106944) ([Alexander Gololobov](https://github.com/davenger)).
* Usar comparação exata para chaves `Nullable` de `GROUP BY`. [#107050](https://github.com/ClickHouse/ClickHouse/pull/107050) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigido um `LOGICAL_ERROR` (`Trying to get name of not a column`) gerado quando um argumento de função de tabela não era uma expressão de coluna (por exemplo, um matcher `*` não resolvido de `multiIf`/`CASE`). [#107411](https://github.com/ClickHouse/ClickHouse/pull/107411) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido o crescimento descontrolado do cache de fuso horário (`DateLUT`) quando muitos nomes inválidos e distintos de fuso horário são processados. [#107464](https://github.com/ClickHouse/ClickHouse/pull/107464) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Gravar a entrada `part_log` antes de marcar como concluída uma mutação simples de `MergeTree`. [#107741](https://github.com/ClickHouse/ClickHouse/pull/107741) ([Azat Khuzhin](https://github.com/azat)).
* `arrayFold` agora verifica a consistência do argumento de array para se proteger contra entradas malformadas. [#107932](https://github.com/ClickHouse/ClickHouse/pull/107932) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrigidos uma rara data race e um possível use-after-free no leitor em cache do arquivo de índices de salto de uma part de `MergeTree`, o que poderia acontecer quando uma consulta lia índices de salto enquanto a part estava sendo movida ou renomeada. [#107995](https://github.com/ClickHouse/ClickHouse/pull/107995) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigida a regressão de desempenho em subcolunas `Map` com `PREWHERE`. [#107988](https://github.com/ClickHouse/ClickHouse/pull/107988) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige `parseDateTimeBestEffort` com fuso horário que gerava `CANNOT_PARSE_DATETIME` em linhas NULL de `toString(Nullable(DateTime64))`. [#108310](https://github.com/ClickHouse/ClickHouse/pull/108310) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrigidos a table function e o engine `ArrowFlight`, que rejeitavam uma named collection sem a chave opcional `dataset`, com o erro `No such key 'dataset'`. [#108041](https://github.com/ClickHouse/ClickHouse/pull/108041) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido um erro lógico `Inconsistent AST formatting` em uma window function sem argumentos dentro de uma declaração `CODEC` ou de engine (por exemplo, `CODEC(cume_dist() OVER (...))`); essa função agora mantém os parênteses para que a consulta sobreviva a um round-trip de formatação/parse. [#107806](https://github.com/ClickHouse/ClickHouse/pull/107806) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige `hasToken` com uma needle contendo separador, que retornava resultados silenciosamente por meio de um text index em vez de gerar `BAD_ARGUMENTS`. [#108189](https://github.com/ClickHouse/ClickHouse/pull/108189) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* A configuração `use_skip_indexes_on_data_read` agora pode ser revertida para o valor default anterior à 26.1 (`false`) por meio da configuração `compatibility`, oferecendo uma saída para uma regressão de desempenho em que o caminho on-data-read impede a poda de intervalos de marcas dos skip indexes `minmax`/`set`/`bloom_filter`. [#108330](https://github.com/ClickHouse/ClickHouse/pull/108330) ([egor romanov](https://github.com/egor-click)).
* Corrigido um possível crash (desreferenciamento de ponteiro nulo) quando a substituição de `database`/`db` de uma named collection passada para `remote`/`remoteSecure` não é um nome do banco de dados constante, por exemplo `remote(nc, database = (SELECT 1))`. A consulta agora falha com um erro claro em vez de causar crash. [#108271](https://github.com/ClickHouse/ClickHouse/pull/108271) ([Groene AI](https://github.com/groeneai)).
* Corrigido o travamento de uma view materializada atualizável se a conexão com o ZooKeeper for perdida no momento errado. [#108234](https://github.com/ClickHouse/ClickHouse/pull/108234) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige `Bad cast from type DB::ColumnVector<...> to DB::ColumnTuple` ao ler uma coluna `Array(Tuple(...))` cujo valor é preenchido com valores default, por exemplo após `ALTER TABLE ... ADD COLUMN` ou após uma mutação `ALTER TABLE ... CLEAR COLUMN` inacabada aplicada em tempo real. [#107232](https://github.com/ClickHouse/ClickHouse/pull/107232) ([Groene AI](https://github.com/groeneai)).
* Corrige um erro lógico `Bad cast from type DB::ColumnDynamic to DB::ColumnNullable` quando uma referência explícita a uma chave `JOIN ... USING` cujo common supertype é `Dynamic` é passada para uma aggregate function, por exemplo `count(t.key) IGNORE NULLS`. [#107289](https://github.com/ClickHouse/ClickHouse/pull/107289) ([Groene AI](https://github.com/groeneai)).
* Corrige perda silenciosa de dados em `MergeTree` simples (non-replicated) quando `REPLACE PARTITION`, `MOVE PARTITION`, `DETACH PARTITION` ou `DETACH PART` é executado em uma partição que ainda tem patches de lightweight `UPDATE` não aplicados. Essas operações agora rejeitam o comando, como `ReplicatedMergeTree` já faz. [#107386](https://github.com/ClickHouse/ClickHouse/pull/107386) ([Groene AI](https://github.com/groeneai)).
* Corrige um crash (SIGSEGV em builds de release, asserção de incompatibilidade de tipo em builds de debug) em `has` sobre um `Map` com chave `Dynamic` quando o argumento de busca é `LowCardinality`, por exemplo `has(map('a'::Dynamic, ...), toLowCardinality('b'))`. [#107956](https://github.com/ClickHouse/ClickHouse/pull/107956) ([Groene AI](https://github.com/groeneai)).
* Corrigido um `LOGICAL_ERROR` ("Block structure mismatch ... between `ConvertingTransform` and `RemovingReplicatedColumnsTransform`") ao inserir em uma visão materializada cuja tabela de destino de `TO` declara uma coluna com um `Enum` mais amplo do que o produzido pelo `SELECT` da visão. O alargamento válido de `Enum` agora é aplicado. [#107648](https://github.com/ClickHouse/ClickHouse/pull/107648) ([Groene AI](https://github.com/groeneai)).
* Corrigido o erro `NUMBER_OF_COLUMNS_DOESNT_MATCH` ao consultar uma tabela `Distributed` (ou ao usar réplicas paralelas) que tem várias colunas `ALIAS` expandidas para a mesma expressão e ao referenciá-las junto com `ORDER BY`/`GROUP BY`/`HAVING`. [#107913](https://github.com/ClickHouse/ClickHouse/pull/107913) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrigido um comportamento indefinido (ponteiro nulo passado para `memcpy`) nas funções `detectCharset` e `detectLanguageUnknown` quando a string de entrada é maior que 32768 bytes e nenhum conjunto de caracteres pode ser detectado. [#108250](https://github.com/ClickHouse/ClickHouse/pull/108250) ([Groene AI](https://github.com/groeneai)).
* Corrigido `signed integer overflow` (comportamento indefinido) em `dateDiff` com as unidades `hour` e `minute` em valores extremos de `DateTime64` próximos aos limites do intervalo de `Int64`. [#108229](https://github.com/ClickHouse/ClickHouse/pull/108229) ([Groene AI](https://github.com/groeneai)).
* Corrigido `Too many marks` em um text index em uma merged part vazia. [#106867](https://github.com/ClickHouse/ClickHouse/pull/106867) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido um `LOGICAL_ERROR` ("Unexpected return type from if") ao ler uma coluna com `apply_mutations_on_fly = 1` após um `ALTER UPDATE col = ... WHERE <cond>` com uma condição não constante ou falsa, seguido de `ALTER MODIFY COLUMN col <new type>`. [#108128](https://github.com/ClickHouse/ClickHouse/pull/108128) ([Groene AI](https://github.com/groeneai)).
* Corrigido um aborto do servidor (`Logical error` em `IColumn::insertFrom`) ao converter um `Array(Dynamic)` ou `Array(Variant)` para `QBit` com `accurateCastOrNull`, por exemplo `accurateCastOrNull(CAST(range(114), 'Array(Dynamic)'), 'QBit(Float32, 114)')`. [#108288](https://github.com/ClickHouse/ClickHouse/pull/108288) ([Groene AI](https://github.com/groeneai)).
* Corrigido um erro de sintaxe quando um alias aparece após uma subconsulta em `DESCRIBE TABLE (...) AS ...`. [#100205](https://github.com/ClickHouse/ClickHouse/pull/100205) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* `getClientHTTPHeader` agora é tratado corretamente como não determinístico, portanto seu resultado não é mais reutilizado incorretamente pelo cache de resultados de consulta. [#108029](https://github.com/ClickHouse/ClickHouse/pull/108029) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="267-build-testing-packaging-improvement">
  #### melhorias em build, testes e empacotamento
</div>

* Compile `delta-kernel-rs` com a feature `default-engine-native-tls` para que seu próprio HTTP client (`reqwest`) possa reutilizar o OpenSSL ao qual o ClickHouse já faz link. Esta é apenas uma habilitação parcial de `native-tls`: `object_store` ainda força `reqwest/rustls-tls-native-roots`, então o `reqwest` acaba ficando com os backends `native-tls` e `rustls`. Por enquanto, `delta-kernel-rs` continua desabilitado com MSan porque `ring` ainda é compilado via `object_store` (tanto transitivamente por meio de `rustls` quanto diretamente para a assinatura HMAC de requisições AWS), e seu assembly escrito manualmente não gera os símbolos exigidos pelo MSan (rastreado no upstream em [arrow-rs-object-store#585](https://github.com/apache/arrow-rs-object-store/pull/585)). [#96856](https://github.com/ClickHouse/ClickHouse/pull/96856) ([Austin Bonander](https://github.com/abonander)).
* Adiciona otimização pós-link com PGO (Profile-Guided Optimization) e BOLT (Binary Optimization and Layout Tool) para o binário `clickhouse`. Os perfis são coletados a partir de workloads de CI e aplicados, na medida do possível, durante compilações de lançamento — ambos os estágios recorrem à saída não otimizada se um perfil estiver desatualizado ou incompatível. Até o momento, não há ganhos com PGO. [#100938](https://github.com/ClickHouse/ClickHouse/pull/100938) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona o modo `--storage` ao `clickhouse keeper-bench`, que executa benchmarks de `KeeperStorage` no próprio processo (sem rede, sem raft, sem máquina de estados), usando as mesmas seções de configuração `setup`/`generator` do modo de rede. [#103081](https://github.com/ClickHouse/ClickHouse/pull/103081) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige a compilação com `ENABLE_AWS_S3=OFF`. [#105390](https://github.com/ClickHouse/ClickHouse/pull/105390) ([Yue Ni](https://github.com/niyue)).
* Atualiza `mongo-cxx-driver` para r4.3.0. [#105522](https://github.com/ClickHouse/ClickHouse/pull/105522) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige a compilação com RapidJSON. [#105674](https://github.com/ClickHouse/ClickHouse/pull/105674) ([Ilya Golshtein](https://github.com/ilejn)).
* Acelera a compilação removendo includes transitivos de headers `base/` amplamente usados e eliminando código não utilizado do `Poco/Logger.h` vendorizado. [#105702](https://github.com/ClickHouse/ClickHouse/pull/105702) ([Raúl Marín](https://github.com/Algunenano)).
* Atualiza `libxml2` de 2.15.1 para 2.15.3. [#105985](https://github.com/ClickHouse/ClickHouse/pull/105985) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Usa `expat` 2.8.1 dentro do Poco. [#105988](https://github.com/ClickHouse/ClickHouse/pull/105988) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Atualiza `thrift` para `v0.23.0`. [#105993](https://github.com/ClickHouse/ClickHouse/pull/105993) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Usa a tag `REL_18_4` do `postgres`. [#105994](https://github.com/ClickHouse/ClickHouse/pull/105994) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Faz upgrade de `krb5` para 1.22.2. [#106076](https://github.com/ClickHouse/ClickHouse/pull/106076) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Atualiza o `curl` empacotado para 8.20.0. [#106077](https://github.com/ClickHouse/ClickHouse/pull/106077) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* `mariadb-connector-c` atualizado para 3.1.29. Todos os patches relevantes para o ClickHouse foram preservados. [#106287](https://github.com/ClickHouse/ClickHouse/pull/106287) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Atualiza os digests da base image distroless para corrigir CVEs no libssl3t64. [#106360](https://github.com/ClickHouse/ClickHouse/pull/106360) ([Rahul Nair](https://github.com/motsc)).
* Usa `wasmtime` v45.0.1. [#106836](https://github.com/ClickHouse/ClickHouse/pull/106836) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Atualiza `openssl` para 3.5.7. [#106844](https://github.com/ClickHouse/ClickHouse/pull/106844) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* A compilação Docker distroless agora também atualiza as tags flutuantes `:X.Y-distroless` e `:X.Y.Z-distroless`, e não apenas a tag da versão completa. [#106932](https://github.com/ClickHouse/ClickHouse/pull/106932) ([Rahul Nair](https://github.com/motsc)).
* Desabilita recursos não utilizados do `curl`, como autenticação NTLM, cookies, alt-svc, HSTS, DNS-over-HTTPS, netrc, MIME e AWS SigV4. [#107226](https://github.com/ClickHouse/ClickHouse/pull/107226) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* `NuRaft` foi atualizado com uma correção para um livelock na instalação de snapshot que ocorria quando a E/S do snapshot era executada em uma thread em segundo plano. A configuração do Keeper `nuraft_use_bg_thread_for_snapshot_io` continua desabilitada por padrão; a CI agora a randomiza para cobrir ambos os modos. [#107338](https://github.com/ClickHouse/ClickHouse/pull/107338) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige a compilação de `abseil` quando o caminho do checkout do ClickHouse contém uma substring que corresponde a uma extensão de header. [#107349](https://github.com/ClickHouse/ClickHouse/pull/107349) ([zhiqiang](https://github.com/zhiqiang-hhhh)).
* Determina o tamanho do cache L2 a partir de `CPUID` em x86\_64, em vez do `sysconf(_SC_LEVEL2_CACHE_SIZE)` específico da glibc, que não está disponível no musl libc. [#107469](https://github.com/ClickHouse/ClickHouse/pull/107469) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Aumenta o tamanho da stack para compilações musl para 8 MiB, para dar suporte a consultas profundamente aninhadas. [#107470](https://github.com/ClickHouse/ClickHouse/pull/107470) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Deriva o conjunto de símbolos da biblioteca C localizados em bibliotecas estáticas Rust a partir das bibliotecas de referência reais, em vez de uma allowlist mantida manualmente, para que todos os builtins do compiler-rt e as funções de libm da plataforma sejam cobertos. [#107571](https://github.com/ClickHouse/ClickHouse/pull/107571) ([Raúl Marín](https://github.com/Algunenano)).
* Altera as images distroless do servidor e do Keeper para `gcr.io/distroless/base-nossl-debian13`, para que incluam apenas as bibliotecas às quais o ClickHouse realmente se vincula e deixem de incluir aquelas às quais já nos vinculamos estaticamente. [#107837](https://github.com/ClickHouse/ClickHouse/pull/107837) ([Rahul Nair](https://github.com/motsc)).
* Reabilita 50 testes sem estado no MacOS (`arm_darwin`) que estavam sendo ignorados por estarem desatualizados, e usa `fsync` em vez de `F_FULLFSYNC` para sincronização de diretório no MacOS. [#107887](https://github.com/ClickHouse/ClickHouse/pull/107887) ([Raúl Marín](https://github.com/Algunenano)).

<div id="265">
  ### Lançamento do ClickHouse 26.5, 2026-05-21. [Apresentação](https://presentations.clickhouse.com/2026-release-26.5/), [Vídeo](https://www.youtube.com/watch?v=P1IDAvsi7p8)
</div>

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

* Os valores padrão de `date_time_input_format` e `cast_string_to_date_time_mode` foram alterados de `basic` para `best_effort`. Consultas que antes não conseguiam interpretar strings de data/hora fora do formato básico (por exemplo, `2024 April 4`, `Apr 15, 2020 10:30:00`) agora podem passar por padrão. Para manter o comportamento antigo de parsing estrito, defina essas configurações como `basic` (ou use `compatibility`). [#89334](https://github.com/ClickHouse/ClickHouse/pull/89334) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O nome `null` para elemento de Tuple agora é proibido, porque entra em conflito com o nome de subcoluna usado nos mapas de nulos de Nullable, causando resolução ambígua de subcoluna. [#98377](https://github.com/ClickHouse/ClickHouse/pull/98377) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Foram adicionadas as configurações `dynamic_disk_allow_from_env`, `dynamic_disk_allow_from_zk` e `dynamic_disk_allow_include` para impedir o uso de `from_env`, `from_zk` e `include` em disks dinâmicos. Trata-se de uma mudança incompatível com versões anteriores, porque passa a proibir por padrão um comportamento que antes era permitido por padrão. [#99138](https://github.com/ClickHouse/ClickHouse/pull/99138) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Não é mais possível usar o leitor e gravador Parquet obsoleto baseado em Arrow. A implementação nativa será usada no lugar dele. [#100949](https://github.com/ClickHouse/ClickHouse/pull/100949) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `SHOW CREATE TABLE t` agora dá preferência à tabela temporária quando existem tanto uma tabela permanente quanto uma tabela temporária chamadas `t` e nenhum database é especificado, alinhando-se ao comportamento existente de `DESCRIBE TABLE`. Além disso, a sintaxe `DESCRIBE TEMPORARY TABLE` agora é suportada. [#100966](https://github.com/ClickHouse/ClickHouse/pull/100966) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O valor padrão de `http_max_fields` foi reduzido de 1.000.000 para 1.000, e o de `http_max_field_name_size`, de 128 KB para 4 KB, para limitar o uso de memória antes da autenticação por conexões HTTP. Também foram adicionadas as configurações `http_max_request_header_size` e `http_headers_read_timeout`. Usuários que dependem dos limites mais altos anteriores podem restaurá-los por meio de configurações. [#103285](https://github.com/ClickHouse/ClickHouse/pull/103285) ([Sema Checherinda](https://github.com/CheSema)).
* Foi adicionada uma coluna Nested `histograms` a `system.metric_log`, que registra um snapshot de cada métrica de histograma registrada por linha, com uma nova configuração `system_metric_log_show_zero_values_in_histograms` para controlar a emissão de valores zero. Isso torna a tabela `system.histogram_metric_log` obsoleta. [#103770](https://github.com/ClickHouse/ClickHouse/pull/103770) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* `CAST` para `DateTime` ou `DateTime64` sem um fuso horário explícito agora preserva o fuso horário do argumento de origem (quando a origem é um `DateTime`/`DateTime64` com fuso horário explícito), alinhando-se ao comportamento das funções `toDateTime`/`toDateTime64`. Fecha [#55072](https://github.com/ClickHouse/ClickHouse/issues/55072). [#104433](https://github.com/ClickHouse/ClickHouse/pull/104433) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A função de tabela `kql` foi removida. Use `SET dialect = 'kusto'` para executar consultas no dialeto KQL. [#105101](https://github.com/ClickHouse/ClickHouse/pull/105101) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* As funções de janela `RANK` e `DENSE_RANK` agora rejeitam argumentos e geram `NUMBER_OF_ARGUMENTS_DOESNT_MATCH`, em conformidade com o padrão SQL. Antes, consultas como `RANK(x) OVER (ORDER BY id)` eram aceitas silenciosamente, com o argumento sendo ignorado. Para restaurar o comportamento leniente anterior, defina `allow_rank_dense_rank_arguments = 1`. Fecha [#49526](https://github.com/ClickHouse/ClickHouse/issues/49526). [#104324](https://github.com/ClickHouse/ClickHouse/pull/104324) ([Groene AI](https://github.com/groeneai)).

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

* Adiciona uma nova configuração `max_bytes_ratio_before_external_join`, espelhando `max_bytes_ratio_before_external_group_by` e `max_bytes_ratio_before_external_sort`. Ela define o limite para spill em disco em hash joins como uma fração da memória disponível; em conjunto com o limite absoluto `max_bytes_before_external_join`, aplica-se o menor dos dois valores resultantes. [#103862](https://github.com/ClickHouse/ClickHouse/pull/103862) ([Alexey Milovidov](https://github.com/alexey-milovidov)). A nova configuração `max_bytes_ratio_before_external_join` agora fica habilitada por padrão com o valor 0.5, espelhando `max_bytes_ratio_before_external_group_by` e `max_bytes_ratio_before_external_sort`. As hash joins passam automaticamente para grace hash join assim que os dados do lado direito excedem metade da memória disponível do sistema (quando há limites de memória configurados). [#104285](https://github.com/ClickHouse/ClickHouse/pull/104285) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona a table function `filesystem`. Ela permite representar a estrutura de diretórios como uma tabela, para consultar com SQL os metadados e o conteúdo dos arquivos. Originalmente [#42039](https://github.com/ClickHouse/ClickHouse/pull/42039) por @perst20. Veja [#42039](https://github.com/ClickHouse/ClickHouse/issues/42039). Veja [#50208](https://github.com/ClickHouse/ClickHouse/issues/50208). [#53610](https://github.com/ClickHouse/ClickHouse/pull/53610) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permite passar nomes de função simples para funções de ordem superior, como `arrayMap`, `arrayFilter` etc. Por exemplo, `arrayMap(negate, [1, 2, 3])` agora é equivalente a `arrayMap(x -> negate(x), [1, 2, 3])`. [#101033](https://github.com/ClickHouse/ClickHouse/pull/101033) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona a configuração `send_table_structure_on_insert_with_inline_data` e a opção `--inline-insert-data` do client para permitir que o servidor faça ele mesmo o parse de dados inline de INSERT pelo native protocol, evitando a ida e volta necessária para receber a estrutura da tabela e melhorando o desempenho de muitos inserts pequenos. [#101034](https://github.com/ClickHouse/ClickHouse/pull/101034) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona as funções `tokenizeQuery` e `highlightQuery` para tokenização de consultas SQL e realce de sintaxe. `tokenizeQuery` retorna tokens do lexer com offsets em bytes e tipos de token; `highlightQuery` retorna intervalos de realce de sintaxe baseados no parser, com categorias de realce (palavra-chave, identificador, função, número, string etc.). [#101054](https://github.com/ClickHouse/ClickHouse/pull/101054) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona a configuração `url_base` para resolver URLs relativas na table function `url` e no table engine `URL`, seguindo a semântica da RFC 3986. [#101113](https://github.com/ClickHouse/ClickHouse/pull/101113) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Passa a oferecer suporte a valores negativos na cláusula `LIMIT BY` para selecionar linhas do *fim* de cada grupo, em vez do início. Por exemplo, `LIMIT -2 BY id` retorna as duas últimas linhas por `id`. Offsets negativos (`LIMIT -1 OFFSET -1 BY id`) e sinais mistos (`LIMIT -2 OFFSET 1 BY id`) também são compatíveis. [#103222](https://github.com/ClickHouse/ClickHouse/pull/103222) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Passa a oferecer suporte à função `json_value` para saída com `tuple` e `array`, a fim de melhorar o desempenho de múltiplas consultas JSON. [#78362](https://github.com/ClickHouse/ClickHouse/pull/78362) ([kevinyhzou](https://github.com/KevinyhZou)). Passa a oferecer suporte a argumento JSONPath `Tuple`/`Array` com múltiplos caminhos em `JSON_VALUE`, `JSON_EXISTS` e `JSON_QUERY`, por @KevinyhZou. [#101102](https://github.com/ClickHouse/ClickHouse/pull/101102) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Um novo parâmetro `kafka_autodetect_client_rack` foi introduzido. Se definido, ele detecta a zona de disponibilidade por meio da infraestrutura da nuvem e a propaga como o parâmetro `client.rack` do `librdkafka`, para evitar comunicações entre zonas. [#81323](https://github.com/ClickHouse/ClickHouse/pull/81323) ([Ilya Golshtein](https://github.com/ilejn)).
* Adiciona o tipo de evento `Read` a `system.blob_storage_log` para rastrear operações de leitura em armazenamento de objetos, controlado pela nova configuração `enable_blob_storage_log_for_read_operations`. [#96867](https://github.com/ClickHouse/ClickHouse/pull/96867) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Os usuários agora podem ver os watches do ZooKeeper emitidos por `clickhouse-server` usando a nova tabela `system.zookeeper_watches`. [#99277](https://github.com/ClickHouse/ClickHouse/pull/99277) ([Den Kalantaevskii](https://github.com/Diskein)).
* Adicionado o evento de perfil `Shards`, que conta o número de shards envolvidos em consultas distribuídas, somado entre todas as tabelas. [#99470](https://github.com/ClickHouse/ClickHouse/pull/99470) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* UDFs `WASM` podem ser declaradas como `DETERMINISTIC` e passam a ser elegíveis para constant folding. [#100005](https://github.com/ClickHouse/ClickHouse/pull/100005) ([Vasily Chekalkin](https://github.com/bacek)).
* Adiciona a configuração `parallel_replicas_prefer_local_replica`: quando desabilitada, as réplicas paralelas são selecionadas puramente pelo algoritmo de balanceamento de carga, permitindo que até consultas com `max_parallel_replicas = 1` sejam direcionadas a outro host. [#100139](https://github.com/ClickHouse/ClickHouse/pull/100139) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona as configurações de servidor `{disk,storage,http}_connections_rcvbuf` e `{disk,storage,http}_connections_sndbuf` para controlar o tamanho dos buffers de socket TCP em conexões HTTP de saída, permitindo que operadores substituam o autotuning do kernel e limitem o uso de memória por conexão. [#100478](https://github.com/ClickHouse/ClickHouse/pull/100478) ([Sema Checherinda](https://github.com/CheSema)).
* Suporte a `CREATE OR REPLACE MATERIALIZED VIEW` com a mesma semântica de troca atômica de `CREATE OR REPLACE TABLE`. Funciona com tabelas internas, tabelas `TO`, `POPULATE`, `REFRESH` e `ON CLUSTER`. [#100539](https://github.com/ClickHouse/ClickHouse/pull/100539) ([DQ](https://github.com/il9ue)).
* Adiciona as métricas de histograma `s3_read_request_duration_microseconds` e `s3_read_request_bytes` para observar a duração da conexão das requisições GET ao S3 e os bytes consumidos, visíveis em `system.histogram_metrics` e no endpoint Prometheus. [#102058](https://github.com/ClickHouse/ClickHouse/pull/102058) ([Sema Checherinda](https://github.com/CheSema)).
* Adiciona os motores de tabela `Paimon`, `PaimonS3`, `PaimonAzure`, `PaimonHDFS` e `PaimonLocal` com suporte à leitura incremental, baseado no rastreamento do progresso de snapshots do Keeper. O modo incremental retorna apenas novas linhas desde o último snapshot confirmado. Leituras direcionadas de delta de snapshot estão disponíveis via `paimon_target_snapshot_id`, e limites de snapshots por consulta via `max_consume_snapshots`. A atualização de metadados em segundo plano é configurável com `paimon_metadata_refresh_interval_sec`. Controlado por `allow_experimental_paimon_storage_engine`. [#102343](https://github.com/ClickHouse/ClickHouse/pull/102343) ([XiaoBinMu](https://github.com/Binnn-MX)).
* Adicionada uma nova configuração de tabela Kafka `kafka_map_virtual_columns_on_write`. Quando habilitada, colunas chamadas `_key`, `_timestamp`, `_headers.name` e `_headers.value` no esquema da tabela Kafka são produzidas como a chave, o timestamp e os headers correspondentes da mensagem Kafka no `INSERT`, e são excluídas do payload da mensagem. [#103243](https://github.com/ClickHouse/ClickHouse/pull/103243) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionadas as consultas `SYSTEM PAUSE VIEW [db.]name` e `SYSTEM PAUSE VIEWS` para views materializadas atualizáveis. Diferentemente de `SYSTEM STOP VIEW`, `SYSTEM PAUSE VIEW` não interrompe a atualização atualmente em execução — a atualização em andamento pode ser concluída, e apenas as atualizações subsequentes são impedidas. Isso é revertido por `SYSTEM START VIEW` ou `SYSTEM START VIEWS`, que agora limpam de forma uniforme os estados de parada e pausa. [#103252](https://github.com/ClickHouse/ClickHouse/pull/103252) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Adicionada a função `regexpPosition` (com aliases compatíveis com PostgreSQL `regexpInstr` e `regexp_instr`) que retorna a posição em bytes da enésima correspondência de regex em uma string. Suporta deslocamento inicial, modo de retorno após a correspondência, flags de regex e seleção de grupo de captura. [#104172](https://github.com/ClickHouse/ClickHouse/pull/104172) ([Abhinav Agarwal](https://github.com/aagarwal-gtr)).
* Novas funções `isPrime` e `isProbablePrime` para verificações de primalidade. `isPrime` retorna um resultado exato para inteiros sem sinal de até `UInt64`. `isProbablePrime` também oferece suporte a `UInt128` e `UInt256`; para esses tipos maiores, `0` significa definitivamente composto e `1` significa provavelmente primo. O segundo argumento opcional de `isProbablePrime`, `rounds`, controla a confiança (limitada a `256`); o padrão de `25` rounds mantém a taxa de falso positivo para um composto aleatório abaixo de `10^-15`, e `isProbablePrime` pode ser cancelada. [#104234](https://github.com/ClickHouse/ClickHouse/pull/104234) ([Nihal Z. Miaji](https://github.com/nihalzp)). [#104639](https://github.com/ClickHouse/ClickHouse/pull/104639) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#104806](https://github.com/ClickHouse/ClickHouse/pull/104806) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* `clear` e `/clear` agora limpam o terminal nas ferramentas de linha de comando do ClickHouse em vez de serem executados como uma consulta por engano. [#104318](https://github.com/ClickHouse/ClickHouse/pull/104318) ([Tyler Hannan](https://github.com/tylerhannan)).
* Permite que a função de tabela `file` aceite um `Array(String)` de caminhos em consultas `SELECT`. [#104442](https://github.com/ClickHouse/ClickHouse/pull/104442) ([Yue](https://github.com/niyue)).
* Adiciona as colunas `deterministic` e `higher_order` à tabela `system.functions`. [#104479](https://github.com/ClickHouse/ClickHouse/pull/104479) ([Pedro Ferreira](https://github.com/PedroTadim)).
* Adiciona um parâmetro opcional de variante de codificação a `bech32Encode` (`bech32` / `bech32m`) e um modo de decodificação bruta a `bech32Decode` para codificação de endereços não SegWit (por exemplo, Cosmos SDK, Injective, Osmosis). [#98986](https://github.com/ClickHouse/ClickHouse/pull/98986) ([Yash ](https://github.com/Onyx2406)).
* Agora você pode gravar dados no formato `AvroConfluent`, que antes era apenas de entrada. Isso permite produzir mensagens Avro enquadradas pelo Confluent Schema Registry diretamente do ClickHouse, por exemplo ao gravar no Kafka. O schema é registrado automaticamente no registry. Use a nova configuração `output_format_avro_confluent_subject` para especificar o nome do subject. [#101935](https://github.com/ClickHouse/ClickHouse/pull/101935) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Adicionada a função `prettyPrintJSON` para formatar uma string JSON de forma legível para humanos. Útil para dashboards ou relatórios, em que antes formatar a saída exigia uma etapa extra no lado do cliente. Closes [#62523](https://github.com/ClickHouse/ClickHouse/issues/62523). [#102594](https://github.com/ClickHouse/ClickHouse/pull/102594) ([Dmitry Prokofyev](https://github.com/prokofyevDmitry)).
* Adicionado `STRING_AGG` como um alias de `groupConcat` que não diferencia maiúsculas de minúsculas, para compatibilidade com PostgreSQL / padrão SQL. [#105125](https://github.com/ClickHouse/ClickHouse/pull/105125) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Os resultados de subconsultas individuais agora podem ser armazenados em cache de forma independente usando `SETTINGS use_query_cache = true` em subconsultas específicas, sem armazenar em cache toda a consulta externa. Uma nova configuração, `query_cache_for_subqueries = true`, permite propagar `use_query_cache` em massa para todas as subconsultas. Observação: `use_query_cache` na consulta externa não é mais propagado automaticamente para as subconsultas. [#99804](https://github.com/ClickHouse/ClickHouse/pull/99804) ([Vincent Voyer](https://github.com/vvo)).
* Adicionado realce de sintaxe baseado em lexer ao editor de consultas na interface web (`play.html`), inspirado nas cores do `clickhouse-client`. [#105105](https://github.com/ClickHouse/ClickHouse/pull/105105) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Adicionada uma interface experimental de terminal web em `/webterminal` que fornece uma sessão interativa do `clickhouse-client` no navegador via WebSocket. Desabilitada por padrão; habilite-a com a configuração de servidor `allow_experimental_webterminal`. Veja [aqui](https://play.clickhouse.com/webterminal?user=play). [#100277](https://github.com/ClickHouse/ClickHouse/pull/100277) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#105191](https://github.com/ClickHouse/ClickHouse/pull/105191) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#105059](https://github.com/ClickHouse/ClickHouse/pull/105059) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O engine `Kafka2` (experimental, com armazenamento de offset baseado em Keeper) agora oferece suporte a consultas `SELECT` diretas e à configuração `kafka_commit_on_select`. [#100276](https://github.com/ClickHouse/ClickHouse/pull/100276) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* As UDFs `WASM` agora podem fazer coerção de mais tipos numéricos: de inteiros menores para inteiros mais amplos (por exemplo, `Int8` para `UInt64`) e de qualquer inteiro para ponto flutuante (por exemplo, `Int32` para `Float32`). [#100435](https://github.com/ClickHouse/ClickHouse/pull/100435) ([Vasily Chekalkin](https://github.com/bacek)).
* Adicionado suporte à função `LIKE` na consulta `DELETE FROM system.webassembly_modules`. [#104397](https://github.com/ClickHouse/ClickHouse/pull/104397) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Adicionado suporte a tipos geo para `Iceberg`. [#103113](https://github.com/ClickHouse/ClickHouse/pull/103113) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Adicionada a funcionalidade de instruções preparadas ao servidor ArrowFlight SQL. [#103047](https://github.com/ClickHouse/ClickHouse/pull/103047) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Melhorada a robustez do parser KQL (para suporte à linguagem Kusto) ao preservar a profundidade do parser e os contadores de backtracking entre os estágios do parser KQL, para que os limites do parser sejam acompanhados de forma consistente em consultas KQL complexas. [#103528](https://github.com/ClickHouse/ClickHouse/pull/103528) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).

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

* Reutilize o cache de metadados do footer do Parquet ao ler arquivos Parquet locais pela table function `file` ou pelo mecanismo de tabela `File`. Antes, o cache era consultado apenas para backends de armazenamento de objetos. [#104260](https://github.com/ClickHouse/ClickHouse/pull/104260) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Propague `ORDER BY ... LIMIT n` por junções `LEFT`/`RIGHT` quando a chave de ordenação fizer referência apenas a colunas do lado preservado pela junção, limitando quantas linhas a entrada desse lado precisa produzir antes da junção. Controlado pela nova configuração `query_plan_top_k_through_join` (habilitada por padrão). [#104268](https://github.com/ClickHouse/ClickHouse/pull/104268) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Habilite por padrão as configurações `use_top_k_dynamic_filtering` e `use_skip_indexes_for_top_k` para melhorar o desempenho de consultas `ORDER BY ... LIMIT N`. [#99537](https://github.com/ClickHouse/ClickHouse/pull/99537) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Restrinja `use_top_k_dynamic_filtering` por padrão a colunas de ordenação de comprimento fixo, evitando regressões em consultas `ORDER BY <var-length-column> LIMIT N` nas quais o custo da comparação do limite por linha excede a economia de E/S. O comportamento anterior continua disponível por meio da nova configuração `use_top_k_dynamic_filtering_for_variable_length_types`. [#104216](https://github.com/ClickHouse/ClickHouse/pull/104216) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Use o recurso de arena superdimensionada do `jemalloc` para reduzir falhas de página. [#103958](https://github.com/ClickHouse/ClickHouse/pull/103958) ([Nikita Taranov](https://github.com/nickitat)).
* Limite os streams ativos simultaneamente em `UNION ALL` para reduzir o pico de uso de memória. [#100176](https://github.com/ClickHouse/ClickHouse/pull/100176) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Otimize ligeiramente o cache de páginas em espaço do usuário. [#100300](https://github.com/ClickHouse/ClickHouse/pull/100300) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Agora, o cache de páginas em espaço do usuário é sempre melhor que o cache de páginas do SO.
* Leituras frias de armazenamento de objetos por meio do cache de páginas em espaço do usuário (`use_page_cache_for_object_storage = 1`) agora são significativamente mais rápidas, porque falhas de cache consecutivas são agrupadas em uma única requisição HTTP, em vez de uma requisição por bloco `page_cache_block_size`. [#104230](https://github.com/ClickHouse/ClickHouse/pull/104230) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Acelere a análise de índices que envolve conversão de tipos e aplicação de funções. Fecha [#55653](https://github.com/ClickHouse/ClickHouse/issues/55653). [#100366](https://github.com/ClickHouse/ClickHouse/pull/100366) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Acelere consultas muito grandes em tabelas `Merge` sobre um grande número de tabelas subjacentes. Fecha [#32465](https://github.com/ClickHouse/ClickHouse/issues/32465). [#100369](https://github.com/ClickHouse/ClickHouse/pull/100369) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Remova a vtable dos tipos de campo de configuração, reduzindo o tamanho da cópia de `Settings` em \~28x e melhorando a localidade de cache por meio de um layout de array tipado para todos os tipos de configuração. [#102269](https://github.com/ClickHouse/ClickHouse/pull/102269) ([Raúl Marín](https://github.com/Algunenano)).
* Adicione as configurações `max_threads_min_free_memory_per_thread` e `max_insert_threads_min_free_memory_per_thread` para reduzir automaticamente o paralelismo das consultas quando o servidor estiver com pouca memória livre. [#100383](https://github.com/ClickHouse/ClickHouse/pull/100383) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Reduza o uso de memória em sistemas com pouca memória (\< 4 GiB). [#100389](https://github.com/ClickHouse/ClickHouse/pull/100389) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado `OptimizeTrivialGroupByLimitPass`. Para consultas triviais `SELECT ... FROM t GROUP BY k LIMIT n` (sem `HAVING`, `ORDER BY` nem funções de janela), o analyzer agora define `max_rows_to_group_by = n + offset` com `group_by_overflow_mode = 'any'`, de modo que a agregação para assim que `n` chaves distintas forem produzidas, em vez de agrupar toda a entrada. Controlado pela nova configuração `optimize_trivial_group_by_limit_query` (habilitada por padrão). [#104473](https://github.com/ClickHouse/ClickHouse/pull/104473) ([Amos Bird](https://github.com/amosbird)) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Índice min-max implícito em nível de grânulo para as colunas virtuais `_part_offset` e `_block_number`, inclusive para projeções. Permite a eliminação rápida de grânulos com base em predicados de colunas virtuais. [#103952](https://github.com/ClickHouse/ClickHouse/pull/103952) ([Mikhail Artemenko](https://github.com/Michicosun)). [#104746](https://github.com/ClickHouse/ClickHouse/pull/104746) ([Mikhail Artemenko](https://github.com/Michicosun)). [#105137](https://github.com/ClickHouse/ClickHouse/pull/105137) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Para a família `prealloc_serialized` de métodos de agregação, pré-calcula hashes por linha durante a etapa de serialização em lote e os usa para (a) evitar recalcular o hash em `emplaceKey`/`findKey` e (b) fazer software prefetch do bucket da próxima linha. Isso acelera a agregação serializada/de strings com múltiplas chaves ao ocultar a latência de cache miss da tabela hash. [#104475](https://github.com/ClickHouse/ClickHouse/pull/104475) ([Amos Bird](https://github.com/amosbird)) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Cache de condições de consulta para tabelas `Iceberg`. [#102115](https://github.com/ClickHouse/ClickHouse/pull/102115) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Otimiza `cramersV`, `cramersVBiasCorrected`, `theilsU` e `contingency` quando usados com funções de janela. Fecha [#83521](https://github.com/ClickHouse/ClickHouse/issues/83521). [#93384](https://github.com/ClickHouse/ClickHouse/pull/93384) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Adicionada uma otimização de consulta que reescreve `tupleElement(dictGet('dict', ('a', 'b', 'c'), key), N)` como `dictGet('dict', 'a', key)`, evitando buscar atributos de dicionário desnecessários. Controlado pela configuração `optimize_dictget_tuple_element` (habilitada por padrão). [#100186](https://github.com/ClickHouse/ClickHouse/pull/100186) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Habilita bufferização para etapas de ordenação no iniciador em consultas distribuídas com ordenação. [#100661](https://github.com/ClickHouse/ClickHouse/pull/100661) ([Nikita Taranov](https://github.com/nickitat)).
* Melhoria de desempenho para `partial_merge` JOIN. [#100945](https://github.com/ClickHouse/ClickHouse/pull/100945) ([Artem Zuikov](https://github.com/4ertus2)).
* Reduz ligeiramente a superalocação de memória em `partial_merge` JOIN. [#100963](https://github.com/ClickHouse/ClickHouse/pull/100963) ([Artem Zuikov](https://github.com/4ertus2)).
* Otimiza allocations/deallocations armazenando em cache as configurações de sampling, em vez de percorrer toda a hierarquia do memory-tracker. [#101267](https://github.com/ClickHouse/ClickHouse/pull/101267) ([Azat Khuzhin](https://github.com/azat)).
* Reduz a sobrecarga de alocação de memória durante uploads multipart no S3 por meio da pré-alocação de contêineres internos de rastreamento. [#101799](https://github.com/ClickHouse/ClickHouse/pull/101799) ([Gagan Dhakrey](https://github.com/gagandhakrey)).
* Adiciona software prefetch na fase de probe do hash join para reduzir a latência de acesso à memória em tabelas hash grandes, controlado pela configuração `enable_software_prefetch_in_join`. [#102444](https://github.com/ClickHouse/ClickHouse/pull/102444) ([Xiaozhe Yu](https://github.com/wudidapaopao)).
* Otimiza o layout de `MemoryTracker`, melhorando seu desempenho em \~25%. [#103464](https://github.com/ClickHouse/ClickHouse/pull/103464) ([Azat Khuzhin](https://github.com/azat)).
* Reescreve os predicados `coalesce(a, b, ...) <op> const` e `ifNull(a, b) <op> const` antes da análise de índices, para que a chave primária por coluna e os skip indexes de cada argumento possam eliminar grânulos. Controlado pela nova configuração `allow_key_condition_coalesce_rewrite` (ativada por padrão). [#103468](https://github.com/ClickHouse/ClickHouse/pull/103468) ([Manuel](https://github.com/raimannma)).
* Melhorou significativamente o desempenho de consultas ao ler catálogos Iceberg com arquivos JSON de metadados grandes, otimizando o processamento de barras invertidas escapadas. [#103998](https://github.com/ClickHouse/ClickHouse/pull/103998) ([Mohaidoss](https://github.com/mohaidoss)).
* Evita a sobrecarga do cache não comprimido de índice quando ele está desabilitado (configuração do servidor `index_uncompressed_cache_size = 0`, que é o padrão). [#104063](https://github.com/ClickHouse/ClickHouse/pull/104063) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige consultas `ORDER BY ... LIMIT` com limite pequeno que liam grânulos em excesso quando combinadas com um filtro `WHERE` pouco seletivo. Antes, qualquer filtro acima de uma leitura em ordem desativava a divisão de tarefas por intervalo de marcas, então o pipeline não conseguia cancelar entre grânulos e lia a part inteira para cada stream. [#104112](https://github.com/ClickHouse/ClickHouse/pull/104112) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige a falta de reutilização do cache de tamanhos da tabela hash após reordenar os lados do JOIN. [#104131](https://github.com/ClickHouse/ClickHouse/pull/104131) ([Nikita Taranov](https://github.com/nickitat)).
* Quando `fsync_after_insert` está ativado, o fsync dos arquivos de part agora é executado em paralelo usando o IO thread pool, acelerando a finalização de insert em wide tables. A carga completa de `hits` do ClickBench fica cerca de 22% mais rápida. [#104137](https://github.com/ClickHouse/ClickHouse/pull/104137) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Vetoriza `find_first_symbols`, `find_first_not_symbols`, `find_last_symbols_or_null`, `find_last_not_symbols_or_null` e `splitInto` em AArch64 usando NEON. Antes, esses helpers tinham um caminho SIMD apenas em x86 (SSE2 / SSE4.2) e acabavam caindo em um loop escalar no ARM. Acelera o parsing de TSV em \~2x, as funções de URL e `splitByChar` em \~1,3x no dataset `hits` do ClickBench; o parsing de JSON muito denso (cadência de campos abaixo de 16 bytes) sofre uma leve regressão, em linha com o trade-off já existente do SSE2. [#104228](https://github.com/ClickHouse/ClickHouse/pull/104228) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A leitura de dados por meio de uma coluna `ALIAS` trivial (por exemplo, `some_alias['key']` onde `some_alias ALIAS m`) agora segue o mesmo caminho de leitura por subcoluna que a referência direta à coluna subjacente, restaurando uma grande economia de E/S para colunas com alias dos tipos `Map`, `Array`, `Tuple` e `Nullable`. [#104245](https://github.com/ClickHouse/ClickHouse/pull/104245) ([Raúl Marín](https://github.com/Algunenano)).
* Reduz a contenção de locks no caminho de leitura assíncrona de sistema de arquivos remoto ao tornar o `AsyncReadCounters` por consulta lock-free. [#104374](https://github.com/ClickHouse/ClickHouse/pull/104374) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Plano de consulta ligeiramente melhor para varreduras em ordem de projeções. [#103723](https://github.com/ClickHouse/ClickHouse/pull/103723) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Estende `optimizeUseNormalProjections` para também lidar com um caso específico em que nada foi filtrado, mas a chave de ordenação da projeção pode remover a etapa de ordenação do plano de consulta. [#104680](https://github.com/ClickHouse/ClickHouse/pull/104680) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Permitir que o açúcar sintático `json.path[]` e as dicas de tipo explícitas funcionem corretamente em `paths` `JSON` tipados. [#99179](https://github.com/ClickHouse/ClickHouse/pull/99179) ([Pavel Kruglov](https://github.com/Avogar)).
* Otimizar `json.path[N].nested.path` (que se expande para `tupleElement(tupleElement(json.path[N], 'nested'), 'path')`) para `json.path[].nested.path[N]`, que lê muito menos dados. [#99802](https://github.com/ClickHouse/ClickHouse/pull/99802) ([Pavel Kruglov](https://github.com/Avogar)).
* Otimizar as verificações de acesso de `SHOW TABLES` em `system.parts`, movendo as verificações de privilégio no nível do banco de dados para fora do loop por tabela. [#100860](https://github.com/ClickHouse/ClickHouse/pull/100860) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Remover uma verificação redundante de acesso a `SHOW TABLES` por tabela no caminho rápido de `SELECT name` / `SELECT database, name` em `system.tables`. [#100881](https://github.com/ClickHouse/ClickHouse/pull/100881) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Habilitar compilação JIT no macOS. [#100947](https://github.com/ClickHouse/ClickHouse/pull/100947) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ignorar o adiamento da política de linha após `FINAL` quando ela depende apenas de colunas da chave de ordenação e é determinística, e ignorar o adiamento correspondente de `PREWHERE` que a política de linha estava forçando nesse caso. [#102884](https://github.com/ClickHouse/ClickHouse/pull/102884) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Adicionado suporte a `hasAny` e `hasAll` como predicados de filtro em índices de texto. [#103266](https://github.com/ClickHouse/ClickHouse/pull/103266) ([Anton Popov](https://github.com/CurtizJ)).
* Direcionar o estado de heap de longa duração do MergeTree (metadados por parte e por tabela) para uma arena dedicada do jemalloc, exposta por meio das métricas assíncronas `jemalloc.mergetree_arena.*`. Isso reduz a fragmentação da arena padrão em estado estável e evita que sobreviventes por parte mantenham páginas presas que, de outra forma, poderiam decair. [#104136](https://github.com/ClickHouse/ClickHouse/pull/104136) ([Raúl Marín](https://github.com/Algunenano)).
* Melhorar o tratamento de timeout do cliente ZooKeeper sob alta carga quando muitas solicitações são colocadas em pipeline em uma única sessão. O cliente ZooKeeper agora usa um timeout baseado em progresso: enquanto qualquer dado for recebido do servidor dentro de `session_timeout_ms`, a espera é estendida. Um limite rígido de `3 * session_timeout_ms` por solicitação ainda limita a latência do chamador. Fecha [#100466](https://github.com/ClickHouse/ClickHouse/issues/100466). [#104351](https://github.com/ClickHouse/ClickHouse/pull/104351) ([Antonio Andelic](https://github.com/antonio2368)).
* Mover as flags de trace por evento para um array separado e alocá-las sob demanda, reduzindo a sobrecarga do tracing de `ProfileEvents`. [#105030](https://github.com/ClickHouse/ClickHouse/pull/105030) ([Azat Khuzhin](https://github.com/azat)).
* Adicionar `compareTrackAt` para `ColumnDecimal`, melhorando o desempenho de comparação para colunas `Decimal`. [#105110](https://github.com/ClickHouse/ClickHouse/pull/105110) ([Artem Zuikov](https://github.com/4ertus2)).
* Adicionada uma implementação SIMD de `MD5` (`AVX2` / `AVX512`) que calcula hashes de várias entradas em paralelo, melhorando o throughput. [#105161](https://github.com/ClickHouse/ClickHouse/pull/105161) ([Joanna Hulboj](https://github.com/jh0x)).

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

* Melhora a saída de ajuda de todos os aplicativos ClickHouse: `--help` agora retorna consistentemente o código de saída `0`, imprime em `stdout`, e `clickhouse --help`, no nível superior, lista todos os subcomandos. Adiciona a opção `--no-sudo` para `clickhouse start` / `restart` (útil no Docker) e o subcomando `clickhouse help`. Continuação de [#58244](https://github.com/ClickHouse/ClickHouse/issues/58244) por @qoega. [#98148](https://github.com/ClickHouse/ClickHouse/pull/98148) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O valor padrão de `input_format_column_name_matching_mode` foi alterado de `match_case` para `auto`. Os formatos de entrada que fazem correspondência entre nomes de coluna de entrada e o schema da tabela (`JSONEachRow`, `CSVWithNames`, `JSONColumns`, `BSONEachRow`, `RowBinaryWithNames`, etc.) agora tentam primeiro uma correspondência case-sensitive e, se ela falhar, recorrem à correspondência case-insensitive. O comportamento estrito anterior é preservado em `compatibility`. [#104320](https://github.com/ClickHouse/ClickHouse/pull/104320) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado `STDDEV` como alias case-insensitive de `stddevSamp` para compatibilidade com PostgreSQL/SQL padrão. [#105120](https://github.com/ClickHouse/ClickHouse/pull/105120) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado `array_to_string` como alias case-insensitive de `arrayStringConcat` para compatibilidade com PostgreSQL. [#105121](https://github.com/ClickHouse/ClickHouse/pull/105121) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado `unnest` como alias case-insensitive de `arrayJoin` para compatibilidade com PostgreSQL (na forma de chamada de função). [#105124](https://github.com/ClickHouse/ClickHouse/pull/105124) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A barra de progresso no `clickhouse-client` agora mostra o uso de disco para dados temporários (por exemplo, em sort externo, aggregation ou JOIN) ao lado da RAM, incluindo um detalhamento por host para consultas distribuídas. [#105190](https://github.com/ClickHouse/ClickHouse/pull/105190) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado `system.predicate_statistics_log`, um novo log amostrado da seletividade de filtros de predicate e do Granule pruning do índice MergeTree por consulta. Desabilitado por padrão; habilite-o por meio da server setting `predicate_statistics_sample_rate`. Necessário para recomendações automáticas de índice e projection. [#98727](https://github.com/ClickHouse/ClickHouse/pull/98727) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Permite ignorar o shard local com tabela ausente quando `skip_unavailable_shards` está habilitado. [#100141](https://github.com/ClickHouse/ClickHouse/pull/100141) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona avisos na inicialização (visíveis em `system.warnings`) quando um array mdraid do Linux está sendo ressincronizado ou está em estado degradado, pois ambos podem afetar o desempenho de E/S de disco ou indicar falhas de disco. [#100941](https://github.com/ClickHouse/ClickHouse/pull/100941) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* As UDFs WASM agora aparecem em `system.functions` com `origin` correto (`WasmUserDefined`) e as colunas `syntax`, `arguments` e `returned_value` preenchidas com base nos metadados de tipo do ClickHouse. Antes, elas estavam ausentes ou apareciam listadas com `origin` incorreto como duplicatas. [#101053](https://github.com/ClickHouse/ClickHouse/pull/101053) ([Vasily Chekalkin](https://github.com/bacek)).
* A table function `generate_series` agora oferece suporte a valores negativos de passo para gerar sequências decrescentes, por exemplo `SELECT * FROM generate_series(99, 0, -1)`. [#101056](https://github.com/ClickHouse/ClickHouse/pull/101056) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige exceções `Context has expired` geradas por algumas funções (`dotProduct`, `formatRow`, `structureToCapnProtoSchema`/`structureToProtobufSchema`, funções definidas pelo usuário) quando usadas em caminhos de execução diferida, como expressões `DEFAULT`/`MATERIALIZED` e configurações de mecanismo de tabela, garantindo que essas funções mantenham um contexto forte quando necessário. [#101109](https://github.com/ClickHouse/ClickHouse/pull/101109) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige erros lógicos espúrios `Cache limits violated` em prioridades criadas com limites iguais a zero (como a prioridade de filesystem cache por consulta usada quando `enable_filesystem_query_cache_limit` está ativado). [#101428](https://github.com/ClickHouse/ClickHouse/pull/101428) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Detecta automaticamente a região de endpoints `s3express`. [#101520](https://github.com/ClickHouse/ClickHouse/pull/101520) ([Pradeep Chhetri](https://github.com/chhetripradeep)).
* Adiciona suporte a IDs de campo para data files em gravações no `Iceberg`. Fecha [#102322](https://github.com/ClickHouse/ClickHouse/issues/102322). [#102362](https://github.com/ClickHouse/ClickHouse/pull/102362) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* O painel esquerdo na interface web (`play.html`) agora rola de forma independente, permanece visível quando a página é rolada e, ao clicar em uma tabela, vai para a área da consulta. [#102498](https://github.com/ClickHouse/ClickHouse/pull/102498) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permite abrir a interface do Play em uma nova aba via Ctrl/Cmd/Shift+clique ou clique do meio no logo do ClickHouse no painel esquerdo. [#102501](https://github.com/ClickHouse/ClickHouse/pull/102501) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Novas métricas para rastrear a memória usada por chaves primárias de projeções e pela granularidade de índice de projeções em todas as tabelas. [#102587](https://github.com/ClickHouse/ClickHouse/pull/102587) ([Narasimha Pakeer](https://github.com/npakeer)).
* Aplica `max_network_bandwidth_for_user` e `max_network_bandwidth_for_all_users` a leituras/gravações em sistemas de arquivos remotos. [#103080](https://github.com/ClickHouse/ClickHouse/pull/103080) ([Azat Khuzhin](https://github.com/azat)).
* Melhora a resiliência dos backups quando views materializadas atualizáveis são atualizadas constantemente, tomando decisões com base no estado das tabelas capturado no snapshot, em vez de um estado global. [#103384](https://github.com/ClickHouse/ClickHouse/pull/103384) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* `SELECT * FROM system.databases` agora sempre lista bancos de dados do catálogo do lago de dados, independentemente da configuração `show_data_lake_catalogs_in_system_tables`. Antes, eles ficavam ocultos por padrão, o que era inconsistente com `SHOW DATABASES`, que sempre os mostrava. [#103444](https://github.com/ClickHouse/ClickHouse/pull/103444) ([Alsu Giliazova](https://github.com/alsugiliazova)).
* Alinha no código o valor padrão da configuração de servidor `concurrent_threads_soft_limit_ratio_to_cores` com o valor fornecido em `config.xml` (`2`), para que o scheduler padrão `max_min_fair` de threads concorrentes limite, por padrão, as threads de processamento de consultas a 2x o número de núcleos, mesmo quando o `config.xml` fornecido não é usado. [#103446](https://github.com/ClickHouse/ClickHouse/pull/103446) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Aprimora a robustez do sanitizer em casos de borda no parser e em funções de string ao tratar entradas vazias em `getURLScheme`, evitar aritmética com ponteiro nulo nas verificações de `max_query_size` em `Lexer::nextToken` e interromper antecipadamente a avaliação de subsequências UTF-8 em haystacks vazios antes da decodificação. [#103489](https://github.com/ClickHouse/ClickHouse/pull/103489) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Correção aprimorada da inferência de monotonicidade para `divide(0, x)` e `intDiv(0, x)`: anteriormente, as funções eram reportadas incondicionalmente como monotônicas, mas `0 / x` não é monotônica em qualquer intervalo que inclua 0, porque `0 / 0` é indefinido (`NaN`/`Inf` para `divide`, exceção de divisão por zero para `intDiv`). Essa suposição incorreta fazia com que `KeyCondition::applyMonotonicFunctionsChainToRange` produzisse intervalos com `left > right`, o que disparava um `LOGICAL_ERROR` `Invalid binary search result in MergeTreeSetIndex` em compilações de depuração quando uma expressão `IN` / `NOT IN` na chave primária envolvia a chave em `divide(0, key)` ou `intDiv(0, key)`. As compilações de lançamento não foram afetadas — a asserção é controlada por `#ifndef NDEBUG`. [#103621](https://github.com/ClickHouse/ClickHouse/pull/103621) ([Groene AI](https://github.com/groeneai)).
* Substitui as métricas assíncronas `HTTPConnectionPool*TCP{Rcv,Snd}BufBytes_{p50,p75,p90,p95}` por um histograma baseado em bucket, `http_pool_tcp_buf_bytes` (labels `group`, `direction`), em `system.histogram_metrics`. As métricas assíncronas totais por grupo foram preservadas. [#103704](https://github.com/ClickHouse/ClickHouse/pull/103704) ([Sema Checherinda](https://github.com/CheSema)).
* As server settings `{disk,storage,http}_connections_{rcvbuf,sndbuf}` agora são reportadas como alteráveis sem reinicialização em `system.server_settings`. Seus valores podem ser atualizados via `SYSTEM RELOAD CONFIG`; o caminho de aplicação em runtime já existia desde [#100478](https://github.com/ClickHouse/ClickHouse/issues/100478). [#103772](https://github.com/ClickHouse/ClickHouse/pull/103772) ([Sema Checherinda](https://github.com/CheSema)).
* Adiciona suporte a símbolos resolvidos (`Array(String)`) em `flameGraph`. [#103816](https://github.com/ClickHouse/ClickHouse/pull/103816) ([Azat Khuzhin](https://github.com/azat)).
* O client CLI agora pode especificar `<rainbow_parentheses>false</rainbow_parentheses>` na sua config em ambientes em que as cores do terminal conflitam com os parênteses (da mesma forma, `clickhouse format` agora tem `--no_rainbow_parentheses`). [#103851](https://github.com/ClickHouse/ClickHouse/pull/103851) ([Larry Snizek](https://github.com/larry-cdn77)).
* Corrige a busca UTF-8 case-insensitive de `MultiVolnitsky`, revertendo inserts parciais de `putNGram` em caso de falha e mudando needles com falha para searchers de fallback, evitando estado inconsistente. [#103864](https://github.com/ClickHouse/ClickHouse/pull/103864) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Implementa `sched_getcpu` via TLS `rseq` em musl compatível com glibc. [#104016](https://github.com/ClickHouse/ClickHouse/pull/104016) ([Azat Khuzhin](https://github.com/azat)).
* A view materializada atualizável Replicated no modo APPEND não será mais atualizada duas vezes se a connection com o ZooKeeper for brevemente perdida durante a atualização. [#104051](https://github.com/ClickHouse/ClickHouse/pull/104051) ([Michael Kolupaev](https://github.com/al13n321)).
* Permite que tabelas Distributed sem uma lista explícita de colunas validem sharding keys com base na structure inferida da tabela remota. [#104111](https://github.com/ClickHouse/ClickHouse/pull/104111) ([Yue](https://github.com/niyue)).
* Corrige o REST catalog com path `Azure` `abfss`. [#104120](https://github.com/ClickHouse/ClickHouse/pull/104120) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Respeita as auth settings `role_arn` e `role_session_name` no client de snapshot S3 do Keeper, permitindo que uploads de snapshot usem authentication baseada em STS `AssumeRole`. [#104140](https://github.com/ClickHouse/ClickHouse/pull/104140) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um vazamento de memória ao executar consultas com CTEs `MATERIALIZED`. [#104153](https://github.com/ClickHouse/ClickHouse/pull/104153) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a exceção de `lowerUTF8` / `upperUTF8` ao processar grandes conjuntos de dados não ASCII (por exemplo, durante a compilação de índices de texto), quando o buffer de saída acumulado ultrapassaria 2 GiB; linhas individuais excessivamente longas agora são rejeitadas com um erro claro. [#104229](https://github.com/ClickHouse/ClickHouse/pull/104229) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Torna o carregamento de estatísticas de coluna do MergeTree mais robusto contra falhas transitórias de E/S, para evitar a desativação permanente de otimizações baseadas em estatísticas nas partes afetadas. [#104372](https://github.com/ClickHouse/ClickHouse/pull/104372) ([zoomxi](https://github.com/zoomxi)).
* `INSERT INTO ... SELECT FROM input(...)` não exige mais o privilégio `CREATE TEMPORARY TABLE`. [#104470](https://github.com/ClickHouse/ClickHouse/pull/104470) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona uma nova configuração do MergeTree, `concurrent_part_removal_threshold_for_remote_disk` (padrão `16`), usada no lugar de `concurrent_part_removal_threshold` quando pelo menos uma parte removida está armazenada em um disco remoto. O limite anterior de `100` podia fazer com que `DROP TABLE` e outras operações de remoção de partes em backends de armazenamento de objetos ficassem bloqueados por dezenas de segundos, porque as remoções eram realizadas em série, embora cada uma correspondesse a uma ida e volta de rede separada. A nova configuração faz com que o caminho de remoção paralela seja acionado muito mais cedo no armazenamento remoto, sem alterar o comportamento em disco local. [#104676](https://github.com/ClickHouse/ClickHouse/pull/104676) ([Groene AI](https://github.com/groeneai)).
* A nova configuração `defer_partition_pruning_after_final` (padrão `1`) torna desativável o comportamento introduzido na 26.3 de ignorar o partition pruning com `FINAL`. Defina-a como `0` para restaurar o partition pruning anterior à 26.3 — substancialmente mais rápido em workloads de logs de eventos em que linhas com a mesma PK não podem abranger partições. `compatibility = '26.2'` a altera para `0` automaticamente. [#104705](https://github.com/ClickHouse/ClickHouse/pull/104705) ([Nikita Fomichev](https://github.com/fm4v)).
* Corrige `intExp2`, que retornava resultados incorretos para entradas fora do intervalo (shifts `>= 64` com JIT e inteiros com magnitude maior que `INT_MAX` em ambos os caminhos de código). [#105054](https://github.com/ClickHouse/ClickHouse/pull/105054) ([Raúl Marín](https://github.com/Algunenano)).
* Coloca entre aspas argumentos de shell gerados a partir de opções de CLI e de entrada convertida em `clickhouse install` e `clickhouse git-import`, para que paths, nomes de usuário/grupo e hashes de commit que contenham espaços em branco ou metacaracteres de shell sejam tratados corretamente. [#105232](https://github.com/ClickHouse/ClickHouse/pull/105232) ([Raúl Marín](https://github.com/Algunenano)).
* O table engine `Alias` agora deixou de ser experimental e está disponível sem a configuração `allow_experimental_alias_table_engine`. [#103488](https://github.com/ClickHouse/ClickHouse/pull/103488) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona a opção `--queries-format` ao `clickhouse-benchmark` para escolher entre o formato padrão de entrada, com uma consulta por linha e escapes de tabulação (`tsv`), e a análise da entrada padrão como um script com várias consultas separadas por `;` (`script`). [#99972](https://github.com/ClickHouse/ClickHouse/pull/99972) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Os operadores de Tuple elemento por elemento `tuplePlus`, `tupleMinus`, `tupleMultiply`, `tupleDivide`, `tupleModulo`, `tupleIntDiv` e `tupleIntDivOrZero` agora são variádicos e aceitam duas ou mais tuples do mesmo tamanho, aplicadas elemento por elemento como uma redução à esquerda. Antes, aceitavam exatamente dois argumentos. [#104659](https://github.com/ClickHouse/ClickHouse/pull/104659) ([Aruj Bansal](https://github.com/arujbansal)).
* Adicionada uma nova interface web integrada em `/processors-profile` que visualiza o pipeline de qualquer consulta `SELECT` anterior como um heatmap, com dados de `system.query_log` e `system.processors_profile_log`. Cada processor é colorido de acordo com seu `elapsed_us` e mostra estatísticas por processor (linhas, bytes, tempos de espera) ao passar o cursor. [#104614](https://github.com/ClickHouse/ClickHouse/pull/104614) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* A configuração `query_plan_use_logical_join_step` (e seu alias `query_plan_use_new_logical_join_step`) agora está obsoleta e não tem efeito; a etapa lógica de join é sempre usada. [#104017](https://github.com/ClickHouse/ClickHouse/pull/104017) ([Vladimir Cherkasov](https://github.com/vdimir)).
* O campo `user` em `play.html` e nas outras páginas web integradas (`dashboard.html`, `jemalloc.html`, `merges.html`, `binary.html`, `webterminal.html`) não vem mais pré-preenchido com o texto literal `default`. Agora ele mostra uma dica de placeholder `user` e fica vazio por padrão. Quando deixado vazio, a página não envia um parâmetro de URL `user=` (e o JSON de autenticação do WebTerminal omite o field `user`), então o servidor aplica seu fallback usual para o usuário `default` — e credentials HTTP fornecidas por outros canais (`X-ClickHouse-User`, HTTP Basic, configuração `<handler><user>` por handler) não são mais sobrescritas. [#105254](https://github.com/ClickHouse/ClickHouse/pull/105254) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Leitor `ORC`: desacopla a leitura baseada em offset (`readBigAt`) de `use_prefetch`, para que dados codificados com EC em `HDFS` possam ser lidos corretamente mesmo quando `use_prefetch = false` (por exemplo, pelo Gluten). [#103348](https://github.com/ClickHouse/ClickHouse/pull/103348) ([zhanglistar](https://github.com/zhanglistar)).
* Arquivos baixados de `play.html` com o format `CSVWithNames` agora usam a extensão `.csv`. [#103737](https://github.com/ClickHouse/ClickHouse/pull/103737) ([JackFielding](https://github.com/JackFielding)).
* Mais validação de entrada para o catálogo BigLake. [#105117](https://github.com/ClickHouse/ClickHouse/pull/105117) ([Konstantin Vedernikov](https://github.com/scanhex12)).

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

* Corrige a formatação inconsistente ao preservar a informação sobre uma expressão estar ou não entre parênteses. [#92340](https://github.com/ClickHouse/ClickHouse/pull/92340) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a comparação correta entre os tipos Decimal e Float. [#94293](https://github.com/ClickHouse/ClickHouse/pull/94293) ([zoomxi](https://github.com/zoomxi)).
* Permite argumentos posicionais em consultas distribuídas. [#94359](https://github.com/ClickHouse/ClickHouse/pull/94359) ([simonmichal](https://github.com/simonmichal)).
* Corrige a falha de asserção em `DatabaseCatalog::updateDependencies` ao remover e recriar uma visão materializada com o mesmo nome; também corrige a perda silenciosa de dependências de views durante `RENAME TABLE` ou `EXCHANGE TABLES` quando as dependências referenciais estavam vazias. [#98779](https://github.com/ClickHouse/ClickHouse/pull/98779) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um abort do servidor (falha de asserção em `DatabaseCatalog::getTableImpl`) que ocorria ao criar uma tabela via `ON CLUSTER` com um UUID idêntico ao UUID de um banco de dados existente. [#98861](https://github.com/ClickHouse/ClickHouse/pull/98861) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* Corrige o uso de skip indexes na leitura de dados (com a configuração `use_skip_indexes_on_data_read` habilitada) e de patch parts existentes criadas por atualizações leves. [#99543](https://github.com/ClickHouse/ClickHouse/pull/99543) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a exceção "Not-ready Set" quando um filtro com `IN (subquery)` é movido para PREWHERE pelo otimizador de consultas. [#100375](https://github.com/ClickHouse/ClickHouse/pull/100375) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o erro "Cannot find column" ao combinar `ADD COLUMN` com `RENAME COLUMN` em uma única instrução `ALTER TABLE`. [#100387](https://github.com/ClickHouse/ClickHouse/pull/100387) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige views com operadores `UNION` e `INTERSECT`/`EXCEPT` misturados que retornavam resultados incorretos após `DETACH`/`ATTACH` ou a reinicialização do servidor. [#100390](https://github.com/ClickHouse/ClickHouse/pull/100390) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a exceção "Trying to execute PLACEHOLDER action" que podia ocorrer durante testes de estresse com o AST fuzzer quando uma subconsulta correlacionada aparecia em uma cláusula IN. [#100398](https://github.com/ClickHouse/ClickHouse/pull/100398) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a exceção de erro lógico ao inserir em uma tabela Iceberg com uma coluna `Date` particionada por transformações `year`, `month` ou `day`. [#100404](https://github.com/ClickHouse/ClickHouse/pull/100404) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o uso de skip index com dados incompatíveis após `ALTER TABLE MODIFY COLUMN` alterar o tipo da coluna, o que podia causar falhas no servidor em builds com sanitizer ou resultados incorretos de consulta. [#100526](https://github.com/ClickHouse/ClickHouse/pull/100526) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o vazamento de credenciais em `query_log` para as table functions `paimonCluster`, `paimonS3Cluster`, `paimonAzureCluster` e `deltaLakeS3`. [#100529](https://github.com/ClickHouse/ClickHouse/pull/100529) ([JIaQi Tang](https://github.com/JiaQiTang98)).
* Corrige o `DROP TABLE` em tabelas com motor Kafka, que podia ficar bloqueado indefinidamente devido a um deadlock em `rd_kafka_consumer_close`. [#100604](https://github.com/ClickHouse/ClickHouse/pull/100604) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Substitui a lista `source_table_engines` codificada estaticamente por lookup em runtime via `StorageFactory` e `DatabaseFactory`. Adiciona `source_access_type` a `DatabaseFactory::EngineFeatures`, para que `CREATE DATABASE` com motores de origem (PostgreSQL, MySQL, S3 etc.) exija os mesmos grants de origem que `CREATE TABLE`. Corrige a falha de `GRANT TABLE ENGINE ON *` com `table_engines_require_grant=false`. Fecha [#71544](https://github.com/ClickHouse/ClickHouse/issues/71544). [#100746](https://github.com/ClickHouse/ClickHouse/pull/100746) ([pufit](https://github.com/pufit)).
* Corrige um crash do servidor ao ler de uma tabela cuja coluna `ALIAS` continha uma subquery correlacionada aninhada dentro de uma chamada de função (por exemplo, `ALIAS toString(intDivOrZero(x, (SELECT ...)))`). `CREATE TABLE` e `ALTER TABLE` agora rejeitam qualquer subquery, em qualquer nível de profundidade, em expressões de coluna `DEFAULT` / `ALIAS` / `MATERIALIZED`, com `THERE_IS_NO_DEFAULT_VALUE`. Anteriormente, a validação superficial aceitava subqueries aninhadas, então o caso correlacionado causava crash em tempo de leitura, e o caso aninhado não correlacionado parecia funcionar, mas podia levar a comportamento inesperado; ambos agora são rejeitados no momento do DDL. [#100753](https://github.com/ClickHouse/ClickHouse/pull/100753) ([Groene AI](https://github.com/groeneai)).
* Corrige um crash do servidor (`Logical error: Bad cast from type DB::FunctionNode to DB::ColumnNode`) que podia ocorrer ao usar consultas com subqueries correlacionadas em tabelas com definições `CONSTRAINT ... ASSUME`, quando as settings `optimize_substitute_columns` e `convert_query_to_cnf` estão habilitadas. [#100756](https://github.com/ClickHouse/ClickHouse/pull/100756) ([Groene AI](https://github.com/groeneai)).
* Corrige uma exceção que podia ocorrer ao inserir uma linha em uma coluna JSON em que a linha introduzia um novo campo dinâmico ao lado de um campo tipado com um valor incompatível, e a coluna era usada posteriormente como chave de GROUP BY. [#100758](https://github.com/ClickHouse/ClickHouse/pull/100758) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Corrige o bypass silencioso do IO scheduling de workload para gravações em S3/armazenamento de objetos que passam pelo caminho `DiskObjectStorageTransaction` (usado por disks `s3_with_keeper` e explicitamente quando `use_fake_transaction=false`). Anteriormente, gravações de INSERT em MergeTree tables nesses disks ignoravam o throttling de `CREATE RESOURCE` / `CREATE WORKLOAD` porque o link do resource nunca era injetado em `WriteSettings` no caminho de gravação transacional. [#100777](https://github.com/ClickHouse/ClickHouse/pull/100777) ([JIaQi Tang](https://github.com/JiaQiTang98)).
* Corrige uma colisão de schema-cache compartilhado entre `Protobuf` e `ProtobufList`: ler uma mensagem primeiro como `FORMAT Protobuf` e depois como `FORMAT ProtobufList` podia falhar porque `ProtobufList` forçava o schema em cache para seu formato de envelope. `ProtobufList` agora recorre ao tipo de mensagem em cache quando nenhum schema de envelope está disponível. [#100849](https://github.com/ClickHouse/ClickHouse/pull/100849) ([Callum Cooper](https://github.com/callumc34)).
* Corrige heap-buffer-overflow na ponte Rust CXX devido a incompatibilidade de ABI de `std::exception`. [#100931](https://github.com/ClickHouse/ClickHouse/pull/100931) ([Azat Khuzhin](https://github.com/azat)).
* `FunctionVariantAdaptor` agora lança `ILLEGAL_TYPE_OF_ARGUMENT` quando todas as alternativas de `Variant` são incompatíveis com uma função, em vez de retornar silenciosamente `Nullable(Nothing)`. Anteriormente, um predicate `WHERE function(variant_col)` em que nenhum tipo alternativo era compatível retornava 0 linhas sem erro, enquanto o contexto `SELECT` equivalente já lançava corretamente. [#100939](https://github.com/ClickHouse/ClickHouse/pull/100939) ([Vasily Chekalkin](https://github.com/bacek)).
* `TRUNCATE ALL TABLES` não falha mais quando o database contém views. [#100943](https://github.com/ClickHouse/ClickHouse/pull/100943) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a otimização `optimize_rewrite_array_exists_to_has` para lidar corretamente com casos com tipos incompatíveis (por exemplo, Date vs String) e a reativa por padrão. [#100944](https://github.com/ClickHouse/ClickHouse/pull/100944) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a prioridade das configurações de S3 para que as configurações de disco em `storage_configuration` substituam a seção global `<s3>`, e as configurações em nível de usuário/profile/consulta substituam ambas. [#100975](https://github.com/ClickHouse/ClickHouse/pull/100975) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a serialização esparsa que perdia o sinal de zero negativo (-0.0) em colunas BFloat16, Float32 e Float64. [#100983](https://github.com/ClickHouse/ClickHouse/pull/100983) ([Takumi Hara](https://github.com/takumihara)).
* Corrige dois bugs no parser de geometria WKT usado ao ler arquivos GeoParquet e Arrow codificados em WKT: geometrias `MULTILINESTRING` eram interpretadas incorretamente como `Polygon` (causando uma exceção para colunas tipadas e corrupção silenciosa de dados para colunas `Geometry` mistas), e uma string WKT malformada sem palavra-chave de tipo acionava comportamento indefinido em vez de um erro claro. [#100997](https://github.com/ClickHouse/ClickHouse/pull/100997) ([Vasily Chekalkin](https://github.com/bacek)).
* Corrige consultas `grouping`/`GROUPING SETS` em tabelas Distributed com um único shard que falhavam com "Method executeImpl is not supported for 'grouping' function". [#101030](https://github.com/ClickHouse/ClickHouse/pull/101030) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige `LOGICAL_ERROR` "Column identifier is already registered" no planner, que podia ocorrer quando a mesma expressão de tabela era processada várias vezes. [#101048](https://github.com/ClickHouse/ClickHouse/pull/101048) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a exceção LOGICAL\_ERROR "Column identifier is already registered" quando a configuração `additional_result_filter` é usada com consultas UNION ou EXCEPT. [#101051](https://github.com/ClickHouse/ClickHouse/pull/101051) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige travamento do servidor (Logical error: Bad cast from ColumnVector to ColumnNullable) ao usar `* APPLY` com funções de agregação e `group_by_use_nulls=1` com GROUPING SETS, ROLLUP ou CUBE. [#101062](https://github.com/ClickHouse/ClickHouse/pull/101062) ([Groene AI](https://github.com/groeneai)).
* Corrige loop infinito quando `input_format_csv_skip_first_lines` ou `input_format_tsv_skip_first_lines` excede o número de linhas no arquivo. [#101111](https://github.com/ClickHouse/ClickHouse/pull/101111) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige acesso fora dos limites na otimização de materialização tardia que podia causar uma exceção em compilações de depuração. [#101144](https://github.com/ClickHouse/ClickHouse/pull/101144) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a inferência de tipos em CTEs recursivas: os tipos de coluna agora são ampliados iterativamente via `getLeastSupertype` entre os lados não recursivo e recursivo do `UNION ALL` até convergirem, evitando estouro de inteiro em expressões como `x + 1`. [#101155](https://github.com/ClickHouse/ClickHouse/pull/101155) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Limita as configurações de tamanho de bloco de compressão do MergeTree (max\_compress\_block\_size, min\_compress\_block\_size, marks\_compress\_block\_size, primary\_key\_compress\_block\_size) a 256 MiB para evitar travamento do servidor quando valores extremos são definidos via CREATE TABLE SETTINGS. [#101159](https://github.com/ClickHouse/ClickHouse/pull/101159) ([Groene AI](https://github.com/groeneai)).
* Corrige uma falha de LOGICAL\_ERROR em `QueryAnalyzer::resolve()` quando uma ROW POLICY usa uma subconsulta escalar na cláusula `USING` (por exemplo, `USING (SELECT 1)`). Fecha [#100695](https://github.com/ClickHouse/ClickHouse/issues/100695). [#101263](https://github.com/ClickHouse/ClickHouse/pull/101263) ([Groene AI](https://github.com/groeneai)).
* Corrige comportamento indefinido em `MergeTreeDataPartWriterCompact::cancel` quando a alocação de um stream falha. [#101292](https://github.com/ClickHouse/ClickHouse/pull/101292) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um caso em que o timezone não era incluído durante a atribuição na instrução ALTER. Fecha [#101328](https://github.com/ClickHouse/ClickHouse/issues/101328). Relacionado a [https://github.com/ClickHouse/ClickHouse/pull/100647](https://github.com/ClickHouse/ClickHouse/pull/100647). [#101403](https://github.com/ClickHouse/ClickHouse/pull/101403) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige uma falha do servidor (LOGICAL\_ERROR) em consultas INSERT SELECT com ORDER BY ALL quando o pipeline de SELECT produz múltiplos streams. [#101443](https://github.com/ClickHouse/ClickHouse/pull/101443) ([Groene AI](https://github.com/groeneai)).
* Corrige resultados incorretos de consulta causados pela reordenação de join, que empurrava um filtro de INNER JOIN (referenciando apenas o lado preservado de um outer join) para a cláusula ON do outer join. [#101504](https://github.com/ClickHouse/ClickHouse/pull/101504) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Evita aplicar lazy materialization a planos com arrayJoin, o que podia fazer com que o limite não fosse respeitado. Fecha [#101608](https://github.com/ClickHouse/ClickHouse/issues/101608). [#101644](https://github.com/ClickHouse/ClickHouse/pull/101644) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige resultados incorretos em consultas JOIN quando a otimização `mergeFilterIntoJoinCondition` descartava silenciosamente uma condição de igualdade na cláusula WHERE com tipos incompatíveis. [#101652](https://github.com/ClickHouse/ClickHouse/pull/101652) ([Xiaozhe Yu](https://github.com/wudidapaopao)).
* Corrige o não funcionamento da dica de teste `error` para erros de sintaxe/parsing — anteriormente, `-- { error SYNTAX_ERROR }` em uma consulta malformada falhava com "Expected server error" em vez de corresponder ao erro de parse no lado do cliente. [#101675](https://github.com/ClickHouse/ClickHouse/pull/101675) ([Groene AI](https://github.com/groeneai)).
* Corrige `INTO OUTFILE ... TRUNCATE`, que na prática não usava rename atômico — a gravação era feita diretamente no arquivo original em vez de em um arquivo temporário, então, em caso de falha da consulta, o conteúdo original era destruído. Agora, os dados são gravados em um arquivo temporário e renomeados apenas em caso de sucesso. [#101884](https://github.com/ClickHouse/ClickHouse/pull/101884) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrige uma exceção `Unsupported DeltaLake type: varchar(n)` ao ler tabelas Delta Lake cujo esquema contém tipos de coluna varchar(n) ou char(n). Esses tipos agora são mapeados para String, em conformidade com a forma como o protocolo Delta Lake os armazena como arrays simples de bytes em Parquet. [#101973](https://github.com/ClickHouse/ClickHouse/pull/101973) ([Flavio Malavazi](https://github.com/flaviomalavazi)).
* Corrige perda silenciosa de dados ao ler arquivos tar do S3 com `schema_inference_mode=union` e esquemas Parquet heterogêneos — o parquet metadata cache reutilizava incorretamente os metadados do primeiro arquivo para todos os arquivos subsequentes no arquivo tar. [#101990](https://github.com/ClickHouse/ClickHouse/pull/101990) ([Ahaan Limaye](https://github.com/ahaanlimaye)).
* Corrige uma falha do servidor (LOGICAL\_ERROR) ao executar ALTER TABLE UPDATE/DELETE em tabelas Iceberg quando nenhum SELECT ou INSERT anterior havia sido feito na tabela durante o mesmo ciclo de vida do servidor. [#102113](https://github.com/ClickHouse/ClickHouse/pull/102113) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um possível crash quando uma consulta ALTER é executada em tabelas de um banco de dados em memória (por exemplo, temporary tables). [#102360](https://github.com/ClickHouse/ClickHouse/pull/102360) ([Den Kalantaevskii](https://github.com/Diskein)).
* Corrige o `formatQuery`, que produzia grants duplicados como `GRANT FILE ON *.*, FILE ON *.* TO x` em vez de `GRANT FILE ON *.* TO x`, ao formatar grants READ/WRITE retrocompatíveis na mesma source. [#102411](https://github.com/ClickHouse/ClickHouse/pull/102411) ([Groene AI](https://github.com/groeneai)).
* Corrige perda de paralelismo na aggregation após consultas read-in-order quando `max_streams_to_max_threads_ratio` é maior que 1. [#102467](https://github.com/ClickHouse/ClickHouse/pull/102467) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um crash (`LOGICAL_ERROR: Unknown virtual column`) ao selecionar subcolumns (como `.null` para Nullable, `.size0` para Array, elementos de Tuple ou chaves/valores de map) de uma Buffer table engine. [#102470](https://github.com/ClickHouse/ClickHouse/pull/102470) ([Groene AI](https://github.com/groeneai)).
* Corrige a Exception "Cannot fold actions for projection" na otimização de reordenação de join quando um LEFT/RIGHT JOIN com `join_use_nulls` é combinado com outras junções envolvendo mais de duas tabelas. [#102516](https://github.com/ClickHouse/ClickHouse/pull/102516) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige overflow silencioso em operações escalares pointwise em numericIndexedVector (por exemplo, `numericIndexedVectorPointwiseAdd`) quando o escalar está fora do intervalo. Essas entradas agora geram `INCORRECT_DATA` em vez de retornar valores corrompidos. [#102546](https://github.com/ClickHouse/ClickHouse/pull/102546) ([FriendLey](https://github.com/FriendLey)).
* Corrige formatação inconsistente de AST para INSERT com SAMPLE e OFFSET no nível da consulta. Fecha [#102523](https://github.com/ClickHouse/ClickHouse/issues/102523). [#102547](https://github.com/ClickHouse/ClickHouse/pull/102547) ([zoomxi](https://github.com/zoomxi)).
* Corrige a Exception `LOGICAL_ERROR` em `groupConcat` ao desserializar um estado malformado de aggregate function. [#102558](https://github.com/ClickHouse/ClickHouse/pull/102558) ([Christoph Wurm](https://github.com/cwurm)).
* Agora, não aceitamos conteúdo inválido no final de valores CSV de Time64 com `input_format_csv_use_default_on_bad_values=0`. Fecha [#102490](https://github.com/ClickHouse/ClickHouse/issues/102490). [#102596](https://github.com/ClickHouse/ClickHouse/pull/102596) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige a Exception UNKNOWN\_ELEMENT\_OF\_ENUM ao inserir default value em JSON column com paths tipados como Enum. Fecha [#102359](https://github.com/ClickHouse/ClickHouse/issues/102359). [#102687](https://github.com/ClickHouse/ClickHouse/pull/102687) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige corrupção de columns\_substreams.txt durante a renomeação de coluna em alguns casos. Fecha [#102259](https://github.com/ClickHouse/ClickHouse/issues/102259). [#102689](https://github.com/ClickHouse/ClickHouse/pull/102689) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige a inserção no Data type Time durante o parsing de JSON. Fecha [#102016](https://github.com/ClickHouse/ClickHouse/issues/102016). [#102690](https://github.com/ClickHouse/ClickHouse/pull/102690) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige a codificação hexadecimal de content sample em nomes de arquivo de schema em cache. Fecha [#101904](https://github.com/ClickHouse/ClickHouse/issues/101904). [#102703](https://github.com/ClickHouse/ClickHouse/pull/102703) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrigida uma violação da ordem de classificação (falha em debug, corrupção silenciosa de dados em release) durante o merge de `SummingMergeTree` quando a chave `ORDER BY` é uma expressão hash sobre uma coluna `Float32` contendo valores NaN de sinalização. [#102791](https://github.com/ClickHouse/ClickHouse/pull/102791) ([Groene AI](https://github.com/groeneai)).
* Tornados canceláveis via `KILL QUERY` o `DETACH DATABASE ... SYNC` e outras operações que chamam `waitDetachedTableNotInUse`, além de passarem a responder ao desligamento do servidor, evitando travamentos indefinidos quando uma consulta concorrente mantém uma referência à tabela. [#102804](https://github.com/ClickHouse/ClickHouse/pull/102804) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigido um possível resultado incorreto de `ANY RIGHT JOIN`. [#102893](https://github.com/ClickHouse/ClickHouse/pull/102893) ([Nikita Taranov](https://github.com/nickitat)).
* Corrigidas falhas em requisições S3 com `ios_base::clear: unspecified iostream_category error` em vez de serem repetidas, causadas pelo fato de `BufferedStreamBuf::flushBuffer` do Poco não tratar escritas curtas da camada de socket. [#102894](https://github.com/ClickHouse/ClickHouse/pull/102894) ([Sema Checherinda](https://github.com/CheSema)).
* Corrigida a falha da table function `input('auto')` pela interface HTTP em consultas INSERT SELECT. [#102902](https://github.com/ClickHouse/ClickHouse/pull/102902) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Desabilitada a otimização trivial de LIMIT com row policies/additional\_table\_filters (para permitir análise paralela de índice). [#102921](https://github.com/ClickHouse/ClickHouse/pull/102921) ([Azat Khuzhin](https://github.com/azat)).
* Oculta a chave secreta na função SQL `HMAC`. Corrige [#102927](https://github.com/ClickHouse/ClickHouse/issues/102927). [#102997](https://github.com/ClickHouse/ClickHouse/pull/102997) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Corrigida a exceção `MULTIPLE_EXPRESSIONS_FOR_ALIAS` gerada em consultas distribuídas que referenciam a mesma chamada `quantile` várias vezes (por exemplo, em `SELECT`, `HAVING` e `ORDER BY`) com `optimize_syntax_fuse_functions` habilitado. [#103014](https://github.com/ClickHouse/ClickHouse/pull/103014) ([tanner-bruce](https://github.com/tanner-bruce)).
* Corrige um caso encontrado pela CI em que um set ainda não pronto era passado quando o filtro depende da coluna do lado esquerdo. Fecha [#102966](https://github.com/ClickHouse/ClickHouse/issues/102966). [#103029](https://github.com/ClickHouse/ClickHouse/pull/103029) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige castOrNull para JSON em alguns casos. Fecha [#101818](https://github.com/ClickHouse/ClickHouse/issues/101818). [#103036](https://github.com/ClickHouse/ClickHouse/pull/103036) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige `SELECT DISTINCT` retornando silenciosamente resultados incompletos quando uma projeção agregada correspondia à consulta e algumas partes da tabela não tinham dados de projeção (por exemplo, a projeção foi adicionada a uma tabela que já continha dados, e `MATERIALIZE PROJECTION` não foi executado). Fecha [#102951](https://github.com/ClickHouse/ClickHouse/issues/102951). [#103052](https://github.com/ClickHouse/ClickHouse/pull/103052) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige a exceção `TOO_FEW_ARGUMENTS_FOR_FUNCTION` quando um predicado `WHERE`, como `AND(OR(A, A), A)`, colapsa para um único argumento de nível superior durante a extração de expressões comuns no analyzer. [#103072](https://github.com/ClickHouse/ClickHouse/pull/103072) ([Peng](https://github.com/fastio)).
* Corrige um erro lógico `Function writeSlice expects same column types for GenericArraySlice and GenericArraySink` gerado ao avaliar `if`/`ifNull` sobre tuples, maps ou arrays contendo um elemento `QBit`. `ColumnQBit::structureEquals` comparava incorretamente a tuple interna de uma coluna `QBit` com o encapsulamento externo da outra, fazendo com que colunas `QBit` estruturalmente idênticas fossem consideradas diferentes. [#103084](https://github.com/ClickHouse/ClickHouse/pull/103084) ([Groene AI](https://github.com/groeneai)).
* Faz com que `DETACH DATABASE` com `database_atomic_wait_for_drop_and_detach_synchronously` respeite `KILL QUERY`, em vez de ficar travado indefinidamente quando houver uma referência de tabela em uso. [#103095](https://github.com/ClickHouse/ClickHouse/pull/103095) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige segfault ao excluir um módulo WASM usando um predicado que não seja um identificador (por exemplo, `WHERE 1=1`). [#103101](https://github.com/ClickHouse/ClickHouse/pull/103101) ([Joe Redfern](https://github.com/JosephRedfern)).
* Corrige uma regressão de compatibilidade com versões anteriores, em que clientes antigos falham com `UNEXPECTED_PACKET_FROM_SERVER` ao inserir em um servidor mais recente via `remote()` ou tabelas distribuídas, causada por `sendProgress` incondicional no fim de `processInsertQuery`. [#103148](https://github.com/ClickHouse/ClickHouse/pull/103148) ([Sema Checherinda](https://github.com/CheSema)).
* IN com segundo argumento tuple não constante não deve aplicar CAST aos elementos da tuple para o tipo do lado esquerdo, pois isso pode causar overflow. Fecha [#103055](https://github.com/ClickHouse/ClickHouse/issues/103055). [#103169](https://github.com/ClickHouse/ClickHouse/pull/103169) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige o uso de valor não inicializado em uma função do protocolo. [#103187](https://github.com/ClickHouse/ClickHouse/pull/103187) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige `LOGICAL_ERROR` (`Bad cast … to ColumnLowCardinality`) durante a análise de índice do MergeTree quando uma cláusula `WHERE` compara uma coluna-chave `LowCardinality` com uma constante convertida para um tipo que contém `LowCardinality` aninhado (por exemplo, `Variant(LowCardinality(Date), String)`). [#103211](https://github.com/ClickHouse/ClickHouse/pull/103211) ([Groene AI](https://github.com/groeneai)).
* Corrige `Logical error: 'index < bucket_count'` na família de funções de agregação `timeSeries*ToGrid` (por exemplo, `timeSeriesResampleToGridWithStaleness`, `timeSeriesChangesToGrid`, `timeSeriesResetsToGrid`, `timeSeriesRateToGrid`) quando chamada com parâmetros de timestamp extremos que causariam overflow na aritmética com sinal de 64 bits no cálculo da contagem de buckets. Também limita o número total de buckets da grade a 16 milhões para evitar alocação acidental de muita memória por entradas maliciosas. [#103223](https://github.com/ClickHouse/ClickHouse/pull/103223) ([Groene AI](https://github.com/groeneai)).
* Corrige a exceção `Logical error: 'Port is already connected'` durante a expansão do pipeline no caminho lazy de `FINAL` para `ReplacingMergeTree`. O bug afetava consultas com `query_plan_optimize_lazy_final = 1` quando `ReadFromMergeTree::initializePipeline` inseria transformações internas (por exemplo, um `Resize`) que interligavam os processors do sub-pipeline, fazendo com que `LazyUnorderedReadFromMergeTreeSource::expandPipeline` tentasse conectar portas de saída que já estavam conectadas. [#103230](https://github.com/ClickHouse/ClickHouse/pull/103230) ([Groene AI](https://github.com/groeneai)).
* Corrige resultados incorretos de `LIMIT BY` e `DISTINCT` quando a entrada é um `UNION ALL` de subconsultas ordenadas. O otimizador do plano de consulta tratava incorretamente essa união como globalmente ordenada, fazendo com que linhas extras fossem retornadas. [#103231](https://github.com/ClickHouse/ClickHouse/pull/103231) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige possível falha durante o cálculo de estatísticas no tipo Map com replicação lazy. Fecha [#102390](https://github.com/ClickHouse/ClickHouse/issues/102390). [#103273](https://github.com/ClickHouse/ClickHouse/pull/103273) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige uma condição de corrida em fontes de Dicionário ClickHouse, MySQL, PostgreSQL e XDBC, em que `clone() const` lê e `isModified() const` grava na mesma string `invalidate_query_response`. [#103277](https://github.com/ClickHouse/ClickHouse/pull/103277) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrige a detecção incorreta de monotonicidade para `Date32`. Fecha [#101265](https://github.com/ClickHouse/ClickHouse/issues/101265). [#103283](https://github.com/ClickHouse/ClickHouse/pull/103283) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Limita as strings do pacote TCP Hello de pré-autenticação a 64 KB e adiciona a configuração do servidor `handshake_timeout_milliseconds` para limitar o tempo total de handshake, evitando que clientes não autenticados consumam memória em excesso ou mantenham threads ocupadas indefinidamente. [#103284](https://github.com/ClickHouse/ClickHouse/pull/103284) ([Sema Checherinda](https://github.com/CheSema)).
* Corrige `min&#95;value &gt; max&#95;value` nas estatísticas de Parquet ColumnIndex para colunas String. [#103334](https://github.com/ClickHouse/ClickHouse/pull/103334) ([Saurabh Kumar Ojha](https://github.com/saurabhojha)).
* Corrige o tratamento incorreto de linhas NULL para entradas `Nullable(Tuple(...))` em `flattenTuple` e `tupleToNameValuePairs`. `flattenTuple` agora preserva o mapa de null externo para que linhas NULL continuem NULL. `tupleToNameValuePairs` agora altera o tipo de valor do resultado para `Nullable(T)` quando possível, se a entrada for `Nullable(Tuple(...))`, para que linhas NULL produzam `[('a', NULL), ('b', NULL)]` em vez de `[('a', 0), ('b', 0)]`. Quando o element type não pode ser encapsulado em `Nullable` (por exemplo, `Array`), são usados valores padrão em vez de NULL. Fecha [#103312](https://github.com/ClickHouse/ClickHouse/issues/103312). [#103383](https://github.com/ClickHouse/ClickHouse/pull/103383) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Verifica dados Dynamic flattened malformados no Native format. [#103392](https://github.com/ClickHouse/ClickHouse/pull/103392) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige RPC obsoleto que causava paralisação da replicação após a sincronização do snapshot. [#103406](https://github.com/ClickHouse/ClickHouse/pull/103406) ([Seva Potapov](https://github.com/seva-potapov)).
* Corrige um `LOGICAL_ERROR` "Cannot pop N rows from X" que abortava o servidor (em compilações de debug / sanitizer) ao ler um documento BSON malformado contendo um valor cujo tipo BSON é incompatível com o tipo da coluna de destino dentro de uma coluna `Nullable(T)` ou `Array(Nullable(T))`. A linha malformada agora produz uma exceção `ILLEGAL_COLUMN` limpa, como pretendido. [#103418](https://github.com/ClickHouse/ClickHouse/pull/103418) ([Groene AI](https://github.com/groeneai)).
* Corrige um encerramento abrupto do servidor em `arrayFill` e `arrayReverseFill` quando aplicados a uma coluna `Array(String)` cuja primeira linha está vazia, junto com uma lambda sempre falsa. O loop de agregação / subarray causava underflow de um índice `size_t` para `SIZE_MAX`, o que então causava uma leitura fora dos limites dentro de `ColumnString::doInsertManyFrom`. É a mesma família de bugs de [#12263](https://github.com/ClickHouse/ClickHouse/issues/12263). [#103424](https://github.com/ClickHouse/ClickHouse/pull/103424) ([Groene AI](https://github.com/groeneai)).
* Corrige ACCESS\_DENIED / UNKNOWN\_TABLE em APPEND RMVs downstream com SQL SECURITY DEFINER quando o EXCHANGE de um REPLACE RMV upstream alterna a identidade do armazenamento de destino no meio da resolução. [#103427](https://github.com/ClickHouse/ClickHouse/pull/103427) ([Alexander Gololobov](https://github.com/davenger)).
* Preenche a coluna `_time` a partir da table function `url`. [#103437](https://github.com/ClickHouse/ClickHouse/pull/103437) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige uma possível leitura fora dos limites no caminho de descompressão do codec `ALP` ao processar uma entrada malformada com largura de bits inválida. [#103457](https://github.com/ClickHouse/ClickHouse/pull/103457) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Corrige um bug em que `SYSTEM SYNC FILESYSTEM CACHE '<name>' ON CLUSTER ...` podia perder o nome do cache ao formatar a consulta, fazendo com que nós remotos sincronizassem todos os caches do sistema de arquivos em vez de apenas o cache solicitado. [#103469](https://github.com/ClickHouse/ClickHouse/pull/103469) ([Asish Kumar](https://github.com/officialasishkumar)).
* Corrige o processamento de caminho codificado em URL em `deltaLakeAzure`. Fecha [#103509](https://github.com/ClickHouse/ClickHouse/issues/103509). [#103525](https://github.com/ClickHouse/ClickHouse/pull/103525) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Corrige um heap-use-after-free ao multiplicar um estado `AggregateFunction` por um inteiro (por exemplo, `quantilesExactState(...) * N`). O loop de exponenciação por quadratura mesclava o estado com ele mesmo, o que é indefinido quando o `merge` da função de agregação realoca seu armazenamento interno. Fecha STID 0988-40af. [#103536](https://github.com/ClickHouse/ClickHouse/pull/103536) ([Groene AI](https://github.com/groeneai)).
* Corrige um raro `LOGICAL_ERROR` "Part X intersects previous part Y" gerado durante a inicialização de uma tabela `ReplicatedMergeTree`, quando duas partes vazias inesperadas em disco tinham intervalos de blocos sobrepostos, mas sem inclusão entre si. A exceção interrompia a thread de anexação da tabela e impedia que ela fosse iniciada. [#103537](https://github.com/ClickHouse/ClickHouse/pull/103537) ([Groene AI](https://github.com/groeneai)).
* Corrige `Logical error: Incorrect mark rows for part ...` (asserção apenas de depuração) que era acionado por mutações em tabelas `MergeTree` com granularidade de índice não adaptativa (`index_granularity_bytes = 0`) cuja última marca de dados estava incompleta (reproduzido com mais confiabilidade via `DETACH`/`ATTACH`, seguido de um `DELETE` leve). [#103538](https://github.com/ClickHouse/ClickHouse/pull/103538) ([Groene AI](https://github.com/groeneai)).
* Corrige o `clickhouse-local`, que retornava 0 linhas silenciosamente ao ler pseudoarquivos em `/proc` e `/sys` por meio da função de tabela `file()` (por exemplo, `SELECT * FROM file('/proc/cpuinfo', 'RawBLOB')`). [#103548](https://github.com/ClickHouse/ClickHouse/pull/103548) ([Ashrith Bandla](https://github.com/ashrithb)).
* Corrige o tratamento do argumento `max_string_length` para o engine de tabela `GenerateRandom`. [#103550](https://github.com/ClickHouse/ClickHouse/pull/103550) ([Alex Kuleshov](https://github.com/0xAX)).
* Corrige o mascaramento de credenciais aninhadas em logs. [#103552](https://github.com/ClickHouse/ClickHouse/pull/103552) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige a detecção de SVE que usava instruções SVE quando elas não estavam disponíveis. [#103568](https://github.com/ClickHouse/ClickHouse/pull/103568) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige a análise dos argumentos de armazenamento de `GenerateRandom`. [#103574](https://github.com/ClickHouse/ClickHouse/pull/103574) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige um loop infinito em `WITH FILL` para dados que começam com ±inf. [#103580](https://github.com/ClickHouse/ClickHouse/pull/103580) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige o `JSONExtract` em um tipo `Variant`, que truncava silenciosamente números JSON fracionários. Antes, `JSONExtract('{"x": 3.14}', 'x', 'Variant(Int64, Float64)')` retornava `Int64=3` e `JSONExtract('{"x": 3.14}', 'x', 'Variant(String, Int64)')` retornava `Int64=3`, descartando a parte fracionária. O valor fracionário agora é preservado sem perda: um membro `Float64`/`Decimal` o assume quando presente; caso contrário, um membro `String` captura o JSON original. Tipos `Variant` contendo apenas membros inteiros (por exemplo, `Variant(Int64, Int32)`) e a extração direta para inteiro (`JSONExtract(json, 'Int64')`, `JSONExtractInt`, etc.) permanecem inalterados. [#103620](https://github.com/ClickHouse/ClickHouse/pull/103620) ([Groene AI](https://github.com/groeneai)).
* Corrige `SYSTEM INSTRUMENT REMOVE` sem argumentos, que produzia `std::bad_optional_access` (código de erro 1001) em vez de `SYNTAX_ERROR` (código de erro 62). [#103622](https://github.com/ClickHouse/ClickHouse/pull/103622) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrige erro lógico / comportamento indefinido em `windowID` e na window view `tumble` quando chamados com uma string de timezone como 3º argumento. [#103641](https://github.com/ClickHouse/ClickHouse/pull/103641) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O logging do cliente S3 agora trata respostas HTTP 400 que incluem um header `x-amz-bucket-region` não vazio (região de assinatura SigV4 incorreta) como um caso informativo de região incorreta, com uma linha de log mais clara, em vez do caminho genérico com estilo de erro. O provider de credentials de identidade web do STS é adicionado à cadeia de credentials do S3 apenas quando a identidade web está configurada, o que reduz avisos espúrios em implantações que não a utilizam. Fecha [#99140](https://github.com/ClickHouse/ClickHouse/issues/99140). [#103673](https://github.com/ClickHouse/ClickHouse/pull/103673) ([MeltonSmith](https://github.com/MeltonSmith)).
* Corrige `SYSTEM SYNC REPLICA <db>.<tbl> IF EXISTS` para ter êxito silenciosamente quando o database não existe, em linha com o comportamento já existente para uma table ausente e com o precedente definido por `DROP TABLE IF EXISTS`. Antes, a consulta gerava `UNKNOWN_DATABASE` apesar de `IF EXISTS`. Fecha [#103629](https://github.com/ClickHouse/ClickHouse/issues/103629). [#103689](https://github.com/ClickHouse/ClickHouse/pull/103689) ([Groene AI](https://github.com/groeneai)).
* Corrige o logical error `Arguments of 'plus' have incorrect data types` gerado por `FunctionBinaryArithmetic::executeImpl2` quando uma table `MergeTree` tinha `Array(LowCardinality(...))` na chave de ordenação e uma cláusula `WHERE` usava `plus` / `minus` entre essa coluna e uma constante `Array` de outro tipo de elemento. `KeyCondition::getMonotonicityForRange` agora remove `LowCardinality` recursivamente antes de invocar o dispatch numérico interno. [#103701](https://github.com/ClickHouse/ClickHouse/pull/103701) ([Groene AI](https://github.com/groeneai)).
* Corrige uma condição de corrida no redimensionamento dinâmico de cache na 26.1+. [#103702](https://github.com/ClickHouse/ClickHouse/pull/103702) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigido um problema em que índices de omissão de texto e `bloom_filter` em colunas `ALIAS` cuja expressão continha um lambda com constantes capturadas (por exemplo, `arrayMap((k, v) -> concat(k, '=', v), mapKeys(m), mapValues(m)))`) eram ignorados silenciosamente. [#103708](https://github.com/ClickHouse/ClickHouse/pull/103708) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige `position` e `positionCaseInsensitive` quando `start_pos` está próximo de `UINT64_MAX`, o que fazia a execução travar ou causar falha de segmentação devido a overflow na aritmética de ponteiros. [#103766](https://github.com/ClickHouse/ClickHouse/pull/103766) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige comportamento indefinido ao fazer parsing de `dateTime` com uma parte fracionária duplicada. [#103773](https://github.com/ClickHouse/ClickHouse/pull/103773) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrigida uma regressão de integridade de dados na versão 26.x em que `if` e `multiIf` compilados com JIT, com tipo de resultado `Decimal` e um literal não `Decimal` (inteiro ou de ponto flutuante) em um dos ramos, retornavam silenciosamente um valor `10^scale` menor do que o correto. O caminho lento (sem JIT) não era afetado. Solução alternativa nas versões afetadas: `SET compile_expressions = 0`. [#103809](https://github.com/ClickHouse/ClickHouse/pull/103809) ([Groene AI](https://github.com/groeneai)).
* Corrige o encaminhamento do tokenizer do índice de texto para as funções compatíveis. [#103826](https://github.com/ClickHouse/ClickHouse/pull/103826) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Corrige resultados incorretos de `numbers`, `generate_series` e fontes semelhantes que respeitam intervalos quando a cláusula `WHERE` usa `IN` ou `NOT IN` sobre uma tupla cujos elementos são deduplicados em uma única coluna-chave (por exemplo, `WHERE tuple(number, number) NOT IN (tuple(1, 2))`). Fecha [#103660](https://github.com/ClickHouse/ClickHouse/issues/103660). [#103835](https://github.com/ClickHouse/ClickHouse/pull/103835) ([Groene AI](https://github.com/groeneai)).
* Mantém o pico real de uso de memória do hash join com spilling automático abaixo de `max_bytes_before_external_join`. Antes, a pré-alocação orientada por estatísticas, a duplicação in-place da tabela hash e os buckets ilimitados em memória do `GraceHashJoin` podiam, cada um, fazer a consulta ultrapassar o limite configurado e acionar `MEMORY_LIMIT_EXCEEDED`. [#103838](https://github.com/ClickHouse/ClickHouse/pull/103838) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um travamento no encerramento do `clickhouse-local` quando logs do sistema (como `text_log` ou `filesystem_cache_log`) estão configurados. `SystemLogs::flushImpl` chamava `BaseDaemon::instance().flushTextLogs()`, que lança `std::bad_cast` fora do `clickhouse-server` e deixava as threads de gravação em execução até que `pthread_cond_destroy` bloqueasse a destruição das filas de log do sistema. [#103874](https://github.com/ClickHouse/ClickHouse/pull/103874) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Rejeita consultas CTE `MATERIALIZED` cujo corpo resulta em tipos de coluna inferidos diferentes em referências distintas, com um erro `TYPE_MISMATCH` claro, em vez de provocar uma falha no servidor com um `Bad cast` `LOGICAL_ERROR`. Isso acontecia anteriormente quando o corpo da CTE referenciava identificadores de um escopo externo (por exemplo, um alias da projeção da subconsulta chamadora) que eram inlineados como constantes diferentes para cada referência. [#103879](https://github.com/ClickHouse/ClickHouse/pull/103879) ([Groene AI](https://github.com/groeneai)).
* Corrige o uso de um valor não inicializado nos otimizadores de plano de consulta de conversão de JOIN (`tryConvertAnyOuterJoinToInnerJoin`, `tryConvertAnyJoinToSemiOrAntiJoin`) quando o filtro acima de um `ANY` `OUTER` `JOIN` contém uma função não determinística, como `rand`, `now` ou `rowNumberInAllBlocks`. O otimizador não tenta mais fazer constant folding desses filtros e deixa o JOIN inalterado, o que também evita conversões incorretas para `INNER`/`SEMI`/`ANTI JOIN` que poderiam descartar linhas silenciosamente. [#103880](https://github.com/ClickHouse/ClickHouse/pull/103880) ([Groene AI](https://github.com/groeneai)).
* Corrige um use-after-free em `StorageKafka2` que poderia causar falha no servidor quando uma sessão do Keeper é substituída enquanto o consumer mantém bloqueios efêmeros de tópico-partição. [#103890](https://github.com/ClickHouse/ClickHouse/pull/103890) ([Groene AI](https://github.com/groeneai)).
* Corrigido um `LOGICAL_ERROR` "Primary key type mismatch" lançado ao fazer join de uma tabela `EmbeddedRocksDB` via `JOIN ... USING (key)` com uma subconsulta cuja coluna-chave tem um tipo diferente (por exemplo, `Nullable(UInt64)`, `Int64`, `Decimal`) da chave primária do armazenamento. O planner agora recusa `DirectKeyValueJoin` em caso de incompatibilidade de tipos e recorre a `HashJoin`, que lida com a conversão de tipos. [#103928](https://github.com/ClickHouse/ClickHouse/pull/103928) ([Groene AI](https://github.com/groeneai)).
* `SET max_threads = DEFAULT` (e o mesmo para `max_final_threads` e `max_parsing_threads`) não perde mais o estado automático. Antes, após redefinir uma dessas configurações, `system.settings` mostrava a contagem de núcleos resolvida (por exemplo, `32`) em vez de `'auto(32)'`, e o servidor se comportava como se o valor tivesse sido definido explicitamente. [#103991](https://github.com/ClickHouse/ClickHouse/pull/103991) ([Groene AI](https://github.com/groeneai)).
* Corrige `SIZES_OF_ARRAYS_DONT_MATCH` ao ler colunas `AggregateFunction(topK(N), String)` cujo `alpha_size` persistido havia sido aumentado por um ciclo de deserialize+serialize anterior à versão 25.12. [#104002](https://github.com/ClickHouse/ClickHouse/pull/104002) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigida uma vulnerabilidade de injeção de SQL em fontes de dicionário PostgreSQL, Cassandra e XDBC: chaves de string contendo aspas simples eram escapadas com `\'` (barra invertida), que esses backends tratam como uma barra invertida literal em vez de uma sequência de escape, permitindo a injeção de SQL arbitrário em consultas de lookup de dicionário. `ExternalQueryBuilder` agora gera o escape padrão SQL `''` para esses backends; fontes de dicionário ClickHouse e MySQL continuam usando escape com barra invertida. [#104009](https://github.com/ClickHouse/ClickHouse/pull/104009) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Corrigida uma possível incompatibilidade de tipo na agregação quando o tipo de uma coluna era alterado para/de LowCardinality, e a projeção min-max não era reconstruída. [#104013](https://github.com/ClickHouse/ClickHouse/pull/104013) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige um loop infinito de otimizações de consulta causado pela não propagação da prevenção de remoção de colunas não utilizadas ao mesclar expressões. [#104083](https://github.com/ClickHouse/ClickHouse/pull/104083) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige `LOGICAL_ERROR` em `StreamingStorageRegistry::renameTable` ao renomear em lote tabelas de streaming (S3Queue, Kafka, RabbitMQ) usando rastreamento de identidade baseado em UUID em vez de nome. [#104101](https://github.com/ClickHouse/ClickHouse/pull/104101) ([Nikita Taranov](https://github.com/nickitat)).
* Corrigidos resultados incorretos quando uma CTE construída com `UNION ALL` continha um ramo `SELECT DISTINCT` e a consulta externa projetava apenas um subconjunto das colunas da CTE. O `RemoveUnusedProjectionColumnsPass` do novo analyzer estava removendo incorretamente a coluna não referenciada da projeção interna `DISTINCT`, fazendo com que linhas que deveriam permanecer distintas (mesmo valor na coluna projetada, mas valor diferente na coluna removida) colapsassem em uma só. [#104114](https://github.com/ClickHouse/ClickHouse/pull/104114) ([Groene AI](https://github.com/groeneai)).
* Corrige vários problemas de corretude em casos extremos na configuração `optimize_inverse_dictionary_lookup`, em que a otimização podia descartar linhas silenciosamente ou suprimir exceções. Fecha [#103270](https://github.com/ClickHouse/ClickHouse/issues/103270). Fecha [#103085](https://github.com/ClickHouse/ClickHouse/issues/103085). [#104133](https://github.com/ClickHouse/ClickHouse/pull/104133) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige escrita fora dos limites ao desserializar o estado `quantileTiming`. [#104141](https://github.com/ClickHouse/ClickHouse/pull/104141) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige comportamento indefinido quando um valor `Float64` fora do intervalo é convertido para um tipo inteiro amplo (`UInt64`, `Int64`, `Int128`, `UInt128`, `Int256`, `UInt256`). Antes, valores iguais a `Float64(numeric_limits<T>::max())` (que são arredondados para cima, para um valor acima do máximo real) contornavam a verificação de limites e produziam UB no cast subsequente. Isso afetava o parsing de parâmetros de funções de agregação (`topK`, `histogram`, `uniqUpTo`, `groupArrayInsertAt`, etc.) e configurações tipadas como inteiros via `SET <setting> = <Float64>`. Fecha [#103817](https://github.com/ClickHouse/ClickHouse/issues/103817). [#104154](https://github.com/ClickHouse/ClickHouse/pull/104154) ([Groene AI](https://github.com/groeneai)).
* Corrige a exceção `LOGICAL_ERROR` "Unexpected return type from comparison. Expected `UInt8`. Got `Const(Nullable(UInt8))`" ao comparar um `Tuple(Tuple(Nullable(...)))` aninhado (ou com aninhamento ainda mais profundo) com um literal `String`. O tipo de retorno da comparação agora é inferido corretamente como `Nullable(UInt8)`, em conformidade com o comportamento em tempo de execução. [#104171](https://github.com/ClickHouse/ClickHouse/pull/104171) ([Groene AI](https://github.com/groeneai)).
* Corrige um abort do servidor (`UndefinedBehaviorSanitizer: reference binding to null pointer`, segfault em builds de lançamento) em `SELECT ... FROM <ReplacingMergeTree(version, is_deleted)> FINAL PREWHERE is_deleted = <expr> AND <other column expr>` quando `query_plan_optimize_lazy_final = 1`. A etapa de leitura lazy-FINAL sem interseção perdeu a coluna `is_deleted` do cabeçalho de saída porque o PREWHERE a consumiu como entrada sem reexpô-la na saída. A etapa subsequente `addIsDeletedFilter` então desreferenciava um ponteiro nulo `ActionsDAG::Node`. [#104177](https://github.com/ClickHouse/ClickHouse/pull/104177) ([Groene AI](https://github.com/groeneai)).
* Ao chamar a tabela system.failpoints, era usado um failpoint, o que podia desativá-lo. [#104237](https://github.com/ClickHouse/ClickHouse/pull/104237) ([Pedro Ferreira](https://github.com/PedroTadim)).
* Corrige `MemorySanitizer: use-of-uninitialized-value` nas funções `detectLanguage*` quando a entrada contém um caractere UTF-8 terminando exatamente no limite do buffer. [#104257](https://github.com/ClickHouse/ClickHouse/pull/104257) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige um erro lógico (`Bad cast from type DB::CachedObjectStorage to DB::S3ObjectStorage`) que abortava o parsing dos argumentos de table functions e motores de data lake (`icebergS3`, `deltaLakeS3`, etc.) quando chamados com `SETTINGS disk = '...'` em um disk cujo armazenamento de objetos subjacente é encapsulado por um decorador, como um cache de sistema de arquivos. Fecha [#89300](https://github.com/ClickHouse/ClickHouse/issues/89300). [#104258](https://github.com/ClickHouse/ClickHouse/pull/104258) ([Groene AI](https://github.com/groeneai)).
* Corrige o parsing de expressões de subscrito entre parênteses em colunas chamadas `values`, por exemplo `(values['a'])`, para que não sejam mais interpretadas como expressões de tabela `VALUES` padrão SQL. [#104312](https://github.com/ClickHouse/ClickHouse/pull/104312) ([Desel72](https://github.com/Desel72)).
* Corrige um abort do servidor/`LOGICAL_ERROR` na thread de eviction em background do cache de sistema de arquivos (`SLRUFileCachePriority::collectEvictionInfo`) que podia ser disparado quando `keep_free_space_size_ratio` ou `keep_free_space_elements_ratio` era alto o bastante para acionar a eviction enquanto todas as entradas de cache já haviam sido promovidas para a protected queue do SLRU (fila probationária vazia). [#104313](https://github.com/ClickHouse/ClickHouse/pull/104313) ([Groene AI](https://github.com/groeneai)).
* Corrige exceções (`NOT_FOUND_COLUMN_IN_BLOCK`, `LOGICAL_ERROR`, `AMBIGUOUS_COLUMN_NAME`) ao usar projeções com views `UNION ALL`, window functions ou colisões de nome entre alias e coluna. Regressão de [#88798](https://github.com/ClickHouse/ClickHouse/issues/88798). [#104317](https://github.com/ClickHouse/ClickHouse/pull/104317) ([Amos Bird](https://github.com/amosbird)).
* Corrige um possível underflow no parsing de arrays do Postgres. [#104322](https://github.com/ClickHouse/ClickHouse/pull/104322) ([Grant Holly](https://github.com/grantholly-clickhouse)).
* Funções que retornam um tipo não `Nullable` (como `Array`, `Tuple` ou `Map`) agora aceitam argumentos `Nullable`. As funções afetadas incluem `extractAll`, `extractAllGroups`, `extractAllGroupsHorizontal`, `extractAllGroupsVertical`, `extractGroups`, `splitByChar`, `splitByString`, `splitByRegexp`, `splitByWhitespace`, `splitByNonAlpha` e `alphaTokens`. Linhas de entrada com `NULL` produzem o valor padrão do tipo de resultado (por exemplo, um array vazio) em vez de gerar "Nested type is not allowed inside Nullable type". [#104326](https://github.com/ClickHouse/ClickHouse/pull/104326) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige estatísticas do Iceberg em tabela particionada. Isso fecha [#104321](https://github.com/ClickHouse/ClickHouse/issues/104321). [#104329](https://github.com/ClickHouse/ClickHouse/pull/104329) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrige um logical error fatal na inicialização do servidor no macOS (e em compilações semelhantes com jemalloc), em que `Jemalloc::verifySetup` relatava incorretamente uma incompatibilidade em `jemalloc_enable_background_threads` porque os mallctls opcionais `background_thread` / `max_background_threads` não existem; a verificação é ignorada quando esses mallctls não estão disponíveis, e `getValue` não deixa mais a saída sem inicialização em caso de falha. Fecha [#102183](https://github.com/ClickHouse/ClickHouse/issues/102183). [#104330](https://github.com/ClickHouse/ClickHouse/pull/104330) ([SAYON DEEP](https://github.com/sayondeep)).
* Corrige uma regressão de corretude em que consultas `SELECT` com `max_rows_to_read_leaf` e `read_overflow_mode_leaf = 'throw'` podiam lançar `TOO_MANY_ROWS` incorretamente, mesmo quando um skip index reduziria a leitura para abaixo do limite do leaf. As configurações simétricas fora de leaf (`max_rows_to_read` / `read_overflow_mode`) já eram tratadas. [#104331](https://github.com/ClickHouse/ClickHouse/pull/104331) ([Groene AI](https://github.com/groeneai)).
* `toUUID`, `toUUIDOrNull`, `toUUIDOrZero`, `toUUIDOrDefault`, `CAST` para `UUID` e `Nullable(UUID)`, `accurateCastOrNull` para `UUID`, e os formatos de entrada que fazem parse de UUID a partir de texto (`Avro`, `MsgPack`, `JSONExtract`, ...) agora rejeitam strings com o comprimento correto, mas que contêm caracteres não hexadecimais. Antes, essas entradas eram silenciosamente convertidas em um UUID fabricado ao ultrapassar o fim da tabela de busca de dígitos hexadecimais; agora `toUUID` lança `CANNOT_PARSE_UUID`, e as variantes `Or*` retornam `NULL` / o UUID zero / o valor padrão fornecido. [#104370](https://github.com/ClickHouse/ClickHouse/pull/104370) ([Groene AI](https://github.com/groeneai)).
* Corrige `Bad cast` `LOGICAL_ERROR` em `caseWithExpression` (e em SQL `CASE expr WHEN ... THEN ... ELSE ...`) quando o supertype apenas dos THEN e o supertype de (THENs + ELSE) ficam em armazenamentos `ColumnDecimal` diferentes — por exemplo, valores THEN `(UInt16, Int8)` com um ELSE de `Decimal(9, 2)`. Fecha [#104335](https://github.com/ClickHouse/ClickHouse/issues/104335). [#104378](https://github.com/ClickHouse/ClickHouse/pull/104378) ([Groene AI](https://github.com/groeneai)).
* Falhas internas reportadas via `logExceptionBeforeStart` (flushes de asynchronous insert, refreshes de views materializadas, erros de parse gerados durante consultas internas) agora incrementam corretamente os ProfileEvents `FailedInternalQuery`, `FailedInternalSelectQuery` e `FailedInternalInsertQuery`, juntamente com os contadores visíveis ao usuário `FailedQuery`, `FailedSelectQuery` e `FailedInsertQuery`. Antes, esses contadores internos permaneciam em zero para falhas ocorridas antes do início da execução da consulta, subcontabilizando uma classe importante de falhas internas. [#104399](https://github.com/ClickHouse/ClickHouse/pull/104399) ([Groene AI](https://github.com/groeneai)).
* Corrige `Code: 36. BAD_ARGUMENTS Expected literal, got {name:Type}` gerado quando um parâmetro de consulta é usado na configuração `base_backup` de uma instrução `BACKUP` ou `RESTORE` (por exemplo, `BACKUP ... SETTINGS base_backup = S3({backup_name:String}, ...)`). A regressão foi introduzida na versão `26.1.5` pelo PR [#99205](https://github.com/ClickHouse/ClickHouse/issues/99205). Fecha [#103324](https://github.com/ClickHouse/ClickHouse/issues/103324). [#104413](https://github.com/ClickHouse/ClickHouse/pull/104413) ([Groene AI](https://github.com/groeneai)).
* Corrige uma interrupção do servidor em gravações no `IcebergLocal`/`IcebergS3` quando `ALTER TABLE ... DROP COLUMN` é seguido por um `INSERT` com `iceberg_metadata_staleness_ms` maior que zero. `ALTER` agora invalida o cache local dos arquivos de metadata do Iceberg para que leituras e gravações subsequentes usem o novo schema. [#104419](https://github.com/ClickHouse/ClickHouse/pull/104419) ([Groene AI](https://github.com/groeneai)).
* Corrige `DROP ROLE`, `DROP USER`, `DROP SETTINGS PROFILE`, `DROP ROW POLICY`, `DROP QUOTA` e `DROP MASKING POLICY` para remover referências à entidade removida de qualquer outra entidade de acesso que a referenciava (por exemplo, a lista `DEFAULT ROLE` de um usuário, a lista `TO` de um profile de configurações, ou os destinatários de uma row policy) e persistir essa limpeza em disco. Antes, o estado em memória parecia correto porque `SHOW CREATE` filtra UUIDs desconhecidos, mas os arquivos `.sql` em disco mantinham entradas `ID('<dropped-uuid>')` órfãs, e essas referências reapareciam na próxima reinicialização do servidor, gerando erros `ACCESS_ENTITY_NOT_FOUND` durante a execução distribuída de consultas. [#104427](https://github.com/ClickHouse/ClickHouse/pull/104427) ([Groene AI](https://github.com/groeneai)).
* Corrige uma interrupção do servidor acionada por `azureBlobStorage`, pelo engine `AzureBlobStorage` e por DeltaLake-on-Azure com uma connection string cuja URL `BlobEndpoint` tem uma porta vazia, não numérica ou fora do intervalo (por exemplo, `BlobEndpoint=http://host:abc/`). O servidor agora retorna um erro `BAD_ARGUMENTS` claro em vez de abortar em compilações de debug/sanitizer. [#104460](https://github.com/ClickHouse/ClickHouse/pull/104460) ([Groene AI](https://github.com/groeneai)).
* Permite usar um identificador sem aspas como nome de usuário nas table functions `remote` e `remoteSecure`, espelhando o comportamento dos argumentos de database e table, que aceitam identificadores sem aspas. Antes, essa consulta falhava com um erro de authentication enganoso, referindo-se ao usuário `default`. [#104465](https://github.com/ClickHouse/ClickHouse/pull/104465) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige `Logical error: Incorrect ASTSelectWithUnionQuery (modes: M, selects: N)` acionado quando o corpo de uma user-defined function SQL contém um `UNION ALL` interno entre parênteses (por exemplo, `CREATE FUNCTION f AS x -> (SELECT 1 UNION ALL (SELECT 1 UNION ALL SELECT 1))`). [#104477](https://github.com/ClickHouse/ClickHouse/pull/104477) ([Groene AI](https://github.com/groeneai)).
* Corrige `uniqThetaIntersect`, que retornava a cardinalidade do primeiro argumento em vez de `0` quando o segundo argumento é um estado `uniqTheta` vazio -- por exemplo, o resultado de `uniqThetaMergeStateIf(s, predicate)` quando o predicado exclui todas as linhas. [#104529](https://github.com/ClickHouse/ClickHouse/pull/104529) ([Groene AI](https://github.com/groeneai)).
* Corrige `SHOW TABLES` e `system.tables`, que truncavam silenciosamente a listagem de bancos de dados `DataLakeCatalog` baseados em catálogos REST do Iceberg (`iceberg-rest`, `onelake`, `biglake`). Quando o servidor de catálogo paginava a resposta de list-tables ou list-namespaces (por exemplo, no Microsoft Fabric / OneLake com mais de \~50 tabelas por espaço de nomes), as tabelas das páginas seguintes ficavam invisíveis para `SHOW TABLES` e `system.tables`, embora pudessem ser consultadas com `SELECT` direto. `RestCatalog` agora segue o token de continuação `next-page-token` definido pela especificação OpenAPI do Iceberg REST, alinhando-se ao comportamento já existente de `PaimonRestCatalog` e `UnityCatalog`. [#104531](https://github.com/ClickHouse/ClickHouse/pull/104531) ([Groene AI](https://github.com/groeneai)).
* A table function `input` agora infere sua estrutura a partir da cláusula `FORMAT` da consulta `INSERT` em que está inserida, quando esse format tem um schema fixo (`LineAsString`, `RawBLOB`, `JSONAsString` etc.), de modo que os usuários não precisam mais repetir a estrutura como em `input('line String')` para esses formatos. [#104532](https://github.com/ClickHouse/ClickHouse/issues/104532). [#104533](https://github.com/ClickHouse/ClickHouse/pull/104533) ([Groene AI](https://github.com/groeneai)).
* Atualizado o tipo de dado dos campos no histórico do Iceberg de `Int32` para `Int64`. Fecha [#94176](https://github.com/ClickHouse/ClickHouse/issues/94176). [#104579](https://github.com/ClickHouse/ClickHouse/pull/104579) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Corrigido `Inconsistent AST formatting` `LOGICAL_ERROR` ao analisar uma chamada de função em que uma lambda vem após uma vírgula, por exemplo ``SELECT substring(x, `x` -> `x`)``. Antes, o parser mesclava silenciosamente os argumentos anteriores ao lado esquerdo da lambda, produzindo uma chamada com um único argumento que não podia ser analisada novamente para reconstruir a mesma AST. Agora ele preserva a aridade original da função. [#104626](https://github.com/ClickHouse/ClickHouse/pull/104626) ([Groene AI](https://github.com/groeneai)).
* `CHECK TABLE t` agora dá preferência a uma tabela `TEMPORARY` em vez de uma permanente com o mesmo nome quando nenhum qualificador de banco de dados é informado, alinhando-se à precedência já usada por `SHOW CREATE TABLE`, `DESCRIBE TABLE`, `OPTIMIZE TABLE` e `ALTER TABLE`. Antes, `CHECK TABLE t` ignorava completamente tabelas temporárias, por isso falhava com `UNKNOWN_TABLE` em uma tabela temporária `Log` ou `File`, embora esses motores suportem `CHECK`. Continuação de [#100966](https://github.com/ClickHouse/ClickHouse/pull/100966). [#104637](https://github.com/ClickHouse/ClickHouse/pull/104637) ([Groene AI](https://github.com/groeneai)).
* Corrige o loop de encerramento e reinicialização do Keeper quando `get /keeper/availability_zone` é enviado com `quorum_reads=true` para um Keeper sem `<placement>` configurado. [#104663](https://github.com/ClickHouse/ClickHouse/pull/104663) ([myeongjun](https://github.com/myeongjjun)).
* Corrige uma data race de TOCTOU em `FutureSetFromTuple::buildOrderedSetInplace` que resulta em um erro lógico. [#104673](https://github.com/ClickHouse/ClickHouse/pull/104673) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrige várias funções que retornavam resultados diferentes para a mesma entrada, dependendo de os argumentos chegarem como colunas ou constantes: `bitRotateLeft` / `bitRotateRight` (contagens de deslocamento nos limites), `length(FixedString)` / `concatWithSeparator` com entradas `LowCardinality(Nullable)`, `roundDown` em NaN e `rightUTF8` em UTF-8 inválido. [#104710](https://github.com/ClickHouse/ClickHouse/pull/104710) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigido `anyHeavy`, que retornava um valor não heavy quando o valor mais frequente era o valor padrão da coluna e os dados estavam distribuídos em várias partes `MergeTree` (caminho de leitura de coluna esparsa). [#104712](https://github.com/ClickHouse/ClickHouse/pull/104712) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige vários defeitos no tratamento de restrições de configurações: restrições de `MergeTreeSettings` declaradas no nome canônico de uma configuração podiam ser contornadas ao gravar em um alias dessa configuração; a verificação da restrição `disallowed_values` lançava uma exceção em caminhos de clamp (consultas secundárias, workers `ON CLUSTER`, views `SQL SECURITY DEFINER`) em vez de descartar silenciosamente a alteração. [#104737](https://github.com/ClickHouse/ClickHouse/pull/104737) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige uma exceção `LOGICAL_ERROR` (`Metadata is not initialized`) gerada por `OPTIMIZE TABLE`, `ALTER TABLE ... DELETE`, `ALTER TABLE ... ADD COLUMN` e outras variantes de ALTER em uma tabela `Iceberg` / `IcebergLocal` / `DeltaLake` / `Hudi` anexada sob demanda, cujos metadados ainda não haviam sido carregados (algo típico após uma reinicialização do servidor ou depois que uma gravação anterior de metadados falhou e deixou um arquivo de metadados corrompido no disco). Agora, a operação prossegue normalmente se os metadados forem carregados com sucesso, ou expõe a falha subjacente de carregamento como uma exceção comum visível ao usuário, em vez de abortar o servidor em builds de debug / sanitizer. [#104738](https://github.com/ClickHouse/ClickHouse/pull/104738) ([Groene AI](https://github.com/groeneai)).
* Corrige um segfault devido a um bug de use-after-free em `AvroConfluentRowInputFormat`. [#104751](https://github.com/ClickHouse/ClickHouse/pull/104751) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Variantes escalares de `numericIndexedVectorPointwiseMultiply`, `numericIndexedVectorPointwiseDivide`, `numericIndexedVectorPointwiseEqual` e `numericIndexedVectorPointwiseNotEqual` agora geram `INCORRECT_DATA` quando chamadas com um escalar `UInt64` acima de `Int64::max`. [#104784](https://github.com/ClickHouse/ClickHouse/pull/104784) ([FriendLey](https://github.com/FriendLey)).
* Corrige um bug em que substituir manualmente uma configuração por meio de seu nome de alias (por exemplo, `SET enable_analyzer = 1` em vez de `SET allow_experimental_analyzer = 1`) após aplicar uma configuração de `compatibility` podia fazer com que essa substituição fosse revertida por uma alteração subsequente da configuração `compatibility`. [#104829](https://github.com/ClickHouse/ClickHouse/pull/104829) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige a desativação do logger da AWS após [https://github.com/ClickHouse/ClickHouse/commit/0e8ad4355c9d](https://github.com/ClickHouse/ClickHouse/commit/0e8ad4355c9d). [#104837](https://github.com/ClickHouse/ClickHouse/pull/104837) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige mais três funções que retornavam resultados diferentes para a mesma entrada, dependendo de os argumentos serem passados como colunas ou constantes: `transform` (e `caseWithExpression` por meio dela) com um valor padrão constante `Date`/`Date32`/`Enum`/`FixedString`, operadores de comparação entre uma `String` e uma `FixedString` constante, e `if`/`ifNull`/`nullIf` com um ramo `FixedString` sob uma condição constante. [#104858](https://github.com/ClickHouse/ClickHouse/pull/104858) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige o encerramento abrupto do servidor com `Bad cast from type DB::ColumnConst to DB::ColumnNullable` durante partition pruning para tabelas `MergeTree` quando a expressão de partição contém uma cadeia de funções que colapsa para um único valor constante (como `floor(NULL, toRelativeYearNum(...))`). [#104861](https://github.com/ClickHouse/ClickHouse/pull/104861) ([Groene AI](https://github.com/groeneai)).
* Corrige uma data race detectada pelo `ThreadSanitizer` no construtor de cópia de `ContextData`: `table_function_results` era copiado do objeto de origem sem adquirir `table_function_results_mutex`, de modo que uma execução concorrente de `Context::executeTableFunction` podia competir com a leitura não sincronizada no construtor de cópia. [#104879](https://github.com/ClickHouse/ClickHouse/pull/104879) ([Groene AI](https://github.com/groeneai)).
* Corrige verificações de consistência de data part para tipos com estrutura dinâmica e detecta `columns_substreams.txt` corrompido. Reenvio de [https://github.com/ClickHouse/ClickHouse/pull/103858](https://github.com/ClickHouse/ClickHouse/pull/103858) com alterações adicionais. [#104888](https://github.com/ClickHouse/ClickHouse/pull/104888) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige a condição de corrida entre DROP e UNDROP no DatabaseCatalog. [#104915](https://github.com/ClickHouse/ClickHouse/pull/104915) ([Azat Khuzhin](https://github.com/azat)).
* Corrige o redimensionamento dinâmico do cache do sistema de arquivos com segmentos parcialmente baixados, incluindo a restauração da contabilização após uma evicção malsucedida. [#104921](https://github.com/ClickHouse/ClickHouse/pull/104921) ([Antonio Andelic](https://github.com/antonio2368)).
* `DETACH TABLE` em uma tabela temporária (sem a palavra-chave `TEMPORARY`) agora gera corretamente `SYNTAX_ERROR`, em conformidade com o comportamento de `DETACH TEMPORARY TABLE`. Antes, ele apenas definia silenciosamente uma flag interna `is_detached` e retornava sem erro. Para remover uma tabela temporária, use `DROP TEMPORARY TABLE` ou `DROP TABLE` (este último resolve a tabela temporária via `Context::ResolveExternal`). Fecha [#103475](https://github.com/ClickHouse/ClickHouse/issues/103475). [#104943](https://github.com/ClickHouse/ClickHouse/pull/104943) ([Groene AI](https://github.com/groeneai)).
* Faz com que a table function `filesystem` respeite `max_memory_usage` / `max_server_memory_usage` ao carregar o conteúdo do arquivo. Antes, leituras grandes ou numerosas de conteúdo em paralelo podiam ultrapassar o limite sem gerar `MEMORY_LIMIT_EXCEEDED` e acabar sendo encerradas por OOM. [#104956](https://github.com/ClickHouse/ClickHouse/pull/104956) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um `LOGICAL_ERROR` gerado ao filtrar `system.detached_tables` por `uuid` (por exemplo, `SELECT count() FROM system.detached_tables WHERE uuid = '...'`). A consulta agora retorna o resultado esperado em vez de abortar o servidor. [#104979](https://github.com/ClickHouse/ClickHouse/pull/104979) ([Groene AI](https://github.com/groeneai)).
* `flattenTuple` não gera mais um `LOGICAL_ERROR` quando chamado em uma tupla cuja estrutura aninhada contém apenas folhas `Tuple()` vazias (por exemplo, `Tuple(c0 Array(Tuple()))` ou `Tuple(c0 Tuple())`). Essas entradas agora produzem uma exceção `ILLEGAL_TYPE_OF_ARGUMENT` visível para o usuário, explicando que o resultado do flatten seria uma tupla vazia. [#104989](https://github.com/ClickHouse/ClickHouse/pull/104989) ([Groene AI](https://github.com/groeneai)).
* Corrige um abort do servidor e um bug silencioso de resultado incorreto ao executar consultas em `loop(remote(...))` (ou qualquer `loop()` que envolva um storage capaz de adiar a agregação) com `GROUP BY`. O planner externo costumava adicionar `MergingAggregatedStep` com base no estágio de processamento informado pelo storage interno, mas `LoopSource` sempre materializa seu select interno com `QueryProcessingStage::Complete` e emite fragmentos simples de colunas, então `MergingAggregatedTransform` disparava um `LOGICAL_ERROR` (`Chunk info was not set for chunk in MergingAggregatedTransform`) com `enable_parallel_replicas = 1` e, caso contrário, descartava silenciosamente a agregação externa. [#105001](https://github.com/ClickHouse/ClickHouse/pull/105001) ([Groene AI](https://github.com/groeneai)).
* `clickhouse-benchmark --reconnect` (simples, sem valor) foi quebrado inadvertidamente na 25.4 por uma mudança que transformou `--reconnect` em uma opção inteira, exigindo um valor. A forma simples agora volta a funcionar e é equivalente a `--reconnect=1` (reconectar a cada consulta). [#105006](https://github.com/ClickHouse/ClickHouse/pull/105006) ([Groene AI](https://github.com/groeneai)).
* Corrige a saída JSON malformada para nomes de coluna terminados em sequências UTF-8 incompletas. [#105012](https://github.com/ClickHouse/ClickHouse/pull/105012) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrige a perda silenciosa de dados após `EXCHANGE TABLES` ou `CREATE OR REPLACE TABLE` na tabela de origem de uma visão materializada. A aresta de dependência source-view da `MV` agora é mantida no nome original para que continue sendo acionada em inserts. Regressão introduzida por [#98779](https://github.com/ClickHouse/ClickHouse/issues/98779); restaura o comportamento anterior à regressão. [#105029](https://github.com/ClickHouse/ClickHouse/pull/105029) ([Sema Checherinda](https://github.com/CheSema)).
* Corrige `CANNOT_COMPILE_CODE Could not find symbol __fixunsdfti` ao compilar com JIT expressões que convertem `Float` em `UInt128`, como `toUInt128(<Float64 expression>)`. Os built-ins sem sinal do compiler-rt para conversão de float em inteiro de 128 bits estavam ausentes no resolvedor de símbolos do JIT. Fecha [#105031](https://github.com/ClickHouse/ClickHouse/issues/105031). [#105048](https://github.com/ClickHouse/ClickHouse/pull/105048) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige o fato de o `clickhouse-local` não imprimir mensagens de log de uma consulta com falha quando `send_logs_level` está configurado. [#105067](https://github.com/ClickHouse/ClickHouse/pull/105067) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige resultados incorretos quando a mesma view parametrizada é referenciada mais de uma vez na mesma consulta com valores de argumento diferentes. Antes, o analisador colapsava as chamadas em uma só, descartando silenciosamente todos os filtros, exceto o primeiro. [#105170](https://github.com/ClickHouse/ClickHouse/pull/105170) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a linha `TOTALS` sendo renderizada duas vezes na parte inferior da tabela de resultados na interface web `play.html`. [#103803](https://github.com/ClickHouse/ClickHouse/pull/103803) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Rejeita vetores não finitos (`NaN`, `±Inf`) durante a busca vetorial (seja como vetores consultados ou como vetores de referência); antes, eles causavam comportamento indefinido no `usearch`. [#104079](https://github.com/ClickHouse/ClickHouse/pull/104079) ([Groene AI](https://github.com/groeneai)).
* PromQL: corrige o operador de agregação para vetores vazios. [#104425](https://github.com/ClickHouse/ClickHouse/pull/104425) ([Vitaly Baranov](https://github.com/vitlibar)).
* PromQL: corrige o tratamento de erros na API de consulta do Prometheus. [#104741](https://github.com/ClickHouse/ClickHouse/pull/104741) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige uma condição de corrida em `MergeTreeTransaction::afterCommit` na qual, após uma perda de conexão entre a gravação do `CSN` de commit no ZooKeeper e a finalização da transação, a resposta `COMMIT` podia chegar ao cliente antes que o novo `creation_csn` / `removal_csn` ficasse visível em `system.parts`. [#104708](https://github.com/ClickHouse/ClickHouse/pull/104708) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Corrige o crescimento exponencial do uso de memória no parser KQL ao converter indexação aninhada de array (`arr[arr[arr[...]]]`). [#105142](https://github.com/ClickHouse/ClickHouse/pull/105142) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige resultados incorretos para `RIGHT ANY JOIN` quando a tabela da direita tem várias linhas por chave e o bloco de saída é dividido devido a limites de tamanho. Fecha [#99431](https://github.com/ClickHouse/ClickHouse/issues/99431). [#102064](https://github.com/ClickHouse/ClickHouse/pull/102064) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Verifica se há estouro de pilha no leitor `Avro` durante a desserialização de tipos aninhados. [#102417](https://github.com/ClickHouse/ClickHouse/pull/102417) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige linhas duplicadas em `system.completions` para configurações de `MergeTree` — cada nome de configuração aparecia duas vezes porque tanto `getMergeTreeSettings` quanto `getReplicatedMergeTreeSettings` eram listados, apesar de terem nomes de configuração idênticos. Fecha [#102013](https://github.com/ClickHouse/ClickHouse/issues/102013). [#102015](https://github.com/ClickHouse/ClickHouse/pull/102015) ([Groene AI](https://github.com/groeneai)).
* Corrige o `StorageObjectStorageQueue` (`S3Queue`, `AzureQueue`), que bloqueava o encerramento até que arquivos parcialmente processados fossem lidos por completo do armazenamento de objetos. A source agora aborta a leitura imediatamente durante o encerramento; a desduplicação garante que as linhas já enviadas para a tabela de destino antes do encerramento não sejam duplicadas quando o arquivo for tentado novamente na próxima inicialização. [#103126](https://github.com/ClickHouse/ClickHouse/pull/103126) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Corrige inserts de múltiplos blocos no table engine `Alias` com `insert_deduplication_token`, para que todos os blocks sejam preservados. [#103246](https://github.com/ClickHouse/ClickHouse/pull/103246) ([Enric Calabuig](https://github.com/eclbg)).
* Corrige `JSONHas` e `JSONExtractBool` em colunas `JSON` nativas, que retornavam o valor extraído (convertido para `UInt8`) em vez de `0`/`1`. [#103313](https://github.com/ClickHouse/ClickHouse/pull/103313) ([zxuhan7](https://github.com/zxuhan)).
* Protege o input format `CustomSeparated` contra dados malformados ou maliciosos que omitem `format_custom_row_after_delimiter`. A detecção de header, a inferência de esquema e linhas com número variável de colunas antes acumulavam fields sem limite e podiam alocar muitos gigabytes de memória antes de falhar. As leituras agora falham com `INCORRECT_DATA` assim que uma única linha contiver mais de 1.000.000 de fields. [#103404](https://github.com/ClickHouse/ClickHouse/pull/103404) ([Groene AI](https://github.com/groeneai)).
* Corrige o `RESTORE` de tabelas `MergeTree` replicadas para que o anexo de parts restauradas use `backup_restore_keeper_max_retries` em vez do orçamento normal de tentativas do Keeper para insert. [#104610](https://github.com/ClickHouse/ClickHouse/pull/104610) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrige resultados incorretos de `WHERE p AND <LowCardinality(Nullable(int)) constant>` em tabelas `MergeTree`. Antes, essas queries retornavam zero linhas porque o part pruning derivava um valor padrão `NULL` do tipo `LowCardinality(Nullable(...))` e sintetizava uma proteção `notEquals(x, NULL)`, eliminando toda partição. [#104767](https://github.com/ClickHouse/ClickHouse/pull/104767) ([Groene AI](https://github.com/groeneai)).
* Corrige resultado incorreto de aggregation ao agrupar por uma função não injetiva de uma coluna que também é a partition key (por exemplo, `PARTITION BY a` com `GROUP BY intDiv(a, 2)` ou `a % 2`). Valores de partições diferentes que eram mapeados para o mesmo grupo não eram merged, produzindo linhas de grupo duplicadas com `allow_aggregate_partitions_independently = 1`. [#104869](https://github.com/ClickHouse/ClickHouse/pull/104869) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige uma condição de corrida na transferência de snapshot do `Keeper`, em que um snapshot podia ser removido ou movido enquanto era enviado para um seguidor em recuperação. [#104941](https://github.com/ClickHouse/ClickHouse/pull/104941) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige um bug silencioso de resultado incorreto em `hilbertEncode` e `mortonEncode`, no qual um primeiro argumento `Tuple` não constante (máscara de intervalo) usava os valores da linha 0 para orientar o deslocamento de bits de todas as linhas. As funções agora calculam os valores da máscara por linha, de modo que o resultado não depende mais de a entrada ser constante nem do tamanho do block. [#104992](https://github.com/ClickHouse/ClickHouse/pull/104992) ([Groene AI](https://github.com/groeneai)).
* Corrige o `clickhouse-local`, que ignorava silenciosamente a configuração no nível do usuário (`profiles`, `users`, `quotas`, configurações de controle de acesso) quando o configuration file era descoberto automaticamente em `./clickhouse-local.xml`, `~/.clickhouse-local/config.xml` ou `/etc/clickhouse-local/config.xml`. Antes, essas configurações eram aplicadas apenas quando `--config-file` era informado ou `./config.xml` existia no diretório atual; agora, todos os caminhos de discovery se comportam de forma consistente. [#105008](https://github.com/ClickHouse/ClickHouse/pull/105008) ([Groene AI](https://github.com/groeneai)).
* Corrige colunas `BFloat16` que retornavam silenciosamente zero correspondências quando comparadas com um literal de string (por exemplo, `WHERE bf16_col = '49.9'`). [#105042](https://github.com/ClickHouse/ClickHouse/pull/105042) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige o tratamento de `CLEAR COLUMN` e TTL durante merges em `SummingMergeTree`, `AggregatingMergeTree` e `CoalescingMergeTree` quando as colunas necessárias para o merge estão ausentes ou expiradas. Fecha [#101953](https://github.com/ClickHouse/ClickHouse/issues/101953). [#105203](https://github.com/ClickHouse/ClickHouse/pull/105203) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige uma condição de corrida entre `DNSCacheUpdater::run` e `Context::reloadClusterConfig` com a adição de uma verificação explícita de nulo para `shared->clusters_config` antes de desreferenciá-lo. [#105220](https://github.com/ClickHouse/ClickHouse/pull/105220) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Corrige o parsing `best_effort` de data e hora para `toDateTime64` com precisão `ms` e `ns`. [#105233](https://github.com/ClickHouse/ClickHouse/pull/105233) ([Kaviraj Kanagaraj](https://github.com/kavirajk)).
* Corrige `OSIOWaitMicroseconds`, que reportava a espera de E/S ao longo do ciclo de vida da thread em vez da espera de E/S por consulta. [#105246](https://github.com/ClickHouse/ClickHouse/pull/105246) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* O mecanismo de tabela `Hudi` agora gera `INCORRECT_DATA` (uma exceção normal no nível da consulta) em vez de `LOGICAL_ERROR` quando um arquivo Parquet no diretório da tabela não segue a convenção de nomenclatura do Hudi `[FileId]_[FileWriteToken]_[Timestamp].[extension]`. Antes, esses nomes de arquivo causavam uma exceção em compilações de depuração. [#105266](https://github.com/ClickHouse/ClickHouse/pull/105266) ([Groene AI](https://github.com/groeneai)).
* Corrige um deadlock em `ParallelFormattingOutputFormat` em caso de falha de agendamento: quando `scheduleFormatterThreadForUnitWithNumber` lança uma exceção (por exemplo, `CANNOT_SCHEDULE_TASK`), a unidade permanecia em `READY_TO_FORMAT` sem nenhuma thread de formatação para processá-la, levando a um travamento. A chamada de agendamento agora é encapsulada em `try`/`catch`, e qualquer falha é encaminhada para `onBackgroundException`, para que o coletor seja encerrado corretamente. [#105275](https://github.com/ClickHouse/ClickHouse/pull/105275) ([Azat Khuzhin](https://github.com/azat)).
* Corrige perda silenciosa de dados em async inserts de `Distributed` ao se recuperar de um desligamento anormal: se o último arquivo `.bin` em um batch salvo estivesse intacto, mas um arquivo intermediário estivesse corrompido, `DistributedAsyncInsertBatch::recoverBatch` validaria apenas o header do último arquivo, e então `sendBatch` marcaria o batch inteiro — incluindo os arquivos intactos — como corrompido, perdendo suas linhas. Agora, o header de cada arquivo é validado individualmente, para que apenas o arquivo realmente corrompido seja movido para `broken/` e as linhas restantes cheguem ao shard remoto. [#105281](https://github.com/ClickHouse/ClickHouse/pull/105281) ([Groene AI](https://github.com/groeneai)).
* Corrige uma regressão em `clickhouse extract-from-config --try`: quando a config usava atributos `from_env` e não tinha elemento `include_from` (ou tinha um apontando para um arquivo inexistente), todas as substitutions `from_env` eram silenciosamente descartadas e retornavam strings vazias. Isso quebrou a descoberta de porta do entrypoint do Docker na versão 26.2.5. Fecha [#101704](https://github.com/ClickHouse/ClickHouse/issues/101704). [#105283](https://github.com/ClickHouse/ClickHouse/pull/105283) ([Groene AI](https://github.com/groeneai)).
* Corrige a falha de `INSERT INTO` em uma tabela `SQLite`, com erro de sintaxe do SQLite, quando o valor inserido é um `Enum`, `JSON` ou `AggregateFunction` cuja representação textual contém aspas simples. A configuração `output_format_values_escape_quote_with_quote` agora é respeitada pelas serializações correspondentes (antes, apenas `String` e `FixedString` a respeitavam). [#105285](https://github.com/ClickHouse/ClickHouse/pull/105285) ([Groene AI](https://github.com/groeneai)).
* Corrige `Code: 44. ILLEGAL_COLUMN: Cannot add column ...: column with this name already exists`, gerado por consultas distribuídas com `allow_push_predicate_ast_for_distributed_subqueries = 1` (o padrão), quando uma tupla `GLOBAL IN` é comparada com uma subconsulta cuja projeção contém nomes de colunas duplicados, por exemplo `(x, y) GLOBAL IN (SELECT number, number FROM numbers(5))`. [#105290](https://github.com/ClickHouse/ClickHouse/pull/105290) ([Groene AI](https://github.com/groeneai)).
* Corrige `reinterpret` para `Array(LowCardinality(...))`, que retornava um erro `NOT_IMPLEMENTED` confuso em tempo de execução; agora retorna `ILLEGAL_TYPE_OF_ARGUMENT` durante a verificação de tipos. [#105301](https://github.com/ClickHouse/ClickHouse/pull/105301) ([Raúl Marín](https://github.com/Algunenano)).
* `minMap`/`maxMap` (forma de array) e `minMappedArrays`/`maxMappedArrays` agora tratam `NaN` de forma consistente com `ORDER BY`: `NaN` é tratado por último (retornado apenas quando todos os valores são `NaN`). Antes, os resultados dependiam da posição de `NaN` nos dados devido à semântica de comparação não ordenada do IEEE 754 e divergiam da forma com argumento `Map` de `minMap`/`maxMap`, corrigida em [#100448](https://github.com/ClickHouse/ClickHouse/pull/100448). [#105331](https://github.com/ClickHouse/ClickHouse/pull/105331) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige um vazamento de memória no cache `ColumnsDescription` por tabela em tabelas da família `MergeTree` com colunas `Nested`. As entradas nunca eram removidas do cache ao longo de ciclos de `ALTER ADD COLUMN`/`DROP COLUMN` quando `share_nested_offsets = 1` (o padrão). [#105376](https://github.com/ClickHouse/ClickHouse/pull/105376) ([Groene AI](https://github.com/groeneai)).
* Corrige a exceção `BAD_ARGUMENTS` "It's a bug! Only integer types are supported by `__bitWrapperFunc`", gerada quando um `SELECT` com um skip index `TYPE set(N)` tem um átomo em `WHERE` cujo tipo de resultado é `Float`, `BFloat16` ou qualquer outro tipo não inteiro (por exemplo `WHERE c0 + 0.1` ou `WHERE log(c0)`). Nesse caso, o skip index agora recorre ao caminho normal de filtro. [#105384](https://github.com/ClickHouse/ClickHouse/pull/105384) ([Groene AI](https://github.com/groeneai)).

<div id="267-build-testing-packaging-improvement">
  #### melhorias em build, testes e empacotamento
</div>

* Parar de usar as bibliotecas e os cabeçalhos de sistema `compiler-rt`. Fecha [#91475](https://github.com/ClickHouse/ClickHouse/issues/91475). [#102857](https://github.com/ClickHouse/ClickHouse/pull/102857) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Atualizar a imagem base distroless do Docker para corrigir CVEs do OpenSSL em `libssl3t64`. [#103583](https://github.com/ClickHouse/ClickHouse/pull/103583) ([Rahul Nair](https://github.com/motsc)).
* Passar a receber a chave GPG de forma confiável durante os lançamentos, encadeando vários servidores de chaves do Ubuntu, em vez de expirar por tempo limite em `keyserver.ubuntu.com`. [#103834](https://github.com/ClickHouse/ClickHouse/pull/103834) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Remover e proibir verificações do `CMake` em tempo de compilação (`check_*`, `try_compile`, `try_run`). O compilador e o toolchain são fixos, portanto a detecção de recursos no momento da configuração é desnecessária e agora está bloqueada em todo o projeto; qualquer comportamento específico de versão deve ser condicionado explicitamente a `CMAKE_CXX_COMPILER_VERSION`. [#103980](https://github.com/ClickHouse/ClickHouse/pull/103980) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Atualizar `libarchive` de 3.8.6 para 3.8.7. [#104047](https://github.com/ClickHouse/ClickHouse/pull/104047) ([Robert Schulze](https://github.com/rschu1ze)).
* Atualizar `mongo-c-driver` para 2.3.0. [#104300](https://github.com/ClickHouse/ClickHouse/pull/104300) ([Raúl Marín](https://github.com/Algunenano)).
* Atualizar as dependências do LLVM para 22.x. [#104381](https://github.com/ClickHouse/ClickHouse/pull/104381) ([Joshua Carp](https://github.com/jmcarp)).
* Permitir a compilação das classes de descritor PTY e embedded-client no macOS e no FreeBSD usando as funções POSIX portáveis `posix_openpt` / `grantpt` / `unlockpt` e removendo guardas `#if` exclusivos do Linux. [#104436](https://github.com/ClickHouse/ClickHouse/pull/104436) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Atualizar `librdkafka` para a versão 2.14.1. [#105222](https://github.com/ClickHouse/ClickHouse/pull/105222) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).

<div id="264">
  ### Lançamento do ClickHouse 26.4, 2026-04-30. [Apresentação](https://presentations.clickhouse.com/2026-release-26.4/), [Vídeo](https://www.youtube.com/watch?v=9lSVy7k2EoI)
</div>

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

* O operador `IN` agora usa semântica de valor exato para o tipo `Bool`: apenas os valores `0` e `1` no conjunto correspondem a valores `Bool`. Antes, valores numéricos maiores que `255` no conjunto `IN` eram incorretamente convertidos para true quando comparados com `Bool`, então `SELECT CAST(1, 'Bool') IN (256)` retornava 1. Agora, retorna corretamente `0`. Fecha [#92980](https://github.com/ClickHouse/ClickHouse/issues/92980). [#93115](https://github.com/ClickHouse/ClickHouse/pull/93115) ([Ashrith Bandla](https://github.com/ashrithb)).
* A biblioteca H3 foi atualizada para a v4, o que melhora a precisão dos cálculos de comprimento, área e outras métricas. Essa alteração é incompatível com versões anteriores porque os novos resultados diferem dos anteriores. [#100348](https://github.com/ClickHouse/ClickHouse/pull/100348) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Não permite mais o uso de `SELECT` como identificador simples em um elemento da lista de expressões `WITH`. [#101059](https://github.com/ClickHouse/ClickHouse/pull/101059) ([Aruj Bansal](https://github.com/arujbansal)).
* Este patch altera a forma como a tabela merge lida com colunas virtuais. Se a tabela subjacente contiver `_table` ou `_database`, essas colunas serão lidas do armazenamento; caso contrário, serão preenchidas após a etapa de leitura usando a etapa de expressão. [#101742](https://github.com/ClickHouse/ClickHouse/pull/101742) ([Mikhail Artemenko](https://github.com/Michicosun)).
* O operador `IN` agora também rejeita conversões com perda de `Decimal` dentro de tipos compostos (`Tuple`, `Array`, `Map`), tornando seu comportamento consistente com comparações escalares de nível superior. Antes, as verificações de precisão eram aplicadas apenas a valores escalares de nível superior: por exemplo, `CAST('33.3', 'Decimal64(1)') IN (33.33)` retornava corretamente `0`, mas `CAST(['33.3'], 'Array(Decimal64(1))') IN ([33.33])` retornava incorretamente `1` porque a conversão com perda acontecia dentro de um `Array`. Agora, ambos os casos retornam corretamente `0`. [#101812](https://github.com/ClickHouse/ClickHouse/pull/101812) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Os valores padrão de `http_max_fields` foram reduzidos de 1,000,000 para 1,000 e os de `http_max_field_name_size`, de 128 KB para 4 KB, para limitar o uso de memória antes da autenticação por conexões HTTP. Foram adicionadas as configurações `http_max_request_header_size` e `http_headers_read_timeout`. Usuários que dependem dos limites mais altos anteriores podem restaurá-los por meio das configurações. [#103285](https://github.com/ClickHouse/ClickHouse/pull/103285) ([Sema Checherinda](https://github.com/CheSema)).

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

* Adiciona spilling automático às junções hash e às junções hash paralelas, convertendo-as em grace hash join quando o limite de memória é atingido. Esse comportamento é controlado por `max_bytes_before_external_join`. [#97813](https://github.com/ClickHouse/ClickHouse/pull/97813) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Adiciona suporte ao Arrow Flight SQL. [#91170](https://github.com/ClickHouse/ClickHouse/pull/91170) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Adiciona suporte a leituras incrementais em motores de tabela `Paimon` com rastreamento do progresso de snapshot baseado no Keeper, incluindo leituras direcionadas de delta de snapshot via `paimon_target_snapshot_id`, e amplia a cobertura de testes para mapeamento de tipos, poda de partições e cenários de leitura incremental. [#93655](https://github.com/ClickHouse/ClickHouse/pull/93655) ([XiaoBinMu](https://github.com/Binnn-MX)).
* A função `stem` deixou de ser experimental (antes, era necessário habilitar a configuração `allow_experimental_nlp_functions`). [#102399](https://github.com/ClickHouse/ClickHouse/pull/102399) ([Jimmy Aguilar Mena](https://github.com/Ergus)). Agora, você pode aplicar stemming facilmente a todas as palavras/tokens nas colunas `String`, `FixedString`, `Array([Fixed]String)`, `Nullable`, `LowCardinality` e `Const` com a função `stem`. [#99137](https://github.com/ClickHouse/ClickHouse/pull/99137) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Implementado o novo comportamento de `max_insert_block_size_rows`, `max_insert_block_size_bytes`, `min_insert_block_size_rows`, `min_insert_block_size_bytes` no processo de squashing, sob a configuração de compatibilidade `use_strict_insert_block_limits`. [#94207](https://github.com/ClickHouse/ClickHouse/pull/94207) ([Kirill Kopnev](https://github.com/Fgrtue)).
* Adiciona a função `arrayAutocorrelation(arr [, max_lag])`, que calcula a autocorrelação normalizada de um Array numérico para cada defasagem. Suporta Arrays de inteiros, ponto flutuante e decimais. [#94776](https://github.com/ClickHouse/ClickHouse/pull/94776) ([Wenyu Chen](https://github.com/wenyuchen96)).
* Função SQL `obfuscateQuery`. Fecha [#98010](https://github.com/ClickHouse/ClickHouse/issues/98010). [#98305](https://github.com/ClickHouse/ClickHouse/pull/98305) ([Xuewei Wang](https://github.com/Sallery-X)).
* Adicionado suporte aos tipos Map e JSON/Object como atributos de dicionários. Agora, os dicionários podem armazenar e recuperar tipos complexos, incluindo Map(String, String), Map(String, Array(String)), JSON e Nullable(JSON), tanto nos layouts FLAT quanto HASHED. [#98627](https://github.com/ClickHouse/ClickHouse/pull/98627) ([yanglongwei](https://github.com/ylw510)).
* Foram adicionadas duas novas configurações do MergeTree — `replicated_fetches_min_part_level` e `replicated_fetches_min_part_level_timeout_seconds` — que permitem que as réplicas deixem de buscar partes recém-inseridas (ainda não mescladas) de outras réplicas, reduzindo a sobrecarga da replicação durante períodos de ingestão intensa. [#98625](https://github.com/ClickHouse/ClickHouse/pull/98625) ([tanner-bruce](https://github.com/tanner-bruce)).
* Adiciona suporte a skip index do MergeTree para colunas JSON usando JSONAllPaths com os tipos de índice bloom\_filter, tokenbf\_v1, ngrambf\_v1 e text (invertido), permitindo ignorar grânulos com base no conjunto de caminhos JSON presentes em cada grânulo. [#98886](https://github.com/ClickHouse/ClickHouse/pull/98886) ([Pavel Kruglov](https://github.com/Avogar)).
* A função `printf` agora oferece suporte a strings de formato não constantes, permitindo usar diferentes padrões de formato por linha com base nos valores das colunas. [#98991](https://github.com/ClickHouse/ClickHouse/pull/98991) ([Yash ](https://github.com/Onyx2406)).
* Adiciona um novo índice de projeção, `commit_order`, que reorganiza os dados de acordo com a ordem de inserção. [#99004](https://github.com/ClickHouse/ClickHouse/pull/99004) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Adiciona a função `highlight`, que envolve ocorrências de termos de pesquisa em uma string de texto com tags HTML (o padrão é `<em>`/`</em>`). Suporta correspondência ASCII sem diferenciar maiúsculas de minúsculas, mesclagem automática de correspondências sobrepostas e tags personalizadas de abertura/fechamento. [#99131](https://github.com/ClickHouse/ClickHouse/pull/99131) ([Peng](https://github.com/fastio)).
* Implemente cotas por hash normalizado da consulta para proteger serviços públicos do ClickHouse contra abuso. 1. Suporte a `NORMALIZED_QUERY_HASH` como tipo de chave de cota - buckets de cota separados para cada consulta normalizada exclusiva, para que `CREATE QUOTA q KEYED BY normalized_query_hash` acompanhe cada consulta distinta de forma independente. 2. Suporte a `QUERIES_PER_NORMALIZED_HASH` como tipo de recurso de cota -- limita o número máximo de execuções de qualquer consulta normalizada dentro de um intervalo, para que `MAX queries_per_normalized_hash = 100` impeça que um mesmo padrão de consulta seja executado mais de 100 vezes. [#99586](https://github.com/ClickHouse/ClickHouse/pull/99586) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Agora, os usuários podem escrever consultas de join usando a sintaxe `NATURAL JOIN`, que faz a correspondência automática de todas as colunas com o mesmo nome e elimina a duplicação dessas colunas no resultado. [#99840](https://github.com/ClickHouse/ClickHouse/pull/99840) ([Peter Nguyen](https://github.com/petern48)).
* Suporte para `SET TIME ZONE 'tz'` como alias de `SET session_timezone`. [#99883](https://github.com/ClickHouse/ClickHouse/pull/99883) ([phulv94](https://github.com/phulv94)).
* Adicionado suporte a consultas parametrizadas na UI da Web (`play.html`): parâmetros de consulta como `{name:Type}` são detectados, e campos de entrada são exibidos para preencher seus valores. [#100041](https://github.com/ClickHouse/ClickHouse/pull/100041) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suporte à cláusula padrão SQL `VALUES` como expressão de tabela em `FROM`, por exemplo, `SELECT * FROM (VALUES (1, 'a'), (2, 'b')) AS t(id, val)`. [#100143](https://github.com/ClickHouse/ClickHouse/pull/100143) ([Desel72](https://github.com/Desel72)).
* Adicionadas unidades compatíveis com PostgreSQL ao operador `EXTRACT`: `EPOCH`, `DOW`, `DOY`, `ISODOW`, `ISOYEAR`, `WEEK`, `CENTURY`, `DECADE`, `MILLENNIUM`. Também foi corrigido `EXTRACT(WEEK FROM date)`, que anteriormente gerava um erro. [#100274](https://github.com/ClickHouse/ClickHouse/pull/100274) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado suporte a literais compostos de intervalo no padrão SQL com qualificadores de faixa `TO`, por exemplo, `INTERVAL '1:30' HOUR TO MINUTE`. Internamente, eles são decompostos em somas de intervalos. [#100453](https://github.com/ClickHouse/ClickHouse/pull/100453) ([Desel72](https://github.com/Desel72)).
* Adicionar métricas assíncronas para a memória de buffer TCP de recebimento e envio do kernel (`sk_rmem_alloc`, `sk_wmem_alloc`) dos sockets do pool de conexões HTTP, reportadas como percentis p50/p75/p90/p95 e totais por grupo de conexões. [#100575](https://github.com/ClickHouse/ClickHouse/pull/100575) ([Sema Checherinda](https://github.com/CheSema)).
* Adicionada uma UI web para profiling do jemalloc no ClickHouse Keeper, disponível em `/jemalloc` na porta de controle HTTP. [#100606](https://github.com/ClickHouse/ClickHouse/pull/100606) ([murphy-4o](https://github.com/murphy-4o)).
* Implementado o comando `SYSTEM FLUSH OBJECT STORAGE QUEUE db.table PATH 'x'` para os modos ordenado e não ordenado. [#100709](https://github.com/ClickHouse/ClickHouse/pull/100709) ([Bharat Nallan](https://github.com/bharatnc)).
* Adicionada a função `JSONAllValues`, que retorna todos os valores de uma coluna `JSON` como `Array(String)`, com os valores serializados em formato textual e ordenados pelos nomes de seus caminhos. Adicionado suporte a índice de texto para a expressão `JSONAllValues` em colunas `JSON`. Quando um índice de texto é criado em `JSONAllValues(json_column)`, ele é usado automaticamente para filtrar consultas em subcolunas `JSON` (por exemplo, `json_column.key1 = 'value'`). [#100730](https://github.com/ClickHouse/ClickHouse/pull/100730) ([Anton Popov](https://github.com/CurtizJ)).
* Adiciona uma nova configuração `input_format_column_name_matching_mode` que permite diferentes tratamentos de maiúsculas e minúsculas nos formatos de entrada. [#99346](https://github.com/ClickHouse/ClickHouse/pull/99346) ([manerone](https://github.com/Manerone)).
* Adicionado o comando `watch` ao `clickhouse-keeper-client`, com suporte a watch nos comandos `get`, `exists` e `ls`. [#100834](https://github.com/ClickHouse/ClickHouse/pull/100834) ([Den Kalantaevskii](https://github.com/Diskein)).
* Foi adicionada a solicitação `getChildrenRecursive` (ListRecursive) ao ClickHouse Keeper e o comando `lsr` ao `clickhouse-keeper-client`. Isso fecha [#99916](https://github.com/ClickHouse/ClickHouse/issues/99916). [#100998](https://github.com/ClickHouse/ClickHouse/pull/100998) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Adiciona a nova função `arrayTranspose`, que recebe um array bidimensional (matriz) e o transpõe: `SELECT arrayTranspose([[1, 2, 3], [4, 5, 6]])`. [#101214](https://github.com/ClickHouse/ClickHouse/pull/101214) ([Vitaly Baranov](https://github.com/vitlibar)).
* A configuração `auto_statistics_types mergetree` tem como valor padrão `'minmax, uniq'` — as estatísticas minmax e uniq são criadas automaticamente para todas as colunas compatíveis em novas tabelas - `materialize_statistics_on_insert` agora tem como padrão false — as estatísticas agora são geradas durante as mesclagens, em vez de no momento da inserção, reduzindo a sobrecarga de inserção. use `SET materialize_statistics_on_insert = 1` para restaurar o comportamento anterior. [#101275](https://github.com/ClickHouse/ClickHouse/pull/101275) ([Han Fei](https://github.com/hanfei1991)).
* Adicionada a configuração de refresh `prefer_dependency_replica` para cadeias de dependência de visões materializadas, para reduzir a perda de dados causada pela latência de replicação entre réplicas. [#101591](https://github.com/ClickHouse/ClickHouse/pull/101591) ([Seva Potapov](https://github.com/seva-potapov)).
* Adiciona uma função `hasPhrase` (alias `matchPhrase`) para busca por frases (sequências contínuas de tokens). A busca é feita por força bruta, ou seja, o índice de texto ainda não oferece suporte a ela. [#101997](https://github.com/ClickHouse/ClickHouse/pull/101997) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Adiciona as métricas de histograma `s3_read_request_duration_microseconds` e `s3_read_request_bytes` para observar a duração da conexão das solicitações GET ao S3 e os bytes consumidos, visíveis em `system.histogram_metrics` e no endpoint do Prometheus. [#102058](https://github.com/ClickHouse/ClickHouse/pull/102058) ([Sema Checherinda](https://github.com/CheSema)).
* `Date` e `Date32` agora podem ser somados a valores `Time` e `Time64` usando o operador `+`, produzindo um resultado `DateTime` ou `DateTime64`. Por exemplo, `SELECT toDate('2024-01-15') + toTime('14:30:25')` retorna `2024-01-15 14:30:25`. O resultado é calculado no fuso horário da sessão, e resultados fora do intervalo são tratados de acordo com a configuração `date_time_overflow_behavior`. Fecha [#95914](https://github.com/ClickHouse/ClickHouse/issues/95914). [#102421](https://github.com/ClickHouse/ClickHouse/pull/102421) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* O índice de texto agora está em GA e permanece habilitado independentemente da configuração `compatibility`, evitando que seja desabilitado inesperadamente durante restaurações a partir de backup ou ao executar no modo de compatibilidade. [#101518](https://github.com/ClickHouse/ClickHouse/pull/101518) ([Nikita Fomichev](https://github.com/fm4v)).

<div id="264-experimental-feature">
  #### funcionalidade experimental
</div>

* Adiciona `ALTER TABLE ... EXECUTE remove_orphan_files` para tabelas Iceberg, a fim de identificar e remover arquivos não referenciados do armazenamento de objetos. [#99127](https://github.com/ClickHouse/ClickHouse/pull/99127) ([murphy-4o](https://github.com/murphy-4o)).
* Adiciona a configuração `query_plan_optimize_join_order_randomize`, que randomiza as estatísticas usadas na reordenação de joins, útil para testes. [#100643](https://github.com/ClickHouse/ClickHouse/pull/100643) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Adiciona suporte a função de IA no ClickHouse, permitindo que os usuários chamem endpoints da OpenAI e da Anthropic usando SQL. `aiGenerate` está incluída como a primeira função desse tipo. [#100831](https://github.com/ClickHouse/ClickHouse/pull/100831) ([George Larionov](https://github.com/george-larionov)).
* Adiciona funções de IA: `aiClassify`, `aiExtract` e `aiTranslate`, para usar APIs de LLM no ClickHouse. [#100832](https://github.com/ClickHouse/ClickHouse/pull/100832) ([George Larionov](https://github.com/george-larionov)).
* Adiciona `system.histogram_metric_log`, uma nova tabela de sistema que gera periodicamente snapshots de todas as métricas de histograma (por exemplo, latências de S3/Azure e durações dos estágios de processamento de requisições do Keeper). Além disso, a coluna `value` de `system.histogram_metrics` passa a ser `Float64`, por ser mais flexível e compatível com o modelo de dados do Prometheus. [#103046](https://github.com/ClickHouse/ClickHouse/pull/103046) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). É provável que a estrutura da tabela seja alterada em versões futuras.

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

* O ClickHouse agora consegue descartar partes de dados inteiras em consultas SELECT com base em estatísticas de mín./máx. [#94140](https://github.com/ClickHouse/ClickHouse/pull/94140) ([zoomxi](https://github.com/zoomxi)).
* Reduz a contenção por bloqueios durante operações de somente leitura em tabelas ReplicatedMergeTree com mutações concluídas. [#95771](https://github.com/ClickHouse/ClickHouse/pull/95771) ([Eduard Karacharov](https://github.com/korowa)).
* Passa a respeitar `optimize_read_in_order` ao ler projeções. Fecha [#89453](https://github.com/ClickHouse/ClickHouse/issues/89453). [#95885](https://github.com/ClickHouse/ClickHouse/pull/95885) ([Andrey Zvonov](https://github.com/zvonand)).
* Pequenas melhorias no Hash Join e no Concurrent Hash Join. [#96663](https://github.com/ClickHouse/ClickHouse/pull/96663) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Otimiza a transformação `DISTINCT` desabilitando a otimização para colunas `LowCardinality` quando os dados de entrada são quase todos distintos. [#97113](https://github.com/ClickHouse/ClickHouse/pull/97113) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Otimização de desempenho para consultas com `LIKE` de [#97723](https://github.com/ClickHouse/ClickHouse/issues/97723). Agora, essas consultas podem usar índices de texto. [#98149](https://github.com/ClickHouse/ClickHouse/pull/98149) ([Elmi Ahmadov](https://github.com/ahmadov)).
* As funções matemáticas vetorizadas (`exp`, `log`, `sigmoid`, `tanh`) agora são aceleradas em AArch64 (usando NEON/SVE) e em FreeBSD/Darwin, onde antes recorriam a um fallback escalar mais lento. [#98230](https://github.com/ClickHouse/ClickHouse/pull/98230) ([Raúl Marín](https://github.com/Algunenano)).
* Consultas que filtram colunas de chave primária do `MergeTree` com alternâncias em expressões regulares baseadas em strings literais, como `^(abc-1|abc-2)`, agora podem usar a poda da chave primária quando as alternativas compartilham um prefixo comum. [#98988](https://github.com/ClickHouse/ClickHouse/pull/98988) ([Yash ](https://github.com/Onyx2406)).
* Generaliza a filtragem dinâmica top-k de `ORDER BY ... LIMIT` para dar suporte a `Nullable`, `String` e `COLLATE`. [#99033](https://github.com/ClickHouse/ClickHouse/pull/99033) ([murphy-4o](https://github.com/murphy-4o)).
* Acelera o hash join com chaves `Int32` e `Int64` de pequeno intervalo usando uma tabela hash com índice direto. [#99275](https://github.com/ClickHouse/ClickHouse/pull/99275) ([Hechem Selmi](https://github.com/m-selmi)).
* Consultas descontínuas mais rápidas em colunas `LowCardinality` com um único dicionário. [#99285](https://github.com/ClickHouse/ClickHouse/pull/99285) ([Ivan Babrou](https://github.com/bobrik)).
* Acelera as funções `var*Stable` e `stddev*Stable` para colunas `Float64` com a desvirtualização do loop interno. Observação: isso permite otimizações do compilador (FMA/registradores) que alteram os resultados de ponto flutuante no nível de ULP. [#99460](https://github.com/ClickHouse/ClickHouse/pull/99460) ([Riyane El Qoqui](https://github.com/riyaneel)).
* Usa a codificação base58 otimizada do Firedancer para entradas de 32/64 bytes (automática para `base58Encode`). Permite usar a decodificação base58 otimizada se o resultado da decodificação tiver 32/64 bytes (explicitamente com `base58Decode('...', 32)` ou equivalente). [#99461](https://github.com/ClickHouse/ClickHouse/pull/99461) ([Joanna Hulboj](https://github.com/jh0x)).
* Habilite otimizações baseadas em seções no linker (`-ffunction-sections`, `-fdata-sections`, `--icf=all`) para reduzir o tamanho do binário e melhorar o uso do cache de instruções. [#99474](https://github.com/ClickHouse/ClickHouse/pull/99474) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o escalonamento negativo em consultas curtas com agregação em máquinas com muitos núcleos. Quando uma consulta lê poucas marcas, o pipeline deixa de se expandir até `max_threads` após a agregação, evitando a sobrecarga causada por fluxos quase vazios. [#99493](https://github.com/ClickHouse/ClickHouse/pull/99493) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Melhore o desempenho das consultas com réplicas paralelas ao selecionar corretamente o tamanho da tarefa de leitura. [#99801](https://github.com/ClickHouse/ClickHouse/pull/99801) ([Nikita Taranov](https://github.com/nickitat)).
* Permitir prefetch ao ler um arquivo remoto pelo cache de páginas em userspace. [#99919](https://github.com/ClickHouse/ClickHouse/pull/99919) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Evita o cálculo desnecessário da subcoluna `.size` de String durante a enumeração de subcolunas. [#99941](https://github.com/ClickHouse/ClickHouse/pull/99941) ([Pavel Kruglov](https://github.com/Avogar)).
* Torna a barra de progresso do clickhouse-client menos oscilante ao usá-lo de um hotel com clusters com um número muito grande de réplicas. [#100145](https://github.com/ClickHouse/ClickHouse/pull/100145) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Inicie `MemoryWorker` no `clickhouse-local` quando o cache de páginas estiver habilitado, para que o cache de páginas em userspace possa realmente ser usado. [#100306](https://github.com/ClickHouse/ClickHouse/pull/100306) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Otimize as consultas levando a cláusula `LIMIT` para dentro do `UNION ALL`. [#100364](https://github.com/ClickHouse/ClickHouse/pull/100364) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona suporte à compilação JIT para comparações de colunas `String` e `FixedString` em `ORDER BY`, melhorando o desempenho da ordenação na fase de mesclagem em 6–17% para chaves de ordenação com muitas strings. Em coautoria com @lgbo-ustc. [#100577](https://github.com/ClickHouse/ClickHouse/pull/100577) ([Raúl Marín](https://github.com/Algunenano)).
* Quando `read_in_order_use_virtual_row` está habilitado junto com a nova configuração `read_in_order_use_virtual_row_per_block`, as informações de limite de linha virtual agora são emitidas após cada bloco lido de `MergeTree`, permitindo que a operação de merge repriorize as fontes no meio do fluxo para partes cujos dados são totalmente filtrados por `WHERE`/`PREWHERE`/`JOIN`. Fecha [#99945](https://github.com/ClickHouse/ClickHouse/issues/99945). [#100603](https://github.com/ClickHouse/ClickHouse/pull/100603) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Conversão mais rápida de Float para String para valores inteiros grandes, com a extensão do caminho rápido de `itoa` com arredondamento compatível com dragonbox. [#100649](https://github.com/ClickHouse/ClickHouse/pull/100649) ([Raúl Marín](https://github.com/Algunenano)).
* Substitua `dragonbox` por `zmij` para uma conversão de Float em String 1,5x a 3x mais rápida. [#100650](https://github.com/ClickHouse/ClickHouse/pull/100650) ([Raúl Marín](https://github.com/Algunenano)).
* Conversão mais rápida de `Int128`/`UInt128` para string ao substituir a divisão por software pela redução de Barrett e pelo desenrolamento do loop de conversão. [#100671](https://github.com/ClickHouse/ClickHouse/pull/100671) ([Raúl Marín](https://github.com/Algunenano)).
* Evitar a criação de threads redundantes na mesclagem paralela de `uniqExact`. [#100686](https://github.com/ClickHouse/ClickHouse/pull/100686) ([Jiebin Sun](https://github.com/jiebinn)).
* Adiciona merge paralelo em lote para `uniqExact`. [#100687](https://github.com/ClickHouse/ClickHouse/pull/100687) ([Jiebin Sun](https://github.com/jiebinn)).
* Melhoria na paralelização de consultas com views simples (com tabela `MergeTree` subjacente) executadas com réplicas paralelas. [#100815](https://github.com/ClickHouse/ClickHouse/pull/100815) ([Igor Nikonov](https://github.com/devcrafter)).
* Implementa suporte a réplicas paralelas em views simples (incluindo views `UNION ALL` compatíveis sobre tabelas `MergeTree`) quando `parallel_replicas_allow_view_over_mergetree=1`. Isso permite paralelizar a consulta externa da view em vez da interna, aumentando a paralelização da consulta entre nós. [#100958](https://github.com/ClickHouse/ClickHouse/pull/100958) ([Igor Nikonov](https://github.com/devcrafter)).
* Otimiza a leitura seguindo a ordem da chave primária para `full_sorting_merge` quando há filtros com `IN` no plano de consulta. [#101261](https://github.com/ClickHouse/ClickHouse/pull/101261) ([Nikita Taranov](https://github.com/nickitat)).
* Otimização de alocações/desalocações ao usar cache para as configurações de amostragem, em vez de percorrer toda a hierarquia do rastreador de memória. [#101267](https://github.com/ClickHouse/ClickHouse/pull/101267) ([Azat Khuzhin](https://github.com/azat)).
* Corrige uma regressão significativa no desempenho de INSERT quando `deduplicate_insert = 'enable'` (padrão desde a versão 26.2), transferindo o cálculo do hash dos dados do squashing para o sink e usando hash de colunas em lote via `updateHashWithValueRange`, reduzindo a sobrecarga de \~2.5s para \~0.5s em 5M linhas com 22 colunas. [#101494](https://github.com/ClickHouse/ClickHouse/pull/101494) ([Sema Checherinda](https://github.com/CheSema)).
* Reduza a sobrecarga do profiling de locks usando `try_lock` para evitar medir o tempo de aquisições sem contenção e removendo a medição do tempo de retenção. [#101502](https://github.com/ClickHouse/ClickHouse/pull/101502) ([Antonio Andelic](https://github.com/antonio2368)).
* Intrínsecos AVX-512 escritos manualmente em `arrayDotProduct` foram substituídos por loops auto-vetorizáveis independentes de plataforma, com adição de suporte a AVX2 e ARM NEON. [#101571](https://github.com/ClickHouse/ClickHouse/pull/101571) ([Peng](https://github.com/fastio)).
* Melhora o desempenho de `INSERT VALUES` para colunas `Map`, `Array` e `Tuple` quando os valores são passados como strings escapadas (por exemplo, `'{\'key\':1}'`), evitando recorrer desnecessariamente ao analisador de expressões SQL. [#102119](https://github.com/ClickHouse/ClickHouse/pull/102119) ([Joanna Hulboj](https://github.com/jh0x)).
* Corrigido o uso excessivo de CPU do engine de tabela `RabbitMQ`. [#102711](https://github.com/ClickHouse/ClickHouse/pull/102711) ([Jaap Elst](https://github.com/jaapieaapie1)).
* O otimizador da ordem das junções agora infere predicados transitivos de equijunção a partir das condições de join existentes. Por exemplo, dado `A.x = B.x AND B.x = C.x`, a equivalência `A.x = C.x` é reconhecida, permitindo que o otimizador considere junções diretas entre tabelas conectadas transitivamente. Isso pode melhorar a qualidade do plano em esquemas star e snowflake, nos quais as tabelas de dimensão se conectam por meio de uma tabela de fatos compartilhada. O recurso é controlado pela nova configuração `enable_join_transitive_predicates` (desativada por padrão). [#98479](https://github.com/ClickHouse/ClickHouse/pull/98479) ([Alexander Gololobov](https://github.com/davenger)).
* Otimiza `TRUNCATE DATABASE TABLES LIKE` com o pré-cancelamento paralelo de merges. [#98597](https://github.com/ClickHouse/ClickHouse/pull/98597) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Adicionado suporte à monotonicidade na multiplicação, permitindo a poda da chave primária em expressões `key * constant`. [#98983](https://github.com/ClickHouse/ClickHouse/pull/98983) ([Amos Bird](https://github.com/amosbird)).
* Os dicionários de cache não usam mais bloqueio exclusivo em `hasKeys`; isso reduz a contenção de bloqueios ao usar um bloqueio compartilhado para leituras do cache. [#100796](https://github.com/ClickHouse/ClickHouse/pull/100796) ([liuguangliang](https://github.com/sourcelliu)).
* Incorporação da subconsulta VIEW à árvore de consulta para permitir que mais otimizações sejam aplicadas à VIEW. [#100830](https://github.com/ClickHouse/ClickHouse/pull/100830) ([Dmitry Novik](https://github.com/novikd)).
* Otimiza o carregamento do cache na inicialização do servidor. [#101500](https://github.com/ClickHouse/ClickHouse/pull/101500) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Implementa a materialização tardia de colunas para ReplacingMergeTree com FINAL, caso o predicado seja seletivo o suficiente. [#101647](https://github.com/ClickHouse/ClickHouse/pull/101647) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Reative a otimização `optimize_rewrite_array_exists_to_has` (desativada por padrão desde a versão 23.10). Ela reescreve `arrayExists(x -> x = elem, arr)` para o `has(arr, elem)`, que é muito mais rápido, e agora ignora corretamente a reescrita quando o tipo de elemento do array e `elem` não são compatíveis com `has` (por exemplo, `Date` vs `String`), de modo que as consultas que antes falhavam continuem funcionando. Fecha [#71431](https://github.com/ClickHouse/ClickHouse/issues/71431). [#100944](https://github.com/ClickHouse/ClickHouse/pull/100944) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Saída aprimorada do EXPLAIN PLAN pretty=1: imprime as colunas de saída da consulta no nível superior, mostra rótulos/símbolos das relações de join com o número estimado de linhas no resultado e a localidade, e inclui colunas de saída por passo para etapas de join/origem. As alterações cobrem a parte de Information Deficit de [#98117](https://github.com/ClickHouse/ClickHouse/issues/98117). [#99462](https://github.com/ClickHouse/ClickHouse/pull/99462) ([Kirill Kopnev](https://github.com/Fgrtue)).
* Adiciona a configuração de tabela MergeTree `share_nested_offsets` (padrão `true`). Quando definida como `false`, colunas Array com nomes contendo pontos (por exemplo, `n.a`, `n.b`) são tratadas como colunas independentes, em vez de compartilharem arquivos de offset e validarem tamanhos iguais de array como parte da semântica legada de `Nested`. [#98416](https://github.com/ClickHouse/ClickHouse/pull/98416) ([Amos Bird](https://github.com/amosbird)).
* Agora, os usuários podem especificar vários métodos de autenticação na configuração users.xml/yaml (em SQL, isso sempre foi possível). [#91998](https://github.com/ClickHouse/ClickHouse/pull/91998) ([Flip-Liquid](https://github.com/Flip-Liquid)).
* Recarregamento automático das conexões TLS entre nós do Raft. [#93455](https://github.com/ClickHouse/ClickHouse/pull/93455) ([Evgeny](https://github.com/evkuzin)).
* Amplia `cast_keep_nullable` para funcionar com tipos Dynamic/JSON. Quando definido, a conversão de NULL de tipos que podem ser Nullable retorna NULL; caso contrário, NULL gera o erro `CANNOT_INSERT_NULL_IN_ORDINARY_COLUMN`. [#96504](https://github.com/ClickHouse/ClickHouse/pull/96504) ([Seva Potapov](https://github.com/seva-potapov)).
* Reduziu o consumo de memória das estruturas internas de dados (objetos `ISerialization`) com a introdução de um pool de objetos. [#96563](https://github.com/ClickHouse/ClickHouse/pull/96563) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Adicionado suporte aos campos `password` e `identity` na configuração XML do keeper-client. [#96800](https://github.com/ClickHouse/ClickHouse/pull/96800) ([Grigorii Sokolik](https://github.com/GSokol)).
* Melhora as escritas do `Iceberg` para o Unity Catalog. [#98162](https://github.com/ClickHouse/ClickHouse/pull/98162) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Adicionar a configuração `finalize_projection_parts_synchronously` para permitir a finalização síncrona das partes de projeção durante o INSERT, reduzindo o pico de uso de memória em tabelas com muitas projeções e preservando, por padrão, o comportamento assíncrono existente. [#98228](https://github.com/ClickHouse/ClickHouse/pull/98228) ([Amos Bird](https://github.com/amosbird)).
* Adicionar a coluna `projections_duration_ms` a `system.part_log`, que registra, em milissegundos, a duração da mesclagem/reconstrução de cada projeção. [#98292](https://github.com/ClickHouse/ClickHouse/pull/98292) ([Amos Bird](https://github.com/amosbird)).
* Melhoria no cancelamento de consultas usando ExpressionTransform e NumbersRangedSource com KILL QUERY e cancelamento de consulta (Ctrl+C) no clickhouse-client. [#98908](https://github.com/ClickHouse/ClickHouse/pull/98908) ([Roman Vasin](https://github.com/rvasin)).
* Substitua a lista `source_table_engines`, definida de forma estática, por uma consulta em tempo de execução via `StorageFactory::getAllStorages()`. Isso adiciona verificações de acesso para alguns motores de tabela que estavam faltando e fecha [#71544](https://github.com/ClickHouse/ClickHouse/issues/71544). [#98984](https://github.com/ClickHouse/ClickHouse/pull/98984) ([pufit](https://github.com/pufit)).
* Adiciona uma configuração para controlar o comportamento em caso de incompatibilidade de tipo em Variant e Dynamic (throw ou retornar null). [#99085](https://github.com/ClickHouse/ClickHouse/pull/99085) ([Bharat Nallan](https://github.com/bharatnc)).
* Melhorar a compatibilidade entre `Iceberg` e Spark: corrigir o tratamento inconsistente de caminhos causado pelo uso misto de caminhos de armazenamento e de metadados; garantir que as tabelas `Iceberg` gravem um local de tabela que seja uma URL ou um caminho absoluto; adicionar um fallback para a contagem do tamanho de arquivos no `Azure`, porque alguns leitores do ClickHouse não oferecem suporte à contagem de bytes após a travessia; tratar `version-hint.txt` de forma compatível com o Spark; introduzir abstrações em nível de tipo que dificultam a confusão entre tipos de caminho no futuro; adicionar testes para `Azure` e `Local` que verificam a interoperabilidade entre engines sem upload/download intermediário; corrigir o uso de exclusões por posição, que antes dependia de heurísticas de inferência de caminho, abordagem inadequada nesse caso. [#99163](https://github.com/ClickHouse/ClickHouse/pull/99163) ([Daniil Ivanik](https://github.com/divanik)). [#100420](https://github.com/ClickHouse/ClickHouse/pull/100420) ([Daniil Ivanik](https://github.com/divanik)).
* Corrige uma possível condição de corrida em `IPartitionStrategy::cached_result` introduzida por [https://github.com/ClickHouse/ClickHouse/pull/92844](https://github.com/ClickHouse/ClickHouse/pull/92844). [#99400](https://github.com/ClickHouse/ClickHouse/pull/99400) ([Arthur Passos](https://github.com/arthurpassos)).
* Agora, os usuários podem escrever tipos de dados Interval do ClickHouse no formato Arrow. [#99519](https://github.com/ClickHouse/ClickHouse/pull/99519) ([Peter Nguyen](https://github.com/petern48)).
* Adiciona suporte nativo à importação e exportação de tipos de dados `UUID` nos formatos `Arrow` e `Parquet`. Agora, os usuários podem consultar e transferir dados UUID diretamente entre o ClickHouse e outras ferramentas de dados, sem precisar de conversões manuais para string nem de soluções alternativas. Inferência lógica automatizada para UUIDs de nível superior e suporte a dica de esquema explícita para UUIDs aninhados. [#99521](https://github.com/ClickHouse/ClickHouse/pull/99521) ([Ivan](https://github.com/ivanmantova)).
* Suporte a arquivos `7z` em armazenamento de objetos. Fecha [#70968](https://github.com/ClickHouse/ClickHouse/issues/70968). [#99600](https://github.com/ClickHouse/ClickHouse/pull/99600) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona os ProfileEvents `ObjectStorageListedObjects`, `ObjectStorageGlobFilteredObjects`, `ObjectStoragePredicateFilteredObjects` e `ObjectStorageReadObjects` para introspecção do pipeline de listagem e leitura de arquivos em armazenamento de objetos (`S3`, `Azure` etc.). [#99778](https://github.com/ClickHouse/ClickHouse/pull/99778) ([Sema Checherinda](https://github.com/CheSema)).
* Corrige a falha da função de tabela `merge` com o erro `UNKNOWN_IDENTIFIER` ao consultar colunas que não estão presentes em todas as tabelas distribuídas/remotas subjacentes. [#99833](https://github.com/ClickHouse/ClickHouse/pull/99833) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Agora incluímos o tempo de commit na métrica de tempo total de execução de mutação do ReplicatedMergeTree. Esse tempo havia sido perdido após [#96376](https://github.com/ClickHouse/ClickHouse/issues/96376). [#99936](https://github.com/ClickHouse/ClickHouse/pull/99936) ([alesapin](https://github.com/alesapin)).
* Adiciona um log write-ahead para objetos blob com remoção pendente em `MetadataStorageFromDisk`, melhorando a durabilidade e a consistência entre os metadados e o armazenamento remoto de objetos quando esses objetos são excluídos. [#100019](https://github.com/ClickHouse/ClickHouse/pull/100019) ([Maksim Kita](https://github.com/kitaisreal)).
* Desativada a geração de SQL por IA (comando `??`) no cliente embutido (protocolos SSH e WebSocket) para impedir o acesso às variáveis de ambiente do servidor. [#100290](https://github.com/ClickHouse/ClickHouse/pull/100290) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Altera a interface dos inserts do Iceberg com o catálogo. Descontinua as configurações: `storage_catalog_type`, `storage_aws_access_key_id`, etc. [#100334](https://github.com/ClickHouse/ClickHouse/pull/100334) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Tratar tabulações como 4 espaços ao colar no clickhouse-client. Fecha [#100405](https://github.com/ClickHouse/ClickHouse/issues/100405). [#100416](https://github.com/ClickHouse/ClickHouse/pull/100416) ([Raúl Marín](https://github.com/Algunenano)).
* Evite varrer todo o catálogo remoto do lago de dados em busca de dicas de tabela “Talvez você tenha querido dizer …” quando `show_data_lake_catalogs_in_system_tables` estiver desabilitado. [#100452](https://github.com/ClickHouse/ClickHouse/pull/100452) ([Alsu Giliazova](https://github.com/alsugiliazova)).
* Aplicar `distributed_index_analysis_min_indexes_bytes_to_activate` após a poda de partições. [#100477](https://github.com/ClickHouse/ClickHouse/pull/100477) ([Azat Khuzhin](https://github.com/azat)).
* Corrige erro de asserção no pushdown do filtro de Bloom em Parquet ao usar cláusulas IN/NOT IN vazias. [#100543](https://github.com/ClickHouse/ClickHouse/pull/100543) ([zoomxi](https://github.com/zoomxi)).
* As estatísticas de coluna MinMax agora armazenam os valores mínimo e máximo como Field (tipado), em vez de Float64. O formato serializado inclui o nome do tipo da coluna junto com os valores. A versão do arquivo de estatísticas foi atualizada para V2; arquivos escritos por versões anteriores exigem re-materialização (ALTER TABLE … MATERIALIZE STATISTICS ALL). corrige [#53140](https://github.com/ClickHouse/clickhouse-private/issues/53140). [#100605](https://github.com/ClickHouse/ClickHouse/pull/100605) ([Han Fei](https://github.com/hanfei1991)).
* Atualiza `cppkafka` para incluir a correção do deadlock ao fechar o Consumer. [#100612](https://github.com/ClickHouse/ClickHouse/pull/100612) ([Azat Khuzhin](https://github.com/azat)).
* As informações do objeto usadas para o parsing de arquivos de dados no Iceberg agora incluem o número de linhas do arquivo e o tamanho do arquivo em bytes, extraídos do arquivo de manifesto. [#100645](https://github.com/ClickHouse/ClickHouse/pull/100645) ([Daniil Ivanik](https://github.com/divanik)).
* Adiciona o parâmetro de configuração `use_separate_cache_arena` para permitir controlar a separação da arena de memória do cache. [#100664](https://github.com/ClickHouse/ClickHouse/pull/100664) ([Seva Potapov](https://github.com/seva-potapov)).
* Adiciona suporte nativo para importar os tipos de dados `StringView` e `BinaryView` do Apache Arrow para colunas `String` do ClickHouse, melhorando a compatibilidade com a ingestão baseada em Arrow. [#100762](https://github.com/ClickHouse/ClickHouse/pull/100762) ([Ivan](https://github.com/ivanmantova)).
* Algumas configurações do servidor Keeper agora são recarregadas dinamicamente quando o arquivo de configuração é alterado em tempo de execução: max\_requests\_batch\_size, max\_requests\_batch\_bytes\_size, max\_request\_size, quorum\_reads. [#100773](https://github.com/ClickHouse/ClickHouse/pull/100773) ([Michael Kolupaev](https://github.com/al13n321)).
* Aumenta os eventos de perfil `MemoryAllocatedWithoutCheck/MemoryAllocatedWithoutCheckBytes` em build de release. [#100899](https://github.com/ClickHouse/ClickHouse/pull/100899) ([Pavel Kruglov](https://github.com/Avogar)).
* O rastreamento de memória do Cgroupv2 agora exclui `slab_reclaimable` da memória do kernel, oferecendo uma medida mais precisa do consumo de memória não recuperável. [#100901](https://github.com/ClickHouse/ClickHouse/pull/100901) ([Antonio Andelic](https://github.com/antonio2368)).
* `use_partition_pruning = 0` agora também desativa a poda do índice `MinMax` e a otimização de contagem nas colunas da chave de partição, além de desativar a poda com base nas chaves de partição. [#100904](https://github.com/ClickHouse/ClickHouse/pull/100904) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* `pretty=1` em `EXPLAIN [PLAN]` agora imprime expressões em um formato legível para humanos. [#100927](https://github.com/ClickHouse/ClickHouse/pull/100927) ([Kirill Kopnev](https://github.com/Fgrtue)).
* `accurateCastOrNull` e `accurateCastOrDefault` agora oferecem suporte a tipos de destino `Tuple`, incluindo `Tuples` aninhadas com elementos `Nullable`. Anteriormente, essas funções rejeitavam tipos de destino `Tuple` porque `Tuple` não podia estar dentro de `Nullable`. Fecha [#100820](https://github.com/ClickHouse/ClickHouse/issues/100820). [#100942](https://github.com/ClickHouse/ClickHouse/pull/100942) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige a duplicação de gráficos na UI do Play ao alternar entre os temas claro e escuro. [#101058](https://github.com/ClickHouse/ClickHouse/pull/101058) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Atualização do chdig para [v26.3.1](https://github.com/azat/chdig/releases/tag/v26.3.1) (interface do Perfetto, sparklines no resumo de CPU/Memória/Merges/Consultas, system.warnings, busca por regexp nos logs). [#101092](https://github.com/ClickHouse/ClickHouse/pull/101092) ([Azat Khuzhin](https://github.com/azat)). Atualização do chdig para [v26.4.3](https://github.com/azat/chdig/releases/tag/v26.4.3) (melhorias no Perfetto, correções no compartilhamento via pastila.nl, diffs de flamegraph, alteração de configurações em tempo real). [#103145](https://github.com/ClickHouse/ClickHouse/pull/103145) ([Azat Khuzhin](https://github.com/azat)).
* Agora você pode ter uma vírgula final na cláusula `WITH` antes de uma consulta `SELECT`. [#101093](https://github.com/ClickHouse/ClickHouse/pull/101093) ([Aruj Bansal](https://github.com/arujbansal)).
* Adiciona a configuração MergeTree `compress_per_column_in_compact_parts` para controlar como os blocos comprimidos são organizados nas partes Compact. Quando `true` (padrão, preservando o comportamento atual), cada coluna inicia um novo bloco comprimido, permitindo descompressão seletiva. Quando `false`, todas as colunas dentro de um grânulo são agrupadas no mesmo bloco comprimido, melhorando a taxa de compressão e o desempenho de leitura para cargas de trabalho que sempre leem todas as colunas. [#101114](https://github.com/ClickHouse/ClickHouse/pull/101114) ([Amos Bird](https://github.com/amosbird)).
* Exibir o balão com informações da tabela na UI do Play apenas ao passar o cursor sobre o nome da tabela, e não sobre a linha inteira. [#101118](https://github.com/ClickHouse/ClickHouse/pull/101118) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionados ícones específicos por engine e melhorias na UX da lista de tabelas na barra lateral da UI do Play. [#101134](https://github.com/ClickHouse/ClickHouse/pull/101134) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suporte a `Nullable(Tuple)` nos formatos legados `Arrow`, `ArrowStream`, `ORC` e `Parquet`. [#101272](https://github.com/ClickHouse/ClickHouse/pull/101272) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Exibir a linha TOTALS no rodapé da tabela na interface web (play.html). [#101286](https://github.com/ClickHouse/ClickHouse/pull/101286) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suporte ao modo de múltiplas consultas na UI web (`play.html`): execute várias consultas de uma só vez, com execução paralela de consultas do tipo `SELECT` e exibição dos resultados por consulta. [#101290](https://github.com/ClickHouse/ClickHouse/pull/101290) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido o redimensionamento de colunas na UI web do play.html após a refatoração da tabela de resultados em um componente web. [#101295](https://github.com/ClickHouse/ClickHouse/pull/101295) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionada a capacidade de limitar o número de flushes do perfil do jemalloc em MEMORY\_LIMIT\_EXCEEDED por intervalo de tempo. [#101396](https://github.com/ClickHouse/ClickHouse/pull/101396) ([Azat Khuzhin](https://github.com/azat)).
* Adicionadas as configurações do Keeper `nuraft_streaming_mode` (o padrão é `false`), `nuraft_max_log_gap_in_stream` e `nuraft_max_bytes_in_flight_in_stream`. Fecha [#90743](https://github.com/ClickHouse/ClickHouse/issues/90743). [#101427](https://github.com/ClickHouse/ClickHouse/pull/101427) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adicionada a métrica assíncrona `CGroupMemoryUsedWithoutPageCache`, que informa o uso de memória do cgroup excluindo tanto o page cache do kernel do SO quanto o userspace page cache do ClickHouse, em linha com `MemoryResidentWithoutPageCache`. Também foi esclarecida a descrição da métrica `CGroupMemoryUsed`. [#101513](https://github.com/ClickHouse/ClickHouse/pull/101513) ([Francesco Ciocchetti](https://github.com/primeroz)).
* Adicionar açúcar sintático no nível do parser para a sintaxe padrão SQL da função `OVERLAY`. A função `overlay` já existe; isso acrescenta suporte à forma baseada em palavras-chave, usando `PLACING`, `FROM` e `FOR` como separadores. [#101681](https://github.com/ClickHouse/ClickHouse/pull/101681) ([Desel72](https://github.com/Desel72)).
* Adicionado o alias de coluna `INDEX_LENGTH` à tabela de sistema `information_schema.tables`, em linha com os aliases existentes em maiúsculas nessa tabela. [#101705](https://github.com/ClickHouse/ClickHouse/pull/101705) ([Robert Schulze](https://github.com/rschu1ze)).
* Tabela de sistema `information_schema.tables` agora ignora partes inativas da tabela. Isso torna mais realistas os valores exibidos para o tamanho da tabela. [#101706](https://github.com/ClickHouse/ClickHouse/pull/101706) ([Robert Schulze](https://github.com/rschu1ze)).
* A função `ngrams` agora rejeita tamanhos de ngram inválidos. Exemplo: `SELECT ngrams('abc', 0)` agora retorna um erro. [#101922](https://github.com/ClickHouse/ClickHouse/pull/101922) ([Robert Schulze](https://github.com/rschu1ze)).
* Um complemento a [#91820](https://github.com/ClickHouse/ClickHouse/issues/91820) e [#90837](https://github.com/ClickHouse/ClickHouse/issues/90837): remover algoritmos não compatíveis da mensagem de erro; executar testes específicos de FIPS em builds FIPS. [#102067](https://github.com/ClickHouse/ClickHouse/pull/102067) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Limitar a altura das células a três linhas na Web UI (`play.html`), com expansão ao clique. [#102154](https://github.com/ClickHouse/ClickHouse/pull/102154) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionada uma nova opção que permite forçar o estilo (virtual/path) para endpoints do S3. Resolve [#82019](https://github.com/ClickHouse/ClickHouse/issues/82019); [#76007](https://github.com/ClickHouse/ClickHouse/issues/76007) Continuação de [https://github.com/ClickHouse/ClickHouse/pull/83168](https://github.com/ClickHouse/ClickHouse/pull/83168). [#102378](https://github.com/ClickHouse/ClickHouse/pull/102378) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* A configuração `restore_replace_external_engines_to_null` agora também deixa de restaurar bancos de dados com motores externos (por exemplo, `DataLakeCatalog`, `MySQL`, `PostgreSQL`, `S3`), em vez de falhar ou iniciar conexões externas. [#102400](https://github.com/ClickHouse/ClickHouse/pull/102400) ([Nikita Fomichev](https://github.com/fm4v)).
* Adicionado suporte à análise de índices de texto para a função `hasPhrase` no modo `HINT`. [#102438](https://github.com/ClickHouse/ClickHouse/pull/102438) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Trata STATISTICS como somente leitura em ColumnDependency para corrigir LOGICAL\_ERROR durante MATERIALIZE STATISTICS ALL. [#102627](https://github.com/ClickHouse/ClickHouse/pull/102627) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Criar e preencher `system.asynchronous_metric_log` no modo keeper-as-server. [#102664](https://github.com/ClickHouse/ClickHouse/pull/102664) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Adiciona a opção de configuração `default_system_log_flush_policy.skip_alias_columns` para permitir omitir colunas ALIAS das tabelas de log do sistema, corrigindo logs do sistema com backend em S3 que rejeitam colunas ALIAS. [#102669](https://github.com/ClickHouse/ClickHouse/pull/102669) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* N'ao habilite estatísticas automáticas para tabelas de sistema. Elas raramente conseguem se beneficiar delas. [#102862](https://github.com/ClickHouse/ClickHouse/pull/102862) ([Han Fei](https://github.com/hanfei1991)).
* Suporte ao tokenizador `array` para a otimização de LIKE. [#102880](https://github.com/ClickHouse/ClickHouse/pull/102880) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Enviar MemoryAllocatedWithoutCheck mesmo nas builds de release. [#103064](https://github.com/ClickHouse/ClickHouse/pull/103064) ([Azat Khuzhin](https://github.com/azat)).
* Exibe `untracked&#95;memory` por thread em `system.stack&#95;trace`. [#103065](https://github.com/ClickHouse/ClickHouse/pull/103065) ([Azat Khuzhin](https://github.com/azat)).

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

* Corrige o erro `Block structure mismatch in stream` causado por colunas desnecessárias retornadas pela materialização tardia. Corrige [#95191](https://github.com/ClickHouse/ClickHouse/issues/95191). [#96682](https://github.com/ClickHouse/ClickHouse/pull/96682) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige um erro lógico em uma consulta com política de mascaramento de dados usando `ON CLUSTER`. [#97594](https://github.com/ClickHouse/ClickHouse/pull/97594) ([Bharat Nallan](https://github.com/bharatnc)).
* Corrige um bug ao usar o Unity Catalog sobre o GCS. [#98456](https://github.com/ClickHouse/ClickHouse/pull/98456) ([Melvyn Peignon](https://github.com/melvynator)).
* `DataLakeCatalog` agora respeita a configuração `http_forbid_headers` do servidor ao validar a definição `auth_header`. [#98827](https://github.com/ClickHouse/ClickHouse/pull/98827) ([Michael Anastasakis](https://github.com/michael-anastasakis)).
* Corrige chamadas N+1 de `HeadObject` em globs do S3 com expansão por chaves. [#99219](https://github.com/ClickHouse/ClickHouse/pull/99219) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Validar alterações de configurações em consultas CREATE quando o próprio engine também oferece suporte a configurações. [#99279](https://github.com/ClickHouse/ClickHouse/pull/99279) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrigido o problema em que `ALTER TABLE UPDATE/DELETE` falhava com o erro `Missing columns` quando uma tabela tinha uma coluna MATERIALIZED cuja expressão dependia de uma coluna EPHEMERAL. [#99281](https://github.com/ClickHouse/ClickHouse/pull/99281) ([Yash ](https://github.com/Onyx2406)).
* As credenciais em strings de conexão JDBC, ODBC e NATS agora são mascaradas nos logs de consulta e na saída de `SHOW CREATE`, evitando a exposição acidental de informações sensíveis. Para strings de conexão no formato URI (por exemplo, `{scheme}://{user}:{password}@{host}`), apenas a parte da senha é mascarada, enquanto o restante permanece visível para facilitar a depuração. A configuração `nats_token` agora também é mascarada. [#99344](https://github.com/ClickHouse/ClickHouse/pull/99344) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige o `parseDateTimeBestEffort`, que analisava incorretamente palavras iniciadas por prefixos de mês no formato DD-month-YYYY. Fecha [#99345](https://github.com/ClickHouse/ClickHouse/issues/99345#event-23517658314). [#99350](https://github.com/ClickHouse/ClickHouse/pull/99350) ([Pavel Kruglov](https://github.com/Avogar)).
* Correção da ignorância de TABLE\_UUID\_MISMATCH quando o analyzer não é usado. [#99380](https://github.com/ClickHouse/ClickHouse/pull/99380) ([Azat Khuzhin](https://github.com/azat)).
* Corrige um bug em que configurações explícitas enviadas junto com `compatibility`, na mesma solicitação, podiam ser ignoradas silenciosamente quando seu valor correspondia ao padrão do servidor. [#99402](https://github.com/ClickHouse/ClickHouse/pull/99402) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Corrige casos em que números com zeros à esquerda no caminho de particionamento do Hive causavam erros. Corrige [#98801](https://github.com/ClickHouse/ClickHouse/issues/98801). [#99458](https://github.com/ClickHouse/ClickHouse/pull/99458) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige `heap-use-after-free` quando uma tabela é removida enquanto uma consulta de leitura está em execução (19 ocorrências no CI nos últimos 90 dias). [#99483](https://github.com/ClickHouse/ClickHouse/pull/99483) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido um bug no Keeper em que uma solicitação de leitura podia travar (fazendo a sessão expirar) se outra sessão não relacionada no mesmo servidor fosse encerrada exatamente no momento errado. [#99484](https://github.com/ClickHouse/ClickHouse/pull/99484) ([Michael Kolupaev](https://github.com/al13n321)).
* Validar a estrutura da coluna antes de aplicar patches. [#99531](https://github.com/ClickHouse/ClickHouse/pull/99531) ([Seva Potapov](https://github.com/seva-potapov)).
* Corrige falha de asserção em `rows_sources` na mesclagem vertical quando `SYSTEM STOP/START MERGES` é alternado rapidamente durante a mesclagem de uma tabela com colunas `Dynamic`. [#99532](https://github.com/ClickHouse/ClickHouse/pull/99532) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a poda incorreta de partições em `toWeek()`, que fazia consultas com `WHERE toWeek(date, mode) = N` retornarem resultados vazios para as semanas 49-52 em tabelas particionadas por `toYYYYMM(date)`. [#99542](https://github.com/ClickHouse/ClickHouse/pull/99542) ([Takumi Hara](https://github.com/takumihara)).
* Corrigida exceção em funções que operam sobre ColumnReplicated com linhas não referenciadas geradas por JOIN. [#99564](https://github.com/ClickHouse/ClickHouse/pull/99564) ([Hechem Selmi](https://github.com/m-selmi)).
* Corrige o problema em que `CLEAR COLUMN` não reconstruía projeções nem reavaliava colunas materializadas que dependem da coluna limpa, o que poderia causar exceções ou corrupção de dados durante mesclagens subsequentes. [#99565](https://github.com/ClickHouse/ClickHouse/pull/99565) ([Desel72](https://github.com/Desel72)).
* Foi corrigida uma exceção (`Bad get: has Tuple, actual type String`) em `ConditionSelectivityEstimator` quando uma consulta usa IN com um único parâmetro de consulta escalar (por exemplo, `WHERE col IN ({p:String})`) em uma tabela que tem estatísticas de coluna e com `use_statistics` habilitado. [#99614](https://github.com/ClickHouse/ClickHouse/pull/99614) ([Ilya Yatsishin](https://github.com/qoega)).
* Parte com projeções desconhecidas não deve ser marcada como permanentemente perdida. [#99623](https://github.com/ClickHouse/ClickHouse/pull/99623) ([Sema Checherinda](https://github.com/CheSema)).
* Corrige uma rara exceção de erro lógico durante a mesclagem vertical quando `SYSTEM STOP MERGES` e `SYSTEM START MERGES` são executados simultaneamente. [#99628](https://github.com/ClickHouse/ClickHouse/pull/99628) ([Desel72](https://github.com/Desel72)).
* Corrigida uma referência pendente em injectRequiredColumns que causava falha durante a mesclagem. [#99679](https://github.com/ClickHouse/ClickHouse/pull/99679) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Corrigido o comportamento indefinido no leitor do formato Avro ao ler valores numéricos que causam overflow no tipo da coluna de destino. Agora, as consultas falham em caso de overflow, em vez de produzir silenciosamente valores incorretos. [#99697](https://github.com/ClickHouse/ClickHouse/pull/99697) ([asyablue22](https://github.com/asyablue22)).
* Corrige a interpretação de aspas no estilo shell nos argumentos da função de tabela `executable`. [#99794](https://github.com/ClickHouse/ClickHouse/pull/99794) ([Nikita Semenov](https://github.com/leftmain)).
* Corrige um falso positivo de abort em `NativeReader` ao desserializar um fluxo em formato Native com divergência na contagem de linhas: alterado de `LOGICAL_ERROR` para `INCORRECT_DATA` para que o erro seja tratado como erro de dados, em vez de acionar `abort()` em builds de sanitizer/depuração. [#99822](https://github.com/ClickHouse/ClickHouse/pull/99822) ([Rahul Nair](https://github.com/motsc)).
* Corrige o encerramento abrupto do processo na desserialização da coluna `Tuple` quando o tipo de serialização no fluxo binário é `DETACHED`. [#99823](https://github.com/ClickHouse/ClickHouse/pull/99823) ([Rahul Nair](https://github.com/motsc)).
* Corrige uma exceção `LOGICAL_ERROR` indevida durante o redimensionamento dinâmico do cache do filesystem, causada por uma condição de corrida na promoção da subfila SLRU. [#99850](https://github.com/ClickHouse/ClickHouse/pull/99850) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige consultas de async insert que reportavam zero em `written_rows`, `read_rows` e `result_rows` no `query_log` e na saída do cliente. [#99879](https://github.com/ClickHouse/ClickHouse/pull/99879) ([Sema Checherinda](https://github.com/CheSema)).
* Corrige a exceção "Conversão inválida do tipo X para Y" em `KILL QUERY` quando a consulta interna contra as tabelas de sistema retorna colunas encapsuladas em `ColumnConst`. [#99881](https://github.com/ClickHouse/ClickHouse/pull/99881) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige erro lógico em subconsulta correlacionada dentro do argumento untuple. [#99917](https://github.com/ClickHouse/ClickHouse/pull/99917) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige uma exceção ao chamar `right`, `rightUTF8` ou outras funções de substring com um comprimento de INT64\_MIN (-9223372036854775808), o que antes causava comportamento indefinido devido a overflow de inteiro. Agora, as funções reportam corretamente um erro ARGUMENT\_OUT\_OF\_BOUND. [#99934](https://github.com/ClickHouse/ClickHouse/pull/99934) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Agora o ClickHouse deve lidar corretamente com tabelas no estilo Spark (em que temos o caminho absoluto completo de cada arquivo ou o caminho relativo em relação ao caminho comum da tabela). Corrige [#92348](https://github.com/ClickHouse/ClickHouse/issues/92348). [#99935](https://github.com/ClickHouse/ClickHouse/pull/99935) ([alesapin](https://github.com/alesapin)).
* Corrige a exceção "Formatação inconsistente de AST" em `ALTER TABLE ... MODIFY QUERY` com subconsultas aninhadas que contêm `SETTINGS` quando o próprio `ALTER` também tem `SETTINGS`. [#99938](https://github.com/ClickHouse/ClickHouse/pull/99938) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Reversão de [#97114](https://github.com/ClickHouse/ClickHouse/issues/97114) "Mover a estimativa de linhas no passo de join antes da verificação de 1 filho" devido à suspeita de regressão de desempenho. [#99957](https://github.com/ClickHouse/ClickHouse/pull/99957) ([Alexander Gololobov](https://github.com/davenger)).
* Corrige um bug em que o ClickHouse podia ignorar arquivos quando o cabeçalho `Content-Length` não estava presente na resposta à requisição HEAD correspondente (por exemplo, devido à transcodificação descompressiva no GCS). [#99971](https://github.com/ClickHouse/ClickHouse/pull/99971) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige falha de asserção (exceção em builds de depuração, resultados incorretos em builds de release) ao multiplicar estados de agregação de `NumericIndexedVector` por uma constante inteira par, causada por XOR consigo mesmos em bitmaps Roaring com alias em `pointwiseAddInplace`. [#99976](https://github.com/ClickHouse/ClickHouse/pull/99976) ([Desel72](https://github.com/Desel72)).
* Evita a exceção `Unexpected return type` no pushdown de filtro legado em `JOIN USING` encadeado quando os tipos das chaves mudam após as conversões de join. [#99999](https://github.com/ClickHouse/ClickHouse/pull/99999) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a exceção `LOGICAL_ERROR` "Unexpected node type for table expression ... Actual IDENTIFIER" quando uma subconsulta escalar é usada em um argumento não resolvido de função de tabela, por exemplo, `SELECT * FROM remote('localhost', view(SELECT 2 AS x), concat(x, (SELECT 1)))`. [#100014](https://github.com/ClickHouse/ClickHouse/pull/100014) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a falha no `INSERT` com `VALUES` quando os dados eram seguidos, na linha seguinte, por um comentário SQL no final (`--` ou `/* */`). O comentário agora é ignorado em vez de ser interpretado como outra linha. [#100016](https://github.com/ClickHouse/ClickHouse/pull/100016) ([Pratima Patel](https://github.com/pratimapatel2008)).
* Corrigida exceção no `arrayRemove` ao comparar tuplas com elementos NULL. [#100017](https://github.com/ClickHouse/ClickHouse/pull/100017) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige vazamento de dados entre usuários em `system.asynchronous_inserts`: qualquer usuário com `SELECT` na tabela podia ver entradas pendentes de insert assíncrono de outros usuários. As entradas agora são filtradas com base no usuário atual, a menos que o usuário tenha o privilégio `SHOW_USERS`. [#100024](https://github.com/ClickHouse/ClickHouse/pull/100024) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Corrige o caso em que a conversão de Time64 para UInt64 podia limitar os valores a 24 horas. [#100025](https://github.com/ClickHouse/ClickHouse/pull/100025) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige travamento do servidor local quando CREATE DICTIONARY tem uma definição com um valor de lista contendo uma função inexistente. [#100036](https://github.com/ClickHouse/ClickHouse/pull/100036) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige os formatos `CSV` e `MsgPack`, que não conseguiam interpretar `Nullable(Tuple)` corretamente. Fecha [#99753](https://github.com/ClickHouse/ClickHouse/issues/99753). [#100038](https://github.com/ClickHouse/ClickHouse/pull/100038) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige a falha de `CREATE VIEW` com `UNKNOWN_IDENTIFIER` ao usar um alias de expressão de função em `WITH` (por exemplo, `tuple(...)`) como lado direito de `IN`. [#100042](https://github.com/ClickHouse/ClickHouse/pull/100042) ([Peng](https://github.com/fastio)).
* Corrige a falha de funções de agregação de séries temporais (por exemplo, `timeSeriesResampleToGridWithStaleness`) com `ILLEGAL_TYPE_OF_ARGUMENT` quando usadas com `initializeAggregation` ou `AggregatingMergeTree` sob réplicas paralelas. [#100053](https://github.com/ClickHouse/ClickHouse/pull/100053) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o processamento de valores negativos em NumericIndexedVectorDataBSI. [#100086](https://github.com/ClickHouse/ClickHouse/pull/100086) ([Daniil Ivanik](https://github.com/divanik)).
* Correção das funções `accurateCastOrDefault` e `to*OrDefault`, que não preservavam o tipo de coluna Const em entradas constantes. [#100132](https://github.com/ClickHouse/ClickHouse/pull/100132) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Parâmetros de consulta omitidos do tipo `LowCardinality(Nullable(T))` agora passam corretamente a ter NULL como valor padrão, assim como `Nullable(T)`. [#100144](https://github.com/ClickHouse/ClickHouse/pull/100144) ([Denys Melnyk](https://github.com/germiBest)).
* Corrige o uso de um valor não inicializado em StringSearcher.h. [#100225](https://github.com/ClickHouse/ClickHouse/pull/100225) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Passa a permitir o cancelamento de subconsultas escalares e de outros pipelines durante a análise via Ctrl+C. Antes, pressionar Ctrl+C durante a execução de uma subconsulta escalar demorada não surtia efeito até que a subconsulta fosse concluída. Também corrige a barra de progresso e as estatísticas em JSON para informar corretamente as linhas lidas durante a execução de subconsultas escalares, tanto no `clickhouse-client` quanto no `clickhouse-local`. Em coautoria com @YjyJeff. [#100230](https://github.com/ClickHouse/ClickHouse/pull/100230) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigida uma exceção `LOGICAL_ERROR` em consultas que envolvem colunas `Dynamic` com junções cruzadas e filtros em tempo de execução, causada por `ColumnVariant::filter` compartilhar ponteiros para colunas Variant em vez de cloná-los no caminho de otimização `hasOnlyNulls`. Fecha [https://github.com/ClickHouse/ClickHouse/pull/100147](https://github.com/ClickHouse/ClickHouse/pull/100147). [#100234](https://github.com/ClickHouse/ClickHouse/pull/100234) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrigido um bug em Array de Variant que podia reinterpretar o tipo de dado ao chamar a função `arrayFirst`/`arrayLast`. Por exemplo, antes `Array(Variant(Date, Bool))` era convertido em `Bool` quando, na verdade, o tipo Variant subjacente era `Date`. [#100255](https://github.com/ClickHouse/ClickHouse/pull/100255) ([timothygk](https://github.com/timothygk)).
* Algumas pequenas alterações nas funções: as funções h3 agora validam melhor os limites; `readWKB` verifica os limites de tamanho (uma nova configuração, `max_wkb_geometry_elements`); as funções de geração aleatória limitam o número máximo de iterações em seus cálculos. Um desdobramento de [#93543](https://github.com/ClickHouse/ClickHouse/issues/93543). [#100270](https://github.com/ClickHouse/ClickHouse/pull/100270) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Foi corrigido um problema em que `cutURLParameter` podia ignorar parâmetros indevidamente quando eles apareciam como substrings de outros parâmetros. [#100280](https://github.com/ClickHouse/ClickHouse/pull/100280) ([Nikita Semenov](https://github.com/leftmain)).
* Corrigida exceção quando a configuração do caminho do arquivo de metadados do Iceberg contém um byte nulo. [#100283](https://github.com/ClickHouse/ClickHouse/pull/100283) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido o crescimento quadrático no número de consultas executadas quando `distributed_index_analysis` é usado com predicados que contêm subconsultas `IN`. [#100287](https://github.com/ClickHouse/ClickHouse/pull/100287) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigida a exceção "Block structure mismatch" ao usar `GROUP BY ... WITH TOTALS HAVING` em combinação com `UNION DISTINCT` e expressões Nullable. [#100293](https://github.com/ClickHouse/ClickHouse/pull/100293) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correção da exceção LOGICAL\_ERROR em `estimateCompressionRatio` quando o parâmetro `block_size_bytes` é extremamente grande. [#100298](https://github.com/ClickHouse/ClickHouse/pull/100298) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a exceção "Inconsistent AST formatting" em builds de depuração ao usar `GROUP BY CUBE(...) WITH ROLLUP` ou outras combinações semelhantes. [#100376](https://github.com/ClickHouse/ClickHouse/pull/100376) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a exceção ao criar uma view com aliases de colunas e consultas com `SELECT *` ou `EXCEPT`/`INTERSECT`. [#100386](https://github.com/ClickHouse/ClickHouse/pull/100386) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o travamento indefinido de `DROP TABLE` em tabelas com engine Kafka quando os consumidores ficam presos em um rebalanceamento após um erro de heartbeat. [#100388](https://github.com/ClickHouse/ClickHouse/pull/100388) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a exceção `ReadBuffer is canceled. Can't read from it.` durante operações de backup/restauração com arquivos zip. [#100400](https://github.com/ClickHouse/ClickHouse/pull/100400) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a exceção `TOO_MANY_ROWS` em consultas `SELECT count()` com `max_rows_to_read` / `force_primary_key` quando os dados estão distribuídos em várias partes com limites de grânulos não alinhados. [#100408](https://github.com/ClickHouse/ClickHouse/pull/100408) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige `system.completions` para filtrar corretamente bancos de dados, tabelas e colunas por permissões de acesso em todas as combinações de grant: por tabela, por DB e revogação por coluna. [#100432](https://github.com/ClickHouse/ClickHouse/pull/100432) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Corrige SEGFAULT no NuRaft causado por uma condição de corrida. [#100444](https://github.com/ClickHouse/ClickHouse/pull/100444) ([Pablo Marcos](https://github.com/pamarcos)).
* `min`/`max`/`argMin`/`argMax` agora tratam NaN de forma consistente com `ORDER BY`: NaN é sempre ignorado (só é retornado quando todos os valores são NaN). Antes, os resultados dependiam da posição de NaN nos dados devido à semântica de comparação não ordenada do IEEE 754. [#100448](https://github.com/ClickHouse/ClickHouse/pull/100448) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigido um bug de copiar e colar em que `delta_lake_snapshot_end_version`, quando definido sem `delta_lake_snapshot_start_version`, era ignorado silenciosamente em vez de gerar um erro `BAD_ARGUMENTS`. [#100454](https://github.com/ClickHouse/ClickHouse/pull/100454) ([Mohammad Lareb Zafar](https://github.com/zlareb1)).
* `StorageRabbitMQ::shutdown` não é idempotente (acessa incondicionalmente ponteiros fracos e depois destrói os ponteiros compartilhados correspondentes), mas agora ele é chamado duas vezes: primeiro em `StreamingStorageRegistry` e depois em `DatabaseCatalog`. Esta correção torna o método idempotente e adiciona verificações defensivas contra nulo. [#100455](https://github.com/ClickHouse/ClickHouse/pull/100455) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrigida a exceção `LOGICAL_ERROR` ao usar `accurateCastOrNull` com `QBit` como tipo de destino. [#100470](https://github.com/ClickHouse/ClickHouse/pull/100470) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Corrige a exceção LOGICAL\_ERROR "Stream ... not found" ao inserir dados em uma tabela com colunas `Array(JSON)` aninhadas em partes wide com `optimize_on_insert=0`. [#100475](https://github.com/ClickHouse/ClickHouse/pull/100475) ([Pavel Kruglov](https://github.com/Avogar)).
* Validar os caminhos das entradas de arquivos nos metadados de backup para rejeitar travessia de diretórios, caminhos absolutos e nomes vazios durante `RESTORE`. [#100483](https://github.com/ClickHouse/ClickHouse/pull/100483) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrigida a sintaxe `LIMIT m OFFSET n WITH TIES`, que não funcionava. Essa sintaxe é equivalente a `LIMIT n, m WITH TIES`, que já funcionava. [#100491](https://github.com/ClickHouse/ClickHouse/pull/100491) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrigida a exceção "No set is registered for key" ao usar `IN` com colunas `Nullable(Tuple)` que têm campos nomeados e elementos `LowCardinality`. [#100523](https://github.com/ClickHouse/ClickHouse/pull/100523) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige `heap-buffer-overflow` em usearch `sorted_buffer_gt::insert()`, que poderia causar travamento ou corromper a memória silenciosamente durante a busca por similaridade vetorial. [#100537](https://github.com/ClickHouse/ClickHouse/pull/100537) ([Dustin Healy](https://github.com/dustinhealy)).
* Corrige o fato de `EXECUTE AS` ignorar as cláusulas `FORMAT` e `INTO OUTFILE` especificadas na consulta. [#100538](https://github.com/ClickHouse/ClickHouse/pull/100538) ([pufit](https://github.com/pufit)).
* Corrige a formatação inconsistente da AST para SAMPLE com OFFSET no nível da consulta. Fecha [#100576](https://github.com/ClickHouse/ClickHouse/issues/100576). [#100579](https://github.com/ClickHouse/ClickHouse/pull/100579) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige o catálogo Polaris no Azure. Desde a versão 25.12, esse catálogo no Azure passou a adicionar o bucket no início do caminho. Por exemplo, `abfss://polaris-polaris@<some_url>.windows.net/polaris-polaris/<other-path>` em vez de `abfss://polaris-polaris@<some_url>.windows.net/<other-path>`. Este PR remove o bucket do caminho. [#100583](https://github.com/ClickHouse/ClickHouse/pull/100583) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrigida exceção de incompatibilidade de tipos em transform quando a coluna padrão é `const` em alguns blocos. Fecha [#100574](https://github.com/ClickHouse/ClickHouse/issues/100574). [#100616](https://github.com/ClickHouse/ClickHouse/pull/100616) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige casos de NOT\_FOUND\_COLUMN\_IN\_BLOCK em que a parte SELECT da projeção contém colunas que não existem na parte SELECT original da consulta. Fecha [#100194](https://github.com/ClickHouse/ClickHouse/issues/100194). [#100623](https://github.com/ClickHouse/ClickHouse/pull/100623) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Valida as dimensões do shape no formato Npy em relação ao tamanho do arquivo e aos limites de overflow para evitar negação de serviço causada por arquivos `.npy` maliciosamente criados com dimensões excessivamente grandes. Também rejeita shapes vazios e limita a memória por linha a 2 GiB. [#100625](https://github.com/ClickHouse/ClickHouse/pull/100625) ([Raúl Marín](https://github.com/Algunenano)).
* Correção do problema em que `session_timezone` era ignorado ao analisar valores `DateTime` durante inserts assíncronos (TCP) e todos os inserts via HTTP. [#100647](https://github.com/ClickHouse/ClickHouse/pull/100647) ([Sema Checherinda](https://github.com/CheSema)).
* Permite passar a chave de sharding para as funções de tabela `cluster()` e `clusterAllReplicas()` ao usar uma função de tabela como fonte (por exemplo, `cluster('name', view(...), sharding_key)`). [#100665](https://github.com/ClickHouse/ClickHouse/pull/100665) ([Sergey Veletskiy](https://github.com/velom)).
* Corrige uma falha do servidor (falha de asserção) ao usar funções agregadas paramétricas com o combinador Array e argumentos NULL, como `quantileIfArrayArray(0.5)([[NULL]], [[1]])`. [#100679](https://github.com/ClickHouse/ClickHouse/pull/100679) ([nerve-bot](https://github.com/nerve-bot)).
* Corrige uma exceção ao calcular o supertipo comum para tuplas vazias e não vazias com `use_variant_as_common_type` ativado. [#100699](https://github.com/ClickHouse/ClickHouse/pull/100699) ([Antonio Andelic](https://github.com/antonio2368)).
* O servidor não falha mais ao iniciar quando um disco do Azure Blob Storage está configurado, mas o endpoint está temporariamente inacessível (por exemplo, por falha de DNS). [#100701](https://github.com/ClickHouse/ClickHouse/pull/100701) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige o comportamento indefinido em `positiveModulo` quando o divisor sem sinal não pode ser representado no tipo de resultado com sinal. [#100705](https://github.com/ClickHouse/ClickHouse/pull/100705) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige falha no servidor (erro lógico "Unexpected return type from \_\_topKFilter") quando `use_top_k_dynamic_filtering` está habilitado e a coluna `ORDER BY` tem tipo `Dynamic` ou `Variant`. [#100742](https://github.com/ClickHouse/ClickHouse/pull/100742) ([Groene AI](https://github.com/groeneai)).
* Corrige travamento do servidor ao usar a função `has()` com PREWHERE/WHERE em uma chave Tuple que contém elementos LowCardinality. [#100760](https://github.com/ClickHouse/ClickHouse/pull/100760) ([Groene AI](https://github.com/groeneai)).
* Corrigida a falha na asserção `file_offset_of_buffer_end <= getFileSize()` (exceção em builds de depuração) ao ler tabelas `Log` ou `StripeLog` no armazenamento de objetos S3 com gravações concorrentes. [#100763](https://github.com/ClickHouse/ClickHouse/pull/100763) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige uma exceção no estimador de seletividade das estatísticas quando uma cláusula WHERE contém uma expressão de função (por exemplo, toDecimal64(col, 3)) em uma tabela com estatísticas habilitadas. Agora, o estimador ignora esses predicados em vez de tentar uma conversão de tipo inválida. [#100764](https://github.com/ClickHouse/ClickHouse/pull/100764) ([Han Fei](https://github.com/hanfei1991)).
* Corrige um caso raro em que um `join` com reordenação pode gerar um resultado incorreto. [#100790](https://github.com/ClickHouse/ClickHouse/pull/100790) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige tipos de argumento incorretos em `AggregateFunction` na otimização de contagem trivial, o que causava a exceção `NUMBER_OF_ARGUMENTS_DOESNT_MATCH` ao consultar expressões como `count(v0 + v1)` em tabelas distribuídas. [#100794](https://github.com/ClickHouse/ClickHouse/pull/100794) ([YjyJeff](https://github.com/YjyJeff)).
* Alguns catálogos podem exibir informações sensíveis na seção `SETTINGS` do resultado da consulta `select * from system.databases`. Este PR evita esse comportamento. [#100800](https://github.com/ClickHouse/ClickHouse/pull/100800) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrige comportamento indefinido (overflow de inteiro com sinal) em `toStartOfInterval` ao usar intervalos `Week`, `Quarter` ou `Year` com um argumento `origin` e valores de intervalo extremos. [#100817](https://github.com/ClickHouse/ClickHouse/pull/100817) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige os combinadores de funções de agregação `If`, `Distinct`, `DistinctIf`, `IfState ` com tipo de retorno `Tuple` e um ou mais argumentos `Nullable`, que não conseguiam ler estados serializados antigos após a introdução de `Nullable(Tuple)`. Fecha [#98917](https://github.com/ClickHouse/ClickHouse/issues/98917). [#100826](https://github.com/ClickHouse/ClickHouse/pull/100826) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige segfault em s3Cluster e consultas distribuídas devido a um use-after-free no pool de conexões. [#100837](https://github.com/ClickHouse/ClickHouse/pull/100837) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige falha de segmentação causada por desreferência de ponteiro nulo ao carregar dicionários durante o desligamento do servidor. `Context::getUserDefinedSQLObjectsStorage` (desreferencia `user_defined_sql_objects_storage`) é chamado por threads de dicionário em paralelo à thread principal, que chama `Context::shutdown` (define `user_defined_sql_objects_storage` como nulo). Precisamos garantir que futuras atualizações no carregador de dicionários sejam desabilitadas, interromper as consultas de dicionário em execução e aguardar a finalização das threads de carregamento de dicionários — tudo isso antes de executar `Context::shutdown`. Semelhante ao que fazemos com consultas normais. [#100839](https://github.com/ClickHouse/ClickHouse/pull/100839) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrigido estouro de buffer em `ULIDStringToDateTime` quando a entrada contém bytes não ASCII. [#100843](https://github.com/ClickHouse/ClickHouse/pull/100843) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige falha (`LOGICAL_ERROR`) ao consultar uma tabela `Merge` (ou a função de tabela `merge()`) que engloba várias tabelas, incluindo uma tabela `Distributed`, com `distributed_group_by_no_merge=1` ativado. [#100859](https://github.com/ClickHouse/ClickHouse/pull/100859) ([Groene AI](https://github.com/groeneai)).
* Cast\_keep\_nullable, quando ativado, não gerará exceção ao converter NULL dinâmico em variant. [#100864](https://github.com/ClickHouse/ClickHouse/pull/100864) ([Seva Potapov](https://github.com/seva-potapov)).
* Corrige os comandos `get`, `exists` e `ls` do `clickhouse-keeper-client`, que exibiam mensagens de erro duplicadas de `watch_id` em stdout em vez de stderr. [#100893](https://github.com/ClickHouse/ClickHouse/pull/100893) ([Mohammad Lareb Zafar](https://github.com/zlareb1)).
* Corrige a exceção em `intDiv`/`intDivOrZero` em arrays de tuplas Nullable, por exemplo, `SELECT intDiv([divide((1, 2), ... AND NULL)], 2)`. [#100895](https://github.com/ClickHouse/ClickHouse/pull/100895) ([Raúl Marín](https://github.com/Algunenano)).
* Avalia os argumentos da engine `StorageAlias` antes de armazenar a definição, para que expressões como `currentDatabase()` sejam resolvidas como literais antes de serem salvas no banco de dados. [#100902](https://github.com/ClickHouse/ClickHouse/pull/100902) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrigido `processAndOptimizeTextIndexFunctions` quando `query_plan_merge_expressions = 0`, em que `ExpressionStep` fica diretamente acima de `ReadFromMergeTree`. Corrige [#100879](https://github.com/ClickHouse/ClickHouse/issues/100879). [#100909](https://github.com/ClickHouse/ClickHouse/pull/100909) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Atualizado o replxx para incluir correção de acesso fora dos limites em do\_complete\_line. [#100925](https://github.com/ClickHouse/ClickHouse/pull/100925) ([Azat Khuzhin](https://github.com/azat)).
* Corrige resultados incorretos quando um JOIN com a otimização shard-by-PK usa o cache de condições da consulta e algumas partes são filtradas por condições armazenadas em cache. [#100926](https://github.com/ClickHouse/ClickHouse/pull/100926) ([Groene AI](https://github.com/groeneai)).
* Corrige o retorno de `ILLEGAL_DIVISION` por `divide` e `intDiv` quando usados em expressões de filtro durante a análise de índices, em alguns casos. [#100928](https://github.com/ClickHouse/ClickHouse/pull/100928) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrigidos erros "A tabela de destino não existe" em visões materializadas com tabelas internas durante a inicialização assíncrona, causados por uma ordem incorreta das dependências na inicialização. [#100946](https://github.com/ClickHouse/ClickHouse/pull/100946) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige comportamento indefinido (overflow de inteiro assinado) em `parseDateTimeBestEffort` ao analisar strings de data e hora com mais de 18 dígitos na parte fracionária dos segundos. [#100948](https://github.com/ClickHouse/ClickHouse/pull/100948) ([Vasily Chekalkin](https://github.com/bacek)).
* Corrigida uma falha ao usar um índice de pesquisa textual com uma cláusula `IN` contendo uma subconsulta Tuple, por exemplo, `WHERE (id, str) IN (SELECT (id, str) FROM ...)`, ou quando o número de colunas da subconsulta não corresponde ao da tupla no lado esquerdo de `IN`. [#100959](https://github.com/ClickHouse/ClickHouse/pull/100959) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigida uma falha ao criar um dicionário de polígonos a partir de uma tabela `MergeTree` que usa serialização esparsa de colunas. [#100964](https://github.com/ClickHouse/ClickHouse/pull/100964) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigido o erro lógico "Invalid action query tree node" ao usar `INTERSECT ALL` / `UNION ALL` com expressões simplificadas para constantes. [#100977](https://github.com/ClickHouse/ClickHouse/pull/100977) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a função de agregação `sumCountOrDefault` com um ou mais argumentos `Nullable` que não conseguiam ler estados serializados antigos após a introdução de `Nullable(Tuple)`. Fecha [#100882](https://github.com/ClickHouse/ClickHouse/issues/100882). [#101021](https://github.com/ClickHouse/ClickHouse/pull/101021) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige falha (`Logical error: isConst/isSparse/isReplicated assertTypeEquality`) em algoritmos de merge quando a replicação preguiçosa de colunas (`enable_lazy_columns_replication`) produz colunas `ColumnReplicated` que entram em pipelines de merge-sort com entradas que chegam mais tarde. [#101036](https://github.com/ClickHouse/ClickHouse/pull/101036) ([Groene AI](https://github.com/groeneai)).
* Corrige o erro incorreto `UNKNOWN_IDENTIFIER` quando o mesmo alias é usado para várias expressões em `SELECT`; agora é reportado o erro correto `MULTIPLE_EXPRESSIONS_FOR_ALIAS`. [#101040](https://github.com/ClickHouse/ClickHouse/pull/101040) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige colunas ALIAS com tipos `DateTime`/`DateTime64` que não aplicavam a conversão de fuso horário quando o fuso horário declarado é diferente do fuso horário da expressão. [#101043](https://github.com/ClickHouse/ClickHouse/pull/101043) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o problema de as políticas de linha não serem registradas em `query_log` para views, subconsultas e `INSERT ... SELECT`. Embora as políticas de linha fossem aplicadas durante o planejamento da consulta, elas não eram propagadas dos subplanejadores para o planejador pai para fins de registro. As políticas de linha (apenas para registro) agora são mantidas em `QueryAccessInfo`, para que tanto os planejadores quanto os subplanejadores possam preenchê-las. [#101044](https://github.com/ClickHouse/ClickHouse/pull/101044) ([Narasimha Pakeer](https://github.com/npakeer)).
* Corrige a exceção em `DirectJoinMergeTreeEntity` quando os blocos do pipeline contêm colunas `ColumnConst` mescladas com colunas regulares. [#101046](https://github.com/ClickHouse/ClickHouse/pull/101046) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige espaço indevido na formatação do alias de coluna na CTE (`WITH t (a, b)` → `WITH t(a, b)`). [#101049](https://github.com/ClickHouse/ClickHouse/pull/101049) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a falha nas funções de tabela `remote`/`cluster` com funções de tabela aninhadas, como `merge`, quando o analisador está habilitado. [#101055](https://github.com/ClickHouse/ClickHouse/pull/101055) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a aplicação do `OFFSET` em dobro em consultas distribuídas quando `prefer_localhost_replica=1`, resultando em menos linhas do que o esperado. [#101071](https://github.com/ClickHouse/ClickHouse/pull/101071) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige uma falha ao usar o formato `Regexp` com uma expressão regular inválida na configuração `format_regexp`. [#101074](https://github.com/ClickHouse/ClickHouse/pull/101074) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige o erro "Illegal type Decimal64 of start parameter" em funções de agregação de séries temporais ao usar `serialize_query_plan=1` com réplicas paralelas. [#101083](https://github.com/ClickHouse/ClickHouse/pull/101083) ([Groene AI](https://github.com/groeneai)).
* Corrigida uma exceção em `optimizeLazyMaterialization` quando uma projeção com PREWHERE é usada com `ORDER BY ... LIMIT`. [#101115](https://github.com/ClickHouse/ClickHouse/pull/101115) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige falha do servidor (SIGABRT) ao usar funções de agregação com o combinador interno `Null` (por exemplo, `sumNull`, `avgNull`) e com a configuração `aggregate_functions_null_for_empty = 1` habilitada. [#101147](https://github.com/ClickHouse/ClickHouse/pull/101147) ([Groene AI](https://github.com/groeneai)).
* Corrige um erro de uso após liberação no caminho de escrita do cache do sistema de arquivos que poderia causar leituras de memória já liberada ao registrar no log segmentos de arquivo concluídos (detectado pelo MemorySanitizer no BuzzHouse). [#101161](https://github.com/ClickHouse/ClickHouse/pull/101161) ([Groene AI](https://github.com/groeneai)).
* Corrige uma falha do servidor com "Trying to attach external table to a ready set without explicit elements" quando a análise distribuída de índices encontra um predicado `GLOBAL IN` cujo Set foi criado sem elementos explícitos. [#101178](https://github.com/ClickHouse/ClickHouse/pull/101178) ([Groene AI](https://github.com/groeneai)).
* Corrige funções de agregação `MAX`/`MIN` em colunas `Decimal` que retornavam resultados incorretos quando a compilação JIT está ativada (após atingir o limite de compilação). [#101203](https://github.com/ClickHouse/ClickHouse/pull/101203) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige a desativação permanente das otimizações de `minmax_count_projection` e de `COUNT(*)` trivial após uma exclusão leve, mesmo depois de todas as partes com marca de exclusão leve terem sido mescladas. [#101212](https://github.com/ClickHouse/ClickHouse/pull/101212) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige um caso que pode levar ao erro lógico `Having zero bytes, ...` no cache, causado pela sobrescrita de um objeto remoto entre `list` e `read`, o que antes resultava em metadados de objeto obsoletos. [#101219](https://github.com/ClickHouse/ClickHouse/pull/101219) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige uma falha do servidor (LOGICAL\_ERROR: Bad cast from ColumnVector to ColumnLowCardinality) ao executar uma consulta em uma tabela MergeTree com `ORDER BY CAST(lc_column, 'Type')`, em que `lc_column` tem o tipo LowCardinality. [#101220](https://github.com/ClickHouse/ClickHouse/pull/101220) ([Groene AI](https://github.com/groeneai)).
* Corrigida a limpeza de nós de processamento obsoletos no `S3Queue`. [#101230](https://github.com/ClickHouse/ClickHouse/pull/101230) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigido UB em mergeTreeAnalyzeIndexes() em caso de argumento optimizations inválido. [#101253](https://github.com/ClickHouse/ClickHouse/pull/101253) ([Azat Khuzhin](https://github.com/azat)).
* Corrige a exceção `Logical error: 'partitions_count > 0'` ao executar `ALTER TABLE UPDATE` em sequência em uma tabela Iceberg particionada. [#101278](https://github.com/ClickHouse/ClickHouse/pull/101278) ([Desel72](https://github.com/Desel72)).
* Corrige resultados incorretos de consulta quando uma constante inteira grande (por exemplo, 256, 2147483648) é usada como predicado booleano em uma cláusula WHERE com AND em tabelas MergeTree. Por exemplo, `SELECT count() FROM t WHERE (2147483648 > b) AND 2147483648` retornava incorretamente 0 em vez de corresponder a todas as linhas. [#101287](https://github.com/ClickHouse/ClickHouse/pull/101287) ([Groene AI](https://github.com/groeneai)).
* Corrige insert-select em cluster Delta Lake com Replicated MergeTree. [#101299](https://github.com/ClickHouse/ClickHouse/pull/101299) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrigido travamento com "Logical error: Reading from materialized CTE before materialization" quando uma subconsulta escalar faz referência a uma cadeia de CTEs materializadas interdependentes. [#101305](https://github.com/ClickHouse/ClickHouse/pull/101305) ([Groene AI](https://github.com/groeneai)).
* Corrige uma condição de corrida no `storage_id` em `IStorage::getDependentViewsByColumn`. [#101385](https://github.com/ClickHouse/ClickHouse/pull/101385) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige a formatação e a clonagem da AST de BACKUP FROM SNAPSHOT. [#101405](https://github.com/ClickHouse/ClickHouse/pull/101405) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrige o crash de LOGICAL\_ERROR "O componente atual está vazio" ao consultar `system.part_moves_between_shards` com `enforce_keeper_component_tracking` habilitado. [#101462](https://github.com/ClickHouse/ClickHouse/pull/101462) ([Groene AI](https://github.com/groeneai)).
* Corrige uma falha de segmentação em DataTypeDynamic::create() quando o fuzzer gera uma AST malformada do tipo Dynamic. [#101464](https://github.com/ClickHouse/ClickHouse/pull/101464) ([Groene AI](https://github.com/groeneai)).
* Lançar um erro quando as configurações `delta_lake_snapshot_version` ou de versão do CDF forem usadas sem o DeltaKernel habilitado, em vez de retornar dados incorretos silenciosamente. [#101489](https://github.com/ClickHouse/ClickHouse/pull/101489) ([Desel72](https://github.com/Desel72)).
* Corrige a exceção `NOT_FOUND_COLUMN_IN_BLOCK` ao usar ARRAY JOIN com JOIN USING e com a configuração `analyzer_compatibility_join_using_top_level_identifier` habilitada. Fecha [#101240](https://github.com/ClickHouse/ClickHouse/issues/101240). [#101507](https://github.com/ClickHouse/ClickHouse/pull/101507) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige a falha no loop de retry de INSERT do Iceberg quando a tabela foi criada com `iceberg_metadata_file_path` e a versão de metadados de destino já existia. [#101548](https://github.com/ClickHouse/ClickHouse/pull/101548) ([Groene AI](https://github.com/groeneai)).
* Remover `Nullable` da coluna de resultado em `arrayIntersect` e funções relacionadas para evitar incompatibilidade de serialização/desserialização. [#101569](https://github.com/ClickHouse/ClickHouse/pull/101569) ([George Larionov](https://github.com/george-larionov)).
* Corrige travamento do servidor (LOGICAL\_ERROR) ao executar SELECT em uma visão materializada apoiada por uma tabela com mecanismo IcebergLocal. [#101577](https://github.com/ClickHouse/ClickHouse/pull/101577) ([Groene AI](https://github.com/groeneai)).
* Corrige a mensagem de erro incorreta ao chamar `intExp10` com o argumento NaN — ela indicava `intExp2` em vez de `intExp10`. [#101582](https://github.com/ClickHouse/ClickHouse/pull/101582) ([Krishna Chaitanya](https://github.com/Krishnachaitanyakc)).
* Correção de `allow_statistics=0`, que não bloqueava `ALTER TABLE ADD STATISTICS` e `ALTER TABLE DROP STATISTICS` após a refatoração em [#100288](https://github.com/ClickHouse/ClickHouse/issues/100288). [#101585](https://github.com/ClickHouse/ClickHouse/pull/101585) ([Krishna Chaitanya](https://github.com/Krishnachaitanyakc)).
* Corrige a falha do `CREATE TABLE` no `KeeperMap` com "Cannot create metadata for table" quando nós remanescentes do ZooKeeper de um drop parcial anterior à versão 25.1 não têm o nó `drop_lock_version`. [#101623](https://github.com/ClickHouse/ClickHouse/pull/101623) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige um possível erro lógico ao ler subcolunas de Map. Fecha [#100769](https://github.com/ClickHouse/ClickHouse/issues/100769). Fecha [#101336](https://github.com/ClickHouse/ClickHouse/issues/101336). [#101641](https://github.com/ClickHouse/ClickHouse/pull/101641) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige a prioridade da correspondência exata de subcoluna em relação à correspondência por prefixo em `getSubcolumnData` para evitar uma possível falha. Fecha [#101271](https://github.com/ClickHouse/ClickHouse/issues/101271). [#101645](https://github.com/ClickHouse/ClickHouse/pull/101645) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige o travamento (LOGICAL\_ERROR: "ColumnUnique can't contain null values") ao comparar uma coluna `LowCardinality` com uma constante NULL `Variant` quando `use_variant_default_implementation_for_comparisons` está desabilitado. [#101690](https://github.com/ClickHouse/ClickHouse/pull/101690) ([Groene AI](https://github.com/groeneai)).
* O que: Adicionada uma verificação de stream vazio ao Bzip2ReadBuffer para que ele retorne EOF em vez de lançar UNEXPECTED\_END\_OF\_FILE quando o stream interno estiver vazio. [#101691](https://github.com/ClickHouse/ClickHouse/pull/101691) ([ClickGap AI Bot](https://github.com/clickgapai)).
* O quê: Corrigido o texto descritivo invertido da coluna `alterable` em `system.s3_queue_settings` e `system.azure_queue_settings` — os significados de `0` e `1` foram invertidos para corresponder ao comportamento real do código. [#101703](https://github.com/ClickHouse/ClickHouse/pull/101703) ([ClickGap AI Bot](https://github.com/clickgapai)).
* Corrige o positiveModulo(tuple, number), que estava sendo direcionado incorretamente para divisão em vez de módulo. [#101709](https://github.com/ClickHouse/ClickHouse/pull/101709) ([ClickGap AI Bot](https://github.com/clickgapai)).
* Corrige uma falha quando `thread_pool_size` é configurado em um disco com cache. Antes, `FileCacheSettings::loadFromConfig()` rejeitava `thread_pool_size` como uma configuração desconhecida, o que impedia a inicialização do servidor. A configuração é um parâmetro válido de `IDisk` que controla o número de threads usadas nas operações de cópia entre discos durante movimentações de partes em segundo plano. [#101712](https://github.com/ClickHouse/ClickHouse/pull/101712) ([Francisco](https://github.com/Milias)).
* Corrige a criação do dicionário `RANGE_HASHED`, que aceitava silenciosamente um atributo de intervalo `MAX` inexistente e usava a configuração de tipo incorreta quando os atributos de intervalo mínimo e máximo tinham tipos diferentes. O bug era um erro de copiar e colar em `buildRangeConfiguration`, que buscava `min_attr_name` em vez de `max_attr_name` para o atributo máximo. [#101732](https://github.com/ClickHouse/ClickHouse/pull/101732) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige uma falha de `use-after-free` no agendador de concessão de CPU quando o temporizador de espera sobrevive à thread de trabalho à qual seus `ProfileEvents::Counters` se referem. [#101761](https://github.com/ClickHouse/ClickHouse/pull/101761) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige um bug nas funções arrayLevenshteinDistanceWeighted e arraySimilarity. Fecha [#101725](https://github.com/ClickHouse/ClickHouse/issues/101725). [#101767](https://github.com/ClickHouse/ClickHouse/pull/101767) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Corrigida a API de consulta do Prometheus que ignorava corpos de formulário em POST. [#101794](https://github.com/ClickHouse/ClickHouse/pull/101794) ([James Cunningham](https://github.com/JTCunning)).
* Corrige a propagação de exceção no destrutor S3 `Client::~Client`, que causava o encerramento do servidor. [#101798](https://github.com/ClickHouse/ClickHouse/pull/101798) ([Gagan Dhakrey](https://github.com/gagandhakrey)).
* Corrige um erro de uso após o fim do escopo na desserialização paralela de caminhos dinâmicos do tipo `Object`, que podia causar travamentos ao ler tabelas com muitos caminhos dinâmicos. [#101823](https://github.com/ClickHouse/ClickHouse/pull/101823) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigida a saída incorreta da função `formatDateTime` com o formatador `%W` sob determinadas configurações de formatação (não padrão). [#101847](https://github.com/ClickHouse/ClickHouse/pull/101847) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrigido falso negativo em `shouldPatchFunction` em `SYSTEM INSTRUMENT ADD` quando a string de busca aparece pela primeira vez dentro de um argumento de template do nome de símbolo desmanglado. [#101885](https://github.com/ClickHouse/ClickHouse/pull/101885) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrige a perda do registro de UDF quando a sessão do ZooKeeper expira durante a atualização periódica — todas as funções definidas pelo usuário podiam ficar indisponíveis até que uma atualização completa fosse concluída com êxito. [#101891](https://github.com/ClickHouse/ClickHouse/pull/101891) ([Nikita Fomichev](https://github.com/fm4v)).
* Corrigida a descrição de `system.codecs` para `AES_256_GCM_SIV` para indicar `AES-256` em vez de `AES-128`. [#101917](https://github.com/ClickHouse/ClickHouse/pull/101917) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Corrige o uso de extremos incorretos em índice min-max criado em coluna JSON, o que levava a um resultado incorreto de consulta. Fecha [#101700](https://github.com/ClickHouse/ClickHouse/issues/101700). [#101918](https://github.com/ClickHouse/ClickHouse/pull/101918) ([Pavel Kruglov](https://github.com/Avogar)).
* O tokenizador `splitByString` agora rejeita separadores de string vazios. [#101928](https://github.com/ClickHouse/ClickHouse/pull/101928) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrigido `materialize_skip_indexes_on_merge=false`, que não estava suprimindo índices de texto (full-text) durante a mesclagem. Antes, apenas os skip indexes não textuais (minmax, set, bloom\_filter) eram suprimidos; os índices de texto continuavam a ser criados, desperdiçando CPU e E/S. [#101932](https://github.com/ClickHouse/ClickHouse/pull/101932) ([Groene AI](https://github.com/groeneai)).
* O tokenizer `sparseGrams` gerou tokens mais longos do que o comprimento máximo informado (isso ocorreu devido a um `+2` fixo na implementação). [#101934](https://github.com/ClickHouse/ClickHouse/pull/101934) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Corrigido o SIGSEGV em `MergeTreeDataPartWriterWide::cancel` quando um construtor de stream lança uma exceção durante `addStreams`, deixando uma entrada nula em `column_streams`. [#101936](https://github.com/ClickHouse/ClickHouse/pull/101936) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige uma exceção ao consultar tabelas Merge ou Distributed com um índice de texto completo e condições de filtro combinadas que misturam `has*Tokens` com LIKE, quando `query_plan_direct_read_from_text_index` está habilitado. [#101939](https://github.com/ClickHouse/ClickHouse/pull/101939) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Corrige comportamento indefinido ao analisar pacotes de consulta do protocolo nativo com valores inválidos de `QueryProcessingStage`. [#101972](https://github.com/ClickHouse/ClickHouse/pull/101972) ([Raúl Marín](https://github.com/Algunenano)).
* Feche a conexão TCP quando ocorrer uma exceção durante a análise inicial da consulta, para evitar a leitura de dados corrompidos de um fluxo dessincronizado. [#101989](https://github.com/ClickHouse/ClickHouse/pull/101989) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige um bug de condição de corrida no SLRU do filesystem cache 26.1+, que pode levar a um erro lógico na reserva de espaço. Em uma compilação de depuração, também pode causar falha de `assert`: `'O estado anterior é Evicting, mas o estado esperado era Active ao definir a flag Evicting para 2c1e3484ecdc6b78a8978fa5b17c5097:0:339 (estado: Evicting)'.`. [#101991](https://github.com/ClickHouse/ClickHouse/pull/101991) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige a exceção ao converter uma string com dados residuais para o tipo vazio `Tuple()`. [#102011](https://github.com/ClickHouse/ClickHouse/pull/102011) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a ordenação incorreta das linhas em consultas que usam ORDER BY com o algoritmo de join grace\_hash. As consultas afetadas podiam retornar resultados na ordem errada, gerando uma saída incorreta sem qualquer aviso. [#102036](https://github.com/ClickHouse/ClickHouse/pull/102036) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige um LOGICAL ERROR (Unexpected size of index type) que podia ocorrer em consultas com RIGHT JOIN e FULL JOIN quando a configuração `max_bytes_in_join` estava definida. [#102042](https://github.com/ClickHouse/ClickHouse/pull/102042) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Corrige casos em que Time com valores negativos retornava um resultado incorreto ao ser comparado com DateTime. Fecha [#101670](https://github.com/ClickHouse/ClickHouse/issues/101670). [#102056](https://github.com/ClickHouse/ClickHouse/pull/102056) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige uma falha na atualização de UDF causada por `ZooKeeperRetriesControl` ao repetir tentativas em uma sessão do ZooKeeper obsoleta (expirada) sem renová-la. [#102059](https://github.com/ClickHouse/ClickHouse/pull/102059) ([Nikita Fomichev](https://github.com/fm4v)).
* Corrige a falta de espaços ao formatar unlock snapshot. fecha [https://github.com/clickhouse/clickhouse/issues/101723](https://github.com/clickhouse/clickhouse/issues/101723). [#102063](https://github.com/ClickHouse/ClickHouse/pull/102063) ([Han Fei](https://github.com/hanfei1991)).
* Corrige crash (SIGSEGV) ao executar uma consulta em uma view com cláusula WHERE quando a consulta interna produz colunas com tipos diferentes dos metadados da view (por exemplo, Nullable de LEFT JOIN com `join_use_nulls`). [#102085](https://github.com/ClickHouse/ClickHouse/pull/102085) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrige entradas de `VectorSimilarityIndexCache` que nunca eram removidas do cache após a remoção da part devido a chaves de cache inconsistentes. [#102152](https://github.com/ClickHouse/ClickHouse/pull/102152) ([Seva Potapov](https://github.com/seva-potapov)).
* Aplicar NACK a mensagens corrompidas ao usar o armazenamento RabbitMQ. [#102157](https://github.com/ClickHouse/ClickHouse/pull/102157) ([Seva Potapov](https://github.com/seva-potapov)).
* Corrige erro lógico ao analisar uma string inválida de tupla vazia. [#102289](https://github.com/ClickHouse/ClickHouse/pull/102289) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige resultados incorretos de agregação (linhas duplicadas) ao usar `optimize_aggregation_in_order=1` com colunas do GROUP BY em ordem diferente da chave de ordenação da tabela. [#102299](https://github.com/ClickHouse/ClickHouse/pull/102299) ([Groene AI](https://github.com/groeneai)).
* Corrige falha em `IcebergLocal` `ALTER TABLE ... UPDATE` ao usar o formato Avro, causada por os tipos encapsuladores `LowCardinality`/`Nullable` não serem desembrulhados antes da serialização. [#102337](https://github.com/ClickHouse/ClickHouse/pull/102337) ([Desel72](https://github.com/Desel72)).
* Corrigida uma falha de segmentação em mutações de colunas materializadas sem expressão. Fecha [#102185](https://github.com/ClickHouse/ClickHouse/issues/102185). [#102342](https://github.com/ClickHouse/ClickHouse/pull/102342) ([zoomxi](https://github.com/zoomxi)).
* Correção no CoalescingMergeTree para o tipo Array. Isso corrige [#89509](https://github.com/ClickHouse/ClickHouse/issues/89509). [#102384](https://github.com/ClickHouse/ClickHouse/pull/102384) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrige segfault (ou LOGICAL\_ERROR em builds de depuração) ao ler arquivos Parquet com o pushdown de filtro de Bloom habilitado e condições de igualdade/desigualdade na cláusula WHERE. A falha ocorria devido a um acesso de memória fora dos limites durante a recuperação de dados do filtro de Bloom no prefetcher do Parquet e também podia causar resultados de consulta incorretos e não determinísticos. [#102385](https://github.com/ClickHouse/ClickHouse/pull/102385) ([Groene AI](https://github.com/groeneai)).
* Corrige a interrupção com `LOGICAL_ERROR` durante o redimensionamento dinâmico do cache de sistema de arquivos SLRU, causada por estatísticas de evicção compartilhadas entre subfilas e por um caminho de recuperação incorreto para candidatos malsucedidos. [#102396](https://github.com/ClickHouse/ClickHouse/pull/102396) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige a falha de inicialização, em uma réplica nova, de tabelas alias sem tabela de destino no banco de dados Replicated. Fecha [#101320](https://github.com/ClickHouse/ClickHouse/issues/101320). [#102397](https://github.com/ClickHouse/ClickHouse/pull/102397) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige leitura fora dos limites em funções de busca em strings (`countSubstrings`, `position` etc.) ao procurar uma sequência composta inteiramente por bytes nulos. [#102401](https://github.com/ClickHouse/ClickHouse/pull/102401) ([Raúl Marín](https://github.com/Algunenano)).
* As configurações de índice de texto completo (`enable_full_text_index`, `allow_experimental_full_text_index`, `use_skip_indexes_on_data_read`) não são mais desativadas quando a configuração `compatibility` aponta para uma versão anterior à 26.1. Antes, isso podia impedir o `SharedDatabaseCatalog` de criar tabelas com índices de texto. [#102422](https://github.com/ClickHouse/ClickHouse/pull/102422) ([Nikita Fomichev](https://github.com/fm4v)).
* Corrige leitura fora dos limites no `printf` com `%` ao final. [#102472](https://github.com/ClickHouse/ClickHouse/pull/102472) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige uma exceção de chassert `ReadBuffer is canceled` em builds de depuração no AsynchronousMetrics, causada porque o rewind não redefine a flag de cancelamento do buffer. [#102524](https://github.com/ClickHouse/ClickHouse/pull/102524) ([Yuri Fedoseev](https://github.com/yurifedoseev)).
* Corrigido `hasToken` / `hasTokenOrNull` para padrões compostos apenas por separadores (por exemplo, `'()'`, `'!!!'`) em colunas com índice de texto: anteriormente, o índice ignorava silenciosamente todos os grânulos em vez de gerar `BAD_ARGUMENTS` (para `hasToken`) ou retornar `NULL` (para `hasTokenOrNull`). [#102544](https://github.com/ClickHouse/ClickHouse/pull/102544) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Corrige OOMs em requisições multi enormes no Keeper. Para tracing com OpenTelemetry, alocamos incondicionalmente >1 KiB para spans do OpenTelemetry em objetos `ZooKeeperRequest` — ou seja, para requisições multi realmente enormes, tentamos alocar >10 GiB de memória adicional. Para corrigir isso, agora mantemos dados compartilhados em memória estática e usamos `std::unique_ptr` em vez de `std::optional` em `ZooKeeperOpentelemetrySpans`. [#102586](https://github.com/ClickHouse/ClickHouse/pull/102586) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrige o aumento indevido de CurrentMetric de `NamedCollection` causado por `CREATE NAMED COLLECTION IF NOT EXISTS` em coleções existentes, além da falta de inicialização para coleções carregadas da configuração ou do armazenamento SQL na inicialização. Fecha [#102507](https://github.com/ClickHouse/ClickHouse/issues/102507). [#102598](https://github.com/ClickHouse/ClickHouse/pull/102598) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrigida a exceção em `getStructureOfRemoteTable` quando o shard local retorna colunas vazias devido a DDL concorrente. [#102604](https://github.com/ClickHouse/ClickHouse/pull/102604) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a exceção `LOGICAL_ERROR` quando várias consultas concorrentes `CREATE TABLE IF NOT EXISTS` apontam para a mesma tabela `S3Queue` em um banco de dados Shared. [#102610](https://github.com/ClickHouse/ClickHouse/pull/102610) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige o crash de LOGICAL\_ERROR "Unexpected number of rows in column subchunk" no leitor nativo Parquet V3 ao ler colunas Nullable com um filtro WHERE. [#102628](https://github.com/ClickHouse/ClickHouse/pull/102628) ([Groene AI](https://github.com/groeneai)).
* Corrige a descrição do evento de profile `AzureWriteMicroseconds`, que dizia "read" em vez de "write". [#102639](https://github.com/ClickHouse/ClickHouse/pull/102639) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Falha na política de linha que gera a exceção 'Not found column in block' em alguns casos especiais. [#102648](https://github.com/ClickHouse/ClickHouse/pull/102648) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrigida uma exceção do servidor no ClusterDiscovery quando um cluster estático (definido na configuração) ficava temporariamente sem nós ativos. [#102661](https://github.com/ClickHouse/ClickHouse/pull/102661) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige a inferência incorreta do tipo de dado de data em caso de overflow após o ajuste do fuso horário. Fecha [#102601](https://github.com/ClickHouse/ClickHouse/issues/102601). [#102674](https://github.com/ClickHouse/ClickHouse/pull/102674) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige um problema em que o `SYSTEM WAIT VIEW` ficava travado indefinidamente quando a view materializada atualizável era removida enquanto a espera estava em andamento. [#102681](https://github.com/ClickHouse/ClickHouse/pull/102681) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrigido o `CASE` com expressão Dynamic, que retornava `ELSE` para todas as linhas. Fecha [#102511](https://github.com/ClickHouse/ClickHouse/issues/102511). [#102684](https://github.com/ClickHouse/ClickHouse/pull/102684) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige a serialização do tipo Dynamic achatado usando tipos de dados codificados em binário. Fecha [#101911](https://github.com/ClickHouse/ClickHouse/issues/101911). [#102692](https://github.com/ClickHouse/ClickHouse/pull/102692) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige format\_schema\_source='query' ignorando silenciosamente resultados com múltiplas linhas. Fecha [#101905](https://github.com/ClickHouse/ClickHouse/issues/101905). [#102698](https://github.com/ClickHouse/ClickHouse/pull/102698) ([Pavel Kruglov](https://github.com/Avogar)).
* Informa o código de saída real pelo cliente SSH, em vez de mapear todos os erros para `1`. Fecha [#101741](https://github.com/ClickHouse/ClickHouse/issues/101741). [#102700](https://github.com/ClickHouse/ClickHouse/pull/102700) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige a perda de cabeçalhos HTTP em manipuladores de consulta dinâmicos/predefinidos. Fecha [#101846](https://github.com/ClickHouse/ClickHouse/issues/101846). [#102706](https://github.com/ClickHouse/ClickHouse/pull/102706) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Aplicada a correção de amostragem de Poisson a heap profiles colapsados do jemalloc para corresponder à saída do jeprof. Anteriormente, o formato colapsado subestimava os tamanhos reais de alocação por não levar em conta a probabilidade de amostragem. [#102759](https://github.com/ClickHouse/ClickHouse/pull/102759) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige o travamento na função `hasPhrase` com um argumento `NULL`. [#102802](https://github.com/ClickHouse/ClickHouse/pull/102802) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige falha no servidor (SIGSEGV) ao ler arquivos Avro com esquemas recursivos que contêm referências cíclicas a tipos simbólicos. Agora, esses esquemas são detectados e rejeitados com uma mensagem de erro clara, em vez de provocar uma falha. [#102853](https://github.com/ClickHouse/ClickHouse/pull/102853) ([Groene AI](https://github.com/groeneai)).
* Corrige falha do servidor (asserção `LOGICAL&#95;ERROR`) quando uma função em uma coluna `Variant` atinge o limite de memória ou outra exceção que não seja de conversão de tipo durante o casting do resultado em `FunctionVariantAdaptor`. A exceção agora é propagada corretamente, em vez de ser classificada incorretamente como um erro interno. [#102855](https://github.com/ClickHouse/ClickHouse/pull/102855) ([Groene AI](https://github.com/groeneai)).
* Corrige falha do servidor em builds de depuração/com sanitizers quando `std::length_error` é lançada durante a inferência de esquema (por exemplo, por valores extremos de `input_format_msgpack_number_of_columns` ou dados de entrada malformados). [#102859](https://github.com/ClickHouse/ClickHouse/pull/102859) ([Groene AI](https://github.com/groeneai)).
* Fazer com que a representação de NULL na serialização de colunas replicadas e esparsas respeite as configurações (por exemplo, format\_tsv\_null\_representation). [#102888](https://github.com/ClickHouse/ClickHouse/pull/102888) ([Hechem Selmi](https://github.com/m-selmi)).
* Retroportado em [#103499](https://github.com/ClickHouse/ClickHouse/issues/103499): corrige um problema em que requisições ao S3 falhavam com `ios_base::clear: unspecified iostream_category error` em vez de serem repetidas, causado por `BufferedStreamBuf::flushBuffer` do Poco não tratar escritas curtas da camada de socket. [#102894](https://github.com/ClickHouse/ClickHouse/pull/102894) ([Sema Checherinda](https://github.com/CheSema)).
* Corrige as otimizações de `minmax_count_projection` e do `COUNT(*)` trivial, que permaneciam desabilitadas permanentemente após uma exclusão leve, mesmo depois de todas as partes com uma máscara de exclusão leve terem sido mescladas. [#102900](https://github.com/ClickHouse/ClickHouse/pull/102900) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigidos travamentos aleatórios no jemalloc devido ao LTO. [#102913](https://github.com/ClickHouse/ClickHouse/pull/102913) ([Azat Khuzhin](https://github.com/azat)).
* Otimize cadeias com OR em políticas de linha para `IN` no novo analisador. [#102915](https://github.com/ClickHouse/ClickHouse/pull/102915) ([Azat Khuzhin](https://github.com/azat)).
* Corrige a corrupção de metadados do jemalloc causada pela liberação do cache de páginas com alinhamento incorreto, o que pode causar falhas. [#102918](https://github.com/ClickHouse/ClickHouse/pull/102918) ([Azat Khuzhin](https://github.com/azat)).
* INSERTs simples sem visões materializadas não solicitam mais slots do ConcurrencyControl e threads em excesso (`max_threads` em vez de `max_insert_threads`), evitando o esgotamento de slots de CC e a explosão no número de threads em clusters com alta taxa de INSERTs. [#102961](https://github.com/ClickHouse/ClickHouse/pull/102961) ([Sema Checherinda](https://github.com/CheSema)).
* Reintroduzido o ArrowMemoryPool para permitir lançar MEMORY\_LIMIT\_EXCEEDED e evitar OOM do kernel. [#102999](https://github.com/ClickHouse/ClickHouse/pull/102999) ([Azat Khuzhin](https://github.com/azat)).
* Corrige o problema em que `cast_string_to_date_time_mode` era ignorado em `CAST` para `Nullable(DateTime)`. Fecha [#101840](https://github.com/ClickHouse/ClickHouse/issues/101840). [#103035](https://github.com/ClickHouse/ClickHouse/pull/103035) ([Pavel Kruglov](https://github.com/Avogar)).
* Adicionado suporte a colunas `ALIAS` na otimização de leitura direta do índice de texto. [#103037](https://github.com/ClickHouse/ClickHouse/pull/103037) ([Anton Popov](https://github.com/CurtizJ)).
* Backport em [#103454](https://github.com/ClickHouse/ClickHouse/issues/103454): corrige o caso em que `SELECT DISTINCT` retornava silenciosamente resultados incompletos quando uma projeção de agregação correspondia à consulta e algumas partes da tabela não tinham dados de projeção (por exemplo, a projeção foi adicionada a uma tabela que já continha dados, e `MATERIALIZE PROJECTION` não foi executado). Fecha [#102951](https://github.com/ClickHouse/ClickHouse/issues/102951). [#103052](https://github.com/ClickHouse/ClickHouse/pull/103052) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige resultados incorretos retornados por `WHERE x AND toNullable(N)` em tabelas `MergeTree` quando `N` é um inteiro com largura maior que `UInt8` (por exemplo, `256`, `65535`, `2147483648` ou qualquer inteiro negativo). O filtro descartava incorretamente todas as linhas porque `splitFilterNodeForAllowedInputs` usava um zero `NULL` ao converter para booleano o restante `Nullable` de um `AND` reduzido, fazendo com que a comparação se tornasse `NULL` sob a lógica de três valores. [#103077](https://github.com/ClickHouse/ClickHouse/pull/103077) ([Groene AI](https://github.com/groeneai)).
* Corrigido o tipo incorreto de argumento informado nas mensagens de erro das funções de busca em strings (por exemplo, `locate`, `position`) quando os argumentos são passados em ordem invertida (`locate(needle, haystack)` com `function_locate_has_mysql_compatible_argument_order = 1`). [#103102](https://github.com/ClickHouse/ClickHouse/pull/103102) ([Alex Kuleshov](https://github.com/0xAX)).
* Corrige o bloqueio indefinido de waitForPause quando disableFailPoint é chamado sem nenhuma thread pausada no failpoint. [#103119](https://github.com/ClickHouse/ClickHouse/pull/103119) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Limita as strings do pacote TCP Hello de pré-autenticação a 64 KB e adiciona a configuração de servidor `handshake_timeout_milliseconds` para limitar o tempo total do handshake, evitando que clientes não autenticados consumam memória em excesso ou ocupem threads indefinidamente. [#103284](https://github.com/ClickHouse/ClickHouse/pull/103284) ([Sema Checherinda](https://github.com/CheSema)).
* Corrige estatísticas min\_value > max\_value no ColumnIndex do Parquet para colunas String. [#103334](https://github.com/ClickHouse/ClickHouse/pull/103334) ([Saurabh Kumar Ojha](https://github.com/saurabhojha)).
* Verificação de dados Dynamic achatados malformados no formato Native. [#103392](https://github.com/ClickHouse/ClickHouse/pull/103392) ([Pavel Kruglov](https://github.com/Avogar)).
* Preenchimento da coluna `_time` a partir da função de tabela `url`. [#103437](https://github.com/ClickHouse/ClickHouse/pull/103437) ([Nikita Taranov](https://github.com/nickitat)).
* Corrige a detecção de SVE, que usava instruções SVE quando elas não estavam disponíveis. [#103568](https://github.com/ClickHouse/ClickHouse/pull/103568) ([Raúl Marín](https://github.com/Algunenano)).

<div id="267-build-testing-packaging-improvement">
  #### melhorias em build, testes e empacotamento
</div>

* A dependência Libstemmer (Snowball) agora usa a nova versão v3.0.1. [#99256](https://github.com/ClickHouse/ClickHouse/pull/99256) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Configurações aleatórias no clickhouse-test: `use_skip_indexes_for_top_k`, `use_top_k_dynamic_filtering`, `query_plan_max_limit_for_top_k_optimization`. [#91782](https://github.com/ClickHouse/ClickHouse/pull/91782) ([Nikita Fomichev](https://github.com/fm4v)).
* Implemente um teste de estresse para funções, verificando a consistência de suas diversas propriedades. [#93543](https://github.com/ClickHouse/ClickHouse/pull/93543) ([Michael Kolupaev](https://github.com/al13n321)).
* Fornece uma configuração própria do CMake para `llvm-project`, em vez de importar a configuração upstream. [#97453](https://github.com/ClickHouse/ClickHouse/pull/97453) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Randomizar mais configurações `optimize_*` na infraestrutura de testes para melhorar a cobertura das etapas de otimização de consultas. [#97547](https://github.com/ClickHouse/ClickHouse/pull/97547) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Use a toolchain Rust nightly-2026-03-22. [#98602](https://github.com/ClickHouse/ClickHouse/pull/98602) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Usa `wasmtime` v42.0.1. [#98603](https://github.com/ClickHouse/ClickHouse/pull/98603) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Usar `llvm-project` 22.1.1. [#98882](https://github.com/ClickHouse/ClickHouse/pull/98882) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Substitua `SANITIZE_COVERAGE` (callbacks personalizados do sanitizer, granularidade no nível de símbolo) pela cobertura baseada no código-fonte do LLVM (`WITH_COVERAGE`, `-fprofile-instr-generate -fcoverage-mapping`) para o pipeline noturno de cobertura por teste. O servidor agora lê seu próprio mapeamento de cobertura a partir de seções ELF na inicialização e coleta tuplas `(file, line_start, line_end)` por teste por meio de um novo comando `SYSTEM SET COVERAGE TEST 'name'`. A seleção de testes em verificações de CI direcionadas usa consultas por intervalo de linhas em uma nova tabela `checks_coverage_lines` no CIDB e classifica os testes candidatos de acordo com quantas linhas alteradas no diff eles cobrem. [#99513](https://github.com/ClickHouse/ClickHouse/pull/99513) ([Nikita Fomichev](https://github.com/fm4v)).
* Corrige o erro de linkagem do llvm-libc em builds com -O0. [#100023](https://github.com/ClickHouse/ClickHouse/pull/100023) ([Zheguang Zhao](https://github.com/zheguang)).
* Corrigidas duas mensagens de erro na inicialização do contêiner caso a configuração não incluísse as definições `logger.log` e `logger.errorlog` (por exemplo, quando todas as mensagens de log devem ser enviadas para STDOUT/STDERR). [#100239](https://github.com/ClickHouse/ClickHouse/pull/100239) ([Simon](https://github.com/simonhammes)).
* Prefira `ld64.lld` ao `ld` da Apple (cctools-port ld64) para builds do macOS. Isso deve reduzir significativamente os tempos de link no Darwin, já que o ld64 do cctools-port é muito lento com `-ffunction-sections` e `-dead_strip`. Usa `ld` como fallback se `ld64.lld` não estiver disponível. [#100275](https://github.com/ClickHouse/ClickHouse/pull/100275) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Testes para garantir que os diretórios não contenham nenhum segredo (REST + Glue). [#100307](https://github.com/ClickHouse/ClickHouse/pull/100307) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Reexecute os testes modificados recentemente com diferentes configurações aleatórias. [#100385](https://github.com/ClickHouse/ClickHouse/pull/100385) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Rastreie as dependências de arquivos `#embed` no CMake e habilite o modo de dependência do ccache para recompilações corretas. [#100411](https://github.com/ClickHouse/ClickHouse/pull/100411) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona testes de validação para consultas TPC-H. [#100580](https://github.com/ClickHouse/ClickHouse/pull/100580) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Passa a usar `aws-sdk-cpp` 1.11.771. [#100582](https://github.com/ClickHouse/ClickHouse/pull/100582) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Permitir que XMLs de teste de desempenho façam referência a arquivos externos de consulta SQL e a configurações por meio do atributo file. [#100747](https://github.com/ClickHouse/ClickHouse/pull/100747) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Corrige a compilação com `-march=x86-64-v4` ao adicionar o include ausente de `TargetSpecific.h` em `LowerUpperImpl.h`. [#100932](https://github.com/ClickHouse/ClickHouse/pull/100932) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a compilação no Gentoo adicionando `--no-default-config` a `cxxflags`. [#100973](https://github.com/ClickHouse/ClickHouse/pull/100973) ([Isak Ellmer](https://github.com/spinojara)).
* Adicionado `utils/auto-bisect/` — um framework de bisseção baseado em shell que baixa binários de CI pré-compilados e executa um script de teste fornecido pelo usuário para encontrar o primeiro commit que introduziu uma regressão, sem exigir uma compilação local. [#100989](https://github.com/ClickHouse/ClickHouse/pull/100989) ([Nikita Fomichev](https://github.com/fm4v)).
* Desabilite o ThinLTO por padrão no CMake para que os builds locais de desenvolvedor não o ativem mais implicitamente. Os builds de release da CI não são afetados, pois passam explicitamente `-DENABLE_THINLTO=1`. [#101041](https://github.com/ClickHouse/ClickHouse/pull/101041) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionar o benchmark TPC-DS SF1 aos testes de desempenho. [#101209](https://github.com/ClickHouse/ClickHouse/pull/101209) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Adicionados testes sem estado para exclusões leves no MergeTree, cobrindo: ciclo de vida da flag `has_lightweight_delete`, correção de `COUNT(*)` com `optimize_trivial_count_query`, integridade das colunas `MATERIALIZED`/`DEFAULT`, recuperação da flag no `ReplicatedMergeTree`, `read_in_order` com linhas excluídas, múltiplos ciclos de exclusão/merge, ocultação da coluna `_row_exists`, variedade de predicados e aplicação do RBAC em `ALTER DELETE`. [#101792](https://github.com/ClickHouse/ClickHouse/pull/101792) ([Nikita Fomichev](https://github.com/fm4v)).
* As imagens Docker distroless agora são publicadas nas variantes ubuntu e alpine para releases com tag. [#101941](https://github.com/ClickHouse/ClickHouse/pull/101941) ([Rahul Nair](https://github.com/motsc)).
* Os stack traces agora mostram paths relativos limpos e diretos (por exemplo, `src/Common/Exception.cpp`) em vez de paths poluídos com o diretório de build (por exemplo, `./ci/tmp/fast_build/./src/Common/Exception.cpp`). [#102000](https://github.com/ClickHouse/ClickHouse/pull/102000) ([Raúl Marín](https://github.com/Algunenano)).
* Adiciona uma verificação de estilo no CI que rejeita arquivos maiores que 5 MB commitados no repositório, com uma lista de permissões para dados de teste legítimos já existentes. Remove o `zookeeper_log.parquet` não utilizado de 14 MB. [#102080](https://github.com/ClickHouse/ClickHouse/pull/102080) ([Raúl Marín](https://github.com/Algunenano)).
* Remova cerca de 400 diretivas `#include` não utilizadas dos headers para reduzir o tempo de compilação. [#102585](https://github.com/ClickHouse/ClickHouse/pull/102585) ([Raúl Marín](https://github.com/Algunenano)).
* Passa a usar `wasmtime` v43.0.1. [#102603](https://github.com/ClickHouse/ClickHouse/pull/102603) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Usa o `openssl` 3.5.6. [#102606](https://github.com/ClickHouse/ClickHouse/pull/102606) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Use `xz` 5.8.3. [#102607](https://github.com/ClickHouse/ClickHouse/pull/102607) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Atualiza a base da imagem Docker distroless do Debian 12 (glibc 2.36, OpenSSL 3.0) para o Debian 13 (glibc 2.41, OpenSSL 3.5), reduzindo a superfície de CVEs a zero vulnerabilidades exploráveis. [#101678](https://github.com/ClickHouse/ClickHouse/pull/101678) ([Rahul Nair](https://github.com/motsc)).

<div id="263">
  ### Lançamento do ClickHouse 26.3 LTS, 2026-03-26. [Apresentação](https://presentations.clickhouse.com/), [Vídeo](https://www.youtube.com/watch?v=_bY0ucNB1lQ)
</div>

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

* Fazer downgrade após um upgrade pode causar perda de dados. Propaga as versões de serialização dos tipos de dados para tipos de dados aninhados. Por exemplo, a versão de serialização de String `with_size_stream` antes era aplicada apenas a colunas String de nível superior e a elementos de Tuple. Agora, ela é aplicada a qualquer tipo String dentro de qualquer tipo aninhado, como `Array`/`Map`/`Variant`/`JSON`/etc. Esse comportamento é controlado pela configuração do MergeTree `propagate_types_serialization_versions_to_nested_types`, que agora vem habilitada por padrão. Após essa mudança, partes de dados recém-criadas não podem ser lidas por versões mais antigas, mas partes antigas podem ser lidas na nova versão sem problemas. **O upgrade é seguro, mas o downgrade não — se você precisar reverter após fazer upgrade para a 26.3, os dados gravados pela 26.3 em colunas com tipos aninhados ficarão ilegíveis!** Veja [#101429](https://github.com/ClickHouse/ClickHouse/issues/101429) para mais detalhes. [#94859](https://github.com/ClickHouse/ClickHouse/pull/94859) ([Pavel Kruglov](https://github.com/Avogar)).
* Removido o tipo de skip index `hypothesis`. Era um recurso obscuro e experimental, com utilidade prática limitada. Criar tabelas com `INDEX ... TYPE hypothesis` agora produzirá um erro. [#96874](https://github.com/ClickHouse/ClickHouse/pull/96874) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Removida a função experimental `detectProgrammingLanguage`. [#99567](https://github.com/ClickHouse/ClickHouse/pull/99567) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a precedência do operador `NOT` para ficar de acordo com o padrão SQL: agora `NOT` tem precedência menor que `IS NULL`, `BETWEEN`, `LIKE` e os operadores aritméticos. Por exemplo, `NOT (x) IS NULL` agora é interpretado como `NOT (x IS NULL)` em vez de `(NOT x) IS NULL`. Isso pode alterar o resultado de consultas que dependiam do comportamento anterior (fora do padrão). [#97680](https://github.com/ClickHouse/ClickHouse/pull/97680) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige os metadados de projeções comuns para que projeções com chaves de ordenação de múltiplas colunas sejam reconhecidas corretamente. Com base em [#90429](https://github.com/ClickHouse/ClickHouse/issues/90429). [#91352](https://github.com/ClickHouse/ClickHouse/pull/91352) ([Amos Bird](https://github.com/amosbird)).
* Corrigidos os arquivos de índices de salto que não respeitavam a configuração replace\_long\_file\_name\_to\_hash, causando erros "File name too long" e comprometendo as leituras de índice de índices com nomes longos. Os nomes de arquivo dos índices de salto agora são transformados em hash quando excedem max\_file\_name\_length, de forma semelhante aos arquivos de coluna. Isso é retrocompatível (novos servidores leem partes antigas), mas fazer downgrade (ou usar servidores antigos durante uma atualização contínua) pode fazer com que índices com nomes longos sejam ignorados. [#97128](https://github.com/ClickHouse/ClickHouse/pull/97128) ([Raúl Marín](https://github.com/Algunenano)).
* Ative o async insert por padrão. O ClickHouse agora agrupará em lote todos os inserts pequenos por padrão. Essa configuração é definida em compatibility. Se você definir `compatibility=<version less than 26.2>`, o valor padrão será o anterior, `false`. Você pode desativar/ativar async inserts em vários níveis: na configuração dos perfis de usuários, na sessão, na consulta ou na tabela MergeTree. [#97590](https://github.com/ClickHouse/ClickHouse/pull/97590) ([Sema Checherinda](https://github.com/CheSema)).
* Altera o valor padrão de `mysql_datatypes_support_level` de vazio para `decimal,datetime64,date2Date32`, habilitando por padrão o mapeamento correto de `DATE` do MySQL para `Date32`, de `DECIMAL`/`NUMERIC` para `Decimal` e de `DATETIME`/`TIMESTAMP` com precisão para `DateTime64`. Anteriormente, as colunas `DATE` do MySQL eram mapeadas para `Date`, que não consegue representar datas anteriores a 1970-01-01, causando corrupção de dados. [#97716](https://github.com/ClickHouse/ClickHouse/pull/97716) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Aceita array de nomes de partes em vez de regexp para `mergeTreeAnalyzeIndexes{,UUID}`, já que regexp é lento (*funcionalidade experimental*). [#98474](https://github.com/ClickHouse/ClickHouse/pull/98474) ([Azat Khuzhin](https://github.com/azat)).
* Altere o valor padrão de `stderr_reaction` de `throw` para `log_last` para UDFs executáveis. UDFs que gravam avisos em stderr não falham mais quando o código de saída é 0. As exceções de código de saída agora incluem o conteúdo de stderr. [#99232](https://github.com/ClickHouse/ClickHouse/pull/99232) ([Xu Jia](https://github.com/XuJia0210)).

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

* Adicionada serialização com buckets para colunas map no MergeTree (`map_serialization_version = 'with_buckets'`). As chaves são divididas em buckets com base em hash, para que a leitura de uma única chave (`m['key']`) leia apenas um bucket em vez da coluna inteira, proporcionando aceleração de 2 a 49x nas lookups de chave única, dependendo do tamanho do map. O número de buckets e a estratégia de bucketização podem ser controlados pelas novas configurações do MergeTree: `map_serialization_version`, `max_buckets_in_map`, `map_buckets_strategy`, `map_buckets_coefficient` e `map_buckets_min_avg_size`. [#99200](https://github.com/ClickHouse/ClickHouse/pull/99200) ([Pavel Kruglov](https://github.com/Avogar)).
* Adiciona suporte a CTEs materializadas. Permite avaliar CTEs apenas uma vez durante a execução da consulta e armazenar seus resultados em tabelas temporárias. Fecha [#53449](https://github.com/ClickHouse/ClickHouse/issues/53449). [#94849](https://github.com/ClickHouse/ClickHouse/pull/94849) ([Dmitry Novik](https://github.com/novikd)).
* Permite determinadas funções padrão do SQL sem parênteses, por compatibilidade, como `NOW`. Fecha [#52102](https://github.com/ClickHouse/ClickHouse/issues/52102). [#95949](https://github.com/ClickHouse/ClickHouse/pull/95949) ([Aly Kafoury](https://github.com/AlyHKafoury)).
* Agora é possível usar a função de chave de ordenação natural como `naturalSortKey(s)`. [#90322](https://github.com/ClickHouse/ClickHouse/pull/90322) ([Nazarii Piontko](https://github.com/nazarii-piontko)).
* Agora você pode usar entrada nativa de JSON/Object para as funções JSONExtract. Fecha [#88370](https://github.com/ClickHouse/ClickHouse/issues/88370). [#96711](https://github.com/ClickHouse/ClickHouse/pull/96711) ([Fisnik Kastrati](https://github.com/fkastrati)).
* Se um parâmetro de consulta tiver tipo `Nullable` e não for especificado, vamos presumir que seu valor é `NULL`. [#93869](https://github.com/ClickHouse/ClickHouse/pull/93869) ([Vikash Kumar](https://github.com/vikashkumar2020)).
* Suporte a um ZooKeeper auxiliar para o banco de dados `Replicated`. [#95590](https://github.com/ClickHouse/ClickHouse/pull/95590) ([RinChanNOW](https://github.com/RinChanNOWWW)).
* Adicionado suporte à função `has` para o tipo JSON, para verificar a existência de um path, de forma semelhante ao Map. [#96927](https://github.com/ClickHouse/ClickHouse/pull/96927) ([DQ](https://github.com/il9ue)).
* Adicionada a função de tabela `mergeTreeTextIndex(database, table, index)`, que permite ler dados diretamente de um índice de texto. Essa função pode ser usada para introspecção ou para realizar agregações sobre os dados do índice de texto. [#97003](https://github.com/ClickHouse/ClickHouse/pull/97003) ([Anton Popov](https://github.com/CurtizJ)).
* Adicionada a configuração `table_readonly` do MergeTree para marcar tabelas como somente leitura, impedindo inserções e modificações. [#97652](https://github.com/ClickHouse/ClickHouse/pull/97652) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona a nova configuração `use_partition_pruning` e o alias `use_partition_key`. Defina-a como `false` para desativar a poda de partições com base na chave de particionamento. [#97888](https://github.com/ClickHouse/ClickHouse/pull/97888) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Implementa `ALTER TABLE ... EXECUTE expire_snapshots('<timestamp>')` para tabelas do Iceberg. [#97904](https://github.com/ClickHouse/ClickHouse/pull/97904) ([murphy-4o](https://github.com/murphy-4o)). [#99130](https://github.com/ClickHouse/ClickHouse/pull/99130)
* Permite que cada entrada `type=http` em `<protocols>` especifique uma chave `<handlers>` personalizada apontando para uma seção de configuração `<http_handlers_*>` separada, permitindo regras diferentes de roteamento HTTP por porta. [#98414](https://github.com/ClickHouse/ClickHouse/pull/98414) ([Amos Bird](https://github.com/amosbird)).
* Adicione a opção `pretty=1` ao `EXPLAIN` para uma saída em árvore com recuo e `compact=1` para colapsar etapas `Expression`, tornando os planos de consulta mais legíveis. [#98500](https://github.com/ClickHouse/ClickHouse/pull/98500) ([Kirill Kopnev](https://github.com/Fgrtue)).
* Adiciona a configuração de servidor `restore_access_entities_with_current_grants`. Quando habilitada, os usuários/roles restaurados de backups têm seus grants limitados ao que o usuário que está restaurando tem permissão para conceder (com a mesma semântica de `GRANT CURRENT GRANTS`), em vez de falhar com `ACCESS_DENIED`. [#98795](https://github.com/ClickHouse/ClickHouse/pull/98795) ([pufit](https://github.com/pufit)).
* Adicionadas as funções `caseFoldUTF8` e `removeDiacriticsUTF8` para case folding em Unicode e remoção de diacríticos. [#98973](https://github.com/ClickHouse/ClickHouse/pull/98973) ([George Larionov](https://github.com/george-larionov)).
* Adiciona a função de string `normalizeUTF8NFKCCasefold` para normalização Unicode NFKC\_Casefold, que combina a normalização NFKC com o case folding. [#99276](https://github.com/ClickHouse/ClickHouse/pull/99276) ([George Larionov](https://github.com/george-larionov)).
* Adiciona o tokenizer `unicode_word` para índices de texto completo e a função `tokens`. Ele divide o texto com base nas regras de fronteira de palavras do Unicode: palavras ASCII são formadas por caracteres conectores (sublinhado, dois-pontos, ponto e aspas simples), enquanto caracteres Unicode não ASCII se tornam tokens de um único caractere. Observação: a versão 26.3 aceita esse tokenizer apenas com o nome `unicode_word`; ele foi renomeado para `asciiCJK` na versão 26.4. [#99357](https://github.com/ClickHouse/ClickHouse/pull/99357) ([Amos Bird](https://github.com/amosbird)).
* Adicionadas as configurações `max_skip_unavailable_shards_num` e `max_skip_unavailable_shards_ratio` para limitar quantos shards podem ser ignorados sem aviso quando `skip_unavailable_shards` está habilitado. Se o número ou a proporção de shards indisponíveis exceder o limite configurado, uma exceção é lançada em vez de retornar silenciosamente resultados incompletos. [#99369](https://github.com/ClickHouse/ClickHouse/pull/99369) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Agora, os usuários podem usar a palavra-chave `SOME` em expressões de subconsulta. Ela se comporta exatamente como `ANY`. [#99842](https://github.com/ClickHouse/ClickHouse/pull/99842) ([Artem Kytkin](https://github.com/Vinceent)).
* Adicionada a configuração `output_format_trim_fixed_string` para remover bytes nulos no final de valores `FixedString` em formatos de saída de texto. [#97558](https://github.com/ClickHouse/ClickHouse/pull/97558) ([NeedmeFordev](https://github.com/spider-yamet)).
* Suporte a expressões de join entre tabelas entre parênteses na cláusula `FROM`, por exemplo, `SELECT * FROM (t1 CROSS JOIN t2)`. [#97650](https://github.com/ClickHouse/ClickHouse/pull/97650) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Implementada a função `toDaysInMonth`: ela retorna o número de dias do mês da data especificada. [#99227](https://github.com/ClickHouse/ClickHouse/pull/99227) ([Vitaly Baranov](https://github.com/vitlibar)).

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

* Adiciona suporte experimental a Funções Definidas pelo Usuário (UDFs) baseadas em WebAssembly, permitindo implementar lógica de função personalizada em WebAssembly e executá-la no ClickHouse. Agradecimentos especiais a [Alexey Smirnov](https://github.com/lioshik) por contribuir com o suporte ao backend do Wasmtime. [#88747](https://github.com/ClickHouse/ClickHouse/pull/88747) ([Vladimir Cherkasov](https://github.com/vdimir)). Melhorias incrementais no suporte a UDFs WASM. [#99373](https://github.com/ClickHouse/ClickHouse/pull/99373) ([Vasily Chekalkin](https://github.com/bacek)).
* Adiciona suporte a dialetos SQL externos usando a biblioteca `polyglot`. [#99496](https://github.com/ClickHouse/ClickHouse/pull/99496) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona o codec de compressão de ponto flutuante `ALP` (sem fallback ALP\_rd para valores double não compressíveis). [#91362](https://github.com/ClickHouse/ClickHouse/pull/91362) ([Nazarii Piontko](https://github.com/nazarii-piontko)).
* Adiciona suporte experimental a lazy type hints para colunas `JSON`. Quando habilitado por meio de `allow_experimental_json_lazy_type_hints`, `ALTER TABLE ... MODIFY COLUMN json JSON(path TypeName)` que apenas adiciona ou modifica type hints é concluído instantaneamente como uma operação somente de metadados, sem reescrever dados históricos. Os type hints são aplicados em tempo de consulta para partes antigas e materializados durante INSERTs e merges em segundo plano. [#97412](https://github.com/ClickHouse/ClickHouse/pull/97412) ([tanner-bruce](https://github.com/tanner-bruce)).
* Habilita leituras paralelas na table engine YTsaurus. [#97343](https://github.com/ClickHouse/ClickHouse/pull/97343) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).

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

* Melhora o desempenho de lagos de dados. Nas versões anteriores, a leitura no armazenamento de objetos não ajustava o pipeline ao número de threads de processamento. Isso traz melhorias de várias ordens de magnitude (\~40x) em máquinas com vários núcleos. [#99548](https://github.com/ClickHouse/ClickHouse/pull/99548) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Agora, a relação entre `enable_parallel_replicas` e `automatic_parallel_replicas_mode` é a seguinte. Uma consulta só pode usar réplicas paralelas se `enable_parallel_replicas > 0`. Além disso, se `automatic_parallel_replicas_mode=1`, a decisão de usar ou não réplicas paralelas é tomada durante o planejamento, com base nas estatísticas coletadas anteriormente. Se `automatic_parallel_replicas_mode=0`, réplicas paralelas serão usadas em todas as consultas compatíveis, independentemente de quaisquer estatísticas. Uma exceção importante é o insert-select distribuído com réplicas paralelas: nesse caso, as consultas sempre serão executadas como se `automatic_parallel_replicas_mode=0`. [#97517](https://github.com/ClickHouse/ClickHouse/pull/97517) ([Nikita Taranov](https://github.com/nickitat)).
* Permite a poda de partições quando o predicado contém qualquer operador de comparação (`=`, `<`, `>`, `!=`) e a chave de partição está envolvida em uma cadeia de funções determinísticas (por exemplo, `PARTITION BY x` e predicados como `cityHash64(x) % 5 > 2`, `toYYYYMM(x) < 2026`, `toYYYYMM(x) = 2026` ou `toYYYYMM(x) != 2026` usarão a chave de partição para poda). Fecha [#28800](https://github.com/ClickHouse/ClickHouse/issues/28800). [#98432](https://github.com/ClickHouse/ClickHouse/pull/98432) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Permite a otimização de leitura em ordem e a poda da chave primária quando o tipo de destino de `CAST` é `Nullable` e a conversão é monotônica; por exemplo, com `PRIMARY KEY x`, o ClickHouse pode usar a otimização de leitura em ordem para `ORDER BY x::Nullable(UInt64)` e aplicar a poda da chave primária a predicados como `WHERE x::Nullable(UInt64) > 500000`. [#98482](https://github.com/ClickHouse/ClickHouse/pull/98482) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Permite poda de índices e pushdown de filtros quando uma coluna de inteiros é comparada com um literal de ponto flutuante; por exemplo, predicados como `WHERE x < 10.5` agora podem usar a chave primária para poda, e filtros como `prime < 1e9` ou `number < 1e5` agora sofrem pushdown nas funções de tabela `primes()` e `numbers()`, em vez de causar execução sem limites. Fecha [#85167](https://github.com/ClickHouse/ClickHouse/issues/85167). [#98516](https://github.com/ClickHouse/ClickHouse/pull/98516) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Foi adicionado um novo cache SLRU para metadados do Parquet, melhorando o desempenho de leitura ao eliminar a necessidade de baixar os arquivos novamente apenas para ler os metadados. [#98140](https://github.com/ClickHouse/ClickHouse/pull/98140) ([Grant Holly](https://github.com/grantholly-clickhouse)).
* Suporte à inversão dos lados de junções ANTI, SEMI e FULL com base nas estatísticas do otimizador. [#97498](https://github.com/ClickHouse/ClickHouse/pull/97498) ([Hechem Selmi](https://github.com/m-selmi)).
* Otimizar o descarte de grânulos para `pointInPolygon` em polígonos grandes e corrigir a análise de índice de `pointInPolygon`, que gerava exceção durante a poda da chave primária. [#91633](https://github.com/ClickHouse/ClickHouse/pull/91633) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Melhora no desempenho da função `levenshteinDistance`. [#94543](https://github.com/ClickHouse/ClickHouse/pull/94543) ([Joanna Hulboj](https://github.com/jh0x)).
* Otimize as conversões em lote do tipo decimal, evitando chamadas de função por elemento. [#95923](https://github.com/ClickHouse/ClickHouse/pull/95923) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* As tabelas Iceberg agora oferecem suporte à pré-busca assíncrona de metadados por meio da configuração de tabela `iceberg_metadata_async_prefetch_period_ms`, que preenche periodicamente o cache de metadados de forma antecipada. Além disso, a configuração de consulta `iceberg_metadata_staleness_ms` permite que consultas SELECT usem metadados em cache se eles estiverem mais atualizados do que o nível de obsolescência especificado, eliminando chamadas ao catálogo Iceberg durante o processamento da solicitação. [#96191](https://github.com/ClickHouse/ClickHouse/pull/96191) ([Arsen Muk](https://github.com/arsenmuk)).
* O modo ordenado do `S3Queue` usa S3 ListObjectsV2 StartAfter para evitar relistar todo o histórico do prefixo, reduzindo as chamadas ao ListObjects. [#96370](https://github.com/ClickHouse/ClickHouse/pull/96370) ([Venkata  Vineel ](https://github.com/vyalamar)).
* Menor consumo de memória na desduplicação de inserts. Em geral, o bloco original é necessário para a desduplicação, mas, no caso de sync insert, pudemos omiti-lo e economizar memória de vez. [#96661](https://github.com/ClickHouse/ClickHouse/pull/96661) ([Sema Checherinda](https://github.com/CheSema)).
* Use um valor específico da arquitetura para o tamanho da linha de cache, em vez de um valor fixo de 64. [#97357](https://github.com/ClickHouse/ClickHouse/pull/97357) ([Nikita Taranov](https://github.com/nickitat)).
* Leitura ligeiramente otimizada do dicionário do índice de texto, melhorando o desempenho geral da análise de índice de texto. [#97519](https://github.com/ClickHouse/ClickHouse/pull/97519) ([Anton Popov](https://github.com/CurtizJ)).
* Acelera a descompressão de blocos de 16 bytes com `LZ4` em ARM. [#97774](https://github.com/ClickHouse/ClickHouse/pull/97774) ([Raúl Marín](https://github.com/Algunenano)).
* Refatorada a tokenização para uma nova interface de alto desempenho, substituindo a antiga API em estilo de iterador para dar suporte a SIMD e tokenizadores com estado. Parte de [#90268](https://github.com/ClickHouse/ClickHouse/issues/90268). [#97871](https://github.com/ClickHouse/ClickHouse/pull/97871) ([Amos Bird](https://github.com/amosbird)).
* Desempenho aprimorado da análise de índice de texto para consultas com condições combinadas envolvendo colunas indexadas e não indexadas. Antes, a otimização de saída antecipada durante a análise de índice era desativada incorretamente nesses casos. [#98096](https://github.com/ClickHouse/ClickHouse/pull/98096) ([Anton Popov](https://github.com/CurtizJ)).
* Melhora o desempenho de consultas com expressões constantes que geram arrays ou maps muito longos. [#98287](https://github.com/ClickHouse/ClickHouse/pull/98287) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a análise da condição de chave para chaves primárias `DateTime64` comparadas com constantes inteiras, o que anteriormente impedia a poda de grânulos. [#98410](https://github.com/ClickHouse/ClickHouse/pull/98410) ([Amos Bird](https://github.com/amosbird)).
* A configuração `optimize_syntax_fuse_functions` vem habilitada por padrão. [#98424](https://github.com/ClickHouse/ClickHouse/pull/98424) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Otimize a função de agregação `avgWeighted` usando acumuladores locais em vez de armazenar e encaminhar cada linha por meio do estado de agregação, melhorando o desempenho em até 27% para entradas Nullable. [#98793](https://github.com/ClickHouse/ClickHouse/pull/98793) ([Antonio Andelic](https://github.com/antonio2368)).
* Melhora o desempenho e reduz o uso de memória de funções de janela paralelas em determinados cenários e de cargas de trabalho com `arrayFold` em arrays grandes. Isso também pode reduzir a pressão de falhas de página e melhorar a estabilidade sob limites rígidos de memória para as consultas afetadas. [#98892](https://github.com/ClickHouse/ClickHouse/pull/98892) ([filimonov](https://github.com/filimonov)).
* Melhora o desempenho das mesclagens ordenadas. [#99013](https://github.com/ClickHouse/ClickHouse/pull/99013) ([Artem Zuikov](https://github.com/4ertus2)).
* Otimize `INTERSECT ALL` e `EXCEPT ALL`. [#99097](https://github.com/ClickHouse/ClickHouse/pull/99097) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Suporte à otimização `read_in_order_use_virtual_row` para leituras em ordem inversa. [#99198](https://github.com/ClickHouse/ClickHouse/pull/99198) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Reduza a contenção de cache em JOINs `RIGHT` e `FULL` verificando se JoinUsedFlags está definido antes de gravar. [#99274](https://github.com/ClickHouse/ClickHouse/pull/99274) ([Hechem Selmi](https://github.com/m-selmi)).
* Otimize `PrefetchingHelper::calcPrefetchLookAhead` substituindo os cálculos em ponto flutuante por aritmética inteiramente inteira, melhorando o layout do cache de instruções e reduzindo a sobrecarga de ciclos durante os loops de agregação. [#99327](https://github.com/ClickHouse/ClickHouse/pull/99327) ([Riyane El Qoqui](https://github.com/riyaneel)).
* Reduza o consumo de memória do Keeper substituindo `absl::flat_hash_set` por `CompactChildrenSet` para armazenar os filhos dos nós. O novo contêiner armazena de 0 a 1 filho inline, sem alocação no heap, o que cobre a maioria dos nós do Keeper. Isso reduz o tamanho de `KeeperMemNode` de 144 para 128 bytes. [#99860](https://github.com/ClickHouse/ClickHouse/pull/99860) ([Antonio Andelic](https://github.com/antonio2368)).
* As projeções de agregação agora são suportadas corretamente em views. Corrige [#32753](https://github.com/ClickHouse/ClickHouse/issues/32753). [#88798](https://github.com/ClickHouse/ClickHouse/pull/88798) ([Amos Bird](https://github.com/amosbird)).
* Suporte à otimização da conversão de join OUTER para INNER com `join_use_nulls`. Fecha [#90978](https://github.com/ClickHouse/ClickHouse/issues/90978). [#95968](https://github.com/ClickHouse/ClickHouse/pull/95968) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Melhora a leitura de subcolunas com o cálculo correto dos tamanhos antes da leitura. Isso reduz o uso de memória e acelera a leitura das subcolunas. [#96251](https://github.com/ClickHouse/ClickHouse/pull/96251) ([Pavel Kruglov](https://github.com/Avogar)).
* Faz com que os caches de marks, de dados não compactados e de páginas usem uma arena separada do jemalloc para evitar a fragmentação de memória quando alocações de curta duração, isto é, para consultas e requisições, se misturam com alocações de maior duração dos caches. [#96812](https://github.com/ClickHouse/ClickHouse/pull/96812) ([Seva Potapov](https://github.com/seva-potapov)). [#98812](https://github.com/ClickHouse/ClickHouse/pull/98812). [#99021](https://github.com/ClickHouse/ClickHouse/pull/99021)
* Tabelas com regras `DELETE TTL` agora podem usar o algoritmo de mesclagem vertical. [#97332](https://github.com/ClickHouse/ClickHouse/pull/97332) ([murphy-4o](https://github.com/murphy-4o)).
* Aplica data skipping indexes durante a análise distribuída de índices. [#97767](https://github.com/ClickHouse/ClickHouse/pull/97767) ([Azat Khuzhin](https://github.com/azat)).
* As marcas dos índices secundários agora são pré-carregadas quando a configuração `prewarm_mark_cache` está habilitada (carregadas no cache de marcas do índice durante os fetches de data parts e na inicialização da tabela). [#97772](https://github.com/ClickHouse/ClickHouse/pull/97772) ([Anton Popov](https://github.com/CurtizJ)).
* Redução de bloqueios no controle de acesso. [#97894](https://github.com/ClickHouse/ClickHouse/pull/97894) ([Nikita Taranov](https://github.com/nickitat)).
* Quando apply\_row\_policy\_after\_final ou apply\_prewhere\_after\_final estiver habilitado, condições compostas com AND em políticas de linha e PREWHERE agora são decompostas para extrair átomos da chave de ordenação para a análise do índice da chave primária. Antes, se um filtro adiado contivesse uma mistura de predicados da chave de ordenação e de predicados que não pertenciam à chave de ordenação (por exemplo, x > 1 AND y != 'foo'), a expressão inteira era excluída da análise de índice. Agora, átomos da chave de ordenação (como x > 1) são extraídos e usados para a poda de grânulos, mesmo em expressões AND aninhadas. [#98513](https://github.com/ClickHouse/ClickHouse/pull/98513) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Reduz a contenção de bloqueios no MergeTreeBackgroundExecutor, fazendo com que os recursos da tarefa sejam liberados sem adquirir o bloqueio. Fecha [#93620](https://github.com/ClickHouse/ClickHouse/issues/93620). [#98604](https://github.com/ClickHouse/ClickHouse/pull/98604) ([Dmitry Novik](https://github.com/novikd)).
* Corrige o uso excessivo de memória (\~514 MiB) durante a autodetecção de formato ao ler dados não Arrow (por exemplo, JSON de `url` ou `file` sem formato explícito), causado pelo leitor ArrowStream interpretar incorretamente os primeiros bytes como um comprimento de metadados enorme. [#98893](https://github.com/ClickHouse/ClickHouse/pull/98893) ([Konstantin Bogdanov](https://github.com/thevar1able)).

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

* Permite analisar arquivos GeoParquet que contêm diferentes tipos Geo na mesma coluna. [#97851](https://github.com/ClickHouse/ClickHouse/pull/97851) ([Mark Needham](https://github.com/mneedham)).
* Adiciona a função SQL `tokensForLikePattern`, que tokeniza padrões LIKE respeitando a semântica dos curingas: `%` e `_` são tratados como curingas, curingas com escape (`\%`, `\_`) são tratados como literais, e tokens adjacentes a curingas sem escape são descartados. [#97872](https://github.com/ClickHouse/ClickHouse/pull/97872) ([Amos Bird](https://github.com/amosbird)).
* Adiciona um placeholder `{_schema_hash}` para o mecanismo de tabela S3, que insere um hash das definições das colunas da tabela no caminho no S3. [#98265](https://github.com/ClickHouse/ClickHouse/pull/98265) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* `SymbolIndex`, `addressToSymbol`, `system.symbols` e `buildId` agora funcionam no macOS ao analisar as tabelas de símbolos do Mach-O. [#99014](https://github.com/ClickHouse/ClickHouse/pull/99014) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A tabela `system.stack_trace` agora funciona no macOS, permitindo a introspecção das pilhas de chamadas de todas as threads do servidor. [#98982](https://github.com/ClickHouse/ClickHouse/pull/98982) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona a opção de configuração LDAP por servidor `<follow_referrals>` (padrão `false`) para controlar se o cliente LDAP segue encaminhamentos. Desabilitar o seguimento de encaminhamentos evita timeouts e travamentos ao pesquisar a partir de um base DN na raiz do domínio do Active Directory. As mensagens de log relacionadas a encaminhamentos foram movidas de `warn` para `trace`. [#96765](https://github.com/ClickHouse/ClickHouse/pull/96765) ([paf91](https://github.com/paf91)).
* Agora rastreamos todos os índices de data skipping usados durante a execução da consulta na tabela `query&#95;log`, em uma nova coluna chamada `skip_indices`. Corrige [#78676](https://github.com/ClickHouse/ClickHouse/issues/78676). Autor original @pheepa. [#87862](https://github.com/ClickHouse/ClickHouse/pull/87862) ([Grant Holly](https://github.com/grantholly-clickhouse)).
* As dicas de ACCESS\_DENIED não revelam mais os nomes das colunas, a menos que o usuário possa exibir todas as colunas obrigatórias; os nomes do banco de dados e da tabela continuam visíveis na dica. [#91067](https://github.com/ClickHouse/ClickHouse/pull/91067) ([filimonov](https://github.com/filimonov)).
* Adiciona uma thread dedicada de limpeza para o MergeTree para evitar atrasos na limpeza em cenários de alta carga de merge. Isso resolve [#86181](https://github.com/ClickHouse/ClickHouse/issues/86181). [#91574](https://github.com/ClickHouse/ClickHouse/pull/91574) ([Amos Bird](https://github.com/amosbird)).
* Recarrega a configuração do cluster se os IPs do `hostname` do servidor local tiverem mudado, em vez dos IPs de qualquer host. Corrige [#81215](https://github.com/ClickHouse/ClickHouse/issues/81215), [#70156](https://github.com/ClickHouse/ClickHouse/issues/70156) e [#65268](https://github.com/ClickHouse/ClickHouse/issues/65268). [#93726](https://github.com/ClickHouse/ClickHouse/pull/93726) ([Zhigao Hong](https://github.com/zghong)).
* Permite que `optimize_aggregators_of_group_by_keys` otimize corretamente as funções de agregação em consultas com GROUPING SETS. [#93935](https://github.com/ClickHouse/ClickHouse/pull/93935) ([Xiaozhe Yu](https://github.com/wudidapaopao)).
* Keeper-bench: relatar erros nas métricas e gerar arquivo JSON de métricas para o modo --input-request-log. [#95748](https://github.com/ClickHouse/ClickHouse/pull/95748) ([Mohammad Lareb Zafar](https://github.com/zlareb1)).
* Adiciona a nova cláusula ROLE ao CREATE USER. [#97074](https://github.com/ClickHouse/ClickHouse/pull/97074) ([Vitaly Baranov](https://github.com/vitlibar)).
* Agora é possível definir as configurações de internal\_replication para um cluster criado pelo banco de dados Replicated. [#97228](https://github.com/ClickHouse/ClickHouse/pull/97228) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* A nova configuração `allow_nullable_tuple_in_extracted_subcolumns` controla se as subcolunas `Tuple(...)` extraídas de `Tuple`, `Variant`, `Dynamic` e `JSON` são retornadas como `Nullable(Tuple(...))` (`NULL` para linhas ausentes) ou como `Tuple(...)` (valores padrão de `Tuple` para linhas ausentes). Desativada por padrão, essa configuração só pode ser alterada reiniciando o servidor. [#97299](https://github.com/ClickHouse/ClickHouse/pull/97299) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Adiciona informações sobre filtros diferidos como um item separado na saída da consulta EXPLAIN (ao usar Row Policies/PREWHERE com FINAL). Relacionado: [#91065](https://github.com/ClickHouse/ClickHouse/pull/91065). [#97374](https://github.com/ClickHouse/ClickHouse/pull/97374) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Habilitado `type_json_allow_duplicated_key_with_literal_and_nested_object` por padrão. Isso permite evitar erros de chaves duplicadas durante o parsing de JSONs como `{"a" : 42, "a" : {"b" : 42}}`, que podem ser formatados pelo ClickHouse a partir dos dados JSON originais `{"a" : 42, "a.b" : 42}`. [#97423](https://github.com/ClickHouse/ClickHouse/pull/97423) ([Pavel Kruglov](https://github.com/Avogar)).
* Melhoria no Keeper: `find_super_nodes` é um comando muito útil para depurar aumentos inesperados na contagem de nós no Keeper. Infelizmente, se houver vários super nós, é quase impossível encontrar mais de um, porque o comando fica travado indefinidamente ao percorrer os filhos do primeiro super nó encontrado. Este PR impede a travessia dos filhos de super nós. [#97819](https://github.com/ClickHouse/ClickHouse/pull/97819) ([pufit](https://github.com/pufit)).
* Suporte inicial para autocompletar no `clickhouse-keeper-client`. [#97828](https://github.com/ClickHouse/ClickHouse/pull/97828) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Grava os buffers assíncronos de logging em caso de falha. [#97836](https://github.com/ClickHouse/ClickHouse/pull/97836) ([Azat Khuzhin](https://github.com/azat)).
* Habilite o recurso de impersonate por padrão (consulte [EXECUTE AS target\_user](https://clickhouse.com/docs/sql-reference/statements/execute_as)). [#97870](https://github.com/ClickHouse/ClickHouse/pull/97870) ([Vitaly Baranov](https://github.com/vitlibar)).
* Melhora o cancelamento de consultas com o engine de tabela SQLite por meio de KILL QUERY e cancel query (Ctrl+C) no clickhouse-client. [#97944](https://github.com/ClickHouse/ClickHouse/pull/97944) ([Roman Vasin](https://github.com/rvasin)).
* Adicionada a configuração do servidor `jemalloc_profiler_sampling_rate` para controlar o `lg_prof_sample` do jemalloc e expô-la como a métrica assíncrona `jemalloc.prof.lg_sample`. [#97945](https://github.com/ClickHouse/ClickHouse/pull/97945) ([Antonio Andelic](https://github.com/antonio2368)).
* Suporte a pesos na implementação de fila concorrente com limite. [#97962](https://github.com/ClickHouse/ClickHouse/pull/97962) ([Daniil Ivanik](https://github.com/divanik)).
* Adiciona `sslmode` às chaves permitidas para fontes de dicionário do PostgreSQL. Antes, `sslmode` não estava na lista de permissões `dictionary&#95;allowed&#95;keys` em PostgreSQLDictionarySource.cpp, o que tornava impossível configurar o modo SSL para conexões de dicionário do PostgreSQL. Isso impedia que os dicionários se conectassem a servidores PostgreSQL que exigem SSL (por exemplo, o AWS RDS, que impõe SSL por padrão), pois a conexão falhava na negociação de TLS e o servidor rejeitava o fallback não criptografado. [#98014](https://github.com/ClickHouse/ClickHouse/pull/98014) ([mcalfin](https://github.com/mcalfin)).
* Exibir um erro claro de "arquivo não encontrado" ao informar um caminho de arquivo inexistente para `clickhouse` ou `clickhouse-local`, em vez de uma mensagem genérica confusa. [#98048](https://github.com/ClickHouse/ClickHouse/pull/98048) ([Raúl Marín](https://github.com/Algunenano)).
* Agora é possível criar índices de texto em colunas `Nullable([Fixed]String)` e `Array(Nullable([Fixed]String))`. [#98118](https://github.com/ClickHouse/ClickHouse/pull/98118) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Evite remover coleções nomeadas que são dependências de fontes de dicionários. [#98127](https://github.com/ClickHouse/ClickHouse/pull/98127) ([Pablo Marcos](https://github.com/pamarcos)).
* Ativado o algoritmo de join `grace_hash` para consultas com totais. [#98144](https://github.com/ClickHouse/ClickHouse/pull/98144) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Cancela merges em segundo plano antecipadamente no DROP DATABASE para ordinary shared merge tree. [#98161](https://github.com/ClickHouse/ClickHouse/pull/98161) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Melhoria no cancelamento de consultas com MongoDB e MySQL usando KILL QUERY e cancel query (Ctrl+C) no clickhouse-client. [#98187](https://github.com/ClickHouse/ClickHouse/pull/98187) ([Roman Vasin](https://github.com/rvasin)).
* Remova o NetlinkMetricsProvider e use exclusivamente o procfs para coletar métricas de taskstats por thread. A coleta baseada em Netlink é problemática em ambientes conteinerizados e apresenta maior latência de cauda sob contenção. [#98229](https://github.com/ClickHouse/ClickHouse/pull/98229) ([Amos Bird](https://github.com/amosbird)).
* Refatoração do tratamento de arquivos de manifesto do Iceberg para corrigir problemas no cache de arquivos de manifesto. [#98231](https://github.com/ClickHouse/ClickHouse/pull/98231) ([Daniil Ivanik](https://github.com/divanik)).
* Agora, também consideramos os casos em que a chave de ordenação da tabela pode ser uma expressão como `toDate(time)`, e podemos decidir não adiar expressões como essa quando elas fazem parte de filtros. [#98237](https://github.com/ClickHouse/ClickHouse/pull/98237) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Adicionada uma nova métrica `MaxAllocatedEphemeralLockSequentialNumber` para o maior número sequencial alocado para znodes de bloqueio efêmeros no ZooKeeper. [#98243](https://github.com/ClickHouse/ClickHouse/pull/98243) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Atualiza o ClickStack para a versão 2.20.0. [#98252](https://github.com/ClickHouse/ClickHouse/pull/98252) ([Aaron Knudtson](https://github.com/knudtty)).
* Foi adicionado um novo evento de perfil `KeeperRequestTotalWithSubrequests` que contabiliza individualmente cada sub-requisição dentro de uma requisição múltipla, proporcionando melhor visibilidade da carga de trabalho real do Keeper. O evento existente `KeeperRequestTotal` continua contabilizando cada requisição múltipla como uma única requisição. [#98348](https://github.com/ClickHouse/ClickHouse/pull/98348) ([Antonio Andelic](https://github.com/antonio2368)).
* `SYSTEM RELOAD DICTIONARIES` agora recarrega os dicionários em ordem topológica, para que os dicionários que usam outros dicionários como origem vejam dados atualizados após a recarga. [#98356](https://github.com/ClickHouse/ClickHouse/pull/98356) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Reinicie o cache de estatísticas após alterar a configuração do MergeTree. [#98520](https://github.com/ClickHouse/ClickHouse/pull/98520) ([Han Fei](https://github.com/hanfei1991)).
* Somente as réplicas "ativas" (com as quais é possível se conectar) participam da análise distribuída de índices. [#98521](https://github.com/ClickHouse/ClickHouse/pull/98521) ([Azat Khuzhin](https://github.com/azat)).
* Adiciona uma configuração `access_control_improvements.disallow_config_defined_profiles_for_sql_defined_users` (desabilitada/permitida por padrão) que proíbe o uso de perfis de configurações definidos no arquivo de configuração (exceto o perfil `default`) para usuários definidos por SQL. [#98662](https://github.com/ClickHouse/ClickHouse/pull/98662) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Limite o número de nós usados pela heurística automática de parallel replicas ao número real de nós no cluster (em vez de considerar apenas a configuração `max_parallel_replicas`). [#98668](https://github.com/ClickHouse/ClickHouse/pull/98668) ([Nikita Taranov](https://github.com/nickitat)).
* Implementar requisições com hedge e leitura assíncrona para análise distribuída de índices. [#98724](https://github.com/ClickHouse/ClickHouse/pull/98724) ([Azat Khuzhin](https://github.com/azat)).
* A desserialização de estados binários de `AggregateFunction` agora exige o consumo de toda a entrada. Se houver bytes redundantes extras no final, o ClickHouse lança uma exceção em vez de aceitar dados de estado malformados. [#98786](https://github.com/ClickHouse/ClickHouse/pull/98786) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* TRUNCATE DATABASE passa a responder ao cancelamento de consulta. [#98828](https://github.com/ClickHouse/ClickHouse/pull/98828) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Aprimora o `keeper-bench` com pipelining de requisições, período de aquecimento, estatísticas por operação, seeds reproduzíveis e melhor tratamento de erros. [#98906](https://github.com/ClickHouse/ClickHouse/pull/98906) ([Antonio Andelic](https://github.com/antonio2368)).
* Suporte à cláusula SAMPLE na análise distribuída de índices. [#98931](https://github.com/ClickHouse/ClickHouse/pull/98931) ([Azat Khuzhin](https://github.com/azat)).
* Mostrar o título do gráfico no dashboard mesmo quando a consulta retornar um resultado vazio ou gerar um erro. [#98975](https://github.com/ClickHouse/ClickHouse/pull/98975) ([Yash ](https://github.com/Onyx2406)).
* As mensagens de erro do Analyzer não listam mais todas as colunas de uma tabela (o que podia gerar exceções de mais de 150 KB). As listas de colunas agora são limitadas a 10 itens. [#99002](https://github.com/ClickHouse/ClickHouse/pull/99002) ([Yash ](https://github.com/Onyx2406)).
* Retorna corretamente as estatísticas de coluna de subconsultas com junções, para que a consulta pai possa usá-las na reordenação de junções. [#99096](https://github.com/ClickHouse/ClickHouse/pull/99096) ([Alexander Gololobov](https://github.com/davenger)).
* Marque a sessão do ZooKeeper como expirada assim que a finalização começar, em vez de esperar que a thread de envio seja encerrada. Isso permite que outras threads estabeleçam uma nova sessão sem demora. [#99102](https://github.com/ClickHouse/ClickHouse/pull/99102) ([Raúl Marín](https://github.com/Algunenano)).
* Passa a usar mais funções matemáticas da LLVM-libc: `exp`, `exp2`, `expm1`, `fabs`, `fabsl`, `floor`, `fmodl`, `log`, `log2`, `logf`, `pow`, `scalbn`, `scalbnl`, `copysignl`, `nan`, `nanf`, `nanl` e as constantes compartilhadas `explogxf`. [#99118](https://github.com/ClickHouse/ClickHouse/pull/99118) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Reduz o uso de memória e corrige uma possível saída duplicada no formato collapsed de `system.jemalloc_profile_text`. [#99121](https://github.com/ClickHouse/ClickHouse/pull/99121) ([Antonio Andelic](https://github.com/antonio2368)).
* Adiciona a coluna `is_subrequest` a `system.aggregated_zookeeper_log` para separar requisições autônomas de sub-requisições dentro de requisições Multi/MultiRead. Antes, as sub-requisições eram agregadas nos mesmos buckets que as requisições autônomas e, como cada suboperação era registrada com a duração total da multirrequisão, a latência média se tornava enganosa. As sub-requisições agora têm latência zero. [#99169](https://github.com/ClickHouse/ClickHouse/pull/99169) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Permite usar o comando `ALTER TABLE MODIFY COLUMN x TTL ...` sem especificar o tipo da coluna. [#99208](https://github.com/ClickHouse/ClickHouse/pull/99208) ([Nikolay Degterinsky](https://github.com/evillique)).
* Ignora solicitações obsoletas ao Keeper para sessões que já se desconectaram, evitando idas e voltas desnecessárias ao Raft. O número de sessões encerradas acompanhadas é limitado pela configuração de coordenação `max_finished_sessions_cache_size`. [#99246](https://github.com/ClickHouse/ClickHouse/pull/99246) ([Antonio Andelic](https://github.com/antonio2368)).
* Suporte a índice de texto baseado em `mapValues(map)` com o operador `IN`. [#99286](https://github.com/ClickHouse/ClickHouse/pull/99286) ([Anton Popov](https://github.com/CurtizJ)).
* Suporte a autocompletar semelhante ao de shell no clickhouse keeper-client (tratando o autocompletar de argumentos entre aspas, ou seja, `'foo ba'`, tratando argumentos com escape, ou seja, `foo\ ba`, fazendo com que `ls` imprima nós entre aspas, caso contenham espaços em branco). [#99312](https://github.com/ClickHouse/ClickHouse/pull/99312) ([Azat Khuzhin](https://github.com/azat)).
* Evita que o comando `mntr` do Keeper fique bloqueado devido à contenção de locks. [#99472](https://github.com/ClickHouse/ClickHouse/pull/99472) ([Antonio Andelic](https://github.com/antonio2368)).
* Reduz a contenção de bloqueios no dispatcher do Keeper ao invocar callbacks e despachar solicitações de leitura fora do escopo do mutex, além de adicionar guardas de bloqueio com perfilamento para observabilidade. [#99751](https://github.com/ClickHouse/ClickHouse/pull/99751) ([Antonio Andelic](https://github.com/antonio2368)).
* Tolera a ausência de padding no final do último bloco de arquivos Parquet. [#99857](https://github.com/ClickHouse/ClickHouse/pull/99857) ([Seva Potapov](https://github.com/seva-potapov)).

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

* Corrige como o destino de uma tabela alias é salvo como dependência de DDL quando não está totalmente qualificado: agora ele é salvo com o banco de dados da tabela alias, em vez do banco de dados da sessão. [#95175](https://github.com/ClickHouse/ClickHouse/pull/95175) ([Enric Calabuig](https://github.com/eclbg)).
* Corrige resultado incorreto ou exceção na leitura de subcolunas de colunas ALIAS. [#95408](https://github.com/ClickHouse/ClickHouse/pull/95408) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige a ausência de coluna ao usar um alias de identificador não padrão em JOIN com o analisador antigo. Corrige [#25594](https://github.com/ClickHouse/ClickHouse/issues/25594), [#47288](https://github.com/ClickHouse/ClickHouse/issues/47288) e [#53263](https://github.com/ClickHouse/ClickHouse/issues/53263). [#95679](https://github.com/ClickHouse/ClickHouse/pull/95679) ([Zhigao Hong](https://github.com/zghong)).
* Corrige um travamento nas funções do dialeto Kusto `bin()`, `bin_at()`, `extract()` e `indexof()` ao receber argumentos vazios. [#95736](https://github.com/ClickHouse/ClickHouse/pull/95736) ([NeedmeFordev](https://github.com/spider-yamet)).
* Proíbe montar local\_object\_storage (usado por data lakes sobre o sistema de arquivos local e talvez pelo LocalDisk) em qualquer local diferente de user\_files\_path no clickhouse-client. [#96201](https://github.com/ClickHouse/ClickHouse/pull/96201) ([Daniil Ivanik](https://github.com/divanik)).
* No `DeltaLake` table engine, corrige uma condição de corrida lógica na mudança da versão do snapshot e remove recarregamentos pesados redundantes do snapshot. [#96226](https://github.com/ClickHouse/ClickHouse/pull/96226) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigido erro lógico ao anexar uma parte no MergeTree quando havia várias renomeações encadeadas entre a desanexação e a anexação. [#96351](https://github.com/ClickHouse/ClickHouse/pull/96351) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um bug em que configurações explícitas enviadas junto com `compatibility` na mesma solicitação podiam ser ignoradas silenciosamente quando o valor delas correspondia ao padrão do servidor. [#97078](https://github.com/ClickHouse/ClickHouse/pull/97078) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Corrigido o problema em que o cliente relatava `NETWORK_ERROR` em vez do erro de parsing real (com o número correto da linha) quando um INSERT com parsing paralelo encontrava dados inválidos. [#97339](https://github.com/ClickHouse/ClickHouse/pull/97339) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o problema que impedia a `sumCount` aggregate function de ler estados serializados mais antigos após a introdução de `Nullable(Tuple)`. Fecha [#97370](https://github.com/ClickHouse/ClickHouse/issues/97370). [#97502](https://github.com/ClickHouse/ClickHouse/pull/97502) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrigida a exceção na comparação de tuplas envolvendo elementos do tipo `Nothing` (por exemplo, ao comparar elementos de tupla `NULL`) quando essa comparação é usada com `GROUPING SETS` e `ORDER BY`. [#97509](https://github.com/ClickHouse/ClickHouse/pull/97509) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o cálculo não determinístico de `uncompressed_hash` em partes Compact do MergeTree quando vários codecs de compressão são usados, o que poderia levar a uma desduplicação incorreta. [#97522](https://github.com/ClickHouse/ClickHouse/pull/97522) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige erro lógico de `stream` ausente durante `INSERT SELECT` com JSON e buckets em dados compartilhados. Fecha [#97331](https://github.com/ClickHouse/ClickHouse/issues/97331). [#97523](https://github.com/ClickHouse/ClickHouse/pull/97523) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige exceções `MEMORY_LIMIT_EXCEEDED` que estavam sendo reportadas incorretamente como `CORRUPTED_DATA` durante operações de merge de SummingMergeTree e CoalescingMergeTree. [#97537](https://github.com/ClickHouse/ClickHouse/pull/97537) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrigida a exceção "Context has expired" em subconsultas correlacionadas que contêm funções de tabela como `url()`. [#97544](https://github.com/ClickHouse/ClickHouse/pull/97544) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige exceções e comportamento incorreto em `optimize_syntax_fuse_functions` com projeções agregadas, tipos Date e preservação dos nomes das colunas. [#97545](https://github.com/ClickHouse/ClickHouse/pull/97545) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Remove a reescrita incorreta de consulta de `replaceRegexpOne` para `extract`, que produzia resultados incorretos quando a regexp não correspondia; também corrige a exceção quando `replaceRegexpOne` é usado com `GROUP BY ... WITH CUBE` e `group_by_use_nulls=1`. [#97546](https://github.com/ClickHouse/ClickHouse/pull/97546) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o `DROP DATABASE` com `database_atomic_wait_for_drop_and_detach_synchronously`, que ficava bloqueado indefinidamente quando a consulta era cancelada. [#97586](https://github.com/ClickHouse/ClickHouse/pull/97586) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige `KILL QUERY`, que não conseguia encerrar consultas travadas na geração de `WITH FILL`, no carregamento de Dicionário via `dictGet` ou em `ALTER DELETE` com `mutations_sync=1` no `ReplicatedMergeTree`. [#97589](https://github.com/ClickHouse/ClickHouse/pull/97589) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A função de tabela `loop` estava chamando `inner_storage->read()` diretamente, contornando a camada do interpretador, onde políticas de linha, permissões em nível de coluna e outras verificações de segurança são aplicadas. Isso permitia que um usuário restrito por políticas de linha lesse todas as linhas via `loop(table)`, mesmo quando um SELECT direto retornava zero linhas. [#97682](https://github.com/ClickHouse/ClickHouse/pull/97682) ([pufit](https://github.com/pufit)).
* Corrige a poda incorreta de partições em casos que usam DateTime64 pré-epoch com a função `toDate()`. [#97746](https://github.com/ClickHouse/ClickHouse/pull/97746) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Após este patch, `hasPartitionId` retornará false se houver outra partição com um ID de partição maior no conjunto de partes de dados. [#97748](https://github.com/ClickHouse/ClickHouse/pull/97748) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Corrige possíveis travamentos durante a leitura de grânulos vazios em dados compartilhados avançados no JSON. Fecha [#97563](https://github.com/ClickHouse/ClickHouse/issues/97563). [#97778](https://github.com/ClickHouse/ClickHouse/pull/97778) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige `LOGICAL_ERROR` `Cannot schedule a file` ao fazer `INSERT` em `Distributed` devido a uma condição de corrida entre `DROP` e `INSERT`. [#97822](https://github.com/ClickHouse/ClickHouse/pull/97822) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido crash/assert do servidor ClickHouse em chamada para `mapContainsKey/mapContainsKeyLike` com índice de salto `tokenbf_v1`. [#97826](https://github.com/ClickHouse/ClickHouse/pull/97826) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Corrige exceções LOGICAL\_ERROR causadas por `LowCardinality` dentro de tipos compostos (`Variant`, `Dynamic`, `Tuple`) em `concatWithSeparator`, `format`, subconsultas `IN`, `GLOBAL IN` e junções com filtros em tempo de execução. [#97831](https://github.com/ClickHouse/ClickHouse/pull/97831) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigida a exceção `LOGICAL_ERROR` `Chunk info was not set for chunk in MergingAggregatedTransform` ao usar `ARRAY JOIN` com a função de tabela `merge()` em várias tabelas Distributed combinadas com `GROUP BY`. [#97838](https://github.com/ClickHouse/ClickHouse/pull/97838) ([Raúl Marín](https://github.com/Algunenano)).
* Correção de travamento do servidor (`std::terminate`) causado por uma exceção não capturada no destrutor do pool de conexões HTTP quando o limite rígido do grupo de conexões é atingido em cenários de alta concorrência. A exceção `HTTP_CONNECTION_LIMIT_REACHED` podia escapar de `~PooledConnection` ao devolver uma conexão ao pool para reutilização, levando a `SIGABRT`. [#97850](https://github.com/ClickHouse/ClickHouse/pull/97850) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige resultado incorreto quando o algoritmo `grace_hash` é usado com junções não equi e o bloco da esquerda não pode ser processado completamente devido às limitações de tamanho no resultado da junção. [#97866](https://github.com/ClickHouse/ClickHouse/pull/97866) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrigida a ineficiência de desempenho na varredura de metadados do DeltaLake introduzida em [#96686](https://github.com/ClickHouse/ClickHouse/pull/96686). [#97880](https://github.com/ClickHouse/ClickHouse/pull/97880) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige condição de corrida no cliente ZooKeeper entre sendThread e receiveThread. [#97887](https://github.com/ClickHouse/ClickHouse/pull/97887) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrige um bug em que não era possível usar CTE com operações insert-select distribuídas. Continuação de [https://github.com/ClickHouse/ClickHouse/pull/87789](https://github.com/ClickHouse/ClickHouse/pull/87789). Fecha [#95837](https://github.com/ClickHouse/ClickHouse/issues/95837). [#97889](https://github.com/ClickHouse/ClickHouse/pull/97889) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige uma exceção em `CachedOnDiskReadBufferFromFile::readBigAt`. Fecha [#97325](https://github.com/ClickHouse/ClickHouse/issues/97325). [#97890](https://github.com/ClickHouse/ClickHouse/pull/97890) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige a exceção `LOGICAL_ERROR` na engine `Alias` com colunas materializadas, causada por incompatibilidade entre colunas. Fecha [#97907](https://github.com/ClickHouse/ClickHouse/issues/97907). [#97921](https://github.com/ClickHouse/ClickHouse/pull/97921) ([Kai Zhu](https://github.com/nauu)).
* Corrige perda de dados do Keeper após reinicialização ao usar o Azure Blob Storage com metadados `s3_plain` para armazenamento de logs. [#97987](https://github.com/ClickHouse/ClickHouse/pull/97987) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige a miscompilação por JIT da função `sign` para tipos inteiros maiores que `Int8` — valores fora do intervalo de -128 a 127 podiam produzir um sinal incorreto. [#98012](https://github.com/ClickHouse/ClickHouse/pull/98012) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigidos a exceção `DUPLICATE_COLUMN` e valores NULL silenciosos ao ler tabelas Delta Lake que usam o modo de mapeamento de colunas "name" com campos de struct cujos nomes contêm pontos (por exemplo, ``STRUCT<`a.foo`: STRING, `b.foo`: STRING>``). [#98013](https://github.com/ClickHouse/ClickHouse/pull/98013) ([Caio Ishizaka Costa](https://github.com/ch-caioishizaka)).
* Corrige mutação após atualização leve e em índices secundários. [#98044](https://github.com/ClickHouse/ClickHouse/pull/98044) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige resultado incorreto de consultas FINAL ao misturar índices de salto da chave primária e de colunas que não fazem parte da chave primária. [#98097](https://github.com/ClickHouse/ClickHouse/pull/98097) ([Raúl Marín](https://github.com/Algunenano)).
* Aplicar verificações de READ ON FILE a file() escalar e a DESCRIBE TABLE file(). [#98115](https://github.com/ClickHouse/ClickHouse/pull/98115) ([Nikolay Degterinsky](https://github.com/evillique)).
* Corrige um travamento em que, ao consultar arquivos com um padrão glob (por exemplo, `file('dir/**', 'LineAsString')`), era gerada uma exceção não tratada do sistema de arquivos (`STD_EXCEPTION`) se o diretório contivesse um link simbólico quebrado. Links simbólicos quebrados agora são ignorados silenciosamente, e a consulta retorna resultados de todos os arquivos válidos. [#98143](https://github.com/ClickHouse/ClickHouse/pull/98143) ([Mark Andreev](https://github.com/mrk-andreev)).
* Corrige falha de segmentação na otimização do plano de consulta durante a conversão de `outer join` em `inner join` com `arrayJoin` na expressão de filtro. [#98147](https://github.com/ClickHouse/ClickHouse/pull/98147) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido o problema em que o formato `ProtobufList` não funcionava com o engine Kafka porque o estado de leitura não era redefinido entre as mensagens. [#98151](https://github.com/ClickHouse/ClickHouse/pull/98151) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um erro lógico com analyzer\_compatibility\_join\_using\_top\_level\_identifier e ARRAY JOIN, fechando [#98164](https://github.com/ClickHouse/ClickHouse/issues/98164). [#98179](https://github.com/ClickHouse/ClickHouse/pull/98179) ([Vladimir Cherkasov](https://github.com/vdimir)).
* O componente `Watch` agora é definido para respostas de watch em `aggregated_zookeeper_log`, em vez de ficar vazio. [#98202](https://github.com/ClickHouse/ClickHouse/pull/98202) ([Antonio Andelic](https://github.com/antonio2368)).
* Se as colunas da chave de partição não estiverem incluídas na chave de ordenação, a poda de partições poderá ignorar incorretamente partições que contêm linhas que deveriam "prevalecer" durante a desduplicação FINAL. [#98242](https://github.com/ClickHouse/ClickHouse/pull/98242) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige o erro lógico "Bad cast from type DB::ColumnConst to DB::ColumnArray" em `kql_array_sort_asc`/`kql_array_sort_desc` quando são chamados com argumentos de array constantes. [#98251](https://github.com/ClickHouse/ClickHouse/pull/98251) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o acesso fora dos limites em `ColumnConst::getExtremes`, que poderia causar um travamento com `extremes = 1` habilitado. [#98263](https://github.com/ClickHouse/ClickHouse/pull/98263) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido um possível deadlock quando duas operações `MOVE PARTITION` concorrentes atuam sobre o mesmo par de tabelas em direções opostas. [#98264](https://github.com/ClickHouse/ClickHouse/pull/98264) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O servidor HTTP agora retorna uma mensagem de erro no corpo da resposta para respostas 400 Bad Request causadas por cabeçalhos malformados, em vez de retornar um corpo vazio. [#98268](https://github.com/ClickHouse/ClickHouse/pull/98268) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige resultados incorretos na análise de índice distribuída (funcionalidade experimental) e no cache de condições de consulta. [#98269](https://github.com/ClickHouse/ClickHouse/pull/98269) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida a exceção LOGICAL\_ERROR "Resultado inválido da busca binária em `MergeTreeSetIndex`", provocada pela conversão `toDate` em colunas de chave com dados que cruzam o limite de 65535. [#98276](https://github.com/ClickHouse/ClickHouse/pull/98276) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a exceção `LOGICAL_ERROR` quando um RIGHT JOIN envolvido em um CROSS JOIN é trocado pela otimização `query_plan_join_swap_table` no código legado da etapa de join. [#98279](https://github.com/ClickHouse/ClickHouse/pull/98279) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Valide dados corrompidos na desserialização de `DDSketch` para evitar segfaults, exceções, loops infinitos e OOM ao ler estados corrompidos da função de agregação `quantilesDD`. [#98284](https://github.com/ClickHouse/ClickHouse/pull/98284) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o LOGICAL\_ERROR "Trying to execute PLACEHOLDER action" quando colunas correlacionadas de consultas externas são referenciadas dentro de funções lambda, como `arrayMap`. [#98285](https://github.com/ClickHouse/ClickHouse/pull/98285) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a exceção de erro lógico em `caseWithExpression` quando a expressão `CASE` inclui `materialize(NULL)` ou outros argumentos `Nullable(Nothing)`. [#98290](https://github.com/ClickHouse/ClickHouse/pull/98290) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige exceção de cast inválido ao filtrar a coluna virtual `_table` na função de tabela `merge`. [#98291](https://github.com/ClickHouse/ClickHouse/pull/98291) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige uma falha esporádica de desduplicação em que reinserções eram desduplicadas incorretamente devido à ordem inconsistente de limpeza entre os diretórios `blocks/` e `deduplication_hashes/` do ZooKeeper. [#98293](https://github.com/ClickHouse/ClickHouse/pull/98293) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a exceção ao usar `ORDER BY ... WITH FILL` junto com `LIMIT BY`. [#98361](https://github.com/ClickHouse/ClickHouse/pull/98361) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a corrupção silenciosa de dados ao inserir uma coluna `Date` de Parquet/Arrow em uma coluna `Enum` — agora a conversão incompatível de tipos é corretamente rejeitada, em vez de armazenar valores de enum inválidos. [#98364](https://github.com/ClickHouse/ClickHouse/pull/98364) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida uma exceção ao ler um arquivo Arrow com uma coluna `Array` em uma tabela com uma coluna `Nested`. [#98365](https://github.com/ClickHouse/ClickHouse/pull/98365) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige mutações `MATERIALIZE INDEX` e `MATERIALIZE PROJECTION` que ficavam bloqueadas quando o índice ou a projeção era excluído antes de a mutação terminar. [#98369](https://github.com/ClickHouse/ClickHouse/pull/98369) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a exceção ao ler de `Nullable(Tuple(...))` quando o nome de um elemento de Tuple entra em conflito com a subcoluna `null` de Nullable. [#98372](https://github.com/ClickHouse/ClickHouse/pull/98372) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a exceção "Column ... query tree node does not have valid source node" ao fazer join entre uma tabela `Merge` (encapsulando uma tabela `Distributed`) e outra tabela. [#98376](https://github.com/ClickHouse/ClickHouse/pull/98376) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a conversão incorreta de `Bool` do Parquet para `FixedString` no leitor V3 native, que produzia bytes brutos em vez da representação em string. [#98378](https://github.com/ClickHouse/ClickHouse/pull/98378) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige `tryGetColumnDescription` para filtrar as subcolunas pelo tipo da coluna pai, em linha com outros métodos de busca de colunas. [#98391](https://github.com/ClickHouse/ClickHouse/pull/98391) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Aceita credenciais em base64 sem padding na autenticação HTTP Basic. Alguns clientes HTTP omitem o padding `=` no final do cabeçalho `Authorization: Basic`, o que antes causava falhas de autenticação. [#98392](https://github.com/ClickHouse/ClickHouse/pull/98392) ([Amos Bird](https://github.com/amosbird)).
* Corrige resultados incorretos na poda de partições após a mesclagem de partes com colunas de chave de partição `Nullable`, causados por limites incorretos no índice min-max. [#98405](https://github.com/ClickHouse/ClickHouse/pull/98405) ([Amos Bird](https://github.com/amosbird)).
* Corrige uma exceção rara no executor do pipeline, que podia se manifestar como `Received signal 6` (apenas em builds de depuração), durante uma condição de corrida entre a expansão do pipeline e o cancelamento da consulta. [#98428](https://github.com/ClickHouse/ClickHouse/pull/98428) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a exceção "Column identifier is already registered" ao usar `count_distinct_optimization` com a cláusula `QUALIFY`. [#98433](https://github.com/ClickHouse/ClickHouse/pull/98433) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a exceção "cannot be inside Nullable type" ao usar `IN`/`NOT IN` com argumentos de coluna `LowCardinality` (por exemplo, `a NOT IN (b)`, em que `a` é `LowCardinality(String)`). [#98443](https://github.com/ClickHouse/ClickHouse/pull/98443) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a exceção "Pipeline stuck" em junções `full_sorting_merge`, causada por um deadlock no `PingPongProcessor` quando a otimização `FilterBySetOnTheFly` criava uma dependência circular com o `MergeJoinTransform`. [#98454](https://github.com/ClickHouse/ClickHouse/pull/98454) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a exceção `LOGICAL_ERROR` "Projection cannot increase the number of rows in a block" durante a mesclagem de partes com TTL que exclui todas as linhas e com uma projeção agregada com chave `GROUP BY` constante. [#98458](https://github.com/ClickHouse/ClickHouse/pull/98458) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a exceção de erro lógico ao usar `CROSS JOIN` junto com `INNER JOIN USING`. [#98459](https://github.com/ClickHouse/ClickHouse/pull/98459) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o desreferenciamento de ponteiro nulo em `dictGetOrDefault` quando o argumento de chave é `Nullable`. [#98460](https://github.com/ClickHouse/ClickHouse/pull/98460) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige uma exceção em consultas `DISTINCT` ao usar projeções agregadas quando `materialize` causa diferenças no tipo `LowCardinality` entre a consulta e a projeção. [#98462](https://github.com/ClickHouse/ClickHouse/pull/98462) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a exceção LOGICAL\_ERROR ao usar `arrayJoin` em uma expressão de filtro com OUTER JOIN e `join_use_nulls` habilitado. [#98464](https://github.com/ClickHouse/ClickHouse/pull/98464) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a exceção de erro lógico "A réplica decidiu ler no modo WithOrder, e não em ReverseOrder" ao usar réplicas paralelas com `optimize_aggregation_in_order`. [#98467](https://github.com/ClickHouse/ClickHouse/pull/98467) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido um problema em que o ClickHouse Keeper desconectava clientes Java do ZooKeeper após a solicitação `addWatch`. O cliente Java espera um corpo `ErrorResponse` de 4 bytes na resposta de `addWatch`, mas o Keeper estava enviando um corpo vazio, causando `EOFException` e desconexão da sessão. Isso quebrava o `CuratorCache` do Apache Curator e qualquer aplicação Java que usasse watches persistentes. Corrige [#98079](https://github.com/ClickHouse/ClickHouse/issues/98079). [#98499](https://github.com/ClickHouse/ClickHouse/pull/98499) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige as métricas do Keeper `zk_followers` e `zk_synced_followers`, que não diminuíam quando um follower ficava indisponível. Adiciona as novas métricas `zk_learners` e `zk_synced_non_voting_followers` ao comando de quatro letras `mntr`. Corrige [#54173](https://github.com/ClickHouse/ClickHouse/issues/54173). [#98504](https://github.com/ClickHouse/ClickHouse/pull/98504) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige uma exceção `LOGICAL&#95;ERROR` em `renameAndCommitEmptyParts` que podia ocorrer quando `TRUNCATE TABLE` era executado simultaneamente com `OPTIMIZE TABLE` com transações MergeTree. [#98508](https://github.com/ClickHouse/ClickHouse/pull/98508) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a porta segura de Raft do Keeper, que ignorava `cipherList` e `dhParamsFile` da configuração `openSSL`, usando sempre os valores padrão em vez dos especificados pelo usuário. Fecha [#51188](https://github.com/ClickHouse/ClickHouse/issues/51188). [#98509](https://github.com/ClickHouse/ClickHouse/pull/98509) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigidas mensagens de log enganosas do Keeper, como "Receiving request for session X took 9963 ms", em que o tempo informado na verdade era gasto ficando ocioso em `poll()` entre heartbeats, e não na execução da operação em si. Corrige [#79026](https://github.com/ClickHouse/ClickHouse/issues/79026). [#98510](https://github.com/ClickHouse/ClickHouse/pull/98510) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige um resultado inesperado com read\_in\_order\_use\_virtual\_row e funções monotônicas, fecha [#97837](https://github.com/ClickHouse/ClickHouse/issues/97837). [#98514](https://github.com/ClickHouse/ClickHouse/pull/98514) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige `LOGICAL_ERROR: Not-ready Set is passed as the second argument for function 'in'` ao usar `PREWHERE` com subconsulta `IN` em tabelas MergeTree. [#98522](https://github.com/ClickHouse/ClickHouse/pull/98522) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigidas conexões TCP do Keeper que impediam o desligamento adequado do servidor por não responderem ao sinal de encerramento. [#98525](https://github.com/ClickHouse/ClickHouse/pull/98525) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a exceção "A coluna de ordenação não foi encontrada nas saídas do ActionsDAG" quando `query_plan_convert_join_to_in` está habilitado com `query_plan_merge_expressions = 0`. [#98526](https://github.com/ClickHouse/ClickHouse/pull/98526) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige falha na fonte de dicionário do MongoDB ao usar coleções nomeadas. Fecha [#97840](https://github.com/ClickHouse/ClickHouse/issues/97840). [#98528](https://github.com/ClickHouse/ClickHouse/pull/98528) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrigido LOGICAL\_ERROR quando Identifier fica vazio após a substituição de parâmetros. [#98530](https://github.com/ClickHouse/ClickHouse/pull/98530) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* Corrigido o deadlock do pipeline ao usar `sort_overflow_mode = 'break'` em conjunto com funções de janela. [#98543](https://github.com/ClickHouse/ClickHouse/pull/98543) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o rollback de coluna no engine Buffer durante o tratamento de uma exceção ao acrescentar um novo bloco. A lógica anterior podia levar a um estado corrompido das colunas na memória. [#98551](https://github.com/ClickHouse/ClickHouse/pull/98551) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrigida a exceção `Bad cast from type ColumnConst to ColumnDynamic` na comparação null-safe (`<=>` / `IS NOT DISTINCT FROM`) com colunas `Dynamic` ou `Variant` constantes e `NULL`. Também foi corrigido o problema em que `IS DISTINCT FROM` com `Dynamic`/`Variant` vs `NULL` sempre retornava 0 incorretamente. [#98553](https://github.com/ClickHouse/ClickHouse/pull/98553) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido o uso do índice de texto com outros skip indexes. Anteriormente, podiam ocorrer erros lógicos como "Trying to get non-existing mark" quando um filtro da consulta utilizava simultaneamente um índice de texto e outros skip indexes regulares. [#98555](https://github.com/ClickHouse/ClickHouse/pull/98555) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige o erro lógico "TABLE\_FUNCTION is not allowed in expression context" quando uma função de tabela com alias aparece várias vezes no mesmo escopo de consulta (por exemplo, nas cláusulas `PREWHERE` e `QUALIFY`). [#98557](https://github.com/ClickHouse/ClickHouse/pull/98557) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a análise distribuída de índice com expressões (não apenas colunas) na PK (levava a nenhuma filtragem de grânulos redundantes em réplicas remotas). [#98561](https://github.com/ClickHouse/ClickHouse/pull/98561) ([Azat Khuzhin](https://github.com/azat)).
* Impedir a exclusão de uma coluna quando suas subcolunas forem usadas em expressões default/alias de outras colunas e usar o analisador para expressões default em ALTER DROP COLUMN. [#98569](https://github.com/ClickHouse/ClickHouse/pull/98569) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Correção de novas tentativas incorretas de solicitações ao S3 em erros que não permitem retry (incluindo `HTTP_CONNECTION_LIMIT_REACHED`) no cliente HTTP. [#98598](https://github.com/ClickHouse/ClickHouse/pull/98598) ([Sema Checherinda](https://github.com/CheSema)).
* Corrige um overflow decimal na poda de partições com DateTime64. [#98628](https://github.com/ClickHouse/ClickHouse/pull/98628) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige dois bugs na compilação JIT de expressões: um erro de copia e cola na verificação de tipos de `nativeCast` que tornava inacessíveis os caminhos de conversão de inteiro para inteiro e de float para float, e um `nullptr` incorreto de `TargetMachine` passado ao LLVM `PassBuilder`, impedindo o registro de passes de otimização específicos do destino. [#98660](https://github.com/ClickHouse/ClickHouse/pull/98660) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige uma falha no RBAC que permitia aos usuários executar `DESCRIBE` em qualquer tabela por meio de `remote()`, `remoteSecure()`, `cluster()` ou `clusterAllReplicas()` apontadas para localhost, sem exigir o privilégio `SHOW_COLUMNS`. [#98669](https://github.com/ClickHouse/ClickHouse/pull/98669) ([pufit](https://github.com/pufit)).
* Corrige a exceção `BAD_GET` e resultados incorretos em consultas quando uma expressão não booleana (por exemplo, `sin(col)`) é usada tanto em WHERE quanto em SELECT com um JOIN, devido à otimização de push-down de filtro corromper nós DAG compartilhados. [#98681](https://github.com/ClickHouse/ClickHouse/pull/98681) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido LOGICAL\_ERROR "A réplica decidiu ler no modo Default em vez de WithOrder" ao usar `read_in_order_through_join` com réplicas paralelas. [#98685](https://github.com/ClickHouse/ClickHouse/pull/98685) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a exceção "Bad cast from type `DB::TableFunctionNode` to `DB::QueryNode`" ao usar a função de tabela `input` como argumento de `remote`. [#98694](https://github.com/ClickHouse/ClickHouse/pull/98694) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a ressurreição de partes de dados desatualizadas causada pela remoção incorreta de partes de cobertura vazias. [#98698](https://github.com/ClickHouse/ClickHouse/pull/98698) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Corrigida a exceção em `LogicalExpressionOptimizerPass` quando uma função booleana em uma comparação com `equals` retorna um tipo `Variant`. [#98712](https://github.com/ClickHouse/ClickHouse/pull/98712) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o `parseDateTimeBestEffort`, que interpretava incorretamente palavras iniciadas com prefixos de meses/dias da semana. Fecha [#97965](https://github.com/ClickHouse/ClickHouse/issues/97965). [#98742](https://github.com/ClickHouse/ClickHouse/pull/98742) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige a exceção `UNKNOWN_IDENTIFIER` ao executar consulta com a table function `merge()` ou o engine `Merge` em tabelas com colunas JSON que têm parâmetros diferentes (por exemplo, campos `SKIP` diferentes) e colunas `ALIAS` que referenciam subcaminhos JSON, com o novo analisador ativado. Fecha [#97812](https://github.com/ClickHouse/ClickHouse/issues/97812). [#98753](https://github.com/ClickHouse/ClickHouse/pull/98753) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrigida a otimização `optimize_skip_unused_shards` no analisador quando o armazenamento `Distributed` é usado em uma `View`. [#98754](https://github.com/ClickHouse/ClickHouse/pull/98754) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige o acesso por nome a subcolunas de tupla (por exemplo, `SELECT x.a` para `Tuple(a UUID, b Int32)`) em tabelas externas passadas via `--external` no `clickhouse-client`. Fecha [#96925](https://github.com/ClickHouse/ClickHouse/issues/96925). [#98755](https://github.com/ClickHouse/ClickHouse/pull/98755) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige a exceção em `reverseUTF8` com entrada UTF-8 inválida (truncada). [#98770](https://github.com/ClickHouse/ClickHouse/pull/98770) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correção da detecção da utilidade do índice de salto Set com OR e predicado false (ou seja, or(x, 0)). [#98776](https://github.com/ClickHouse/ClickHouse/pull/98776) ([Azat Khuzhin](https://github.com/azat)).
* Corrige uma exceção `LOGICAL_ERROR` (incompatibilidade na estrutura do bloco em `removeUnusedColumns`) que podia ocorrer com `FINAL` + `PREWHERE` + expressão `WHERE` constante + agregações que não dependem de coluna, como `count()`. [#98778](https://github.com/ClickHouse/ClickHouse/pull/98778) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Garantir que as entradas de `system.trace_log` para os recarregamentos automáticos de Dictionaries do ClickHouse tenham IDs de consulta não vazios. [#98784](https://github.com/ClickHouse/ClickHouse/pull/98784) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrige uma falha em que poderíamos desreferenciar um ponteiro nulo em tabelas do sistema criadas entre o momento em que tiramos um snapshot das tabelas na chamada `IDatabaseTablesIterator::table()` e a alteração dessas tabelas em outra thread durante a iteração subsequente. [#98792](https://github.com/ClickHouse/ClickHouse/pull/98792) ([Grant Holly](https://github.com/grantholly-clickhouse)).
* Corrigido o problema em que `SYSTEM START REPLICATED VIEW` não ativava a tarefa de atualização. [#98797](https://github.com/ClickHouse/ClickHouse/pull/98797) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrige a exceção "Nomes de tabela inconsistentes" ao usar a função de tabela `view()` que contém JOINs dentro de outro JOIN (apenas com o analyzer antigo). [#98809](https://github.com/ClickHouse/ClickHouse/pull/98809) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correção no ajuste de RLIMIT\_SIGPENDING (via pending\_signals). [#98829](https://github.com/ClickHouse/ClickHouse/pull/98829) ([Azat Khuzhin](https://github.com/azat)).
* Correção de exceção ao combinar `loop` com funções de tabela de cluster. [#98860](https://github.com/ClickHouse/ClickHouse/pull/98860) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* LEFT ANTI JOIN com múltiplas colunas de chave de junção retornou resultados incorretos quando `enable_join_runtime_filters=1` (que é o padrão). [#98871](https://github.com/ClickHouse/ClickHouse/pull/98871) ([Alexander Gololobov](https://github.com/davenger)).
* Corrige `WITH FILL STALENESS`, que produzia linhas preenchidas a mais quando os dados eram lidos em vários fragmentos (por exemplo, com `index_granularity` pequeno). [#98895](https://github.com/ClickHouse/ClickHouse/pull/98895) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido o LOGICAL\_ERROR "RPNBuilderFunctionTreeNode has A arguments, attempted to get argument at index B". [#98900](https://github.com/ClickHouse/ClickHouse/pull/98900) ([Azat Khuzhin](https://github.com/azat)).
* Corrige o desvio no rastreamento de memória causado por alocações com falha que não eram desfeitas, comportamento indefinido de `nallocx(0)` e erro de uma unidade no rastreamento global de pico. Estende o rastreamento para cobrir os buffers circulares do `io_uring`. [#98915](https://github.com/ClickHouse/ClickHouse/pull/98915) ([Antonio Andelic](https://github.com/antonio2368)).
* Proibir o attach a tabelas locais de lago de dados fora dos paths do usuário, e não apenas a criação delas. [#98936](https://github.com/ClickHouse/ClickHouse/pull/98936) ([Daniil Ivanik](https://github.com/divanik)).
* Corrige uma condição de corrida que poderia causar uma exceção "ReadBuffer is canceled" em consultas que usam `urlCluster` ou funções de tabela de cluster similares. [#98955](https://github.com/ClickHouse/ClickHouse/pull/98955) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a exceção `LOGICAL_ERROR` em funções financeiras (`financialNetPresentValue`, `financialInternalRateOfReturn` etc.) quando são passados argumentos do tipo `BFloat16`. [#98958](https://github.com/ClickHouse/ClickHouse/pull/98958) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a não aplicação de índices de salto (e de condições da chave primária) a colunas ALIAS quando a mesclagem de expressões do plano de consulta está desabilitada (`query_plan_merge_expressions = 0` ou `query_plan_enable_optimizations = 0`). [#98960](https://github.com/ClickHouse/ClickHouse/pull/98960) ([Peng](https://github.com/fastio)).
* Incrementa o ProfileEvent `InsertQuery` em inserções assíncronas. Fecha [#98626](https://github.com/ClickHouse/ClickHouse/issues/98626). [#98962](https://github.com/ClickHouse/ClickHouse/pull/98962) ([Narasimha Pakeer](https://github.com/npakeer)).
* Corrige a exceção "Comportamento inconsistente de KeyCondition" em builds de depuração quando a chave primária contém valores NaN de ponto flutuante, fazendo com que `accurateLess` e `accurateEquals` tratem NaN de forma consistente com a ordenação do ClickHouse. Fecha [#98075](https://github.com/ClickHouse/ClickHouse/issues/98075). [#98964](https://github.com/ClickHouse/ClickHouse/pull/98964) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* SummingMergeTree não soma mais colunas Bool (nem colunas de outros tipos de domínio). Os valores Bool são mantidos como estão, em vez de serem somados aritmeticamente. [#98976](https://github.com/ClickHouse/ClickHouse/pull/98976) ([Yash ](https://github.com/Onyx2406)).
* Corrige a exceção Scalar doesn't exist que ocorria ao consultar um shard remoto com `optimize_const_name_size` definido e `enable_scalar_subquery_optimization` = 0. As constantes grandes substituídas por referências `__getScalar` na consulta remota não estavam sendo enviadas ao shard, o que fazia a consulta falhar. [#98979](https://github.com/ClickHouse/ClickHouse/pull/98979) ([andriibeee](https://github.com/andriibeee)).
* Corrige `NOT_FOUND_COLUMN_IN_BLOCK` em algumas consultas com `GROUP BY` e expressões que incluem busca inversa em dicionário, comparações com conversão de `Date/DateTime` e comparações de tuplas. Fecha [#98888](https://github.com/ClickHouse/ClickHouse/issues/98888). [#98980](https://github.com/ClickHouse/ClickHouse/pull/98980) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrigido comportamento indefinido (desreferenciamento de ponteiro nulo) ao alterar uma coluna version/sign/is\_deleted para `EPHEMERAL` ou `ALIAS` nos motores MergeTree. Essas alterações agora são corretamente rejeitadas. [#98985](https://github.com/ClickHouse/ClickHouse/pull/98985) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido um problema em que `system.grants` omitia, na coluna `access_object`, os parâmetros de expressão regular dos privilégios `URL` e `S3`. [#98987](https://github.com/ClickHouse/ClickHouse/pull/98987) ([DQ](https://github.com/il9ue)).
* Corrigidas as leituras do Iceberg BigLake: as credenciais ADC agora são repassadas ao cliente S3 do GCS (corrigindo erros 403), as credenciais OAuth2 são codificadas em URL antes do envio (corrigindo falhas de autenticação para tokens com caracteres especiais), e a travessia do namespace não é mais interrompida por respostas HTTP 400 do BigLake. [#98998](https://github.com/ClickHouse/ClickHouse/pull/98998) ([Nikita Fomichev](https://github.com/fm4v)).
* Corrigida a falha do `clickhouse-client` ao mudar o fuso horário quando a variável de ambiente `TZ` usa a sintaxe de caminho de arquivo do POSIX (por exemplo, `TZ=:/etc/localtime`). [#99000](https://github.com/ClickHouse/ClickHouse/pull/99000) ([Yash ](https://github.com/Onyx2406)).
* Corrige a poda incorreta ou menos eficiente quando `startsWith`, `LIKE` e `NOT LIKE` são usados com a coluna `FixedString`. Além disso, a função de conversão de `FixedString` para `String` agora pode podar grânulos quando aplicada à coluna de chave. Fecha [#98940](https://github.com/ClickHouse/ClickHouse/issues/98940). [#99001](https://github.com/ClickHouse/ClickHouse/pull/99001) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrigido `windowFunnel` com `strict_deduplication`, que retornava um nível incorreto quando um evento duplicado era encontrado. [#99003](https://github.com/ClickHouse/ClickHouse/pull/99003) ([Yash ](https://github.com/Onyx2406)).
* Corrige um bug em que `EXISTS` ignorava as cláusulas `LIMIT` e `OFFSET` em subconsultas, causando resultados incorretos quando a subconsulta não retornava nenhuma linha devido a um offset ou a um limite igual a zero. Fecha [#88722](https://github.com/ClickHouse/ClickHouse/issues/88722). [#99005](https://github.com/ClickHouse/ClickHouse/pull/99005) ([andriibeee](https://github.com/andriibeee)).
* Corrigida a exceção "Incompatibilidade na estrutura do bloco" quando a otimização de push-down de filtro encontra uma expressão AND que é avaliada por curto-circuito como uma constante com `GROUPING SETS`. [#99010](https://github.com/ClickHouse/ClickHouse/pull/99010) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida exceção ao ler patch parts (atualizações leves) sem a coluna `_part_offset` no plano de consulta. [#99023](https://github.com/ClickHouse/ClickHouse/pull/99023) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Uma consulta como `SELECT * FROM table WHERE pk_id = ''`, em que `pk_id` é a chave primária e do tipo `String`, agora usará corretamente o índice da chave primária para filtrar grânulos. [#99027](https://github.com/ClickHouse/ClickHouse/pull/99027) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Correção da exceção `DEPENDENCIES_NOT_FOUND` no engine Kafka quando a visão materializada é desanexada enquanto a thread em segundo plano está transferindo dados. [#99028](https://github.com/ClickHouse/ClickHouse/pull/99028) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a exceção ao criar uma tabela com uma coluna `EPHEMERAL` que tem o mesmo nome de uma coluna virtual (por exemplo, `_part_offset`). [#99031](https://github.com/ClickHouse/ClickHouse/pull/99031) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a mensagem enganosa "inflate failed: buffer error" ao ler arquivos compactados inexistentes por meio da função de tabela `url()` com padrões glob. Agora retorna um resultado vazio, como esperado, quando `http_skip_not_found_url_for_globs` está habilitado. [#99034](https://github.com/ClickHouse/ClickHouse/pull/99034) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um travamento do servidor (`std::terminate`) ao executar `ALTER TABLE ... DROP PART` em uma patch part após uma alteração de esquema (por exemplo, `ADD COLUMN`). O travamento foi causado pela ausência de colunas de sistema (`_part`) nos metadados da parte de cobertura vazia, o que levou a uma exceção não capturada dentro de um `NOEXCEPT&#95;SCOPE`. [#99036](https://github.com/ClickHouse/ClickHouse/pull/99036) ([Peng](https://github.com/fastio)).
* O processo do servidor ClickHouse poderia falhar se fosse lançada uma exceção por exceder o limite de memória durante uma *leitura de disco em cache*. Isso já foi corrigido. [#99042](https://github.com/ClickHouse/ClickHouse/pull/99042) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Corrige `LOGICAL_ERROR` ao consultar uma tabela que tem uma ROW POLICY e uma coluna ALIAS usando `dictGet`. O problema era causado pelo acesso prematuro à expressão da tabela durante a resolução da coluna ALIAS no novo analisador. [#99065](https://github.com/ClickHouse/ClickHouse/pull/99065) ([Peng](https://github.com/fastio)).
* Corrige erro de acesso fora dos limites quando o usuário tenta consultar apenas colunas virtuais de uma tabela Iceberg com dados em formato Avro. É um cenário super raro, então não o marcamos como crítico. Corrige [#88238](https://github.com/ClickHouse/ClickHouse/issues/88238). [#99080](https://github.com/ClickHouse/ClickHouse/pull/99080) ([alesapin](https://github.com/alesapin)).
* Corrigido segfault em CTE recursiva com `remote()` + `view()`. [#99081](https://github.com/ClickHouse/ClickHouse/pull/99081) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Ignora a análise extra desnecessária de índices quando a otimização de leitura em ordem é aplicada. [#99084](https://github.com/ClickHouse/ClickHouse/pull/99084) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrigido um travamento causado por uma exceção de limite de memória gerada durante a aplicação de patch part. [#99086](https://github.com/ClickHouse/ClickHouse/pull/99086) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige a asserção de depuração em `DDLWorker`, causada por `first_failed_task_name` desatualizado após a exclusão de uma entrada do ZooKeeper durante a recuperação após reinicialização. [#99099](https://github.com/ClickHouse/ClickHouse/pull/99099) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigida a reconstrução de índices de texto em mesclagens com TTL. [#99107](https://github.com/ClickHouse/ClickHouse/pull/99107) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige falha na consulta `ALTER TABLE ... REMOVE SETTINGS` ao usar o mecanismo de tabela Iceberg. Corrige [#86330](https://github.com/ClickHouse/ClickHouse/issues/86330). [#99108](https://github.com/ClickHouse/ClickHouse/pull/99108) ([alesapin](https://github.com/alesapin)).
* Corrige um bug na otimização `query_plan_convert_any_join_to_semi_or_anti_join`, que retornava um resultado incorreto para linhas sem correspondência. Relacionado: [https://github.com/ClickHouse/ClickHouse/pull/95995](https://github.com/ClickHouse/ClickHouse/pull/95995). [#99112](https://github.com/ClickHouse/ClickHouse/pull/99112) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrigida a exceção LOGICAL\_ERROR em `ASTColumnsExceptTransformer::transform`. [#99119](https://github.com/ClickHouse/ClickHouse/pull/99119) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrige um bypass de RBAC que permitia aos usuários obter a estrutura da tabela por meio de `DESCRIBE TABLE` ou `CREATE TABLE AS` em funções de tabela (`mysql()`, `postgresql()`, `sqlite()`, `arrowFlight()`, `jdbc()`, `odbc()`, etc.) sem os privilégios de acesso à origem exigidos. Para funções que inferem o schema a partir de servidores remotos, isso também permitia disparar conexões de saída (SSRF) sem autorização. [#99122](https://github.com/ClickHouse/ClickHouse/pull/99122) ([pufit](https://github.com/pufit)).
* Corrige travamento do Keeper (segfault no NuRaft) durante a reconfiguração dinâmica e a transferência de liderança. [#99133](https://github.com/ClickHouse/ClickHouse/pull/99133) ([JIaQi Tang](https://github.com/JiaQiTang98)).
* Corrige falha ao usar tabela Buffer com SAMPLE quando o destino não é compatível com ele. [#99141](https://github.com/ClickHouse/ClickHouse/pull/99141) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige LOGICAL\_ERROR causado por divergência na ordem das colunas nas partes de patch. [#99164](https://github.com/ClickHouse/ClickHouse/pull/99164) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrige um travamento muito raro quando a tabela Iceberg contém arquivos em formatos mistos (ORC e Parquet). Corrige [#88126](https://github.com/ClickHouse/ClickHouse/issues/88126). [#99168](https://github.com/ClickHouse/ClickHouse/pull/99168) ([alesapin](https://github.com/alesapin)).
* Correção para `max&#95;execution&#95;time` não ser aplicado em backup/restauração. [#99205](https://github.com/ClickHouse/ClickHouse/pull/99205) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Correção de `insert_deduplication_token`, que estava sendo ignorado silenciosamente em consultas `INSERT SELECT` sem `ORDER BY ALL`. Anteriormente, a desduplicação era totalmente desativada para `INSERT SELECT` sem ordenação, mesmo quando um token explícito fornecido pelo usuário era informado. Agora, fornecer `insert_deduplication_token` é suficiente para ativar a desduplicação independentemente de `ORDER BY ALL`. [#99206](https://github.com/ClickHouse/ClickHouse/pull/99206) ([Desel72](https://github.com/Desel72)).
* Corrige verificações excessivas de acesso durante a otimização `InverseDictionaryLookupPass`, verificando o privilégio `CREATE_TEMPORARY_TABLE` uma única vez antes da etapa, em vez de em cada nó visitado. [#99210](https://github.com/ClickHouse/ClickHouse/pull/99210) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Correção de `clickhouse format --obfuscate`, que produzia SQL inválido ao ofuscar tipos de skip index, nomes de codecs de compressão, nomes de engines de banco de dados e definições de layout/source de dicionários. [#99260](https://github.com/ClickHouse/ClickHouse/pull/99260) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigido um bug em que, em alguns casos, a comparação entre os tipos Time\[64] e DateTime\[64] ficava confusa; agora, em casos como esse, os valores de Time\[64] são promovidos para DateTime\[64] com a adição de `1970-01-01` como parte da data. [#99267](https://github.com/ClickHouse/ClickHouse/pull/99267) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Limitar as restrições de configuração no worker de DDL para consultas de DDL distribuído. [#99317](https://github.com/ClickHouse/ClickHouse/pull/99317) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrige pequenos problemas na autenticação TOTP: a opção de CLI `--one-time-password` com senha vazia e a validação dos valores de configuração `<digits>` e `<period>`. [#99322](https://github.com/ClickHouse/ClickHouse/pull/99322) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige o erro lógico `unordered_map::at: key not found` no formato de saída Avro ao serializar colunas `Enum8`/`Enum16` com valores que não estão presentes na definição do enum. [#99332](https://github.com/ClickHouse/ClickHouse/pull/99332) ([Desel72](https://github.com/Desel72)).
* Corrige o CHECK TABLE com serialização esparsa em Tuple com Dynamic. Fecha [#96588](https://github.com/ClickHouse/ClickHouse/issues/96588). [#99351](https://github.com/ClickHouse/ClickHouse/pull/99351) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrigida a validação rígida demais do pré-processador de índice de texto. [#99359](https://github.com/ClickHouse/ClickHouse/pull/99359) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige problemas de compatibilidade ao atualizar tabelas replicadas com índices minmax implícitos da versão 25.10 para versões mais recentes. [#99392](https://github.com/ClickHouse/ClickHouse/pull/99392) ([Raúl Marín](https://github.com/Algunenano)).
* Removido o suporte a funções negadas (`notEquals`, `notLike`, `notIn`) na análise de índice de texto. Essas funções nunca conseguiam pular nenhum grânulo, portanto sua análise no índice só adicionava sobrecarga, sem benefício algum. [#99393](https://github.com/ClickHouse/ClickHouse/pull/99393) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigido `optimize_skip_unused_shards` com um novo analisador para o caso em que uma tabela `Distributed` era usada em uma subconsulta com IN. [#99436](https://github.com/ClickHouse/ClickHouse/pull/99436) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige heap-use-after-free em `INTERSECT`/`EXCEPT` quando a consulta gera nomes de colunas duplicados. [#99471](https://github.com/ClickHouse/ClickHouse/pull/99471) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige erro lógico em `ALTER TABLE ... DROP PART` quando um parâmetro de consulta tipado é usado como nome da parte. [#99489](https://github.com/ClickHouse/ClickHouse/pull/99489) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a exceção `NOT_FOUND_COLUMN_IN_BLOCK` quando um predicado de índice de texto (por exemplo, `hasAllTokens`) é referenciado tanto nas cláusulas `SELECT` quanto `WHERE` por meio de um alias. [#99504](https://github.com/ClickHouse/ClickHouse/pull/99504) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige resultados incorretos ao usar `hasAllTokens` com OR em colunas que têm índices de texto separados. [#99505](https://github.com/ClickHouse/ClickHouse/pull/99505) ([Anton Popov](https://github.com/CurtizJ)).
* Inicializa o cache de páginas no `clickhouse-local` para que a configuração `page_cache_max_size` tenha efeito. [#99510](https://github.com/ClickHouse/ClickHouse/pull/99510) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida uma ocorrência rara em que uma parte de dados era marcada incorretamente como corrompida e desanexada após a consulta `DETACH/ATTACH TABLE`. [#99529](https://github.com/ClickHouse/ClickHouse/pull/99529) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige a exceção `std::length_error` ao consultar tabelas de sistema vazias no formato Pretty pela interface HTTP. [#99541](https://github.com/ClickHouse/ClickHouse/pull/99541) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige `LOGICAL_ERROR` ao usar `ALTER TABLE ADD COLUMN` para criar uma coluna `EPHEMERAL` com o mesmo nome de uma coluna virtual (por exemplo, `_part_offset`). [#99549](https://github.com/ClickHouse/ClickHouse/pull/99549) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um problema em que as entradas de `VectorSimilarityIndexCache` nunca eram descartadas do cache após a remoção de uma parte, devido a chaves de cache incompatíveis. [#99575](https://github.com/ClickHouse/ClickHouse/pull/99575) ([Seva Potapov](https://github.com/seva-potapov)).
* Proíbe a leitura de credenciais do Google a partir de um arquivo local. Essa configuração é insegura porque permite ler outras credenciais se o caminho do arquivo for conhecido. [#99584](https://github.com/ClickHouse/ClickHouse/pull/99584) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrige a queda de desempenho no analisador. Remove colunas não utilizadas em ARRAY JOIN. [#99587](https://github.com/ClickHouse/ClickHouse/pull/99587) ([Dmitry Novik](https://github.com/novikd)).
* Corrigida a leitura do índice de texto em uma tabela com exclusões leves e políticas de linha existentes. [#99661](https://github.com/ClickHouse/ClickHouse/pull/99661) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige o desreferenciamento de `nullptr` no leitor de Parquet quando o fluxo `filter-in-decoder` encontra páginas descartadas pelo filtro. Fecha [#99676](https://github.com/ClickHouse/ClickHouse/issues/99676). [#99677](https://github.com/ClickHouse/ClickHouse/pull/99677) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o seek incorreto em AsynchronousReadBufferFromFileDescriptor com O\_DIRECT. Fecha [#99358](https://github.com/ClickHouse/ClickHouse/issues/99358). [#99678](https://github.com/ClickHouse/ClickHouse/pull/99678) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrigido heap-buffer-overflow em `CompressionCodecT64` e aborto do processo em `CompressionCodecMultiple` ao descomprimir dados comprimidos malformados. Ambos os problemas foram encontrados por novos targets do libFuzzer. Os codecs agora lançam uma exceção em vez de provocar uma falha. [#99680](https://github.com/ClickHouse/ClickHouse/pull/99680) ([Rahul](https://github.com/motsc)).
* Adiar o processamento até que o servidor termine de carregar todas as tabelas. [#99700](https://github.com/ClickHouse/ClickHouse/pull/99700) ([Seva Potapov](https://github.com/seva-potapov)).
* Correção na fonte de dicionário MySQL que ignorava o `RemoteHostFilter` para parâmetros DDL inline. [#99720](https://github.com/ClickHouse/ClickHouse/pull/99720) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Corrigido erro lógico ao iterar por tabelas de lago de dados em `system.tables`. [#99739](https://github.com/ClickHouse/ClickHouse/pull/99739) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrigida a análise de predicados com a função `IN` em índice de texto com pré-processador. Corrigida a colisão de tokens buscados no índice de texto, o que poderia levar a resultados incorretos. [#99755](https://github.com/ClickHouse/ClickHouse/pull/99755) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigido loop infinito ao ler arquivos no formato `Npy` com dimensões negativas em shape. [#99812](https://github.com/ClickHouse/ClickHouse/pull/99812) ([Desel72](https://github.com/Desel72)).
* Corrigido o `global-buffer-overflow` na função `CRC32` com argumentos `FixedString` quando avaliada com zero linhas durante o cálculo do cabeçalho do plano de consulta. [#99835](https://github.com/ClickHouse/ClickHouse/pull/99835) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige falha (desreferenciamento de ponteiro nulo) ao executar `ALTER TABLE ... MODIFY COLUMN ... COMMENT` em tabelas Iceberg. [#99838](https://github.com/ClickHouse/ClickHouse/pull/99838) ([Desel72](https://github.com/Desel72)).
* Correção da configuração `aggregate_functions_null_for_empty` para funcionar com funções de agregação que retornam tipos não Nullable, como `Array` ou `Map` (por exemplo, `groupArray`, `sumMap`). [#99839](https://github.com/ClickHouse/ClickHouse/pull/99839) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a exceção LOGICAL\_ERROR na função `midpoint` quando chamada com tipos inteiros mistos, com e sem sinal. [#99867](https://github.com/ClickHouse/ClickHouse/pull/99867) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigir a exceção "Block structure mismatch" em consultas com cláusula HAVING nas quais a expressão de filtro contém tanto um agregado envolvido por uma função que produz NULL quanto `materialize(0)`. [#99915](https://github.com/ClickHouse/ClickHouse/pull/99915) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige uma falha de asserção em `sipHash128Keyed` (e em funções de hash com chave semelhantes) quando o argumento data é um map com chaves do tipo array ou outros tipos de array aninhados. [#99921](https://github.com/ClickHouse/ClickHouse/pull/99921) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a exceção `LOGICAL_ERROR` "Set não pronto" na função `IN` durante a otimização do plano de consulta com `convertAnyJoinToSemiOrAntiJoin`. [#99939](https://github.com/ClickHouse/ClickHouse/pull/99939) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="263-build-testing-packaging-improvement">
  #### melhoria em build, testes e empacotamento
</div>

* Reduz o tempo de compilação removendo inclusões pesadas de cabeçalhos e movendo instanciações de template custosas para fora dos cabeçalhos. [#97893](https://github.com/ClickHouse/ClickHouse/pull/97893) ([Raúl Marín](https://github.com/Algunenano)).
* Reduz o tempo de compilação de funções aritméticas e dos cabeçalhos relacionados ao enxugar matrizes de despacho de template e remover inclusões pesadas. [#98204](https://github.com/ClickHouse/ClickHouse/pull/98204) ([Raúl Marín](https://github.com/Algunenano)).
* Usa `mongo-c-driver` 2.2.2. [#98304](https://github.com/ClickHouse/ClickHouse/pull/98304) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Usa `postgres` REL\_18\_3. [#98306](https://github.com/ClickHouse/ClickHouse/pull/98306) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Habilita o allocator jemalloc para builds UBSan, a fim de evitar o acúmulo de RSS causado pela recuperação ineficiente de memória do malloc da glibc. [#98444](https://github.com/ClickHouse/ClickHouse/pull/98444) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Usa o symbol mangling v0 do Rust e remove símbolos internos da biblioteca PRQL para reduzir o inchaço nos nomes de símbolos causado por bibliotecas de combinadores de parser. [#98446](https://github.com/ClickHouse/ClickHouse/pull/98446) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona o conjunto de benchmark TPC-H e o README do TPC-DS a `tests/benchmarks`. [#98495](https://github.com/ClickHouse/ClickHouse/pull/98495) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Adiciona testes de corretude para todas as 99 queries do TPC-DS. [#99204](https://github.com/ClickHouse/ClickHouse/pull/99204) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Adiciona um teste de integration que reproduz o bug de DDL CREATE TABLE + ALTER com réplica offline ([#44070](https://github.com/ClickHouse/ClickHouse/issues/44070)), marcado como falha esperada. [#99259](https://github.com/ClickHouse/ClickHouse/pull/99259) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Integra o jemalloc com o prefixo `je_` e remove o uso de --wrap do linker. [#99342](https://github.com/ClickHouse/ClickHouse/pull/99342) ([Azat Khuzhin](https://github.com/azat)).

<div id="262">
  ### Lançamento do ClickHouse 26.2, 2026-02-26. [Apresentação](https://presentations.clickhouse.com/2026-release-26.2/), [Vídeo](https://www.youtube.com/watch?v=7qHba08vNfo)
</div>

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

* A desduplicação fica ativada por padrão para todas as inserções. Antes, ela ficava desativada para `async inserts` e para MVs, mas ativada para inserções síncronas. O objetivo é ter os mesmos padrões para as duas formas de inserção. Se você tiver a desduplicação explicitamente desativada no seu cluster, precisará definir explicitamente `deduplicate_insert='backward_compatible_choice'` para manter o comportamento antigo. O mesmo vale para `deduplicate_blocks_in_dependent_materialized_views`. [#95970](https://github.com/ClickHouse/ClickHouse/pull/95970) ([Sema Checherinda](https://github.com/CheSema)).
* Formato de armazenamento das estatísticas aprimorado. Todas as estatísticas agora são armazenadas em um único arquivo. [#93414](https://github.com/ClickHouse/ClickHouse/pull/93414) ([Anton Popov](https://github.com/CurtizJ)). Se você não ativou explicitamente as estatísticas da tabela, pode ignorar este item.
* Limita os metadados em memória do S3(Azure)Queue. As tabelas do sistema foram renomeadas de `azure_queue` para `azure_queue_metadata_cache` e de `system.s3queue` para `s3queue_metadata_cache`. [#95809](https://github.com/ClickHouse/ClickHouse/pull/95809) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Anteriormente, aplicar uma função a uma coluna `Variant` retornava NULL silenciosamente quando um subtipo de variante era incompatível com a função; agora, isso gera uma exceção, o que pode quebrar consultas que dependiam desse comportamento silencioso com NULL. [#95811](https://github.com/ClickHouse/ClickHouse/pull/95811) ([Bharat Nallan](https://github.com/bharatnc)).
* As colunas `DATE` do PostgreSQL agora são inferidas como `Date32` no ClickHouse (nas versões anteriores, eram inferidas como `Date`, o que levava ao estouro de valores fora de uma faixa estreita). Permite inserir valores `Date32` de volta no PostgreSQL. Fecha [#73084](https://github.com/ClickHouse/ClickHouse/issues/73084). [#95999](https://github.com/ClickHouse/ClickHouse/pull/95999) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A semântica da configuração `do_not_merge_across_partitions_select_final` ficou mais explícita. Antes, o recurso podia ser ativado automaticamente quando a configuração não era definida explicitamente nos arquivos de configuração. Isso causou confusão repetidas vezes e, infelizmente, levou a alguns problemas em produção. Agora, as regras são mais simples: `do_not_merge_across_partitions_select_final=1` ativa a funcionalidade incondicionalmente. Se `do_not_merge_across_partitions_select_final=0`, o modo automático só é usado se a nova configuração `enable_automatic_decision_for_merging_across_partitions_for_final=1` estiver ativada; caso contrário, não é usado. Para preservar o comportamento anterior tanto quanto possível, os valores padrão foram definidos como `do_not_merge_across_partitions_select_final=0` e `enable_automatic_decision_for_merging_across_partitions_for_final=1`. [#96110](https://github.com/ClickHouse/ClickHouse/pull/96110) ([Nikita Taranov](https://github.com/nickitat)).
* Ao criar uma tabela S3 com colunas explicitamente especificadas, o ClickHouse agora valida se esses nomes de coluna realmente existem no schema do arquivo remoto. Consultas que antes funcionavam com nomes de coluna incompatíveis agora falharão durante a criação da tabela. Isso corrige [#96089](https://github.com/ClickHouse/ClickHouse/issues/96089). [#96194](https://github.com/ClickHouse/ClickHouse/pull/96194) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Proibido o uso de subconsultas em ORDER BY e em outras expressões de chave de tabela. [#96847](https://github.com/ClickHouse/ClickHouse/pull/96847) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Ative `apply_row_policy_after_final` por padrão. Inicialmente, quando `optimize_move_to_prewhere_if_final=0`, tanto ROW POLICY quanto PREWHERE respeitavam FINAL e eram aplicadas após FINAL. Isso foi afetado por [#87303](https://github.com/ClickHouse/ClickHouse/issues/87303), que ignorava `optimize_move_to_prewhere_if_final` para o filtro de ROW POLICY. Para corrigir isso, este PR habilita a configuração `apply_row_policy_after_final`, introduzida em [#91065](https://github.com/ClickHouse/ClickHouse/issues/91065). Com `apply_row_policy_after_final` habilitada, ROW POLICY continua respeitando FINAL por padrão, como antes. Este PR introduz uma mudança incompatível, pois altera o comportamento de `optimize_move_to_prewhere_if_final=1`. Agora, para que ROW POLICY seja aplicada antes de FINAL, deve-se usar `apply_row_policy_after_final` em vez de `optimize_move_to_prewhere_if_final`. [#97279](https://github.com/ClickHouse/ClickHouse/pull/97279) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* O tipo `Date` agora é serializado como o tipo nativo `date32` do Arrow nos formatos Arrow/ArrowStream, em vez de `uint16`. Ferramentas como o PyArrow agora reconhecerão corretamente a coluna como sendo do tipo data. O comportamento anterior pode ser restaurado com a configuração `output_format_arrow_date_as_uint16`. A leitura de arquivos Arrow antigos que usavam `uint16` para colunas `Date` continua sendo compatível. [#96860](https://github.com/ClickHouse/ClickHouse/pull/96860) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Agora, os usuários podem usar o ClickStack (uma UI de observabilidade) diretamente no ClickHouse, o que é útil para depuração e desenvolvimento local. [#96597](https://github.com/ClickHouse/ClickHouse/pull/96597) ([Aaron Knudtson](https://github.com/knudtty)).
* Suporte para senha de uso único baseada em tempo (TOTP) como método de autenticação. [#71273](https://github.com/ClickHouse/ClickHouse/pull/71273) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Adicionada a configuração de banco de dados `lazy_load_tables`. Quando habilitada, as tabelas não são carregadas durante a inicialização do banco de dados — em vez disso, é criado um `StorageTableProxy` leve, e o table engine real é materializado no primeiro acesso. [#96283](https://github.com/ClickHouse/ClickHouse/pull/96283) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* Foi adicionada a configuração `input_format_max_block_wait_ms` para emitir blocos de dados ao atingir o timeout e permitir o processamento dos dados restantes quando uma conexão HTTP é encerrada inesperadamente. [#94509](https://github.com/ClickHouse/ClickHouse/pull/94509) ([Mostafa Mohamed Salah](https://github.com/Sasao4o)).
* Integração com o catálogo do Google BigLake. Isso encerra [#95339](https://github.com/ClickHouse/ClickHouse/issues/95339). [#97104](https://github.com/ClickHouse/ClickHouse/pull/97104) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Foi adicionada a tabela de sistema `system.tokenizers`, que mostra todos os tokenizadores disponíveis. [#96753](https://github.com/ClickHouse/ClickHouse/pull/96753) ([Robert Schulze](https://github.com/rschu1ze)).
* Adiciona uma nova tabela de sistema `system.user_defined_functions` para monitorar o status de carregamento e a configuração de UDFs. [#90340](https://github.com/ClickHouse/ClickHouse/pull/90340) ([Xu Jia](https://github.com/XuJia0210)).
* Adicionada a tabela `system.jemalloc_stats`, que expõe estatísticas do alocador de memória jemalloc (via `malloc_stats_print`) para diagnosticar o uso de memória em servidores compilados com jemalloc. Também foi adicionado o endpoint HTTP `/jemalloc.html` na interface HTTP do ClickHouse para visualização interativa dessas estatísticas. [#97077](https://github.com/ClickHouse/ClickHouse/pull/97077) ([Antonio Andelic](https://github.com/antonio2368)).
* Foi adicionada a tabela `system.jemalloc_profile_text` para ler e analisar perfis de heap do jemalloc. O formato de saída é controlado pela configuração `jemalloc_profile_text_output_format` (raw, symbolized ou collapsed; o padrão é collapsed). A resolução de frames inline é controlada por `jemalloc_profile_text_symbolize_with_inline` (quando ativado, frames inline são incluídos, ao custo de uma simbolização mais lenta; quando desativado, eles são ignorados para gerar saída mais rapidamente). Para o formato collapsed, `jemalloc_profile_text_collapsed_use_count` controla se as pilhas são ponderadas pela contagem de alocações ativas (true) ou pelos bytes ativos (false, padrão). Isso facilita o profiling de memória e a visualização de perfis de heap do jemalloc em flame graph. Corrige [#93248](https://github.com/ClickHouse/ClickHouse/issues/93248). [#97218](https://github.com/ClickHouse/ClickHouse/pull/97218) ([Antonio Andelic](https://github.com/antonio2368)).
* Adiciona a configuração `default_dictionary_database`, que permite ao ClickHouse resolver dicionários externos referenciados sem qualificador de banco de dados em um banco de dados padrão especificado. Isso simplifica a migração de dicionários globais definidos em XML para dicionários por banco de dados definidos em SQL, permitindo que consultas de dicionário existentes (por exemplo, dictGet('name', …)) continuem funcionando sem alterações. [#91412](https://github.com/ClickHouse/ClickHouse/pull/91412) ([Dmitrii Plotnikov](https://github.com/dimbo4ka)).
* Adiciona suporte a ZooKeeper auxiliar para `DatabaseReplicated`. [#91683](https://github.com/ClickHouse/ClickHouse/pull/91683) ([RinChanNOW](https://github.com/RinChanNOWWW)).
* Implementadas a nova função de tabela `primes` e a nova tabela de sistema `system.primes`, que contém números primos em ordem crescente. Fecha [#90839](https://github.com/ClickHouse/ClickHouse/issues/90839). [#92776](https://github.com/ClickHouse/ClickHouse/pull/92776) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Async inserts oferecem suporte a quorum em paralelo. Os dados inseridos são replicados para o quorum. Se forem encontradas duplicatas, a consulta aguarda até que os dados inseridos anteriormente também sejam replicados. [#93356](https://github.com/ClickHouse/ClickHouse/pull/93356) ([Sema Checherinda](https://github.com/CheSema)).
* Adicionadas as funções `colorOKLABToSRGB`, `colorSRGBToOKLAB` para converter valores de sRGB para OKLAB e vice-versa. [#93361](https://github.com/ClickHouse/ClickHouse/pull/93361) ([Pranav Tiwari](https://github.com/pranavt84)).
* Nova configuração `deduplicate_insert`, que substitui `insert_deduplicate` e `async_insert_deduplicate`. [#94413](https://github.com/ClickHouse/ClickHouse/pull/94413) ([Sema Checherinda](https://github.com/CheSema)).
* A configuração do servidor `insert_deduplication_version` possibilita a migração para um hash de desduplicação unificado. [#95409](https://github.com/ClickHouse/ClickHouse/pull/95409) ([Sema Checherinda](https://github.com/CheSema)).
* Adicionada a função de hash `xxh3_128`. [#96055](https://github.com/ClickHouse/ClickHouse/pull/96055) ([Raúl Marín](https://github.com/Algunenano)).
* Adicionada a consulta `OPTIMIZE <table> DRY RUN PARTS <part names>` para simular mesclagens sem gravar a parte resultante. Ela pode ser útil para fins de teste: verificar a correção da mesclagem na nova versão, reproduzir de forma determinística bugs relacionados a mesclagens e avaliar com confiabilidade o desempenho da mesclagem. [#96122](https://github.com/ClickHouse/ClickHouse/pull/96122) ([Anton Popov](https://github.com/CurtizJ)).
* Adiciona uma nova verificação, ativada por padrão por meio da configuração `check_named_collection_dependencies`, para evitar a remoção de named collections usadas por tabelas. [#96181](https://github.com/ClickHouse/ClickHouse/pull/96181) ([Pablo Marcos](https://github.com/pamarcos)).
* Adicionado `system.fail_points` para inspecionar os failpoints existentes no servidor e verificar se estão habilitados ou não. Isso ajudará a automatizar os testes. [#96762](https://github.com/ClickHouse/ClickHouse/pull/96762) ([Pedro Ferreira](https://github.com/PedroTadim)).
* Adiciona controle de acesso baseado em funções ao catálogo do Glue. Use as configurações `aws_role_arn` e, opcionalmente, `aws_role_session_name`. [#90825](https://github.com/ClickHouse/ClickHouse/pull/90825) ([Antonio Andelic](https://github.com/antonio2368)).
* Foi adicionada a configuração `add_minmax_index_for_temporal_columns` que, quando ativada, cria automaticamente índices minmax para todas as colunas `Date`, `Date32`, `Time`, `Time64`, `DateTime` e `DateTime64`. [#93355](https://github.com/ClickHouse/ClickHouse/pull/93355) ([Michael Jarrett](https://github.com/EmeraldShift)).
* Suporte a aliases de tabela estendidos para junções (consultas como `SELECT * FROM (SELECT 1) AS t(a) JOIN (SELECT 1) AS u(b) ON a = b`). Resolve [#95131](https://github.com/ClickHouse/ClickHouse/issues/95131). [#95331](https://github.com/ClickHouse/ClickHouse/pull/95331) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Adicionado suporte a `ALTER TABLE RENAME COLUMN` para tabelas Iceberg. Anteriormente, apenas `ADD COLUMN, DROP COLUMN, and MODIFY COLUMN` eram suportados. [#97455](https://github.com/ClickHouse/ClickHouse/pull/97455) ([murphy-4o](https://github.com/murphy-4o)).

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

* O índice de texto agora está em disponibilidade geral. [#96794](https://github.com/ClickHouse/ClickHouse/pull/96794) ([Robert Schulze](https://github.com/rschu1ze)).
* O tipo de dado `QBit`, para armazenamento vetorial quantizado com bits compactados (usado em busca aproximada de vizinhos mais próximos), agora está disponível de forma geral e não exige mais a ativação de uma configuração experimental. [#95358](https://github.com/ClickHouse/ClickHouse/pull/95358) ([Raufs Dunamalijevs](https://github.com/rienath)).
* A busca vetorial no ClickHouse agora pode usar réplicas no cluster para *distribuir* a carga e a pesquisa entre as partes do índice vetorial. Isso permite que o ClickHouse ofereça suporte a índices vetoriais grandes que excedem a capacidade de memória de uma única VM. [#95876](https://github.com/ClickHouse/ClickHouse/pull/95876) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Adicionado um AST fuzzer no lado do servidor, controlado pelas configurações `ast_fuzzer_runs` e `ast_fuzzer_any_query`. Quando habilitado, o servidor executa mutações aleatórias de cada consulta após sua execução normal, descartando os resultados. [#97568](https://github.com/ClickHouse/ClickHouse/pull/97568) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionada a função `iif` ao dialeto KQL experimental. [#94790](https://github.com/ClickHouse/ClickHouse/pull/94790) ([happyso](https://github.com/sunyeongchoi)).
* A inferência de esquema agora respeita `allow_experimental_nullable_tuple_type`. Quando habilitada, ela permite que tipos de tupla inferidos sejam `Nullable(Tuple(...))`, para que objetos aninhados ausentes possam se tornar `NULL` em vez de uma tupla com elementos `NULL`. [#95525](https://github.com/ClickHouse/ClickHouse/pull/95525) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* A configuração `use_statistics_cache` agora vem habilitada por padrão, de modo que as estatísticas de coluna sejam armazenadas em cache na memória para acelerar a otimização de consultas, sem a necessidade de recarregá-las de cada parte. [#95950](https://github.com/ClickHouse/ClickHouse/pull/95950) ([Han Fei](https://github.com/hanfei1991)).

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

* Permite que qualquer expressão determinística na chave primária seja usada para skipping de dados (por exemplo, `ORDER BY cityHash64(user_id)`/ `ORDER BY length(user_id)`). Para expressões determinísticas, o ClickHouse pode aplicar a expressão às constantes da consulta e usar o resultado no índice da chave primária para predicados como `=`, `IN` e `has`. Se a expressão também for injetiva (por exemplo, `ORDER BY hex(p)` ou `ORDER BY reverse(tuple(reverse(p), hex(p)))`), podemos usar efetivamente o índice para as formas negadas: `!=`, `NOT IN` e `NOT has`. Fecha [#10685](https://github.com/ClickHouse/ClickHouse/issues/10685). Fecha [#82161](https://github.com/ClickHouse/ClickHouse/issues/82161). [#92952](https://github.com/ClickHouse/ClickHouse/pull/92952) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Formato de armazenamento das estatísticas melhorado. Agora, todas as estatísticas são armazenadas em um único arquivo. [#93414](https://github.com/ClickHouse/ClickHouse/pull/93414) ([Anton Popov](https://github.com/CurtizJ)).
* Permite leitura paralela para motores de tabela/funções remotos no cache do sistema de arquivos. [#71781](https://github.com/ClickHouse/ClickHouse/pull/71781) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Permite usar cache de páginas em espaço do usuário com arquivos locais e funções de tabela para armazenamento de objetos. [#77874](https://github.com/ClickHouse/ClickHouse/pull/77874) ([Michael Kolupaev](https://github.com/al13n321)).
* Evita memcpy desnecessário no cache de páginas em espaço de usuário. [#77884](https://github.com/ClickHouse/ClickHouse/pull/77884) ([Michael Kolupaev](https://github.com/al13n321)).
* O valor padrão de `concurrent_threads_scheduler` agora é `max_min_fair` em vez de `fair_round_robin`. Isso melhora a equidade sob alta carga ao priorizar consultas com menos slots alocados, para que consultas de curta duração não sejam prejudicadas por consultas de longa duração. [#95300](https://github.com/ClickHouse/ClickHouse/pull/95300) ([Sergei Trifonov](https://github.com/serxa)).
* Se uma consulta `FINAL` usava a condição da chave primária para filtrar, seguida por skip indexes para outras condições, a etapa de processamento `PrimaryKeyExpand` agora verificará a interseção apenas dos intervalos inicialmente pré-selecionados da chave primária. [#94903](https://github.com/ClickHouse/ClickHouse/pull/94903) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Ao usar réplicas paralelas com funções de tabela como `s3(...)`, as consultas com uma única subconsulta que encapsula a função de tabela agora são paralelizadas automaticamente entre as réplicas, enquanto antes apenas referências diretas à função de tabela eram paralelizadas. Fecha [#92264](https://github.com/ClickHouse/ClickHouse/issues/92264). [#96332](https://github.com/ClickHouse/ClickHouse/pull/96332) ([phulv94](https://github.com/phulv94)).
* Permite separar dados e arquivos do sistema em cache em segmentos distintos. [#87834](https://github.com/ClickHouse/ClickHouse/pull/87834) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Aceleração de algumas operações de hash join com a implementação de dispatch dinâmico para `ColumnVector::replicate`. [#79573](https://github.com/ClickHouse/ClickHouse/pull/79573) ([Raúl Marín](https://github.com/Algunenano)).
* Melhoria de desempenho do `hash join` paralelo em casos de predicados complexos. Antes, processávamos em uma única thread as linhas sem correspondência no join, o que não é ideal; a otimização consiste em paralelizar o processamento dessas linhas em várias threads. Pode ser controlado pela configuração `parallel_non_joined_rows_processing`. Ativado por padrão. [#92068](https://github.com/ClickHouse/ClickHouse/pull/92068) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Pequena otimização no parsing do tipo JSON. [#93614](https://github.com/ClickHouse/ClickHouse/pull/93614) ([Pavel Kruglov](https://github.com/Avogar)).
* Melhora o consumo de memória da AST. A otimização faz sentido, pois os campos não são usados quando o realce não é utilizado e não há parsing de VALUES. [#93974](https://github.com/ClickHouse/ClickHouse/pull/93974) ([Ilya Yatsishin](https://github.com/qoega)).
* Otimize o consumo de memória de objetos AST de Tuple nomeadas. Armazene os nomes das colunas como strings no objeto tuple, em vez de mantê-los em nós literais AST genéricos. [#94704](https://github.com/ClickHouse/ClickHouse/pull/94704) ([Ilya Yatsishin](https://github.com/qoega)).
* A desvirtualização foi aprimorada com opções adicionais do linker. [#94737](https://github.com/ClickHouse/ClickHouse/pull/94737) ([Nikita Taranov](https://github.com/nickitat)).
* Melhora o desempenho da clonagem de réplicas de tabelas ReplicatedMergeTree com muitas partes ao agrupar solicitações ao ZooKeeper em lotes. [#94847](https://github.com/ClickHouse/ClickHouse/pull/94847) ([c-end](https://github.com/c-end)).
* Quando a etapa de leitura já tinha filtros PREWHERE, não era possível adicionar outro filtro. Essa mudança adia a otimização de PREWHERE para depois da otimização de filtros de runtime de JOIN, para que os filtros de runtime também possam ser aplicados ao PREWHERE. [#95838](https://github.com/ClickHouse/ClickHouse/pull/95838) ([Alexander Gololobov](https://github.com/davenger)).
* Acelera a compressão com o codec `T64` usando despacho dinâmico em x86. [#95881](https://github.com/ClickHouse/ClickHouse/pull/95881) ([Raúl Marín](https://github.com/Algunenano)).
* Aceleração do `uniq` para tipos numéricos com inserções em lote, quando possível (sem NULL, sem -If, sem GROUP BY, sem IPv6 nem String). [#95904](https://github.com/ClickHouse/ClickHouse/pull/95904) ([Raúl Marín](https://github.com/Algunenano)).
* Otimizações de baixo nível para o Keeper: constatou-se que `ZooKeeper::observeOperations` é responsável por >20% do consumo de CPU da thread de recebimento do ZooKeeper. Esta alteração resolve isso da seguinte forma: 1. Para `AggregatedZooKeeperLog::stats`, usa `CityHash64` em vez de `SipHash`, que é >10x mais rápido. 2. Para `Coordination::ErrorCounter`, usa `std::array<std::atomic<UInt32>, N>` em vez de `std::unordered_map` e `std::mutex`. [#95962](https://github.com/ClickHouse/ClickHouse/pull/95962) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Removido o alinhamento de 64 bytes de ProfileEvents::Counter para economizar memória. [#96097](https://github.com/ClickHouse/ClickHouse/pull/96097) ([Azat Khuzhin](https://github.com/azat)).
* Otimização de memória: reduz o tamanho da estrutura `CachedOnDiskReadBufferFromFile` em 50x. [#96098](https://github.com/ClickHouse/ClickHouse/pull/96098) ([Azat Khuzhin](https://github.com/azat)).
* Não copie dados antigos no redimensionamento da tabela hash se ela estiver vazia. [#96180](https://github.com/ClickHouse/ClickHouse/pull/96180) ([Raúl Marín](https://github.com/Algunenano)).
* Suporte a filtros de runtime de JOIN em junções `RIGHT OUTER`. [#96183](https://github.com/ClickHouse/ClickHouse/pull/96183) ([Hechem Selmi](https://github.com/m-selmi)).
* A otimização `enable_join_runtime_filters` agora passa a ser o padrão. [#89314](https://github.com/ClickHouse/ClickHouse/pull/89314) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Anteriormente, a otimização de leitura direta do índice de texto era aplicada apenas quando todas as partes tinham um índice de texto materializado. Este PR adiciona suporte parcial: se algumas partes tiverem um índice de texto materializado, essas partes o usarão, enquanto as partes sem um índice de texto materializado voltarão a executar a expressão de filtro original. [#96411](https://github.com/ClickHouse/ClickHouse/pull/96411) ([Anton Popov](https://github.com/CurtizJ)).
* Adicionados índices secundários `minmax` para colunas de tempo e índices `bloom_filter` para colunas `query_id`/`initial_query_id` nas tabelas de log do sistema, para filtragem mais rápida. [#96712](https://github.com/ClickHouse/ClickHouse/pull/96712) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A otimização de materialização tardia agora é aplicada a todos os ramos de uma consulta `UNION ALL`, não apenas ao primeiro. Consultas que combinam múltiplas leituras ordenadas e limitadas de diferentes tabelas `MergeTree` por meio de `UNION ALL` agora se beneficiarão da leitura postergada de colunas em cada ramo, reduzindo a E/S. [#96832](https://github.com/ClickHouse/ClickHouse/pull/96832) ([Federico Ginosa](https://github.com/menxit)).
* Otimiza o cálculo do índice skip minmax durante o INSERT ao remover uma cópia desnecessária de dados e habilitar o cálculo vetorizado de mínimo/máximo para colunas numéricas. [#97392](https://github.com/ClickHouse/ClickHouse/pull/97392) ([Raúl Marín](https://github.com/Algunenano)).
* O mecanismo de armazenamento `DeltaLake` agora usa o resultado de `count()` dos metadados do Delta Lake e exibe as estatísticas corretas da tabela em system.tables (total de bytes/linhas). [#96190](https://github.com/ClickHouse/ClickHouse/pull/96190) ([Kseniia Sumarokova](https://github.com/kssenii)).
* As colunas não utilizadas também são removidas da etapa de leitura ao ler de uma MergeTree. Isso é especialmente útil quando um filtro é levado para `PREWHERE`. [#89982](https://github.com/ClickHouse/ClickHouse/pull/89982) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Melhorado o processamento da consulta `SHOW TABLES`, buscando apenas os nomes das tabelas, e aprimorado o getLightweightTablesIterator para retornar uma estrutura contendo apenas nomes de tabelas. Resolve [#93835](https://github.com/ClickHouse/ClickHouse/issues/93835). [#94467](https://github.com/ClickHouse/ClickHouse/pull/94467) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Aprimora `assumeNotNull`, `coalesce` e `ifNull` para permitir a poda pela chave primária e pelo skip index em predicados de intervalo quando as colunas-chave são encapsuladas nessas funções. Fecha [#94689](https://github.com/ClickHouse/ClickHouse/issues/94689). [#94754](https://github.com/ClickHouse/ClickHouse/pull/94754) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Adiciona a extensão with\_data & with\_stat à solicitação getChildren do Keeper. Isso permite obter não apenas a lista de nós filhos, mas também seus `stat` e/ou `data` em uma única operação. [#94826](https://github.com/ClickHouse/ClickHouse/pull/94826) ([Nikolay Degterinsky](https://github.com/evillique)).
* A análise de índice é realizada apenas uma vez (na maioria dos casos), independentemente de o plano executado ser local ou com réplicas paralelas. [#94854](https://github.com/ClickHouse/ClickHouse/pull/94854) ([Nikita Taranov](https://github.com/nickitat)).
* Permite habilitar a análise distribuída de índices com base na quantidade de partes (`distributed_index_analysis_min_parts_to_activate`) e no tamanho dos índices (`distributed_index_analysis_min_indexes_size_to_activate`). [#95216](https://github.com/ClickHouse/ClickHouse/pull/95216) ([Azat Khuzhin](https://github.com/azat)).
* Habilitada a otimização PREWHERE para tabelas Iceberg. [#95476](https://github.com/ClickHouse/ClickHouse/pull/95476) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Reduz a pegada de memória de algumas classes de AST. [#95514](https://github.com/ClickHouse/ClickHouse/pull/95514) ([Raúl Marín](https://github.com/Algunenano)).
* Limita o número de streams do pipeline gerados com `split_intersecting_parts_ranges_into_layers` habilitado. Ajuda a evitar o consumo excessivo de memória. [#96478](https://github.com/ClickHouse/ClickHouse/pull/96478) ([Nikita Taranov](https://github.com/nickitat)).
* Implementa a otimização de conjuntos equivalentes para múltiplas junções. Consultas com várias operações consecutivas de `INNER JOIN` agora se beneficiam de uma otimização aprimorada de pushdown de filtros. Quando tabelas são unidas por colunas equivalentes (por exemplo, `t1 JOIN t2 ON t1.id = t2.id JOIN t3 ON t2.id = t3.id WHERE t1.id > 10`), os filtros aplicados a qualquer tabela da cadeia são automaticamente propagados para todas as tabelas. Fecha [#96550](https://github.com/ClickHouse/ClickHouse/issues/96550). [#96596](https://github.com/ClickHouse/ClickHouse/pull/96596) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Otimiza a varredura dos metadados do delta lake. Usa alterações do PR [https://github.com/delta-io/delta-kernel-rs/pull/1827](https://github.com/delta-io/delta-kernel-rs/pull/1827) do delta-kernel. [#96686](https://github.com/ClickHouse/ClickHouse/pull/96686) ([Kseniia Sumarokova](https://github.com/kssenii)).
* No banco de dados Replicated, não atualize o cluster armazenado em cache para cada consulta fictícia. [#96897](https://github.com/ClickHouse/ClickHouse/pull/96897) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Use o índice da chave primária ao filtrar com `startsWithUTF8` se o prefixo contiver apenas caracteres ASCII. [#97055](https://github.com/ClickHouse/ClickHouse/pull/97055) ([vkcku](https://github.com/vkcku)).

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

* Adicionado rastreamento do OpenTelemetry para solicitações ao Keeper. [#91332](https://github.com/ClickHouse/ClickHouse/pull/91332) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Novas opções de configuração: `logger.startup_console_level` & `logger.shutdown_console_level` para permitir substituir o nível de log do console durante a inicialização e o desligamento do ClickHouse, respectivamente. [#95919](https://github.com/ClickHouse/ClickHouse/pull/95919) ([Garrett Thomas](https://github.com/garrettthomaskth)).
* Respeitar as sobreposições definidas na linha de comando ao recarregar a configuração. Fecha [#80294](https://github.com/ClickHouse/ClickHouse/issues/80294). [#80295](https://github.com/ClickHouse/ClickHouse/pull/80295) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permitir sobrescrever parâmetros de coleção nomeada com pares chave-valor na função de tabela `mongodb`. [#89616](https://github.com/ClickHouse/ClickHouse/pull/89616) ([vanchaklar](https://github.com/vanchaklar)).
* A otimização de leitura em ordem para tabelas Iceberg agora funciona com funções de ordenação complexas, como `icebergBucket` e `icebergTruncate`, não apenas com referências simples a colunas. [#90256](https://github.com/ClickHouse/ClickHouse/pull/90256) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Adiciona uma nova coluna chamada parts\_postpone\_reasons em system.mutations para melhorar o diagnóstico, que exibe os motivos do adiamento das partes. [#92206](https://github.com/ClickHouse/ClickHouse/pull/92206) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Acompanhe as alterações no número de linhas a serem lidas (devido a inserções/exclusões ou ao uso do cache de condições de consulta) em `DataflowStatisticsCache`. [#93636](https://github.com/ClickHouse/ClickHouse/pull/93636) ([Nikita Taranov](https://github.com/nickitat)).
* Suporte à consulta SYSTEM RESET DDL WORKER \[ON CLUSTER]. Ela solicita a redefinição do estado do DDLWorker em sua thread principal. Isso é útil para atualizar a réplica ativa quando os IDs de host são atualizados. [#93780](https://github.com/ClickHouse/ClickHouse/pull/93780) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Adicionado suporte a `mutation_ids` em `system.part_log` para os tipos de evento `MUTATE_PART` e `MUTATE_PART_START`. [#93811](https://github.com/ClickHouse/ClickHouse/pull/93811) ([Shaohua Wang](https://github.com/tiandiwonder)).
* As operações em segundo plano (Mutate, Merge) agora podem ser configuradas independentemente por meio do perfil 'background'. Antes, essas operações compartilhavam as mesmas configurações das consultas regulares por meio do perfil 'default'. [#93905](https://github.com/ClickHouse/ClickHouse/pull/93905) ([Arsen Muk](https://github.com/arsenmuk)).
* Adicionadas mais informações ao `system.crash_log`. [#94112](https://github.com/ClickHouse/ClickHouse/pull/94112) [#95857](https://github.com/ClickHouse/ClickHouse/pull/95857) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Foi adicionada a nova métrica `QueryNonInternal` para acompanhar o número de consultas não internas em execução. Essa métrica é exposta como `ClickHouseMetrics_QueryNonInternal` e ajuda os operadores a monitorar a concorrência de consultas em relação ao limite `max_concurrent_queries`, que se aplica apenas a consultas não internas. [#94284](https://github.com/ClickHouse/ClickHouse/pull/94284) ([Ashwath Singh](https://github.com/ashwath)).
* Adiciona suporte à coleta de estatísticas de bytes de entrada para colunas em partes compactas no `RuntimeDataflowStatisticsCacheUpdater`. [#94626](https://github.com/ClickHouse/ClickHouse/pull/94626) ([Nikita Taranov](https://github.com/nickitat)).
* Adiciona uma verificação para detectar configuração incorreta do Keeper que causa falhas na formação do cluster. Fecha [#60932](https://github.com/ClickHouse/ClickHouse/issues/60932). [#94682](https://github.com/ClickHouse/ClickHouse/pull/94682) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Melhora na desserialização de prefixos JSON durante o carregamento de partes. [#94848](https://github.com/ClickHouse/ClickHouse/pull/94848) ([Pavel Kruglov](https://github.com/Avogar)).
* Refatora a gravação usando o pipeline completo de INSERT, que aciona visões materializadas na tabela de destino. [#94890](https://github.com/ClickHouse/ClickHouse/pull/94890) ([Kai Zhu](https://github.com/nauu)).
* Use otimizações do plano de busca por similaridade vetorial apenas se houver um índice para a coluna pesquisada. [#94998](https://github.com/ClickHouse/ClickHouse/pull/94998) ([Eduard Karacharov](https://github.com/korowa)).
* Verifique o limite total de memória antes da autenticação do usuário e gere `(total) memory limit exceeded` se o limite total exceder o permitido. [#95003](https://github.com/ClickHouse/ClickHouse/pull/95003) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Adicionada a opção de configuração `throw_on_unmatched_row_policies`, que, quando habilitada, lança uma exceção se um usuário consultar uma tabela que tenha políticas de linha, mas nenhuma delas se aplique a esse usuário — evitando o comportamento ambíguo de retornar todas as linhas devido a uma configuração incorreta de controle de acesso. [#95014](https://github.com/ClickHouse/ClickHouse/pull/95014) ([Vitaly Baranov](https://github.com/vitlibar)).
* Atualização dinâmica dos tokens de acesso do S3 em consultas longas com Unity Catalog. Isso fecha [#93981](https://github.com/ClickHouse/ClickHouse/issues/93981). [#95069](https://github.com/ClickHouse/ClickHouse/pull/95069) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Desative a redução gradual de páginas sujas do jemalloc se o ClickHouse estiver sob pressão de memória contínua por `memory_worker_decay_adjustment_period_ms` milissegundos. Reative a redução gradual de páginas sujas do jemalloc se o ClickHouse estiver operando em condições normais pelo mesmo período. [#95145](https://github.com/ClickHouse/ClickHouse/pull/95145) ([Antonio Andelic](https://github.com/antonio2368)).
* Suporte auxiliar ao ZooKeeper no S3Queue usando a configuração `keeper_path` do s3Queue. [#95203](https://github.com/ClickHouse/ClickHouse/pull/95203) ([Diego Nieto](https://github.com/lesandie)).
* Respeitar `max_parts_to_merge_at_once` nas mesclagens de partes com descarte por TTL. [#95315](https://github.com/ClickHouse/ClickHouse/pull/95315) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adiciona `connection_address` e `connection_port` ao query\_log para refletir a conexão física (`address` e `port` são substituídos ao se conectar por meio de proxy e auth\_use\_forwarded\_address=1). [#95471](https://github.com/ClickHouse/ClickHouse/pull/95471) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrigida a contabilização incorreta de memória do cache de condições da consulta. O principal problema era que ela não levava em conta a chave de cache, composta por várias strings (como part\_name, o ID da tabela e toda a condição SQL). [#95478](https://github.com/ClickHouse/ClickHouse/pull/95478) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* O servidor iniciado com a configuração embutida permitirá manipular usuários e privilégios, salvando-os no diretório `access`, como na configuração padrão. Isso facilita os testes. Também foram habilitadas todas as melhorias de access\_control\_improvements na configuração embutida e no clickhouse-local. [#95481](https://github.com/ClickHouse/ClickHouse/pull/95481) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mensagens de erro de autenticação do S3 foram aprimoradas para incluir uma dica para verificar as credenciais quando o acesso for negado. [#95648](https://github.com/ClickHouse/ClickHouse/pull/95648) ([Gerald Latkovic](https://github.com/batkovic75)).
* Habilita o cache de estatísticas e define o período de atualização do cache para 300s. [#95841](https://github.com/ClickHouse/ClickHouse/pull/95841) ([Han Fei](https://github.com/hanfei1991)).
* Adiciona o nome do componente em `system.aggregated_zookeeper_log`. [#95882](https://github.com/ClickHouse/ClickHouse/pull/95882) ([Antonio Andelic](https://github.com/antonio2368)).
* Ignorar leituras no armazenamento de objetos ao consultar tabelas `DeltaLake` em `system.tables`. [#95899](https://github.com/ClickHouse/ClickHouse/pull/95899) ([Antonio Andelic](https://github.com/antonio2368)).
* Habilita `enable_max_bytes_limit_for_min_age_to_force_merge` por padrão quando a configuração `compatibility` está definida como `26.2` ou superior. [#95917](https://github.com/ClickHouse/ClickHouse/pull/95917) ([Christoph Wurm](https://github.com/cwurm)).
* Delta Lake agora está disponível no macOS. Corrige #95979. [#95985](https://github.com/ClickHouse/ClickHouse/pull/95985) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Nas versões anteriores, ao combinar expressões ALTER conflitantes com UPDATE e RENAME COLUMN, era lançado um erro lógico em vez de uma exceção apropriada. Fecha [#70678](https://github.com/ClickHouse/ClickHouse/issues/70678). [#96022](https://github.com/ClickHouse/ClickHouse/pull/96022) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Melhorada a saída de ajuda para todos os aplicativos do ClickHouse, e adicionada a opção --no-sudo, com algumas correções. Esta é uma continuação de [#58244](https://github.com/ClickHouse/ClickHouse/issues/58244), de [Ilya Yatsishin](https://github.com/qoega). [#96025](https://github.com/ClickHouse/ClickHouse/pull/96025) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionar o alias `distanceCosine` para `cosineDistance`, porque todas as outras funções de distância já têm um alias nesse formato. [#96065](https://github.com/ClickHouse/ClickHouse/pull/96065) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Adiciona suporte à extensão `with_data` do Keeper para melhorar a obtenção de tabelas no Database Replicated. [#96090](https://github.com/ClickHouse/ClickHouse/pull/96090) ([Nikolay Degterinsky](https://github.com/evillique)).
* Atualizado o chdig para [v26.2.1](https://github.com/azat/chdig/releases/tag/v26.2.1) (novos recursos e suporte a MacOS). [#96113](https://github.com/ClickHouse/ClickHouse/pull/96113) ([Azat Khuzhin](https://github.com/azat)).
* Melhoria no pushdown de filtro para `numbers` e `primes`. O ClickHouse agora pode derivar limites de valor conservadores a partir de condições `WHERE` quando não é possível derivar limites exatos, e restringir a geração da sequência de acordo com isso (por exemplo, para `WHERE number % 5 < 2 AND number > 100 AND number < 300`, o ClickHouse gerará apenas números entre 100 e 300 e, em seguida, aplicará o predicado), evitando varreduras não limitadas. Fecha [#84853](https://github.com/ClickHouse/ClickHouse/issues/84853). Fecha [#93913](https://github.com/ClickHouse/ClickHouse/issues/93913). [#96115](https://github.com/ClickHouse/ClickHouse/pull/96115) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* O formatador anteriormente colocava `SELECT` entre parênteses quando uma cláusula `COMMENT` estava presente, para eliminar ambiguidades na análise sintática. Em vez disso, `COMMENT` agora é emitido antes de `AS SELECT`, o que elimina a ambiguidade sem usar parênteses. [#96293](https://github.com/ClickHouse/ClickHouse/pull/96293) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A opção de configuração `allow_impersonate_user` agora fica na seção `access_control_improvements`, em vez de ser uma configuração autônoma do servidor. [#96451](https://github.com/ClickHouse/ClickHouse/pull/96451) ([Vitaly Baranov](https://github.com/vitlibar)).
* Permite recarregar a quente a configuração `core_dump.size_limit`, evitando a necessidade de reiniciar servidores para que as alterações de configuração entrem em vigor. [#96524](https://github.com/ClickHouse/ClickHouse/pull/96524) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Melhora a interoperabilidade dos profilers de CPU e em tempo real com os timeouts de socket. [#96601](https://github.com/ClickHouse/ClickHouse/pull/96601) ([Sergei Trifonov](https://github.com/serxa)).
* Impede o reaparecimento de dados removidos se ADD COLUMN for executado rapidamente após a mutação DROP COLUMN. [#96713](https://github.com/ClickHouse/ClickHouse/pull/96713) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Alterado o tipo de `function_id` em `system.instrumentation` de LowCardinality(Int32) para Int32. [#96726](https://github.com/ClickHouse/ClickHouse/pull/96726) (Copilot).
* A espera síncrona por mutações passará a respeitar o cancelamento da consulta e os limites de tempo. [#96756](https://github.com/ClickHouse/ClickHouse/pull/96756) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado o comando de sistema `SYSTEM RELOAD DELTA KERNEL TRACING <level>` para permitir alterar o logging do delta-kernel, o que pode ser útil para depuração. [#96763](https://github.com/ClickHouse/ClickHouse/pull/96763) ([Kseniia Sumarokova](https://github.com/kssenii)).
* A filtragem por família de endereços IP, isto é, as configurações `dns_allow_resolve_names_to_ipv4/ipv6`, é aplicada mesmo que o cache de DNS esteja desabilitado. [#96810](https://github.com/ClickHouse/ClickHouse/pull/96810) ([c-end](https://github.com/c-end)).
* Melhorias na introspecção do jemalloc. [#96840](https://github.com/ClickHouse/ClickHouse/pull/96840) ([Azat Khuzhin](https://github.com/azat)).
* Corrige a interface web do `/play`, que gerava `QUERY_CACHE_USED_WITH_SYSTEM_TABLE` ao consultar tabelas de sistema. [#96869](https://github.com/ClickHouse/ClickHouse/pull/96869) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Melhoria na UI Web: alterar o favicon para indicar o estado de uma consulta em execução; exibir erros de consultas auxiliares (carregamento de bancos de dados e tabelas) em vez de ignorá-los silenciosamente. Fecha [#85055](https://github.com/ClickHouse/ClickHouse/issues/85055). [#96883](https://github.com/ClickHouse/ClickHouse/pull/96883) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Torne o painel esquerdo da UI `/play` clicável para alternar a lista de bancos de dados. [#96884](https://github.com/ClickHouse/ClickHouse/pull/96884) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `DROP DATABASE` agora remove as tabelas na ordem inversa das dependências, aumentando a segurança contra falhas quando o banco de dados contém tabelas com dependências de carregamento (por exemplo, tabelas `Distributed` que usam `joinGet`). [#97057](https://github.com/ClickHouse/ClickHouse/pull/97057) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Atualize o yaml-cpp para impedir que YAML inválido seja ignorado. [#97333](https://github.com/ClickHouse/ClickHouse/pull/97333) ([Azat Khuzhin](https://github.com/azat)).
* Exibir um indicador de carregamento na barra lateral de `play.html` enquanto as tabelas são carregadas. [#97531](https://github.com/ClickHouse/ClickHouse/pull/97531) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona um botão para copiar os resultados brutos da consulta para a área de transferência na UI web integrada (play.html). [#97532](https://github.com/ClickHouse/ClickHouse/pull/97532) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido o ofuscador de consultas (`clickhouse-format --obfuscate`) para gerar SQL analisável em mais casos. [#97584](https://github.com/ClickHouse/ClickHouse/pull/97584) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

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

* Após ALTERs somente de metadados, como a extensão dos elementos de enums, a otimização da agregação com projeção pode acabar gerando uma exceção. [#84143](https://github.com/ClickHouse/ClickHouse/pull/84143) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* As visões materializadas agora usam como contexto de execução o banco de dados em que foram criadas, o que significa que: - é possível omitir a qualificação explícita do banco de dados nos nomes referenciados na consulta SELECT da visão - se nenhuma qualificação explícita de banco de dados for informada, será assumido o mesmo banco de dados em que a visão materializada foi criada. [#88193](https://github.com/ClickHouse/ClickHouse/pull/88193) ([Dmitry Kovalev](https://github.com/dk-github)).
* Corrige a substituição de parâmetros de consulta em métodos de autenticação de CREATE USER ao usar ON CLUSTER. Os parâmetros de consulta em métodos de autenticação (por exemplo, senha) não estavam sendo substituídos, causando erros UNKNOWN\_QUERY\_PARAMETER em nós remotos. [#92777](https://github.com/ClickHouse/ClickHouse/pull/92777) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* Corrigidas inconsistências na análise do índice de texto para as funções `has`, `mapContainsKey` e `mapContainsValue`. Antes, consultas que usavam essas funções podiam retornar resultados diferentes dependendo de a expressão ser avaliada com ou sem um índice de texto. [#93578](https://github.com/ClickHouse/ClickHouse/pull/93578) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigido travamento ao anexar uma tabela a um banco de dados `MaterializedPostgreSQL` se `dropReplicationSlot` lançar uma exceção durante o desenrolamento da pilha. [#96871](https://github.com/ClickHouse/ClickHouse/pull/96871) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Backups podiam derrubar o servidor se você fizesse muitos backups concorrentes em conflito com os mesmos arquivos. [#93659](https://github.com/ClickHouse/ClickHouse/pull/93659) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige consultas com réplicas paralelas e JOIN em tabela não MT. Fecha [#92056](https://github.com/ClickHouse/ClickHouse/issues/92056). [#93902](https://github.com/ClickHouse/ClickHouse/pull/93902) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige um problema em que colunas do Iceberg com ponto no nome retornavam NULL como valor. [#94335](https://github.com/ClickHouse/ClickHouse/pull/94335) ([Mikhail Koviazin](https://github.com/mkmkme)).
* Correção no tratamento de strings UTF8 em `stringJaccardIndexUTF8` e melhoria de desempenho. [#94613](https://github.com/ClickHouse/ClickHouse/pull/94613) ([Joanna Hulboj](https://github.com/jh0x)).
* Corrige possíveis estouros em `WITH FILL STALENESS` (que podem levar a UB e/ou loops infinitos). Corrige possível loop infinito devido a saltos muito grandes. Adiciona suporte ao analisador antigo (principalmente para testes de estresse). [#94663](https://github.com/ClickHouse/ClickHouse/pull/94663) ([Azat Khuzhin](https://github.com/azat)).
* Corrige possíveis travamentos de consultas distribuídas quando hostnames são resolvidos para vários endereços e uma réplica remota trava. [#94726](https://github.com/ClickHouse/ClickHouse/pull/94726) ([c-end](https://github.com/c-end)).
* Corrige resultado inválido ao fazer join de múltiplas expressões de tabela, quando a expressão de tabela mais à esquerda é uma table function `-Cluster`. Resolve [#89996](https://github.com/ClickHouse/ClickHouse/issues/89996). [#94748](https://github.com/ClickHouse/ClickHouse/pull/94748) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Corrige a poda incorreta da chave primária e do índice de salto para predicados com `toWeek`, `toYearWeek`, `toStartOfWeek`, `toLastDayOfWeek` e `toDayOfWeek`, e corrige exceções em algumas dessas funções em consultas válidas com `LowCardinality(String)`. [#94816](https://github.com/ClickHouse/ClickHouse/pull/94816) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Removida a dispensa desnecessária da verificação de permissões em consultas `ATTACH` para uma view com SQL Security. Isso evita uma possível escalada de privilégios quando um usuário anexa uma view com definidor sem validar o acesso necessário. [#94865](https://github.com/ClickHouse/ClickHouse/pull/94865) ([pufit](https://github.com/pufit)).
* Corrige um travamento na inicialização do `ReplicatedMergeTree` causado pela remoção concorrente de diretórios `delete_tmp_*`. [#94892](https://github.com/ClickHouse/ClickHouse/pull/94892) ([myeongjun](https://github.com/myeongjjun)).
* Corrigido o `INSERT` em tabelas Iceberg com visões materializadas, que fazia com que informações de desduplicação fossem perdidas e causava uma exceção. [#94938](https://github.com/ClickHouse/ClickHouse/pull/94938) ([Daniil Ivanik](https://github.com/divanik)).
* Corrige um bug em que `SYSTEM DROP QUERY CACHE TAG 'TAGNAME' ON CLUSTER <CLUSTERNAME>` removia todo o cache em todo o cluster. [#94978](https://github.com/ClickHouse/ClickHouse/pull/94978) ([Rory Crispin](https://github.com/RoryCrispin)).
* Preservar a granularidade constante do índice (use\_const\_adaptive\_granularity) após mesclagens verticais (v2 com uma correção para Nested e, de modo geral). [#95013](https://github.com/ClickHouse/ClickHouse/pull/95013) ([Azat Khuzhin](https://github.com/azat)).
* Corrige uma condição de corrida no cache do sistema de arquivos na versão 26.1, após \[ClickHouse/ClickHouse[#82764](https://github.com/ClickHouse/ClickHouse/issues/82764)]\([https://github.com/ClickHouse/ClickHouse/pull/82764](https://github.com/ClickHouse/ClickHouse/pull/82764)). [#95042](https://github.com/ClickHouse/ClickHouse/pull/95042) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige o cancelamento da função de tabela `postgresql()` com KILL QUERY e o cancelamento de consulta (Ctrl+C) no clickhouse-client. [#95136](https://github.com/ClickHouse/ClickHouse/pull/95136) ([Roman Vasin](https://github.com/rvasin)).
* Corrigida a inferência de tipos para colunas qualificadas de tabelas de origem quando várias junções são usadas com a cláusula `USING`. Anteriormente, junções subsequentes atualizavam incorretamente os tipos das colunas subjacentes da origem para um supertipo comum, mesmo quando a coluna não estava envolvida naquela junção (por exemplo, em `SELECT t2.a FROM t1 LEFT JOIN t2 USING (a) LEFT JOIN t3 USING (a)`, a coluna `t2.a` é usada apenas na primeira junção, portanto seu tipo deve ser o supertipo de `t1.a` e `t2.a`, excluindo `t3.a`). Isso podia levar a erros lógicos ou falhas quando funções esperavam tipos de coluna diferentes dos que realmente apareciam no plano de execução. [#95157](https://github.com/ClickHouse/ClickHouse/pull/95157) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Fazer a transformação da coluna apenas uma vez ao obter o conteúdo da lista e dos arquivos .avro do manifesto. [#95164](https://github.com/ClickHouse/ClickHouse/pull/95164) ([Daniil Ivanik](https://github.com/divanik)).
* Corrige o cálculo incorreto do tamanho de colunas JSON, que poderia levar a uso excessivo de memória ou a estatísticas de coluna incorretas. [#95207](https://github.com/ClickHouse/ClickHouse/pull/95207) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida a contabilização incorreta de memória ao aplicar grandes partes de patch após atualizações leves. Anteriormente, a aplicação de patches grandes podia causar uso excessivo de memória e fazer com que o processo do servidor fosse encerrado pelo OOM killer. [#95231](https://github.com/ClickHouse/ClickHouse/pull/95231) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige um comportamento indefinido que poderia causar resultados incorretos ou uma exceção quando uma consulta distribuída com `max_parallel_replicas` voltava para uma réplica local durante a análise de índices. [#95263](https://github.com/ClickHouse/ClickHouse/pull/95263) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida a agregação de colunas esparsas para `sum` e séries temporais quando `group_by_overflow_mode` está definido como `any`. [#95301](https://github.com/ClickHouse/ClickHouse/pull/95301) ([Mikhail Koviazin](https://github.com/mkmkme)).
* Corrige um problema de confiabilidade na política de disco `plain_rewritable`, em que um erro de rede durante a remoção do vínculo de um arquivo de metadados poderia deixar o armazenamento em um estado inconsistente. [#95302](https://github.com/ClickHouse/ClickHouse/pull/95302) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Date substituído por Date32 para Iceberg. [#95322](https://github.com/ClickHouse/ClickHouse/pull/95322) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* O argumento `password` da função de tabela `redis` agora será mascarado nos logs e nas tabelas de sistema (por exemplo: `query_log`). [#95325](https://github.com/ClickHouse/ClickHouse/pull/95325) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige um bug em que tabelas podiam ser removidas ou alteradas enquanto uma consulta distribuída ainda estava em execução nelas, o que podia causar exceções ou resultados incorretos. [#95356](https://github.com/ClickHouse/ClickHouse/pull/95356) ([Azat Khuzhin](https://github.com/azat)).
* Corrige um erro lógico em alguns casos em que `LIMIT/OFFSET` negativo é usado em consultas distribuídas. [#95357](https://github.com/ClickHouse/ClickHouse/pull/95357) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige um bug em que o clickhouse-client pedia a senha duas vezes ao se conectar via ssh. [#95372](https://github.com/ClickHouse/ClickHouse/pull/95372) ([Isak Ellmer](https://github.com/spinojara)).
* Corrige uma condição de corrida no mecanismo de armazenamento S3(Azure)Queue. [#95385](https://github.com/ClickHouse/ClickHouse/pull/95385) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigido o erro no filtro prewhere causado por expressões lambda em prewhere. [#95395](https://github.com/ClickHouse/ClickHouse/pull/95395) ([Xiaozhe Yu](https://github.com/wudidapaopao)).
* Corrige `optimize_syntax_fuse_functions` para não reescrever `sum/count/avg` em `sumCount()` quando o argumento da agregação é `Nullable`. Fecha [#95390](https://github.com/ClickHouse/ClickHouse/issues/95390). [#95441](https://github.com/ClickHouse/ClickHouse/pull/95441) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Evita possíveis falhas em consultas distribuídas em caso de cancelamento. [#95466](https://github.com/ClickHouse/ClickHouse/pull/95466) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Corrige a desduplicação no streaming do engine S3(Azure)Queue. [#95467](https://github.com/ClickHouse/ClickHouse/pull/95467) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige a atualização das políticas de linha atribuídas ao usuário inicial em consultas distribuídas. [#95469](https://github.com/ClickHouse/ClickHouse/pull/95469) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige a verificação de discos criptografados em plain\_rewritable (corrige a possível ocorrência de `It is not possible to register multiple plain-rewritable disks with the same object storage prefix`). [#95470](https://github.com/ClickHouse/ClickHouse/pull/95470) ([Azat Khuzhin](https://github.com/azat)).
* A função de tabela `mergeTreeProjection` não tinha uma verificação de acesso, o que permitia que usuários sem permissão SELECT em uma tabela (mas com permissões para funções de tabela) lessem dados de suas projeções. Esta correção adiciona a mesma verificação de acesso que `mergeTreeIndex` e `mergeTreeAnalyzeIndexes` já possuem. [#95480](https://github.com/ClickHouse/ClickHouse/pull/95480) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um possível erro lógico na leitura da subcoluna size de subcolunas dinâmicas dos tipos Dynamic/JSON. [#95573](https://github.com/ClickHouse/ClickHouse/pull/95573) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige uma regressão na replicação zero-copy (experimental), introduzida por [#94262](https://github.com/ClickHouse/ClickHouse/issues/94262), em que partes compartilhadas podiam ser excluídas antes de outras réplicas terminarem de obtê-las. [#95597](https://github.com/ClickHouse/ClickHouse/pull/95597) ([filimonov](https://github.com/filimonov)).
* Corrige falha ao aplicar `tupleElement` a arrays de JSON. Fecha [#95581](https://github.com/ClickHouse/ClickHouse/issues/95581). [#95647](https://github.com/ClickHouse/ClickHouse/pull/95647) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige uma exceção de erro lógico ao usar um matcher (`*`) dentro de uma função lambda em uma cláusula VALUES de um JOIN com USING. Fecha [#93675](https://github.com/ClickHouse/ClickHouse/issues/93675). [#95661](https://github.com/ClickHouse/ClickHouse/pull/95661) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrigido o erro lógico `There was an error: Cannot obtain error message` ao aguardar um DDL distribuído e excluir simultaneamente o banco de dados Replicated. Corrige [#95539](https://github.com/ClickHouse/ClickHouse/issues/95539). [#95664](https://github.com/ClickHouse/ClickHouse/pull/95664) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Corrigida a função `IN`, que retornava resultados incorretos com valores `NULL` quando `transform_null_in` está habilitado. Fecha [#65776](https://github.com/ClickHouse/ClickHouse/issues/65776). [#95674](https://github.com/ClickHouse/ClickHouse/pull/95674) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Trata corretamente os tipos LowCardinality Nullable em `CAST` quando a configuração `cast_keep_nullable` está habilitada. Fecha [#95670](https://github.com/ClickHouse/ClickHouse/issues/95670). [#95747](https://github.com/ClickHouse/ClickHouse/pull/95747) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a compactação de dados particionados do Delta Lake. [#95773](https://github.com/ClickHouse/ClickHouse/pull/95773) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige condição de corrida na coluna Nullable de join em filtros de runtime. [#95775](https://github.com/ClickHouse/ClickHouse/pull/95775) ([Hechem Selmi](https://github.com/m-selmi)).
* Corrige um possível erro lógico na consulta com matcher (`*`, `table.*`) e `analyzer_compatibility_join_using_top_level_identifier` quando a coluna `USING` tem tipos diferentes nas tabelas e na lista SELECT. Fecha [#90477](https://github.com/ClickHouse/ClickHouse/issues/90477). [#95808](https://github.com/ClickHouse/ClickHouse/pull/95808) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige falhas de segurança de memória em operações paralelas de thread pool (backups, agregação, consultas distribuídas) que poderiam causar exceções quando ocorria um erro durante o agendamento de tarefas. [#95818](https://github.com/ClickHouse/ClickHouse/pull/95818) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige uma falha no `DROP WORKLOAD` quando executado concorrentemente com consultas que usam o workload que está sendo removido. [#95856](https://github.com/ClickHouse/ClickHouse/pull/95856) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a lentidão ao consultar tabelas de sistema com um usuário que tem permissões limitadas em muitos bancos de dados. Fecha [#89371](https://github.com/ClickHouse/ClickHouse/issues/89371). [#95874](https://github.com/ClickHouse/ClickHouse/pull/95874) ([pufit](https://github.com/pufit)).
* Corrige a execução de tupleElement em JSON com caminhos aninhados; antes, isso podia levar a um resultado incorreto de consulta. [#95907](https://github.com/ClickHouse/ClickHouse/pull/95907) ([Pavel Kruglov](https://github.com/Avogar)).
* Foi corrigido um erro `NOT_SUPPORTED` que podia ocorrer ao usar o algoritmo de JOIN `direct` com uma tabela MergeTree vazia. [#95935](https://github.com/ClickHouse/ClickHouse/pull/95935) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrigido o problema em que o cliente não sugeria nem autocompletava nomes de alias para configurações, fecha [#92190](https://github.com/ClickHouse/ClickHouse/issues/92190). [#95945](https://github.com/ClickHouse/ClickHouse/pull/95945) ([phulv94](https://github.com/phulv94)).
* Corrigido o event\_date em system.asynchronous\_metric\_log. [#95947](https://github.com/ClickHouse/ClickHouse/pull/95947) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigido o problema de ignorar paths no tipo de dado JSON. Antes, com `JSON(SKIP path)`, todas as chaves JSON com o prefixo `path` eram ignoradas, inclusive chaves como `"pathpath"`, o que podia levar à perda de dados nesses paths durante a inserção. Agora, isso foi corrigido, e apenas a chave `"path"` é ignorada. [#95948](https://github.com/ClickHouse/ClickHouse/pull/95948) ([Pavel Kruglov](https://github.com/Avogar)).
* Uma parte com projeções desconhecidas não deve ser marcada como perdida para sempre. [#95952](https://github.com/ClickHouse/ClickHouse/pull/95952) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Corrige o problema em que uma string vazia passa a ser `NULL` em uma tabela `Join` com chave `Nullable(String)`. Fecha [#71414](https://github.com/ClickHouse/ClickHouse/issues/71414). [#96002](https://github.com/ClickHouse/ClickHouse/pull/96002) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Agora o mecanismo PostgreSQL pode ler corretamente `BOOLEAN[]`. Fecha [#72754](https://github.com/ClickHouse/ClickHouse/issues/72754). [#96006](https://github.com/ClickHouse/ClickHouse/pull/96006) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o formato `ProtobufList` no caso de leitura de um arquivo vazio. Fecha [#70059](https://github.com/ClickHouse/ClickHouse/issues/70059). [#96007](https://github.com/ClickHouse/ClickHouse/pull/96007) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o formato `ProtobufList`, que gerava um registro fantasma em tabelas vazias. Fecha [#72596](https://github.com/ClickHouse/ClickHouse/issues/72596). [#96010](https://github.com/ClickHouse/ClickHouse/pull/96010) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a incompatibilidade de tipos na função `if` entre `UInt64` e `Int32` em um caso incomum de consultas distribuídas com PREWHERE e inferência de tipos. Fecha [#70017](https://github.com/ClickHouse/ClickHouse/issues/70017). [#96012](https://github.com/ClickHouse/ClickHouse/pull/96012) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigidas consultas compiladas com `JIT` que envolvem o tipo `Bool`. [#96013](https://github.com/ClickHouse/ClickHouse/pull/96013) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige erro lógico na leitura de uma coluna UUID a partir de uma coluna TEXT do SQLite. Fecha [#71263](https://github.com/ClickHouse/ClickHouse/issues/71263). [#96016](https://github.com/ClickHouse/ClickHouse/pull/96016) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a conversão de tipos na engine SQLite para `DateTime`, `Date`, `UUID` e outros tipos. Fecha [#73481](https://github.com/ClickHouse/ClickHouse/issues/73481). [#96017](https://github.com/ClickHouse/ClickHouse/pull/96017) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Valores `FixedString` foram escapados incorretamente em consultas a bancos de dados externos, SQLite e PostgreSQL. Corrige [#73519](https://github.com/ClickHouse/ClickHouse/issues/73519). Em coautoria com @jh0x. [#96019](https://github.com/ClickHouse/ClickHouse/pull/96019) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige falha de asserção em WindowTransform com um offset PRECEDING grande. Fecha [#75852](https://github.com/ClickHouse/ClickHouse/issues/75852). [#96026](https://github.com/ClickHouse/ClickHouse/pull/96026) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um bug com possível corrupção de dados quando inserts assíncronos concorrentes usam os mesmos nomes de parâmetros, mas contêm valores diferentes. [#96035](https://github.com/ClickHouse/ClickHouse/pull/96035) ([Seva Potapov](https://github.com/seva-potapov)).
* Corrigido o período dos profilers globais (controlados por `global_profiler_real_time_period_ns` e `global_profiler_cpu_time_period_ns`). Em vez do valor configurado, era usado um valor truncado, fazendo com que o profiler fosse despertado mais vezes do que o previsto. [#96048](https://github.com/ClickHouse/ClickHouse/pull/96048) ([Antonio Andelic](https://github.com/antonio2368)).
* Anteriormente, se o arquivo de dados de referência no arquivo de manifesto do Iceberg para exclusão por posição estivesse presente em uma entrada, mas fosse NULL, não obtínhamos os limites corretos para os arquivos de dados correspondentes. Este PR corrige esse bug. [#96061](https://github.com/ClickHouse/ClickHouse/pull/96061) ([Daniil Ivanik](https://github.com/divanik)).
* Corrigida a revogação de papéis padrão. [#96103](https://github.com/ClickHouse/ClickHouse/pull/96103) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige um use-after-free na análise de índice em uma combinação rara de `use_primary_key` desabilitado e um número muito grande de disjunções de condições que usam o índice. [#96112](https://github.com/ClickHouse/ClickHouse/pull/96112) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige uma regressão no codec `Gorilla` quando um tamanho especificado explicitamente não corresponde ao tamanho do tipo de dado e o buffer é pequeno demais. Em versões anteriores, isso gerava uma exceção durante a descompressão. Fecha [#78253](https://github.com/ClickHouse/ClickHouse/issues/78253). [#96118](https://github.com/ClickHouse/ClickHouse/pull/96118) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Evita deadlock em dicionários carregados quando um dicionário faz referência a uma tabela Merge que, por sua vez, faz referência a ele recursivamente. Fecha [#78360](https://github.com/ClickHouse/ClickHouse/issues/78360). [#96120](https://github.com/ClickHouse/ClickHouse/pull/96120) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o uso de valor não inicializado em `formatDateTime` com especificadores de formato sem largura fixa, como os dos estilos MySQL e JODA. [#96133](https://github.com/ClickHouse/ClickHouse/pull/96133) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A combinação das configurações `use_const_adaptive_granularity` e `index_granularity_bytes` (o que significa "granularidade não adaptativa") levou a um erro no cálculo do número de linhas a serem lidas e a uma exceção. [#96143](https://github.com/ClickHouse/ClickHouse/pull/96143) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Executar uma mutação ALTER UPDATE inválida em tabelas no armazenamento de objetos do tipo arquivo, como S3 e Azure, podia levar ao desreferenciamento de nullptr. Fecha [#92994](https://github.com/ClickHouse/ClickHouse/issues/92994). [#96162](https://github.com/ClickHouse/ClickHouse/pull/96162) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido `AccessRights::contains`, que retornava resultados incorretos com revogações parciais. [#96170](https://github.com/ClickHouse/ClickHouse/pull/96170) ([pufit](https://github.com/pufit)).
* Corrige colisão de hash no cache de condições de consulta para constantes de CTE após constant folding, o que poderia levar a um resultado de consulta incorreto. Fecha [#96060](https://github.com/ClickHouse/ClickHouse/issues/96060). [#96172](https://github.com/ClickHouse/ClickHouse/pull/96172) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um possível deadlock em ProcessList. Isso pode acontecer devido a uma possível inversão de bloqueios se o rastreador de overcommit de memória for acionado enquanto adicionamos uma tarefa ao verificador de cancelamento. [#96182](https://github.com/ClickHouse/ClickHouse/pull/96182) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigido um bug em que consultas envolvendo junções externas (LEFT, RIGHT ou FULL) combinadas com vários INNER JOINs podiam retornar resultados incorretos devido à reordenação inválida das junções. Quando a condição ON de uma junção externa fazia referência a colunas de várias tabelas já unidas anteriormente, o otimizador não levava em conta todas as dependências entre as tabelas e podia reordenar as junções de forma incorreta, resultando na omissão de linhas. Fecha [#95972](https://github.com/ClickHouse/ClickHouse/issues/95972). [#96193](https://github.com/ClickHouse/ClickHouse/pull/96193) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Quando uma tabela não tem estatísticas definidas, o ClickHouse não deve tentar carregá-las. Isso evita uma certa sobrecarga (mais de 100 ms) na verificação da existência dos arquivos de estatísticas. (issue [#96068](https://github.com/ClickHouse/ClickHouse/issues/96068)). [#96233](https://github.com/ClickHouse/ClickHouse/pull/96233) ([Han Fei](https://github.com/hanfei1991)).
* Corrige `optimize_syntax_fuse_functions` para não converter `sum/count/avg` em `sumCount()` quando o argumento de agregação é `LowCardinality(Nullable)`. Fecha [#95390](https://github.com/ClickHouse/ClickHouse/issues/95390). [#96239](https://github.com/ClickHouse/ClickHouse/pull/96239) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrigida a poda incorreta de partições para as funções `not IN` e `not has` em alguns casos. [#96241](https://github.com/ClickHouse/ClickHouse/pull/96241) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Correção de `stack-use-after-scope` no índice de similaridade vetorial. [#96259](https://github.com/ClickHouse/ClickHouse/pull/96259) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o executor de testes, que não reconhecia comentários com dica de erro quando uma consulta era precedida por um comentário SQL. [#96336](https://github.com/ClickHouse/ClickHouse/pull/96336) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Corrige erro lógico em KeyCondition quando uma tabela tem chave primária Nullable e a consulta usa a função `coalesce`, com o primeiro argumento constante. [#96340](https://github.com/ClickHouse/ClickHouse/pull/96340) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A interação de `GROUPING SETS`, `group_by_use_nulls` e o tipo de dado `Tuple` com `LowCardinality` em seu interior podia produzir uma estrutura de bloco inesperada no pipeline de consulta, levando a um erro lógico. Isso surgiu após a introdução de `Tuple`s `Nullable`. [#96358](https://github.com/ClickHouse/ClickHouse/pull/96358) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Era possível criar uma tabela com uma expressão vazia `()` como índice, o que resultava em um acesso inválido à memória. [#96363](https://github.com/ClickHouse/ClickHouse/pull/96363) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido um travamento no analyzer antigo com JOIN e aliases duplicados. [#96405](https://github.com/ClickHouse/ClickHouse/pull/96405) ([Ilya Golshtein](https://github.com/ilejn)).
* Corrigido o erro `Nested columns sizes are inconsistent with local_discriminators` causado por uma otimização incorreta de filtragem in-place para colunas Variant. [#96410](https://github.com/ClickHouse/ClickHouse/pull/96410) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido `CREATE TABLE ... CLONE AS ...`, que ignorava o qualificador completo da tabela de origem. [#96415](https://github.com/ClickHouse/ClickHouse/pull/96415) ([Hasyimi Bahrudin](https://github.com/hasyimibhar)).
* Corrigido o cancelamento da função de tabela `mysql` com KILL QUERY e com o cancelamento da consulta (Ctrl+C) no clickhouse-client. [#96437](https://github.com/ClickHouse/ClickHouse/pull/96437) ([Roman Vasin](https://github.com/rvasin)).
* Corrige `livelock` na thread de verificação de cancelamento para consultas com valores elevados de `max_execution_time`. [#96450](https://github.com/ClickHouse/ClickHouse/pull/96450) ([Sergei Trifonov](https://github.com/serxa)).
* Corrige um erro lógico que ocorre em alguns casos quando `LIMIT/OFFSET` fracionário é usado em consultas distribuídas. [#96475](https://github.com/ClickHouse/ClickHouse/pull/96475) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige o desreferenciamento de ponteiro nulo em certas expressões com funções lambda. [#96479](https://github.com/ClickHouse/ClickHouse/pull/96479) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige resultados incorretos quando colunas `LowCardinality` são convertidas em `Nullable`. [#96483](https://github.com/ClickHouse/ClickHouse/pull/96483) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige um crash ao criar uma tabela Iceberg com uma cláusula `ORDER BY` que faz referência a uma coluna inexistente ou usa um argumento posicional. Fecha [#93280](https://github.com/ClickHouse/ClickHouse/issues/93280). [#96484](https://github.com/ClickHouse/ClickHouse/pull/96484) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrigida a exceção de filtro em tempo de execução para colunas Tuple com subcampos Nullable. [#96509](https://github.com/ClickHouse/ClickHouse/pull/96509) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a exceção `LOGICAL_ERROR` no leitor nativo do Parquet V3 quando a coluna de filtro `PREWHERE` contém valores UInt8 não booleanos. [#96594](https://github.com/ClickHouse/ClickHouse/pull/96594) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a regeneração implícita de índice em tabelas replicadas durante alterações de metadados. [#96600](https://github.com/ClickHouse/ClickHouse/pull/96600) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige uma condição de corrida em DROP WORKLOAD. [#96614](https://github.com/ClickHouse/ClickHouse/pull/96614) ([Sergei Trifonov](https://github.com/serxa)).
* Corrige um bug nas gravações em tabelas Iceberg em que inserções particionadas podiam gerar uma distribuição incorreta dos dados entre os arquivos de partição. [#96620](https://github.com/ClickHouse/ClickHouse/pull/96620) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrigido o `heap-use-after-free` em `CREATE TABLE` com restrições. [#96669](https://github.com/ClickHouse/ClickHouse/pull/96669) ([Nikita Taranov](https://github.com/nickitat)).
* Validar a versão witness em bech32 para evitar estouro de buffer. [#96671](https://github.com/ClickHouse/ClickHouse/pull/96671) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige erros retornados por `system.tables` quando um catálogo REST de lago de dados é criado com uma configuração `auth_header` inválida. [#96680](https://github.com/ClickHouse/ClickHouse/pull/96680) ([Han Fei](https://github.com/hanfei1991)).
* Corrigido o problema em que `min(timestamp)` retornava epoch (`1970-01-01`) via `_minmax_count_projection` após um merge de TTL, quando todas as linhas de um bloco eram filtradas. [#96703](https://github.com/ClickHouse/ClickHouse/pull/96703) ([Raquel Barbadillo](https://github.com/rbarbadillo)).
* Melhorada a validação da configuração `iceberg_metadata_file_path` para evitar path traversal e garantir que o arquivo de metadados especificado esteja dentro do diretório da tabela. [#96754](https://github.com/ClickHouse/ClickHouse/pull/96754) ([Daniil Ivanik](https://github.com/divanik)).
* Corrige travamento em `ifNull` com argumento `Variant` usado em `GROUP BY`. [#96790](https://github.com/ClickHouse/ClickHouse/pull/96790) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigidas colisões nas chaves de cache entre tabelas com a configuração `table_disk=1`. [#96818](https://github.com/ClickHouse/ClickHouse/pull/96818) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Corrige a thread de limpeza do MemoryWorker que ficava travada devido a uma race condition. [#96819](https://github.com/ClickHouse/ClickHouse/pull/96819) ([Antonio Andelic](https://github.com/antonio2368)).
* Não registre em logs dados contendo credenciais em catálogos Iceberg. [#96831](https://github.com/ClickHouse/ClickHouse/pull/96831) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrige o código de saída do clickhouse-client após erro no servidor. [#96841](https://github.com/ClickHouse/ClickHouse/pull/96841) ([Vitaly Baranov](https://github.com/vitlibar)).
* Consultas com CROSS JOINs e réplicas paralelas habilitadas podiam retornar um resultado incorreto. Corrige [#74337](https://github.com/ClickHouse/ClickHouse/issues/74337). [#96848](https://github.com/ClickHouse/ClickHouse/pull/96848) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrigidas consultas `ALTER TABLE DROP COLUMN` que falhavam quando uma atualização leve já havia sido executada anteriormente na mesma coluna. [#96861](https://github.com/ClickHouse/ClickHouse/pull/96861) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige estouro de pilha (travamento) ao criar backups em arquivo (`.zip`, `.tzst`) em um disco de armazenamento de objetos `plain_rewritable`. [#96872](https://github.com/ClickHouse/ClickHouse/pull/96872) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o travamento do servidor quando o backup falha por falta de espaço em disco ou outros erros de E/S no sistema de arquivos de destino. [#96873](https://github.com/ClickHouse/ClickHouse/pull/96873) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige `EXCEPT ALL` e `INTERSECT ALL`, que ignoravam a multiplicidade das linhas e se comportavam como suas versões `DISTINCT`. [#96876](https://github.com/ClickHouse/ClickHouse/pull/96876) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a exceção `std::terminate` em `indexOfAssumeSorted` quando chamada com tipos incompatíveis (por exemplo, um array `IPv4` com um valor de busca inteiro). [#96877](https://github.com/ClickHouse/ClickHouse/pull/96877) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a exceção `Bad cast from type DB::ColumnNullable to DB::ColumnString` ao usar funções de janela com `group_by_use_nulls = 1` e CUBE/ROLLUP/GROUPING SETS. [#96878](https://github.com/ClickHouse/ClickHouse/pull/96878) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige resultados incorretos quando expressões compiladas com JIT convertem `DateTime` em `DateTime64` (por exemplo, em `CASE`/`if`/`multiIf` com tipos `DateTime` mistos). O valor era reinterpretado em vez de ser dimensionado corretamente, gerando timestamps incorretos após a compilação da expressão entrar em ação. [#96879](https://github.com/ClickHouse/ClickHouse/pull/96879) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a exceção de erro lógico em `CoalescingMergeTree` quando uma expressão de índice de salto produz uma coluna constante (por exemplo, `bloom_filter` em `ifNotFinite(1, c0)` para uma coluna inteira). [#96880](https://github.com/ClickHouse/ClickHouse/pull/96880) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o número de porta incorreto na mensagem de erro ao se conectar acidentalmente via HTTP à porta do protocolo nativo com TLS habilitado. [#96881](https://github.com/ClickHouse/ClickHouse/pull/96881) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o fato de `SETTINGS` por subconsulta não ser aplicado a funções de tabela como `file` em CTEs e subconsultas. [#96882](https://github.com/ClickHouse/ClickHouse/pull/96882) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige vazamento de memória em objetos BIO ao ler certificados X509. [#96885](https://github.com/ClickHouse/ClickHouse/pull/96885) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a exceção `LOGICAL_ERROR` no analisador de consultas quando uma expressão lambda é passada em um contexto em que se espera um valor concreto (por exemplo, como argumento acumulador de `arrayFold`). [#96892](https://github.com/ClickHouse/ClickHouse/pull/96892) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a exceção `ColumnNullable is not compatible with original` ao converter tipos aninhados complexos (Array de Nullable Tuple contendo Map com valores Nullable Enum). [#96924](https://github.com/ClickHouse/ClickHouse/pull/96924) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige uma condição de corrida no carregamento paralelo do Dicionário `HASHED` com shards, que ocasionalmente podia fazer com que algumas linhas não fossem carregadas. [#96953](https://github.com/ClickHouse/ClickHouse/pull/96953) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige uma race condition entre `REPLACE PARTITION` e mutações em segundo plano que poderia fazer com que tanto os dados antigos quanto os novos permanecessem visíveis após a substituição. [#96955](https://github.com/ClickHouse/ClickHouse/pull/96955) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correção na função `arrayJoin`, que produzia linhas duplicadas quando usada com INNER JOIN e cláusula WHERE, causada pela otimização parcial de push-down de predicados, que empurrava incorretamente filtros contendo `arrayJoin` para baixo de um JOIN. [#96989](https://github.com/ClickHouse/ClickHouse/pull/96989) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige falha (SEGFAULT) em `clearCaches` causada por `BlockIO::operator=` não mover `query_metadata_cache`, o que levava à destruição prematura de snapshots de armazenamento em cache e ao uso do armazenamento `MergeTreeData` após sua liberação. [#96995](https://github.com/ClickHouse/ClickHouse/pull/96995) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correção de falha de asserção em `IfTransformStringsToEnumPass` quando a função `if` ou `transform` retorna `Nullable(String)` (por exemplo, com `GROUP BY ... WITH CUBE` e `group_by_use_nulls = true`). [#97002](https://github.com/ClickHouse/ClickHouse/pull/97002) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige dados incorretos gravados durante `INSERT ... SELECT` com `UNION ALL` e `JOIN`, em que colunas constantes do tipo string podiam receber valores errados após a compactação de blocos. [#97019](https://github.com/ClickHouse/ClickHouse/pull/97019) ([Hasyimi Bahrudin](https://github.com/hasyimibhar)).
* Corrige a exceção `assert_cast` (ou corrupção silenciosa de dados em builds de release) ao gerar estatísticas de coluna após `ALTER TABLE MODIFY COLUMN` alterar o tipo da coluna. [#97027](https://github.com/ClickHouse/ClickHouse/pull/97027) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige leituras de memória não inicializada no Azure Blob Storage, no protocolo SSH e nas interfaces Arrow Flight. [#97053](https://github.com/ClickHouse/ClickHouse/pull/97053) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige casos em que índices afetavam o resultado de consultas com ROW POLICY/PREWHERE e FINAL. [#97076](https://github.com/ClickHouse/ClickHouse/pull/97076) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige a condição de corrida remanescente entre `REPLACE PARTITION` e mutações em segundo plano em tabelas `MergeTree`, que poderia fazer dados antigos reaparecerem. [#97105](https://github.com/ClickHouse/ClickHouse/pull/97105) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige índices implícitos em colunas de alias e realiza a validação completa antes de criá-los. [#97115](https://github.com/ClickHouse/ClickHouse/pull/97115) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige um erro lógico em `FunctionVariantAdaptor` em funções que exigem argumentos const, como `arrayROCAUC`. [#97116](https://github.com/ClickHouse/ClickHouse/pull/97116) ([Bharat Nallan](https://github.com/bharatnc)).
* Corrige mutações travadas quando `PartCheckThread` recoloca na fila um `GET_PART` para uma parte que já sofreu mutação, deixando entradas fantasma em `parts_to_do`. [#97162](https://github.com/ClickHouse/ClickHouse/pull/97162) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a estimativa do número de linhas no plano de consulta para subconsultas com `ORDER BY ... LIMIT`, o que poderia levar o otimizador a escolher uma ordem de join subótima. [#97193](https://github.com/ClickHouse/ClickHouse/pull/97193) ([Alexander Gololobov](https://github.com/davenger)).
* Corrige a exceção `LOGICAL_ERROR` em `FunctionVariantAdaptor` quando uma função que opera em colunas do tipo Variant retorna o tipo `Nothing`, o que pode acontecer com arrays vazios em consultas `UNION ALL`. [#97213](https://github.com/ClickHouse/ClickHouse/pull/97213) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige uma condição de corrida durante operações de cópia multipart no S3 (por exemplo, durante `BACKUP`/`RESTORE` no S3) que poderia causar exceções em caso de acesso concorrente. [#97227](https://github.com/ClickHouse/ClickHouse/pull/97227) ([Azat Khuzhin](https://github.com/azat)).
* Corrige a exceção `LOGICAL_ERROR` quando `arrayJoin` na cláusula `WHERE` referencia colunas de ambos os lados de um `JOIN`. [#97239](https://github.com/ClickHouse/ClickHouse/pull/97239) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Correção da exceção `LOGICAL_ERROR` ao ler a subcoluna `.size` de um `Nullable(String)` esparso em um `Tuple` com PREWHERE. [#97264](https://github.com/ClickHouse/ClickHouse/pull/97264) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a exceção "O número de linhas no fragmento lazy não corresponde ao número de offsets" em `LazyMaterializingTransform` ao ler tabelas com granularidade de índice não adaptativa (`index_granularity_bytes = 0`) usando `ORDER BY ... LIMIT`. [#97270](https://github.com/ClickHouse/ClickHouse/pull/97270) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o `SYSTEM RESTART REPLICA`, que fazia a tabela desaparecer do banco de dados quando a recriação da tabela falhava com uma exceção não relacionada ao ZooKeeper (por exemplo, limite de memória), causando divergências no hash dos metadados em `DatabaseReplicated`. [#97276](https://github.com/ClickHouse/ClickHouse/pull/97276) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O campo `readonly` em `system.merge_tree_settings` agora reflete corretamente que certas configurações de MergeTree (por exemplo, `index_granularity`) são sempre somente leitura. [#97277](https://github.com/ClickHouse/ClickHouse/pull/97277) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige uma falha durante a otimização de `count()` em tabelas `MergeTree` quando o snapshot do armazenamento foi criado sem dados. [#97281](https://github.com/ClickHouse/ClickHouse/pull/97281) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrige uma possível falha ao resolver nomes de função com base em informações de depuração para stack traces. [#97294](https://github.com/ClickHouse/ClickHouse/pull/97294) ([Azat Khuzhin](https://github.com/azat)).
* Corrige erro lógico em analyzer\_compatibility\_join\_using\_top\_level\_identifier e nas colunas ALIAS. Fecha [#96228](https://github.com/ClickHouse/ClickHouse/issues/96228). [#97297](https://github.com/ClickHouse/ClickHouse/pull/97297) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrigida a exceção `LOGICAL_ERROR` em `applyOrder` ao usar colunas indexadas por texto com a cláusula `QUALIFY`. [#97313](https://github.com/ClickHouse/ClickHouse/pull/97313) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A tabela de sistema `system.functions` agora exibe `categories = 'Internal'` para funções internas, em vez de `categories = ''`. [#97315](https://github.com/ClickHouse/ClickHouse/pull/97315) ([Robert Schulze](https://github.com/rschu1ze)).
* Consulta com sequência de RIGHT JOIN e réplicas paralelas habilitadas pode produzir resultado incorreto. Corrige [#74341](https://github.com/ClickHouse/ClickHouse/issues/74341). [#97316](https://github.com/ClickHouse/ClickHouse/pull/97316) ([Igor Nikonov](https://github.com/devcrafter)).
* Corrige erros espúrios de `TABLE_UUID_MISMATCH` que podiam ocorrer com views materializadas atualizáveis e em outros cenários em que tabelas são renomeadas. [#97323](https://github.com/ClickHouse/ClickHouse/pull/97323) ([Azat Khuzhin](https://github.com/azat)).
* Corrigido segfault no backup de `StorageKeeperMap` devido a uso após liberação de um ponteiro de armazenamento inválido em um lote lazy de backup. [#97336](https://github.com/ClickHouse/ClickHouse/pull/97336) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a função `exists` com uma subconsulta escalar dentro de um `ALTER UPDATE/DELETE` quando `mutations_execute_subqueries_on_initiator` está habilitado. A subconsulta escalar era avaliada incorretamente, o que podia levar a um erro ou a um comando de mutação corrompido que impedia o carregamento da tabela na próxima reinicialização do servidor. [#97347](https://github.com/ClickHouse/ClickHouse/pull/97347) ([Kirill Kopnev](https://github.com/Fgrtue)).
* Corrige a exceção lógica `Unexpected return type from equals. Expected Nullable(UInt8). Got Const(LowCardinality(Nullable(UInt8)))` ao comparar NULL com uma coluna do tipo Variant que contém tipos LowCardinality. [#97379](https://github.com/ClickHouse/ClickHouse/pull/97379) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige uma possível condição de corrida quando `EXCHANGE TABLES` é executado em paralelo com o cache de consultas distribuído por shards habilitado. [#97411](https://github.com/ClickHouse/ClickHouse/pull/97411) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrige a exceção `LOGICAL_ERROR` na conversão de Array para `QBit` quando `nullable_source` de um wrapper `Tuple` externo substitui a coluna de array convertida por uma coluna com tipo incompatível. Fecha [#97389](https://github.com/ClickHouse/ClickHouse/issues/97389). [#97413](https://github.com/ClickHouse/ClickHouse/pull/97413) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a inconsistência no round-trip da formatação de AST para literais de tupla com alias entre parênteses; por exemplo, `(('a', 'b') AS x)` era reformatado incorretamente como `tuple(('a', 'b') AS x)`. [#97418](https://github.com/ClickHouse/ClickHouse/pull/97418) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige uma exceção durante inserções assíncronas com desduplicação quando uma falha de parsing resultava em um bloco vazio, com zero linhas. [#97460](https://github.com/ClickHouse/ClickHouse/pull/97460) ([Sema Checherinda](https://github.com/CheSema)).
* Corrige a exceção "O número de linhas no fragmento lazy não corresponde ao número de offsets" em `LazyMaterializingTransform` ao ler tabelas com granularidade de índice não adaptativa (`index_granularity_bytes = 0`) usando `ORDER BY ... LIMIT`. [#97482](https://github.com/ClickHouse/ClickHouse/pull/97482) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige as configurações de inserção no Iceberg. Adiciona um alias para a configuração `allow_experimental_insert_into_iceberg`. [#97483](https://github.com/ClickHouse/ClickHouse/pull/97483) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrige `ACCESS_DENIED` para usuários sem a permissão `CREATE TEMPORARY TABLE` quando a otimização `optimize_inverse_dictionary_lookup` reescreve os predicados `dictGet(...)`. O ClickHouse agora ignora essa reescrita e executa a expressão original. Fecha [#97269](https://github.com/ClickHouse/ClickHouse/issues/97269). [#97484](https://github.com/ClickHouse/ClickHouse/pull/97484) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrigida falha de asserção (exceção em builds de depuração/com sanitizer) em `Set` e `MergeTreeIndexSet` ao processar colunas com subcolunas esparsas internas (por exemplo, colunas `Tuple` de partes do MergeTree com perfis diferentes de serialização esparsa). [#97493](https://github.com/ClickHouse/ClickHouse/pull/97493) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um possível use-after-free no StorageKafka2. [#97520](https://github.com/ClickHouse/ClickHouse/pull/97520) ([Bharat Nallan](https://github.com/bharatnc)).
* Correção de `INTO OUTFILE` com `TRUNCATE` e a configuração `into_outfile_create_parent_directories` quando o caminho de saída contém diretórios. [#97549](https://github.com/ClickHouse/ClickHouse/pull/97549) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido o erro `BAD_ARGUMENTS` ao consultar tabelas com expressões lambda em colunas ALIAS por meio da função de tabela `merge()` com o analisador habilitado. [#97551](https://github.com/ClickHouse/ClickHouse/pull/97551) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a exceção em `system.zookeeper_info` quando o zxid do Keeper é 0. [#97553](https://github.com/ClickHouse/ClickHouse/pull/97553) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigido um possível erro lógico no Dicionário `ip_trie` quando o tipo da chave não é String. [#97555](https://github.com/ClickHouse/ClickHouse/pull/97555) ([Bharat Nallan](https://github.com/bharatnc)).
* Corrige a falha na autenticação OAuth do REST catalog para o `RestCatalog` base (ela só funcionava em catálogos derivados, como `OneLakeCatalog`). Isso quebrou o REST catalog padrão após a introdução do catálogo BigLake. [#97561](https://github.com/ClickHouse/ClickHouse/pull/97561) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* As funções de geometria (`perimeterSpherical`, `areaSpherical` etc.) agora aceitam subtipos individuais de geometria (`Polygon`, `Ring`, `Point` etc.), além do tipo Variant `Geometry`. [#97571](https://github.com/ClickHouse/ClickHouse/pull/97571) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a exceção `LOGICAL_ERROR` ao usar `isNull`/`isNotNull` em subcolunas de tipos `Nullable(Tuple(... Nullable(T) ...))`. Fecha [#97224](https://github.com/ClickHouse/ClickHouse/issues/97224). [#97582](https://github.com/ClickHouse/ClickHouse/pull/97582) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida a desreferenciação de ponteiro nulo ao aplicar patch parts durante atualizações leves. [#97583](https://github.com/ClickHouse/ClickHouse/pull/97583) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `BaseSettings::readBinary` passa o índice de `accessor.find` para `field_infos[]` sem verificar o valor sentinela que indica “não encontrado” (isto é, `-1`), o que pode causar um acesso fora dos limites de `std::vector`. O problema foi detectado graças ao hardening do libcxx. Isso provavelmente ocorreu durante a desserialização do plano de consulta, quando um servidor mais novo envia uma configuração desconhecida para um servidor mais antigo. O método de leitura baseado em string já trata isso corretamente; em `readBinary`, faltava a mesma verificação. [#97585](https://github.com/ClickHouse/ClickHouse/pull/97585) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrige resultados incorretos em consultas `UNION ALL` em que um dos ramos tinha um predicado sempre falso — esse ramo lia dados indevidamente em vez de não retornar nada. [#97620](https://github.com/ClickHouse/ClickHouse/pull/97620) ([Bharat Nallan](https://github.com/bharatnc)).
* Corrige a falha em `IN (col)` com uma única referência de coluna, que resultava no erro `UNSUPPORTED_METHOD`. [#97646](https://github.com/ClickHouse/ClickHouse/pull/97646) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a exceção de erro lógico em `GROUP BY ... WITH ROLLUP/CUBE` quando as chaves incluem `LowCardinality(Nullable(...))` dentro de `Nullable(Tuple(...))`. [#97647](https://github.com/ClickHouse/ClickHouse/pull/97647) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a inconsistência na formatação da AST para `NOT (1, 1, 1)`, que poderia causar `LOGICAL_ERROR` em compilações de depuração. [#97653](https://github.com/ClickHouse/ClickHouse/pull/97653) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a exceção de `keeper-converter` ao encontrar arquivos vazios de log de transações do ZooKeeper. [#97673](https://github.com/ClickHouse/ClickHouse/pull/97673) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="267-build-testing-packaging-improvement">
  #### melhorias em build, testes e empacotamento
</div>

* O ClickHouse agora pode ser compilado com clang-23 (master). [#95578](https://github.com/ClickHouse/ClickHouse/pull/95578) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a definição forçada de `is_local` como false quando `bind_host` está configurado e a substitui por um teste de integração. Complemento de [#74741](https://github.com/ClickHouse/ClickHouse/pull/74741). [#93109](https://github.com/ClickHouse/ClickHouse/pull/93109) [#96018](https://github.com/ClickHouse/ClickHouse/pull/96018) ([Zhigao Hong](https://github.com/zghong)).
* Testes de estresse: corrigir os testes de estresse e de upgrade na CI. ignorar as tags `no-{build}`. adicionar randomização para compatibilidade. [#94693](https://github.com/ClickHouse/ClickHouse/pull/94693) ([Nikita Fomichev](https://github.com/fm4v)).
* Disponibilizar o binário parser\_memory\_profiler a partir da build. A ferramenta pode ser usada para analisar o consumo de memória da AST. [#95826](https://github.com/ClickHouse/ClickHouse/pull/95826) ([Ilya Yatsishin](https://github.com/qoega)).
* Adicionada a flag `--symbolize` à ferramenta `parser_memory_profiler`, que gera arquivos `.heap.sym` com os símbolos resolvidos nos resultados. [#96477](https://github.com/ClickHouse/ClickHouse/pull/96477) ([Ilya Yatsishin](https://github.com/qoega)).
* Fixar imagens Docker de terceiros em versões específicas nos testes de integração. [#96500](https://github.com/ClickHouse/ClickHouse/pull/96500) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Restaura a possibilidade de fazer a vinculação dinâmica do `OpenSSL`. Isso não é recomendado e não é usado em nenhum build de produção, mas a opção ainda existe para os entusiastas da Internet. [#96506](https://github.com/ClickHouse/ClickHouse/pull/96506) ([Govind R Nair](https://github.com/Revertionist)).
* Redução do intervalo do `magic_enum` de \[-100, 1000] para o padrão \[-128, 127] com o uso de uma especialização por tipo para `Coordination::OpNum`, melhorando o tempo de compilação. [#96632](https://github.com/ClickHouse/ClickHouse/pull/96632) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Removidos templates C++ desnecessários das classes Function para reduzir o tempo de compilação. [#96646](https://github.com/ClickHouse/ClickHouse/pull/96646) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Mover a geração de `StorageSystemLicenses` para a etapa de configuração, a fim de melhorar o paralelismo da compilação. [#96697](https://github.com/ClickHouse/ClickHouse/pull/96697) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Verificação de licenças em paralelo. [#96727](https://github.com/ClickHouse/ClickHouse/pull/96727) ([Raúl Marín](https://github.com/Algunenano)).
* Adicionar teste funcional sem estado para dar suporte ao protocolo SSH. [#96996](https://github.com/ClickHouse/ClickHouse/pull/96996) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona o Kafka 3.9.0 à infraestrutura de testes funcionais stateless, permitindo testar diretamente os motores de tabela Kafka e Kafka2 usando o ClickHouse Keeper como ZooKeeper. Seis novos testes stateless cobrem operações básicas de produção/consumo, colunas virtuais, INSERT, múltiplos formatos, tratamento de mensagens corrompidas e armazenamento de offsets com base no Keeper. [#96997](https://github.com/ClickHouse/ClickHouse/pull/96997) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona um workflow de CI para compilar uma toolchain clang otimizada com PGO+BOLT. [#96991](https://github.com/ClickHouse/ClickHouse/pull/96991) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Use a build do LLVM/Clang otimizada com PGO no CI, o que deve gerar um ganho de 20..30% na velocidade de compilação. [#97031](https://github.com/ClickHouse/ClickHouse/pull/97031) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Substituídas as funções matemáticas da glibc por implementações do llvm-libc. [#90151](https://github.com/ClickHouse/ClickHouse/pull/90151) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Atualização do Boost da versão 1.83 para 1.90, corrigindo uma falha de asserção no `devector` em builds de depuração. [#97037](https://github.com/ClickHouse/ClickHouse/pull/97037) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Atualizado `postgres` para REL\_18\_1. [#95189](https://github.com/ClickHouse/ClickHouse/pull/95189) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Passa a usar `libexpat` 2.7.3. [#95218](https://github.com/ClickHouse/ClickHouse/pull/95218) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Use `OpenSSL` 3.5.5. [#95345](https://github.com/ClickHouse/ClickHouse/pull/95345) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Use `simdjson` v4.2.4. [#97129](https://github.com/ClickHouse/ClickHouse/pull/97129) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Usa `libarchive` 3.8.5. [#97131](https://github.com/ClickHouse/ClickHouse/pull/97131) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Use `fast_float` v8.2.3. [#97133](https://github.com/ClickHouse/ClickHouse/pull/97133) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Use `abseil-cpp` 20260107.1 e `s2geometry` v0.13.1. [#97134](https://github.com/ClickHouse/ClickHouse/pull/97134) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Atualiza `libxml2` para 2.15.1. [#95574](https://github.com/ClickHouse/ClickHouse/pull/95574) ([Robert Schulze](https://github.com/rschu1ze)).
* Atualizadas 7 imagens Docker de teste de integração Tier-3, de imagens base EOL ou removidas para versões atualmente suportadas. [#97314](https://github.com/ClickHouse/ClickHouse/pull/97314) ([Rahul](https://github.com/motsc)).
* Adiciona consultas do benchmark TPC-DS. [#97349](https://github.com/ClickHouse/ClickHouse/pull/97349) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Substitua as opções individuais do CMake para conjuntos de instruções x86 (`ENABLE_SSSE3`, `ENABLE_AVX2`, `NO_SSE3_OR_HIGHER`, `ARCH_NATIVE` etc.) por uma única opção numérica `X86_ARCH_LEVEL` (`1`/`2`/`3`/`4`), alinhada aos níveis padrão de microarquitetura x86-64 já usados pelo sistema de despacho em tempo de execução. [#97354](https://github.com/ClickHouse/ClickHouse/pull/97354) ([Raúl Marín](https://github.com/Algunenano)).
* Evita a instanciação de variantes de template `division_by_nullable=true` para operações que não envolvem divisão em `FunctionBinaryArithmetic`, reduzindo o tempo de compilação e o tamanho do binário. [#97496](https://github.com/ClickHouse/ClickHouse/pull/97496) ([Raúl Marín](https://github.com/Algunenano)).
* Reduza o volume de inclusões de `Exception.h` removendo-o de cabeçalhos amplamente referenciados, como `typeid_cast.h`, `assert_cast.h`, `Context_fwd.h`, `IDataType.h` e vários cabeçalhos de Column. [#97497](https://github.com/ClickHouse/ClickHouse/pull/97497) ([Raúl Marín](https://github.com/Algunenano)).
* Sempre use os cabeçalhos integrados do `compiler-rt` (interfaces do sanitizer e do XRay) em vez dos cabeçalhos do compilador do host e, por padrão, compile as bibliotecas `compiler-rt` a partir do código-fonte. [#97499](https://github.com/ClickHouse/ClickHouse/pull/97499) ([Raúl Marín](https://github.com/Algunenano)).
* Evita incluir os headers boost/multiprecision em `wide_integer_impl.h` em plataformas com suporte adequado a `long double`, melhorando o tempo de compilação. [#96633](https://github.com/ClickHouse/ClickHouse/pull/96633) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Implementar o job de cobertura de código com LLVM e habilitá-lo inicialmente para a branch master. [#90952](https://github.com/ClickHouse/ClickHouse/pull/90952) ([Alexey Bakharew](https://github.com/alexbakharew)).
* Habilita o hardening rápido do libcxx para builds de release. Isso é necessário principalmente para verificações de acesso fora dos limites. Dados os resultados dos testes de desempenho, não se espera impacto perceptível no desempenho. [#94757](https://github.com/ClickHouse/ClickHouse/pull/94757) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).

<div id="261">
  ### Lançamento do ClickHouse 26.1, 2026-01-29. [Apresentação](https://presentations.clickhouse.com/2026-release-26.1/), [Vídeo](https://www.youtube.com/watch?v=fWuYt4M0xE4)
</div>

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

* Corrige a formatação inconsistente causada por uma substituição incorreta de aliases no formatador. Fecha [#82833](https://github.com/ClickHouse/ClickHouse/issues/82833). Fecha [#82832](https://github.com/ClickHouse/ClickHouse/issues/82832). Fecha [#68296](https://github.com/ClickHouse/ClickHouse/issues/68296). Esta alteração pode ser incompatível com versões anteriores: quando o analisador está desabilitado, determinadas consultas CREATE VIEW em que IN referencia um alias não podem ser processadas. Para evitar essa incompatibilidade, habilite o analisador (ele está habilitado por padrão desde a versão 24.3). [#82838](https://github.com/ClickHouse/ClickHouse/pull/82838) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Os codecs `DEFLATE_QPL` e `ZSTD_QAT` foram removidos. Recomenda-se que os usuários convertam os dados existentes compactados com `DEFLATE_QPL` ou `ZSTD_QAT` para outro codec antes da atualização. Observe que, para usar esses codecs, era necessário habilitar as configurações `enable_deflate_qpl_codec` e `enable_zstd_qat_codec`. [#92150](https://github.com/ClickHouse/ClickHouse/pull/92150) ([Robert Schulze](https://github.com/rschu1ze)).
* Melhoramos a depuração de UDF ao habilitar a captura de stderr em `system.query_log.exception`. Antes, o stderr de UDF era registrado apenas em arquivos e não aparecia nos logs de consulta, o que tornava a depuração impossível. Agora, por padrão, o stderr dispara exceções e é acumulado por completo (até 1 MB) antes de ser gerado, para que tracebacks completos do Python e mensagens de erro apareçam em `system.query_log.exception`, facilitando a solução de problemas. [#92209](https://github.com/ClickHouse/ClickHouse/pull/92209) ([Xu Jia](https://github.com/XuJia0210)).
* A lista vazia de colunas na cláusula `JOIN USING ()` agora é considerada um erro de sintaxe. Antes, deveria resultar em `INVALID_JOIN_ON_EXPRESSION` durante a execução da consulta. Em alguns casos, como ao fazer join com o armazenamento `Join`, isso levava a `LOGICAL_ERROR`, corrigindo [#82502](https://github.com/ClickHouse/ClickHouse/issues/82502). [#92371](https://github.com/ClickHouse/ClickHouse/pull/92371) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Passa a usar correspondência parcial para `SKIP REGEXP` no tipo JSON por padrão. Fecha [#79250](https://github.com/ClickHouse/ClickHouse/issues/79250). [#92847](https://github.com/ClickHouse/ClickHouse/pull/92847) ([Pavel Kruglov](https://github.com/Avogar)).
* Revertida a alteração "Permitir INSERT em colunas ALIAS simples" (reverte ClickHouse/ClickHouse[#84154](https://github.com/ClickHouse/ClickHouse/issues/84154)). Ela não funciona com formatos personalizados e não é protegida por uma configuração. [#92849](https://github.com/ClickHouse/ClickHouse/pull/92849) ([Azat Khuzhin](https://github.com/azat)).
* Configuração para gerar erro caso um catálogo de lago de dados não tenha acesso ao armazenamento de objetos. [#93606](https://github.com/ClickHouse/ClickHouse/pull/93606) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* O engine de banco de dados `Lazy` foi removido e não está mais disponível. Fecha [#91231](https://github.com/ClickHouse/ClickHouse/issues/91231). [#93627](https://github.com/ClickHouse/ClickHouse/pull/93627) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Remova o modo `transposed_with_wide_view` de `metric_log` — ele não pode ser usado devido a um bug. Não é mais possível definir `system.metric_log` com esse modo. Isso reverte parcialmente [#78412](https://github.com/ClickHouse/ClickHouse/issues/78412). [#93867](https://github.com/ClickHouse/ClickHouse/pull/93867) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O agendamento de CPU para workloads agora é preemptivo por padrão. Consulte a configuração de servidor `cpu_slot_preemption`. [#94060](https://github.com/ClickHouse/ClickHouse/pull/94060) ([Sergei Trifonov](https://github.com/serxa)).
* Escapar os nomes dos arquivos de índice para evitar partes corrompidas. Com essa mudança, o ClickHouse não conseguirá carregar índices com caracteres não ASCII no nome criados por versões anteriores. Para lidar com isso, você pode usar a configuração do MergeTree `escape_index_filenames`. [#94079](https://github.com/ClickHouse/ClickHouse/pull/94079) ([Raúl Marín](https://github.com/Algunenano)).
* As configurações de formato `exact_rows_before_limit`, `rows_before_aggregation`, `cross_to_inner_join_rewrite`, `regexp_dict_allow_hyperscan`, `regexp_dict_flag_case_insensitive`, `regexp_dict_flag_dotall` e `dictionary_use_async_executor` foram alteradas e agora são configurações regulares (não de formato). Esta é uma mudança puramente interna, sem efeitos visíveis para o usuário, exceto no caso (improvável) de você ter especificado alguma dessas configurações em definições de table engine Iceberg ou DeltaLake ou Kafka ou S3 ou S3Queue ou Azure ou Hive ou RabbitMQ ou Set ou FileLog ou NATS. Nesses casos, essas configurações antes eram ignoradas; agora, essas definições geram um erro. [#94106](https://github.com/ClickHouse/ClickHouse/pull/94106) ([Robert Schulze](https://github.com/rschu1ze)).
* As funções `joinGet/joinGetOrNull` agora exigem privilégios `SELECT` na tabela Join subjacente. Após essa alteração, executar `joinGet('db.table', 'column', key)` exige que o usuário tenha o privilégio `SELECT` tanto nas colunas de chave definidas na tabela Join quanto na coluna de atributo que está sendo recuperada. Consultas sem esses privilégios falharão com `ACCESS_DENIED`. Para migrar, conceda as permissões necessárias usando `GRANT SELECT ON db.join_table TO user` para acesso à tabela inteira, ou `GRANT SELECT(key_col, attr_col) ON db.join_table TO user` para acesso no nível de coluna. Essa alteração afeta todos os usuários e aplicativos que dependem de `joinGet`/`joinGetOrNull` e para os quais concessões explícitas de `SELECT` não haviam sido configuradas anteriormente. [#94307](https://github.com/ClickHouse/ClickHouse/pull/94307) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Verifica `SHOW COLUMNS` em consultas `CREATE TABLE ... AS ...`. Anteriormente, verificava `SHOW TABLES`, o que é um privilégio incorreto para esse tipo de verificação de permissão. [#94556](https://github.com/ClickHouse/ClickHouse/pull/94556) ([pufit](https://github.com/pufit)).
* Torna o formato de saída `Hash` independente do tamanho dos blocos. [#94503](https://github.com/ClickHouse/ClickHouse/pull/94503) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Note que isso altera os valores de hash de saída em comparação com as versões anteriores.

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

* API HTTP e UI web embutida para o ClickHouse Keeper. [#78181](https://github.com/ClickHouse/ClickHouse/pull/78181) ([pufit](https://github.com/pufit) e [speeedmaster](https://github.com/speeedmaster)).
* A desduplicação de inserts assíncronos agora funciona com visões materializadas dependentes. Quando ocorre uma colisão por block\_id, o bloco original é filtrado para remover as linhas associadas ao block\_id, e as linhas restantes são transformadas com todas as consultas SELECT relevantes das visões materializadas; isso reconstrói o bloco original sem linhas conflitantes. [#89140](https://github.com/ClickHouse/ClickHouse/pull/89140) ([Sema Checherinda](https://github.com/CheSema)). Agora é permitido usar desduplicação com inserts assíncronos quando há visões materializadas envolvidas. [#93957](https://github.com/ClickHouse/ClickHouse/pull/93957) ([Sema Checherinda](https://github.com/CheSema)).
* Introduziu uma nova sintaxe e um novo framework para simplificar e ampliar a funcionalidade de índice de projeção. Isso dá continuidade a [https://github.com/ClickHouse/ClickHouse/pull/81021](https://github.com/ClickHouse/ClickHouse/pull/81021). [#91844](https://github.com/ClickHouse/ClickHouse/pull/91844) ([Amos Bird](https://github.com/amosbird)).
* Adicionar suporte a índice de texto em colunas `Array`. [#89895](https://github.com/ClickHouse/ClickHouse/pull/89895) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Ativa `use_variant_as_common_type` por padrão, o que permite usar tipos incompatíveis em um `Array`, em consultas `UNION` e nos ramos de `if`/`multiIf`/`case`. [#90677](https://github.com/ClickHouse/ClickHouse/pull/90677) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Nova tabela de sistema `zookeeper_info`. Implementa [#88014](https://github.com/ClickHouse/ClickHouse/issues/88014). [#90809](https://github.com/ClickHouse/ClickHouse/pull/90809) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Suporte ao tipo `Variant` em todas as funções. [#90900](https://github.com/ClickHouse/ClickHouse/pull/90900) ([Bharat Nallan](https://github.com/bharatnc)).
* Adiciona uma métrica `ClickHouse_Info` ao endpoint `/metrics` do Prometheus, contendo principalmente informações de versão, de modo que seja possível criar gráficos para acompanhar informações detalhadas de versão ao longo do tempo. [#91125](https://github.com/ClickHouse/ClickHouse/pull/91125) ([Christoph Wurm](https://github.com/cwurm)).
* Introduz um novo comando de quatro letras `rcfg` para o Keeper, que permite alterar a configuração do cluster. Esse comando oferece possibilidades mais amplas de alteração da configuração do que a solicitação padrão `reconfigure`. O comando recebe uma string `json` como argumento. O conjunto completo de bytes enviados à interface TCP deve ter esta forma: `rcfg{json_string_length_big_endian}{json_string}`. Alguns exemplos do comando podem ser assim: `{"preconditions": {"leaders": [1, 2], "members": [1, 2, 3, 4, 5]}, "actions": [{"transfer_leadership": [3]}, {"remove_members": [1, 2]}, {"set_priority": [{"id": 4, "priority": 100}, {"id": 5, "priority": 100}]}, {"transfer_leadership": [4, 5]}, {"set_priority": [{"id": 3, "priority": 0}]}]}`. [#91354](https://github.com/ClickHouse/ClickHouse/pull/91354) ([alesapin](https://github.com/alesapin)).
* Adiciona a função `reverseBySeparator`, que inverte a ordem das substrings em uma string, separadas por um separador especificado. Fecha [#91463](https://github.com/ClickHouse/ClickHouse/issues/91463). [#91780](https://github.com/ClickHouse/ClickHouse/pull/91780) ([Xuewei Wang](https://github.com/Sallery-X)).
* Adiciona a nova configuração `max_insert_block_size_bytes`, que permite controlar com mais precisão a formação dos blocos inseridos. [#92833](https://github.com/ClickHouse/ClickHouse/pull/92833) ([Kirill Kopnev](https://github.com/Fgrtue)).
* É possível executar consultas DDL com a cláusula `ON CLUSTER` em um banco de dados Replicated se a configuração `ignore_on_cluster_for_replicated_database` estiver habilitada. Nesse caso, o nome do cluster será ignorado. [#92872](https://github.com/ClickHouse/ClickHouse/pull/92872) ([Kirill](https://github.com/kirillgarbar)).
* Implementada a função `mergeTreeAnalyzeIndexes`. [#92954](https://github.com/ClickHouse/ClickHouse/pull/92954) ([Azat Khuzhin](https://github.com/azat)).
* Adiciona a nova configuração `use_primary_key`. Defina-a como `false` para desabilitar a poda de grânulos com base na chave primária. [#93319](https://github.com/ClickHouse/ClickHouse/pull/93319) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Adicionada a função de tabela `icebergLocalCluster`. [#93323](https://github.com/ClickHouse/ClickHouse/pull/93323) ([Anton Ivashkin](https://github.com/ianton-ru)).
* Adicionada a função `cosineDistanceTransposed`, que calcula uma aproximação da [distância de cosseno](https://en.wikipedia.org/wiki/Cosine_similarity#Cosine_distance) entre dois pontos. [#93621](https://github.com/ClickHouse/ClickHouse/pull/93621) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Adicionada a coluna `files` à tabela system.parts, que mostra o número de arquivos em cada parte de dados. [#94337](https://github.com/ClickHouse/ClickHouse/pull/94337) ([Match](https://github.com/gayanMatch)).
* Adiciona um escalonador max-min fair para controle de concorrência. Oferece mais equidade em cenários de alta sobresubscrição, quando muitas consultas competem por slots de CPU limitados. Consultas de curta duração não são prejudicadas por consultas de longa duração que acumularam mais slots ao longo do tempo. É habilitado pelo valor `max_min_fair` da configuração do servidor `concurrent_threads_scheduler`. [#94732](https://github.com/ClickHouse/ClickHouse/pull/94732) ([Sergei Trifonov](https://github.com/serxa)).
* Adicionada a possibilidade de o ClickHouse client substituir o SNI de TLS ao se conectar ao servidor. [#89761](https://github.com/ClickHouse/ClickHouse/pull/89761) ([Matt Klein](https://github.com/mattklein123)).
* Suporte para tabelas temporárias em chamadas da função `joinGet`. [#92973](https://github.com/ClickHouse/ClickHouse/pull/92973) ([Eduard Karacharov](https://github.com/korowa)).
* Suporte para vetores de exclusão no mecanismo de tabela `DeltaLake`. [#93852](https://github.com/ClickHouse/ClickHouse/pull/93852) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adicionado suporte a vetores de exclusão para `deltaLakeCluster`. [#94365](https://github.com/ClickHouse/ClickHouse/pull/94365) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Suporte ao Google Cloud Storage para lagos de dados. [#93866](https://github.com/ClickHouse/ClickHouse/pull/93866) ([Konstantin Vedernikov](https://github.com/scanhex12)).

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

* Move `QBit` de Experimental para Beta. [#93816](https://github.com/ClickHouse/ClickHouse/pull/93816) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Adiciona suporte a `Nullable(Tuple)`. Defina `allow_experimental_nullable_tuple_type = 1` para habilitá-lo. [#89643](https://github.com/ClickHouse/ClickHouse/pull/89643) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Adiciona suporte ao catálogo REST do Paimon, dando continuidade a [https://github.com/ClickHouse/ClickHouse/pull/84423](https://github.com/ClickHouse/ClickHouse/pull/84423). [#92011](https://github.com/ClickHouse/ClickHouse/pull/92011) ([JIaQi Tang](https://github.com/JiaQiTang98)).

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

* A configuração `use_skip_indexes_on_data_read` agora vem habilitada por padrão. Essa configuração permite aplicar filtragem em streaming ao mesmo tempo que os dados são lidos, melhorando o desempenho da consulta e o tempo de inicialização. [#93407](https://github.com/ClickHouse/ClickHouse/pull/93407) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Melhora o desempenho do `DISTINCT` em colunas `LowCardinality`. Fecha [#5917](https://github.com/ClickHouse/ClickHouse/issues/5917). [#91639](https://github.com/ClickHouse/ClickHouse/pull/91639) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Otimize a função de agregação `distinctJSONPaths` para que leia apenas os caminhos JSON nas partes de dados, e não a coluna JSON inteira. [#92196](https://github.com/ClickHouse/ClickHouse/pull/92196) ([Pavel Kruglov](https://github.com/Avogar)).
* Mais filtros foram propagados para as junções. [#85556](https://github.com/ClickHouse/ClickHouse/pull/85556) ([Nikita Taranov](https://github.com/nickitat)).
* Suporte a mais casos de push down da condição `ON` da junção quando o filtro usa entradas de apenas um dos lados. Suporte a junções `ANY`, `SEMI` e `ANTI`. [#92584](https://github.com/ClickHouse/ClickHouse/pull/92584) ([Dmitry Novik](https://github.com/novikd)).
* Permite usar conjuntos equivalentes para aplicar pushdown de filtros em `SEMI JOIN`. Fecha [#85239](https://github.com/ClickHouse/ClickHouse/issues/85239). [#92837](https://github.com/ClickHouse/ClickHouse/pull/92837) ([Dmitry Novik](https://github.com/novikd)).
* Ignora a leitura do lado esquerdo do hash join quando o lado direito está vazio. Antes, líamos o lado esquerdo até o primeiro bloco não vazio, o que podia dar bastante trabalho em casos com filtragem intensa ou agregação. [#94062](https://github.com/ClickHouse/ClickHouse/pull/94062) ([Alexander Gololobov](https://github.com/davenger)).
* Usando o método "fastrange" (Daniel Lemire) para particionar dados dentro do pipeline de consulta. Isso pode melhorar a ordenação paralela e as junções. [#93080](https://github.com/ClickHouse/ClickHouse/pull/93080) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Melhora no desempenho de funções de janela quando `PARTITION BY` coincide ou é um prefixo da chave de ordenação. [#87299](https://github.com/ClickHouse/ClickHouse/pull/87299) ([Nikita Taranov](https://github.com/nickitat)).
* O filtro externo é propagado até as views, o que permite aplicar PREWHERE em nós locais e remotos. Resolve [#88189](https://github.com/ClickHouse/ClickHouse/issues/88189). [#88316](https://github.com/ClickHouse/ClickHouse/pull/88316) ([Igor Nikonov](https://github.com/devcrafter)).
* Implementa a compilação JIT para mais funções. Fecha [#73509](https://github.com/ClickHouse/ClickHouse/issues/73509). [#88770](https://github.com/ClickHouse/ClickHouse/pull/88770) ([Alexey Milovidov](https://github.com/alexey-milovidov) com [Taiyang Li](https://github.com/taiyang-li)).
* Se um skip index usado em uma consulta `FINAL` estiver em uma coluna que faz parte da chave primária, o passo adicional de verificar, em outras partes, a interseção com a chave primária é desnecessário e não é mais executado. Resolve [#85897](https://github.com/ClickHouse/ClickHouse/issues/85897). [#93899](https://github.com/ClickHouse/ClickHouse/pull/93899) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Otimize o desempenho e o uso de memória para `LIMIT` e `OFFSET` fracionários. [#91167](https://github.com/ClickHouse/ClickHouse/pull/91167) ([Ahmed Gouda](https://github.com/0xgouda)).
* Corrigido o uso da lógica mais rápida de leitura aleatória no prefetcher do Parquet Reader V3. Fecha [#90890](https://github.com/ClickHouse/ClickHouse/issues/90890). [#91435](https://github.com/ClickHouse/ClickHouse/pull/91435) ([Arsen Muk](https://github.com/arsenmuk)).
* Melhora o desempenho do `icebergCluster`. Fecha [#91462](https://github.com/ClickHouse/ClickHouse/issues/91462). [#91537](https://github.com/ClickHouse/ClickHouse/pull/91537) ([Yang Jiang](https://github.com/Ted-Jiang)).
* Não filtre por colunas virtuais em filtros constantes. [#91588](https://github.com/ClickHouse/ClickHouse/pull/91588) ([c-end](https://github.com/c-end)).
* Reduz o uso de memória de INSERT/merges com partes wide em tabelas com muitas colunas ao habilitar buffers de gravação adaptativos. Adiciona suporte a buffers de gravação adaptativos em discos criptografados. [#92250](https://github.com/ClickHouse/ClickHouse/pull/92250) ([Azat Khuzhin](https://github.com/azat)).
* Melhorado o desempenho da busca de texto completo com índice de texto e o tokenizador `sparseGrams`, reduzindo o número de tokens pesquisados no índice. [#93078](https://github.com/ClickHouse/ClickHouse/pull/93078) ([Anton Popov](https://github.com/CurtizJ)).
* A função `isValidASCII` foi otimizada para casos positivos, ou seja, valores de entrada compostos apenas por ASCII. [#93347](https://github.com/ClickHouse/ClickHouse/pull/93347) ([Robert Schulze](https://github.com/rschu1ze)).
* A otimização de leitura em ordem agora reconhece quando as colunas de ORDER BY são constantes por causa das condições em WHERE, permitindo leituras eficientes em ordem inversa. Isso beneficia consultas multilocatário, como `WHERE tenant='42' ORDER BY tenant, event_time DESC`, que agora podem usar InReverseOrder em vez de exigir uma ordenação completa.". [#94103](https://github.com/ClickHouse/ClickHouse/pull/94103) ([matanper](https://github.com/matanper)).
* Introduzida uma classe AST especializada para Enum para armazenar parâmetros de valor em pares (string, integer), em vez de filhos ASTLiteral, otimizando o consumo de memória. [#94178](https://github.com/ClickHouse/ClickHouse/pull/94178) ([Ilya Yatsishin](https://github.com/qoega)).
* Análise distribuída de índices em múltiplas réplicas. Benéfica para armazenamento compartilhado e grandes volumes de dados no cluster. Isso se aplica ao SharedMergeTree (ClickHouse Cloud) e também pode se aplicar a outros tipos de tabelas MergeTree em armazenamento compartilhado. [#86786](https://github.com/ClickHouse/ClickHouse/pull/86786) ([Azat Khuzhin](https://github.com/azat)).
* Reduzir a sobrecarga dos filtros de runtime de JOIN desabilitando-os nos seguintes casos: - há bits demais definidos no filtro de Bloom - poucas linhas são filtradas em tempo de execução. [#91578](https://github.com/ClickHouse/ClickHouse/pull/91578) ([Alexander Gololobov](https://github.com/davenger)).
* Use um buffer em memória para a entrada de subconsultas correlacionadas, a fim de evitar avaliá-la várias vezes. Parte de [#79890](https://github.com/ClickHouse/ClickHouse/issues/79890). [#91205](https://github.com/ClickHouse/ClickHouse/pull/91205) ([Dmitry Novik](https://github.com/novikd)).
* Permitir que todas as réplicas assumam intervalos órfãos durante a leitura com réplicas paralelas. Isso melhora o balanceamento de carga e reduz a latência na cauda longa. [#91374](https://github.com/ClickHouse/ClickHouse/pull/91374) ([zoomxi](https://github.com/zoomxi)).
* A agregação/ordenação/join externos agora respeitam a configuração da consulta `temporary_files_codec` em todos os contextos. Corrigidos os eventos de perfil ausentes para grace hash join. [#92388](https://github.com/ClickHouse/ClickHouse/pull/92388) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Torna mais robusta a detecção do uso de memória das consultas para gravação em disco durante agregação/ordenação. [#92500](https://github.com/ClickHouse/ClickHouse/pull/92500) ([Azat Khuzhin](https://github.com/azat)).
* Estimativa da contagem total de linhas e das estatísticas de NDV (número de valores distintos) das colunas-chave de agregação. [#92812](https://github.com/ClickHouse/ClickHouse/pull/92812) ([Alexander Gololobov](https://github.com/davenger)).
* Otimizada a compressão da lista de postings com simdcomp. [#92871](https://github.com/ClickHouse/ClickHouse/pull/92871) ([Peng Jian](https://github.com/fastio)).
* Refatoração do processamento no modo Ordered do S3Queue com buckets. Isso também deve melhorar o desempenho, reduzindo o número de requisições ao Keeper. [#92889](https://github.com/ClickHouse/ClickHouse/pull/92889) ([Kseniia Sumarokova](https://github.com/kssenii)).
* As funções `mapContainsKeyLike` e `mapContainsValueLike` agora podem usar um índice de texto em `mapKeys()` ou `mapValues()`, respectivamente. [#93049](https://github.com/ClickHouse/ClickHouse/pull/93049) ([Michael Jarrett](https://github.com/EmeraldShift)).
* Reduza o uso de memória em sistemas que não sejam Linux (ative a limpeza imediata de páginas sujas do jemalloc). [#93360](https://github.com/ClickHouse/ClickHouse/pull/93360) ([Eduard Karacharov](https://github.com/korowa)).
* Força o expurgo das arenas do jemalloc caso a proporção entre o tamanho das páginas sujas e `max_server_memory_usage` exceda `memory_worker_purge_dirty_pages_threshold_ratio`. [#93500](https://github.com/ClickHouse/ClickHouse/pull/93500) ([Eduard Karacharov](https://github.com/korowa)).
* Reduz o uso de memória da AST. [#93601](https://github.com/ClickHouse/ClickHouse/pull/93601) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Em alguns casos, vimos que o ClickHouse não respeita o limite de memória ao ler de uma tabela. Esse comportamento foi corrigido. [#93715](https://github.com/ClickHouse/ClickHouse/pull/93715) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Habilita por padrão a extensão Keeper `CHECK_STAT` e `TRY_REMOVE`. [#93886](https://github.com/ClickHouse/ClickHouse/pull/93886) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Interpretar os limites inferior e superior dos nomes de arquivo correspondentes a exclusões por posição a partir das entradas do arquivo de manifesto do Iceberg para selecionar melhor os arquivos de dados correspondentes. [#93980](https://github.com/ClickHouse/ClickHouse/pull/93980) ([Daniil Ivanik](https://github.com/divanik)).
* Adicionadas mais duas configurações para controlar o número máximo de subcolunas dinâmicas em uma coluna JSON. A primeira é a configuração do MergeTree `merge_max_dynamic_subcolumns_in_compact_part` (semelhante à já adicionada `merge_max_dynamic_subcolumns_in_wide_part`), que limita o número de subcolunas dinâmicas criadas durante o merge em uma parte Compact. A segunda é a configuração no nível da consulta `max_dynamic_subcolumns_in_json_type_parsing`, que limita o número de subcolunas dinâmicas criadas durante o parsing de dados JSON, permitindo especificar o limite no insert. [#94184](https://github.com/ClickHouse/ClickHouse/pull/94184) ([Pavel Kruglov](https://github.com/Avogar)).
* Otimiza ligeiramente a consolidação de colunas JSON em alguns casos. [#94247](https://github.com/ClickHouse/ClickHouse/pull/94247) ([Pavel Kruglov](https://github.com/Avogar)).
* Reduza os tamanhos das filas do pool de threads com base na experiência em ambiente de produção. Adicione uma verificação explícita do consumo de memória antes de ler qualquer dado do MergeTree. [#94692](https://github.com/ClickHouse/ClickHouse/pull/94692) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Certifique-se de que o agendador dê preferência à thread MemoryWorker em caso de escassez de CPU, pois isso protege o processo do ClickHouse contra uma ameaça existencial. [#94864](https://github.com/ClickHouse/ClickHouse/pull/94864) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Executa a limpeza de páginas sujas do jemalloc em uma thread separada da thread principal do MemoryWorker. Se a limpeza for lenta, isso poderá atrasar as atualizações do uso de RSS, o que pode levar ao encerramento do processo por falta de memória. Introduz a nova configuração `memory_worker_purge_total_memory_threshold_ratio` para iniciar a limpeza de páginas sujas com base na proporção do uso total de memória. [#94902](https://github.com/ClickHouse/ClickHouse/pull/94902) ([Antonio Andelic](https://github.com/antonio2368)).

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

* `system.blob_storage_log` agora está disponível para o Azure Blob Storage. [#93105](https://github.com/ClickHouse/ClickHouse/pull/93105) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Implementar `blob_storage_log` para Local e HDFS. Corrigir um erro quando o `S3Queue` usava algo diferente do nome do disco ao registrar em `blob_storage_log`. Adicionar a coluna `error_code` a `blob_storage_log`. Dividir o arquivo de configuração de teste para simplificar os testes locais. [#93106](https://github.com/ClickHouse/ClickHouse/pull/93106) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `clickhouse-client` e `clickhouse-local` passarão a destacar grupos de dígitos (milhares, milhões etc.) em literais numéricos durante a digitação. Isso fecha [#93100](https://github.com/ClickHouse/ClickHouse/issues/93100). [#93108](https://github.com/ClickHouse/ClickHouse/pull/93108) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona suporte no `clickhouse-client` a argumentos de linha de comando com espaço ao redor do sinal de igual. Fecha [#93077](https://github.com/ClickHouse/ClickHouse/issues/93077). [#93174](https://github.com/ClickHouse/ClickHouse/pull/93174) ([Cole Smith](https://github.com/colesmith54)).
* Com `<interactive_history_legacy_keymap>true</interactive_history_legacy_keymap>`, o cliente de CLI agora pode voltar a usar Ctrl-R para a busca normal, como antes, enquanto Ctrl-T faz a busca fuzzy. [#87785](https://github.com/ClickHouse/ClickHouse/pull/87785) ([Larry Snizek](https://github.com/larry-cdn77)).
* A instrução para limpar caches `SYSTEM DROP [...] CACHE` dava a falsa impressão de que ela desabilitava o cache. O ClickHouse agora também oferece suporte à instrução `SYSTEM CLEAR [...] CACHE`, que é mais clara. A sintaxe antiga continua disponível. [#93727](https://github.com/ClickHouse/ClickHouse/pull/93727) ([Pranav Tiwari](https://github.com/pranavt84)).
* Suporte a múltiplas colunas como chave primária no `EmbeddedRocksDB`. Fecha [#32819](https://github.com/ClickHouse/ClickHouse/issues/32819). [#33917](https://github.com/ClickHouse/ClickHouse/pull/33917) ([usurai](https://github.com/usurai)).
* Agora é possível usar IN com valores não constantes em escalares (consultas como `val1 NOT IN if(cond, val2, val3)`). [#93495](https://github.com/ClickHouse/ClickHouse/pull/93495) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Impede que os `headers` `x-amz-server-side-encryption` sejam propagados para as requisições S3 `HeadObject`, `UploadPart` e `CompleteMultipartUpload`, pois não são suportados. [#64577](https://github.com/ClickHouse/ClickHouse/pull/64577) ([Francisco J. Jurado Moreno](https://github.com/Beetelbrox)).
* Rastreamento do particionamento do Hive para o modo ordenado no S3Queue. Resolve [#71161](https://github.com/ClickHouse/ClickHouse/issues/71161). [#81040](https://github.com/ClickHouse/ClickHouse/pull/81040) ([Anton Ivashkin](https://github.com/ianton-ru)).
* Otimização da reserva de espaço no cache do sistema de arquivos. `FileCache::collectCandidatesForEviction` será executado sem bloqueio exclusivo. [#82764](https://github.com/ClickHouse/ClickHouse/pull/82764) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Suporte à estratégia de rotação composta (tamanho + tempo) para o log do servidor. [#87620](https://github.com/ClickHouse/ClickHouse/pull/87620) ([Jianmei Zhang](https://github.com/zhangjmruc)).
* O cliente de CLI agora pode especificar `<warnings>false</warnings>` em vez da opção de linha de comando `--no-warnings`. [#87783](https://github.com/ClickHouse/ClickHouse/pull/87783) ([Larry Snizek](https://github.com/larry-cdn77)).
* Adiciona suporte à função de agregação `avg` com valores Date, DateTime e Time como argumentos. Fecha [#82267](https://github.com/ClickHouse/ClickHouse/issues/82267). [#87845](https://github.com/ClickHouse/ClickHouse/pull/87845) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* A otimização `use_join_disjunctions_push_down` está habilitada por padrão. [#89313](https://github.com/ClickHouse/ClickHouse/pull/89313) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Suporte a mais motores de tabela e tipos de fonte de dados em subconsultas correlacionadas. Fecha [#80775](https://github.com/ClickHouse/ClickHouse/issues/80775). [#90175](https://github.com/ClickHouse/ClickHouse/pull/90175) ([Dmitry Novik](https://github.com/novikd)).
* Se o schema da view parametrizada for especificado explicitamente, ele será exibido. Corrige [#88875](https://github.com/ClickHouse/ClickHouse/issues/88875), [#81385](https://github.com/ClickHouse/ClickHouse/issues/81385). [#90220](https://github.com/ClickHouse/ClickHouse/pull/90220) ([Grigorii Sokolik](https://github.com/GSokol)).
* Lida corretamente com a lacuna nas entradas de log do Keeper quando os logs estão antes do último índice confirmado. [#90403](https://github.com/ClickHouse/ClickHouse/pull/90403) ([Antonio Andelic](https://github.com/antonio2368)).
* Melhorada a configuração `min_free_disk_bytes_to_perform_insert` para funcionar corretamente com volumes JBOD. [#90878](https://github.com/ClickHouse/ClickHouse/pull/90878) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* Agora é possível especificar a configuração `storage_class_name` em coleções nomeadas para o mecanismo de tabela `S3` e a função de tabela `s3`. [#91926](https://github.com/ClickHouse/ClickHouse/pull/91926) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Suporte à inserção em zookeeper auxiliar via `system.zookeeper`. [#92092](https://github.com/ClickHouse/ClickHouse/pull/92092) ([RinChanNOW](https://github.com/RinChanNOWWW)).
* Adiciona novas métricas para o Keeper: os profile events `KeeperChangelogWrittenBytes`, `KeeperChangelogFileSyncMicroseconds`, `KeeperSnapshotWrittenBytes` e `KeeperSnapshotFileSyncMicroseconds`, bem como as métricas de histograma `KeeperBatchSizeElements` e `KeeperBatchSizeBytes`. [#92149](https://github.com/ClickHouse/ClickHouse/pull/92149) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Adicionada uma nova configuração, `trace_profile_events_list`, que limita o tracing com `trace_profile_event` à lista especificada de nomes de eventos. Isso permite uma coleta de dados mais precisa em workloads de grande porte. [#92298](https://github.com/ClickHouse/ClickHouse/pull/92298) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adiciona suporte a SYSTEM NOTIFY FAILPOINT para failpoints pausáveis. - Adiciona suporte a SYSTEM WAIT FAILPOINT fp PAUSE/RESUME. [#92368](https://github.com/ClickHouse/ClickHouse/pull/92368) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Adicionada a coluna `creation` (implícita/explícita) em `system.data_skipping_indices`. [#92378](https://github.com/ClickHouse/ClickHouse/pull/92378) ([Raúl Marín](https://github.com/Algunenano)).
* Permitir passar a descrição das colunas das tabelas dyn do YTsaurus para a fonte do dicionário. [#92391](https://github.com/ClickHouse/ClickHouse/pull/92391) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Em [#63985](https://github.com/ClickHouse/ClickHouse/pull/63985), passamos a permitir especificar todos os parâmetros necessários para a configuração de TLS individualmente por porta (consulte [protocolos combináveis](https://clickhouse.com/docs/operations/settings/composable-protocols)), de modo que não precisamos depender de uma configuração global de TLS. No entanto, a implementação ainda exige implicitamente a existência de uma seção de configuração global `openSSL.server`, o que conflita com ambientes em que são necessárias configurações de TLS diferentes para portas diferentes. Por exemplo, em implantações keeper-in-server, precisamos de configurações de TLS separadas para a comunicação entre Keepers e as conexões do clickhouse client. [#92457](https://github.com/ClickHouse/ClickHouse/pull/92457) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Adiciona uma nova configuração `input_format_binary_max_type_complexity` que limita o número total de nós de tipo que podem ser decodificados em formato binário para evitar payloads maliciosos. [#92519](https://github.com/ClickHouse/ClickHouse/pull/92519) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Passa a refletir as tarefas em execução em `system.background_schedule_pool{,_log}`. Adiciona documentação. [#92587](https://github.com/ClickHouse/ClickHouse/pull/92587) ([Azat Khuzhin](https://github.com/azat)).
* Executa a consulta atual na busca com Ctrl+R no cliente se nenhuma correspondência for encontrada no histórico. [#92749](https://github.com/ClickHouse/ClickHouse/pull/92749) ([Azat Khuzhin](https://github.com/azat)).
* Adiciona suporte a `EXPLAIN indices = 1` como alias de `EXPLAIN indexes = 1`. Fecha [#92483](https://github.com/ClickHouse/ClickHouse/issues/92483). [#92774](https://github.com/ClickHouse/ClickHouse/pull/92774) ([Pranav Tiwari](https://github.com/pranavt84)).
* O leitor de Parquet agora permite ler como JSON colunas Tuple ou map: `select x from file(f.parquet, auto, 'x JSON')` funciona mesmo que o tipo da coluna `x` em `f.parquet` seja tuple ou map. [#92864](https://github.com/ClickHouse/ClickHouse/pull/92864) ([Michael Kolupaev](https://github.com/al13n321)).
* Suporte a tuplas vazias no leitor de Parquet. [#92868](https://github.com/ClickHouse/ClickHouse/pull/92868) ([Michael Kolupaev](https://github.com/al13n321)).
* Recorre à cópia em modo leitura e escrita no Azure Blob Storage quando a cópia nativa falha com BadRequest (por exemplo, lista de blocos inválida). Antes, isso só era feito para o erro Unauthorized, observado ao copiar um blob entre diferentes contas de armazenamento. Mas às vezes também vemos o erro "The specified block list is invalid". Agora, a condição foi atualizada para recorrer à leitura & escrita em todas as falhas da cópia nativa. [#92888](https://github.com/ClickHouse/ClickHouse/pull/92888) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Corrige o throttling no endpoint de metadados do EC2 ao executar muitas consultas simultâneas no S3 com credenciais de perfil de instância do EC2. Antes, cada consulta criava seu próprio `AWSInstanceProfileCredentialsProvider`, gerando solicitações simultâneas ao serviço de metadados do EC2, o que podia resultar em timeout e erros `HTTP response code: 403`. Agora, o provedor de credenciais fica em cache e é compartilhado entre todas as consultas. [#92891](https://github.com/ClickHouse/ClickHouse/pull/92891) ([Sav](https://github.com/sberss)).
* Reformula a configuração `insert_select_deduplicate` para permitir manter a compatibilidade com versões anteriores. [#92951](https://github.com/ClickHouse/ClickHouse/pull/92951) ([Sema Checherinda](https://github.com/CheSema)).
* Registrar tarefas em segundo plano mais lentas do que a média (`background_schedule_pool_log.duration_threshold_milliseconds=30`) para evitar o excesso de logs de tarefas. [#92965](https://github.com/ClickHouse/ClickHouse/pull/92965) ([Azat Khuzhin](https://github.com/azat)).
* Em versões anteriores, alguns nomes de funções em C++ eram exibidos incorretamente ("mangled") em `system.trace_log` e `system.symbols`, e a função `demangle` não conseguia processá-los adequadamente. Corrige [#93074](https://github.com/ClickHouse/ClickHouse/issues/93074). [#93075](https://github.com/ClickHouse/ClickHouse/pull/93075) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Introduzida a configuração de backup `backup_data_from_refreshable_materialized_view_targets` para não fazer backup de views materializadas atualizáveis. RMVs com estratégia de atualização APPEND são sempre incluídas no backup. [#93076](https://github.com/ClickHouse/ClickHouse/pull/93076) ([Julia Kartseva](https://github.com/jkartseva)). [#93658](https://github.com/ClickHouse/ClickHouse/pull/93658) ([Julia Kartseva](https://github.com/jkartseva))
* Use informações mínimas de depuração em vez de não usar nenhuma informação de depuração para unidades de tradução pesadas, como funções. [#93079](https://github.com/ClickHouse/ClickHouse/pull/93079) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado suporte de compatibilidade com o MinIO ao SDK C++ do AWS S3 por meio da implementação do mapeamento de códigos de erro para erros específicos do MinIO. Essa alteração permite que o ClickHouse trate corretamente e repita tentativas após erros do servidor MinIO ao usar implantações do MinIO em vez do AWS S3, melhorando a confiabilidade para usuários que executam armazenamento de objetos em clusters MinIO autogerenciados. [#93082](https://github.com/ClickHouse/ClickHouse/pull/93082) ([XiaoBinMu](https://github.com/Binnn-MX)).
* Gravar perfis simbolizados do jemalloc (eliminando a necessidade de um binário durante a geração do perfil de heap). [#93099](https://github.com/ClickHouse/ClickHouse/pull/93099) ([Azat Khuzhin](https://github.com/azat)).
* Restaurada a ferramenta `clickhouse git-import` — ela estava com problemas em commits grandes e inválidos. Veja [https://presentations.clickhouse.com/2020-matemarketing/](https://presentations.clickhouse.com/2020-matemarketing/). [#93202](https://github.com/ClickHouse/ClickHouse/pull/93202) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Não exibir senhas do armazenamento URL no log de consultas. [#93245](https://github.com/ClickHouse/ClickHouse/pull/93245) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Suporte ao tipo `Geometry` em `flipCoordinates`. [#93303](https://github.com/ClickHouse/ClickHouse/pull/93303) ([Bharat Nallan](https://github.com/bharatnc)).
* Melhora a UX do SYSTEM INSTRUMENT ADD/REMOVE: usa literais String para nomes de funções, aplica patches a todas as funções correspondentes e permite usar function\_name em `REMOVE`. [#93345](https://github.com/ClickHouse/ClickHouse/pull/93345) ([Pablo Marcos](https://github.com/pamarcos)).
* Adiciona uma nova configuração `materialize_statistics_on_merge` que habilita/desabilita a materialização de estatísticas durante o merge. O valor padrão é `1`. [#93379](https://github.com/ClickHouse/ClickHouse/pull/93379) ([Han Fei](https://github.com/hanfei1991)).
* O ClickHouse agora pode interpretar `SELECT` sem parênteses em consultas `DESCRIBE SELECT`. Fecha [#58382](https://github.com/ClickHouse/ClickHouse/issues/58382). [#93429](https://github.com/ClickHouse/ClickHouse/pull/93429) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Adiciona aleatorização às verificações de integridade do cache com determinada probabilidade. [#93439](https://github.com/ClickHouse/ClickHouse/pull/93439) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Adicione a configuração `type_json_allow_duplicated_key_with_literal_and_nested_object` para permitir caminhos duplicados em JSON quando um deles for um literal e o outro, um objeto aninhado, por exemplo, `{"a" : 42, "a" : {"b" : 42}}`. Alguns dados podem ter sido criados antes de essa restrição a caminhos duplicados ter sido adicionada em [https://github.com/ClickHouse/ClickHouse/pull/79317](https://github.com/ClickHouse/ClickHouse/pull/79317), e outras manipulações desses dados agora podem causar erros. Com essa configuração, esses dados antigos ainda podem ser usados sem erros. [#93604](https://github.com/ClickHouse/ClickHouse/pull/93604) ([Pavel Kruglov](https://github.com/Avogar)).
* Não imprimir valores de tipos simples em linhas separadas no Pretty JSON. [#93836](https://github.com/ClickHouse/ClickHouse/pull/93836) ([Pavel Kruglov](https://github.com/Avogar)).
* Quando há muitas instruções `alter table ... modify setting ...`, pode acontecer de o bloqueio não ser adquirido em até 5 segundos. É melhor retornar `timeout` do que `logical error`. [#93856](https://github.com/ClickHouse/ClickHouse/pull/93856) ([Han Fei](https://github.com/hanfei1991)).
* Evita saída excessiva em caso de erro de sintaxe. Antes dessa mudança, era exibido o script SQL inteiro, que podia conter muitas consultas. [#93876](https://github.com/ClickHouse/ClickHouse/pull/93876) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Calcule corretamente o tamanho em bytes da solicitação `check` com estatísticas no Keeper. [#93907](https://github.com/ClickHouse/ClickHouse/pull/93907) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Adicionada a configuração `use_hash_table_stats_for_join_reordering` para controlar se as estatísticas, em tempo de execução, do tamanho da tabela hash são usadas na reordenação de junções. Essa configuração é ativada por padrão, preservando o comportamento existente de `collect_hash_table_stats_during_joins`. [#93912](https://github.com/ClickHouse/ClickHouse/pull/93912) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Agora, os usuários podem visualizar parcialmente configurações globais aninhadas do servidor na tabela `system.server_settings` (por exemplo, `logger.level`). Isso se aplica apenas a configurações com estrutura fixa (sem listas, enumerações, repetições etc.). [#94001](https://github.com/ClickHouse/ClickHouse/pull/94001) ([Hechem Selmi](https://github.com/m-selmi)).
* `QBit` agora pode ser comparado por igualdade. [#94078](https://github.com/ClickHouse/ClickHouse/pull/94078) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Quando o Keeper detectar snapshot corrompido ou changelogs inconsistentes, lançar uma exceção em vez de abortar manualmente ou limpar os arquivos automaticamente. Isso deve resultar em um comportamento mais seguro do Keeper, com dependência de intervenção manual. [#94168](https://github.com/ClickHouse/ClickHouse/pull/94168) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigido problema que podia deixar resíduos caso `CREATE TABLE` falhasse. [#94174](https://github.com/ClickHouse/ClickHouse/pull/94174) ([Azat Khuzhin](https://github.com/azat)).
* Corrige o acesso à memória não inicializada (um bug no OpenSSL) quando é usada uma chave TLS protegida por senha. [#94182](https://github.com/ClickHouse/ClickHouse/pull/94182) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* Atualizado o chdig para [v26.1.1](https://github.com/azat/chdig/releases/tag/v26.1.1). [#94290](https://github.com/ClickHouse/ClickHouse/pull/94290) ([Azat Khuzhin](https://github.com/azat)).
* Adiciona suporte a um particionamento mais genérico no modo ordenado do S3Queue. [#94321](https://github.com/ClickHouse/ClickHouse/pull/94321) ([Bharat Nallan](https://github.com/bharatnc)).
* Adicionado o alias `use_statistics` para a configuração `allow_statistics_optimize`. Isso é mais consistente com as configurações já existentes `use_primary_key` e `use_skip_indexes`. [#94366](https://github.com/ClickHouse/ClickHouse/pull/94366) ([Robert Schulze](https://github.com/rschu1ze)).
* Habilitada a configuração `input_format_numbers_enum_on_conversion_error` na conversão de números para Enums, para verificar se o elemento existe. [#94384](https://github.com/ClickHouse/ClickHouse/pull/94384) ([Elmi Ahmadov](https://github.com/ahmadov)).
* No modo ordenado do S3(Azure)Queue, limpar os nós com falha com base nos limites de rastreamento (antes isso era feito apenas no modo não ordenado, tanto para nós com falha quanto para nós processados; agora isso também será feito no modo ordenado, mas apenas para nós com falha). [#94412](https://github.com/ClickHouse/ClickHouse/pull/94412) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Habilitado o gerenciamento de acesso para o usuário `default` no clickhouse-local. O usuário `default` no `clickhouse-local` não tinha o privilégio `access&#95;management`, o que fazia com que operações como `DROP ROW POLICY IF EXISTS` falhassem com o erro `ACCESS_DENIED`, embora esse usuário devesse ter acesso irrestrito. [#94501](https://github.com/ClickHouse/ClickHouse/pull/94501) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado suporte a named collection para dicionários e tabelas do YTsaurus. [#94582](https://github.com/ClickHouse/ClickHouse/pull/94582) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Adicionar suporte a coleções nomeadas definidas por SQL em BACKUP/RESTORE para S3 e Azure Blob Storage. Fecha [#94604](https://github.com/ClickHouse/ClickHouse/issues/94604). [#94605](https://github.com/ClickHouse/ClickHouse/pull/94605) ([Pablo Marcos](https://github.com/pamarcos)).
* Suporte ao bucketing baseado na chave de partição para S3Queue no modo ordenado. [#94698](https://github.com/ClickHouse/ClickHouse/pull/94698) ([Bharat Nallan](https://github.com/bharatnc)).
* Adiciona uma métrica assíncrona com o tempo decorrido do `merge` em execução há mais tempo. [#94825](https://github.com/ClickHouse/ClickHouse/pull/94825) ([Raúl Marín](https://github.com/Algunenano)).
* Adiciona verificação do arquivo correspondente antes de aplicar a exclusão por posição usando `IcebergBitmapPositionDeleteTransform`. [#94897](https://github.com/ClickHouse/ClickHouse/pull/94897) ([Yang Jiang](https://github.com/Ted-Jiang)).
* Agora, `view_duration_ms` mostra o tempo em que o grupo ficou ativo, e não a soma da duração das threads nele. [#94966](https://github.com/ClickHouse/ClickHouse/pull/94966) ([Sema Checherinda](https://github.com/CheSema)).
* Remove o limite máximo do número de tokens de busca nas funções `hasAnyTokens` e `hasAllTokens`, que era de 64. Exemplo: `SELECT count() FROM table WHERE hasAllTokens(text, ['token_1', 'token_2', [...], 'token_65']]);` A consulta resultaria em um erro `BAD_ARGUMENTS` porque há 65 tokens de busca. Com este PR, o limite foi removido por completo, e a mesma consulta seria executada sem erro. [#95152](https://github.com/ClickHouse/ClickHouse/pull/95152) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Adiciona a configuração `input_format_numbers_enum_on_conversion_error` para a conversão de números em enums, a fim de verificar se o elemento existe. Fecha: [#56144](https://github.com/ClickHouse/ClickHouse/issues/56144). [#56240](https://github.com/ClickHouse/ClickHouse/pull/56240) ([Nikolay Degterinsky](https://github.com/evillique)).
* Compartilhe recursos do parser de formato entre a leitura do arquivo de dados e do position delete file em tabelas Iceberg para reduzir as alocações de memória. [#94701](https://github.com/ClickHouse/ClickHouse/pull/94701) ([Yang Jiang](https://github.com/Ted-Jiang)).

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

* Corrige um bug em que handlers de consulta predefinidos interpretavam espaços em branco à direita como dados durante inserções. [#83604](https://github.com/ClickHouse/ClickHouse/pull/83604) ([Fabian Ponce](https://github.com/FabianPonce)).
* Corrigido o erro INCOMPATIBLE\_TYPE\_OF\_JOIN para o armazenamento Join, com aplicação da otimização de outer join para inner join. Resolve [#80794](https://github.com/ClickHouse/ClickHouse/issues/80794). [#84292](https://github.com/ClickHouse/ClickHouse/pull/84292) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrigida a exceção "Número inválido de linhas no Chunk" ao usar hash join com `allow_experimental_join_right_table_sorting` ativado. [#86440](https://github.com/ClickHouse/ClickHouse/pull/86440) ([yanglongwei](https://github.com/ylw510)).
* Sempre substitua nomes de arquivos por hash no MergeTree se o sistema de arquivos não diferenciar maiúsculas de minúsculas. Antes, em sistemas de arquivos que não diferenciam maiúsculas de minúsculas (como o macOS), isso podia causar corrupção de dados quando vários nomes de coluna/subcoluna diferiam apenas pelo uso de maiúsculas e minúsculas. [#86559](https://github.com/ClickHouse/ClickHouse/pull/86559) ([Pavel Kruglov](https://github.com/Avogar)).
* Adicionar uma verificação completa de permissões durante a criação da consulta subjacente em uma visão materializada. [#89180](https://github.com/ClickHouse/ClickHouse/pull/89180) ([pufit](https://github.com/pufit)).
* Corrigido travamento na função `icebergHash` ao usar argumento constante. [#90335](https://github.com/ClickHouse/ClickHouse/pull/90335) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige erro lógico quando uma mutação sem transação altera partes de uma transação ativa, que acaba sendo revertida ao final. [#90469](https://github.com/ClickHouse/ClickHouse/pull/90469) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Atualiza `system.warnings` corretamente após um banco de dados ordinary ser convertido em um banco de dados atomic. [#90473](https://github.com/ClickHouse/ClickHouse/pull/90473) ([sdk2](https://github.com/sdk2)).
* Corrige uma falha de asserção ao ler um arquivo Parquet, quando parte de uma expressão **prewhere** é usada em outro ponto da consulta. [#90635](https://github.com/ClickHouse/ClickHouse/pull/90635) ([Max Kainov](https://github.com/maxknv)).
* Corrige um travamento em um cluster de nó único ao ler do Iceberg no modo split-by-buckets. Isso fecha [#90913](https://github.com/ClickHouse/ClickHouse/issues/90913#issue-3668583963). [#91553](https://github.com/ClickHouse/ClickHouse/pull/91553) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrige um possível erro lógico no mecanismo Log durante a leitura de subcolunas. Fecha [#91710](https://github.com/ClickHouse/ClickHouse/issues/91710). [#91711](https://github.com/ClickHouse/ClickHouse/pull/91711) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrigido erro lógico: 'Storage does not support transaction' durante ATTACH AS REPLICATED. [#91772](https://github.com/ClickHouse/ClickHouse/pull/91772) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Correção para filtros em tempo de execução que funcionavam incorretamente quando o LEFT ANTI JOIN tinha uma condição adicional aplicada posteriormente. [#91824](https://github.com/ClickHouse/ClickHouse/pull/91824) ([Alexander Gololobov](https://github.com/davenger)).
* Corrige um erro que ocorria em uma comparação null-safe envolvendo o tipo Nothing. Fecha [#91834](https://github.com/ClickHouse/ClickHouse/issues/91834). Fecha [#84870](https://github.com/ClickHouse/ClickHouse/issues/84870). Fecha [#91821](https://github.com/ClickHouse/ClickHouse/issues/91821). [#91884](https://github.com/ClickHouse/ClickHouse/pull/91884) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige bugs na decodificação de DELTA\_BYTE\_ARRAY no leitor nativo de Parquet que afetavam dados de texto altamente repetitivos. [#91929](https://github.com/ClickHouse/ClickHouse/pull/91929) ([Daniel Muino](https://github.com/dmuino)).
* Armazena em cache o esquema apenas do arquivo a partir do qual ele foi inferido nos globs, em vez de todos os arquivos, durante a inferência de esquema. Fecha [#91745](https://github.com/ClickHouse/ClickHouse/issues/91745). [#92006](https://github.com/ClickHouse/ClickHouse/pull/92006) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige o erro `Couldn't pack tar archive: Failed to write all bytes` causado por um cabeçalho incorreto de tamanho da entrada do arquivo. Corrige [#89075](https://github.com/ClickHouse/ClickHouse/issues/89075). [#92122](https://github.com/ClickHouse/ClickHouse/pull/92122) ([Julia Kartseva](https://github.com/jkartseva)).
* Libera o fluxo da requisição em insert select para evitar o fechamento da conexão HTTP. [#92175](https://github.com/ClickHouse/ClickHouse/pull/92175) ([Sema Checherinda](https://github.com/CheSema)).
* Corrigido erro lógico em consultas com múltiplas junções com a cláusula `USING` e `join_use_nulls`. [#92251](https://github.com/ClickHouse/ClickHouse/pull/92251) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige um erro lógico na reordenação de join com join\_use\_nulls, fecha [https://github.com/clickhouse/clickhouse/issues/90795](https://github.com/clickhouse/clickhouse/issues/90795). [#92289](https://github.com/ClickHouse/ClickHouse/pull/92289) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrigida a formatação inconsistente da AST de arrayElement com literal negado. Fecha [#92288](https://github.com/ClickHouse/ClickHouse/issues/92288) Fecha [#92212](https://github.com/ClickHouse/ClickHouse/issues/92212) Fecha [#91832](https://github.com/ClickHouse/ClickHouse/issues/91832) Fecha [#91789](https://github.com/ClickHouse/ClickHouse/issues/91789) Fecha [#91735](https://github.com/ClickHouse/ClickHouse/issues/91735) Fecha [#88495](https://github.com/ClickHouse/ClickHouse/issues/88495) Fecha [#92386](https://github.com/ClickHouse/ClickHouse/issues/92386). [#92293](https://github.com/ClickHouse/ClickHouse/pull/92293) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige uma possível falha ao usar a configuração `join_on_disk_max_files_to_merge`. [#92335](https://github.com/ClickHouse/ClickHouse/pull/92335) ([Bharat Nallan](https://github.com/bharatnc)).
* Problema relacionado #[https://github.com/ClickHouse/support-escalation/issues/6365](https://github.com/ClickHouse/support-escalation/issues/6365). [#92339](https://github.com/ClickHouse/ClickHouse/pull/92339) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Corrige a ausência de verificação de acesso em `SYSTEM SYNC FILE CACHE`. Fecha [#92101](https://github.com/ClickHouse/ClickHouse/issues/92101). [#92372](https://github.com/ClickHouse/ClickHouse/pull/92372) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrigido o processamento de `count_distinct_optimization` em funções de janela e com múltiplos argumentos. [#92376](https://github.com/ClickHouse/ClickHouse/pull/92376) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige o erro "Cannot write to finalized buffer" ao usar algumas funções de agregação com funções de janela. Fecha [#91415](https://github.com/ClickHouse/ClickHouse/issues/91415). [#92395](https://github.com/ClickHouse/ClickHouse/pull/92395) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Corrigido erro lógico com `CREATE TABLE ... AS urlCluster()` e o mecanismo de banco de dados `Replicated`. Fecha [#92216](https://github.com/ClickHouse/ClickHouse/issues/92216). [#92418](https://github.com/ClickHouse/ClickHouse/pull/92418) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Herdar, durante a mutação no MergeTree, as configurações das informações de serialização da parte de origem. Isso corrige um possível resultado incorreto da consulta na parte mutada após alterações na serialização dos tipos de dados. [#92419](https://github.com/ClickHouse/ClickHouse/pull/92419) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige um possível conflito entre coluna e subcoluna com o mesmo nome, que levava ao uso da serialização incorreta e a falhas nas consultas. Fecha [#90219](https://github.com/ClickHouse/ClickHouse/issues/90219). Fecha [#85161](https://github.com/ClickHouse/ClickHouse/issues/85161). [#92453](https://github.com/ClickHouse/ClickHouse/pull/92453) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige `LOGICAL_ERROR`s causados por modificações indesejadas no plano de consulta ao converter `outer join` em `inner join`. Também flexibiliza os requisitos da otimização para que ela possa ser aplicada nos casos em que funções injetivas são aplicadas às chaves de agregação durante junções. [#92503](https://github.com/ClickHouse/ClickHouse/pull/92503) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrige o possível erro `SIZES_OF_COLUMNS_DOESNT_MATCH` durante a ordenação de uma coluna de tupla vazia. Fecha [#92422](https://github.com/ClickHouse/ClickHouse/issues/92422). [#92520](https://github.com/ClickHouse/ClickHouse/pull/92520) ([Pavel Kruglov](https://github.com/Avogar)).
* Verificação de caminhos tipados incompatíveis no tipo JSON. Fecha [#91577](https://github.com/ClickHouse/ClickHouse/issues/91577). [#92539](https://github.com/ClickHouse/ClickHouse/pull/92539) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrigido o deadlock no SHOW CREATE DATABASE para o banco de dados Backup. [#92541](https://github.com/ClickHouse/ClickHouse/pull/92541) ([Azat Khuzhin](https://github.com/azat)).
* Use o código de erro correto ao validar o índice hypothesis. [#92559](https://github.com/ClickHouse/ClickHouse/pull/92559) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige a resolução de subcolunas dinâmicas em aliases de coluna no analyzer. Antes, a subcoluna dinâmica em um alias de coluna era encapsulada em `getSubcolumn` e, em alguns casos, podia nem ser resolvida. Fecha [#91434](https://github.com/ClickHouse/ClickHouse/issues/91434). [#92583](https://github.com/ClickHouse/ClickHouse/pull/92583) ([Pavel Kruglov](https://github.com/Avogar)).
* Evita travamento em tokens() com o segundo argumento NULL. [#92586](https://github.com/ClickHouse/ClickHouse/pull/92586) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige uma possível falha causada por mutação in-place das colunas `const PREWHERE` subjacentes. Isso poderia ter acontecido durante o encolhimento da coluna (`IColumn::shrinkToFit`) ou a filtragem (`IColumn::filter`), que poderiam ser disparados concorrentemente por várias threads. [#92588](https://github.com/ClickHouse/ClickHouse/pull/92588) ([Arsen Muk](https://github.com/arsenmuk)).
* A criação e a materialização de índices de texto em tabelas que contêm partes grandes (mais de 4.294.967.295 linhas) estão temporariamente desativadas. Essa limitação evita resultados incorretos de consulta, pois a implementação atual do índice ainda não oferece suporte a partes tão grandes. [#92644](https://github.com/ClickHouse/ClickHouse/pull/92644) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige um erro lógico `Too large size (A) passed to allocator` durante a execução de junções. Fecha [#92043](https://github.com/ClickHouse/ClickHouse/issues/92043). [#92667](https://github.com/ClickHouse/ClickHouse/pull/92667) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige um bug que fazia com que índices `ngrambf_v1` com comprimento de ngrama (1º parâmetro) > 8 lançassem uma exceção. [#92672](https://github.com/ClickHouse/ClickHouse/pull/92672) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrige uma exceção não tratada durante a recarga em segundo plano de named collections quando o armazenamento ZooKeeper é usado. Fecha [https://github.com/ClickHouse/clickhouse-private/issues/44180](https://github.com/ClickHouse/clickhouse-private/issues/44180). [#92717](https://github.com/ClickHouse/ClickHouse/pull/92717) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige a lógica incorreta nas verificações de grants de acesso para grants com curinga. A tentativa anterior [https://github.com/ClickHouse/ClickHouse/pull/90928](https://github.com/ClickHouse/ClickHouse/pull/90928) corrigiu uma vulnerabilidade crítica, mas acabou sendo restritiva demais, fazendo com que algumas instruções `GRANT` com curinga falhassem devido a revogações não relacionadas. [#92725](https://github.com/ClickHouse/ClickHouse/pull/92725) ([pufit](https://github.com/pufit)).
* Corrige um bug na lógica de skipping de dados quando `not match(...)` é usado na cláusula `WHERE`, causando resultados incorretos. Fecha [#92492](https://github.com/ClickHouse/ClickHouse/issues/92492). [#92726](https://github.com/ClickHouse/ClickHouse/pull/92726) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Não tente excluir diretórios temporários durante a inicialização se uma tabela MergeTree for criada em um disco somente de leitura. [#92748](https://github.com/ClickHouse/ClickHouse/pull/92748) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige "Não é possível adicionar uma ação a um ExpressionActionsChain vazio" em ALTER TABLE REWRITE PARTS (v2). [#92754](https://github.com/ClickHouse/ClickHouse/pull/92754) ([Azat Khuzhin](https://github.com/azat)).
* Evita falha ao ler de uma `Connection` desconectada. [#92807](https://github.com/ClickHouse/ClickHouse/pull/92807) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Corrigido o erro lógico ` Failed to set file processing within 100 retries` no `S3Queue` no modo `Ordered`. Agora ele foi substituído por um aviso. Esse erro podia ocorrer antes da versão 25.10 se a sessão do Keeper expirasse; no entanto, nas versões 25.10+ ele continuará sendo apenas um aviso, já que ainda é teoricamente possível receber esse erro em caso de alta concorrência de processamento no modo `Ordered`. [#92814](https://github.com/ClickHouse/ClickHouse/pull/92814) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Anteriormente, algumas queries que usavam sharding por PK com uma condição falsa falhavam. Agora, isso não acontece mais. Necessário para [https://github.com/ClickHouse/ClickHouse/pull/89313](https://github.com/ClickHouse/ClickHouse/pull/89313). [#92815](https://github.com/ClickHouse/ClickHouse/pull/92815) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Correção do cálculo dos tamanhos descompactados dos índices de texto na tabela `system.parts`. [#92832](https://github.com/ClickHouse/ClickHouse/pull/92832) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigido o uso do índice primário em atualizações leves com cláusula `IN` contendo subconsultas no predicado da cláusula `WHERE`. [#92838](https://github.com/ClickHouse/ClickHouse/pull/92838) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigida a criação da dica de tipo para o path 'skip' em JSON. Fecha [#92731](https://github.com/ClickHouse/ClickHouse/issues/92731). [#92842](https://github.com/ClickHouse/ClickHouse/pull/92842) ([Pavel Kruglov](https://github.com/Avogar)).
* No engine de tabela S3, devemos evitar armazenar em cache a chave de partição quando houver funções não determinísticas. [#92844](https://github.com/ClickHouse/ClickHouse/pull/92844) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrige um possível erro `FILE_DOESNT_EXIST` após a mutação de uma coluna esparsa com `ratio_of_defaults_for_sparse_serialization=0.0`. Fecha [#92633](https://github.com/ClickHouse/ClickHouse/issues/92633). [#92860](https://github.com/ClickHouse/ClickHouse/pull/92860) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige a inferência de esquema do Parquet no leitor antigo de Parquet (não usado por padrão) quando uma coluna JSON vem após uma coluna Tuple. Corrige a falha do leitor antigo de Parquet (não usado por padrão) ao processar tuplas vazias. [#92867](https://github.com/ClickHouse/ClickHouse/pull/92867) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige um erro lógico em múltiplas junções com condição constante e `join_use_nulls`, fecha [#92640](https://github.com/ClickHouse/ClickHouse/issues/92640). [#92892](https://github.com/ClickHouse/ClickHouse/pull/92892) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige um possível erro `NOT_FOUND_COLUMN_IN_BLOCK` durante a inserção em uma tabela com subcoluna na expressão de partição. Fecha [#93210](https://github.com/ClickHouse/ClickHouse/issues/93210). Fecha [#83406](https://github.com/ClickHouse/ClickHouse/issues/83406). [#92905](https://github.com/ClickHouse/ClickHouse/pull/92905) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige o erro `NO_SUCH_COLUMN_IN_TABLE` no engine Merge em tabelas com aliases. Fecha [#88665](https://github.com/ClickHouse/ClickHouse/issues/88665). [#92910](https://github.com/ClickHouse/ClickHouse/pull/92910) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrigido o caso em que NULL != NULL no full\_sorting\_join da coluna LowCardinality(Nullable(T)). [#92924](https://github.com/ClickHouse/ClickHouse/pull/92924) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrigidos vários travamentos durante merges de índices de texto em tabelas `MergeTree`. [#92925](https://github.com/ClickHouse/ClickHouse/pull/92925) ([Anton Popov](https://github.com/CurtizJ)).
* Restaura os wrappers LowCardinality nos resultados de expressões SET, se necessário, durante a agregação TTL, para evitar exceções durante a otimização da tabela. [#92971](https://github.com/ClickHouse/ClickHouse/pull/92971) ([Seva Potapov](https://github.com/seva-potapov)).
* Corrige um erro lógico durante a análise de índice quando um array vazio é usado na função `has`. Fecha [#92906](https://github.com/ClickHouse/ClickHouse/issues/92906). [#92995](https://github.com/ClickHouse/ClickHouse/pull/92995) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige possível travamento ao finalizar o pool de agendamento em segundo plano (pode causar travamentos do servidor durante o desligamento). [#93008](https://github.com/ClickHouse/ClickHouse/pull/93008) ([Azat Khuzhin](https://github.com/azat)).
* Corrige um possível erro FILE\_DOESNT\_EXIST após uma mutação em coluna esparsa quando a configuração `ratio_of_defaults_for_sparse_serialization` foi alterada para `1.0` via ALTER. [#93016](https://github.com/ClickHouse/ClickHouse/pull/93016) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige um erro na lógica de skipping de dados quando `not materialize(...)` ou `not CAST(...)` é usado na cláusula WHERE, o que causava resultados incorretos. Fecha [#88536](https://github.com/ClickHouse/ClickHouse/issues/88536). [#93017](https://github.com/ClickHouse/ClickHouse/pull/93017) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige uma possível utilização de partes desatualizadas devido a uma condição de corrida TOCTOU em partes compartilhadas. [#93022](https://github.com/ClickHouse/ClickHouse/pull/93022) ([Azat Khuzhin](https://github.com/azat)).
* Corrige travamento ao desserializar o estado agregado `groupConcat` malformado com offsets fora dos limites. [#93028](https://github.com/ClickHouse/ClickHouse/pull/93028) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Corrigido problema que deixava a conexão em um estado inconsistente após o cancelamento preliminar de consultas distribuídas. [#93029](https://github.com/ClickHouse/ClickHouse/pull/93029) ([Azat Khuzhin](https://github.com/azat)).
* Corrige os resultados de join quando a chave de join do lado direito é uma coluna esparsa. Isso fecha [#92920](https://github.com/ClickHouse/ClickHouse/issues/92920). Só consigo reproduzir o bug com `set compatibility='23.3'`. Não tenho certeza se isso deve ser retroportado. [#93038](https://github.com/ClickHouse/ClickHouse/pull/93038) ([Amos Bird](https://github.com/amosbird)).
* Corrige um possível `Cannot finalize buffer after cancellation` em `estimateCompressionRatio()`. Corrige: [#87380](https://github.com/ClickHouse/ClickHouse/issues/87380). [#93068](https://github.com/ClickHouse/ClickHouse/pull/93068) ([Azat Khuzhin](https://github.com/azat)).
* Corrigidas as mesclagens de índices de texto construídos com base em expressões complexas (como `concat(col1, col2)`). [#93073](https://github.com/ClickHouse/ClickHouse/pull/93073) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige a aplicação da projeção quando o filtro contém subcolunas. Fecha [#92882](https://github.com/ClickHouse/ClickHouse/issues/92882). [#93141](https://github.com/ClickHouse/ClickHouse/pull/93141) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige um erro lógico que, em alguns casos, era disparado quando filtros de runtime de join eram adicionados ao plano de consulta. Isso era causado pelo retorno incorreto de colunas `const` duplicadas de um dos lados do join. [#93144](https://github.com/ClickHouse/ClickHouse/pull/93144) ([Alexander Gololobov](https://github.com/davenger)).
* A função especial `__applyFilter` usada por filtros de runtime de JOIN estava retornando o erro ILLEGAL\_TYPE\_OF\_ARGUMENT em alguns casos válidos. [#93187](https://github.com/ClickHouse/ClickHouse/pull/93187) ([Alexander Gololobov](https://github.com/davenger)).
* Evita que colunas interpoladas diferentes colapsem em uma mesma coluna em um bloco quando as colunas interpoladas forem, na prática, aliases da mesma coluna. [#93197](https://github.com/ClickHouse/ClickHouse/pull/93197) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Não adicionar filtro em tempo de execução ao fazer join com a tabela da direita já preenchida. [#93211](https://github.com/ClickHouse/ClickHouse/pull/93211) ([Alexander Gololobov](https://github.com/davenger)).
* Corrige a limpeza de watches persistentes do Keeper após o término de uma sessão. Isso fecha [#92480](https://github.com/ClickHouse/ClickHouse/issues/92480). [#93213](https://github.com/ClickHouse/ClickHouse/pull/93213) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrigido o ORDER BY com tupla no Iceberg. Isso encerra [#92977](https://github.com/ClickHouse/ClickHouse/issues/92977). [#93225](https://github.com/ClickHouse/ClickHouse/pull/93225) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrige um bug na configuração `s3queue_migrate_old_metadata_to_buckets` do S3Queue. Fecha [#93392](https://github.com/ClickHouse/ClickHouse/issues/93392), [#93196](https://github.com/ClickHouse/ClickHouse/issues/93196), [#81739](https://github.com/ClickHouse/ClickHouse/issues/81739). [#93232](https://github.com/ClickHouse/ClickHouse/pull/93232) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Remove colunas não utilizadas quando a projeção é reconstruída durante o merge. Isso reduz o uso de memória e cria menos partes temporárias. [#93233](https://github.com/ClickHouse/ClickHouse/pull/93233) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrige a remoção de colunas não usadas de subconsultas na presença de uma subconsulta escalar correlacionada. Antes dessa correção, a coluna poderia ser removida se fosse usada apenas na subconsulta correlacionada, e a consulta falharia com o erro `NOT_FOUND_COLUMN_IN_BLOCK`. [#93273](https://github.com/ClickHouse/ClickHouse/pull/93273) ([Dmitry Novik](https://github.com/novikd)).
* Corrigida possível subcoluna ausente na MV durante alteração da tabela de origem. Fecha [#93231](https://github.com/ClickHouse/ClickHouse/issues/93231). [#93276](https://github.com/ClickHouse/ClickHouse/pull/93276) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige o planejamento de consultas do mecanismo de tabela `Merge` com o analyzer, que podia gerar ILLEGAL\_COLUMN para `hostName()` ao mesclar tabelas locais e remotas/Distributed. Fecha [#92059](https://github.com/ClickHouse/ClickHouse/issues/92059). [#93286](https://github.com/ClickHouse/ClickHouse/pull/93286) ([Jinlin](https://github.com/withlin)).
* Corrige um caso em que `NOT IN` com argumentos de array não constantes retornava um valor incorreto + adiciona suporte a funções Array não constantes. Fecha [#14980](https://github.com/ClickHouse/ClickHouse/issues/14980). [#93314](https://github.com/ClickHouse/ClickHouse/pull/93314) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Corrige o erro `Not found column` na otimização `use_top_k_dynamic_filtering`. Corrige [#93186](https://github.com/ClickHouse/ClickHouse/issues/93186). [#93316](https://github.com/ClickHouse/ClickHouse/pull/93316) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Corrigida a reconstrução de índices de texto criados em subcolunas. [#93326](https://github.com/ClickHouse/ClickHouse/pull/93326) ([Anton Popov](https://github.com/CurtizJ)).
* Corrigido o tratamento de um array vazio como segundo argumento nas funções `hasAllTokens` e `hasAnyTokens`. [#93328](https://github.com/ClickHouse/ClickHouse/pull/93328) ([Anton Popov](https://github.com/CurtizJ)).
* Corrige erro lógico quando filtros de runtime são usados em uma consulta com totais na tabela do lado direito. [#93330](https://github.com/ClickHouse/ClickHouse/pull/93330) ([Alexander Gololobov](https://github.com/davenger)).
* O servidor não trava mais se a função `tokens` for chamada com parâmetros não constantes do tokenizer (o 2º, 3º e 4º parâmetros), por exemplo, `SELECT tokens(NULL, 1, materialize(1))`. [#93383](https://github.com/ClickHouse/ClickHouse/pull/93383) ([Robert Schulze](https://github.com/rschu1ze)).
* Corrigida uma vulnerabilidade de estouro de inteiro na desserialização do estado de `groupConcat` que poderia causar problemas de segurança de memória com estados agregados forjados. [#93426](https://github.com/ClickHouse/ClickHouse/pull/93426) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Corrigida a análise de índice de texto em colunas do tipo array quando o índice não contém tokens (todos os arrays estão vazios ou todos os tokens são ignorados pelo tokenizador). [#93457](https://github.com/ClickHouse/ClickHouse/pull/93457) ([Anton Popov](https://github.com/CurtizJ)).
* Evita o login via OAuth no ClickHouse Client quando o nome de usuário e a senha estão na string de conexão. [#93459](https://github.com/ClickHouse/ClickHouse/pull/93459) ([Krishna Mannem](https://github.com/kcmannem)).
* Corrige o suporte a credenciais provisionadas do Azure ADLS Gen2 no DataLakeCatalog - faz o parse das chaves `adls.sas-token.*` em catálogos REST do Iceberg e corrige o parse de URLs ABFSS. [#93477](https://github.com/ClickHouse/ClickHouse/pull/93477) ([Karun Anantharaman](https://github.com/karunmotorq)).
* Corrige o suporte a GLOBAL IN com o analyzer (antes, o Set era recriado no nó remoto). [#93507](https://github.com/ClickHouse/ClickHouse/pull/93507) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida a extração de subcoluna durante a desserialização diretamente para colunas esparsas. [#93512](https://github.com/ClickHouse/ClickHouse/pull/93512) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrigida a leitura direta a partir do índice de texto em consultas de pesquisa duplicadas. [#93516](https://github.com/ClickHouse/ClickHouse/pull/93516) ([Anton Popov](https://github.com/CurtizJ)).
* Correção para o erro NOT\_FOUND\_COLUMN\_IN\_BLOCK quando o runtime filter está habilitado e as tabelas em JOIN têm a mesma coluna retornada múltiplas vezes (por exemplo, SELECT a, a, a FROM t). [#93526](https://github.com/ClickHouse/ClickHouse/pull/93526) ([Alexander Gololobov](https://github.com/davenger)).
* Corrigido um bug em que o clickhouse-client pedia a senha duas vezes ao se conectar via ssh. [#93547](https://github.com/ClickHouse/ClickHouse/pull/93547) ([Isak Ellmer](https://github.com/spinojara)).
* Garanta que o zookeeper seja encerrado no desligamento (corrige um possível travamento durante o desligamento em casos muito improváveis). [#93602](https://github.com/ClickHouse/ClickHouse/pull/93602) ([Azat Khuzhin](https://github.com/azat)).
* Corrige o LOGICAL\_ERROR ao restaurar o ReplicatedMergeTree com condição de corrida na desduplicação. [#93612](https://github.com/ClickHouse/ClickHouse/pull/93612) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrigido o uso de coluna esparsa na atualização de TTL durante a desserialização direta em colunas esparsas em alguns formatos de entrada. Isso corrige o possível erro lógico `Unexpected type of result TTL column`. [#93619](https://github.com/ClickHouse/ClickHouse/pull/93619) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrigidas funções de índice H3 que às vezes travavam ou ficavam presas ao serem chamadas com entradas inválidas. [#93657](https://github.com/ClickHouse/ClickHouse/pull/93657) ([Michael Kolupaev](https://github.com/al13n321)).
* O uso do índice `ngram_bf` em dados não UTF-8 levou a uma leitura de memória não inicializada, com valores que poderiam acabar na estrutura do índice resultante. Fecha [#92576](https://github.com/ClickHouse/ClickHouse/issues/92576). [#93663](https://github.com/ClickHouse/ClickHouse/pull/93663) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Verifique se o tamanho do buffer descomprimido está conforme o esperado. [#93690](https://github.com/ClickHouse/ClickHouse/pull/93690) ([Raúl Marín](https://github.com/Algunenano)).
* Impedir que usuários obtenham a lista de colunas de uma tabela usando o mecanismo de tabela `merge` sem que a permissão `SHOW COLUMNS` seja verificada. [#93695](https://github.com/ClickHouse/ClickHouse/pull/93695) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Corrigida a materialização de índices de salto criados com base em subcolunas. [#93708](https://github.com/ClickHouse/ClickHouse/pull/93708) ([Anton Popov](https://github.com/CurtizJ)).
* Armazenamos os ponteiros compartilhados de `storage` em `QueryPipeline::resources::storage_holders` para garantir que os objetos `IStorage` não sejam destruídos enquanto o `PipelineExecutor` estiver ativo. [#93746](https://github.com/ClickHouse/ClickHouse/pull/93746) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrigida a anexação de BDs Replicated quando o host interservidor era alterado após a reinicialização. [#93779](https://github.com/ClickHouse/ClickHouse/pull/93779) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Corrige a asserção `!read_until_position` em `ReadBufferFromS3`, que ocorria quando o cache estava habilitado. [#93809](https://github.com/ClickHouse/ClickHouse/pull/93809) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige um erro lógico em um caso raro em que uma tupla vazia é usada com uma coluna `Map`. Fecha [#93784](https://github.com/ClickHouse/ClickHouse/issues/93784). [#93814](https://github.com/ClickHouse/ClickHouse/pull/93814) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrigida a corrupção de `_part_offset` quando as projeções são reconstruídas durante merges, e otimizado o processamento de projeções ao evitar leituras desnecessárias da coluna `_part_offset` e ignorar colunas desnecessárias nos cálculos de projeção. Isso dá continuidade às otimizações introduzidas em [#93233](https://github.com/ClickHouse/ClickHouse/issues/93233). [#93827](https://github.com/ClickHouse/ClickHouse/pull/93827) ([Amos Bird](https://github.com/amosbird)).
* Remover o tratamento para 'versão inválida'. [#93843](https://github.com/ClickHouse/ClickHouse/pull/93843) ([Anton Ivashkin](https://github.com/ianton-ru)).
* Correção para `optimize_inverse_dictionary_lookup`, que não funcionava com consulta distribuída quando a chave era do tipo inteiro com sinal. Fecha [#93259](https://github.com/ClickHouse/ClickHouse/issues/93259). [#93848](https://github.com/ClickHouse/ClickHouse/pull/93848) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige `lag`/`lead` que não funcionavam com a consulta `remote()` distribuída. Fecha [#90014](https://github.com/ClickHouse/ClickHouse/issues/90014). [#93858](https://github.com/ClickHouse/ClickHouse/pull/93858) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige bug no despacho da instrumentação do sistema. [#93937](https://github.com/ClickHouse/ClickHouse/pull/93937) ([Pablo Marcos](https://github.com/pamarcos)).
* Em [https://github.com/ClickHouse/ClickHouse/pull/89173](https://github.com/ClickHouse/ClickHouse/pull/89173), adicionamos um campo extra à estrutura que o `TraceSender` envia por meio de um pipe interno. No entanto, o tamanho do buffer não foi atualizado ([aqui](https://github.com/ClickHouse/ClickHouse/pull/89173/changes#diff-36ecfac5cde34c92c031652d8a77f0d12782cd5d43e68d6ef159e6d46a54224fL44)), portanto estamos gravando mais dados no buffer do que o definido em `buffer_size`, o que resulta em múltiplos flushes. E, como `TraceSender::send` é chamado de diferentes threads, os flushes dessas threads podem se intercalar, o que quebra a invariante da qual o lado receptor (`TraceCollector`) depende. [#93966](https://github.com/ClickHouse/ClickHouse/pull/93966) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrige a conversão de tipos para um supertipo durante a operação de JOIN do armazenamento `Join` com a cláusula `USING`. Corrige [#91672](https://github.com/ClickHouse/ClickHouse/issues/91672). Corrige [#78572](https://github.com/ClickHouse/ClickHouse/issues/78572). [#94000](https://github.com/ClickHouse/ClickHouse/pull/94000) ([Dmitry Novik](https://github.com/novikd)).
* Correção para o caso em que o FilterStep não era adicionado corretamente quando um filtro de runtime de JOIN é aplicado à tabela Merge. [#94021](https://github.com/ClickHouse/ClickHouse/pull/94021) ([Alexander Gololobov](https://github.com/davenger)).
* Uma consulta `SELECT` que contém um predicado em várias colunas com skip indexes de filtro de Bloom e com condições `OR` e `NOT` podia retornar resultados inconsistentes. Isso já foi corrigido. [#94026](https://github.com/ClickHouse/ClickHouse/pull/94026) ([Shankar Iyer](https://github.com/shankar-iyer)).
* Corrigido o CLEAR de coluna com índices dependentes. [#94057](https://github.com/ClickHouse/ClickHouse/pull/94057) ([Raúl Marín](https://github.com/Algunenano)).
* Corrigido o uso de um valor não inicializado em `ReadWriteBufferFromHTTP`. [#94058](https://github.com/ClickHouse/ClickHouse/pull/94058) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige uma verificação incorreta de caminhos tipados em JSON. A verificação foi introduzida em [https://github.com/ClickHouse/ClickHouse/pull/92842](https://github.com/ClickHouse/ClickHouse/pull/92842) e pode causar um erro na inicialização de tabelas já existentes. [#94070](https://github.com/ClickHouse/ClickHouse/pull/94070) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige o travamento durante a análise de filtros na presença de OUTER JOIN. Corrige [#90979](https://github.com/ClickHouse/ClickHouse/issues/90979). [#94080](https://github.com/ClickHouse/ClickHouse/pull/94080) ([Dmitry Novik](https://github.com/novikd)).
* Corrige a precisão de `uniqTheta` ao usar chaves de agregação UInt8 em paralelo (`max_threads` > 1 — padrão). [#94095](https://github.com/ClickHouse/ClickHouse/pull/94095) ([Azat Khuzhin](https://github.com/azat)).
* Corrige falha causada por uma exceção gerada por uma chamada `socket.setBlocking(true)` dentro de `SCOPE_EXIT`. [#94100](https://github.com/ClickHouse/ClickHouse/pull/94100) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrige a perda de dados quando `DROP PARTITION` remove partes criadas por entradas de log mais recentes no ReplicatedMergeTree. [#94123](https://github.com/ClickHouse/ClickHouse/pull/94123) ([Tuan Pham Anh](https://github.com/tuanpach)).
* Corrigido um problema no leitor de Parquet v3, que tratava incorretamente arrays que atravessam limites de página. Isso acontece, por exemplo, em arquivos gravados pelo Arrow sem habilitar estatísticas de página nem índice de página. Afeta apenas colunas do tipo de dado Array. O sintoma mais provável é que um array a cada \~1 MB de dados seja truncado. Antes desta correção, use esta configuração como solução alternativa: `input_format_parquet_use_native_reader_v3 = 0`. [#94125](https://github.com/ClickHouse/ClickHouse/pull/94125) ([Michael Kolupaev](https://github.com/al13n321)).
* Corrige o excesso de watches no ReplicatedMergeTree ao aguardar uma entrada de log. [#94133](https://github.com/ClickHouse/ClickHouse/pull/94133) ([Azat Khuzhin](https://github.com/azat)).
* Funções `arrayShuffle`, `arrayPartialShuffle` e `arrayRandomSample` para materializar colunas constantes, para que linhas diferentes obtenham resultados diferentes. [#94134](https://github.com/ClickHouse/ClickHouse/pull/94134) ([Joanna Hulboj](https://github.com/jh0x)).
* Corrigida condição de corrida na avaliação de funções de tabela em visões materializadas. [#94171](https://github.com/ClickHouse/ClickHouse/pull/94171) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a desreferenciação de `nullptr` nos motores de banco de dados `PostgreSQL` (quando a consulta está incorreta). Fecha [#92887](https://github.com/ClickHouse/ClickHouse/issues/92887). [#94180](https://github.com/ClickHouse/ClickHouse/pull/94180) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige vazamento de memória em views materializadas atualizáveis que usam consultas `SELECT` com várias subconsultas. [#94200](https://github.com/ClickHouse/ClickHouse/pull/94200) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrige uma condição de corrida de dados entre `DataPartStorageOnDiskBase::remove` e `system.parts`. Fecha [#49076](https://github.com/ClickHouse/ClickHouse/issues/49076). [#94262](https://github.com/ClickHouse/ClickHouse/pull/94262) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Removido o especificador `noexcept` incorreto na atribuição por cópia da HashTable, que pode levar a um crash (`std::terminate`) em caso de exceções de memória. [#94275](https://github.com/ClickHouse/ClickHouse/pull/94275) ([Nikita Taranov](https://github.com/nickitat)).
* Anteriormente, criar uma projeção com colunas duplicadas em GROUP BY (por exemplo, `GROUP BY c0, c0`) e inserir dados resultava em `std::length_error` se `optimize_row_order` estivesse habilitado. Corrige [#94065](https://github.com/ClickHouse/ClickHouse/issues/94065). [#94277](https://github.com/ClickHouse/ClickHouse/pull/94277) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um bug raro no cliente ZooKeeper ao se conectar, que causa travamentos e falhas. [#94320](https://github.com/ClickHouse/ClickHouse/pull/94320) ([Azat Khuzhin](https://github.com/azat)).
* Corrigida a otimização de funções para subcolunas, que não era aplicada a subcolunas. [#94323](https://github.com/ClickHouse/ClickHouse/pull/94323) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrige um resultado possivelmente incorreto em `RIGHT JOIN` aninhados quando `enable_lazy_columns_replication` está habilitado. O bug fazia com que todas as linhas nas colunas replicadas retornassem incorretamente o mesmo valor, em vez de seus valores distintos. Fecha [#93891](https://github.com/ClickHouse/ClickHouse/issues/93891). [#94339](https://github.com/ClickHouse/ClickHouse/pull/94339) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Corrige o pushdown de filtro em SEMI JOIN usando conjuntos de equivalência. Não aplique o pushdown do filtro se os tipos dos argumentos tiverem mudado. Corrige [#93264](https://github.com/ClickHouse/ClickHouse/issues/93264). [#94340](https://github.com/ClickHouse/ClickHouse/pull/94340) ([Dmitry Novik](https://github.com/novikd)).
* Corrige o uso do DeltaLake CDF com o mecanismo de banco de dados DataLake (integração com catálogos delta lake). Fecha [#94122](https://github.com/ClickHouse/ClickHouse/issues/94122). [#94342](https://github.com/ClickHouse/ClickHouse/pull/94342) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Corrige o valor incorreto da métrica atual `FilesystemCacheSizeLimit` quando a política de cache `SLRU` era usada. [#94363](https://github.com/ClickHouse/ClickHouse/pull/94363) ([Kseniia Sumarokova](https://github.com/kssenii)).
* A criação de um engine de banco de dados Backup com menos de dois argumentos agora retorna uma mensagem de erro mais descritiva (`Wrong number of arguments` em vez de `std::out_of_range: InlinedVector::at(size_type) const failed bounds check.`). [#94374](https://github.com/ClickHouse/ClickHouse/pull/94374) ([Robert Schulze](https://github.com/rschu1ze)).
* Ignora revogações impossíveis, no nível do banco de dados, de privilégios globais com opção de concessão. [#94386](https://github.com/ClickHouse/ClickHouse/pull/94386) ([pufit](https://github.com/pufit)).
* Corrige a leitura de offsets esparsos em partes compactas. Fecha [#94385](https://github.com/ClickHouse/ClickHouse/issues/94385). [#94399](https://github.com/ClickHouse/ClickHouse/pull/94399) ([Pavel Kruglov](https://github.com/Avogar)).
* Não impedir ALTER em colunas que usam índices implícitos, mesmo quando o modo `throw` de `alter_column_secondary_index_mode` é usado. [#94425](https://github.com/ClickHouse/ClickHouse/pull/94425) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige um travamento em `TCPHandler` quando várias chamadas de `receivePacketsExpectQuery` leem `Protocol::Client::IgnoredPartUUIDs`. [#94434](https://github.com/ClickHouse/ClickHouse/pull/94434) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrige a ocultação de dados sensíveis em `system.functions`. [#94436](https://github.com/ClickHouse/ClickHouse/pull/94436) ([Vitaly Baranov](https://github.com/vitlibar)).
* Corrige a desreferenciação de `nullptr` com `send_profile_events` desabilitado. Esta funcionalidade foi introduzida recentemente no driver Python do ClickHouse. Fecha [#92488](https://github.com/ClickHouse/ClickHouse/issues/92488). [#94466](https://github.com/ClickHouse/ClickHouse/pull/94466) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a incompatibilidade do `.mrk` do índice de texto durante os merges. [#94494](https://github.com/ClickHouse/ClickHouse/pull/94494) ([Peng Jian](https://github.com/fastio)).
* Quando `read_in_order_use_virtual_row` está habilitado, o código acessava colunas de índice com base no tamanho completo da chave primária sem verificar se o índice havia sido truncado, o que levava a uso após liberação / memória não inicializada. Fecha [#85596](https://github.com/ClickHouse/ClickHouse/issues/85596). [#94500](https://github.com/ClickHouse/ClickHouse/pull/94500) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige um erro causado por incompatibilidade de tipos ao enviar tabelas externas para subconsultas com GLOBAL IN quando os tipos são Nullable. Fecha [#94097](https://github.com/ClickHouse/ClickHouse/issues/94097). [#94511](https://github.com/ClickHouse/ClickHouse/pull/94511) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Em versões anteriores, consultas com múltiplas condições de índice na mesma expressão podem, por engano, gerar a exceção `Not found column`. Corrige [#60660](https://github.com/ClickHouse/ClickHouse/issues/60660). [#94515](https://github.com/ClickHouse/ClickHouse/pull/94515) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o tratamento incorreto de coluna Nullable em join em filtros de runtime. [#94555](https://github.com/ClickHouse/ClickHouse/pull/94555) ([Alexander Gololobov](https://github.com/davenger)).
* A criação de uma workload dentro de outra workload que está em uso não causa mais travamento. [#94599](https://github.com/ClickHouse/ClickHouse/pull/94599) ([Sergei Trifonov](https://github.com/serxa)).
* Corrige uma falha durante a otimização de ANY LEFT JOIN quando `isNotNull` é avaliado em uma coluna inexistente. [#94600](https://github.com/ClickHouse/ClickHouse/pull/94600) ([Molly](https://github.com/ggmolly)).
* Corrige a avaliação da expressão padrão ao fazer referência a outras colunas com valores padrão calculados. [#94615](https://github.com/ClickHouse/ClickHouse/pull/94615) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige problemas de permissão em operações de BACKUP/RESTORE. [#94617](https://github.com/ClickHouse/ClickHouse/pull/94617) ([Pablo Marcos](https://github.com/pamarcos)).
* Corrigida a falha causada por conversão de tipo incorreta quando o tipo de dado é `Nullable(DateTime64)`. [#94627](https://github.com/ClickHouse/ClickHouse/pull/94627) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Corrige um bug em que certas consultas distribuídas com `ORDER BY` podiam retornar colunas `ALIAS` com valores invertidos (ou seja, a coluna `a` exibindo os dados da coluna `b` e vice-versa). [#94644](https://github.com/ClickHouse/ClickHouse/pull/94644) ([filimonov](https://github.com/filimonov)).
* Corrigido o armazenamento dos resultados do keeper-bench em arquivo. [#94654](https://github.com/ClickHouse/ClickHouse/pull/94654) ([Antonio Andelic](https://github.com/antonio2368)).
* Corrigidas estimativas incorretas com estatísticas do tipo MinMax quando a coluna contém números de ponto flutuante negativos. [#94665](https://github.com/ClickHouse/ClickHouse/pull/94665) ([zoomxi](https://github.com/zoomxi)).
* Corrigida a leitura de arquivos Parquet quando a chave de um map é do tipo struct. [#94670](https://github.com/ClickHouse/ClickHouse/pull/94670) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrige possível resultado incorreto de RIGHT join ao usar condições complexas em ON. Fecha [#92913](https://github.com/ClickHouse/ClickHouse/issues/92913). [#94680](https://github.com/ClickHouse/ClickHouse/pull/94680) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Preserva a granularidade constante do índice (use\_const\_adaptive\_granularity) após mesclagens verticais. [#94725](https://github.com/ClickHouse/ClickHouse/pull/94725) ([Azat Khuzhin](https://github.com/azat)).
* Corrige um bug de mutação com subconsultas escalares e dependências de tabela. Se uma tabela tivesse dependências (índice ou projeções) em uma coluna, as subconsultas escalares poderiam ser avaliadas e armazenadas em cache sem dados, levando a alterações incorretas. [#94731](https://github.com/ClickHouse/ClickHouse/pull/94731) ([Raúl Marín](https://github.com/Algunenano)).
* Corrige o fallback de cpu\_pressure no AsynchronousMetrics em caso de erro. [#94827](https://github.com/ClickHouse/ClickHouse/pull/94827) ([Raúl Marín](https://github.com/Algunenano)).
* A função `getURLHostRFC` não tinha verificações de limites antes de desreferenciar ponteiros. Quando uma string vazia era passada para `domainRFC`, a função lia memória não inicializada, o que acionava erros do MSan. [#94851](https://github.com/ClickHouse/ClickHouse/pull/94851) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige o modo somente leitura em discos criptografados. [#94852](https://github.com/ClickHouse/ClickHouse/pull/94852) ([Azat Khuzhin](https://github.com/azat)).
* Corrige um erro lógico em `LIMIT/OFFSET` fracionário ao usar o analyzer antigo com tabelas distribuídas. Fecha [#94712](https://github.com/ClickHouse/ClickHouse/issues/94712). [#94999](https://github.com/ClickHouse/ClickHouse/pull/94999) ([Ahmed Gouda](https://github.com/0xgouda)).
* Corrigido travamento em algumas condições quando os filtros de runtime de JOIN estão habilitados por padrão. [#95000](https://github.com/ClickHouse/ClickHouse/pull/95000) ([Alexander Gololobov](https://github.com/davenger)).
* Aprimora o mascaramento de senhas na URL usada no mecanismo de tabela `URL()` e na função de tabela `url()`. [#95006](https://github.com/ClickHouse/ClickHouse/pull/95006) ([Vitaly Baranov](https://github.com/vitlibar)).
* A função `toStartOfInterval` agora funciona da mesma maneira que `toStartOfX`, em que `X` é `Day, Week, Month, Quarter, Year` quando `enable_extended_results_for_datetime_functions` está ativado. [#95011](https://github.com/ClickHouse/ClickHouse/pull/95011) ([Kirill Kopnev](https://github.com/Fgrtue)).
* Corrigidas comparações de strings constantes que não respeitavam as configurações `cast_string_to_date_time_mode`, `bool_true_representation`, `bool_false_representation` e `input_format_null_as_default`. Fecha [#91681](https://github.com/ClickHouse/ClickHouse/issues/91681). [#95040](https://github.com/ClickHouse/ClickHouse/pull/95040) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Corrige uma condição de corrida no cache do sistema de arquivos. [#95064](https://github.com/ClickHouse/ClickHouse/pull/95064) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige uma condição de corrida rara no leitor de Parquet. [#95068](https://github.com/ClickHouse/ClickHouse/pull/95068) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrige a falha na otimização top K quando `LIMIT` é zero. Fecha [#93893](https://github.com/ClickHouse/ClickHouse/issues/93893). [#95072](https://github.com/ClickHouse/ClickHouse/pull/95072) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* A conversão de DateTime/inteiros para Time64 extrai o componente de hora do dia com `toTime`, que não é monotônico. O template `ToDateTimeMonotonicity` afirmava incorretamente que essa conversão era monotônica, causando a exceção "Invalid binary search result in MergeTreeSetIndex" em builds de depuração. [#95125](https://github.com/ClickHouse/ClickHouse/pull/95125) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Recriou a lista de entradas do arquivo manifest apenas quando necessário (antes, isso era feito em cada iteração). [#95162](https://github.com/ClickHouse/ClickHouse/pull/95162) ([Daniil Ivanik](https://github.com/divanik)).

<div id="263-build-testing-packaging-improvement">
  #### melhoria em build, testes e empacotamento
</div>

* Adiciona um conjunto de ferramentas para profiling de alocações de memória no parser de ClickHouse SQL usando os recursos de heap profiling do jemalloc. [#94072](https://github.com/ClickHouse/ClickHouse/pull/94072) ([Ilya Yatsishin](https://github.com/qoega)).
* Adicionada uma ferramenta que simplifica a depuração de alocações de memória no parser. Ela usa a métrica `stats.allocated` do jemalloc antes e depois de fazer o parse da consulta para a representação AST, para mostrar o que foi alocado. Também oferece suporte ao modo de profiling de memória, que gera um dump do profile antes e depois para criar relatórios de onde as alocações ocorreram. [#93523](https://github.com/ClickHouse/ClickHouse/pull/93523) ([Ilya Yatsishin](https://github.com/qoega)).
* Remove inclusões transitivas de libc++. [#92523](https://github.com/ClickHouse/ClickHouse/pull/92523) ([Raúl Marín](https://github.com/Algunenano)).
* Torna paralelos alguns testes sequenciais: [https://github.com/ClickHouse/ClickHouse/pull/93030/changes#diff-c3a73510dae653c9bbfa24300b32f5d6ec663fd4e72cc4a3d5daa6e4342915df](https://github.com/ClickHouse/ClickHouse/pull/93030/changes#diff-c3a73510dae653c9bbfa24300b32f5d6ec663fd4e72cc4a3d5daa6e4342915df). [#93030](https://github.com/ClickHouse/ClickHouse/pull/93030) ([Nikita Fomichev](https://github.com/fm4v)).
* Limpa algumas flags de build. [#93679](https://github.com/ClickHouse/ClickHouse/pull/93679) ([Raúl Marín](https://github.com/Algunenano)).
* Atualiza o c-ares de v1.34.5 para v1.34.6. Isso corrige a `CVE-2025-62408` do c-ares, que não é relevante para o ClickHouse. [#94129](https://github.com/ClickHouse/ClickHouse/pull/94129) ([Govind R Nair](https://github.com/Revertionist)).
* Usa `curl` 8.18.0. [#94742](https://github.com/ClickHouse/ClickHouse/pull/94742) ([Konstantin Bogdanov](https://github.com/thevar1able)).
