ClickHouse v24.6.4.42-stable 补丁发布解析:16 项 Bug 修复及其源码佐证

发布时间:2026/9/16 18:47:25

ClickHouse v24.6.4.42-stable 补丁发布解析:16 项 Bug 修复及其源码佐证 ClickHouse v24.6.4.42-stable 补丁发布解析16 项 Bug 修复及其源码佐证【免费下载链接】ClickHouseClickHouse® is a real-time analytics database management system项目地址: https://gitcode.com/GitHub_Trending/cli/ClickHouse本文基于 ClickHouse 仓库中 v24.6.4.42-stable 的官方 Changelog逐项解读这个 24.6 分支补丁版本相对 v24.6.3.95-stable 修复的 16 个用户可见缺陷与 3 项次要变更并结合仓库源码定位关键修复点时间窗口函数、Variant 列、SIPHash 系列哈希函数等帮助运维与开发者评估是否升级、升级后应如何验证。版本定位与 Changelog 结构该版本的完整标题为ClickHouse release v24.6.4.42-stable (c534bb4b4dd) FIXME as compared to v24.6.3.95-stable (8325c920d11)从版本号可以读出 ClickHouse 的语义化版本规则24.6是年份2024 月份6 月组成的分支版本4是第 4 个补丁42是补丁构建序号括号内c534bb4b4dd是本版本对应的 Git 提交短哈希8325c920d11是其比较基线 v24.6.3.95-stable 的提交哈希。24.6 分支属于稳定分支后续只接收 backport回合的修复不引入新功能。本版本文档v24.6.4.42-stable.md由两个章节组成Bug Fixuser-visible misbehavior in an official stable release正式稳定版中用户可见行为的错误修复共 16 条NOT FOR CHANGELOG / INSIGNIFICANT不影响最终用户、不对外的内部变更共 3 条。每一条修复都带有 Backported in #issue 前缀和对应的 PR 编号及作者说明它来自 master 分支的某个修复被回合backport到了 24.6 release 分支。同分支的前后版本v24.6.3.95-stable.md 与 v24.6.5.30-stable.md可用于串联该分支的完整修复时间线。SQL 语义与执行计划类修复1. 外部数据库查询中的布尔字面量PR #66282修复发往外部数据库如PostgreSQL引擎的查询中布尔字面量的翻译问题。ClickHouse 的布尔字面量true/false在跨库查询postgres()表函数等下发前需要做方言转换此前转换逻辑存在缺陷导致外部库收到的字面量不正确。2.count()在非确定性谓词下结果错误PR #67922当谓词WHERE 条件中包含非确定性函数时count()可能返回错误结果。这类问题通常与谓词下推、常量折叠时把非确定性函数当作可提前求值的表达式处理有关——修复保证了优化器不再对含非确定性函数的谓词做错误的提前求值或改写。3. 移除针对含OFFSET子查询的错误排序消除优化PR #68099修复 #67906优化器原先有一条移除子查询中排序的优化但它没有正确处理子查询中带OFFSET的场景导致返回的行不符合 LIMIT/OFFSET 语义。本版本直接移除了这条不正确的优化属于典型的宁可少优化、不可算错结果的取舍。4.indexHint函数边界用例PR #66286indexHint是用于提示存储引擎使用哪个二级索引的函数该问题由 fuzzer 自动发现属于输入解析层面的边界修复。崩溃与稳定性修复含源码佐证5. 时间窗口边界函数空指针解引用PR #68098一个经过特制的查询可以通过hopEnd、hopStart、tumbleEnd、tumbleStart四个函数触发 NULL 指针解引用并导致服务端崩溃。这四个函数都是时间窗口滑动窗口/翻滚窗口的边界计算函数其实现位于 src/Functions/FunctionsTimeWindow.cpp。从源码结构看该文件在入口处通过dispatchForIntervalColumns校验 interval 列是否为常量 Int64 且必须为正数通过executeWindowBound校验第一个参数必须是Tuple(DateTime, DateTime)类型——PR #68098 正是补全了这条校验链上导致空指针访问的分支。这类修复对暴露 HTTP 接口的 ClickHouse 实例尤为重要修复前任何能提交查询的用户都可能使进程退出。6. SIPHash 系列函数对空数组/空元组报LOGICAL_ERRORPR #68630sipHash64Keyed、sipHash128Keyed、sipHash128ReferenceKeyed作用于空数组[]或空元组()时会抛出LOGICAL_ERROR而非按预期返回常量结果。该系列的实现位于 src/Functions/FunctionsHashingMisc.cpp。修复后这些调用退化为对空输入的常量哈希符合 ClickHouse 向量函数对空容器返回单元素常量列的常规行为约定。存储读取与 DDL 校验类修复7. Variant 子列读取时的PARAMETER_OUT_OF_BOUND误报PR #66659读取 Variant 类型的子列时可能触发本不该发生的PARAMETER_OUT_OF_BOUND错误。Variant 列的底层实现是 src/Columns/ColumnVariant.cpp其中insertRangeFrom方法在参数越界时会抛出该错误见 ColumnVariant.cpp 第 533 行该 PR 修正了读取 Variant 子列时传入该方法的区间参数计算消除误报。8. 非归档文件名/URI 中含::的解析PR #67433文件路径或远端 URI如 S3 地址中包含::时只要它不是归档archive现在能被正确解析。此前::是归档内文件语法的分隔符未加甄别地应用于非归档路径会导致读取失败。9. 新分析器下 mutation 未跳过无关 partPR #68052启用新查询分析器analyzer后mutationALTER TABLE ... UPDATE/DELETE类后台重写操作本应根据谓词跳过不受影响的 part但实际却把不受影响的 part 也重写了白白消耗磁盘 IO 和 CPU。修复恢复了跳过未触及 part的行为。10.ALTER ADD/MODIFY COLUMN校验实验性/可疑类型PR #67911现在对 ALTER 新增或修改列时出现的实验性experimental或标记为可疑的数据类型会进行显式校验避免把未成熟类型固化进表结构后引发难以回滚的问题。接口、集群与副本同步类修复11. HTTP 接口向流引擎Kafka/RabbitMQ/NATS写入PR #67554修复通过 HTTP 接口向 Kafka、RabbitMQ、NATS 这类流式只读消费引擎执行 INSERT 的问题。这类引擎表是数据源而非数据目标此前经由 HTTP 接口插入时的行为不正确修复使其按预期被拒绝或正确处理。12.cluster()函数与 inter-server secret 的交互PR #66364配置了interserver_credentialsinter-server secret后cluster()表函数展开远程查询时对远端节点的认证方式会改变。该修复保留原有行为以初始用户身份连接远端节点避免该配置项悄然改变cluster()查询的认证语义。13.SYSTEM SYNC REPLICA缺少 sync 模式PR #68326修复 #68396SYSTEM SYNC REPLICA命令用于手动触发 Replicated 表引擎副本追赶最新数据此前该命令缺少同步sync模式的支持现在补齐。14. PostgreSQL 外部库查询被取消时的崩溃PR #68288当指向外部 PostgreSQL 的查询被取消客户端断开、超时等时ClickHouse 侧对底层 PostgreSQL 库的错误处理存在竞态可能触发崩溃本版本尝试修复了该路径。15. 容器环境下最大线程软限计算错误PR #67963修复了在可用 CPU 数量受限的容器化环境如设置了cpulimit 的 Docker/K8s Pod中计算最大线程数软限max thread soft limit时未正确读取 cgroup/CPU 配额的问题。此前 ClickHouse 在受限容器内可能按宿主机核数派生线程数导致过度超卖修复后线程预算与实际可用 CPU 匹配。16.ReplaceTableNodeToDummyVisitor遍历未解析的表函数参数PR #67522修复 #66026优化器改写阶段的ReplaceTableNodeToDummyVisitor会对未解析的表函数参数做遍历存在越界/误处理风险该 PR 避免了对这类参数的遍历消除了相关异常路径。NOT FOR CHANGELOG内部变更以下三项不影响最终用户行为列出于此以保证变更可追溯发布后版本号自增PR #67909release 流程由机器人自动完成属于常规发版动作ALTER MODIFY SQL SECURITY作用于非视图表时报显式错误PR #67953把原先的含糊失败改为明确的报错信息便于用户发现误用补丁发布流程调整PR #68750为了支持从 release 分支任意提交直接打补丁版本package_debug构建不再可跳过这是发布工程侧的 CI 调整。升级与验证建议适用前提本版本仅包含修复无新特性面向需要 24.6 稳定分支的用户从 v24.6.3.x 升级到 v24.6.4.42 是纯补丁升级不涉及数据格式不兼容变更。验证方式升级后可用clickhouse-server --version或查询SELECT version()确认构建号是否含42对照括号中的提交短哈希c534bb4b4dd可进一步核对二进制与发布物的对应关系。重点关注场景如果你的部署涉及a对外的 HTTP 查询接口且使用过hopEnd/tumbleEnd等窗口函数、b容器化限 CPU 部署、cReplicated 表引擎 定期SYSTEM SYNC REPLICA、dS3/远端文件路径中带::的读取本版本的对应修复与你直接相关。完整时间线24.6 分支上 v24.6.4.42 之前是 v24.6.3.95-stable.md之后是 v24.6.5.30-stable.md三者共同构成该分支从 v24.6.3 到 v24.6.5 的完整修复记录。【免费下载链接】ClickHouseClickHouse® is a real-time analytics database management system项目地址: https://gitcode.com/GitHub_Trending/cli/ClickHouse创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/16 18:47:25

SSM与Spring Boot架构对比及技术演进解析

1. SSM与Spring Boot的技术定位解析在Java企业级开发领域,SSM(Spring Spring MVC MyBatis)和Spring Boot都是基于Spring生态的核心技术栈。作为从传统SSM架构过渡到Spring Boot的实践者,我认为理解二者的关系需要从技术演进的视…

2026/9/16 19:47:35

vmdk转qcow2完整指南:StarWind V2V迁移KVM/OpenStack与镜像瘦身技巧

做虚拟化运维的朋友应该都遇过这种尴尬:vCenter上跑得好好的虚拟机,上面承载着各种老业务,突然因为成本、架构调整或者国产化要求,需要整体迁到KVM或OpenStack这套开源虚拟化环境里。业务迁移本身倒不难,难就难在第一步…

2026/9/16 19:47:35

Quadro P620在Linux下的驱动安装流程与排雷实战

先说结论:Quadro P620这张卡本身不复杂,在Linux下装驱动真正的坑,九成不在显卡上,而在安装流程和桌面环境的配合上。如果你用的发行版是Ubuntu 22.04这类常见版本,照着下面的流程走一遍,基本能一次点亮&…

2026/9/16 19:47:35

工业设备DDR3停产危机:四大硬件兼容性陷阱与替代方案

1. 这不是换颗内存条那么简单:当DDR3突然断供,产线停摆的倒计时才真正开始“大厂停产DDR3”这八个字,最近在工业自动化、医疗设备、轨道交通和电力监控领域的工程师群里刷屏了。不是新闻标题,是真实发生的供应链地震——三星在202…

2026/9/16 19:42:34

Java原生Socket实现智能快递柜通信系统

简介:这是一份面向Java初学者与Socket网络编程学习者的实战项目源码,聚焦小区智能快递柜系统的完整服务端-客户端通信实现,不依赖任何第三方库,纯基于JDK 11原生Socket开发,适合巩固多线程、IO操作、客户端认证与本地数…

2026/9/16 12:52:37

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/16 0:04:09

PHP源码部署实战:从环境配置到运行情侣游戏全攻略

简介:这是一套面向情侣互动场景的PHP完整源码,集成情侣飞行棋、真心话大冒险、情趣骰子等玩法,并内置完整分销制度,可自定义多种返佣比例,源码完全开源无加密,支持微信无感自动授权登录与第三方授权&#x…

2026/9/15 14:22:53

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/15 21:31:11

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/15 11:42:23

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码