临时复制槽在子事务回滚时的清理会触发 PANIC
Bharath Rupireddy 主张子事务路径只做槽释放不做清理,并指出释放时罕见的文件重命名失败会导致栈溢出。
保留原始来源与发布日期的新闻、博客和活动。
Bharath Rupireddy 主张子事务路径只做槽释放不做清理,并指出释放时罕见的文件重命名失败会导致栈溢出。
Andrey Borodin 审阅 v2 未发现正确性问题,改造减少了系统调用与耗时,也为直接 I/O 和异步 I/O 铺路。
Tomas Vondra 确认是 debug_parallel_query 耗尽 worker 所致,224 台 buildfarm 中有 203 台开着它。
备库长期停在归档恢复会让主库的物理复制槽不推进,磁盘可能耗尽,PG17 的 slot sync 下还会阻塞逻辑复制。
Melanie Plageman 发现 ALTER COLUMN TYPE 重建索引丢失的不只是副本标识,注释、统计目标和 reloptions 同样会掉。
Neon 的 Carlota Soto 认为传统 OLTP 数据库的笨重来自基础设施层,而不是 PostgreSQL 本身。文章介绍 Lakebase 的存储设计:把 WAL 与 S3 结合,面向 AI agent 的负载,让实例可以随时分支、随用随弃,不必为每个短暂环境准备一整套常驻基础设施。作者的主张是数据库基础设施要匹配 agent 的使用方式,只要存储层选对,PostgreSQL 完全能承担这类场景。这是厂商视角的架构介绍,开销与恢复行为没有给出数据。
Christophe Pettus 拆解了 PostgreSQL 的计划缓存。简单查询协议下的文本 SQL 每次都要重新解析、重写、规划再丢弃,PostgreSQL 没有跨会话的共享计划缓存,计划只挂在预备语句、PL/pgSQL 和 SPI 这类对象上。带参数的预备语句真正的分岔点在第六次执行:此前用定制计划,之后才可能改用通用计划,不少“什么都没改查询却变慢了”正出自这一刻。文中结论以 PostgreSQL 18 核对。
冲突日志历史表的提案里发现一个缺陷:conflict_log_destination 设为 table 时,冲突行里的超大字段值会让逻辑复制中断。根因是 JSON 转义膨胀,escape_json 把控制字符展开成 6 字节序列,190 MB 的值膨胀到约 1.14 GB,越过 varlena 的 1 GB 上限。Amit Kapila 主张省略超大列的值并在原位留标记,Dilip Kumar 据此把每列上限定为 64 KB。
PostGIS 团队发布 3.7.0rc1,3.7 大版本的候选版,相对 beta2 只做缺陷修复,要求 PostgreSQL 14 至 19rc1 与 GEOS 3.10 以上。修复集中在几何输入的健壮性:NURBSCURVE 包围盒遇到非有限控制点会让后端 CPU 陷入拒绝服务,畸形 SRID 前缀和畸形多边形环也能绕过校验,多项问题来自 OSS-Fuzz 与安全扫描。升级后执行 postgis_extensions_upgrade() 即可。
ALTER TABLE MERGE/SPLIT PARTITIONS 已提交进 PostgreSQL 19,收尾阶段却暴露出大量边界情况。Jian He 提交补丁,提议在存在触发器、本地约束、不属于分区索引层次的本地索引、列默认值不一致或访问方法不同时直接报错,因为没有机制重建这些对象。Robert Haas 强烈反对保留:操作全程持有 AccessExclusiveLock,数据全量复制且没有优化,产出的分区既不是源分区的克隆也不是干净的新分区,他主张在发布前回退。
v5 给出命中、未命中、已用与已分配条目、占用字节和命中率,审阅者要求补上真实统计值的测试。
它把大对象退回 8.4 的无主模式,任何角色都能读写删除,且不留日志;继承到就该关掉并逐条修查询。
解析器是 SQL 方言、错误信息、补全和语法扩展的共同入口。DuckDB 从 2018 年沿用至今的 PostgreSQL 派生解析器将在 2.0 被 PEG 解析器取代,新前端接受完整 DuckSQL 后转换成原有 AST,绑定器和执行流水线不变。PEG 让语法分支的优先级显式化,避开 LALR 的移进归约冲突,扩展也可以直接扩展词法器和语法规则。官方称既有查询应继续工作,升级前仍应用生产 SQL 语料回归。
Regina Obe 发布 postgis_tiger_geocoder 2025.2,对应 2025 年美国人口普查 Tiger 数据集。这个纯 plpgsql 扩展曾是 PostGIS 核心的一部分,现在单独维护。本次修正了安装目标、并行构建和扩展依赖的模式限定三处问题,要求 PostgreSQL 16 及以上。升级执行 ALTER EXTENSION ... UPDATE。PostGIS 3.6 系列是最后一个包含它的版本。
local_preload_libraries 在建立连接时把共享库加载进后端,与 session_preload_libraries 类似但更严:后者只有超级用户能设,前者任何角色都能设,代价是只许从 $libdir/plugins 加载。这个目录就是它全部的安全模型,PostgreSQL 从不往里放东西,得由管理员自己决定放什么。Christophe Pettus 建议 DBA 优先用 ALTER ROLE 配 session_preload_libraries。
约 190 MB 的旧行转成字符串时超出 1 GB 上限,apply worker 崩溃;写日志文件则不受影响。
缺陷可追溯到 PG16 引入 origin 检查的提交,v4 已验证,计划为 16 到 19 各分支准备回移补丁。
Alexey Evlampiev 主张校验、鉴权和状态迁移本来就该在一个事务里完成,事务性 API 的边界应当从应用层移进 PostgreSQL。他把带类型契约、鉴权策略、隔离级别声明和测试的具名数据库函数当作设计单元,HTTP 路由、OpenAPI 与 MCP 工具都只是这些操作的绑定。路由目录做成可查询的表,版本差异写成谓词而非分叉代码,鉴权交给行级安全。流媒体与编排仍留在外层。