PgPedia 周刊
每周更新,列出感兴趣的提交、PostgreSQL 的其他有趣更改,以及 PgPedia 的注释和勘误表。
理论上每周星期天发布,但个人承诺意味着有时会延迟。
本周大部分是较小的更新,朝着第一个 PostgreSQL 17 beta 版本发布迈进。
在 PostgreSQL 17 开发中,CommitFest 之后,beta 发布之前,另一个平静的一周。
值得注意的更改
- PostgreSQL 17 发行说明 现已正式进入开发阶段
- 在提交 d3d55ce5 中添加的“自我连接消除 (SJE) 功能”不幸被撤回,等待在 PostgreSQL 18 发布周期中重新引入
PostgreSQL 开发的另一个平静的 CommitFest 后,beta 发布前的一周。在 pgsql-hackers 上的一些讨论仍在继续,并且可能会有更多新添加功能的修订或回滚。
PostgreSQL 17 更新
第一个 beta 版本计划于 2024年5月23日 发布
本周一个值得注意的更改
backtrace_on_internal_error
等待进一步考虑后被撤回
本周非常平静,提交日志主要由即将发布的 PostgreSQL 17 版本的修复组成。
开发方面本周比较平静,提交日志主要由最后的 PostgreSQL 17 CommitFest 之后的大量后续修复和改进(以及一个回滚)组成。
说到 PostgreSQL 17,beta1 版本发布日期已确定为 2024年5月23日:PostgreSQL 17 Beta 1 版本发布日期。
随着 CommitFest 47 的结束,PostgreSQL 17 功能冻结 现已牢固到位,重点现在放在测试和确保一切正常上。新功能的提案应提交到 PostgreSQL 18,不过在创建 REL_17_STABLE 分支和 PostgreSQL 18 正式成为一个版本之前,还需要几个月的时间。
PostgreSQL 17 本周更改
正如上周提到的,在 CommitFest 47 结束时,提交量激增 - Peter Eisentraut 运行了一些数字:PostgreSQL 17 commitfest 结论,它们确实是有史以来最高的。一些已提交的功能已回滚 在 pgsql-hackers 上讨论后,具体来说
在不太严肃的方面
提交 b1b13d2b (Doc: 使用“an SQL”而不是“a SQL”
) 是一个有用的提醒,即“官方”立场是它发音为“Ess-Cue-Ell”,而不是“Sequel”,如之前在 2021 年提交 04539e73 中确立的那样。这是一个我愿意为之奋斗的难题,毕竟没有人说“PostgreSequel”(或者他们会这么说吗?)。
本周的条目故意延迟发布,以应对在 PostgreSQL 17 功能冻结 之前最后一刻涌入的大量提交(请参阅以下摘要)。这就是 PostgreSQL 17 功能的全部内容,但在 计划于 9 月发布 之前,需要进行大量测试。与往常一样,这些事情不会自动测试,因此即使(或尤其是在)你不是贡献者,现在也是你大放异彩的机会。查看 pgsql-hackers
上的“冻结后损坏控制”主题,以获取一些可能的起点。
在网站新闻方面,经常阅读的读者可能已经注意到网站顶部有一条文本广告横幅。这是由 EthicalAds(Read the Docs 的一个部门)的友好人士提供的,旨在 为第二艘远洋游艇提供资金 在一定程度上涵盖服务器成本。
PostgreSQL 17 本周更改
用户可见的更改
SQL
ALTER TABLE ... MERGE PARTITIONS ...
语法已添加ALTER TABLE ... SPLIT PARTITION ...
语法已添加COPY
:已添加LOG_VERBOSITY
选项EXPLAIN
:已添加SERIALIZE
选项JSON_TABLE()
构造函数已添加
系统目录
pg_stat_progress_vacuum
:列已重命名
系统函数
pg_wal_replay_wait()
存储过程已添加
GUCs
io_combine_limit
已添加or_to_any_transform_limit
已添加trace_connection_negotiation
已添加vacuum_buffer_usage_limit
:默认值已更改为2MB
实用程序
pg_restore
:已添加--transaction-size
选项pg_combinebackup
:已添加--clone
/--copy-file-range
选项pg_buffercache
:已添加pg_buffercache_evict()
函数
API
libpq
:- 已添加
PQsetChunkedRowsMode()
函数 - 已添加
PQsocketPoll()
函数
- 已添加
内部
- 提供用于流式传输关系数据的 API。
- 在延迟 vacuum 期间使用 TidStore 存储死元组 TID。
- 引入非递归 JSON 解析器
- 引入增量内存分配器
injection_points
测试模块:已添加injection_points_set_local()
函数
CommitFest 第 47 号,PostgreSQL 17 发布周期中的最后一个,正在进入最后阶段。本周添加了另一系列用户可见的功能(请参阅下文),以及一些不太明显的内部更改和一些错误修复。
PostgreSQL 17 本周添加的更改
以下是在过去七天内添加的用户可见功能和更改
- 添加了对指定分区表访问方法的支持
MERGE ... WHEN NOT MATCHED BY SOURCE
支持已添加pg_replication_slots
已获得一个inactive_since
字段random()
函数变体已添加,用于生成指定范围内的随机数pg_basetype()
用于提取 域 的基本类型allow_alter_system
GUC 用于禁用ALTER SYSTEM
pg_createsubscriber
核心实用程序,用于将物理备用转换为新的逻辑备用reindexdb
选项--jobs
可以与--index
选项一起使用。pgbench
选项-d
作为--debug
的简写形式已被-d
/--database
选项替换。