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 年前的历史时间戳。
相关推荐
kaoa0002 小时前
Linux入门攻坚——67、MySQL数据库-4
linux·运维·数据库·mysql
学Linux的语莫2 小时前
skills的使用
java·数据库·python
码云数智-园园2 小时前
MySQL 性能调优实战:高效处理 ORDER BY 与 GROUP BY 查询
数据库·mysql
大模型玩家七七2 小时前
关系记忆不是越完整越好:chunk size 的隐性代价
java·前端·数据库·人工智能·深度学习·算法·oracle
全栈前端老曹3 小时前
【Redis】Pipeline 与性能优化——批量命令处理、提升吞吐量、减少网络延迟
前端·网络·数据库·redis·缓存·性能优化·全栈
知识分享小能手3 小时前
SQL Server 2019入门学习教程,从入门到精通,SQL Server 2019 创建和使用索引 — 语法知识点及使用方法详解(12)
数据库·学习·sqlserver
一 乐3 小时前
林业资源管理|基于java + vue林业资源管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·林业资源管理系统
l1t3 小时前
DeepSeek总结的PostgreSQL 18 EXPLAIN 中新增的 Index Searches
数据库·postgresql
g***27993 小时前
使用 Canal 实时从 MySql 向其它库同步数据
数据库·mysql
u***35743 小时前
对基因列表中批量的基因进行GO和KEGG注释
开发语言·数据库·golang