↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

PostgreSQL 博览 RSS 订阅

每日精选 PostgreSQL、数据库与云计算资讯

21 条

Oracle 澄清 MySQL 各组件并非同一条支持轨

Oracle MySQLOracle MySQL 博客

Oracle 说明 MySQL Server 与 NDB Cluster 采用 LTS 和 Innovation 双轨,而 MySQL Shell、Router、Connectors 以及 Kubernetes Operator 走单一发布模式,即最新受支持版本直接替换前一版本。公告解释的是版本与支持语义,没有宣布新的 Server 版本或安全修复。对企业发布管理来说,同一个版本号不代表同一条生命周期:资产清单应让各组件分别记录 EOL、升级窗口与回滚证据。

Kubernetes 1.37 发布,16 项能力转入 Stable

Kubernetes 项目Kubernetes 博客

Kubernetes 1.37 “Garhwal” 列出 67 项 enhancement,16 项转 Stable、23 项转 Beta、27 项进 Alpha。缓存重建期间现在会对请求做有界处理并以 429 拒绝,降低大集群控制面雪崩的风险,metrics.k8s.io 同时升到 Stable。Beta 包含原生 gang scheduling 和 native histogram。项目还把 kube-dns 列入弃用路径,cgroup v1 的兼容开关终将移除。

htmx 4.0.0 发布,属性继承改为显式声明

htmxhtmx

htmx 4 是一次需要回归测试的大版本。属性继承不再隐式,改用 :inherited 显式标记,这会直接改变嵌套 hx-* 属性、认证与 CSRF 头、target 和 confirm 的传递方式;事件统一成 htmx:phase:action 形式,部分 xhr、校验与错误事件被移除或合并;history 默认不再把页面快照留在 localStorage,回退时会重新取页。npm 的 latest 暂时仍指向 2.x。

Luanti 称 Android 应用因 DMCA 通知被下架

LuantiLuanti 博客

Luanti 表示 Tracer.AI 代表 Microsoft 发出的 DMCA 通知,使其 Android 应用暂时无法在 Google Play 提供。项目称该通知笼统指向 Minecraft 的注册号,没有列举具体被指控的资产,而 Luanti 的发行包不带任何游戏内容和默认素材,ContentDB 上的第三方内容另有志愿者审核流程。这些是项目方陈述,不等于平台或法院的事实认定。维护开源发行渠道的团队可以保留构建溯源与素材许可记录,并留一条商店之外的分发路径。

27 条

在线数据校验和功能面临从 v19 部分回退

Daniel Gustafssonpgsql-hackers

Daniel Gustafsson 提交了一个针对在线数据校验和功能的部分回退补丁,目标分支是 REL_19_STABLE,同时保留其中若干有独立价值的小修复。他的建议是只在 v19 回退、master 保留该功能以便继续开发,若遗留问题长期无人解决再考虑一并撤下。同一线程里 Alexander Lakhin 报告 buildfarm 上出现新的间歇失败,校验和状态返回 inprogress-off 而不是预期的 off。等这项特性落地的团队应按它可能不进 v19 来安排。

pg_dump 的纯数据转储会卡住自己的恢复

Mikhail ShytskoSeedfast 博客

把 pg_dump 的纯数据转储恢复进结构相同的空库,看起来最安全,Mikhail Shytsko 却复现了失败:\dt 里明明存在的 book_audit 表,导入时报 relation does not exist。原因是转储文件开头写了一行 set_config('search_path', '', false),会话的 search_path 被钉成空串,触发器函数里不带模式名的表引用随之解析不到。更常被提起的触发器重复写入审计行,要等触发器还能解析自身表时才遇得到。

多一个索引列的代价超过多一百万行数据

Damaso SanojaTiger Data 博客

Damaso Sanoja 用 PostgreSQL 17.10 加 TimescaleDB 2.29.1、一亿行数据做基准:给宽表时序模式新增一个索引列会让索引体积增加 864.9 MB,而新增一百万行只增加 30.1 MB,相差 28.7 倍,同时写入吞吐下降约六分之一。原因是多维索引的乘性效应,每多一个索引维度,需要跟踪的序列数就成倍增长。文章给出的解法是模式规范化:把描述性字段拆进元数据表,事实表只留代理键作索引列。

ReViSQL-K2.6 用语义验证奖励微调 Text-to-SQL

Thinking MachinesThinking Machines

Thinking Machines 发布 Text-to-SQL 强化学习工作 ReViSQL-K2.6,并开放代码、数据与训练配方。作者审计了 2.5k 条 BIRD Train 样本,称其中 61.1% 至少含一种标注问题,于是用清洗后的 BIRD-Platinum、VeriEQL 语义等价校验和过程奖励微调 Kimi-K2.6,报告在 Arcwise-Plat-SQL 上以 16 次采样达到 92.97%。这些基准与成本口径都是作者自述,未见独立复现。

Cloudflare 调整 DNS 缓存布局释放约 100 TB 内存

CloudflareCloudflare 博客

Cloudflare 披露 1.1.1.1 解析器 Big Pineapple 的五项 Rust 层优化:把数据换成不可变的 Box<[T]> 与 Box<str>、减少列表与指针、压缩字段、复用 scratch buffer。单条缓存净占用从 953 字节降到 420 字节,生产 p99 内存由 9.3 GB 降到 5.3 GB,全网工作集少了约 100 TB;插入吞吐从每秒 62.5 万条升到 89.3 万条。这些比例绑定特定数据形态,套用前需自行 profiling。

32 条

分区 MERGE 与 SPLIT 特性因设计问题被回退

Robert Haaspgsql-hackers

Robert Haas 对刚提交的 MERGE/SPLIT PARTITIONS 提出三点质疑:整个操作期间对分区父表持有 AccessExclusiveLock,读写全被阻塞;数据移动缺少优化;生成的新分区既不是源分区的完整克隆,属性继承也和普通新建分区不一致。他认为用户更可能用 ATTACH/DETACH CONCURRENTLY 手工完成同样的事。Alexander Korotkov 承认未决的设计问题太多、本轮已来不及修复,随即把该特性回退。

PG19 外键批处理缺陷会让非法外键悄悄提交

Amit Langotepgsql-hackers

Amit Langote 报告 PostgreSQL 19 外键快速路径批处理层的新缺陷,问题由 Ayush Tiwari 发现。此前的修复以约束 OID 加查询深度作缓存键,但在 PL/pgSQL 异常块里执行 SET CONSTRAINTS ... IMMEDIATE 会在同一查询深度启动嵌套的触发周期,缓存键分不出内外两层。启用断言的构建会崩溃;更严重的是嵌套周期的批次从未刷新,约束检查静默返回成功,非法的外键引用最终提交入库。

TimescaleDB 2.30 延迟展开 chunk 加速 LIMIT 规划

Sven KlemmTiger Data 博客

Sven Klemm 介绍 TimescaleDB 2.30 新增的 DeferredChunkAppend 扫描节点。此前 hypertable 上形如 ORDER BY time DESC LIMIT 1 的查询要在规划阶段展开全部 chunk,规划耗时随 chunk 数线性增长,PostgreSQL 17 上一万个 chunk 约需 3.6 秒。新节点把展开推迟到执行阶段,由 LIMIT 提前终止,官方口径下规划时间稳定在 0.013 毫秒,由 GUC 控制且默认开启。

DuckLabs 将并入 AWS,DuckDB 仍由基金会托管

DuckLabsDuckLabs

DuckLabs 宣布加入 AWS,交易预计 9 月初生效,团队继续留在阿姆斯特丹。公告称 DuckDB、DuckLake 和 Quack 保持 MIT 许可证,非营利的 DuckDB Foundation 继续持有并托管这些开源项目,后续还计划设立技术咨询委员会、开放扩展栈让第三方签名的扩展能在 DuckDB 中运行。后两项目前是计划,不是已经交付的信任策略或兼容性承诺。现有部署短期不必改动,但应把上游治理、发行物签名、扩展信任边界和商业支持归属放进依赖尽调。

Trail of Bits 称虚拟机不足以关住网络攻防 agent

Trail of BitsTrail of Bits

Trail of Bits 公布一次受控实验:研究者在 Debian 12 宿主的 QEMU/KVM 环境里,给一个预览版网络攻防模型布置虚拟机逃逸任务;在更新宿主、改用上游源码自行构建 QEMU 及依赖等条件下,模型仍多次成功逃逸,报告涉及已披露缺陷和未知缺陷。这是作者环境下的实验叙述,不能外推成通用漏洞结论。它的用处是修正威胁模型:把高风险 agent 放进可丢弃的账号、网络与硬件域,再用出站策略和人工审批补强。

36 条

换用 UUID v7 主键后插入平均快 23 倍

Andrew Atkinsonandyatkinson.com

Andrew Atkinson 记录了一次把 UUID 主键默认值从 v1、v4 换成 v7 的迁移,数据库跑在 PostgreSQL 18.4。改默认值只要一条 ALTER TABLE,但它需要表级排他锁,连 SELECT 都会被挡住,团队靠很短的锁超时、大量重试并主动取消持锁查询才完成切换。收益最大的是一张数十亿行、每分钟被调用一万两千次的多行插入语句,平均执行时间快了 23 倍。v7 的时间有序还能减少页分裂、缩小索引,进而省下 CPU 与 I/O。

CORTO 用 Aurora PostgreSQL 承载 76 亿条向量

Anisa DeanAWS 数据库博客

法律科技平台 CORTO 服务全球一万多家律所,把语义搜索建在 Amazon Aurora PostgreSQL 与 pgvector 上:单个 46 TB 集群存放 76 亿条向量,每个租户单独建 halfvec 的 384 维 HNSW 索引,拿到亚毫秒级查询延迟。嵌入模型从 1536 维的 OpenAI ADA 换成自托管的 384 维 Nomic 后,存储成本下降约 75%。文档元数据和文本块放在 DynamoDB,冷数据归档到 S3。

Percona 提醒 PostgreSQL 商业生态的围墙花园风险

Robert BernierPercona 博客

PostgreSQL 内核本身开放可移植,但 Robert Bernier 认为围绕它生长的商业生态正在制造围墙花园。文章列出三类锁定:深度使用专有扩展之后,退出要付出大规模架构重写的代价;数据迁入容易、迁出困难形成成本不对称;IAM、备份、分析这些周边基础设施比数据本身更难搬走,构成生态引力。作者的结论不是拒绝商业服务,而是要求把可移植性和互操作性在选型阶段就变成硬指标,并以 Percona 自身作为对照。

Red Hat 盘点 OpenStack 后量子迁移的 572 项问题

Red HatRed Hat 博客

云控制面常把签名算法、密钥生成和 TLS 版本写死在应用层,底层库支持后量子密码并不能自动传导上来。Red Hat 组织 27 个团队审查了 90 多个仓库,记录 572 项妨碍加密敏捷的发现,覆盖 Barbican、Keystone、oslo.messaging 等组件,典型模式包括硬编码 RSA/ECDSA、强制 TLS 1.2 和仍在使用的 ssl.wrap_socket()。整改方向是先让算法可选,再迁到 SSLContext 并支持 ML-DSA 与 ML-KEM。

38 条

Robert Haas 列出 PostgreSQL 19 六个高风险特性

Robert Haaspgsql-hackers

Robert Haas 统计 PostgreSQL 19 冻结后修复最多的补丁,列出六项高风险特性:RI 快速路径外键批处理约 16 处且含安全问题,REPACK CONCURRENTLY 有 28 处并涉及数据丢失,在线数据校验和约 25 处,UPDATE/DELETE FOR PORTION OF 有 17 处其中 3 处涉及安全,另有 SQL/PGQ 属性图与 postgres_fdw 统计导入。焦点是要不要回退前三项。

PostgreSQL 19 新增 WAIT FOR 命令等待 WAL 到位

Gülçin Yıldırım JelínekClickHouse 博客

异步流复制下主库刚提交的事务不会立刻在备库可见,应用下单后马上去只读副本查询,常常查不到那一行。PostgreSQL 19 新增 SQL 命令 WAIT FOR,让会话阻塞到 WAL 到达指定 LSN 再继续,从而在异步副本上拿到读到自己写入的一致性,不必承担同步复制的代价。命令提供四种等待模式和 TIMEOUT、NO_THROW 选项。作者提醒 19 仍在 beta,细节以最终发布说明为准。

PostgreSQL 备库复制延迟源于 EC2 单流带宽上限

Pablo SvampaPercona 博客

一套跑在 EC2 上、通过 NFS 挂载 Amazon FSx 的 PostgreSQL 备库长期存在复制延迟,而 FSx 的吞吐和 IOPS 用量都不到配额的一半。真正的天花板是 EC2 单条 TCP 流约 5 Gbps 的限制:NFS 挂载没有设置 nconnect,所有流量挤在一个连接上,既够不到实例的聚合带宽,也用不满 FSx 的配置容量。定位靠 vmstat 看出持续 I/O 阻塞,把 nconnect 调到 16 之后延迟立刻缓解。

pg_statviz 1.2 支持 PostgreSQL 19 并新增锁阻塞分析

pg_statviz 项目组GitHub

pg_statviz 是一组轻量扩展与工具,用来采集和可视化 PostgreSQL 内部统计的时序数据。1.2 版赶在 PostgreSQL 19 beta 期间发布,开始采集 pg_stat_wal 新增的 wal_fpi_bytes 计数器,并把 PG18/19 的 I/O worker 与 autovacuum 评分设置写进快照配置。新增的阻塞锁分析模块基于 pg_blocking_pids(),每次快照记录被阻塞与正在阻塞的会话数。

depesz 实测正则扩展 pg_tre 与 pg_re2

Hubert Lubaczewskiselect * from depesz

Hubert Lubaczewski 用 explain.depesz.com 的 162 万行、合计 33 GB 计划文本实测两个正则扩展。基线并行顺序扫描约 41 秒,pg_trgm 索引把同一查询压到 1.6 秒。pg_tre 建索引花了 7 小时 15 分,索引本身占 21 GB;pg_re2 用 @~ 操作符查同一模式只要 0.96 秒,明显快过 trigram,换成复杂正则也只用约一半时间,代价是 re2 库砍掉了后行断言这类写法。

21 条

PostgreSQL 19 的分区合并与分割功能面临回退

Robert HaasPostgreSQL hackers

ALTER TABLE MERGE/SPLIT PARTITIONS 已提交进 PostgreSQL 19,收尾阶段却暴露出大量边界情况。Jian He 提交补丁,提议在存在触发器、本地约束、不属于分区索引层次的本地索引、列默认值不一致或访问方法不同时直接报错,因为没有机制重建这些对象。Robert Haas 强烈反对保留:操作全程持有 AccessExclusiveLock,数据全量复制且没有优化,产出的分区既不是源分区的克隆也不是干净的新分区,他主张在发布前回退。

PostGIS 3.7.0rc1 发布,修掉多个几何解析缺陷

Regina ObePostGIS

PostGIS 团队发布 3.7.0rc1,3.7 大版本的候选版,相对 beta2 只做缺陷修复,要求 PostgreSQL 14 至 19rc1 与 GEOS 3.10 以上。修复集中在几何输入的健壮性:NURBSCURVE 包围盒遇到非有限控制点会让后端 CPU 陷入拒绝服务,畸形 SRID 前缀和畸形多边形环也能绕过校验,多项问题来自 OSS-Fuzz 与安全扫描。升级后执行 postgis_extensions_upgrade() 即可。

逻辑复制冲突日志表遇超大字段值会中断

Amit KapilaPostgreSQL hackers

冲突日志历史表的提案里发现一个缺陷:conflict_log_destination 设为 table 时,冲突行里的超大字段值会让逻辑复制中断。根因是 JSON 转义膨胀,escape_json 把控制字符展开成 6 字节序列,190 MB 的值膨胀到约 1.14 GB,越过 varlena 的 1 GB 上限。Amit Kapila 主张省略超大列的值并在原位留标记,Dilip Kumar 据此把每列上限定为 64 KB。

预备语句的第六次执行为何让查询突然变慢

Christophe PettusThe Build

Christophe Pettus 拆解了 PostgreSQL 的计划缓存。简单查询协议下的文本 SQL 每次都要重新解析、重写、规划再丢弃,PostgreSQL 没有跨会话的共享计划缓存,计划只挂在预备语句、PL/pgSQL 和 SPI 这类对象上。带参数的预备语句真正的分岔点在第六次执行:此前用定制计划,之后才可能改用通用计划,不少“什么都没改查询却变慢了”正出自这一刻。文中结论以 PostgreSQL 18 核对。

Neon 用 WAL 加 S3 重做面向智能体的存储层

Carlota SotoNeon 博客

Neon 的 Carlota Soto 认为传统 OLTP 数据库的笨重来自基础设施层,而不是 PostgreSQL 本身。文章介绍 Lakebase 的存储设计:把 WAL 与 S3 结合,面向 AI agent 的负载,让实例可以随时分支、随用随弃,不必为每个短暂环境准备一整套常驻基础设施。作者的主张是数据库基础设施要匹配 agent 的使用方式,只要存储层选对,PostgreSQL 完全能承担这类场景。这是厂商视角的架构介绍,开销与恢复行为没有给出数据。

20 条

PostgreSQL 社区重提明文密码的弃用计划

Jakub WartakPostgreSQL hackers

PostgreSQL 至今允许 CREATE ROLE ... PASSWORD 直接传明文口令,这会把口令写进日志和 pg_stat_statements。Jakub Wartak 重新激活了一份旧补丁,并附上概念验证:恢复取值 allow、warn、disallow 的 cleartext_passwords_action 参数,新增经扩展协议传口令的 PASSWORD 命令,抑制口令写日志。他倾向初期默认 allow,从 PG 20 起逐步标记废弃。

PostGIS Tiger Geocoder 2025.2 发布,也是倒数第二程

Regina ObePostGIS 博客

Regina Obe 发布 postgis_tiger_geocoder 2025.2,对应 2025 年美国人口普查 Tiger 数据集。这个纯 plpgsql 扩展曾是 PostGIS 核心的一部分,现在单独维护。本次修正了安装目标、并行构建和扩展依赖的模式限定三处问题,要求 PostgreSQL 16 及以上。升级执行 ALTER EXTENSION ... UPDATE。PostGIS 3.6 系列是最后一个包含它的版本。

DuckDB 2.0 用 PEG 解析器替换 PostgreSQL 前端

DuckDBDuckDB 博客

解析器是 SQL 方言、错误信息、补全和语法扩展的共同入口。DuckDB 从 2018 年沿用至今的 PostgreSQL 派生解析器将在 2.0 被 PEG 解析器取代,新前端接受完整 DuckSQL 后转换成原有 AST,绑定器和执行流水线不变。PEG 让语法分支的优先级显式化,避开 LALR 的移进归约冲突,扩展也可以直接扩展词法器和语法规则。官方称既有查询应继续工作,升级前仍应用生产 SQL 语料回归。

Rust nightly 默认启用下一代 trait solver

Rust ProjectRust 博客

开发近四年的下一代 trait solver 已在 nightly 默认启用,官方称这是 Rust 首次发布以来最大的单项变更。它重写了 where 子句求解、关联类型归一化等核心机制,为 Type Alias Impl Trait 和若干不健全性修复扫清道路,官方称已知 200 多个问题会随之修复,并举 DataFusion 编译快逾 8 倍为特例。官方也预告存在非平凡的破坏,可临时回退并提交最小复现。

MCP 路线图把重心转向异步任务、HTTP 与身份

Model Context ProtocolMCP 博客

MCP 正从本地工具桥接扩展到远程、长生命周期、带身份和权限边界的服务。维护者把五件事列为下一版规范的优先域:智能体消息原语、HTTP 原生传输的统一与加固、智能体身份与企业级安全、原语改进,以及 SDK 开发体验。任务、订阅与进度通知会被梳理成一致的长任务与中途干预体验,渐进式发现则让服务端先暴露小入口再逐步披露目录。这是路线图而不是兼容性承诺。