> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# changelog da v26.4 do Cloud

> Changelog da v26.4

<div id="backward-incompatible-changes">
  ## Alterações incompatíveis com versões anteriores
</div>

<div id="query-and-syntax-changes">
  ### Mudanças em consultas e sintaxe
</div>

* O operador `IN` agora usa semântica de valores exatos para o tipo `Bool`: apenas `0` e `1` no conjunto correspondem a valores `Bool`. Antes, valores numéricos maiores que `255` no conjunto `IN` eram incorretamente convertidos para true, então `SELECT CAST(1, 'Bool') IN (256)` retornava `1`. Agora, retorna corretamente `0`. [#93115](https://github.com/ClickHouse/ClickHouse/pull/93115) ([Ashrith Bandla](https://github.com/ashrithb)).
* Corrigida a precedência do operador `NOT` para corresponder ao padrão SQL: `NOT` agora tem precedência menor que `IS NULL`, `BETWEEN`, `LIKE` e 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)).
* `SELECT` não é mais permitido como identificador sem aspas em um elemento da lista de expressões `WITH`. [#101059](https://github.com/ClickHouse/ClickHouse/pull/101059) ([Aruj Bansal](https://github.com/arujbansal)).
* O operador `IN` agora rejeita conversões com perda de `Decimal` dentro de tipos compostos (`Tuple`, `Array`, `Map`), tornando seu comportamento consistente com comparações escalares no nível superior. Antes, as verificações de precisão eram aplicadas apenas a valores escalares no 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`. Agora, ambos os casos retornam corretamente `0`. [#101812](https://github.com/ClickHouse/ClickHouse/pull/101812) ([Nihal Z. Miaji](https://github.com/nihalzp)).

<div id="data-type-changes">
  ### Alterações em tipos de dados
</div>

* As versões de serialização dos tipos de dados agora são propagadas para tipos de dados aninhados. Por exemplo, a versão de serialização `with_size_stream` de String 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 ou JSON. Isso é controlado pela configuração do MergeTree `propagate_types_serialization_versions_to_nested_types`, que agora vem habilitada por padrão. Após essa alteração, 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. As atualizações são seguras, mas as reversões para versões anteriores não. [#94859](https://github.com/ClickHouse/ClickHouse/pull/94859) ([Pavel Kruglov](https://github.com/Avogar)).
* Corrigida a ordem dos bytes da serialização binária de `QBit` para usar o formato little-endian. [#101378](https://github.com/ClickHouse/ClickHouse/pull/101378) ([Raufs Dunamalijevs](https://github.com/rienath)).

<div id="storage-and-index-changes">
  ### Alterações em armazenamento e índices
</div>

* Corrigidos os metadados das projeções normais para que projeções com chaves de ordenação de várias colunas sejam reconhecidas corretamente. [#91352](https://github.com/ClickHouse/ClickHouse/pull/91352) ([Amos Bird](https://github.com/amosbird)).
* Corrigidos os arquivos de skip index que não respeitavam a configuração `replace_long_file_name_to_hash`, o que causava erros de "Nome de arquivo muito longo" e falhas nas leituras de índice para índices com nomes longos. Os nomes de arquivo de skip index agora passam por 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 um rolling upgrade) 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)).

<div id="removed-features">
  ### Funcionalidades removidas
</div>

* Removido o tipo de `skip index` `hypothesis`. Era uma funcionalidade experimental pouco conhecida, com utilidade prática limitada. Criar tabelas com `INDEX ... TYPE hypothesis` agora gera 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)).

<div id="settings-and-configuration-changes">
  ### Alterações em Settings e na configuração
</div>

* O valor padrão de `mysql_datatypes_support_level` foi alterado 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, 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)).

<div id="insert-and-deduplication-changes">
  ### Alterações em inserção e desduplicação
</div>

* A inserção assíncrona agora vem ativado por padrão — o ClickHouse agrupa todas as inserções pequenas em lotes por padrão. Isso é controlado pela configuração `compatibility`: definir `compatibility` como uma versão inferior a 26.2 restaura o valor padrão anterior, `false`. As inserções assíncronas podem ser ativadas ou desativadas em vários níveis: nos perfis de usuário da config, na sessão, na consulta ou na tabela MergeTree. [#97590](https://github.com/ClickHouse/ClickHouse/pull/97590) ([Sema Checherinda](https://github.com/CheSema)).

<div id="system-table-changes">
  ### Alterações em tabelas de sistema
</div>

* A coluna `skip_indexes` em `system.query_log` foi revertida. [#101018](https://github.com/ClickHouse/ClickHouse/pull/101018) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="other-breaking-changes">
  ### Outras alterações incompatíveis
</div>

* `mergeTreeAnalyzeIndexes{,UUID}` agora aceita um array de nomes de partes em vez de uma regexp, já que expressões regulares são lentas (funcionalidade experimental). [#98474](https://github.com/ClickHouse/ClickHouse/pull/98474) ([Azat Khuzhin](https://github.com/azat)).
* A biblioteca H3 foi atualizada para a v4, o que melhora a precisão dos cálculos de comprimento, área e outras métricas. Esta alteração não é compatí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)).
* Foi alterada 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)).

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

<div id="functions">
  ### Funções
</div>

* Adicionada a função `naturalSortKey(s)` para chaves de ordenação natural. [#90322](https://github.com/ClickHouse/ClickHouse/pull/90322) ([Nazarii Piontko](https://github.com/nazarii-piontko)).
* Adicionada a função `arrayAutocorrelation(arr [, max_lag])`, que calcula a autocorrelação normalizada de um array numérico para cada defasagem. Suporta arrays dos tipos inteiro, Float e Decimal. [#94776](https://github.com/ClickHouse/ClickHouse/pull/94776) ([Wenyu Chen](https://github.com/wenyuchen96)).
* A função `has()` agora é compatível com o tipo JSON para verificar a existência de caminhos, de forma semelhante a `Map`. [#96927](https://github.com/ClickHouse/ClickHouse/pull/96927) ([DQ](https://github.com/il9ue)).
* Adicionada a table function `mergeTreeTextIndex(database, table, index)`, que lê dados diretamente de um índice de texto. Ela pode ser usada para introspecção ou para executar agregações sobre dados do índice de texto. [#97003](https://github.com/ClickHouse/ClickHouse/pull/97003) ([Anton Popov](https://github.com/CurtizJ)).
* Adicionada a função SQL `obfuscateQuery`. [#98305](https://github.com/ClickHouse/ClickHouse/pull/98305) ([Xuewei Wang](https://github.com/Sallery-X)).
* Adicionadas as funções `caseFoldUTF8` e `removeDiacriticsUTF8` para case folding de Unicode e remoção de marcas diacríticas. [#98973](https://github.com/ClickHouse/ClickHouse/pull/98973) ([George Larionov](https://github.com/george-larionov)).
* A função `printf` agora suporta format strings não constantes, permitindo um padrão de formato diferente por linha com base nos valores das colunas. [#98991](https://github.com/ClickHouse/ClickHouse/pull/98991) ([Yash](https://github.com/Onyx2406)).
* Adicionada a função `highlight()`, que envolve ocorrências de termos de busca em uma string de texto com tags HTML (por 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)).
* Adicionada a função de string `normalizeUTF8NFKCCasefold` para normalização Unicode NFKC\_Casefold, que combina a normalização NFKC com case folding. [#99276](https://github.com/ClickHouse/ClickHouse/pull/99276) ([George Larionov](https://github.com/george-larionov)).
* Adicionado o tokenizer `unicode_word` para full-text indexes e a função `tokens`. Ele divide o texto usando regras de fronteira de palavras do Unicode: palavras ASCII são formadas com caracteres conectores (underscore, dois-pontos, ponto, aspas simples), enquanto caracteres Unicode não ASCII se tornam tokens de um único caractere. As stop words configuráveis usam, por padrão, pontuação CJK comum. [#99357](https://github.com/ClickHouse/ClickHouse/pull/99357) ([Amos Bird](https://github.com/amosbird)).
* Adicionada a função `arrayTranspose`, que recebe um array bidimensional (matriz) e o transpõe. [#101214](https://github.com/ClickHouse/ClickHouse/pull/101214) ([Vitaly Baranov](https://github.com/vitlibar)).
* Adicionada a função `hasPhrase` (alias `matchPhrase`) para busca por frase (sequências contínuas de tokens). A busca é por brute-force e ainda não é compatível com o índice de texto. [#101997](https://github.com/ClickHouse/ClickHouse/pull/101997) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Adicionado `dotProduct` como função de distância compatível para índices de similaridade vetorial. A direção de ordenação agora é validada para todas as funções de distância para evitar resultados silenciosamente incorretos. [#102254](https://github.com/ClickHouse/ClickHouse/pull/102254) ([Renzo](https://github.com/RenzoMXD)).
* A função `stem` agora pode aplicar stemming a todas as palavras/tokens em colunas `String`, `FixedString`, `Array([Fixed]String)`, `Nullable`, `LowCardinality` e `Const`. [#99137](https://github.com/ClickHouse/ClickHouse/pull/99137) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* A função `stem` deixou de ser experimental (antes, era necessário habilitar `allow_experimental_nlp_functions`). [#102399](https://github.com/ClickHouse/ClickHouse/pull/102399) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* Adicionada a função `JSONAllValues`, que retorna todos os valores de uma coluna `JSON` como `Array(String)`, com os valores serializados em representação textual e ordenados pelos nomes de seus caminhos. Também foi 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)).
* Adicionadas unidades compatíveis com PostgreSQL ao operador `EXTRACT`: `EPOCH`, `DOW`, `DOY`, `ISODOW`, `ISOYEAR`, `WEEK`, `CENTURY`, `DECADE` e `MILLENNIUM`. Também foi corrigido `EXTRACT(WEEK FROM date)`, que antes gerava um erro. [#100274](https://github.com/ClickHouse/ClickHouse/pull/100274) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado suporte à função `toDaysInMonth()` por meio de açúcar sintático no parser para a sintaxe da função `OVERLAY` padrão SQL. A função `overlay` já existe; isso adiciona 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)).
* Valores `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`. [#102421](https://github.com/ClickHouse/ClickHouse/pull/102421) ([Nihal Z. Miaji](https://github.com/nihalzp)).

<div id="sql-and-query-features">
  ### Recursos de SQL e de consultas
</div>

* Quando um parâmetro tem o tipo `Nullable` e não é especificado, agora presume-se que seu valor seja `NULL`. [#93869](https://github.com/ClickHouse/ClickHouse/pull/93869) ([Vikash Kumar](https://github.com/vikashkumar2020)).
* O ClickHouse agora pode 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)).
* Adicionado suporte a CTEs materializadas, que avaliam CTEs apenas uma vez durante a execução da consulta e armazenam seus resultados em tabelas temporárias. [#94849](https://github.com/ClickHouse/ClickHouse/pull/94849) ([Dmitry Novik](https://github.com/novikd)).
* Certas funções agora podem ser usadas sem parênteses em SQL. [#95949](https://github.com/ClickHouse/ClickHouse/pull/95949) ([Aly Kafoury](https://github.com/AlyHKafoury)).
* Adicionada a sintaxe combinada de subcoluna `json.@path` para o tipo `JSON`. Ela retorna o valor literal como `Dynamic` se o caminho apontar para um escalar, o subobjeto como `Dynamic` se o caminho apontar para um objeto aninhado, ou `NULL` se o caminho não existir. [#98788](https://github.com/ClickHouse/ClickHouse/pull/98788) ([Pavel Kruglov](https://github.com/Avogar)).
* Adicionada a palavra-chave `SOME` para expressões de subconsulta. Ela se comporta de forma idêntica a `ANY`. [#99842](https://github.com/ClickHouse/ClickHouse/pull/99842) ([Artem Kytkin](https://github.com/Vinceent)).
* Adicionado suporte a `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 à 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)).
* Adicionado suporte a literais compostos de intervalos no padrão SQL com qualificadores de intervalo `TO`, por exemplo `INTERVAL '1:30' HOUR TO MINUTE`, decompostos internamente em somas de intervalos. [#100453](https://github.com/ClickHouse/ClickHouse/pull/100453) ([Desel72](https://github.com/Desel72)).
* Adicionado o comando `SYSTEM FLUSH OBJECT STORAGE QUEUE db.table PATH 'x'` para os modos ordered e unordered. [#100709](https://github.com/ClickHouse/ClickHouse/pull/100709) ([Bharat Nallan](https://github.com/bharatnc)).

<div id="table-engines-and-storage">
  ### Motores de tabela e armazenamento
</div>

* Adicionado suporte à leitura incremental para o motor de tabela `Paimon`, com rastreamento do progresso de snapshots baseado em Keeper, incluindo leituras direcionadas de delta de snapshot via `paimon_target_snapshot_id`. [#93655](https://github.com/ClickHouse/ClickHouse/pull/93655) ([XiaoBinMu](https://github.com/Binnn-MX)).
* Adicionado suporte a auxiliary ZooKeeper em `DatabaseReplicated`. [#95590](https://github.com/ClickHouse/ClickHouse/pull/95590) ([RinChanNOW](https://github.com/RinChanNOWWW)).
* Adicionado suporte para ler tipos de timestamp em nanossegundos do Iceberg v3 (`timestamp_ns` e `timestamptz_ns`), mapeados para `DateTime64(9)` e `DateTime64(9, 'UTC')`. Isso permite que o ClickHouse leia dados Iceberg com esses tipos no schema; isso não constitui suporte completo ao Iceberg v3 nem gravação em Iceberg v3 com esses tipos. [#97132](https://github.com/ClickHouse/ClickHouse/pull/97132) ([Dmitry Kovalev](https://github.com/dk-github)).
* Adicionado `ALTER TABLE ... EXECUTE expire_snapshots('<timestamp>')` para tabelas Iceberg. [#97904](https://github.com/ClickHouse/ClickHouse/pull/97904) ([murphy-4o](https://github.com/murphy-4o)).
* Adicionado um novo cache SLRU para metadados do Parquet para melhorar o desempenho de leitura, eliminando a necessidade de baixar novamente arquivos apenas para ler os metadados. [#98140](https://github.com/ClickHouse/ClickHouse/pull/98140) ([Grant Holly](https://github.com/grantholly-clickhouse)).
* Adicionado 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 o salto de grânulos com base no conjunto de JSON paths presentes em cada grânulo. [#98886](https://github.com/ClickHouse/ClickHouse/pull/98886) ([Pavel Kruglov](https://github.com/Avogar)).
* Adicionado o índice de projeção `commit_order`, que reorganiza os dados na ordem de inserção. [#99004](https://github.com/ClickHouse/ClickHouse/pull/99004) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Adicionada serialização em buckets para colunas `Map` no MergeTree (`map_serialization_version = 'with_buckets'`). As chaves são divididas em buckets baseados em hash, de modo que a leitura de uma única chave (`m['key']`) leia apenas um bucket em vez da coluna inteira, proporcionando um ganho de desempenho de 2 a 49 vezes em lookup de chave única, dependendo do tamanho do map. O número de buckets e a estratégia de distribuição em buckets 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`. A configuração `map_serialization_version_for_zero_level_parts` mantém a serialização básica para inserts, a fim de evitar sobrecarga de gravação, enquanto as partes mescladas usam buckets. Há suporte a skip indexes em `mapKeys`/`mapValues` com serialização em buckets, e `optimize_functions_to_subcolumns` reescreve `m['key']` para uma leitura de subcoluna por chave quando buckets estão disponíveis. [#99200](https://github.com/ClickHouse/ClickHouse/pull/99200) ([Pavel Kruglov](https://github.com/Avogar)).

<div id="insert-and-deduplication">
  ### Inserção e desduplicação
</div>

* Implementado um novo comportamento de `max_insert_block_size_rows`, `max_insert_block_size_bytes`, `min_insert_block_size_rows` e `min_insert_block_size_bytes` no processo de combinação de blocos, controlado pela configuração de compatibilidade `use_strict_insert_block_limits`. [#94207](https://github.com/ClickHouse/ClickHouse/pull/94207) ([Kirill Kopnev](https://github.com/Fgrtue)).

<div id="settings-and-configuration">
  ### Configurações e definições
</div>

* Adicionada a configuração do MergeTree `table_readonly` 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)).
* Adicionada a configuração `use_partition_pruning` (alias `use_partition_key`). Defina-a como `false` para desativar a poda de partições com base na chave de partição. [#97888](https://github.com/ClickHouse/ClickHouse/pull/97888) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Cada entrada `type=http` em `<protocols>` agora pode especificar uma chave `<handlers>` personalizada apontando para uma seção de configuração `<http_handlers_*>` separada, permitindo regras de roteamento HTTP diferentes para cada porta. [#98414](https://github.com/ClickHouse/ClickHouse/pull/98414) ([Amos Bird](https://github.com/amosbird)).
* Adicionadas duas configurações do MergeTree — `replicated_fetches_min_part_level` e `replicated_fetches_min_part_level_timeout_seconds` — que permitem que réplicas evitem buscar partes recém-inseridas (ainda não mescladas) de outras réplicas, reduzindo a sobrecarga de replicação durante ingestão intensa. [#98625](https://github.com/ClickHouse/ClickHouse/pull/98625) ([tanner-bruce](https://github.com/tanner-bruce)).
* Adicionada a configuração de servidor `restore_access_entities_with_current_grants`. Quando habilitada, usuários/funções restaurados 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 configurações `max_skip_unavailable_shards_num` e `max_skip_unavailable_shards_ratio` para limitar quantos shards podem ser ignorados silenciosamente quando `skip_unavailable_shards` está habilitada. Se o número ou a proporção de shards indisponíveis exceder o limite configurado, uma exceção será lançada em vez de retornar silenciosamente resultados incompletos. [#99369](https://github.com/ClickHouse/ClickHouse/pull/99369) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Implementadas quotas por hash de consulta normalizada para proteger serviços públicos do ClickHouse contra abuso. `NORMALIZED_QUERY_HASH` é compatível como um tipo de quota key — um bucket de quota separado para cada consulta normalizada única, de modo que `CREATE QUOTA q KEYED BY normalized_query_hash` rastreia cada consulta distinta de forma independente. `QUERIES_PER_NORMALIZED_HASH` é compatível como um tipo de recurso de quota — limitando o número máximo de execuções de qualquer consulta normalizada dentro de um intervalo, de modo que `MAX queries_per_normalized_hash = 100` impede que qualquer 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)).
* A configuração do MergeTree `auto_statistics_types` agora usa `minmax, uniq` por padrão, de modo que estatísticas minmax e uniq são criadas automaticamente para todas as colunas adequadas em novas tabelas. `materialize_statistics_on_insert` agora usa `false` por padrão, de modo que as estatísticas são geradas durante as mesclagens em vez de no momento da inserção, reduzindo a sobrecarga das inserções. Defina `materialize_statistics_on_insert = 1` para restaurar o comportamento antigo. [#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ão materializada, reduzindo dados ausentes causados por atraso de replicação entre réplicas. [#101591](https://github.com/ClickHouse/ClickHouse/pull/101591) ([Seva Potapov](https://github.com/seva-potapov)).

<div id="authentication">
  ### Autenticação
</div>

* Adicionada a opção de configuração LDAP por servidor `<follow_referrals>` (padrão `false`) para controlar se o cliente LDAP segue redirecionamentos. Desabilitar o seguimento de redirecionamentos evita timeouts e travamentos ao pesquisar a partir de uma base DN da raiz do domínio do Active Directory, além de gerar menos ruído nos logs. [#96765](https://github.com/ClickHouse/ClickHouse/pull/96765) ([paf91](https://github.com/paf91)).

<div id="system-tables">
  ### Tabelas de sistema
</div>

* Foi adicionada a `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 solicitações do Keeper). A coluna `value` de `system.histogram_metrics` agora é `Float64`, para maior flexibilidade e compatibilidade com o modelo de dados do Prometheus. [#103046](https://github.com/ClickHouse/ClickHouse/pull/103046) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).

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

* Adicionado 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)).
* Adicionadas lazy type hints experimentais para colunas JSON. Quando habilitado por `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 apenas de metadados, sem reescrever dados históricos. As type hints são aplicadas no momento da consulta para partes antigas e materializadas durante INSERTs e mesclagens em segundo plano. [#97412](https://github.com/ClickHouse/ClickHouse/pull/97412) ([tanner-bruce](https://github.com/tanner-bruce)).
* Adicionado suporte a dialetos SQL externos usando a biblioteca `polyglot`. [#99496](https://github.com/ClickHouse/ClickHouse/pull/99496) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionada a configuração `query_plan_optimize_join_order_randomize`, que randomiza as estatísticas usadas para reordenar joins, útil para testes. [#100643](https://github.com/ClickHouse/ClickHouse/pull/100643) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Adicionado suporte a funções 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)).
* Adicionadas as 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)).
* Adicionado suporte a lagos de dados no Azure com Delta Kernel. [#102202](https://github.com/ClickHouse/ClickHouse/pull/102202) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).

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

<div id="join-performance">
  ### Desempenho de JOIN
</div>

* Pequenas melhorias em `HashJoin` e `ConcurrentHashJoin`. [#96663](https://github.com/ClickHouse/ClickHouse/pull/96663) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Adicionado suporte para trocar os lados das 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)).
* Reduzida a contenção de cache nas junções `RIGHT` e `FULL` ao verificar se `JoinUsedFlags` está definido antes de gravar. [#99274](https://github.com/ClickHouse/ClickHouse/pull/99274) ([Hechem Selmi](https://github.com/m-selmi)).
* Aceleradas as junções hash 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)).

<div id="query-optimization">
  ### Otimização de consultas
</div>

* Otimizado o skipping de grânulos para `pointInPolygon` em polígonos grandes e corrigido o problema em que a análise de índice de `pointInPolygon` lançava erro durante o pruning da chave primária. [#91633](https://github.com/ClickHouse/ClickHouse/pull/91633) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* `optimize_read_in_order` agora é respeitado na leitura de projeções. [#95885](https://github.com/ClickHouse/ClickHouse/pull/95885) ([Andrey Zvonov](https://github.com/zvonand)).
* A leitura do dicionário do text index foi levemente otimizada, melhorando o desempenho geral da análise do text index. [#97519](https://github.com/ClickHouse/ClickHouse/pull/97519) ([Anton Popov](https://github.com/CurtizJ)).
* Melhorado o desempenho da análise do text index para queries 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 desabilitada incorretamente nesses casos. [#98096](https://github.com/ClickHouse/ClickHouse/pull/98096) ([Anton Popov](https://github.com/CurtizJ)).
* Melhorado o desempenho de queries 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 antes resultava na ausência de pruning de grânulos. [#98410](https://github.com/ClickHouse/ClickHouse/pull/98410) ([Amos Bird](https://github.com/amosbird)).
* A configuração `optimize_syntax_fuse_functions` agora está habilitada por padrão. [#98424](https://github.com/ClickHouse/ClickHouse/pull/98424) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* O partition pruning agora é permitido quando o predicado contém qualquer operador de comparação (`=`, `<`, `>`, `!=`) e a chave de partição está envolvida em uma cadeia determinística de funções (por exemplo, com `PARTITION BY x`, predicados como `cityHash64(x) % 5 > 2`, `toYYYYMM(x) < 2026`, `toYYYYMM(x) = 2026` ou `toYYYYMM(x) != 2026` agora usarão a chave de partição para pruning). [#98432](https://github.com/ClickHouse/ClickHouse/pull/98432) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* A otimização read-in-order e o pruning da chave primária agora são permitidos 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 read-in-order para `ORDER BY x::Nullable(UInt64)` e o pruning da chave primária para predicados como `WHERE x::Nullable(UInt64) > 500000`. [#98482](https://github.com/ClickHouse/ClickHouse/pull/98482) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* O pruning de índice e o pushdown de filtro agora são permitidos quando uma coluna inteira é comparada com um literal float; por exemplo, predicados como `WHERE x < 10.5` agora podem usar a chave primária para pruning, e filtros como `prime < 1e9` ou `number < 1e5` agora são aplicados por pushdown às table functions `primes()` e `numbers()`, em vez de causar execução ilimitada. [#98516](https://github.com/ClickHouse/ClickHouse/pull/98516) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Queries que filtram colunas de chave primária do MergeTree com alternâncias regex sobre strings literais, como `^(abc-1|abc-2)`, agora podem usar o pruning da chave primária quando as alternativas compartilham um prefixo em comum. [#98988](https://github.com/ClickHouse/ClickHouse/pull/98988) ([Yash](https://github.com/Onyx2406)).
* Otimizados `INTERSECT ALL` e `EXCEPT ALL`. [#99097](https://github.com/ClickHouse/ClickHouse/pull/99097) ([Raufs Dunamalijevs](https://github.com/rienath)).
* Adicionado suporte à otimização `read_in_order_use_virtual_row` para leituras em ordem reversa. [#99198](https://github.com/ClickHouse/ClickHouse/pull/99198) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Consultas descontínuas mais rápidas para colunas `LowCardinality` com um único dicionário. [#99285](https://github.com/ClickHouse/ClickHouse/pull/99285) ([Ivan Babrou](https://github.com/bobrik)).
* Corrigida a escalabilidade negativa de consultas curtas com agregação em máquinas com muitos núcleos. Quando uma consulta lê poucas marcas, o pipeline não é mais expandido para `max_threads` após a agregação, evitando a sobrecarga de streams quase vazios. [#99493](https://github.com/ClickHouse/ClickHouse/pull/99493) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Melhorado o desempenho de consultas com réplicas paralelas por meio da seleção correta do tamanho da tarefa de leitura. [#99801](https://github.com/ClickHouse/ClickHouse/pull/99801) ([Nikita Taranov](https://github.com/nickitat)).
* Removidos elementos redundantes no final de `ORDER BY` quando todas as chaves de `GROUP BY` já estão cobertas pelo prefixo de `ORDER BY`. [#100157](https://github.com/ClickHouse/ClickHouse/pull/100157) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Consultas otimizadas ao levar a cláusula `LIMIT` para dentro de `UNION ALL`. [#100364](https://github.com/ClickHouse/ClickHouse/pull/100364) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Adicionado suporte à compilação JIT para comparações de colunas `String` e `FixedString` em `ORDER BY`, melhorando em 6–17% o desempenho da ordenação na fase de merge para chaves de ordenação com muitas strings. [#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 do MergeTree, permitindo que o merge repriorize fontes no meio do stream para partes cujos dados são totalmente filtrados por `WHERE`/`PREWHERE`/`JOIN`. [#100603](https://github.com/ClickHouse/ClickHouse/pull/100603) ([Vladimir Cherkasov](https://github.com/vdimir)).
* Melhor paralelização de consultas com views simples (sobre uma tabela MergeTree subjacente) executadas com réplicas paralelas. [#100815](https://github.com/ClickHouse/ClickHouse/pull/100815) ([Igor Nikonov](https://github.com/devcrafter)).
* Adicionado suporte a réplicas paralelas sobre views simples (incluindo views `UNION ALL` elegíveis sobre tabelas `MergeTree`) quando `parallel_replicas_allow_view_over_mergetree=1`. Isso paraleliza 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)).
* Otimizada a leitura na ordem da chave primária para `full_sorting_merge` quando há filtros com `IN` no plano da consulta. [#101261](https://github.com/ClickHouse/ClickHouse/pull/101261) ([Nikita Taranov](https://github.com/nickitat)).
* Melhorado o desempenho de `INSERT VALUES` para colunas `Map`, `Array` e `Tuple` quando os valores são passados como strings com escape (por exemplo, `'{\'key\':1}'`), evitando fallback desnecessário para o parser de expressões SQL. [#102119](https://github.com/ClickHouse/ClickHouse/pull/102119) ([Joanna Hulboj](https://github.com/jh0x)).

<div id="function-and-aggregation-performance">
  ### Desempenho de funções e agregação
</div>

* Melhorado o desempenho da função `levenshteinDistance`. [#94543](https://github.com/ClickHouse/ClickHouse/pull/94543) ([Joanna Hulboj](https://github.com/jh0x)).
* Otimizadas 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)).
* Melhorado o desempenho de consultas `LIKE`. [#98149](https://github.com/ClickHouse/ClickHouse/pull/98149) ([Elmi Ahmadov](https://github.com/ahmadov)).
* Otimizada a função de agregação `avgWeighted` com o uso de acumuladores locais em vez de store-forwarding por linha via 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)).
* Aceleradas as funções `var*Stable` e `stddev*Stable` para colunas `Float64` com a desvirtualização do loop interno. Isso permite otimizações do compilador (FMA/registers) 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)).
* Passa a usar a codificação base58 otimizada do Firedancer para entradas de 32/64 bytes (automaticamente em `base58Encode`) e permite usar a decodificação base58 otimizada se o resultado decodificado tiver 32/64 bytes (explicitamente com `base58Decode('...', 32)`). [#99461](https://github.com/ClickHouse/ClickHouse/pull/99461) ([Joanna Hulboj](https://github.com/jh0x)).
* Otimizada a função `cutURLParameter` com a eliminação de deslocamentos de memória desnecessários. [#100218](https://github.com/ClickHouse/ClickHouse/pull/100218) ([Nikita Semenov](https://github.com/leftmain)).
* Conversão mais rápida de float para string para valores inteiros grandes, estendendo o 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)).
* Substituído dragonbox por zmij para uma conversão de float para string de 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 desenrolar o loop de conversão. [#100671](https://github.com/ClickHouse/ClickHouse/pull/100671) ([Raúl Marín](https://github.com/Algunenano)).
* Evitada a criação de threads redundantes na mesclagem paralela de `UniqExactSet`. [#100686](https://github.com/ClickHouse/ClickHouse/pull/100686) ([Jiebin Sun](https://github.com/jiebinn)).
* Adicionada mesclagem paralela em lote para `UniqExactSet`. [#100687](https://github.com/ClickHouse/ClickHouse/pull/100687) ([Jiebin Sun](https://github.com/jiebinn)).

<div id="storage-and-io-performance">
  ### Desempenho de armazenamento e E/S
</div>

* Redução da contenção de bloqueios durante operações somente leitura em tabelas ReplicatedMergeTree com mutações concluídas. [#95771](https://github.com/ClickHouse/ClickHouse/pull/95771) ([Eduard Karacharov](https://github.com/korowa)).
* O Iceberg agora pode pré-carregar metadados no cache de forma assíncrona, ao definir `iceberg_metadata_async_prefetch_period_ms` na criação da tabela. Consultas `SELECT` em tabelas Iceberg agora podem especificar o parâmetro `iceberg_metadata_staleness_ms`, o que permite ao ClickHouse usar a versão em cache dos metadados se ela estiver mais atual do que o limite de desatualização especificado; caso contrário, o catálogo Iceberg remoto será consultado para obter os metadados mais recentes. Isso pode eliminar chamadas ao catálogo Iceberg durante o processamento das solicitações, trazendo um ganho de desempenho perceptível. [#96191](https://github.com/ClickHouse/ClickHouse/pull/96191) ([Arsen Muk](https://github.com/arsenmuk)).
* O modo ordered do S3Queue agora usa S3 `ListObjectsV2` `StartAfter` para evitar listar novamente todo o histórico do prefixo, reduzindo as chamadas `ListObjects`. [#96370](https://github.com/ClickHouse/ClickHouse/pull/96370) ([Venkata Vineel](https://github.com/vyalamar)).
* Habilitadas leituras paralelas no YTsaurus table engine. [#97343](https://github.com/ClickHouse/ClickHouse/pull/97343) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* Melhorado o desempenho de lagos de dados. Em versões anteriores, a leitura a partir do armazenamento de objetos não redimensionava a pipeline de acordo com o número de threads de processamento. [#99548](https://github.com/ClickHouse/ClickHouse/pull/99548) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Permitido o prefetch ao ler um arquivo remoto por meio do userspace page cache. [#99919](https://github.com/ClickHouse/ClickHouse/pull/99919) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Corrigida uma regressão significativa no desempenho de INSERT quando `deduplicate_insert=enable` (padrão desde 26.2), adiando o cálculo do hash dos dados da etapa de squashing para o sink e usando hash em lote de colunas via `updateHashWithValueRange`, reduzindo a sobrecarga de \~2.5s para \~0.5s em 5M de linhas com 22 colunas. [#101494](https://github.com/ClickHouse/ClickHouse/pull/101494) ([Sema Checherinda](https://github.com/CheSema)).

<div id="memory-optimization">
  ### Otimização de memória
</div>

* Para inserções síncronas, o bloco original (necessário para desduplicação) agora pode ser omitido para economizar memória. [#96661](https://github.com/ClickHouse/ClickHouse/pull/96661) ([Sema Checherinda](https://github.com/CheSema)).
* Melhor desempenho e menor uso de memória para funções de janela paralelas em determinados cenários e para cargas de trabalho de `arrayFold` com arrays grandes. Isso também pode reduzir a pressão causada por falhas de página e melhorar a estabilidade das consultas afetadas sob limites de memória mais restritos. [#98892](https://github.com/ClickHouse/ClickHouse/pull/98892) ([filimonov](https://github.com/filimonov)).

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

<div id="query-and-sql-improvements">
  ### Consultas e SQL
</div>

* Projeções agregadas agora têm suporte correto em views. [#88798](https://github.com/ClickHouse/ClickHouse/pull/88798) ([Amos Bird](https://github.com/amosbird)).
* `optimize_aggregators_of_group_by_keys` agora otimiza corretamente aggregate functions em consultas `GROUPING SETS`. [#93935](https://github.com/ClickHouse/ClickHouse/pull/93935) ([Xiaozhe Yu](https://github.com/wudidapaopao)).
* Adicionado suporte à otimização que converte join `OUTER` em `INNER` com `join_use_nulls`. [#95968](https://github.com/ClickHouse/ClickHouse/pull/95968) ([Vladimir Cherkasov](https://github.com/vdimir)).
* `cast_keep_nullable` foi estendido para funcionar com os tipos `Dynamic`/`JSON`. Quando definido, o CAST de `NULL` a partir de tipos que podem ser `Nullable` retorna `NULL`; caso contrário, `NULL` lança o erro `CANNOT_INSERT_NULL_IN_ORDINARY_COLUMN`. [#96504](https://github.com/ClickHouse/ClickHouse/pull/96504) ([Seva Potapov](https://github.com/seva-potapov)).
* Adicionada a cláusula `ROLE` a `CREATE USER`. [#97074](https://github.com/ClickHouse/ClickHouse/pull/97074) ([Vitaly Baranov](https://github.com/vitlibar)).
* Adicionadas informações sobre filtros adiados como item separado na saída da consulta `EXPLAIN` (ao usar row policies/PREWHERE com FINAL). [#97374](https://github.com/ClickHouse/ClickHouse/pull/97374) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Adicionado suporte a expressões de join de 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)).
* Aplicação de data skipping indexes durante a análise de índice distribuída. [#97767](https://github.com/ClickHouse/ClickHouse/pull/97767) ([Azat Khuzhin](https://github.com/azat)).
* A chave de ordenação de uma tabela agora pode ser uma expressão como `toDate(time)`, e a decisão de não adiar essas expressões é tomada quando elas fazem parte de filtros. [#98237](https://github.com/ClickHouse/ClickHouse/pull/98237) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* O otimizador de ordem de join agora infere predicados transitivos de equi-join 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 direct joins entre tabelas conectadas transitivamente. Isso pode melhorar a qualidade do plano para schemas estrela e floco de neve. 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)).
* Quando `apply_row_policy_after_final` ou `apply_prewhere_after_final` está habilitado, as condições compostas com `AND` em row policies e `PREWHERE` agora são decompostas para extrair átomos da chave de ordenação para a análise de índice da chave primária. Antes, se um filtro adiado contivesse uma mistura de predicados da chave de ordenação e predicados fora dela (por exemplo, `x > 1 AND y != 'foo'`), a expressão inteira era excluída da análise de índice. [#98513](https://github.com/ClickHouse/ClickHouse/pull/98513) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Apenas réplicas "ativas" (conectáveis) agora participam da análise de índice distribuída. [#98521](https://github.com/ClickHouse/ClickHouse/pull/98521) ([Azat Khuzhin](https://github.com/azat)).
* O número de nós usados na heurística automática de parallel replicas foi limitado ao número real de nós no cluster (em vez de apenas à configuração `max_parallel_replicas`). [#98668](https://github.com/ClickHouse/ClickHouse/pull/98668) ([Nikita Taranov](https://github.com/nickitat)).
* Implementadas hedged requests e leitura assíncrona para análise de índice distribuída. [#98724](https://github.com/ClickHouse/ClickHouse/pull/98724) ([Azat Khuzhin](https://github.com/azat)).
* Adicionado 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)).
* Adicionado suporte à monotonicidade para multiplicação, permitindo o pruning da chave primária em expressões `key * constant`. [#98983](https://github.com/ClickHouse/ClickHouse/pull/98983) ([Amos Bird](https://github.com/amosbird)).
* As mensagens de erro do analisador não listam mais todas as colunas de uma tabela (o que poderia gerar exceções de mais de 150 KB). As listas de colunas agora são limitadas a 10 entradas. [#99002](https://github.com/ClickHouse/ClickHouse/pull/99002) ([Yash](https://github.com/Onyx2406)).
* Estatísticas de colunas de subconsultas com junções agora são retornadas corretamente 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)).
* `ALTER TABLE MODIFY COLUMN x TTL ...` agora é permitido sem especificar o tipo da coluna. [#99208](https://github.com/ClickHouse/ClickHouse/pull/99208) ([Nikolay Degterinsky](https://github.com/evillique)).
* Melhorada a saída de `EXPLAIN PLAN pretty=1`: agora imprime as colunas de saída da consulta de nível superior, mostra rótulos/símbolos de relações de join com estimativa de linhas no resultado e localidade, e inclui colunas de saída por etapa para etapas de join/source. [#99462](https://github.com/ClickHouse/ClickHouse/pull/99462) ([Kirill Kopnev](https://github.com/Fgrtue)).
* Corrigida a falha da função de tabela `merge()`, que gerava um erro `UNKNOWN_IDENTIFIER` ao consultar colunas não presentes em todas as tabelas distributed/remotas subjacentes. [#99833](https://github.com/ClickHouse/ClickHouse/pull/99833) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* `ConditionSelectivityEstimator` não é mais usado no otimizador quando a condição não está em CNF (por exemplo, `where a = 0`, que é uma condição única na qual as estatísticas não ajudam). [#100110](https://github.com/ClickHouse/ClickHouse/pull/100110) ([Han Fei](https://github.com/hanfei1991)).
* `distributed_index_analysis_min_indexes_bytes_to_activate` agora é aplicado após o pruning de partições. [#100477](https://github.com/ClickHouse/ClickHouse/pull/100477) ([Azat Khuzhin](https://github.com/azat)).
* `EXPLAIN PIPELINE` agora oferece suporte à configuração `distributed=1` para incluir fragmentos remotos do pipeline. [#100513](https://github.com/ClickHouse/ClickHouse/pull/100513) ([Nikita Taranov](https://github.com/nickitat)).
* `use_partition_pruning = 0` agora também desabilita o pruning do índice `MinMax` e a otimização de contagem em colunas da chave de partição, além de desabilitar o pruning com base em chaves de partição. [#100904](https://github.com/ClickHouse/ClickHouse/pull/100904) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* `EXPLAIN [PLAN] pretty=1` agora imprime expressões em um formato legível. [#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`. Antes, essas funções rejeitavam destinos `Tuple` porque `Tuple` não podia estar dentro de `Nullable`. [#100942](https://github.com/ClickHouse/ClickHouse/pull/100942) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* Agora você pode usar 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)).
* Implementada a materialização preguiçosa de colunas para ReplacingMergeTree com FINAL quando o predicado é seletivo o suficiente. [#101647](https://github.com/ClickHouse/ClickHouse/pull/101647) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Aprimoradas as estimativas padrão de seletividade para condições sem estatísticas, para alinhá-las às heurísticas padrão do setor: 0.1 para a seletividade da condição `LIKE` e 0.33 para a seletividade de condição desconhecida. [#101653](https://github.com/ClickHouse/ClickHouse/pull/101653) ([Alexander Gololobov](https://github.com/davenger)).
* Subconsulta VIEW incorporada diretamente à árvore de consulta para permitir a aplicação de mais otimizações à VIEW. [#100830](https://github.com/ClickHouse/ClickHouse/pull/100830) ([Dmitry Novik](https://github.com/novikd)).

<div id="functions">
  ### Funções
</div>

* Agora você pode usar entrada nativa em JSON/Object nas funções `JSONExtract`. [#96711](https://github.com/ClickHouse/ClickHouse/pull/96711) ([Fisnik Kastrati](https://github.com/fkastrati)).
* Foi introduzida a função SQL `tokensForLikePattern`, que tokeniza padrões `LIKE` respeitando a semântica dos curingas: `%` e `_` são tratados como curingas, curingas escapados (`\%`, `\_`) são tratados como literais, e tokens adjacentes a curingas não escapados são descartados. [#97872](https://github.com/ClickHouse/ClickHouse/pull/97872) ([Amos Bird](https://github.com/amosbird)).
* Foi implementada a função `toDaysInMonth()`, que retorna o número de dias no mês da data especificada. [#99227](https://github.com/ClickHouse/ClickHouse/pull/99227) ([Vitaly Baranov](https://github.com/vitlibar)).
* O tokenizador `unicodeWord` foi renomeado para `asciiCJK`. [#100956](https://github.com/ClickHouse/ClickHouse/pull/100956) ([George Larionov](https://github.com/george-larionov)).
* Foi adicionado açúcar sintático no nível do parser para a sintaxe da função `OVERLAY` no padrão SQL. A função `overlay` já existe; isso adiciona 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)).
* A função `ngrams` agora rejeita tamanhos de ngram inválidos. Por exemplo, `SELECT ngrams('abc', 0)` agora gera um erro. [#101922](https://github.com/ClickHouse/ClickHouse/pull/101922) ([Robert Schulze](https://github.com/rschu1ze)).
* Foi adicionado suporte ao tokenizador `array` na otimização de `LIKE`. [#102880](https://github.com/ClickHouse/ClickHouse/pull/102880) ([Elmi Ahmadov](https://github.com/ahmadov)).

<div id="table-engines-and-storage">
  ### Motores de tabela e armazenamento
</div>

* Adicionada uma thread dedicada para limpeza no MergeTree, para evitar atrasos na limpeza sob alta carga de mesclagem. [#91574](https://github.com/ClickHouse/ClickHouse/pull/91574) ([Amos Bird](https://github.com/amosbird)).
* 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)).
* As marks de índices secundários agora são pré-aquecidas quando a configuração `prewarm_mark_cache` está habilitada (carregadas no cache de index mark durante fetches de partes de dados e na inicialização da tabela). [#97772](https://github.com/ClickHouse/ClickHouse/pull/97772) ([Anton Popov](https://github.com/CurtizJ)).
* Índices de texto agora podem ser criados 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)).
* Cancela mesclagens em segundo plano antecipadamente em `DROP DATABASE` para ordinary shared merge tree. [#98161](https://github.com/ClickHouse/ClickHouse/pull/98161) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Adicionada a configuração `finalize_projection_parts_synchronously` para permitir a finalização síncrona de partes de projeção durante INSERT, reduzindo o pico de uso de memória em tabelas com muitas projeções, enquanto preserva, por padrão, o comportamento assíncrono existente. [#98228](https://github.com/ClickHouse/ClickHouse/pull/98228) ([Amos Bird](https://github.com/amosbird)).
* Adicionada a configuração de MergeTree `share_nested_offsets` (padrão `true`). Quando definida como `false`, colunas Array com nomes pontilhados (por exemplo, `n.a`, `n.b`) são tratadas como colunas independentes, em vez de compartilharem arquivos de offsets 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)).
* Otimizado `TRUNCATE DATABASE TABLES LIKE` com o pré-cancelamento de mesclagens em paralelo. [#98597](https://github.com/ClickHouse/ClickHouse/pull/98597) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Reduzida a contenção de bloqueio em `MergeTreeBackgroundExecutor` ao liberar recursos de tarefas sem adquirir o bloqueio. [#98604](https://github.com/ClickHouse/ClickHouse/pull/98604) ([Dmitry Novik](https://github.com/novikd)).
* `TRUNCATE DATABASE` agora responde ao cancelamento de consulta. [#98828](https://github.com/ClickHouse/ClickHouse/pull/98828) ([Shaohua Wang](https://github.com/tiandiwonder)).
* Reinicia o cache de estatísticas após alterar uma configuração de MergeTree. [#98520](https://github.com/ClickHouse/ClickHouse/pull/98520) ([Han Fei](https://github.com/hanfei1991)).
* Adicionada a configuração de MergeTree `compress_per_column_in_compact_parts` para controlar como os blocos comprimidos são organizados dentro de 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 empacotadas no mesmo bloco comprimido, melhorando a taxa de compressão e o desempenho de leitura para workloads que sempre leem todas as colunas. [#101114](https://github.com/ClickHouse/ClickHouse/pull/101114) ([Amos Bird](https://github.com/amosbird)).
* O índice de texto agora é GA e permanece habilitado independentemente da configuração `compatibility`, evitando desabilitação inesperada durante restaurações de backup ou ao executar em modo de compatibilidade. [#101518](https://github.com/ClickHouse/ClickHouse/pull/101518) ([Nikita Fomichev](https://github.com/fm4v)).
* Adicionado suporte ao índice de texto criado em `mapValues(map)` com o operador `IN`. [#99286](https://github.com/ClickHouse/ClickHouse/pull/99286) ([Anton Popov](https://github.com/CurtizJ)).
* Melhorada a análise de múltiplos índices de texto usados simultaneamente na mesma consulta. A configuração `use_skip_indexes_on_data_read` não é mais necessária para a otimização de leitura direta de índices de texto. [#102255](https://github.com/ClickHouse/ClickHouse/pull/102255) ([Anton Popov](https://github.com/CurtizJ)).
* Adicionado suporte à análise de índice de texto para a função `hasPhrase` via o modo `HINT`. [#102438](https://github.com/ClickHouse/ClickHouse/pull/102438) ([Elmi Ahmadov](https://github.com/ahmadov)).
* As estatísticas MinMax de coluna 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 gravados por versões mais antigas exigem rematerialização (`ALTER TABLE ... MATERIALIZE STATISTICS ALL`). [#100605](https://github.com/ClickHouse/ClickHouse/pull/100605) ([Han Fei](https://github.com/hanfei1991)).

<div id="data-lakes-improvements">
  ### Lagos de dados
</div>

* Adicionada uma nova consulta para verificar a integridade do `DataLakeCatalog`. [#94690](https://github.com/ClickHouse/ClickHouse/pull/94690) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* Aprimoradas as escritas do Iceberg para o Unity Catalog. [#98162](https://github.com/ClickHouse/ClickHouse/pull/98162) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Entidades recriadas em `IcebergManifestFile` para tornar a manutenção do código menos propensa a erros (também corrige alguns problemas de cache de arquivos de manifesto). [#98231](https://github.com/ClickHouse/ClickHouse/pull/98231) ([Daniil Ivanik](https://github.com/divanik)).
* Aprimorado o `ALTER TABLE ... EXECUTE expire_snapshots(...)` do Iceberg com suporte mais amplo a argumentos. [#99130](https://github.com/ClickHouse/ClickHouse/pull/99130) ([murphy-4o](https://github.com/murphy-4o)).
* Alterada a interface das inserções do Iceberg no catálogo. Descontinuadas as configurações `storage_catalog_type`, `storage_aws_access_key_id` e semelhantes. [#100334](https://github.com/ClickHouse/ClickHouse/pull/100334) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* Corrigido o tratamento inconsistente de caminhos no Iceberg causado pelo uso misto de caminhos de armazenamento e caminhos de metadados; passou-se a exigir que as tabelas Iceberg gravem um local de tabela que seja uma URL ou um caminho absoluto; adicionado um fallback para contabilizar tamanhos de arquivos no Azure; tratado `version-hint.txt` de forma compatível com o Spark; introduzidas abstrações em nível de tipo para tornar os tipos de caminho mais difíceis de confundir; e corrigido o uso de exclusões por posição. [#100420](https://github.com/ClickHouse/ClickHouse/pull/100420) ([Daniil Ivanik](https://github.com/divanik)).
* Evita varrer todo o catálogo remoto do lago de dados em busca de sugestões de tabela "Maybe you meant ..." quando `show_data_lake_catalogs_in_system_tables` está desabilitado. [#100452](https://github.com/ClickHouse/ClickHouse/pull/100452) ([Alsu Giliazova](https://github.com/alsugiliazova)).
* As informações do objeto usadas para processar arquivos de dados do 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)).
* Adicionado um mecanismo de pruning do Delta Lake com colunas virtuais. [#101634](https://github.com/ClickHouse/ClickHouse/pull/101634) ([Konstantin Vedernikov](https://github.com/scanhex12)).

<div id="s3-and-object-storage-improvements">
  ### S3 e armazenamento de objetos
</div>

* Adicionado um placeholder `{_schema_hash}` para o table engine S3, que insere um hash das definições de coluna da tabela no caminho do S3. [#98265](https://github.com/ClickHouse/ClickHouse/pull/98265) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Adicionada uma nova opção para forçar o uso do estilo virtual/path nos endpoints do S3. [#102378](https://github.com/ClickHouse/ClickHouse/pull/102378) ([Konstantin Vedernikov](https://github.com/scanhex12)).

<div id="settings-and-configuration-improvements">
  ### Ajustes e configuração
</div>

* Agora, os usuários podem especificar vários métodos de autenticação na configuração `users_xml`. [#91998](https://github.com/ClickHouse/ClickHouse/pull/91998) ([Flip-Liquid](https://github.com/Flip-Liquid)).
* 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)).
* Foi adicionada a configuração `allow_nullable_tuple_in_extracted_subcolumns`, que controla se 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 tupla para linhas ausentes). Ela vem desativada por padrão e só pode ser alterada reiniciando o servidor. [#97299](https://github.com/ClickHouse/ClickHouse/pull/97299) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* `type_json_allow_duplicated_key_with_literal_and_nested_object` agora vem ativada por padrão, evitando erros sobre chaves duplicadas ao analisar JSON como `{"a" : 42, "a" : {"b" : 42}}`, que o ClickHouse pode produzir a partir dos dados originais `{"a" : 42, "a.b" : 42}`. [#97423](https://github.com/ClickHouse/ClickHouse/pull/97423) ([Pavel Kruglov](https://github.com/Avogar)).
* As estatísticas de coluna agora são GA. A configuração `allow_experimental_statistics` (padrão `false`) foi descontinuada em favor de `allow_statistics` (padrão `true`); `allow_statistics_optimize` foi promovida de beta para GA; o ClickHouse cria estatísticas `minmax` e `uniq` para novas colunas (configuração do MergeTree `auto_statistics_types`); e, para evitar INSERTs mais lentos, `materialize_statistics_on_insert` agora vem desativada por padrão. [#97487](https://github.com/ClickHouse/ClickHouse/pull/97487) ([Han Fei](https://github.com/hanfei1991)).
* Foi esclarecida a relação entre `enable_parallel_replicas` e `automatic_parallel_replicas_mode`: uma consulta só pode usar réplicas paralelas se `enable_parallel_replicas > 0`. Com `automatic_parallel_replicas_mode=1`, a decisão é tomada durante o planejamento com base nas estatísticas coletadas; com `automatic_parallel_replicas_mode=0`, réplicas paralelas são usadas para todas as consultas compatíveis, independentemente das estatísticas. O insert-select distribuído com réplicas paralelas sempre se comporta como se `automatic_parallel_replicas_mode=0`. [#97517](https://github.com/ClickHouse/ClickHouse/pull/97517) ([Nikita Taranov](https://github.com/nickitat)).
* O recurso de impersonação ([EXECUTE AS target\_user](/docs/pt-BR/reference/statements/execute_as)) foi ativado por padrão. [#97870](https://github.com/ClickHouse/ClickHouse/pull/97870) ([Vitaly Baranov](https://github.com/vitlibar)).
* Foi adicionada a configuração `access_control_improvements.disallow_config_defined_profiles_for_sql_defined_users` (permitida por padrão), que impede o uso de perfis de configuração definidos em config (exceto o perfil `default`) para usuários definidos por SQL. [#98662](https://github.com/ClickHouse/ClickHouse/pull/98662) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Foi adicionada uma configuração para controlar o comportamento em caso de incompatibilidade de tipo para `Variant` e `Dynamic` (`throw` ou retornar null). [#99085](https://github.com/ClickHouse/ClickHouse/pull/99085) ([Bharat Nallan](https://github.com/bharatnc)).
* O valor padrão de `stderr_reaction` foi alterado de `throw` para `log_last` para UDFs executáveis. UDFs que escrevem avisos em stderr não falham mais quando o código de saída é 0, e 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)).
* Foi adicionada a configuração `input_format_column_name_matching_mode`, que permite tratamentos diferentes para maiúsculas e minúsculas nos formatos de entrada. [#99346](https://github.com/ClickHouse/ClickHouse/pull/99346) ([manerone](https://github.com/Manerone)).
* As estatísticas automáticas não são mais ativadas para tabelas de sistema, pois elas raramente se beneficiam delas. [#102862](https://github.com/ClickHouse/ClickHouse/pull/102862) ([Han Fei](https://github.com/hanfei1991)).

<div id="system-tables-and-monitoring-improvements">
  ### Tabelas do sistema e monitoramento
</div>

* Os índices de data skipping usados durante a execução da consulta agora são registrados em `system.query_log` em uma nova coluna `skip_indices`. [#99793](https://github.com/ClickHouse/ClickHouse/pull/99793) ([Grant Holly](https://github.com/grantholly-clickhouse)).
* Foi adicionada a coluna `projections_duration_ms` a `system.part_log`, que registra a duração, em milissegundos, da mesclagem/reconstrução por projeção. [#98292](https://github.com/ClickHouse/ClickHouse/pull/98292) ([Amos Bird](https://github.com/amosbird)).
* Foi adicionado o alias de coluna `INDEX_LENGTH` a `information_schema.tables`. [#101705](https://github.com/ClickHouse/ClickHouse/pull/101705) ([Robert Schulze](https://github.com/rschu1ze)).
* `information_schema.tables` agora ignora partes de tabela inativas, tornando mais realistas os valores exibidos para o tamanho das tabelas. [#101706](https://github.com/ClickHouse/ClickHouse/pull/101706) ([Robert Schulze](https://github.com/rschu1ze)).

<div id="clickhouse-keeper-improvements">
  ### ClickHouse Keeper
</div>

* `find_super_nodes` não fica mais preso ao percorrer os filhos do primeiro supernó, o que agora permite encontrar mais de um. [#97819](https://github.com/ClickHouse/ClickHouse/pull/97819) ([pufit](https://github.com/pufit)).
* Uma sessão do ZooKeeper agora é marcada como expirada assim que a finalização começa, em vez de esperar a thread de envio encerrar. Isso permite que outras threads estabeleçam uma nova sessão sem atraso. [#99102](https://github.com/ClickHouse/ClickHouse/pull/99102) ([Raúl Marín](https://github.com/Algunenano)).
* Solicitações obsoletas do Keeper para sessões que já foram desconectadas agora são ignoradas, evitando idas e voltas desnecessárias ao Raft. O número de sessões finalizadas rastreadas é 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)).
* O comando `mntr` do Keeper não fica mais preso devido à contenção de bloqueio. [#99472](https://github.com/ClickHouse/ClickHouse/pull/99472) ([Antonio Andelic](https://github.com/antonio2368)).
* A contenção de bloqueio no dispatcher do Keeper foi reduzida ao invocar callbacks e despachar solicitações de leitura fora do escopo do mutex, além da adição de guardas de bloqueio com perfilamento para observabilidade. [#99751](https://github.com/ClickHouse/ClickHouse/pull/99751) ([Antonio Andelic](https://github.com/antonio2368)).

<div id="memory-management-improvements">
  ### Gerenciamento de memória
</div>

* Adicionado o parâmetro de configuração `use_separate_cache_arena` para controlar a separação da arena de cache. [#100664](https://github.com/ClickHouse/ClickHouse/pull/100664) ([Seva Potapov](https://github.com/seva-potapov)).

<div id="data-formats-improvements">
  ### Formatos de dados
</div>

* Adicionada a configuração `output_format_trim_fixed_string` para remover bytes nulos à direita de valores `FixedString` em formatos de saída de texto. [#97558](https://github.com/ClickHouse/ClickHouse/pull/97558) ([NeedmeFordev](https://github.com/spider-yamet)).
* Passou a ser possível processar 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)).
* A desserialização de estados binários de `AggregateFunction` agora exige o consumo de toda a entrada. Se houver bytes extras e redundantes ao 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)).
* Agora, os usuários podem gravar tipos de dados de intervalo do ClickHouse no formato Arrow. [#99519](https://github.com/ClickHouse/ClickHouse/pull/99519) ([Peter Nguyen](https://github.com/petern48)).
* Adicionado suporte nativo para importar e exportar tipos de dados UUID nos formatos Arrow e Parquet, com inferência lógica automática para UUIDs de nível superior e suporte a dicas explícitas de esquema para UUIDs aninhados. [#99521](https://github.com/ClickHouse/ClickHouse/pull/99521) ([Ivan](https://github.com/ivanmantova)).
* Agora é tolerada 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)).
* A exportação de UUIDs para Parquet pelo codificador Arrow agora inclui a anotação correta do tipo UUID, eliminando a necessidade de converter manualmente dados `FixedString(16)` ao ler os arquivos de volta. [#100150](https://github.com/ClickHouse/ClickHouse/pull/100150) ([Ivan](https://github.com/ivanmantova)).
* Adicionado suporte nativo para importar tipos de dados `StringView` e `BinaryView` do Apache Arrow para colunas `String` do ClickHouse, melhorando a compatibilidade para ingestão baseada em Arrow. [#100762](https://github.com/ClickHouse/ClickHouse/pull/100762) ([Ivan](https://github.com/ivanmantova)).
* Adicionado suporte para `Nullable(Tuple)` nos formatos `Arrow`, `ArrowStream`, `ORC` e `Parquet` legado. [#101272](https://github.com/ClickHouse/ClickHouse/pull/101272) ([Nihal Z. Miaji](https://github.com/nihalzp)).

<div id="named-collections-and-dictionaries">
  ### Coleções nomeadas e dicionários
</div>

* Adicionado `sslmode` às chaves permitidas para fontes de dicionário do PostgreSQL, tornando possível configurar o modo SSL para conexões de dicionário do PostgreSQL (por exemplo, no AWS RDS, que exige SSL por padrão). [#98014](https://github.com/ClickHouse/ClickHouse/pull/98014) ([mcalfin](https://github.com/mcalfin)).
* Evita remover coleções nomeadas que são dependências de fontes de dicionário. [#98127](https://github.com/ClickHouse/ClickHouse/pull/98127) ([Pablo Marcos](https://github.com/pamarcos)).
* Adicionado suporte aos tipos `Map` e `JSON`/`Object` como atributos de dicionário. Os dicionários agora podem armazenar e recuperar tipos complexos, incluindo `Map(String, String)`, `Map(String, Array(String))`, `JSON` e `Nullable(JSON)` nos layouts FLAT e HASHED. [#98627](https://github.com/ClickHouse/ClickHouse/pull/98627) ([yanglongwei](https://github.com/ylw510)).
* `SYSTEM RELOAD DICTIONARIES` agora recarrega os dicionários em ordem topológica para que dicionários cuja fonte são outros dicionários vejam dados atualizados após a recarga. [#98356](https://github.com/ClickHouse/ClickHouse/pull/98356) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Dicionários de cache não usam mais um bloqueio exclusivo em `hasKeys`, reduzindo 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)).

<div id="other-improvements">
  ### Outras melhorias
</div>

* As dicas de `ACCESS_DENIED` não revelam mais nomes de colunas, a menos que o usuário possa exibir todas as colunas necessárias; os nomes do banco de dados e da tabela permanecem visíveis na dica. [#91067](https://github.com/ClickHouse/ClickHouse/pull/91067) ([filimonov](https://github.com/filimonov)).
* Recarrega a configuração do cluster se os IPs do hostname do servidor local mudarem, em vez de considerar os IPs de qualquer host. [#93726](https://github.com/ClickHouse/ClickHouse/pull/93726) ([Zhigao Hong](https://github.com/zghong)).
* Força a gravação dos buffers assíncronos de logging em caso de falha. [#97836](https://github.com/ClickHouse/ClickHouse/pull/97836) ([Azat Khuzhin](https://github.com/azat)).
* Redução de bloqueios durante o controle de acesso. [#97894](https://github.com/ClickHouse/ClickHouse/pull/97894) ([Nikita Taranov](https://github.com/nickitat)).
* ClickStack atualizado para a versão 2.20.0. [#98252](https://github.com/ClickHouse/ClickHouse/pull/98252) ([Aaron Knudtson](https://github.com/knudtty)).
* Desabilita a AI SQL generation (comando `??`) no cliente embutido (protocolos SSH e WebSocket) para evitar acesso às variáveis de ambiente do servidor. [#100290](https://github.com/ClickHouse/ClickHouse/pull/100290) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Envia NACK para mensagens com erro ao usar o armazenamento RabbitMQ. [#102157](https://github.com/ClickHouse/ClickHouse/pull/102157) ([Seva Potapov](https://github.com/seva-potapov)).

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

<Accordion title="Todas as correções de bugs (clique para expandir)">
  ### Correções de JOIN

  * Corrigida a ausência de uma coluna quando um alias de identificador não padrão era usado em um JOIN com o analisador antigo. [#95679](https://github.com/ClickHouse/ClickHouse/pull/95679) ([Zhigao Hong](https://github.com/zghong)).
  * Corrigido um resultado incorreto quando o algoritmo `grace_hash` era usado com junções non-equi e o bloco esquerdo não podia ser processado por completo devido a restrições de tamanho no resultado da junção. [#97866](https://github.com/ClickHouse/ClickHouse/pull/97866) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
  * Corrigido um erro lógico com `analyzer_compatibility_join_using_top_level_identifier` e `ARRAY JOIN`. [#98179](https://github.com/ClickHouse/ClickHouse/pull/98179) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * Corrigida uma exceção `LOGICAL_ERROR` quando um `RIGHT JOIN` encapsulado em um `CROSS JOIN` foi invertido pela otimização `query_plan_join_swap_table` no caminho de código legado da etapa de junção. [#98279](https://github.com/ClickHouse/ClickHouse/pull/98279) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma exceção "Pipeline stuck" em junções `full_sorting_merge`, causada por um deadlock em `PingPongProcessor` quando a otimização `FilterBySetOnTheFly` criava uma dependência circular com `MergeJoinTransform`. [#98454](https://github.com/ClickHouse/ClickHouse/pull/98454) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma exceção de erro lógico quando `CROSS JOIN` era usado junto com `INNER JOIN USING`. [#98459](https://github.com/ClickHouse/ClickHouse/pull/98459) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma exceção `LOGICAL_ERROR` quando `arrayJoin` era usado 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)).
  * Corrigidas uma exceção `BAD_GET` e resultados de consulta incorretos quando uma expressão não booleana (por exemplo, `sin(col)`) era 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)).
  * Corrigida uma `LOGICAL_ERROR` "Replica decided to read in Default mode, not in 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)).
  * `LEFT ANTI JOIN` com múltiplas colunas na chave de junção retornava resultados errados quando `enable_join_runtime_filters=1` (o padrão). [#98871](https://github.com/ClickHouse/ClickHouse/pull/98871) ([Alexander Gololobov](https://github.com/davenger)).
  * Corrigido 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. [#99112](https://github.com/ClickHouse/ClickHouse/pull/99112) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
  * Corrigida uma exceção em funções que operam sobre `ColumnReplicated` com linhas não referenciadas produzidas por JOIN. [#99564](https://github.com/ClickHouse/ClickHouse/pull/99564) ([Hechem Selmi](https://github.com/m-selmi)).
  * Corrigido um caso raro em que uma junção com reordenação podia produzir um resultado incorreto. [#100790](https://github.com/ClickHouse/ClickHouse/pull/100790) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
  * Corrigidos resultados incorretos quando um JOIN com a otimização shard-by-PK usava o cache de condições de consulta e algumas partes eram filtradas por condições em cache. [#100926](https://github.com/ClickHouse/ClickHouse/pull/100926) ([Groene AI](https://github.com/groeneai)).
  * Corrigida uma exceção `NOT_FOUND_COLUMN_IN_BLOCK` ao usar `ARRAY JOIN` com `JOIN USING` e `analyzer_compatibility_join_using_top_level_identifier` habilitado. [#101507](https://github.com/ClickHouse/ClickHouse/pull/101507) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * Corrigida a ordenação incorreta de linhas em consultas que usam `ORDER BY` com o algoritmo de join `grace_hash`, o que poderia gerar resultados incorretos sem aviso. [#102036](https://github.com/ClickHouse/ClickHouse/pull/102036) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
  * Corrigido um `LOGICAL_ERROR` (tamanho inesperado do tipo de índice) que poderia ocorrer em consultas `RIGHT JOIN` e `FULL JOIN` quando `max_bytes_in_join` estivesse configurado. [#102042](https://github.com/ClickHouse/ClickHouse/pull/102042) ([Jimmy Aguilar Mena](https://github.com/Ergus)).

  ### Correções de consultas e do analyzer

  * Corrigida a forma como o destino de uma tabela Alias é salvo como dependência DDL quando não está totalmente qualificado: agora ele é salvo com o database da tabela Alias em vez do database da sessão. [#95175](https://github.com/ClickHouse/ClickHouse/pull/95175) ([Enric Calabuig](https://github.com/eclbg)).
  * Corrigido um erro `Block structure mismatch in stream` causado por colunas desnecessárias retornadas pela materialização lazy. [#96682](https://github.com/ClickHouse/ClickHouse/pull/96682) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
  * Corrigida uma exceção na comparação de tuplas envolvendo elementos do tipo `Nothing` (por exemplo, comparação com elementos de tupla `NULL`) quando usada com `GROUPING SETS` e `ORDER BY`. [#97509](https://github.com/ClickHouse/ClickHouse/pull/97509) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma exceção "Context has expired" em subconsultas correlacionadas que contêm table functions como `url()`. [#97544](https://github.com/ClickHouse/ClickHouse/pull/97544) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigidas exceções e comportamento incorreto em `optimize_syntax_fuse_functions` com projeções agregadas, Tipo Date e preservação de nomes de coluna. [#97545](https://github.com/ClickHouse/ClickHouse/pull/97545) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Removida uma query rewrite incorreta de `replaceRegexpOne` para `extract`, que produzia resultados incorretos quando o regexp não correspondia; também foi corrigida uma exceção quando `replaceRegexpOne` era 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)).
  * Corrigidas 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 Runtime Filters. [#97831](https://github.com/ClickHouse/ClickHouse/pull/97831) ([Raúl Marín](https://github.com/Algunenano)).
  * Corrigida uma exceção `LOGICAL_ERROR` "Chunk info was not set for chunk in MergingAggregatedTransform" ao usar `ARRAY JOIN` com a table function `merge()` em várias Distributed tables combinadas com `GROUP BY`. [#97838](https://github.com/ClickHouse/ClickHouse/pull/97838) ([Raúl Marín](https://github.com/Algunenano)).
  * Corrigido um bug que impedia o uso de CTEs com insert-selects distribuídos. [#97889](https://github.com/ClickHouse/ClickHouse/pull/97889) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
  * Corrigida uma incompatibilidade de coluna. [#97921](https://github.com/ClickHouse/ClickHouse/pull/97921) ([Kai Zhu](https://github.com/nauu)).
  * Corrigido um segfault na otimização do plano de consulta ao converter uma outer join em uma inner join com `arrayJoin` em uma expressão de filtro. [#98147](https://github.com/ClickHouse/ClickHouse/pull/98147) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigido um `LOGICAL_ERROR` "Trying to execute PLACEHOLDER action" quando colunas correlacionadas de consultas externas eram referenciadas dentro de funções lambda como `arrayMap`. [#98285](https://github.com/ClickHouse/ClickHouse/pull/98285) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma exceção de logical error em `caseWithExpression` quando a expressão `CASE` envolvia `materialize(NULL)` ou outros argumentos `Nullable(Nothing)`. [#98290](https://github.com/ClickHouse/ClickHouse/pull/98290) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma exceção de conversão inválida ao filtrar a coluna virtual `_table` na table function `merge`. [#98291](https://github.com/ClickHouse/ClickHouse/pull/98291) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma exceção quando `ORDER BY ... WITH FILL` era usado junto com `LIMIT BY`. [#98361](https://github.com/ClickHouse/ClickHouse/pull/98361) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma exceção "Column ... query tree node does not have valid source node" ao fazer join de uma tabela `Merge` (que encapsula uma tabela `Distributed`) com outra tabela. [#98376](https://github.com/ClickHouse/ClickHouse/pull/98376) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma exceção "Column identifier is already registered" quando `count_distinct_optimization` era usado com uma cláusula `QUALIFY`. [#98433](https://github.com/ClickHouse/ClickHouse/pull/98433) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma 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 uma exceção `LOGICAL_ERROR` "Projection cannot increase the number of rows in a block" ao mesclar partes com um TTL que exclui todas as linhas e uma projeção agregada com uma chave `GROUP BY` constante. [#98458](https://github.com/ClickHouse/ClickHouse/pull/98458) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma exceção em consultas `DISTINCT` quando o uso de projeções agregadas e `materialize` causava 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 uma exceção de erro lógico "Replica decided to read in WithOrder mode, not in 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 resultado inesperado com `read_in_order_use_virtual_row` e funções monotônicas. [#98514](https://github.com/ClickHouse/ClickHouse/pull/98514) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * Corrigida uma exceção `LOGICAL_ERROR: Not-ready Set is passed as the second argument for function 'in'` ao usar `PREWHERE` com uma subconsulta `IN` em tabelas MergeTree. [#98522](https://github.com/ClickHouse/ClickHouse/pull/98522) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma exceção "Sorting column wasn't found in the ActionsDAG's outputs" quando `query_plan_convert_join_to_in` estava habilitado com `query_plan_merge_expressions = 0`. [#98526](https://github.com/ClickHouse/ClickHouse/pull/98526) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigido um `LOGICAL_ERROR` quando um `Identifier` estava vazio após a substituição de parâmetro. [#98530](https://github.com/ClickHouse/ClickHouse/pull/98530) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
  * Corrigida a análise de índice distribuído com expressões (não apenas colunas) na chave primária, o que resultava em nenhuma filtragem de grânulos redundantes em réplicas remotas. [#98561](https://github.com/ClickHouse/ClickHouse/pull/98561) ([Azat Khuzhin](https://github.com/azat)).
  * Corrigido um erro lógico "TABLE\_FUNCTION is not allowed in expression context" quando uma table function com alias aparecia várias vezes no mesmo escopo da consulta (por exemplo, nas cláusulas `PREWHERE` e `QUALIFY`). [#98557](https://github.com/ClickHouse/ClickHouse/pull/98557) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma 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)).
  * Corrigida uma exceção em `LogicalExpressionOptimizerPass` quando uma função booleana em uma comparação `equals` retornava um tipo `Variant`. [#98712](https://github.com/ClickHouse/ClickHouse/pull/98712) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma exceção `UNKNOWN_IDENTIFIER` ao consultar a função de tabela `merge()` ou o engine `Merge` em tabelas com colunas JSON que têm parâmetros diferentes e colunas ALIAS que fazem referência a subcaminhos de JSON, com o novo analyzer habilitado. [#98753](https://github.com/ClickHouse/ClickHouse/pull/98753) ([Pavel Kruglov](https://github.com/Avogar)).
  * Corrigida a otimização `optimize_skip_unused_shards` com o analyzer quando um armazenamento `Distributed` era usado em uma `View`. [#98754](https://github.com/ClickHouse/ClickHouse/pull/98754) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
  * Corrigida uma exceção `LOGICAL_ERROR` (incompatibilidade na estrutura do block em `removeUnusedColumns`) que podia ocorrer com `FINAL` + `PREWHERE` + uma expressão `WHERE` constante + agregações independentes de coluna, como `count()`. [#98778](https://github.com/ClickHouse/ClickHouse/pull/98778) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma exceção "Inconsistent table names" ao usar a função de tabela `view()` contendo JOINs dentro de outro JOIN (somente com o analyzer antigo). [#98809](https://github.com/ClickHouse/ClickHouse/pull/98809) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma exceção ao compor `loop` com funções de tabela de cluster. [#98860](https://github.com/ClickHouse/ClickHouse/pull/98860) ([Konstantin Bogdanov](https://github.com/thevar1able)).
  * Corrigido um `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)).
  * Corrigida uma exceção "Scalar doesn't exist" ao consultar um shard remoto com `optimize_const_name_size` definido e `enable_scalar_subquery_optimization = 0`. [#98979](https://github.com/ClickHouse/ClickHouse/pull/98979) ([andriibeee](https://github.com/andriibeee)).
  * Corrigido `NOT_FOUND_COLUMN_IN_BLOCK` para algumas consultas com `GROUP BY` e expressões que incluem lookup inverso em Dicionário, comparações de conversão `Date`/`DateTime` e comparações de Tuple. [#98980](https://github.com/ClickHouse/ClickHouse/pull/98980) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Corrigido um bug em que `EXISTS` ignorava as cláusulas `LIMIT` e `OFFSET` em subconsultas, causando resultados incorretos quando a subconsulta não retornava linhas devido a um offset ou a um limite zero. [#99005](https://github.com/ClickHouse/ClickHouse/pull/99005) ([andriibeee](https://github.com/andriibeee)).
  * Corrigida uma exceção "Block structure mismatch" quando a otimização de push-down de filtro encontrava uma expressão `AND` que era avaliada em curto-circuito como uma constante com `GROUPING SETS`. [#99010](https://github.com/ClickHouse/ClickHouse/pull/99010) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigido um `LOGICAL_ERROR` ao consultar uma tabela que possui tanto uma ROW POLICY quanto uma coluna ALIAS usando `dictGet`, causado por acesso prematuro à expressão da tabela durante a resolução da coluna ALIAS no novo analyzer. [#99065](https://github.com/ClickHouse/ClickHouse/pull/99065) ([Peng](https://github.com/fastio)).
  * Corrigido um segfault em uma CTE recursiva com `remote()` + `view()`. [#99081](https://github.com/ClickHouse/ClickHouse/pull/99081) ([Konstantin Bogdanov](https://github.com/thevar1able)).
  * Ignora a análise de índice extra desnecessária quando a otimização de leitura em ordem é aplicada. [#99084](https://github.com/ClickHouse/ClickHouse/pull/99084) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * Corrigidas as verificações de acesso durante `InverseDictionaryLookupPass`, verificando o acesso apenas uma vez antes de executar a etapa de otimização. [#99210](https://github.com/ClickHouse/ClickHouse/pull/99210) ([Mikhail Artemenko](https://github.com/Michicosun)).
  * Corrigido `optimize_skip_unused_shards` com o novo analisador quando uma tabela `Distributed` era usada em uma subconsulta `IN`. [#99436](https://github.com/ClickHouse/ClickHouse/pull/99436) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
  * Corrigido um heap-use-after-free em `INTERSECT`/`EXCEPT` quando a consulta produzia nomes de coluna duplicados. [#99471](https://github.com/ClickHouse/ClickHouse/pull/99471) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigido um erro lógico em `ALTER TABLE ... DROP PART` quando um parâmetro de consulta tipado era usado como nome da parte. [#99489](https://github.com/ClickHouse/ClickHouse/pull/99489) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma 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)).
  * Corrigida a degradação de desempenho no analisador ao eliminar colunas não usadas de `ARRAY JOIN`. [#99587](https://github.com/ClickHouse/ClickHouse/pull/99587) ([Dmitry Novik](https://github.com/novikd)).
  * Corrigida uma exceção (`Bad get: has Tuple, actual type String`) em `ConditionSelectivityEstimator` quando uma consulta usava `IN` com um único parâmetro de consulta escalar (por exemplo, `WHERE col IN ({p:String})`) em uma tabela com estatísticas de coluna e `use_statistics` habilitado. [#99614](https://github.com/ClickHouse/ClickHouse/pull/99614) ([Ilya Yatsishin](https://github.com/qoega)).
  * Corrigida uma exceção "Block structure mismatch" em consultas com uma cláusula `HAVING`, em que a expressão de filtro continha tanto uma agregação encapsulada em uma função que produz NULL quanto `materialize(0)`. [#99915](https://github.com/ClickHouse/ClickHouse/pull/99915) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigido um erro lógico com uma subconsulta correlacionada em um argumento `untuple`. [#99917](https://github.com/ClickHouse/ClickHouse/pull/99917) ([Vladimir Cherkasov](https://github.com/vdimir)).
  * Corrigida uma exceção "Inconsistent AST formatting" em `ALTER TABLE ... MODIFY QUERY` com subconsultas aninhadas contendo `SETTINGS` quando o próprio `ALTER` também tinha `SETTINGS`. [#99938](https://github.com/ClickHouse/ClickHouse/pull/99938) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
  * Corrigida uma exceção `LOGICAL_ERROR` "Not-ready Set" 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)).
  * Corrigida uma exceção `LOGICAL_ERROR` "Unexpected node type for table expression ... Actual IDENTIFIER" quando uma subconsulta escalar era usada em um argumento de função de tabela não resolvido. [#100014](https://github.com/ClickHouse/ClickHouse/pull/100014) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigido o número quadrático de consultas executadas quando `distributed_index_analysis` era usado com predicados contendo subconsultas `IN`. [#100287](https://github.com/ClickHouse/ClickHouse/pull/100287) ([Anton Popov](https://github.com/CurtizJ)).
  * Corrigida uma exceção de "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)).
  * Corrigida uma exceção de "Inconsistent AST formatting" em builds de depuração ao usar `GROUP BY CUBE(...) WITH ROLLUP` ou combinações semelhantes. [#100376](https://github.com/ClickHouse/ClickHouse/pull/100376) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma exceção ao criar uma view com aliases de coluna e consultas `SELECT *` ou `EXCEPT`/`INTERSECT`. [#100386](https://github.com/ClickHouse/ClickHouse/pull/100386) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma exceção `TOO_MANY_ROWS` em consultas `SELECT count()` com `max_rows_to_read` / `force_primary_key` quando os dados estavam divididos 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)).
  * Corrigidos casos de `NOT_FOUND_COLUMN_IN_BLOCK` em que a parte `SELECT` da projeção continha colunas que não existiam na parte `SELECT` original da consulta. [#100623](https://github.com/ClickHouse/ClickHouse/pull/100623) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
  * Agora é possível passar uma chave de sharding para as funções de tabela `cluster()` e `clusterAllReplicas()` ao usar uma função de tabela como origem (por exemplo, `cluster('name', view(...), sharding_key)`). [#100665](https://github.com/ClickHouse/ClickHouse/pull/100665) ([Sergey Veletskiy](https://github.com/velom)).
  * Corrigidos tipos de argumento `AggregateFunction` incorretos na contagem trivial otimizada, o que causava uma 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)).
  * Corrigido um erro lógico "Invalid action query tree node" ao usar `INTERSECT ALL` / `UNION ALL` com expressões com constantes já avaliadas. [#100977](https://github.com/ClickHouse/ClickHouse/pull/100977) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigido um erro `UNKNOWN_IDENTIFIER` incorreto quando o mesmo alias era usado para várias expressões em `SELECT`; agora o erro correto `MULTIPLE_EXPRESSIONS_FOR_ALIAS` é reportado. [#101040](https://github.com/ClickHouse/ClickHouse/pull/101040) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma exceção em `DirectJoinMergeTreeEntity` quando blocos do pipeline continham colunas `ColumnConst` mescladas com colunas regulares. [#101046](https://github.com/ClickHouse/ClickHouse/pull/101046) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigido um espaço indevido na formatação de aliases de coluna em CTE (`WITH t (a, b)` → `WITH t(a, b)`). [#101049](https://github.com/ClickHouse/ClickHouse/pull/101049) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida a falha das funções de tabela `remote`/`cluster` com funções de tabela aninhadas, como `merge`, quando o analisador estava habilitado. [#101055](https://github.com/ClickHouse/ClickHouse/pull/101055) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigido o problema em que `OFFSET` era aplicado duas vezes em consultas distribuídas quando `prefer_localhost_replica=1`, produzindo menos linhas do que o esperado. [#101071](https://github.com/ClickHouse/ClickHouse/pull/101071) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Corrigido um erro "Illegal type Decimal64 of start parameter" em funções de agregação para 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)).
  * Corrigidos resultados incorretos de consulta quando uma constante inteira grande (por exemplo, 256, 2147483648) era usada como predicado booleano em uma cláusula `WHERE` com `AND` em tabelas MergeTree. [#101287](https://github.com/ClickHouse/ClickHouse/pull/101287) ([Groene AI](https://github.com/groeneai)).
  * Corrigida uma falha com "Logical error: Reading from materialized CTE before materialization" quando uma subconsulta escalar referenciava uma cadeia de CTEs materializadas dependentes. [#101305](https://github.com/ClickHouse/ClickHouse/pull/101305) ([Groene AI](https://github.com/groeneai)).
  * Corrigida uma exceção ao converter uma string com dados extras no final para o tipo vazio `Tuple()`. [#102011](https://github.com/ClickHouse/ClickHouse/pull/102011) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigido um erro lógico ao fazer o parsing de uma string incorreta de tupla vazia. [#102289](https://github.com/ClickHouse/ClickHouse/pull/102289) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Corrigidos resultados incorretos de agregação (linhas duplicadas) ao usar `optimize_aggregation_in_order=1` com colunas de `GROUP BY` ordenadas de forma diferente da chave de ordenação da tabela. [#102299](https://github.com/ClickHouse/ClickHouse/pull/102299) ([Groene AI](https://github.com/groeneai)).
  * Corrigida uma exceção em `getStructureOfRemoteTable` quando o shard local retornava colunas vazias devido a DDL concorrente. [#102604](https://github.com/ClickHouse/ClickHouse/pull/102604) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Otimizadas cadeias de OR em ROW POLICY para `IN` no novo analisador. [#102915](https://github.com/ClickHouse/ClickHouse/pull/102915) ([Azat Khuzhin](https://github.com/azat)).
  * Corrigidos resultados incorretos retornados por `WHERE x AND toNullable(N)` em tabelas `MergeTree` quando `N` é um inteiro maior que `UInt8` (por exemplo, `256`, `65535`, `2147483648` ou qualquer inteiro negativo). [#103077](https://github.com/ClickHouse/ClickHouse/pull/103077) ([Groene AI](https://github.com/groeneai)).

  ### Correções de MergeTree e armazenamento

  * Corrigido um erro lógico ao anexar uma parte no MergeTree quando havia várias renomeações encadeadas entre a desanexação e o anexo. [#96351](https://github.com/ClickHouse/ClickHouse/pull/96351) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigido o cálculo não determinístico de `uncompressed_hash` para partes Compact do MergeTree quando vários codecs de compressão são usados, o que podia causar um comportamento incorreto de desduplicação. [#97522](https://github.com/ClickHouse/ClickHouse/pull/97522) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigidos casos em que exceções `MEMORY_LIMIT_EXCEEDED` eram relatadas incorretamente como `CORRUPTED_DATA` durante merges de SummingMergeTree e CoalescingMergeTree. [#97537](https://github.com/ClickHouse/ClickHouse/pull/97537) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
  * `hasPartitionId` agora retorna false se existir 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)).
  * Corrigida uma mutação após uma atualização leve com índices secundários. [#98044](https://github.com/ClickHouse/ClickHouse/pull/98044) ([Raúl Marín](https://github.com/Algunenano)).
  * Corrigidos resultados incorretos de consultas FINAL ao misturar skip indexes da chave primária com skip indexes que não são da chave primária. [#98097](https://github.com/ClickHouse/ClickHouse/pull/98097) ([Raúl Marín](https://github.com/Algunenano)).
  * Se as colunas da chave de partição não forem cobertas pela chave de ordenação, o partition pruning poderá ignorar incorretamente partições que contêm linhas que deveriam "vencer" durante a desduplicação FINAL. [#98242](https://github.com/ClickHouse/ClickHouse/pull/98242) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
  * Corrigido um possível deadlock quando duas operações concorrentes de `MOVE PARTITION` trabalham com o mesmo par de tabelas em direções opostas. [#98264](https://github.com/ClickHouse/ClickHouse/pull/98264) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma exceção `LOGICAL_ERROR` "Invalid binary search result in `MergeTreeSetIndex`" acionada pela conversão `toDate` em colunas-chave com dados que cruzam o limite de 65535. [#98276](https://github.com/ClickHouse/ClickHouse/pull/98276) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida 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/` no ZooKeeper. [#98293](https://github.com/ClickHouse/ClickHouse/pull/98293) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigido o travamento de mutações `MATERIALIZE INDEX` e `MATERIALIZE PROJECTION` quando o índice ou a projeção eram removidos antes de a mutação terminar. [#98369](https://github.com/ClickHouse/ClickHouse/pull/98369) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigidos resultados incorretos de partition pruning após o merge de partes com colunas Nullable na chave de partição, causado por limites incorretos do índice min-max. [#98405](https://github.com/ClickHouse/ClickHouse/pull/98405) ([Amos Bird](https://github.com/amosbird)).
  * Corrigida uma exceção `LOGICAL_ERROR` em `renameAndCommitEmptyParts` que podia ocorrer quando `TRUNCATE TABLE` era executado concorrentemente com `OPTIMIZE TABLE` usando transações do MergeTree. [#98508](https://github.com/ClickHouse/ClickHouse/pull/98508) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigido um overflow decimal durante o partition pruning com `DateTime64`. [#98628](https://github.com/ClickHouse/ClickHouse/pull/98628) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
  * Corrigida a ressurreição de partes de dados desatualizadas causada pela limpeza incorreta de partes de cobertura vazias. [#98698](https://github.com/ClickHouse/ClickHouse/pull/98698) ([Shaohua Wang](https://github.com/tiandiwonder)).
  * Corrigida a detecção da utilidade do skip index set com um predicado `OR` com falso (isto é, `or(x, 0)`). [#98776](https://github.com/ClickHouse/ClickHouse/pull/98776) ([Azat Khuzhin](https://github.com/azat)).
  * Corrigido o problema em que skip indexes (e condições de chave primária) não eram aplicados a colunas ALIAS quando a mesclagem de expressões do plano de consulta estava 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)).
  * Corrigida a poda incorreta ou insuficiente quando `startsWith`, `LIKE` ou `NOT LIKE` eram usados com uma coluna `FixedString`. Além disso, a função de cast de `FixedString` para `String` agora pode podar grânulos quando aplicada sobre uma coluna-chave. [#99001](https://github.com/ClickHouse/ClickHouse/pull/99001) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Corrigida uma 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` é uma chave primária `String`, agora usa 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)).
  * Corrigida uma 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)).
  * Corrigido `LOGICAL_ERROR` devido à incompatibilidade na ordem das colunas de patch parts. [#99164](https://github.com/ClickHouse/ClickHouse/pull/99164) ([Pablo Marcos](https://github.com/pamarcos)).
  * Corrigida a falha de `ALTER TABLE UPDATE`/`DELETE` com um erro `Missing columns` quando uma tabela tem uma coluna MATERIALIZED cuja expressão depende de uma coluna EPHEMERAL. [#99281](https://github.com/ClickHouse/ClickHouse/pull/99281) ([Yash](https://github.com/Onyx2406)).
  * Corrigida a 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)).
  * Corrigida a rara marcação incorreta de uma parte de dados como corrompida e seu desanexamento após uma consulta `DETACH`/`ATTACH TABLE`. [#99529](https://github.com/ClickHouse/ClickHouse/pull/99529) ([Anton Popov](https://github.com/CurtizJ)).
  * Corrigida uma falha de asserção `rows_sources` em mesclagem vertical quando `SYSTEM STOP/START MERGES` é alternado rapidamente durante uma mesclagem de uma tabela com colunas `Dynamic`. [#99532](https://github.com/ClickHouse/ClickHouse/pull/99532) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida a poda incorreta de partição para `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)).
  * Corrigido um `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)).
  * Corrigido o fato de `CLEAR COLUMN` não reconstruir projeções nem reavaliar colunas materializadas que dependem da coluna limpa, o que poderia causar exceções ou corrupção de dados durante mesclagens posteriores. [#99565](https://github.com/ClickHouse/ClickHouse/pull/99565) ([Desel72](https://github.com/Desel72)).
  * Uma parte com projeções desconhecidas não é mais marcada como perdida para sempre. [#99623](https://github.com/ClickHouse/ClickHouse/pull/99623) ([Sema Checherinda](https://github.com/CheSema)).
  * Corrigida uma referência solta em `injectRequiredColumns` que causava uma falha durante a mesclagem. [#99679](https://github.com/ClickHouse/ClickHouse/pull/99679) ([Tuan Pham Anh](https://github.com/tuanpach)).
  * Corrigido um erro lógico durante a mesclagem de partes de projeção após `CLEAR COLUMN` em uma tabela com projeções e partes compact. [#100068](https://github.com/ClickHouse/ClickHouse/pull/100068) ([Pavel Kruglov](https://github.com/Avogar)).
  * Corrigido um `LOGICAL_ERROR` "Stream ... not found" ao inserir 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)).
  * Os argumentos do mecanismo para `StorageAlias` agora são avaliados antes de armazenar a definição, para que expressões como `currentDatabase()` sejam resolvidas em literais antes de serem salvas no banco de dados. [#100902](https://github.com/ClickHouse/ClickHouse/pull/100902) ([Nikolay Degterinsky](https://github.com/evillique)).
  * Corrigido o retorno de `ILLEGAL_DIVISION` por `divide` e `intDiv` quando usados em expressões de filtro durante a análise de índice em alguns casos. [#100928](https://github.com/ClickHouse/ClickHouse/pull/100928) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Corrigido o fato de a otimização de `minmax_count_projection` e a otimização trivial de `COUNT(*)` permanecerem desativadas permanentemente após uma exclusão leve, mesmo depois de todas as partes com máscara de exclusão leve terem sido mescladas. [#101212](https://github.com/ClickHouse/ClickHouse/pull/101212) ([Anton Popov](https://github.com/CurtizJ)).
  * Corrigida uma condição de corrida de dados em `storage_id` em `IStorage::getDependentViewsByColumn`. [#101385](https://github.com/ClickHouse/ClickHouse/pull/101385) ([Nikolay Degterinsky](https://github.com/evillique)).
  * Corrigido o fato de `materialize_skip_indexes_on_merge=false` não suprimir índices de texto (full-text) durante a mesclagem. Antes, apenas skip indexes não textuais (minmax, set, bloom\_filter) eram suprimidos. [#101932](https://github.com/ClickHouse/ClickHouse/pull/101932) ([Groene AI](https://github.com/groeneai)).
  * As entradas do cache de índice de similaridade vetorial agora são removidas após a remoção da parte (por exemplo, durante uma mesclagem), corrigindo o problema de entradas que nunca eram removidas devido a chaves de cache incompatíveis. [#99575](https://github.com/ClickHouse/ClickHouse/pull/99575) ([Seva Potapov](https://github.com/seva-potapov)).
  * Corrigida uma exceção `LOGICAL_ERROR` falsa durante o redimensionamento dinâmico do cache do sistema de arquivos devido a 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)).
  * Corrigido um possível erro lógico durante a leitura de subcolunas de map. [#101641](https://github.com/ClickHouse/ClickHouse/pull/101641) ([Pavel Kruglov](https://github.com/Avogar)).
  * Corrigida a prioridade da correspondência exata de subcolunas sobre a correspondência por prefixo em `getSubcolumnData` para evitar uma possível falha. [#101645](https://github.com/ClickHouse/ClickHouse/pull/101645) ([Pavel Kruglov](https://github.com/Avogar)).
  * Corrigido o uso de extremos incorretos em um índice min-max criado em uma coluna JSON, o que levava a resultados incorretos de consulta. [#101918](https://github.com/ClickHouse/ClickHouse/pull/101918) ([Pavel Kruglov](https://github.com/Avogar)).
  * Corrigido um bug de condição de corrida em SLRU no cache do sistema de arquivos (26.1+) que podia levar a um erro lógico na reserva de espaço. [#101991](https://github.com/ClickHouse/ClickHouse/pull/101991) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Corrigido um 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 desatualizados. [#101219](https://github.com/ClickHouse/ClickHouse/pull/101219) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Corrigida uma falha de asserção `file_offset_of_buffer_end <= getFileSize()` 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)).
  * Corrigido o limite de tamanho do cache ao recarregar a configuração. [#100659](https://github.com/ClickHouse/ClickHouse/pull/100659) ([Aleksei Filatov](https://github.com/aalexfvk)).
  * Corrigida uma interrupção com `LOGICAL_ERROR` durante o redimensionamento dinâmico do cache do sistema de arquivos SLRU, causada por estatísticas de evicção compartilhadas entre subfilas e por um caminho de recuperação incorreto para candidatos com falha. [#102396](https://github.com/ClickHouse/ClickHouse/pull/102396) ([Antonio Andelic](https://github.com/antonio2368)).
  * Corrigido o fato de a otimização `minmax_count_projection` e a otimização trivial `COUNT(*)` permanecerem desabilitadas permanentemente após uma exclusão leve. [#102900](https://github.com/ClickHouse/ClickHouse/pull/102900) ([Anton Popov](https://github.com/CurtizJ)).

  ### Correções de tipo de dados e serialização

  * Corrigido um resultado incorreto ou uma exceção durante a leitura de subcolumns de colunas ALIAS. [#95408](https://github.com/ClickHouse/ClickHouse/pull/95408) ([Pavel Kruglov](https://github.com/Avogar)).
  * Corrigido o problema que impedia a aggregate function `sumCount` de ler estados serializados mais antigos após a introdução de `Nullable(Tuple)`. [#97502](https://github.com/ClickHouse/ClickHouse/pull/97502) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Corrigido um logical error relacionado à ausência de um stream durante `INSERT SELECT` com JSON e buckets em shared data. [#97523](https://github.com/ClickHouse/ClickHouse/pull/97523) ([Pavel Kruglov](https://github.com/Avogar)).
  * Corrigidos possíveis travamentos durante a leitura de grânulos vazios em shared data avançado em JSON. [#97778](https://github.com/ClickHouse/ClickHouse/pull/97778) ([Pavel Kruglov](https://github.com/Avogar)).
  * Corrigida a compilação incorreta por JIT da função `sign` para tipos inteiros mais largos que `Int8` — valores fora do intervalo -128..127 podiam produzir um sinal incorreto. [#98012](https://github.com/ClickHouse/ClickHouse/pull/98012) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigido o problema que fazia o format `ProtobufList` não funcionar com o motor 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)).
  * Corrigida a corrupção silenciosa de dados ao inserir uma coluna `Date` de Parquet/Arrow em uma coluna `Enum` — a conversão entre tipos incompatíveis agora é rejeitada corretamente, em vez de armazenar valores 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 table com uma coluna `Nested`. [#98365](https://github.com/ClickHouse/ClickHouse/pull/98365) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma exceção ao ler de `Nullable(Tuple(...))` quando o nome de um elemento de Tuple colide com a subcolumn `null` de Nullable. [#98372](https://github.com/ClickHouse/ClickHouse/pull/98372) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida a conversão incorreta de Parquet `Bool` para `FixedString` no leitor native V3, que produzia raw bytes em vez de uma string representation. [#98378](https://github.com/ClickHouse/ClickHouse/pull/98378) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigido `tryGetColumnDescription` para filtrar subcolumns por Kind da coluna pai, em conformidade com outros métodos de lookup de colunas. [#98391](https://github.com/ClickHouse/ClickHouse/pull/98391) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigido o rollback de coluna no engine Buffer ao lidar com uma exceção durante a adição de um novo block. A lógica anterior podia levar a um state corrompido da coluna em memória. [#98551](https://github.com/ClickHouse/ClickHouse/pull/98551) ([Pavel Kruglov](https://github.com/Avogar)).
  * Corrigida uma exceção `Bad cast from type ColumnConst to ColumnDynamic` em comparação null-safe (`<=>` / `IS NOT DISTINCT FROM`) com colunas const `Dynamic` ou `Variant` e `NULL`. Também foi corrigido o problema em que `IS DISTINCT FROM` com `Dynamic`/`Variant` vs `NULL` sempre retornava incorretamente 0. [#98553](https://github.com/ClickHouse/ClickHouse/pull/98553) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigido o fato de `parseDateTimeBestEffort` interpretar incorretamente palavras que começam com prefixes de mês/dia da semana. [#98742](https://github.com/ClickHouse/ClickHouse/pull/98742) ([Pavel Kruglov](https://github.com/Avogar)).
  * Corrigida uma exceção de `reverseUTF8` em entrada UTF-8 inválida (truncada). [#98770](https://github.com/ClickHouse/ClickHouse/pull/98770) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma exceção `LOGICAL_ERROR` em funções financeiras (`financialNetPresentValue`, `financialInternalRateOfReturn`, etc.) ao passar argumentos do tipo `BFloat16`. [#98958](https://github.com/ClickHouse/ClickHouse/pull/98958) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * O SummingMergeTree não soma mais colunas `Bool` (e outros tipos de domínio); os valores `Bool` agora 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)).
  * Corrigido um comportamento indefinido (desreferenciamento de ponteiro nulo) ao alterar uma coluna version/sign/is\_deleted para `EPHEMERAL` ou `ALIAS` em motores MergeTree. Essas alterações agora são rejeitadas corretamente. [#98985](https://github.com/ClickHouse/ClickHouse/pull/98985) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigido o `parseDateTimeBestEffort`, que interpretava incorretamente palavras iniciadas por prefixos de mês no formato DD-month-YYYY. [#99350](https://github.com/ClickHouse/ClickHouse/pull/99350) ([Pavel Kruglov](https://github.com/Avogar)).
  * Corrigido `CHECK TABLE` com serialização esparsa dentro de um Tuple com Dynamic. [#99351](https://github.com/ClickHouse/ClickHouse/pull/99351) ([Pavel Kruglov](https://github.com/Avogar)).
  * Corrigido um erro lógico `unordered_map::at: key not found` no formato de saída Avro ao serializar colunas `Enum8`/`Enum16` com valores ausentes na definição do enum. [#99332](https://github.com/ClickHouse/ClickHouse/pull/99332) ([Desel72](https://github.com/Desel72)).
  * Corrigido um bug em que a comparação entre os tipos `Time[64]` e `DateTime[64]` era confusa; os valores `Time[64]` agora 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)).
  * Corrigida a desserialização de `\N` (NULL) para o tipo `Variant` nos formatos de texto Escaped/Raw. [#99648](https://github.com/ClickHouse/ClickHouse/pull/99648) ([Pavel Kruglov](https://github.com/Avogar)).
  * Corrigido um comportamento indefinido no leitor do formato Avro ao ler valores numéricos que excediam o limite do tipo da coluna de destino. Agora, as queries falham em caso de overflow, em vez de produzirem silenciosamente valores incorretos. [#99697](https://github.com/ClickHouse/ClickHouse/pull/99697) ([asyablue22](https://github.com/asyablue22)).
  * Corrigido um falso positivo de abort em `NativeReader` ao desserializar um fluxo no formato Native com divergência na contagem de linhas: alterado de `LOGICAL_ERROR` para `INCORRECT_DATA`. [#99822](https://github.com/ClickHouse/ClickHouse/pull/99822) ([Rahul Nair](https://github.com/motsc)).
  * Corrigido um abort de processo na desserialização de 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)).
  * Corrigida a configuração `aggregate_functions_null_for_empty` para funcionar com funções agregadas 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 uma exceção `LOGICAL_ERROR` na função `midpoint` quando chamada com tipos inteiros com e sem sinal misturados. [#99867](https://github.com/ClickHouse/ClickHouse/pull/99867) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma exceção `LOGICAL_ERROR` em queries envolvendo colunas `Dynamic` com junções cruzadas e filtros de runtime, causada por `ColumnVariant::filter` compartilhar ponteiros para colunas Variant em vez de cloná-los no caminho de otimização `hasOnlyNulls`. [#100234](https://github.com/ClickHouse/ClickHouse/pull/100234) ([Pavel Kruglov](https://github.com/Avogar)).
  * Corrigido um bug em array-of-variant que podia reinterpretar o tipo de dado ao chamar `arrayFirst`/`arrayLast`. Por exemplo, `Array(Variant(Date, Bool))` era convertido em `Bool` quando o tipo de variant subjacente real era `Date`. [#100255](https://github.com/ClickHouse/ClickHouse/pull/100255) ([timothygk](https://github.com/timothygk)).
  * Corrigidos os formatos `CSV` e `MsgPack`, que não conseguiam interpretar `Nullable(Tuple)` corretamente. [#100038](https://github.com/ClickHouse/ClickHouse/pull/100038) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Corrigidas as funções `accurateCastOrDefault` e `to*OrDefault`, que não preservavam o tipo de coluna Const para entradas constantes. [#100132](https://github.com/ClickHouse/ClickHouse/pull/100132) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Parâmetros de consulta omitidos com tipo `LowCardinality(Nullable(T))` agora assumem corretamente `NULL` por padrão, assim como `Nullable(T)`. [#100144](https://github.com/ClickHouse/ClickHouse/pull/100144) ([Denys Melnyk](https://github.com/germiBest)).
  * Corrigido overflow de inteiro com sinal (comportamento indefinido) em `toStartOfInterval` quando chamado com valores de intervalo de milissegundos/microssegundos muito grandes em `DateTime64` de alta precisão. [#100156](https://github.com/ClickHouse/ClickHouse/pull/100156) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigidos os runtime filters de join sobre o tipo de dado `Variant`. [#100182](https://github.com/ClickHouse/ClickHouse/pull/100182) ([Dmitry Novik](https://github.com/novikd)).
  * Corrigido um cast de `Time64` para `UInt64` que podia limitar os valores a 24 horas. [#100025](https://github.com/ClickHouse/ClickHouse/pull/100025) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
  * Corrigida uma exceção ao calcular o supertipo comum para tuplas vazias e não vazias com `use_variant_as_common_type` habilitado. [#100699](https://github.com/ClickHouse/ClickHouse/pull/100699) ([Antonio Andelic](https://github.com/antonio2368)).
  * Corrigido comportamento indefinido em `positiveModulo` quando o divisor sem sinal não cabe no tipo de resultado com sinal. [#100705](https://github.com/ClickHouse/ClickHouse/pull/100705) ([Raúl Marín](https://github.com/Algunenano)).
  * Corrigido comportamento indefinido (overflow de inteiro com sinal) em `toStartOfInterval` ao usar intervalos de 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)).
  * Corrigidos os combinadores de função de agregação `If`, `Distinct`, `DistinctIf` e `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)`. [#100826](https://github.com/ClickHouse/ClickHouse/pull/100826) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * `cast_keep_nullable`, quando habilitado, não lança mais erro ao fazer cast de um null `Dynamic` para um `Variant`. [#100864](https://github.com/ClickHouse/ClickHouse/pull/100864) ([Seva Potapov](https://github.com/seva-potapov)).
  * Corrigida uma exceção em `intDiv`/`intDivOrZero` em arrays de tuplas anuláveis. [#100895](https://github.com/ClickHouse/ClickHouse/pull/100895) ([Raúl Marín](https://github.com/Algunenano)).
  * Corrigido comportamento indefinido (overflow de inteiro com sinal) em `parseDateTimeBestEffort` ao interpretar strings de datetime com mais de 18 dígitos fracionários de segundo. [#100948](https://github.com/ClickHouse/ClickHouse/pull/100948) ([Vasily Chekalkin](https://github.com/bacek)).
  * Corrigida 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)`. [#101021](https://github.com/ClickHouse/ClickHouse/pull/101021) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Corrigidas colunas ALIAS com tipos `DateTime`/`DateTime64` que não aplicavam a conversão de fuso horário quando o fuso horário declarado diferia do fuso horário da expressão. [#101043](https://github.com/ClickHouse/ClickHouse/pull/101043) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Removido `Nullable` da coluna de resultado em `arrayIntersect` e funções relacionadas para evitar uma incompatibilidade entre serialização e desserialização. [#101569](https://github.com/ClickHouse/ClickHouse/pull/101569) ([George Larionov](https://github.com/george-larionov)).
  * Corrigido `positiveModulo(tuple, number)`, que estava sendo encaminhado incorretamente para divisão em vez de módulo. [#101709](https://github.com/ClickHouse/ClickHouse/pull/101709) ([ClickGap AI Bot](https://github.com/clickgapai)).
  * Corrigida a saída incorreta em `formatDateTime` com o Formatter `%W` em determinadas configurações de formatting não padrão. [#101847](https://github.com/ClickHouse/ClickHouse/pull/101847) ([Robert Schulze](https://github.com/rschu1ze)).
  * Corrigida uma exceção de incompatibilidade de tipo em `transform` quando a coluna padrão é const em alguns blocos. [#100616](https://github.com/ClickHouse/ClickHouse/pull/100616) ([Pavel Kruglov](https://github.com/Avogar)).
  * Permitidos row groups vazios em Parquet. [#100653](https://github.com/ClickHouse/ClickHouse/pull/100653) ([Vitaly Baranov](https://github.com/vitlibar)).
  * `min`/`max`/`argMin`/`argMax` agora tratam NaN de forma consistente com `ORDER BY`: NaN é sempre ignorado (retornado apenas quando todos os valores são NaN). Antes, os resultados dependiam da posição do 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)).
  * Corrigida a inferência incorreta do tipo de dado de data em caso de overflow após o ajuste de fuso horário. [#102674](https://github.com/ClickHouse/ClickHouse/pull/102674) ([Pavel Kruglov](https://github.com/Avogar)).
  * Corrigido `CASE` com uma expressão `Dynamic` que retornava `ELSE` para todas as linhas. [#102684](https://github.com/ClickHouse/ClickHouse/pull/102684) ([Pavel Kruglov](https://github.com/Avogar)).
  * Corrigida a serialização do tipo `Dynamic` achatado com tipos de dado codificados em binário. [#102692](https://github.com/ClickHouse/ClickHouse/pull/102692) ([Pavel Kruglov](https://github.com/Avogar)).
  * Corrigido o fato de `cast_string_to_date_time_mode` ser ignorado em `CAST` para `Nullable(DateTime)`. [#103035](https://github.com/ClickHouse/ClickHouse/pull/103035) ([Pavel Kruglov](https://github.com/Avogar)).
  * A representação de nulo na serialização de colunas replicadas e esparsas agora respeita as configurações (por exemplo, `format_tsv_null_representation`). [#102888](https://github.com/ClickHouse/ClickHouse/pull/102888) ([Hechem Selmi](https://github.com/m-selmi)).

  ### Correções de text index e skip index

  * Corrigido o uso do índice de texto com outros índices de salto. Antes, erros lógicos como "Trying to get non-existing mark" podiam ocorrer quando um filtro de consulta usava simultaneamente um índice de texto e outros índices de salto regulares. [#98555](https://github.com/ClickHouse/ClickHouse/pull/98555) ([Anton Popov](https://github.com/CurtizJ)).
  * Corrigida a recriação de índices de texto durante merges com TTL. [#99107](https://github.com/ClickHouse/ClickHouse/pull/99107) ([Anton Popov](https://github.com/CurtizJ)).
  * Corrigida a validação excessivamente rígida do preprocessador do índice de texto. [#99359](https://github.com/ClickHouse/ClickHouse/pull/99359) ([Anton Popov](https://github.com/CurtizJ)).
  * Removido o suporte a funções negadas (`notEquals`, `notLike`, `notIn`) na análise de índice de texto. Essas funções nunca conseguiam ignorar grânulos, portanto analisá-las no índice apenas adicionava sobrecarga. [#99393](https://github.com/ClickHouse/ClickHouse/pull/99393) ([Anton Popov](https://github.com/CurtizJ)).
  * Corrigida uma exceção `NOT_FOUND_COLUMN_IN_BLOCK` quando um predicado de índice de texto (por exemplo, `hasAllTokens`) era referenciado nas cláusulas `SELECT` e `WHERE` por meio de um alias. [#99504](https://github.com/ClickHouse/ClickHouse/pull/99504) ([Anton Popov](https://github.com/CurtizJ)).
  * Corrigidos resultados incorretos ao usar `hasAllTokens` com `OR` entre colunas que têm índices de texto separados. [#99505](https://github.com/ClickHouse/ClickHouse/pull/99505) ([Anton Popov](https://github.com/CurtizJ)).
  * Corrigida a leitura do índice de texto em uma tabela com exclusões leves e políticas de linha já existentes. [#99661](https://github.com/ClickHouse/ClickHouse/pull/99661) ([Anton Popov](https://github.com/CurtizJ)).
  * Corrigida a análise, pelo índice de texto com preprocessador, de predicados com a função `IN`, além de uma colisão de tokens pesquisados que podia levar a resultados incorretos. [#99755](https://github.com/ClickHouse/ClickHouse/pull/99755) ([Anton Popov](https://github.com/CurtizJ)).
  * Corrigido o uso incorreto do índice de texto com as funções `startsWith` e `endsWith` em tokenizers que não oferecem suporte a correspondência por substring (`array`, `splitByString`). Antes, esses tokenizers podiam produzir resultados incorretos silenciosamente. [#100151](https://github.com/ClickHouse/ClickHouse/pull/100151) ([Anton Popov](https://github.com/CurtizJ)).
  * Corrigido um crash raro quando uma exceção "Memory Limit" era lançada durante a construção do índice de texto. [#100213](https://github.com/ClickHouse/ClickHouse/pull/100213) ([Anton Popov](https://github.com/CurtizJ)).
  * Corrigidos erros "Not-ready Set is passed as the second argument" durante a análise de um índice de texto criado sobre `mapValues` para predicados contendo uma cláusula `IN`. [#100224](https://github.com/ClickHouse/ClickHouse/pull/100224) ([Anton Popov](https://github.com/CurtizJ)).
  * Corrigido um crash ao usar um índice de busca textual com uma cláusula `IN` contendo uma subconsulta de tupla, por exemplo, `WHERE (id, str) IN (SELECT (id, str) FROM ...)`, ou quando o número de colunas na subconsulta não correspondia à tupla no lado esquerdo de `IN`. [#100959](https://github.com/ClickHouse/ClickHouse/pull/100959) ([Anton Popov](https://github.com/CurtizJ)).
  * O tokenizer `splitByString` agora rejeita strings separadoras vazias. [#101928](https://github.com/ClickHouse/ClickHouse/pull/101928) ([Robert Schulze](https://github.com/rschu1ze)).
  * O tokenizer `sparseGrams` gerava tokens mais longos do que o comprimento máximo fornecido (devido a um `+2` fixo na implementação). [#101934](https://github.com/ClickHouse/ClickHouse/pull/101934) ([Elmi Ahmadov](https://github.com/ahmadov)).
  * Corrigida 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`, com `query_plan_direct_read_from_text_index` habilitado. [#101939](https://github.com/ClickHouse/ClickHouse/pull/101939) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
  * Corrigido `hasToken`/`hasTokenOrNull` com padrões de busca compostos apenas por separadores (por exemplo, `'()'`, `'!!!'`) em colunas com índice de texto: antes, 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)).
  * 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 desabilitadas quando a configuração `compatibility` aponta para uma versão anterior à 26.1. [#102422](https://github.com/ClickHouse/ClickHouse/pull/102422) ([Nikita Fomichev](https://github.com/fm4v)).
  * Adicionado suporte a colunas `ALIAS` na otimização de leitura direta a partir do índice de texto. [#103037](https://github.com/ClickHouse/ClickHouse/pull/103037) ([Anton Popov](https://github.com/CurtizJ)).

  ### Correções no lago de dados

  * Corrigida uma condição de corrida lógica na mudança da `snapshot version` no mecanismo de tabela `DeltaLake`, e removidos recarregamentos redundantes e pesados de snapshot. [#96226](https://github.com/ClickHouse/ClickHouse/pull/96226) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Corrigida uma exceção `DUPLICATE_COLUMN` e NULLs silenciosos ao ler tabelas Delta Lake que usam o modo de mapeamento de colunas "name" com campos `struct` cujos nomes contêm pontos. [#98013](https://github.com/ClickHouse/ClickHouse/pull/98013) ([Caio Ishizaka Costa](https://github.com/ch-caioishizaka)).
  * Corrigido um bug ao usar o Unity Catalog sobre 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 configuração `auth_header`. [#98827](https://github.com/ClickHouse/ClickHouse/pull/98827) ([Michael Anastasakis](https://github.com/michael-anastasakis)).
  * Agora é proibido criar, anexar e atualizar tabelas locais de lago de dados fora dos caminhos do usuário; isso é verificado ao criar e atualizar `IDataLakeMetadata`. [#98936](https://github.com/ClickHouse/ClickHouse/pull/98936) ([Daniil Ivanik](https://github.com/divanik)).
  * Corrigidas as leituras do Iceberg BigLake: as credenciais ADC agora são encaminhadas ao cliente S3 do GCS (corrigindo erros 403), as credenciais OAuth2 são codificadas em URL antes do envio, e o percurso do espaço de nomes não é mais interrompido por respostas HTTP 400 do BigLake. [#98998](https://github.com/ClickHouse/ClickHouse/pull/98998) ([Nikita Fomichev](https://github.com/fm4v)).
  * Corrigido um erro de acesso fora dos limites ao consultar apenas colunas virtuais de uma tabela Iceberg com dados Avro. [#99080](https://github.com/ClickHouse/ClickHouse/pull/99080) ([alesapin](https://github.com/alesapin)).
  * Corrigida uma falha em `ALTER TABLE ... REMOVE SETTINGS` para o mecanismo de tabela Iceberg. [#99108](https://github.com/ClickHouse/ClickHouse/pull/99108) ([alesapin](https://github.com/alesapin)).
  * Corrigida uma falha muito rara quando uma tabela Iceberg contém arquivos em formatos mistos (ORC e Parquet). [#99168](https://github.com/ClickHouse/ClickHouse/pull/99168) ([alesapin](https://github.com/alesapin)).
  * Corrigida uma falha (desreferência 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)).
  * O ClickHouse agora lida corretamente com tabelas no estilo Spark (com um caminho absoluto completo para cada arquivo ou um caminho relativo ao caminho comum da tabela). [#99935](https://github.com/ClickHouse/ClickHouse/pull/99935) ([alesapin](https://github.com/alesapin)).
  * Corrigida uma exceção quando uma configuração de caminho do arquivo de metadata do Iceberg contém um null byte. [#100283](https://github.com/ClickHouse/ClickHouse/pull/100283) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigido um bug de copiar e colar em que `delta_lake_snapshot_end_version`, definida sem `delta_lake_snapshot_start_version`, era ignorada silenciosamente em vez de gerar um erro `BAD_ARGUMENTS`. [#100454](https://github.com/ClickHouse/ClickHouse/pull/100454) ([Mohammad Lareb Zafar](https://github.com/zlareb1)).
  * Corrigido um erro lógico em tabelas Iceberg ordenadas durante mutações. [#100499](https://github.com/ClickHouse/ClickHouse/pull/100499) ([alesapin](https://github.com/alesapin)).
  * Corrigido o catálogo Polaris com Azure, em que, desde a versão 25.12, o catálogo adicionava o bucket no início do caminho. [#100583](https://github.com/ClickHouse/ClickHouse/pull/100583) ([Konstantin Vedernikov](https://github.com/scanhex12)).
  * Corrigida uma exceção `Logical error: 'partitions_count > 0'` ao executar comandos `ALTER TABLE UPDATE` consecutivos em uma tabela Iceberg particionada. [#101278](https://github.com/ClickHouse/ClickHouse/pull/101278) ([Desel72](https://github.com/Desel72)).
  * Corrigido o `insert-select` de um cluster Delta Lake com ReplicatedMergeTree. [#101299](https://github.com/ClickHouse/ClickHouse/pull/101299) ([Konstantin Vedernikov](https://github.com/scanhex12)).
  * Passa a emitir um erro quando as configurações de versão `delta_lake_snapshot_version` ou CDF são 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)).
  * Corrigido um loop de retry de INSERT do Iceberg que falhava quando a table era criada com `iceberg_metadata_file_path` e a versão de metadata de destino já existia. [#101548](https://github.com/ClickHouse/ClickHouse/pull/101548) ([Groene AI](https://github.com/groeneai)).
  * Corrigida uma falha do servidor (`LOGICAL_ERROR`) ao selecionar de uma visão materializada baseada no table engine IcebergLocal. [#101577](https://github.com/ClickHouse/ClickHouse/pull/101577) ([Groene AI](https://github.com/groeneai)).
  * Corrigida uma falha em `ALTER TABLE ... UPDATE` do IcebergLocal ao usar o formato Avro, causada por tipos wrapper `LowCardinality`/`Nullable` não serem desembrulhados antes da serialização. [#102337](https://github.com/ClickHouse/ClickHouse/pull/102337) ([Desel72](https://github.com/Desel72)).
  * Adicionada a coluna `hostname` ausente a `system.delta_lake_metadata_log` e `system.iceberg_metadata_log`. [#102162](https://github.com/ClickHouse/ClickHouse/pull/102162) ([Michael Russell](https://github.com/Crazybus)).
  * Correção no CoalescingMergeTree para o tipo Array. [#102384](https://github.com/ClickHouse/ClickHouse/pull/102384) ([Konstantin Vedernikov](https://github.com/scanhex12)).

  ### Correções de S3/Azure/armazenamento de objetos

  * Corrigida uma exceção em `CachedOnDiskReadBufferFromFile::readBigAt`. [#97890](https://github.com/ClickHouse/ClickHouse/pull/97890) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Corrigido um crash em que consultas a arquivos com um padrão glob (por exemplo, `file('dir/**', 'LineAsString')`) geravam uma exceção de sistema de arquivos não tratada se o diretório contivesse um symlink órfão. Symlinks órfãos agora são ignorados silenciosamente. [#98143](https://github.com/ClickHouse/ClickHouse/pull/98143) ([Mark Andreev](https://github.com/mrk-andreev)).
  * Corrigido 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 um formato explícito), causado pelo leitor ArrowStream interpretar incorretamente os primeiros bytes como um comprimento de metadata muito grande. [#98893](https://github.com/ClickHouse/ClickHouse/pull/98893) ([Konstantin Bogdanov](https://github.com/thevar1able)).
  * Corrigida uma race condition que podia causar uma exceção "ReadBuffer is canceled" em consultas usando `urlCluster` ou funções de tabela de cluster semelhantes. [#98955](https://github.com/ClickHouse/ClickHouse/pull/98955) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma mensagem enganosa "inflate failed: buffer error" ao ler arquivos comprimidos inexistentes por meio da função de tabela `url()` com padrões glob. [#99034](https://github.com/ClickHouse/ClickHouse/pull/99034) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigidas chamadas N+1 de `HeadObject` para globs com expansão de chaves no S3. [#99219](https://github.com/ClickHouse/ClickHouse/pull/99219) ([Konstantin Bogdanov](https://github.com/thevar1able)).
  * Corrigidos casos em que números com zeros à esquerda em um caminho de particionamento Hive causavam erros. [#99458](https://github.com/ClickHouse/ClickHouse/pull/99458) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
  * Corrigido um `seek` incorreto em `AsynchronousReadBufferFromFileDescriptor` com `O_DIRECT`. [#99678](https://github.com/ClickHouse/ClickHouse/pull/99678) ([Pavel Kruglov](https://github.com/Avogar)).
  * Corrigido um bug em que o ClickHouse podia ignorar arquivos se o header `Content-Length` estivesse ausente na resposta à solicitaçã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)).
  * 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)).
  * Corrigido um segfault em `s3Cluster` e em 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)).
  * Corrigida uma exceção que escapava do destrutor `Client::~Client` do S3, causando a finalização do servidor. [#101798](https://github.com/ClickHouse/ClickHouse/pull/101798) ([Gagan Dhakrey](https://github.com/gagandhakrey)).
  * Corrigido o registro incorreto de host e port durante a reconexão. [#102280](https://github.com/ClickHouse/ClickHouse/pull/102280) ([Grant Holly](https://github.com/grantholly-clickhouse)).
  * Corrigida uma exceção do servidor no ClusterDiscovery quando um cluster estático (definido na config) ficava temporariamente sem nós ativos. [#102661](https://github.com/ClickHouse/ClickHouse/pull/102661) ([Kseniia Sumarokova](https://github.com/kssenii)).

  ### Correções no S3Queue

  * S3Queue: corrigida uma falha de asserção após a perda de conexão com o ZooKeeper, mas com commit bem-sucedido. [#100210](https://github.com/ClickHouse/ClickHouse/pull/100210) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * 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)).

  ### Correções de segurança e controle de acesso

  * A função de tabela `loop` chamava `inner_storage->read()` diretamente, contornando a camada do interpretador, onde políticas de linha, grants 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)`. [#97682](https://github.com/ClickHouse/ClickHouse/pull/97682) ([pufit](https://github.com/pufit)).
  * Impõe verificações de `READ ON FILE` para `file()` escalar e `DESCRIBE TABLE file()`. [#98115](https://github.com/ClickHouse/ClickHouse/pull/98115) ([Nikolay Degterinsky](https://github.com/evillique)).
  * 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)).
  * Corrigido um bypass de RBAC que permitia aos usuários executar `DESCRIBE` em qualquer tabela via `remote()`, `remoteSecure()`, `cluster()` ou `clusterAllReplicas()` apontando para localhost, sem exigir o privilégio `SHOW_COLUMNS`. [#98669](https://github.com/ClickHouse/ClickHouse/pull/98669) ([pufit](https://github.com/pufit)).
  * Corrigido um problema em que `system.grants` omitia os parâmetros de expressão regular para grants `URL` e `S3` na coluna `access_object`. [#98987](https://github.com/ClickHouse/ClickHouse/pull/98987) ([DQ](https://github.com/il9ue)).
  * Corrigido um bypass de RBAC que permitia aos usuários obter a estrutura da tabela via `DESCRIBE TABLE` ou `CREATE TABLE AS` em funções de tabela (`mysql()`, `postgresql()`, `sqlite()`, `arrowFlight()`, `jdbc()`, `odbc()`, etc.) sem os privilégios necessários de acesso à origem. 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)).
  * Limita as constraints de settings no worker de DDL para consultas DDL distribuídas. [#99317](https://github.com/ClickHouse/ClickHouse/pull/99317) ([Pablo Marcos](https://github.com/pamarcos)).
  * Corrigidos 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)).
  * As credenciais em strings de conexão JDBC, ODBC e NATS agora são mascaradas nos query logs e na saída de `SHOW CREATE`. Para strings de conexão no estilo URI, apenas a parte da senha é mascarada. A setting `nats_token` agora também é mascarada. [#99344](https://github.com/ClickHouse/ClickHouse/pull/99344) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
  * Proíbe a leitura de credenciais do Google a partir de um arquivo local, o que era inseguro porque permitia ler outras credenciais se o caminho do arquivo fosse conhecido. [#99584](https://github.com/ClickHouse/ClickHouse/pull/99584) ([Konstantin Vedernikov](https://github.com/scanhex12)).
  * Corrigido o bypass da origem do Dicionário MySQL ao `RemoteHostFilter` para parâmetros DDL inline. [#99720](https://github.com/ClickHouse/ClickHouse/pull/99720) ([Shaohua Wang](https://github.com/tiandiwonder)).
  * Corrigido `system.completions` para filtrar corretamente databases, tabelas e colunas por direitos de acesso em todas as combinações de grants: revogação por tabela, por DB e por coluna. [#100432](https://github.com/ClickHouse/ClickHouse/pull/100432) ([Shaohua Wang](https://github.com/tiandiwonder)).
  * Sanitiza `query_id` no handler HTTP para evitar injeção de CRLF nos headers de resposta por meio do header `X-ClickHouse-Query-Id`. [#100500](https://github.com/ClickHouse/ClickHouse/pull/100500) ([Pablo Marcos](https://github.com/pamarcos)).
  * Alguns catálogos podiam exibir informações sensíveis na seção `SETTINGS` de `SELECT * FROM system.databases`. Isso não acontece mais. [#100800](https://github.com/ClickHouse/ClickHouse/pull/100800) ([Konstantin Vedernikov](https://github.com/scanhex12)).
  * As políticas de linha não eram propagadas dos subplanejadores para o planejador pai para registro em log, por isso ficavam ausentes em `query_log` para views, subconsultas e instruções `INSERT SELECT`. Agora elas são mantidas em `QueryAccessInfo` para registro em log. [#101044](https://github.com/ClickHouse/ClickHouse/pull/101044) ([Narasimha Pakeer](https://github.com/npakeer)).

  ### Correções de backup e restauração

  * Corrigido o problema de `max_execution_time` não ser aplicado a backup/restauração. [#99205](https://github.com/ClickHouse/ClickHouse/pull/99205) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Corrigida a exceção `ReadBuffer is canceled. Can't read from it.` em operações de backup/restauração com arquivos zip. [#100400](https://github.com/ClickHouse/ClickHouse/pull/100400) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Validados os caminhos das entradas de arquivo nos metadados de backup para rejeitar path traversal, caminhos absolutos e nomes vazios durante `RESTORE`. [#100483](https://github.com/ClickHouse/ClickHouse/pull/100483) ([Pablo Marcos](https://github.com/pamarcos)).
  * Corrigidas 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)).

  ### Correções do ClickHouse Keeper

  * Corrigido um data race no cliente ZooKeeper entre a thread de envio e a thread de recebimento. [#97887](https://github.com/ClickHouse/ClickHouse/pull/97887) ([Pablo Marcos](https://github.com/pamarcos)).
  * Corrigida a perda de dados do Keeper após reinicialização ao usar 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)).
  * Definido o componente `Watch` para respostas de watch em `aggregated_zookeeper_log`, em vez de deixá-lo vazio. [#98202](https://github.com/ClickHouse/ClickHouse/pull/98202) ([Antonio Andelic](https://github.com/antonio2368)).
  * Corrigido um problema em que o ClickHouse Keeper desconectava clientes Java do ZooKeeper após uma solicitação `addWatch`. O cliente Java espera um corpo `ErrorResponse` de 4 bytes, mas o Keeper enviava um corpo vazio, causando `EOFException` e desconexão da sessão. [#98499](https://github.com/ClickHouse/ClickHouse/pull/98499) ([Antonio Andelic](https://github.com/antonio2368)).
  * Corrigidas as métricas do Keeper `zk_followers` e `zk_synced_followers`, que não diminuíam quando um seguidor caía. Adicionadas as novas métricas `zk_learners` e `zk_synced_non_voting_followers` ao comando `mntr`. [#98504](https://github.com/ClickHouse/ClickHouse/pull/98504) ([Antonio Andelic](https://github.com/antonio2368)).
  * Corrigido o fato de a porta Raft segura do Keeper ignorar `cipherList` e `dhParamsFile` da configuração `openSSL`. [#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 era, na verdade, gasto aguardando ociosamente em `poll()` entre heartbeats. [#98510](https://github.com/ClickHouse/ClickHouse/pull/98510) ([Antonio Andelic](https://github.com/antonio2368)).
  * Corrigidas conexões TCP do Keeper que impediam o desligamento gracioso do servidor por não responderem ao sinal de desligamento. [#98525](https://github.com/ClickHouse/ClickHouse/pull/98525) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma asserção de depuração em `DDLWorker` causada por um `first_failed_task_name` obsoleto após uma entrada do ZooKeeper ser excluída durante a recuperação da reinicialização. [#99099](https://github.com/ClickHouse/ClickHouse/pull/99099) ([Antonio Andelic](https://github.com/antonio2368)).
  * Corrigido um caso de crash no Keeper. [#99133](https://github.com/ClickHouse/ClickHouse/pull/99133) ([JIaQi Tang](https://github.com/JiaQiTang98)).
  * Corrigido um bug no Keeper em que uma solicitação de leitura podia ficar travada (causando timeout de sessão) se uma sessão diferente e não relacionada no mesmo servidor fosse fechada exatamente no momento errado. [#99484](https://github.com/ClickHouse/ClickHouse/pull/99484) ([Michael Kolupaev](https://github.com/al13n321)).
  * Corrigido um segfault no NuRaft devido a uma race condition. [#100444](https://github.com/ClickHouse/ClickHouse/pull/100444) ([Pablo Marcos](https://github.com/pamarcos)).
  * Corrigida a falha de `CREATE TABLE` em `KeeperMap` com "Cannot create metadata for table" quando nós remanescentes do ZooKeeper de um drop parcial anterior à versão 25.1 não tinham o nó `drop_lock_version`. [#101623](https://github.com/ClickHouse/ClickHouse/pull/101623) ([Antonio Andelic](https://github.com/antonio2368)).
  * Corrigida a perda do registry de UDF quando uma sessão do ZooKeeper expirava durante o refresh periódico — todas as Funções Definidas pelo Usuário podiam ficar indisponíveis até que um full refresh fosse concluído com sucesso. [#101891](https://github.com/ClickHouse/ClickHouse/pull/101891) ([Nikita Fomichev](https://github.com/fm4v)).
  * Corrigido um crash no refresh de UDF causado por `ZooKeeperRetriesControl` tentar novamente 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)).

  ### Correções de travamentos e estabilidade

  * Corrigido um crash nas funções do dialeto Kusto `bin()`, `bin_at()`, `extract()` e `indexof()` quando argumentos vazios são fornecidos. [#95736](https://github.com/ClickHouse/ClickHouse/pull/95736) ([NeedmeFordev](https://github.com/spider-yamet)).
  * Corrigido um crash/assert do servidor em `mapContainsKey`/`mapContainsKeyLike` com um skip index `tokenbf_v1`. [#97826](https://github.com/ClickHouse/ClickHouse/pull/97826) ([Shankar Iyer](https://github.com/shankar-iyer)).
  * Corrigido um crash 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 alta concorrência. [#97850](https://github.com/ClickHouse/ClickHouse/pull/97850) ([Antonio Andelic](https://github.com/antonio2368)).
  * Corrigido um acesso fora dos limites em `ColumnConst::getExtremes` que podia causar um crash quando `extremes = 1` está habilitado. [#98263](https://github.com/ClickHouse/ClickHouse/pull/98263) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Validação de dados corrompidos durante a desserialização de `DDSketch` para evitar segfaults, exceções, loops infinitos e OOM ao ler estados de função de agregação `quantilesDD` corrompidos. [#98284](https://github.com/ClickHouse/ClickHouse/pull/98284) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma exceção rara no executor do pipeline, que podia se manifestar como `Received signal 6` (em compilações de depuração), quando a expansão do pipeline entra em condição de corrida com o cancelamento da consulta. [#98428](https://github.com/ClickHouse/ClickHouse/pull/98428) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma desreferenciação 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)).
  * Corrigido um deadlock no pipeline ao usar `sort_overflow_mode = 'break'` junto com funções de janela. [#98543](https://github.com/ClickHouse/ClickHouse/pull/98543) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigido um crash por desreferenciação de ponteiro nulo em tabelas de sistema criadas entre o snapshot das tabelas em `IDatabaseTablesIterator::table()` e a alteração dessas tabelas em outra thread durante a iteração posterior. [#98792](https://github.com/ClickHouse/ClickHouse/pull/98792) ([Grant Holly](https://github.com/grantholly-clickhouse)).
  * Corrigido o desvio no rastreamento de memória causado por alocações com falha que não eram revertidas, comportamento indefinido de `nallocx(0)` e um erro de uma unidade no rastreamento global de pico. O rastreamento foi estendido para abranger os ring buffers do `io_uring`. [#98915](https://github.com/ClickHouse/ClickHouse/pull/98915) ([Antonio Andelic](https://github.com/antonio2368)).
  * Corrigido um crash do servidor (`std::terminate`) ao executar `ALTER TABLE ... DROP PART` em um patch part após uma alteração de esquema (por exemplo, ADD COLUMN). [#99036](https://github.com/ClickHouse/ClickHouse/pull/99036) ([Peng](https://github.com/fastio)).
  * Corrigido um crash do servidor que podia ocorrer se uma exceção de limite de memória excedido fosse lançada durante uma leitura de disco em cache. [#99042](https://github.com/ClickHouse/ClickHouse/pull/99042) ([Shankar Iyer](https://github.com/shankar-iyer)).
  * Corrigido um crash acionado por uma exceção de limite de memória lançada durante a aplicação de patch part. [#99086](https://github.com/ClickHouse/ClickHouse/pull/99086) ([Anton Popov](https://github.com/CurtizJ)).
  * Corrigido um crash ao usar uma tabela Buffer com `SAMPLE` quando o destino não oferece suporte a isso. [#99141](https://github.com/ClickHouse/ClickHouse/pull/99141) ([Kseniia Sumarokova](https://github.com/kssenii)).
  * Corrigido um uso da heap após liberação quando uma tabela é removida simultaneamente a uma consulta de leitura em execução. [#99483](https://github.com/ClickHouse/ClickHouse/pull/99483) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigido um heap-buffer-overflow em `CompressionCodecT64` e um abort do processo em `CompressionCodecMultiple` ao descomprimir dados comprimidos malformados. Os codecs agora lançam uma exceção em vez de travar. [#99680](https://github.com/ClickHouse/ClickHouse/pull/99680) ([Rahul Nair](https://github.com/motsc)).
  * Corrigido um loop infinito ao ler arquivos no formato `Npy` com dimensões negativas de shape. [#99812](https://github.com/ClickHouse/ClickHouse/pull/99812) ([Desel72](https://github.com/Desel72)).
  * Corrigido um global-buffer-overflow na função `CRC32` em 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)).
  * Corrigida uma falha de asserção em `sipHash128Keyed` (e funções de hash com chave semelhantes) quando o argumento de dados é 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 uma falha de asserção ao multiplicar aggregate states de `NumericIndexedVector` por uma constante inteira par, causada por self-XOR em bitmaps Roaring com alias em `pointwiseAddInplace`. [#99976](https://github.com/ClickHouse/ClickHouse/pull/99976) ([Desel72](https://github.com/Desel72)).
  * Corrigido um desreferenciamento de nullptr no leitor de Parquet quando o caminho filter-in-decoder encontra páginas filtradas. [#99677](https://github.com/ClickHouse/ClickHouse/pull/99677) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigido um travamento do servidor local quando `CREATE DICTIONARY` tem uma definição com um valor de lista que contém uma função inexistente. [#100036](https://github.com/ClickHouse/ClickHouse/pull/100036) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
  * Corrigido um SIGSEGV ao ler patch parts após `ALTER MODIFY COLUMN`. [#100107](https://github.com/ClickHouse/ClickHouse/pull/100107) ([Nikolay Degterinsky](https://github.com/evillique)).
  * Corrigido uso de valor não inicializado em `StringSearcher.h`. [#100225](https://github.com/ClickHouse/ClickHouse/pull/100225) ([Konstantin Bogdanov](https://github.com/thevar1able)).
  * Corrigido um travamento 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)).
  * Corrigido um heap-buffer-overflow em `sorted_buffer_gt::insert()` do usearch que podia travar o processo ou corromper silenciosamente a memória durante a busca por similaridade vetorial. [#100537](https://github.com/ClickHouse/ClickHouse/pull/100537) ([Dustin Healy](https://github.com/dustinhealy)).
  * Corrigido um travamento do 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)).
  * Corrigido um 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)).
  * Corrigido um segfault por desreferenciamento de ponteiro nulo ao carregar dicionários durante o desligamento do servidor. [#100839](https://github.com/ClickHouse/ClickHouse/pull/100839) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
  * Corrigido um buffer overflow 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)).
  * Corrigido um crash (`LOGICAL_ERROR`) ao consultar uma tabela `Merge` (ou a função de tabela `merge()`) que agrega várias tabelas, incluindo uma tabela `Distributed`, com `distributed_group_by_no_merge=1` habilitado. [#100859](https://github.com/ClickHouse/ClickHouse/pull/100859) ([Groene AI](https://github.com/groeneai)).
  * Corrigido um crash ao criar um dicionário de polígonos a partir de uma tabela `MergeTree` que usa serialização de colunas esparsas. [#100964](https://github.com/ClickHouse/ClickHouse/pull/100964) ([Anton Popov](https://github.com/CurtizJ)).
  * Corrigido um crash (`Logical error: isConst/isSparse/isReplicated assertTypeEquality`) em algoritmos de merge quando a replicação lazy de colunas (`enable_lazy_columns_replication`) produz colunas `ColumnReplicated` que seguem para pipelines de merge-sort com entradas que chegam tardiamente. [#101036](https://github.com/ClickHouse/ClickHouse/pull/101036) ([Groene AI](https://github.com/groeneai)).
  * Corrigido um crash do servidor (`SIGABRT`) ao usar funções agregadas com o combinador interno `Null` (por exemplo, `sumNull`, `avgNull`) e `aggregate_functions_null_for_empty = 1`. [#101147](https://github.com/ClickHouse/ClickHouse/pull/101147) ([Groene AI](https://github.com/groeneai)).
  * Corrigido um use-after-free no caminho de escrita do cache do sistema de arquivos que podia causar leituras de memória já liberada ao registrar em log segmentos de arquivo concluídos. [#101161](https://github.com/ClickHouse/ClickHouse/pull/101161) ([Groene AI](https://github.com/groeneai)).
  * Corrigido um crash do servidor com "Trying to attach external table to a ready set without explicit elements" quando a análise de índice distribuído encontra um predicado `GLOBAL IN` cujo conjunto foi criado sem elementos explícitos. [#101178](https://github.com/ClickHouse/ClickHouse/pull/101178) ([Groene AI](https://github.com/groeneai)).
  * Corrigidas as funções agregadas `MAX`/`MIN` em colunas `Decimal`, que retornavam resultados incorretos quando a compilação JIT estava habilitada. [#101203](https://github.com/ClickHouse/ClickHouse/pull/101203) ([Raúl Marín](https://github.com/Algunenano)).
  * Corrigido um crash do servidor (`LOGICAL_ERROR`: Bad cast from `ColumnVector` to `ColumnLowCardinality`) ao consultar 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)).
  * Corrigido UB em `mergeTreeAnalyzeIndexes()` no caso de um argumento de otimizações inválido. [#101253](https://github.com/ClickHouse/ClickHouse/pull/101253) ([Azat Khuzhin](https://github.com/azat)).
  * Corrigido um crash do servidor (Logical error: "Variant ... is empty") quando uma consulta lê ao mesmo tempo uma coluna `Tuple` contendo um tipo `Dynamic Map` e sua subcoluna. [#101448](https://github.com/ClickHouse/ClickHouse/pull/101448) ([Groene AI](https://github.com/groeneai)).
  * Corrigido um crash `LOGICAL_ERROR` "Current component is empty" 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)).
  * Corrigida uma falha de segmentação em `DataTypeDynamic::create()` quando o fuzzer gera uma AST de tipo `Dynamic` malformada. [#101464](https://github.com/ClickHouse/ClickHouse/pull/101464) ([Groene AI](https://github.com/groeneai)).
  * Corrigido um crash `LOGICAL_ERROR` ("ColumnUnique can't contain null values") ao comparar uma coluna `LowCardinality` com uma constante `Variant` `NULL` enquanto `use_variant_default_implementation_for_comparisons` está desabilitado. [#101690](https://github.com/ClickHouse/ClickHouse/pull/101690) ([Groene AI](https://github.com/groeneai)).
  * Adicionada uma proteção para stream vazio em `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)).
  * Corrigido um crash de use-after-free no scheduler de lease de CPU quando o temporizador de espera sobrevive à thread de trabalho cujos `ProfileEvents::Counters` ele referencia. [#101761](https://github.com/ClickHouse/ClickHouse/pull/101761) ([Antonio Andelic](https://github.com/antonio2368)).
  * Corrigido um use-after-scope na desserialização em paralelo de caminhos dinâmicos do tipo `Object`, que podia causar crashes ao ler tabelas com muitos caminhos dinâmicos. [#101823](https://github.com/ClickHouse/ClickHouse/pull/101823) ([Antonio Andelic](https://github.com/antonio2368)).
  * Corrigido um 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)).
  * Corrigida uma falha de segmentação em mutações em colunas materializadas sem expressão. [#102342](https://github.com/ClickHouse/ClickHouse/pull/102342) ([zoomxi](https://github.com/zoomxi)).
  * Corrigido um segfault (ou `LOGICAL_ERROR` em compilações de depuração) ao ler arquivos Parquet com push-down de filtro de Bloom habilitado e condições de igualdade/desigualdade na cláusula `WHERE`, causado por um acesso à memória fora dos limites no prefetcher do Parquet. [#102385](https://github.com/ClickHouse/ClickHouse/pull/102385) ([Groene AI](https://github.com/groeneai)).
  * Corrigida uma leitura fora dos limites em funções de busca de strings (`countSubstrings`, `position`, etc.) ao procurar uma substring composta inteiramente por bytes nulos. [#102401](https://github.com/ClickHouse/ClickHouse/pull/102401) ([Raúl Marín](https://github.com/Algunenano)).
  * Corrigida uma leitura fora dos limites em `printf` com um `%` no final. [#102472](https://github.com/ClickHouse/ClickHouse/pull/102472) ([Raúl Marín](https://github.com/Algunenano)).
  * Corrigido um crash de `LOGICAL_ERROR` "Número inesperado de linhas no subfragmento da coluna" no leitor nativo de Parquet V3 ao ler colunas nullable com um filtro `WHERE`. [#102628](https://github.com/ClickHouse/ClickHouse/pull/102628) ([Groene AI](https://github.com/groeneai)).
  * Corrigido um crash do servidor (SIGSEGV) ao ler arquivos Avro com esquemas recursivos contendo referências cíclicas a tipos simbólicos. Esses esquemas agora são detectados e rejeitados com uma mensagem de erro clara. [#102853](https://github.com/ClickHouse/ClickHouse/pull/102853) ([Groene AI](https://github.com/groeneai)).
  * Corrigido um crash do servidor (asserção `LOGICAL_ERROR`) quando uma função em uma coluna `Variant` atinge um limite de memória ou outra exceção que não seja de conversão de tipo durante a conversão do resultado em `FunctionVariantAdaptor`. [#102855](https://github.com/ClickHouse/ClickHouse/pull/102855) ([Groene AI](https://github.com/groeneai)).
  * Corrigido um crash do servidor em compilações de depuração/com sanitizer quando `std::length_error` é lançada durante a inferência de esquema. [#102859](https://github.com/ClickHouse/ClickHouse/pull/102859) ([Groene AI](https://github.com/groeneai)).
  * Corrigido um crash ao usar uma view com uma cláusula `WHERE` em que a consulta interna produz colunas com tipos diferentes dos metadados da view (por exemplo, `Nullable` de um `LEFT JOIN` com `join_use_nulls`). [#102085](https://github.com/ClickHouse/ClickHouse/pull/102085) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).

  ### Outras correções de bugs

  * Corrigido 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. [#97078](https://github.com/ClickHouse/ClickHouse/pull/97078) ([Raufs Dunamalijevs](https://github.com/rienath)).
  * Corrigido o problema em que o cliente reportava `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)).
  * Corrigido o `DROP DATABASE` com `database_atomic_wait_for_drop_and_detach_synchronously`, que ficava travado indefinidamente quando a consulta era interrompida. [#97586](https://github.com/ClickHouse/ClickHouse/pull/97586) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigido o `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)).
  * Corrigido um erro lógico em uma consulta de política de mascaramento de dados com `ON CLUSTER`. [#97594](https://github.com/ClickHouse/ClickHouse/pull/97594) ([Bharat Nallan](https://github.com/bharatnc)).
  * Corrigido o pruning incorreto de partição ao usar `DateTime64` anterior à época Unix com a função `toDate()`. [#97746](https://github.com/ClickHouse/ClickHouse/pull/97746) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
  * Corrigido um `Cannot schedule a file` `LOGICAL_ERROR` em `INSERT` na `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 um erro lógico "Bad cast from type DB::ColumnConst to DB::ColumnArray" em `kql_array_sort_asc`/`kql_array_sort_desc` quando chamado com argumentos de array constantes. [#98251](https://github.com/ClickHouse/ClickHouse/pull/98251) ([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 headers malformados, em vez de um corpo vazio. [#98268](https://github.com/ClickHouse/ClickHouse/pull/98268) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigidos resultados incorretos com distributed index analysis (recurso experimental) e o query condition cache. [#98269](https://github.com/ClickHouse/ClickHouse/pull/98269) ([Azat Khuzhin](https://github.com/azat)).
  * Corrigido um dictionary source do `MongoDB` que falhava com named collections. [#98528](https://github.com/ClickHouse/ClickHouse/pull/98528) ([Pablo Marcos](https://github.com/pamarcos)).
  * Passa a impedir a remoção de uma coluna quando suas subcolumns são usadas nas expressões default/alias de outras colunas e a usar o analyzer para expressões default em `ALTER DROP COLUMN`. [#98569](https://github.com/ClickHouse/ClickHouse/pull/98569) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
  * Todos os `DB::Exception` de `PocoHTTPClient::makeRequestInternalImpl` agora não permitem nova tentativa, incluindo `HTTP_CONNECTION_LIMIT_REACHED`. [#98598](https://github.com/ClickHouse/ClickHouse/pull/98598) ([Sema Checherinda](https://github.com/CheSema)).
  * Corrigidos dois bugs na compilação JIT de expressões: um erro de copiar e colar na verificação de tipo de `nativeCast` que tornava inacessíveis os branches de cast de inteiro para inteiro e de float para float, e um `nullptr` incorreto de TargetMachine passado ao LLVM `PassBuilder`. [#98660](https://github.com/ClickHouse/ClickHouse/pull/98660) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigida uma exceção "Inconsistent KeyCondition behavior" em compilações 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 ordem de classificação do ClickHouse. [#98964](https://github.com/ClickHouse/ClickHouse/pull/98964) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigido o `windowFunnel` com `strict_deduplication`, que retornava um nível incorreto ao encontrar um evento duplicado. [#99003](https://github.com/ClickHouse/ClickHouse/pull/99003) ([Yash](https://github.com/Onyx2406)).
  * Fez com que as entradas de `system.trace_log` para recargas automáticas de dicionários do ClickHouse passassem a ter IDs de consulta não vazios. [#98784](https://github.com/ClickHouse/ClickHouse/pull/98784) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
  * Corrigido `SYSTEM START REPLICATED VIEW`, que não ativava a tarefa de refresh. [#98797](https://github.com/ClickHouse/ClickHouse/pull/98797) ([Pablo Marcos](https://github.com/pamarcos)).
  * Corrigido `WITH FILL STALENESS`, que produzia linhas preenchidas extras 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)).
  * Corrigida uma falha na ofuscação de consultas para identificadores que começam com letra maiúscula, como `Ab`. [#101450](https://github.com/ClickHouse/ClickHouse/pull/101450) ([Xuewei Wang](https://github.com/Sallery-X)).
  * Corrigido o fato de `TABLE_UUID_MISMATCH` ser ignorado no caminho de código sem analyzer. [#99380](https://github.com/ClickHouse/ClickHouse/pull/99380) ([Azat Khuzhin](https://github.com/azat)).
  * Corrigido `clickhouse format --obfuscate`, que produzia SQL inválido ao ofuscar tipos de skip index, nomes de codec de compressão, nomes de engine de banco de dados e definições de layout/source de dicionário. [#99260](https://github.com/ClickHouse/ClickHouse/pull/99260) ([Raúl Marín](https://github.com/Algunenano)).
  * Valida alterações de configuração 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 `insert_deduplication_token`, que era ignorado silenciosamente em consultas `INSERT SELECT` sem `ORDER BY ALL`. Fornecer `insert_deduplication_token` agora é suficiente para habilitar a desduplicação independentemente de `ORDER BY ALL`. [#99206](https://github.com/ClickHouse/ClickHouse/pull/99206) ([Desel72](https://github.com/Desel72)).
  * Atrasa 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)).
  * Corrigido o parsing de aspas no estilo shell em argumentos da table function `executable`. [#99794](https://github.com/ClickHouse/ClickHouse/pull/99794) ([Nikita Semenov](https://github.com/leftmain)).
  * Corrigidas consultas async insert que reportavam zero `written_rows`, `read_rows` e `result_rows` em `query_log` e na saída do client. [#99879](https://github.com/ClickHouse/ClickHouse/pull/99879) ([Sema Checherinda](https://github.com/CheSema)).
  * Corrigido um `INSERT` com `VALUES` que falhava quando os dados eram seguidos, na linha seguinte, por um comentário SQL 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 uma exceção em `arrayRemove` ao comparar tuplas com componentes NULL. [#100017](https://github.com/ClickHouse/ClickHouse/pull/100017) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Processa corretamente valores negativos em `NumericIndexedVectorDataBSI`. [#100086](https://github.com/ClickHouse/ClickHouse/pull/100086) ([Daniil Ivanik](https://github.com/divanik)).
  * Corrigido um problema em que a table function `primes` não respeitava corretamente `max_rows_to_read` em alguns casos, especialmente quando `offset` e `step` estavam presentes. [#100199](https://github.com/ClickHouse/ClickHouse/pull/100199) ([Nihal Z. Miaji](https://github.com/nihalzp)).
  * Os usuários não veem mais `NATURAL CROSS JOIN` ao consultar a AST de uma consulta com natural join que é reescrita como `CROSS JOIN`. [#100223](https://github.com/ClickHouse/ClickHouse/pull/100223) ([Peter Nguyen](https://github.com/petern48)).
  * Algumas pequenas mudanças em funções: as funções h3 agora validam melhor os limites; `readWKB` verifica limites de tamanho (uma nova configuração, `max_wkb_geometry_elements`); e as funções geradoras aleatórias limitam o número máximo de iterações. [#100270](https://github.com/ClickHouse/ClickHouse/pull/100270) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * Corrigido um problema em que `cutURLParameter` podia ignorar parâmetros incorretamente quando eles apareciam como substrings de outros parâmetros. [#100280](https://github.com/ClickHouse/ClickHouse/pull/100280) ([Nikita Semenov](https://github.com/leftmain)).
  * Corrigida uma 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)).
  * Corrigido o travamento indefinido de `DROP TABLE` em tabelas com motor Kafka quando consumidores ficam presos em um rebalance após um erro de heartbeat. [#100388](https://github.com/ClickHouse/ClickHouse/pull/100388) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
  * As dimensões do shape do formato Npy agora são validadas em relação ao tamanho do arquivo e aos limites de overflow para evitar negação de serviço com arquivos `.npy` maliciosamente criados. Shapes vazios também passam a ser rejeitados, e a memória por linha fica limitada a 2 GiB. [#100625](https://github.com/ClickHouse/ClickHouse/pull/100625) ([Raúl Marín](https://github.com/Algunenano)).
  * Corrigido o problema em que `session_timezone` era ignorado ao fazer o parsing de valores `DateTime` durante async inserts (TCP) e em todas as inserções via HTTP. [#100647](https://github.com/ClickHouse/ClickHouse/pull/100647) ([Sema Checherinda](https://github.com/CheSema)).
  * `StorageRabbitMQ::shutdown` passou a ser idempotente, e foram adicionadas verificações defensivas de null, já que agora ele é chamado duas vezes (em `StreamingStorageRegistry` e `DatabaseCatalog`). [#100455](https://github.com/ClickHouse/ClickHouse/pull/100455) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
  * Corrigida uma exceção `LOGICAL_ERROR` ao usar `accurateCastOrNull` com o tipo de destino `QBit`. [#100470](https://github.com/ClickHouse/ClickHouse/pull/100470) ([Raufs Dunamalijevs](https://github.com/rienath)).
  * Corrigido o problema em que a sintaxe `LIMIT m OFFSET n WITH TIES` não funcionava (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)).
  * Corrigido um segfault em que `SerializationInfoTuple::add` fazia um `assert_cast` em uma referência comum de `SerializationInfo` ao mesclar partes depois que `ALTER MODIFY COLUMN` alterou uma coluna de um tipo não `Tuple` para `Tuple`. [#100509](https://github.com/ClickHouse/ClickHouse/pull/100509) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
  * 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)).
  * Corrigido o problema em que `EXECUTE AS` ignorava as cláusulas `FORMAT` e `INTO OUTFILE` especificadas na consulta. [#100538](https://github.com/ClickHouse/ClickHouse/pull/100538) ([pufit](https://github.com/pufit)).
  * Corrigida a formatação inconsistente da AST para `SAMPLE` com `OFFSET` no nível da consulta. [#100579](https://github.com/ClickHouse/ClickHouse/pull/100579) ([Pavel Kruglov](https://github.com/Avogar)).
  * 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 de inicialização. [#100946](https://github.com/ClickHouse/ClickHouse/pull/100946) ([Nikolay Degterinsky](https://github.com/evillique)).
  * 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)).
  * Corrigida uma mensagem de erro incorreta ao chamar `intExp10` com um argumento NaN — ela informava `intExp2` em vez de `intExp10`. [#101582](https://github.com/ClickHouse/ClickHouse/pull/101582) ([Krishna Chaitanya](https://github.com/Krishnachaitanyakc)).
  * Corrigido que `allow_statistics=0` não bloqueava `ALTER TABLE ADD STATISTICS` e `ALTER TABLE DROP STATISTICS`. [#101585](https://github.com/ClickHouse/ClickHouse/pull/101585) ([Krishna Chaitanya](https://github.com/Krishnachaitanyakc)).
  * Corrigido que `CREATE TABLE ... AS merge()` ignorava a lista explícita de colunas e, em vez disso, inferia automaticamente as colunas das tabelas de origem, o que causava erros `NOT_FOUND_COLUMN_IN_BLOCK` quando `merge_table_max_tables_to_look_for_schema_inference` era baixo o suficiente e as tabelas de origem tinham esquemas diferentes. [#101663](https://github.com/ClickHouse/ClickHouse/pull/101663) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
  * Corrigida a criação de dicionário `RANGE_HASHED`, que aceitava silenciosamente um atributo de intervalo `MAX` inexistente e usava a configuração de tipo errada quando os atributos mínimo e máximo do intervalo tinham tipos diferentes. [#101732](https://github.com/ClickHouse/ClickHouse/pull/101732) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
  * Corrigidos bugs nas funções `arrayLevenshteinDistanceWeighted` e `arraySimilarity`. [#101767](https://github.com/ClickHouse/ClickHouse/pull/101767) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
  * Corrigido que a API Prometheus Query ignorava corpos de formulário POST. [#101794](https://github.com/ClickHouse/ClickHouse/pull/101794) ([James Cunningham](https://github.com/JTCunning)).
  * Corrigido um falso negativo de `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 após demangling. [#101885](https://github.com/ClickHouse/ClickHouse/pull/101885) ([Pablo Marcos](https://github.com/pamarcos)).
  * Corrigida a descrição de `system.codecs` para `AES_256_GCM_SIV`, para informar `AES-256` em vez de `AES-128`. [#101917](https://github.com/ClickHouse/ClickHouse/pull/101917) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
  * Corrigido 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)).
  * A conexão TCP agora é fechada quando ocorre uma exceção durante a análise inicial da consulta, para evitar a leitura de dados inválidos de um stream dessincronizado. [#101989](https://github.com/ClickHouse/ClickHouse/pull/101989) ([Raúl Marín](https://github.com/Algunenano)).
  * Corrigidos casos em que `Time` com valores negativos retornava um resultado incorreto na comparação com `DateTime`. [#102056](https://github.com/ClickHouse/ClickHouse/pull/102056) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
  * Corrigidos espaços ausentes ao formatar unlock snapshot. [#102063](https://github.com/ClickHouse/ClickHouse/pull/102063) ([Han Fei](https://github.com/hanfei1991)).
  * Falha na inicialização, em uma réplica nova, de tabelas alias sem tabela de destino em Database Replicated. [#102397](https://github.com/ClickHouse/ClickHouse/pull/102397) ([Nikolay Degterinsky](https://github.com/evillique)).
  * `INSERTs` simples sem visões materializadas não solicitam mais slots e threads excessivos do `ConcurrencyControl` (`max_threads` em vez de `max_insert_threads`), evitando o esgotamento de slots de CC e o aumento descontrolado na contagem de threads em clusters com alta vazão de `INSERT`. [#102961](https://github.com/ClickHouse/ClickHouse/pull/102961) ([Sema Checherinda](https://github.com/CheSema)).
  * Reintroduzido `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)).
  * Corrigido um tipo de argumento incorreto exibido em mensagens de erro de 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)).
  * Corrigido 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)).
</Accordion>
