跳转到主要内容

THE POSTGRESQL CATALOG ATLAS

开放数据,可追溯的历史

从官方材料到版本矩阵,每一次转换都有据可查。

获取结构化数据

本站的所有交互都来自本地 JSON 数据。你可以直接下载完整数据集,独立分析、生成迁移检查,或者构建其他工具。

数据 内容
完整 catalog.json 所有版本、目录、字段、说明与相邻版本差异
字段明细 catalog.csv 适合表格工具与 SQL 分析的长表
相邻版本差异 changes.json 逐个大版本的目录、字段与类型变化
来源清单 source-manifest.json 下载来源与内容校验信息
数据结构 schema.json 机器可读数据结构定义
校准报告 calibration.json 实际运行时核对与逐字段校正记录
源码覆盖 source-inventory.json 17 个准确发布版本的完整目录清单
通用系统列 system-columns.csv xmin、ctid 等系统属性,单独导出
核验报告 audit.json 采集与数据一致性检查结果

JSON 中的 versions 按时间升序排列。每个 relations 条目包含目录名称、类别、收录边界、按版本组织的字段定义,以及相邻版本的变更记录。

{
  "name": "pg_class",
  "kind": "catalog",
  "first_version": "9.0",
  "last_version": "19",
  "versions": {
    "18": {
      "description": "...",
      "source_url": "https://www.postgresql.org/docs/18/catalog-pg-class.html",
      "columns": [{"name": "relname", "type": "name", "description": "..."}]
    }
  },
  "changes": []
}

每个版本提供独立 JSON 和 CSV,例如 PostgreSQL 9.0 JSON9.0 CSV18 JSON18 CSV19 预发布 JSON。每个关系也有独立数据,如 pg_class.json

收录范围

覆盖 17 个 PostgreSQL 大版本:9.0、9.1、9.2、9.3、9.4、9.5、9.6,以及 10 至 19。其中 18 是当前稳定大版本,19 固定为 beta 3 预发布快照。旧版本沿用对应历史手册与固定源码材料。

关系分为系统目录、系统视图、统计视图与进度报告。通过完整发布源码清单与 17 个准确版本的全新实例交叉核对,涵盖全部核心 pg_catalog 普通目录表与视图。详细统计与逐项校正见覆盖与校准

这里记录的是所选大版本快照之间的结构变化,不等同于所有补丁版本和所有源码提交的完整事件日志,也不覆盖每个扩展自建的系统表。

历史格式与补充字段

早期系统目录的 OID 列有时属于隐式系统列,在源码中存在、但不随 SELECT * 展开。本站保留这些列并标记“隐式列”,避免将显式字段与隐式列混为一谈。官方手册中 stakindN 一类分组记法也需要按源码展开到实际字段;字段旁保留原始文档分组与补充说明。

9.0 与 9.1 的统计视图文档部分只给出概述,字段结构以对应版本的 SQL 定义为准。需要借用后续文档解释时,description_source 会单独记录说明来源;这不会改变该字段结构所属的版本。详情页提供官方手册与可用的源码定义链接。

如何判定变化

  • 目录新增或移除:关系在前后两个版本中的存在状态不同。
  • 字段新增或移除:按字段名称对齐,对比两端的列集合。
  • 类型变化:同名字段的规范化类型不同。
  • 属性与顺序变化:记录隐式列与常规列之间的转换、可空性、类型修饰符、数组维数,以及共同字段的相对顺序改变。
  • 描述更新:同名字段或目录说明文字改变;单独记录,不默认计入结构变化。
  • 字段重命名:呈现为旧字段移除和新字段新增,不自动猜测重命名关系。

主页矩阵用绿色表示存在,用金色表示相邻版本中新增或发生字段结构变化。关系详情的字段矩阵另外显示字段移除。悬停在矩阵格上可以查看该版本对应的类型,点击后进入该版本的字段说明。

9.0 是收录基线。 “首次收录 9.0”表示在本项目最早的快照中已存在,不代表该关系或字段在 PostgreSQL 9.0 中首次引入。19 固定为 REL_19_BETA3 的预发布快照,不能当作已经发布的稳定结构。

来源、归档与复现

上游 PG Catalog Almanac 的完整源代码、原始 JSON、部署资源与 155 个网页路由已保存在 sources/almanac/。其中 site/offline.html 是可独立运行的原网站离线入口;原始 HTML、JavaScript、CSS 同时按原样保存。

扩展数据从 PostgreSQL 官方版本文档和对应源码中提取,原始材料保存于 sources/postgresql/。解析后的 JSON 生成 Hugo 所需的数据镜像与每个关系的静态页面,再通过 Oink 1.0.0 主题构建。本项目保存下载清单和校验信息,便于追溯来源和离线复现。

原始资料遵循各自的 PostgreSQL 或 MIT 许可证,版权与许可文本保留在源文件旁。关于项目的来由与鸣谢,请参阅关于本站

实测校准

所有字段结构均与相应发布版本的全新实例逐项核对。修复了 9.1 用户视图遗漏的 userepl、10–12 的 pg_policies.permissive 文档名称错误,以及旧版 pg_stats_ext、复制视图等记录的错误类型。文档原写法保留于 documented_type / documented_name;校正引用时保留 documented_references

字段记录还包含 attnumtype_oidnot_nulltype_modifierarray_dimensions。每个目录表的 system_columns 单独保存六个通用系统属性,既保留完整实测结果,又不把它们混入普通字段矩阵。每份快照的 runtime_validation 给出准确小版本、源码标签和原始实测文件的 SHA-256。