PostgreSQL 19 分区 ON CONFLICT 撞上可延迟唯一约束
PostgreSQL 19 的 ON CONFLICT 被查出两处回归。一是向分区表插入时,若目标子分区带有本地的可延迟唯一约束,路由后的插入会直接失败;二是提交 2bc7e886fc1 让 NULLS NOT DISTINCT 约束被静默当成仲裁器,顶替用户指定的约束名,错误被吞掉、行被意外更新。Mihail Nikalayeu 的综合补丁重做了 indimmediate 判断与排序规则比较,并部分回退原提交。
保留原始来源与发布日期的新闻、博客和活动。
PostgreSQL 19 的 ON CONFLICT 被查出两处回归。一是向分区表插入时,若目标子分区带有本地的可延迟唯一约束,路由后的插入会直接失败;二是提交 2bc7e886fc1 让 NULLS NOT DISTINCT 约束被静默当成仲裁器,顶替用户指定的约束名,错误被吞掉、行被意外更新。Mihail Nikalayeu 的综合补丁重做了 indimmediate 判断与排序规则比较,并部分回退原提交。
Noah Misch 指出提交 c06d1a4 改掉了恢复期间的 FSM 不变量。在开启校验和与整页写的默认配置下,restartpoint 之后的 heap_xlog_* 可以把 FSM 页面标记为脏;此时崩溃留下的撕裂页面不会在恢复中被修复,恢复却能正常结束。FSM 自己用 RBM_ZERO_ON_ERROR 静默接受坏页,heapam_relation_copy_data 这类调用方却假定读取一定成功。长期方案是恢复旧不变量,或要求所有读 FSM 的调用方一律容错。
PostgreSQL 19 给系统视图单开了一节,上一次这样还是 PG13。Gülçin Yıldırım Jelínek 逐个介绍新增的四个视图:pg_stat_lock 汇总锁的等待情况,pg_stat_recovery 暴露恢复过程的状态,pg_stat_autovacuum_scores 给出 autovacuum 的评分依据,pg_dsm_registry_allocations 列出动态共享内存注册表里的分配。作者提醒 19 仍在 beta,列名可能还会变。
AWS 宣布基于 Graviton5 的 R9g 与带本地 NVMe SSD 的 R9gd 正式可用,定位是数据库、缓存、实时分析和容器化负载。厂商称相对 Graviton4 的 R8g,每 vCPU 计算性能最高提升 25%,并列出 DDR5-8800、五倍 L3 缓存、最高 100 Gbps 网络和 72 Gbps EBS 带宽。对 PostgreSQL 来说这值得进入容量规划,但迁移主库前应在相同版本、扩展和数据集下比较真实 SQL、WAL、检查点与复制延迟。
PyPI 说明其日志配置自 2026 年 8 月 24 日起,只为 .whl、.tar.gz 和 .zip 这类实际分发包的请求生成下载记录。此前不少消费方没有按文件扩展名过滤,把更宽泛的对象请求也算成了一次下载。历史 BigQuery 数据不会回写,新旧两段不能直接比较。下载量常被用来判断依赖采用度、维护优先级和供应链暴露面,因此报表应在 8 月 24 日处断线分段,或者用可复现的 SQL 为两个时期各自重算,避免把口径变化读成用户流失,也避免污染阈值告警。
取反时的整数溢出所致,修复已回补到 REL_14 至 REL_19 与 master 全部受支持分支。
边界形如 TO (19, MAXVALUE) 时查询可能静默返回零行,两行补丁改为检查边界的首列键。
主缺陷已有补丁,单行超过 1 GB 的分配失败和 ALTER PUBLICATION 并发改写另立线程处理。
权重过大时幂运算底数小于 1,评分随年龄不升反降;补丁改用比值乘权重作为回退算法。
补丁让键定义相同的索引共享 opfamily 等字段并引入 ProxyContext,审查中发现共享结构有释放后使用风险。
文章把原因归于事务正确性、扩展机制和开源治理,属于厂商视角的观点文章而非测量结论。
已装的 MV2 扩展不再更新,删除后无法从商店重装,受管终端要盘点扩展 ID 与用途。
它请求把已有对象按首选存储版本重写,升级前仍要备份 etcd 并核对 CRD 与转换 webhook 的恢复路径。
这个 Rust 消息流项目在孵化器约一年半后于 8 月 19 日全票毕业,治理信号不等于可以替换 Kafka。
作者报告小样本下 60–80% 的成功率,链路是网页摘要任务加 Python 模块遮蔽,结论仍待独立复现。