Pular para o conteúdo principal

Alteração incompatível com versões anteriores

  • A função geoToH3() agora aceita a entrada na ordem (lat, lon,res) (que é a ordem padrão para funções geométricas). Os usuários que quiserem manter a ordem legada do resultado (lon, lat,res) podem definir a configuração geotoh3_lon_lat_input_order = true. #78852 (Pratima Patel).
  • Índices do tipo full_text foram renomeados para gin. Isso segue a terminologia mais familiar do PostgreSQL e de outros bancos de dados. Os índices existentes do tipo full_text ainda podem ser carregados, mas lançarão uma exceção (sugerindo índices gin) quando alguém tentar usá-los em pesquisas. #79024 (Robert Schulze).
  • Adiciona a configuração de cache do sistema de arquivos allow_dynamic_cache_resize, false por padrão, para permitir o redimensionamento dinâmico do cache do sistema de arquivos. Motivo: em determinados ambientes (ClickHouse Cloud), todos os eventos de escalonamento acontecem por meio do reinício do processo, e gostaríamos que esse recurso estivesse explicitamente desabilitado para ter mais controle sobre o comportamento, além de servir como medida de segurança. Este PR está marcado como incompatível com versões anteriores porque, em versões mais antigas, o redimensionamento dinâmico do cache funcionava por padrão sem configuração especial. #79148 (Kseniia Sumarokova).
  • Removido o suporte aos tipos de índice legados annoy e usearch. Ambos são stubs há muito tempo, ou seja, toda tentativa de usar esses índices legados retornava erro de qualquer forma. Se você ainda tiver índices annoy e usearch, remova-os. #79802 (Robert Schulze). #* Remove a configuração do servidor format_alter_commands_with_parentheses. A configuração foi introduzida e desabilitada por padrão na 24.2. Ela foi habilitada por padrão na 25.2. Como não há versões LTS sem suporte ao novo format, podemos remover a configuração. #79970 (János Benjamin Antal). #* Menor: força as configurações do servidor backup_threads e restore_threads a serem diferentes de zero. #80224 (Raúl Marín).
  • Corrige bitNot() para String para retornar uma string terminada em zero. #80791 (Azat Khuzhin).

Novo recurso

  • Adiciona uma nova opção a SETTINGS do MergeTree que especifica um codec de compressão padrão caso a consulta CREATE não defina explicitamente um para as colunas em questão. Isso fecha #42005. #66394 (gvoelfin).
  • Continuação de https://github.com/ClickHouse/ClickHouse/pull/71943. Este PR implementa os tipos de dados Time/Time64. Implementa novos tipos de dados: Time (HHH:MM:SS) e Time64 (HHH:MM:SS.<fractional>), algumas funções básicas de CAST e funções para interagir com outros tipos de dados. Além disso, o nome da função existente toTime foi alterado para toTimeWithFixedDate, porque a função toTime é necessária para a função de CAST. #75735 (Yarik Briukhovetskyi).
  • Adiciona suporte a subconsultas correlacionadas como argumento da expressão EXISTS na cláusula WHERE. Fecha #72459. #76078 (Dmitry Novik).
  • Permite gravar nos motores de tabela Merge. #77484 (Anton Ivashkin).
  • INSERT SELECT distribuído para tabelas MergeTree replicadas agora usa réplicas paralelas com eficiência para executar INSERTs em paralelo, selecionando dados diferentes em nós distintos e inserindo-os de forma independente. #78041 (Igor Nikonov).
  • Adicionar as funções mapContainsValuesLike/mapContainsValues/mapExtractValuesLike para filtrar valores em map e o suporte a elas em índices baseados em bloomfilter. #78171 (UnamedRus).
  • Adicionada a tabela system.iceberg_history. #78244 (Smita Kulkarni).
  • Adicionado o agendamento de slots de consulta para workloads; veja https://clickhouse.com/docs/operations/workload-scheduling#query&#95;scheduling para mais detalhes. #78415 (Sergei Trifonov).
  • Adicionadas as funções getServerSetting e getMergeTreeSetting. Fecha https://github.com/clickhouse/clickhouse/issues/78318. #78439 (NamNguyenHoai).
  • Suporte a valores não permitidos nas restrições de configurações. #78499 (Bharat Nallan).
  • Adicionar a nova configuração iceberg_enable_version_hint para usar o arquivo version-hint.text. #78594 (Arnaud Briche).
  • Permite executar TRUNCATE em tabelas específicas de um banco de dados, filtradas com a palavra-chave LIKE. #78597 (Yarik Briukhovetskyi).
  • clickhouse-local (e seu alias abreviado, ch) agora usa um FROM table implícito quando há dados de entrada para processar. Isso fecha #65023. A inferência de formato também foi habilitada no clickhouse-local se --input-format não for especificado e ele estiver processando um arquivo comum. #79085 (Alexey Milovidov).
  • Adiciona as funções icebergHash e icebergBucketTransform. Oferece suporte à poda de arquivos de dados em tabelas Iceberg particionadas com bucket transfom. #79262 (Daniil Ivanik).
  • Adicionado suporte ao Coalescing Merge Tree. Fecha #78869. #79344 (Konstantin Vedernikov).
  • Adicionadas as funções stringBytesUniq e stringBytesEntropy para buscar dados possivelmente aleatórios ou criptografados. #79350 (Sachin Kumar Singh).
  • Suporte à coluna virtual _part_starting_offset em tabelas da família MergeTree. Essa coluna representa a contagem acumulada de linhas de todas as partes anteriores, calculada em tempo de consulta com base na lista atual de partes. Os valores acumulados são mantidos durante toda a execução da consulta e permanecem válidos mesmo após a poda de partes. A lógica interna relacionada foi refatorada para dar suporte a esse comportamento. #79417 (Amos Bird).
  • Adicionada uma configuração enable_shared_storage_snapshot_in_query para habilitar o compartilhamento do mesmo snapshot de armazenamento entre todas as subconsultas em uma única consulta. Isso garante leituras consistentes da mesma tabela, mesmo quando ela é referenciada várias vezes em uma consulta. #79471 (Amos Bird).
  • Suporte à gravação de colunas JSON do CH em Parquet e à leitura de colunas JSON do Parquet diretamente como colunas JSON do CH. #79649 (Nihal Z. Miaji).
  • Incluído o chdig — interface TUI para ClickHouse (semelhante ao top) como parte do ClickHouse. #79666 (Azat Khuzhin).
  • Adiciona suporte a MultiPolygon no pointInPolygon. #79773 (Nihal Z. Miaji).
  • Adiciona suporte a Geo Parquet. Isso fecha #75317. #79777 (Konstantin Vedernikov).
  • Adiciona suporte para consultar tabelas Delta Lake montadas no sistema de arquivos local por meio da função de tabela deltaLakeLocal. #79781 (roykim98).
  • Adicionada a funcionalidade de codificação/decodificação em base32. #79809 (Joanna Hulboj).
  • A busca vetorial do ClickHouse agora oferece suporte à pré-filtragem e à pós-filtragem e disponibiliza configurações relacionadas para um controle mais preciso. (issue #78161). #79854 (Shankar Iyer).
  • Adiciona suporte a funções de leitura do formato WKB. Isso fecha parcialmente #43941. #80139 (Konstantin Vedernikov).
  • Adicionada a nova configuração cast_string_to_date_time_mode, que permite escolher o modo de interpretação de DateTime durante o cast de String. #80210 (Pavel Kruglov).
  • Adicionadas as funções de codificação e decodificação Bech32 e Bech32m (issue #40381). #80239 (George Larionov).
  • Suporte à configuração disk para os motores de banco de dados Atomic e Ordinary, especificando o disco em que os arquivos de metadados da tabela serão armazenados. #80546 (Tuan Pham Anh).
  • Funções de suporte para descompactar e comparar partes do MergeTree. #80573 (Mikhail Artemenko).
  • Funções auxiliares timeSeries* para agilizar alguns cenários ao trabalhar com dados de séries temporais: - reamostrar os dados em uma grade temporal com timestamp inicial, timestamp final e passo especificados - calcular delta, rate, idelta e irate no estilo do PromQL. #80590 (Alexander Gololobov).
  • Permite filtrar as partes selecionadas para consulta com base no disco em que estão armazenadas. #80650 (tanner-bruce).
  • Adiciona uma página inicial com a lista de ferramentas da web embutidas. Ela será aberta quando solicitada por um user agent semelhante a um navegador. #81129 (Alexey Milovidov).
  • Permite filtrar valores NULL em arrayFirst, arrayFirstIndex, arrayLast & arrayLastIndex. Corrige #81113. #81197 (Lennard Eijsackers).

Recurso experimental

  • Catálogo do metastore Hive para data lake Iceberg. #77677 (Konstantin Vedernikov).
  • Há suporte a parâmetros explícitos por meio de pares chave-valor. Atualmente, os parâmetros compatíveis são um tokenizer obrigatório e dois opcionais: max_rows_per_postings_list e ngram_size. #80262 (Elmi Ahmadov).
  • Índices experimentais do tipo gin foram renomeados para text. Índices existentes do tipo gin ainda podem ser carregados, mas gerarão uma exceção (sugerindo índices text no lugar) quando alguém tentar usá-los em pesquisas. #80855 (Robert Schulze).

Melhoria de desempenho

  • Acelere os índices secundários avaliando suas expressões em múltiplos grânulos de uma só vez. #64109 (Alexey Milovidov).
  • Introduzido um limite (controlado pela configuração parallel_hash_join_threshold) para usar o algoritmo hash como fallback quando o tamanho da tabela à direita estiver abaixo desse limite. #76185 (Nikita Taranov).
  • A implementação atual de Pipe::resize cria um único nó Resize ou StrictResize ao inseri-lo na topologia do pipeline, que então atua como um hub central, conectando todos os streams de entrada (nós upstream) a um conjunto unificado de streams de saída (nós downstream). Esse design gera contenção no ExecutingGraph::Node::status_mutex durante a execução do grafo do pipeline, especialmente em ambientes com muitos núcleos. Quando os pipelines escalam para dezenas ou centenas de streams, essa contenção resulta em:. #77562 (Zhiguo Zhou).
  • Melhora o desempenho de S3Queue/AzureQueue ao permitir INSERTs de dados em paralelo (pode ser habilitado com a configuração da fila parallel_inserts=true). Antes, S3Queue/AzureQueue só podiam executar em paralelo a primeira parte do pipeline (download e análise); o INSERT era feito em uma única thread. E os INSERTs quase sempre são o gargalo. Agora, ele escalará de forma quase linear com processing_threads_num. #77671 (Azat Khuzhin).
  • Altera o formato de partes compactas para salvar marcas de cada subfluxo, permitindo ler subcolunas individuais. O formato compacto antigo continua sendo compatível com leituras e pode ser habilitado para gravações usando a configuração do MergeTree write_marks_for_substreams_in_compact_parts. Ele vem desabilitado por padrão para tornar as atualizações mais seguras, pois altera o armazenamento das partes compactas. Ele será habilitado por padrão em um dos próximos lançamentos. #77940 (Pavel Kruglov).
  • Foi introduzida a nova configuraçãouse_skip_indexes_in_final_exact_mode. Se uma consulta em uma tabela ReplacingMergeTree tiver a cláusula FINAL, ler apenas os intervalos da tabela com base em skip indexes pode produzir resultados incorretos. Essa configuração garante que os resultados corretos sejam retornados ao examinar partes mais recentes que se sobreponham aos intervalos de chave primária retornados pelo skip index. Defina como 0 para desabilitar e 1 para habilitar. #78350 (Shankar Iyer).
  • Agora usamos o número de réplicas para determinar o tamanho da tarefa de leitura com réplicas paralelas habilitadas. Isso proporciona uma melhor distribuição de trabalho entre as réplicas quando o volume de dados a ser lido não é muito grande. #78695 (Nikita Taranov).
  • Permitir a mesclagem paralela de estados uniqExact durante a etapa final da agregação distribuída. #78703 (Nikita Taranov).
  • Corrige possível degradação de desempenho na mesclagem paralela de estados uniqExact na agregação com chave. #78724 (Nikita Taranov). #* Substitui consultas DELETE FROM ... WHERE 1 por TRUNCATE. (Revertido). #78739 (Konstantin Vedernikov).
  • Reduz o número de chamadas à API List Blobs para o armazenamento do Azure. #78860 (Julia Kartseva).
  • Mesclar condições de igualdade da etapa de filtro do plano de consulta na condição JOIN, quando possível, para permitir usá-las como chaves da tabela hash. #78877 (Dmitry Novik).
  • Melhora o desempenho da análise de caminhos do Hive com o uso de extractKeyValuePairs em vez de regex. #79067 (Arthur Passos).
  • Melhora o desempenho do INSERT SELECT distribuído com réplicas paralelas. #79441 (Azat Khuzhin).
  • Permite mover condições com subcolunas para PREWHERE. #79489 (Pavel Kruglov).
  • Melhoria de desempenho em todos os tipos de filtro de Bloom. #79800 (Delyan Kratunov).
  • Evita que LogSeriesLimiter faça limpeza a cada instanciação, evitando contenção de locks e regressões de desempenho em cenários de alta concorrência. #79864 (filimonov).
  • Habilita compile_expressions (compilador JIT para fragmentos de expressões comuns) por padrão. Isso corrige #51264, #56386 e #66486. #79907 (Alexey Milovidov).
  • Consultas mais rápidas com a otimização de contagem trivial. #79945 (Raúl Marín).
  • Foi introduzido um caminho otimizado em UniqExactSet::merge quando um dos conjuntos está vazio. Além disso, agora, se o conjunto LHS for de dois níveis e o RHS for de um único nível, não faremos a conversão do RHS para dois níveis. #79971 (Nikita Taranov).
  • Adicionado __attribute__((always_inline)) a convertDecimalsImpl. #79999 (Konstantin Bogdanov).
  • Definido input_format_parquet_bloom_filter_push_down como true por padrão. Além disso, foi corrigido um erro no histórico de alterações das configurações. #80058 (Alexey Milovidov). #* O logging agora é assíncrono por padrão. Você pode desativar isso definindo <async>false</async> em <logger>. #80125 (Raúl Marín).
  • Melhora a eficiência da reutilização de memória e reduz as falhas de página ao usar tabelas hash de dois níveis. #80245 (Jiebin Sun).
  • Evita atualizações desnecessárias e reduz a contenção de bloqueios no QueryConditionCache. #80247 (Jiebin Sun).
  • Pequena otimização de concatenateBlocks, que pode ser útil para o Hash join paralelo. #80328 (李扬).
  • Ao selecionar intervalos de marks a partir do intervalo da chave primária, a busca binária não pode ser usada se a chave primária estiver encapsulada por funções. Este PR melhora essa limitação: a busca binária ainda pode ser aplicada quando a chave primária está encapsulada por uma cadeia de funções sempre monotônicas, ou quando a RPN contém um elemento que é sempre true. Este PR fecha #45536. #80597 (zoomxi).
  • Melhora na velocidade de desligamento do motor Kafka (remove um atraso adicional de 3 segundos no caso de múltiplas tabelas Kafka). #80796 (Azat Khuzhin).
  • Reduz o uso de memória de async inserts e melhora o desempenho de consultas INSERT. #80972 (Raúl Marín).
  • Não faça o profiling dos processors se a tabela de log estiver desabilitada. #81256 (Raúl Marín).
  • Acelerar toFixedString quando a entrada for exatamente a solicitada. #81257 (Raúl Marín).
  • Não processe os valores de cota se o usuário não tiver limites. #81549 (Raúl Marín).
  • Definir ProcfsMetricsProvider como thread_local para manter os arquivos abertos entre tarefas. #81576 (Raúl Marín).
  • Corrigida a regressão de desempenho no monitoramento de memória. #81694 (Michael Kolupaev).

Melhoria

#* clickhouse-local manterá seus bancos de dados após a reinicialização se você especificar o argumento de linha de comando --path. Isso corrige #50647. Isso corrige #49947. #71722 (Alexey Milovidov).
  • EXPLAIN SYNTAX agora usa um novo analisador. Ele retorna uma árvore de sintaxe abstrata (AST) gerada a partir da árvore de consulta. Foi adicionada a opção query_tree_passes para controlar o número de passes a serem executados antes de converter a árvore de consulta em AST. #74536 (Vladimir Cherkasov). #* A política de cache SLRU passou a ser usada no cache do sistema de arquivos por padrão. #75072 (Kseniia Sumarokova).
  • Refatorada a lógica de envio para views. #77309 (Sema Checherinda).
  • As funções de tabela de cluster do armazenamento de objetos (por exemplo, s3Cluster) agora passarão a atribuir arquivos a réplicas para leitura com base em hash consistente, a fim de melhorar a localidade do cache. #77326 (Andrej Hoos).
  • Atualize as credenciais do S3 após o erro AuthenticationRequired. #77353 (Vitaly Baranov).
  • Incorpore a configuração de proxy a alguns buffers HTTP usando builders. #77693 (Arthur Passos).
  • Adicionadas métricas de dicionários a system.asynchronous_metrics - DictionaryMaxUpdateDelay - O atraso máximo (em segundos) na atualização do dicionário. - DictionaryTotalFailedUpdates - Número de erros em todos os dicionários desde o último carregamento bem-sucedido. #78175 (Vlad).
  • Adicionadas as funções divideOrNull,moduloOrNull, intDivOrNull,positiveModuloOrNull para retornar NULL quando o argumento da direita for zero. #78276 (kevinyhzou).
  • Estenda a função isIPAddressInRange para os tipos de dados String, IPv4, IPv6, Nullable(String) Nullable(IPv4) e Nullable(IPv6). #78364 (YjyJeff).
  • Altere dinamicamente as configurações do pool de conexões da engine PostgreSQL. #78414 (Samay Sharma).
  • Permite especificar _part_offset em uma projeção comum. Este é o primeiro passo para criar um índice de projeção. Pode ser usado com #58224 e pode ajudar a aprimorar https://github.com/ClickHouse/ClickHouse/pull/63207. #78429 (Amos Bird).
  • Melhora a otimização da chave de sharding em consultas distribuídas. #78452 (fhw12345).
  • Adiciona novas colunas(create_query e source) em system.named_collections. Fecha #78179. #78582 (MikhailBurdukov).
  • Adicionado o campo condition à tabela de sistema system.query_condition_cache. Ele armazena a condição em texto simples cujo hash é usado como chave no cache de condições de consulta. #78671 (Robert Schulze).
  • Implementa uma lógica de rebalanceamento semelhante à do Kafka para o StorageKafka2 usando o ClickHouse Keeper. Para cada réplica, há suporte a dois tipos de bloqueios de partição: bloqueios permanentes e bloqueios temporários. A réplica tenta manter os bloqueios permanentes pelo maior tempo possível; em qualquer momento, não há mais de all_topic_partitions / active_replicas_count (em que all_topic_partitions é o número total de partições e active_replicas_count é o número de réplicas ativas) bloqueios permanentes na réplica; se houver mais do que isso, a réplica libera algumas partições. Algumas partições ficam temporariamente bloqueadas pela réplica. O número máximo de bloqueios temporários em uma réplica muda dinamicamente para dar às outras réplicas a chance de assumir algumas partições como bloqueios permanentes. Ao atualizar os bloqueios temporários, a réplica libera todos eles e tenta adquirir outros novamente. #78726 (Daria Fomina).
  • Adiciona configurações da tabela para configuração SASL e credenciais ao mecanismo de tabela Kafka. Isso permite configurar a autenticação baseada em SASL para Kafka e sistemas compatíveis com Kafka diretamente na instrução CREATE TABLE, em vez de precisar usar arquivos de configuração ou coleções nomeadas. #78810 (Christoph Wurm).
  • Adicione um aviso sobre bancos de dados possivelmente criados para salvar tabelas corrompidas. #78841 (János Benjamin Antal).
  • Agora também é possível criar índices de similaridade vetorial em colunas BFloat16. #78850 (Robert Schulze).
  • Suporte a timestamps Unix com parte fracionária no parsing de DateTime64 em modo best-effort. #78908 (Pavel Kruglov).
  • No storage DeltaLake, correção na implementação do delta-kernel para columnMappingMode.name e adição de testes para evolução de schema. #78921 (Kseniia Sumarokova).
  • Melhorada a inserção em coluna Variant no formato Values com uma conversão de valores aprimorada. #78923 (Pavel Kruglov).
  • Adicionada a coluna virtual _time ao mecanismo S3Queue. #78926 (Anton Ivashkin).
  • A função tokens foi ampliada para aceitar um argumento adicional “tokenizer”, além de outros argumentos específicos desse tokenizer. #79001 (Elmi Ahmadov).
  • A instrução SHOW CLUSTER agora expande as macros (se houver) no argumento. #79006 (arf42).
  • As funções de hash agora oferecem suporte a valores NULL em arrays, tuplas e maps. (issues #48365 e #48623). #79008 (Michael Kolupaev).
  • Suporte a refresh em tabelas MergeTree somente leitura. #79033 (Alexey Milovidov). #* Atualização do cctz para 2025a. #79043 (Raúl Marín).
  • Permitir a recarga a quente das configurações que controlam o encerramento de conexões em caso de sobrecarga da CPU. #79052 (Alexey Katsman).
  • Melhora a usabilidade. #79066 (Alexey Milovidov).
  • Ative o cache de condições de consulta por padrão. #79080 (Alexey Milovidov). #* Permita desfazer ações em abas na interface web. Isso fecha #71284. #79084 (Alexey Milovidov).
  • Remover as configurações durante recoverLostReplica, como foi feito em https://github.com/ClickHouse/ClickHouse/pull/78637. #79113 (Nikita Mikhaylov).
  • Adiciona os ProfileEvents ParquetReadRowGroups e ParquetPrunedRowGroups para perfilar a poda de índice Parquet. #79180 (flynn).
  • Adiciona o prefixo do contêiner aos caminhos de dados informados em system.tables para discos simples no Azure blob storage, tornando o relatório consistente com S3 e GCP. #79241 (Julia Kartseva).
  • Suporte à alteração de banco de dados em cluster. #79242 (Tuan Pham Anh).
  • Pular explicitamente execuções perdidas da coleta de estatísticas para QueryMetricLog; caso contrário, o log levará muito tempo para alcançar o horário atual. #79257 (Mikhail Artemenko).
  • Adicionada a capacidade de aplicar exclusões leves dinamicamente (com as configurações lightweight_deletes_sync = 0, apply_mutations_on_fly = 1. #79281 (Anton Popov).
  • Mutações ALTER ... DELETE otimizadas para partes em que todas as linhas devem ser excluídas. Agora, nesses casos, uma parte vazia é criada no lugar da parte original, sem executar uma mutação. #79307 (Anton Popov).
  • Pequenas otimizações em CHColumnToArrowColumn. #79308 (Bharat Nallan).
  • A configuração allow_archive_path_syntax foi marcada como Experimental por engano. Adicione um teste para impedir que configurações experimentais fiquem habilitadas por padrão. #79320 (Alexey Milovidov).
  • As configurações de cache de páginas passaram a ser ajustáveis por consulta. Isso é necessário para uma experimentação mais rápida e para permitir o ajuste fino de consultas de alta vazão e baixa latência. #79337 (Alexey Milovidov).
  • Não exiba dicas para números nos formatos Pretty quando os números se parecerem com a maioria dos hashes de 64 bits. Fecha #79334. #79338 (Alexey Milovidov).
  • Se os dados no formato Pretty forem exibidos no terminal, e um bloco subsequente tiver as mesmas larguras de coluna, ele poderá continuar a partir do bloco anterior, sendo unido a ele ao mover o cursor para cima. Isso corrige #79333. A funcionalidade é controlada pela nova configuração output_format_pretty_glue_chunks. #79339 (Alexey Milovidov).
  • As cores dos gráficos nos dashboards avançados serão calculadas com base no hash da consulta correspondente. Isso facilita lembrar e localizar um gráfico ao rolar pelo dashboard. #79341 (Alexey Milovidov).
  • Adicionada a métrica assíncrona FilesystemCacheCapacity — capacidade total no sistema de arquivos virtual cache. Isso é útil para o monitoramento global da infraestrutura. #79348 (Alexey Milovidov).
  • Otimiza o acesso a system.parts (lê o tamanho de colunas/índices apenas quando solicitado). #79352 (Azat Khuzhin).
  • Seleciona os campos importantes na consulta 'SHOW CLUSTER <name>' em vez de todos os campos. #79368 (Tuan Pham Anh).
  • Permite especificar configurações de armazenamento para DatabaseCatalog. #79407 (Kseniia Sumarokova).
  • Suporte para armazenamento local no delta kernel. #79416 (Kseniia Sumarokova).
  • Adicionada uma configuração no nível da consulta para habilitar o delta-kernel-rs: allow_experimental_delta_kernel_rs. #79418 (Kseniia Sumarokova).
  • Corrige um possível loop infinito ao listar blobs no armazenamento de blobs do Azure/S3. #79425 (Alexander Gololobov).
  • Agora, o ClickHouse também aceita parâmetros de consulta como param-<name> (hífen), além de param_<name> (sublinhado). Isso resolve #63093. #79429 (Engel Danila). #* Adiciona a configuração do cache do sistema de arquivos max_size_ratio_to_total_space. #79460 (Kseniia Sumarokova).
  • Mensagem de aviso detalhada sobre redução de largura de banda ao copiar dados de um S3 local para um S3 remoto com checksum habilitado. #79464 (VicoWu).
  • Para clickhouse-benchmark, reconfigure a opção reconnect para aceitar 0, 1 ou N como valores, para reconectar conforme o caso. #79465 (Sachin Kumar Singh).
  • Adicionada a configuração input_format_max_block_size_bytes para limitar, em bytes, os blocos criados nos formatos de entrada. Isso pode ajudar a evitar uso elevado de memória durante a importação de dados quando as linhas contêm valores grandes. #79495 (Pavel Kruglov).
  • Melhora a velocidade e o uso de memória do sparseGrams. #79517 (Konstantin Vedernikov).
  • Evite cópias desnecessárias do bloco durante a inserção em uma parte Compact, sempre que possível. #79536 (Pavel Kruglov).
  • Ativa por padrão a implementação delta-kernel do armazenamento DeltaLake. #79541 (Kseniia Sumarokova).
  • Se a leitura de uma URL envolver vários redirecionamentos, a configuração enable_url_encoding será aplicada corretamente em todos os redirecionamentos ao longo de toda a cadeia. #79563 (Shankar Iyer).
  • Permitir ALTER TABLE ... MOVE|REPLACE PARTITION para tabelas em diferentes disks do tipo plain_rewritable. #79566 (Julia Kartseva).
  • Adiciona suporte a subconsultas escalares correlacionadas na cláusula WHERE. Fecha #6697. #79600 (Dmitry Novik).
  • Anteriormente, quando input_format_parquet_max_block_size = 0, o ClickHouse travava. Agora, esse comportamento foi corrigido. Isso resolve #79394. #79601 (abashkeev).
  • Adiciona a configuração throw_on_error para startup_scripts: quando throw_on_error é true, o servidor não iniciará a menos que todas as consultas sejam concluídas com sucesso. Por padrão, throw_on_error é false, preservando o comportamento anterior. #79732 (Aleksandr Musorin).
  • O índice de similaridade vetorial agora também é usado quando o vetor de referência é do tipo Array(BFloat16). #79745 (Shankar Iyer).
  • Adiciona last_error_message, last_error_trace e query_id à tabela system.error_log. Ticket relacionado #75816. #79836 (Andrei Tinikov). #* Ativa o envio de relatórios de falha por padrão. Isso pode ser desativado no arquivo de configuração do servidor. #79838 (Alexey Milovidov).
  • A tabela de sistema system.functions agora mostra em qual versão do ClickHouse as funções apareceram pela primeira vez. #79839 (Robert Schulze).
  • Adicionada a configuração access_control_improvements.enable_user_name_access_type. Essa configuração permite habilitar/desabilitar grants precisos para usuários/roles, introduzidos em https://github.com/ClickHouse/ClickHouse/pull/72246. Pode ser recomendável desativar essa configuração caso você tenha um cluster com réplicas anteriores à versão 25.1. #79842 (pufit).
  • A implementação correta do método ASTSelectWithUnionQuery::clone() agora também leva em consideração o campo is_normalized. Isso pode ajudar com #77569. #79909 (Nikita Mikhaylov).
  • Suporte para subconsultas correlacionadas na lista de projeção em casos simples. #79925 (Dmitry Novik).
  • Corrige a formatação inconsistente de determinadas consultas com o operador EXCEPT. Se o lado esquerdo do operador EXCEPT terminar com *, a consulta formatada perde os parênteses e passa a ser interpretada como um * com o modificador EXCEPT. Essas consultas são encontradas pelo fuzzer e dificilmente seriam encontradas na prática. Isso fecha #79950. #79952 (Alexey Milovidov).
  • Permite adicionar http_response_headers a http_handlers de qualquer tipo. #79975 (Andrey Zvonov).
  • Pequena melhoria na análise do tipo JSON usando cache da ordem de desserialização de variantes. #79984 (Pavel Kruglov).
  • Permite mover o predicado GLOBAL [NOT] IN para a cláusula PREWHERE, quando aplicável. #79996 (Eduard Karacharov).
  • Adiciona a configuração s3_slow_all_threads_after_network_error. #80035 (Vitaly Baranov).
  • O nível de logging das partes selecionadas para mesclagem estava incorreto (Information). Fecha #80061. #80062 (Alexey Milovidov).
  • A função reverse passa a oferecer suporte ao tipo de dado Tuple. Fecha #80053. #80083 (flynn).
  • O valor padrão da configuração enble_url_encoding agora é False. #80088 (Shankar Iyer).
  • Este pequeno patch resolve #75817: permite obter dados de auxiliary_zookeepers na tabela system.zookeeper. #80146 (Nikolay Govorov).
  • A busca vetorial com o índice de similaridade vetorial agora está em beta (antes, experimental). #80164 (Robert Schulze).
  • Adiciona métricas assíncronas dos sockets TCP do servidor. Isso melhora a observabilidade. Fecha #80187. #80188 (Alexey Milovidov).
  • A função tokens agora oferece suporte ao string como tokenizador. #80195 (Robert Schulze).
  • Réplicas paralelas: evite esperar por réplicas lentas não utilizadas caso todas as tarefas de leitura já tenham sido atribuídas a outras réplicas. #80199 (Igor Nikonov).
  • Suporte a anylast_respect_nulls e any_respect_nulls na simpleAggregateFunction. #80219 (Diskein).
  • Removida a chamada desnecessária de adjustCreateQueryForBackup() para bancos de dados Replicated. #80282 (Vitaly Baranov). #* Permitidas opções extras (que vêm após --, como -- --config.value='abc') no clickhouse-local sem o sinal de igualdade. Fecha #80292. #80293 (Alexey Milovidov).
  • Destaque os metacaracteres em consultas SHOW ... LIKE. Fecha #80275. #80297 (Alexey Milovidov). #* Torne a UDF SQL persistente no clickhouse-local. A função criada anteriormente será carregada na inicialização. Fecha #80085. #80300 (Alexey Milovidov).
  • Suporte para comparação entre Time/Time64. #80327 (Yarik Briukhovetskyi).
  • Corrigida a descrição no plano do EXPLAIN para uma etapa preliminar de DISTINCT. #80330 (UnamedRus).
  • Permite o uso de named collections em ODBC/JDBC. #80334 (Andrey Zvonov).
  • Adiciona suporte à filtragem com múltiplas projeções, permitindo usar mais de uma projeção na filtragem no nível de partes. Isso resolve #55525. Este é o segundo passo para implementar o índice de projeção, após #78429. #80343 (Amos Bird).
  • Métricas para a quantidade de disks readonly e com falha. O indicador registra em log quando DiskLocalCheckThread é iniciado. #80391 (VicoWu).
  • Implementado suporte ao armazenamento s3_plain_rewritable com projeções. Em versões anteriores, os objetos de metadados no S3 que faziam referência a projeções não eram atualizados quando eram movidos. Fecha #70258. #80393 (Sav).
  • Réplicas paralelas usam um timeout de conexão separado; consulte a configuração parallel_replicas_connect_timeout_ms. Antes, as configurações connect_timeout_with_failover_ms/connect_timeout_with_failover_secure_ms eram usadas como valores de timeout de conexão para consultas com réplicas paralelas (1 segundo por padrão). #80421 (Igor Nikonov).
  • O comando SYSTEM UNFREEZE não tentará buscar partes em discos somente leitura e write-once. Isso corrige #80430. #80432 (Alexey Milovidov).
  • Alterado o nível de log da mensagem de partes mescladas de INFO para TRACE. #80476 (Hans Krutzer).
  • Implementa a serialização flattened para Dynamic e JSON no Native format, permitindo serializar/desserializar dados de Dynamic e JSON sem estruturas especiais, como shared variant para Dynamic e shared data para JSON. Essa serialização pode ser habilitada ao definir output_format_native_use_flattened_dynamic_and_json_serialization. Essa serialização pode ser usada para facilitar o suporte a Dynamic e JSON no protocolo TCP em clientes escritos em diferentes linguagens. #80499 (Pavel Kruglov).
  • Altera o comportamento padrão da eliminação de partições em tabelas Iceberg. #80583 (Melvyn Peignon).
  • Adiciona dois novos ProfileEvents para a observabilidade do algoritmo de busca de índice: IndexBinarySearchAlgorithm e IndexGenericExclusionSearchAlgorithm. #80679 (Pablo Marcos).
  • Não registrar nos logs reclamações sobre MADV_POPULATE_WRITE não compatível com kernels mais antigos (para evitar poluição nos logs). #80704 (Robert Schulze).
  • Adicionado suporte a Date32 e DateTime64 em TTL. #80710 (Andrey Zvonov).
  • Ajusta os valores de compatibilidade de max_merge_delayed_streams_for_parallel_write. #80760 (Azat Khuzhin).
  • Corrige uma falha: se uma exceção for lançada ao tentar remover um arquivo temporário (usado para descarregar dados temporários em disco) no destrutor, o programa pode ser encerrado. #80776 (Alexey Milovidov).
  • Adicionado o modificador IF EXISTS a SYSTEM SYNC REPLICA. #80810 (Raúl Marín).
  • Amplie a mensagem da exceção sobre “Ter zero bytes, mas o intervalo de leitura ainda não terminou…”, adicione a coluna finished_download_time à system.filesystem_cache’. #80849 (Kseniia Sumarokova).
  • Anteriormente, o armazenamento packed não era compatível com o índice de texto completo, porque o ID do segmento era atualizado em tempo real por meio da leitura e da gravação do arquivo (.gin_sid) em disco. No caso do armazenamento packed, a leitura de um valor de um arquivo sem commit não é compatível, o que causava um problema. #80852 (Elmi Ahmadov).
  • Adiciona uma seção sobre o algoritmo de busca à saída de EXPLAIN ao usá-lo com indexes = 1. Ela mostra “busca binária” ou “busca genérica por exclusão”. #80881 (Pablo Marcos).
  • No início de 2024, prefer_column_name_to_alias foi definido de forma fixa no código como True para o handler do MySQL porque o novo analisador não estava habilitado por padrão. Agora, essa definição fixa no código foi removida. #80916 (Yarik Briukhovetskyi).
  • Agora system.iceberg_history mostra o histórico de bancos de dados de catálogos como glue ou iceberg rest. Além disso, as colunas table_name e database_name foram renomeadas para table e database em system.iceberg_history para manter a consistência. #80975 (alesapin).
  • Permitir o modo de somente leitura para a função de tabela merge, para que o privilégio CREATE TEMPORARY TABLE não seja exigido para usá-la. #80981 (Miсhael Stetsyuk).
  • Melhor introspecção dos caches em memória (expondo informações sobre os caches em system.metrics, em vez de system.asynchronouse_metrics, que está incompleto). Adiciona o tamanho dos caches em memória (em bytes) ao dashboard.html. VectorSimilarityIndexCacheSize/IcebergMetadataFilesCacheSize foram renomeados para VectorSimilarityIndexCacheBytes/IcebergMetadataFilesCacheBytes. #81023 (Azat Khuzhin).
  • Ignorar bancos de dados com motores que não podem conter tabelas RocksDB durante a leitura de system.rocksdb. #81083 (Pervakov Grigorii).
  • Permite filesystem_caches e named_collections no arquivo de configuração do clickhouse-local. #81105 (Alexey Milovidov).
  • Corrige o destaque de PARTITION BY em consultas INSERT. Em versões anteriores, PARTITION BY não era destacado como palavra-chave. #81106 (Alexey Milovidov). #* Duas pequenas melhorias na interface web: tratar corretamente consultas sem saída, como CREATE e INSERT (até recentemente, essas consultas resultavam em um spinner infinito); - ao clicar duas vezes em uma tabela, rolar até o topo. #81131 (Alexey Milovidov). #* Atualiza c-ares para v1.34.5. #81159 (Konstantin Bogdanov). #* Atualiza o curl para 8.14 para corrigir as CVE-2025-5025 e CVE-2025-4947. #81171 (larryluogit). #* Atualiza o libarchive para 3.7.9 para corrigir: CVE-2024-20696 CVE-2025-25724 CVE-2024-48958 CVE-2024-57970 CVE-2025-1632 CVE-2024-48957 CVE-2024-48615. #81174 (larryluogit). #* Atualiza o libxml2 para 2.14.3. #81187 (larryluogit).
  • MemoryResidentWithoutPageCache indica a quantidade de memória física usada pelo processo do servidor, excluindo o cache de páginas em userspace, em bytes. Isso oferece uma visão mais precisa do uso real de memória quando o cache de páginas em userspace é utilizado. Quando o cache de páginas em userspace está desabilitado, esse valor é igual a MemoryResident. #81233 (Jayme Bird).
  • Marque como registradas as exceções registradas manualmente no cliente, no servidor local, no cliente Keeper e no app de disks, para que não sejam registradas duas vezes. #81271 (Miсhael Stetsyuk).
  • As configurações use_skip_indexes_if_final e use_skip_indexes_if_final_exact_mode agora têm True como valor padrão. Consultas com a cláusula FINAL agora usarão índices de salto (quando aplicável) para selecionar os grânulos e também ler quaisquer grânulos adicionais correspondentes aos intervalos de chave primária correspondentes. Usuários que precisarem do comportamento anterior, com resultados aproximados/imprecisos, podem definir use_skip_indexes_if_final_exact_mode como FALSE após uma avaliação cuidadosa. #81331 (Shankar Iyer). #* Quando houver várias consultas na interface web, será executada aquela em que o cursor estiver posicionado. Continuação de #80977. #81354 (Alexey Milovidov).
  • Este PR corrige problemas na implementação de is_strict nas verificações de monotonicidade de funções de conversão. Atualmente, algumas funções de conversão, como toFloat64(UInt32) e toDate(UInt8), retornam incorretamente is_strict como false quando deveriam retornar true. #81359 (zoomxi). #* Em sistemas de arquivos com journal, mkdir é gravado no journal do sistema de arquivos, que é persistido em disco. No caso de um disco lento, isso pode demorar bastante. Faz todo sentido mover isso para fora do escopo do bloqueio de reserva. #81371 (Kseniia Sumarokova).
  • Ao verificar se uma KeyCondition corresponde a um intervalo contínuo, se a chave estiver envolvida por uma cadeia de funções não estritas, talvez seja necessário converter um Constraint::POINT em Constraint::RANGE. Por exemplo: toDate(event_time) = '2025-06-03' define um intervalo para event_time: [‘2025-06-03 00:00:00’, ‘2025-06-04 00:00:00’). Este PR corrige esse comportamento. #81400 (zoomxi). #* Passa a usar postgres 16.9. #81437 (Konstantin Bogdanov). #* Passa a usar openssl 3.2.4. #81438 (Konstantin Bogdanov). #* Passa a usar abseil-cpp 2025-01-27. #81440 (Konstantin Bogdanov). #* Passa a usar mongo-c-driver 1.30.4. #81449 (Konstantin Bogdanov). #* Passa a usar krb5 1.21.3-final. #81453 (Konstantin Bogdanov). #* Passa a usar orc 2.1.2. #81455 (Konstantin Bogdanov). #* Adiciona suporte ao argumento --database em clickhouse-local. Agora é possível alternar para um banco de dados criado anteriormente. Isso fecha #44115. #81465 (Alexey Milovidov). #* Os aliases clickhouse/ch passam a invocar clickhouse-client em vez de clickhouse-local se --host ou --port forem especificados. Continuação de #79422. Fecha #65252. #81509 (Alexey Milovidov).
  • Agora que temos os dados da distribuição dos tempos de resposta do Keeper, podemos ajustar os intervalos do histograma. #81516 (Miсhael Stetsyuk).
  • Adia a leitura dos arquivos manifest do Iceberg até a primeira leitura de uma consulta. #81619 (Daniil Ivanik). #* Passa a usar grpc 1.73.0. #81629 (Konstantin Bogdanov). #* Passa a usar delta-kernel-rs v0.12.1. #81707 (Konstantin Bogdanov).
  • Adicionado o evento de perfil PageCacheReadBytes. #81742 (Kseniia Sumarokova).

Correção de bug (comportamento incorreto perceptível ao usuário em uma versão estável oficial)

  • Corrige view parametrizada com consulta SELECT EXCEPT. Fecha #49447. #57380 (Nikolay Degterinsky).
  • Analisador: corrige o nome da projeção da coluna após a promoção do tipo da coluna em join. Fecha #63345. #63519 (Dmitry Novik).
  • Uma visão materializada pode ser iniciada tarde demais, por exemplo, depois da tabela Kafka que faz o streaming para ela. #72123 (Ilya Golshtein).
  • Foi corrigido um erro lógico em casos de conflito de nomes de coluna quando analyzer_compatibility_join_using_top_level_identifier está habilitado. #75676 (Vladimir Cherkasov).
  • Corrigidos travamentos raros ao ler uma tabela MergeTree após várias consultas assíncronas (com alter_sync = 0) RENAME COLUMN e ADD COLUMN. #76346 (Anton Popov).
  • Corrige a reescrita da consulta SELECT durante a criação de VIEW com o analisador habilitado. Fecha #75956. #76356 (Dmitry Novik).
  • Corrige o uso de CTE em predicados com pushdown aplicado quando allow_push_predicate_ast_for_distributed_subqueries está habilitado. Corrige #75647. Corrige #79672. #77316 (Dmitry Novik).
  • Corrigida a aplicação de async_insert a partir do servidor (via apply_settings_from_server) (antes causava erros Unknown packet 11 from server no cliente). #77578 (Azat Khuzhin).
  • Corrigido um problema que fazia a view materializada atualizável em bancos de dados Replicated não funcionar em réplicas adicionadas recentemente. #77774 (Michael Kolupaev).
  • Corrigido um problema com views materializadas atualizáveis que afetava os backups. #77893 (Michael Kolupaev).
  • Corrige um antigo erro lógico acionado por transform. #78247 (Yarik Briukhovetskyi).
  • Corrige um problema em que SYSTEM SYNC REPLICA LIGHTWEIGHT 'foo' reportava sucesso mesmo quando a réplica especificada não existia. Agora, o comando verifica corretamente se a réplica existe no Keeper antes de tentar a sincronização. #78405 (Jayme Bird).
  • Corrige alguns casos em que o índice secundário não era aplicado com o analyzer. Corrige #65607, corrige #69373. #78485 (Nikolai Kochetov).
  • Corrige a exportação de profile events (NetworkSendElapsedMicroseconds/NetworkSendBytes) para o protocolo HTTP com compressão habilitada (o erro não deve ser maior que o tamanho do buffer, geralmente em torno de 1MiB). #78516 (Azat Khuzhin). #* ```sql CREATE TABLE t0 ( key Int32, value Int32 ) ENGINE=MergeTree() PRIMARY KEY key PARTITION BY key % 2;. #78593 (Vlad).
  • Correção no analyzer que gerava LOGICAL_ERROR quando JOIN ... USING envolve a coluna ALIAS — deve gerar um erro adequado. #78618 (Yakov Olkhovskiy).
  • Correção no analisador: CREATE VIEW ... ON CLUSTER falha se o SELECT contiver argumentos posicionais. #78663 (Yakov Olkhovskiy).
  • Corrige o erro Block structure mismatch no caso de INSERT SELECT em uma função de tabela com inferência de esquema quando o SELECT contém subconsultas escalares. #78677 (Pervakov Grigorii).
  • Correção no analyzer: com prefer_global_in_and_join=1, para a tabela Distributed em uma consulta SELECT, a função in deve ser substituída por globalIn. #78749 (Yakov Olkhovskiy).
  • Corrigidos vários tipos de consultas SELECT que leem de tabelas com engine MongoDB ou a função de tabela mongodb: consultas com conversão implícita de um valor constante na cláusula WHERE (por exemplo, WHERE datetime = '2025-03-10 00:00:00'); consultas com LIMIT e GROUP BY. Antes, elas podiam retornar resultados incorretos. #78777 (Anton Popov).
  • Corrige a conversão entre diferentes tipos de JSON. Agora, ela é feita com um cast simples, por meio da conversão para/de String. É menos eficaz, mas 100% precisa. #78807 (Pavel Kruglov).
  • Corrigido erro lógico durante a conversão do tipo Dynamic para Interval. #78813 (Pavel Kruglov).
  • Corrige o rollback da coluna em caso de erro ao analisar JSON. #78836 (Pavel Kruglov).
  • Corrige o erro ‘bad cast’ ao usar join com uma coluna de alias constante. #78848 (Vladimir Cherkasov).
  • Não permitir PREWHERE em visões materializadas em colunas com tipos diferentes entre a visão e a tabela de destino. #78889 (Pavel Kruglov).
  • Corrige erro lógico no parsing de dados binários inválidos em coluna Variant. #78982 (Pavel Kruglov).
  • Lança uma exceção quando o tamanho do batch do Parquet é definido como 0. Anteriormente, quando output_format_parquet_batch_size = 0, o ClickHouse travava. Agora, esse comportamento foi corrigido. #78991 (daryawessely).
  • Corrige a desserialização de discriminadores de Variant no formato básico em partes compactas. Isso foi introduzido em https://github.com/ClickHouse/ClickHouse/pull/55518. #79000 (Pavel Kruglov).
  • Dicionários do tipo complex_key_ssd_cache agora rejeitam os parâmetros block_size e write_buffer_size quando definidos como zero ou valores negativos (issue #78314). #79028 (Elmi Ahmadov).
  • Evite usar Field em colunas não agregadas no SummingMergeTree. Isso pode causar erros inesperados com tipos Dynamic/Variant usados no SummingMergeTree. #79051 (Pavel Kruglov).
  • Corrige a leitura de uma visão materializada com tabela de destino Distributed e cabeçalho diferente no analyzer. #79059 (Pavel Kruglov).
  • Corrige um travamento em uma situação muito específica, quando a função currentDatabase era usada em seções CONSTRAINT de consultas ON CLUSTER Fecha #78100. #79070 (pufit).
  • Corrige um bug em que arrayUnion() retornava valores extras (incorretos) em tabelas com inserções em lote. Corrige #75057. #79079 (Peter Nguyen). #* Corrige segfault em OpenSSLInitializer. Fecha #79092. #79097 (Konstantin Bogdanov).
  • Corrigido o envio de roles externas em consultas entre servidores. #79099 (Andrey Zvonov).
  • Sempre defina o prefixo para o ListObject do S3. #79114 (Azat Khuzhin).
  • Corrige um bug em que arrayUnion() retornava valores extras (incorretos) em tabelas com inserções em lote. Corrige #79157. #79158 (Peter Nguyen).
  • Corrigido erro lógico após o pushdown de filtro. #79164 (Pervakov Grigorii).
  • Tente usar IColumn em vez de Field em SingleValueDataGeneric. Isso corrige valores de retorno incorretos em algumas funções de agregação, como argMax, para os tipos Dynamic/Variant/JSON. #79166 (Pavel Kruglov).
  • Corrige o engine de tabela DeltaLake ao usar a implementação delta-kernel com endpoints baseados em HTTP, corrige NOSIGN. Fecha #78124. #79203 (Kseniia Sumarokova).
  • Correção no Keeper: evita acionar watches em requisições multi com falha. #79247 (Antonio Andelic).
  • Proibido o uso dos tipos Dynamic e JSON em IN. Com a implementação atual de IN, isso pode levar a resultados incorretos. O suporte adequado a esses tipos em IN é complexo e pode ser implementado no futuro. #79282 (Pavel Kruglov).
  • Corrige a verificação de caminhos duplicados durante a análise do tipo JSON. #79317 (Pavel Kruglov).
  • Corrige problemas na conexão do SecureStreamSocket. #79383 (Konstantin Bogdanov).
  • Corrigido o carregamento de discos plain_rewritable que contêm dados. #79439 (Julia Kartseva).
  • Corrige falha na descoberta dinâmica de subcolunas em partes Wide do MergeTree. #79466 (Pavel Kruglov).
  • Verifique o comprimento do nome da tabela apenas nas consultas CREATE iniciais. Não faça essa verificação para CREATEs secundários, para evitar problemas de compatibilidade retroativa. #79488 (Miсhael Stetsyuk).
  • Corrigido o erro Block structure mismatch em vários casos envolvendo tabelas com colunas esparsas. #79491 (Anton Popov).
  • Corrige dois casos do erro Logical Error: Can't set alias of * of Asterisk on alias. #79505 (Raúl Marín).
  • Correção da aplicação de use_native_copy e da configuração allow_azure_native_copy para o Azure blob storage, com atualização para usar cópia nativa apenas quando as credenciais corresponderem, resolve #78964. #79561 (Smita Kulkarni).
  • Correção do uso de caminhos incorretos ao renomear um banco de dados Atomic. #79569 (Tuan Pham Anh).
  • Corrige ORDER BY em coluna JSON junto com outras colunas. #79591 (Pavel Kruglov).
  • Corrige a duplicação de resultados ao ler de uma origem remota com use_hedged_requests e allow_experimental_parallel_reading_from_replicas desativados. #79599 (Eduard Karacharov).
  • Corrige uma falha na implementação do delta-kernel ao usar o Unity Catalog. #79677 (Kseniia Sumarokova).
  • Corrige macros para clusters de descoberta automática. #79696 (Anton Ivashkin).
  • Corrige erros lógicos relacionados ao escopo de origem desconhecida de uma coluna, gerados ao verificar se essa coluna está correlacionada. Corrige #78183. Corrige #79451. #79727 (Dmitry Novik).
  • Corrige resultados incorretos em grouping sets com ColumnConst e Analyzer. #79743 (Andrey Zvonov).
  • Corrige a duplicação dos resultados do shard local ao ler de uma tabela distribuída quando a réplica local está desatualizada. #79761 (Eduard Karacharov).
  • Trata adequadamente page_cache_limits quando configurado incorretamente. #79805 (Bharat Nallan).
  • Corrige o resultado da função SQL formatDateTime quando um formatador de tamanho variável (por exemplo, %W, isto é, o dia da semana Monday Tuesday etc.) é seguido por um formatador composto (um formatador que imprime vários componentes de uma só vez, por exemplo, %D, isto é, a data americana 05/04/25). #79835 (Robert Schulze).
  • IcebergS3 oferece suporte à otimização de count(), mas IcebergS3Cluster não. Como resultado, o valor de count() retornado no modo cluster pode ser um múltiplo do número de réplicas. #79844 (wxybear).
  • Corrige a ordem de ordenação dos NaNs com bit de sinal negativo. #79847 (Pervakov Grigorii).
  • Agora, GROUP BY ALL não considera a parte GROUPING. #79915 (Yarik Briukhovetskyi).
  • Corrige o erro AMBIGUOUS_COLUMN_NAME na materialização tardia quando nenhuma coluna é usada na execução da consulta antes da projeção. Exemplo: SELECT * FROM t ORDER BY rand() LIMIT 5. #79926 (Igor Nikonov).
  • Corrigida a mesclagem incorreta de estados das funções TopK / TopKWeighted, que causava valores de erro excessivos mesmo quando a capacidade não havia sido esgotada. #79939 (Joel Höner).
  • Ocultar a senha na consulta CREATE DATABASE datalake ENGINE = DataLakeCatalog(\'http://catalog:8181\', \'admin\', \'password\'). #79941 (Han Fei).
  • Permite especificar um alias em JOIN USING. Especifique esse alias caso a coluna tenha sido renomeada (por exemplo, devido a `ARRAY JOIN). Corrige #73707. #79942 (Nikolai Kochetov).
  • Passa a respeitar a configuração readonly no armazenamento de objetos azure_blob_storage. #79954 (Julia Kartseva).
  • Corrigidos resultados incorretos de consultas e falhas por falta de memória ao usar match(column, '^…') com caracteres escapados com barra invertida. #79969 (filimonov).
  • Desativação do particionamento Hive para data lakes resolve parcialmente https://github.com/issues/assigned?issue=ClickHouse%7CClickHouse%7C79937. #80005 (Daniil Ivanik).
  • Índices de salto com expressões lambda não podiam ser aplicados. Corrigido o caso em que as funções de alto nível na definição do índice correspondem exatamente às da consulta. #80025 (Nikolai Kochetov).
  • Permitir que visões materializadas com UNIONs funcionem corretamente em réplicas novas. #80037 (Samay Sharma).
  • Corrige a versão dos metadados durante o ATTACH da part na réplica que executa o comando ATTACH_PART do log de replicação. #80038 (Aleksei Filatov).
  • O especificador de formato %e na função SQL parseDateTime agora reconhece dias de um único dígito (por exemplo, 3), enquanto antes exigia preenchimento com espaço (por exemplo, 3). Isso torna seu comportamento compatível com o MySQL. Para manter o comportamento anterior, defina a configuração parsedatetime_e_requires_space_padding = 1. (problema #78243). #80057 (Robert Schulze).
  • Os nomes das Funções Definidas pelo Usuário Executáveis (eUDF) não são adicionados à coluna used_functions da tabela system.query_log, ao contrário do que ocorre com outras funções. Este PR implementa a adição do nome da eUDF se ela tiver sido usada na solicitação. #80073 (Kyamran). #* Corrige avisos Cannot find 'kernel' in '[...]/memory.stat' no log do ClickHouse (issue #77410). #80129 (Robert Schulze).
  • Corrige um erro lógico no Arrow format com LowCardinality(FixedString). #80156 (Pavel Kruglov).
  • Corrigida a leitura de subcolunas no mecanismo Merge. #80158 (Pavel Kruglov).
  • Corrige um bug na comparação entre tipos numéricos em KeyCondition. #80207 (Yarik Briukhovetskyi).
  • Corrige AMBIGUOUS_COLUMN_NAME ao aplicar materialização tardia a uma tabela com projeções. #80251 (Igor Nikonov).
  • Corrige a otimização incorreta de count para filtros por prefixo em strings, como LIKE ‘ab_c%’, ao usar projeções implícitas. Isso corrige #80250. #80261 (Amos Bird).
  • Corrige a serialização incorreta de campos numéricos aninhados como strings em documentos do MongoDB. Remove o limite máximo de profundidade dos documentos do MongoDB. #80289 (Kirill Nikiforov).
  • Executa verificações de metadados menos rigorosas para RMT no banco de dados Replicated. Fecha #80296. #80298 (Nikolay Degterinsky).
  • Corrigida a representação textual de DateTime e DateTime64 para armazenamento no PostgreSQL. #80301 (Yakov Olkhovskiy).
  • Permite DateTime com fuso horário em tabelas StripeLog. Isso corrige #44120. #80304 (Alexey Milovidov).
  • Desabilita o pushdown de filtro para o predicado com uma função não determinística caso a etapa do plano de consulta altere o número de linhas. Corrige #40273. #80329 (Nikolai Kochetov).
  • Corrige possíveis erros lógicos e travamentos em projeções com subcolunas. #80333 (Pavel Kruglov).
  • Corrige o erro NOT_FOUND_COLUMN_IN_BLOCK causado pela otimização de pushdown de filtro na etapa lógica do JOIN no caso em que a expressão ON não é uma igualdade trivial. Corrige #79647 Corrige #77848. #80360 (Nikolai Kochetov).
  • Corrige resultados incorretos ao ler chaves em ordem inversa em tabelas particionadas. Isso corrige #79987. #80448 (Amos Bird).
  • Corrigida a ordenação incorreta em tabelas com chave Nullable e optimize_read_in_order habilitado. #80515 (Pervakov Grigorii).
  • Corrigido o travamento do DROP de view materializada atualizável quando a view havia sido pausada com SYSTEM STOP REPLICATED VIEW. #80543 (Michael Kolupaev).
  • Corrige ‘Cannot find column’ ao usar tupla constante em consulta distribuída. #80596 (Yakov Olkhovskiy).
  • Corrigida a função shardNum em tabelas distribuídas com join_use_nulls. #80612 (János Benjamin Antal).
  • Corrige resultados incorretos ao ler uma coluna que existe em apenas um subconjunto de tabelas no mecanismo Merge. #80643 (Pavel Kruglov).
  • O timestamp na tabela iceberg_history agora deve estar correto. #80711 (Melvyn Peignon).
  • Corrige o tratamento de globs enum com um único elemento em funções de tabela de armazenamento de objetos. #80716 (Konstantin Bogdanov).
  • Corrige tipos de resultado incorretos em funções de comparação com Tuple(Dynamic) e String, que levavam a um erro lógico. #80728 (Pavel Kruglov).
  • Adiciona suporte ao tipo de dado timestamp_ntz, que estava ausente, para o Unity Catalog. Corrige #79535 e #79875. #80740 (alesapin).
  • Corrige o erro THERE_IS_NO_COLUMN em consultas distribuídas ao usar IN cte. Corrige #75032. #80757 (Nikolai Kochetov).
  • Corrige o número excessivo de arquivos (o que leva ao uso excessivo de memória) no ORDER BY externo. #80777 (Azat Khuzhin). #* Este PR pode fechar #80742. #80783 (zoomxi). #* Corrige uma falha no Kafka porque get_member_id() estava criando uma std::string a partir de NULL (provavelmente era um problema apenas quando a conexão com o broker falhava). #80793 (Azat Khuzhin).
  • Aguardar corretamente os consumidores antes de desligar o motor Kafka (consumidores ativos após o desligamento podem acionar várias asserções de depuração e também podem ler dados dos brokers em segundo plano depois que a tabela tiver sido excluída/desanexada). #80795 (Azat Khuzhin).
  • Corrige NOT_FOUND_COLUMN_IN_BLOCK, causado pela otimização predicate-push-down. Corrige #80443. #80834 (Nikolai Kochetov).
  • Corrige erro lógico ao resolver o curinga (*) em função de tabela em JOIN com USING. #80894 (Vladimir Cherkasov).
  • Corrige a contabilização de memória no cache de arquivos de metadados do Iceberg. #80904 (Azat Khuzhin).
  • Corrige o particionamento incorreto ao usar chave de partição Nullable. #80913 (Pervakov Grigorii).
  • Corrige o erro Table does not exist em consultas distribuídas com pushdown de predicado (allow_push_predicate_ast_for_distributed_subqueries=1) quando a tabela de origem não existe no iniciador. Corrige #77281. #80915 (Nikolai Kochetov).
  • Corrige o erro lógico em funções aninhadas com janelas nomeadas. #80926 (Pervakov Grigorii).
  • Corrige extremos em colunas Nullable e de ponto flutuante. #80970 (Pervakov Grigorii).
  • Corrige possível falha ao consultar system.tables (provavelmente em caso de pressão de memória). #80976 (Azat Khuzhin).
  • Corrige a renomeação atômica com truncate em arquivos cuja compressão é inferida pela extensão do arquivo. #80979 (Pablo Marcos). #* Corrige ErrorCodes::getName. #81032 (RinChanNOW).
  • Corrigido um bug em que o usuário não conseguia listar tabelas no Unity Catalog sem ter permissões para todas elas. Agora, todas as tabelas são listadas corretamente; ao tentar ler uma tabela restrita, será gerada uma exceção. #81044 (alesapin).
  • Agora, o ClickHouse ignorará erros e respostas inesperadas de catálogos de lagos de dados na consulta SHOW TABLES. Corrige #79725. #81046 (alesapin).
  • Corrige o parsing de DateTime64 a partir de inteiros em JSONExtract e no parsing do tipo JSON. #81050 (Pavel Kruglov).
  • Considera a configuração date_time_input_format no cache de inferência de esquema. #81052 (Pavel Kruglov).
  • Corrige travamento no INSERT se a tabela tiver sido removida com DROP após o início da consulta, mas antes do envio das colunas. #81053 (Azat Khuzhin).
  • Corrige o uso de um valor não inicializado em quantileDeterministic. #81062 (Azat Khuzhin).
  • Corrige o gerenciamento da contagem de hardlinks nas transações de disco metadatastoragefromdisk. adiciona testes. #81066 (Sema Checherinda).
  • Os nomes de funções definidas pelo usuário (UDF) não são adicionados à tabela system.query_log, ao contrário de outras funções. Este PR implementa a adição do nome da UDF a uma das duas colunas, used_executable_user_defined_functions ou used_sql_user_defined_functions, se a UDF tiver sido usada na requisição. #81101 (Kyamran).
  • Corrigidos erros Too large size ... passed to allocator ou possíveis travamentos em inserções via protocolo HTTP com formatos de texto (JSON, Values, …) e campos Enum omitidos. #81145 (Anton Popov).
  • Corrigido LOGICAL_ERROR no caso de coluna esparsa no bloco INSERT enviado para MV non-MT. #81161 (Azat Khuzhin).
  • Corrigido o erro Unknown table expression identifier para distributed_product_mode_local=local com replicação cruzada. #81162 (Nikolai Kochetov).
  • Corrigido o armazenamento em cache incorreto do número de linhas em arquivos Parquet após a filtragem. #81184 (Michael Kolupaev).
  • Corrige a configuração max_size_to_total_space do cache de FS quando usada com um caminho de cache relativo. #81237 (Kseniia Sumarokova).
  • Corrigido o travamento do clickhouse-local ao exportar tuplas const ou maps no formato Parquet. #81249 (Michael Kolupaev).
  • Verificar os offsets de arrays recebidos via rede. #81269 (Azat Khuzhin).
  • Corrigido um caso de borda em uma consulta que faz junções entre tabelas vazias e usa funções de janela. O bug levava a uma explosão no número de streams paralelos, o que causava OOMs. #81299 (Alexander Gololobov).
  • Correções para funções de Cluster de lago de dados (deltaLakeCluster, icebergCluster, etc.): (1) corrige um possível segfault em DataLakeConfiguration ao usar a função Cluster com o analisador antigo; (2) remove atualizações duplicadas de metadados do lago de dados (requisições extras ao armazenamento de objetos); (3) corrige a listagem desnecessária no armazenamento de objetos quando o formato não é especificado explicitamente (o que já havia sido feito para motores de lago de dados sem cluster). #81300 (Kseniia Sumarokova).
  • Faz com que a flag force_restore_data recupere metadados perdidos do Keeper. #81324 (Raúl Marín).
  • Corrige o erro de região no delta-kernel. Corrige #79914. #81353 (Kseniia Sumarokova).
  • Desativa o JIT incorreto para divideOrNull. #81370 (Raúl Marín).
  • Corrigido erro de insert quando uma tabela MergeTree tem um nome de coluna de partição longo. #81390 (hy123q).
  • Não armazene na memória o conteúdo de vários arquivos manifest. #81470 (Daniil Ivanik).
  • Corrige uma possível falha durante o encerramento dos pools em segundo plano (background_.*pool_size). #81473 (Azat Khuzhin).
  • Corrige uma leitura fora dos limites no formato Npy que ocorria ao gravar em uma tabela com o mecanismo URL. Isso encerra #81356. #81502 (Alexey Milovidov).
  • Há uma possibilidade de a interface web exibir NaN% (problemas típicos de JavaScript). #81507 (Alexey Milovidov).
  • Corrigido DatabaseReplicated para database_replicated_enforce_synchronous_settings=1. #81564 (Azat Khuzhin).
  • Corrige a ordem de ordenação para tipos LowCardinality(Nullable(…)). #81583 (Pervakov Grigorii).
  • O servidor não deve manter uma conexão HTTP se a requisição não tiver sido lida por completo do socket. #81595 (Sema Checherinda).
  • Faz com que subconsultas escalares correlacionadas retornem um resultado Nullable para a expressão de projeção. Corrige o caso em que uma subconsulta correlacionada produz um conjunto de resultados vazio. #81632 (Dmitry Novik).
  • Corrigido Unexpected relative path for a deduplicated part durante ATTACH no ReplicatedMergeTree. #81647 (Azat Khuzhin).
  • A configuração de consulta use_iceberg_partition_pruning não terá efeito no armazenamento Iceberg, porque usa o contexto global em vez do contexto da consulta. isso não é crítico porque o valor padrão é true. este PR pode corrigir isso. #81673 (Han Fei).
  • Adicionar validação para a configuração merge_max_block_size da MergeTree para garantir que não seja zero. #81693 (Bharat Nallan).
  • Corrige problemas no clickhouse-local relacionados a consultas DROP VIEW travadas. #81705 (Bharat Nallan).
  • Corrigido o join do StorageRedis em alguns casos. #81736 (Pervakov Grigorii).
  • Corrige falha em ConcurrentHashJoin com USING () vazio e o analisador antigo habilitado. #81754 (Nikita Taranov).
  • Correção no Keeper: bloquear commits de novos logs se houver uma entrada inválida nos logs. Anteriormente, se o líder aplicasse alguns logs incorretamente, continuaria a fazer commit de novos logs, embora o seguidor detectasse uma divergência no digest e abortasse. #81780 (Antonio Andelic).
Última modificação em 10 de junho de 2026