DeepSeek总结的PostgreSQL 18.2 版本发布说明要点

PostgreSQL 18.2 版本发布说明

原文地址:https://www.postgresql.org/docs/release/18.2/
发布日期: 2026年2月12日
适用版本: 18.X 系列
升级要求: 通常情况下无需执行 dump/restore;但如果使用了 ltree 类型的索引,可能需要在更新后重建索引


一、安全漏洞修复(CVE)

编号 问题描述 修复措施
CVE-2026-2003 oidvector / int2vector 类型未校验数组维度与空值 增加输入验证,防止异常行为
CVE-2026-2004 contrib/intarray 的选择性估计函数可被滥用执行任意代码 限制非内置选择性估计函数只能由超级用户使用
CVE-2026-2005 pgcrypto PGP 解密函数存在缓冲区溢出风险 增加对消息格式的严格校验
CVE-2026-2006 多字节字符长度校验不严,可能导致缓冲区溢出 增强字符串处理中的编码校验,可能引发"无效字节序列"错误
CVE-2026-2007 pg_trgm 在某些语言环境下因字符数量变化导致缓冲区溢出 调整大小计算方式,避免溢出

二、主要功能与行为修复

1. 查询优化与执行器
  • CTE 引用层级问题:修正了子查询中 CTE 引用对聚合函数语义的影响,现按标准 SQL 报错。
  • MERGE 触发器行为修复 :修复了 CTE 中同时包含 MERGE 和其他 DML 时,AFTER 触发器未包含 MERGE 影响行的问题。
  • 分区表全子表被裁剪时避免报错:修复了"could not find junk ctid column"错误。
  • 窗口函数去重问题:避免因重复窗口函数调用导致的计划错误。
  • 子查询优化改进:支持将外层限制条件下推到包含 volatile 或 SRF 的 GROUP BY 子句中,避免错误或重复计算。
  • PlaceHolderVar 支持增强:优化统计信息匹配和索引匹配,提升查询计划质量。
2. 索引与存储
  • 部分哈希索引优化:即使索引谓词隐含 WHERE 条件,仍允许使用索引扫描。
  • 未记录 BRIN 索引不再写 WAL:修复崩溃恢复中"文件已存在"错误。
  • GIN 并行构建修复:使用正确的排序函数,避免索引无效或构建失败。
  • ltree 大小写匹配修复 :统一使用数据库默认排序规则,可能需要重建索引
3. 复制与日志
  • NOTIFY 消息处理改进:防止因消息未处理导致 CLOG 被截断;错误升级为 FATAL,确保客户端感知消息丢失。
  • 逻辑复制修复
    • 修复 slot 无效化、xmin 计算、复制进度推进等问题;
    • 修复并行 worker 失败后事务丢失问题;
    • 修复 LOCK_TIMEOUT 被忽略的问题。
  • 增量备份修复 :修复大表被 VACUUM 截断后,pg_combinebackup 失败的问题。
4. 系统工具与扩展
  • pg_dump :修复序列值收集失败、权限不足时错误输出、oauth_validator_libraries 引号问题。
  • pgbench :修复管道模式下多个 \syncpipeline 命令的错误处理。
  • pg_resetwal:支持设置 multixact xid 为 0 或 offset 为 UINT32_MAX,修复升级失败问题。
  • amcheck:修复并发创建索引时的假阳性错误,支持"半死页"和不完整根页分裂。
  • pg_stat_statements:修复查询 ID 计算未考虑 GROUP BY 表达式的问题。
  • pg_buffercache:减少 NUMA 页状态内存占用。

三、平台兼容性与构建修复

  • LLVM JIT:适配 LLVM 17+ 和 LLVM 21,修复 aarch64 编译问题。
  • Solaris / Hurd:修复命令行参数解析与进程标题设置。
  • Windows :支持 O_CLOEXEC 标志,避免子进程继承文件句柄。
  • 文件扩展方法优化 :新增 file_extend_method 参数,可选择使用 posix_fallocate() 或传统写零方式,解决特定文件系统问题(如 BTRFS 压缩失效、XFS ENOSPC 误报)。

四、时间区数据更新

  • 更新为 tzdata 2025c,主要修正墨西哥下加利福尼亚州 1976 年前的历史时间戳。
相关推荐
weixin_4643076318 小时前
QT智能指针
java·数据库·qt
王仲肖18 小时前
PostgreSQL VACUUM 与 AUTOVACUUM 深度解析
数据库·postgresql
电商API&Tina19 小时前
电商数据采集API接口||合规优先、稳定高效、数据精准
java·javascript·数据库·python·json
lifewange19 小时前
SQL 中 IN 和 AND 可以搭配使用么?
数据库·sql
博语小屋20 小时前
I/O 多路转接之epoll
运维·服务器·数据库
问道飞鱼20 小时前
【大模型学习】LangGraph 深度解析:定义、功能、原理与实践
数据库·学习·大模型·工作流
DJ斯特拉20 小时前
黑马点评技术汇总(四)缓存雪崩 && 缓存击穿
数据库·缓存
lzhdim20 小时前
SQL 入门 7:SQL 聚合与分组:函数、GROUP BY 与 ROLLUP
java·服务器·数据库·sql·mysql
lifewange21 小时前
INSERT INTO ... SELECT ...
数据库·sql
Uso_Magic21 小时前
SQLSERVER__EXPLAIN 常用分析案例。
服务器·数据库·sql