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çãogeotoh3_lon_lat_input_order = true. #78852 (Pratima Patel). - Índices do tipo
full_textforam renomeados paragin. Isso segue a terminologia mais familiar do PostgreSQL e de outros bancos de dados. Os índices existentes do tipofull_textainda podem ser carregados, mas lançarão uma exceção (sugerindo índicesgin) 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,falsepor 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
annoyeusearch. 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 índicesannoyeusearch, remova-os. #79802 (Robert Schulze). #* Remove a configuração do servidorformat_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 servidorbackup_threadserestore_threadsa serem diferentes de zero. #80224 (Raúl Marín). - Corrige
bitNot()paraStringpara retornar uma string terminada em zero. #80791 (Azat Khuzhin).
Novo recurso
- Adiciona uma nova opção a
SETTINGSdo MergeTree que especifica um codec de compressão padrão caso a consultaCREATEnã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 existentetoTimefoi alterado paratoTimeWithFixedDate, porque a funçãotoTimeé necessária para a função de CAST. #75735 (Yarik Briukhovetskyi). - Adiciona suporte a subconsultas correlacionadas como argumento da expressão
EXISTSna cláusulaWHERE. Fecha #72459. #76078 (Dmitry Novik). - Permite gravar nos motores de tabela Merge. #77484 (Anton Ivashkin).
INSERT SELECTdistribuído para tabelas MergeTree replicadas agora usa réplicas paralelas com eficiência para executarINSERTs em paralelo, selecionando dados diferentes em nós distintos e inserindo-os de forma independente. #78041 (Igor Nikonov).- Adicionar as funções
mapContainsValuesLike/mapContainsValues/mapExtractValuesLikepara 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_scheduling para mais detalhes. #78415 (Sergei Trifonov).
- Adicionadas as funções
getServerSettingegetMergeTreeSetting. 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_hintpara usar o arquivoversion-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 umFROM tableimplí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-formatnão for especificado e ele estiver processando um arquivo comum. #79085 (Alexey Milovidov).- Adiciona as funções
icebergHasheicebergBucketTransform. Oferece suporte à poda de arquivos de dados em tabelasIcebergparticionadas combucket transfom. #79262 (Daniil Ivanik). - Adicionado suporte ao Coalescing Merge Tree. Fecha #78869. #79344 (Konstantin Vedernikov).
- Adicionadas as funções
stringBytesUniqestringBytesEntropypara buscar dados possivelmente aleatórios ou criptografados. #79350 (Sachin Kumar Singh). - Suporte à coluna virtual
_part_starting_offsetem 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_querypara 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
MultiPolygonnopointInPolygon. #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
Bech32eBech32m(issue #40381). #80239 (George Larionov). - Suporte à configuração
diskpara 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 comtimestampinicial,timestampfinal e passo especificados - calculardelta,rate,ideltaeirateno 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
NULLemarrayFirst,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
tokenizerobrigatório e dois opcionais:max_rows_per_postings_listengram_size. #80262 (Elmi Ahmadov). - Índices experimentais do tipo
ginforam renomeados paratext. Índices existentes do tipoginainda podem ser carregados, mas gerarão uma exceção (sugerindo índicestextno 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 algoritmohashcomo fallback quando o tamanho da tabela à direita estiver abaixo desse limite. #76185 (Nikita Taranov). - A implementação atual de
Pipe::resizecria um único nóResizeouStrictResizeao 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 noExecutingGraph::Node::status_mutexdurante 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/AzureQueueao permitirINSERTs de dados em paralelo (pode ser habilitado com a configuração da filaparallel_inserts=true). Antes,S3Queue/AzureQueuesó podiam executar em paralelo a primeira parte do pipeline (download e análise); oINSERTera feito em uma única thread. E osINSERTs quase sempre são o gargalo. Agora, ele escalará de forma quase linear comprocessing_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ção
use_skip_indexes_in_final_exact_mode. Se uma consulta em uma tabelaReplacingMergeTreetiver a cláusulaFINAL, 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
uniqExactdurante a etapa final da agregação distribuída. #78703 (Nikita Taranov). - Corrige possível degradação de desempenho na mesclagem paralela de estados
uniqExactna agregação com chave. #78724 (Nikita Taranov). #* Substitui consultasDELETE FROM ... WHERE 1porTRUNCATE. (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
extractKeyValuePairsem vez de regex. #79067 (Arthur Passos). - Melhora o desempenho do
INSERT SELECTdistribuí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
LogSeriesLimiterfaç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::mergequando 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))aconvertDecimalsImpl. #79999 (Konstantin Bogdanov). - Definido
input_format_parquet_bloom_filter_push_downcomo 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
toFixedStringquando 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 SYNTAXagora usa um novo analisador. Ele retorna uma árvore de sintaxe abstrata (AST) gerada a partir da árvore de consulta. Foi adicionada a opçãoquery_tree_passespara 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,positiveModuloOrNullpara retornar NULL quando o argumento da direita for zero. #78276 (kevinyhzou). - Estenda a função
isIPAddressInRangepara 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_offsetem 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_queryesource) emsystem.named_collections. Fecha #78179. #78582 (MikhailBurdukov). - Adicionado o campo
conditionà tabela de sistemasystem.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 queall_topic_partitionsé o número total de partições eactive_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çãoCREATE 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.namee 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
_timeao mecanismoS3Queue. #78926 (Anton Ivashkin). - A função
tokensfoi ampliada para aceitar um argumento adicional “tokenizer”, além de outros argumentos específicos desse tokenizer. #79001 (Elmi Ahmadov). - A instrução
SHOW CLUSTERagora expande as macros (se houver) no argumento. #79006 (arf42). - As funções de hash agora oferecem suporte a valores
NULLem 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 ... DELETEotimizadas 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_syntaxfoi 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 virtualcache. 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 deparam_<name>(sublinhado). Isso resolve #63093. #79429 (Engel Danila). #* Adiciona a configuração do cache do sistema de arquivosmax_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çãoreconnectpara 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_bytespara 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-kerneldo armazenamentoDeltaLake. #79541 (Kseniia Sumarokova). - Se a leitura de uma URL envolver vários redirecionamentos, a configuração
enable_url_encodingserá aplicada corretamente em todos os redirecionamentos ao longo de toda a cadeia. #79563 (Shankar Iyer). - Permitir
ALTER TABLE ... MOVE|REPLACE PARTITIONpara 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_errorpara startup_scripts: quandothrow_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_traceequery_idà tabelasystem.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.functionsagora 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 campois_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 operadorEXCEPTterminar com*, a consulta formatada perde os parênteses e passa a ser interpretada como um*com o modificadorEXCEPT. Essas consultas são encontradas pelo fuzzer e dificilmente seriam encontradas na prática. Isso fecha #79950. #79952 (Alexey Milovidov). - Permite adicionar
http_response_headersahttp_handlersde 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] INpara a cláusulaPREWHERE, 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_encodingagora éFalse. #80088 (Shankar Iyer). - Este pequeno patch resolve #75817: permite obter dados de
auxiliary_zookeepersna tabelasystem.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
tokensagora oferece suporte aostringcomo 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_nullseany_respect_nullsnasimpleAggregateFunction. #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') noclickhouse-localsem 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 noclickhouse-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_rewritablecom 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çõesconnect_timeout_with_failover_ms/connect_timeout_with_failover_secure_mseram 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 UNFREEZEnã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:
IndexBinarySearchAlgorithmeIndexGenericExclusionSearchAlgorithm. #80679 (Pablo Marcos). - Não registrar nos logs reclamações sobre
MADV_POPULATE_WRITEnã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 EXISTSaSYSTEM 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
packednã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 armazenamentopacked, 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
EXPLAINao usá-lo comindexes = 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_aliasfoi 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_historymostra o histórico de bancos de dados de catálogos comoglueouiceberg rest. Além disso, as colunastable_nameedatabase_nameforam renomeadas paratableedatabaseemsystem.iceberg_historypara manter a consistência. #80975 (alesapin). - Permitir o modo de somente leitura para a função de tabela
merge, para que o privilégioCREATE TEMPORARY TABLEnã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 desystem.asynchronouse_metrics, que está incompleto). Adiciona o tamanho dos caches em memória (em bytes) aodashboard.html.VectorSimilarityIndexCacheSize/IcebergMetadataFilesCacheSizeforam renomeados paraVectorSimilarityIndexCacheBytes/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_cachesenamed_collectionsno arquivo de configuração doclickhouse-local. #81105 (Alexey Milovidov). - Corrige o destaque de
PARTITION BYem consultasINSERT. Em versões anteriores,PARTITION BYnão era destacado como palavra-chave. #81106 (Alexey Milovidov). #* Duas pequenas melhorias na interface web: tratar corretamente consultas sem saída, comoCREATEeINSERT(até recentemente, essas consultas resultavam em um spinner infinito); - ao clicar duas vezes em uma tabela, rolar até o topo. #81131 (Alexey Milovidov). #* Atualizac-aresparav1.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). MemoryResidentWithoutPageCacheindica 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_finaleuse_skip_indexes_if_final_exact_modeagora têmTruecomo valor padrão. Consultas com a cláusulaFINALagora 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 definiruse_skip_indexes_if_final_exact_modecomo 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_strictnas 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
KeyConditioncorresponde a um intervalo contínuo, se a chave estiver envolvida por uma cadeia de funções não estritas, talvez seja necessário converter umConstraint::POINTemConstraint::RANGE. Por exemplo:toDate(event_time) = '2025-06-03'define um intervalo paraevent_time: [‘2025-06-03 00:00:00’, ‘2025-06-04 00:00:00’). Este PR corrige esse comportamento. #81400 (zoomxi). #* Passa a usarpostgres16.9. #81437 (Konstantin Bogdanov). #* Passa a usaropenssl3.2.4. #81438 (Konstantin Bogdanov). #* Passa a usarabseil-cpp2025-01-27. #81440 (Konstantin Bogdanov). #* Passa a usarmongo-c-driver1.30.4. #81449 (Konstantin Bogdanov). #* Passa a usarkrb51.21.3-final. #81453 (Konstantin Bogdanov). #* Passa a usarorc2.1.2. #81455 (Konstantin Bogdanov). #* Adiciona suporte ao argumento--databaseemclickhouse-local. Agora é possível alternar para um banco de dados criado anteriormente. Isso fecha #44115. #81465 (Alexey Milovidov). #* Os aliasesclickhouse/chpassam a invocarclickhouse-clientem vez declickhouse-localse--hostou--portforem 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
grpc1.73.0. #81629 (Konstantin Bogdanov). #* Passa a usardelta-kernel-rsv0.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
MergeTreeapós várias consultas assíncronas (comalter_sync = 0)RENAME COLUMNeADD COLUMN. #76346 (Anton Popov). - Corrige a reescrita da consulta
SELECTdurante a criação deVIEWcom 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_subqueriesestá habilitado. Corrige #75647. Corrige #79672. #77316 (Dmitry Novik). - Corrigida a aplicação de
async_inserta partir do servidor (viaapply_settings_from_server) (antes causava errosUnknown packet 11 from serverno 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_ERRORquandoJOIN ... USINGenvolve a colunaALIAS— deve gerar um erro adequado. #78618 (Yakov Olkhovskiy). - Correção no analisador:
CREATE VIEW ... ON CLUSTERfalha se o SELECT contiver argumentos posicionais. #78663 (Yakov Olkhovskiy). - Corrige o erro
Block structure mismatchno caso deINSERT SELECTem uma função de tabela com inferência de esquema quando oSELECTconté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çãoindeve ser substituída porglobalIn. #78749 (Yakov Olkhovskiy). - Corrigidos vários tipos de consultas
SELECTque leem de tabelas com engineMongoDBou a função de tabelamongodb: consultas com conversão implícita de um valor constante na cláusulaWHERE(por exemplo,WHERE datetime = '2025-03-10 00:00:00'); consultas comLIMITeGROUP 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
PREWHEREem 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_cacheagora rejeitam os parâmetrosblock_sizeewrite_buffer_sizequando 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
currentDatabaseera usada em seçõesCONSTRAINTde consultasON CLUSTERFecha #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 emOpenSSLInitializer. 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
IColumnem vez deFieldemSingleValueDataGeneric. Isso corrige valores de retorno incorretos em algumas funções de agregação, comoargMax, para os tiposDynamic/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 deIN, isso pode levar a resultados incorretos. O suporte adequado a esses tipos emINé 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 mismatchem 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_requestseallow_experimental_parallel_reading_from_replicasdesativados. #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_limitsquando configurado incorretamente. #79805 (Bharat Nallan). - Corrige o resultado da função SQL
formatDateTimequando um formatador de tamanho variável (por exemplo,%W, isto é, o dia da semanaMondayTuesdayetc.) é seguido por um formatador composto (um formatador que imprime vários componentes de uma só vez, por exemplo,%D, isto é, a data americana05/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 ALLnão considera a parteGROUPING. #79915 (Yarik Briukhovetskyi). - Corrige o erro
AMBIGUOUS_COLUMN_NAMEna 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
readonlyno armazenamento de objetosazure_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
%ena função SQLparseDateTimeagora 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çãoparsedatetime_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_functionsda tabelasystem.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 avisosCannot 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
countpara 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
DateTimecom fuso horário em tabelasStripeLog. 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_BLOCKcausado pela otimização de pushdown de filtro na etapa lógica do JOIN no caso em que a expressãoONnã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
shardNumem tabelas distribuídas comjoin_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_COLUMNem consultas distribuídas ao usarIN cte. Corrige #75032. #80757 (Nikolai Kochetov). - Corrige o número excessivo de arquivos (o que leva ao uso excessivo de memória) no
ORDER BYexterno. #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çãopredicate-push-down. Corrige #80443. #80834 (Nikolai Kochetov). - Corrige erro lógico ao resolver o curinga (*) em função de tabela em
JOINcomUSING. #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 existem 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
DateTime64a partir de inteiros emJSONExtracte no parsing do tipoJSON. #81050 (Pavel Kruglov). - Considera a configuração
date_time_input_formatno cache de inferência de esquema. #81052 (Pavel Kruglov). - Corrige travamento no
INSERTse a tabela tiver sido removida comDROPapó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_functionsouused_sql_user_defined_functions, se a UDF tiver sido usada na requisição. #81101 (Kyamran). - Corrigidos erros
Too large size ... passed to allocatorou possíveis travamentos em inserções via protocolo HTTP com formatos de texto (JSON,Values, …) e camposEnumomitidos. #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 identifierparadistributed_product_mode_local=localcom 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_spacedo 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 emDataLakeConfigurationao usar a funçãoClustercom 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_datarecupere 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
insertquando 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
Npyque ocorria ao gravar em uma tabela com o mecanismoURL. Isso encerra #81356. #81502 (Alexey Milovidov). - Há uma possibilidade de a interface web exibir
NaN%(problemas típicos de JavaScript). #81507 (Alexey Milovidov). - Corrigido
DatabaseReplicatedparadatabase_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 partduranteATTACHnoReplicatedMergeTree. #81647 (Azat Khuzhin). - A configuração de consulta
use_iceberg_partition_pruningnã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_sizeda MergeTree para garantir que não seja zero. #81693 (Bharat Nallan). - Corrige problemas no
clickhouse-localrelacionados a consultasDROP VIEWtravadas. #81705 (Bharat Nallan). - Corrigido o
joindo StorageRedis em alguns casos. #81736 (Pervakov Grigorii). - Corrige falha em
ConcurrentHashJoincomUSING ()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).