⚙️ PostgreSQL技术文章
📨 PostgreSQL Hacker 电子邮件讨论精选
🧩 ALTER TABLE:当操作未递归应用到分区时给出警告Chao Li 正在开发一个补丁,用于在 ALTER TABLE 命令未使用 ONLY 关键字但实际上不会自动递归到分区时添加 NOTICE 消息。Zsolt Parragi 指出 SET ACCESS METHOD 应该包含在受影响的子命令列表中,因为该命令只修改父表的目录条目,现有分区保持不变,仅影响未来的直接子分区。Chao Li 承认了这个疏漏,发布了 v9 版本补丁,加入了 SET ACCESS METHOD 并添加了测试用例,确保在子命令失败时不显示提示消息。随后在 v10 中修复了测试失败问题,不过邮件中最初忘记添加附件。 https://www.postgresql.org/message-id/74084E4E-4763-4A23-9886-FEB4DF67859B@gmail.com |
🧩 REPACK 的并发执行问题讨论的焦点是为 PostgreSQL 实现 REPACK [CONCURRENTLY] 功能,特别是处理与逻辑解码的交互问题。主要问题在于 REPACK 操作可能阻塞逻辑复制的快照构建,因为 snapbuild 机制需要等待所有正在运行的事务完成才能推进到一致状态。提议的解决方案是在 snapbuild.c 中特殊处理以忽略 REPACK 事务,因为它们不会进行与逻辑解码相关的目录更改,且生成的 WAL 记录不需要发送到下游。然而,Amit Kapila 质疑为什么 REPACK 需要与其他仅包含 DML 的事务区别对待。讨论还涉及复制槽预留的担忧以及按数据库限制 REPACK 等替代方案。Srinath Reddy 报告了 REPACK 早期失败时的崩溃问题,并提供了在流程早期初始化状态标志的修复方案。Alvaro Herrera 添加了一个专门用于管理 REPACK 操作复制槽的 GUC 配置。 https://www.postgresql.org/message-id/CAA4eK1L58pxsOPoFD7+4CaNXTfkKJz7x_ZiS4nskMUq8FsEsGA@mail.gmail.com |
🧩 pg_waldump: 支持解析 tarfile 中的 WAL 文件讨论涉及 pg_waldump 在处理 GNU tar 在支持稀疏文件的文件系统(如 ZFS/BTRFS)上创建的 PAX 格式归档时遇到的问题。问题源于 PostgreSQL 的 astreamer_tar.c 代码无法正确解析 PAX 扩展头,导致提取 WAL 文件时失败。Thomas Munro 为测试推送了一个变通方案,并建议通过检查 PaxHeaders/$NAME 来改进错误检测,提供更清晰的错误消息而不是通用的"无法找到 WAL"错误。Tom Lane 强调忽略 PAX 扩展头是危险的,因为它们可以任意改变文件头的解释,提议在 v19 中完全拒绝此类文件。该问题同样影响 pg_verifybackup。Andrew Dunstan 提出了 Windows 测试兼容性的担忧,而 Andres Freund 反对不必要地禁用 Windows 测试。共识是实现更好的检测和拒绝不支持的 TAR 格式,而不是在当前发布周期中尝试完整的 PAX 支持。 https://www.postgresql.org/message-id/CA+hUKG+Pqz5=YQG_=8ho0YsTfn2HWOsJQWqS4j0q8QQWweJP9w@mail.gmail.com |
🧩 元组解构性能优化在元组解构加速工作的提交 c456e391138 之后,Alexander Lakhin 发现了一个断言失败,由 `SELECT JSON_ARRAY(VALUES (('', '')));` 触发。错误发生在 heaptuple.c 中,断言 "attlen > 0 || attlen == -1" 失败。Junwang Zhao 分析认为解析器将空字符串转换为 UNKNOWNOID 类型的 Const 节点,导致 TupleDescInitEntry 错误地填充属性条目,从而引发 nocachegetattr 失败。他建议移除 pg_assume 断言,因为这种情况可能合法出现。Jian He 确认该问题也可以通过 `SELECT row_to_json(('', ''));` 触发,并指出虽然 transformRowExpr 可以将 UNKNOWNOID 常量强制转换为 TEXTOID,但要保证 nocachegetattr 中"堆元组中不存在 cstring"的假设仍然具有挑战性。David Rowley 已确认收到报告并正在研究修复方案。 https://www.postgresql.org/message-id/80aeac57-8f50-4732-a5b4-c2373c3f8149@gmail.com |
🌐 社交媒体动态
🧩 Intent HQ助力营销人员从耗时数周的受众细分转向基于高影响力机会的实时营销执行 https://www.linkedin.com/posts/databricks_intent-hq-is-helping-marketers-move-from-activity-7445175815610462208-8dvS |
🧩 pgconf.dev2026大会纪念T恤发布! https://www.linkedin.com/posts/pgconf-dev_introducing-the-pgconfdev-2026-conference-activity-7445137219297714176-Qcki |
🧩 如果你要参加 Postgres大会,别错过这个议题! https://www.linkedin.com/posts/pgedge_if-you-are-going-to-be-at-the-postgres-conference-activity-7445179106901667841--tV4 |
🔥 HOW 2026 报名进行中












