文档版本比较
POSTGRESQL · VERSION COMPARE
PostgreSQL 9.3.16 发布变化
此版本的完整功能、修复与兼容性说明,以及其他版本的关联记录。
包括起始版本之后至目标版本的变化。大版本号表示该分支的首个版本。
从数据库输出识别起始版本
完整发布变化
9.3.16
2017-02-09
9.3.16stable支持截止 2018-11-08
PostgreSQL 9.3.16
迁移与兼容性
对于运行 9.3.X 的用户,不需要进行转储/恢复。
不过,如果你的安装受到下面第一条变更日志条目所述 bug 的影响,更新之后你可能需要采取行动修复损坏的索引。
不过,如果你是从早于 9.3.15 的版本升级,请参见第 E.11 节。
问题修复修复可能导致用 CREATE INDEX CONCURRENTLY 构建的索引损坏的竞态条件
变更
修复可能导致用 CREATE INDEX CONCURRENTLY 构建的索引损坏的竞态条件(Pavan Deolasee、Tom Lane)
如果 CREATE INDEX CONCURRENTLY 被用于构建一个依赖于先前未被索引的列的索引,那么与 CREATE INDEX 命令并发运行的事务所更新的行可能收到错误的索引条目。如果怀疑这可能已发生,最可靠的解决方案是在安装此更新后重建受影响的索引。
改进无条件地为未记录表的 “init fork” 写 WAL 日志
变更
无条件地为未记录表的 “init fork” 写 WAL 日志(Michael Paquier)
此前当wal_level = minimum 时跳过这一步,但实际上即使在这种情况下也需要它,以确保未记录表在崩溃后被正确重置为空。
改进如果统计收集器在热备期间死亡,重启它
变更
如果统计收集器在热备期间死亡,重启它(Takayuki Tsunakawa)
改进确保热备反馈在备库服务器启动时启用的情况下正确工作
变更
确保热备反馈在备库服务器启动时启用的情况下正确工作(Ants Aasma、Craig Ringer)
改进热备等待冲突查询时检查中断
变更
热备等待冲突查询时检查中断(Simon Riggs)
改进避免边界情况下自动清理启动器的不断重启
变更
避免边界情况下自动清理启动器的不断重启(Amit Khandekar)
此修复避免了自动清理名义上关闭且有一些需要冻结的表,但所有这种表都已被自动清理工作者处理时的问题。
问题修复修复扩展成员对象何时可被删除的检查
变更
修复扩展成员对象何时可被删除的检查(Tom Lane)
扩展升级脚本应当能删除成员对象,但对序列列的序列(可能还有其他情况)这不被允许。
改进确保 ALTER TABLE 重建索引时保留索引表空间分配
变更
确保 ALTER TABLE 重建索引时保留索引表空间分配(Tom Lane、Michael Paquier)
此前,default_tablespace的非默认设置可能导致索引损坏。
改进如果被引用关系有未决的触发器事件,防止删除外键约束
变更
如果被引用关系有未决的触发器事件,防止删除外键约束(Tom Lane)
这避免了 “could not find trigger NNN” 或 “relation NNN has no triggers” 错误。
问题修复修复带 OID 的表通过 ALTER TABLE ... INHERIT 关联到带 OID 的父表时 OID 列的处理
变更
修复带 OID 的表通过 ALTER TABLE ... INHERIT 关联到带 OID 的父表时 OID 列的处理(Amit Langote)
这种情况下 OID 列应当与普通用户列同等对待,但没有,导致之后继承更改中的奇怪行为。
关联记录 (4)
- 相同变化PostgreSQL 9.6.2 · 修复带 OID 的表通过 ALTER TABLE ... INHERIT 关联到带 OID 的父表时 OID 列的处理
- 相同变化PostgreSQL 9.5.6 · 修复带 OID 的表通过 ALTER TABLE ... INHERIT 关联到带 OID 的父表时 OID 列的处理
- 相同变化PostgreSQL 9.4.11 · 修复带 OID 的表通过 ALTER TABLE ... INHERIT 关联到带 OID 的父表时 OID 列的处理
- 相同变化PostgreSQL 9.2.20 · 修复带 OID 的表通过 ALTER TABLE ... INHERIT 关联到带 OID 的父表时 OID 列的处理
问题修复修复 ALTER TEXT SEARCH CONFIGURATION 期间报告正确的对象身份
变更
修复 ALTER TEXT SEARCH CONFIGURATION 期间报告正确的对象身份(Artur Zakirov)
向逻辑解码等扩展报告了错误的目录 OID。
改进在报告约束违反失败之前检查可序列化冲突
变更
在报告约束违反失败之前检查可序列化冲突(Thomas Munro)
使用可序列化事务隔离时,希望任何因并发事务导致的错误都表现为序列化失败,从而提示应用重试可能成功。不幸的是,对并发插入导致的重复键失败这不能可靠发生。此更改确保如果应用在事务中早些时候显式检查过冲突键的存在(且未找到),这种错误将被报告为序列化错误。
改进防止 UPDATE 源表达式中 foo.* 的多列展开
变更
防止 UPDATE 源表达式中 foo.* 的多列展开(Tom Lane)
这导致 “UPDATE target count mismatch --- internal error”。现在该语法被理解为整行变量,与其他上下文中一样。
改进确保多行 VALUES 构造的列 typmod 被准确确定
变更
确保多行 VALUES 构造的列 typmod 被准确确定(Tom Lane)
这修复了列的第一个值有可确定的 typmod(如 varchar 值的长度)但后面的值不共享同一限制时发生的问题。
改进对 Unicode 字符串末尾未完成的 Unicode 代理项对抛出错误
变更
对 Unicode 字符串末尾未完成的 Unicode 代理项对抛出错误(Tom Lane)
通常 Unicode 代理项前导字符后面必须跟 Unicode 代理项后随字符,但当前导字符是 Unicode 字符串字面量(U&'...')或 Unicode 标识符(U&"...")的最后一个字符时漏掉了这一检查。
改进确保纯否定的文本搜索查询(如 !foo)匹配空的 tsvector
变更
确保纯否定的文本搜索查询(如 !foo)匹配空的 tsvector(Tom Dunstan)
GIN 索引搜索能找到这种匹配,但顺序扫描或 GiST 索引搜索不能。
问题修复防止 ts_rewrite() 用空查询替换非顶层子树时崩溃
变更
防止 ts_rewrite() 用空查询替换非顶层子树时崩溃(Artur Zakirov)
问题修复修复 ts_rewrite() 的性能问题
变更
修复 ts_rewrite() 的性能问题(Tom Lane)
问题修复修复 ts_rewrite() 对嵌套 NOT 操作符的处理
变更
修复 ts_rewrite() 对嵌套 NOT 操作符的处理(Tom Lane)
问题修复修复 array_fill() 正确处理空数组
变更
修复 array_fill() 正确处理空数组(Tom Lane)
问题修复修复 quote_literal_cstr() 中的一字节缓冲区越界
变更
修复 quote_literal_cstr() 中的一字节缓冲区越界(Heikki Linnakangas)
只有当输入完全由单引号和/或反斜线组成时才会发生越界。
改进防止 pg_start_backup() 和 pg_stop_backup() 的多次调用并发运行
变更
防止 pg_start_backup() 和 pg_stop_backup() 的多次调用并发运行(Michael Paquier)
这避免了有人试图并行运行这些函数时的断言失败以及可能更糟的事情。
改进避免丢弃并非真正无操作的 interval 到 interval 强制转换
变更
避免丢弃并非真正无操作的 interval 到 interval 强制转换(Tom Lane)
某些情况下,本应导致清零低阶 interval 字段的强制转换被错误地当作无操作而丢弃。例如从 INTERVAL MONTH 转换到 INTERVAL YEAR 未能清除月份字段。
改进确保缓存计划因外部表选项的更改而失效
变更
确保缓存计划因外部表选项的更改而失效(Amit Langote、Etsuro Fujita、Ashutosh Bapat)
问题修复修复 pg_dump 转储使用内建函数的用户定义强制转换和转换
变更
修复 pg_dump 转储使用内建函数的用户定义强制转换和转换(Stephen Frost)
问题修复修复包含 WAL 文件时备库服务器上可能的 pg_basebackup 失败
变更
修复包含 WAL 文件时备库服务器上可能的 pg_basebackup 失败(Amit Kapila、Robert Haas)
改进确保我们为 PL/Python 创建的 Python 异常对象被正确引用计数
变更
确保我们为 PL/Python 创建的 Python 异常对象被正确引用计数(Rafa de la Torre、Tom Lane)
这避免了对象在 Python 垃圾回收周期发生之后被使用时的失败。
问题修复修复 PL/Tcl 支持以 .tupno 为列名的表上的触发器
变更
修复 PL/Tcl 支持以 .tupno 为列名的表上的触发器(Tom Lane)
这与 PL/Tcl 的 spi_exec 和 spi_execp 命令(以前未写入文档)的行为一致,即只在不存在该名字的真实列时才插入幻 .tupno 列。
改进允许 ~/.pgpass 文件中的 DOS 风格行尾,即使在 Unix 上也一样
变更
允许 ~/.pgpass 文件中的 DOS 风格行尾,即使在 Unix 上也一样(Vik Fearing)
这一更改简化了在 Unix 和 Windows 机器之间使用同一密码文件。
问题修复修复 ecpg 被给定以点结尾的文件名时的一字节缓冲区越界
变更
修复 ecpg 被给定以点结尾的文件名时的一字节缓冲区越界(Takayuki Tsunakawa)
问题修复修复 psql 对 ALTER DEFAULT PRIVILEGES 的 Tab 补全
变更
修复 psql 对 ALTER DEFAULT PRIVILEGES 的 Tab 补全(Gilles Darold、Stephen Frost)
改进在 psql 中,把 PAGER 环境变量的空或全空白设置当作“不使用分页器”
变更
在 psql 中,把 PAGER 环境变量的空或全空白设置当作“不使用分页器”(Tom Lane)
此前这种设置导致本应发给分页器的输出完全消失。
改进改进 contrib/dblink 对低层 libpq 错误(如内存不足)的报告
变更
改进 contrib/dblink 对低层 libpq 错误(如内存不足)的报告(Joe Conway)
改进让 contrib/dblink 在使用 contrib/postgres_fdw 外部服务器作为连接选项来源时忽略无关的服务器选项
变更
让 contrib/dblink 在使用 contrib/postgres_fdw 外部服务器作为连接选项来源时忽略无关的服务器选项(Corey Huinker)
此前如果外部服务器对象的选项不是 libpq 连接选项,就会出错。
改进在 Windows 上,确保环境变量更改被传播到以调试选项构建的 DLL
变更
在 Windows 上,确保环境变量更改被传播到以调试选项构建的 DLL(Christian Ullrich)
改进把我们的时区库副本与 IANA tzcode2016j 同步
变更
把我们的时区库副本与 IANA tzcode2016j 同步(Tom Lane)
这修复了若干问题,最显著的是当目标目录不支持硬链接时区数据安装失败。
改进更新时区数据文件到 tzdata 版本 2016j,涉及北塞浦路斯(新增时区 Asia/Famagusta)、俄罗斯(新增时区 Europe/Saratov)、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。
变更
更新时区数据文件到 tzdata 版本 2016j,涉及北塞浦路斯(新增时区 Asia/Famagusta)、俄罗斯(新增时区 Europe/Saratov)、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。
关联记录 (4)
- 相同变化PostgreSQL 9.6.2 · 更新时区数据文件到 tzdata 版本 2016j,涉及北塞浦路斯(新增时区 Asia/Famagusta)、俄罗斯(新增时区 Europe/Saratov)、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。
- 相同变化PostgreSQL 9.5.6 · 更新时区数据文件到 tzdata 版本 2016j,涉及北塞浦路斯(新增时区 Asia/Famagusta)、俄罗斯(新增时区 Europe/Saratov)、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。
- 相同变化PostgreSQL 9.4.11 · 更新时区数据文件到 tzdata 版本 2016j,涉及北塞浦路斯(新增时区 Asia/Famagusta)、俄罗斯(新增时区 Europe/Saratov)、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。
- 相同变化PostgreSQL 9.2.20 · 更新时区数据文件到 tzdata 版本 2016j,涉及北塞浦路斯(新增时区 Asia/Famagusta)、俄罗斯(新增时区 Europe/Saratov)、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。
没有匹配的变化
尝试其他关键词,或 .
如何生成比较结果?
比较依据起始版本之后至目标版本的 PostgreSQL 发布说明。经核实的回补重复项会谨慎合并,保留每条原始说明;相关提交可能涉及独立变化,仍作为不同记录保留。
发布快照: 2026-09-26 · 安全快照: 2026-09-26
内容来自 PostgreSQL 发布说明。交互方式参考 pgversions.com 与 pgversionreport.