文档版本比较
POSTGRESQL · VERSION COMPARE
PostgreSQL 16.1 发布变化
此版本的完整功能、修复与兼容性说明,以及其他版本的关联记录。
包括起始版本之后至目标版本的变化。大版本号表示该分支的首个版本。
从数据库输出识别起始版本
完整发布变化
16.1
2023-11-09
16.1stable支持截止 2028-11-09
安全变化
| CVE / 问题 | 严重程度 | 修复版本 | 所选版本状态 |
|---|---|---|---|
| CVE-2023-5869 检测计算新数组维度时的整数溢出 | 16.1 | 已记录修复 | |
| CVE-2023-5868 修复 DISTINCT "any" 聚合函数中对未知类型参数的处理 | 16.1 | 已记录修复 | |
| CVE-2023-5870 防止 pg_signal_backend 角色向后台工作进程和自动清理进程发送信号 | 16.1 | 已记录修复 |
PostgreSQL 16.1
迁移与兼容性
对于运行 16.X 的用户,不需要执行导出/恢复。
但是,已发现若干错误可能导致特定类型的索引产生错误的搜索结果或不必要的低效。建议在安装此更新后对可能受影响的索引执行 REINDEX。请参阅下面的第四到第七条变更日志条目。
安全修复 DISTINCT "any" 聚合函数中对未知类型参数的处理
变更
修复 DISTINCT "any" 聚合函数中对未知类型参数的处理(Tom Lane)§
此错误导致 text 类型的值在运行时被解释为 unknown 类型的值(即以零终止的字符串)。这可能导致泄露 text 值之后的服务器内存。
PostgreSQL 项目感谢 Jingzhou Fu 报告此问题。(CVE-2023-5868)
安全检测计算新数组维度时的整数溢出
变更
检测计算新数组维度时的整数溢出(Tom Lane)§
当向超出当前数组边界的数组下标赋予新元素时,在极端情况下可能发生未检测到的整数溢出。可能利用内存越界写入来执行任意代码,也可能泄露服务器内存。
PostgreSQL 项目感谢 Pedro Gallegos 报告此问题。(CVE-2023-5869)
安全防止 pg_signal_backend 角色向后台工作进程和自动清理进程发送信号
变更
防止 pg_signal_backend 角色向后台工作进程和自动清理进程发送信号(Noah Misch,Jelte Fennema-Nio)§ §
文档说明 pg_signal_backend 不能向超级用户拥有的进程发送信号。但它能够向这些后台进程发送信号,因为它们公布的角色 OID 为零。现在将此视为表示超级用户所有权。取消这些进程类型之一的安全影响就核心代码而言相当小(我们只会启动另一个),但扩展可能添加更容易受影响的后台工作进程。
同时确保在这些进程中正确设置 is_superuser 参数。对于该疏忽,目前没有已知的具体安全后果,但对于某些扩展来说可能是重要的。
PostgreSQL 项目感谢 Hemanth Sandrana 和 Mahendrakar Srinivasarao 报告此问题。(CVE-2023-5870)
关联记录 (5)
- 相同变化PostgreSQL 15.5 · 防止 pg_signal_backend 角色向后台工作进程和自动清理进程发送信号
- 相同变化PostgreSQL 14.10 · 防止 pg_signal_backend 角色向后台工作进程和自动清理进程发送信号
- 相同变化PostgreSQL 13.13 · 防止 pg_signal_backend 角色向后台工作进程和自动清理进程发送信号
- 相同变化PostgreSQL 12.17 · 防止 pg_signal_backend 角色向后台工作进程和自动清理进程发送信号
- 相同变化PostgreSQL 11.22 · 防止 pg_signal_backend 角色向后台工作进程和自动清理进程发送信号
问题修复修复 GiST 索引构建中递归页面分裂时的错误行为
变更
修复 GiST 索引构建中递归页面分裂时的错误行为(Heikki Linnakangas)§
修复了一个页面下行链接位置被错误跟踪的情况,并引入了一些逻辑来允许从此类情况中恢复,而不是静默地执行错误操作。此错误可能导致后续索引搜索返回不正确的结果。建议在安装此更新后重建所有 GiST 索引。
改进防止对 interval 列的 B-树索引条目进行去重
变更
防止对 interval 列的 B-树索引条目进行去重(Noah Misch)§
存在可区分但比较相等的 interval 值,例如 24:00:00 和 1 day。这违反了 B-树去重所做的假设,因此 interval 列需要从去重中排除。此疏忽可能导致仅索引扫描返回不正确的结果。此外,更新后 amcheck 将对几乎所有此类索引报告错误。用户应当重建 interval 列上的所有 B-树索引。
改进在 BRIN datetime_minmax_multi_ops 索引中更合理地处理 date 值
变更
在 BRIN datetime_minmax_multi_ops 索引中更合理地处理 date 值(Tomas Vondra)§
日期的距离计算是反向的,导致了关于合并哪些条目的错误决策。索引仍然产生正确的结果,但效率远低于应有的水平。建议重建 date 列上的 BRIN minmax_multi 索引。
改进在 BRIN datetime_minmax_multi_ops 索引中更合理地处理较大的 timestamp 和 timestamptz 值
问题修复避免在包含极端 interval 值的 BRIN interval_minmax_multi_ops 索引中出现计算溢出
变更
避免在包含极端 interval 值的 BRIN interval_minmax_multi_ops 索引中出现计算溢出(Tomas Vondra)§
此错误可能在尝试向此类索引插入较大的 interval 值时导致意外失败。
问题修复修复具有多个分区键的 hash 分区表的分区步骤生成和运行时分区剪枝
变更
问题修复修复在 MERGE 期间对并发更新行的不一致重新检查
变更
修复在 MERGE 期间对并发更新行的不一致重新检查(Dean Rasheed)§
在 READ COMMITTED 模式下,一个更新如果发现其目标行刚被并发事务更新,将对更新后的行重新检查查询的 WHERE 条件。MERGE 未能确保在此重新检查期间使用其他连接表的正确行,可能导致关于新更新的行是否应再次被 MERGE 更新做出错误决策。
关联记录 (1)
改进在继承的 UPDATE/DELETE/MERGE 中正确标识目标表,即使父表被约束排除
问题修复修复 B-树标记/恢复处理 ScalarArrayOpExpr 子句时的边界情况
变更
修复 B-树标记/恢复处理 ScalarArrayOpExpr 子句时的边界情况(Peter Geoghegan)§
将索引扫描恢复到先前标记的位置时,如果扫描恰好前进到 ScalarArrayOpExpr(即 indexcol = ANY(ARRAY[]))子句的匹配末尾,代码可能会遗漏必要的设置步骤。这可能导致漏掉一些应当被获取的行。
关联记录 (5)
- 相同变化PostgreSQL 15.5 · 修复 B-树标记/恢复处理 ScalarArrayOpExpr 子句时的边界情况
- 相同变化PostgreSQL 14.10 · 修复 B-树标记/恢复处理 ScalarArrayOpExpr 子句时的边界情况
- 相同变化PostgreSQL 13.13 · 修复 B-树标记/恢复处理 ScalarArrayOpExpr 子句时的边界情况
- 相同变化PostgreSQL 12.17 · 修复 B-树标记/恢复处理 ScalarArrayOpExpr 子句时的边界情况
- 相同变化PostgreSQL 11.22 · 修复 B-树标记/恢复处理 ScalarArrayOpExpr 子句时的边界情况
问题修复修复 Memoize 执行中的查询内内存泄漏
变更
修复 Memoize 执行中的查询内内存泄漏(Orlov Aleksej,David Rowley)§
问题修复修复当集合返回函数反复返回零行时的查询内内存泄漏
变更
修复当集合返回函数反复返回零行时的查询内内存泄漏(Tom Lane)§
改进修复将 cursor_to_xmlschema() 应用于非数据返回 Portal 时的崩溃
变更
修复将 cursor_to_xmlschema() 应用于非数据返回 Portal 时的崩溃(Boyu Yang)§
关联记录 (5)
- 相同变化PostgreSQL 15.5 · 修复将 cursor_to_xmlschema() 应用于非数据返回 Portal 时的崩溃
- 相同变化PostgreSQL 14.10 · 修复将 cursor_to_xmlschema() 应用于非数据返回 Portal 时的崩溃
- 相同变化PostgreSQL 13.13 · 修复将 cursor_to_xmlschema() 应用于非数据返回 Portal 时的崩溃
- 相同变化PostgreSQL 12.17 · 修复将 cursor_to_xmlschema() 应用于非数据返回 Portal 时的崩溃
- 相同变化PostgreSQL 11.22 · 修复将 cursor_to_xmlschema() 应用于非数据返回 Portal 时的崩溃
问题修复修复连续 pg_logical_slot_get_changes() 调用之间源过滤条件的不当共享
变更
修复连续 pg_logical_slot_get_changes() 调用之间源过滤条件的不当共享(Hou Zhijie)§
此函数的一次调用所设置的源条件会被后续未指定源参数的调用重复使用。这不是预期的行为。
改进将 pgrowlocks() 应用于分区表时,抛出预期的错误
变更
将 pgrowlocks() 应用于分区表时,抛出预期的错误(David Rowley)§
之前会抛出一个不切题的错误 “only heap AM is supported”。
改进在各种 SQL 函数中更妥善地处理无效索引
变更
在各种 SQL 函数中更妥善地处理无效索引(Noah Misch)§
如果将 pgstatindex()、pgstatginindex()、pgstathashindex() 或 pgstattuple() 应用于无效索引,现在会报告错误。如果将 brin_desummarize_range()、brin_summarize_new_values()、brin_summarize_range() 或 gin_clean_pending_list() 应用于无效索引,则除了报告一条调试级别的消息外不做任何操作。之前这些函数会尝试处理该索引,并可能根据失败的 CREATE INDEX 遗留的内容而以奇怪的方式失败。
改进避免在 to_tsvector() 处理长输入时过早的内存分配失败
变更
避免在 to_tsvector() 处理长输入时过早的内存分配失败(Tom Lane)§
问题修复修复 tsvectorrecv() 中构造的 tsvector 的过度分配
变更
修复 tsvectorrecv() 中构造的 tsvector 的过度分配(Denis Erokhin)§
如果传入的向量包含位置数据,二进制接收函数会在完成的 tsvector 中留下浪费的空间(大约等于位置数据的大小)。在极端情况下,这可能导致对于发出时在长度限制内的向量产生 “maximum total lexeme length exceeded” 失败。无论如何都可能导致磁盘空间浪费。
关联记录 (5)
改进改进对损坏的 PGLZ 压缩数据的检查
变更
改进对损坏的 PGLZ 压缩数据的检查(Flavien Guedez)§
问题修复修复 ALTER SUBSCRIPTION,使对 run_as_owner 选项的命令更改实际生效
变更
修复 ALTER SUBSCRIPTION,使对 run_as_owner 选项的命令更改实际生效(Hou Zhijie)§
问题修复修复向分区表的批量表插入
变更
修复向分区表的批量表插入(Andres Freund)§
跨分区不当共享插入状态可能导致 COPY FROM 期间的失败,通常表现为 “could not read block NNNN in file XXXX: read only 0 of 8192 bytes” 错误。
改进在 COPY FROM 中,避免计算命令不需要的列默认值
变更
在 COPY FROM 中,避免计算命令不需要的列默认值(Laurenz Albe)§
如果默认值对于该列实际上无效,或者默认表达式在当前执行上下文中会失败,这可以避免可能的错误。此类边界情况有时会在恢复转储时出现。之前的版本在此情况下不会失败,因此防止 v16 这样做。
改进在 COPY FROM 中,当需要不支持的编码转换时干净地失败
变更
在 COPY FROM 中,当需要不支持的编码转换时干净地失败(Tom Lane)§
最近的重构意外地移除了预期的错误检查,导致显示 “cache lookup failed for function 0” 而非有用的错误消息。
问题修复避免在 EXPLAIN 中,当标记为由 EXPLAIN 显示的参数具有 NULL 启动时值时发生崩溃
变更
避免在 EXPLAIN 中,当标记为由 EXPLAIN 显示的参数具有 NULL 启动时值时发生崩溃(Xing Guo,Aleksander Alekseev,Tom Lane)§
没有内置参数符合此描述,但扩展可以定义此类参数。
改进确保在删除 ON COMMIT DROP 临时表时拥有快照
变更
确保在删除 ON COMMIT DROP 临时表时拥有快照(Tom Lane)§
这可以防止当临时表的某些目录条目的字段宽度足够大而需要 toast 时(例如非常复杂的 CHECK 条件)可能出现的异常行为。
改进避免在 system() 刚刚 fork 的子进程中对关闭信号的不当响应
变更
避免在 system() 刚刚 fork 的子进程中对关闭信号的不当响应(Nathan Bossart)§
此修复避免了一个竞争条件:由 system() fork 出来但尚未 exec 目标子程序的子进程可能接收并处理原本发给父服务器进程的信号。这将导致重复的清理操作,后果不佳。
关联记录 (5)
改进处理前端程序中 pg_control 的撕裂读取
变更
处理前端程序中 pg_control 的撕裂读取(Thomas Munro)§
在某些文件系统上,当服务器并发写入 pg_control 时,读取该文件可能不是原子操作。这可以通过无效的 CRC 来检测。现在在报告错误之前会重试几次以查看文件是否变为有效。
改进避免在相关 SQL 函数中对 pg_control 的撕裂读取
变更
避免在相关 SQL 函数中对 pg_control 的撕裂读取(Thomas Munro)§
在读取 pg_control 之前获取适当的锁,以确保获得该文件的一致视图。
问题修复修复在规划带有 ORDER BY 或 DISTINCT 选项的聚合函数时出现的 “could not find pathkey item to sort” 错误
变更
修复在规划带有 ORDER BY 或 DISTINCT 选项的聚合函数时出现的 “could not find pathkey item to sort” 错误(David Rowley)§
问题修复避免计算后端活动字符串数组大小时的整数溢出
变更
避免计算后端活动字符串数组大小时的整数溢出(Jakub Wartak)§
在 64 位机器上,我们允许 track_activity_query_size 的值大到足以在乘以允许的连接数时导致 32 位溢出。然而,实际分配每个后端本地数组的代码对此不够谨慎,导致数组分配不正确。
问题修复修复在继承表上执行 ANALYZE 时短暂显示不一致的进度统计信息的问题
变更
修复在继承表上执行 ANALYZE 时短暂显示不一致的进度统计信息的问题(Heikki Linnakangas)§
块级别的计数器应在更新当前关系字段的同时重置为零。
问题修复修复后台写入器未将其 WAL 写入报告给统计计数器的问题
变更
修复后台写入器未将其 WAL 写入报告给统计计数器的问题(Nazir Bilal Yavuz)§
问题修复修复 pgstat_report_wal() 中关于强制刷新行为的混淆
变更
修复 pgstat_report_wal() 中关于强制刷新行为的混淆(Ryoga Yoshida,Michael Paquier)§
这可能导致在关闭时丢失某些关于 WAL I/O 的统计信息。
问题修复修复临时表扩展的统计跟踪
变更
修复临时表扩展的统计跟踪(Karina Litskevich,Andres Freund)§
这些被计为普通表写入,而它们应该被计为临时表写入。
改进当启用 track_io_timing 时,将关系扩展操作所花费的时间包括为写入时间
变更
当启用 track_io_timing 时,将关系扩展操作所花费的时间包括为写入时间(Nazir Bilal Yavuz)§
改进跟踪缓存的 CALL 语句的依赖关系,并在需要时重新规划
变更
跟踪缓存的 CALL 语句的依赖关系,并在需要时重新规划(Tom Lane)§
DDL 命令,例如替换已内联到 CALL 参数中的函数,可能需要重新规划已被 PL/pgSQL 缓存的 CALL。之前这不会发生,导致异常行为或诸如 “cache lookup failed” 之类的奇怪错误。
问题修复避免在 OpenSSL 连接设置出错后可能出现的释放空指针崩溃
变更
避免在 OpenSSL 连接设置出错后可能出现的释放空指针崩溃(Sergey Shinderuk)§
改进在检查来自外层查询级别的 RECORD 类型 Var 时正确跟踪嵌套深度
改进跟踪 ScalarArrayOpExpr 计划节点的 hash 函数和求反器函数依赖
变更
跟踪 ScalarArrayOpExpr 计划节点的 hash 函数和求反器函数依赖(David Rowley)§
在大多数情况下,此疏忽是无害的,因为这些函数不太可能在节点的原始操作符仍然存在的情况下消失。
问题修复修复 RECORD 类型缓存管理中的错误处理缺陷
变更
修复 RECORD 类型缓存管理中的错误处理缺陷(Thomas Munro)§
在恰好错误的时刻发生内存不足错误可能留下不一致的状态,导致无限循环。
改进在读取 WAL 时将内存不足失败视为致命错误
变更
在读取 WAL 时将内存不足失败视为致命错误(Michael Paquier)§
之前这会被视为无效数据条件,导致得出已到达 WAL 末尾的错误结论,这是不正确的,并可能导致不一致的 WAL 重放。
问题修复修复由于尝试基于伪造的 WAL 记录长度字段分配内存而可能导致的恢复失败
变更
问题修复修复在 Windows 上当 min_dynamic_shared_memory 设置为大于零时出现的 “could not duplicate handle” 错误
变更
修复在 Windows 上当 min_dynamic_shared_memory 设置为大于零时出现的 “could not duplicate handle” 错误(Thomas Munro)§
问题修复修复 GenericXLogFinish 中的操作顺序
变更
修复 GenericXLogFinish 中的操作顺序(Jeff Davis)§
此代码在将更改的缓冲区标记为脏之前就写入了 WAL,违反了崩溃安全所需的条件。核心代码没有使用此函数,但扩展会使用(例如 contrib/bloom)。
改进移除 PL/Python 异常处理中的不正确断言
变更
移除 PL/Python 异常处理中的不正确断言(Alexander Lakhin)§
问题修复修复 pg_dump 以导出订阅的新 run_as_owner 选项
变更
修复 pg_dump 以导出订阅的新 run_as_owner 选项(Philip Warner)§
由于此疏忽,订阅总是以 run_as_owner 设置为 false 恢复,这与它们在 v16 之前版本中的行为不等价。
问题修复修复 pg_restore,使选择性恢复能够同时包含所选表的表级和列级 ACL
变更
修复 pg_restore,使选择性恢复能够同时包含所选表的表级和列级 ACL(Euler Taveira,Tom Lane)§
之前,如果两种类型都存在,只会恢复表级 ACL。
关联记录 (5)
- 相同变化PostgreSQL 15.5 · 修复 pg_restore,使选择性恢复能够同时包含所选表的表级和列级 ACL
- 相同变化PostgreSQL 14.10 · 修复 pg_restore,使选择性恢复能够同时包含所选表的表级和列级 ACL
- 相同变化PostgreSQL 13.13 · 修复 pg_restore,使选择性恢复能够同时包含所选表的表级和列级 ACL
- 相同变化PostgreSQL 12.17 · 修复 pg_restore,使选择性恢复能够同时包含所选表的表级和列级 ACL
- 相同变化PostgreSQL 11.22 · 修复 pg_restore,使选择性恢复能够同时包含所选表的表级和列级 ACL
改进在 pg_upgrade 中增加对 abstime、reltime 和 tinterval 数据类型使用的检查
变更
在 pg_upgrade 中增加对 abstime、reltime 和 tinterval 数据类型使用的检查(Álvaro Herrera)§
这些过时的数据类型已在 PostgreSQL 版本 12 中移除,因此在声称旧数据库可以升级之前,需要确保其中不存在这些类型。
关联记录 (4)
- 相同变化PostgreSQL 15.5 · 在 pg_upgrade 中增加对 abstime、reltime 和 tinterval 数据类型使用的检查
- 相同变化PostgreSQL 14.10 · 在 pg_upgrade 中增加对 abstime、reltime 和 tinterval 数据类型使用的检查
- 相同变化PostgreSQL 13.13 · 在 pg_upgrade 中增加对 abstime、reltime 和 tinterval 数据类型使用的检查
- 相同变化PostgreSQL 12.17 · 在 pg_upgrade 中增加对 abstime、reltime 和 tinterval 数据类型使用的检查
改进避免在 Windows 上 pgbench 中出现虚假的 “too many client connections” 错误
变更
避免在 Windows 上 pgbench 中出现虚假的 “too many client connections” 错误(Noah Misch)§
关联记录 (4)
- 相同变化PostgreSQL 15.5 · 避免在 Windows 上 pgbench 中出现虚假的 “too many client connections” 错误
- 相同变化PostgreSQL 14.10 · 避免在 Windows 上 pgbench 中出现虚假的 “too many client connections” 错误
- 相同变化PostgreSQL 13.13 · 避免在 Windows 上 pgbench 中出现虚假的 “too many client connections” 错误
- 相同变化PostgreSQL 12.17 · 避免在 Windows 上 pgbench 中出现虚假的 “too many client connections” 错误
问题修复修复 vacuumdb 对多个 -N 开关的处理
变更
修复 vacuumdb 对多个 -N 开关的处理(Nathan Bossart,Kuwamura Masaki)§
多个 -N 开关应该排除多个模式中的表,但实际上由于生成查询的错误构造而没有排除任何内容。
问题修复修复 vacuumdb 以在仅分析模式下遵守其 --buffer-usage-limit 选项
变更
修复 vacuumdb 以在仅分析模式下遵守其 --buffer-usage-limit 选项(Ryoga Yoshida,David Rowley)§
改进在 contrib/amcheck 中,不将被中断的页面删除报告为损坏
变更
在 contrib/amcheck 中,不将被中断的页面删除报告为损坏(Noah Misch)§
此修复防止了 “the first child of leftmost target page is not leftmost of its level”、“block NNNN is not leftmost” 或 “left link/right link pair in index XXXX not in agreement” 的误报。这些误报出现在 amcheck 在未完成的 B-树索引页面删除之后且 VACUUM 清理之前运行时。
问题修复修复 contrib/btree_gin 在 interval 列上的索引在执行使用 < 或 <= 操作符的索引扫描时的失败
变更
修复 contrib/btree_gin 在 interval 列上的索引在执行使用 < 或 <= 操作符的索引扫描时的失败(Dean Rasheed)§
这样的索引扫描无法返回所有应返回的条目。
关联记录 (5)
- 相同变化PostgreSQL 15.5 · 修复 contrib/btree_gin 在 interval 列上的索引在执行使用 < 或 <= 操作符的索引扫描时的失败
- 相同变化PostgreSQL 14.10 · 修复 contrib/btree_gin 在 interval 列上的索引在执行使用 < 或 <= 操作符的索引扫描时的失败
- 相同变化PostgreSQL 13.13 · 修复 contrib/btree_gin 在 interval 列上的索引在执行使用 < 或 <= 操作符的索引扫描时的失败
- 相同变化PostgreSQL 12.17 · 修复 contrib/btree_gin 在 interval 列上的索引在执行使用 < 或 <= 操作符的索引扫描时的失败
- 相同变化PostgreSQL 11.22 · 修复 contrib/btree_gin 在 interval 列上的索引在执行使用 < 或 <= 操作符的索引扫描时的失败
改进增加对 LLVM 16 和 17 的支持
变更
改进消除在最新 macOS 上的各种编译时警告
改进在构建 contrib/unaccent 的规则文件时,如果未指定 --with-python 且未设置 make 变量 PYTHON,则回退使用 python
变更
在构建 contrib/unaccent 的规则文件时,如果未指定 --with-python 且未设置 make 变量 PYTHON,则回退使用 python(Japin Li)§
关联记录 (3)
- 相同变化PostgreSQL 15.5 · 在构建 contrib/unaccent 的规则文件时,如果未指定 --with-python 且未设置 make 变量 PYTHON,则回退使用 python
- 相同变化PostgreSQL 14.10 · 在构建 contrib/unaccent 的规则文件时,如果未指定 --with-python 且未设置 make 变量 PYTHON,则回退使用 python
- 相同变化PostgreSQL 13.13 · 在构建 contrib/unaccent 的规则文件时,如果未指定 --with-python 且未设置 make 变量 PYTHON,则回退使用 python
改进从默认时区缩写列表中移除 PHOT(凤凰群岛时间)
变更
从默认时区缩写列表中移除 PHOT(凤凰群岛时间)(Tom Lane)§
此缩写在默认列表中的存在可能导致在最新的 Debian 和 Ubuntu 发行版上出现失败,因为它们不再默认安装底层的 tzdb 条目。由于这是一个为总人口约二十几人的区域编造的缩写,不太可能有人会需要它。如果确有需要,可以通过自定义缩写文件将其恢复。
没有匹配的变化
尝试其他关键词,或 .
如何生成比较结果?
比较依据起始版本之后至目标版本的 PostgreSQL 发布说明。经核实的回补重复项会谨慎合并,保留每条原始说明;相关提交可能涉及独立变化,仍作为不同记录保留。
发布快照: 2026-09-26 · 安全快照: 2026-09-26
内容来自 PostgreSQL 发布说明。交互方式参考 pgversions.com 与 pgversionreport.