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

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

PostgreSQL 博览 RSS 订阅

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

32 条

PostgreSQL 19 Beta 1 的发布公告正在定稿

Jonathan Katzpgsql-hackers

PostgreSQL 19 Beta 1 的发布公告正在邮件列表上打磨,Jonathan Katz 逐条收集功能描述和措辞意见。Florents Tselai 建议补上 GROUP BY ALL,并改写 jsonpath 字符串函数一节,两条都被采纳:公告会说明 GROUP BY ALL 把非聚合、非窗口的输出列自动并入分组。Tom Lane 建议把 parameters 改成输出列,以免和函数参数混淆。

Cybertec 用示例讲 PostgreSQL 19 的 SQL/PGQ

Hans-Jürgen SchönigCybertec

PostgreSQL 19 实现了 ISO/IEC 9075-16 的 SQL/PGQ,可以直接查询存在关系表里的图数据。Cybertec 的教程用 person 和 knows 两张表演示:先用 CREATE PROPERTY GRAPH 声明点表、边表和两者的关系,再用 GRAPH_TABLE 写模式匹配,多跳可以查朋友的朋友。既不用复制数据,也不用装扩展,底层由 PostgreSQL 重写成普通的连接操作。

ClickHouse 的托管 Postgres 进入 beta

ClickHouseClickHouse 博客

ClickHouse 把自家的托管 Postgres 推进 beta,卖点是本地 NVMe 存储、到 ClickHouse 的原生 CDC 和 pg_clickhouse 扩展,主张用 Postgres 存事务状态、ClickHouse 做实时分析,省掉两边之间的外部管道和胶水代码。这意味着 OLAP 厂商不再只做 Postgres 数据接入,而是直接承接 OLTP 托管。自建方案的差异点仍在控制权、扩展生态和成本透明度。

微软继续推销面向 AI 时代的 Azure HorizonDB

MicrosoftMicrosoft TechCommunity

微软在 TechCommunity 上继续推 Azure HorizonDB,定位是面向 AI 时代的企业级 Postgres,路线是存算分离、内置向量与 AI 能力、企业安全默认打开。要留意 Postgres 兼容和 PostgreSQL 扩展生态完全兼容不是一回事:评估这类产品得看扩展支持范围、复制与备份方式、迁移路径、锁定风险,以及真实基准和价格模型。

AWS 演示用 Debezium 给 Aurora 做实时 CDC

Kirthi Vishal DourlaAWS 数据库博客

AWS 数据库博客给出一套用 Debezium 做实时变更数据捕获的做法,替代延迟较高的批量 ETL。组件是打开逻辑复制的 Aurora PostgreSQL 或 RDS for PostgreSQL、跑在 MSK Connect 上的 Debezium 连接器,以及做消息流的 Amazon MSK;Debezium 直接读预写日志,把变更推成 Kafka 主题。步骤包括建参数组打开逻辑复制、配 IAM 角色和上传自定义插件。

Redis 8.8 新增 Array 数据结构与 INCREX

RedisRedis 文档

Redis 8.8 不是普通补丁版:新增原生 Array 数据结构和 INCREX 命令,改进了 Streams 待处理消息的释放,Search 与 Query 侧做了性能优化和 profiling,HyperLogLog、MGET、MSET、HGETALL 等高频路径也继续提速。方向上 Redis 8.x 一直在从缓存走向多模型内存数据平台,搜索、向量、时序、限流和流处理这些能力被反复加强。

Spanner Graph 的图算法进入预览

Google CloudGoogle Cloud 博客

Google 把图算法以预览形式放进 Spanner Graph。Spanner 本来就有全球一致性和 SQL/GQL,图遍历和图算法进到库内之后,把数据 ETL 到外部图分析系统的必要性下降。这说明图能力正从独立图数据库的专属卖点,变成多模型云数据库和事务数据库的常规配置。选型仍要看数据规模、一致性要求、查询语言、算法库是否够用、ETL 代价和云锁定;PostgreSQL 一侧对应的方向是 SQL/PGQ 与 Apache AGE。

一次点击即可窃取 GitHub token 的验证公布

Ammar AskarAmmar Askar 博客

Ammar Askar 公布了一个概念验证:经由 github.dev 与 VS Code webview 相关的链路,用户点一次链接就可能被窃走 GitHub token。利用面把 webview、快捷键与命令面板、扩展安装和 token 暴露串在一起。开发者 token 能读写私有仓库,一键失窃的影响远大于普通 XSS。团队可以限制 github.dev 的使用、清理站点数据并降低 token 权限。

13 条

Autobase 2.8.0 发布,分出商业企业版

vitabaksAutobase

Autobase 是把高可用 PostgreSQL 集群自动化搭起来的开源平台,常被当成云托管数据库的自建替代。2.8.0 起项目分成两条线:社区版继续以 MIT 许可开源,面向个人开发者和业余项目;新的企业版是商业版本,针对公司内部的集中管理、运维管控、治理、扩展性与技术支持,官方口径是做成可部署在自有基础设施上的完整 DBaaS。选型时要留意能力今后如何在两条线之间划分。

Christophe Pettus 评测 Azure Postgres 托管服务

Christophe Pettusthebuild.com

托管 Postgres 评测系列这次看 Azure Database for PostgreSQL Flexible Server。作者认可的是大版本跟进快,当前支持到 PostgreSQL 17,常用扩展按白名单提供,实例级 PgBouncer 事务池不必另起一层,同步流复制把提交刷到两个故障域再回应客户端,语义可审计。代价是备库进入提交路径,备库一慢主库延迟跟着涨,跨可用区每次提交多 1 到 3 毫秒。

Laurenz Albe 讨论函数何时才算 leakproof

Laurenz AlbeCybertec

leakproof 指函数没有副作用,除返回值外不泄露参数信息;行级安全和 security_barrier 视图靠它判断用户条件能否被推到安全条件之前执行。Laurenz Albe 指出 PostgreSQL 只标了约 345 个 leakproof 函数,基本都是基础类型的比较运算符,保守的代价是 RLS 下查询性能受损。他认为行级安全本就不该指望挡住能随意写 SQL 的用户,过严的定义牺牲了可用性。

boringsql 拆解 pg_stat_statements 的边界

Radim Marekboringsql

Radim Marek 提醒 pg_stat_statements 不是查询仓库,而是共享内存里一张定长哈希表。由此有几处坑:queryid 按对象 OID 计算,跨大版本或重建表之后就会变,不能当持久主键;ORM 的别名、列表和 LIMIT 差异会把一条逻辑查询打散成上百行;条目数受 pg_stat_statements.max 限制,被淘汰的历史直接消失;mean_exec_time 是开机以来的平均,看不出 p99 毛刺。

TigerData 谈数据库账单之外的日程债务

Matty StrattonTigerData 博客

云账单之外还有一笔隐性成本:工程师花在数据库维护上的重复时间。文章称之为日程债务,在高负载 PostgreSQL 场景里表现为分区管理、autovacuum 调优、复制监控和容量规划,作者估计可以占掉资深工程师两到三成的时间,而且数据从百万行长到十亿行之后,运维手册变厚、新人上手变慢、产品迭代跟着变慢。建议先做一次 90 天日程审计,统计与数据库相关的故障、会议和维护,再用自动分区、保留策略和存储优化把生命周期管理从人手里拿走。

13 条

PostgreSQL 19 用 GRAPH_TABLE 支持 SQL/PGQ

Christophe Pettusthebuild.com

SQL/PGQ 是 2023 年进入 SQL 标准的图查询语法。Christophe Pettus 介绍了 PostgreSQL 19 落地的 GRAPH_TABLE:先用 CREATE PROPERTY GRAPH 把已有表声明成点表和边表,再用 MATCH 写模式,实现上重写成关系连接交给现有优化器,而不是新做一套图存储。当前不支持变长遍历,深度遍历也追不上 Neo4j 的免索引邻接,作者认为浅层图查询可以留在库里做。

Neon 付费计划的数据传输额度提高到 500 GB

Brad Van VugtNeon 博客

出口流量费是无服务器数据库上数据密集型应用绕不开的成本项。Neon 宣布自 2026 年 6 月 1 日起,所有付费计划的每月数据传输额度从 100 GB 提到 500 GB,涨到五倍,官方口径是让大多数工作负载不必再为出口流量单独付费。新额度对已有账户自动生效,体现在 6 月账单里,用户不需要改配置或换计划。跨区域读副本、逻辑复制和备份导出这些吃流量的路径,以及超出额度之后的计价,仍要按自己的用量核算。

PG19 逻辑解码的权限问题被归为非缺陷

Masahiko Sawadapgsql-hackers

PostgreSQL 19 支持在 wal_level = replica 下不重启启用逻辑解码,随之留下一个开放问题:有 REPLICATION 权限的用户建逻辑槽要不要额外设限。Masahiko Sawada 梳理 Andres Freund 与 Amit Kapila 的论证后提议归入 Non-bugs:这类用户本来就能靠物理流复制读到全部数据,再给逻辑槽不构成新的安全边界。逻辑槽带来的 WAL 膨胀应当靠改进监控来解决。

Robert Haas 提出来源追踪,隔离不受信任代码

Robert Haaspgsql-hackers

Robert Haas 提出一套来源追踪机制,用 Provenances 对象记录每次操作的最终发起方和监管链条,为不受信任代码的隔离执行打底。Jacob Champion 认为这有助于识别信任边界,能与他在做的内部能力模型互补,讨论随后落到操作符类与操作符族怎么处理,以及完全可信基础设施该如何界定。两人都同意纯数学函数不该受来源限制,否则机制会严到难用。Tom Lane 以 SELinux 的历史提醒,策略打磨到可用需要好几年。

逻辑复制冲突日志表补丁推进到第 43 版

PostgreSQL 开发者邮件列表pgsql-hackers

为逻辑复制记录冲突历史的提案已迭代到第 43 版补丁。评审集中在几处:冲突日志表的权限,非超级用户可以 DELETE 和 TRUNCATE,但 INSERT、UPDATE 应给出专门报错而不是通用权限错误;字段和函数命名要不要保留 log 一词;CREATE SUBSCRIPTION 因建表时序报出订阅被并发删除的缺陷;以及 pg_subscription 新增列的访问控制。最新补丁补上 TOAST 表支持,并调整了建表时序。

9 条

walsender 关闭超时补丁的新测试不稳定

Alexander Lakhinpgsql-hackers

Alexander Lakhin 报告刚推送的 walsender 关闭超时补丁带来的测试在构建农场上失败:它没等到那条 walsender 因超时退出的告警,看到的却是数据库关闭和连接失败的报错。原因像是时序问题,接收端的就绪标志在主循环跑起来之前就被置上了。他在 walreceiver 里插入 500 毫秒延迟复现了失败,证实存在竞态。结论是测试对时序的假设要重写,得容得下接收端启动与发送端关闭的异步性。

config_file 只能在启动时指定

Christophe Pettusthebuild.com

config_file 指出 postgresql.conf 的位置。默认在数据目录下,但发行版会改,Debian 和 Ubuntu 就放在 /etc/postgresql/ 下。它不能写在配置文件里,也不能 ALTER SYSTEM SET,只能启动时用 -c 指定,否则就是循环依赖。配套的还有 data_directory、hba_file 和 ident_file。Pettus 建议接手机器时先 SHOW 这四个,比猜目录靠谱。

28 条

星型连接想走一条更快的规划路径

Tomas Vondra、Bruce Momjianpgsql-hackers

Tomas Vondra 和 Bruce Momjian 在讨论针对星型连接的规划优化:识别出事实表连接多张维度表的形态后限制连接搜索空间,只允许标准顺序的前缀组合,比如 [F]、[F,D1]、[F,D1,D2],而不允许 [F,D2]。测试显示维度较多的查询规划时间从数千毫秒降到个位数毫秒。Bruce 希望把前缀的定义讲清楚,并追问维度连接之间是否允许插入非维度表,讨论也在考虑要不要要求所有维度连续连接。

compute_query_id 该开还是留 auto

Christophe Pettusthebuild.com

compute_query_id 让内核算出一个各方共用的查询标识,pg_stat_statements、活动视图和日志都能对上。取值有 auto、on、off 和 regress,默认 auto 只在模块提出需求时才计算。Christophe Pettus 提醒的坑是:只在日志前缀里加了 %Q 却没有模块要求计算,日志里的标识就是空的。他建议依赖日志或活动视图的设成 on,装了 pg_stat_statements 的留在 auto。

有人主张用 SQLite 就够做持久化工作流

obeli.skobeli.sk

一篇讨论持久化工作流的文章在 Hacker News 上拿到六百多分:作者认为多数任务编排被过度设计,SQLite 作为嵌入式事务存储,在单机、边缘和小团队场景里性价比很高,用 WAL 加事务状态机就能撑起持久化的工作流引擎,不必先上一套重型队列和编排服务。可以纳入轻量编排的候选方案,但跨节点调度、长事务的可观测性和灾备仍要单独设计。

Prometheus 3.12.0 同批带来安全修复与新功能

PrometheusGitHub Releases

Prometheus 3.12.0 不是普通补丁版。安全方面修掉了 remote-write 的 Snappy 解压拒绝服务,以及 STACKIT 服务发现的凭据暴露;功能方面新增实验性的 PromQL 函数、TSDB 性能优化、DigitalOcean 托管数据库与 Outscale 服务发现,Web 界面也能删除时间序列并清理 tombstone。跑 3.x 的团队值得排升级,重点检查 remote-write 入口与服务发现配置。

研究者威胁再次公开 Windows 漏洞利用代码

The RegisterThe Register

The Register 报道称,一名研究者与微软之间关于 0-day 的争执升级,威胁再放出一批 Windows 漏洞利用代码。这类披露协调失败的直接后果是,企业会被暴露在利用代码突然公开、补丁尚未就绪的窗口里。具体影响仍应以厂商公告和 CVE 编号为准;以 Windows 为主的环境值得提前盯住后续公告、终端检测规则、补丁节奏和临时缓解措施,把监控和应急路径先准备好。

14 条

PostgreSQL 19 的 REPACK 命令怎么用

Shaun ThomaspgEdge 博客

Shaun Thomas 介绍 PostgreSQL 19 新增的 REPACK:重写膨胀的表并把空闲空间还给操作系统,这是 VACUUM 做不到的。写法是 REPACK (VERBOSE, ANALYZE) 表名,CONCURRENTLY 用复制槽捕获重写期间的改动以避开长时间排他锁,USING INDEX 按索引物理排序,接手 CLUSTER 的活。注意它不能用于无日志表和分区表,也不能放进事务块,并发形态还不是 MVCC 安全的。

pg_tde 是什么,以及你到底需不需要它

Christophe Pettusthebuild.com

Christophe Pettus 讲 Percona 的开源透明加密扩展 pg_tde,当前 2.1.2,官方口径的开销在 10% 以内。它对显式标记的堆表及其索引、TOAST 表、序列和 WAL 做块级加密,内部密钥加密数据、主密钥再加密内部密钥,主密钥放在 Vault 或 KMIP 服务里。没覆盖的部分要留意:系统目录仍是明文,临时溢出文件不加密,而且不支持 pg_upgrade。他的建议是只有合规硬性要求或需要按表加密时才上。

clang-20 在 RISC-V 上误编译波及时区与 pg_trgm

Greg Burdpgsql-hackers

Greg Burd 报告 clang-20 的自动向量化在 RISC-V 构建上生成了错误的散布写入,受影响的不止 DES 加密代码。他排查出三处:pgcrypto 的 crypt-des.c、时区编译器 zic.c 和 pg_trgm 的 trgm_op.c。zic.c 尤其麻烦,时区数据编译出错很难被发现。问题只在 -O2 和 -O3 下、编译器生成 RVV 散布存储时出现。Tom Lane 指出时区数据的测试覆盖有限。

key joins 提案想把外键关系写进 JOIN 子句

Joel Jacobsonpgsql-hackers

Joel Jacobson 在推进一项名为 key joins 的 SQL 语言特性,并打算提交 SQL 委员会。写法形如 LEFT JOIN 表 FOR KEY (列) -> 别名 (列),直接在连接里声明外键关系。补丁从 v4 改到 v6,修掉了构建失败与测试问题。Matthias van de Meent 建议支持引用命名的外键约束;Laurenz Albe 想用 FROM 和 TO 取代箭头,Joel 说用户反馈显示箭头更清楚。

PQfn() 的弃用有了可用的过渡补丁

Nathan Bossartpgsql-hackers

Nathan Bossart 拿出一版工作补丁来解决 PQfn() 的弃用:在 libpq 里引入回调机制处理预备语句被释放的通知,走协议扩展而不是次版本号,对旧服务端或旧客户端回退到 PQexecParams()。Jacob Champion 建议在切到回退方案之前先把 PQfn() 保留几个版本,并对基于通知的架构表示怀疑,更倾向中间件层面的上下文隔离。相关讨论已另开线程继续。

20 条

pgcrypto 与 pg_trgm 的三个溢出由 AI 找出

Christophe Pettusthebuild.com

Christophe Pettus 记下 pgcrypto 与 pg_trgm 里的三个堆溢出。最严重的 CVE-2026-2005 在 pgcrypto 的 PGP 处理中,可致任意代码执行,另两个涉及畸形 UTF-8 解密和三元组扩展。受影响的是 15.18、16.14、17.10 和 18.4 之前的版本。其中两个由自动化工具静态分析找到,办法是跟踪污点数据找出缺失的长度检查。作者说漏洞长期没被发现不是隐蔽,而是没人看。

Percona 的 PostgreSQL 算子 3.0.0 完成硬分叉

Slava SarzhanPercona 博客

Percona Operator for PostgreSQL 3.0.0 完成了对 Crunchy Data 算子的硬分叉。自定义资源定义改到专用 API 组,两套算子可以共存于同一个 Kubernetes 集群。这一版修好了 OpenShift 生命周期管理器的命名空间作用域问题,此前算子会盯错命名空间;大版本升级改用官方发行镜像,与生产运行时保持一致。支持 14.23 到 18.4,2.7.0 用户必须先升到 2.8.x 再迁。

用 HypoPG 加大模型做索引调优

Warda BibiStormatics 博客

Stormatics 介绍 pg_index_search 的流程:先从 pg_stat_statements 取出调用超过 50 次、执行超过 5 毫秒的语句,用解析器从 WHERE、JOIN 和 ORDER BY 中抽出可索引列,再生成单列与多列候选。候选交给 HypoPG 建虚拟索引,在不落盘也不加锁的前提下让规划器评估,用贪心搜索按加权代价挑组合。模型可以补充表达式索引,但所有建议都要过 HypoPG 验证并人工确认。

在事务里调用 AI 接口的几种翻车方式

Vibhor KumarVibhor Kumar 博客

Vibhor Kumar 总结了在事务中直接调用外部 AI 接口的失效模式:持锁期间等待 I/O 会让请求排队,触发限流后各 worker 同步重试形成风暴,事务回滚也收不回已花掉的 token 和已发出的 webhook,长调用还会占满连接池。他提出 ORBIT 五条原则:先写出箱表再异步执行、限流状态放共享内存、以后台进程为调度单位、从第一天就保证幂等、所有调用留下可审计轨迹。

在线开关数据校验和的修复赶在 beta1 前

Daniel Gustafssonpgsql-hackers

Daniel Gustafsson 和 Tomas Vondra 在收尾 PostgreSQL 19 的在线开关数据校验和。已确认的缺陷是状态更新时没有发出 procsignalbarrier,而这是维持集群一致所必需的;Daniel 写好了测试,打算在 beta1 之前上三个补丁修掉备库提升时的问题。分歧在 DELAY_CHKPT_START:Daniel 主张先留着、到 20 再删,Vondra 倾向于趁 19 还有几个月就地改掉。

replica 级别下开逻辑解码的开放项拟关闭

Masahiko Sawadapgsql-hackers

PostgreSQL 19 有一个开放项:wal_level 为 replica 时不重启就启用逻辑解码。Masahiko Sawada 提议把它标为非缺陷并关闭,理由是拥有 REPLICATION 权限的用户本来就能通过物理流复制读到全部数据并影响清理时点,让这类用户创建逻辑槽不带来新的安全风险。与其限制建槽,不如把力气放到监控上,比如按会话或按用户跟踪 WAL 产生量。Amit Kapila 表示赞同。