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

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

文档版本比较

POSTGRESQL · VERSION COMPARE

PostgreSQL 9.2.23 发布变化

此版本的完整功能、修复与兼容性说明,以及其他版本的关联记录。

此版本的完整变化
此版本的完整变化

包括起始版本之后至目标版本的变化。大版本号表示该分支的首个版本。

完整发布变化

9.2.23

2017-08-31

导出 JSON ↓
6项变化功能、修复、改进
1个版本按版本分组
0CVE独立漏洞编号

9.2.23stable支持截止 2017-11-09

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 发布说明。经核实的回补重复项会谨慎合并,保留每条原始说明;相关提交可能涉及独立变化,仍作为不同记录保留。

发布快照: 2026-09-26 · 安全快照: 2026-09-26

内容来自 PostgreSQL 发布说明。交互方式参考 pgversions.com 与 pgversionreport.