PgPedia 周刊
每周更新,列出感兴趣的提交、PostgreSQL 的其他有趣更改,以及 PgPedia 的注释和勘误表。
理论上每周星期天发布,但个人承诺意味着有时会延迟。
PostgreSQL 感兴趣的提交
- 5a3423ad (2023-09-08)
添加 JIT deform_counter
- 04a09ee9 (2023-09-08):
指导 WaitEventSetWait() 在 Windows 上报告多个事件。
- 3af72179 (2023-09-07):
更新 information_schema 非空约束的定义
- e1c6db63 (2023-09-07):
pg_basebackup:在 PQbackendPID() 下生成有效的临时槽位名称
回溯 ~ 11 - 0da096d7 (2023-09-07):
修复恢复冲突 SIGUSR1 处理。
- 8c16ad3b (2023-09-06):
允许在前端实用程序中使用 syncfs()。
- cccc6cde (2023-09-06):
添加对前端支持函数中 syncfs() 的支持。
- 3ed19567 (2023-09-06):
使同步方法的枚举可用于前端代码。
- 59cbf60c (2023-09-06):
删除 wait_event_names.txt 中等待事件名称的列
- 414f6c0f (2023-09-06):
为等待事件对象和类型使用更一致的名称
- f691f5b8 (2023-09-05):
删除“快照过旧”功能。
- 2b8e5273 (2023-09-04):
修复对已删除数据库的共享统计信息的处理
回溯 ~15
请注意,提交按其在提交日志中出现的顺序显示,这可能不反映单个提交的创建时间。
有关完整提交列表,请参阅 PostgreSQL GIT 提交日志。
PostgreSQL 16 文章
- 在 PostgreSQL 中使用源过滤进行双向复制 作者:Vignesh C / 富士通
PostgreSQL 17 文章
- 等待 PostgreSQL 17 – 在 log_connections 下为“信任”连接生成新的 LOG - depesz 2023 年 9 月的博客文章
- 等待 PostgreSQL 17 – 添加 to_bin() 和 to_oct()。 - depesz 2023 年 9 月的博客文章
PostgreSQL 17 更改
log_connections
log_connections
现在明确记录没有身份验证 ID 的连接,例如信任连接(提交 e48b19c5)。
在 PostgreSQL 16 及更早版本中,信任连接的记录方式如下
[2023-08-30 08:37:17 JST] [unknown] [unknown] [unknown] LOG: 00000: connection received: host=127.0.0.1 port=35392 [2023-08-30 08:37:17 JST] [unknown] postgres postgres LOG: 00000: connection authorized: user=postgres database=postgres application_name=psql
在 PostgreSQL 17 及更高版本中
[2023-08-30 08:39:29 JST] [unknown] postgres postgres LOG: 00000: connection authenticated: user="postgres" method=trust (/var/lib/pgsql/data/pg_hba.conf:5) [2023-08-30 08:39:29 JST] [unknown] postgres postgres LOG: 00000: connection authorized: user=postgres database=postgres application_name=psql
提醒您,即将发布的 PostgreSQL 16 版本日期 已公布
- 2023-08-31 发布 PostgreSQL 16
rc1
(未解决问题 截止日期为 2023-08-26 12:00 UTC) - 2023-09-14 发布公开版 (GA)(暂定)
rc1
现已加盖时间戳(提交 d94dadcc),但截至撰写本文时,尚未标记。
PostgreSQL 16 文章
- Postgres v16:14 个很酷的新功能(Laurenze Albe / CyberTec)
PostgreSQL 17 功能
命名非空约束
提交列表中一个有趣的新增内容是 b0e96f31“目录非空约束
”,它在经过非常漫长的开发过程和一些错误的开始后,添加了命名的 NOT NULL
约束。在实践中,这意味着在 PostgreSQL 16 及更早版本中这样定义的表
postgres=# CREATE TABLE foo (id INT NOT NULL); CREATE TABLE postgres=# \d+ foo Table "public.foo" Column | Type | Collation | Nullable | Default | Storage | Compression | Stats target | Description --------+---------+-----------+----------+---------+---------+-------------+--------------+------------- id | integer | | not null | | plain | | | Access method: heap
在 PostgreSQL 17 中变为
postgres=# CREATE TABLE foo (id INT NOT NULL); CREATE TABLE postgres=# \d+ foo Table "public.foo" Column | Type | Collation | Nullable | Default | Storage | Compression | Stats target | Description --------+---------+-----------+----------+---------+---------+-------------+--------------+------------- id | integer | | not null | | plain | | | Not-null constraints: "foo_id_not_null" NOT NULL "id" Access method: heap
NOT NULL
约束也可以显式定义
postgres=# CREATE TABLE foo ( id INT, CONSTRAINT foo_id_is_not_null NOT NULL id ); CREATE TABLE postgres=# \d+ foo Table "public.foo" Column | Type | Collation | Nullable | Default | Storage | Compression | Stats target | Description --------+---------+-----------+----------+---------+---------+-------------+--------------+------------- id | integer | | not null | | plain | | | Not-null constraints: "foo_id_is_not_null" NOT NULL "id" Access method: heap
即将发布的 PostgreSQL 16 版本日期 已公布
- 2023-08-31 发布 PostgreSQL 16
rc1
(未解决问题 截止日期:2023-08-26 12:00 UTC) - 2023-09-14 发布公开版 (GA)(暂定)
PostgreSQL 17 获得了一个新的、看起来很有用的系统目录视图 pg_wait_events
。
PostgreSQL 另一个平静的夏季周,仅以季度次要版本更新和 PostgreSQL 16 beta3
的发布为亮点
CommitFest 43 结束后的 PostgreSQL 平静的一周。下周将进行定期的季度次要版本发布,并且可能会有 PostgreSQL 17 的 beta3
版本发布。
CommitFest 43 即将结束;本周特别值得注意的是,使用提交 03734a7f 重新添加了 SQL 标准 JSON 构造函数(JSON()
、JSON_SCALAR()
和 JSON_SERIALIZE()
);这些函数最初是在 PostgreSQL 15 中添加的,但随后使用提交 2f2b18bd 恢复。
展望即将发布的 PostgreSQL 16 版本,PostgreSQL v16 版本艺术作品 竞赛现已开始(请注意,截至撰写本文时,提交窗口约为 4 天)。
本周(再次延迟)的 PgPedia 周刊来自风大雨大的根西岛渡轮码头的队伍中。