↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

并行 GIN 建索引修复超长键截断 RSS

PostgreSQL 的并行 GIN 索引构建会把键值暂存为排序元组,其中键长原先只用 16 位字段保存。遇到超过 65535 字节的键时,长度被截断,后续代码会把键内容误当作倒排列表,可能触发断言、越界读取,甚至向索引写入错误数据。新提交把键长改为 Size,并显式保证数据对齐,兼顾 32 位平台。问题仅涉及并行构建使用的临时格式,同一数据的串行构建不走这条路径;修复已合入 master 和 19 分支。

发布于 2026-09-15T00:08:49.609986Z · Ewan Young · PostgreSQL
数据完整性 索引

PostgreSQL 的并行 GIN 索引构建会把键值暂存为排序元组,其中键长原先只用 16 位字段保存。遇到超过 65535 字节的键时,长度被截断,后续代码会把键内容误当作倒排列表,可能触发断言、越界读取,甚至向索引写入错误数据。新提交把键长改为 Size,并显式保证数据对齐,兼顾 32 位平台。问题仅涉及并行构建使用的临时格式,同一数据的串行构建不走这条路径;修复已合入 master 和 19 分支。

PostgreSQL 的并行 GIN 索引构建会把键值暂存为排序元组,其中键长原先只用 16 位字段保存。遇到超过 65535 字节的键时,长度被截断,后续代码会把键内容误当作倒排列表,可能触发断言、越界读取,甚至向索引写入错误数据。新提交把键长改为 Size,并显式保证数据对齐,兼顾 32 位平台。问题仅涉及并行构建使用的临时格式,同一数据的串行构建不走这条路径;修复已合入 master 和 19 分支。

原始来源 ↗

来源记录
  • pgweb.info_item · 8544a92f2828ccdb · 2026-10-03T04:08:55.967155Z