Pular para o conteúdo principal

Alterações incompatíveis com versões anteriores

  • O formato de saída Parquet converte colunas Date e DateTime para tipos de data/hora compatíveis com o Parquet, em vez de gravá-las como números puros. DateTime passa a ser DateTime64(3) (antes: UInt32); a configuração output_format_parquet_datetime_as_uint32 restaura o comportamento anterior. Date passa a ser Date32 (antes: UInt16). #70950 (Michael Kolupaev).
  • Não permitir, por padrão, tipos comparáveis (como JSON/Object/AggregateFunction) em ORDER BY e nas funções de comparação less/greater/equal/etc. #73276 (Pavel Kruglov).
  • JSONEachRowWithProgress gravará o progresso sempre que ele ocorrer. Em versões anteriores, o progresso era mostrado apenas após cada bloco do resultado, o que o tornava inútil. A forma como o progresso é exibido foi alterada: ele não mostrará valores zero. Tenha em mente que o progresso é enviado mesmo quando ocorre com frequência. Isso pode gerar um volume significativo de tráfego. Tenha em mente que o progresso não é descarregado quando a saída está comprimida. Isso fecha #70800. #73834 (Alexey Milovidov).
  • A origem do dicionário mysql não faz mais a consulta SHOW TABLE STATUS, porque ela não traz nenhum benefício para tabelas InnoDB, assim como para versões recentes do MySQL em geral. Isso fecha #72636. Essa alteração é retrocompatível, mas foi incluída nesta categoria para que você tenha a chance de percebê-la. #73914 (Alexey Milovidov).
  • As tabelas Merge unificarão a estrutura das tabelas subjacentes por meio da união de suas colunas e da derivação de tipos comuns. Isso corrige #64864. Isso corrige #35307. Em certos casos, essa alteração pode ser incompatível com versões anteriores. Um exemplo é quando não há um tipo comum entre as tabelas, mas a conversão para o tipo da primeira tabela ainda é possível, como no caso de UInt64 e Int64 ou de qualquer tipo numérico para String. Se você quiser voltar ao comportamento antigo, defina merge_table_max_tables_to_look_for_schema_inference como 1 ou defina compatibility como 24.12 ou uma versão anterior. #73956 (Alexey Milovidov).
  • As consultas CHECK TABLE agora exigem um privilégio CHECK separado. Em versões anteriores, bastava ter o privilégio SHOW TABLES para executar essas consultas. Mas uma consulta CHECK TABLE pode ser pesada, e os limites usuais de complexidade de consulta aplicados a consultas SELECT não se aplicam a ela. Isso poderia levar a DoS. #74471 (Alexey Milovidov).
  • Verifica se todas as colunas de uma visão materializada correspondem à tabela de destino quando allow_materialized_view_with_bad_select é false. #74481 (Christoph Wurm).
  • A função h3ToGeo() agora retorna os resultados na ordem (lat, lon) (que é a ordem padrão das funções geométricas). Usuários que quiserem manter a ordem legada dos resultados (lon, lat) podem definir a configuração h3togeo_lon_lat_result_order = true. #74719 (Manish Gill).
  • Adicionados os formatos JSONCompactEachRowWithProgress e JSONCompactStringsEachRowWithProgress. Continuação de #69989. JSONCompactWithNames e JSONCompactWithNamesAndTypes não geram mais “totals” — aparentemente, isso foi um erro de implementação. #75037 (Alexey Milovidov).
  • Altere o padrão de format_alter_operations_with_parentheses para true para eliminar ambiguidades na lista de comandos ALTER (veja https://github.com/ClickHouse/ClickHouse/pull/59532). Isso quebra a replicação com clusters anteriores à versão 24.3. Se você estiver atualizando um cluster que usa lançamentos mais antigos, desative essa configuração na config do servidor ou atualize primeiro para a 24.3. #75302 (Raúl Marín).
  • Proibir TRUNCATE DATABASE em bancos de dados Replicated. #76651 (Bharat Nallan).
  • Desabilita réplicas paralelas por padrão quando o analisador está desabilitado, independentemente da configuração de compatibility. Ainda é possível alterar esse comportamento definindo explicitamente parallel_replicas_only_with_analyzer como false. #77115 (Igor Nikonov).
  • Não é mais possível usar NaN ou inf como valores de ponto flutuante em configurações. #77546 (Yarik Briukhovetskyi).
  • Corrige casos em que dateTrunc é usado com argumentos negativos de data/datahora. #77622 (Yarik Briukhovetskyi).
  • A integração legada com o MongoDB foi removida. A configuração do servidor use_legacy_mongodb_integration tornou-se obsoleta e agora não tem mais efeito. #77895 (Robert Schulze).
  • Melhora a validação do SummingMergeTree para ignorar a agregação de colunas usadas em chaves de partição ou de ordenação. #78022 (Pervakov Grigorii).

Novos recursos

  • Adicionado um cache em memória para grânulos desserializados de índices de skipping. Isso deve acelerar consultas repetidas que usam índices de skipping. O tamanho do novo cache é controlado pelas configurações do servidor skipping_index_cache_size e skipping_index_cache_max_entries. Esse cache foi motivado originalmente pelos índices de similaridade vetorial, que agora ficaram muito mais rápidos. #70102 (Robert Schulze).
  • Uma nova implementação do cache de páginas em espaço do usuário, que permite armazenar dados em cache na memória do próprio processo, em vez de depender do cache de páginas do sistema operacional. Isso é útil quando os dados são armazenados em um sistema de arquivos virtual remoto, sem o suporte do cache do sistema de arquivos local. #70509 (Michael Kolupaev).
  • Adiciona uma configuração para consultar tabelas Iceberg com base em um timestamp específico. #71072 (Brett Hoerner).
  • Implementa o pruning de partições em tabelas Iceberg para operações de transformação de partição relacionadas a tempo no Iceberg. #72044 (Daniil Ivanik).
  • Adiciona a capacidade de criar índices min-max (skipping) por padrão para colunas gerenciadas pelo MergeTree usando as configurações enable_minmax_index_for_all_numeric_columns (para colunas numéricas) e enable_minmax_index_for_all_string_columns (para colunas de texto). Por enquanto, ambas as configurações estão desativadas, portanto ainda não há nenhuma mudança de comportamento. #72090 (Smita Kulkarni).
  • Adicionada a função de agregação sequenceMatchEvents, que retorna os timestamps dos eventos correspondentes à cadeia de eventos mais longa no padrão. #72349 (UnamedRus).
  • As instruções SELECT e VIEW agora aceitam aliases, por exemplo, SELECT b FROM (SELECT number, number*2 FROM numbers(2)) AS x (a, b);. Isso permite executar a consulta 15 do TPC-H sem modificações. #72480 (Yarik Briukhovetskyi).
  • Foi adicionada uma nova configuração enable_adaptive_memory_spill_scheduler que permite que vários grace JOINs na mesma consulta monitorem seu consumo de memória combinado e acionem, de forma adaptativa, o spilling para armazenamento externo a fim de evitar MEMORY_LIMIT_EXCEEDED. #72728 (lgbo).
  • Adicionada a função arrayNormalizedGini. #72823 (flynn).
  • Suporte a tipos de dados Decimal de baixa cardinalidade; corrige #72256. #72833 (zhanglistar).
  • Quando min_age_to_force_merge_seconds e min_age_to_force_merge_on_partition_only estão ativados, a mesclagem das partes ignorará o limite máximo de bytes. #73656 (Kai Zhu).
  • Adiciona suporte à leitura de valores HALF_FLOAT do Apache Arrow/Parquet/ORC (eles são lidos como Float32). Isso encerra #72960. Lembre-se de que o half float IEEE-754 não é o mesmo que BFloat16. Encerra #73835. #73836 (Alexey Milovidov).
  • A tabela system.trace_log conterá duas novas colunas, symbols e lines, com o stack trace simbolizado. Isso facilita a coleta e a exportação de informações de perfil. Isso é controlado pelo valor de configuração do servidor symbolize em trace_log e vem habilitado por padrão. #73896 (Alexey Milovidov).
  • Adiciona uma nova função, generateSerialID, que pode ser usada para gerar números autoincrementais em tabelas. Continuação de #64310, por kazalika. Fecha #62485. #73950 (Alexey Milovidov).
  • Adicionada a sintaxe query1 PARALLEL WITH query2 PARALLEL WITH query3 ... PARALLEL WITH queryN. Isso significa que as subconsultas {query1, query2, ... queryN} podem ser executadas em paralelo entre si (e isso é preferível). #73983 (Vitaly Baranov).
  • Agora, a Play UI tem uma barra de progresso durante a execução da consulta. Ela permite cancelar consultas. Exibe o número total de registros e informações detalhadas sobre a velocidade. A tabela pode ser renderizada de forma incremental assim que os dados chegam. Habilite a compressão HTTP. A renderização da tabela ficou mais rápida. O cabeçalho da tabela passou a ficar fixo. Ela permite selecionar células e navegar entre elas com as teclas de seta. Corrige o problema em que o contorno da célula selecionada a deixava menor. As células não se expandem mais ao passar o mouse sobre elas, mas apenas quando selecionadas. O momento de interromper a renderização dos dados recebidos é decidido no cliente, e não no servidor. Destaca grupos de dígitos em números. O design geral foi renovado e ficou mais marcante. Verifica se o servidor está acessível e se as credenciais estão corretas, além de exibir a versão do servidor e o tempo de atividade. O ícone de nuvem tem contorno em todas as fontes, inclusive no Safari. Inteiros grandes dentro de tipos de dados aninhados serão renderizados melhor. Exibirá inf/nan corretamente. Exibirá tipos de dados quando o mouse estiver sobre o cabeçalho de uma coluna. #74204 (Alexey Milovidov).
  • Adiciona a capacidade de criar, por padrão, índices min-max (skipping) para colunas gerenciadas pelo MergeTree usando as configurações add_minmax_index_for_numeric_columns (para colunas numéricas) e add_minmax_index_for_string_columns (para colunas de texto). Por enquanto, ambas as configurações estão desativadas, portanto ainda não há mudança de comportamento. #74266 (Smita Kulkarni).
  • Adiciona os campos script_query_number e script_line_number a system.query_log, ao ClientInfo no protocolo nativo e aos logs do servidor. Isso fecha #67542. Agradecimentos a pinsvin00 por ter iniciado esse recurso anteriormente em #68133. #74477 (Alexey Milovidov).
  • Adicionar suporte ao operador de subtração para DateTime64, permitindo a subtração entre valores DateTime64, bem como com DateTime. #74482 (Li Yin).
  • Adiciona suporte ao mecanismo de tabela DeltaLake para AzureBlobStorage. Corrige #68043. #74541 (Smita Kulkarni).
  • Adiciona a configuração bind_host para definir o endereço IP de origem nas conexões do clickhouse client. #74741 (Todd Yocum).
  • Foi adicionada a possibilidade de aplicar mutações ainda não concluídas (ainda não materializadas por um processo em segundo plano) durante a execução de consultas SELECT, imediatamente após o envio. Isso pode ser habilitado definindo apply_mutations_on_fly. #74877 (Anton Popov).
  • Foram corrigidos alguns casos anteriormente inesperados quando os argumentos de data e hora de toStartOfInterval são negativos. Isso foi feito com a implementação de uma nova função chamada toStartOfIntervalAllowNegative, que faz praticamente a mesma coisa, mas retorna apenas Date32/DateTime64. #74933 (Yarik Briukhovetskyi).
  • Uma nova função, initialQueryStartTime, foi adicionada. Ela retorna o horário de início da consulta atual. O valor é o mesmo em todos os shards durante uma consulta distribuída. #75087 (Roman Lomonosov).
  • Adiciona parametrized_view_parameters em system.tables. Fecha https://github.com/clickhouse/clickhouse/issues/66756. #75112 (NamNguyenHoai).
  • Permite alterar um comentário de banco de dados. Fecha #73351 ### Entrada na documentação para alterações voltadas ao usuário. #75622 (NamNguyenHoai).
  • Adicionada a capacidade de ATTACH de tabelas sem a camada de banco de dados (evita a gambiarra com UUID). #75788 (Azat Khuzhin).
  • Adicionada a configuração do servidor concurrent_threads_scheduler, que controla como os slots de CPU são distribuídos entre consultas concorrentes. Pode ser definida como round_robin (comportamento anterior) ou fair_round_robin para resolver o problema da distribuição desigual de CPU entre INSERTs e SELECTs. #75949 (Sergei Trifonov).
  • Restaura o codec QPL, removido na v24.10 devido a questões de licenciamento. #76021 (Konstantin Bogdanov).
  • Adicionada a função arraySymmetricDifference. Ela retorna todos os elementos de vários argumentos Array que não aparecem em todos os argumentos. Exemplo: SELECT arraySymmetricDifference([1, 2], [2, 3]) retorna [1, 3]. (issue #61673). #76231 (Filipp Abapolov).
  • Adicionada a função de agregação estimatecompressionratio — veja #70801. #76661 (Tariq Almawash).
  • Os eventos de perfil FilterTransformPassedRows e FilterTransformPassedBytes mostrarão o número de linhas e de bytes filtrados durante a execução da consulta. #76662 (Onkar Deshpande).
  • Adicionada a função de hash keccak256, comumente usada em implementações de blockchain, especialmente em sistemas baseados em EVM. #76669 (Arnaud Briche).
  • Scram SHA256 & atualização da autenticação wire do Postgres. #76839 (scanhex12).
  • Esse recurso permite definir uma lista de cabeçalhos que são encaminhados dos cabeçalhos da solicitação do cliente para o autenticador HTTP externo. #77054 (inv2004).
  • Suporte a IcebergMetadataFilesCache, que armazenará arquivos/listas de manifest e metadata.json em um único cache. #77156 (Han Fei).
  • Adiciona as funções arrayLevenshteinDistance, arrayLevenshteinDistanceWeighted e arraySimilarity. #77187 (Mikhail f. Shiryaev).
  • Adiciona três novas funções: icebergTruncate, de acordo com a especificação https://iceberg.apache.org/spec/#truncate-transform-details, toYearNumSinceEpoch e toMonthNumSinceEpoch. Adiciona suporte à transformação truncate na poda de partições do engine Iceberg. #77403 (alesapin).
  • Permite que um usuário consulte o estado de uma tabela Iceberg em um ponto anterior no tempo. #77439 (Daniil Ivanik).
  • Adicionado o agendamento de slots de CPU para workloads; veja https://clickhouse.com/docs/operations/workload-scheduling#cpu_scheduling para mais detalhes. #77595 (Sergei Trifonov).
  • A função hasAll() agora pode aproveitar os índices de skipping para texto completo tokenbf_v1 e ngrambf_v1. #77662 (UnamedRus).
  • O tipo de dado JSON está pronto para uso em produção. Veja https://jsonbench.com/. Os tipos de dados Dynamic e Varaint estão prontos para uso em produção. #77785 (Alexey Milovidov).
  • Adicionado um cache em memória para índices de similaridade vetorial desserializados. Isso deve acelerar consultas repetidas de busca aproximada por vizinhos mais próximos (ANN). O tamanho do novo cache é controlado pelas configurações do servidor vector_similarity_index_cache_size e vector_similarity_index_cache_max_entries. Este recurso substitui o recurso de cache de índices de skipping de lançamentos anteriores. #77905 (Shankar Iyer).
  • Adicionadas as funções sparseGrams e sparseGramsHashes com versões UTF-8. Autor: scanhex12. #78176 (Pervakov Grigorii).
  • Introduz a função toInterval. Esta função recebe 2 argumentos (valor e unidade) e converte o valor em um tipo Interval específico. #78723 (Andrew Davis).

Recursos experimentais

  • Permite operações automáticas de merge para limpeza de partições inteiras após um timeout configurável, com a nova configuração enable_replacing_merge_with_cleanup_for_min_age_to_force_merge. #76440 (Christoph Wurm).
  • Adiciona suporte ao Unity Catalog para tabelas DeltaLake em AWS S3 e no sistema de arquivos local. #76988 (alesapin).
  • Introduz integração experimental com o catálogo de serviços AWS Glue para tabelas Iceberg. #77257 (alesapin).

Melhorias de desempenho

  • Otimize o desempenho com projeção lazy para evitar a leitura de colunas não utilizadas. #55518 (Xiaozhe Yu).
  • Comece comparando as linhas pelas colunas com maior probabilidade de serem diferentes. #63780 (UnamedRus).
  • Otimização do formato de entrada RowBinary. Fecha #63805. #65059 (Pavel Kruglov).
  • Acelera a desserialização de strings com otimizações de baixo nível. #65948 (Nikita Taranov).
  • Aplica o atributo preserve_most em alguns pontos do código. #67778 (Nikita Taranov).
  • Implementa o cache de condições de consulta para melhorar o desempenho das consultas com condições repetidas. O intervalo da parcela de dados que não atende à condição é mantido na memória como um índice temporário. As consultas subsequentes usarão esse índice. fecha #67768 ### Entrada de documentação para alterações visíveis ao usuário. #69236 (zhongyuankai).
  • Suporte à pré-busca assíncrona de E/S para NativeORCBlockInputFormat, o que melhora o desempenho geral ao ocultar a latência de E/S remota. O ganho de desempenho pode chegar a 1,47x no meu caso de teste. #70534 (李扬).
  • Melhora o desempenho do grace hash join ao reordenar a tabela da direita do join pelas chaves. #72237 (kevinyhzou).
  • Reintroduz o respeito a ttl_only_drop_parts em materialize ttl; lê apenas as colunas necessárias para recalcular o TTL e descarta partes substituindo-as por uma vazia. #72751 (Andrey Zvonov).
  • Permite que arrayROCAUC e arrayAUCPR calculem uma área parcial da curva completa, para que esse cálculo possa ser paralelizado em conjuntos de dados muito grandes. #72904 (Emmanuel).
  • Evita criar threads ociosas em excesso. #72920 (Guo Wangyang).
  • A divisão dos blocos da tabela da esquerda por hash foi removida da fase de probe do algoritmo JOIN parallel_hash. #73089 (Nikita Taranov).
  • Não listar chaves no armazenamento de blobs se houver apenas expansão entre chaves na função de tabela. Fecha #73333. #73518 (Konstantin Bogdanov).
  • Substitui Int256 e UInt256 pelo builtin i256 do clang em cálculos aritméticos, de acordo com os testes em #70502. #73658 (李扬).
  • Adiciona um caminho rápido para funções cujos tipos de argumento são todos numéricos. Corrige problemas de desempenho em https://github.com/ClickHouse/ClickHouse/pull/72258. #73820 (李扬).
  • Não aplicar maskedExecute em colunas que não sejam funções; melhorar o desempenho da execução com curto-circuito. #73965 (lgbo).
  • Desative a detecção de headers para Kafka/NATS/RabbitMQ/FileLog para melhorar o desempenho. #74006 (Azat Khuzhin).
  • Use wrappers de log por valor e não os aloque no heap. #74034 (Mikhail Artemenko).
  • Executa um pipeline com maior grau de paralelismo após a agregação com grouping sets. #74082 (Nikita Taranov).
  • Reduz a seção crítica no MergeTreeReadPool. #74202 (Guo Wangyang).
  • Função indexHint otimizada. Agora, colunas usadas apenas como argumentos da função indexHint não são lidas da tabela. #74314 (Anton Popov).
  • Melhoria de desempenho de réplicas paralelas. A desserialização de pacotes no iniciador da consulta, para pacotes não relacionados ao protocolo de réplicas paralelas, agora sempre ocorre na thread do pipeline. Antes, isso podia ocorrer em uma thread responsável pelo agendamento do pipeline, o que podia deixar o iniciador menos responsivo e atrasar a execução do pipeline. #74398 (Igor Nikonov).
  • Corrigido o cálculo do tamanho na memória para colunas LowCardinality. #74688 (Nikita Taranov).
  • Melhora o desempenho da leitura da coluna JSON inteira em partes Wide do S3. Isso é feito com a adição de prefetches para a desserialização de prefixos de subcolunas, cache dos prefixos desserializados e desserialização paralela de prefixos de subcolunas. Isso melhora a leitura da coluna JSON do S3 em 4x em consultas como SELECT data FROM table e em cerca de 10x em consultas como SELECT data FROM table LIMIT 10. #74827 (Pavel Kruglov).
  • Pré-alocação da memória usada por inserções assíncronas para melhorar o desempenho. #74945 (Ilya Golshtein).
  • Corrigida a pré-alocação dupla em ConcurrentHashJoin quando os lados do join são invertidos pelo otimizador. #75149 (Nikita Taranov).
  • Corrigida a contenção desnecessária em parallel_hash quando max_rows_in_join = max_bytes_in_join = 0. #75155 (Nikita Taranov).
  • Pequena melhoria em alguns cenários de join: pré-calcular a quantidade de linhas de saída e reservar memória para elas. #75376 (Alexander Gololobov).
  • Os arquivos de metadados plain_rewritable são pequenos e não precisam de um buffer padrão grande. Use um buffer de gravação dimensionado adequadamente para acomodar o caminho fornecido, melhorando o uso de memória em um grande número de partes ativas. ### Entrada de documentação para alterações voltadas ao usuário. #75758 (Julia Kartseva).
  • Em alguns casos (por exemplo, uma coluna Array vazia), as partes de dados podem conter arquivos vazios. Podemos deixar de gravar blobs vazios no ObjectStorage e armazenar apenas os metadados desses arquivos quando a tabela está em um disco com metadados e armazenamento de objetos separados. #75860 (Alexander Gololobov).
  • Descobriu-se que o controle de concorrência podia levar a uma distribuição desigual de CPU entre INSERTs e SELECTs: quando todos os slots de CPU eram alocados incondicionalmente (sem competição) para INSERTs com max_threads = 1, SELECTs com valores altos de max_threads sofriam com baixo desempenho por usarem apenas uma única thread. #75941 (Sergei Trifonov).
  • Pequena otimização em wrapInNullable para evitar a alocação desnecessária de um map nulo. #76489 (李扬).
  • Melhora no desempenho de min/max para Decimal32/Decimal64/DateTime64. #76570 (李扬).
  • Remova ativamente os dados do cache ao remover partes. Não permita que o cache cresça até o tamanho máximo se a quantidade de dados for menor. #76641 (Alexey Milovidov).
  • A compilação de consultas (configuração compile_expressions) agora considera o tipo de máquina. Isso acelera significativamente consultas desse tipo. #76753 (Robert Schulze).
  • Otimiza o arraySort. #76850 (李扬).
  • Acelera a geração do resultado de JOIN ao desvirtualizar as chamadas para col->insertFrom(). #77350 (Alexander Gololobov).
  • Mescle as marcas da mesma parte e grave-as no cache de condições de consulta de uma só vez para reduzir o uso de bloqueios. #77377 (zhongyuankai).
  • Otimize o ORDER BY para colunas individuais Nullable ou de baixa cardinalidade. #77789 (李扬).
  • Desative filesystem_cache_prefer_bigger_buffer_size quando o cache for usado de forma passiva, como em merges. #77898 (Kseniia Sumarokova).
  • Implementa a otimização simples de contagem para Iceberg. Agora, consultas com count() e sem filtros devem ser mais rápidas. Fecha #77639. #78090 (alesapin).
  • Adiciona suporte à poda de dados do Iceberg com base nos valores de lower_bound e uppert_bound das colunas. Corrige #77638. #78242 (alesapin).
  • Otimização do uso de memória do NativeReader. #78442 (Azat Khuzhin).
  • Otimização trivial: não reescrever count(if()) como countIf se CAST for necessário. Fecha #78564. #78565 (李扬).

Melhorias

  • Reduza a quantidade de solicitações ao Keeper eliminando o uso de chamadas únicas de get, que poderiam causar uma carga significativa no Keeper com o aumento do número de réplicas, nos pontos em que multiRead está disponível. #56862 (Nikolay Degterinsky).
  • Adiciona suporte à autenticação SSL com coleções nomeadas no MySQL. Fecha #59111. #59452 (Nikolay Degterinsky).
  • Melhora o desempenho da infraestrutura do novo analisador ao armazenar ColumnPtr em vez de Field no ConstantNode. Relacionado a #62245. #63198 (Dmitry Novik).
  • Rejeitar consultas quando o servidor estiver sobrecarregado. A decisão é tomada com base na proporção entre o tempo de espera (OSCPUWaitMicroseconds) e o tempo ocupado (OSCPUVirtualTimeMicroseconds). A consulta é descartada com certa probabilidade quando essa proporção está entre min_os_cpu_wait_time_ratio_to_throw e max_os_cpu_wait_time_ratio_to_throw (essas são configurações no nível da consulta). #63206 (Alexey Katsman).
  • Descarte os blocos o mais cedo possível para reduzir o uso de memória. #65647 (lgbo).
  • A tabela processors_profile_log agora passa a ter uma configuração padrão com TTL de 30 dias. #66139 (Ilya Yatsishin).
  • Permite a criação de um índice bloom_filter em colunas com tipo de dado DateTime64. #66416 (Yutong Xiao).
  • Introduz faixas de latência e as usa para monitorar o tempo de conexão e o tempo até o primeiro byte de leitura/gravação em requisições ao S3. Dessa forma, será possível usar posteriormente os dados coletados para calcular percentis aproximados e ajustar os timeouts. #69783 (Alexey Katsman).
  • As consultas enviadas ao armazenamento Executable não estão mais limitadas à execução em uma única thread. #70084 (yawnt).
  • Adicionados cabeçalhos HTTP à tabela de logs de spans do OpenTelemetry para aumentar a rastreabilidade. #70516 (jonymohajanGmail).
  • Adiciona suporte à gravação de arquivos orc com um fuso horário personalizado, em vez de sempre usar o fuso horário GMT. #70615 (kevinyhzou).
  • Substitui funções de tabela por suas alternativas -Cluster se as réplicas paralelas estiverem habilitadas. Corrige #65024. #70659 (Konstantin Bogdanov).
  • Respeite as configurações de escalonamento de E/S ao gravar backups entre nuvens. #71093 (János Benjamin Antal).
  • Restabelecer a conexão com as réplicas de dicionário do MySQL e do Postgres em segundo plano para não atrasar as solicitações aos dicionários correspondentes. #71101 (Yakov Olkhovskiy).
  • Adicionar o nome do alias da métrica a system.asynchronous_metrics. #71164 (megao).
  • As atualizações de views materializadas atualizáveis agora aparecem em system.query_log. #71333 (Michael Kolupaev).
  • Avaliar em conjunto os filtros de Bloom do Parquet e os índices min/max. Necessário para dar suporte adequado a: x = 3 or x > 5, em que os dados = [1, 2, 4, 5]. #71383 (Arthur Passos).
  • Melhorias nas métricas interativas. Corrige métricas de réplicas paralelas que não eram exibidas por completo. Exibe as métricas ordenadas pela atualização mais recente e, em seguida, lexicograficamente pelo nome. Não exibe métricas desatualizadas. #71631 (Julia Kartseva).
  • Historicamente, por algum motivo, a consulta ALTER TABLE MOVE PARTITION TO TABLE verificava os privilégios SELECT e ALTER DELETE em vez do privilégio específico ALTER_MOVE_PARTITION. Este PR passa a usar esse tipo de acesso. Para manter a compatibilidade, essa permissão também será concedida implicitamente se SELECT e ALTER DELETE tiverem sido concedidos, mas esse comportamento será removido em lançamentos futuros. Fecha #16403. #71632 (pufit).
  • Habilita use_hive_partitioning por padrão. #71636 (Yarik Briukhovetskyi).
  • Lança uma exceção ao tentar materializar uma coluna na chave de ordenação, em vez de permitir que isso quebre a ordem de ordenação. No entanto, isso não resolve #71777. #71891 (Peter Nguyen).
  • Permite um algoritmo mais geral para planejamento de JOIN quando o algoritmo de hash join estiver habilitado. #71926 (János Benjamin Antal).
  • Ocultar dados sensíveis em EXPLAIN QUERY TREE. #72025 (Yakov Olkhovskiy).
  • Permite usar um disk configurável para armazenar arquivos de metadados de databases e tables. O nome do disk pode ser definido pelo parâmetro de config database_disk.disk. #72027 (Tuan Pham Anh).
  • Suporte aos tipos lógicos inteiros do Parquet no leitor nativo. #72105 (Arthur Passos).
  • Faça com que o formato de saída JSON seja bem formatado por padrão. Adicione a nova configuração output_format_json_pretty_print para controlá-la e habilite-a por padrão. #72148 (Pavel Kruglov).
  • Solicita credenciais de forma interativa no navegador se o usuário default exigir uma senha. Em versões anteriores, o servidor retornava HTTP 403; agora, retorna HTTP 401. #72198 (Alexey Milovidov).
  • Este PR converte os tipos de acesso CREATE_USER, ALTER_USER, DROP_USER, CREATE_ROLE, ALTER_ROLE, DROP_ROLE de globais para parametrizados. Isso significa que agora você pode conceder privilégios de gerenciamento de acesso com mais precisão. #72246 (pufit).
  • Permite nomes de shard na configuração do cluster. #72276 (MikhailBurdukov).
  • Suporte para CAST e ALTER entre tipos JSON com parâmetros diferentes. #72303 (Pavel Kruglov).
  • Adicione a coluna latest_fail_error_code_name a system.mutations. Precisamos dessa coluna para introduzir uma nova métrica sobre mutações travadas e usá-la para criar gráficos dos erros encontrados na nuvem e, opcionalmente, adicionar um novo alerta com menos ruído. #72398 (Miсhael Stetsyuk).
  • Reduz a quantidade de alocações ao anexar partições. #72583 (Konstantin Morozov).
  • Faz com que o limite de max_bytes_before_external_sort passe a depender do consumo total de memória da consulta (antes, era o número de bytes no bloco de ordenação para uma thread de ordenação; agora, ele tem o mesmo significado de max_bytes_before_external_group_by — ou seja, é o limite total para toda a memória da consulta em todas as threads). Além disso, foi adicionada mais uma configuração para controlar o tamanho do bloco no disco: min_external_sort_block_bytes. #72598 (Azat Khuzhin).
  • Ignorar as restrições de memória do collector de traces. #72606 (Azat Khuzhin).
  • Suporte a subcolunas na chave de ordenação do MergeTree e nos índices de salto. #72644 (Pavel Kruglov).
  • Adicionadas as configurações do servidor dictionaries_lazy_load e wait_dictionaries_load_at_startup a system.server_settings. #72664 (Christoph Wurm).
  • Adiciona a configuração max_backup_bandwidth à lista de configurações que podem ser especificadas nas consultas BACKUP/RESTORE. #72665 (Christoph Wurm).
  • As réplicas paralelas usavam informações históricas sobre a disponibilidade das réplicas para melhorar a seleção de réplicas, mas não atualizavam a contagem de erros da réplica quando a conexão estava indisponível. Este PR passa a atualizar a contagem de erros da réplica quando ela fica indisponível. #72666 (zoomxi).
  • Redução do nível de log das partes replicadas detectadas no engine ReplicatedMergeTree para ajudar a minimizar o volume de logs gerados em um cluster replicado. #72876 (mor-akamai).
  • Muitos novos recursos exigirão um melhor encapsulamento do código (no que diz respeito aos metadados do Iceberg) e abstrações de código mais adequadas. #72941 (Daniil Ivanik).
  • Suporte à comparação por igualdade para valores de coluna JSON. #72991 (Pavel Kruglov).
  • Aprimora a formatação de identificadores com subcolunas JSON para evitar crases desnecessárias. #73085 (Pavel Kruglov).
  • Registro de condições PREWHERE no nível Test. #73116 (Vladimir Cherkasov).
  • Suporte a SETTINGS com ENGINE implícito e à combinação de configurações de engine e de consulta. #73120 (Raúl Marín).
  • Grava partes no nível 1 se optimize_on_insert estiver habilitado. Isso permite usar várias otimizações de consultas com FINAL para partes recém-gravadas. #73132 (Anton Popov).
  • Para uma consulta como WHERE a<b AND b<c AND c<5, é possível gerar novas condições de comparação (a<5 and b<5) para melhorar a capacidade de filtragem. #73164 (Shichao Jin).
  • Melhora a extração de expressões comuns em disjunções. Permite simplificar a expressão de filtro resultante mesmo quando não há uma subexpressão comum a todas as disjunções. Continuação de #71537. #73271 (Dmitry Novik).
  • No Storage S3(Azure)Queue, foi permitido adicionar configurações a tabelas criadas sem configurações. #73283 (Kseniia Sumarokova).
  • Clickhouse-client agora oferece suporte a Ctrl+D para finalizar a consulta. Agora é possível usar Ctrl+D em vez de digitar um ponto e vírgula e pressionar Enter. Além disso, Ctrl+D passa a funcionar como Enter no modo de linha única. #73293 (Xiaozhe Yu).
  • Introduz a configuração least_greatest_legacy_null_behavior (padrão: false), que controla se as funções least e greatest tratam argumentos NULL retornando NULL incondicionalmente (se true) ou ignorando-os (se false). #73344 (Robert Schulze).
  • Usar requisições múltiplas do Keeper na thread de limpeza da ObjectStorageQueueMetadata. #73357 (Antonio Andelic).
  • Um novo driver do MongoDB agora é o padrão. Os usuários que quiserem continuar usando o driver legado podem definir a configuração no servidor use_legacy_mongodb_integration como true. #73359 (Robert Schulze).
  • Quando o ClickHouse é executado em um cgroup, ainda coletamos métricas assíncronas de todo o sistema relacionadas à carga do sistema, ao agendamento de processos, à memória etc. Elas podem fornecer sinais úteis quando o ClickHouse é o único processo no host com alto consumo de recursos. #73369 (Nikita Taranov).
  • No armazenamento S3Queue, agora é possível transferir tabelas ordenadas antigas criadas antes da versão 24.6 para a nova estrutura com buckets. #73467 (Kseniia Sumarokova).
  • Adiciona system.azure_queue, semelhante à system.s3queue existente. #73477 (Kseniia Sumarokova).
  • Foi corrigida uma regressão que fazia com que o uso de locales de collation com modificadores gerasse um erro. Como exemplo, SELECT arrayJoin(['kk 50', 'KK 01', ' KK 2', ' KK 3', 'kk 1', 'x9y99', 'x9y100']) item ORDER BY item ASC COLLATE 'tr-u-kn-true-ka-shifted agora funciona. #73544 (Robert Schulze).
  • Suporte para o tipo Nullable(JSON). #73556 (Pavel Kruglov).
  • A função parseDateTime64 (e suas variantes) agora produz resultados corretos para datas de entrada anteriores a 1970 / posteriores a 2106. Exemplo: SELECT parseDateTime64InJodaSyntax('2200-01-01 00:00:00.000', 'yyyy-MM-dd HH:mm:ss.SSS'). #73594 (zhanglistar).
  • Corrige alguns problemas de usabilidade do clickhouse-disks relatados por usuários. Fecha #67136. #73616 (Daniil Ivanik).
  • Permite alterar as configurações de commit no armazenamento S3(Azure)Queue. (As configurações de commit são: max_processed_files_before_commit, max_processed_rows_before_commit, max_processed_bytes_before_commit, max_processing_time_sec_before_commit). #73635 (Kseniia Sumarokova).
  • No armazenamento S3(Azure)Queue, o progresso é agregado entre as fontes para compará-lo com as configurações de limite de commit. #73641 (Kseniia Sumarokova).
  • Suporte às principais configurações na consulta BACKUP/RESTORE. #73650 (Vitaly Baranov).
  • Passa a ler output_format_compression_level na saída em Parquet. #73651 (Arthur Passos).
  • Adiciona suporte à leitura de arrow fixed_size_list como um Array, em vez de tratá-lo como um tipo não compatível. #73654 (Julian Meyers).
  • Este PR adiciona dois motores de backup: Memory (mantém os backups na sessão atual do usuário) e Null (não mantém backups em nenhum lugar):. #73690 (Vitaly Baranov).
  • concurrent_threads_soft_limit_num e concurrent_threads_soft_limit_num_ratio_to_cores podem ser alterados sem reiniciar o servidor. #73713 (Sergei Trifonov).
  • Adicionado suporte a tipos numéricos estendidos (Decimal, inteiros grandes) nas funções formatReadable. #73765 (Raúl Marín).
  • Passa a respeitar a correspondência de colunas sem diferenciar maiúsculas de minúsculas para campos em colunas de tupla. Fecha https://github.com/apache/incubator-gluten/issues/8324. #73780 (李扬).
  • Suporte a TLS para o protocolo wire do Postgres. #73812 (scanhex12).
  • Permite LowCardinality(UUID) por padrão. Isso tem se mostrado prático entre os clientes do ClickHouse Cloud. #73826 (Alexey Milovidov).
  • Melhor mensagem durante a instalação. #73827 (Alexey Milovidov).
  • Melhoria na mensagem sobre redefinição de senha do ClickHouse Cloud. #73831 (Alexey Milovidov).
  • Melhora a mensagem de erro de uma tabela File que não pode acrescentar dados a um arquivo. #73832 (Alexey Milovidov).
  • Perguntar ao usuário quando ele solicitar acidentalmente a saída em formato binário (como Native, Parquet, Avro) no terminal. Isso fecha #59524. #73833 (Alexey Milovidov).
  • O tipo de dado BFloat16 está pronto para uso em produção. #73840 (Alexey Milovidov).
  • Realça os espaços em branco à direita nos formatos Pretty e Vertical no terminal para maior clareza. Isso é controlado pela configuração output_format_pretty_highlight_trailing_spaces. Implementação inicial por Braden Burns em #72996. Fecha #71590. #73847 (Alexey Milovidov).
  • clickhouse-client e clickhouse-local detectarão automaticamente a compressão da stdin quando ela for redirecionada de um arquivo. Isso fecha #70865. #73848 (Alexey Milovidov).
  • Trunca nomes de coluna longos demais nos formatos Pretty por padrão. Isso é controlado pelas configurações output_format_pretty_max_column_name_width_cut_to e output_format_pretty_max_column_name_width_min_chars_to_cut. Esta é a continuação do trabalho de tanmaydatta em #66502. Isso fecha #65968. #73851 (Alexey Milovidov).
  • Torne os formatos Pretty mais apresentáveis: agrupe os blocos se não tiver passado muito tempo desde a saída do bloco anterior. Isso é controlado pelas novas configurações output_format_pretty_squash_consecutive_ms (50 ms por padrão) e output_format_pretty_squash_max_wait_ms (1000 ms por padrão). Continuação de #49537. Isso fecha #49153. #73852 (Alexey Milovidov).
  • Corrige o mapeamento de tipos para SQLite (tipos inteiros para int64 e tipos de ponto flutuante para float64). #73853 (Joanna Hulboj).
  • Adiciona uma métrica para o número de partes de origem que estão sendo mescladas no momento. Isso fecha #70809. #73868 (Alexey Milovidov).
  • Destaca as colunas no formato Vertical se a saída for para um terminal. Isso pode ser desativado com a configuração output_format_pretty_color. #73898 (Alexey Milovidov).
  • Foi aprimorada a compatibilidade com MySQL a ponto de agora o mysqlsh (um CLI avançado do MySQL da Oracle) conseguir se conectar ao ClickHouse. Isso é necessário para facilitar os testes. #73912 (Alexey Milovidov).
  • Se o número de registros de saída for maior que N = output_format_pretty_max_rows, em vez de exibir apenas as N primeiras linhas, a tabela de saída será cortada no meio, exibindo as N/2 primeiras linhas e as N/2 últimas linhas. Continuação de #64200. Isso encerra #59502. #73929 (Alexey Milovidov).
  • A função isIPv4String retornava true se um endereço IPv4 válido fosse seguido por um byte nulo, quando nesse caso deveria retornar false. Continuação de #65387. #73946 (Alexey Milovidov).
  • Torne o código de erro no MySQL wire protocol compatível com o MySQL. Continuação de #56831. Fecha #50957. #73948 (Alexey Milovidov).
  • Adiciona a configuração validate_enum_literals_in_opearators para validar literais de enum em operadores como IN e NOT IN em relação ao tipo enum e lançar uma exceção caso o literal não seja um valor enum válido. #73985 (Vladimir Cherkasov).
  • No Storage S3(Azure)Queue, faça commit de todos os arquivos (em um único lote definido pelas configurações de commit) em uma única transação do Keeper. #73991 (Kseniia Sumarokova).
  • Desabilitada a detecção de header para UDFs executáveis e dicionários (poderia levar a Function ‘X’: resultado incorreto, esperado Y linhas, obtido Y-1). #73992 (Azat Khuzhin).
  • Adicionada a opção distributed para EXPLAIN PLAN. Agora, EXPLAIN distributed=1 ... acrescenta o plano remoto às etapas ReadFromParallelRemote*. #73994 (Nikolai Kochetov).
  • Use o tipo de retorno adequado para not/xor com argumentos Dynamic. #74013 (Pavel Kruglov).
  • Permite alterar add_implicit_sign_column_constraint_for_collapsing_engine após a criação da tabela. #74014 (Christoph Wurm).
  • Suporte a subcolunas na consulta SELECT da visão materializada. #74030 (Pavel Kruglov).
  • Os formatos Pretty podem exibir campos multilinha dentro de uma célula de tabela, o que melhora a legibilidade. Isso é ativado por padrão e pode ser controlado pela configuração output_format_pretty_multiline_fields. Continuação do trabalho de Volodyachan em #64094. Isso fecha #56912. #74032 (Alexey Milovidov).
  • Adicionado suporte à otimização predicate-push-down no nível do plano de consulta para a etapa MergingAggregated. Isso melhora o desempenho de algumas consultas com o novo analisador. #74073 (Nikolai Kochetov).
  • Agora há três maneiras simples de definir um prompt personalizado no clickhouse-client: 1. pelo parâmetro de linha de comando --prompt, 2. no arquivo de configuração, pela configuração <prompt>[...]</prompt>, e 3. também no arquivo de configuração, pelas configurações por conexão <connections_credentials><prompt>[...]</prompt></connection_credentials>. #74168 (Christoph Wurm).
  • Altera o status de sucesso da resposta do prometheus remote write de 200/OK para 204/NoContent. #74170 (Michael Dempsey).
  • Exponha os cabeçalhos HTTP X-ClickHouse ao JavaScript no navegador. Isso torna o desenvolvimento de aplicativos mais prático. #74180 (Alexey Milovidov).
  • O formato JSONEachRowWithProgress incluirá eventos com metadados, além de totais e extremos. Ele também inclui rows_before_limit_at_least e rows_before_aggregation. O formato imprime a exceção corretamente se ela chegar após resultados parciais. O progresso agora inclui nanossegundos de tempo decorrido. Um evento final de progresso é emitido ao final. O progresso durante o tempo de execução da consulta não será impresso com frequência maior do que o valor da configuração interactive_delay. #74181 (Alexey Milovidov).
  • A ampulheta girará suavemente na Play UI. #74182 (Alexey Milovidov).
  • Mesmo que a resposta HTTP seja comprimida, envie os pacotes assim que eles cheguem. Isso permite que o navegador receba pacotes de progresso e dados comprimidos. #74201 (Alexey Milovidov).
  • Adiciona a capacidade de recarregar max_remote_read_network_bandwidth_for_serve e max_remote_write_network_bandwidth_for_server dinamicamente, sem reiniciar o servidor. #74206 (Kai Zhu).
  • Detectar automaticamente uma conexão segura ao se conectar à porta 9440 no ClickHouse Client. #74212 (Christoph Wurm).
  • Autenticação de usuários apenas com nome de usuário para http_handlers (anteriormente, também era necessário informar a senha). #74221 (Azat Khuzhin).
  • O suporte às linguagens de consulta alternativas PRQL e KQL foi classificado como experimental. Para usá-las, especifique as configurações allow_experimental_prql_dialect = 1 e allow_experimental_kusto_dialect = 1. #74224 (Robert Schulze).
  • Suporte ao retorno do tipo Enum padrão em mais funções de agregação. #74272 (Raúl Marín).
  • Em OPTIMIZE TABLE, agora também é possível usar a palavra-chave FORCE como alternativa à palavra-chave FINAL existente. #74342 (Robert Schulze).
  • Foi adicionada uma configuração do MergeTree, materialize_skip_indexes_on_merge, que impede a criação de skip indexes durante a mesclagem. Isso permite controlar explicitamente (via ALTER TABLE [..] MATERIALIZE INDEX [...]) quando os skip indexes são criados. Isso pode ser útil se os skip indexes forem custosos de criar (por exemplo, vector similarity indexes). #74401 (Robert Schulze).
  • Suporte a subcolunas em expressões padrão e materializadas. #74403 (Pavel Kruglov).
  • Otimização das solicitações do Keeper em Storage(S3/Azure)Queue. #74410 (Kseniia Sumarokova).
  • Adicionada a métrica IsServerShuttingDown, necessária para acionar um alerta quando o desligamento do servidor demora demais. #74429 (Miсhael Stetsyuk).
  • Adicionados os nomes das tabelas Iceberg ao EXPLAIN. #74485 (alekseev-maksim).
  • Passa a usar até 1000 réplicas paralelas por padrão. #74504 (Konstantin Bogdanov).
  • Melhora a mensagem de erro ao usar RECURSIVE CTE com o analyzer antigo. #74523 (Raúl Marín).
  • Otimiza as solicitações do Keeper no Storage(S3/Azure)Queue. #74538 (Kseniia Sumarokova).
  • Melhora a reutilização de sessões HTTP ao ler de um disco S3 (#72401). #74548 (Julian Maicher).
  • Exibir mensagens de erro detalhadas em system.errors. #74574 (Vitaly Baranov).
  • Foi ativada uma lógica de backoff para todos os tipos de tarefas replicadas. Isso permitirá reduzir o uso de CPU, o uso de memória e o tamanho dos arquivos de log. Foram adicionadas as novas configurações max_postpone_time_for_failed_replicated_fetches_ms, max_postpone_time_for_failed_replicated_merges_ms e max_postpone_time_for_failed_replicated_tasks_ms, que são semelhantes a max_postpone_time_for_failed_mutations_ms. #74576 (MikhailBurdukov).
  • Cálculo mais preciso da configuração max_joined_block_size_rows para o algoritmo de JOIN parallel_hash. Ajuda a evitar maior consumo de memória em comparação com o algoritmo hash. #74630 (Nikita Taranov).
  • Adicionado suporte à opção de configuração dfs.client.use.datanode.hostname do libhdfs3. #74635 (Mikhail Tiukavkin).
  • Corrige Invalid: o codec ‘snappy’ não oferece suporte à configuração de um nível de compressão. #74659 (Arthur Passos).
  • Permite usar senha na comunicação do cliente com o clickhouse-keeper. Esse recurso não é muito útil se você especificar a configuração de SSL adequada para o servidor e o cliente, mas ainda pode ser útil em alguns casos. A senha não pode ter mais de 16 caracteres. Não tem relação com o modelo de autenticação do Keeper. #74673 (alesapin).
  • Permite usar caminhos de blob para calcular checksum ao fazer backup. #74729 (Vitaly Baranov).
  • Use sharding dinâmico para JOIN se a chave de junção for um prefixo da PK em ambas as partes. Essa otimização é ativada com a configuração query_plan_join_shard_by_pk_ranges (desativada por padrão). #74733 (Nikolai Kochetov).
  • Adiciona código de erro ao recarregador de configuração. #74746 (Garrett Thomas).
  • Adicionado suporte a endereços IPv6 nas funções de tabela e nos motores do MySQL e PostgreSQL. #74796 (Mikhail Koviazin).
  • Os parâmetros do codec Gorilla agora serão sempre salvos nos metadados da tabela, no arquivo .sql. Isso corrige: #70072. #74814 (Nikita Mikhaylov).
  • Implementa a otimização de curto-circuito para divideDecimal. Corrige #74280. #74843 (Kevin Mingtarja).
  • Melhora o desempenho de requisições múltiplas maiores no Keeper. #74849 (Antonio Andelic).
  • Agora é possível especificar usuários nos scripts de inicialização. #74894 (pufit).
  • Busca de partes em paralelo no ALTER TABLE FETCH PARTITION (o tamanho do pool de threads é controlado por max_fetch_partition_thread_pool_size). #74978 (Azat Khuzhin).
  • Adicionada uma coluna de ID de consulta a system.query_cache (issue #68205). #74982 (NamNguyenHoai).
  • Protocolo SSH reativado. Algumas vulnerabilidades críticas foram corrigidas, de modo que não é mais possível usar um pager personalizado nem especificar server-logs-file. A capacidade de passar opções do cliente por variáveis de ambiente foi desabilitada por padrão (ainda é possível via ssh-server.enable_client_options_passing em config.xml). Adicionado suporte à tabela de progresso, cancelamento de consulta, autocompletar, progresso de eventos de perfil, stdin e à opção send_logs_level. Isso fecha: #74340. #74989 (Nikita Mikhaylov).
  • Corrige a formatação de exceções usando um formato personalizado se elas ocorrerem durante a interpretação da consulta. Em versões anteriores, as exceções eram formatadas usando o formato padrão em vez do formato especificado na consulta. Isso fecha #55422. #74994 (Alexey Milovidov).
  • Foram implementadas melhorias de parsing (parsing de IDs de sequência: foi adicionada a funcionalidade de analisar identificadores de sequência em arquivos de manifesto; e parsing de metadados Avro: o parser de metadados Avro foi reformulado para ser facilmente estendido em melhorias futuras). #75010 (Daniil Ivanik).
  • Agora é possível cancelar consultas ALTER TABLE ... FREEZE ... com KILL QUERY e timeout(max_execution_time). #75016 (Kirill).
  • Adicionado suporte a groupUniqArrayArrayMap como SimpleAggregateFunction. #75034 (Miel Donkers).
  • Suporte a prepared statements no protocolo wire do Postgres. #75035 (scanhex12).
  • Oculta as configurações de credenciais do catálogo no database engine Iceberg. Fecha #74559. #75080 (Kseniia Sumarokova).
  • Adicionados alguns recursos que faltavam no BuzzHouse: os operadores ILIKE e REGEXP, <=> e IS NOT DISTINCT FROM. #75168 (Pedro Ferreira).
  • A configuração min_chunk_bytes_for_parallel_parsing não pode mais ser definida como zero. Isso corrige: #71110. #75239 (Nikita Mikhaylov).
  • intExp2 / intExp10: Definem o comportamento para casos indefinidos: retornam 0 para argumento muito pequeno, 18446744073709551615 para argumento muito grande e geram exceção se nan. #75312 (Vitaly Baranov).
  • Suporte nativo a s3.endpoint na config do catálogo em DatabaseIceberg. Fecha #74558. #75375 (Kseniia Sumarokova).
  • Evita falha silenciosa quando o usuário que executa SYSTEM DROP REPLICA não tem permissões suficientes. #75377 (Bharat Nallan).
  • Adiciona um ProfileEvent sobre o número de vezes em que qualquer um dos logs do sistema falhou ao fazer flush. #75466 (Alexey Milovidov).
  • Adiciona verificação e logging na descriptografia e descompressão. #75471 (Vitaly Baranov).
  • Foi adicionado suporte ao símbolo de micro (U+00B5) na função parseTimeDelta. Agora, tanto o símbolo de micro (U+00B5) quanto a letra grega mu (U+03BC) são reconhecidos como representações válidas de microssegundos, alinhando o comportamento do ClickHouse à implementação do Go (veja time.go e time/format.go). #75472 (Vitaly Orlov).
  • Substitui a configuração do servidor (send_settings_to_client) pela configuração do cliente (apply_settings_from_server), que controla se o código do lado do cliente (por exemplo, para interpretar dados de INSERT e formatar a saída da consulta) deve usar as configurações do users.xml do servidor e do perfil do usuário. Caso contrário, são usadas apenas as configurações da linha de comando do cliente, da sessão e da consulta. Observe que isso se aplica apenas ao cliente nativo (não, por exemplo, ao HTTP) e não se aplica à maior parte do processamento da consulta (que acontece no servidor). #75478 (Michael Kolupaev).
  • Melhoria no Keeper: desativação do cálculo de digest ao fazer commit no armazenamento em memória para melhorar o desempenho. Ele pode ser habilitado com a configuração keeper_server.digest_enabled_on_commit. O digest ainda é calculado durante o pré-processamento das solicitações. #75490 (Antonio Andelic).
  • Aplicar push down à expressão de filtro de JOIN ON quando possível. #75536 (Vladimir Cherkasov).
  • Mensagens de erro melhores para erros de sintaxe. Anteriormente, se a consulta fosse grande demais e o token cujo comprimento excedia o limite fosse um literal de string muito grande, a mensagem com o motivo se perdia no meio de dois exemplos desse token muito longo. Corrigido o problema em que uma consulta com UTF-8 era truncada incorretamente na mensagem de erro. Corrigido o uso excessivo de aspas em fragmentos de consulta. Isso fecha #75473. #75561 (Alexey Milovidov).
  • Adicionar profile events ao armazenamento S3(Azure)Queue. #75618 (Kseniia Sumarokova).
  • Desative o envio de configurações do servidor para o cliente (send_settings_to_client=false) por compatibilidade (Este recurso será reimplementado posteriormente como configuração do cliente para melhorar a usabilidade). #75648 (Michael Kolupaev).
  • Adiciona a config memory_worker_correct_memory_tracker para permitir a correção do memory tracker interno com informações de diferentes fontes, lidas periodicamente pela thread em segundo plano. #75714 (Antonio Andelic).
  • Use o Analyzer no PrometheusRemoteReadProtocol. #75729 (Dmitry Novik).
  • Temos suporte para métricas do tipo gauge/counter. No entanto, elas são insuficientes para algumas métricas (por exemplo, os tempos de resposta de requisições ao Keeper), então é necessário oferecer suporte ao tipo de métrica de histograma. A interface segue de perto a do cliente do Prometheus, em que basta chamar observe(value) para incrementar o contador no bucket correspondente ao valor. As métricas de histograma são expostas por meio de system.histogram_metrics. #75736 (Miсhael Stetsyuk).
  • Adicionar a coluna normalized_query_hash a system.processes. Observação: embora ela possa ser calculada facilmente em tempo real com a função normalizedQueryHash, isso é necessário para preparar alterações subsequentes. #75756 (Alexey Milovidov).
  • Consultar system.tables não gerará exceção, mesmo que exista uma tabela Merge criada sobre um banco de dados que não existe mais. Remova o método getTotalRows das tabelas Hive, porque não permitimos que ele realize operações complexas. #75772 (Alexey Milovidov).
  • A interface web agora conta com navegação interativa no banco de dados. #75777 (Alexey Milovidov).
  • Permite combinar discos somente leitura e de leitura e escrita em uma política de armazenamento (como vários volumes ou vários discos). Isso permite ler dados de todo o volume, enquanto as inserções darão preferência ao disco com escrita habilitada (ou seja, política de armazenamento Copy-on-Write). #75862 (Azat Khuzhin).
  • Remove trace_id do ORDER BY padrão de system.opentelemetry_span_log. #75907 (Azat Khuzhin).
  • A criptografia (atributo XML encrypted_by) agora pode ser aplicada a qualquer arquivo de configuração (config.xml, users.xml, arquivos de configuração aninhados). Antes, ela funcionava apenas para o arquivo config.xml principal. #75911 (Mikhail Gorshkov).
  • Armazene start_time/end_time de backups com precisão de microssegundos. #75929 (Aleksandr Musorin).
  • Adicionada a métrica MemoryTrackingUncorrected, que mostra o valor do rastreador de memória global interno, não corrigido por RSS. #75935 (Antonio Andelic).
  • Calcular sob demanda os tamanhos das colunas e dos índices no MergeTree. #75938 (Pavel Kruglov).
  • Converte join em subconsulta IN se a coluna de saída estiver vinculada à tabela à esquerda; uma etapa de unicidade é necessária primeiro, por isso fica desabilitado por padrão até que essa etapa seja adicionada posteriormente. #75942 (Shichao Jin).
  • Foi adicionada uma configuração no nível do servidor, throw_on_unknown_workload, que permite escolher o comportamento de uma consulta quando a configuração workload é definida com um valor desconhecido: permitir acesso ilimitado (padrão) ou gerar um erro RESOURCE_ACCESS_DENIED. Isso é útil para forçar todas as consultas a usarem o escalonamento de workloads. #75999 (Sergei Trifonov).
  • Garantir que o novo engine de tabela Kafka experimental respeite totalmente as feature flags do Keeper. #76004 (János Benjamin Antal).
  • Não reescreva subcolunas como getSubcolumn em ARRAY JOIN se não for necessário. #76018 (Pavel Kruglov).
  • Tentar novamente em caso de erros de coordenação ao carregar tabelas. #76020 (Alexander Tokmakov).
  • Aprimora a tabela system.warnings e adiciona algumas mensagens de alerta dinâmicas que podem ser adicionadas, atualizadas ou removidas. #76029 (Bharat Nallan).
  • Suporte para flush de logs individuais em SYSTEM FLUSH LOGS. #76132 (Raúl Marín).
  • Melhorias na página /binary do servidor. Uso da curva de Hilbert em vez da curva de Morton. Exibição de 512 MB em endereços no quadrado, o que o preenche melhor (nas versões anteriores, os endereços preenchiam apenas metade do quadrado). Coloração dos endereços mais próxima do nome da biblioteca do que do nome da função. Permite rolar um pouco mais para fora da área. #76192 (Alexey Milovidov).
  • Este PR torna impossível executar a consulta ALTER USER user1 ADD PROFILES a, DROP ALL PROFILES, porque todas as operações DROP devem vir primeiro na ordem das operações. #76242 (pufit).
  • Vários aprimoramentos para SYNC REPLICA (mensagens de erro aprimoradas, testes aprimorados, verificações de consistência). #76307 (Azat Khuzhin).
  • Reexecutar consultas ON CLUSTER em caso de TOO_MANY_SIMULTANEOUS_QUERIES. #76352 (Patrick Galbraith).
  • O valor padrão de output_format_pretty_max_rows foi alterado de 10000 para 1000. Acho que isso melhora a usabilidade. #76407 (Alexey Milovidov).
  • Suporte à atualização em tabelas MergeTree de somente leitura. #76467 (Alexey Milovidov).
  • Use o fallback correto quando a cópia multipart para S3 falhar durante o backup com Access Denied. A cópia multipart pode gerar erro de Access Denied quando o backup é feito entre buckets com credenciais diferentes. #76515 (Antonio Andelic).
  • Desligamento mais rápido dos servidores ClickHouse (sem o atraso de 2,5 s). #76550 (Azat Khuzhin).
  • Adicionar query_id a system.errors. Ticket relacionado #75815. #76581 (Vladimir Baikov).
  • O librdkafka foi atualizado para a versão 2.8.0, e a sequência de encerramento das tabelas Kafka foi melhorada, reduzindo atrasos durante exclusões de tabelas e reinicializações do servidor. O engine=Kafka não sai mais explicitamente do grupo de consumidores quando uma tabela é removida. Em vez disso, o consumidor permanece no grupo até ser removido automaticamente após session_timeout_ms (padrão: 45 segundos) de inatividade. #76621 (filimonov).
  • Corrigida a validação das configurações de requisição do S3. #76658 (Vitaly Baranov).
  • Evita a alocação excessiva em readbufferfroms3 e em outros buffers de leitura remota, reduzindo pela metade o consumo de memória. #76692 (Sema Checherinda).
  • Suporte ao tipo JSON e à leitura de subcolunas em View. #76903 (Pavel Kruglov).
  • Adicionado suporte para converter UInt128 em IPv6. Isso permite a operação bitAnd e operações aritméticas com IPv6, bem como a conversão de volta para IPv6. Fecha #76752. Isso também permite que o resultado da operação bitAnd em IPv6 seja reconvertido para IPv6. Veja: https://github.com/ClickHouse/ClickHouse/pull/57707. #76928 (Muzammil Abdul Rehman).
  • Tabelas do sistema como server_settings ou settings têm uma coluna default de valor padrão, o que é conveniente. Apenas merge_tree_settings e replicated_merge_tree_settings não têm essa coluna disponível. #76942 (Diego Nieto).
  • Não analisa valores Bool especiais em formatos de texto dentro do tipo Variant por padrão. É possível habilitar isso com a configuração allow_special_bool_values_inside_variant. #76974 (Pavel Kruglov).
  • Suporte à configuração, por tarefa, do tempo de espera de consultas de baixa prioridade no nível da sessão e no nível do servidor. #77013 (VicoWu).
  • Adicionado ProfileEvents::QueryPreempted, que segue a mesma lógica de CurrentMetrics::QueryPreempted. #77015 (VicoWu).
  • Anteriormente, um banco de dados replicado podia registrar nos logs as credenciais especificadas em uma consulta. Esse comportamento foi corrigido. Isso fecha: #77123. #77133 (Nikita Mikhaylov).
  • Atualização do zstd de 1.5.5 para 1.5.7, que traz melhorias de desempenho consideráveis. #77137 (Pradeep Chhetri).
  • Permitir ALTER TABLE DROP PARTITION no disco plain_rewritable. #77138 (Julia Kartseva).
  • Adicionada a possibilidade de aguardar aleatoriamente até 500 ms, independentemente do tamanho das partes, antes da execução de merges/mutações em caso de replicação zero-copy. #77165 (Alexey Katsman).
  • Adiciona suporte à renomeação atômica quando TRUNCATE é usado com INTO OUTFILE. Resolve #70323. #77181 (Onkar Deshpande).
  • Use FixedString para os tipos CHARACTER, CHAR e BPCHAR do PostgreSQL. #77304 (Pablo Marcos).
  • Permite especificar explicitamente o arquivo de metadados a ser lido pelo Iceberg com a configuração iceberg_metadata_file_path da storage/table function. Corrige #47412. #77318 (alesapin).
  • Suporte ao uso de um disco remoto para que bancos de dados armazenem arquivos de metadados. #77365 (Tuan Pham Anh).
  • Implementada a comparação para valores do tipo de dado JSON. Agora, objetos JSON podem ser comparados de forma semelhante a Maps. #77397 (Pavel Kruglov).
  • Alteração revertida. #77399 (Yarik Briukhovetskyi).
  • A configuração de backup/restauração allow_s3_native_copy agora oferece suporte a três valores possíveis: - False - a cópia nativa do S3 não será usada; - True (padrão antigo) - o ClickHouse tentará primeiro a cópia nativa do S3; se falhar, recorrerá à abordagem de leitura+gravação; - 'auto' (novo padrão) - o ClickHouse comparará primeiro as credenciais de origem e de destino. Se forem iguais, o ClickHouse tentará a cópia nativa do S3 e, em seguida, poderá recorrer à abordagem de leitura+gravação. Se forem diferentes, o ClickHouse seguirá diretamente para a abordagem de leitura+gravação. #77401 (Vitaly Baranov).
  • Suporte ao ALTER TABLE … ATTACH|DETACH|MOVE|REPLACE PARTITION no disco plain_rewritable. #77406 (Julia Kartseva).
  • O cache de índice de skipping foi revertido. #77447 (Nikita Mikhaylov).
  • Reduz o uso de memória durante prefetches da coluna JSON em partes Wide. #77640 (Pavel Kruglov).
  • Adicionado suporte ao uso de token de sessão da AWS e de credenciais de ambiente no Delta Kernel para o mecanismo de tabela DeltaLake. #77661 (Kseniia Sumarokova).
  • Suporte a parâmetros de consulta na configuração additional_table_filters. Após a alteração, a consulta a seguir passaria a funcionar:. #77680 (wxybear).
  • Funções Definidas pelo Usuário (UDFs) agora podem ser marcadas como determinísticas por meio de uma nova tag na definição XML. Além disso, o cache de consultas agora verifica se as UDFs usadas em uma consulta são determinísticas. Se esse for o caso, ele armazena em cache o resultado da consulta. (Issue #59988). #77769 (Jimmy Aguilar Mena).
  • Adicionada a validação dos parâmetros do mecanismo de tabela Buffer. #77840 (Pervakov Grigorii).
  • Adiciona a configuração enable_hdfs_pread para habilitar ou desabilitar o pread do HDFS. #77885 (kevinyhzou).
  • Adiciona eventos de perfil para o número de solicitações ‘multi’ de leitura e escrita do ZooKeeper. #77888 (JackyWoo).
  • Permitir a criação e a inserção em tabela temporária quando disable_insertion_and_mutation estiver ativado. #77901 (Xu Jia).
  • Reduzir max_insert_delayed_streams_for_parallel_write (para 100). #77919 (Azat Khuzhin).
  • Adiciona a opção de configurar o número de colunas que as mesclagens podem gravar em paralelo usando max_merge_delayed_streams_for_parallel_write (isso deve reduzir em cerca de 25x o uso de memória nas mesclagens verticais para o S3). #77922 (Azat Khuzhin).
  • Corrigida a interpretação do ano na sintaxe Joda, como em ‘yyy’. #77973 (李扬).
  • A anexação das partes de tabelas MergeTree será feita na ordem dos blocos, o que é importante para algoritmos especiais de mesclagem, como o ReplacingMergeTree. Isso fecha #71009. #77976 (Alexey Milovidov).
  • As Query masking rules agora podem gerar um LOGICAL_ERROR se houver correspondência. Isso ajudará a verificar se uma senha predefinida está vazando em algum ponto dos logs. #78094 (Nikita Mikhaylov).
  • Adicionada a coluna index_length_column em information_schema.tables para melhorar a compatibilidade com o MySQL. #78119 (Paweł Zakrzewski).
  • Introduzidas duas novas métricas: TotalMergeFailures e NonAbortedMergeFailures. Essas métricas são necessárias para detectar os casos em que muitas operações de merge falham em um curto período. #78150 (Miсhael Stetsyuk).
  • Corrige a análise incorreta da URI do S3 quando a chave não é especificada no estilo path-style. #78185 (Arthur Passos).
  • Corrigidos os valores incorretos das métricas assíncronas BlockActiveTime, BlockDiscardTime, BlockWriteTime, BlockQueueTime e BlockReadTime (antes da mudança, 1 segundo era reportado incorretamente como 0,001). #78211 (filimonov).
  • Respeite o limite de loading_retries para erros durante o envio para a visão materializada do StorageS3(Azure)Queue. Antes disso, novas tentativas para esses erros eram feitas indefinidamente. #78313 (Kseniia Sumarokova).
  • No StorageDeltaLake com a implementação delta-kernel-rs, corrige o desempenho e a barra de progresso. #78368 (Kseniia Sumarokova).
  • O índice de similaridade vetorial podia alocar memória principal em excesso, em até 2x. Esta correção reformula a estratégia de alocação de memória, reduzindo o consumo de memória e melhorando a eficácia do cache do índice de similaridade vetorial. (problema #78056). #78394 (Shankar Iyer).
  • Introduzir uma configuração schema_type para a tabela system.metric_log com um tipo de esquema. Há três esquemas permitidos: wide — esquema atual, cada métrica/evento em uma coluna separada (mais eficaz para leituras de colunas individuais), transposed — semelhante a system.asynchronous_metric_log, métricas/eventos são armazenados como linhas, e o mais interessante, transposed_with_wide_view — cria a tabela subjacente com esquema transposed, mas também introduz uma view com esquema wide que converte consultas para a tabela subjacente. Em transposed_with_wide_view, não há suporte a resolução de subsegundos na view; event_time_microseconds é apenas um alias para retrocompatibilidade. #78412 (alesapin).
  • Suporte a include, from_env, from_zk em disks de runtime. Fecha #78177. #78470 (Kseniia Sumarokova).
  • Adiciona várias formas práticas de localizar o arquivo metadata.json na raiz em uma função de tabela e no engine Iceberg. Fecha #78455. #78475 (Daniil Ivanik).
  • Suporte à poda de partições no Delta Lake. #78486 (Kseniia Sumarokova).
  • Suporte à autenticação por senha no protocolo SSH no ClickHouse. #78586 (Nikita Mikhaylov).
  • Adicionado um aviso dinâmico à tabela system.warnings para mutações em execução há muito tempo. #78658 (Bharat Nallan).
  • Encerrar conexões se a CPU estiver extremamente sobrecarregada. A decisão é tomada com base na razão entre o tempo de espera (OSCPUWaitMicroseconds) e o tempo de uso (OSCPUVirtualTimeMicroseconds). A consulta é descartada com certa probabilidade quando essa razão está entre min_os_cpu_wait_time_ratio_to_drop_connection e max_os_cpu_wait_time_ratio_to_drop_connection. #78778 (Alexey Katsman).
  • Permitir valor vazio no particionamento Hive. #78816 (Arthur Passos).
  • Corrige a coerção de tipo na cláusula IN para BFloat16 (ou seja, SELECT toBFloat16(1) IN [1, 2, 3]; agora retorna 1). Fecha #78754. #78839 (Raufs Dunamalijevs).
  • Não verificar partes em outros disks do MergeTree se disk= estiver definido. #78855 (Azat Khuzhin).
  • Padronizar os tipos de dados em used_data_type_families no system.query_log. #78972 (Kseniia Sumarokova).

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

  • Corrige erro que impedia a criação do nó SEQUENTIAL com o keeper-client. #64177 (Duc Canh Le).
  • Corrige a resolução de identificadores em escopos superiores. Permite o uso de aliases para expressões na cláusula WITH. Corrige #58994. Corrige #62946. Corrige #63239. Corrige #65233. Corrige #71659. Corrige #71828. Corrige #68749. #66143 (Dmitry Novik).
  • Corrigida a contagem incorreta de caracteres em PositionImpl::vectorVector. #71003 (思维).
  • Corrigir a monotonicidade da função negate. Em versões anteriores, a consulta select * from a where -x = -42;, em que x é a chave primária, pode retornar um resultado incorreto. #71440 (Michael Kolupaev).
  • As operações RESTORE para entidades de acesso exigiam mais permissões do que o necessário devido a revogações parciais não tratadas. Este PR corrige o problema. Fecha #71853. #71958 (pufit).
  • Evita pausas após ALTER TABLE REPLACE/MOVE PARTITION FROM/TO TABLE. Obtém as configurações corretas para o agendamento de tarefas em segundo plano. #72024 (Aleksei Filatov).
  • Corrige o tratamento de tupla vazia em arrayIntersect. Isso corrige #72578. #72581 (Amos Bird).
  • Corrigido o tratamento de tuplas vazias em alguns formatos de entrada e saída (por exemplo, Parquet, Arrow). #72616 (Michael Kolupaev).
  • Instruções GRANT SELECT/INSERT em nível de coluna em bancos de dados/tabelas com curinga agora geram um erro. #72646 (Johann Gan).
  • Corrige a situação em que um usuário não consegue executar REVOKE ALL ON *.* por causa de grants implícitos na entidade de acesso de destino. #72872 (pufit).
  • Corrigido travamento durante o processamento de lote pendente para INSERT distribuído assíncrono (devido, por exemplo, a No such file or directory). #72939 (Azat Khuzhin).
  • Adicionar suporte a tokens SAS do Azure. #72959 (Azat Khuzhin).
  • Corrige a formatação de fuso horário com deslocamento positivo na função escalar formatDateTime. #73091 (ollidraese).
  • Correção para refletir corretamente a porta de origem quando a connection é feita por meio de PROXYv1 e auth_use_forwarded_address está definido — anteriormente, a porta do proxy era usada de forma incorreta. Adicionada a função currentQueryID(). #73095 (Yakov Olkhovskiy).
  • Propagar as configurações de formato para o NativeWriter em TCPHandler, para que configurações como output_format_native_write_json_as_string sejam aplicadas corretamente. #73179 (Pavel Kruglov).
  • Corrigida a leitura de subcolunas de subobjetos JSON com prefixo incorreto. #73182 (Pavel Kruglov).
  • Corrige uma falha em StorageObjectStorageQueue. #73274 (Kseniia Sumarokova).
  • Corrige uma falha rara na view materializada atualizável durante o desligamento do servidor. #73323 (Michael Kolupaev).
  • O placeholder %f da função formatDateTime agora gera incondicionalmente seis dígitos de fração de segundo. Isso torna o comportamento compatível com a função MySQL DATE_FORMAT. O comportamento anterior pode ser restaurado usando a configuração formatdatetime_f_prints_scale_number_of_digits = 1. #73324 (ollidraese).
  • A conversão de data e hora foi aprimorada durante a análise de índice com a aplicação de comportamento de saturação às conversões implícitas de Date para DateTime. Isso resolve possíveis imprecisões na análise de índice causadas pelas limitações do intervalo de datetime. Isso corrige #73307. Também corrige a conversão explícita toDateTime quando date_time_overflow_behavior = 'ignore', que é o valor padrão. #73326 (Amos Bird).
  • Corrigida a filtragem pela coluna _etag durante a leitura do armazenamento s3 e da função de tabela. #73353 (Anton Popov).
  • Corrige o erro Not-ready Set is passed as the second argument for function 'in' ao usar IN (subquery) na expressão JOIN ON com o analisador antigo. #73382 (Nikolai Kochetov).
  • Corrige a preparação para squashin em colunas Dynamic e JSON. Antes, em alguns casos, novos tipos podiam ser inseridos em variant compartilhado/dados compartilhados mesmo quando o limite de tipos/caminhos ainda não havia sido atingido. #73388 (Pavel Kruglov).
  • Verifica se há tamanhos corrompidos durante a decodificação binária de tipos para evitar alocações grandes demais. #73390 (Pavel Kruglov).
  • Corrigido um erro lógico na leitura de um cluster com uma única réplica e com réplicas paralelas habilitadas. #73403 (Michael Kolupaev).
  • Corrigido o ObjectStorageQueue com ZooKeeper e versões mais antigas do Keeper. #73420 (Antonio Andelic).
  • Implementa uma correção necessária para habilitar o particionamento no estilo Hive por padrão. #73479 (Yarik Briukhovetskyi).
  • Corrige a condição de corrida ao criar índice de similaridade vetorial. #73517 (Antonio Andelic).
  • Corrige segfault quando a origem do dicionário contém uma função com dados inválidos. #73535 (Yarik Briukhovetskyi).
  • Corrige as retentativas de insert com falha no storage S3(Azure)Queue. Fecha #70951. #73546 (Kseniia Sumarokova).
  • Corrigido um erro na função tupleElement que pode ocorrer, em alguns casos, em tuplas com elementos LowCardinality e com a configuração optimize_functions_to_subcolumns habilitada. #73548 (Anton Popov).
  • Corrige a análise sintática de enum glob seguido por outro de intervalo. Corrige #73473. #73569 (Konstantin Bogdanov).
  • Corrigido um problema em que parallel_replicas_for_non_replicated_merge_tree era ignorado em subconsultas para tabelas não replicadas. #73584 (Igor Nikonov).
  • Correção para std::logical_error gerada quando uma tarefa não pode ser agendada. Detectado em testes de estresse. Exemplo de stack trace: 2024.12.19 02:05:46.171833 [ 18190 ] {01f0daba-d3cc-4898-9e0e-c2c263306427} <Fatal> : Logical error: 'std::exception. Code: 1001, type: std::__1::future_error, e.what() = The associated promise has been destructed prior to the associated state becoming ready. (version 25.1.1.18724), Stack trace:. #73629 (Alexander Gololobov).
  • Não interprete consultas em EXPLAIN SYNTAX para evitar erros lógicos devido a um estágio de processamento incorreto em consultas distribuídas. Corrige #65205. #73634 (Dmitry Novik).
  • Corrige uma possível inconsistência de dados na coluna Dynamic. Corrige o possível erro lógico Nested columns sizes are inconsistent with local_discriminators column size. #73644 (Pavel Kruglov).
  • Corrigido NOT_FOUND_COLUMN_IN_BLOCK em consultas com FINAL e SAMPLE. Corrigido um resultado incorreto em consultas SELECT com FINAL de CollapsingMergeTree e habilitadas as otimizações de FINAL. #73682 (Anton Popov).
  • Corrigida falha em LIMIT BY COLUMNS. #73686 (Raúl Marín).
  • Corrige o bug quando o uso da projeção normal é forçado e a consulta é exatamente igual à projeção definida, mas a projeção não é selecionada e, assim, um erro é exibido. #73700 (Shichao Jin).
  • Corrige a desserialização da estrutura Dynamic/Object. Isso poderia levar a exceções CANNOT_READ_ALL_DATA. #73767 (Pavel Kruglov).
  • Ignorar metadata_version.txt durante a restauração de partes a partir de um backup. #73768 (Vitaly Baranov).
  • Corrigido #73737. #73775 (zhanglistar).
  • Corrige #72078 ( o suporte ao S3 Express não estava funcionando ). #73777 (Sameer Tamsekar).
  • Permitir a mesclagem de linhas com valores inválidos na coluna de sinal em tabelas do tipo CollapsingMergeTree. #73864 (Christoph Wurm).
  • Corrige o erro a seguir: Row 1: ────── hostname: c-test-wy-37-server-nlkyjyb-0.c-test-wy-37-server-headless.ns-test-wy-37.svc.cluster.local type: ExceptionWhileProcessing event_date: 2024-12-23 event_time: 2024-12-23 16:21:19 event_time_microseconds: 2024-12-23 16:21:19.824624 query_start_time: 2024-12-23 16:21:19 query_start_time_microseconds: 2024-12-23 16:21:19.747142 query_duration_ms: 77 read_rows: 1 read_bytes: 134 written_rows: 0 written_bytes: 0 result_rows: 0 result_bytes: 0 memory_usage: 7824 current_database: default query: CREATE DATABASE db0 formatted_query: normalized_query_hash: 7820917191074023511 -- 7.82 quintillion query_kind: Create databases: ['db0'] tables: [] columns: [] partitions: [] projections: [] views: [] exception_code: 170 exception: Code: 170. DB::Exception: Bad get: has Null, requested Int64: While executing DDLOnClusterQueryStatus. (BAD_GET) (version 25.1.1.19134 (official build)) stack_trace: 0. ./build_docker/./src/Common/Exception.cpp:107: DB::Exception::Exception(DB::Exception::MessageMasked&&, int, bool) @ 0x000000000da5e53b 1. DB::Exception::Exception(PreformattedMessage&&, int) @ 0x00000000088aca4c 2. DB::Exception::Exception<std::basic_string_view<char, std::char_traits<char>>, std::basic_string_view<char, std::char_traits<char>>>(int, FormatStringHelperImpl<std::type_identity<std::basic_string_view<char, std::char_traits<char>>>::type, std::type_identity<std::basic_string_view<char, std::char_traits<char>>>::type>, std::basic_string_view<char, std::char_traits<char>>&&, std::basic_string_view<char, std::char_traits<char>>&&) @ 0x00000000088bae8b 3. auto& DB::Field::safeGet<long>() & @ 0x0000000008a3c748 4. ./src/Core/Field.h:484: DB::ColumnVector<long>::insert(DB::Field const&) @ 0x0000000012e44c0f 5. ./build_docker/./src/Interpreters/DDLOnClusterQueryStatusSource.cpp:53: DB::DDLOnClusterQueryStatusSource::generateChunkWithUnfinishedHosts() const @ 0x0000000012a40214 6. ./build_docker/./src/Interpreters/DDLOnClusterQueryStatusSource.cpp:104: DB::DDLOnClusterQueryStatusSource::handleTimeoutExceeded() @ 0x0000000012a41640 7. ./build_docker/./src/Interpreters/DDLOnClusterQueryStatusSource.cpp:109: DB::DDLOnClusterQueryStatusSource::stopWaitingOfflineHosts() @ 0x0000000012a41be9 8. ./build_docker/./src/Interpreters/DistributedQueryStatusSource.cpp:182: DB::DistributedQueryStatusSource::generate() @ 0x0000000011feb3bf 9. ./build_docker/./src/Processors/ISource.cpp:139: DB::ISource::tryGenerate() @ 0x0000000014148f5b 10. ./build_docker/./src/Processors/ISource.cpp:108: DB::ISource::work() @ 0x0000000014148c47 11. ./build_docker/./src/Processors/Executors/ExecutionThreadContext.cpp:49: DB::ExecutionThreadContext::executeTask() @ 0x0000000014164fc7 12. ./build_docker/./src/Processors/Executors/PipelineExecutor.cpp:290: DB::PipelineExecutor::executeStepImpl(unsigned long, std::atomic<bool>*) @ 0x00000000141577e5. #73876 (Tuan Pham Anh).
  • Corrige uma falha ocasional na comparação de tipos map(), devido à possibilidade de criar Map sem a nomeação explícita (‘keys’,‘values’) de sua tupla aninhada. #73878 (Yakov Olkhovskiy).
  • Ignora funções de janela durante a resolução da cláusula GROUP BY ALL. Corrige #73501. #73916 (Dmitry Novik).
  • Propagar corretamente as configurações do Native format na comunicação cliente-servidor. #73924 (Pavel Kruglov).
  • Corrigidos os privilégios implícitos (antes funcionavam como curinga). #73932 (Azat Khuzhin).
  • Corrige o alto consumo de memória durante a criação de maps aninhados. #73982 (Pavel Kruglov).
  • Corrige o parsing de JSON aninhado com chaves vazias. #73993 (Pavel Kruglov).
  • Correção: o alias pode deixar de ser adicionado à projection se for referenciado por outro alias e selecionado na ordem inversa. #74033 (Yakov Olkhovskiy).
  • Um disk que usa os metadados plain_rewritable pode ser compartilhado entre várias instâncias do servidor. Espera-se que uma instância leia um objeto de metadados enquanto outra o modifica. Erros de objeto não encontrado são ignorados durante a inicialização do plain_rewritable com o armazenamento Azure, de forma semelhante ao comportamento implementado para o S3. #74059 (Julia Kartseva).
  • Corrige o comportamento de any e anyLast com tipos enum e tabela vazia. #74061 (Joanna Hulboj).
  • Corrige o caso em que o usuário especifica argumentos nomeados no engine de tabela Kafka. #74064 (Yarik Briukhovetskyi).
  • Corrigido o problema ao alterar as configurações de armazenamento S3Queue com o prefixo “s3queue_” para sem ele, e vice-versa. #74075 (Kseniia Sumarokova).
  • Adiciona uma configuração allow_push_predicate_ast_for_distributed_subqueries. Isso adiciona push-down de predicados baseado em AST para consultas distribuídas com o analisador. Esta é uma solução temporária que usamos até que haja suporte a consultas distribuídas com serialização de plano de consulta. Fecha #66878 #69472 #65638 #68030 #73718. #74085 (Nikolai Kochetov).
  • Corrige o problema em que, após #73095, a porta pode estar presente no campo forwarded_for, o que impede a resolução do nome do host com a porta incluída. #74116 (Yakov Olkhovskiy).
  • Corrigida a formatação incorreta de ALTER TABLE (DROP STATISTICS ...) (DROP STATISTICS ...). #74126 (Han Fei).
  • Correção do problema #66112. #74128 (Anton Ivashkin).
  • Não é mais possível usar Loop como engine de tabela em CREATE TABLE. Essa combinação causava segfaults anteriormente. #74137 (Yarik Briukhovetskyi).
  • Corrige uma falha de segurança para evitar injeção de SQL nas funções de tabela do PostgreSQL e SQLite. #74144 (Pablo Marcos).
  • Corrige uma falha ao ler uma subcoluna de uma tabela do engine Memory comprimida. Corrige #74009. #74161 (Nikita Taranov).
  • Foi corrigido um loop infinito que ocorria em consultas à system.detached_tables. #74190 (Konstantin Morozov).
  • Corrige erro lógico no S3Queue ao marcar o arquivo como falho. #74216 (Kseniia Sumarokova).
  • Verificação de tipos não suportados em alguns mecanismos de armazenamento. #74218 (Pavel Kruglov).
  • Corrige travamento com a consulta INSERT INTO SELECT na interface PostgreSQL no macOS (problema #72938). #74231 (Artem Yurov).
  • Corrige as configurações de cópia nativa (allow_s3_native_copy/allow_azure_native_copy) no RESTORE a partir do backup base. #74286 (Azat Khuzhin).
  • Corrigido o problema que ocorria quando o número de tabelas desanexadas no banco de dados era um múltiplo de max_block_size. #74289 (Konstantin Morozov).
  • Corrige a cópia via ObjectStorage (ou seja, S3) quando as credenciais de origem e destino são diferentes. #74331 (Azat Khuzhin).
  • Corrigido o max&#95;log&#95;ptr não inicializado no banco de dados replicado. #74336 (Konstantin Morozov).
  • Corrige a detecção de “usar o método Rewrite na API JSON” para cópia nativa no GCS. #74338 (Azat Khuzhin).
  • Corrige travamento ao inserir um intervalo (problema #74299). #74478 (NamNguyenHoai).
  • Corrige a análise incorreta de projeções quando count(nullable) é usado em projeções agregadas. Isso corrige #74495. Este PR também adiciona alguns logs sobre a análise de projeções para esclarecer por que uma projeção é usada ou por que não é. #74498 (Amos Bird).
  • Corrige o cálculo incorreto de BackgroundMergesAndMutationsPoolSize (estava 2x acima do valor real). #74509 (alesapin).
  • Corrige o bug de vazamento de watches no Keeper ao habilitar o Cluster Discovery. #74521 (RinChanNOW).
  • Corrige a formatação de literais JSON constantes. Antes, isso podia causar erros de sintaxe ao enviar a consulta para outro servidor. #74533 (Pavel Kruglov).
  • Corrigido problema de alinhamento de memória relatado pelo UBSan #74512. #74534 (Arthur Passos).
  • Corrigida a limpeza concorrente do KeeperMap durante a criação da tabela. #74568 (Antonio Andelic).
  • Não remova colunas de projeção não usadas em subconsultas na presença de EXCEPT ou INTERSECT, para preservar o resultado correto da consulta. Corrige #73930. Corrige #66465. #74577 (Dmitry Novik).
  • Corrige falha em consultas CREATE ao usar expressões de partição constantes com projeções implícitas habilitadas. Isso corrige #74596 . #74634 (Amos Bird).
  • Corrigidas consultas INSERT SELECT entre tabelas com colunas do tipo Tuple e com serialização esparsa habilitada. #74698 (Anton Popov).
  • A função right funciona incorretamente com offset negativo constante. #74701 (Daniil Ivanik).
  • Corrigida a falha ocasional ao inserir dados compactados com gzip, causada por uma descompressão defeituosa no lado do cliente. #74707 (siyuan).
  • Evitar deixar a conexão em estado inconsistente após o término do INSERT com exceção. #74740 (Azat Khuzhin).
  • Evite reutilizar conexões que ficaram em estado intermediário. #74749 (Azat Khuzhin).
  • Revogações parciais de grants com curinga podiam remover mais privilégios do que o esperado. Fecha #74263. #74751 (pufit).
  • Corrige travamento durante a análise da declaração do tipo JSON quando o nome do tipo não está em maiúsculas. #74784 (Pavel Kruglov).
  • Correção no Keeper: corrige a leitura de registros de log em disco. #74785 (Antonio Andelic).
  • Corrigida a verificação de privilégios para SYSTEM REFRESH/START/STOP VIEW; agora não é mais necessário ter esse privilégio em *.* para executar uma consulta em uma view específica, apenas os privilégios dessa view são exigidos. #74789 (Alexander Tokmakov).
  • A função hasColumnInTable não considera colunas de alias. Corrigida para também funcionar com colunas de alias. #74841 (Bharat Nallan).
  • Keeper: corrige logical_error quando a conexão havia sido encerrada antes de ser estabelecida. #74844 (Michael Kolupaev).
  • Corrige um comportamento em que o servidor não conseguia iniciar quando havia uma tabela usando AzureBlobStorage. As tabelas agora são carregadas sem nenhuma solicitação ao Azure. #74880 (Alexey Katsman).
  • Corrige a falta dos campos used_privileges e missing_privileges em query_log para operações de BACKUP e RESTORE. #74887 (Alexey Katsman).
  • Correção do erro FILE_DOESNT_EXIST que ocorria na mesclagem de partes de dados em uma tabela com uma coluna vazia no Azure Blob Storage. #74892 (Julia Kartseva).
  • Corrige o nome da coluna da projeção ao fazer junção de tabelas temporárias, fecha #68872. #74897 (Vladimir Cherkasov).
  • Renova o ticket krb do HDFS em caso de erro de sasl durante a solicitação hdfs select. #74930 (inv2004).
  • Corrigidas consultas ao banco de dados Replicated nos startup_scripts. #74942 (Azat Khuzhin).
  • Corrige problemas com expressões com alias na cláusula JOIN ON quando é usada uma comparação null-safe. #74970 (Vladimir Cherkasov).
  • Reverte o estado da part de deleting para outdated quando a operação de remoção falha. #74985 (Sema Checherinda).
  • Em versões anteriores, quando havia uma subconsulta escalar, passamos a registrar o progresso (acumulado durante o processamento da subconsulta) na inicialização do formato de dados, antes de os cabeçalhos HTTP serem gravados. Isso fazia com que cabeçalhos HTTP, como X-ClickHouse-QueryId e X-ClickHouse-Format, além do Content-Type, fossem perdidos. #74991 (Alexey Milovidov).
  • Corrigidas consultas CREATE TABLE AS... com database_replicated_allow_replicated_engine_arguments=0. #75000 (Bharat Nallan).
  • Corrigido problema que deixava a conexão em um estado incorreto no cliente após exceções de INSERT. #75030 (Azat Khuzhin).
  • Corrigida falha causada por exceção não capturada na replicação do PSQL. #75062 (Azat Khuzhin).
  • O Sasl pode falhar em qualquer chamada rpc; a correção permite repetir a chamada caso o ticket krb5 tenha expirado. #75063 (inv2004).
  • Corrigido o uso de índices (primários e secundários) em colunas Array, Map e Nullable(..) com a configuração optimize_function_to_subcolumns habilitada. Antes, os índices dessas colunas podiam ser ignorados. #75081 (Anton Popov).
  • Desative flatten_nested ao criar visões materializadas com tabelas internas, pois não será possível usar essas colunas achatadas. #75085 (Christoph Wurm).
  • Correção de um problema em que alguns endereços IPv6 (como ::ffff:1.1.1.1) no campo forwarded_for eram interpretados incorretamente, resultando na desconexão do cliente com uma exceção. #75133 (Yakov Olkhovskiy).
  • Corrige o tratamento de JOIN null-safe para o tipo de dado LowCardinality Nullable. Antes, JOIN ON com comparação null-safe, como IS NOT DISTINCT FROM, <=> , a IS NULL AND b IS NULL OR a == b, não funcionava corretamente com colunas LowCardinality. #75143 (Vladimir Cherkasov).
  • Corrige consultas com interpolação não utilizada no novo analisador. #75173 (János Benjamin Antal).
  • Corrigido o bug de travamento de CTE com insert. #75188 (Shichao Jin).
  • Correção do Keeper: evita gravar em changelogs danificados ao fazer rollback dos logs. #75197 (Antonio Andelic).
  • Use BFloat16 como supertipo quando apropriado. Isso fecha: #74404. #75236 (Nikita Mikhaylov).
  • Corrige valores padrão inesperados no resultado de JOIN com any_join_distinct_right_table_keys e OR na cláusula JOIN ON. #75262 (Vladimir Cherkasov).
  • Mascarar as credenciais do mecanismo de tabela azureblobstorage. #75319 (Garrett Thomas).
  • Corrigido o comportamento em que o ClickHouse podia aplicar indevidamente pushdown de filtro a um banco de dados externo, como PostgreSQL, MySQL ou SQLite. Isso fecha: #71423. #75320 (Nikita Mikhaylov).
  • Corrige um travamento no cache de esquema do Protobuf que pode ocorrer durante a saída em formato Protobuf e a consulta paralela SYSTEM DROP FORMAT SCHEMA CACHE. #75357 (Pavel Kruglov).
  • Corrige um possível erro lógico ou problema de memória não inicializada quando um filtro de HAVING é aplicado antecipadamente com réplicas paralelas. #75363 (Vladimir Cherkasov).
  • Oculta informações sensíveis nas funções de tabela e nos motores de tabela icebergS3 e icebergAzure. #75378 (Kseniia Sumarokova).
  • A função TRIM agora lida corretamente com caracteres de remoção vazios calculados. Exemplo: SELECT TRIM(LEADING concat('') FROM 'foo') (Problema #69922). #75399 (Manish Gill).
  • Corrigida uma condição de corrida em IOutputFormat. #75448 (Pavel Kruglov).
  • Corrige um possível erro Elements ... and ... of Nested data structure ... (Array columns) have different array sizes quando subcolunas JSON do tipo Array são usadas em JOIN com tabelas distribuídas. #75512 (Pavel Kruglov).
  • Corrige o cálculo incorreto do tamanho do buffer de resultados. Fecha #70031. #75548 (Konstantin Bogdanov).
  • Corrigida a interação entre allow_feature_tier e a configuração de compatibilidade do MergeTree. #75635 (Raúl Marín).
  • Corrige o valor incorreto de processed_rows em system.s3queue_log caso tenha havido nova tentativa de processar o arquivo. #75666 (Kseniia Sumarokova).
  • Passa a respeitar materialized_views_ignore_errors quando uma visão materializada grava em um URL engine e há um problema de conectividade. #75679 (Christoph Wurm).
  • Corrigidas falhas raras ao ler uma tabela MergeTree após múltiplas consultas RENAME assíncronas (com alter_sync = 0) entre colunas de tipos diferentes. #75693 (Anton Popov).
  • Corrigido o erro Block structure mismatch in QueryPipeline stream em algumas consultas com UNION ALL. #75715 (Nikolai Kochetov).
  • Reconstrói a projeção ao executar alter modify na coluna de sua PK. Antes, isso podia levar a erros CANNOT_READ_ALL_DATA durante consultas após o alter modify da coluna usada na PK da projeção. #75720 (Pavel Kruglov).
  • Corrigido o resultado incorreto de ARRAY JOIN para subconsultas escalares (com analisador). #75732 (Nikolai Kochetov).
  • Corrigida a desreferenciação de ponteiro nulo em DistinctSortedStreamTransform. #75734 (Nikita Taranov).
  • Corrigido o comportamento de allow_suspicious_ttl_expressions. #75771 (Aleksei Filatov).
  • Corrige a leitura de memória não inicializada na função translate. Isso fecha #75592. #75794 (Alexey Milovidov).
  • Propagar as configurações de formato para a formatação de strings em JSON no formato Native. #75832 (Pavel Kruglov).
  • Registrado no histórico de alterações das configurações que o parallel hash passou a ser o algoritmo de join padrão na v24.12. Isso significa que o ClickHouse continuará a fazer join usando non-parallel hash se estiver configurado um nível de compatibilidade anterior à v24.12. #75870 (Robert Schulze).
  • Corrigido um bug que impedia que tabelas com índices min-max adicionados implicitamente fossem copiadas para uma nova tabela (problema #75677). #75877 (Smita Kulkarni).
  • clickhouse-library-bridge permite abrir bibliotecas arbitrárias do sistema de arquivos, o que significa que ele só é seguro quando executado em um ambiente isolado. Para evitar uma vulnerabilidade quando ele é executado junto ao clickhouse-server, vamos limitar os caminhos das bibliotecas a um local especificado na configuração. Essa vulnerabilidade foi encontrada por Arseniy Dugin por meio do ClickHouse Bug Bounty Program. #75954 (Alexey Milovidov).
  • Acabamos usando serialização JSON para alguns metadados, o que foi um erro, porque o JSON não oferece suporte a dados binários dentro de literais de string, incluindo bytes zero. As consultas SQL podem conter dados binários e UTF-8 inválido, então também precisamos oferecer suporte a isso em nossos arquivos de metadados. Ao mesmo tempo, o JSONEachRow do ClickHouse e formatos semelhantes contornam isso ao se desviarem do padrão JSON para permitir um round-trip perfeito dos dados binários. Veja a motivação aqui: https://github.com/ClickHouse/ClickHouse/pull/73668#issuecomment-2560501790. A solução é tornar a biblioteca Poco::JSON consistente com a serialização no formato JSON do ClickHouse. Isso corrige #73668. #75963 (Alexey Milovidov).
  • Corrigido Part <...> does not contain in snapshot of previous virtual parts. (PART_IS_TEMPORARILY_LOCKED) ao executar DETACH PART. #76039 (Aleksei Filatov).
  • Corrigida a verificação dos limites de commit no armazenamento S3Queue. #76104 (Kseniia Sumarokova).
  • Corrigido o problema ao anexar tabelas MergeTree com índices automáticos (add_minmax_index_for_numeric_columns/add_minmax_index_for_string_columns). #76139 (Azat Khuzhin).
  • Corrigido o problema em que os stack traces das threads pai de um job (configuração enable_job_stack_trace) não eram exibidos. Corrigido o problema em que a configuração enable_job_stack_trace não era propagada corretamente para as threads, fazendo com que o conteúdo do stack trace nem sempre respeitasse essa configuração. #76191 (Yakov Olkhovskiy).
  • Corrige o reinterpretAs com FixedString em arquiteturas big-endian. #76253 (Azat Khuzhin).
  • Corrige todos os tipos de bugs causados por condição de corrida entre UUIDs e nomes de tabelas (por exemplo, isso corrigirá a condição de corrida entre RENAME e RESTART REPLICA; no caso de RENAME concorrente com SYSTEM RESTART REPLICA, é possível acabar reiniciando a réplica errada e/ou deixando uma das tabelas no estado Table X is being restarted). #76308 (Azat Khuzhin).
  • Removida a alocação no manipulador de sinal. #76446 (Nikita Taranov).
  • Corrige o tratamento de erros inesperados durante a evicção no redimensionamento dinâmico do cache do sistema de arquivos. #76466 (Kseniia Sumarokova).
  • Corrigida a inicialização de used_flag no hash em paralelo. Isso pode causar falha no servidor. #76580 (Nikita Taranov).
  • Corrige um erro lógico ao chamar a função defaultProfiles() em uma projeção. #76627 (pufit).
  • Não solicitar autenticação básica interativa no navegador na interface web. Fecha #76319. #76637 (Alexey Milovidov).
  • Corrige a exceção THERE_IS_NO_COLUMN ao selecionar um literal booleano em tabelas distribuídas. #76656 (Yakov Olkhovskiy).
  • O subcaminho dentro do diretório da tabela agora é escolhido de forma mais criteriosa. #76681 (Daniil Ivanik).
  • Corrige o erro Not found column in block após alterar uma tabela com uma subcoluna na PK. Depois de https://github.com/ClickHouse/ClickHouse/pull/72644, requer https://github.com/ClickHouse/ClickHouse/pull/74403. #76686 (Nikolai Kochetov).
  • Adiciona testes de desempenho para curto-circuitos com NULL e corrige bugs. #76708 (李扬).
  • Descarrega os buffers de escrita de saída antes de finalizá-los. Corrige o LOGICAL_ERROR gerado durante a finalização de alguns formatos de saída, por exemplo JSONEachRowWithProgressRowOutputFormat. #76726 (Antonio Andelic).
  • Adicionado suporte a UUID binário do MongoDB (#74452) - Corrigido o pushdown de WHERE para o MongoDB ao usar a função de tabela (#72210) - Alterado o mapeamento de tipos entre MongoDB e ClickHouse para que o UUID binário do MongoDB só possa ser interpretado como UUID do ClickHouse. Isso deve evitar ambiguidades e surpresas no futuro. - Corrigido o mapeamento de OID, preservando a compatibilidade com versões anteriores. #76762 (Kirill Nikiforov).
  • Corrige o tratamento de exceções na desserialização em paralelo dos prefixos de subcolunas JSON. #76809 (Pavel Kruglov).
  • Corrigir o comportamento da função lgamma para inteiros negativos. #76840 (Ilya Kataev).
  • Corrige a análise reversa de chave para chaves primárias definidas explicitamente. Semelhante a #76654. #76846 (Amos Bird).
  • Corrigida a impressão formatada dos valores Bool em formato JSON. #76905 (Pavel Kruglov).
  • Corrige possível falha causada por rollback incorreto da coluna JSON em caso de erro durante async inserts. #76908 (Pavel Kruglov).
  • Anteriormente, multi_if podia retornar colunas de tipos diferentes durante o planejamento e a execução principal. Isso fazia com que o código apresentasse comportamento indefinido do ponto de vista do C++. #76914 (Nikita Taranov).
  • Corrigida a serialização incorreta de chaves constantes do tipo Nullable no MergeTree. Isso corrige #76939. #76985 (Amos Bird).
  • Corrige a ordenação dos valores BFloat16. Isso fecha #75487. Isso fecha #75669. #77000 (Alexey Milovidov).
  • Correção de bug no JSON com subcoluna Variant, adicionando uma verificação para ignorar subcolunas efêmeras na verificação de consistência da parte. #72187. #77034 (Smita Kulkarni).
  • Corrige travamento ao processar templates no formato Values em caso de incompatibilidade de tipos. #77071 (Pavel Kruglov).
  • Não permitir a criação de uma tabela EmbeddedRocksDB com subcoluna na chave primária. Antes, essa tabela podia ser criada, mas consultas SELECT falhavam. #77074 (Pavel Kruglov).
  • Corrige comparação inválida em consultas distribuídas porque o pushdown de predicados para os nós remotos não respeita os tipos dos literais. #77093 (Duc Canh Le).
  • Corrige falha durante a criação de tabela Kafka que gerava exceção. #77121 (Pavel Kruglov).
  • Suporte ao novo JSON e a subcolunas nos motores Kafka e RabbitMQ. #77122 (Pavel Kruglov).
  • Corrige o desenrolamento da pilha em exceções no MacOS. #77126 (Eduard Karacharov).
  • Corrigida a leitura da subcoluna ‘null’ na função getSubcolumn. #77163 (Pavel Kruglov).
  • Corrige índices de salto que não funcionavam em expressões com literais no analisador e remove casts triviais durante a análise de índices. #77229 (Pavel Kruglov).
  • Corrigido o índice de filtro de Bloom com Array e funções não suportadas. #77271 (Pavel Kruglov).
  • Devemos verificar a restrição quanto ao número de tabelas apenas durante a consulta CREATE inicial. #77274 (Nikolay Degterinsky).
  • SELECT toBFloat16(-0.0) == toBFloat16(0.0) agora retorna true corretamente (antes, retornava false). Isso torna o comportamento consistente com Float32 e Float64. #77290 (Shankar Iyer).
  • Corrige uma possível referência incorreta à variável key_index não inicializada, o que pode levar a um travamento em compilações de depuração (essa referência não inicializada não causará problemas em compilações de lançamento porque o código subsequente provavelmente gerará erros.) ### entrada de documentação para alterações visíveis ao usuário. #77305 (wxybear).
  • Revertido. #77307 (Nikolai Kochetov).
  • Corrigido o nome da partição com um valor Bool. O problema foi introduzido em https://github.com/ClickHouse/ClickHouse/pull/74533. #77319 (Pavel Kruglov).
  • Corrige a comparação entre Tuples com elementos Nullable e Strings. Por exemplo, antes da mudança, a comparação entre um Tuple (1, null) e uma String '(1,null)' resultava em um erro. Outro exemplo é a comparação entre um Tuple (1, a), em que a é uma coluna Nullable, e uma String '(1, 2)'. Esta mudança corrige esses problemas. #77323 (Alexey Katsman).
  • Corrige um travamento em ObjectStorageQueueSource. O problema foi introduzido em https://github.com/ClickHouse/ClickHouse/pull/76358. #77325 (Pavel Kruglov).
  • Corrigido um bug em que o parâmetro de consulta close_session não surtia efeito, fazendo com que as sessões nomeadas fossem fechadas apenas após session_timeout. #77336 (Alexey Katsman).
  • Corrigido async_insert com input(). #77340 (Azat Khuzhin).
  • Correção: WITH FILL pode falhar com NOT_FOUND_COLUMN_IN_BLOCK quando o planejador remove a coluna de ordenação. Problema semelhante relacionado ao cálculo inconsistente da DAG para a expressão INTERPOLATE. #77343 (Yakov Olkhovskiy).
  • Revertido. #77390 (Vladimir Cherkasov).
  • Corrigido o recebimento de mensagens do servidor NATS sem MV associada. #77392 (Dmitry Novikov).
  • Corrigido erro lógico ao ler de FileLog vazio por meio da função de tabela merge, fecha #75575. #77441 (Vladimir Cherkasov).
  • Corrige vários LOGICAL_ERRORs ao definir um alias para nós AST inválidos. #77445 (Raúl Marín).
  • Na implementação do cache do sistema de arquivos, foi corrigido o tratamento de erros durante a gravação de segmentos de arquivo. #77471 (Kseniia Sumarokova).
  • Faz com que o DatabaseIceberg use o arquivo de metadados correto fornecido pelo catalog. Fecha #75187. #77486 (Kseniia Sumarokova).
  • Usar as configurações padrão de formato na serialização Dynamic de variant compartilhado. #77572 (Pavel Kruglov).
  • Reversão de ‘Evitar toAST() na execução de subconsultas escalares’. #77584 (Raúl Marín).
  • Corrigida a verificação da existência do caminho dos dados da tabela no disco local. #77608 (Tuan Pham Anh).
  • O cache de consultas agora assume que as UDFs são não determinísticas. Consequentemente, os resultados de consultas com UDFs não são mais armazenados em cache. Antes, os usuários podiam definir UDFs não determinísticas cujo resultado era indevidamente armazenado em cache (issue #77553). #77633 (Jimmy Aguilar Mena).
  • Corrigido o envio de valores constantes para o servidor remoto em alguns tipos. #77634 (Pavel Kruglov).
  • Corrige o system.filesystem_cache_log, que só funcionava com a configuração enable_filesystem_cache_log. #77650 (Kseniia Sumarokova).
  • Corrigido um erro lógico ao chamar a função defaultRoles() dentro de uma projeção. Em complemento a #76627. #77667 (pufit).
  • Corrige falha causada por contexto expirado em StorageS3(Azure)Queue. #77720 (Kseniia Sumarokova).
  • Argumentos secundários do tipo Nullable para a função arrayResize agora não são mais permitidos. Antes, o uso de Nullable como segundo argumento podia causar desde erros até resultados incorretos. (issue #48398). #77724 (Manish Gill).
  • Ocultar credenciais nos motores de tabela RabbitMQ, Nats, Redis e AzureQueue. #77755 (Kseniia Sumarokova).
  • Corrigido comportamento indefinido na comparação com NaN em ArgMin/ArgMax. #77756 (Raúl Marín).
  • Verifica regularmente se merges e mutações foram canceladas, mesmo nos casos em que a operação não produz nenhum bloco para gravação. #77766 (János Benjamin Antal).
  • Revertido. #77843 (Vladimir Cherkasov).
  • Corrige um possível travamento quando ocorre o erro NOT_FOUND_COLUMN_IN_BLOCK. #77854 (Vladimir Cherkasov).
  • Corrige travamento que ocorre em StorageSystemObjectStorageQueueSettings durante o preenchimento de dados. #77878 (Bharat Nallan).
  • Desabilitada a busca difusa no histórico do servidor SSH (já que requer o skim). #78002 (Azat Khuzhin).
  • Corrige um bug em que uma consulta de busca vetorial em uma coluna não indexada retornava resultados incorretos se houvesse outra coluna vetorial na tabela com um índice de similaridade vetorial definido. (Problema #77978). #78069 (Shankar Iyer).
  • Corrige a mensagem The requested output format {} is binary... Do you want to output it anyway? [y/N]. #78095 (Azat Khuzhin).
  • Correção de um bug no caso de toStartOfInterval com o argumento origin igual a zero. #78096 (Yarik Briukhovetskyi).
  • Impedir a definição de um parâmetro de consulta session_id vazio na interface HTTP. #78098 (Alexey Katsman).
  • Corrige a sobrescrita de metadados no Database Replicated, que podia ocorrer devido à execução de uma consulta RENAME logo após uma consulta ALTER. #78107 (Nikolay Degterinsky).
  • Corrige travamento no mecanismo NATS. #78108 (Dmitry Novikov).
  • Não tente criar um history_file em um cliente embutido para SSH. #78112 (Azat Khuzhin).
  • Corrige a exibição de informações incorretas em system.detached_tables após consultas RENAME DATABASE ou DROP TABLE. #78126 (Nikolay Degterinsky).
  • Correção nas verificações de excesso de tabelas com Database Replicated após https://github.com/ClickHouse/ClickHouse/pull/77274. Além disso, realizar a verificação antes de criar o armazenamento para evitar a criação de nós não contabilizados no ZooKeeper no caso de RMT ou KeeperMap. #78127 (Nikolay Degterinsky).
  • Corrige possível travamento devido à inicialização simultânea dos metadados do S3Queue. #78131 (Azat Khuzhin).
  • As funções groupArray* agora produzem o erro BAD_ARGUMENTS para o valor 0 do tipo Int no argumento max_size, assim como já acontece para o tipo UInt, em vez de tentar executar a função com esse valor. #78140 (Eduard Karacharov).
  • Evita travamento ao executar recoverLostReplica se a tabela local for removida antes de ser desanexada. #78173 (Raúl Marín).
  • Corrige a coluna “alterable” em system.s3_queue_settings, que sempre retornava false. #78187 (Kseniia Sumarokova).
  • Masque a assinatura de acesso do Azure para que não fique visível ao usuário nem nos logs. #78189 (Kseniia Sumarokova).
  • Corrige o pré-carregamento de subfluxos com prefixos em partes no formato Wide. #78205 (Pavel Kruglov).
  • Corrigidos travamentos / resultado incorreto em mapFromArrays no caso do tipo LowCardinality(Nullable) no array de chaves. #78240 (Eduard Karacharov).
  • Corrige as opções de autenticação do delta-kernel. #78255 (Kseniia Sumarokova).
  • Não agendar a tarefa RefreshMV se disable_insertion_and_mutation de uma réplica for true. Uma tarefa corresponde a alguma inserção; ela falhará se disable_insertion_and_mutation for true. #78277 (Xu Jia).
  • Validar o acesso às tabelas subjacentes do mecanismo Merge. #78339 (Pervakov Grigorii).
  • O modificador FINAL pode se perder em tabela com engine Distributed. #78428 (Yakov Olkhovskiy).
  • Bitmapmin retorna uint32_max quando o bitmap está empty(uint64_max when input type >= 8bits), o que corresponde ao comportamento de minimum() de um roaring_bitmap vazio. #78444 (wxybear).
  • Reverter “a aplicação do atributo preserve_most em alguns pontos do código”, pois isso pode causar falhas. #78449 (Azat Khuzhin).
  • Use colunas de inserção para a inferência de esquema do INFILE. #78490 (Pervakov Grigorii).
  • Desabilita o processamento paralelo de consultas logo após ler FROM quando distributed_aggregation_memory_efficient estiver habilitado, pois isso pode levar a um erro lógico. Fecha #76934. #78500 (flynn).
  • Definido pelo menos um stream de leitura caso haja zero streams planejados após aplicar a configuração max_streams_to_max_threads_ratio. #78505 (Eduard Karacharov).
  • No armazenamento S3Queue, corrige o erro lógico “Não é possível remover o registro: o UUID da tabela não está registrado”. Fecha #78285. #78541 (Kseniia Sumarokova).
  • O ClickHouse agora consegue identificar seu cgroup v2 em sistemas com cgroups v1 e v2 habilitados. #78566 (Grigory Korolev).
  • As table functions de cluster do ObjectStorage falhavam quando usadas com configurações no nível da tabela. #78587 (Daniil Ivanik).
  • Verificações de transações mais robustas não são suportadas pelo ReplicatedMergeTree em INSERTs. #78633 (Azat Khuzhin).
  • Aplicar configurações da consulta ao anexar. #78637 (Raúl Marín).
  • Corrige um travamento quando um caminho inválido é informado em iceberg_metadata_file_path. #78688 (alesapin).
  • No table engine DeltaLake com a implementação delta-kernel, foi corrigido o caso em que o schema de leitura é diferente do schema da tabela e há colunas de partição ao mesmo tempo, o que levava a um erro de coluna não encontrada. #78690 (Kseniia Sumarokova).
  • Esta atualização corrige um bug em que uma nova sessão nomeada era inadvertidamente encerrada no momento programado para o encerramento de uma sessão anterior, se ambas compartilhassem o mesmo nome e a nova fosse criada antes de o tempo limite da antiga expirar. #78698 (Alexey Katsman).
  • Não bloquear o encerramento da tabela durante a execução de CHECK TABLE. #78782 (Raúl Marín).
  • Correção no Keeper: corrige a contagem de itens efêmeros em todos os casos. #78799 (Antonio Andelic).
  • Corrige cast incorreto em StorageDistributed ao usar funções de tabela diferentes de view(). Fecha #78464. #78828 (Konstantin Bogdanov).
  • Corrige a formatação de tupleElement(*, 1). Fecha #78639. #78832 (Konstantin Bogdanov).
  • Dicionários do tipo ssd_cache agora rejeitam os parâmetros block_size e write_buffer_size quando são zero ou negativos (issue #78314). #78854 (Elmi Ahmadov).
  • Corrige falha em MV REFRESHABLE no caso de ALTER após desligamento incorreto. #78858 (Azat Khuzhin).
  • Corrige o processamento de valores DateTime inválidos no formato CSV. #78919 (Pavel Kruglov).

Melhoria em compilação/testes/empacotamento

  • A dependência interna LLVM foi atualizada da versão 16 para a versão 18. #66053 (Nikita Mikhaylov).
  • Restaura os testes de integração do nats removidos e corrige erros. - corrigidas algumas condições de corrida no engine do nats - corrigida a perda de dados ao fazer streaming de dados para o nats em caso de perda de conexão - corrigido o travamento no recebimento do último fragmento de dados quando o streaming a partir do nats terminava - nats_max_reconnect está descontinuado e não tem efeito; a reconexão é realizada permanentemente com o timeout nats_reconnect_wait. #69772 (Dmitry Novikov).
  • Corrige o problema que impedia a geração dos arquivos asm do OpenSSL em contrib. #72622 (RinChanNOW).
  • Melhora a estabilidade do teste 03210_variant_with_aggregate_function_type. #74012 (Anton Ivashkin).
  • Suporte à compilação do HDFS em Macs ARM e Intel. #74244 (Yan Xin).
  • O script universal de instalação passará a oferecer a instalação até mesmo no macOS. #74339 (Alexey Milovidov).
  • Corrige a compilação quando o Kerberos não está habilitado. #74771 (flynn).
  • Atualização do LLVM 19 embutido. #75148 (Konstantin Bogdanov).
  • Potencialmente incompatível: melhoria para tornar os padrões ainda mais restritivos. Os padrões atuais já são seguros. O usuário precisa especificar uma opção para publicar portas explicitamente. Mas, quando o usuário default não tiver uma senha definida por CLICKHOUSE_PASSWORD e/ou um nome de usuário alterado pela variável de ambiente CLICKHOUSE_USER, ele deverá ficar acessível apenas no sistema local, como uma camada adicional de proteção. #75259 (Mikhail f. Shiryaev).
  • Os testes de integração têm um timeout de 1 hora para a execução de um único lote de testes paralelos. Quando esse timeout é atingido, o pytest é interrompido sem gerar alguns logs. O timeout interno do pytest está definido como 55 minutos para imprimir os resultados de uma sessão e não acionar o sinal de timeout externo. Fecha #75532. #75533 (Ilya Yatsishin).
  • Converta todas as ações relacionadas ao clickhouse-server em uma função e execute-as somente ao iniciar o binário padrão em entrypoint.sh. Uma melhoria há muito tempo aguardada foi sugerida em #50724. Adicionada a opção --users ao clickhouse-extract-from-config para obter valores de users.xml. #75643 (Mikhail f. Shiryaev).
  • Para testes de estresse, se o servidor não tiver sido encerrado enquanto coletávamos stacktraces via gdb, será adicionado um tempo de espera extra para reduzir o ruído na detecção de Possible deadlock on shutdown (see gdb.log). Isso só acrescentará atraso nos casos em que o teste não tiver sido concluído com sucesso. #75668 (Ilya Yatsishin).
  • Restaura os testes de integração do nats excluídos e corrige erros. - corrigidas algumas condições de corrida no engine do nats - corrigida a perda de dados ao transmitir dados para o nats em caso de perda de conexão - corrigido o travamento ao receber o último fragmento de dados quando a transmissão a partir do nats era encerrada - nats_max_reconnect está obsoleto e não tem efeito; a reconexão é realizada permanentemente com o timeout nats_reconnect_wait. #75850 (Dmitry Novikov).
  • Habilite ICU e GRPC ao fazer compilação cruzada para Darwin. #75922 (Raúl Marín).
  • Correção da saída do teste de split por causa de sleep durante o encerramento do grupo de processos. #76090 (Mikhail f. Shiryaev).
  • Não colete os docker-compose logs ao final da execução, pois o script costuma ser interrompido. Em vez disso, colete-os em segundo plano. #76140 (Mikhail f. Shiryaev).
  • Divide os testes de armazenamento do Kafka em alguns arquivos. Corrige #69452. #76208 (Mikhail f. Shiryaev).
  • clickhouse-odbc-bridge e clickhouse-library-bridge foram transferidos para um repositório separado, https://github.com/ClickHouse/odbc-bridge/. #76225 (Alexey Milovidov).
  • Removidos cerca de 20 MB de código morto do executável. #76226 (Alexey Milovidov).
  • Aumenta a versão mínima exigida do CMake para 3.25 devido à introdução de block(). #76316 (Konstantin Bogdanov).
  • Atualização do fmt para 11.1.3. #76547 (Raúl Marín).
  • Atualiza lz4 para 1.10.0. #76571 (Konstantin Bogdanov).
  • Atualiza o curl para 8.12.1. #76572 (Konstantin Bogdanov).
  • Atualiza o libcpuid para 0.7.1. #76573 (Konstantin Bogdanov).
  • Use um formato legível por máquina para processar os resultados do pytest. #76910 (Mikhail f. Shiryaev).
  • Corrige a compilação cruzada do Rust e permite desativar o Rust por completo. #76921 (Raúl Marín).
  • Exige clang 19 para compilar o projeto. #76945 (Raúl Marín).
  • O teste leva mais de 10 segundos para ser executado em modo serial. É tempo demais para testes rápidos. #76948 (Mikhail f. Shiryaev).
  • Atualiza sccache para 0.10.0. #77580 (Konstantin Bogdanov).
  • Respeita os recursos-alvo da CPU no Rust e habilita LTO em todos os crates. #78590 (Raúl Marín).
  • Atualiza o minizip-ng para 4.0.9. #78917 (Konstantin Bogdanov).
Última modificação em 10 de junho de 2026