PgPedia 周报,2024-03-24

CommitFest 第 47 期正在如火如荼地进行中,新增了许多用户可见的功能(见下文),内部改进的数量更是庞大,还有一些 bug 修复。

本周添加的 PostgreSQL 17 变更

  • 增加了对时间外键约束的支持。
  • 这些 SQL 标准的 JSON 查询函数在 PostgreSQL 15 发布周期中被添加,然后又被撤销,现在重新添加了:
    • JSON_EXISTS()
    • JSON_QUERY()
    • JSON_VALUE()
  • 添加了以下系统函数
  • pg_replication_slots 表现已增加 invalidation_reason 列(并且之前对 conflicting 列的修改已回滚为 conflict_reason)。
  • ltree contrib 模块提供了对哈希索引的支持。

PostgreSQL 提交的值得关注的变更

  • af1d3958 (2024-03-24): 允许更多情况通过 unsafe-use-of-new-enum-value 限制。
  • d37e0d0c (2024-03-24): 在 GetDbnameFromConnectionOptions() 中释放 PQconninfoOptions 数组。
  • 225e1dde (2024-03-24): 在 check_for_data_types_usage() 中释放临时数组。
  • 34768ee3 (2024-03-24): 添加时间外键约束
  • b1fe8efd (2024-03-23): amcheck: 规范化包含未压缩 varlena 的索引元组 向后移植到 ~ 12 版本
  • ab65dfb0 (2024-03-23): amcheck: 支持短 varlena datum 的不同头部大小 向后移植到 ~ 12 版本
  • 697f8d26 (2024-03-22): 撤销 "在 SSL 证书信息显示中添加 notBefore 和 notAfter"
  • 473182c9 (2024-03-22): 为 catcache.c 的 CatCList 对象使用哈希表。 向后移植到 ~ 16 版本
  • 6acb0a62 (2024-03-22): 在 SSL 证书信息显示中添加 notBefore 和 notAfter
  • d20d8fbd (2024-03-22): 默认不输出节点序列化中实际的 location 字段值
  • 6ae701b4 (2024-03-22): pg_replication_slots 中跟踪 invalidation_reason。
  • b4080fa3 (2024-03-22): 使 RangeTblEntry 的转储顺序一致
  • 367c989c (2024-03-22): 移除自定义 _jumbleRangeTblEntry()
  • 7e65ad19 (2024-03-21): 修复在使用 --no-role-passwords 时转储角色注释 向后移植到 ~ 12 版本
  • 485f0aa8 (2024-03-21): 为 contrib/ltree 添加哈希支持函数和哈希操作类。
  • 0997e0af (2024-03-21): 添加 TupleTableSlotOps.is_current_xact_tuple() 方法
  • c35a3fb5 (2024-03-21): 允许表 AM 的 tuple_insert() 方法返回不同的 slot
  • 02eb07ea (2024-03-21): 允许表 AM 在 rd_amcache 中存储复杂数据结构
  • adcdb2c8 (2024-03-21): 明确要求 SCRAM 交换时需要密码
  • 24178e23 (2024-03-21): 重构 SASL 交换以返回三态状态
  • 6185c973 (2024-03-21): 添加 SQL/JSON 查询函数
  • a145f424 (2024-03-21): 允许通过 pg_basebackup 的 -R 选项将 dbname 作为 connstring 的一部分写入。
  • 30e14428 (2024-03-21): 添加 TIDStore,用于高效存储 TID (ItemPointerData) 集合。
  • 995e0fbc (2024-03-20): 修复 genbki.pl 的错误报告功能。
  • 1218ca99 (2024-03-20): 添加 to_regtypemod 函数,用于从字符串类型名称中提取 typemod。
  • 80686761 (2024-03-20): 避免在 MaybeRemoveOldWalSummaries() 中发生溢出。
  • 9acae56c (2024-03-20): 内联基本 UTF-8 函数。
  • da952b41 (2024-03-20): 重构 lwlocknames.txt 以成为 lwlocklist.h
  • e5da0fe3 (2024-03-20): 目录域非空约束
  • c9c260de (2024-03-20): 移除未使用的 PruneState 成员 rel
  • 522ed12f (2024-03-20): pg_dump 的选项中添加 "--exclude-extension"。
  • f69319f2 (2024-03-19): 在新的内置排序提供程序中支持 C.UTF-8 区域设置。
  • fd0398fc (2024-03-19): 改进 EXPLAIN 对 SubPlan 节点和输出参数的显示。
  • b7e2121a (2024-03-19): 将路径的重新参数化推迟到 create_plan()。
  • 347758b1 (2024-03-19): pg_upgrade:为每个连接运行所有数据类型检查
  • 794f10f6 (2024-03-19): 添加一些 UUID 支持函数
  • 0960ae19 (2024-03-18): 修复 EXPLAIN Bitmap heap scan 以计算没有可见元组的页面 向后移植到 ~ 12 版本
  • 05c3980e (2024-03-18): 将后端启动代码移到单独的文件
  • aafc05de (2024-03-18): 重构 postmaster 子进程启动
  • f1baed18 (2024-03-18): 将 postmaster.c 中的一些函数移到一个新的源文件中

请注意,提交按其在提交日志中的出现顺序显示,这可能不反映单个提交的创建日期。

请参阅 PostgreSQL GIT 提交日志 查看完整的提交列表。

新 PgPedia 条目

已添加以下新条目

已添加了指向外部文章的链接

最后...

如果有什么遗漏,或者您有一些(建设性的)想法,请留下您的反馈和/或买杯咖啡