PgPedia 周报, 2025-04-06
CommitFest 52 (2025-03) - PostgreSQL 18 开发周期的最后一个 CommitFest - 即将结束,一如既往地会延续到三月之后,直到 4 月 8 日的代码冻结。
在这个冲刺的最后阶段,出现了很多有趣的变化,加上个人原因,使得追踪这些变化变得颇具挑战。一如既往,如果您觉得有什么遗漏,请通过 反馈 表格告知我。
本周 PostgreSQL 18 的更改
优化器
- 当适用时,将
x IN (VALUES ...)
转换为x = ANY ...
- 当适用时,将
规划器
- SQL 语言函数现在使用计划缓存
索引
- 为范围类型添加了 GiST 和 btree 的 sortsupport 例程
- 添加了 btree 跳过扫描优化
- 其他各种 btree 优化
ALTER DEFAULT PRIVILEGES
- 能够为 大对象 定义默认权限
COPY
COPY TO
可以从物化视图复制行
pg_replication_slots
- 添加了列
two_phase_at
- 添加了列
array_sort()
- 用于排序数组的函数
btree_gist
- 添加了对已排序的 gist 索引构建的支持
pg_dump
- 转储统计信息时的效率改进
pg_dumpall
- 添加了选项
-F
/--format
- 添加了选项
pg_recvlogical
- 添加了选项
--failover
- 添加了选项
libpq
- 添加了
min_protocol_version
和max_protocol_version
连接参数 - 添加了
sslkeylogfile
连接参数
- 添加了
PostgreSQL 链接
博客、播客、新闻通讯等
- Scaling Postgres 360: Handle One Million Connections? (2025-04-06) - 对近期 PostgreSQL 文章等的视频回顾,约 16 分钟
- Postgres Weekly 第 595 期 (2025-04-03)
公告
- PGConf.NYC 2025 - 演讲征集 (CFP) 和赞助商! (2025-04-04)
- pgAdmin 4 v9.2 发布 (2025-04-04)
- PGDay UK 2025,9 月 9 日,伦敦,英格兰 (2025-04-02)
- openHalo 项目现已发布! (2025-04-02)
- openHalo 是一个 MySQL 到 PostgreSQL 的迁移工具
- Navicat for PostgreSQL 17.2 引入 AI 助手、Snowflake 支持和增强的数据建模功能 (2025-04-01)
- Navicat 是一个数据库管理和管理工具
其他
- PostgreSQL 本周人物 - 专访 Akshat Jaimini (2025-03-31)
新 PgPedia 条目
已添加以下新条目
PostgreSQL 提交的值得关注的变更
- f0d0083f (2025-04-04):
pg_dump: 修复旧版本上收集属性统计信息的查询。
- 43b8e6c4 (2025-04-04):
修复 FK SET 列列表中重复条目的错误行为。
回填 ~ 15 - 0f43083d (2025-04-04):
functions.c: 在解析分析等之前从 source_list 复制树。
- 1495eff7 (2025-04-04):
pg_dumpall 的非文本模式,相应地更改 pg_restore
- 2b69afbe (2025-03-28):
向 fe-utils/simple_list 添加新的列表类型 simple_oid_string_list
- c1da7281 (2025-04-04):
将与连接相关的常用 pg_dump 代码移动到新文件
- ff3a7f0b (2025-04-04):
移除 pg_backup_archiver.c 中未使用的函数参数。
- 9c02e3a9 (2025-04-04):
pg_dump: 批量检索属性统计信息。
- 7d5c83b4 (2025-04-04):
pg_dump: 减少带统计信息的转储的内存使用量。
- e3cc039a (2025-04-04):
对于不带数据的自定义格式转储,跳过第二次 WriteToc() 调用。
- d9c7911e (2025-04-04):
在 autoprewarm 中使用流式读取 I/O
- b3f1a13f (2025-04-04):
通过预处理避免额外的索引搜索。
- 21a152b3 (2025-04-04):
改进 nbtree 跳过扫描原始扫描的调度。
- cf2655a9 (2025-04-04):
pg_recvlogical: 添加 --failover 选项。
- 8a510275 (2025-04-04):
进一步优化 nbtree 搜索扫描键比较。
- 92fe23d9 (2025-04-04):
添加 nbtree 跳过扫描优化。
- 64e7fa43 (2025-04-04):
修复 autoprewarm 忽略表空间的问题
- c0962a11 (2025-04-04):
当适用时,将 'x IN (VALUES ...)' 转换为 'x = ANY ...'
- d48d2e2d (2025-04-04):
从 match_orclause_to_indexcol() 中提取 make_SAOP_expr() 函数
- 534874fa (2025-04-04):
允许 "COPY table TO" 命令从物化视图复制行。
- 9ef18516 (2025-04-04):
支持 get_actual_variable_range() 中的非 btree 索引
- 0d6c4776 (2025-04-04):
扩展 ALTER DEFAULT PRIVILEGES 以定义大对象的默认权限。
- 6e9c8183 (2025-04-04):
在 walreceiver 中使用标准的 die() 信号处理程序
- 8123e91f (2025-04-04):
将 PathKey 转换为使用 CompareType
- 898c131b (2025-04-04):
pg_createsubscriber: 改进错误消息。
- 1aff1dc8 (2025-04-04):
撤销 "改进对共享哈希表使用的内存的核算"
- 88f55bc9 (2025-04-04):
使 EquivalenceClass 中的派生子句查找更有效率
- 67be0935 (2025-04-03):
对位图堆扫描使用 AIO 批处理模式
- 8ae0a379 (2025-04-03):
oauth: 修复在没有 epoll/kqueue 的平台上构建的问题
- 94512623 (2025-04-03):
修复 pg_upgrade. 中无意的 'NULL' 字符串字面量。
- b81ffa13 (2025-04-03):
pg_upgrade 检查依赖于 Unicode 的关系。
- fd09c131 (2025-04-03):
限制复制无效复制槽的复制。
回填 ~ 16 - b82e7edd (2025-04-03):
向 pg_config.h.in 添加缺失的声明
- 2da74d8d (2025-04-03):
libpq: 添加将 SSL 密钥材料转储到文件的支持
- e4309f73 (2025-04-03):
向 btree_gist 添加对已排序的 gist 索引构建的支持
- 82a46cca (2025-04-03):
将 Unicode 数据更新到 Unicode 16.0.0
- 84fea854 (2025-04-03):
将 Unicode 数据更新到 CLDR 47
- 4868c96b (2025-04-03):
修复启用了 two_phase 的复制槽的槽同步。
- a7187c37 (2025-04-02):
移除 tsvectorrecv(). 中不必要的类型冲突。
回填 ~ 13 - 459e7bf8 (2025-04-02):
移除 HeapBitmapScan 的 skip_fetch 优化
回填 ~ 13 - 0dca5d68 (2025-04-02):
更改 SQL 语言函数以使用计划缓存。
- e9e7b660 (2025-04-02):
为范围类型添加 GiST 和 btree sortsupport 例程
- 46df9487 (2025-04-02):
改进对 PredXactList、RWConflictPool 和 PGPROC 的核算
- f5930f9a (2025-04-02):
改进对共享哈希表使用的内存的核算
- bd178960 (2025-04-02):
StoreAttrMissingVal 之后需要执行 CommandCounterIncrement。
回填 ~ 13 - a460251f (2025-04-02):
使取消请求密钥变长
- 285613c6 (2025-04-02):
libpq: 添加 min/max_protocol_version 连接选项
- 50703491 (2025-04-02):
libpq: 不同地处理 NegotiateProtocolVersion 消息
- 09be3911 (2025-04-02):
添加 timingsafe_bcmp(),用于常量时间内存比较
- eec0040c (2025-04-02):
在 外键 约束中添加对 NOT ENFORCED 的支持
- bc22dc0e (2025-04-02):
移除 WALBufMappingLock
- b3219c69 (2025-04-01):
aio: 添加处理另一个后端 I/O 的 errcontext
- b136db07 (2025-04-02):
修复规划器未能识别多个可哈希的 ScalarArrayOpExprs
回填 ~ 14 - 6c12ae09 (2025-04-01):
引入一个可 SQL 调用函数 array_sort(anyarray)。
- 6da2ba1d (2025-04-01):
修复 macOS 15.4 的 strchrnul() 检测和处理。
回填 ~ 13 - 60f566b4 (2025-04-01):
aio: 添加 pg_aios 视图
- 2904324a (2025-04-01):
heapam: 在 pagemode 中每页仅设置一次 tuple 的 block
请注意,提交按其在提交日志中的出现顺序显示,这可能不反映单个提交的创建日期。
请参阅 PostgreSQL GIT 提交日志 查看完整的提交列表。
最后...
如果有什么遗漏,或者您有什么(建设性的)想法,请留下一些 反馈 和/或 买杯咖啡。