pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
文档版本对比
POSTGRESQL · VERSION COMPARE
对比两个 PostgreSQL 大版本或小版本,查看沿途新增的功能、修复的问题与 CVE 安全记录。
从起始版本之后,看到目标版本为止。大版本名称代表该系列首个正式版本。
收录 PostgreSQL 9.0 起的 17 个大版本、352 份发布说明;数据更新于 2026-09-26。
小版本更新
2010-09-20 2015-10-08
9.0.0 历史版本维护截止 2015-10-08
9.0.23 历史版本维护截止 2015-10-08
| CVE / 问题 | 严重程度 | 修复版本 |
|---|---|---|
| CVE-2014-0062 避免在表和索引 DDL 期间进行多次名称查找 目标版本已修复 | 8.8高危 | 9.0.16 |
| CVE-2015-0244 修复出错后前端/后端协议可能失去同步的问题 目标版本已修复 | 8.1高危 | 9.0.19 |
| CVE-2015-3165 避免客户端恰在认证超时到期前断开时可能出现的崩溃 目标版本已修复 | 7.5高危 | 9.0.20 |
| CVE-2014-0061 防止通过手工调用 PL 验证器函数进行权限提升 目标版本已修复 | 7.5高危 | 9.0.16 |
| CVE-2014-0067 锁定 Windows 上回归测试的临时安装 目标版本已修复 | 7.0高危 | 9.0.19 |
| CVE-2015-0243 修复contrib/pgcrypto中的缓冲区越界 目标版本已修复 | 6.5中危 | 9.0.19 |
| CVE-2014-0064 防止大小计算中的整数溢出导致缓冲区越界 目标版本已修复 | 6.5中危 | 9.0.16 |
| CVE-2015-3166 改进对系统调用失败的检测 目标版本已修复 | 5.6中危 | 9.0.20 |
| CVE-2014-0063 防止长日期时间字符串造成缓冲区越界 目标版本已修复 | 4.3中危 | 9.0.16 |
| CVE-2015-0242 修复替换实现的*printf()函数中的缓冲区越界 目标版本已修复 | 4.2中危 | 9.0.19 |
| CVE-2015-0241 修复to_char()中的缓冲区越界 目标版本已修复 | 4.2中危 | 9.0.19 |
| CVE-2015-3167 在contrib/pgcrypto中,统一将解密失败报告为“Wrong key or corrupt data” 目标版本已修复 | 3.7低危 | 9.0.20 |
| CVE-2015-5288 修复contrib/pgcrypto以检测并报告过短的crypt()盐值 目标版本已修复 | 3.1低危 | 9.0.23 |
| CVE-2014-8161 修复通过约束违反错误消息的信息泄露 目标版本已修复 | 3.1低危 | 9.0.19 |
| CVE-2014-0060 加固 GRANT ... WITH ADMIN OPTION 的限制 目标版本已修复 | 3.1低危 | 9.0.16 |
| CVE-2014-0066 避免在 crypt() 返回 NULL 时崩溃 目标版本已修复 | 0.0无 | 9.0.16 |
| CVE-2014-0065 防止固定大小缓冲区越界 目标版本已修复 | 0.0无 | 9.0.16 |
| CVE-2013-1900 在每个 postmaster 子进程中重置 OpenSSL 随机状态 目标版本已修复 | — | 9.0.13 |
| CVE-2013-1899 修复服务器命令行开关解析不安全的问题 目标版本已修复 | — | 9.0.13 |
| CVE-2013-0255 防止从 SQL 执行 enum_recv 目标版本已修复 | — | 9.0.12 |
| CVE-2012-3489 防止通过 XML 实体引用访问外部文件/URL 目标版本已修复 | — | 9.0.9 |
| CVE-2012-3488 防止通过 contrib/xml2 的 xslt_process() 访问外部文件/URL 目标版本已修复 | — | 9.0.9 |
| CVE-2012-2655 忽略过程语言调用处理程序的 SECURITY DEFINER 和 SET 属性 目标版本已修复 | — | 9.0.8 |
| CVE-2012-2143 修复 contrib/pgcrypto 的 DES crypt() 函数中不正确的口令变换 目标版本已修复 | — | 9.0.8 |
| CVE-2012-0868 把 pg_dump 注释中写入的名称里的换行符转换为空格 目标版本已修复 | — | 9.0.7 |
| CVE-2012-0867 移除 SSL 证书中通用名长度的任意限制 目标版本已修复 | — | 9.0.7 |
| CVE-2012-0866 让 CREATE TRIGGER 要求对触发器函数有执行权限 目标版本已修复 | — | 9.0.7 |
| CVE-2010-4015 修复 contrib/intarray 的 query_int 类型输入函数中的缓冲区越界 目标版本已修复 | — | 9.0.3 |
| CVE-2010-3433 在 PL/Perl 和 PL/Tcl 中为每个调用方 SQL 用户 ID 使用单独的解释器 目标版本已修复 | — | 9.0.1 |
| CVE / 问题 | 严重程度 | 修复版本 |
|---|---|---|
| CVE-2026-6637 PostgreSQL refint allows stack buffer overflow and SQL injection | 8.8高危 | 该分支未提供 |
| CVE-2026-6477 PostgreSQL libpq lo_* functions let server superuser overwrite client stack memory | 8.8高危 | 该分支未提供 |
| CVE-2026-6475 PostgreSQL pg_basebackup and pg_rewind can overwrite unrelated files of origin superuser choice | 8.8高危 | 该分支未提供 |
| CVE-2026-6473 PostgreSQL server undersizes allocations, via integer wraparound | 8.8高危 | 该分支未提供 |
| CVE-2026-2006 PostgreSQL missing validation of multibyte character length executes arbitrary code | 8.8高危 | 该分支未提供 |
| CVE-2026-2005 PostgreSQL pgcrypto heap buffer overflow executes arbitrary code | 8.8高危 | 该分支未提供 |
| CVE-2026-2004 PostgreSQL intarray missing validation of type of input to selectivity estimator executes arbitrary code | 8.8高危 | 该分支未提供 |
| CVE-2026-19385 PostgreSQL pg_dump heap buffer overflow executes arbitrary code | 8.8高危 | 该分支未提供 |
| CVE-2026-18408 PostgreSQL psql \unrestrict lets superuser of pg_dump origin server execute arbitrary code in psql client | 8.8高危 | 该分支未提供 |
| CVE-2026-16239 PostgreSQL type confusion in cursor CLOSE + DECLARE executes arbitrary code | 8.8高危 | 该分支未提供 |
| CVE-2026-15742 PostgreSQL fuzzystrmatch writes effectively-arbitrary addresses, via integer wraparound | 8.8高危 | 该分支未提供 |
| CVE-2026-15741 PostgreSQL expression deparse allows SQL injection via EXTRACT argument | 8.8高危 | 该分支未提供 |
| CVE-2026-14680 PostgreSQL type confusion via "internal" arguments | 8.8高危 | 该分支未提供 |
| CVE-2026-14677 PostgreSQL 32-bit pltcl and plperl undersize allocations, via integer wraparound | 8.8高危 | 该分支未提供 |
| CVE-2026-14671 PostgreSQL refint plan cache type confusion executes arbitrary code | 8.8高危 | 该分支未提供 |
| CVE-2026-14670 PostgreSQL plperl tied object heap buffer overflow executes arbitrary code | 8.8高危 | 该分支未提供 |
| CVE-2026-14669 PostgreSQL to_char heap buffer overflow executes arbitrary code | 8.8高危 | 该分支未提供 |
| CVE-2026-14664 PostgreSQL regexp heap buffer overflow executes arbitrary code | 8.8高危 | 该分支未提供 |
| CVE-2026-14662 PostgreSQL tsvector and tsquery undersize allocations, via integer wraparound | 8.8高危 | 该分支未提供 |
| CVE-2025-8714 PostgreSQL pg_dump lets superuser of origin server execute arbitrary code in psql client | 8.8高危 | 该分支未提供 |
| CVE-2024-7348 PostgreSQL relation replacement during pg_dump executes arbitrary SQL | 8.8高危 | 该分支未提供 |
| CVE-2024-10979 PostgreSQL PL/Perl environment variable changes execute arbitrary code | 8.8高危 | 该分支未提供 |
| CVE-2026-14679 PostgreSQL stack buffer overflow in argument match writes 0x0 and 0x1 to server memory | 8.2高危 | 该分支未提供 |
| CVE-2026-6464 PostgreSQL psql COPY FROM STDIN early failure processes data lines as psql commands | 8.1高危 | 该分支未提供 |
| CVE-2026-14668 PostgreSQL ctid type confusion in selectivity estimator discloses derivative of arbitrary read | 8.1高危 | 该分支未提供 |
| CVE-2025-1094 PostgreSQL quoting APIs miss neutralizing quoting syntax in text that fails encoding validation | 8.1高危 | 该分支未提供 |
| CVE-2024-0985 PostgreSQL non-owner REFRESH MATERIALIZED VIEW CONCURRENTLY executes arbitrary SQL | 8.0高危 | 该分支未提供 |
| CVE-2026-6479 PostgreSQL SSL/GSS init causes denial of service, via uncontrolled recursion | 7.5高危 | 该分支未提供 |
| CVE-2026-6471 PostgreSQL logical decoding can dlopen arbitrary file | 7.2高危 | 该分支未提供 |
| CVE-2026-6478 PostgreSQL discloses MD5-hashed passwords via covert timing channel | 6.5中危 | 该分支未提供 |
| CVE-2026-14663 PostgreSQL pgcrypto, for OpenSSL-disabled ciphers, silently encrypts to and decrypts from cleartext | 6.5中危 | 该分支未提供 |
| CVE-2025-4207 PostgreSQL GB18030 encoding validation can read one byte past end of allocation for text that fails validation | 5.9中危 | 该分支未提供 |
| CVE-2025-12818 PostgreSQL libpq undersizes allocations, via integer wraparound | 5.9中危 | 该分支未提供 |
| CVE-2026-6472 PostgreSQL CREATE TYPE does not check multirange schema CREATE privilege | 5.4中危 | 该分支未提供 |
| CVE-2026-6474 PostgreSQL timeofday() can disclose portions of server memory | 4.3中危 | 该分支未提供 |
| CVE-2026-6470 PostgreSQL fails to check type USAGE privilege | 4.3中危 | 该分支未提供 |
| CVE-2026-2003 PostgreSQL oidvector discloses a few bytes of memory | 4.3中危 | 该分支未提供 |
| CVE-2026-18024 PostgreSQL ascii() function reads past end of buffer | 4.3中危 | 该分支未提供 |
| CVE-2026-14678 PostgreSQL pg_trgm picksplit reads past end of buffer | 4.3中危 | 该分支未提供 |
| CVE-2026-14666 PostgreSQL row security caching disregards role modifications | 4.2中危 | 该分支未提供 |
| CVE-2024-10978 PostgreSQL SET ROLE, SET SESSION AUTHORIZATION reset to wrong user ID | 4.2中危 | 该分支未提供 |
| CVE-2024-10976 PostgreSQL row security below e.g. subqueries disregards user ID changes | 4.2中危 | 该分支未提供 |
| CVE-2026-6469 PostgreSQL ALTER TABLE ALTER TYPE resets extended statistics ownership | 3.8低危 | 该分支未提供 |
| CVE-2026-16241 PostgreSQL ECPG integer underflow can crash the client | 3.8低危 | 该分支未提供 |
| CVE-2026-14673 PostgreSQL amcheck does not clear untrusted search path | 3.8低危 | 该分支未提供 |
| CVE-2025-8713 PostgreSQL optimizer statistics can expose sampled data within a view, partition, or child table | 3.1低危 | 该分支未提供 |
| CVE-2025-12817 PostgreSQL CREATE STATISTICS does not check for schema CREATE privilege | 3.1低危 | 该分支未提供 |
| CVE-2024-10977 PostgreSQL libpq retains an error message from man-in-the-middle | 3.1低危 | 该分支未提供 |
对于运行 9.0.X 的用户,不需要进行转储/恢复。
不过,如果你是从早于 9.0.18 的版本升级,请参见第 E.6 节。
变更
修复contrib/pgcrypto以检测并报告过短的crypt()盐值(Josh Kupershmidt)
某些无效的盐值参数会导致服务器崩溃或泄露少量服务器内存字节。我们尚未排除通过安排让泄露字节中出现机密信息实施攻击的可行性,但这种攻击似乎不太可能。(CVE-2015-5288)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复属于外部子事务的门户(游标)失败后的子事务清理问题(Tom Lane、Michael Paquier)
在外部子事务游标中执行的函数可能因引用在内部子事务中创建的关系而导致断言失败或崩溃。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复关系插入关系缓存“init 文件”的问题(Tom Lane)
最近几个小版本中一个补丁的疏忽导致pg_trigger_tgrelid_tgname_index被遗漏在 init 文件之外。后续会话检测到这一点后认定 init 文件已损坏并静默忽略它,导致会话启动时间显著退化。除修复该缺陷外,还加入了一些防护,使未来任何类似错误更明显。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免向 SPI 查询结果插入大量元组时的 O(N^2) 行为(Neil Conway)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
改进存在大量未读通知时LISTEN的启动时间(Matt Newell)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
默认禁用 SSL 重新协商(Michael Paquier、Andres Freund)
虽然使用 SSL 重新协商在理论上是个好主意,但实践中我们看到了太多缺陷,无论是底层 OpenSSL 库中还是我们对它的使用中。重新协商将在 9.5 及更高版本中完全移除。在较旧的分支中,只是把ssl_renegotiation_limit的默认值改为零(禁用)。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
降低*_freeze_max_age参数的最小值(Andres Freund)
这主要是为了使相关行为的测试不那么耗时,但对磁盘空间有限的安装也可能有价值。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
将wal_buffers的最大值限制为 2GB 以避免服务器崩溃(Josh Berkus)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复numeric值相乘时罕见的内部溢出(Dean Rasheed)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
防御涉及记录类型、范围类型、json、jsonb、tsquery、ltxtquery和query_int的难以触发的栈溢出(Noah Misch)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复日期时间输入中DOW和DOY的处理(Greg Stark)
这些记号本不应在日期时间值中使用,但过去它们导致的是难懂的内部错误消息,而不是“无效的输入语法”。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在正则表达式匹配中增加更多查询取消检查(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
为正则表达式、SIMILAR TO和LIKE匹配增加递归深度保护(Tom Lane)
合适的搜索模式加上较低的栈深度限制可能导致栈越界崩溃。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复正则表达式执行中潜在的无限循环(Tom Lane)
一个表面上能匹配零长度字符串、但实际上因反向引用而不匹配的搜索模式可能导致无限循环。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复正则表达式编译中的内存不足失败(Andreas Seltenreich)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复正则表达式执行期间低概率的内存泄漏(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复事务中止期间锁清理中罕见的内存不足失败(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复在使用较小work_mem设置的元组存储时出现“排序期间意外的内存不足情况”错误的问题(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复qsort中极低概率的栈越界(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复在使用较大work_mem设置的哈希连接中出现“无效的内存分配请求大小”失败的问题(Tomas Vondra, Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复若干规划器缺陷(Tom Lane)
这些错误可能导致给出错误结果的错误查询计划、启用断言的构建中的断言失败,或奇怪的规划器错误,例如“could not devise a query plan for the given query”、“could not find pathkey item to sort”、“plan should not reference subplan's variable”或“failed to assign all NestLoopParams to plan nodes”。感谢 Andreas Seltenreich 和 Piotr Stefaniak 通过模糊测试暴露了这些问题。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在所有受支持的分支中使用模糊路径代价平局判定规则(Tom Lane)
此变更旨在避免当候选计划选项的估计代价实际相同时出现平台特定的行为。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 postmaster 关闭期间,确保在移除postmaster.pid文件之前移除各套接字的锁文件并关闭监听套接字(Tom Lane)
这可以避免外部脚本在pg_ctl stop一返回就尝试启动新 postmaster 时出现竞争条件失败。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 postmaster 对崩溃恢复期间启动进程崩溃的处理(Tom Lane)
如果在崩溃恢复周期中,启动进程在尚未恢复数据库一致性时崩溃,我们会尝试启动一个新的启动进程,而这通常只会再次崩溃,导致无限循环。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
当我们尝试向某个自动清理工作进程发送信号而它已经消失时,不再打印WARNING,并降低此类信号的日志详细程度(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
防止服务器时钟被大幅回拨时自动清理启动器睡眠时间过长(Álvaro Herrera)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
确保 GIN 索引待插入列表的清理可被取消请求中断(Jeff Janes)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
允许重用 GIN 索引中的全零页(Heikki Linnakangas)
崩溃之后可能遗留这样的页。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复一个差一错误,该错误会导致 subtrans/multixact 截断中出现本可避免的“表面回卷”警告(Thomas Munro)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复PL/pgSQL错误上下文消息中CONTINUE和MOVE语句类型误报的问题(Pavel Stehule, Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复PL/Tcl中一些未检查malloc()调用失败的位置(Michael Paquier, Álvaro Herrera)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
改进libpq对内存耗尽情况的处理(Michael Paquier, Heikki Linnakangas)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复ecpg中的内存泄漏和缺失的内存不足检查(Michael Paquier)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 psql 中对数字输出的区域感知格式化代码(Tom Lane)
\pset numericlocale on 所调用的格式化代码在一些不常见的情况下会出错,例如带指数但没有小数点的数字。它还可能破坏 money 数据类型已经区域化的输出。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
防止在没有当前连接时psql的\c命令崩溃(Noah Misch)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
确保pg_dump以tar格式输出运行期间创建的临时文件不被全局可读(Michael Paquier)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复pg_dump和pg_upgrade以支持postgres或template1数据库位于非默认表空间的情况(Marti Raudsepp, Bruce Momjian)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 pg_dump 从过于陈旧而没有特定权限类型的服务器转储时对对象权限的处理(Tom Lane)
从 7.3 之前的服务器转储函数或过程语言时,pg_dump 会生成撤销所有者可授予权限、转而把所有权限授予 PUBLIC 的 GRANT/REVOKE 命令。由于涉及的权限只是 USAGE 和 EXECUTE,这不构成安全问题,但这确实是对旧系统行为令人惊讶的表示。已修复为在这些情况下保持默认权限状态不变。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复pg_dump以转储 shell 类型(Tom Lane)
shell 类型(即尚未完全定义的类型)用处不大,但pg_dump仍应转储它们。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 PPC 硬件的自旋锁汇编代码使其与AIX本机汇编器兼容(Tom Lane)
如果gcc被配置为使用本机汇编器(这正变得越来越普遍),则用gcc构建无法工作。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在AIX上,测试-qlonglong编译器选项,而不是直接假定它可以安全使用(Noah Misch)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在AIX上,使用-Wl,-brtllib链接选项以允许符号在运行时解析(Noah Misch)
Perl 5.8.0 及更高版本依赖这一能力。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
由于编译器缺陷,在使用 32 位xlc编译时避免使用内联函数(Noah Misch)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
必要时使用librt提供sched_yield(),某些 Solaris 版本即是如此(Oskari Saarenmaa)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 Windowsinstall.bat脚本以处理包含空格的目标目录名(Heikki Linnakangas)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
使PostgreSQL版本号的数字形式(例如90405)以名为VERSION_NUM的变量方便地提供给扩展 Makefile 使用(Michael Paquier)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
将时区数据文件更新到tzdata发行版 2015g,以反映开曼群岛、斐济、摩尔多瓦、摩洛哥、诺福克岛、朝鲜、土耳其和乌拉圭的夏令时法规变更。为加拿大北落基山地区新增了时区名America/Fort_Nelson。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
对于运行 9.0.X 的用户,不需要进行转储/恢复。
不过,如果你是从早于 9.0.18 的版本升级,请参见第 E.6 节。
变更
修复罕见的未能使关系缓存 init 文件失效的问题(Tom Lane)
在并发活动时序恰好不对的情况下,对系统目录执行VACUUM FULL可能无法更新用于避免新会话缓存加载工作的“init 文件”。这将导致后续会话完全无法访问该目录。这是一个非常古老的缺陷,但它极难触发,直到最近才出现可复现的案例。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免传入会话与CREATE/DROP DATABASE之间的死锁(Tom Lane)
在作为DROP DATABASE命令目标或CREATE DATABASE命令模板的数据库中启动的新会话,可能导致该命令等待五秒后失败,即使新会话本会在此之前退出。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
对于运行 9.0.X 的用户,不需要进行转储/恢复。
不过,如果你是从早于 9.0.18 的版本升级,请参见第 E.6 节。
变更
避免崩溃重启期间对数据目录执行fsync时失败(Abhijit Menon-Sen、Tom Lane)
在前几个小版本中,我们加入了一个补丁,在崩溃后对数据目录中的所有内容执行fsync。遗憾的是,它对任何错误情况的响应都是失败,从而阻止服务器启动,即使问题相当无害。例如,数据目录中一个不可写的文件在某些平台上会阻止重启;但把 SSL 证书文件设为服务器不可写是很常见的做法。我们修改了这一行为:权限失败被完全忽略,其他类型的失败会被记录但不会阻止继续。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
移除configure中对在OpenBSD上链接线程版libpython的禁止性检查(Tom Lane)
这一限制原本要防止的失败在当前的OpenBSD版本上似乎已不再是问题。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
允许 libpq 使用高于 v1 的 TLS 协议版本(Noah Misch)
长期以来,libpq 的代码只允许使用 TLS v1 这一种 SSL 协议。随着较新的 TLS 版本日益普及,现在允许它与服务器协商双方共同支持的最高 TLS 版本。(PostgreSQL 服务器早已支持这种协商,因此服务器端无需更改。)这是对 9.4.0 中已发布变更的回移植。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
对于运行 9.0.X 的用户,不需要进行转储/恢复。
不过,如果你是从早于 9.0.18 的版本升级,请参见第 E.6 节。
变更
避免客户端恰在认证超时到期前断开时可能出现的崩溃(Benkocs Norbert Attila)
如果超时中断在会话关闭序列进行到一半时触发,SSL 相关状态会被释放两次,通常导致崩溃并对其他会话造成服务拒绝。实验表明,未经认证的远程攻击者能够相当稳定地触发此缺陷,因此按安全问题处理。(CVE-2015-3165)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
改进对系统调用失败的检测(Noah Misch)
我们替换实现的snprintf()未检查底层系统库调用报告的错误;可能被遗漏的主要情况是内存耗尽。在最坏情况下,由于我们的代码假定缓冲区已被覆写而实际未覆写,这可能导致信息暴露。此外,还有少数地方对安全相关的其他系统库函数调用未检查失败。
仍有可能某些对*printf()族函数的调用在恰逢内存耗尽错误时存在信息泄露风险。我们判断风险不大,但将继续在此领域进行分析。(CVE-2015-3166)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在contrib/pgcrypto中,统一将解密失败报告为“Wrong key or corrupt data”(Noah Misch)
此前,某些使用错误密钥解密的情况可能报告其他错误消息文本。已经证明,这种错误报告的差异可能帮助攻击者从其他系统恢复密钥。虽然尚不清楚pgcrypto的具体行为是否同样可被利用,但使用统一消息来避免风险似乎更好。(CVE-2015-3167)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 HOT 更新后延迟排他约束检查不正确的问题(Tom Lane)
如果同一事务中稍后对一条可能违反延迟排他约束的新行进行了 HOT 更新(即没有索引列发生变化,且该行可以存回同一表页),那么最终执行检查时将报告排他约束被违反,即使新行最初与之冲突的行已被删除。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
防止反连接(NOT EXISTS 连接)与其他外连接之间的不当重排序(Tom Lane)
已知规划器中的这一疏忽会导致 “could not find RelOptInfo for given relids” 错误,但有时错误的查询计划似乎有可能通过该一致性检查并导致静默错误的查询输出。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复外连接计划节点中子表达式匹配不正确的问题(Tom Lane)
此前,如果文本相同的非严格子表达式在外连接的上、下方都被使用,规划器可能试图重用在连接下方计算的值,但这是不正确的,因为对于未匹配的外部行,执行器会将该值强制置为 NULL。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 GEQO 规划器以应对其连接顺序启发式的失败(Tom Lane)
已知这一疏忽会在涉及 LATERAL 的查询中导致 “failed to join all relations together” 错误,其他情况下也可能发生。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复max_prepared_transactions过小时启动阶段可能出现的死锁(Heikki Linnakangas)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
时间线切换后不再归档无用的预分配 WAL 文件(Heikki Linnakangas)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免 “cannot GetMultiXactIdMembers() during recovery” 错误(Álvaro Herrera)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
崩溃之后递归地对数据目录执行 fsync()(Abhijit Menon-Sen、Robert Haas)
这确保了若随后不久再发生崩溃时数据仍保持一致。(要有问题的话,第二次崩溃必须是系统级崩溃,而不只是数据库崩溃。)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复自动清理启动器在收到 SIGTERM 之后发生错误时可能无法关闭的问题(Álvaro Herrera)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
处理 LockBufferForCleanup() 中的意外信号(Andres Freund)
这一疏忽可能导致有关 “multiple backends attempting to wait for pincount 1” 的虚假错误。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
就用户而言是只读的事务,在提交期间不再等待 WAL 刷写或同步复制(Andres Freund)
此前,由于 HOT 页清理而写入了 WAL 的事务在提交时可能出现延迟,导致不良影响,例如所有同步副本都停机时会话在启动时卡住。还观察到使用同步复制时会话卡在追赶中断处理中;此修复也将解决该问题。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复在临时表上操作哈希索引时崩溃的问题(Heikki Linnakangas)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复哈希索引桶分裂期间(若其他进程正在并发修改该索引)可能失败的问题(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在分析索引表达式期间检查中断(Jeff Janes)
ANALYZE 会多次执行索引表达式;如果此类表达式中存在慢速函数,就希望能在此循环结束之前取消 ANALYZE。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在外部服务器用户映射的对象描述字符串中加入目标服务器的名称(Álvaro Herrera)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
建议在使用 Kerberos/GSSAPI/SSPI 认证时将 include_realm 设置为 1(Stephen Frost)
不这样设置的话,来自不同领域的同名用户无法区分。目前这只是文档变更,但在 PostgreSQL 9.5 中它将成为默认设置。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
移除将 IPv4 pg_hba.conf 条目匹配到 IPv4-in-IPv6 地址的代码(Tom Lane)
这段应急代码于 2003 年添加,起因是当时的某些 Linux 内核会把 IPv4 连接报告为 IPv4-in-IPv6 地址。然而该逻辑在 9.0 中被意外破坏。此后没有任何现场投诉,说明它已不再需要。现在反而有报告称被破坏的代码在某些系统上导致崩溃,因此我们选择直接移除而不是修复它。(如果选择修复,将会使 IPv4 pg_hba.conf 条目的实际含义发生微妙且可能涉及安全性的变化,在次版本中这样做似乎并不妥当。)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 Windows 上关闭服务期间,定期向服务控制管理器发送状态更新,以防止它过早终止服务;并确保pg_ctl会等待关闭完成(Krystian Bigaj)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
降低使用libpq非阻塞模式时网络死锁的风险(Heikki Linnakangas)
在发送大量数据时,定期排空输入缓冲区很重要,以防服务器已发送足够的响应数据导致其在输出上阻塞。(典型场景是服务器在COPY FROM STDIN期间发送一连串 NOTICE 消息。)这在普通阻塞模式下工作正常,但在非阻塞模式下则不然。我们修改了libpq,使其在可能时顺便排空输入,但要完全防御此问题需要应用程序配合:应用程序应同时监视套接字的读就绪和写就绪条件,并确保在读就绪时调用PQconsumeInput()。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复ecpg中的数组处理(Michael Meskes)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复psql以合理处理作为\connect第一个参数的 URI 和 conninfo 串(David Fetter、Andrew Dunstan, Álvaro Herrera)
这一语法已被接受(但未写入文档)很长时间,但此前某些参数可能取自旧连接而非给定字符串,这被认为是不合适的。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
抑制psql在某些平台上关于退出时未能写入~/.psql_history的错误抱怨(Tom Lane)
这一不当行为源自针对非常老(2006 年之前)的libedit版本中一个缺陷的变通方案。我们通过移除该变通方案修复了问题,但这会使仍在使用此类libedit版本的用户出现类似失败。建议:升级该库,或改用libreadline。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复pg_dump判定哪些转换是不应转储的系统提供转换的规则(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复对仅由VALUES(...)构成但带有列别名的视图的转储(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在pg_upgrade中,强制新集簇使用时间线 1(Bruce Momjian)
此变更可防止因错误抱怨缺少 WAL 历史文件而导致的升级失败。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在pg_upgrade中,继续之前先检查是否存在不当不可连接的数据库(Bruce Momjian)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在pg_upgrade中,在生成的delete_old_cluster脚本中对目录路径正确加引号(Bruce Momjian)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在pg_upgrade中正确保留数据库级冻结信息(Bruce Momjian)
这一疏忽可能导致postgres和template1数据库中的表出现缺少 clog 文件的错误。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 Windows 上以受限权限运行pg_upgrade和pg_resetxlog,使它们在由管理员运行时不会失败(Muhammad Asif Naeem)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复contrib/intarray中缓慢的排序算法(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 Sparc V8 机器上的编译失败(Rob Rowan)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
将时区数据文件更新到tzdata发行版 2015d,以反映埃及、蒙古和巴勒斯坦的夏令时法规变更,以及加拿大和智利的历史变更。同时采用 America/Adak 时区修订后的时区缩写(HST/HDT 而非 HAST/HADT)。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
对于运行 9.0.X 的用户,不需要进行转储/恢复。
不过,如果你是从早于 9.0.18 的版本升级,请参见第 E.6 节。
变更
修复to_char()中的缓冲区越界(Bruce Momjian)
当to_char()处理要求数字位数很多的数字格式模板时,PostgreSQL会读取越过缓冲区末尾。当处理恶意构造的时间戳格式模板时,PostgreSQL会写入越过缓冲区末尾。两种情况都可能导致服务器崩溃。我们尚未排除导致权限提升攻击的可能性,尽管这种攻击似乎不太可能。(CVE-2015-0241)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复替换实现的*printf()函数中的缓冲区越界(Tom Lane)
PostgreSQL包含printf及相关函数的替换实现。当代码格式化浮点数(转换说明符e、E、f、F、g或G)且请求的精度超过约 500 时,会发生栈缓冲区越界。这会导致服务器崩溃,我们尚未排除导致权限提升攻击的可能性。数据库用户可以通过to_char()SQL 函数触发这种缓冲区越界。虽然这是唯一受影响的核心PostgreSQL功能,但使用 printf 族函数的扩展模块也可能存在风险。
此问题主要影响 Windows 上的PostgreSQL。PostgreSQL在系统实现足够完善时会使用系统实现,而其他现代平台上正是如此。(CVE-2015-0242)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复contrib/pgcrypto中的缓冲区越界(Marko Tiikkaja、Noah Misch)
pgcrypto模块中内存大小跟踪的错误导致了栈缓冲区越界和对未初始化内存内容的不当依赖。缓冲区越界情况可能导致服务器崩溃,我们尚未排除导致权限提升攻击的可能性。(CVE-2015-0243)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复出错后前端/后端协议可能失去同步的问题(Heikki Linnakangas)
如果服务器在从客户端读取协议消息中途发生任何错误,它可能失去同步,错误地把消息数据的一部分解释为新的协议消息。能够在命令参数中提交恶意构造二进制数据的攻击者可能借此注入自己的 SQL 命令。语句超时和查询取消是触发此场景最可能的错误来源。尤其容易受影响的是既使用超时又将任意用户构造数据作为二进制查询参数提交的应用程序。禁用语句超时会降低但不能消除被利用的风险。感谢 Emil Lenngren 报告此问题。(CVE-2015-0244)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复通过约束违反错误消息的信息泄露(Stephen Frost)
某些服务器错误消息会显示违反约束(如唯一约束)的列的值。如果用户对该表的所有列没有SELECT权限,这可能意味着暴露用户不应看到的值。我们调整了代码,使值仅在来自 SQL 命令本身或用户可以查询到时才显示。(CVE-2014-8161)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
锁定 Windows 上回归测试的临时安装(Noah Misch)
使用 SSPI 认证,只允许启动测试套件的操作系统用户连接。这在 Windows 上关闭了此前已在其他平台上关闭的同一漏洞,即其他用户可能连接到测试 postmaster。(CVE-2014-0067)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免在使用 ALTER DATABASE SET TABLESPACE 把数据库移到新表空间、随后不久又移回原表空间时可能出现的数据损坏(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免当事务内的 ANALYZE 被回滚时损坏表(Andres Freund、Tom Lane、Michael Paquier)
如果失败的事务此前删除了表上的最后一个索引、规则或触发器,该表会处于损坏状态:相关的 pg_class 标志本应设置却未被设置。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 EvalPlanQual 处理中使用已释放内存的问题(Tom Lane)
在READ COMMITTED模式下,锁定或更新最近更新过的行的查询可能因此缺陷崩溃。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复在子表上使用部分索引时 SELECT FOR UPDATE 的规划问题(Kyotaro Horiguchi)
在 READ COMMITTED 模式下,SELECT FOR UPDATE 在重新检查最近更新的行以确认它是否仍满足查询的 WHERE 条件时,还必须重新检查部分索引的 WHERE 条件。如果索引属于继承子表,就会遗漏这一要求,因此有可能错误地返回已不再满足查询条件的行。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 SELECT FOR UPDATE 在极端情况下可能把同一行返回两次、并且可能漏掉其他行的 corner case(Tom Lane)
在 READ COMMITTED 模式下,扫描继承树的 SELECT FOR UPDATE 可能错误地返回来自前一个子表的行,而不是本应从后一个子表返回的行。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
拒绝 FOREIGN KEY 声明的被引用列列表中出现重复的列名(David Rowley)
这一限制符合 SQL 标准。此前我们并未显式拒绝这种情况,但之后代码会以看起来很怪异的错误失败。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 numeric 值求大整数次幂时的缺陷(Tom Lane)
之前的代码可能得到错误答案,或者在意识到结果必然溢出之前消耗过多的时间和内存。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 numeric_recv() 中,按照值的 dscale 字段截去会被隐藏的小数位(Tom Lane)
numeric 值的显示标度(dscale)绝不应小于非零小数位的位数;但显然至少存在一个有缺陷的客户端应用,它发送的二进制 numeric 值违反了这一点。这会导致奇怪的行为,因为多余的数字位虽然不会被打印出来,却会被算术运算考虑在内。风险最小的修复方法似乎是在接收时把这类“隐藏的”数字位截去,使值确实与它打印出来的一致。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
拒绝超出范围的数字时区规范(Tom Lane)
超过 +/- 168 小时(一周)的简单数字时区规范此前会被接受,但随后可能在某些操作中导致空指针解引用崩溃。如此大的 UTC 偏移没有实际使用场景,因此予以拒绝。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 tsquery @> tsquery 操作符中的缺陷(Heikki Linnakangas)
两个不同的词如果 CRC 相同,就会被认为匹配。此外,如果第二个操作数的词条比第一个多,就会被假定不包含于第一个;这是错误的,因为它可能包含重复词条。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
增强 ispell 词典对有问题的词缀文件的防御(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
允许词典(thesaurus)包含超过 64K 个短语(David Boutin)
之前的代码在词典过大时会崩溃,因此这被视为一个可回移植的缺陷修复,而不是新特性。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复xpath()中的命名空间处理(Ali Akbar)
此前,如果命名空间声明附在输入xml值的祖先元素上而非被返回的特定元素上,xpath()调用产生的xml值就不会包含命名空间声明。我们将祖先声明传播下来,使结果在孤立考虑时也是正确的。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复嵌套 append 关系(例如 UNION ALL 子查询中的继承表)的规划器问题(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
当 GiST 索引元组放不进一个页面时干净地报错,而不是陷入无限递归(Andrew Gierth)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
把设有逐表 cost_limit 和/或 cost_delay 设置的表排除在自动清理的全局代价平衡规则之外(Álvaro Herrera)
先前的行为实质上忽略了这些逐表设置,这并非本意。现在,拥有这类设置的表将按照这些设置进行清理,独立于其他自动清理工作进程的状况。这可能导致比以前更重的总 I/O 负载,因此应当重新审视这类设置是否合理。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免在自动清理名义上被关闭时仍然进行全面的自动清理(Tom Lane)
即使自动清理名义上被关闭,我们仍会启动自动清理工作进程,去清理有 XID 回卷风险的表。然而,这样的工作进程随后会继续清理目标数据库中所有满足常规自动清理阈值的表。这往好里说是相当出乎意料,往坏里说会延误对回卷威胁的响应。现已修复:如果自动清理被关闭,工作进程只执行防回卷清理,不做任何其他工作。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复热备查询与重放整页镜像之间的竞态条件(Heikki Linnakangas)
这一失误可能导致热备中正在执行的查询出现瞬时错误。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复若干恢复逻辑不当忽略 COMMIT/ABORT PREPARED WAL 记录的情况(Heikki Linnakangas)
最值得注意的疏漏是 recovery_min_apply_delay 未能延迟一次两阶段提交的应用。
变更
避免为时间线历史文件创建不必要的 .ready 标记文件(Fujii Masao)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复当使用空的预备语句且 log_statement 设置为 mod 或 ddl 时可能出现的空指针解引用(Fujii Masao)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
将 “pgstat wait timeout” 警告消息改为 LOG 级别,并重新措辞使其更易理解(Tom Lane)
这条消息最初被认为基本属于不可能发生的情况,但它在我们较慢的 buildfarm 成员上出现得足够频繁,成了干扰。现已将其降为 LOG 级别,并在措辞上多下了一点功夫:现在它的内容为 “using stale statistics instead of current ones because stats collector is not responding”。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 SPARC 自旋锁实现,确保当 CPU 以非 TSO 一致性模式运行时(如某些非 Solaris 内核所做的那样)其正确性(Andres Freund)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
警告 OS X 的 setlocale() 在 postmaster 内启动多余线程的情况(Noah Misch)
变更
修复 PQconnectdbParams() 中重复 dbname 参数的处理(Alex Shulgin)
如果第一个 dbname 出现处包含要展开的连接串或 URI,就会出现意外行为。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
确保 libpq 在遇到意外的套接字 EOF 时报告合适的错误消息(Marko Tiikkaja、Tom Lane)
取决于内核行为,当服务器意外关闭套接字时,libpq 可能返回空的错误字符串而不是有用的信息。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 PQreset() 期间清除任何旧的错误消息(Heikki Linnakangas)
如果反复调用 PQreset() 而连接始终无法重建,失败连接尝试的错误消息会在 PGconn 的错误字符串中不断累积。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
正确处理 libpq 解析连接选项期间的内存不足情况(Alex Shulgin、Heikki Linnakangas)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 ecpg 版 ParseDateTime() 中的数组越界(Michael Paquier)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 initdb 中,当指定的密码文件为空时给出更清晰的错误消息(Mats Erik Andersson)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 psql 的 \s 命令,使其与 libedit 良好配合,并新增分页器支持(Stepan Rutz、Tom Lane)
使用 libedit 而非 readline 时,\s 会以一种相当难读的编码格式打印命令历史,而且在较新的 libedit 版本上可能完全失败。现已改为由我们自己打印历史而不是让库来做。一个令人愉快的副作用是,在合适的时候会使用分页器。
此补丁还修复了一个在使用 libedit 保存命令历史时换行编码不一致的缺陷。旧版 psql 写出的多行历史条目在此补丁后可以干净地读取,但反过来未必可行,具体取决于所涉及的 libedit 版本。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
改进 psql 特殊变量解析的一致性(Tom Lane)
允许 ECHO_HIDDEN 和 ON_ERROR_ROLLBACK 使用 on 和 off 的变体拼写(如 1/0)。对 COMP_KEYWORD_CASE、ECHO、ECHO_HIDDEN、HISTCONTROL、ON_ERROR_ROLLBACK 和 VERBOSITY 的无法识别的值发出警告。对所有这些变量的所有值进行不区分大小写的识别;此前大小写敏感与不敏感的行为混杂在一起。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 psql 扩展模式显示在使用 border = 3 且 linestyle = ascii 或 unicode 时的一致性问题(Stephen Frost)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复并行恢复纯模式转储时可能出现的死锁(Robert Haas、Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 pg_dump --binary-upgrade 在零列组合类型上的核心转储(Rushabh Lathia)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 contrib/pageinspect 的 get_raw_page() 中的块号检查(Tom Lane)
错误的检查逻辑可能阻止访问非主关系分支中的某些页面。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 contrib/pgcrypto 的 pgp_sym_decrypt(),使其在消息长度比 2 的幂小 6 时不再失败(Marko Tiikkaja)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
安全地处理 contrib/tablefunc 的 connectby() 中的意外查询结果,尤其是 NULL(Michael Paquier)
此前 connectby() 遇到 NULL 键值时会崩溃。现在它会打印该行但不再进一步递归。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免 contrib/xml2 的 xslt_process() 中可能出现的崩溃(Mark Simonetti)
libxslt 似乎对资源释放顺序存在未记载的依赖;重新排列我们的调用以避免崩溃。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
大量清理 Coverity 静态代码分析器的警告(Andres Freund、Tatsuo Ishii、Marko Kreen、Tom Lane、Michael Paquier)
这些变更大多只是表面性的,但在某些情况下修复了极端情况的缺陷,例如内存不足失败后崩溃而不是正确报告错误。据信它们都不构成安全问题。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在构建期间检测不兼容的 OpenLDAP 版本(Noah Misch)
对于 2.4.24 到 2.4.31(含)之间的 OpenLDAP 版本,PostgreSQL 后端进程可能在退出时崩溃。现在会根据编译时的 OpenLDAP 版本号在 configure 期间发出警告,并在 contrib/dblink 回归测试中测试该崩溃场景。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在非 MSVC 的 Windows 构建中,确保安装的 libpq.dll 带有执行权限(Noah Misch)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
使 pg_regress 成功退出时删除其创建的任何临时安装(Tom Lane)
这使 make check-world 期间的磁盘空间用量大幅减少,因为该序列会创建大量临时安装。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
支持随时间改变 UTC 偏移的时区缩写(Tom Lane)
此前,PostgreSQL 假定时区缩写(如 EST)关联的 UTC 偏移在任何特定区域设置的用法中永不改变。然而这一假设在现实世界中并不成立,因此引入了让区域缩写表示有时会变化的 UTC 偏移的能力。更新了时区缩写定义文件,在自 1970 年以来缩写的 UTC 偏移发生过变化的时区区域设置中使用此功能(依据 IANA 时区数据库)。在此类时区中,PostgreSQL 现在会根据给定日期为缩写关联正确的 UTC 偏移。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
更新时区缩写列表(Tom Lane)
把 CST(中国标准时间)加入列表。移除 ADT 作为“阿拉伯夏令时”的引用——这个缩写自 2007 年起已不再使用;因此,声称它与“大西洋夏令时”冲突似乎没有特别的帮助。修正 CKT(库克群岛)、FJT 和 FJST(斐济)完全错误的 GMT 偏移;此前我们甚至把它们放到了日期变更线的错误一侧。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
把时区数据文件更新为 tzdata 版本 2015a。
IANA 时区数据库为所有澳大利亚时区采用了 A/xSTA 形式的缩写,以反映他们认为的当地当前多数用法。这些名称与其他地方的用法不冲突(唯一例外是表示 Acre 夏令时的 ACST,该用法自 1994 年起已废弃)。因此,我们把这些名称采纳进“默认”时区缩写集。“澳大利亚”缩写集现在只包含 CST、EAST、EST、SAST、SAT 和 WST,这些被认为主要是历史用法。注意,在“默认”缩写集中,SAST 也已改为南非标准时间。xDT
此外,新增时区缩写 SRET(Asia/Srednekolymsk)和 XJT(Asia/Urumqi),并对西萨摩亚使用 WSST/WSDT。同时,智利、墨西哥、特克斯和凯科斯群岛(America/Grand_Turk)以及斐济的夏令时法规有变更。还为巴布亚新几内亚部分地区新增了时区 Pacific/Bougainville。另外还有大量针对历史(1970 年以前)时区数据的修正。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
对于运行 9.0.X 的用户,不需要进行转储/恢复。
不过,本版本纠正了某些 GiST 索引的索引损坏问题。请参见下面第一条变更日志,以确认你的安装是否受影响以及应采取的步骤。
不过,如果你是从早于 9.0.15 的版本升级,请参见第 E.9 节。
变更
正确初始化 contrib/btree_gist 在 bit 列上索引的填充字节(Heikki Linnakangas)
这一错误可能导致本应比较相等的值不被视为相等,从而产生错误的查询结果。在 bit 或 bit varying 列上建有 GiST 索引的用户,在安装此更新后应对这些索引执行 REINDEX。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在删除 GIN 列表页时防止残缺页(torn page)(Heikki Linnakangas)
此修复可防止在页面更新写入磁盘期间发生系统崩溃时可能出现的索引损坏。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在从 WAL 重放更新时不清除 GiST 索引页的右链接(Heikki Linnakangas)
这一错误可能导致热备中执行的 GiST 索引扫描出现瞬时错误的结果。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复嵌套调用 ReceiveSharedInvalidMessages 期间缓存失效可能不正确的问题(Andres Freund)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
当子查询的目标列表中存在集合返回函数时,不再假定其输出是唯一的(David Rowley)
这一疏忽可能导致诸如 WHERE x IN (SELECT y, generate_series(1,10) FROM t GROUP BY y) 之类的构造被错误优化。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复未能对结构化类型的组合元素中的字段执行解 TOAST 的错误(Tom Lane)
这纠正了 TOAST 指针可能未经解引用就被复制到其他表的情况。如果原始数据随后被删除,当这个已悬空的指针被使用时,会导致诸如 “missing chunk number 0 for toast value ...” 之类的错误。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复对 Append 计划节点输出的整行引用导致 “record type has not been registered” 失败的问题(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复在回卷游标时调用用户定义函数可能崩溃的问题(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复为 FROM 中的函数求值参数时查询级内存泄漏的问题(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复正则表达式处理中的会话级内存泄漏(Tom Lane、Arthur O'Dwyer、Greg Stark)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 hungarian.stop 中的数据编码错误(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复对在当前事务中插入、随后被一个现已回滚的子事务删除的行的活跃性检查(Andres Freund)
如果同一事务中稍后执行了 CREATE INDEX 或 CLUSTER,这可能导致问题(至少是虚假警告,最坏是无限循环)。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 PREPARE TRANSACTION 期间清除 pg_stat_activity.xact_start(Andres Freund)
在 PREPARE 之后,发起会话已不在事务中,因此不应继续显示事务开始时间。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 REASSIGN OWNED 对文本搜索对象失败的问题(Álvaro Herrera)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 postmaster 启动期间阻塞信号(Tom Lane)
这确保了 postmaster 在例如启动过程中收到 SIGINT 时能够正确清理自身。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
保护 make check 期间启动的临时 postmaster 的 Unix 域套接字(Noah Misch)
正如我们此前在 CVE-2014-0067 中指出的,任何能够访问套接字文件的本地用户都可以以服务器的引导超级用户身份连接,进而以运行测试的操作系统用户身份执行任意代码。此变更通过把服务器的套接字放到 /tmp 下一个临时的、模式为 0700 的子目录中来防御这一风险。但在不支持 Unix 套接字的平台(尤其是 Windows)上风险仍然存在,因为那时临时 postmaster 必须接受本地 TCP 连接。
此变更的一个有用副作用是简化了覆盖 DEFAULT_PGSOCKET_DIR 的构建中的 make check 测试。常用的非默认值(如 /var/run/postgresql)往往不允许构建用户写入,此前需要一些变通办法,现在不再需要了。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复表空间创建 WAL 重放在 Windows 上无法工作的问题(MauMau)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 Windows 上套接字创建失败的检测(Bruce Momjian)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 Windows 上,允许新会话从配置文件获取 PGC_BACKEND 参数(例如log_connections)的值(Amit Kapila)
此前,如果启动后在文件中更改了这类参数,更改不会生效。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 Windows 上正确地为可执行文件路径名加引号(Nikhil Deshpande)
如果安装路径同时包含空格和 @ 符号,这一疏忽可能导致 initdb 和 pg_upgrade 在 Windows 上失败。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 OS X 上 libpython 的链接(Tom Lane)
我们先前使用的方法在 Xcode 5.0 及之后版本提供的 Python 库上可能失败。
变更
当服务器持续以快于客户端吸收速度的速率发送数据时,避免 libpq 中的缓冲区膨胀(Shin-ichi Morita、Tom Lane)
libpq 可能被迫不断增大其输入缓冲区,直到内存耗尽(这会被误导性地报告为 “lost synchronization with server”)。在正常情况下,数据持续以快于 recv() 循环吸收速度的速率传输是相当牵强的,但在客户端因调度器约束被人为减速时曾观察到这种情况。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
确保 libpq 中的 LDAP 查找尝试按预期超时(Laurenz Albe)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 ecpg 在 char * 数组作为返回多行的 FETCH 语句目标时的行为,以及其他一些数组处理修复(Ashutosh Bapat)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 pg_restore 对旧式大对象注释的处理(Tom Lane)
如果归档文件由 9.0 之前版本的 pg_dump 生成且包含较多大对象注释,直接恢复到数据库通常会失败。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 contrib/pgcrypto 函数中,确保返回前清除栈变量中的敏感信息(Marko Kreen)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 contrib/uuid-ossp 中,跨调用缓存 OSSP UUID 库的状态(Tom Lane)
这提高了 UUID 生成的效率,并在有 /dev/urandom 的平台上减少了从中抽取的熵量。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
把时区数据文件更新为 tzdata 版本 2014e for DST law changes in Crimea, Egypt, and Morocco。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
对于运行 9.0.X 的用户,不需要进行转储/恢复。
不过,如果你是从早于 9.0.15 的版本升级,请参见第 E.9 节。
变更
无条件恢复 GIN 元页以避免残缺页风险(Heikki Linnakangas)
虽然这一疏忽理论上可能导致索引损坏,但实际上不太可能造成任何问题,因为 GIN 元页的活动部分小于标准的 512 字节磁盘扇区。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免在接收 NOTIFY 消息期间检查事务提交状态时的竞态条件(Marko Tiikkaja)
这防止了这样一种场景:足够快的客户端可能在通知者所做的数据库更新对接收者可见之前就响应通知。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
允许正则表达式操作符被查询取消请求提前终止(Tom Lane)
这防止了病态正则表达式长时间不可中断地锁死服务器进程的场景。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
移除试图允许 OVERLAPS 接受单元素行参数的错误代码(Joshua Yanovski)
这段代码从未正确工作过,而且该情况既未被 SQL 标准规定也未被记录,因此移除它似乎比修复它更好。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免在反解析规则或视图时获取超出 AccessShareLock 的锁(Dean Rasheed)
这一疏忽导致 pg_dump 对规则中作为 INSERT/UPDATE/DELETE 命令目标的表意外获取了 RowExclusiveLock 锁。虽然通常无害,但它可能干扰试图在这些表上获取例如 ShareLock 的并发事务。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
改进规划期间索引端点探测的性能(Tom Lane)
此变更修复了当索引末尾存在大量尚未提交的行时的显著性能问题,这对于基于顺序赋值(如时间戳或序列生成的标识符)的索引是常见情况。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复崩溃后是否可以立即允许热备连接的测试(Heikki Linnakangas)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在报告非 ERROR 消息期间防止中断(Tom Lane)
这可以防止因递归进入 syslog() 而导致的罕见服务器进程冻结,或许还能防止其他相关问题。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
防止在较新的 Windows 版本上间歇性出现 “could not reserve shared memory region” 失败(MauMau)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
把时区数据文件更新为 tzdata 版本 2014a for DST law changes in Fiji and Turkey, plus historical changes in Israel and Ukraine。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
对于运行 9.0.X 的用户,不需要进行转储/恢复。
不过,如果你是从早于 9.0.15 的版本升级,请参见第 E.9 节。
变更
加固 GRANT ... WITH ADMIN OPTION 的限制(Noah Misch)
不带 ADMIN OPTION 授予角色本应阻止被授予者向该角色添加或移除成员,但这一限制很容易通过先执行 SET ROLE 绕过。其安全影响主要在于角色成员可以撤销其他人的访问权限,这违背了授权者的意愿。未经批准添加角色成员的影响相对较小,因为不配合的角色成员本来就可以通过创建视图或 SECURITY DEFINER 函数把自己的大部分权限提供给他人。(CVE-2014-0060)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
防止通过手工调用 PL 验证器函数进行权限提升(Andres Freund)
PL 验证器函数的主要角色是在 CREATE FUNCTION 期间被隐式调用,但它们也是普通 SQL 函数,用户可以显式调用。对实际以其他语言编写的函数调用验证器此前未被检查,可能被用于权限提升。修复方法是在每个验证器函数中加入对权限检查函数的调用。非核心过程语言如果自带验证器函数,也需要做同样的修改。(CVE-2014-0061)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免在表和索引 DDL 期间进行多次名称查找(Robert Haas、Andres Freund)
如果由于并发活动导致名称查找得出不同结论,我们可能会对不同的表执行 DDL 的不同部分。至少在 CREATE INDEX 的情况下,这可被用来让权限检查针对与索引创建不同的表执行,从而造成权限提升攻击。(CVE-2014-0062)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
防止长日期时间字符串造成缓冲区越界(Noah Misch)
MAXDATELEN 常量对于 interval 类型可能的最长值来说太小,导致 interval_out() 中可能出现缓冲区越界。虽然日期时间输入函数在避免缓冲区越界方面更谨慎,但该限制仍短到导致它们拒绝某些有效输入,例如包含很长时区名的输入。ecpg 库存在这些漏洞以及它自身的一些漏洞。(CVE-2014-0063)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
防止大小计算中的整数溢出导致缓冲区越界(Noah Misch、Heikki Linnakangas)
若干函数(大多是类型输入函数)在计算分配大小时未检查溢出。如果发生溢出,就会分配过小的缓冲区并被写越界。(CVE-2014-0064)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
防止固定大小缓冲区越界(Peter Eisentraut、Jozef Mlich)
使用 strlcpy() 及相关函数,以明确保证固定大小缓冲区不会被越界写入。与前面几项不同,这些情况是否真的构成现实问题尚不清楚,因为在大多数情况下,输入字符串的大小似乎已有先前约束。尽管如此,消除所有此类 Coverity 警告似乎是明智的。(CVE-2014-0065)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免在 crypt() 返回 NULL 时崩溃(Honza Horak、Bruce Momjian)
crypt() 可能返回 NULL 的场景相对较少,但如果发生,contrib/chkpass 就会崩溃。一个可能出问题的实际情况是 libc 被配置为拒绝执行未获批准的哈希算法(例如 “FIPS 模式”)。(CVE-2014-0066)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在回归测试说明中记录 make check 的风险(Noah Misch、Tom Lane)
由于 make check 启动的临时服务器使用 “trust” 认证,同一台机器上的其他用户可以以数据库超级用户身份连接它,进而可能利用启动测试的操作系统用户的权限。未来版本可能会在测试流程中加入防止此风险的变更,但需要先进行一些公开讨论。因此目前只是警告:当同一台机器上存在不受信任的用户时,不要使用 make check。(CVE-2014-0067)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复当关系的某些段不是完整大小时 WAL 记录可能被错误重放的问题(Greg Stark、Tom Lane)
WAL 更新可能被应用到错误的页面,甚至可能偏后很多页。除了损坏数据外,已观察到这一错误导致备库相比主库显著“膨胀”,因为更新被应用到了远超文件末尾应在位置的地方。这种失败模式在崩溃恢复期间似乎不构成重大风险,只在初始同步从快速变化的主库基础备份创建的备库时出现。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复判断恢复何时达到一致性的缺陷(Tomonari Katsumata、Heikki Linnakangas)
某些情况下,WAL 重放会错误地在重放开始时就断定数据库已一致,从而可能在数据库真正一致之前允许热备查询。也可能出现其他症状,例如 “PANIC: WAL contains references to invalid pages”。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复在热备模式下重放 VACUUM 操作时对 btree 索引页的不当锁定(Andres Freund、Heikki Linnakangas、Tom Lane)
这一错误可能导致 “PANIC: WAL contains references to invalid pages” 失败。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
确保对 GIN 索引非叶页面的插入在合适时写入整页 WAL 记录(Heikki Linnakangas)
先前的代码在系统崩溃期间发生部分页写入时存在索引损坏风险。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复服务器进程退出期间的竞态条件(Robert Haas)
确保信号处理程序不会在进程的 MyProc 指针不再有效后尝试使用它。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复错误报告逻辑中对 errno 的不安全引用(Christian Kruse)
这通常会导致奇怪的行为,例如 HINT 字段缺失或不恰当。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复服务器启动期间过早使用 ereport() 可能导致的崩溃(Tom Lane)
我们在实际中见到的主要情况是:如果服务器在一个它没有读取权限的目录中被启动,就会崩溃。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 OpenSSL 套接字写函数中正确清除重试标志(Alexander Kukushkin)
这一遗漏可能导致 SSL 加密连接意外断开后服务器锁死。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复对包含转义的 Unicode 标识符(U&"..." 语法)的长度检查(Tom Lane)
如果标识符的转义形式过长,就会为这类标识符打印虚假的截断警告,但标识符在反转义之后实际上并不需要截断。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
允许作为类型名的关键字用于角色列表(Stephen Frost)
先前的补丁允许这类关键字在角色标识符等位置不加引号使用;但漏掉了允许角色标识符列表的情况,例如 DROP ROLE。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复嵌套子选择(例如 WHERE (... x IN (SELECT ...) ...) IN (SELECT ...))因无效计划而可能崩溃的问题(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
确保即使表列中的所有值都“过宽”,ANALYZE 也会为该列创建统计信息(Tom Lane)
ANALYZE 有意在直方图和最常用值计算中省略非常宽的值,但在所有采样条目都过宽的情况下没有做出合理的处理。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 ALTER TABLE ... SET TABLESPACE 中,允许不经权限检查就使用数据库的默认表空间(Stephen Frost)
CREATE TABLE 一直允许这种用法,但 ALTER TABLE 没有照做。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复当 CASE 的某些分支返回集合而另一些不返回时的 “cannot accept a set” 错误(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 pgstat 函数中对全零客户端地址的检查(Kevin Grittner)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复文本搜索解析器可能错误分类多字节字符的问题(Tom Lane)
在 C 区域设置下使用多字节编码时,非 ASCII 字符可能被错误分类。在 Cygwin 上,非 C 区域设置也可能失败。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 plainto_tsquery() 中可能的不当行为(Heikki Linnakangas)
在复制重叠内存区域时使用 memmove() 而不是 memcpy()。尚无实际造成问题的现场报告,但这无疑是有风险的。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在区域检查方面接受 SHIFT_JIS 作为编码名(Tatsuo Ishii)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 PQhost() 在 Windows 上的不当行为(Fujii Masao)
如果未指定主机,它应返回 localhost。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
改进 libpq 和 psql 对 COPY TO STDOUT/FROM STDIN 期间失败的错误处理(Tom Lane)
这尤其修复了 9.2 及更高版本中,如果服务器连接在 COPY FROM STDIN 期间丢失可能发生的无限循环。该场景的变体在旧版本或其他客户端应用中也可能出现。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 ecpg 中未对齐的描述符(MauMau)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 ecpg 中正确处理连接参数中缺少主机名的情况(Michael Meskes)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 contrib/dblink 连接启动中的性能退化(Joe Conway)
在客户端和服务器编码一致时避免一次不必要的往返。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 contrib/isn 中 ISMN 值校验位计算错误的问题(Fabien Coelho)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
确保仅安装客户端代码的流程按文档说明工作(Peter Eisentraut)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 Mingw 和 Cygwin 构建中,把 libpq DLL 安装到 bin 目录(Andrew Dunstan)
这与 MSVC 构建长期以来的做法一致。它应该能解决 psql 等程序因找不到 DLL 而无法启动的问题。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 Cygwin 构建中避免使用已弃用的 dllwrap 工具(Marco Atzeri)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
不再生成纯文本的 HISTORY 和 src/test/regress/README 文件(Tom Lane)
这些文本文件与主文档的 HTML 和 PDF 格式重复。维护它们的麻烦远远超过纯文本格式可能的读者。发行版压缩包仍会包含这些名字的文件,但它们只是提示读者查阅主文档的存根。纯文本 INSTALL 文件仍将维护,因为它可以说还有使用场景。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
把时区数据文件更新为 tzdata 版本 2013i(约旦的夏令时法规变更以及古巴的历史变更)。
此外,时区 Asia/Riyadh87、Asia/Riyadh88 和 Asia/Riyadh89 已被移除,因为 IANA 不再维护它们,而且它们从未代表过实际的民用计时实践。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
对于运行 9.0.X 的用户,不需要进行转储/恢复。
不过,本版本纠正了若干潜在的数据损坏问题。请参见下面前三条变更日志,以确认你的安装是否受影响以及可以采取什么措施。
不过,如果你是从早于 9.0.13 的版本升级,请参见第 E.11 节。
变更
修复 VACUUM 判断是否可以更新 relfrozenxid 的测试(Andres Freund)
某些情况下,VACUUM(手工或自动)可能错误地推进表的 relfrozenxid 值,使元组逃过冻结,导致这些行在经过 2^31 个事务后变得不可见。由于需要多次错误推进才会发生实际丢失,数据丢失的概率相当低,但并非为零。从 9.0.4、8.4.8 或更早版本升级的用户不受影响,但之后的所有版本都包含该缺陷。
升级后,在把 vacuum_freeze_table_age 设为零的情况下对所有数据库中的所有表执行清理,可以缓解此问题。这会修复任何潜伏的损坏,但无法修复所有既有的数据错误。不过,如果安装在其生命周期内执行的事务少于 2^31 个更新(可用 SELECT txid_current() < 2^31 检查),则在执行此清理之后即可认为该安装是安全的。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复热备启动期间 pg_clog 和 pg_subtrans 的初始化(Andres Freund、Heikki Linnakangas)
这一缺陷会把已提交事务标记为未提交,从而在备库开始接受热备查询的那一刻造成数据丢失。除非备库启动时主库自上次检查点以来执行了大量更新事务,否则这种损坏的可能性很小。症状包括行缺失、本应删除的行仍可见,以及已更新行的过时版本与新版本同时可见。
该缺陷是在 9.3.0、9.2.5、9.1.10 和 9.0.14 版本中引入的。只运行过更早版本的备库没有风险。建议曾运行过任何含缺陷版本的备库在升级后从主库重新克隆(例如用新的基础备份)。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 WAL 重放期间截断 pg_multixact 内容(Andres Freund)
这避免了备库中磁盘空间消耗不断增加。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 GIN 索引 posting 树页面删除中的竞态条件(Heikki Linnakangas)
这可能导致瞬时的错误结果或查询失败。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免展平 SELECT 列表中包含包裹在子 SELECT 中的易变函数的子查询(Tom Lane)
这避免了因易变函数被额外求值而导致的意外结果。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复规划器对外连接中嵌套的非简单变量子查询输出的处理(Tom Lane)
这一错误可能为涉及 JOIN 语法中多级子查询的查询生成错误的计划。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复临时文件被过早删除的问题(Andres Freund)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复规则打印中可能读取越过内存末尾的问题(Peter Eisentraut)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 int2vector 和 oidvector 值的数组切片(Tom Lane)
这类表达式现在会被隐式提升为常规的 int2 或 oid 数组。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复使用 SQL 标准的简单 GMT 偏移时区时的错误行为(Tom Lane)
某些情况下,系统会使用简单 GMT 偏移值,而本应使用选择简单偏移之前一直生效的常规时区设置。此变更还使 timeofday 函数遵循简单 GMT 偏移时区。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
防止记录 Windows 错误码翻译时可能出现的不当行为(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
正确地为 pg_ctl 生成的命令行加引号(Naoya Anzai、Tom Lane)
此修复仅适用于 Windows。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复当源数据库通过 ALTER DATABASE SET 设置 default_transaction_read_only 时 pg_dumpall 无法工作的问题(Kevin Grittner)
此前,生成的脚本在恢复期间会失败。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 ecpg 对声明为 varchar 的变量列表的处理(Zoltán Böszörményi)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
让 contrib/lo 防御不正确的触发器定义(Marc Cousin)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
把时区数据文件更新为 tzdata 版本 2013h for DST law changes in Argentina, Brazil, Jordan, Libya, Liechtenstein, Morocco, and Palestine。Also, new timezone abbreviations WIB, WIT, WITA for Indonesia.
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
对于运行 9.0.X 的用户,不需要进行转储/恢复。
不过,如果你是从早于 9.0.13 的版本升级,请参见第 E.11 节。
变更
防止尝试对标识符做大小写折叠时损坏多字节字符(Andrew Dunstan)
PostgreSQL 只在使用单字节服务器编码时才对非 ASCII 字符做大小写折叠。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 wal_level = hot_standby 时后台写入进程中的检查点内存泄漏(Naoya Anzai)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复由 lo_open() 失败导致的内存泄漏(Heikki Linnakangas)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 work_mem 使用超过 24GB 内存时的内存过度提交缺陷(Stephen Frost)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复使用 SSL 时 libpq 中的死锁缺陷(Stephen Frost)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复多线程 libpq 应用中可能的 SSL 状态损坏(Nick Phillips、Stephen Frost)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
正确计算包含大量 NULL 值的布尔列的行数估计(Andrew Gierth)
此前,col IS NOT TRUE 和 col IS NOT FALSE 这类测试在估计计划代价时没有正确考虑 NULL 值。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
防止把 WHERE 子句下推到不安全的 UNION/INTERSECT 子查询中(Tom Lane)
SELECT 列表中包含集合返回函数或易变函数的 UNION 或 INTERSECT 子查询可能被不当优化,导致运行时错误或错误的查询结果。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复罕见的 “failed to locate grouping columns” 规划器失败情况(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
改进视图转储代码对被引用表中已删除列的处理(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
正确记录使用 UNIQUE 和 PRIMARY KEY 语法创建的索引注释(Andres Freund)
这修复了一个并行 pg_restore 失败问题。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 REINDEX TABLE 和 REINDEX DATABASE,使其正确重新验证约束并把已失效的索引标记为有效(Noah Misch)
REINDEX INDEX 一直工作正常。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复并发执行 CREATE INDEX CONCURRENTLY 操作时可能出现的死锁(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 regexp_matches() 对零长度匹配的处理(Jeevan Chalke)
此前,像 '^' 这样的零长度匹配可能返回过多的匹配。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复过于复杂的正则表达式导致崩溃的问题(Heikki Linnakangas)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复反向引用与非贪婪量词组合时正则表达式匹配失败的问题(Jeevan Chalke)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
除非启用了函数体检查,否则防止 CREATE FUNCTION 检查 SET 变量(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
允许 ALTER DEFAULT PRIVILEGES 在不需要 CREATE 权限的情况下对模式操作(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
放宽对查询中所用关键字的限制(Tom Lane)
具体而言,放宽了角色名、语言名、EXPLAIN 和 COPY 选项以及 SET 值的关键字限制。这使得 COPY ... (FORMAT BINARY) 能按预期工作;此前 BINARY 需要加引号。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 pgp_pub_decrypt(),使其可用于带口令的密钥(Marko Kreen)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
移除无索引表清理期间罕见的不准确警告(Heikki Linnakangas)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
确保当 VACUUM ANALYZE 的文件截断尝试因锁冲突被取消时,仍然执行 ANALYZE 阶段(Kevin Grittner)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免在预备查询中执行事务控制命令(例如 ROLLBACK)时可能出现的失败(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
确保浮点数据输入在所有平台上都接受标准的“infinity”(无穷大)写法(Tom Lane)
C99 标准规定允许的写法为 inf、+inf、-inf、infinity、+infinity 和 -infinity。即使平台的 strtod 函数不支持,也确保我们能识别这些写法。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
扩展行与记录和数组比较的能力(Rafal Rzepecki、Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
把时区数据文件更新为 tzdata 版本 2013d(以色列、摩洛哥、巴勒斯坦和巴拉圭的夏令时法规变更)。另外,还修正了麦格理岛的历史时区数据。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
对于运行 9.0.X 的用户,不需要进行转储/恢复。
不过,本版本纠正了 GiST 索引管理中的若干错误。安装此更新后,建议对满足下述一个或多个条件的 GiST 索引执行 REINDEX。
不过,如果你是从早于 9.0.6 的版本升级,请参见第 E.18 节。
变更
修复服务器命令行开关解析不安全的问题(Mitsumasa Kondo、Kyotaro Horiguchi)
包含以 “-” 开头的数据库名的连接请求可能被精心构造,用于破坏或摧毁服务器数据目录中的文件,即使该请求最终被拒绝也是如此。(CVE-2013-1899)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在每个 postmaster 子进程中重置 OpenSSL 随机状态(Marko Kreen)
这避免了另一种情况:另一数据库用户可能相对容易地猜出 contrib/pgcrypto 函数生成的随机数。只有当 postmaster 配置了 ssl = on 而大多数连接并不使用 SSL 加密时,这一风险才比较显著。(CVE-2013-1900)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 GiST 索引在不合适的情况下使用“模糊”几何比较的问题(Alexander Korotkov)
核心几何类型使用“模糊”相等进行比较,但 gist_box_same 必须做精确比较,否则使用它的 GiST 索引可能变得不一致。安装此更新后,用户应对 box、polygon、circle 或 point 列上的所有 GiST 索引执行 REINDEX,因为它们都使用 gist_box_same。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复对可变宽度数据类型(即 text、bytea、bit 和 numeric 列)使用 contrib/btree_gist 的 GiST 索引中错误的范围并集和惩罚逻辑(Tom Lane)
这些错误可能导致不一致的索引:某些存在的键搜索不到,还会造成无用的索引膨胀。建议用户在安装此更新后对这类索引执行 REINDEX。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复多列索引的 GiST 页面分裂代码中的缺陷(Tom Lane)
这些错误可能导致不一致的索引:某些存在的键搜索不到,还会使索引的搜索效率不必要地低下。建议用户在安装此更新后对多列 GiST 索引执行 REINDEX。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 gist_point_consistent,使其一致地处理模糊性(Alexander Korotkov)
point 列上 GiST 索引的索引扫描有时会得出与顺序扫描不同的结果,因为 gist_point_consistent 与底层操作符代码在是做精确比较还是模糊比较上不一致。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 WAL 重放中的缓冲区泄漏(Heikki Linnakangas)
这一缺陷可能导致重放期间出现 “incorrect local pin count” 错误,使恢复无法进行。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 DELETE RETURNING 中的竞态条件(Tom Lane)
在合适的条件下,DELETE RETURNING 可能尝试从当前进程已不再持有任何 pin 的共享缓冲区中取数据。如果其他进程在此期间更改了该缓冲区,就会导致垃圾 RETURNING 输出,甚至崩溃。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复正则表达式编译中的无限循环风险(Tom Lane、Don Porter)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复正则表达式编译中潜在的空指针解引用(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 to_char(),在适当的地方只使用 ASCII 大小写折叠规则(Tom Lane)
这修复了一些本应与区域设置无关的模板模式在土耳其区域下错误处理 “I” 和 “i” 的问题。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复时间戳 1999-12-31 24:00:00 被不当拒绝的问题(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复单个事务先执行 UNLISTEN 再执行 LISTEN 时的逻辑错误(Tom Lane)
会话最终完全没有监听通知事件,尽管在这种情况下它显然应该监听。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
移除无用的 “picksplit doesn't support secondary split” 日志消息(Josh Hansen、Tom Lane)
这条消息似乎是为预期中从未编写、而且可能永远不会编写的代码而添加的,因为 GiST 对二次分裂的默认处理其实相当好。所以不再为此打扰最终用户。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复会话最后几个事务的提交/中止计数可能未能发送到统计收集器的问题(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
消除 PL/Perl 的 spi_prepare() 函数中的内存泄漏(Alex Hunsaker、Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 pg_dumpall 对包含 “=” 的数据库名的处理(Heikki Linnakangas)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免在给定不正确的连接串时 pg_dump 崩溃(Heikki Linnakangas)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
让 pg_dump 和 pg_upgrade 忽略无效索引(Michael Paquier、Bruce Momjian)
转储无效索引可能在恢复时造成问题,例如当索引创建失败的原因是它试图强制执行表数据不满足的唯一性条件时。此外,如果索引创建实际上仍在进行中,把它视为未提交的 DDL 变更似乎是合理的,pg_dump 本来也不应转储它。pg_upgrade 现在也跳过无效索引而不是失败。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 contrib/pg_trgm 的 similarity() 函数,使其对无三元组的字符串返回零(Tom Lane)
此前它由于内部除以零而返回 NaN。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
把时区数据文件更新为 tzdata 版本 2013b(智利、海地、摩洛哥、巴拉圭和一些俄罗斯地区的夏令时法规变更)。另外,还修正了众多地区的历史时区数据。
此外,更新时区缩写文件以反映俄罗斯和其他地方的近期变更:CHOT、GET、IRKT、KGT、KRAT、MAGT、MAWT、MSK、NOVT、OMST、TKT、VLAT、WST、YAKT、YEKT 现在遵循其当前含义,同时把 VOLT(Europe/Volgograd)和 MIST(Antarctica/Macquarie)加入默认缩写列表。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
对于运行 9.0.X 的用户,不需要进行转储/恢复。
不过,如果你是从早于 9.0.6 的版本升级,请参见第 E.18 节。
变更
防止从 SQL 执行 enum_recv(Tom Lane)
该函数声明有误,允许一条简单的 SQL 命令使服务器崩溃。原则上攻击者可能利用它检查服务器内存的内容。感谢 Sumit Soni(通过 Secunia SVCRP)报告此问题。(CVE-2013-0255)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 WAL 重放期间检测何时达到一致数据库状态的多个问题(Fujii Masao、Heikki Linnakangas、Simon Riggs、Andres Freund)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在截断关系文件时更新最小恢复点(Heikki Linnakangas)
数据一旦被丢弃,在时间线上更早的点停止恢复就不再安全。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复热备模式下缺失的取消操作(Noah Misch、Simon Riggs)
取消冲突热备查询的需要有时会被遗漏,使这些查询看到不一致的数据。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 SQL 文法,允许对子 SELECT 结果做下标或字段选择(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复繁忙负载下自动清理截断的性能问题(Jan Wieck)
截断表末尾的空页需要排他锁,但自动清理被编码为在出现冲突锁请求时失败(并释放表锁)。在负载下,截断很可能永远不会发生,导致表膨胀。修复方法是先执行部分截断,释放锁,然后尝试重新获取锁并继续。此修复还大幅缩短了冲突请求到达后自动清理释放锁的平均时间。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
防止扫描 pg_tablespace 时的竞态条件(Stephen Frost、Tom Lane)
如果 pg_tablespace 条目存在并发更新,CREATE DATABASE 和 DROP DATABASE 可能行为异常。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
防止 DROP OWNED 试图删除整个数据库或表空间(Álvaro Herrera)
为安全起见,这些对象的所有权必须重新分配,而不是删除。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 vacuum_freeze_table_age 实现中的错误(Andres Freund)
在已存在超过 vacuum_freeze_min_age 个事务的安装中,这一失误使自动清理无法使用部分表扫描,而总是进行全表扫描。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
防止 RowExpr 或 XmlExpr 被二次解析分析时的不当行为(Andres Freund、Tom Lane)
这一失误在 CREATE TABLE LIKE INCLUDING INDEXES 等上下文中可能被用户看到。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
增强对哈希表大小计算中整数溢出的防御(Jeff Davis)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
拒绝 to_date() 中超出范围的日期(Hitoshi Harada)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
确保在 Windows 上非 ASCII 提示符字符串被转换到正确的代码页(Alexander Law、Noah Misch)
这一缺陷影响 psql 和其他一些客户端程序。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复未连接数据库时 psql 的 \? 命令可能崩溃的问题(Meng Qingzhong)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 pg_upgrade,使其安全处理无效索引(Bruce Momjian)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 libpq 的 PQprintTuples 中的一字节缓冲区越界(Xi Wang)
这个古老的函数没有被 PostgreSQL 本身在任何地方使用,但仍可能被某些客户端代码使用。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
让 ecpglib 正确使用翻译后的消息(Chen Huajun)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 MSVC 上正确安装 ecpg_compat 和 pgtypes 库(Jiang Guiqing)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
如果系统未提供 isinf(),则在 libecpg 中包含我们自己的版本(Jiang Guiqing)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
重新排列 configure 对系统提供函数的测试,使其不被 libedit/libreadline 的虚假导出所欺骗(Christoph Berg)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
确保 Windows 构建号随时间递增(Magnus Hagander)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
让 pgxs 在为 Windows 交叉编译时以正确的 .exe 后缀构建可执行文件(Zoltan Boszormenyi)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
新增时区缩写 FET(Tom Lane)
它现在用于一些东欧时区。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
对于运行 9.0.X 的用户,不需要进行转储/恢复。
不过,如果你是从早于 9.0.6 的版本升级,请参见第 E.18 节。
变更
修复与 CREATE INDEX CONCURRENTLY 相关的多个缺陷(Andres Freund、Tom Lane)
修复 CREATE INDEX CONCURRENTLY,使其在更改索引 pg_index 行的状态时使用就地更新。这防止了可能导致并发会话错过更新目标索引(从而产生损坏的并发创建索引)的竞态条件。
另外,修复各种其他操作,确保它们忽略由失败的 CREATE INDEX CONCURRENTLY 命令产生的无效索引。其中最重要的是 VACUUM,因为在采取纠正措施修复或删除无效索引之前,很容易就有自动清理在该表上启动。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 WAL 重放期间的缓冲区锁定(Tom Lane)
WAL 重放代码在重放影响多个页面的 WAL 记录时,对缓冲区加锁不够谨慎。这可能导致热备查询瞬时看到不一致的状态,造成错误结果或意外失败。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 GIN 索引 WAL 生成逻辑中的一个错误(Tom Lane)
如果发生残缺页故障,这可能导致索引损坏。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
把热备服务器提升为正常运行时,正确移除启动进程的虚拟 XID 锁(Simon Riggs)
这一疏忽可能阻止后续执行某些操作,例如 CREATE INDEX CONCURRENTLY。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免备库模式下虚假的 “out-of-sequence timeline ID” 错误(Heikki Linnakangas)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
防止 postmaster 在收到关闭信号后继续启动新的子进程(Tom Lane)
这一失误可能导致关闭耗时比应有的更长,甚至在没有额外用户操作的情况下永远无法完成。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免内存不足时内部哈希表损坏(Hitoshi Harada)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复外连接之上非严格等值子句的规划(Tom Lane)
规划器可能从把非严格构造与别的值等同的子句中推导出错误的约束,例如当 foo 来自外连接的可空侧时的 WHERE COALESCE(foo, 0) = 0。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
改进规划器从等价类证明排他约束的能力(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复哈希子计划中的部分行匹配,使其正确处理跨类型情况(Tom Lane)
这影响多列 NOT IN 子计划,例如 WHERE (a, b) NOT IN (SELECT x, y FROM ...),当 b 和 y 分别是 int4 和 int8 时。根据所涉及的具体数据类型,这一失误会导致错误答案或崩溃。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在为 AFTER ROW UPDATE/DELETE 触发器重新获取旧元组时获取缓冲区锁(Andres Freund)
在非常罕见的情况下,这一疏忽可能导致向外键强制触发器的预检查逻辑传递不正确的数据。这可能导致崩溃,或者在是否触发触发器上做出错误决定。
变更
修复ALTER COLUMN TYPE以正确重建继承的检查约束(Tom Lane)
这在 8.4 之前的版本中工作正常,现在在 8.4 及更高版本中也工作正常。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 REASSIGN OWNED 对表空间授权的处理(Álvaro Herrera)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
忽略视图中系统列的不正确 pg_attribute 条目(Tom Lane)
视图没有任何系统列。然而,我们在把表转换为视图时忘记移除这类条目。这一问题在 9.3 及更高版本中已正确修复,但在以前的分支中,我们需要防御已经错误转换的视图。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复规则打印,使其正确转储 INSERT INTO (Tom Lane)table DEFAULT VALUES
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
防止当查询中有过多 UNION/INTERSECT/EXCEPT 子句时栈溢出(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
防止用最小可能整数值除以 -1 时依赖平台的失败(Xi Wang、Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复日期解析中可能越过字符串末尾的访问(Hitoshi Harada)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复当 XID 回卷发生在检查点期间且 wal_level 为 hot_standby 时 XID 纪元(epoch)未能推进的问题(Tom Lane、Andres Freund)
虽然这一失误对 PostgreSQL 本身没有特别影响,但它对依赖 txid_current() 及相关函数的应用不利:TXID 值看起来会倒退。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
当 Unix 域套接字的路径名长度超过平台特定限制时,生成可理解的错误消息(Tom Lane、Andrew Dunstan)
此前这会导致相当无用的结果,例如 “Non-recoverable failure in name resolution”。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复向客户端发送组合列值时的内存泄漏(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
使 pg_ctl 读取 postmaster.pid 文件更健壮(Heikki Linnakangas)
这修复了竞态条件和可能的文件描述符泄漏。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复当呈现错误编码的数据且 client_encoding 设置为仅客户端编码(如 SJIS)时 psql 可能崩溃的问题(Jiang Guiqing)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 pg_dump 以 tar 输出格式生成的 restore.sql 脚本中的缺陷(Tom Lane)
该脚本在表名包含大写字符时会直接失败。此外,让该脚本既能以常规 COPY 模式也能以 --inserts 模式恢复数据。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 pg_restore,使其接受符合 POSIX 的 tar 文件(Brian Weaver、Tom Lane)
pg_dump 的 tar 输出模式的原始编码生成的文件并不完全符合 POSIX 标准。这在 9.3 版本中已得到纠正。此补丁更新了以前的分支,使它们同时接受错误格式和纠正后的格式,希望借此避免 9.3 发布时的兼容性问题。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 pg_resetxlog,使其在给定数据目录相对路径时正确定位 postmaster.pid(Tom Lane)
这一失误可能导致 pg_resetxlog 没有注意到有活动 postmaster 正在使用该数据目录。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 libpq 的 lo_import() 和 lo_export() 函数,使其正确报告文件 I/O 错误(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 ecpg 对嵌套结构指针变量的处理(Muhammad Usama)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 ecpg 的 ecpg_get_data 函数,使其正确处理数组(Michael Meskes)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
让 contrib/pageinspect 的 btree 页面检查函数在检查页面时持有缓冲区锁(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 pgxs 在 AIX 上构建可加载模块的支持(Tom Lane)
在原始源码树之外构建模块在 AIX 上不工作。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
把时区数据文件更新为 tzdata 版本 2012j for DST law changes in Cuba, Israel, Jordan, Libya, Palestine, Western Samoa, and portions of Brazil。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
对于运行 9.0.X 的用户,不需要进行转储/恢复。
不过,如果你是从早于 9.0.6 的版本升级,请参见第 E.18 节。
变更
修复规划器对执行器参数的分配,并修复执行器对 CTE 计划节点的重新扫描逻辑(Tom Lane)
这些错误可能导致多次扫描同一 WITH 子查询的查询给出错误答案。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
改进 GiST 索引的页面分裂决策(Alexander Korotkov、Robert Haas、Tom Lane)
多列 GiST 索引可能因此错误而遭受意外膨胀。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复级联权限撤销,使其在权限仍被持有时停止(Tom Lane)
如果我们撤销某个角色 X 的授予选项,但 X 仍通过别人的授予持有该选项,我们就不应从 X 曾授予该权限的角色 Y 那里递归撤销相应权限。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
改进热备配置错误的错误消息(Gurjeet Singh)
变更
修复使用 PL/Perl 时对 SIGFPE 的处理(Andres Freund)
Perl 会把进程的 SIGFPE 处理程序重置为 SIG_IGN,这可能导致之后崩溃。在初始化 PL/Perl 之后恢复正常的 Postgres 信号处理程序。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
防止递归 PL/Perl 函数在执行期间被重定义时 PL/Perl 崩溃(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
规避 PL/Perl 中可能的错误优化(Tom Lane)
一些 Linux 发行版包含错误版本的 pthread.h,导致 PL/Perl 中的编译代码不正确,当一个 PL/Perl 函数调用另一个会抛出错误的函数时会导致崩溃。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 pg_upgrade 在 Windows 上对行尾的处理(Andrew Dunstan)
此前,pg_upgrade 可能在函数体等地方添加或删除回车符。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 Windows 上,让 pg_upgrade 在其生成的脚本中使用反斜杠路径分隔符(Andrew Dunstan)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
把时区数据文件更新为 tzdata 版本 2014e,以反映克里米亚、埃及和摩洛哥的夏令时法规变更。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
对于运行 9.0.X 的用户,不需要进行转储/恢复。
不过,如果你是从早于 9.0.6 的版本升级,请参见第 E.18 节。
变更
防止通过 XML 实体引用访问外部文件/URL(Noah Misch、Tom Lane)
xml_parse() 会尝试按需获取外部文件或 URL 来解析 XML 值中的 DTD 和实体引用,从而使无特权数据库用户能够尝试以数据库服务器的权限获取数据。虽然外部数据不会直接返回给用户,但如果数据不能解析为有效 XML,其部分内容可能暴露在错误消息中;而且无论如何,仅仅能够检查文件是否存在对攻击者就可能有用。(CVE-2012-3489)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
防止通过 contrib/xml2 的 xslt_process() 访问外部文件/URL(Peter Eisentraut)
libxslt 提供通过样式表命令读写文件和 URL 的能力,从而使无特权数据库用户能够以数据库服务器的权限读写数据。现通过正确使用 libxslt 的安全选项禁用该能力。(CVE-2012-3488)
此外,移除了 xslt_process() 从外部文件/URL 获取文档和样式表的能力。虽然这是一个有记载的“特性”,但长期以来被认为是个坏主意。CVE-2012-3489 的修复破坏了该能力,与其花费精力修复它,我们干脆将其移除。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
防止 btree 索引页被过早回收(Noah Misch)
当我们允许只读事务跳过分配 XID 时,引入了已删除 btree 页在只读事务仍在访问它时就被回收的可能性。这会导致错误的索引搜索结果。由于时序要求,这种错误在实际中发生的概率似乎很低,但仍应修复。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复新创建或重置序列的崩溃安全缺陷(Tom Lane)
如果在新创建或重置的序列上执行了 ALTER SEQUENCE,然后恰好对它调用了一次 nextval(),随后服务器崩溃,WAL 重放会把序列恢复到看起来没有执行过 nextval() 的状态,从而使下一个 nextval() 调用再次返回第一个序列值。这种情况尤其可能出现在 serial 列上,因为创建 serial 列的序列包含一个 ALTER SEQUENCE OWNED BY 步骤。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 txid_current(),使其在非热备下报告正确的纪元(epoch)(Heikki Linnakangas)
这修复了上一个小版本引入的退化。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复主库事务有大量子事务时热备启动的缺陷(Andres Freund)
这一失误导致报告为 “out-of-order XID insertion in KnownAssignedXids” 的失败。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
确保 pg_start_backup() 之后对 backup_label 文件执行 fsync(Dave Kerr)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 walsender 进程中的超时处理(Tom Lane)
WAL 发送端后台进程疏于建立 SIGALRM 处理程序,这意味着在某些应发生超时的极端情况下它们会永远等待。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
回移植压缩 fsync 请求队列的 9.1 改进(Robert Haas)
这改进了检查点期间的性能。9.1 的变更已经过足够的实际测试,看起来可以安全回移植。
变更
修复 LISTEN/NOTIFY,使其更好地应对 I/O 问题(例如磁盘空间耗尽)(Tom Lane)
写入失败之后,所有后续发送更多 NOTIFY 消息的尝试都会失败,并显示诸如 “Could not read from file "pg_notify/nnnn" at offset nnnnn: Success” 的消息。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
只允许被直接阻塞的进程自动取消自动清理(Tom Lane)
原始编码在某些情况下可能允许不一致的行为;特别是自动清理可能在不足 deadlock_timeout 宽限期之后就被取消。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
改进自动清理取消的日志记录(Robert Haas)
变更
修复日志收集器,使 log_truncate_on_rotation 在服务器启动后的第一次日志轮转期间就能工作(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复附加到嵌套集合操作(UNION/INTERSECT/EXCEPT)上的 WITH(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
确保对子查询的整行引用不包含任何多余的 GROUP BY 或 ORDER BY 列(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
禁止在 CREATE TABLE 期间复制 CHECK 约束和索引定义中的整行引用(Tom Lane)
这种情况可能出现在带 LIKE 或 INHERITS 的 CREATE TABLE 中。被复制的整行变量被错误地标记为原表而不是新表的行类型。对 LIKE 拒绝这种情况似乎是合理的,因为行类型之后很可能分化。对 INHERITS,理想情况下应该允许它,并隐式强制转换为父表的行类型;但这需要的工作量超出了回移植的安全范围。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 ARRAY(SELECT ...) 子查询中的内存泄漏(Heikki Linnakangas、Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复从正则表达式中提取公共前缀的问题(Tom Lane)
代码可能被带量词的带括号子表达式(例如 ^(foo)?bar)混淆。这会导致对此类模式搜索的索引优化不正确。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复解析 interval 常量中带符号的 hh:mm 和 hh:mm:ss 字段的缺陷(Amit Kapila、Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 PL/Python 中把 Python Unicode 字符串转换为服务器编码时,使用 Postgres 而不是 Python 的编码转换函数(Jan Urbanski)
这避免了一些极端情况的问题,尤其是 Python 并不支持 Postgres 的所有编码。一个显著的功能变化是:如果服务器编码是 SQL_ASCII,你将得到该字符串的 UTF-8 表示;此前字符串中的任何非 ASCII 字符都会导致错误。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 PL/Python 中 PostgreSQL 编码到 Python 编码的映射(Jan Urbanski)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 contrib/xml2 的 xslt_process() 中的错误报告(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
把时区数据文件更新为 tzdata 版本 2012e,以反映摩洛哥和托克劳的夏令时法规变更
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
对于运行 9.0.X 的用户,不需要进行转储/恢复。
不过,如果你是从早于 9.0.6 的版本升级,请参见第 E.18 节。
变更
修复 contrib/pgcrypto 的 DES crypt() 函数中不正确的口令变换(Solar Designer)
如果口令串包含字节值 0x80,口令的其余部分会被忽略,使口令比看起来弱得多。修复后,字符串的其余部分会被正确纳入 DES 哈希。因此,受此缺陷影响的任何已存储口令值将不再匹配,所以可能需要更新已存储的值。(CVE-2012-2143)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
忽略过程语言调用处理程序的 SECURITY DEFINER 和 SET 属性(Tom Lane)
把这类属性应用于调用处理程序可能导致服务器崩溃。(CVE-2012-2655)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
允许 timestamp 输入中的数字时区偏移距 UTC 最多 16 小时(Tom Lane)
一些历史时区的偏移超过此前 15 小时的限制。这可能导致转储的数据值在重载期间被拒绝。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复时间戳转换,使其在给定时间恰好是当前时区最后一次夏令时转换时间时能正确处理(Tom Lane)
这一疏忽已存在很长时间,但此前未被注意到,因为大多数使用夏令时的时区被假定有无限的未来夏令时转换序列。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 text 到 name 以及 char 到 name 的转换,使其在多字节编码下正确执行字符串截断(Karl Schnaitter)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 to_tsquery() 中的内存复制缺陷(Heikki Linnakangas)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
确保 txid_current() 在热备中执行时报告正确的纪元(epoch)(Simon Riggs)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复规划器对子查询内外层 PlaceHolderVar 的处理(Tom Lane)
该缺陷涉及引用来自外层查询外连接可空侧变量的子 SELECT。在 9.1 中,受此缺陷影响的查询会报 “ERROR: Upper-level PlaceHolderVar found where not expected” 失败。但在 9.0 和 8.4 中,你会静默地得到可能错误的答案,因为传入子查询的值不会在该为空时变为空。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 pg_attribute 非常大会话启动缓慢的问题(Tom Lane)
如果 pg_attribute 超过 shared_buffers 的四分之一,会话启动期间有时需要的缓存重建代码就会触发同步扫描逻辑,使其耗时比正常情况多数倍。如果许多新会话同时启动,问题尤为严重。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
确保顺序扫描以合理的频率检查查询取消(Merlin Moncure)
遇到许多不含存活元组的连续页面的扫描在此期间不会响应中断。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
确保 PGSemaphoreLock() 的 Windows 实现在返回前清除 ImmediateInterruptOK(Tom Lane)
这一疏忽意味着同一查询稍后收到的查询取消中断可能在不安全的时刻被接受,后果不可预测且不好。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在打印视图或规则时安全地显示整行变量(Abbas Butt、Tom Lane)
涉及有歧义名称(即该名称既可能是查询的表名也可能是列名)的极端情况此前以有歧义的方式打印,存在视图或规则在转储和重载后被不同解释的风险。现通过附加无操作转换来避免歧义情况。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 COPY FROM,使其正确处理对应无效编码的空值标记串(Tom Lane)
诸如 E'\\0' 这样的空值标记串本应有效,过去也确实有效,但该情况在 8.4 中被破坏。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
确保自动清理工作进程正确执行栈深度检查(Heikki Linnakangas)
此前,由自动 ANALYZE 调用的函数中的无限递归可能导致工作进程崩溃。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复日志收集器,使其在高负载下不丢失日志连贯性(Andrew Dunstan)
此前,如果收集器过于忙碌,可能无法重新组装大消息。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复日志收集器,确保它在收到 SIGHUP 后会重新开始文件轮转(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 GIN 索引的 WAL 重放逻辑,使其在索引随后被删除时不失败(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 PL/pgSQL 的 RETURN NEXT 命令中的内存泄漏(Joe Conway)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 PL/pgSQL 的 GET DIAGNOSTICS 命令在目标是函数第一个变量时的问题(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 psql 扩展显示(\x)模式中可能越过内存末尾的访问(Peter Eisentraut)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复数据库包含大量对象时 pg_dump 的若干性能问题(Jeff Janes、Tom Lane)
如果数据库包含许多模式、许多对象处于依赖循环中、或有许多被拥有的序列,pg_dump 可能变得非常慢。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 pg_upgrade 处理存储在非默认表空间的数据库包含集簇默认表空间中的表的情况(Bruce Momjian)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 ecpg 中,修复罕见的内存泄漏以及 sqlca_t 结构之后一个字节可能被覆写的问题(Peter Eisentraut)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 contrib/dblink 的 dblink_exec(),使其在出错时不泄漏临时数据库连接(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 contrib/dblink,使其在错误消息中报告正确的连接名(Kyotaro Horiguchi)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 contrib/vacuumlo,使其在删除许多大对象时使用多个事务(Tim Lewis、Robert Haas、Tom Lane)
此变更避免了需要删除许多对象时超出 max_locks_per_transaction。该行为可以通过新的 -l(limit)选项调整。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
把时区数据文件更新为 tzdata 版本 2012c for DST law changes in Antarctica, Armenia, Chile, Cuba, Falkland Islands, Gaza, Haiti, Hebron, Morocco, Syria, and Tokelau Islands; also historical corrections for Canada。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
对于运行 9.0.X 的用户,不需要进行转储/恢复。
不过,如果你是从早于 9.0.6 的版本升级,请参见第 E.18 节。
变更
让 CREATE TRIGGER 要求对触发器函数有执行权限(Robert Haas)
这一缺失的检查可能允许另一用户通过把触发器函数安装到自己拥有的表上,以伪造的输入数据执行该触发器函数。这只对标记为 SECURITY DEFINER 的触发器函数有影响,因为其他情况下触发器函数本来就以表所有者身份运行。(CVE-2012-0866)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
移除 SSL 证书中通用名长度的任意限制(Heikki Linnakangas)
libpq 和服务器此前都会把从 SSL 证书提取的通用名截断到 32 字节。通常这最坏只会造成意外的验证失败,但在一些相当难以置信的场景下,它可能允许一个证书持有者冒充另一个。受害者必须恰好有 32 字节长的通用名,而攻击者必须说服受信任的 CA 颁发一个通用名以该字符串为前缀的证书。冒充服务器还需要额外的攻击手段来重定向客户端连接。(CVE-2012-0867)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
把 pg_dump 注释中写入的名称里的换行符转换为空格(Robert Haas)
pg_dump 此前对其输出脚本中 SQL 注释内写出的对象名清理不慎。包含换行符的名称至少会使脚本语法错误。恶意构造的对象名可能在脚本重载时构成 SQL 注入风险。(CVE-2012-0868)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复插入与清理并发导致 btree 索引损坏的问题(Tom Lane)
插入导致的索引页分裂有时会使并发运行的 VACUUM 漏删本应删除的索引项。在相应的表行被删除后,悬空的索引项会导致错误(例如 “could not read block N in file ...”),或者更糟:当不相关的行被重新插入到现已空闲的表位置后,查询会静默地得到错误结果。该缺陷自 8.2 起就存在,但发生频率极低,直到现在才被诊断出来。如果你有理由怀疑它曾在你的数据库中发生,对受影响的索引重建索引即可修复。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 WAL 重放期间共享缓冲区的瞬时清零(Tom Lane)
重放逻辑有时会把一个共享缓冲区清零再重新填充,使其内容瞬时无效。在热备模式下,这可能导致并行执行的查询看到垃圾数据。这可能引发各种症状,但最常见的好像是 “invalid memory alloc request size”。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 postmaster,使其在热备崩溃后尝试重启(Tom Lane)
一个逻辑错误导致:如果有后端进程在热备模式下运行时崩溃,postmaster 会终止而不是尝试重启集簇。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 CLUSTER/VACUUM FULL 对最近更新的行所拥有的 toast 值的处理(Tom Lane)
这一疏忽可能导致在这些命令之一执行期间,toast 表的索引报 “duplicate key value violates unique constraint” 错误。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
更改表所有者时,不仅更新表级权限,也更新逐列权限(Tom Lane)
未做到这一点意味着,此前授予的所有列权限仍显示为由旧所有者授予。这导致新所有者和超级用户都无法撤销这些现在无法追溯到表所有者的权限。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 REASSIGN OWNED 中支持外部数据包装器和外部服务器(Alvaro Herrera)
如果该命令需要更改任何这类对象的所有权,会报 “unexpected classid” 错误。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
允许 ALTER USER/DATABASE SET 中某些设置取不存在的值(Heikki Linnakangas)
允许把 default_text_search_config、default_tablespace 和 temp_tablespaces 设为未知的名称。这是因为设置要在其中使用的另一个数据库中它们可能是已知的;对表空间的情况,则是因为表空间可能尚未创建。此前 search_path 已被认识到有同样的问题,这些设置现在的行为与它一致。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免在提交后删除表文件出现问题时崩溃(Tom Lane)
删除表应只在事务提交后才删除底层磁盘文件。如果那时失败(例如因为文件权限错误),代码本应只发出警告消息并继续,因为此时中止事务已为时过晚。这一逻辑从 8.4 起被破坏,导致这类情况引发 PANIC 和无法重启的数据库。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
从 DROP TABLESPACE 的 WAL 重放期间的错误中恢复(Tom Lane)
重放会尝试删除表空间的目录,但这可能因各种原因失败(例如这些目录的所有权或权限不正确)。此前重放代码会 panic,使数据库在没有人工干预的情况下无法重启。记录问题并继续似乎更好,因为删除目录失败唯一后果只是浪费一些磁盘空间。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复为热备记录 AccessExclusiveLock 时的竞态条件(Simon Riggs)
有时锁会被记录为由“事务零”持有。至少已知这会在从库服务器上产生断言失败,还可能是更严重问题的原因。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 WAL 重放期间正确跟踪 OID 计数器,即使它发生回卷(Tom Lane)
此前 OID 计数器会一直停留在高值,直到系统退出重放模式。其实际后果通常为零,但在某些场景下,已提升为主库的备库服务器在需要 OID 值时,可能要很长时间才能把 OID 计数器推进到合理的值。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
防止在崩溃恢复开始时发出误导性的 “consistent recovery state reached” 日志消息(Heikki Linnakangas)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 pg_stat_replication.replay_location 的初始值(Fujii Masao)
此前,在至少重放一条 WAL 记录之前,显示的值是错误的。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复带 * 的正则表达式反向引用(Tom Lane)
代码实际上并不强制精确字符串匹配,而是接受任何满足反向引用符号所引用的模式子表达式的字符串。
类似问题仍困扰着嵌入在更大带量词表达式中(而非量词直接作用对象)的反向引用。这将在未来的 PostgreSQL 版本中解决。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复最近引入的 inet/cidr 值处理中的内存泄漏(Heikki Linnakangas)
PostgreSQL 2011 年 12 月版本中的一个补丁导致这些操作中的内存泄漏,在此类列上构建 btree 索引等场景中可能相当显著。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 SQL 语言函数中 CREATE TABLE AS/SELECT INTO 之后的悬空指针(Tom Lane)
大多数情况下这只会在启用断言的构建中导致断言失败,但似乎可能有更糟的后果。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免 Windows 上 syslogger 中文件句柄的双重关闭(MauMau)
通常这个错误不可见,但在调试版 Windows 上运行时会导致异常。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 plpgsql 中与 I/O 转换相关的内存泄漏(Andres Freund、Jan Urbanski、Tom Lane)
某些操作会一直泄漏内存直到当前函数结束。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
改进 pg_dump 对继承表列的处理(Tom Lane)
pg_dump 错误处理了子列与父列默认表达式不同的情况。如果默认值在文本上与父列相同但实际不同(例如因为模式搜索路径差异),它不会被识别为不同,因此转储和恢复后子列会被允许继承父列的默认值。子列为 NOT NULL 而父列不是的情况也可能被微妙地错误恢复。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 pg_restore 直接写数据库模式对 INSERT 式表数据的处理(Tom Lane)
当使用 2011 年 9 月或 12 月版本的 pg_restore 时,对以 --inserts 或 --column-inserts 选项制作的归档文件直接恢复到数据库会失败,这是对另一个问题的修复中的一个疏忽所致。归档文件本身没有问题,文本模式输出也正常。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
允许 pg_upgrade 处理包含 regclass 列的表(Bruce Momjian)
由于 pg_upgrade 现在注意保留 pg_class OID,这一限制不再有任何理由存在。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
让 libpq 在查找 SSL 客户端证书文件时忽略 ENOTDIR 错误(Magnus Hagander)
即使用户的主目录被设置为 /dev/null 之类,这也能建立 SSL 连接(虽然没有证书)。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 ecpg 的 SQLDA 区域中更多的字段对齐问题(Zoltan Boszormenyi)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
允许 ecpg 的 DEALLOCATE 语句中使用 AT 选项(Michael Meskes)
支持它的基础设施已存在一段时间,但由于疏忽仍有一个错误检查拒绝这种情况。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 ecpg 中定义 varchar 结构时不使用变量名(Michael Meskes)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 contrib/auto_explain 的 JSON 输出模式,使其产生有效的 JSON(Andrew Dunstan)
输出在顶层使用了方括号,而本应使用花括号。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 contrib/intarray 的 int[] & int[] 操作符中的错误(Guillaume Lelarge)
如果两个输入数组共有的最小整数是 1,且任一数组中有更小的值,那么 1 会被错误地从结果中遗漏。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 contrib/pgcrypto 的 encrypt_iv() 和 decrypt_iv() 中的错误检测(Marko Kreen)
这些函数未能报告某些类型的无效输入错误,而是对错误输入返回随机垃圾值。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 contrib/test_parser 中的一字节缓冲区越界(Paul Guyot)
代码会尝试多读一个字节,这在极端情况下会崩溃。由于 contrib/test_parser 只是示例代码,这本身不是安全问题,但坏的示例代码仍然是坏的。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 ARM 上如果可用则使用 __sync_lock_test_and_set() 实现自旋锁(Martin Pitt)
该函数取代了我们此前对 SWPB 指令的使用,该指令已被弃用且在 ARMv6 及更高版本上不可用。报告表明旧代码在较新的 ARM 板上不会以明显方式失败,而只是不对并发访问互锁,导致多进程操作中的离奇失败。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在使用接受该选项的 gcc 版本构建时使用 -fexcess-precision=standard 选项(Andrew Dunstan)
这防止了较新版本 gcc 产生"创造性"结果的各种场景。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
允许在 FreeBSD 上使用线程化 Python(Chris Rees)
我们的 configure 脚本此前认为这种组合无法工作;但 FreeBSD 修复了问题,因此移除该错误检查。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
对于运行 9.0.X 的用户,不需要进行转储/恢复。
不过,information_schema.referential_constraints 视图的定义中被发现存在一个长期错误。如果你依赖该视图的正确结果,应按下面第一条变更日志条目的说明替换其定义。
不过,如果你是从早于 9.0.4 的版本升级,请参见第 E.20 节。
变更
修复 information_schema.referential_constraints 视图中的缺陷(Tom Lane)
该视图在把外键约束与它依赖的主键或唯一键约束匹配时不够谨慎。这可能导致某个外键约束完全不被显示、被显示多次,或者声称它依赖于一个并非其实际依赖的约束。
由于该视图定义是由 initdb 安装的,仅靠升级不会修复问题。如果需要修复现有安装,可以(以超级用户身份)删除 information_schema 模式,然后通过载入 重新创建它。(如果不确定 SHAREDIR/information_schema.sqlSHAREDIR 在哪里,运行 pg_config --sharedir。)这必须在每个要修复的数据库中重复执行。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复连接到返回标量的函数输出的 UPDATE 或 DELETE 期间可能崩溃的问题(Tom Lane)
只有当目标行被并发更新时才可能崩溃,因此该问题只是间歇性出现。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 GIN 索引更新 WAL 记录的错误重放(Tom Lane)
这可能导致崩溃后或热备服务器上瞬时找不到索引项。不过,该问题会在该索引下一次 VACUUM 时被修复。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 CREATE TABLE dest AS SELECT * FROM src 或 INSERT INTO dest SELECT * FROM src 期间与 TOAST 相关的数据损坏(Tom Lane)
如果表曾被 ALTER TABLE ADD COLUMN 修改过,在某些极端情况下,尝试把它的数据原样复制到另一个表可能产生损坏的结果。该问题只会在 8.4 及更高版本中以这种确切形式出现,但我们也给更早的版本打了补丁,以防有其他代码路径可能触发同一缺陷。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复热备启动期间可能的失败(Simon Riggs)
变更
当初始快照不完整时更快地启动热备(Simon Riggs)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复从过期 syscache 条目访问 toast 表时的竞态条件(Tom Lane)
典型症状是诸如 “missing chunk number 0 for toast value NNNNN in pg_toast_2619” 的瞬时错误,其中引用的 toast 表总是属于某个系统目录。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
跟踪函数对参数默认值表达式中所用项的依赖(Tom Lane)
此前,被引用的对象可以在未删除或修改函数的情况下被删除,导致函数被使用时行为异常。注意,仅仅安装此更新不会修复缺失的依赖条目;要做到这一点,之后需要对每个这样的函数执行 CREATE OR REPLACE。如果你的函数默认值依赖于非内建对象,建议这样做。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
允许内联带多个 OUT 参数的集合返回 SQL 函数(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
不要为连接消除信任延迟唯一索引(Tom Lane、Marti Raudsepp)
延迟唯一约束在事务内可能不成立,因此假设它成立可能给出错误的查询结果。
变更
让 DatumGetInetP() 解包带 1 字节头的 inet datum,并新增一个不做此事的宏 DatumGetInetPP()(Heikki Linnakangas)
此变更不影响任何核心代码,但可能避免期望 DatumGetInetP() 按常规约定产生已解包 datum 的附加代码中的崩溃。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
改进 money 类型输入和输出的区域支持(Tom Lane)
除了不支持所有标准 lc_monetary 格式化选项外,输入和输出函数还不一致,这意味着在某些区域设置下转储的 money 值无法重新读取。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
不让 transform_null_equals 影响 CASE foo WHEN NULL ... 构造(Heikki Linnakangas)
transform_null_equals 只应影响用户直接写的 foo = NULL 表达式,而不是这种形式的 CASE 在内部生成的相等性检查。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
更改外键触发器的创建顺序,以更好地支持自引用外键(Tom Lane)
对于引用自身表的级联外键,行更新会作为一个事件同时触发 ON UPDATE 触发器和 CHECK 触发器。ON UPDATE 触发器必须先执行,否则 CHECK 会检查行的非最终状态,并可能抛出不恰当的错误。然而这些触发器的触发顺序由其名称决定,而由于触发器使用遵循 “RI_ConstraintTrigger_NNNN” 约定的自动生成名称,它们通常按创建顺序排序。彻底的修复需要修改该约定(我们将在 9.2 中做),但在现有版本中更改它似乎有风险。因此此补丁只更改触发器的创建顺序。遇到这类错误的用户应删除并重新创建外键约束,使其触发器处于正确顺序。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免在跟踪缓冲区分配率时发生浮点下溢(Greg Matthews)
虽然这本身无害,但在某些平台上会导致烦人的内核日志消息。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 Windows 下启动子进程时保留配置文件名和行号值(Tom Lane)
此前它们不会在 pg_settings 视图中正确显示。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 ecpg 的 SQLDA 区域中不正确的字段对齐(Zoltan Boszormenyi)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 psql 的命令历史中保留命令内的空行(Robert Haas)
例如,如果从字符串字面量中删除了空行,先前的行为可能导致问题。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 pg_dump,使其转储自动生成类型(如表行类型)之间的用户定义转换(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
对 pg_upgrade 的若干修复(Bruce Momjian)
正确处理排他约束、避免 Windows 上的失败、不再对 8.4 数据库中不匹配的 toast 表名报错。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
使用首选版本的 xsubpp 构建 PL/Perl,而不一定是操作系统的主副本(David Wheeler、Alex Hunsaker)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 contrib/dict_int 和 contrib/dict_xsyn 中的错误编码(Tom Lane)
一些函数错误地假定 palloc() 返回的内存保证被清零。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 contrib/unaccent 配置文件解析中的若干错误(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
让 pgstatindex() 及时响应查询取消中断(Robert Haas)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 Mac OS X 启动脚本中日志文件名的不正确引号(Sidar Lopez)
变更
确保 VPATH 构建正确安装所有服务器头文件(Peter Eisentraut)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
缩短详细错误消息中报告的文件名(Peter Eisentraut)
常规构建一直只报告包含错误消息调用的 C 文件的名称,但 VPATH 构建此前报告绝对路径名。
变更
修复中美洲 Windows 时区名的解释(Tom Lane)
把“Central America Standard Time”映射为 CST6 而不是 CST6CDT,因为中美洲各地通常不实行夏令时。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
把时区数据文件更新为 tzdata 版本 2011n for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa; also historical corrections for Alaska and British East Africa。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
对于运行 9.0.X 的用户,不需要进行转储/恢复。
不过,如果你是从早于 9.0.4 的版本升级,请参见第 E.20 节。
变更
修复对系统目录执行 VACUUM FULL 或 CLUSTER 之后的目录缓存失效(Tom Lane)
某些情况下,系统目录行被重定位到别处不会被并发服务器进程识别,如果它们随后尝试更新该行,就可能发生目录损坏。最坏的结果可能是一张表完全丢失。
变更
修复 sinval 重置处理期间错误的操作顺序,并确保 TOAST OID 在系统目录中被保留(Tom Lane)
这些失误可能导致对系统目录执行 VACUUM FULL 或 CLUSTER 之后出现瞬时失败。
变更
修复对不确定的 HOT 更新元组建立索引的缺陷(Tom Lane)
这些缺陷可能导致重建系统目录索引之后索引损坏。据信它们不影响用户索引。
变更
修复 GiST 索引页面分裂处理中的多个缺陷(Heikki Linnakangas)
发生概率很低,但它们可能导致索引损坏。
变更
修复 tsvector_concat() 中可能的缓冲区越界(Tom Lane)
该函数可能低估其结果所需的内存量,导致服务器崩溃。
变更
修复 xml_recv 处理“standalone”参数时的崩溃(Tom Lane)
变更
让 pg_options_to_table 对没有值的选项返回 NULL(Tom Lane)
此前这类情况会导致服务器崩溃。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免在 ANALYZE 和 SJIS-2004 编码转换中可能越过内存末尾的访问(Noah Misch)
这修复了一些概率极低的服务器崩溃场景。
变更
保护 pg_stat_reset_shared() 免受 NULL 输入(Magnus Hagander)
变更
修复在子事务内检测到恢复冲突死锁时可能的失败(Tom Lane)
变更
避免热备期间回收 btree 索引页时的虚假冲突(Noah Misch、Simon Riggs)
变更
如果恢复结束时 WAL 接收端仍在运行则将其关闭(Heikki Linnakangas)
postmaster 此前在这种情况下会 panic,但这实际上是合法的情况。
变更
修复 relcache init 文件失效中的竞态条件(Tom Lane)
存在一个时间窗口,新的后端进程可能读到过期的 init 文件,却错过本应告知它数据已过期的失效消息。结果是目录访问中的离奇失败,通常在启动稍后阶段报 “could not read block 0 in file ...”。
变更
修复 GiST 索引扫描结束时的内存泄漏(Tom Lane)
执行许多独立 GiST 索引扫描的命令(例如对已包含许多行的表验证新的基于 GiST 的排他约束)会因此泄漏瞬时需要大量内存。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复当必须对传入的命令串做编码转换且 LISTEN 处于活动状态时的内存泄漏(Tom Lane)
变更
修复支持可持有游标和 plpgsql 的 RETURN NEXT 命令的 tuplestore 中不正确的内存核算(可能导致内存膨胀)(Tom Lane)
变更
修复同时存在 BEFORE 和 AFTER 触发器时的触发器 WHEN 条件(Tom Lane)
如果同一更新曾触发过 BEFORE ROW 触发器,AFTER ROW UPDATE 触发器的 WHEN 条件求值可能崩溃。
变更
修复构造大型有损位图时的性能问题(Tom Lane)
变更
修复唯一列的连接选择率估计(Tom Lane)
这修复了一个可能错误估计连接结果大小的规划器启发式规则。
变更
修复只出现在子 SELECT 目标列表中的嵌套 PlaceHolderVar 表达式(Tom Lane)
这一失误可能导致外连接的输出错误地显示为 NULL。
变更
允许规划器假定空的父表真的是空的(Tom Lane)
通常为了规划目的,空表被假定具有某个最小大小;但对继承层次的父表而言,这一启发式规则似乎弊大于利,因为父表往往永久为空。
变更
允许嵌套的 EXISTS 查询被正确优化(Tom Lane)
变更
修复数组和路径创建函数,确保填充字节为零(Tom Lane)
这避免了一些规划器认为语义相等的常量不相等的情况,这种情况会导致糟糕的优化。
变更
修复 EXPLAIN,使其处理内层索引扫描子计划中的门控 Result 节点(Tom Lane)
这一疏忽的常见症状是 “bogus varno” 错误。
变更
修复 btree 对 indexedcol IS NULL 条件的预处理(Dean Rasheed)
如果与同一索引列上任何其他类型的 btree 可索引条件组合,该条件是不可满足的。这种情况在 9.0.0 及更高版本中处理不正确,导致本应没有输出的查询产生输出。
变更
规避破坏 WAL 重放的 gcc 4.6.0 缺陷(Tom Lane)
这可能导致服务器崩溃后已提交事务的丢失。
变更
修复视图中 VALUES 的转储缺陷(Tom Lane)
变更
禁止对序列执行 SELECT FOR UPDATE/SHARE(Tom Lane)
这种操作不像预期那样工作,可能导致失败。
变更
修复 VACUUM,使其总是更新 pg_class.reltuples/relpages(Tom Lane)
这修复了一些自动清理可能对何时清理表做出越来越差决策的场景。
变更
防御计算哈希表大小时的整数溢出(Tom Lane)
变更
修复 CLUSTER 可能尝试访问已移除的 TOAST 数据的情况(Tom Lane)
变更
修复初始认证事务期间的过早超时失败(Tom Lane)
变更
修复 “peer” 认证使用凭据控制消息时的可移植性缺陷(Tom Lane)
变更
修复需要多次往返时的 SSPI 登录(Ahmed Shinwari、Magnus Hagander)
该问题的典型症状是 SSPI 登录期间的 “The function requested is not supported” 错误。
变更
修复向 postgresql.conf 添加自定义变量类的新变量时的失败(Tom Lane)
变更
如果 pg_hba.conf 包含 hostssl 但 SSL 被禁用则抛出错误(Tom Lane)
这被认定比此前静默忽略这类行的行为更用户友好。
变更
修复 DROP OWNED BY 试图移除序列上的默认权限时的失败(Shigeru Hanada)
变更
修复 pg_srand48 种子初始化中的笔误(Andres Freund)
这导致未能使用所提供种子的所有位。该函数在大多数平台上不使用(只在没有 srandom 的平台上使用),而且无论如何看待,随机性低于预期的种子带来的潜在安全暴露似乎都很小。
变更
避免 LIMIT 与 OFFSET 值之和超过 2^63 时的整数溢出(Heikki Linnakangas)
变更
为 generate_series() 的 int4 和 int8 版本添加溢出检查(Robert Haas)
变更
修复 to_char() 中移除尾随零的问题(Marti Raudsepp)
在使用 FM 且小数点后没有数字位的格式中,小数点左侧的零可能被错误移除。
变更
修复 pg_size_pretty(),避免接近 2^63 的输入溢出(Tom Lane)
变更
放宽 plpgsql 对记录值中 typmod 匹配的检查(Tom Lane)
过于严格的检查可能导致丢弃本应保留的长度修饰符。
变更
在 initdb 期间正确处理区域名中的引号(Heikki Linnakangas)
这种情况可能出现在某些 Windows 区域设置下,例如“People's Republic of China”。
变更
在 pg_upgrade 中,避免转储孤儿临时表(Bruce Momjian)
这防止了表 OID 分配在新旧安装之间失去同步的情况。
变更
修复 pg_upgrade,使其在从 8.3 升级期间保留 toast 表的 relfrozenxid(Bruce Momjian)
不这样做可能导致升级后 pg_clog 文件被过早删除。
变更
修复 pg_upgrade 的 -l(日志)选项在 Windows 上工作的问题(Bruce Momjian)
变更
在 pg_ctl 中,支持 Windows 上服务注册的静默模式(MauMau)
变更
修复 psql 在从其他文件执行 COPY 期间脚本文件行号计数的问题(Tom Lane)
变更
修复 pg_restore 直接写数据库模式对 standard_conforming_strings 的处理(Tom Lane)
当从以 standard_conforming_strings 设为 on 制作的归档文件直接恢复到数据库服务器时,pg_restore 可能发出不正确的命令。
变更
对并行 pg_restore 不支持的情况更加用户友好(Tom Lane)
此变更确保这类情况在任何恢复动作发生之前就被检测并报告。
变更
修复 libpq 的 LDAP 服务查找代码中的越界写入和内存泄漏(Albe Laurenz)
变更
在 libpq 中,避免使用非阻塞 I/O 和 SSL 连接时的失败(Martin Pihlak、Tom Lane)
变更
改进 libpq 对连接启动期间失败的处理(Tom Lane)
特别是,对 SSL 连接启动期间服务器报告 fork() 失败的响应现在更合理。
变更
改进 libpq 对 SSL 失败的错误报告(Tom Lane)
变更
修复 PQsetvalue(),避免向最初来自服务器查询的 PGresult 添加新元组时可能崩溃(Andrew Chernow)
变更
让 ecpglib 以 15 位精度写 double 值(Akira Kurosawa)
变更
在 ecpglib 中,确保出错后恢复 LC_NUMERIC 设置(Michael Meskes)
变更
应用上游对 blowfish 有符号字符缺陷的修复(CVE-2011-2483)(Tom Lane)
contrib/pg_crypto 的 blowfish 加密代码在 char 为有符号的平台(大多数平台如此)上可能给出错误结果,导致加密口令比应有的强度更弱。
变更
修复 contrib/seg 中的内存泄漏(Heikki Linnakangas)
变更
修复 pgstatindex(),使其对空索引给出一致结果(Tom Lane)
变更
允许使用 perl 5.14 构建(Alex Hunsaker)
变更
修复构建和安装文件路径包含空格的各种问题(Tom Lane)
变更
把时区数据文件更新为 tzdata 版本 2011i for DST law changes in Canada, Egypt, Russia, Samoa, and South Sudan。
对于运行 9.0.X 的用户,不需要进行转储/恢复。
不过,如果你的安装是通过运行 pg_upgrade 从前一个大版本升级的,应采取措施防止因 pg_upgrade 一个现已修复的缺陷导致可能的数据丢失。推荐的解决方案是对所有 TOAST 表执行 VACUUM FREEZE。更多信息见 http://wiki.postgresql.org/wiki/20110408pg_upgrade_fix。
变更
修复 pg_upgrade 对 TOAST 表的处理(Bruce Momjian)
在 pg_upgrade 期间,TOAST 表的 pg_class.relfrozenxid 值未被正确复制到新安装。这之后可能导致 pg_clog 文件在仍被需要用于验证 TOAST 表中的元组时被丢弃,导致 “could not access status of transaction” 失败。
这一错误对曾用 pg_upgrade 升级的安装构成显著的数据丢失风险。此补丁纠正了未来使用 pg_upgrade 时的问题,但本身不能治愈已用带缺陷版本的 pg_upgrade 处理过的安装中的问题。
变更
抑制错误的 “PD_ALL_VISIBLE flag was incorrectly set” 警告(Heikki Linnakangas)
VACUUM 有时会在实际有效的情况下发出此警告。
变更
为热备冲突情况使用更好的 SQLSTATE 错误码(Tatsuo Ishii、Simon Riggs)
所有可重试的冲突错误现在都具有指示可以重试的错误码。此外,因主库上数据库被删除而关闭会话现在报告为 ERRCODE_DATABASE_DROPPED 而不是 ERRCODE_ADMIN_SHUTDOWN,使连接池能够正确处理这种情况。
变更
防止启动进程与 bgwriter 进程交互时的间歇性挂起(Simon Riggs)
这影响非热备情况下的恢复。
变更
禁止在组合类型中包含其自身(Tom Lane)
这防止了服务器在处理该组合类型时无限递归的场景。虽然这种结构有一些可能的用途,但它们似乎不足以抵消确保其始终安全工作所需的努力。
变更
避免目录缓存初始化期间的潜在死锁(Nikhil Sontakke)
某些情况下,缓存加载代码会在锁定索引的目录之前获取系统索引上的共享锁。这可能与尝试以另一种更标准的顺序获取排他锁的进程死锁。
变更
修复当目标元组存在并发更新时 BEFORE ROW UPDATE 触发器处理中的悬空指针问题(Tom Lane)
已观察到该缺陷在尝试执行 UPDATE RETURNING ctid 时导致间歇性的 “cannot extract system attribute from virtual tuple” 失败。发生更严重错误(例如为更新后的元组生成错误索引项)的概率非常小。
变更
当表存在未决的延迟触发器事件时禁止 DROP TABLE(Tom Lane)
此前 DROP 会照常执行,导致触发器最终触发时报 “could not open relation with OID nnn” 错误。
变更
允许 “replication” 作为 pg_hba.conf 中的用户名(Andrew Dunstan)
“replication” 在数据库名列中是特殊的,但它被误认为在用户名列中也是特殊的。
变更
防止 GEQO 优化期间由恒假 WHERE 条件触发的崩溃(Tom Lane)
变更
改进规划器对半连接和反连接情况的处理(Tom Lane)
变更
修复子 SELECT 中 SELECT FOR UPDATE 的处理(Tom Lane)
该缺陷通常导致 “cannot extract system attribute from virtual tuple” 错误。
变更
修复文本搜索的选择率估计,使其考虑 NULL(Jesper Krogh)
变更
修复 get_actual_variable_range(),使其支持由索引顾问插件注入的假设索引(Gurjeet Singh)
变更
修复涉及数组切片的 PL/Python 内存泄漏(Daniel Popowich)
变更
允许 libpq 的 SSL 初始化在用户主目录不可用时成功(Tom Lane)
如果 SSL 模式不要求根证书文件,就没有必要失败。此变更将行为恢复为 9.0 之前的样子。
变更
修复 libpq,使其对 conninfo_array_parse 中检测到的错误返回有用的错误消息(Joseph Adams)
一个笔误导致库向应用返回 NULL 而不是包含错误消息的 PGconn 结构。
变更
修复 ecpg 预处理器对 float 常量的处理(Heikki Linnakangas)
变更
修复并行 pg_restore,使其正确处理 POST_DATA 项上的注释(Arnd Hannemann)
变更
修复 pg_restore,使其能处理 TOC 文件中的长行(超过 1KB)(Tom Lane)
变更
加入更多防护,防止因过于激进的编译器优化导致的除零崩溃(Aurelien Jarno)
变更
支持在 FreeBSD 和 OpenBSD 的 MIPS 上使用 dlopen()(Tom Lane)
此前有一个硬编码的假设:该系统函数在这些系统的 MIPS 硬件上不可用。现在改用编译期测试,因为较新的版本已经有了它。
变更
修复 HP-UX 上的编译失败(Heikki Linnakangas)
变更
避免在进程启动极早期尝试写入 Windows 控制台时崩溃(Rushabh Lathia)
变更
支持使用 MinGW 64 位编译器为 Windows 构建(Andrew Dunstan)
变更
修复 Windows 上 libintl 的版本不兼容问题(Hiroshi Inoue)
变更
修复 Windows 构建脚本中 xcopy 的用法,使其在 Windows 7 下正确工作(Andrew Dunstan)
这只影响构建脚本,不影响安装或使用。
变更
修复 pg_regress 在 Cygwin 上使用的路径分隔符(Andrew Dunstan)
变更
把时区数据文件更新为 tzdata 版本 2011f for DST law changes in Chile, Cuba, Falkland Islands, Morocco, Samoa, and Turkey; also historical corrections for South Australia, Alaska, and Hawaii。
对于运行 9.0.X 的用户,不需要进行转储/恢复。
变更
在退出 walreceiver 之前,确保所有已接收的 WAL 都已 fsync 到磁盘(Heikki Linnakangas)
否则备库服务器可能重放一些未同步的 WAL,如果系统恰好在那时崩溃,可想而知会导致数据损坏。
变更
避免 walreceiver 中过多的 fsync 活动(Heikki Linnakangas)
变更
让 ALTER TABLE 在需要时重新验证唯一性和排他约束(Noah Misch)
这在 9.0 中被一个本意是抑制 VACUUM FULL 和 CLUSTER 期间重新验证的变更破坏,但该变更无意中也影响了 ALTER TABLE。
变更
修复对表不完全相同的继承树执行 UPDATE 时 EvalPlanQual 的问题(Tom Lane)
表行类型的任何变化(包括只存在于部分子表中的已删除列)都会混淆 EvalPlanQual 代码,导致行为异常甚至崩溃。由于 EvalPlanQual 只在同一行的并发更新期间执行,该问题只是间歇性出现。
变更
避免 EXPLAIN 尝试显示简单形式 CASE 表达式时的失败(Tom Lane)
如果 CASE 的测试表达式是常量,规划器可能把 CASE 简化为令表达式显示代码困惑的形式,导致 “unexpected CASE WHEN clause” 错误。
变更
修复对现有下标范围之前的数组切片赋值的问题(Tom Lane)
如果新增下标与第一个既有下标之间存在间隙,代码会错误计算需要从旧数组的空值位图复制多少条目,可能导致数据损坏或崩溃。
变更
避免规划器对非常久远的日期值出现意外的转换溢出(Tom Lane)
date 类型支持的日期范围比 timestamp 类型能表示的更宽,但规划器假定它总是可以不受惩罚地把 date 转换为 timestamp。
变更
修复数组包含空条目时 PL/Python 的崩溃(Alex Hunsaker)
变更
移除 ecpg 对定义数组维度的常量的固定长度限制(Michael Meskes)
变更
修复对包含 ... & !(subexpression) | ... 的 tsquery 值的错误解析(Tom Lane)
包含这种操作符组合的查询没有被正确执行。同样的错误也存在于 contrib/intarray 的 query_int 类型和 contrib/ltree 的 ltxtquery 类型中。
变更
修复 contrib/intarray 的 query_int 类型输入函数中的缓冲区越界(Apple)
该缺陷构成安全风险,因为函数的返回地址可能被覆写。感谢 Apple Inc 的安全团队报告此问题并提供修复。(CVE-2010-4015)
变更
修复 contrib/seg 的 GiST picksplit 算法中的缺陷(Alexander Korotkov)
这可能导致 seg 列上的 GiST 索引相当低效,尽管答案并非真正错误。如果你有这样的索引,考虑在安装此更新后对其执行 REINDEX。(这与上一次更新中在 contrib/cube 中修复的缺陷相同。)
对于运行 9.0.X 的用户,不需要进行转储/恢复。
变更
强制 Linux 上的默认 wal_sync_method 为 fdatasync(Tom Lane、Marti Raudsepp)
Linux 上的默认值实际上多年来一直是 fdatasync,但最近的内核变更导致 PostgreSQL 改选 open_datasync。这一选择没有带来任何性能改进,反而在某些文件系统(特别是使用 data=journal 挂载选项的 ext4)上导致彻底失败。
变更
修复热备重放期间的 “too many KnownAssignedXids” 错误(Heikki Linnakangas)
变更
修复热备期间锁获取中的竞态条件(Simon Riggs)
变更
避免热备期间不必要的冲突(Simon Riggs)
这修复了一些重放被认为与备库查询冲突(导致重放延迟或可能取消查询)但实际上并不存在真正冲突的情况。
变更
修复 GIN 索引 WAL 重放逻辑中的若干缺陷(Tom Lane)
这可能导致复制期间的 “bad buffer id: 0” 失败或索引内容损坏。
变更
修复当起始检查点 WAL 记录与其重做点不在同一 WAL 段时从基础备份恢复的问题(Jeff Davis)
变更
修复在创建主数据库集簇后立即启用流复制时的极端情况缺陷(Heikki Linnakangas)
变更
修复多个工作进程长期保持活动时自动清理工作进程的持续变慢(Tom Lane)
如果自动清理工作进程处理了足够多的表,其有效 vacuum_cost_limit 可能降到接近零,导致其运行极慢。
变更
修复自动清理启动器中的长期内存泄漏(Alvaro Herrera)
变更
避免在事务之外尝试报告即将发生的事务回卷情况时失败(Tom Lane)
这一疏忽阻碍了事务回卷过于接近后的恢复,因为数据库启动处理会失败。
变更
新增在 IA64 上检测寄存器栈溢出的支持(Tom Lane)
IA64 架构有两个硬件栈。要完全防止栈溢出失败需要同时检查两者。
变更
在 copyObject() 中添加栈溢出检查(Tom Lane)
给定足够复杂的查询,某些代码路径可能因栈溢出而崩溃。
变更
修复临时 GiST 索引中页面分裂的检测(Heikki Linnakangas)
在临时索引中可能出现“并发”页面分裂,例如当插入时有打开的游标正在扫描该索引。GiST 未能检测到这种情况,因此当游标继续执行时可能给出错误结果。
变更
修复早期连接处理期间的错误检查(Tom Lane)
某些情况下对子进程过多的检查被跳过,可能在尝试把新子进程添加到固定大小数组时导致 postmaster 崩溃。
变更
改进窗口函数的效率(Tom Lane)
某些需要提前读取大量元组、但 work_mem 足够大可以全部保存在内存中的情况意外地慢。percent_rank()、cume_dist() 和 ntile() 尤其受此问题影响。
变更
避免在 ANALYZE 复杂索引表达式时内存泄漏(Tom Lane)
变更
确保使用整行 Var 的索引仍依赖于其表(Tom Lane)
像 create index i on t (foo(t.*)) 这样声明的索引在删除其表时不会自动被删除。
变更
补齐 DROP OWNED BY 中缺失的移除用户所拥有的外部数据包装器/服务器权限的支持(Heikki Linnakangas)
变更
不要“内联”带多个 OUT 参数的 SQL 函数(Tom Lane)
这避免了因丢失预期结果行类型信息而可能出现的崩溃。
变更
修复内联参数列表包含对可内联用户函数引用的集合返回函数时的崩溃(Tom Lane)
变更
修复当 ORDER BY、LIMIT、FOR UPDATE 或 WITH 附加到 INSERT ... VALUES 的 VALUES 部分时的正确行为(Tom Lane)
变更
把 OFF 关键字改为非保留(Heikki Linnakangas)
这避免了在 PL/pgSQL 中使用 off 作为变量名的问题。这在 9.0 之前可行,但现在被破坏了,因为 PL/pgSQL 现在把所有核心保留字视为保留。
变更
修复 COALESCE() 表达式的常量折叠(Tom Lane)
规划器有时会尝试求值实际上永远不可达的子表达式,可能导致意外错误。
变更
修复比较整行 Var 时的 “could not find pathkey item to sort” 规划器失败(Tom Lane)
变更
修复当连接接受(accept() 或紧随其后的调用之一)失败且 postmaster 编译时带 GSSAPI 支持时的 postmaster 崩溃(Alexander Chernikov)
变更
在收到来自 RADIUS 认证服务器的无效响应包之后重试(Magnus Hagander)
这修复了一个低风险的潜在拒绝服务条件。
变更
修复 log_temp_files 处于活动状态时临时文件漏删的问题(Tom Lane)
如果尝试发出日志消息时出错,就不会执行删除,导致临时文件累积。
变更
为 InhRelation 节点添加打印功能(Tom Lane)
这避免了启用 debug_print_parse 且执行某些类型的查询时的失败。
变更
修复点到水平线段距离的错误计算(Tom Lane)
该缺陷影响多个不同的几何距离测量操作符。
变更
修复 ecpg 中事务状态的错误计算(Itagaki Takahiro)
变更
修复 psql Unicode 转义支持的错误(Tom Lane)
变更
加快归档包含许多大对象(blob)时并行 pg_restore 的速度(Tom Lane)
变更
修复 PL/pgSQL 对“简单”表达式的处理,使其在递归或错误恢复情况下不失败(Tom Lane)
变更
修复 PL/pgSQL 对不存在列情况的错误报告(Tom Lane)
从 9.0 起,它有时会报 “missing FROM-clause entry for table foo”,而更合适的消息应是 “record foo has no field bar”。
变更
修复 PL/Python,使其在给元组字段赋值时遵循 typmod(即长度或精度限制)(Tom Lane)
这修复了一个自 8.4 以来的退化。
变更
修复 PL/Python 对集合返回函数的处理(Jan Urbanski)
在生成集合结果的迭代器内尝试调用 SPI 函数会失败。
变更
修复 contrib/cube 的 GiST picksplit 算法中的缺陷(Alexander Korotkov)
这可能导致 cube 列上的 GiST 索引相当低效,尽管答案并非真正错误。如果你有这样的索引,考虑在安装此更新后对其执行 REINDEX。
变更
contrib/dblink 除了在创建新连接时外不再发出“identifier will be truncated”通知(Itagaki Takahiro)
变更
修复 contrib/pgcrypto 在缺少公钥时可能的核心转储(Marti Raudsepp)
变更
修复 contrib/pg_upgrade 中的缓冲区越界(Hernan Gonzalez)
变更
修复 contrib/xml2 的 XPath 查询函数中的内存泄漏(Tom Lane)
变更
把时区数据文件更新为 tzdata 版本 2010o for DST law changes in Fiji and Samoa; also historical corrections for Hong Kong。
对于运行 9.0.X 的用户,不需要进行转储/恢复。
变更
在 PL/Perl 和 PL/Tcl 中为每个调用方 SQL 用户 ID 使用单独的解释器(Tom Lane)
此变更防止了可通过破坏稍后将在同一会话中以另一 SQL 用户身份执行的 Perl 或 Tcl 代码(例如在 SECURITY DEFINER 函数内)而造成的安全问题。大多数脚本语言都提供许多实现这一点的手段,例如重新定义目标函数调用的标准函数或操作符。如果没有此变更,任何拥有 Perl 或 Tcl 语言使用权的 SQL 用户基本上都能以目标函数所有者的 SQL 权限为所欲为。
此变更的代价是 Perl 和 Tcl 函数之间的有意通信变得更困难。为提供出路,PL/PerlU 和 PL/TclU 函数继续每会话只使用一个解释器。这不被视为安全问题,因为所有这类函数本来就以数据库超级用户的信任级别执行。
声称提供可信执行的第三方过程语言很可能存在类似的安全问题。我们建议就安全关键用途联系你所依赖的任何 PL 的作者。
感谢 Tim Bunce 指出此问题(CVE-2010-3433)。
变更
改进 pg_get_expr() 的安全修复,使该函数仍可用于子 SELECT 的输出(Tom Lane)
变更
修复占位符求值位置不正确的问题(Tom Lane)
当外连接的内侧是输出列表中含非严格表达式的子 SELECT 时,该缺陷可能导致本应为空的查询输出非空。
变更
修复连接消除对占位符表达式的处理(Tom Lane)
变更
修复 UNION ALL 成员关系可能被重复扫描的问题(Tom Lane)
变更
防止取消监听后 ProcessIncomingNotify() 中的无限循环(Jeff Davis)
变更
防止 show_session_authorization() 在自动清理进程中崩溃(Tom Lane)
变更
重新允许输入公元 0001-01-01 之前的儒略日期(Tom Lane)
像 'J100000'::date 这样的输入在 8.4 之前可行,但被新增的错误检查无意中破坏。
变更
让 psql 在自动提交关闭模式下把 DISCARD ALL 识别为不应包裹在事务块中的命令(Itagaki Takahiro)
变更
更新构建基础设施和文档,反映源代码仓库从 CVS 迁移到 Git 的变化(Magnus Hagander 等)
试试其他关键词,或。
对比以 PostgreSQL 发行说明为依据,汇总起始版本之后、目标版本及之前的变更,支持同一大版本内的小版本更新,以及跨大版本升级。跨大版本时,旧分支的维护记录只纳入到下一大版本首次发布之日,所有记录均不晚于目标版本的发布日期。大版本名称(如 18)指首个正式版本(18.0);测试版与开发快照会单独标注。
条目正文来自本站中文手册,版本清单、条目覆盖与提交依据逐一核对上游英文原文。每条变更保留完整说明与原文链接;分类用于辅助浏览,具体影响、适用条件与升级操作请阅读条目正文和各版本的升级说明。
同一修复可能回补到多个版本分支。对比会保守合并可确认相同的条目,并保留各分支完整说明;已知由起始版本包含的修复会排除。一条说明包含多个独立修复时,只有全部已包含才排除。大版本新功能不因与旧版补丁存在提交关联而合并,不能确认相同的条目继续保留。这是发行说明的累计差异,不能覆盖二进制程序之间的每一处代码变化。
CVE 独立依据 PostgreSQL 官方安全公告与漏洞记录计算:起始版本受影响、目标版本已修复或不受影响的漏洞才计入,按编号去重。目标版本仍受影响的漏洞另行提示;安全变更条数与 CVE 数量分别统计。
交互参考 pgversions.com 与 pgversionreport,内容来自 PostgreSQL 发行说明。更多历史资料见发行说明归档。