pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
文档版本对比
POSTGRESQL · VERSION COMPARE
本次发布的完整功能、修复与兼容性说明,以及它们在其他版本中的关联记录。
从起始版本之后,看到目标版本为止。大版本名称代表该系列首个正式版本。
收录 PostgreSQL 9.0 起的 17 个大版本、352 份发布说明;数据更新于 2026-09-26。
本次发布的全部变更
2013-09-09
9.3.0 历史版本维护截止 2018-11-08
服务器设置
把 replication_timeout 重命名为 wal_sender_timeout(Amit Kapila)
这个设置控制 WAL 发送端的超时。
服务器设置
设置 commit_delay 现在需要超级用户权限,因为它如今有可能延迟其他会话(Simon Riggs)
服务器设置
允许内存中排序使用其完整的内存分配(Jeff Janes)
基于旧行为设置了 work_mem 的用户可能需要重新审视该设置。
其他
如果要更新或删除的元组已被 BEFORE 触发器更新或删除,则抛出错误(Kevin Grittner)
此前,原本打算执行的更新会被静默跳过,造成逻辑不一致,因为触发器可能已经基于预期的更新把数据传播到了其他地方。现在会抛出错误,以防止不一致的结果被提交。如果此变更影响你的应用,最好的解决办法通常是把数据传播动作移到 AFTER 触发器。
如果查询调用的易变函数修改了稍后又被查询本身修改的行,也会抛出此错误。这类情况此前同样会导致静默跳过更新。
其他
修改多列 ON UPDATE SET NULL/SET DEFAULT 外键操作的行为,使其影响约束的所有列,而不只是 UPDATE 中被更改的那些列(Tom Lane)
此前,我们只会设置那些与被 UPDATE 更改的被引用列相对应的引用列。这是 SQL-92 的要求,但 SQL 标准的较新版本规定了新的行为。
其他
当 search_path 发生变化时,强制对缓存的计划重新规划(Tom Lane)
此前,如果查询以新的 search_path 设置重新执行,当前会话中已生成的缓存计划不会重做,导致令人惊讶的行为。
其他
修复 to_number(),使其正确处理用作千位分隔符的句点(Tom Lane)
此前,即使区域设置表明句点不是小数点、并且使用了 D 格式代码指定使用区域特定的小数点,句点仍被视为小数点。如果同时使用 FM 格式,这会导致错误答案。
其他
修复带集合返回函数参数的 STRICT 非集合返回函数,使其正确返回空行(Tom Lane)
传递给严格函数的空值本应产生空输出,但该输出行却被完全抑制了。
其他
把 WAL 存储为连续流,而不是每 4GB 跳过最后 16MB 的段(Heikki Linnakangas)
此前,由于这种跳过,名称以 FF 结尾的 WAL 文件不会被使用。如果你的 WAL 备份或恢复脚本考虑了这一行为,则需要调整。
其他
在 pg_constraint.confmatchtype 中,把默认外键匹配类型(非 FULL、非 PARTIAL)存储为表示“simple”的 s(Tom Lane)
此前这种情况用表示“unspecified”的 u 表示。
服务器 / 锁定
防止非键字段的行更新阻塞外键检查(Álvaro Herrera、Noah Misch、Andres Freund、Alexander Shulgin、Marti Raudsepp、Alexander Shulgin)
此变更提高了并发性,并降低了更新外键约束相关表时发生死锁的概率。不更改外键所引用列的 UPDATE 现在对行采用新的 NO KEY UPDATE 锁模式,而外键检查使用新的 KEY SHARE 锁模式,它与 NO KEY UPDATE 不冲突。因此,除非外键列被更改,否则不会发生阻塞。
服务器 / 锁定
新增配置变量 lock_timeout,用于限制会话等待获取任一锁的最长时间(Zoltán Böszörményi)
服务器 / 索引
为范围数据类型新增 SP-GiST 支持(Alexander Korotkov)
服务器 / 索引
允许 GiST 索引不记录日志(Jeevan Chalke)
服务器 / 索引
当存在多个同等良好的候选时,通过随机选择下探页面来改进 GiST 索引插入的性能(Heikki Linnakangas)
服务器 / 索引
改进哈希索引操作的并发性(Robert Haas)
服务器 / 优化器
为范围类型收集并使用上下界以及范围长度的直方图(Alexander Korotkov)
服务器 / 优化器
改进优化器对索引访问的代价估计(Tom Lane)
服务器 / 优化器
改进优化器对通过哈希聚合实现 DISTINCT 的哈希表大小估计(Tom Lane)
服务器 / 优化器
抑制无操作的 Result 和 Limit 计划节点(Kyotaro Horiguchi、Amit Kapila、Tom Lane)
服务器 / 优化器
当优化器只关心总代价时,不再以启动代价低为由保留计划,从而降低优化器开销(Tom Lane)
服务器 / 常规性能
新增 COPY FREEZE 选项,以避免稍后把元组标记为冻结的开销(Simon Riggs、Jeff Davis)
服务器 / 常规性能
改进 NUMERIC 计算的性能(Kyotaro Horiguchi)
服务器 / 常规性能
改进等待 commit_delay 的会话间的同步(Peter Geoghegan)
这大大提升了 commit_delay 的实用性。
服务器 / 常规性能
改进 CREATE TEMPORARY TABLE ... ON COMMIT DELETE ROWS 选项的性能:在未触及任何临时表的事务中不再截断这类临时表(Heikki Linnakangas)
服务器 / 常规性能
让清理在移除过期元组后重新检查可见性(Pavan Deolasee)
这提高了页面被标记为全可见的机会。
服务器 / 常规性能
新增逐资源所有者的锁缓存(Jeff Janes)
这加快了持有大量锁的多语句事务在语句完成时的锁簿记速度;它对 pg_dump 尤其有用。
服务器 / 常规性能
避免在创建新关系的事务提交时扫描整个关系缓存(Jeff Janes)
这加快了在连续的小事务中创建大量表的会话的速度,例如 pg_restore 运行。
服务器 / 常规性能
改进删除大量关系的事务的性能(Tomas Vondra)
服务器 / 监控
把统计收集器的数据文件拆分为独立的全局文件和逐数据库文件(Tomas Vondra)
这减少了统计跟踪所需的 I/O。
服务器 / 监控
修复统计收集器在系统时钟回拨情况下无法正常工作的问题(Tom Lane)
此前,统计收集会停止,直到时间再次达到先前记录的最晚时间。
服务器 / 监控
在即将停止向 postmaster 标准错误输出日志时,向其发出一条提示性消息(Tom Lane)
在仅在 postmaster 启动期间向标准错误记录日志的常见配置中,这应有助于减少用户对到哪里查找日志输出的困惑。
服务器 / 认证
当认证失败时,记录相关的 pg_hba.conf 行,以便于调试意外失败(Magnus Hagander)
服务器 / 认证
改进 LDAP 的错误报告和文档(Peter Eisentraut)
服务器 / 认证
新增对以 URL 格式(按 RFC 4516)指定 LDAP 认证参数的支持(Peter Eisentraut)
服务器 / 认证
把 ssl_ciphers 参数改为以 DEFAULT 而不是 ALL 开头,然后移除不安全的密码套件(Magnus Hagander)
这应能产生更合适的 SSL 密码套件集。
服务器 / 认证
只解析和加载一次 pg_ident.conf,而不是在每次连接期间进行(Amit Kapila)
这与 pg_hba.conf 的处理方式类似。
服务器 / 服务器设置
大幅降低对 System V 共享内存的需求(Robert Haas)
在类 Unix 系统上,PostgreSQL 的大部分共享内存现在使用 mmap()。对大多数用户而言,这将消除为共享内存调整内核参数的需要。
服务器 / 服务器设置
允许 postmaster 监听多个 Unix 域套接字(Honza Horák)
配置参数 unix_socket_directory 被 unix_socket_directories 取代,后者接受目录列表。
服务器 / 服务器设置
允许处理包含配置文件的目录(Magnus Hagander、Greg Smith、Selena Deckelmann)
这样的目录通过服务器配置文件中的 include_dir 指定。
服务器 / 服务器设置
把 initdb 配置的 shared_buffers 最大值提高到 128MB(Robert Haas)
这是 initdb 尝试在 postgresql.conf 中设置的最大值;此前的最大值是 32MB。
服务器 / 服务器设置
postmaster 退出时移除外部 PID 文件(如果存在)(Peter Eisentraut)
复制和恢复
允许流复制备库跟随时间线切换(Heikki Linnakangas)
这允许流式备库从新提升为主库的从库接收 WAL 数据。此前,其他备库需要重新同步才能开始跟随新的主库。
复制和恢复
新增 SQL 函数 pg_is_in_backup() 和 pg_backup_start_time()(Gilles Darold)
这些函数报告基础备份的状态。
复制和恢复
改进禁用 synchronous_commit 时流式日志传送的性能(Andres Freund)
复制和恢复
允许把流式备库提升为主库的速度大大加快(Simon Riggs、Kyotaro Horiguchi)
复制和恢复
把最后一个检查点的重做位置加入pg_controldata的输出(Fujii Masao)
这一信息有助于确定恢复需要哪些 WAL 文件。
复制和恢复
允许pg_receivexlog等工具在体系结构不同的计算机上运行(Heikki Linnakangas)
WAL 文件仍然只能在与会与主库相同体系结构的服务器上重放;但由于流复制协议现在与机器无关,它们可以被传输并存储在任何体系结构的机器上。
复制和恢复
让pg_basebackup的 --write-recovery-conf 输出最小化的 recovery.conf 文件(Zoltán Böszörményi、Magnus Hagander)
这简化了备库服务器的搭建。
复制和恢复
允许pg_receivexlog和pg_basebackup的 --xlog-method 处理流式时间线切换(Heikki Linnakangas)
复制和恢复
新增 wal_receiver_timeout 参数,用于控制 WAL 接收端的超时(Amit Kapila)
这可以更快地检测到连接失败。
复制和恢复
更改 WAL 记录格式,允许把记录头拆分到多个页面(Heikki Linnakangas)
新格式略微更紧凑,写入效率更高。
查询
为 FROM 子句中的子查询和函数调用实现 SQL 标准的 LATERAL 选项(Tom Lane)
此特性允许 FROM 中的子查询和函数引用 FROM 子句中其他表的列。对函数而言 LATERAL 关键字是可选的。
查询
允许规则中的多行 VALUES 子句引用 OLD/NEW(Tom Lane)
对象操作
新增对事件触发器的支持(Dimitri Fontaine、Robert Haas、Álvaro Herrera)
这允许在运行 DDL 命令时调用以事件启用语言编写的服务器端函数。
对象操作
允许外部数据包装器支持对外部表的写入(插入/更新/删除)(KaiGai Kohei)
对象操作
新增 CREATE SCHEMA ... IF NOT EXISTS 子句(Fabrízio de Royes Mello)
对象操作
让 REASSIGN OWNED 也更改共享对象的所有权(Álvaro Herrera)
对象操作
让 CREATE AGGREGATE 在给定的初始值字符串不是转换数据类型的有效输入时报错(Tom Lane)
对象操作
抑制 CREATE TABLE 关于隐式创建索引和序列的消息(Robert Haas)
这些消息现在以 DEBUG1 详细级别出现,因此默认不会显示。
对象操作
当表名中指定了不存在的模式时,允许 DROP TABLE IF EXISTS 成功执行(Bruce Momjian)
此前,如果模式不存在,它会抛出错误。
对象操作
以独立字段的形式向客户端提供约束违规细节(Pavel Stehule)
这允许客户端获取表、列、数据类型或约束名的错误细节。此前这类信息必须从错误字符串中提取。访问这些字段需要客户端库的支持。
对象操作 / ALTER
支持 ALTER TYPE ... ADD VALUE 中的 IF NOT EXISTS 选项(Andrew Dunstan)
这对有条件地向枚举类型添加值很有用。
对象操作 / ALTER
新增 ALTER ROLE ALL SET,用于为所有用户建立设置(Peter Eisentraut)
这允许设置应用于所有数据库中的所有用户。ALTER DATABASE SET 此前已允许为单个数据库中的所有用户添加设置。postgresql.conf 有类似效果。
对象操作 / ALTER
新增对 ALTER RULE ... RENAME 的支持(Ali Dar)
对象操作 / VIEWs
新增物化视图(Kevin Grittner)
与每次访问都读取基础表的普通视图不同,物化视图在创建或刷新时创建物理表。对物化视图的访问随后从其物理表读取。目前还没有增量刷新物化视图或通过基础表访问自动访问它们的机制。
对象操作 / VIEWs
使简单视图自动可更新(Dean Rasheed)
引用单个基础表部分或全部列的简单视图现在默认可更新。更复杂的视图可以通过 INSTEAD OF 触发器或 INSTEAD 规则使其可更新。
对象操作 / VIEWs
新增 CREATE RECURSIVE VIEW 语法(Peter Eisentraut)
在内部,这会被转换为 CREATE VIEW ... WITH RECURSIVE ...。
对象操作 / VIEWs
改进视图/规则打印代码,以处理被引用表被重命名、或列被重命名、添加或删除的情况(Tom Lane)
表和列的重命名可能造成这样的情况:如果只是把新名称替换进规则或视图的原始文本,结果就会有歧义。此变更修复了规则转储代码,使其在需要时插入构造的表和列别名以保持原始语义。
数据类型
把大对象的最大大小从 2GB 提高到 4TB(Nozomi Anzai、Yugo Nagata)
此变更包括在服务器和 libpq 中新增支持 64 位的大对象访问函数。
数据类型
允许在 ISO 格式 timestamptz 输入的 “T” 字段中使用文本时区名称,例如 “America/Chicago”(Bruce Momjian)
数据类型 / JSON
新增用于从 JSON 值中提取元素的操作符和函数(Andrew Dunstan)
数据类型 / JSON
允许把 JSON 值转换为记录(Andrew Dunstan)
数据类型 / JSON
新增用于把标量、记录和 hstore 值转换为 JSON 的函数(Andrew Dunstan)
函数
新增 array_remove() 和 array_replace() 函数(Marco Nenciarini、Gabriele Bartolini)
函数
改进 format(),提供字段宽度和左/右对齐选项(Pavel Stehule)
函数
让 to_char()、to_date() 和 to_timestamp() 正确处理负的(公元前)世纪值(Bruce Momjian)
此前的行为要么错误,要么与正数/AD(公元)的处理不一致,例如在使用格式掩码 “IYYY-IW-DY” 时。
函数
让 to_date() 和 to_timestamp() 在混用 ISO 与公历周/日标记时返回正确结果(Bruce Momjian)
函数
让 pg_get_viewdef() 默认在每个 SELECT 目标列表项和 FROM 项之后换行(Marko Tiikkaja)
这缩短了视图打印时的行长度,例如在pg_dump输出中。
函数
修复 map_sql_value_to_xml_value(),使域类型值的打印方式与其基础类型的打印方式一致(Pavel Stehule)
某些内建类型(如 boolean)有特殊的格式化规则;这些规则现在也适用于基于这些类型的域。
服务器端语言 / PL/pgSQL Server-Side Language
允许 PL/pgSQL 在 RETURN 中使用组合类型表达式(Asif Rehman)
此前,在返回组合类型的函数中,RETURN 只能引用该类型的变量。
服务器端语言 / PL/pgSQL Server-Side Language
允许 PL/pgSQL 以独立字段的形式访问约束违规细节(Pavel Stehule)
服务器端语言 / PL/pgSQL Server-Side Language
允许 PL/pgSQL 访问 COPY 处理的行数(Pavel Stehule)
在 PL/pgSQL 函数中执行的 COPY 现在会更新 GET DIAGNOSTICS x = ROW_COUNT 获取的值。
服务器端语言 / PL/pgSQL Server-Side Language
允许非保留关键字在 PL/pgSQL 的所有位置用作标识符(Tom Lane)
在 PL/pgSQL 语法的某些位置,关键字必须加引号才能用作标识符,即使它们名义上是非保留的。
服务器端语言 / PL/Python Server-Side Language
新增 PL/Python 结果对象的字符串处理器(Peter Eisentraut)
这使得 plpy.debug(rv) 能够输出合理的内容。
服务器端语言 / PL/Python Server-Side Language
让 PL/Python 把 OID 值转换为合适的 Python 数值类型(Peter Eisentraut)
服务器端语言 / PL/Python Server-Side Language
把显式抛出(用 PL/Python 的 RAISE)的SPI 错误与内部 SPI 错误同等处理(Oskari Saarenmaa、Jan Urbanski)
Server Programming Interface (SPI)
防止子事务中止时 SPI 元组表的泄漏(Tom Lane)
现在,任何失败的子事务结束时,SPI 核心代码会释放该子事务期间创建的所有 SPI 元组表。这免除了使用 SPI 的代码跟踪此类元组表并在错误恢复代码中手工释放它们的需要。此前未做到这一点曾导致 PL/pgSQL 或许还有其他 SPI 客户端中的若干事务级内存泄漏问题。SPI_freetuptable() 现在可以防止多次释放请求,因此现有的确做了清理的代码不会因这一变更而破坏。
Server Programming Interface (SPI)
允许 SPI 函数访问 COPY 处理的行数(Pavel Stehule)
客户端应用程序
新增命令行工具pg_isready,用于检查服务器是否准备好接受连接(Phil Sorber)
客户端应用程序
支持为pg_restore、clusterdb、reindexdb和vacuumdb指定多个 --table 参数(Josh Kupershmidt)
这与pg_dump的 --table 选项的工作方式类似。
客户端应用程序
为pg_dumpall、pg_basebackup和pg_receivexlog新增 --dbname 选项,用于指定连接串(Amit Kapila)
客户端应用程序
新增 libpq 函数 PQconninfo(),用于返回连接信息(Zoltán Böszörményi、Magnus Hagander)
客户端应用程序 / psql
调整函数代价设置,使 psql 的 Tab 补全和模式搜索更高效(Tom Lane)
客户端应用程序 / psql
扩大 psql Tab 补全的覆盖范围(Jeff Janes、Dean Rasheed、Peter Eisentraut、Magnus Hagander)
客户端应用程序 / psql
允许 psql 的 --single-transaction 模式在从标准输入读取时工作(Fabien Coelho、Robert Haas)
此前此选项只在从文件读取时有效。
客户端应用程序 / psql
移除 psql 连接较旧服务器时的警告(Peter Eisentraut)
当连接比 psql 更新的大版本的服务器时仍会发出警告。
客户端应用程序 / psql / Backslash Commands
新增 psql 命令 \watch,用于重复执行 SQL 命令(Will Leinweber)
客户端应用程序 / psql / Backslash Commands
新增 psql 命令 \gset,用于把查询结果存入 psql 变量(Pavel Stehule)
客户端应用程序 / psql / Backslash Commands
在 psql 的 \conninfo 命令中新增 SSL 信息(Alastair Turner)
客户端应用程序 / psql / Backslash Commands
在 psql 的 \df+ 输出中新增“Security”列(Jon Erdman)
客户端应用程序 / psql / Backslash Commands
允许 psql 命令 \l 接受数据库名模式(Peter Eisentraut)
客户端应用程序 / psql / Backslash Commands
在 psql 中,如果没有活动连接,不允许 \connect 使用默认值(Bruce Momjian)
如果服务器曾崩溃,就可能出现这种情况。
客户端应用程序 / psql / Backslash Commands
修复用 psql 的 \g file 执行的 SQL 命令失败后状态未正确重置的问题(Tom Lane)
此前,后续 SQL 命令的输出会意外地继续写入同一文件。
客户端应用程序 / psql / 输出
为 psql 新增 latex-longtable 输出格式(Bruce Momjian)
这种格式允许表格跨越多页。
客户端应用程序 / psql / 输出
为 psql 的 latex 格式新增 border=3 输出模式(Bruce Momjian)
客户端应用程序 / psql / 输出
在 psql 的只显示元组和扩展输出模式下,零行时不再输出“(No rows)”(Peter Eisentraut)
客户端应用程序 / psql / 输出
在 psql 的非对齐扩展输出模式下,零行时不再打印空行(Peter Eisentraut)
客户端应用程序 / pg_dump
为 pg_dump 新增 --jobs 选项,用于并行转储表(Joachim Wieland)
客户端应用程序 / pg_dump
让 pg_dump 以更可预测的顺序输出函数(Joel Jacobson)
客户端应用程序 / pg_dump
修复 pg_dump 生成的 tar 文件,使其符合 POSIX(Brian Weaver、Tom Lane)
客户端应用程序 / pg_dump
为 pg_dump 新增 --dbname 选项,以与其他客户端命令保持一致(Heikki Linnakangas)
数据库名此前已可以不带标志放在最后提供。
客户端应用程序 / initdb
让 initdb 对新创建的数据目录执行 fsync(Jeff Davis)
这确保 initdb 之后不久发生系统崩溃时的数据完整性。可以使用 --nosync 禁用。
客户端应用程序 / initdb
新增 initdb 的 --sync-only 选项,用于把数据目录同步到持久存储(Bruce Momjian)
它被pg_upgrade使用。
客户端应用程序 / initdb
让 initdb 在数据目录被放在文件系统挂载点顶层时发出警告(Bruce Momjian)
源代码
新增允许插件式后台工作进程的基础设施(Álvaro Herrera)
源代码
创建集中化的超时 API(Zoltán Böszörményi)
源代码
创建 libpgcommon,并把 pg_malloc() 等函数移到那里(Álvaro Herrera、Andres Freund)
这使得 libpgport 可以只用于可移植性相关代码。
源代码
新增对嵌入在更大结构体中的列表链接的支持(Andres Freund)
源代码
对所有信号(包括 SIGALRM)使用 SA_RESTART(Tom Lane)
源代码
确保翻译 errcontext() 消息时使用正确的文本域(Heikki Linnakangas)
源代码
统一客户端内存分配函数的命名(Tom Lane)
源代码
新增对“静态断言”的支持:如果某个编译期常量条件不满足,将在编译时失败(Andres Freund、Tom Lane)
源代码
在客户端代码中支持 Assert()(Andrew Dunstan)
源代码
新增修饰,告知 C 编译器某些 ereport() 和 elog() 调用不会返回(Peter Eisentraut、Andres Freund、Tom Lane、Heikki Linnakangas)
源代码
允许通过 PG_REGRESS_DIFF_OPTS 向回归测试输出比较工具传递选项(Peter Eisentraut)
源代码
为 CREATE INDEX CONCURRENTLY 新增隔离测试(Abhijit Menon-Sen)
源代码
移除 int2/int4 的 typedef,因为用 int16/int32 表示更好(Peter Eisentraut)
源代码
修复 Mac OS X 上的 install-strip(Peter Eisentraut)
源代码
移除 configure 标志 --disable-shared,因为它不再受支持(Bruce Momjian)
源代码
用 Perl 重写 pgindent(Andrew Dunstan)
源代码
提供 Emacs 宏,把 Perl 格式设置为与 PostgreSQL 的 perltidy 设置一致(Peter Eisentraut)
源代码
每当后端文法被更改时,运行工具检查关键字列表(Tom Lane)
源代码
更改 UESCAPE 的词法分析方式,以大幅减小词法分析器表的大小(Heikki Linnakangas)
源代码
集中化 flex 和 bison 的 make 规则(Peter Eisentraut)
这对 pgxs 作者很有用。
源代码
把许多内部后端函数改为返回对象 OID 而不是 void(Dimitri Fontaine)
这对事件触发器很有用。
源代码
为事务回调新创 pre-commit/pre-prepare/pre-subcommit 事件(Tom Lane)
使用事务回调的可加载模块可能需要修改以处理这些新的事件类型。
源代码
新增函数 pg_identify_object(),用于生成数据库对象的机器可读描述(Álvaro Herrera)
源代码
新增对象 ALTER 之后的服务器钩子(KaiGai Kohei)
源代码
实现通用二叉堆,并将其用于 Merge-Append 操作(Abhijit Menon-Sen)
源代码
提供工具,帮助在更新 src/timezone/data 文件时检测时区缩写变更(Tom Lane)
源代码
为 libpq 和 ecpg 库新增 pkg-config 支持(Peter Eisentraut)
源代码
移除 src/tools/backend,因为其内容已移至 PostgreSQL wiki(Bruce Momjian)
源代码
把 WAL 读取拆分为独立设施(Heikki Linnakangas、Andres Freund)
源代码
用 64 位整数(XLogRecPtr)而不是两个 32 位整数表示 WAL 位置(Heikki Linnakangas)
一般来说,需要读取 WAL 格式的工具都需要调整。
源代码
允许 PL/Python 支持平台特定的头文件目录(Peter Eisentraut)
源代码
允许 OS X 上的 PL/Python 针对自定义版本的 Python 构建(Peter Eisentraut)
附加模块
新增 Postgres 外部数据包装器 contrib 模块,用于访问其他 Postgres 服务器(Shigeru Hanada)
这个外部数据包装器支持写入。
附加模块
新增 pg_xlogdump contrib 程序(Andres Freund)
附加模块
在 pg_trgm 中新增对正则表达式搜索索引的支持(Alexander Korotkov)
附加模块
改进 pg_trgm 对多字节字符的处理(Tom Lane)
在没有 wcstombs() 或 towlower() 库函数的平台上,这可能导致 pg_trgm 索引中非 ASCII 数据的内容发生不兼容变更。在这种情况下,应对这些索引执行 REINDEX 以确保正确的搜索结果。
附加模块
为 pgstattuple 新增函数,用于报告 GIN 索引待处理插入列表的大小(Fujii Masao)
附加模块
改进pg_test_timing的输出(Bruce Momjian)
附加模块
改进pg_test_fsync的输出(Peter Geoghegan)
附加模块
为 dblink 创建专用外部数据包装器,并带自己的选项验证函数(Shigeru Hanada)
使用这个 FDW 定义 dblink 连接的目标时,不再使用硬编码的连接选项列表,而是查询底层 libpq 库以了解它支持哪些连接选项。
附加模块 / pg_upgrade
允许 pg_upgrade 并行执行转储和恢复(Bruce Momjian、Andrew Dunstan)
这允许并行转储/恢复数据库的模式,以及按表空间并行复制/链接数据文件。使用 --jobs 选项指定并行度。
附加模块 / pg_upgrade
让 pg_upgrade 在当前目录中创建 Unix 域套接字(Bruce Momjian、Tom Lane)
这降低了有人在升级期间意外连接的可能性。
附加模块 / pg_upgrade
让 pg_upgrade 的 --check 模式正确检测非默认套接字目录的位置(Bruce Momjian、Tom Lane)
附加模块 / pg_upgrade
改进 pg_upgrade 在多表数据库下的性能(Bruce Momjian)
附加模块 / pg_upgrade
通过显示已执行的命令来改进 pg_upgrade 的日志(Álvaro Herrera)
附加模块 / pg_upgrade
改进 pg_upgrade 复制/链接期间的状态显示(Bruce Momjian)
附加模块 / pgbench
为 pgbench 新增 --foreign-keys 选项(Jeff Janes)
这会为 pgbench 创建的标准表添加外键约束,用于外键性能测试。
附加模块 / pgbench
允许 pgbench 聚合性能统计,并每 --aggregate-interval 秒生成一次输出(Tomas Vondra)
附加模块 / pgbench
为 pgbench 新增 --sampling-rate 选项,用于控制记录日志的事务百分比(Tomas Vondra)
附加模块 / pgbench
精简并改进 pgbench 初始化模式的状态消息输出(Robert Haas、Peter Eisentraut)
附加模块 / pgbench
为 pgbench 新增 -q 模式,每五秒打印一行输出(Tomas Vondra)
附加模块 / pgbench
在初始化期间输出 pgbench 的已用时间和预计剩余时间(Tomas Vondra)
附加模块 / pgbench
允许 pgbench 使用大得多的缩放因子:当请求的缩放因子超过 20000 时,把相关列从 integer 改为 bigint(Greg Smith)
文档
允许创建 EPUB 格式的文档(Peter Eisentraut)
文档
更新 FreeBSD 内核配置文档(Brad Davis)
文档
改进WINDOW 函数的文档(Bruce Momjian、Florian Pflug)
文档
新增在 macOS 上搭建文档工具链的说明(Peter Eisentraut)
文档
改进 commit_delay 的文档(Peter Geoghegan)
试试其他关键词,或。
对比以 PostgreSQL 发行说明为依据,汇总起始版本之后、目标版本及之前的变更,支持同一大版本内的小版本更新,以及跨大版本升级。跨大版本时,旧分支的维护记录只纳入到下一大版本首次发布之日,所有记录均不晚于目标版本的发布日期。大版本名称(如 18)指首个正式版本(18.0);测试版与开发快照会单独标注。
条目正文来自本站中文手册,版本清单、条目覆盖与提交依据逐一核对上游英文原文。每条变更保留完整说明与原文链接;分类用于辅助浏览,具体影响、适用条件与升级操作请阅读条目正文和各版本的升级说明。
同一修复可能回补到多个版本分支。对比会保守合并可确认相同的条目,并保留各分支完整说明;已知由起始版本包含的修复会排除。一条说明包含多个独立修复时,只有全部已包含才排除。大版本新功能不因与旧版补丁存在提交关联而合并,不能确认相同的条目继续保留。这是发行说明的累计差异,不能覆盖二进制程序之间的每一处代码变化。
CVE 独立依据 PostgreSQL 官方安全公告与漏洞记录计算:起始版本受影响、目标版本已修复或不受影响的漏洞才计入,按编号去重。目标版本仍受影响的漏洞另行提示;安全变更条数与 CVE 数量分别统计。
交互参考 pgversions.com 与 pgversionreport,内容来自 PostgreSQL 发行说明。更多历史资料见发行说明归档。