↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

文档版本对比

POSTGRESQL · VERSION COMPARE

PostgreSQL 版本对比

对比两个 PostgreSQL 大版本或小版本,查看沿途新增的功能、修复的问题与 CVE 安全记录。

查看该版本全部变更
查看该版本全部变更

从起始版本之后,看到目标版本为止。大版本名称代表该系列首个正式版本。

收录 PostgreSQL 9.0 起的 17 个大版本、352 份发布说明;数据更新于 2026-09-26。

小版本更新

9.2→9.2.24

2012-09-10 2017-11-09

导出 JSON
730项变更功能、修复与改进
24次版本发布按发行版本归档
30个 CVE按漏洞编号去重

9.2.0 历史版本维护截止 2017-11-09

9.2.24 历史版本维护截止 2017-11-09

安全修复索引 30 个 CVE
版本区间内的 CVE 安全记录,按评分从高到低排列
CVE / 问题严重程度修复版本
CVE-2014-0062

避免在表和索引 DDL 期间进行多次名称查找

目标版本已修复
8.8高危9.2.7
CVE-2017-7547

进一步限制 pg_user_mappings.umoptions 的可见性,以保护存储为用户映射选项的密码

目标版本已修复
8.5高危9.2.22
CVE-2017-7486

限制pg_user_mappings.umoptions的可见性,以保护作为用户映射选项存储的密码

目标版本已修复
8.5高危9.2.21
CVE-2016-5424

修复客户端程序对数据库名和角色名中特殊字符的处理

目标版本已修复
8.5高危9.2.18
CVE-2017-12172

修复示例服务器启动脚本在打开 $PGLOG 之前变成 $PGUSER

目标版本已修复
8.4高危9.2.24
CVE-2017-7546

禁止在所有基于密码的认证方法中使用空密码

目标版本已修复
8.1高危9.2.22
CVE-2015-0244

修复出错后前端/后端协议可能失去同步的问题

目标版本已修复
8.1高危9.2.10
CVE-2016-7048

Interactive installer downloads software over plain HTTP, then executes it

目标版本已修复
7.5高危9.2.19
CVE-2015-3165

避免客户端恰在认证超时到期前断开时可能出现的崩溃

目标版本已修复
7.5高危9.2.11
CVE-2014-0061

防止通过手工调用 PL 验证器函数进行权限提升

目标版本已修复
7.5高危9.2.7
CVE-2014-0067

锁定 Windows 上回归测试的临时安装

目标版本已修复
7.0高危9.2.10
CVE-2016-0773

修复正则表达式中的无限循环和缓冲区越界问题

目标版本已修复
6.5中危9.2.15
CVE-2015-0243

修复contrib/pgcrypto中的缓冲区越界

目标版本已修复
6.5中危9.2.10
CVE-2014-0064

防止大小计算中的整数溢出导致缓冲区越界

目标版本已修复
6.5中危9.2.7
CVE-2015-3166

改进对系统调用失败的检测

目标版本已修复
5.6中危9.2.11
CVE-2017-7484

防止通过泄漏型操作符暴露统计信息

目标版本已修复
4.3中危9.2.21
CVE-2016-5423

修复嵌套 CASE-WHEN 表达式可能被错误评估的问题

目标版本已修复
4.3中危9.2.18
CVE-2014-0063

防止长日期时间字符串造成缓冲区越界

目标版本已修复
4.3中危9.2.7
CVE-2015-0242

修复替换实现的*printf()函数中的缓冲区越界

目标版本已修复
4.2中危9.2.10
CVE-2015-0241

修复to_char()中的缓冲区越界

目标版本已修复
4.2中危9.2.10
CVE-2015-3167

在contrib/pgcrypto中,统一将解密失败报告为“Wrong key or corrupt data”

目标版本已修复
3.7低危9.2.11
CVE-2015-5288

修复contrib/pgcrypto以检测并报告过短的crypt()盐值

目标版本已修复
3.1低危9.2.14
CVE-2014-8161

修复通过约束违反错误消息的信息泄露

目标版本已修复
3.1低危9.2.10
CVE-2014-0060

加固 GRANT ... WITH ADMIN OPTION 的限制

目标版本已修复
3.1低危9.2.7
CVE-2014-0066

避免在 crypt() 返回 NULL 时崩溃

目标版本已修复
0.0无9.2.7
CVE-2014-0065

防止固定大小缓冲区越界

目标版本已修复
0.0无9.2.7
CVE-2013-1901

让 REPLICATION 权限检查测试当前用户而不是已认证用户

目标版本已修复
—9.2.4
CVE-2013-1900

在每个 postmaster 子进程中重置 OpenSSL 随机状态

目标版本已修复
—9.2.4
CVE-2013-1899

修复服务器命令行开关解析不安全的问题

目标版本已修复
—9.2.4
CVE-2013-0255

防止从 SQL 执行 enum_recv

目标版本已修复
—9.2.3
目标版本仍有 48 个已知漏洞
目标版本仍受影响的 CVE,按评分从高到低排列
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低危该分支未提供

PostgreSQL 9.2.24

升级与兼容性说明

对于运行 9.2.X 的用户,不需要进行转储/恢复。

不过,如果你是从早于 9.2.22 的版本升级,请参见第 E.3 节。

安全相关修复示例服务器启动脚本在打开 $PGLOG 之前变成 $PGUSER

变更

修复示例服务器启动脚本在打开 $PGLOG 之前变成 $PGUSER(Noah Misch)

此前,postmaster 日志文件是在仍以 root 运行时打开的。因此数据库所有者可以通过让 $PGLOG 成为指向某个其他文件的符号链接来攻击另一个系统用户,该文件随后会因追加日志消息而被损坏。

默认情况下这些脚本不会安装到任何地方。使用了它们的用户需要手动重新复制,或对其修改版应用相同的更改。如果现有的 $PGLOG 文件为 root 所有,在用修正后的脚本重启服务器之前需要把它移开或重命名。(CVE-2017-12172)

关联记录(5)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进正确拒绝把无穷大浮点值转换为 numeric 类型的尝试

变更

正确拒绝把无穷大浮点值转换为 numeric 类型的尝试(Tom Lane、KaiGai Kohei)

此前行为是与平台相关的。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复在视图末尾添加列后的边界崩溃

变更

修复在视图末尾添加列后的边界崩溃(Tom Lane)

关联记录(5)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在视图或规则包含 FieldSelect 或 FieldStore 表达式节点时记录正确的依赖

变更

在视图或规则包含 FieldSelect 或 FieldStore 表达式节点时记录正确的依赖(Tom Lane)

缺少这些依赖可能允许本应失败的列或数据类型 DROP 成功执行,从而导致之后使用该视图或规则时出错。此补丁不会保护现有视图/规则,只保护将来创建的。

关联记录(5)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进正确检测范围数据类型的可哈希性

变更

正确检测范围数据类型的可哈希性(Tom Lane)

规划器错误地假定任何范围类型都可以哈希用于哈希连接或哈希聚合,但实际上必须检查范围的子类型是否有哈希支持。这不影响任何内置范围类型,因为它们反正都是可哈希的。

关联记录(5)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复因 XID 回卷导致的低概率 NOTIFY 消息丢失

变更

修复因 XID 回卷导致的低概率 NOTIFY 消息丢失(Marko Tiikkaja、Tom Lane)

如果一个会话在超过 20 亿个事务期间不执行查询而只是监听通知,它就开始遗漏来自并发提交事务的一些通知。

关联记录(5)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复防止嵌套触发器触发处理中的低概率崩溃

变更

防止嵌套触发器触发处理中的低概率崩溃(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进COPY 或 lo_export() 中文件创建失败时正确恢复 umask 设置

变更

COPY 或 lo_export() 中文件创建失败时正确恢复 umask 设置(Peter Eisentraut)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进为 ANALYZE 中的重复列名给出更好的错误消息

变更

为 ANALYZE 中的重复列名给出更好的错误消息(Nathan Bossart)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 libpq 不要求用户的主目录存在

变更

修复 libpq 不要求用户的主目录存在(Tom Lane)

在 v10 中,尝试读取 ~/.pgpass 时找不到主目录被当作硬错误,但它应该只是导致找不到该文件。v10 和以前的发布分支在读取 ~/.pg_service.conf 时犯了同样的错误,不过这不太明显,因为除非指定了服务名否则不寻找该文件。

关联记录(5)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 libpq 防范 PGresult 行数中的整数溢出

变更

修复 libpq 防范 PGresult 行数中的整数溢出(Michael Paquier)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进把我们的时区库副本与 IANA tzcode2017c 同步

变更

把我们的时区库副本与 IANA tzcode2017c 同步(Tom Lane)

这修复了若干问题;唯一可能对用户可见的是,当时区数据目录中没有 posixrules 文件时,POSIX 风格时区名的默认夏令时规则现在匹配当前美国法律而不是十几年前的。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进更新时区数据文件到 tzdata 版本 2017c,涉及斐济、纳米比亚、北塞浦路斯、苏丹、汤加以及特克斯和凯科斯群岛的夏令时法规变更,加上阿拉斯加、阿皮亚、缅甸、加尔各答、底特律、爱尔兰、纳米比亚和帕果帕果的历史修正。

变更

更新时区数据文件到 tzdata 版本 2017c,涉及斐济、纳米比亚、北塞浦路斯、苏丹、汤加以及特克斯和凯科斯群岛的夏令时法规变更,加上阿拉斯加、阿皮亚、缅甸、加尔各答、底特律、爱尔兰、纳米比亚和帕果帕果的历史修正。

关联记录(5)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

PostgreSQL 9.2.23

升级与兼容性说明

对于运行 9.2.X 的用户,不需要进行转储/恢复。

不过,如果你是从早于 9.2.22 的版本升级,请参见第 E.3 节。

其他改进在 information_schema.table_privileges 视图中显示外部表

变更

在 information_schema.table_privileges 视图中显示外部表(Peter Eisentraut)

所有其他相关的 information_schema 视图都包含外部表,只有这一个忽略了它们。

由于这个视图定义是由 initdb 安装的,仅升级不会修复问题。如果需要在现有安装中修复,可以以超级用户身份在 psql 中执行以下操作:

SET search_path TO information_schema;
CREATE OR REPLACE VIEW table_privileges AS
SELECT CAST(u_grantor.rolname AS sql_identifier) AS grantor,
       CAST(grantee.rolname AS sql_identifier) AS grantee,
       CAST(current_database() AS sql_identifier) AS table_catalog,
       CAST(nc.nspname AS sql_identifier) AS table_schema,
       CAST(c.relname AS sql_identifier) AS table_name,
       CAST(c.prtype AS character_data) AS privilege_type,
       CAST(
         CASE WHEN
          -- object owner always has grant options
          pg_has_role(grantee.oid, c.relowner, 'USAGE')
          OR c.grantable
          THEN 'YES' ELSE 'NO' END AS yes_or_no) AS is_grantable,
       CAST(CASE WHEN c.prtype = 'SELECT' THEN 'YES' ELSE 'NO' END AS yes_or_no) AS with_hierarchy
FROM (
       SELECT oid, relname, relnamespace, relkind, relowner,
              (aclexplode(coalesce(relacl, acldefault('r', relowner))).*
       FROM pg_class ) AS c (oid, relname, relnamespace, relkind, relowner, grantor, grantee, prtype, grantable),
     pg_namespace nc, pg_authid u_grantor,
     (
       SELECT oid, rolname FROM pg_authid
       UNION ALL
       SELECT 0::oid, 'PUBLIC'
     ) AS grantee (oid, rolname)
WHERE c.relnamespace = nc.oid
      AND c.relkind IN ('r', 'v', 'f')
      AND c.grantee = grantee.oid
      AND c.grantor = u_grantor.oid
      AND c.prtype IN ('INSERT', 'SELECT', 'UPDATE', 'DELETE', 'TRUNCATE', 'REFERENCES', 'TRIGGER')
      AND (pg_has_role(u_grantor.oid, 'USAGE')
           OR pg_has_role(grantee.oid, 'USAGE')
           OR grantee.rolname = 'PUBLIC');

这必须在每个要修复的数据库中重复,包括 template0。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进清理尝试对失败事务执行 ROLLBACK 时发生致命退出(例如因收到 SIGTERM)的处理

变更

清理尝试对失败事务执行 ROLLBACK 时发生致命退出(例如因收到 SIGTERM)的处理(Tom Lane)

这种情况可能导致断言失败。在生产构建中退出仍会发生,但会记录一条关于“cannot drop active portal”的意外消息。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进移除致命退出期间可能触发的断言

变更

移除致命退出期间可能触发的断言(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进正确识别范围类型或基于被搜索复合类型或域类型的域类型之上的列

变更

正确识别范围类型或基于被搜索复合类型或域类型的域类型之上的列(Tom Lane)

某些更改复合类型或域类型定义的 ALTER 命令本应在该类型有存储值时失败,因为它们缺少更新或检查这类值所需的基础设施。此前这些检查可能遗漏包裹在范围类型或子域中的相关值,可能允许数据度变得不一致。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进更改 ecpg 的解析器允许不带 C 变量的 RETURNING 子句

变更

更改 ecpg 的解析器允许不带 C 变量的 RETURNING 子句(Michael Meskes)

这允许 ecpg 程序包含在内部使用 RETURNING(例如在 CTE 内)而不是用它定义返回给客户端的值的 SQL 构造。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进改进 Windows 上 PL/Perl 编译器标志的选择

变更

改进 Windows 上 PL/Perl 编译器标志的选择(Tom Lane)

此修复避免了因对 time_t 值宽度的假定不一致而可能的 PL/Perl 崩溃。扩展开发者可能看到的一个副作用是 _USE_32BIT_TIME_T 不再在 PostgreSQL Windows 构建中全局定义。这预计不会引起问题,因为 time_t 类型没有用于任何 PostgreSQL API 定义。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

PostgreSQL 9.2.22

升级与兼容性说明

对于运行 9.2.X 的用户,不需要进行转储/恢复。

但是,如果你使用的外部数据服务器依赖用户密码进行认证,请参见下面的第一条变更日志条目。

不过,如果你是从早于 9.2.20 的版本升级,请参见第 E.5 节。

安全相关进一步限制 pg_user_mappings.umoptions 的可见性,以保护存储为用户映射选项的密码

变更

进一步限制 pg_user_mappings.umoptions 的可见性,以保护存储为用户映射选项的密码(Noah Misch)

CVE-2017-7486 的修复不正确:它允许用户看到她自己用户映射中的选项,即使她对相关外部服务器没有 USAGE 权限。这种选项可能包含由服务器所有者而非用户自己提供的密码。由于 information_schema.user_mapping_options 在这种情况下不显示选项,pg_user_mappings 也不应该。(CVE-2017-7547)

此补丁本身只会修复新 initdb 的数据库中的行为。如果希望在现有数据库中应用此更改,需要执行以下操作:

  1. 在 postgresql.conf 中添加 allow_system_table_mods = true 后重启 postmaster。(在支持 ALTER SYSTEM 的版本中,可以用它进行配置更改,但仍需重启。)

  2. 在集簇的每个数据库中,以超级用户身份运行以下命令:

    SET search_path = pg_catalog;
    CREATE OR REPLACE VIEW pg_user_mappings AS
    SELECT U.oid AS umid, S.oid AS srvid, S.srvname AS srvname,
           U.umuser AS umuser,
           CASE WHEN U.umuser = 0 THEN 'public' ELSE A.rolname END AS usename,
           CASE WHEN (U.umuser <> 0 AND A.rolname = current_user
                       AND (pg_has_role(S.srvowner, 'USAGE')
                            OR has_server_privilege(S.oid, 'USAGE')))
                    OR (U.umuser = 0 AND pg_has_role(S.srvowner, 'USAGE'))
                    OR (SELECT rolsuper FROM pg_authid WHERE rolname = current_user)
                THEN U.umoptions ELSE NULL END AS umoptions
    FROM pg_user_mapping U
         LEFT JOIN pg_authid A ON (A.oid = U.umuser)
         JOIN pg_foreign_server S ON (U.umserver = S.oid);

  3. 不要忘记包括 template0 和 template1 数据库,否则漏洞仍会存在于之后创建的数据库中。要修复 template0,需要暂时让它接受连接。在 PostgreSQL 9.5 及之后,可以使用

    ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true;

    修复 template0 之后再撤销:

    ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false;

    在更早的版本中,改用:

    UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
    UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';

  4. 最后,移除 allow_system_table_mods 配置设置,并再次重启 postmaster。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

安全相关禁止在所有基于密码的认证方法中使用空密码

变更

禁止在所有基于密码的认证方法中使用空密码(Heikki Linnakangas)

libpq 忽略空的密码说明,不把它们传输给服务器。因此,如果用户的密码被设为空字符串,就无法通过 psql 或其他基于 libpq 的客户端用该密码登录。管理员可能因此认为把密码设为空等同于禁用密码登录。然而,使用修改过的或非 libpq 的客户端,登录可能是可能的,这取决于配置的认证方法。特别是最常见的方法 md5 接受空密码。更改服务器在所有情况下拒绝空密码。(CVE-2017-7546)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 Windows 上,如果在新进程中为共享内存保留地址范围失败,则重试进程创建

变更

在 Windows 上,如果在新进程中为共享内存保留地址范围失败,则重试进程创建(Tom Lane、Amit Kapila)

这有望修复可能由杀毒产品干扰导致的偶发子进程启动失败。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 Windows 构建中共享谓词锁哈希表的低概率损坏

变更

修复 Windows 构建中共享谓词锁哈希表的低概率损坏(Thomas Munro、Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免把 SSL 连接的干净关闭当作连接重置来记录

变更

避免把 SSL 连接的干净关闭当作连接重置来记录(Michael Paquier)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进防止向客户端发送 SSL 会话票据

变更

防止向客户端发送 SSL 会话票据(Tom Lane)

此修复防止使用票据感知的客户端 SSL 代码时的重连失败。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 Solaris 上设置tcp_keepalives_idle的代码

变更

修复 Solaris 上设置tcp_keepalives_idle的代码(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复统计收集器处理 postmaster 关闭并立即重启之后发出的查询消息

变更

修复统计收集器处理 postmaster 关闭并立即重启之后发出的查询消息(Tom Lane)

在上一个 postmaster 关闭之后半秒内发出的统计查询实际上被忽略。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保统计收集器的接收缓冲区大小至少为 100KB

变更

确保统计收集器的接收缓冲区大小至少为 100KB(Tom Lane)

这降低了默认接收缓冲区大小小于该值的老平台上统计数据丢失的风险。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复备库刚处理完 XLOG_SWITCH WAL 记录后被提升时可能创建无效 WAL 段的问题

变更

修复备库刚处理完 XLOG_SWITCH WAL 记录后被提升时可能创建无效 WAL 段的问题(Andres Freund)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 walsender 进程中的 SIGHUP 和 SIGUSR1 处理

变更

修复 walsender 进程中的 SIGHUP 和 SIGUSR1 处理(Petr Jelinek、Andres Freund)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 postmaster 中竞态条件导致的 walreceiver 进程不必要的缓慢重启

变更

修复 postmaster 中竞态条件导致的 walreceiver 进程不必要的缓慢重启(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 INSERT 或 UPDATE 对数组之上域类型的列的多个元素赋值的情况

变更

修复 INSERT 或 UPDATE 对数组之上域类型的列的多个元素赋值的情况(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 ALTER ... RENAME 期间把自动生成的数组类型移开

变更

在 ALTER ... RENAME 期间把自动生成的数组类型移开(Vik Fearing)

此前我们在 CREATE 期间会把冲突的自动生成数组类型重命名移开;此修复把该行为扩展到重命名操作。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保 ALTER USER ... SET 接受 ALTER ROLE ... SET 接受的所有语法变体

变更

确保 ALTER USER ... SET 接受 ALTER ROLE ... SET 接受的所有语法变体(Peter Eisentraut)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复把数据类型 I/O 函数的参数或返回类型从 opaque 更改为正确类型时正确更新依赖信息

变更

把数据类型 I/O 函数的参数或返回类型从 opaque 更改为正确类型时正确更新依赖信息(Heikki Linnakangas)

CREATE TYPE 会更新以这种早已过时风格声明的 I/O 函数,但忘记记录对类型的依赖,允许随后的 DROP TYPE 留下损坏的函数定义。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进减少 ANALYZE 处理 tsvector 列时的内存使用

变更

减少 ANALYZE 处理 tsvector 列时的内存使用(Heikki Linnakangas)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 money 值乘以或除以整数或浮点数时不必要的精度丢失和草率舍入

变更

修复 money 值乘以或除以整数或浮点数时不必要的精度丢失和草率舍入(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进收紧对解析标识符的函数(如 regprocedurein())中空白的检查

变更

收紧对解析标识符的函数(如 regprocedurein())中空白的检查(Tom Lane)

根据当前区域,这些函数可能把多字节字符的片段误解释为空白。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进编译 PL/Perl 时使用来自 Perl 的相关 #define 符号

变更

编译 PL/Perl 时使用来自 Perl 的相关 #define 符号(Ashutosh Sharma、Tom Lane)

这避免了可移植性问题(通常表现为库加载期间的“握手”不匹配),在使用最近 Perl 版本时。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复在 psql 中,修复 COPY FROM STDIN 以键盘 EOF 信号结束后再尝试另一个 COPY FROM STDIN 时失败的问题

变更

在 psql 中,修复 COPY FROM STDIN 以键盘 EOF 信号结束后再尝试另一个 COPY FROM STDIN 时失败的问题(Thomas Munro)

这种错误行为在 BSD 衍生平台(包括 macOS)上观察到,但在大多数其他平台上没有。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_dump 不再为空操作符类发出无效 SQL

变更

修复 pg_dump 不再为空操作符类发出无效 SQL(Daniel Gustafsson)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_dump 在 Windows 上输出到 stdout

变更

修复 pg_dump 在 Windows 上输出到 stdout(Kuntal Ghosh)

由于未把文件描述符置为二进制模式,写到 stdout 的压缩纯文本转储会包含损坏的数据。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_get_ruledef() 为列被重命名的视图的 ON SELECT 规则打印正确输出

变更

修复 pg_get_ruledef() 为列被重命名的视图的 ON SELECT 规则打印正确输出(Tom Lane)

某些边界情况下 pg_dump 依靠 pg_get_ruledef() 转储视图,因此这个错误可能导致转储/恢复失败。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 FROM 子句中函数表达式不能反解析为看起来像函数调用的东西时的转储

变更

修复 FROM 子句中函数表达式不能反解析为看起来像函数调用的东西时的转储(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_basebackup 在 Windows 上输出到 stdout

变更

修复 pg_basebackup 在 Windows 上输出到 stdout(Haribabu Kommi)

由于未把文件描述符置为二进制模式,写到 stdout 的备份会包含损坏的数据。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_upgrade 确保结束 WAL 记录不具有wal_level = minimum

变更

修复 pg_upgrade 确保结束 WAL 记录不具有wal_level = minimum(Bruce Momjian)

这一条件可能阻止升级后的备库服务器重新连接。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进用 gcc 构建共享库时始终使用 -fPIC 而不是 -fpic

变更

用 gcc 构建共享库时始终使用 -fPIC 而不是 -fpic(Tom Lane)

这在有差别的平台上支持更大的扩展库。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复我们的 Microsoft MSVC 构建脚本中花括号未转义的问题,以避免较新的 Perl 版本发出警告或报错

变更

修复我们的 Microsoft MSVC 构建脚本中花括号未转义的问题,以避免较新的 Perl 版本发出警告或报错(Andrew Dunstan)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 MSVC 构建中,处理 openssl 库不在 VC 子目录内的情况

变更

在 MSVC 构建中,处理 openssl 库不在 VC 子目录内的情况(Andrew Dunstan)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 MSVC 构建中,为 libxml2 头文件添加正确的包含路径

变更

在 MSVC 构建中,为 libxml2 头文件添加正确的包含路径(Andrew Dunstan)

这修复了以前需要移动标准 Windows 安装的 libxml2 中某些东西的需要。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 MSVC 构建中,识别名为 tcl86.lib 的 Tcl 库

变更

在 MSVC 构建中,识别名为 tcl86.lib 的 Tcl 库(Noah Misch)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

PostgreSQL 9.2.21

升级与兼容性说明

对于运行 9.2.X 的用户,不需要进行转储/恢复。

但是,如果你使用的外部数据服务器依赖用户密码进行认证,请参见下面的第一条变更日志条目。

不过,如果你是从早于 9.2.20 的版本升级,请参见第 E.5 节。

安全相关限制pg_user_mappings.umoptions的可见性,以保护作为用户映射选项存储的密码

变更

限制pg_user_mappings.umoptions的可见性,以保护作为用户映射选项存储的密码(Michael Paquier、Feike Steenbergen)

原来的编码允许外部服务器对象的所有者,或任何被他授予服务器 USAGE 权限的人,看到与该服务器关联的所有用户映射的选项。这很可能包括其他用户的密码。调整视图定义以匹配 information_schema.user_mapping_options 的行为,即这些选项对被映射的用户可见,或者当映射针对 PUBLIC 且当前用户是服务器所有者时,或者当前用户是超级用户时可见。(CVE-2017-7486)

此补丁本身只会修复新 initdb 的数据库中的行为。如果希望在现有数据库中应用此更改,请按照第 E.3 节中 CVE-2017-7547 变更记录里给出的更正程序操作。

安全相关防止通过泄漏型操作符暴露统计信息

变更

防止通过泄漏型操作符暴露统计信息(Peter Eisentraut)

规划器的一些选择率估计函数会对从 pg_statistic 获得的值(如最常见值和直方图条目)应用用户定义操作符。这发生在表权限检查之前,因此恶意用户可以利用这一行为获得他无权读取的表列的这些值。为修复,当操作符的实现函数未被证明防泄漏且调用用户无权读取所需统计信息的表列时,回退到默认估计。实践中大多数情况下至少满足这些准则之一。(CVE-2017-7484)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复未记录索引的“init fork”可能的损坏

变更

修复未记录索引的“init fork”可能的损坏(Robert Haas、Michael Paquier)

这可能导致未记录索引在崩溃和重启之后被置为无效状态。这种问题将持续到索引被删除并重建为止。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复备库重放已预备但未提交的两阶段事务时 pg_subtrans 条目的错误重建

变更

修复备库重放已预备但未提交的两阶段事务时 pg_subtrans 条目的错误重建(Tom Lane)

大多数情况下这没有可见的不良影响,但在边界情况下可能导致 pg_subtrans 中的循环引用,可能使检查两阶段事务所修改行的查询陷入无限循环。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保扩展脚本中查询的解析能看到紧邻的前一条 DDL 的结果

变更

确保扩展脚本中查询的解析能看到紧邻的前一条 DDL 的结果(Julien Rouhaud、Tom Lane)

由于扩展脚本文件中命令之间缺少缓存刷新步骤,非实用查询可能看不到紧邻的目录更改(如 ALTER TABLE ... RENAME)的效果。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进当 ALTER TABLE ... ALTER COLUMN TYPE 重建现有索引时跳过表空间权限检查

变更

当 ALTER TABLE ... ALTER COLUMN TYPE 重建现有索引时跳过表空间权限检查(Noah Misch)

如果调用用户当前对包含索引的表空间没有 CREATE 权限,命令就会失败。这种行为似乎无益,因此跳过检查,允许索引在原地重建。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 ALTER TABLE ... VALIDATE CONSTRAINT 在约束被标记 NO INHERIT 时不递归到子表

变更

修复 ALTER TABLE ... VALIDATE CONSTRAINT 在约束被标记 NO INHERIT 时不递归到子表(Amit Langote)

此修复防止子表中不存在匹配约束时不需要的“constraint does not exist”失败。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 VACUUM 正确考虑因页 pin 冲突而无法扫描的页

变更

修复 VACUUM 正确考虑因页 pin 冲突而无法扫描的页(Andrew Gierth)

这往往导致低估表中的元组数。在小型高争用表的最坏情况下,VACUUM 可能错误地报告表不包含任何元组,导致非常糟糕的计划选择。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保哈希连接中的批量元组传输循环可被查询取消请求中断

变更

确保哈希连接中的批量元组传输循环可被查询取消请求中断(Tom Lane、Thomas Munro)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 cursor_to_xml() 在 tableforest = false 时产生有效输出

变更

修复 cursor_to_xml() 在 tableforest = false 时产生有效输出(Thomas Munro、Peter Eisentraut)

此前它未能产生包裹的 <table> 元素。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

性能改进改进 pg_timezone_names 视图的性能

变更

改进 pg_timezone_names 视图的性能(Tom Lane、David Rowley)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复对 lseek() 和 close() 边界情况错误的草率处理

变更

修复对 lseek() 和 close() 边界情况错误的草率处理(Tom Lane)

这两个系统调用在典型情况下不太可能失败,但如果失败,fd.c 会变得相当混乱。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复对 postmaster 是否作为 Windows 服务运行的不正确检查

变更

修复对 postmaster 是否作为 Windows 服务运行的不正确检查(Michael Paquier)

这可能导致在事件日志不可访问时尝试写入它,以至于完全不进行日志记录。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 ecpg 支持 COMMIT PREPARED 和 ROLLBACK PREPARED

变更

修复 ecpg 支持 COMMIT PREPARED 和 ROLLBACK PREPARED(Masahiko Sawada)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 ecpg 中处理美元引用字符串字面量时的双重释放错误

变更

修复 ecpg 中处理美元引用字符串字面量时的双重释放错误(Michael Meskes)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复在 pg_dump 中,修复某些类型数据库对象的注释和安全标签的模式和所有者标记错误

变更

在 pg_dump 中,修复某些类型数据库对象的注释和安全标签的模式和所有者标记错误(Giuseppe Broccolo、Tom Lane)

简单情况下这没有不良影响;但例如,选择性模式恢复可能遗漏本应包含的注释,因为它们没有被标记为属于其相关对象的模式。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免 SQL 对象名包含换行时 pg_restore -l 发出无效列表文件

变更

避免 SQL 对象名包含换行时 pg_restore -l 发出无效列表文件(Tom Lane)

用空格替换换行,这足以使输出对 pg_restore -L 的用途有效。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_upgrade 传输附加到“大对象”(blob)的注释和安全标签

变更

修复 pg_upgrade 传输附加到“大对象”(blob)的注释和安全标签(Stephen Frost)

此前,blob 被正确传输到新数据库,但附加到它们的任何注释或安全标签都丢失了。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进改进 contrib/adminpack 的 pg_file_write() 函数中的错误处理

变更

改进 contrib/adminpack 的 pg_file_write() 函数中的错误处理(Noah Misch)

值得注意的是,它未能检测 fclose() 报告的错误。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复在 contrib/dblink 中,建立新的未命名连接时避免泄漏先前的未命名连接

变更

在 contrib/dblink 中,建立新的未命名连接时避免泄漏先前的未命名连接(Joe Conway)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进支持 OpenSSL 1.1.0

变更

支持 OpenSSL 1.1.0(Heikki Linnakangas、Andreas Karlsson、Tom Lane)

这是把先前在较新分支中完成的工作向后移植;由于许多平台正在采用更新的 OpenSSL 版本,因此需要它。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 MSVC 构建中支持 Tcl 8.6

变更

在 MSVC 构建中支持 Tcl 8.6(Álvaro Herrera)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进把我们的时区库副本与 IANA tzcode2017b 同步

变更

把我们的时区库副本与 IANA tzcode2017b 同步(Tom Lane)

这修复了影响 2038 年 1 月某些夏令时转换的 bug。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进更新时区数据文件到 tzdata 版本 2017b,涉及智利、海地和蒙古的夏令时法规变更,加上厄瓜多尔、哈萨克斯坦、利比里亚和西班牙的历史修正。南美洲、太平洋和印度洋以及一些亚洲和中东国家的众多时区改用数字缩写。

变更

更新时区数据文件到 tzdata 版本 2017b,涉及智利、海地和蒙古的夏令时法规变更,加上厄瓜多尔、哈萨克斯坦、利比里亚和西班牙的历史修正。南美洲、太平洋和印度洋以及一些亚洲和中东国家的众多时区改用数字缩写。

IANA 时区数据库以前为所有时区提供文本缩写,有时编造在当地居民中几乎或完全没有使用的缩写。他们正在逆转这一政策,改为在没有证据表明实际使用英文缩写的区域使用数字 UTC 偏移。至少目前,PostgreSQL 将继续接受这种被移除的缩写用于时间戳输入。但它们不会显示在 pg_timezone_names 视图中,也不用于输出。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复在 MSVC 构建中对 POSIX 风格时区名使用正确的夏令时规则

变更

在 MSVC 构建中对 POSIX 风格时区名使用正确的夏令时规则(David Rowley)

Microsoft MSVC 构建脚本忽略了把 posixrules 文件安装到时区目录树中。这导致时区代码回退到它内置的关于 POSIX 风格时区名应假定什么 DST 行为的规则。由于历史原因,那仍然对应美国 2007 年之前使用的 DST 规则(即 4 月第一个星期日和 10 月最后一个星期日更改)。有了此修复,POSIX 风格时区名将使用 US/Eastern 时区的当前和历史 DST 转换日期。如果不希望这样,移除 posixrules 文件,或用其他某个时区文件的副本替换它(见第 8.5.3 节)。注意由于缓存,可能需要重启服务器才能使这种更改生效。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

PostgreSQL 9.2.20

升级与兼容性说明

对于运行 9.2.X 的用户,不需要进行转储/恢复。

不过,如果你的安装受到下面第一条变更日志条目所述 bug 的影响,更新之后你可能需要采取行动修复损坏的索引。

不过,如果你是从早于 9.2.11 的版本升级,请参见第 E.14 节。

BUG 修复修复可能导致用 CREATE INDEX CONCURRENTLY 构建的索引损坏的竞态条件

变更

修复可能导致用 CREATE INDEX CONCURRENTLY 构建的索引损坏的竞态条件(Pavan Deolasee、Tom Lane)

如果 CREATE INDEX CONCURRENTLY 被用于构建一个依赖于先前未被索引的列的索引,那么与 CREATE INDEX 命令并发运行的事务所更新的行可能收到错误的索引条目。如果怀疑这可能已发生,最可靠的解决方案是在安装此更新后重建受影响的索引。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进无条件地为未记录表的“init fork”写 WAL 日志

变更

无条件地为未记录表的“init fork”写 WAL 日志(Michael Paquier)

此前当wal_level = minimum 时跳过这一步,但实际上即使在这种情况下也需要它,以确保未记录表在崩溃后被正确重置为空。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复重新读取段时 WAL 页头的校验

变更

修复重新读取段时 WAL 页头的校验(Takayuki Tsunakawa、Amit Kapila)

在极端情况下,恢复期间可能报告虚假的“out-of-sequence TLI”错误。

其他改进如果统计收集器在热备期间死亡,重启它

变更

如果统计收集器在热备期间死亡,重启它(Takayuki Tsunakawa)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进热备等待冲突查询时检查中断

变更

热备等待冲突查询时检查中断(Simon Riggs)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免边界情况下自动清理启动器的不断重启

变更

避免边界情况下自动清理启动器的不断重启(Amit Khandekar)

此修复避免了自动清理名义上关闭且有一些需要冻结的表,但所有这种表都已被自动清理工作者处理时的问题。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复扩展成员对象何时可被删除的检查

变更

修复扩展成员对象何时可被删除的检查(Tom Lane)

扩展升级脚本应当能删除成员对象,但对序列列的序列(可能还有其他情况)这不被允许。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保 ALTER TABLE 重建索引时保留索引表空间分配

变更

确保 ALTER TABLE 重建索引时保留索引表空间分配(Tom Lane、Michael Paquier)

此前,default_tablespace的非默认设置可能导致索引损坏。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进如果被引用关系有未决的触发器事件,防止删除外键约束

变更

如果被引用关系有未决的触发器事件,防止删除外键约束(Tom Lane)

这避免了“could not find trigger NNN”或“relation NNN has no triggers”错误。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复带 OID 的表通过 ALTER TABLE ... INHERIT 关联到带 OID 的父表时 OID 列的处理

变更

修复带 OID 的表通过 ALTER TABLE ... INHERIT 关联到带 OID 的父表时 OID 列的处理(Amit Langote)

这种情况下 OID 列应当与普通用户列同等对待,但没有,导致之后继承更改中的奇怪行为。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在报告约束违反失败之前检查可序列化冲突

变更

在报告约束违反失败之前检查可序列化冲突(Thomas Munro)

使用可序列化事务隔离时,希望任何因并发事务导致的错误都表现为序列化失败,从而提示应用重试可能成功。不幸的是,对并发插入导致的重复键失败这不能可靠发生。此更改确保如果应用在事务中早些时候显式检查过冲突键的存在(且未找到),这种错误将被报告为序列化错误。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保多行 VALUES 构造的列 typmod 被准确确定

变更

确保多行 VALUES 构造的列 typmod 被准确确定(Tom Lane)

这修复了列的第一个值有可确定的 typmod(如 varchar 值的长度)但后面的值不共享同一限制时发生的问题。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进对 Unicode 字符串末尾未完成的 Unicode 代理项对抛出错误

变更

对 Unicode 字符串末尾未完成的 Unicode 代理项对抛出错误(Tom Lane)

通常 Unicode 代理项前导字符后面必须跟 Unicode 代理项后随字符,但当前导字符是 Unicode 字符串字面量(U&'...')或 Unicode 标识符(U&"...")的最后一个字符时漏掉了这一检查。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保纯否定的文本搜索查询(如 !foo)匹配空的 tsvector

变更

确保纯否定的文本搜索查询(如 !foo)匹配空的 tsvector(Tom Dunstan)

GIN 索引搜索能找到这种匹配,但顺序扫描或 GiST 索引搜索不能。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复防止 ts_rewrite() 用空查询替换非顶层子树时崩溃

变更

防止 ts_rewrite() 用空查询替换非顶层子树时崩溃(Artur Zakirov)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 ts_rewrite() 的性能问题

变更

修复 ts_rewrite() 的性能问题(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 ts_rewrite() 对嵌套 NOT 操作符的处理

变更

修复 ts_rewrite() 对嵌套 NOT 操作符的处理(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 array_fill() 正确处理空数组

变更

修复 array_fill() 正确处理空数组(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 quote_literal_cstr() 中的一字节缓冲区越界

变更

修复 quote_literal_cstr() 中的一字节缓冲区越界(Heikki Linnakangas)

只有当输入完全由单引号和/或反斜线组成时才会发生越界。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进防止 pg_start_backup() 和 pg_stop_backup() 的多次调用并发运行

变更

防止 pg_start_backup() 和 pg_stop_backup() 的多次调用并发运行(Michael Paquier)

这避免了有人试图并行运行这些函数时的断言失败以及可能更糟的事情。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免丢弃并非真正无操作的 interval 到 interval 强制转换

变更

避免丢弃并非真正无操作的 interval 到 interval 强制转换(Tom Lane)

某些情况下,本应导致清零低阶 interval 字段的强制转换被错误地当作无操作而丢弃。例如从 INTERVAL MONTH 转换到 INTERVAL YEAR 未能清除月份字段。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_dump 转储使用内建函数的用户定义强制转换和转换

变更

修复 pg_dump 转储使用内建函数的用户定义强制转换和转换(Stephen Frost)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复包含 WAL 文件时备库服务器上可能的 pg_basebackup 失败

变更

修复包含 WAL 文件时备库服务器上可能的 pg_basebackup 失败(Amit Kapila、Robert Haas)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保我们为 PL/Python 创建的 Python 异常对象被正确引用计数

变更

确保我们为 PL/Python 创建的 Python 异常对象被正确引用计数(Rafa de la Torre、Tom Lane)

这避免了对象在 Python 垃圾回收周期发生之后被使用时的失败。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 PL/Tcl 支持以 .tupno 为列名的表上的触发器

变更

修复 PL/Tcl 支持以 .tupno 为列名的表上的触发器(Tom Lane)

这与 PL/Tcl 的 spi_exec 和 spi_execp 命令(以前未写入文档)的行为一致,即只在不存在该名字的真实列时才插入幻 .tupno 列。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进允许 ~/.pgpass 文件中的 DOS 风格行尾,即使在 Unix 上也一样

变更

允许 ~/.pgpass 文件中的 DOS 风格行尾,即使在 Unix 上也一样(Vik Fearing)

这一更改简化了在 Unix 和 Windows 机器之间使用同一密码文件。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 ecpg 被给定以点结尾的文件名时的一字节缓冲区越界

变更

修复 ecpg 被给定以点结尾的文件名时的一字节缓冲区越界(Takayuki Tsunakawa)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 psql 对 ALTER DEFAULT PRIVILEGES 的 Tab 补全

变更

修复 psql 对 ALTER DEFAULT PRIVILEGES 的 Tab 补全(Gilles Darold、Stephen Frost)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 psql 中,把 PAGER 环境变量的空或全空白设置当作“不使用分页器”

变更

在 psql 中,把 PAGER 环境变量的空或全空白设置当作“不使用分页器”(Tom Lane)

此前这种设置导致本应发给分页器的输出完全消失。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进改进 contrib/dblink 对低层 libpq 错误(如内存不足)的报告

变更

改进 contrib/dblink 对低层 libpq 错误(如内存不足)的报告(Joe Conway)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 Windows 上,确保环境变量更改被传播到以调试选项构建的 DLL

变更

在 Windows 上,确保环境变量更改被传播到以调试选项构建的 DLL(Christian Ullrich)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进把我们的时区库副本与 IANA tzcode2016j 同步

变更

把我们的时区库副本与 IANA tzcode2016j 同步(Tom Lane)

这修复了若干问题,最显著的是当目标目录不支持硬链接时区数据安装失败。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进更新时区数据文件到 tzdata 版本 2016j,涉及北塞浦路斯(新增时区 Asia/Famagusta)、俄罗斯(新增时区 Europe/Saratov)、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。

变更

更新时区数据文件到 tzdata 版本 2016j,涉及北塞浦路斯(新增时区 Asia/Famagusta)、俄罗斯(新增时区 Europe/Saratov)、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

PostgreSQL 9.2.19

升级与兼容性说明

对于运行 9.2.X 的用户,不需要进行转储/恢复。

不过,如果你是从早于 9.2.11 的版本升级,请参见第 E.14 节。

BUG 修复修复涉及 CTE 扫描的 EvalPlanQual 重新检查

变更

修复涉及 CTE 扫描的 EvalPlanQual 重新检查(Tom Lane)

重新检查总是把 CTE 视为不返回任何行,通常导致无法更新最近已更新的行。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复子查询中哈希聚合不当重复先前结果的问题

变更

修复子查询中哈希聚合不当重复先前结果的问题(Andrew Gierth)

判断能否复用先前计算的聚合状态值哈希表的测试,忽略了聚合参数表达式中出现外层查询引用的可能性。这种引用的值发生变化时本应重新计算哈希表,但实际没有。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复track_io_timing打开时 EXPLAIN 发出有效 XML

变更

修复track_io_timing打开时 EXPLAIN 发出有效 XML(Markus Winand)

此前 XML 输出格式选项产生语法无效的标记,如 <I/O-Read-Time>。现在它被渲染为 <I-O-Read-Time>。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进抑制在 EXPLAIN 中为未测量的时间打印零值

变更

抑制在 EXPLAIN 中为未测量的时间打印零值(Maksim Milyutin)

某些选项组合会为在该组合下实际上从不测量的时间打印零值。EXPLAIN 的一般策略是完全不打印此类字段,因此在所有情况下都保持一致。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 VACUUM 为截断表而等待排他表锁时的超时长度

变更

修复 VACUUM 为截断表而等待排他表锁时的超时长度(Simon Riggs)

该超时本应为 50 毫秒,但实际上只有 50 微秒,导致 VACUUM 比预期更容易放弃截断。将其设置为预期值。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复创建或更改表时合并继承 CHECK 约束的 bug

变更

修复创建或更改表时合并继承 CHECK 约束的 bug(Tom Lane、Amit Langote)

允许以任一顺序向父表和子表添加相同的 CHECK 约束。防止父表的有效约束与子表的 NOT VALID 约束合并。同样防止 NO INHERIT 子约束与继承约束合并。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进移除对 numeric_in() 和 numeric_recv() 所接受值的人为限制

变更

移除对 numeric_in() 和 numeric_recv() 所接受值的人为限制(Tom Lane)

我们允许数值达到存储格式的极限(超过 1e100000),因此 numeric_in() 拒绝科学计数法指数超过 1000 的做法相当无意义。同样,numeric_recv() 拒绝输入值超过 1000 位数字也很荒谬。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏

变更

避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏(Thomas Munro、Peter Geoghegan、Tom Lane)

关联记录(5)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复截断超过 1GB 的临时关系时文件描述符泄漏的问题

变更

修复截断超过 1GB 的临时关系时文件描述符泄漏的问题(Andres Freund)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进禁止在启用 standby_mode 的情况下启动独立后端

变更

禁止在启用 standby_mode 的情况下启动独立后端(Michael Paquier)

这不可能有任何用处,因为不会有 WAL 接收器进程来获取更多 WAL 数据;而且这可能导致未针对此种情况设计的代码出现不当行为。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进不要在 libpq 中跨多个连接共享 SSL 上下文

变更

不要在 libpq 中跨多个连接共享 SSL 上下文(Heikki Linnakangas)

这导致了各种边界情况 bug,特别是当尝试对不同连接使用不同 SSL 参数时。

关联记录(5)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复避免 libpq 中的边界情况内存泄漏

变更

避免 libpq 中的边界情况内存泄漏(Tom Lane)

报告的问题涉及 PQreset() 期间泄漏错误报告,但可能有相关情况。

关联记录(5)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进使 ecpg 的 --help 和 --version 选项与其他可执行程序保持一致

变更

使 ecpg 的 --help 和 --version 选项与其他可执行程序保持一致(Haribabu Kommi)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 pg_dump 中,永不转储范围构造函数

变更

在 pg_dump 中,永不转储范围构造函数(Tom Lane)

这一疏漏导致包含范围类型的扩展在 pg_upgrade 时因重复创建构造函数而失败。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 contrib/intarray/bench/bench.pl,使其在给定 -e 选项时打印它执行的 EXPLAIN 的结果

变更

修复 contrib/intarray/bench/bench.pl,使其在给定 -e 选项时打印它执行的 EXPLAIN 的结果(Daniel Gustafsson)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进更新 Windows 时区映射,以识别较新 Windows 版本中新增的一些时区名称

变更

更新 Windows 时区映射,以识别较新 Windows 版本中新增的一些时区名称(Michael Paquier)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进防止已过时的动态时区缩写失效

变更

防止已过时的动态时区缩写失效(Tom Lane)

如果动态时区缩写与所引用时区中的任何条目都不匹配,就把它视为等效于该时区名称。这避免了当 IANA 从其时区数据库中移除缩写时出现意外失败——他们在 tzdata 2016f 版中就这样做过,而且将来可能再次这样做。后果不仅限于无法识别单个缩写;任何不匹配都会导致 pg_timezone_abbrevs 视图完全失败。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进更新时区数据文件到 tzdata 版本 2016h,涉及巴勒斯坦和土耳其的夏令时法规变更,加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。

变更

更新时区数据文件到 tzdata 版本 2016h,涉及巴勒斯坦和土耳其的夏令时法规变更,加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。

IANA 时区数据库以前为所有时区提供文本缩写,有时编造在当地居民中几乎或完全没有使用的缩写。他们正在逆转这一政策,改为在没有证据表明实际使用英文缩写的区域使用数字 UTC 偏移。至少目前,PostgreSQL 将继续接受这种被移除的缩写用于时间戳输入。但它们不会显示在 pg_timezone_names 视图中,也不用于输出。

在此更新中,AMT 不再显示为表示亚美尼亚时间。因此我们把 Default 缩写集改为把它解释为亚马逊时间,即 UTC-4 而不是 UTC+4。

关联记录(5)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

PostgreSQL 9.2.18

升级与兼容性说明

对于运行 9.2.X 的用户,不需要进行转储/恢复。

不过,如果你是从早于 9.2.11 的版本升级,请参见第 E.14 节。

安全相关修复嵌套 CASE-WHEN 表达式可能被错误评估的问题

变更

修复嵌套 CASE-WHEN 表达式可能被错误评估的问题(Heikki Linnakangas、Michael Paquier、Tom Lane)

出现在另一个 CASE 的测试值子表达式中的 CASE 表达式,可能会混淆其自身的测试值是否为空。此外,内联实现 CASE 表达式所用相等操作符的 SQL 函数时,可能向该 SQL 函数体内 CASE 表达式中调用的函数传递错误的测试值。如果测试值的数据类型不同,可能导致崩溃;而且此类情况可被滥用以泄露服务器内存的部分内容。(CVE-2016-5423)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

安全相关修复客户端程序对数据库名和角色名中特殊字符的处理

变更

修复客户端程序对数据库名和角色名中特殊字符的处理(Noah Misch、Nathan Bossart、Michael Paquier)

vacuumdb 及其他客户端程序中的许多地方,可能会被包含双引号或反斜杠的数据库名和角色名弄混。收紧引用规则以使其安全。同时确保当 conninfo 字符串被用作这些程序的数据库名参数时,全程都被正确地如此对待。

修复 psql 的 \connect 和 \password 命令中对成对双引号的处理,使其与文档一致。

在 psql 的 \connect 命令中引入新的 -reuse-previous 选项,以显式控制是否复用先前连接的连接参数。(若不使用该选项,则与以前一样,根据数据库名是否看起来像 conninfo 字符串来决定。)这使 pg_dumpall 脚本能够安全地处理包含特殊字符的数据库名。

pg_dumpall 现在拒绝处理包含回车或换行的数据库名和角色名,因为在 Windows 上安全地引用这些字符似乎不切实际。将来我们可能会在服务器端拒绝此类名称,但尚未采取这一步骤。

这些被视为安全修复,因为包含特殊字符的恶意构造的对象名,可能在超级用户下次执行 pg_dumpall 或其他例行维护操作时被用于以超级用户权限执行命令。(CVE-2016-5424)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复对嵌套组合值应用 IS NULL/IS NOT NULL 时的边界错误行为

变更

修复对嵌套组合值应用 IS NULL/IS NOT NULL 时的边界错误行为(Andrew Gierth、Tom Lane)

SQL 标准规定,对于全空值的行,IS NULL 应返回 TRUE(因此 ROW(NULL,NULL) IS NULL 得到 TRUE),但这并不意味着递归适用(因此 ROW(NULL, ROW(NULL,NULL)) IS NULL 得到 FALSE)。核心执行器对此处理正确,但某些规划器优化把该测试当作递归的(因而在两种情况下都产生 TRUE),而 contrib/postgres_fdw 可能产生类似错误行为的远程查询。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进使 inet 和 cidr 数据类型正确拒绝包含过多冒号分隔字段的 IPv6 地址

变更

使 inet 和 cidr 数据类型正确拒绝包含过多冒号分隔字段的 IPv6 地址(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复防止 close_ps()(point ## lseg 操作符)在输入坐标为 NaN 时崩溃

变更

防止 close_ps()(point ## lseg 操作符)在输入坐标为 NaN 时崩溃(Tom Lane)

使其返回 NULL 而不是崩溃。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 to_number() 中几处一字节缓冲区过读

变更

修复 to_number() 中几处一字节缓冲区过读(Peter Eisentraut)

在几种情况下,to_number() 函数会从输入字符串中多读取一个字符。如果输入恰好位于内存末尾附近,则有很小的崩溃可能。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免在经过 heap_update() 的高开销路径中出现不安全的中间状态

变更

避免在经过 heap_update() 的高开销路径中出现不安全的中间状态(Masahiko Sawada、Andres Freund)

以前,这些情况会锁定目标元组(通过设置其 XMAX),但不为该动作记录 WAL,因此如果页面被刷出到磁盘,随后在元组更新完成之前发生数据库崩溃,就有数据完整性问题的风险。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复避免当指定变量的字符串值为空时 postgres -C 崩溃

变更

避免当指定变量的字符串值为空时 postgres -C 崩溃(Michael Paquier)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免在 VACUUM 期间消耗事务 ID

变更

避免在 VACUUM 期间消耗事务 ID(Alexander Korotkov)

VACUUM 中的某些情况会不必要地导致向当前事务分配 XID。通常这可以忽略不计,但如果已接近 XID 回卷限制,在防回卷清理期间消耗更多 XID 就非常糟糕了。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免在VACUUM FREEZE期间取消热备查询

变更

避免在VACUUM FREEZE期间取消热备查询(Simon Riggs, Álvaro Herrera)

在原本空闲的主库服务器上执行VACUUM FREEZE可能导致其备库服务器上的查询被不必要地取消。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进当手动 ANALYZE 指定列列表时,不要重置表的 changes_since_analyze 计数器

变更

当手动 ANALYZE 指定列列表时,不要重置表的 changes_since_analyze 计数器(Tom Lane)

如果只分析部分列,就不应阻止其他列的例行自动分析。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 ANALYZE 对包含大量空值的唯一或近似唯一列的 n_distinct 高估

变更

修复 ANALYZE 对包含大量空值的唯一或近似唯一列的 n_distinct 高估(Tom Lane)

空值可能被当作它们本身就是不同的值来计数,导致某些类型查询中规划器的严重误估。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进防止自动清理为同一共享目录启动多个工作进程

变更

防止自动清理为同一共享目录启动多个工作进程(Álvaro Herrera)

通常这不是什么大问题,因为清理本来就不会花很长时间;但在目录严重膨胀的情况下,这可能导致除一个工作进程外的所有工作进程都在无用地等待,而不是对其他表做有用的工作。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进防止对包含 NaN 分量值的几何列构建 GiST 索引时出现无限循环

变更

防止对包含 NaN 分量值的几何列构建 GiST 索引时出现无限循环(Tom Lane)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 contrib/btree_gin,使其正确处理 bigint 的最小可能值

变更

修复 contrib/btree_gin,使其正确处理 bigint 的最小可能值(Peter Eisentraut)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进让 libpq 能正确解码来自未来版本服务器的服务器版本号

变更

让 libpq 能正确解码来自未来版本服务器的服务器版本号(Peter Eisentraut)

计划在 9.6 之后的版本中把服务器版本号从三段式改为两段式。确保 PQserverVersion() 在此类情况下返回正确的值。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 ecpg 中 unsigned long long 数组元素的代码

变更

修复 ecpg 中 unsigned long long 数组元素的代码(Michael Meskes)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在同时使用 -c 和 -C 选项的 pg_dump 中,避免发出多余的 CREATE SCHEMA public 命令

变更

在同时使用 -c 和 -C 选项的 pg_dump 中,避免发出多余的 CREATE SCHEMA public 命令(David Johnston、Tom Lane)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进使 pg_basebackup 接受 -Z 0 表示不压缩

变更

使 pg_basebackup 接受 -Z 0 表示不压缩(Fujii Masao)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复构建 AIX 共享库的 makefile 规则,使其在并行 make 下安全

变更

修复构建 AIX 共享库的 makefile 规则,使其在并行 make 下安全(Noah Misch)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 TAP 测试和 MSVC 脚本,使其在构建目录路径名包含空格时也能工作

变更

修复 TAP 测试和 MSVC 脚本,使其在构建目录路径名包含空格时也能工作(Michael Paquier、Kyotaro Horiguchi)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进使回归测试在丹麦语和威尔士语区域设置下安全

变更

使回归测试在丹麦语和威尔士语区域设置下安全(Jeff Janes、Tom Lane)

修改了一些会触发这些区域设置特殊排序规则的测试数据。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进更新我们的时区代码副本,以匹配 IANA 的 tzcode 2016c 版

变更

更新我们的时区代码副本,以匹配 IANA 的 tzcode 2016c 版(Tom Lane)

这是为了应对时区数据文件未来预期的变更。它还修复了处理特殊时区方面的一些边界 bug。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进把时区数据文件更新到 tzdata 2016f 版,涉及克麦罗沃和新西伯利亚的夏令时法规变更,以及阿塞拜疆、白俄罗斯和摩洛哥的历史数据修正。

变更

把时区数据文件更新到 tzdata 2016f 版,涉及克麦罗沃和新西伯利亚的夏令时法规变更,以及阿塞拜疆、白俄罗斯和摩洛哥的历史数据修正。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

PostgreSQL 9.2.17

升级与兼容性说明

对于运行 9.2.X 的用户,不需要进行转储/恢复。

不过,如果你是从早于 9.2.11 的版本升级,请参见第 E.14 节。

其他改进在调用 OpenSSL 之前清空 OpenSSL 错误队列,而不是假设它已经为空;并确保调用之后也让它保持为空

变更

在调用 OpenSSL 之前清空 OpenSSL 错误队列,而不是假设它已经为空;并确保调用之后也让它保持为空(Peter Geoghegan、Dave Vitek、Peter Eisentraut)

此变更可防止在单个进程内存在多条使用 OpenSSL 的连接、且相关代码并非全部遵循相同的错误队列清空规则时出现问题。特别是当客户端应用并发使用 libpq 的 SSL 连接和 PHP、Python 或 Ruby 的 OpenSSL 封装库的 SSL 连接时,已有失败报告。如果扩展模块建立外向 SSL 连接,服务器内部也可能出现类似问题。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复左连接右侧包含全连接时规划器出现“failed to build any N-way joins”错误的问题

变更

修复左连接右侧包含全连接时规划器出现“failed to build any N-way joins”错误的问题(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复多层级 nestloop 计划中等价类测试的处理不正确的问题

变更

修复多层级 nestloop 计划中等价类测试的处理不正确的问题(Tom Lane)

对于三个或更多变量的等价类(例如 X.X = Y.Y = Z.Z),规划器可能遗漏一些确保所有变量确实相等的测试,导致输出不满足 WHERE 子句的连接行。由于种种原因,实践中很少选中错误的计划,因此这个 bug 长期未被发现。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 to_timestamp() 中 TH、th 和 Y,YYY 格式代码可能的错误行为

变更

修复 to_timestamp() 中 TH、th 和 Y,YYY 格式代码可能的错误行为(Tom Lane)

这些代码可能越过输入字符串末尾,导致后续格式代码读取垃圾数据。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复对这样的规则和视图的转储:value operator ANY (array) 结构的 array 参数是子 SELECT

变更

修复对这样的规则和视图的转储:value operator ANY (array) 结构的 array 参数是子 SELECT(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进使 pg_regress 在设置了 PGCTLTIMEOUT 环境变量时使用其中的启动超时

变更

使 pg_regress 在设置了 PGCTLTIMEOUT 环境变量时使用其中的启动超时(Tom Lane)

这是为了与最近添加到 pg_ctl 的行为保持一致;它方便了在慢速机器上进行自动化测试。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_upgrade 对仅包含一个操作符类的操作符族正确恢复扩展成员关系的问题

变更

修复 pg_upgrade 对仅包含一个操作符类的操作符族正确恢复扩展成员关系的问题(Tom Lane)

在这种情况下,操作符族会被恢复到新数据库中,但不再被标记为扩展的一部分。这没有直接的坏影响,但会导致后续 pg_dump 运行产生在恢复时引发(无害)错误的输出。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进把 9.4 时代的内存屏障代码变更回移植到 9.2 和 9.3

变更

把 9.4 时代的内存屏障代码变更回移植到 9.2 和 9.3(Tom Lane)

这些变更在 9.4 之前的分支中原本并不需要,但我们最近回移植了一个要求屏障代码正常工作的修复。只有 IA64(使用 icc 时)、HPPA 和 Alpha 平台受影响。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进减少配置了 --disable-spinlocks 的构建所使用的 SysV 信号量数量

变更

减少配置了 --disable-spinlocks 的构建所使用的 SysV 信号量数量(Tom Lane)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进把内部函数 strtoi() 重命名为 strtoint(),以避免与 NetBSD 库函数冲突

变更

把内部函数 strtoi() 重命名为 strtoint(),以避免与 NetBSD 库函数冲突(Thomas Munro)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 Windows 上 bind() 和 listen() 系统调用错误的报告

变更

修复 Windows 上 bind() 和 listen() 系统调用错误的报告(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进减少使用 Microsoft Visual Studio 构建时编译器输出的冗长程度

变更

减少使用 Microsoft Visual Studio 构建时编译器输出的冗长程度(Christian Ullrich)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免可能不安全地使用 Windows 的 FormatMessage() 函数

变更

避免可能不安全地使用 Windows 的 FormatMessage() 函数(Christian Ullrich)

在适当之处使用 FORMAT_MESSAGE_IGNORE_INSERTS 标志。目前不知道这里存在实际的 bug,但小心谨慎似乎是明智的。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进把时区数据文件更新到 tzdata 2016d 版,涉及俄罗斯和委内瑞拉的夏令时法规变更。新增时区名称 Europe/Kirov 和 Asia/Tomsk,以反映这些地区现在与相邻地区有不同的时区历史。

变更

把时区数据文件更新到 tzdata 2016d 版,涉及俄罗斯和委内瑞拉的夏令时法规变更。新增时区名称 Europe/Kirov 和 Asia/Tomsk,以反映这些地区现在与相邻地区有不同的时区历史。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

PostgreSQL 9.2.16

升级与兼容性说明

对于运行 9.2.X 的用户,不需要进行转储/恢复。

不过,如果你是从早于 9.2.11 的版本升级,请参见第 E.14 节。

BUG 修复修复索引化 ROW() 比较中对 NULL 索引条目处理不正确的问题

变更

修复索引化 ROW() 比较中对 NULL 索引条目处理不正确的问题(Tom Lane)

使用诸如 ROW(a, b) > ROW('x', 'y') 的行比较进行索引搜索时,会在到达 b 列的 NULL 条目时停止,忽略了 b 列可能有与更靠后的 a 值关联的非 NULL 值这一事实。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免因重命名文件前后未充分调用 fsync() 而导致的不太可能的数据丢失场景

变更

避免因重命名文件前后未充分调用 fsync() 而导致的不太可能的数据丢失场景(Michael Paquier、Tomas Vondra、Andres Freund)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进正确处理服务器启动期间 pg_subtrans 接近 XID 回卷的情况

变更

正确处理服务器启动期间 pg_subtrans 接近 XID 回卷的情况(Jeff Janes)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复因多次尝试释放 localeconv() 输出字符串而导致的边界崩溃

变更

修复因多次尝试释放 localeconv() 输出字符串而导致的边界崩溃(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 ispell 词典词缀文件的解析

变更

修复 ispell 词典词缀文件的解析(Tom Lane)

如果词缀文件包含任何在大小写转换期间字节长度会变化的字符(例如土耳其语 UTF8 区域设置中的 I),代码就可能出错。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免使用 sscanf() 解析 ispell 词典文件

变更

避免使用 sscanf() 解析 ispell 词典文件(Artur Zakirov)

这规避了 FreeBSD 衍生平台(包括 macOS)上的一个可移植性问题。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复避免在旧版 Windows(7SP1/2008R2SP1 之前)上配合支持 AVX2 的 CPU 和使用 Visual Studio 2013 构建的 Postgres 时崩溃

变更

避免在旧版 Windows(7SP1/2008R2SP1 之前)上配合支持 AVX2 的 CPU 和使用 Visual Studio 2013 构建的 Postgres 时崩溃(Christian Ullrich)

这是对 Visual Studio 2013 运行时库中一个 bug 的变通方案,微软已表示不会在该版本中修复它。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 psql 的 Tab 补全逻辑,使其正确处理多字节字符

变更

修复 psql 的 Tab 补全逻辑,使其正确处理多字节字符(Kyotaro Horiguchi、Robert Haas)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 psql 对 SECURITY LABEL 的 Tab 补全

变更

修复 psql 对 SECURITY LABEL 的 Tab 补全(Tom Lane)

在 SECURITY LABEL 之后按 TAB 可能导致崩溃或提供不合适的关键字。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进使 pg_ctl 在命令行未指定时接受来自 PGCTLTIMEOUT 环境变量的等待超时

变更

使 pg_ctl 在命令行未指定时接受来自 PGCTLTIMEOUT 环境变量的等待超时(Noah Misch)

这方便了较慢的 buildfarm 成员的测试,允许它们全局指定比正常更长的 postmaster 启动和关闭超时。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_ctl 中对 Windows 服务状态的不正确测试

变更

修复 pg_ctl 中对 Windows 服务状态的不正确测试(Manuel Mathar)

上一轮小版本发布试图修复 pg_ctl,使其正确判断是否把日志消息发送到 Windows 事件日志,但把测试条件弄反了。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pgbench 对 -C 与 -M prepared 选项组合的处理

变更

修复 pgbench 对 -C 与 -M prepared 选项组合的处理(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 PL/Perl 中,把空的 Postgres 数组正确转换为空的 Perl 数组

变更

在 PL/Perl 中,把空的 Postgres 数组正确转换为空的 Perl 数组(Alex Hunsaker)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进使 PL/Python 能处理不是有效 Python 标识符的函数名

变更

使 PL/Python 能处理不是有效 Python 标识符的函数名(Jim Nasby)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 contrib/pgstattuple 的 pgstatindex() 函数返回统计信息中的多处错误

变更

修复 contrib/pgstattuple 的 pgstatindex() 函数返回统计信息中的多处错误(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 MSVC 构建中移除对 psed 的依赖,因为核心 Perl 已不再提供它

变更

在 MSVC 构建中移除对 psed 的依赖,因为核心 Perl 已不再提供它(Michael Paquier、Andrew Dunstan)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进把时区数据文件更新到 tzdata 2016c 版,涉及阿塞拜疆、智利、海地、巴勒斯坦和俄罗斯(阿尔泰、阿斯特拉罕、基洛夫、萨哈林、乌里扬诺夫斯克地区)的夏令时法规变更,以及立陶宛、摩尔多瓦和俄罗斯(加里宁格勒、萨马拉、伏尔加格勒)的历史数据修正。

变更

把时区数据文件更新到 tzdata 2016c 版,涉及阿塞拜疆、智利、海地、巴勒斯坦和俄罗斯(阿尔泰、阿斯特拉罕、基洛夫、萨哈林、乌里扬诺夫斯克地区)的夏令时法规变更,以及立陶宛、摩尔多瓦和俄罗斯(加里宁格勒、萨马拉、伏尔加格勒)的历史数据修正。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

PostgreSQL 9.2.15

升级与兼容性说明

对于运行 9.2.X 的用户,不需要进行转储/恢复。

不过,如果你是从早于 9.2.11 的版本升级,请参见第 E.14 节。

安全相关修复正则表达式中的无限循环和缓冲区越界问题

变更

修复正则表达式中的无限循环和缓冲区越界问题(Tom Lane)

方括号表达式中非常大的字符范围在某些情况下可能导致无限循环,在另一些情况下可能导致内存覆写。(CVE-2016-0773)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进如果postmaster.pid文件被移除则执行立即关闭

变更

如果postmaster.pid文件被移除则执行立即关闭(Tom Lane)

postmaster 现在大约每分钟检查一次postmaster.pid是否仍然存在且仍包含自己的 PID。如果不是,它会执行立即关闭,就像收到SIGQUIT一样。此变更的主要目的是确保失败的 buildfarm 运行无需人工干预即可被清理;同时也可在 DBA 强行删除postmaster.pid并启动新 postmaster 时限制不良影响。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在SERIALIZABLE事务隔离模式下,插入期间的竞争条件可能导致漏掉串行化异常

变更

在SERIALIZABLE事务隔离模式下,插入期间的竞争条件可能导致漏掉串行化异常(Kevin Grittner, Thomas Munro)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复对非日志关系执行ALTER TABLE ... SET TABLESPACE时未发出适当 WAL 记录的问题

变更

修复对非日志关系执行ALTER TABLE ... SET TABLESPACE时未发出适当 WAL 记录的问题(Michael Paquier、Andres Freund)

尽管关系的数据是非日志的,但移动操作本身必须被记录,否则在备库提升为主库后该关系将不可访问。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复崩溃恢复结束时非日志关系可能被错误初始化的问题

变更

修复崩溃恢复结束时非日志关系可能被错误初始化的问题(Andres Freund, Michael Paquier)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复ALTER COLUMN TYPE以正确重建继承的检查约束

变更

修复ALTER COLUMN TYPE以正确重建继承的检查约束(Tom Lane)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复REASSIGN OWNED以正确更改组合类型的所有权

变更

修复REASSIGN OWNED以正确更改组合类型的所有权(Álvaro Herrera)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复REASSIGN OWNED和ALTER OWNER在更改数据类型、外部数据包装器或外部服务器的所有者时正确更新已授权权限列表的问题

变更

修复REASSIGN OWNED和ALTER OWNER在更改数据类型、外部数据包装器或外部服务器的所有者时正确更新已授权权限列表的问题(Bruce Momjian, Álvaro Herrera)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复REASSIGN OWNED忽略外部用户映射而不是报错的问题

变更

修复REASSIGN OWNED忽略外部用户映射而不是报错的问题(Álvaro Herrera)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进当 GIN 索引的内部统计信息严重过时时,增加更多针对规划器错误代价估计的防护

变更

当 GIN 索引的内部统计信息严重过时时,增加更多针对规划器错误代价估计的防护(Tom Lane)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进使规划器能够处理由索引顾问插件建议的假设性 GIN 索引

变更

使规划器能够处理由索引顾问插件建议的假设性 GIN 索引(Julien Rouhaud)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复ROW()和VALUES()列表中整行 Var 的转储问题

变更

修复ROW()和VALUES()列表中整行 Var 的转储问题(Tom Lane)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复numeric除法中可能出现的内部溢出

变更

修复numeric除法中可能出现的内部溢出(Dean Rasheed)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复正则表达式先行约束中括号内限制的执行

变更

修复正则表达式先行约束中括号内限制的执行(Tom Lane)

根据手册,先行约束不允许包含反向引用,且其中的括号始终被视为非捕获括号。但代码未能正确处理括号子表达式内的这些情况,会给出意外的结果。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进将正则表达式转换为索引扫描边界时,可能从包含向前看约束的正则表达式生成错误边界

变更

将正则表达式转换为索引扫描边界时,可能从包含向前看约束的正则表达式生成错误边界(Tom Lane)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

安全相关修复正则表达式编译器使其处理约束弧构成的环

变更

修复正则表达式编译器使其处理约束弧构成的环(Tom Lane)

为 CVE-2007-4772 添加的代码既不完整——未能处理涉及多个状态的环——又不正确——可能导致断言失败(不过在非断言构建中似乎没有不良后果)。多状态环会使编译器一直运行,直到查询被取消或达到状态数过多的错误条件。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进改进正则表达式编译器中的内存用量统计

变更

改进正则表达式编译器中的内存用量统计(Tom Lane)

这使代码在一些以前耗费不合理时间和内存量的情况下发出“regular expression is too complex”错误。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

性能改进改进正则表达式编译器的性能

变更

改进正则表达式编译器的性能(Tom Lane)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进使 log_line_prefix 中的 %h 和 %r 转义对因 log_connections 而发出的消息也生效

变更

使 log_line_prefix 中的 %h 和 %r 转义对因 log_connections 而发出的消息也生效(Tom Lane)

以前,%h/%r 要等到新会话发出“connection received”日志消息之后才开始生效;现在它们对该消息也生效。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 Windows 上,确保不需要共享内存映射句柄的子进程关闭该句柄

变更

在 Windows 上,确保不需要共享内存映射句柄的子进程关闭该句柄(Tom Lane、Amit Kapila)

只要 logging_collector 处于开启状态,这一疏忽就会导致无法从崩溃中恢复。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 Windows 上非阻塞模式下可能无法检测套接字 EOF 的问题

变更

修复 Windows 上非阻塞模式下可能无法检测套接字 EOF 的问题(Tom Lane)

目前尚不完全清楚此问题是否会在 9.5 之前的分支中发生,但如果发生,其症状将是 walsender 进程无限等待而不是察觉到连接丢失。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复避免 SSPI 身份验证期间泄漏令牌句柄

变更

避免 SSPI 身份验证期间泄漏令牌句柄(Christian Ullrich)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 psql 中,确保当终端窗口大小改变时更新 libreadline 所认知的屏幕尺寸

变更

在 psql 中,确保当终端窗口大小改变时更新 libreadline 所认知的屏幕尺寸(Merlin Moncure)

此前,如果窗口在查询输出期间被调整大小,libreadline 不会察觉,导致之后输入多行查询时出现奇怪的行为。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 psql 的 \det 命令,使其以与其他可能带模式限定模式的 \d 命令相同的方式解释模式参数

变更

修复 psql 的 \det 命令,使其以与其他可能带模式限定模式的 \d 命令相同的方式解释模式参数(Reece Hart)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复避免在以下情况下psql的\c命令可能崩溃:先前连接是通过 Unix 套接字建立的,而命令指定了新的主机名和相同的用户名

变更

避免在以下情况下psql的\c命令可能崩溃:先前连接是通过 Unix 套接字建立的,而命令指定了新的主机名和相同的用户名(Tom Lane)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 pg_ctl start -w 中,直接测试子进程状态而不是依赖启发式方法

变更

在 pg_ctl start -w 中,直接测试子进程状态而不是依赖启发式方法(Tom Lane、Michael Paquier)

此前,pg_ctl 依赖一个假设:新的 postmaster 总会在五秒内创建 postmaster.pid。但在高负载系统上这可能失败,导致 pg_ctl 错误地报告 postmaster 启动失败。

除 Windows 外,此变更还意味着紧接另一个此类命令之后执行的 pg_ctl start -w 现在会可靠地失败,而此前如果在第一条命令后两秒内执行则会报告成功。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 pg_ctl start -w 中,不再尝试使用通配监听地址连接 postmaster

变更

在 pg_ctl start -w 中,不再尝试使用通配监听地址连接 postmaster(Kondo Yuta)

在 Windows 上,如果 listen_addresses 被设置为 0.0.0.0 或 ::,pg_ctl 将无法检测到 postmaster 的启动,因为它会试图原样使用该值作为要连接的地址,而这行不通。现在改为假定应分别使用 127.0.0.1 或 ::1。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 Windows 上的 pg_ctl 中,通过检查服务状态来决定输出发送到哪里,而不是检查标准输出是否为终端

变更

在 Windows 上的 pg_ctl 中,通过检查服务状态来决定输出发送到哪里,而不是检查标准输出是否为终端(Michael Paquier)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 pg_dump 和 pg_basebackup 中,采用 GNU 约定来处理超过 8GB 的 tar 归档成员

变更

在 pg_dump 和 pg_basebackup 中,采用 GNU 约定来处理超过 8GB 的 tar 归档成员(Tom Lane)

tar 文件格式的 POSIX 标准不允许归档成员文件超过 8GB,但大多数现代 tar 实现支持解决此问题的扩展。采用这一扩展后,pg_dump 使用 -Ft 时不再在数据超过 8GB 的表上失败,pg_basebackup 也能处理大于 8GB 的文件。此外,还修复了一些可移植性问题,它们可能在某些平台上导致 4GB 到 8GB 之间的成员失败。这些问题有可能因备份文件不可读而造成不可恢复的数据丢失。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_dump 处理扩展成员对象时的若干边界 bug

变更

修复 pg_dump 处理扩展成员对象时的若干边界 bug(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进使 pg_dump 把视图的触发器标记为需要在其规则之后处理,以防止并行 pg_restore 期间可能出现的失败

变更

使 pg_dump 把视图的触发器标记为需要在其规则之后处理,以防止并行 pg_restore 期间可能出现的失败(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保在 pg_dump 中正确引用关系选项值

变更

确保在 pg_dump 中正确引用关系选项值(Kouhei Sutou、Tom Lane)

不是简单标识符或数字的 reloption 值可能因 pg_dump 发出的 CREATE 语句中的语法错误而导致转储/重载失败。核心 PostgreSQL 目前支持的任何 reloption 都不存在此问题,但扩展可能允许导致该问题的 reloption。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复pg_upgrade的文件复制代码在 Windows 上正确处理错误的问题

变更

修复pg_upgrade的文件复制代码在 Windows 上正确处理错误的问题(Bruce Momjian)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 pgbench 中加入防护,防止计算脚本指定的除法或取模运算符期间的边界溢出情况

变更

在 pgbench 中加入防护,防止计算脚本指定的除法或取模运算符期间的边界溢出情况(Fabien Coelho、Michael Paquier)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复pg_receivexlog和pg_recvlogical发出的消息未能本地化的问题

变更

修复pg_receivexlog和pg_recvlogical发出的消息未能本地化的问题(Ioseph Kim)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免同时使用 plpython2 和 plpython3 时的转储/重载问题

变更

避免同时使用 plpython2 和 plpython3 时的转储/重载问题(Tom Lane)

原则上,两个版本的 PL/Python 可以在同一个数据库中使用,但不能在同一个会话中使用(因为两个版本的 libpython 无法安全地并发使用)。然而,pg_restore 和 pg_upgrade 都会做一些可能触犯同会话限制的事情。通过更改检查的时机来规避这一点。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 PL/Python 回归测试,使其在 Python 3.5 下通过

变更

修复 PL/Python 回归测试,使其在 Python 3.5 下通过(Peter Eisentraut)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

安全相关防止某些 PL/Java 参数被非超级用户设置

变更

防止某些 PL/Java 参数被非超级用户设置(Noah Misch)

此变更缓解了 PL/Java 的一个安全 bug(CVE-2016-0766),该 bug 在 PL/Java 中已通过把这些参数标记为仅超级用户可用来修复。为了保护那些更新 PostgreSQL 比 PL/Java 更频繁的站点,核心代码现在也识别这些参数。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进改进libpq对内存耗尽情况的处理

变更

改进libpq对内存耗尽情况的处理(Michael Paquier, Amit Kapila, Heikki Linnakangas)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复ecpg生成的typedef语句中参数顺序错误的问题

变更

修复ecpg生成的typedef语句中参数顺序错误的问题(Michael Meskes)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在ecpg的PGTYPESnumeric_from_double()中使用%g而非%f格式

变更

在ecpg的PGTYPESnumeric_from_double()中使用%g而非%f格式(Tom Lane)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 ecpg 提供的头文件,使其不包含从预处理指令行延续到下一行的注释

变更

修复 ecpg 提供的头文件,使其不包含从预处理指令行延续到下一行的注释(Michael Meskes)

这样的注释会被 ecpg 拒绝。尚不清楚是否应该更改 ecpg 本身。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保contrib/pgcrypto的crypt()函数可以被查询取消中断

变更

确保contrib/pgcrypto的crypt()函数可以被查询取消中断(Andreas Karlsson)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进接受晚于 2.5.x 的flex版本

变更

接受晚于 2.5.x 的flex版本(Tom Lane、Michael Paquier)

由于 flex 2.6.0 已发布,需要调整构建脚本中的版本检查。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进将我们的missing脚本安装到 PGXS 构建能找到的位置

变更

将我们的missing脚本安装到 PGXS 构建能找到的位置(Jim Nasby)

这使得在缺少bison等构建工具的机器上进行 PGXS 构建时能有合理的行为。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保 dynloader.h 包含在 MSVC 构建安装的头文件中

变更

确保 dynloader.h 包含在 MSVC 构建安装的头文件中(Bruce Momjian、Michael Paquier)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

安全相关新增变体回归测试期望输出文件,以匹配当前libxml2的行为

变更

新增变体回归测试期望输出文件,以匹配当前libxml2的行为(Tom Lane)

libxml2对 CVE-2015-7499 的修复导致它在某些过去会输出错误上下文报告的情况下不再输出。这似乎是一个缺陷,但我们可能不得不在一段时间内接受它,因此做了变通处理。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进把时区数据文件更新到 tzdata 2016a 版,涉及开曼群岛、梅特拉卡特拉和外贝加尔边疆区的夏令时法规变更,以及巴基斯坦的历史数据修正。

变更

把时区数据文件更新到 tzdata 2016a 版,涉及开曼群岛、梅特拉卡特拉和外贝加尔边疆区的夏令时法规变更,以及巴基斯坦的历史数据修正。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

PostgreSQL 9.2.14

升级与兼容性说明

对于运行 9.2.X 的用户,不需要进行转储/恢复。

不过,如果你是从早于 9.2.11 的版本升级,请参见第 E.14 节。

安全相关修复contrib/pgcrypto以检测并报告过短的crypt()盐值

变更

修复contrib/pgcrypto以检测并报告过短的crypt()盐值(Josh Kupershmidt)

某些无效的盐值参数会导致服务器崩溃或泄露少量服务器内存字节。我们尚未排除通过安排让泄露字节中出现机密信息实施攻击的可行性,但这种攻击似乎不太可能。(CVE-2015-5288)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复属于外部子事务的门户(游标)失败后的子事务清理问题

变更

修复属于外部子事务的门户(游标)失败后的子事务清理问题(Tom Lane、Michael Paquier)

在外部子事务游标中执行的函数可能因引用在内部子事务中创建的关系而导致断言失败或崩溃。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复关系插入关系缓存“init 文件”的问题

变更

修复关系插入关系缓存“init 文件”的问题(Tom Lane)

最近几个小版本中一个补丁的疏忽导致pg_trigger_tgrelid_tgname_index被遗漏在 init 文件之外。后续会话检测到这一点后认定 init 文件已损坏并静默忽略它,导致会话启动时间显著退化。除修复该缺陷外,还加入了一些防护,使未来任何类似错误更明显。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免向 SPI 查询结果插入大量元组时的 O(N^2) 行为

变更

避免向 SPI 查询结果插入大量元组时的 O(N^2) 行为(Neil Conway)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进改进存在大量未读通知时LISTEN的启动时间

变更

改进存在大量未读通知时LISTEN的启动时间(Matt Newell)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进回移植 9.3 时代新增的逐资源所有者锁缓存

变更

回移植 9.3 时代新增的逐资源所有者锁缓存(Jeff Janes)

当 pg_dump 尝试转储大量表时,这能显著提升性能。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进默认禁用 SSL 重新协商

变更

默认禁用 SSL 重新协商(Michael Paquier、Andres Freund)

虽然使用 SSL 重新协商在理论上是个好主意,但实践中我们看到了太多缺陷,无论是底层 OpenSSL 库中还是我们对它的使用中。重新协商将在 9.5 及更高版本中完全移除。在较旧的分支中,只是把ssl_renegotiation_limit的默认值改为零(禁用)。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进降低*_freeze_max_age参数的最小值

变更

降低*_freeze_max_age参数的最小值(Andres Freund)

这主要是为了使相关行为的测试不那么耗时,但对磁盘空间有限的安装也可能有价值。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复将wal_buffers的最大值限制为 2GB 以避免服务器崩溃

变更

将wal_buffers的最大值限制为 2GB 以避免服务器崩溃(Josh Berkus)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复numeric值相乘时罕见的内部溢出

变更

修复numeric值相乘时罕见的内部溢出(Dean Rasheed)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进防御涉及记录类型、范围类型、json、jsonb、tsquery、ltxtquery和query_int的难以触发的栈溢出

变更

防御涉及记录类型、范围类型、json、jsonb、tsquery、ltxtquery和query_int的难以触发的栈溢出(Noah Misch)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复日期时间输入中DOW和DOY的处理

变更

修复日期时间输入中DOW和DOY的处理(Greg Stark)

这些记号本不应在日期时间值中使用,但过去它们导致的是难懂的内部错误消息,而不是“无效的输入语法”。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在正则表达式匹配中增加更多查询取消检查

变更

在正则表达式匹配中增加更多查询取消检查(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进为正则表达式、SIMILAR TO和LIKE匹配增加递归深度保护

变更

为正则表达式、SIMILAR TO和LIKE匹配增加递归深度保护(Tom Lane)

合适的搜索模式加上较低的栈深度限制可能导致栈越界崩溃。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复正则表达式执行中潜在的无限循环

变更

修复正则表达式执行中潜在的无限循环(Tom Lane)

一个表面上能匹配零长度字符串、但实际上因反向引用而不匹配的搜索模式可能导致无限循环。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在正则表达式执行中,即使匹配长度为零,也正确记录量词内捕获括号的匹配数据

变更

在正则表达式执行中,即使匹配长度为零,也正确记录量词内捕获括号的匹配数据(Tom Lane)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复正则表达式编译中的内存不足失败

变更

修复正则表达式编译中的内存不足失败(Andreas Seltenreich)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复正则表达式执行期间低概率的内存泄漏

变更

修复正则表达式执行期间低概率的内存泄漏(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复事务中止期间锁清理中罕见的内存不足失败

变更

修复事务中止期间锁清理中罕见的内存不足失败(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复在使用较小work_mem设置的元组存储时出现“排序期间意外的内存不足情况”错误的问题

变更

修复在使用较小work_mem设置的元组存储时出现“排序期间意外的内存不足情况”错误的问题(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复qsort中极低概率的栈越界

变更

修复qsort中极低概率的栈越界(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复在使用较大work_mem设置的哈希连接中出现“无效的内存分配请求大小”失败的问题

变更

修复在使用较大work_mem设置的哈希连接中出现“无效的内存分配请求大小”失败的问题(Tomas Vondra, Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复若干规划器缺陷

变更

修复若干规划器缺陷(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 通过模糊测试暴露了这些问题。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

性能改进改进规划器在大型继承集合上执行UPDATE/DELETE的性能

变更

改进规划器在大型继承集合上执行UPDATE/DELETE的性能(Tom Lane, Dean Rasheed)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保在 postmaster 启动时移除备库提升触发文件

变更

确保在 postmaster 启动时移除备库提升触发文件(Michael Paquier、Fujii Masao)

这可以防止这些文件出现在用于初始化新备库服务器的数据库备份中时发生不需要的提升。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 postmaster 关闭期间,确保在移除postmaster.pid文件之前移除各套接字的锁文件并关闭监听套接字

变更

在 postmaster 关闭期间,确保在移除postmaster.pid文件之前移除各套接字的锁文件并关闭监听套接字(Tom Lane)

这可以避免外部脚本在pg_ctl stop一返回就尝试启动新 postmaster 时出现竞争条件失败。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 postmaster 对崩溃恢复期间启动进程崩溃的处理

变更

修复 postmaster 对崩溃恢复期间启动进程崩溃的处理(Tom Lane)

如果在崩溃恢复周期中,启动进程在尚未恢复数据库一致性时崩溃,我们会尝试启动一个新的启动进程,而这通常只会再次崩溃,导致无限循环。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进当我们尝试向某个自动清理工作进程发送信号而它已经消失时,不再打印WARNING,并降低此类信号的日志详细程度

变更

当我们尝试向某个自动清理工作进程发送信号而它已经消失时,不再打印WARNING,并降低此类信号的日志详细程度(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进防止服务器时钟被大幅回拨时自动清理启动器睡眠时间过长

变更

防止服务器时钟被大幅回拨时自动清理启动器睡眠时间过长(Álvaro Herrera)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保 GIN 索引待插入列表的清理可被取消请求中断

变更

确保 GIN 索引待插入列表的清理可被取消请求中断(Jeff Janes)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进允许重用 GIN 索引中的全零页

变更

允许重用 GIN 索引中的全零页(Heikki Linnakangas)

崩溃之后可能遗留这样的页。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 SP-GiST 索引中对全零页的处理

变更

修复 SP-GiST 索引中对全零页的处理(Heikki Linnakangas)

VACUUM 曾试图回收此类页,但方式并非崩溃安全。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复一个差一错误,该错误会导致 subtrans/multixact 截断中出现本可避免的“表面回卷”警告

变更

修复一个差一错误,该错误会导致 subtrans/multixact 截断中出现本可避免的“表面回卷”警告(Thomas Munro)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复PL/pgSQL错误上下文消息中CONTINUE和MOVE语句类型误报的问题

变更

修复PL/pgSQL错误上下文消息中CONTINUE和MOVE语句类型误报的问题(Pavel Stehule, Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复PL/Perl以正确处理非ASCII错误消息文本

变更

修复PL/Perl以正确处理非ASCII错误消息文本(Alex Hunsaker)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复PL/Python在返回record结果的字符串表示时崩溃的问题

变更

修复PL/Python在返回record结果的字符串表示时崩溃的问题(Tom Lane)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复PL/Tcl中一些未检查malloc()调用失败的位置

变更

修复PL/Tcl中一些未检查malloc()调用失败的位置(Michael Paquier, Álvaro Herrera)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复在 contrib/isn 中,修复以 979 开头的 ISBN-13 号码的输出

变更

在 contrib/isn 中,修复以 979 开头的 ISBN-13 号码的输出(Fabien Coelho)

以 979(但不以 9790)开头的 EAN 被视为 ISBN,但它们必须以新的 13 位格式而非 10 位格式打印。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 contrib/sepgsql 对 SELECT INTO 语句的处理

变更

修复 contrib/sepgsql 对 SELECT INTO 语句的处理(Kohei KaiGai)

其他改进改进libpq对内存耗尽情况的处理

变更

改进libpq对内存耗尽情况的处理(Michael Paquier, Heikki Linnakangas)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复ecpg中的内存泄漏和缺失的内存不足检查

变更

修复ecpg中的内存泄漏和缺失的内存不足检查(Michael Paquier)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 psql 中对数字输出的区域感知格式化代码

变更

修复 psql 中对数字输出的区域感知格式化代码(Tom Lane)

\pset numericlocale on 所调用的格式化代码在一些不常见的情况下会出错,例如带指数但没有小数点的数字。它还可能破坏 money 数据类型已经区域化的输出。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复防止在没有当前连接时psql的\c命令崩溃

变更

防止在没有当前连接时psql的\c命令崩溃(Noah Misch)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进使pg_dump正确处理继承的NOT VALID检查约束

变更

使pg_dump正确处理继承的NOT VALID检查约束(Tom Lane)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复pg_dump目录输出格式中默认zlib压缩级别的选择问题

变更

修复pg_dump目录输出格式中默认zlib压缩级别的选择问题(Andrew Dunstan)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保pg_dump以tar格式输出运行期间创建的临时文件不被全局可读

变更

确保pg_dump以tar格式输出运行期间创建的临时文件不被全局可读(Michael Paquier)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复pg_dump和pg_upgrade以支持postgres或template1数据库位于非默认表空间的情况

变更

修复pg_dump和pg_upgrade以支持postgres或template1数据库位于非默认表空间的情况(Marti Raudsepp, Bruce Momjian)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_dump 从过于陈旧而没有特定权限类型的服务器转储时对对象权限的处理

变更

修复 pg_dump 从过于陈旧而没有特定权限类型的服务器转储时对对象权限的处理(Tom Lane)

从 9.2 之前的服务器转储数据类型,以及从 7.3 之前的服务器转储函数或过程语言时,pg_dump 会生成撤销所有者可授予权限、转而将所有权限授予 PUBLIC 的 GRANT/REVOKE 命令。由于所涉及的权限只是 USAGE 和 EXECUTE,这不构成安全问题,但这种表示与旧系统的行为明显不符。现已修复,在这些情况下保持默认权限状态不变。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复pg_dump以转储 shell 类型

变更

修复pg_dump以转储 shell 类型(Tom Lane)

shell 类型(即尚未完全定义的类型)用处不大,但pg_dump仍应转储它们。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复pg_dump及其他客户端程序中的若干小内存泄漏

变更

修复pg_dump及其他客户端程序中的若干小内存泄漏(Michael Paquier)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 PPC 硬件的自旋锁汇编代码使其与AIX本机汇编器兼容

变更

修复 PPC 硬件的自旋锁汇编代码使其与AIX本机汇编器兼容(Tom Lane)

如果gcc被配置为使用本机汇编器(这正变得越来越普遍),则用gcc构建无法工作。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在AIX上,测试-qlonglong编译器选项,而不是直接假定它可以安全使用

变更

在AIX上,测试-qlonglong编译器选项,而不是直接假定它可以安全使用(Noah Misch)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在AIX上,使用-Wl,-brtllib链接选项以允许符号在运行时解析

变更

在AIX上,使用-Wl,-brtllib链接选项以允许符号在运行时解析(Noah Misch)

Perl 5.8.0 及更高版本依赖这一能力。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进由于编译器缺陷,在使用 32 位xlc编译时避免使用内联函数

变更

由于编译器缺陷,在使用 32 位xlc编译时避免使用内联函数(Noah Misch)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进必要时使用librt提供sched_yield(),某些 Solaris 版本即是如此

变更

必要时使用librt提供sched_yield(),某些 Solaris 版本即是如此(Oskari Saarenmaa)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 Windowsinstall.bat脚本以处理包含空格的目标目录名

变更

修复 Windowsinstall.bat脚本以处理包含空格的目标目录名(Heikki Linnakangas)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进使PostgreSQL版本号的数字形式(例如90405)以名为VERSION_NUM的变量方便地提供给扩展 Makefile 使用

变更

使PostgreSQL版本号的数字形式(例如90405)以名为VERSION_NUM的变量方便地提供给扩展 Makefile 使用(Michael Paquier)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进将时区数据文件更新到tzdata发行版 2015g,以反映开曼群岛、斐济、摩尔多瓦、摩洛哥、诺福克岛、朝鲜、土耳其和乌拉圭的夏令时法规变更。为加拿大北落基山地区新增了时区名America/Fort_Nelson。

变更

将时区数据文件更新到tzdata发行版 2015g,以反映开曼群岛、斐济、摩尔多瓦、摩洛哥、诺福克岛、朝鲜、土耳其和乌拉圭的夏令时法规变更。为加拿大北落基山地区新增了时区名America/Fort_Nelson。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

PostgreSQL 9.2.13

升级与兼容性说明

对于运行 9.2.X 的用户,不需要进行转储/恢复。

不过,如果你是从早于 9.2.11 的版本升级,请参见第 E.14 节。

BUG 修复修复罕见的未能使关系缓存 init 文件失效的问题

变更

修复罕见的未能使关系缓存 init 文件失效的问题(Tom Lane)

在并发活动时序恰好不对的情况下,对系统目录执行VACUUM FULL可能无法更新用于避免新会话缓存加载工作的“init 文件”。这将导致后续会话完全无法访问该目录。这是一个非常古老的缺陷,但它极难触发,直到最近才出现可复现的案例。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复避免传入会话与CREATE/DROP DATABASE之间的死锁

变更

避免传入会话与CREATE/DROP DATABASE之间的死锁(Tom Lane)

在作为DROP DATABASE命令目标或CREATE DATABASE命令模板的数据库中启动的新会话,可能导致该命令等待五秒后失败,即使新会话本会在此之前退出。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

PostgreSQL 9.2.12

升级与兼容性说明

对于运行 9.2.X 的用户,不需要进行转储/恢复。

不过,如果你是从早于 9.2.11 的版本升级,请参见第 E.14 节。

BUG 修复避免崩溃重启期间对数据目录执行fsync时失败

变更

避免崩溃重启期间对数据目录执行fsync时失败(Abhijit Menon-Sen、Tom Lane)

在前几个小版本中,我们加入了一个补丁,在崩溃后对数据目录中的所有内容执行fsync。遗憾的是,它对任何错误情况的响应都是失败,从而阻止服务器启动,即使问题相当无害。例如,数据目录中一个不可写的文件在某些平台上会阻止重启;但把 SSL 证书文件设为服务器不可写是很常见的做法。我们修改了这一行为:权限失败被完全忽略,其他类型的失败会被记录但不会阻止继续。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复pg_get_functiondef()以在设置了LEAKPROOF属性时显示该属性

变更

修复pg_get_functiondef()以在设置了LEAKPROOF属性时显示该属性(Jeevan Chalke)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进移除configure中对在OpenBSD上链接线程版libpython的禁止性检查

变更

移除configure中对在OpenBSD上链接线程版libpython的禁止性检查(Tom Lane)

这一限制原本要防止的失败在当前的OpenBSD版本上似乎已不再是问题。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进允许 libpq 使用高于 v1 的 TLS 协议版本

变更

允许 libpq 使用高于 v1 的 TLS 协议版本(Noah Misch)

长期以来,libpq 的代码只允许使用 TLS v1 这一种 SSL 协议。随着较新的 TLS 版本日益普及,现在允许它与服务器协商双方共同支持的最高 TLS 版本。(PostgreSQL 服务器早已支持这种协商,因此服务器端无需更改。)这是对 9.4.0 中已发布变更的回移植。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

PostgreSQL 9.2.11

升级与兼容性说明

对于运行 9.2.X 的用户,不需要进行转储/恢复。

但是,如果你使用contrib/citext的regexp_matches()函数,请参见下面相关的变更日志条目。

不过,如果你是从早于 9.2.10 的版本升级,请参见第 E.15 节。

安全相关避免客户端恰在认证超时到期前断开时可能出现的崩溃

变更

避免客户端恰在认证超时到期前断开时可能出现的崩溃(Benkocs Norbert Attila)

如果超时中断在会话关闭序列进行到一半时触发,SSL 相关状态会被释放两次,通常导致崩溃并对其他会话造成服务拒绝。实验表明,未经认证的远程攻击者能够相当稳定地触发此缺陷,因此按安全问题处理。(CVE-2015-3165)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

安全相关改进对系统调用失败的检测

变更

改进对系统调用失败的检测(Noah Misch)

我们替换实现的snprintf()未检查底层系统库调用报告的错误;可能被遗漏的主要情况是内存耗尽。在最坏情况下,由于我们的代码假定缓冲区已被覆写而实际未覆写,这可能导致信息暴露。此外,还有少数地方对安全相关的其他系统库函数调用未检查失败。

仍有可能某些对*printf()族函数的调用在恰逢内存耗尽错误时存在信息泄露风险。我们判断风险不大,但将继续在此领域进行分析。(CVE-2015-3166)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

安全相关在contrib/pgcrypto中,统一将解密失败报告为“Wrong key or corrupt data”

变更

在contrib/pgcrypto中,统一将解密失败报告为“Wrong key or corrupt data”(Noah Misch)

此前,某些使用错误密钥解密的情况可能报告其他错误消息文本。已经证明,这种错误报告的差异可能帮助攻击者从其他系统恢复密钥。虽然尚不清楚pgcrypto的具体行为是否同样可被利用,但使用统一消息来避免风险似乎更好。(CVE-2015-3167)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复contrib/citext的regexp_matches()函数的错误声明

变更

修复contrib/citext的regexp_matches()函数的错误声明(Tom Lane)

这些函数应当像它们所包装的核心函数一样返回setof text[];但它们被错误地声明为只返回text[]。这一错误有两个后果:第一,如果没有匹配,得到的是标量 null 结果,而正确的应该是空集(零行)。第二,g标志实际上被忽略了,因为即使有多个匹配也只会得到一个结果数组。

虽然后一种行为显然是缺陷,但可能有应用程序依赖前一种行为;因此在PostgreSQL 9.5 之前默认不会更改函数声明。在 9.5 之前的分支中,旧行为存在于citext扩展的版本 1.0 中,而我们在版本 1.1 中提供了修正后的声明(不默认安装)。要在 9.5 之前的分支中采用修复,请在安装了citext的每个数据库中执行ALTER EXTENSION citext UPDATE TO '1.1'。(如果需要撤销,也可以“更新”回 1.0。)请注意,任一更新方向都需要删除并重新创建所有使用citext的regexp_matches()函数的视图或规则。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 HOT 更新后延迟排他约束检查不正确的问题

变更

修复 HOT 更新后延迟排他约束检查不正确的问题(Tom Lane)

如果同一事务中稍后对一条可能违反延迟排他约束的新行进行了 HOT 更新(即没有索引列发生变化,且该行可以存回同一表页),那么最终执行检查时将报告排他约束被违反,即使新行最初与之冲突的行已被删除。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复星型模式风格查询的规划

变更

修复星型模式风格查询的规划(Tom Lane)

有时,对大表的高效扫描要求索引参数来自不止一个其他表(通常是维度表,其键用于对大型事实表建立索引)。规划器应当能找到此类计划,但一个过于严苛的搜索启发式阻止了这一点。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进防止反连接(NOT EXISTS 连接)与其他外连接之间的不当重排序

变更

防止反连接(NOT EXISTS 连接)与其他外连接之间的不当重排序(Tom Lane)

已知规划器中的这一疏忽会导致“could not find RelOptInfo for given relids”错误,但有时错误的查询计划似乎有可能通过该一致性检查并导致静默错误的查询输出。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复外连接计划节点中子表达式匹配不正确的问题

变更

修复外连接计划节点中子表达式匹配不正确的问题(Tom Lane)

此前,如果文本相同的非严格子表达式在外连接的上、下方都被使用,规划器可能试图重用在连接下方计算的值,但这是不正确的,因为对于未匹配的外部行,执行器会将该值强制置为 NULL。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 GEQO 规划器以应对其连接顺序启发式的失败

变更

修复 GEQO 规划器以应对其连接顺序启发式的失败(Tom Lane)

已知这一疏忽会在涉及 LATERAL 的查询中导致“failed to join all relations together”错误,其他情况下也可能发生。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复max_prepared_transactions过小时启动阶段可能出现的死锁

变更

修复max_prepared_transactions过小时启动阶段可能出现的死锁(Heikki Linnakangas)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进时间线切换后不再归档无用的预分配 WAL 文件

变更

时间线切换后不再归档无用的预分配 WAL 文件(Heikki Linnakangas)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免“cannot GetMultiXactIdMembers() during recovery”错误

变更

避免“cannot GetMultiXactIdMembers() during recovery”错误(Álvaro Herrera)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进崩溃之后递归地对数据目录执行 fsync()

变更

崩溃之后递归地对数据目录执行 fsync()(Abhijit Menon-Sen、Robert Haas)

这确保了若随后不久再发生崩溃时数据仍保持一致。(要有问题的话,第二次崩溃必须是系统级崩溃,而不只是数据库崩溃。)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复自动清理启动器在收到 SIGTERM 之后发生错误时可能无法关闭的问题

变更

修复自动清理启动器在收到 SIGTERM 之后发生错误时可能无法关闭的问题(Álvaro Herrera)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进处理 LockBufferForCleanup() 中的意外信号

变更

处理 LockBufferForCleanup() 中的意外信号(Andres Freund)

这一疏忽可能导致有关“multiple backends attempting to wait for pincount 1”的虚假错误。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复向带有包含整行引用的检查约束的表执行 COPY IN 时的崩溃

变更

修复向带有包含整行引用的检查约束的表执行 COPY IN 时的崩溃(Tom Lane)

已知的失败情形只在 9.4 及以上版本中崩溃,但 9.3 和 9.2 中也有非常相似的代码,因此这些分支也被向后修补。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进就用户而言是只读的事务,在提交期间不再等待 WAL 刷写或同步复制

变更

就用户而言是只读的事务,在提交期间不再等待 WAL 刷写或同步复制(Andres Freund)

此前,由于 HOT 页清理而写入了 WAL 的事务在提交时可能出现延迟,导致不良影响,例如所有同步副本都停机时会话在启动时卡住。还观察到使用同步复制时会话卡在追赶中断处理中;此修复也将解决该问题。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复在临时表上操作哈希索引时崩溃的问题

变更

修复在临时表上操作哈希索引时崩溃的问题(Heikki Linnakangas)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复哈希索引桶分裂期间(若其他进程正在并发修改该索引)可能失败的问题

变更

修复哈希索引桶分裂期间(若其他进程正在并发修改该索引)可能失败的问题(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在分析索引表达式期间检查中断

变更

在分析索引表达式期间检查中断(Jeff Janes)

ANALYZE 会多次执行索引表达式;如果此类表达式中存在慢速函数,就希望能在此循环结束之前取消 ANALYZE。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保在通过SELECT FOR UPDATE、UPDATE或DELETE锁定行之后发生READ COMMITTED复查时,外部表的tableoid被正确报告

变更

确保在通过SELECT FOR UPDATE、UPDATE或DELETE锁定行之后发生READ COMMITTED复查时,外部表的tableoid被正确报告(Etsuro Fujita)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在外部服务器用户映射的对象描述字符串中加入目标服务器的名称

变更

在外部服务器用户映射的对象描述字符串中加入目标服务器的名称(Álvaro Herrera)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进建议在使用 Kerberos/GSSAPI/SSPI 认证时将 include_realm 设置为 1

变更

建议在使用 Kerberos/GSSAPI/SSPI 认证时将 include_realm 设置为 1(Stephen Frost)

不这样设置的话,来自不同领域的同名用户无法区分。目前这只是文档变更,但在 PostgreSQL 9.5 中它将成为默认设置。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进移除将 IPv4 pg_hba.conf 条目匹配到 IPv4-in-IPv6 地址的代码

变更

移除将 IPv4 pg_hba.conf 条目匹配到 IPv4-in-IPv6 地址的代码(Tom Lane)

这段应急代码于 2003 年添加,起因是当时的某些 Linux 内核会把 IPv4 连接报告为 IPv4-in-IPv6 地址。然而该逻辑在 9.0 中被意外破坏。此后没有任何现场投诉,说明它已不再需要。现在反而有报告称被破坏的代码在某些系统上导致崩溃,因此我们选择直接移除而不是修复它。(如果选择修复,将会使 IPv4 pg_hba.conf 条目的实际含义发生微妙且可能涉及安全性的变化,在次版本中这样做似乎并不妥当。)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在IDENTIFY_SYSTEM复制命令中报告 WAL 刷写位置而非插入位置

变更

在IDENTIFY_SYSTEM复制命令中报告 WAL 刷写位置而非插入位置(Heikki Linnakangas)

这避免了pg_receivexlog可能出现的启动失败。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 Windows 上关闭服务期间,定期向服务控制管理器发送状态更新,以防止它过早终止服务;并确保pg_ctl会等待关闭完成

变更

在 Windows 上关闭服务期间,定期向服务控制管理器发送状态更新,以防止它过早终止服务;并确保pg_ctl会等待关闭完成(Krystian Bigaj)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进降低使用libpq非阻塞模式时网络死锁的风险

变更

降低使用libpq非阻塞模式时网络死锁的风险(Heikki Linnakangas)

在发送大量数据时,定期排空输入缓冲区很重要,以防服务器已发送足够的响应数据导致其在输出上阻塞。(典型场景是服务器在COPY FROM STDIN期间发送一连串 NOTICE 消息。)这在普通阻塞模式下工作正常,但在非阻塞模式下则不然。我们修改了libpq,使其在可能时顺便排空输入,但要完全防御此问题需要应用程序配合:应用程序应同时监视套接字的读就绪和写就绪条件,并确保在读就绪时调用PQconsumeInput()。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复libpq中 URI 连接串空值解析错误的问题

变更

修复libpq中 URI 连接串空值解析错误的问题(Thomas Fanghaenel)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复ecpg中的数组处理

变更

修复ecpg中的数组处理(Michael Meskes)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复psql以合理处理作为\connect第一个参数的 URI 和 conninfo 串

变更

修复psql以合理处理作为\connect第一个参数的 URI 和 conninfo 串(David Fetter、Andrew Dunstan, Álvaro Herrera)

这一语法已被接受(但未写入文档)很长时间,但此前某些参数可能取自旧连接而非给定字符串,这被认为是不合适的。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进抑制psql在某些平台上关于退出时未能写入~/.psql_history的错误抱怨

变更

抑制psql在某些平台上关于退出时未能写入~/.psql_history的错误抱怨(Tom Lane)

这一不当行为源自针对非常老(2006 年之前)的libedit版本中一个缺陷的变通方案。我们通过移除该变通方案修复了问题,但这会使仍在使用此类libedit版本的用户出现类似失败。建议:升级该库,或改用libreadline。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复pg_dump判定哪些转换是不应转储的系统提供转换的规则

变更

修复pg_dump判定哪些转换是不应转储的系统提供转换的规则(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复pg_dump在-Fd下未遵循-Z压缩级别选项的问题

变更

修复pg_dump在-Fd下未遵循-Z压缩级别选项的问题(Michael Paquier)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进使pg_dump在选择转储顺序时考虑扩展配置表之间的外键关系

变更

使pg_dump在选择转储顺序时考虑扩展配置表之间的外键关系(Gilles Darold、Michael Paquier、Stephen Frost)

这一疏忽可能导致生成的转储无法重新加载,因为外键约束会被瞬时违反。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复对仅由VALUES(...)构成但带有列别名的视图的转储

变更

修复对仅由VALUES(...)构成但带有列别名的视图的转储(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在pg_upgrade中,强制新集簇使用时间线 1

变更

在pg_upgrade中,强制新集簇使用时间线 1(Bruce Momjian)

此变更可防止因错误抱怨缺少 WAL 历史文件而导致的升级失败。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在pg_upgrade中,继续之前先检查是否存在不当不可连接的数据库

变更

在pg_upgrade中,继续之前先检查是否存在不当不可连接的数据库(Bruce Momjian)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在pg_upgrade中,在生成的delete_old_cluster脚本中对目录路径正确加引号

变更

在pg_upgrade中,在生成的delete_old_cluster脚本中对目录路径正确加引号(Bruce Momjian)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在pg_upgrade中正确保留数据库级冻结信息

变更

在pg_upgrade中正确保留数据库级冻结信息(Bruce Momjian)

这一疏忽可能导致postgres和template1数据库中的表出现缺少 clog 文件的错误。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 Windows 上以受限权限运行pg_upgrade和pg_resetxlog,使它们在由管理员运行时不会失败

变更

在 Windows 上以受限权限运行pg_upgrade和pg_resetxlog,使它们在由管理员运行时不会失败(Muhammad Asif Naeem)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进改进initdb和pg_basebackup扫描目录时对readdir()失败的处理

变更

改进initdb和pg_basebackup扫描目录时对readdir()失败的处理(Marco Nenciarini)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_receivexlog 中的失败

变更

修复 pg_receivexlog 中的失败(Andres Freund)

9.2.10 中的一个补丁合并失误导致了“could not create archive status file”错误。

BUG 修复修复contrib/intarray中缓慢的排序算法

变更

修复contrib/intarray中缓慢的排序算法(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 Sparc V8 机器上的编译失败

变更

修复 Sparc V8 机器上的编译失败(Rob Rowan)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进将时区数据文件更新到tzdata发行版 2015d,以反映埃及、蒙古和巴勒斯坦的夏令时法规变更,以及加拿大和智利的历史变更。同时采用 America/Adak 时区修订后的时区缩写(HST/HDT 而非 HAST/HADT)。

变更

将时区数据文件更新到tzdata发行版 2015d,以反映埃及、蒙古和巴勒斯坦的夏令时法规变更,以及加拿大和智利的历史变更。同时采用 America/Adak 时区修订后的时区缩写(HST/HDT 而非 HAST/HADT)。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

PostgreSQL 9.2.10

升级与兼容性说明

对于运行 9.2.X 的用户,不需要进行转储/恢复。

但是,如果你是 Windows 用户且使用“Norwegian (Bokmål)”区域,升级后需要手工将PostgreSQL系统目录中存储的任何“Norwegian (Bokmål)_Norway”区域名替换为纯 ASCII 别名“Norwegian_Norway”。详情参见http://wiki.postgresql.org/wiki/Changes_To_Norwegian_Locale

不过,如果你是从早于 9.2.9 的版本升级,请参见第 E.16 节。

安全相关修复to_char()中的缓冲区越界

变更

修复to_char()中的缓冲区越界(Bruce Momjian)

当to_char()处理要求数字位数很多的数字格式模板时,PostgreSQL会读取越过缓冲区末尾。当处理恶意构造的时间戳格式模板时,PostgreSQL会写入越过缓冲区末尾。两种情况都可能导致服务器崩溃。我们尚未排除导致权限提升攻击的可能性,尽管这种攻击似乎不太可能。(CVE-2015-0241)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

安全相关修复替换实现的*printf()函数中的缓冲区越界

变更

修复替换实现的*printf()函数中的缓冲区越界(Tom Lane)

PostgreSQL包含printf及相关函数的替换实现。当代码格式化浮点数(转换说明符e、E、f、F、g或G)且请求的精度超过约 500 时,会发生栈缓冲区越界。这会导致服务器崩溃,我们尚未排除导致权限提升攻击的可能性。数据库用户可以通过to_char()SQL 函数触发这种缓冲区越界。虽然这是唯一受影响的核心PostgreSQL功能,但使用 printf 族函数的扩展模块也可能存在风险。

此问题主要影响 Windows 上的PostgreSQL。PostgreSQL在系统实现足够完善时会使用系统实现,而其他现代平台上正是如此。(CVE-2015-0242)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

安全相关修复contrib/pgcrypto中的缓冲区越界

变更

修复contrib/pgcrypto中的缓冲区越界(Marko Tiikkaja、Noah Misch)

pgcrypto模块中内存大小跟踪的错误导致了栈缓冲区越界和对未初始化内存内容的不当依赖。缓冲区越界情况可能导致服务器崩溃,我们尚未排除导致权限提升攻击的可能性。(CVE-2015-0243)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

安全相关修复出错后前端/后端协议可能失去同步的问题

变更

修复出错后前端/后端协议可能失去同步的问题(Heikki Linnakangas)

如果服务器在从客户端读取协议消息中途发生任何错误,它可能失去同步,错误地把消息数据的一部分解释为新的协议消息。能够在命令参数中提交恶意构造二进制数据的攻击者可能借此注入自己的 SQL 命令。语句超时和查询取消是触发此场景最可能的错误来源。尤其容易受影响的是既使用超时又将任意用户构造数据作为二进制查询参数提交的应用程序。禁用语句超时会降低但不能消除被利用的风险。感谢 Emil Lenngren 报告此问题。(CVE-2015-0244)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

安全相关修复通过约束违反错误消息的信息泄露

变更

修复通过约束违反错误消息的信息泄露(Stephen Frost)

某些服务器错误消息会显示违反约束(如唯一约束)的列的值。如果用户对该表的所有列没有SELECT权限,这可能意味着暴露用户不应看到的值。我们调整了代码,使值仅在来自 SQL 命令本身或用户可以查询到时才显示。(CVE-2014-8161)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

安全相关锁定 Windows 上回归测试的临时安装

变更

锁定 Windows 上回归测试的临时安装(Noah Misch)

使用 SSPI 认证,只允许启动测试套件的操作系统用户连接。这在 Windows 上关闭了此前已在其他平台上关闭的同一漏洞,即其他用户可能连接到测试 postmaster。(CVE-2014-0067)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进处理名为“Norwegian (Bokmål)”的 Windows 区域

变更

处理名为“Norwegian (Bokmål)”的 Windows 区域(Heikki Linnakangas)

非 ASCII 区域名是有问题的,因为不清楚应该用什么编码表示它们。将这个麻烦的区域名映射为纯 ASCII 别名“Norwegian_Norway”。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复避免在使用 ALTER DATABASE SET TABLESPACE 把数据库移到新表空间、随后不久又移回原表空间时可能出现的数据损坏

变更

避免在使用 ALTER DATABASE SET TABLESPACE 把数据库移到新表空间、随后不久又移回原表空间时可能出现的数据损坏(Tom Lane)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复避免当事务内的 ANALYZE 被回滚时损坏表

变更

避免当事务内的 ANALYZE 被回滚时损坏表(Andres Freund、Tom Lane、Michael Paquier)

如果失败的事务此前删除了表上的最后一个索引、规则或触发器,该表会处于损坏状态:相关的 pg_class 标志本应设置却未被设置。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保在 CREATE DATABASE 或 ALTER DATABASE SET TABLESPACE 期间正确复制不记录日志的表

变更

确保在 CREATE DATABASE 或 ALTER DATABASE SET TABLESPACE 期间正确复制不记录日志的表(Pavan Deolasee、Andres Freund)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 DROP 的依赖搜索,使其正确处理表的列在其所属表之前被递归访问的情况

变更

修复 DROP 的依赖搜索,使其正确处理表的列在其所属表之前被递归访问的情况(Petr Jelinek、Tom Lane)

目前已知这种情况只在扩展同时创建一种数据类型和使用该数据类型的表时出现。有问题的代码可能会拒绝 DROP EXTENSION,除非指定 CASCADE,而这本不应该是必需的。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 EvalPlanQual 处理中使用已释放内存的问题

变更

修复 EvalPlanQual 处理中使用已释放内存的问题(Tom Lane)

在READ COMMITTED模式下,锁定或更新最近更新过的行的查询可能因此缺陷崩溃。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复在子表上使用部分索引时 SELECT FOR UPDATE 的规划问题

变更

修复在子表上使用部分索引时 SELECT FOR UPDATE 的规划问题(Kyotaro Horiguchi)

在 READ COMMITTED 模式下,SELECT FOR UPDATE 在重新检查最近更新的行以确认它是否仍满足查询的 WHERE 条件时,还必须重新检查部分索引的 WHERE 条件。如果索引属于继承子表,就会遗漏这一要求,因此有可能错误地返回已不再满足查询条件的行。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 SELECT FOR UPDATE 在极端情况下可能把同一行返回两次、并且可能漏掉其他行的 corner case

变更

修复 SELECT FOR UPDATE 在极端情况下可能把同一行返回两次、并且可能漏掉其他行的 corner case(Tom Lane)

在 READ COMMITTED 模式下,扫描继承树的 SELECT FOR UPDATE 可能错误地返回来自前一个子表的行,而不是本应从后一个子表返回的行。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进拒绝 FOREIGN KEY 声明的被引用列列表中出现重复的列名

变更

拒绝 FOREIGN KEY 声明的被引用列列表中出现重复的列名(David Rowley)

这一限制符合 SQL 标准。此前我们并未显式拒绝这种情况,但之后代码会以看起来很怪异的错误失败。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进恢复域转换为 JSON 的原有行为

变更

恢复域转换为 JSON 的原有行为(Tom Lane)

此变更使基于 numeric 和 boolean 的域在转换为 JSON 时被视为其基础类型。在 9.3.5 和 9.2.9 之前就是这样工作的,但在修复一个相关问题时不慎改变了行为。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 numeric 值求大整数次幂时的缺陷

变更

修复 numeric 值求大整数次幂时的缺陷(Tom Lane)

之前的代码可能得到错误答案,或者在意识到结果必然溢出之前消耗过多的时间和内存。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 numeric_recv() 中,按照值的 dscale 字段截去会被隐藏的小数位

变更

在 numeric_recv() 中,按照值的 dscale 字段截去会被隐藏的小数位(Tom Lane)

numeric 值的显示标度(dscale)绝不应小于非零小数位的位数;但显然至少存在一个有缺陷的客户端应用,它发送的二进制 numeric 值违反了这一点。这会导致奇怪的行为,因为多余的数字位虽然不会被打印出来,却会被算术运算考虑在内。风险最小的修复方法似乎是在接收时把这类“隐藏的”数字位截去,使值确实与它打印出来的一致。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复正则表达式最短优先匹配搜索不正确的问题

变更

修复正则表达式最短优先匹配搜索不正确的问题(Tom Lane)

当允许的迭代次数受到 ? 量词或边界表达式限制时,匹配常常会失败。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进拒绝超出范围的数字时区规范

变更

拒绝超出范围的数字时区规范(Tom Lane)

超过 +/- 168 小时(一周)的简单数字时区规范此前会被接受,但随后可能在某些操作中导致空指针解引用崩溃。如此大的 UTC 偏移没有实际使用场景,因此予以拒绝。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 tsquery @> tsquery 操作符中的缺陷

变更

修复 tsquery @> tsquery 操作符中的缺陷(Heikki Linnakangas)

两个不同的词如果 CRC 相同,就会被认为匹配。此外,如果第二个操作数的词条比第一个多,就会被假定不包含于第一个;这是错误的,因为它可能包含重复词条。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进增强 ispell 词典对有问题的词缀文件的防御

变更

增强 ispell 词典对有问题的词缀文件的防御(Tom Lane)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进允许词典(thesaurus)包含超过 64K 个短语

变更

允许词典(thesaurus)包含超过 64K 个短语(David Boutin)

之前的代码在词典过大时会崩溃,因此这被视为一个可回移植的缺陷修复,而不是新特性。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复xpath()中的命名空间处理

变更

修复xpath()中的命名空间处理(Ali Akbar)

此前,如果命名空间声明附在输入xml值的祖先元素上而非被返回的特定元素上,xpath()调用产生的xml值就不会包含命名空间声明。我们将祖先声明传播下来,使结果在孤立考虑时也是正确的。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保整行变量向关注组合参数内列名的函数暴露预期的列名

变更

确保整行变量向关注组合参数内列名的函数暴露预期的列名(Tom Lane)

在某些上下文中,row_to_json(tab.*) 这类构造可能不会产生预期的列名。这个问题在 9.4 中已正确修复;在较旧的分支中,只是确保产生某个非空名称。(某些情况下,这个名称会是底层表的列名,而不是理论上应该可见的由查询赋予的别名。)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 FDW 查询中对系统列(特别是 tableoid)的错误处理

变更

修复 FDW 查询中对系统列(特别是 tableoid)的错误处理(Etsuro Fujita)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进当把 indexed_column = ANY (array) 用作索引限定条件会导致更差的计划时,避免这样做

变更

当把 indexed_column = ANY (array) 用作索引限定条件会导致更差的计划时,避免这样做(Andrew Gierth)

某些情况下,作用于非首个索引列的 = ANY 条件会被当作索引条件执行,尽管把它们用作简单的过滤条件会更好。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复嵌套 append 关系(例如 UNION ALL 子查询中的继承表)的规划器问题

变更

修复嵌套 append 关系(例如 UNION ALL 子查询中的继承表)的规划器问题(Tom Lane)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进当 GiST 索引元组放不进一个页面时干净地报错,而不是陷入无限递归

变更

当 GiST 索引元组放不进一个页面时干净地报错,而不是陷入无限递归(Andrew Gierth)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进把设有逐表 cost_limit 和/或 cost_delay 设置的表排除在自动清理的全局代价平衡规则之外

变更

把设有逐表 cost_limit 和/或 cost_delay 设置的表排除在自动清理的全局代价平衡规则之外(Álvaro Herrera)

先前的行为实质上忽略了这些逐表设置,这并非本意。现在,拥有这类设置的表将按照这些设置进行清理,独立于其他自动清理工作进程的状况。这可能导致比以前更重的总 I/O 负载,因此应当重新审视这类设置是否合理。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免在自动清理名义上被关闭时仍然进行全面的自动清理

变更

避免在自动清理名义上被关闭时仍然进行全面的自动清理(Tom Lane)

即使自动清理名义上被关闭,我们仍会启动自动清理工作进程,去清理有 XID 回卷风险的表。然而,这样的工作进程随后会继续清理目标数据库中所有满足常规自动清理阈值的表。这往好里说是相当出乎意料,往坏里说会延误对回卷威胁的响应。现已修复:如果自动清理被关闭,工作进程只执行防回卷清理,不做任何其他工作。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在崩溃恢复期间,确保不记录日志的关系被重写为空并在恢复被视为完成之前同步到磁盘

变更

在崩溃恢复期间,确保不记录日志的关系被重写为空并在恢复被视为完成之前同步到磁盘(Abhijit Menon-Sen、Andres Freund)

这可以避免数据库崩溃恢复之后不记录日志的关系中残留垃圾数据的情形。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复热备查询与重放整页镜像之间的竞态条件

变更

修复热备查询与重放整页镜像之间的竞态条件(Heikki Linnakangas)

这一失误可能导致热备中正在执行的查询出现瞬时错误。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复若干恢复逻辑不当忽略 COMMIT/ABORT PREPARED WAL 记录的情况

变更

修复若干恢复逻辑不当忽略 COMMIT/ABORT PREPARED WAL 记录的情况(Heikki Linnakangas)

最值得注意的疏漏是 recovery_target_xid 无法用于在两阶段提交处停止。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复防止在崩溃恢复完成时把最新的 WAL 文件再次归档

变更

防止在崩溃恢复完成时把最新的 WAL 文件再次归档(Fujii Masao)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免为时间线历史文件创建不必要的 .ready 标记文件

变更

避免为时间线历史文件创建不必要的 .ready 标记文件(Fujii Masao)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复当使用空的预备语句且 log_statement 设置为 mod 或 ddl 时可能出现的空指针解引用

变更

修复当使用空的预备语句且 log_statement 设置为 mod 或 ddl 时可能出现的空指针解引用(Fujii Masao)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进将“pgstat wait timeout”警告消息改为 LOG 级别,并重新措辞使其更易理解

变更

将“pgstat wait timeout”警告消息改为 LOG 级别,并重新措辞使其更易理解(Tom Lane)

这条消息最初被认为基本属于不可能发生的情况,但它在我们较慢的 buildfarm 成员上出现得足够频繁,成了干扰。现已将其降为 LOG 级别,并在措辞上多下了一点功夫:现在它的内容为“using stale statistics instead of current ones because stats collector is not responding”。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 SPARC 自旋锁实现,确保当 CPU 以非 TSO 一致性模式运行时(如某些非 Solaris 内核所做的那样)其正确性

变更

修复 SPARC 自旋锁实现,确保当 CPU 以非 TSO 一致性模式运行时(如某些非 Solaris 内核所做的那样)其正确性(Andres Freund)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进当 macOS 的setlocale()在 postmaster 内启动多余的线程时发出警告

变更

当 macOS 的setlocale()在 postmaster 内启动多余的线程时发出警告(Noah Misch)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 PQconnectdbParams() 中重复 dbname 参数的处理

变更

修复 PQconnectdbParams() 中重复 dbname 参数的处理(Alex Shulgin)

如果第一个 dbname 出现处包含要展开的连接串或 URI,就会出现意外行为。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保 libpq 在遇到意外的套接字 EOF 时报告合适的错误消息

变更

确保 libpq 在遇到意外的套接字 EOF 时报告合适的错误消息(Marko Tiikkaja、Tom Lane)

取决于内核行为,当服务器意外关闭套接字时,libpq 可能返回空的错误字符串而不是有用的信息。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 PQreset() 期间清除任何旧的错误消息

变更

在 PQreset() 期间清除任何旧的错误消息(Heikki Linnakangas)

如果反复调用 PQreset() 而连接始终无法重建,失败连接尝试的错误消息会在 PGconn 的错误字符串中不断累积。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进正确处理 libpq 解析连接选项期间的内存不足情况

变更

正确处理 libpq 解析连接选项期间的内存不足情况(Alex Shulgin、Heikki Linnakangas)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 ecpg 版 ParseDateTime() 中的数组越界

变更

修复 ecpg 版 ParseDateTime() 中的数组越界(Michael Paquier)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 initdb 中,当指定的密码文件为空时给出更清晰的错误消息

变更

在 initdb 中,当指定的密码文件为空时给出更清晰的错误消息(Mats Erik Andersson)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 psql 的 \s 命令,使其与 libedit 良好配合,并新增分页器支持

变更

修复 psql 的 \s 命令,使其与 libedit 良好配合,并新增分页器支持(Stepan Rutz、Tom Lane)

使用 libedit 而非 readline 时,\s 会以一种相当难读的编码格式打印命令历史,而且在较新的 libedit 版本上可能完全失败。现已改为由我们自己打印历史而不是让库来做。一个令人愉快的副作用是,在合适的时候会使用分页器。

此补丁还修复了一个在使用 libedit 保存命令历史时换行编码不一致的缺陷。旧版 psql 写出的多行历史条目在此补丁后可以干净地读取,但反过来未必可行,具体取决于所涉及的 libedit 版本。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进改进 psql 特殊变量解析的一致性

变更

改进 psql 特殊变量解析的一致性(Tom Lane)

允许 ECHO_HIDDEN 和 ON_ERROR_ROLLBACK 使用 on 和 off 的变体拼写(如 1/0)。对 COMP_KEYWORD_CASE、ECHO、ECHO_HIDDEN、HISTCONTROL、ON_ERROR_ROLLBACK 和 VERBOSITY 的无法识别的值发出警告。对所有这些变量的所有值进行不区分大小写的识别;此前大小写敏感与不敏感的行为混杂在一起。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 psql 扩展模式显示在使用 border = 3 且 linestyle = ascii 或 unicode 时的一致性问题

变更

修复 psql 扩展模式显示在使用 border = 3 且 linestyle = ascii 或 unicode 时的一致性问题(Stephen Frost)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

性能改进改进当数据库中大量存在同一对对象之间的多条依赖路径时 pg_dump 的性能

变更

改进当数据库中大量存在同一对对象之间的多条依赖路径时 pg_dump 的性能(Tom Lane)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_dumpall,恢复其从 8.1 之前服务器转储的能力

变更

修复 pg_dumpall,恢复其从 8.1 之前服务器转储的能力(Gilles Darold)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复并行恢复纯模式转储时可能出现的死锁

变更

修复并行恢复纯模式转储时可能出现的死锁(Robert Haas、Tom Lane)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_dump --binary-upgrade 在零列组合类型上的核心转储

变更

修复 pg_dump --binary-upgrade 在零列组合类型上的核心转储(Rushabh Lathia)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进防止由pg_basebackup -x/-X创建的 WAL 文件在备库提升后被再次归档

变更

防止由pg_basebackup -x/-X创建的 WAL 文件在备库提升后被再次归档(Andres Freund)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 contrib/auto_explain 在执行 EXPLAIN ANALYZE 时未能打印逐节点计时信息的问题

变更

修复 contrib/auto_explain 在执行 EXPLAIN ANALYZE 时未能打印逐节点计时信息的问题(Tom Lane)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 contrib/citext 的从非打包升级脚本

变更

修复 contrib/citext 的从非打包升级脚本(Tom Lane)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 contrib/pageinspect 的 get_raw_page() 中的块号检查

变更

修复 contrib/pageinspect 的 get_raw_page() 中的块号检查(Tom Lane)

错误的检查逻辑可能阻止访问非主关系分支中的某些页面。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 contrib/pgcrypto 的 pgp_sym_decrypt(),使其在消息长度比 2 的幂小 6 时不再失败

变更

修复 contrib/pgcrypto 的 pgp_sym_decrypt(),使其在消息长度比 2 的幂小 6 时不再失败(Marko Tiikkaja)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 contrib/pg_test_fsync 中的文件描述符泄漏

变更

修复 contrib/pg_test_fsync 中的文件描述符泄漏(Jeff Janes)

这可能导致 Windows 上无法删除临时文件。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进安全地处理 contrib/tablefunc 的 connectby() 中的意外查询结果,尤其是 NULL

变更

安全地处理 contrib/tablefunc 的 connectby() 中的意外查询结果,尤其是 NULL(Michael Paquier)

此前 connectby() 遇到 NULL 键值时会崩溃。现在它会打印该行但不再进一步递归。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复避免 contrib/xml2 的 xslt_process() 中可能出现的崩溃

变更

避免 contrib/xml2 的 xslt_process() 中可能出现的崩溃(Mark Simonetti)

libxslt 似乎对资源释放顺序存在未记载的依赖;重新排列我们的调用以避免崩溃。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复为一些 contrib I/O 函数标记正确的易变性属性

变更

为一些 contrib I/O 函数标记正确的易变性属性(Tom Lane)

先前过于保守的标记在正常使用中无关紧要,但可能导致优化问题或拒绝有效的索引表达式定义。由于影响不大,我们只是调整了扩展模块脚本中的函数定义,未更改版本号。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进大量清理 Coverity 静态代码分析器的警告

变更

大量清理 Coverity 静态代码分析器的警告(Andres Freund、Tatsuo Ishii、Marko Kreen、Tom Lane、Michael Paquier)

这些变更大多只是表面性的,但在某些情况下修复了极端情况的缺陷,例如内存不足失败后崩溃而不是正确报告错误。据信它们都不构成安全问题。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在构建期间检测不兼容的 OpenLDAP 版本

变更

在构建期间检测不兼容的 OpenLDAP 版本(Noah Misch)

对于 2.4.24 到 2.4.31(含)之间的 OpenLDAP 版本,PostgreSQL 后端进程可能在退出时崩溃。现在会根据编译时的 OpenLDAP 版本号在 configure 期间发出警告,并在 contrib/dblink 回归测试中测试该崩溃场景。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在非 MSVC 的 Windows 构建中,确保安装的 libpq.dll 带有执行权限

变更

在非 MSVC 的 Windows 构建中,确保安装的 libpq.dll 带有执行权限(Noah Misch)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进使 pg_regress 成功退出时删除其创建的任何临时安装

变更

使 pg_regress 成功退出时删除其创建的任何临时安装(Tom Lane)

这使 make check-world 期间的磁盘空间用量大幅减少,因为该序列会创建大量临时安装。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进支持随时间改变 UTC 偏移的时区缩写

变更

支持随时间改变 UTC 偏移的时区缩写(Tom Lane)

此前,PostgreSQL 假定时区缩写(如 EST)关联的 UTC 偏移在任何特定区域设置的用法中永不改变。然而这一假设在现实世界中并不成立,因此引入了让区域缩写表示有时会变化的 UTC 偏移的能力。更新了时区缩写定义文件,在自 1970 年以来缩写的 UTC 偏移发生过变化的时区区域设置中使用此功能(依据 IANA 时区数据库)。在此类时区中,PostgreSQL 现在会根据给定日期为缩写关联正确的 UTC 偏移。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进更新时区缩写列表

变更

更新时区缩写列表(Tom Lane)

把 CST(中国标准时间)加入列表。移除 ADT 作为“阿拉伯夏令时”的引用——这个缩写自 2007 年起已不再使用;因此,声称它与“大西洋夏令时”冲突似乎没有特别的帮助。修正 CKT(库克群岛)、FJT 和 FJST(斐济)完全错误的 GMT 偏移;此前我们甚至把它们放到了日期变更线的错误一侧。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进把时区数据文件更新为 tzdata 版本 2015a。

变更

把时区数据文件更新为 tzdata 版本 2015a。

IANA 时区数据库为所有澳大利亚时区采用了 AxST/AxDT 形式的缩写,以反映他们认为的当地当前多数用法。这些名称与其他地方的用法不冲突(唯一例外是表示 Acre 夏令时的 ACST,该用法自 1994 年起已废弃)。因此,我们把这些名称采纳进“默认”时区缩写集。“澳大利亚”缩写集现在只包含 CST、EAST、EST、SAST、SAT 和 WST,这些被认为主要是历史用法。注意,在“默认”缩写集中,SAST 也已改为南非标准时间。

此外,新增时区缩写 SRET(Asia/Srednekolymsk)和 XJT(Asia/Urumqi),并对西萨摩亚使用 WSST/WSDT。同时,智利、墨西哥、特克斯和凯科斯群岛(America/Grand_Turk)以及斐济的夏令时法规有变更。还为巴布亚新几内亚部分地区新增了时区 Pacific/Bougainville。另外还有大量针对历史(1970 年以前)时区数据的修正。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

PostgreSQL 9.2.9

升级与兼容性说明

对于运行 9.2.X 的用户,不需要进行转储/恢复。

不过,本版本纠正了某些 GiST 索引的索引损坏问题。请参见下面第一条变更日志,以确认你的安装是否受影响以及应采取的步骤。

不过,如果你是从早于 9.2.6 的版本升级,请参见第 E.19 节。

其他改进正确初始化 contrib/btree_gist 在 bit 列上索引的填充字节

变更

正确初始化 contrib/btree_gist 在 bit 列上索引的填充字节(Heikki Linnakangas)

这一错误可能导致本应比较相等的值不被视为相等,从而产生错误的查询结果。在 bit 或 bit varying 列上建有 GiST 索引的用户,在安装此更新后应对这些索引执行 REINDEX。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在删除 GIN 列表页时防止残缺页(torn page)

变更

在删除 GIN 列表页时防止残缺页(torn page)(Heikki Linnakangas)

此修复可防止在页面更新写入磁盘期间发生系统崩溃时可能出现的索引损坏。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在从 WAL 重放更新时不清除 GiST 索引页的右链接

变更

在从 WAL 重放更新时不清除 GiST 索引页的右链接(Heikki Linnakangas)

这一错误可能导致热备中执行的 GiST 索引扫描出现瞬时错误的结果。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复向 SP-GiST 文本索引插入时极端情况下的无限循环

变更

修复向 SP-GiST 文本索引插入时极端情况下的无限循环(Tom Lane)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复hot_standby_feedback被动态关闭时反馈状态的处理

变更

修复hot_standby_feedback被动态关闭时反馈状态的处理(Simon Riggs)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复嵌套调用 ReceiveSharedInvalidMessages 期间缓存失效可能不正确的问题

变更

修复嵌套调用 ReceiveSharedInvalidMessages 期间缓存失效可能不正确的问题(Andres Freund)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复规划器对嵌套 nestloop 计划中生成的嵌套 PlaceHolderVar 的错误处理

变更

修复规划器对嵌套 nestloop 计划中生成的嵌套 PlaceHolderVar 的错误处理(Tom Lane)

这一疏忽可能导致“variable not found in subplan target lists”错误,或静默的错误查询结果。

BUG 修复修复对从带继承子表的表读取的子查询执行 UNION ALL 时规划器报“could not find pathkey item to sort”失败的问题

变更

修复对从带继承子表的表读取的子查询执行 UNION ALL 时规划器报“could not find pathkey item to sort”失败的问题(Tom Lane)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进当子查询的目标列表中存在集合返回函数时,不再假定其输出是唯一的

变更

当子查询的目标列表中存在集合返回函数时,不再假定其输出是唯一的(David Rowley)

这一疏忽可能导致诸如 WHERE x IN (SELECT y, generate_series(1,10) FROM t GROUP BY y) 之类的构造被错误优化。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进改进规划器,使其在可能时丢弃 AND/OR 的常量 NULL 输入

变更

改进规划器,使其在可能时丢弃 AND/OR 的常量 NULL 输入(Tom Lane)

此变更修复了一些 9.2 及之后版本更激进的参数替换导致比旧版本生成的计划更差的情况。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 to_json() 及相关函数对输入类型类别的识别

变更

修复 to_json() 及相关函数对输入类型类别的识别(Tom Lane)

已知这曾导致 JSON 结果中 money 字段加引号不当,其他数据类型也可能出现错误结果。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复未能对结构化类型的组合元素中的字段执行解 TOAST 的错误

变更

修复未能对结构化类型的组合元素中的字段执行解 TOAST 的错误(Tom Lane)

这纠正了 TOAST 指针可能未经解引用就被复制到其他表的情况。如果原始数据随后被删除,当这个已悬空的指针被使用时,会导致诸如“missing chunk number 0 for toast value ...”之类的错误。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复对 Append 计划节点输出的整行引用导致“record type has not been registered”失败的问题

变更

修复对 Append 计划节点输出的整行引用导致“record type has not been registered”失败的问题(Tom Lane)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复在回卷游标时调用用户定义函数可能崩溃的问题

变更

修复在回卷游标时调用用户定义函数可能崩溃的问题(Tom Lane)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复为 FROM 中的函数求值参数时查询级内存泄漏的问题

变更

修复为 FROM 中的函数求值参数时查询级内存泄漏的问题(Tom Lane)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复正则表达式处理中的会话级内存泄漏

变更

修复正则表达式处理中的会话级内存泄漏(Tom Lane、Arthur O'Dwyer、Greg Stark)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 hungarian.stop 中的数据编码错误

变更

修复 hungarian.stop 中的数据编码错误(Tom Lane)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进防止在default_with_oids为真时创建带 OIDS 的外部表

变更

防止在default_with_oids为真时创建带 OIDS 的外部表(Etsuro Fujita)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复对在当前事务中插入、随后被一个现已回滚的子事务删除的行的活跃性检查

变更

修复对在当前事务中插入、随后被一个现已回滚的子事务删除的行的活跃性检查(Andres Freund)

如果同一事务中稍后执行了 CREATE INDEX 或 CLUSTER,这可能导致问题(至少是虚假警告,最坏是无限循环)。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 PREPARE TRANSACTION 期间清除 pg_stat_activity.xact_start

变更

在 PREPARE TRANSACTION 期间清除 pg_stat_activity.xact_start(Andres Freund)

在 PREPARE 之后,发起会话已不在事务中,因此不应继续显示事务开始时间。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 REASSIGN OWNED 对文本搜索对象失败的问题

变更

修复 REASSIGN OWNED 对文本搜索对象失败的问题(Álvaro Herrera)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 postmaster 启动期间阻塞信号

变更

在 postmaster 启动期间阻塞信号(Tom Lane)

这确保了 postmaster 在例如启动过程中收到 SIGINT 时能够正确清理自身。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复处理 pg_hba.conf 中指定主机名而非 IP 地址的条目时的客户端主机名查找

变更

修复处理 pg_hba.conf 中指定主机名而非 IP 地址的条目时的客户端主机名查找(Tom Lane)

确保反向 DNS 查找失败会被报告,而不是只是静默地不匹配这些条目。同时确保每个连接只做一次反向 DNS 查找尝试,而不是每个主机名条目一次——如果查找尝试失败,此前发生的就是后者。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进允许 root 用户使用 postgres -C variable 和 postgres --describe-config

变更

允许 root 用户使用 postgres -C variable 和 postgres --describe-config(MauMau)

对以 root 身份启动服务器的禁止并不需要延伸到这些操作,放宽它可以避免 pg_ctl 在某些场景下的失败。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

安全相关保护 make check 期间启动的临时 postmaster 的 Unix 域套接字

变更

保护 make check 期间启动的临时 postmaster 的 Unix 域套接字(Noah Misch)

正如我们此前在 CVE-2014-0067 中指出的,任何能够访问套接字文件的本地用户都可以以服务器的引导超级用户身份连接,进而以运行测试的操作系统用户身份执行任意代码。此变更通过把服务器的套接字放到 /tmp 下一个临时的、模式为 0700 的子目录中来防御这一风险。但在不支持 Unix 套接字的平台(尤其是 Windows)上风险仍然存在,因为那时临时 postmaster 必须接受本地 TCP 连接。

此变更的一个有用副作用是简化了覆盖 DEFAULT_PGSOCKET_DIR 的构建中的 make check 测试。常用的非默认值(如 /var/run/postgresql)往往不允许构建用户写入,此前需要一些变通办法,现在不再需要了。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复表空间创建 WAL 重放在 Windows 上无法工作的问题

变更

修复表空间创建 WAL 重放在 Windows 上无法工作的问题(MauMau)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 Windows 上套接字创建失败的检测

变更

修复 Windows 上套接字创建失败的检测(Bruce Momjian)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 Windows 上,允许新会话从配置文件获取 PGC_BACKEND 参数(例如log_connections)的值

变更

在 Windows 上,允许新会话从配置文件获取 PGC_BACKEND 参数(例如log_connections)的值(Amit Kapila)

此前,如果启动后在文件中更改了这类参数,更改不会生效。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 Windows 上正确地为可执行文件路径名加引号

变更

在 Windows 上正确地为可执行文件路径名加引号(Nikhil Deshpande)

如果安装路径同时包含空格和 @ 符号,这一疏忽可能导致 initdb 和 pg_upgrade 在 Windows 上失败。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 macOS 上 libpython 的链接

变更

修复 macOS 上 libpython 的链接(Tom Lane)

我们先前使用的方法在 Xcode 5.0 及之后版本提供的 Python 库上可能失败。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

性能改进当服务器持续以快于客户端吸收速度的速率发送数据时,避免 libpq 中的缓冲区膨胀

变更

当服务器持续以快于客户端吸收速度的速率发送数据时,避免 libpq 中的缓冲区膨胀(Shin-ichi Morita、Tom Lane)

libpq 可能被迫不断增大其输入缓冲区,直到内存耗尽(这会被误导性地报告为“lost synchronization with server”)。在正常情况下,数据持续以快于 recv() 循环吸收速度的速率传输是相当牵强的,但在客户端因调度器约束被人为减速时曾观察到这种情况。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保 libpq 中的 LDAP 查找尝试按预期超时

变更

确保 libpq 中的 LDAP 查找尝试按预期超时(Laurenz Albe)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 ecpg 在 char * 数组作为返回多行的 FETCH 语句目标时的行为,以及其他一些数组处理修复

变更

修复 ecpg 在 char * 数组作为返回多行的 FETCH 语句目标时的行为,以及其他一些数组处理修复(Ashutosh Bapat)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_restore 对旧式大对象注释的处理

变更

修复 pg_restore 对旧式大对象注释的处理(Tom Lane)

如果归档文件由 9.0 之前版本的 pg_dump 生成且包含较多大对象注释,直接恢复到数据库通常会失败。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复新服务器创建了 TOAST 表而旧版本没有创建时 pg_upgrade 的问题

变更

修复新服务器创建了 TOAST 表而旧版本没有创建时 pg_upgrade 的问题(Bruce Momjian)

这种罕见情况会表现为“relation OID mismatch”错误。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进防止 contrib/auto_explain 改变用户 EXPLAIN 命令的输出

变更

防止 contrib/auto_explain 改变用户 EXPLAIN 命令的输出(Tom Lane)

如果 auto_explain 处于活动状态,它可能导致 EXPLAIN (ANALYZE, TIMING OFF) 命令仍然打印计时信息。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 contrib/dblink 中的查询级内存泄漏

变更

修复 contrib/dblink 中的查询级内存泄漏(MauMau、Joe Conway)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 contrib/pgcrypto 函数中,确保返回前清除栈变量中的敏感信息

变更

在 contrib/pgcrypto 函数中,确保返回前清除栈变量中的敏感信息(Marko Kreen)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进防止 contrib/pgstattuple 的 pgstat_heap() 使用已释放的内存

变更

防止 contrib/pgstattuple 的 pgstat_heap() 使用已释放的内存(Noah Misch)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 contrib/uuid-ossp 中,跨调用缓存 OSSP UUID 库的状态

变更

在 contrib/uuid-ossp 中,跨调用缓存 OSSP UUID 库的状态(Tom Lane)

这提高了 UUID 生成的效率,并在有 /dev/urandom 的平台上减少了从中抽取的熵量。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进把时区数据文件更新为 tzdata 版本 2014e for DST law changes in Crimea, Egypt, and Morocco。

变更

把时区数据文件更新为 tzdata 版本 2014e for DST law changes in Crimea, Egypt, and Morocco。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

PostgreSQL 9.2.8

升级与兼容性说明

对于运行 9.2.X 的用户,不需要进行转储/恢复。

不过,如果你是从早于 9.2.6 的版本升级,请参见第 E.19 节。

其他改进无条件恢复 GIN 元页以避免残缺页风险

变更

无条件恢复 GIN 元页以避免残缺页风险(Heikki Linnakangas)

虽然这一疏忽理论上可能导致索引损坏,但实际上不太可能造成任何问题,因为 GIN 元页的活动部分小于标准的 512 字节磁盘扇区。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免在接收 NOTIFY 消息期间检查事务提交状态时的竞态条件

变更

避免在接收 NOTIFY 消息期间检查事务提交状态时的竞态条件(Marko Tiikkaja)

这防止了这样一种场景:足够快的客户端可能在通知者所做的数据库更新对接收者可见之前就响应通知。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进允许正则表达式操作符被查询取消请求提前终止

变更

允许正则表达式操作符被查询取消请求提前终止(Tom Lane)

这防止了病态正则表达式长时间不可中断地锁死服务器进程的场景。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进移除试图允许 OVERLAPS 接受单元素行参数的错误代码

变更

移除试图允许 OVERLAPS 接受单元素行参数的错误代码(Joshua Yanovski)

这段代码从未正确工作过,而且该情况既未被 SQL 标准规定也未被记录,因此移除它似乎比修复它更好。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免在反解析规则或视图时获取超出 AccessShareLock 的锁

变更

避免在反解析规则或视图时获取超出 AccessShareLock 的锁(Dean Rasheed)

这一疏忽导致 pg_dump 对规则中作为 INSERT/UPDATE/DELETE 命令目标的表意外获取了 RowExclusiveLock 锁。虽然通常无害,但它可能干扰试图在这些表上获取例如 ShareLock 的并发事务。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

性能改进改进规划期间索引端点探测的性能

变更

改进规划期间索引端点探测的性能(Tom Lane)

此变更修复了当索引末尾存在大量尚未提交的行时的显著性能问题,这对于基于顺序赋值(如时间戳或序列生成的标识符)的索引是常见情况。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复客户端为 pg_receivexlog 时 walsender 无法干净关闭的问题

变更

修复客户端为 pg_receivexlog 时 walsender 无法干净关闭的问题(Fujii Masao)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在执行将被归档恢复跟随的崩溃恢复时,正确检查 WAL 级别和热备参数

变更

在执行将被归档恢复跟随的崩溃恢复时,正确检查 WAL 级别和热备参数(Heikki Linnakangas)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复崩溃后是否可以立即允许热备连接的测试

变更

修复崩溃后是否可以立即允许热备连接的测试(Heikki Linnakangas)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在报告非 ERROR 消息期间防止中断

变更

在报告非 ERROR 消息期间防止中断(Tom Lane)

这可以防止因递归进入 syslog() 而导致的罕见服务器进程冻结,或许还能防止其他相关问题。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 PL/Perl 返回组合结果(包括多 OUT 参数情况)时的内存泄漏

变更

修复 PL/Perl 返回组合结果(包括多 OUT 参数情况)时的内存泄漏(Alex Hunsaker)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 \copy 从带外数据读取期间 psql 脚本行号跟踪的问题

变更

修复 \copy 从带外数据读取期间 psql 脚本行号跟踪的问题(Kumar Rajeev Rastogi、Amit Khandekar)

即使数据并非来自脚本文件,\copy ... from 也会为每个数据行递增脚本文件行号。这一失误导致同一脚本文件中稍后发生的任何错误报告了错误的行号。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进防止在较新的 Windows 版本上间歇性出现“could not reserve shared memory region”失败

变更

防止在较新的 Windows 版本上间歇性出现“could not reserve shared memory region”失败(MauMau)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进把时区数据文件更新为 tzdata 版本 2014a for DST law changes in Fiji and Turkey, plus historical changes in Israel and Ukraine。

变更

把时区数据文件更新为 tzdata 版本 2014a for DST law changes in Fiji and Turkey, plus historical changes in Israel and Ukraine。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

PostgreSQL 9.2.7

升级与兼容性说明

对于运行 9.2.X 的用户,不需要进行转储/恢复。

不过,如果你是从早于 9.2.6 的版本升级,请参见第 E.19 节。

安全相关加固 GRANT ... WITH ADMIN OPTION 的限制

变更

加固 GRANT ... WITH ADMIN OPTION 的限制(Noah Misch)

不带 ADMIN OPTION 授予角色本应阻止被授予者向该角色添加或移除成员,但这一限制很容易通过先执行 SET ROLE 绕过。其安全影响主要在于角色成员可以撤销其他人的访问权限,这违背了授权者的意愿。未经批准添加角色成员的影响相对较小,因为不配合的角色成员本来就可以通过创建视图或 SECURITY DEFINER 函数把自己的大部分权限提供给他人。(CVE-2014-0060)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

安全相关防止通过手工调用 PL 验证器函数进行权限提升

变更

防止通过手工调用 PL 验证器函数进行权限提升(Andres Freund)

PL 验证器函数的主要角色是在 CREATE FUNCTION 期间被隐式调用,但它们也是普通 SQL 函数,用户可以显式调用。对实际以其他语言编写的函数调用验证器此前未被检查,可能被用于权限提升。修复方法是在每个验证器函数中加入对权限检查函数的调用。非核心过程语言如果自带验证器函数,也需要做同样的修改。(CVE-2014-0061)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

安全相关避免在表和索引 DDL 期间进行多次名称查找

变更

避免在表和索引 DDL 期间进行多次名称查找(Robert Haas、Andres Freund)

如果由于并发活动导致名称查找得出不同结论,我们可能会对不同的表执行 DDL 的不同部分。至少在 CREATE INDEX 的情况下,这可被用来让权限检查针对与索引创建不同的表执行,从而造成权限提升攻击。(CVE-2014-0062)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

安全相关防止长日期时间字符串造成缓冲区越界

变更

防止长日期时间字符串造成缓冲区越界(Noah Misch)

MAXDATELEN 常量对于 interval 类型可能的最长值来说太小,导致 interval_out() 中可能出现缓冲区越界。虽然日期时间输入函数在避免缓冲区越界方面更谨慎,但该限制仍短到导致它们拒绝某些有效输入,例如包含很长时区名的输入。ecpg 库存在这些漏洞以及它自身的一些漏洞。(CVE-2014-0063)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

安全相关防止大小计算中的整数溢出导致缓冲区越界

变更

防止大小计算中的整数溢出导致缓冲区越界(Noah Misch、Heikki Linnakangas)

若干函数(大多是类型输入函数)在计算分配大小时未检查溢出。如果发生溢出,就会分配过小的缓冲区并被写越界。(CVE-2014-0064)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

安全相关防止固定大小缓冲区越界

变更

防止固定大小缓冲区越界(Peter Eisentraut、Jozef Mlich)

使用 strlcpy() 及相关函数,以明确保证固定大小缓冲区不会被越界写入。与前面几项不同,这些情况是否真的构成现实问题尚不清楚,因为在大多数情况下,输入字符串的大小似乎已有先前约束。尽管如此,消除所有此类 Coverity 警告似乎是明智的。(CVE-2014-0065)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

安全相关避免在 crypt() 返回 NULL 时崩溃

变更

避免在 crypt() 返回 NULL 时崩溃(Honza Horak、Bruce Momjian)

crypt() 可能返回 NULL 的场景相对较少,但如果发生,contrib/chkpass 就会崩溃。一个可能出问题的实际情况是 libc 被配置为拒绝执行未获批准的哈希算法(例如“FIPS 模式”)。(CVE-2014-0066)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

安全相关在回归测试说明中记录 make check 的风险

变更

在回归测试说明中记录 make check 的风险(Noah Misch、Tom Lane)

由于 make check 启动的临时服务器使用“trust”认证,同一台机器上的其他用户可以以数据库超级用户身份连接它,进而可能利用启动测试的操作系统用户的权限。未来版本可能会在测试流程中加入防止此风险的变更,但需要先进行一些公开讨论。因此目前只是警告:当同一台机器上存在不受信任的用户时,不要使用 make check。(CVE-2014-0067)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复当关系的某些段不是完整大小时 WAL 记录可能被错误重放的问题

变更

修复当关系的某些段不是完整大小时 WAL 记录可能被错误重放的问题(Greg Stark、Tom Lane)

WAL 更新可能被应用到错误的页面,甚至可能偏后很多页。除了损坏数据外,已观察到这一错误导致备库相比主库显著“膨胀”,因为更新被应用到了远超文件末尾应在位置的地方。这种失败模式在崩溃恢复期间似乎不构成重大风险,只在初始同步从快速变化的主库基础备份创建的备库时出现。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复判断恢复何时达到一致性的缺陷

变更

修复判断恢复何时达到一致性的缺陷(Tomonari Katsumata、Heikki Linnakangas)

某些情况下,WAL 重放会错误地在重放开始时就断定数据库已一致,从而可能在数据库真正一致之前允许热备查询。也可能出现其他症状,例如“PANIC: WAL contains references to invalid pages”。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复在热备模式下重放 VACUUM 操作时对 btree 索引页的不当锁定

变更

修复在热备模式下重放 VACUUM 操作时对 btree 索引页的不当锁定(Andres Freund、Heikki Linnakangas、Tom Lane)

这一错误可能导致“PANIC: WAL contains references to invalid pages”失败。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保对 GIN 索引非叶页面的插入在合适时写入整页 WAL 记录

变更

确保对 GIN 索引非叶页面的插入在合适时写入整页 WAL 记录(Heikki Linnakangas)

先前的代码在系统崩溃期间发生部分页写入时存在索引损坏风险。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进当 pause_at_recovery_target 和 recovery_target_inclusive 都被设置时,确保目标记录在暂停之前而不是之后被应用

变更

当 pause_at_recovery_target 和 recovery_target_inclusive 都被设置时,确保目标记录在暂停之前而不是之后被应用(Heikki Linnakangas)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复服务器进程退出期间的竞态条件

变更

修复服务器进程退出期间的竞态条件(Robert Haas)

确保信号处理程序不会在进程的 MyProc 指针不再有效后尝试使用它。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 walsender 关闭逻辑和 walreceiver SIGHUP 信号处理程序中的竞态条件

变更

修复 walsender 关闭逻辑和 walreceiver SIGHUP 信号处理程序中的竞态条件(Tom Lane)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复错误报告逻辑中对 errno 的不安全引用

变更

修复错误报告逻辑中对 errno 的不安全引用(Christian Kruse)

这通常会导致奇怪的行为,例如 HINT 字段缺失或不恰当。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复服务器启动期间过早使用 ereport() 可能导致的崩溃

变更

修复服务器启动期间过早使用 ereport() 可能导致的崩溃(Tom Lane)

我们在实际中见到的主要情况是:如果服务器在一个它没有读取权限的目录中被启动,就会崩溃。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 OpenSSL 套接字写函数中正确清除重试标志

变更

在 OpenSSL 套接字写函数中正确清除重试标志(Alexander Kukushkin)

这一遗漏可能导致 SSL 加密连接意外断开后服务器锁死。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复对包含转义的 Unicode 标识符(U&"..." 语法)的长度检查

变更

修复对包含转义的 Unicode 标识符(U&"..." 语法)的长度检查(Tom Lane)

如果标识符的转义形式过长,就会为这类标识符打印虚假的截断警告,但标识符在反转义之后实际上并不需要截断。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进允许作为类型名的关键字用于角色列表

变更

允许作为类型名的关键字用于角色列表(Stephen Frost)

先前的补丁允许这类关键字在角色标识符等位置不加引号使用;但漏掉了允许角色标识符列表的情况,例如 DROP ROLE。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 EXISTS(SELECT * FROM zero_column_table) 的解析器崩溃

变更

修复 EXISTS(SELECT * FROM zero_column_table) 的解析器崩溃(Tom Lane)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复嵌套子选择(例如 WHERE (... x IN (SELECT ...) ...) IN (SELECT ...))因无效计划而可能崩溃的问题

变更

修复嵌套子选择(例如 WHERE (... x IN (SELECT ...) ...) IN (SELECT ...))因无效计划而可能崩溃的问题(Tom Lane)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复对带 UNION ALL 子查询的继承目标表的 UPDATE/DELETE

变更

修复对带 UNION ALL 子查询的继承目标表的 UPDATE/DELETE(Tom Lane)

如果不修复,UNION ALL 子查询就不能正确插入第一个之后的继承子表的更新计划中,通常导致那些子表完全没有被更新。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保即使表列中的所有值都“过宽”,ANALYZE 也会为该列创建统计信息

变更

确保即使表列中的所有值都“过宽”,ANALYZE 也会为该列创建统计信息(Tom Lane)

ANALYZE 有意在直方图和最常用值计算中省略非常宽的值,但在所有采样条目都过宽的情况下没有做出合理的处理。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 ALTER TABLE ... SET TABLESPACE 中,允许不经权限检查就使用数据库的默认表空间

变更

在 ALTER TABLE ... SET TABLESPACE 中,允许不经权限检查就使用数据库的默认表空间(Stephen Frost)

CREATE TABLE 一直允许这种用法,但 ALTER TABLE 没有照做。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复当 CASE 的某些分支返回集合而另一些不返回时的“cannot accept a set”错误

变更

修复当 CASE 的某些分支返回集合而另一些不返回时的“cannot accept a set”错误(Tom Lane)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在生成 JSON 输出时正确区分数字与非数字

变更

在生成 JSON 输出时正确区分数字与非数字(Andrew Dunstan)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pgstat 函数中对全零客户端地址的检查

变更

修复 pgstat 函数中对全零客户端地址的检查(Kevin Grittner)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复文本搜索解析器可能错误分类多字节字符的问题

变更

修复文本搜索解析器可能错误分类多字节字符的问题(Tom Lane)

在 C 区域设置下使用多字节编码时,非 ASCII 字符可能被错误分类。在 Cygwin 上,非 C 区域设置也可能失败。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 plainto_tsquery() 中可能的不当行为

变更

修复 plainto_tsquery() 中可能的不当行为(Heikki Linnakangas)

在复制重叠内存区域时使用 memmove() 而不是 memcpy()。尚无实际造成问题的现场报告,但这无疑是有风险的。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_start_backup() 和 pg_stop_backup() 中权限检查的位置

变更

修复 pg_start_backup() 和 pg_stop_backup() 中权限检查的位置(Andres Freund、Magnus Hagander)

先前的代码可能在不该访问系统目录时尝试访问。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在区域检查方面接受 SHIFT_JIS 作为编码名

变更

在区域检查方面接受 SHIFT_JIS 作为编码名(Tatsuo Ishii)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 SQL 语言函数中命名参数的 * 限定

变更

修复 SQL 语言函数中命名参数的 * 限定(Tom Lane)

对于名为 foo 的组合类型参数,$1.* 工作正常,但 foo.* 就不行了。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 PQhost() 在 Windows 上的不当行为

变更

修复 PQhost() 在 Windows 上的不当行为(Fujii Masao)

如果未指定主机,它应返回 localhost。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进改进 libpq 和 psql 对 COPY TO STDOUT/FROM STDIN 期间失败的错误处理

变更

改进 libpq 和 psql 对 COPY TO STDOUT/FROM STDIN 期间失败的错误处理(Tom Lane)

这尤其修复了 9.2 及更高版本中,如果服务器连接在 COPY FROM STDIN 期间丢失可能发生的无限循环。该场景的变体在旧版本或其他客户端应用中也可能出现。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复某些 psql \d 命令中不正确的翻译处理

变更

修复某些 psql \d 命令中不正确的翻译处理(Peter Eisentraut、Tom Lane)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保 pg_basebackup 的前台进程退出时其后台进程被终止

变更

确保 pg_basebackup 的前台进程退出时其后台进程被终止(Magnus Hagander)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_basebackup 详细模式下文件名可能打印错误的问题

变更

修复 pg_basebackup 详细模式下文件名可能打印错误的问题(Magnus Hagander)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免在基础备份中把 PGDATA 内的表空间包含两次

变更

避免在基础备份中把 PGDATA 内的表空间包含两次(Dimitri Fontaine、Magnus Hagander)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 ecpg 中未对齐的描述符

变更

修复 ecpg 中未对齐的描述符(MauMau)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 ecpg 中正确处理连接参数中缺少主机名的情况

变更

在 ecpg 中正确处理连接参数中缺少主机名的情况(Michael Meskes)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 contrib/dblink 连接启动中的性能退化

变更

修复 contrib/dblink 连接启动中的性能退化(Joe Conway)

在客户端和服务器编码一致时避免一次不必要的往返。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 contrib/isn 中 ISMN 值校验位计算错误的问题

变更

修复 contrib/isn 中 ISMN 值校验位计算错误的问题(Fabien Coelho)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 contrib/pg_stat_statement 对 CURRENT_DATE 及相关构造的处理

变更

修复 contrib/pg_stat_statement 对 CURRENT_DATE 及相关构造的处理(Kyotaro Horiguchi)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保仅安装客户端代码的流程按文档说明工作

变更

确保仅安装客户端代码的流程按文档说明工作(Peter Eisentraut)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 Mingw 和 Cygwin 构建中,把 libpq DLL 安装到 bin 目录

变更

在 Mingw 和 Cygwin 构建中,把 libpq DLL 安装到 bin 目录(Andrew Dunstan)

这与 MSVC 构建长期以来的做法一致。它应该能解决 psql 等程序因找不到 DLL 而无法启动的问题。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 Cygwin 构建中避免使用已弃用的 dllwrap 工具

变更

在 Cygwin 构建中避免使用已弃用的 dllwrap 工具(Marco Atzeri)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进不再生成纯文本的 HISTORY 和 src/test/regress/README 文件

变更

不再生成纯文本的 HISTORY 和 src/test/regress/README 文件(Tom Lane)

这些文本文件与主文档的 HTML 和 PDF 格式重复。维护它们的麻烦远远超过纯文本格式可能的读者。发行版压缩包仍会包含这些名字的文件,但它们只是提示读者查阅主文档的存根。纯文本 INSTALL 文件仍将维护,因为它可以说还有使用场景。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进把时区数据文件更新为 tzdata 版本 2013i for DST law changes in Jordan and historical changes in Cuba。

变更

把时区数据文件更新为 tzdata 版本 2013i for DST law changes in Jordan and historical changes in Cuba。

此外,时区 Asia/Riyadh87、Asia/Riyadh88 和 Asia/Riyadh89 已被移除,因为 IANA 不再维护它们,而且它们从未代表过实际的民用计时实践。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

PostgreSQL 9.2.6

升级与兼容性说明

对于运行 9.2.X 的用户,不需要进行转储/恢复。

不过,本版本纠正了若干潜在的数据损坏问题。请参见下面前三条变更日志,以确认你的安装是否受影响以及可以采取什么措施。

不过,如果你是从早于 9.2.4 的版本升级,请参见第 E.21 节。

BUG 修复修复 VACUUM 判断是否可以更新 relfrozenxid 的测试

变更

修复 VACUUM 判断是否可以更新 relfrozenxid 的测试(Andres Freund)

某些情况下,VACUUM(手工或自动)可能错误地推进表的 relfrozenxid 值,使元组逃过冻结,导致这些行在经过 2^31 个事务后变得不可见。由于需要多次错误推进才会发生实际丢失,数据丢失的概率相当低,但并非为零。在 9.2.0 及更高版本中,丢失概率更高,而且这一缺陷还可能导致“could not access status of transaction”错误。从 9.0.4、8.4.8 或更早版本升级的用户不受影响,但之后的所有版本都包含该缺陷。

升级后,在把 vacuum_freeze_table_age 设为零的情况下对所有数据库中的所有表执行清理,可以缓解此问题。这会修复任何潜伏的损坏,但无法修复所有既有的数据错误。不过,如果安装在其生命周期内执行的事务少于 2^31 个更新(可用 SELECT txid_current() < 2^31 检查),则在执行此清理之后即可认为该安装是安全的。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复热备启动期间 pg_clog 和 pg_subtrans 的初始化

变更

修复热备启动期间 pg_clog 和 pg_subtrans 的初始化(Andres Freund、Heikki Linnakangas)

这一缺陷会把已提交事务标记为未提交,从而在备库开始接受热备查询的那一刻造成数据丢失。除非备库启动时主库自上次检查点以来执行了大量更新事务,否则这种损坏的可能性很小。症状包括行缺失、本应删除的行仍可见,以及已更新行的过时版本与新版本同时可见。

该缺陷是在 9.3.0、9.2.5、9.1.10 和 9.0.14 版本中引入的。只运行过更早版本的备库没有风险。建议曾运行过任何含缺陷版本的备库在升级后从主库重新克隆(例如用新的基础备份)。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复快速路径锁定中的悬空指针问题

变更

修复快速路径锁定中的悬空指针问题(Tom Lane)

这可能导致共享内存中锁数据结构的损坏,造成“lock already held”和其他奇怪的错误。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 WAL 重放期间截断 pg_multixact 内容

变更

在 WAL 重放期间截断 pg_multixact 内容(Andres Freund)

这避免了备库中磁盘空间消耗不断增加。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保防回卷 VACUUM 在仅验证了没有元组需要冻结时也把该页计为已扫描

变更

确保防回卷 VACUUM 在仅验证了没有元组需要冻结时也把该页计为已扫描(Sergey Burladyan、Jeff Janes)

这一缺陷可能导致 relfrozenxid 未能推进,使该表仍被认为需要再次防回卷清理。最坏情况下,数据库甚至可能为防止回卷而关闭。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 GIN 索引 posting 树页面删除中的竞态条件

变更

修复 GIN 索引 posting 树页面删除中的竞态条件(Heikki Linnakangas)

这可能导致瞬时的错误结果或查询失败。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 SP-GiST 索引创建期间的“unexpected spgdoinsert() failure”错误

变更

修复 SP-GiST 索引创建期间的“unexpected spgdoinsert() failure”错误(Teodor Sigaev)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免展平 SELECT 列表中包含包裹在子 SELECT 中的易变函数的子查询

变更

避免展平 SELECT 列表中包含包裹在子 SELECT 中的易变函数的子查询(Tom Lane)

这避免了因易变函数被额外求值而导致的意外结果。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复规划器对外连接中嵌套的非简单变量子查询输出的处理

变更

修复规划器对外连接中嵌套的非简单变量子查询输出的处理(Tom Lane)

这一错误可能为涉及 JOIN 语法中多级子查询的查询生成错误的计划。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复同一非严格表达式出现在多个 WHERE 和外连接 JOIN 等值子句中时的错误规划

变更

修复同一非严格表达式出现在多个 WHERE 和外连接 JOIN 等值子句中时的错误规划(Tom Lane)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复对子查询的整行引用导致规划器崩溃的问题

变更

修复对子查询的整行引用导致规划器崩溃的问题(Tom Lane)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复继承树的优化 MIN()/MAX() 计划生成错误

变更

修复继承树的优化 MIN()/MAX() 计划生成错误(Tom Lane)

当 MIN()/MAX() 的参数是表达式而不是简单变量时,规划器可能失败。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复临时文件被过早删除的问题

变更

修复临时文件被过早删除的问题(Andres Freund)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复防止打印范围值时的事务内内存泄漏

变更

防止打印范围值时的事务内内存泄漏(Tom Lane)

此修复实际上消除了任何数据类型输出函数中的瞬时内存泄漏,但已知只有范围类型曾出现显著问题。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进防止 NOT NULL 和 CHECK 约束违规消息中错误地显示已删除的列

变更

防止 NOT NULL 和 CHECK 约束违规消息中错误地显示已删除的列(Michael Paquier、Tom Lane)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进允许窗口函数使用默认参数和命名参数记法

变更

允许窗口函数使用默认参数和命名参数记法(Tom Lane)

此前这些情况很可能崩溃。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复规则打印中可能读取越过内存末尾的问题

变更

修复规则打印中可能读取越过内存末尾的问题(Peter Eisentraut)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 int2vector 和 oidvector 值的数组切片

变更

修复 int2vector 和 oidvector 值的数组切片(Tom Lane)

这类表达式现在会被隐式提升为常规的 int2 或 oid 数组。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复使用 SQL 标准的简单 GMT 偏移时区时的错误行为

变更

修复使用 SQL 标准的简单 GMT 偏移时区时的错误行为(Tom Lane)

某些情况下,系统会使用简单 GMT 偏移值,而本应使用选择简单偏移之前一直生效的常规时区设置。此变更还使 timeofday 函数遵循简单 GMT 偏移时区。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进防止记录 Windows 错误码翻译时可能出现的不当行为

变更

防止记录 Windows 错误码翻译时可能出现的不当行为(Tom Lane)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进正确地为 pg_ctl 生成的命令行加引号

变更

正确地为 pg_ctl 生成的命令行加引号(Naoya Anzai、Tom Lane)

此修复仅适用于 Windows。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复当源数据库通过 ALTER DATABASE SET 设置 default_transaction_read_only 时 pg_dumpall 无法工作的问题

变更

修复当源数据库通过 ALTER DATABASE SET 设置 default_transaction_read_only 时 pg_dumpall 无法工作的问题(Kevin Grittner)

此前,生成的脚本在恢复期间会失败。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进让 ecpg 以大小写敏感方式搜索带引号的游标名

变更

让 ecpg 以大小写敏感方式搜索带引号的游标名(Zoltán Böszörményi)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 ecpg 对声明为 varchar 的变量列表的处理

变更

修复 ecpg 对声明为 varchar 的变量列表的处理(Zoltán Böszörményi)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进让 contrib/lo 防御不正确的触发器定义

变更

让 contrib/lo 防御不正确的触发器定义(Marc Cousin)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进把时区数据文件更新为 tzdata 版本 2013h for DST law changes in Argentina, Brazil, Jordan, Libya, Liechtenstein, Morocco, and Palestine。Also, new timezone abbreviations WIB, WIT, WITA for Indonesia.

变更

把时区数据文件更新为 tzdata 版本 2013h for DST law changes in Argentina, Brazil, Jordan, Libya, Liechtenstein, Morocco, and Palestine。Also, new timezone abbreviations WIB, WIT, WITA for Indonesia.

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

PostgreSQL 9.2.5

升级与兼容性说明

对于运行 9.2.X 的用户,不需要进行转储/恢复。

不过,如果你是从早于 9.2.4 的版本升级,请参见第 E.21 节。

BUG 修复防止尝试对标识符做大小写折叠时损坏多字节字符

变更

防止尝试对标识符做大小写折叠时损坏多字节字符(Andrew Dunstan)

PostgreSQL 只在使用单字节服务器编码时才对非 ASCII 字符做大小写折叠。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复在范围列上创建 B-tree 索引时的内存泄漏

变更

修复在范围列上创建 B-tree 索引时的内存泄漏(Heikki Linnakangas)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 wal_level = hot_standby 时后台写入进程中的检查点内存泄漏

变更

修复 wal_level = hot_standby 时后台写入进程中的检查点内存泄漏(Naoya Anzai)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复由 lo_open() 失败导致的内存泄漏

变更

修复由 lo_open() 失败导致的内存泄漏(Heikki Linnakangas)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 work_mem 使用超过 24GB 内存时的内存过度提交缺陷

变更

修复 work_mem 使用超过 24GB 内存时的内存过度提交缺陷(Stephen Frost)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复可序列化快照修复

变更

可序列化快照修复(Kevin Grittner、Heikki Linnakangas)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复使用 SSL 时 libpq 中的死锁缺陷

变更

修复使用 SSL 时 libpq 中的死锁缺陷(Stephen Frost)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复多线程 libpq 应用中可能的 SSL 状态损坏

变更

修复多线程 libpq 应用中可能的 SSL 状态损坏(Nick Phillips、Stephen Frost)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进改进规划器在通用计划与定制计划之间选择时的代价估计

变更

改进规划器在通用计划与定制计划之间选择时的代价估计(Tom Lane)

当规划代价较高时,此变更将偏向通用计划。

其他改进正确计算包含大量 NULL 值的布尔列的行数估计

变更

正确计算包含大量 NULL 值的布尔列的行数估计(Andrew Gierth)

此前,col IS NOT TRUE 和 col IS NOT FALSE 这类测试在估计计划代价时没有正确考虑 NULL 值。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 UNION ALL 和继承查询中限定条件求值代价的核算

变更

修复 UNION ALL 和继承查询中限定条件求值代价的核算(Tom Lane)

这修复了当某些 WHERE 子句计算开销很大时可能选中次优查询计划的情况。

其他改进防止把 WHERE 子句下推到不安全的 UNION/INTERSECT 子查询中

变更

防止把 WHERE 子句下推到不安全的 UNION/INTERSECT 子查询中(Tom Lane)

SELECT 列表中包含集合返回函数或易变函数的 UNION 或 INTERSECT 子查询可能被不当优化,导致运行时错误或错误的查询结果。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复罕见的“failed to locate grouping columns”规划器失败情况

变更

修复罕见的“failed to locate grouping columns”规划器失败情况(Tom Lane)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复带已删除列的外部表的 pg_dump 转储问题

变更

修复带已删除列的外部表的 pg_dump 转储问题(Andrew Dunstan)

此前这类情况可能导致 pg_upgrade 错误。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进重新排序 pg_dump 对扩展相关规则和事件触发器的处理

变更

重新排序 pg_dump 对扩展相关规则和事件触发器的处理(Joe Conway)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进如果通过 pg_dump -t 或 -n 指定,则强制转储扩展表

变更

如果通过 pg_dump -t 或 -n 指定,则强制转储扩展表(Joe Conway)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进改进视图转储代码对被引用表中已删除列的处理

变更

改进视图转储代码对被引用表中已删除列的处理(Tom Lane)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复目录归档下 pg_restore -l 显示正确格式名的问题

变更

修复目录归档下 pg_restore -l 显示正确格式名的问题(Fujii Masao)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进正确记录使用 UNIQUE 和 PRIMARY KEY 语法创建的索引注释

变更

正确记录使用 UNIQUE 和 PRIMARY KEY 语法创建的索引注释(Andres Freund)

这修复了一个并行 pg_restore 失败问题。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进让 pg_basebackup -x 在 xlog 目录为空时抛出错误而不是崩溃

变更

让 pg_basebackup -x 在 xlog 目录为空时抛出错误而不是崩溃(Magnus Hagander、Haruka Takatsuka)

其他改进在干净切换之前正确保证 WAL 文件的传输

变更

在干净切换之前正确保证 WAL 文件的传输(Fujii Masao)

此前,流复制连接可能在所有 WAL 文件都已在备库上重放之前关闭。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复恢复期间 WAL 段的时间线处理

变更

修复恢复期间 WAL 段的时间线处理(Mitsumasa Kondo、Heikki Linnakangas)

备库恢复期间的 WAL 文件回收可能导致恢复过早完成,造成数据丢失。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进防止因引用未初始化的空页而导致 WAL 重放错误

变更

防止因引用未初始化的空页而导致 WAL 重放错误(Andres Freund)

BUG 修复修复 REINDEX TABLE 和 REINDEX DATABASE,使其正确重新验证约束并把已失效的索引标记为有效

变更

修复 REINDEX TABLE 和 REINDEX DATABASE,使其正确重新验证约束并把已失效的索引标记为有效(Noah Misch)

REINDEX INDEX 一直工作正常。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复避免向 SP-GiST 索引插入时出现死锁

变更

避免向 SP-GiST 索引插入时出现死锁(Teodor Sigaev)

BUG 修复修复并发执行 CREATE INDEX CONCURRENTLY 操作时可能出现的死锁

变更

修复并发执行 CREATE INDEX CONCURRENTLY 操作时可能出现的死锁(Tom Lane)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 GiST 索引查找崩溃

变更

修复 GiST 索引查找崩溃(Tom Lane)

BUG 修复修复 regexp_matches() 对零长度匹配的处理

变更

修复 regexp_matches() 对零长度匹配的处理(Jeevan Chalke)

此前,像 '^' 这样的零长度匹配可能返回过多的匹配。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复过于复杂的正则表达式导致崩溃的问题

变更

修复过于复杂的正则表达式导致崩溃的问题(Heikki Linnakangas)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复反向引用与非贪婪量词组合时正则表达式匹配失败的问题

变更

修复反向引用与非贪婪量词组合时正则表达式匹配失败的问题(Jeevan Chalke)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进除非启用了函数体检查,否则防止 CREATE FUNCTION 检查 SET 变量

变更

除非启用了函数体检查,否则防止 CREATE FUNCTION 检查 SET 变量(Tom Lane)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进允许 ALTER DEFAULT PRIVILEGES 在不需要 CREATE 权限的情况下对模式操作

变更

允许 ALTER DEFAULT PRIVILEGES 在不需要 CREATE 权限的情况下对模式操作(Tom Lane)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进放宽对查询中所用关键字的限制

变更

放宽对查询中所用关键字的限制(Tom Lane)

具体而言,放宽了角色名、语言名、EXPLAIN 和 COPY 选项以及 SET 值的关键字限制。这使得 COPY ... (FORMAT BINARY) 能按预期工作;此前 BINARY 需要加引号。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 COPY 失败时打印正确的行号

变更

在 COPY 失败时打印正确的行号(Heikki Linnakangas)

BUG 修复修复 pgp_pub_decrypt(),使其可用于带口令的密钥

变更

修复 pgp_pub_decrypt(),使其可用于带口令的密钥(Marko Kreen)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进让 pg_upgrade 使用 pg_dump --quote-all-identifiers,以避免版本之间关键字变更带来的问题

变更

让 pg_upgrade 使用 pg_dump --quote-all-identifiers,以避免版本之间关键字变更带来的问题(Tom Lane)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进移除无索引表清理期间罕见的不准确警告

变更

移除无索引表清理期间罕见的不准确警告(Heikki Linnakangas)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保当 VACUUM ANALYZE 的文件截断尝试因锁冲突被取消时,仍然执行 ANALYZE 阶段

变更

确保当 VACUUM ANALYZE 的文件截断尝试因锁冲突被取消时,仍然执行 ANALYZE 阶段(Kevin Grittner)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免在预备查询中执行事务控制命令(例如 ROLLBACK)时可能出现的失败

变更

避免在预备查询中执行事务控制命令(例如 ROLLBACK)时可能出现的失败(Tom Lane)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保浮点数据输入在所有平台上都接受标准的“infinity”(无穷大)写法

变更

确保浮点数据输入在所有平台上都接受标准的“infinity”(无穷大)写法(Tom Lane)

C99 标准规定允许的写法为 inf、+inf、-inf、infinity、+infinity 和 -infinity。即使平台的 strtod 函数不支持,也确保我们能识别这些写法。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进当 track_activities 关闭时避免不必要的报告

变更

当 track_activities 关闭时避免不必要的报告(Tom Lane)

其他改进扩展行与记录和数组比较的能力

变更

扩展行与记录和数组比较的能力(Rafal Rzepecki、Tom Lane)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复防止 psql 的 PSQLRC 变量包含波浪号时崩溃

变更

防止 psql 的 PSQLRC 变量包含波浪号时崩溃(Bruce Momjian)

其他改进新增 ARM64 的自旋锁支持

变更

新增 ARM64 的自旋锁支持(Mark Salter)

其他改进把时区数据文件更新为 tzdata 版本 2013d for DST law changes in Israel, Morocco, Palestine, and Paraguay。Also, historical zone data corrections for Macquarie Island.

变更

把时区数据文件更新为 tzdata 版本 2013d for DST law changes in Israel, Morocco, Palestine, and Paraguay。Also, historical zone data corrections for Macquarie Island.

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

PostgreSQL 9.2.4

升级与兼容性说明

对于运行 9.2.X 的用户,不需要进行转储/恢复。

不过,本版本纠正了 GiST 索引管理中的若干错误。安装此更新后,建议对满足下述一个或多个条件的 GiST 索引执行 REINDEX。

不过,如果你是从早于 9.2.2 的版本升级,请参见第 E.23 节。

安全相关修复服务器命令行开关解析不安全的问题

变更

修复服务器命令行开关解析不安全的问题(Mitsumasa Kondo、Kyotaro Horiguchi)

包含以“-”开头的数据库名的连接请求可能被精心构造,用于破坏或摧毁服务器数据目录中的文件,即使该请求最终被拒绝也是如此。(CVE-2013-1899)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

安全相关在每个 postmaster 子进程中重置 OpenSSL 随机状态

变更

在每个 postmaster 子进程中重置 OpenSSL 随机状态(Marko Kreen)

这避免了另一种情况:另一数据库用户可能相对容易地猜出 contrib/pgcrypto 函数生成的随机数。只有当 postmaster 配置了 ssl = on 而大多数连接并不使用 SSL 加密时,这一风险才比较显著。(CVE-2013-1900)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

安全相关让 REPLICATION 权限检查测试当前用户而不是已认证用户

变更

让 REPLICATION 权限检查测试当前用户而不是已认证用户(Noah Misch)

无特权数据库用户可能利用这一失误调用 pg_start_backup() 或 pg_stop_backup(),从而可能干扰例程备份的创建。(CVE-2013-1901)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 GiST 索引在不合适的情况下使用“模糊”几何比较的问题

变更

修复 GiST 索引在不合适的情况下使用“模糊”几何比较的问题(Alexander Korotkov)

核心几何类型使用“模糊”相等进行比较,但 gist_box_same 必须做精确比较,否则使用它的 GiST 索引可能变得不一致。安装此更新后,用户应对 box、polygon、circle 或 point 列上的所有 GiST 索引执行 REINDEX,因为它们都使用 gist_box_same。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复对可变宽度数据类型(即 text、bytea、bit 和 numeric 列)使用 contrib/btree_gist 的 GiST 索引中错误的范围并集和惩罚逻辑

变更

修复对可变宽度数据类型(即 text、bytea、bit 和 numeric 列)使用 contrib/btree_gist 的 GiST 索引中错误的范围并集和惩罚逻辑(Tom Lane)

这些错误可能导致不一致的索引:某些存在的键搜索不到,还会造成无用的索引膨胀。建议用户在安装此更新后对这类索引执行 REINDEX。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复多列索引的 GiST 页面分裂代码中的缺陷

变更

修复多列索引的 GiST 页面分裂代码中的缺陷(Tom Lane)

这些错误可能导致不一致的索引:某些存在的键搜索不到,还会使索引的搜索效率不必要地低下。建议用户在安装此更新后对多列 GiST 索引执行 REINDEX。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 gist_point_consistent,使其一致地处理模糊性

变更

修复 gist_point_consistent,使其一致地处理模糊性(Alexander Korotkov)

point 列上 GiST 索引的索引扫描有时会得出与顺序扫描不同的结果,因为 gist_point_consistent 与底层操作符代码在是做精确比较还是模糊比较上不一致。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 WAL 重放中的缓冲区泄漏

变更

修复 WAL 重放中的缓冲区泄漏(Heikki Linnakangas)

这一缺陷可能导致重放期间出现“incorrect local pin count”错误,使恢复无法进行。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保当数据库未被干净停止且存在 recovery.conf 文件时,在进入归档恢复之前先执行崩溃恢复

变更

确保当数据库未被干净停止且存在 recovery.conf 文件时,在进入归档恢复之前先执行崩溃恢复(Heikki Linnakangas、Kyotaro Horiguchi、Mitsumasa Kondo)

这用于确保数据库在某些场景下的一致性,例如用运行中服务器的文件系统快照初始化备库。

BUG 修复避免在崩溃恢复期间删除尚未归档的 WAL 文件

变更

避免在崩溃恢复期间删除尚未归档的 WAL 文件(Heikki Linnakangas、Fujii Masao)

BUG 修复修复 DELETE RETURNING 中的竞态条件

变更

修复 DELETE RETURNING 中的竞态条件(Tom Lane)

在合适的条件下,DELETE RETURNING 可能尝试从当前进程已不再持有任何 pin 的共享缓冲区中取数据。如果其他进程在此期间更改了该缓冲区,就会导致垃圾 RETURNING 输出,甚至崩溃。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复正则表达式编译中的无限循环风险

变更

修复正则表达式编译中的无限循环风险(Tom Lane、Don Porter)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复正则表达式编译中潜在的空指针解引用

变更

修复正则表达式编译中潜在的空指针解引用(Tom Lane)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 to_char(),在适当的地方只使用 ASCII 大小写折叠规则

变更

修复 to_char(),在适当的地方只使用 ASCII 大小写折叠规则(Tom Lane)

这修复了一些本应与区域设置无关的模板模式在土耳其区域下错误处理“I”和“i”的问题。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复时间戳 1999-12-31 24:00:00 被不当拒绝的问题

变更

修复时间戳 1999-12-31 24:00:00 被不当拒绝的问题(Tom Lane)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 SQL 语言函数,使其可以安全地用作范围类型的支持函数

变更

修复 SQL 语言函数,使其可以安全地用作范围类型的支持函数(Tom Lane)

BUG 修复修复单个事务先执行 UNLISTEN 再执行 LISTEN 时的逻辑错误

变更

修复单个事务先执行 UNLISTEN 再执行 LISTEN 时的逻辑错误(Tom Lane)

会话最终完全没有监听通知事件,尽管在这种情况下它显然应该监听。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复在向被另一视图依赖的视图添加列之后规划器可能崩溃的问题

变更

修复在向被另一视图依赖的视图添加列之后规划器可能崩溃的问题(Tom Lane)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 EXPLAIN (ANALYZE, TIMING OFF) 中的性能问题

变更

修复 EXPLAIN (ANALYZE, TIMING OFF) 中的性能问题(Pavel Stehule)

其他改进移除无用的“picksplit doesn't support secondary split”日志消息

变更

移除无用的“picksplit doesn't support secondary split”日志消息(Josh Hansen、Tom Lane)

这条消息似乎是为预期中从未编写、而且可能永远不会编写的代码而添加的,因为 GiST 对二次分裂的默认处理其实相当好。所以不再为此打扰最终用户。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进移除 gist_box_picksplit() 中残留的二次分裂支持

变更

移除 gist_box_picksplit() 中残留的二次分裂支持(Tom Lane)

这个二次分裂实现不仅不比默认实现好,实际上更差。因此将其移除,让默认代码路径处理这种情况。

BUG 修复修复会话最后几个事务的提交/中止计数可能未能发送到统计收集器的问题

变更

修复会话最后几个事务的提交/中止计数可能未能发送到统计收集器的问题(Tom Lane)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进消除 PL/Perl 的 spi_prepare() 函数中的内存泄漏

变更

消除 PL/Perl 的 spi_prepare() 函数中的内存泄漏(Alex Hunsaker、Tom Lane)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_dumpall 对包含“=”的数据库名的处理

变更

修复 pg_dumpall 对包含“=”的数据库名的处理(Heikki Linnakangas)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复避免在给定不正确的连接串时 pg_dump 崩溃

变更

避免在给定不正确的连接串时 pg_dump 崩溃(Heikki Linnakangas)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进让 pg_dump 和 pg_upgrade 忽略无效索引

变更

让 pg_dump 和 pg_upgrade 忽略无效索引(Michael Paquier、Bruce Momjian)

转储无效索引可能在恢复时造成问题,例如当索引创建失败的原因是它试图强制执行表数据不满足的唯一性条件时。此外,如果索引创建实际上仍在进行中,把它视为未提交的 DDL 变更似乎是合理的,pg_dump 本来也不应转储它。pg_upgrade 现在也跳过无效索引而不是失败。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 pg_basebackup 中,备份表空间时只包含当前服务器版本的子目录

变更

在 pg_basebackup 中,备份表空间时只包含当前服务器版本的子目录(Heikki Linnakangas)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 pg_basebackup 和 pg_receivexlog 中加入服务器版本检查,使其在版本组合无法工作时干净地失败

变更

在 pg_basebackup 和 pg_receivexlog 中加入服务器版本检查,使其在版本组合无法工作时干净地失败(Heikki Linnakangas)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 contrib/dblink,使其安全处理 DateStyle 或 IntervalStyle 设置不一致的情况

变更

修复 contrib/dblink,使其安全处理 DateStyle 或 IntervalStyle 设置不一致的情况(Daniel Farina、Tom Lane)

此前,如果远程服务器这些参数的设置不同,有歧义的日期可能被错误读取。此修复确保 dblink 查询获取的日期时间和间隔列会被正确解释。但请注意,设置不一致仍然有风险,因为发送到远程服务器的 SQL 命令中出现的字面值的解释可能与本地不同。

BUG 修复修复 contrib/pg_trgm 的 similarity() 函数,使其对无三元组的字符串返回零

变更

修复 contrib/pg_trgm 的 similarity() 函数,使其对无三元组的字符串返回零(Tom Lane)

此前它由于内部除以零而返回 NaN。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进支持使用 Microsoft Visual Studio 2012 构建 PostgreSQL

变更

支持使用 Microsoft Visual Studio 2012 构建 PostgreSQL(Brar Piening、Noah Misch)

其他改进把时区数据文件更新为 tzdata 版本 2013b for DST law changes in Chile, Haiti, Morocco, Paraguay, and some Russian areas。Also, historical zone data corrections for numerous places.

变更

把时区数据文件更新为 tzdata 版本 2013b for DST law changes in Chile, Haiti, Morocco, Paraguay, and some Russian areas。Also, historical zone data corrections for numerous places.

此外,更新时区缩写文件以反映俄罗斯和其他地方的近期变更:CHOT、GET、IRKT、KGT、KRAT、MAGT、MAWT、MSK、NOVT、OMST、TKT、VLAT、WST、YAKT、YEKT 现在遵循其当前含义,同时把 VOLT(Europe/Volgograd)和 MIST(Antarctica/Macquarie)加入默认缩写列表。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

PostgreSQL 9.2.3

升级与兼容性说明

对于运行 9.2.X 的用户,不需要进行转储/恢复。

不过,如果你是从早于 9.2.2 的版本升级,请参见第 E.23 节。

安全相关防止从 SQL 执行 enum_recv

变更

防止从 SQL 执行 enum_recv(Tom Lane)

该函数声明有误,允许一条简单的 SQL 命令使服务器崩溃。原则上攻击者可能利用它检查服务器内存的内容。感谢 Sumit Soni(通过 Secunia SVCRP)报告此问题。(CVE-2013-0255)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 WAL 重放期间检测何时达到一致数据库状态的多个问题

变更

修复 WAL 重放期间检测何时达到一致数据库状态的多个问题(Fujii Masao、Heikki Linnakangas、Simon Riggs、Andres Freund)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复不需要实际重做工作时对备份结束点的检测

变更

修复不需要实际重做工作时对备份结束点的检测(Heikki Linnakangas)

这一失误可能导致错误的“WAL ends before end of online backup”错误。

其他改进在截断关系文件时更新最小恢复点

变更

在截断关系文件时更新最小恢复点(Heikki Linnakangas)

数据一旦被丢弃,在时间线上更早的点停止恢复就不再安全。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复更改恢复目标时间线后 WAL 段的回收问题

变更

修复更改恢复目标时间线后 WAL 段的回收问题(Heikki Linnakangas)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在级联备库服务器上正确地从归档恢复时间线历史文件

变更

在级联备库服务器上正确地从归档恢复时间线历史文件(Heikki Linnakangas)

BUG 修复修复热备服务器上的锁冲突检测

变更

修复热备服务器上的锁冲突检测(Andres Freund、Robert Haas)

BUG 修复修复热备模式下缺失的取消操作

变更

修复热备模式下缺失的取消操作(Noah Misch、Simon Riggs)

取消冲突热备查询的需要有时会被遗漏,使这些查询看到不一致的数据。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进防止恢复暂停功能在用户能够连接之前就暂停

变更

防止恢复暂停功能在用户能够连接之前就暂停(Tom Lane)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 SQL 文法,允许对子 SELECT 结果做下标或字段选择

变更

修复 SQL 文法,允许对子 SELECT 结果做下标或字段选择(Tom Lane)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复繁忙负载下自动清理截断的性能问题

变更

修复繁忙负载下自动清理截断的性能问题(Jan Wieck)

截断表末尾的空页需要排他锁,但自动清理被编码为在出现冲突锁请求时失败(并释放表锁)。在负载下,截断很可能永远不会发生,导致表膨胀。修复方法是先执行部分截断,释放锁,然后尝试重新获取锁并继续。此修复还大幅缩短了冲突请求到达后自动清理释放锁的平均时间。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

性能改进改进 SPI_execute 及相关函数的性能,从而改进 PL/pgSQL 的 EXECUTE

变更

改进 SPI_execute 及相关函数的性能,从而改进 PL/pgSQL 的 EXECUTE(Heikki Linnakangas、Tom Lane)

移除 9.2 中因计划缓存机制修改而引入的一些数据复制开销。这消除了相比 9.1 的性能退化,还节省了内存,尤其是当要执行的查询串包含许多 SQL 语句时。

一个附带好处是多语句查询串现在完全串行处理,即我们先完成前面语句的执行,再对后续语句做解析分析和规划。这消除了一个长期存在的问题:本应影响后续语句行为的 DDL 现在会按预期工作。

其他改进恢复 9.2 之前对索引使用的代价估计

变更

恢复 9.2 之前对索引使用的代价估计(Tom Lane)

一个欠考虑的修正因子变更导致对使用超大索引的代价估计高得离谱。

BUG 修复修复 DROP INDEX CONCURRENTLY 中的间歇性崩溃

变更

修复 DROP INDEX CONCURRENTLY 中的间歇性崩溃(Tom Lane)

BUG 修复修复 CREATE/DROP INDEX CONCURRENTLY 期间共享内存锁表可能损坏的问题

变更

修复 CREATE/DROP INDEX CONCURRENTLY 期间共享内存锁表可能损坏的问题(Tom Lane)

BUG 修复修复 COPY 的多元组插入代码在元组大于页大小减去填充因子时的情况

变更

修复 COPY 的多元组插入代码在元组大于页大小减去填充因子时的情况(Heikki Linnakangas)

先前的代码可能陷入无限循环。

其他改进防止扫描 pg_tablespace 时的竞态条件

变更

防止扫描 pg_tablespace 时的竞态条件(Stephen Frost、Tom Lane)

如果 pg_tablespace 条目存在并发更新,CREATE DATABASE 和 DROP DATABASE 可能行为异常。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进防止 DROP OWNED 试图删除整个数据库或表空间

变更

防止 DROP OWNED 试图删除整个数据库或表空间(Álvaro Herrera)

为安全起见,这些对象的所有权必须重新分配,而不是删除。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 vacuum_freeze_table_age 实现中的错误

变更

修复 vacuum_freeze_table_age 实现中的错误(Andres Freund)

在已存在超过 vacuum_freeze_min_age 个事务的安装中,这一失误使自动清理无法使用部分表扫描,而总是进行全表扫描。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进防止 RowExpr 或 XmlExpr 被二次解析分析时的不当行为

变更

防止 RowExpr 或 XmlExpr 被二次解析分析时的不当行为(Andres Freund、Tom Lane)

这一失误在 CREATE TABLE LIKE INCLUDING INDEXES 等上下文中可能被用户看到。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进增强对哈希表大小计算中整数溢出的防御

变更

增强对哈希表大小计算中整数溢出的防御(Jeff Davis)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复一些与数据类型权限相关的缺陷

变更

修复一些与数据类型权限相关的缺陷(Tom Lane)

类型的默认权限存在一些问题,而且 pg_dump 完全没有转储这类权限。

BUG 修复修复服务器崩溃后未能忽略遗留临时表的问题

变更

修复服务器崩溃后未能忽略遗留临时表的问题(Tom Lane)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 Windows 上 postmaster 日志文件未能因大小而轮转的问题

变更

修复 Windows 上 postmaster 日志文件未能因大小而轮转的问题(Jeff Janes、Heikki Linnakangas)

其他改进拒绝 to_date() 中超出范围的日期

变更

拒绝 to_date() 中超出范围的日期(Hitoshi Harada)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_extension_config_dump(),使其正确处理扩展更新情况

变更

修复 pg_extension_config_dump(),使其正确处理扩展更新情况(Tom Lane)

该函数现在会替换目标表的任何现有条目,使其可以在扩展更新脚本中使用。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 PL/pgSQL 对可能简单的表达式中规划期错误的报告

变更

修复 PL/pgSQL 对可能简单的表达式中规划期错误的报告(Tom Lane)

先前的编码有时会遗漏错误 CONTEXT 回溯的第一行。

BUG 修复修复 PL/Python 对用作多个表上触发器的函数的处理

变更

修复 PL/Python 对用作多个表上触发器的函数的处理(Andres Freund)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复确保在 Windows 上非 ASCII 提示符字符串被转换到正确的代码页

变更

确保在 Windows 上非 ASCII 提示符字符串被转换到正确的代码页(Alexander Law、Noah Misch)

这一缺陷影响 psql 和其他一些客户端程序。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复未连接数据库时 psql 的 \? 命令可能崩溃的问题

变更

修复未连接数据库时 psql 的 \? 命令可能崩溃的问题(Meng Qingzhong)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_basebackup 运行期间关系文件被删除时可能出错的问题

变更

修复 pg_basebackup 运行期间关系文件被删除时可能出错的问题(Heikki Linnakangas)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进让 pg_basebackup -X fetch 在备份备库服务器时容忍时间线切换

变更

让 pg_basebackup -X fetch 在备份备库服务器时容忍时间线切换(Heikki Linnakangas)

其他改进让 pg_dump 在热备服务器上运行时排除不记录日志的表的数据

变更

让 pg_dump 在热备服务器上运行时排除不记录日志的表的数据(Magnus Hagander)

由于数据在备库服务器上不可用,这本来就会失败,因此最方便的做法似乎是自动假定 --no-unlogged-table-data。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_upgrade,使其安全处理无效索引

变更

修复 pg_upgrade,使其安全处理无效索引(Bruce Momjian)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_upgrade 的 -O/-o 选项

变更

修复 pg_upgrade 的 -O/-o 选项(Marti Raudsepp)

BUG 修复修复 libpq 的 PQprintTuples 中的一字节缓冲区越界

变更

修复 libpq 的 PQprintTuples 中的一字节缓冲区越界(Xi Wang)

这个古老的函数没有被 PostgreSQL 本身在任何地方使用,但仍可能被某些客户端代码使用。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进让 ecpglib 正确使用翻译后的消息

变更

让 ecpglib 正确使用翻译后的消息(Chen Huajun)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 MSVC 上正确安装 ecpg_compat 和 pgtypes 库

变更

在 MSVC 上正确安装 ecpg_compat 和 pgtypes 库(Jiang Guiqing)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进如果系统未提供 isinf(),则在 libecpg 中包含我们自己的版本

变更

如果系统未提供 isinf(),则在 libecpg 中包含我们自己的版本(Jiang Guiqing)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进重新排列 configure 对系统提供函数的测试,使其不被 libedit/libreadline 的虚假导出所欺骗

变更

重新排列 configure 对系统提供函数的测试,使其不被 libedit/libreadline 的虚假导出所欺骗(Christoph Berg)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保 Windows 构建号随时间递增

变更

确保 Windows 构建号随时间递增(Magnus Hagander)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进让 pgxs 在为 Windows 交叉编译时以正确的 .exe 后缀构建可执行文件

变更

让 pgxs 在为 Windows 交叉编译时以正确的 .exe 后缀构建可执行文件(Zoltan Boszormenyi)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进新增时区缩写 FET

变更

新增时区缩写 FET(Tom Lane)

它现在用于一些东欧时区。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

PostgreSQL 9.2.2

升级与兼容性说明

对于运行 9.2.X 的用户,不需要进行转储/恢复。

不过,你可能需要执行 REINDEX 操作来纠正并发构建的索引中的问题,如下面第一条变更日志条目所述。

另外,如果你是从 9.2.0 版本升级,参见第 E.24 节。

BUG 修复修复与 CREATE/DROP INDEX CONCURRENTLY 相关的多个缺陷

变更

修复与 CREATE/DROP INDEX CONCURRENTLY 相关的多个缺陷(Andres Freund、Tom Lane、Simon Riggs、Pavan Deolasee)

添加 DROP INDEX CONCURRENTLY 时引入的一个错误,允许在 CREATE INDEX CONCURRENTLY 的初始阶段做出错误的索引决策,导致该命令构建的索引可能损坏。建议在应用此更新后,重建 9.2.X 中用 CREATE INDEX CONCURRENTLY 构建的所有索引。

此外,修复 CREATE/DROP INDEX CONCURRENTLY,使其在更改索引 pg_index 行的状态时使用就地更新。这防止了可能导致并发会话错过更新目标索引(从而再次产生损坏的并发创建索引)的竞态条件。

另外,修复各种其他操作,确保它们忽略由失败的 CREATE INDEX CONCURRENTLY 命令产生的无效索引。其中最重要的是 VACUUM,因为在采取纠正措施修复或删除无效索引之前,很容易就有自动清理在该表上启动。

还修复了 DROP INDEX CONCURRENTLY,使其在使用目标索引的所有查询完成之前不禁止向其插入。

还修复了 DROP INDEX CONCURRENTLY 被取消时的不当行为:先前的编码可能留下一个无法删除的索引。

BUG 修复修正 DROP INDEX CONCURRENTLY 的谓词锁定

变更

修正 DROP INDEX CONCURRENTLY 的谓词锁定(Kevin Grittner)

此前,SSI 谓词锁的处理时机不对,可能导致与 DROP 并行执行的可序列化事务行为不正确。

BUG 修复修复 WAL 重放期间的缓冲区锁定

变更

修复 WAL 重放期间的缓冲区锁定(Tom Lane)

WAL 重放代码在重放影响多个页面的 WAL 记录时,对缓冲区加锁不够谨慎。这可能导致热备查询瞬时看到不一致的状态,造成错误结果或意外失败。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 GIN 索引 WAL 生成逻辑中的一个错误

变更

修复 GIN 索引 WAL 生成逻辑中的一个错误(Tom Lane)

如果发生残缺页故障,这可能导致索引损坏。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 SP-GiST 索引 WAL 重放逻辑中的一个错误

变更

修复 SP-GiST 索引 WAL 重放逻辑中的一个错误(Tom Lane)

这可能导致崩溃之后或备库服务器上的索引损坏。

BUG 修复修复 WAL 恢复期间对基础备份结束点的不正确检测

变更

修复 WAL 恢复期间对基础备份结束点的不正确检测(Heikki Linnakangas)

这一失误使热备模式可能在数据库达到一致状态之前就启动。

其他改进把热备服务器提升为正常运行时,正确移除启动进程的虚拟 XID 锁

变更

把热备服务器提升为正常运行时,正确移除启动进程的虚拟 XID 锁(Simon Riggs)

这一疏忽可能阻止后续执行某些操作,例如 CREATE INDEX CONCURRENTLY。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免备库模式下虚假的“out-of-sequence timeline ID”错误

变更

避免备库模式下虚假的“out-of-sequence timeline ID”错误(Heikki Linnakangas)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进防止 postmaster 在收到关闭信号后继续启动新的子进程

变更

防止 postmaster 在收到关闭信号后继续启动新的子进程(Tom Lane)

这一失误可能导致关闭耗时比应有的更长,甚至在没有额外用户操作的情况下永远无法完成。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 log_rotation_age 超过 2^31 毫秒(约 25 天)时 syslogger 进程失败的问题

变更

修复 log_rotation_age 超过 2^31 毫秒(约 25 天)时 syslogger 进程失败的问题(Tom Lane)

BUG 修复修复 WaitLatch(),使其在请求的超时到期时立即返回

变更

修复 WaitLatch(),使其在请求的超时到期时立即返回(Jeff Janes、Tom Lane)

在先前的编码下,持续不断的非等待终止中断可能无限期地延迟 WaitLatch() 的返回。这已被证明会给自动清理启动器进程带来问题,也可能在其他地方造成麻烦。

BUG 修复避免内存不足时内部哈希表损坏

变更

避免内存不足时内部哈希表损坏(Hitoshi Harada)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进防止已删除表的文件描述符在事务结束之后仍保持打开

变更

防止已删除表的文件描述符在事务结束之后仍保持打开(Tom Lane)

这应能减少早已删除的表继续占用磁盘空间的问题。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复防止当新子进程无法为其闩锁创建管道时整个数据库崩溃并重启

变更

防止当新子进程无法为其闩锁创建管道时整个数据库崩溃并重启(Tom Lane)

虽然新进程必须失败,但没有充分理由强制整个数据库重启,因此避免这样做。这提高了内核文件描述符几乎耗尽时的健壮性。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复避免与未展平子查询连接时规划器崩溃

变更

避免与未展平子查询连接时规划器崩溃(Tom Lane)

BUG 修复修复外连接之上非严格等值子句的规划

变更

修复外连接之上非严格等值子句的规划(Tom Lane)

规划器可能从把非严格构造与别的值等同的子句中推导出错误的约束,例如当 foo 来自外连接的可空侧时的 WHERE COALESCE(foo, 0) = 0。9.2 中出现这类错误的情况比以前的版本多,但基本缺陷已经存在很长时间。

BUG 修复修复在继承树上对索引优化的 MIN/MAX 使用 SELECT DISTINCT 的问题

变更

修复在继承树上对索引优化的 MIN/MAX 使用 SELECT DISTINCT 的问题(Tom Lane)

在这种因素组合下,规划器会报“failed to re-find MinMaxAggInfo record”失败。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保规划器在所有用途上把隐式和显式转换视为等价,除了极少数确实存在语义差异的情况

变更

确保规划器在所有用途上把隐式和显式转换视为等价,除了极少数确实存在语义差异的情况(Tom Lane)

其他改进在考虑查询能否使用部分索引时把连接子句也考虑在内

变更

在考虑查询能否使用部分索引时把连接子句也考虑在内(Tom Lane)

例如,一个严格连接子句就足以确立 x IS NOT NULL 谓词。这修复了 9.2 中的一项规划器退化,因为以前的版本可以做类似的推导。

其他改进限制当同一索引有大量可索引连接子句时规划时间的增长

变更

限制当同一索引有大量可索引连接子句时规划时间的增长(Tom Lane)

其他改进改进规划器从等价类证明排他约束的能力

变更

改进规划器从等价类证明排他约束的能力(Tom Lane)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复哈希子计划中的部分行匹配,使其正确处理跨类型情况

变更

修复哈希子计划中的部分行匹配,使其正确处理跨类型情况(Tom Lane)

这影响多列 NOT IN 子计划,例如 WHERE (a, b) NOT IN (SELECT x, y FROM ...),当 b 和 y 分别是 int4 和 int8 时。根据所涉及的具体数据类型,这一失误会导致错误答案或崩溃。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 btree 标记/恢复函数,使其处理数组键

变更

修复 btree 标记/恢复函数,使其处理数组键(Tom Lane)

这一疏忽可能导致内层是使用 indexed_column = ANY(array) 条件的索引扫描的合并连接给出错误答案。

其他改进撤销减少快照获取数量的补丁

变更

撤销减少快照获取数量的补丁(Tom Lane)

9.2 中减少查询执行期间快照获取数量的变更导致了一些以前版本中未见的异常行为,因为执行会使用在锁定查询所用的表之前获取的快照继续进行。因此,例如即使前一事务持有排他锁,查询也不保证能看到该事务提交的更新。我们可能会在未来版本中重新处理这一点,但目前先恢复为 9.2 之前的方式。

其他改进在为 AFTER ROW UPDATE/DELETE 触发器重新获取旧元组时获取缓冲区锁

变更

在为 AFTER ROW UPDATE/DELETE 触发器重新获取旧元组时获取缓冲区锁(Andres Freund)

在非常罕见的情况下,这一疏忽可能导致向触发器 WHEN 条件或外键强制触发器的预检查逻辑传递不正确的数据。这可能导致崩溃,或者在是否触发触发器上做出错误决定。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复ALTER COLUMN TYPE以正确重建继承的检查约束

变更

修复ALTER COLUMN TYPE以正确重建继承的检查约束(Tom Lane)

这在 8.4 之前的版本中工作正常,现在在 8.4 及更高版本中也工作正常。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 ALTER EXTENSION SET SCHEMA 未能把一些从属对象移入新模式的问题

变更

修复 ALTER EXTENSION SET SCHEMA 未能把一些从属对象移入新模式的问题(Álvaro Herrera、Dimitri Fontaine)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在扩展查询协议中正确处理 CREATE TABLE AS EXECUTE

变更

在扩展查询协议中正确处理 CREATE TABLE AS EXECUTE(Tom Lane)

其他改进在 DROP RULE IF NOT EXISTS 和 DROP TRIGGER IF NOT EXISTS 中不修改输入解析树

变更

在 DROP RULE IF NOT EXISTS 和 DROP TRIGGER IF NOT EXISTS 中不修改输入解析树(Tom Lane)

如果这类已缓存语句被重新执行,这一失误会导致错误。

BUG 修复修复 REASSIGN OWNED 对表空间授权的处理

变更

修复 REASSIGN OWNED 对表空间授权的处理(Álvaro Herrera)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进忽略视图中系统列的不正确 pg_attribute 条目

变更

忽略视图中系统列的不正确 pg_attribute 条目(Tom Lane)

视图没有任何系统列。然而,我们在把表转换为视图时忘记移除这类条目。这一问题在 9.3 及更高版本中已正确修复,但在以前的分支中,我们需要防御已经错误转换的视图。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复规则打印,使其正确转储 INSERT INTO table DEFAULT VALUES

变更

修复规则打印,使其正确转储 INSERT INTO table DEFAULT VALUES(Tom Lane)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进防止当查询中有过多 UNION/INTERSECT/EXCEPT 子句时栈溢出

变更

防止当查询中有过多 UNION/INTERSECT/EXCEPT 子句时栈溢出(Tom Lane)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进防止用最小可能整数值除以 -1 时依赖平台的失败

变更

防止用最小可能整数值除以 -1 时依赖平台的失败(Xi Wang、Tom Lane)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复日期解析中可能越过字符串末尾的访问

变更

修复日期解析中可能越过字符串末尾的访问(Hitoshi Harada)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复当 XID 回卷发生在检查点期间且 wal_level 为 hot_standby 时 XID 纪元(epoch)未能推进的问题

变更

修复当 XID 回卷发生在检查点期间且 wal_level 为 hot_standby 时 XID 纪元(epoch)未能推进的问题(Tom Lane、Andres Freund)

虽然这一失误对 PostgreSQL 本身没有特别影响,但它对依赖 txid_current() 及相关函数的应用不利:TXID 值看起来会倒退。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_terminate_backend() 和 pg_cancel_backend(),使其对不存在的目标进程不抛出错误

变更

修复 pg_terminate_backend() 和 pg_cancel_backend(),使其对不存在的目标进程不抛出错误(Josh Kupershmidt)

这种情况下,超级用户调用时已经按预期工作,但普通用户调用时则不然。

BUG 修复修复 pg_stat_replication.sync_state 在页边界处的显示

变更

修复 pg_stat_replication.sync_state 在页边界处的显示(Kyotaro Horiguchi)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进当 Unix 域套接字的路径名长度超过平台特定限制时,生成可理解的错误消息

变更

当 Unix 域套接字的路径名长度超过平台特定限制时,生成可理解的错误消息(Tom Lane、Andrew Dunstan)

此前这会导致相当无用的结果,例如“Non-recoverable failure in name resolution”。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复向客户端发送组合列值时的内存泄漏

变更

修复向客户端发送组合列值时的内存泄漏(Tom Lane)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进通过在提交时不搜索子事务锁来节省一些周期

变更

通过在提交时不搜索子事务锁来节省一些周期(Simon Riggs)

在持有大量排他锁的事务中,这种无用活动可能开销相当大。

其他改进使 pg_ctl 读取 postmaster.pid 文件更健壮

变更

使 pg_ctl 读取 postmaster.pid 文件更健壮(Heikki Linnakangas)

这修复了竞态条件和可能的文件描述符泄漏。

BUG 修复修复当呈现错误编码的数据且 client_encoding 设置为仅客户端编码(如 SJIS)时 psql 可能崩溃的问题

变更

修复当呈现错误编码的数据且 client_encoding 设置为仅客户端编码(如 SJIS)时 psql 可能崩溃的问题(Jiang Guiqing)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进让 pg_dump 把 SEQUENCE SET 项转储到归档的数据节而不是前数据节

变更

让 pg_dump 把 SEQUENCE SET 项转储到归档的数据节而不是前数据节(Tom Lane)

这修复了 --data-only 与 --section=data 含义之间不合需要的 inconsistency,还修复了被标记为扩展配置表的序列的转储。

BUG 修复修复 pg_dump 在 --clean 模式下对 DROP DATABASE 命令的处理

变更

修复 pg_dump 在 --clean 模式下对 DROP DATABASE 命令的处理(Guillaume Lelarge)

从 9.2.0 开始,pg_dump --clean 会发出一条 DROP DATABASE 命令,根据使用场景的不同,这要么无用要么危险。它不再这样做。此变更还修复了 --clean 与 --create 的组合,使其合理工作,即在重新连接到目标数据库之前发出 DROP DATABASE 和 CREATE DATABASE。

BUG 修复修复 pg_dump 处理带循环依赖且无关系选项的视图的问题

变更

修复 pg_dump 处理带循环依赖且无关系选项的视图的问题(Tom Lane)

先前对涉及循环依赖的视图转储关系选项的修复,在视图没有选项的情况下不能正确工作;它生成了语法无效的 ALTER VIEW foo SET ()。

BUG 修复修复 pg_dump 以 tar 输出格式生成的 restore.sql 脚本中的缺陷

变更

修复 pg_dump 以 tar 输出格式生成的 restore.sql 脚本中的缺陷(Tom Lane)

该脚本在表名包含大写字符时会直接失败。此外,让该脚本既能以常规 COPY 模式也能以 --inserts 模式恢复数据。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_restore,使其接受符合 POSIX 的 tar 文件

变更

修复 pg_restore,使其接受符合 POSIX 的 tar 文件(Brian Weaver、Tom Lane)

pg_dump 的 tar 输出模式的原始编码生成的文件并不完全符合 POSIX 标准。这在 9.3 版本中已得到纠正。此补丁更新了以前的分支,使它们同时接受错误格式和纠正后的格式,希望借此避免 9.3 发布时的兼容性问题。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_basebackup 生成的 tar 文件,使其符合 POSIX

变更

修复 pg_basebackup 生成的 tar 文件,使其符合 POSIX(Brian Weaver、Tom Lane)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_resetxlog,使其在给定数据目录相对路径时正确定位 postmaster.pid

变更

修复 pg_resetxlog,使其在给定数据目录相对路径时正确定位 postmaster.pid(Tom Lane)

这一失误可能导致 pg_resetxlog 没有注意到有活动 postmaster 正在使用该数据目录。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 libpq 的 lo_import() 和 lo_export() 函数,使其正确报告文件 I/O 错误

变更

修复 libpq 的 lo_import() 和 lo_export() 函数,使其正确报告文件 I/O 错误(Tom Lane)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 ecpg 对嵌套结构指针变量的处理

变更

修复 ecpg 对嵌套结构指针变量的处理(Muhammad Usama)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 ecpg 的 ecpg_get_data 函数,使其正确处理数组

变更

修复 ecpg 的 ecpg_get_data 函数,使其正确处理数组(Michael Meskes)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进防止 pg_upgrade 试图处理系统目录的 TOAST 表

变更

防止 pg_upgrade 试图处理系统目录的 TOAST 表(Bruce Momjian)

这修复了当 information_schema 被删除并重建后出现的错误。其他失败也可能出现。

性能改进通过在新集簇中把 synchronous_commit 设为 off 来改进 pg_upgrade 性能

变更

通过在新集簇中把 synchronous_commit 设为 off 来改进 pg_upgrade 性能(Bruce Momjian)

其他改进让 contrib/pageinspect 的 btree 页面检查函数在检查页面时持有缓冲区锁

变更

让 contrib/pageinspect 的 btree 页面检查函数在检查页面时持有缓冲区锁(Tom Lane)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进规避 malloc(0) 和 realloc(NULL, 0) 不可移植的行为

变更

规避 malloc(0) 和 realloc(NULL, 0) 不可移植的行为(Tom Lane)

在这些调用返回 NULL 的平台上,一些代码误以为这意味着内存不足。已知这曾导致 pg_dump 在不含用户定义聚合的数据库上出错。可能还有其他情况。

其他改进确保扩展的 make install 会创建 extension 安装目录

变更

确保扩展的 make install 会创建 extension 安装目录(Cédric Villemain)

此前,如果扩展的 Makefile 设置了 MODULEDIR,就会漏掉这一步。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pgxs 在 AIX 上构建可加载模块的支持

变更

修复 pgxs 在 AIX 上构建可加载模块的支持(Tom Lane)

在原始源码树之外构建模块在 AIX 上不工作。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进把时区数据文件更新为 tzdata 版本 2012j for DST law changes in Cuba, Israel, Jordan, Libya, Palestine, Western Samoa, and portions of Brazil。

变更

把时区数据文件更新为 tzdata 版本 2012j for DST law changes in Cuba, Israel, Jordan, Libya, Palestine, Western Samoa, and portions of Brazil。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

PostgreSQL 9.2.1

升级与兼容性说明

对于运行 9.2.X 的用户,不需要进行转储/恢复。

不过,你可能需要执行 REINDEX 和/或 VACUUM 操作,以从下面第一条变更日志条目所述的数据损坏缺陷的影响中恢复。

BUG 修复修复 WAL 重放期间共享缓冲区的持久性标记

变更

修复 WAL 重放期间共享缓冲区的持久性标记(Jeff Davis)

这一失误可能导致缓冲区在检查点期间未被写出,如果服务器之后在这些缓冲区从未写出的情况下崩溃,就会造成数据损坏。任何服务器在崩溃恢复之后都可能发生损坏,但在备库从库服务器上发生的可能性显著更高,因为它们执行多得多的 WAL 重放。btree 和 GIN 索引损坏的概率较低。表“可见性映射”损坏的概率要高得多,可能导致仅索引扫描给出错误答案。表数据本身不会因此缺陷损坏。

虽然尚无此缺陷导致的索引损坏在实际环境中发生的已知案例,但作为预防措施,建议生产安装在升级到 9.2.1 后的方便时间对所有 btree 和 GIN 索引执行 REINDEX。

此外,建议在把 vacuum_freeze_table_age 设为零的情况下对所有表执行 VACUUM。这将修复任何不正确的可见性映射数据。可以调整 vacuum_cost_delay 来降低清理的性能影响,代价是需要更长时间完成。

BUG 修复修复涉及 WHERE indexed_column IN (list_of_values) 的查询输出可能排序不正确的问题

变更

修复涉及 WHERE indexed_column IN (list_of_values) 的查询输出可能排序不正确的问题(Tom Lane)

BUG 修复修复涉及 GROUP BY 表达式以及窗口函数和聚合的查询的规划器失败

变更

修复涉及 GROUP BY 表达式以及窗口函数和聚合的查询的规划器失败(Tom Lane)

BUG 修复修复规划器对执行器参数的分配

变更

修复规划器对执行器参数的分配(Tom Lane)

这一错误可能导致多次扫描同一 WITH 子查询的查询给出错误答案。

其他改进改进规划器对索引扫描中连接条件的处理

变更

改进规划器对索引扫描中连接条件的处理(Tom Lane)

其他改进改进对涉及前缀(即 word:* 模式)的文本搜索查询的选择率估计

变更

改进对涉及前缀(即 word:* 模式)的文本搜索查询的选择率估计(Tom Lane)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复权限变更识别延迟的问题

变更

修复权限变更识别延迟的问题(Tom Lane)

除了其事务已持有的锁之外不需要其他锁的命令,可能注意不到自其事务开始以来提交的并发 GRANT 或 REVOKE。

BUG 修复修复 ANALYZE 在列是范围类型之上的域时失败的问题

变更

修复 ANALYZE 在列是范围类型之上的域时失败的问题(Tom Lane)

BUG 修复防止递归 PL/Perl 函数在执行期间被重定义时 PL/Perl 崩溃

变更

防止递归 PL/Perl 函数在执行期间被重定义时 PL/Perl 崩溃(Tom Lane)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进规避 PL/Perl 中可能的错误优化

变更

规避 PL/Perl 中可能的错误优化(Tom Lane)

一些 Linux 发行版包含错误版本的 pthread.h,导致 PL/Perl 中的编译代码不正确,当一个 PL/Perl 函数调用另一个会抛出错误的函数时会导致崩溃。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进移除 pg_upgrade 对 pg_config 的不必要依赖

变更

移除 pg_upgrade 对 pg_config 的不必要依赖(Peter Eisentraut)

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进把时区数据文件更新为 tzdata 版本 2014e,以反映克里米亚、埃及和摩洛哥的夏令时法规变更。

变更

把时区数据文件更新为 tzdata 版本 2014e,以反映克里米亚、埃及和摩洛哥的夏令时法规变更。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

这份对比如何生成?

对比以 PostgreSQL 发行说明为依据,汇总起始版本之后、目标版本及之前的变更,支持同一大版本内的小版本更新,以及跨大版本升级。跨大版本时,旧分支的维护记录只纳入到下一大版本首次发布之日,所有记录均不晚于目标版本的发布日期。大版本名称(如 18)指首个正式版本(18.0);测试版与开发快照会单独标注。

条目正文来自本站中文手册,版本清单、条目覆盖与提交依据逐一核对上游英文原文。每条变更保留完整说明与原文链接;分类用于辅助浏览,具体影响、适用条件与升级操作请阅读条目正文和各版本的升级说明。

同一修复可能回补到多个版本分支。对比会保守合并可确认相同的条目,并保留各分支完整说明;已知由起始版本包含的修复会排除。一条说明包含多个独立修复时,只有全部已包含才排除。大版本新功能不因与旧版补丁存在提交关联而合并,不能确认相同的条目继续保留。这是发行说明的累计差异,不能覆盖二进制程序之间的每一处代码变化。

CVE 独立依据 PostgreSQL 官方安全公告与漏洞记录计算:起始版本受影响、目标版本已修复或不受影响的漏洞才计入,按编号去重。目标版本仍受影响的漏洞另行提示;安全变更条数与 CVE 数量分别统计。

交互参考 pgversions.com 与 pgversionreport,内容来自 PostgreSQL 发行说明。更多历史资料见发行说明归档。