PostgreSQL 修复 JSON 更新中的悬空指针
PostgreSQL 已合入 jsonb_set_lax 的释放后使用修复。新值是常量 SQL NULL 时,旧实现会改写调用方的参数区,把按行分配的 JSON 空值留下;处理后续行时,内存已被回收,空值标记却仍被清除,既可能访问失效内存,也可能错误沿用前一次的空值处理方式。补丁改用独立调用帧,并增加多行回归用例。提交标注回补至 PostgreSQL 14,使用该函数批量更新 JSON 的系统应关注后续修订版。
pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
当天收录 26 条。
PostgreSQL 已合入 jsonb_set_lax 的释放后使用修复。新值是常量 SQL NULL 时,旧实现会改写调用方的参数区,把按行分配的 JSON 空值留下;处理后续行时,内存已被回收,空值标记却仍被清除,既可能访问失效内存,也可能错误沿用前一次的空值处理方式。补丁改用独立调用帧,并增加多行回归用例。提交标注回补至 PostgreSQL 14,使用该函数批量更新 JSON 的系统应关注后续修订版。
Awide 开源了基于 PolarDB 的数据库引擎、增强版 PolarFS 和基于 ProxySQL 的 PolarProxy,围绕单写节点、共享数据文件与独立读副本构建集群。其 PostgreSQL 17 分支整合 WAL 流水线与提交序号机制;代理根据 WAL 位置等待副本追上写入,让应用在读写分离时保持读己之写。存储层另有跨主机租约与显式设备刷盘处理。并行查询已移植到 15 分支,17 分支仍在推进,各版本的功能完整度不同。
pgAdmin 桌面安装包需要捆绑 PostgreSQL、OpenSSL 等原生依赖,过去通过每天替换的 latest 标签获取归档,同一份源码未必能构建出相同软件。Dave Page 介绍的新流程为每份依赖固定版本和 SHA-256,并在解包前校验;pgbuild 同时保留不可变的版本发布,提供校验值与上游版本信息。依赖更新因此成为可审查的锁文件变更,归档被替换会直接令构建失败。过期依赖只触发提示,升级时机仍由维护者明确决定。
PostgreSQL 连接池与分片代理 PgDog 发布 0.1.62,修正重分片时过早返回成功的问题:现在必须确认每个分片已经提交,才向调用方报告完成。新版还修复 SET 与 SET LOCAL 的覆盖关系、RESET 后的回滚状态,以及未取得顾问锁却占用后端连接的问题,减少连接复用时的状态泄漏。同时加入基础跨分片子查询和逻辑复制进度持久化,但崩溃后恢复流程仍在开发,重分片中断后的恢复还需单独处理。
U.S. Bank 与 AWS 披露四套 Oracle 19c 数据库从 Exadata 迁往 RDS for Oracle 的过程,总量为 119 TB。方案以跨平台可传输表空间配合 RMAN 增量备份,在源库保持在线时完成大部分数据搬运,并用控制表调度多个恢复任务。案例称首次基线传输约七天,正式切换平均四小时,后者包含统计信息与对象验证。迁移前还需处理压缩数据展开、单文件大小、字符集和时区兼容;最终增量很小,仍须预留验证与回退窗口。
Vault 2.2 正式发布,使用 PostgreSQL 存储后端的 Azure 环境需留意认证顺序变化:配置了工作负载身份时,它将优先于托管身份,旧连接配置可能因此失效。新版还允许 TCP 监听器定期检查证书文件并自动重载 TLS 证书,PKI 引擎增加 ML-DSA 后量子签名支持。与此同时,重复的 HCL 属性不再被接受,过去用于恢复旧解析行为的环境变量已移除。升级前须验证身份选择、配置解析与证书轮换,确认实际访问可用。
UPDATE、DELETE 与 MERGE 的关系别名统一显式输出 AS,避免名为 set 的别名让导出查询无法重新解析。
新目录覆盖七十余个项目,列出安装命令、依赖与仓库元数据生成的系统、架构和 PostgreSQL 版本支持矩阵。
实验显示事务内删除再创建策略可避免中间状态,但会取得强表锁;并发迁移还应串行执行,并设置等锁期限。
插件已进入官方目录,可在 Kubernetes 界面检查数据库实例、连接池和备份,并查看日志、指标或打开 psql。
新库以 Web Fetch 接口组合鉴权与数据库访问,借助类型检查约束上下文顺序,并可将用户声明限制在当前数据库事务。
技术比较区分对象写入、多可用区对象仲裁与独立日志节点仲裁:同样使用对象存储,写入确认条件和故障恢复责任可能不同。
HTTP/2 请求可借方法名大小写绕过授权策略;集群内版本须升级到公告列出的修正版,托管版本由服务方自动更新。
厂商称共享提示前缀、调度和模型配置使单次成本下降 68%;部分低强度配置也明显减少了性能问题的发现。