{"Entry":{"collection":"sqlstate","key":"72000","name":"72000","aliases":[],"metadata":{"aliases":[],"case_count":0,"class_code":"72","condition_name":"snapshot_too_old","condition_names":["snapshot_too_old"],"content_hash":"3c79c20f56c44cd12b935b4130241f7409a74da14a237c749edd176cd0fd8ef0","depth":"full","editorial_review":"reviewed","evidence_tier":"source_path_confirmed","imported_at":"2026-09-30T17:45:27.962861+08:00","introduced":null,"known_present_by":"9.6.0","macros":["ERRCODE_SNAPSHOT_TOO_OLD"],"name_zh":"","present_in":["9.6","10","11","12","13","14","15","16"],"preview_in":[],"primary_macro":"ERRCODE_SNAPSHOT_TOO_OLD","removed":null,"runtime_verification":"not_run","severity_classes":["E"],"snippet_count":0,"source_rev":"english-manuals:63d701e90ea317bcc80ade81930daed5f8330c89beed576a3950dc55d865222d","sqlstate":"72000","status":"removed","summary_zh":"快照过旧无法读取该行，PG 17 已移除此码。"}},"Definition":{"Collection":"sqlstate","Key":"72000","SourceDatabase":"center","Version":"16","SourceTable":"sqlstate","SourceKey":"72000","SourceRevision":"english-manuals:63d701e90ea317bcc80ade81930daed5f8330c89beed576a3950dc55d865222d","Facts":{"aliases":[],"class_name":"Snapshot Failure","condition_name":"snapshot_too_old","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"928e705933d7c3d018ae3fba9d800b34e6325746d157339dce878473c519d100","slug":"16"},"lang":"en","sqlstate":"72000"},"ManualEvidence":{"doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"928e705933d7c3d018ae3fba9d800b34e6325746d157339dce878473c519d100","slug":"16"}},"MeasuredEvidence":{}},"Text":{"Collection":"sqlstate","Key":"72000","SourceDatabase":"center","Version":"","Locale":"zh-Hans","Title":"72000 — snapshot_too_old","Summary":"快照过旧无法读取该行，PG 17 已移除此码。","BodyHTML":"\u003ch1\u003e72000\u003c/h1\u003e\n\u003ch2\u003e速览 {#at-a-glance}\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e72000\u003c/code\u003e 是历史 \u003ccode\u003esnapshot_too_old\u003c/code\u003e 错误。PostgreSQL 16.15 仍定义并发出它；该 SQLSTATE 在 PostgreSQL 17 大版本移除。因此 16.15 是最后一个大版本线中的后续小版本快照，不是移除点。\u003c/p\u003e\n\u003ch2\u003e含义 {#meaning}\u003c/h2\u003e\n\u003cp\u003e固定的 16.15 源码中，\u003ccode\u003eold_snapshot_threshold\u003c/code\u003e 是 \u003ccode\u003ePGC_POSTMASTER\u003c/code\u003e 整数 GUC，\u003ccode\u003e-1\u003c/code\u003e 关闭功能。\u003ccode\u003eTestForOldSnapshot\u003c/code\u003e 内联 guard 要求阈值非负、快照为 MVCC 或 TOAST 且 LSN 有效，并且页面 LSN 晚于快照；随后调用 \u003ccode\u003eTestForOldSnapshot_impl\u003c/code\u003e，它还要求关系是允许提前清理的永久、非系统目录关系，并比较 \u003ccode\u003esnapshot.whenTaken\u003c/code\u003e 与 \u003ccode\u003eGetOldSnapshotThresholdTimestamp()\u003c/code\u003e。快照太旧时发出 \u003cstrong\u003eERROR\u003c/strong\u003e \u003ccode\u003e72000\u003c/code\u003e，主消息为 \u003ccode\u003esnapshot too old\u003c/code\u003e。\u003c/p\u003e\n\u003cp\u003e阈值时间戳由旧快照的时间到 XID 映射维护，供提前清理和 vacuum 使用。PG16.15 文档说明阈值之前已死数据可以被 vacuum，读取在快照建立后修改过的页面可能失败；物化游标或系统目录可能不触发错误。为检测条件而保留的关系空间不会直接归还 OS，除非显式执行 \u003ccode\u003eVACUUM FULL\u003c/code\u003e 等操作。\u003c/p\u003e\n\u003ch2\u003e消息 {#messages}\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eERROR\u003c/strong\u003e，SQLSTATE \u003ccode\u003e72000\u003c/code\u003e：\u003ccode\u003esnapshot too old\u003c/code\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e锁定目录在 PG17/18 没有当前定义行。不要推断替代 SQLSTATE，也不要把无关的当前错误声称为等价物。\u003c/p\u003e\n\u003ch2\u003e诊断 {#diagnosis}\u003c/h2\u003e\n\u003cp\u003e在 PostgreSQL 9.6–16 上记录大版本、\u003ccode\u003eSHOW old_snapshot_threshold\u003c/code\u003e、事务快照年龄、关系类型、页面读取路径以及 vacuum/提前清理历史。检查关系是否被 guard 排除（例如系统目录）、读取是否使用物化游标或结果集，以及设置是否在服务器启动时生效。源码核验不能建立实际集群的阈值或清理历史。\u003c/p\u003e\n\u003ch2\u003e处理 {#response}\u003c/h2\u003e\n\u003cp\u003e这是语句级 \u003ccode\u003eERROR\u003c/code\u003e；显式事务中继续发 SQL 前先回滚整个事务，或回到已经建立的保存点。旧快照无法原地修复：结束或缩短长期读取事务，按历史大版本设置合适的启动配置（GUC 为 \u003ccode\u003ePGC_POSTMASTER\u003c/code\u003e，修改需重启），再以幂等边界重跑整个读取单元。PG17 及以后应先确认当前错误和机制，不要仅凭历史名称安装 \u003ccode\u003e72000\u003c/code\u003e handler。\u003c/p\u003e\n\u003ch2\u003e版本 {#versions}\u003c/h2\u003e\n\u003cp\u003e锁定定义文件记录 \u003ccode\u003e72000\u003c/code\u003e 从 9.6.0 到 16.15，PG17/18 无定义。16.15 源码提供 GUC 与 guard；固定缓冲区管理器发出路径来自 commit \u003ccode\u003e7d3e000c5961a544302072058a1184e9a588837b\u003c/code\u003e。目录边界说明它在 PG17 大版本线移除，而不是在 16.15 小版本移除。\u003c/p\u003e\n\u003ch2\u003e相关 {#related}\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/wiki/sqlstate/40001/\" rel=\"nofollow\"\u003e\u003ccode\u003e40001\u003c/code\u003e\u003c/a\u003e、\u003ca href=\"/wiki/sqlstate/XX001/\" rel=\"nofollow\"\u003e\u003ccode\u003eXX001\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e来源 {#sources}\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/postgres/postgres/blob/7d3e000c5961a544302072058a1184e9a588837b/src/backend/storage/buffer/bufmgr.c#L5663\" rel=\"nofollow\"\u003e\u003ccode\u003esrc/backend/storage/buffer/bufmgr.c#L5663-L5675\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/postgres/postgres/blob/7d3e000c5961a544302072058a1184e9a588837b/src/include/storage/bufmgr.h#L363\" rel=\"nofollow\"\u003e\u003ccode\u003esrc/include/storage/bufmgr.h#L363-L392\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/postgres/postgres/blob/7d3e000c5961a544302072058a1184e9a588837b/src/backend/utils/time/snapmgr.c#L1697\" rel=\"nofollow\"\u003e\u003ccode\u003esrc/backend/utils/time/snapmgr.c#L1697-L1714\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/postgres/postgres/blob/7d3e000c5961a544302072058a1184e9a588837b/src/backend/utils/misc/guc_tables.c#L3295\" rel=\"nofollow\"\u003e\u003ccode\u003esrc/backend/utils/misc/guc_tables.c#L3295-L3302\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/postgres/postgres/blob/7d3e000c5961a544302072058a1184e9a588837b/doc/src/sgml/config.sgml#L2827\" rel=\"nofollow\"\u003e\u003ccode\u003edoc/src/sgml/config.sgml#L2827-L2884\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e结构化\u003ca href=\"#sources\" rel=\"nofollow\"\u003e证据记录\u003c/a\u003e保存历史定义、guard、GUC、文档和源码/运行边界。\u003c/p\u003e\n","SourceRevision":"english-manuals:63d701e90ea317bcc80ade81930daed5f8330c89beed576a3950dc55d865222d","ContentHash":"68fa9f897044e5c00e9da494f131d9bc4e284c34c91cb908c8465611f8e92ea4","Payload":{"body_md":"# 72000\n\n## 速览 {#at-a-glance}\n\n`72000` 是历史 `snapshot_too_old` 错误。PostgreSQL 16.15 仍定义并发出它；该 SQLSTATE 在 PostgreSQL 17 大版本移除。因此 16.15 是最后一个大版本线中的后续小版本快照，不是移除点。\n\n\n## 含义 {#meaning}\n\n固定的 16.15 源码中，`old_snapshot_threshold` 是 `PGC_POSTMASTER` 整数 GUC，`-1` 关闭功能。`TestForOldSnapshot` 内联 guard 要求阈值非负、快照为 MVCC 或 TOAST 且 LSN 有效，并且页面 LSN 晚于快照；随后调用 `TestForOldSnapshot_impl`，它还要求关系是允许提前清理的永久、非系统目录关系，并比较 `snapshot.whenTaken` 与 `GetOldSnapshotThresholdTimestamp()`。快照太旧时发出 **ERROR** `72000`，主消息为 `snapshot too old`。\n\n阈值时间戳由旧快照的时间到 XID 映射维护，供提前清理和 vacuum 使用。PG16.15 文档说明阈值之前已死数据可以被 vacuum，读取在快照建立后修改过的页面可能失败；物化游标或系统目录可能不触发错误。为检测条件而保留的关系空间不会直接归还 OS，除非显式执行 `VACUUM FULL` 等操作。\n\n## 消息 {#messages}\n\n- **ERROR**，SQLSTATE `72000`：`snapshot too old`。\n\n锁定目录在 PG17/18 没有当前定义行。不要推断替代 SQLSTATE，也不要把无关的当前错误声称为等价物。\n\n## 诊断 {#diagnosis}\n\n在 PostgreSQL 9.6–16 上记录大版本、`SHOW old_snapshot_threshold`、事务快照年龄、关系类型、页面读取路径以及 vacuum/提前清理历史。检查关系是否被 guard 排除（例如系统目录）、读取是否使用物化游标或结果集，以及设置是否在服务器启动时生效。源码核验不能建立实际集群的阈值或清理历史。\n\n## 处理 {#response}\n\n这是语句级 `ERROR`；显式事务中继续发 SQL 前先回滚整个事务，或回到已经建立的保存点。旧快照无法原地修复：结束或缩短长期读取事务，按历史大版本设置合适的启动配置（GUC 为 `PGC_POSTMASTER`，修改需重启），再以幂等边界重跑整个读取单元。PG17 及以后应先确认当前错误和机制，不要仅凭历史名称安装 `72000` handler。\n\n## 版本 {#versions}\n\n锁定定义文件记录 `72000` 从 9.6.0 到 16.15，PG17/18 无定义。16.15 源码提供 GUC 与 guard；固定缓冲区管理器发出路径来自 commit `7d3e000c5961a544302072058a1184e9a588837b`。目录边界说明它在 PG17 大版本线移除，而不是在 16.15 小版本移除。\n\n## 相关 {#related}\n\n[`40001`](/wiki/sqlstate/40001/)、[`XX001`](/wiki/sqlstate/XX001/)\n\n## 来源 {#sources}\n\n[`src/backend/storage/buffer/bufmgr.c#L5663-L5675`](https://github.com/postgres/postgres/blob/7d3e000c5961a544302072058a1184e9a588837b/src/backend/storage/buffer/bufmgr.c#L5663)\n\n[`src/include/storage/bufmgr.h#L363-L392`](https://github.com/postgres/postgres/blob/7d3e000c5961a544302072058a1184e9a588837b/src/include/storage/bufmgr.h#L363)\n\n[`src/backend/utils/time/snapmgr.c#L1697-L1714`](https://github.com/postgres/postgres/blob/7d3e000c5961a544302072058a1184e9a588837b/src/backend/utils/time/snapmgr.c#L1697)\n\n[`src/backend/utils/misc/guc_tables.c#L3295-L3302`](https://github.com/postgres/postgres/blob/7d3e000c5961a544302072058a1184e9a588837b/src/backend/utils/misc/guc_tables.c#L3295)\n\n[`doc/src/sgml/config.sgml#L2827-L2884`](https://github.com/postgres/postgres/blob/7d3e000c5961a544302072058a1184e9a588837b/doc/src/sgml/config.sgml#L2827)\n\n结构化[证据记录](#sources)保存历史定义、guard、GUC、文档和源码/运行边界。\n","description":"PostgreSQL SQLSTATE 72000 的历史源码核验与诊断参考。","is_stale":false,"name":"","sections":[{"anchor":"","heading":"","html":"\u0026lt;h1\u0026gt;72000\u0026lt;/h1\u0026gt;"},{"anchor":"at-a-glance","heading":"速览","html":"\u003cp\u003e\u003ccode\u003e72000\u003c/code\u003e 是历史 \u003ccode\u003esnapshot_too_old\u003c/code\u003e 错误。PostgreSQL 16.15 仍定义并发出它；该 SQLSTATE 在 PostgreSQL 17 大版本移除。因此 16.15 是最后一个大版本线中的后续小版本快照，不是移除点。\u003c/p\u003e"},{"anchor":"meaning","heading":"含义","html":"\u003cp\u003e固定的 16.15 源码中，\u003ccode\u003eold_snapshot_threshold\u003c/code\u003e 是 \u003ccode\u003ePGC_POSTMASTER\u003c/code\u003e 整数 GUC，\u003ccode\u003e-1\u003c/code\u003e 关闭功能。\u003ccode\u003eTestForOldSnapshot\u003c/code\u003e 内联 guard 要求阈值非负、快照为 MVCC 或 TOAST 且 LSN 有效，并且页面 LSN 晚于快照；随后调用 \u003ccode\u003eTestForOldSnapshot_impl\u003c/code\u003e，它还要求关系是允许提前清理的永久、非系统目录关系，并比较 \u003ccode\u003esnapshot.whenTaken\u003c/code\u003e 与 \u003ccode\u003eGetOldSnapshotThresholdTimestamp()\u003c/code\u003e。快照太旧时发出 \u003cstrong\u003eERROR\u003c/strong\u003e \u003ccode\u003e72000\u003c/code\u003e，主消息为 \u003ccode\u003esnapshot too old\u003c/code\u003e。\u003c/p\u003e\n\u003cp\u003e阈值时间戳由旧快照的时间到 XID 映射维护，供提前清理和 vacuum 使用。PG16.15 文档说明阈值之前已死数据可以被 vacuum，读取在快照建立后修改过的页面可能失败；物化游标或系统目录可能不触发错误。为检测条件而保留的关系空间不会直接归还 OS，除非显式执行 \u003ccode\u003eVACUUM FULL\u003c/code\u003e 等操作。\u003c/p\u003e"},{"anchor":"messages","heading":"消息","html":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eERROR\u003c/strong\u003e，SQLSTATE \u003ccode\u003e72000\u003c/code\u003e：\u003ccode\u003esnapshot too old\u003c/code\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e锁定目录在 PG17/18 没有当前定义行。不要推断替代 SQLSTATE，也不要把无关的当前错误声称为等价物。\u003c/p\u003e"},{"anchor":"diagnosis","heading":"诊断","html":"\u003cp\u003e在 PostgreSQL 9.6–16 上记录大版本、\u003ccode\u003eSHOW old_snapshot_threshold\u003c/code\u003e、事务快照年龄、关系类型、页面读取路径以及 vacuum/提前清理历史。检查关系是否被 guard 排除（例如系统目录）、读取是否使用物化游标或结果集，以及设置是否在服务器启动时生效。源码核验不能建立实际集群的阈值或清理历史。\u003c/p\u003e"},{"anchor":"response","heading":"处理","html":"\u003cp\u003e这是语句级 \u003ccode\u003eERROR\u003c/code\u003e；显式事务中继续发 SQL 前先回滚整个事务，或回到已经建立的保存点。旧快照无法原地修复：结束或缩短长期读取事务，按历史大版本设置合适的启动配置（GUC 为 \u003ccode\u003ePGC_POSTMASTER\u003c/code\u003e，修改需重启），再以幂等边界重跑整个读取单元。PG17 及以后应先确认当前错误和机制，不要仅凭历史名称安装 \u003ccode\u003e72000\u003c/code\u003e handler。\u003c/p\u003e"},{"anchor":"versions","heading":"版本","html":"\u003cp\u003e锁定定义文件记录 \u003ccode\u003e72000\u003c/code\u003e 从 9.6.0 到 16.15，PG17/18 无定义。16.15 源码提供 GUC 与 guard；固定缓冲区管理器发出路径来自 commit \u003ccode\u003e7d3e000c5961a544302072058a1184e9a588837b\u003c/code\u003e。目录边界说明它在 PG17 大版本线移除，而不是在 16.15 小版本移除。\u003c/p\u003e"},{"anchor":"related","heading":"相关","html":"\u003cp\u003e\u003ca href=\"/wiki/sqlstate/40001/\"\u003e\u003ccode\u003e40001\u003c/code\u003e\u003c/a\u003e、\u003ca href=\"/wiki/sqlstate/XX001/\"\u003e\u003ccode\u003eXX001\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e"},{"anchor":"sources","heading":"来源","html":"\u003cp\u003e\u003ca href=\"https://github.com/postgres/postgres/blob/7d3e000c5961a544302072058a1184e9a588837b/src/backend/storage/buffer/bufmgr.c#L5663\"\u003e\u003ccode\u003esrc/backend/storage/buffer/bufmgr.c#L5663-L5675\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/postgres/postgres/blob/7d3e000c5961a544302072058a1184e9a588837b/src/include/storage/bufmgr.h#L363\"\u003e\u003ccode\u003esrc/include/storage/bufmgr.h#L363-L392\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/postgres/postgres/blob/7d3e000c5961a544302072058a1184e9a588837b/src/backend/utils/time/snapmgr.c#L1697\"\u003e\u003ccode\u003esrc/backend/utils/time/snapmgr.c#L1697-L1714\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/postgres/postgres/blob/7d3e000c5961a544302072058a1184e9a588837b/src/backend/utils/misc/guc_tables.c#L3295\"\u003e\u003ccode\u003esrc/backend/utils/misc/guc_tables.c#L3295-L3302\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/postgres/postgres/blob/7d3e000c5961a544302072058a1184e9a588837b/doc/src/sgml/config.sgml#L2827\"\u003e\u003ccode\u003edoc/src/sgml/config.sgml#L2827-L2884\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e结构化\u003ca href=\"#sources\"\u003e证据记录\u003c/a\u003e保存历史定义、guard、GUC、文档和源码/运行边界。\u003c/p\u003e"}],"summary":"快照过旧无法读取该行，PG 17 已移除此码。","title":"72000 — snapshot_too_old","translation_source_rev":"e28c674f37c7af5a2f81b65462a2ea0607e599c86cbee287529635151dfb6b1c"}},"RequestedLocale":"zh-Hans","Fallback":false,"Versions":["10","11","12","13","14","15","16","9.6"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":{"aliases":[],"catalogue_notes":{"earliest_observed":"9.6.0","formal_scope":"9.0.0..18.6","latest_observed":"16.15","matrix_scope":["9.0.23","9.1.24","9.2.24","9.3.25","9.4.26","9.5.25","9.6.24","10.23","11.22","12.22","13.23","14.24","15.19","16.15","17.11","18.6"],"pre9_scope":{"formal_tag_count":191,"maximum_release":"8.4.22","minimum_release":"7.0.0","source_definition_count":153,"source_doc_count":153,"source_file_count":306,"source_scope":"7.4..8.4 definition files; 7.0..7.3 candidate-path source gap probes","source_tag_count":153},"pre9_status":"not_observed","preview_scope":[]},"class":"72","class_name":"Snapshot Failure","condition_name":"snapshot_too_old","condition_names":["snapshot_too_old"],"definition_changes":[],"english_manuals":{"10":{"aliases":[],"class_name":"Snapshot Failure","condition_name":"snapshot_too_old","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"9607b57e9f639b61785677ba4d226f5889fe1d19c8bf55a3337691899a9073cd","slug":"10"},"lang":"en","sqlstate":"72000"},"11":{"aliases":[],"class_name":"Snapshot Failure","condition_name":"snapshot_too_old","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"3a024e38263ad77de228eed7930b842b42dc1d5cab9ca3727be8eed872ec9539","slug":"11"},"lang":"en","sqlstate":"72000"},"12":{"aliases":[],"class_name":"Snapshot Failure","condition_name":"snapshot_too_old","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"1444bd6a138537cd75be88a220ee9472ac528f0cfc58758e49636d85455efe98","slug":"12"},"lang":"en","sqlstate":"72000"},"13":{"aliases":[],"class_name":"Snapshot Failure","condition_name":"snapshot_too_old","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"4a3ef8af218e5736dfde8660ba609e84233b6b3bac7e0210ff8724cf1b27b2db","slug":"13"},"lang":"en","sqlstate":"72000"},"14":{"aliases":[],"class_name":"Snapshot Failure","condition_name":"snapshot_too_old","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"1c12e83304e0f4ff64c9d98ca5e3007df6756932ed19867a4fa0e0650f6c5751","slug":"14"},"lang":"en","sqlstate":"72000"},"15":{"aliases":[],"class_name":"Snapshot Failure","condition_name":"snapshot_too_old","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"2161f58f6e87f6535b3b1f3d4661427bb6765f4f6b074fcc16fac97594b50599","slug":"15"},"lang":"en","sqlstate":"72000"},"16":{"aliases":[],"class_name":"Snapshot Failure","condition_name":"snapshot_too_old","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"928e705933d7c3d018ae3fba9d800b34e6325746d157339dce878473c519d100","slug":"16"},"lang":"en","sqlstate":"72000"},"9.6":{"aliases":[],"class_name":"Snapshot Failure","condition_name":"snapshot_too_old","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"2ab55e487571c8998ec39b3d1bbae29ac6fc5c310875bee422d9a7b8b3fde5b3","slug":"9.6"},"lang":"en","sqlstate":"72000"}},"history_boundary":{"earliest_observed":"9.6.0","formal_tag_count":351,"gaps":[],"latest_observed":"16.15","pre_range":{"first_observed":null,"known_lower_bound":null,"last_observed":null,"notes":"No occurrence was observed in the locked 7.4..8.4 definition files. Source gaps for 7.0..7.3 prevent a claim that the code was absent before 7.4.","scanned_formal_release_count":153,"scanned_source_scope":"7.4..8.4 definition files; 7.0..7.3 candidate-path source gap probes","source_gap_majors":["7.0","7.1","7.2","7.3"],"status":"partially_scanned"},"preview_snapshots":["19beta3"],"scanned_from":"9.0.0","scanned_to":"18.6"},"introduced":null,"known_present_by":"9.6.0","macros":["ERRCODE_SNAPSHOT_TOO_OLD"],"manual_presence":["9.6","10","11","12","13","14","15","16"],"pre9_first_observed":null,"pre9_introduction_boundary":null,"pre9_last_observed":null,"pre9_presence_intervals":[],"pre9_status":"not_observed","presence_intervals":[{"end":"9.6.24","end_major":"9.6","end_tag":"REL9_6_24","evidence_count":25,"position":0,"start":"9.6.0","start_major":"9.6","start_tag":"REL9_6_0"},{"end":"10.23","end_major":"10","end_tag":"REL_10_23","evidence_count":24,"position":1,"start":"10.0","start_major":"10","start_tag":"REL_10_0"},{"end":"11.22","end_major":"11","end_tag":"REL_11_22","evidence_count":23,"position":2,"start":"11.0","start_major":"11","start_tag":"REL_11_0"},{"end":"12.22","end_major":"12","end_tag":"REL_12_22","evidence_count":23,"position":3,"start":"12.0","start_major":"12","start_tag":"REL_12_0"},{"end":"13.23","end_major":"13","end_tag":"REL_13_23","evidence_count":24,"position":4,"start":"13.0","start_major":"13","start_tag":"REL_13_0"},{"end":"14.24","end_major":"14","end_tag":"REL_14_24","evidence_count":25,"position":5,"start":"14.0","start_major":"14","start_tag":"REL_14_0"},{"end":"15.19","end_major":"15","end_tag":"REL_15_19","evidence_count":20,"position":6,"start":"15.0","start_major":"15","start_tag":"REL_15_0"},{"end":"16.15","end_major":"16","end_tag":"REL_16_15","evidence_count":16,"position":7,"start":"16.0","start_major":"16","start_tag":"REL_16_0"}],"present_in_snapshots":["9.6.24","10.23","11.22","12.22","13.23","14.24","15.19","16.15"],"preview_in_snapshots":[],"primary_macro":"ERRCODE_SNAPSHOT_TOO_OLD","removed":null,"schema_version":2,"severity_classes":["E"],"sources":[{"blob_id":"sha256:bf4d94d84c7cfe695cb80e8f009872444574719a80a72e347eb66ef3686b86ef","channel":"formal","code_count":238,"commit":"a721a1ba9cf6c86cb52f1bf325d5a27b64e870d6","id":"postgresql:REL9_6_0:src/backend/utils/errcodes.txt","major":"9.6","parsed_path":"raw/definitions/REL9_6_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL9_6_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/a721a1ba9cf6c86cb52f1bf325d5a27b64e870d6/src/backend/utils/errcodes.txt","record_count":244,"release":"9.6.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"bf4d94d84c7cfe695cb80e8f009872444574719a80a72e347eb66ef3686b86ef","size":31135,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL9_6_0","url":"https://github.com/postgres/postgres/blob/a721a1ba9cf6c86cb52f1bf325d5a27b64e870d6/src/backend/utils/errcodes.txt","version":"9.6.0"},{"blob_id":"sha256:e5d829b24fe63aa69429fa1deb9675051fc8ffd4a8a4651861907a8f12ccb144","channel":"formal","code_count":240,"commit":"5df0e99bea1c3e5fbffa7fbd0982da88ea149bb6","id":"postgresql:REL_10_0:src/backend/utils/errcodes.txt","major":"10","parsed_path":"raw/definitions/REL_10_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_10_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/5df0e99bea1c3e5fbffa7fbd0982da88ea149bb6/src/backend/utils/errcodes.txt","record_count":246,"release":"10.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"e5d829b24fe63aa69429fa1deb9675051fc8ffd4a8a4651861907a8f12ccb144","size":31340,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_10_0","url":"https://github.com/postgres/postgres/blob/5df0e99bea1c3e5fbffa7fbd0982da88ea149bb6/src/backend/utils/errcodes.txt","version":"10.0"},{"blob_id":"sha256:8518be6de92ae135765e295c631c5f525120ca2b132453404b620f9aa595cab4","channel":"formal","code_count":241,"commit":"19f20081df059fef87e14c8e953669bd173dd7f1","id":"postgresql:REL_11_0:src/backend/utils/errcodes.txt","major":"11","parsed_path":"raw/definitions/REL_11_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_11_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/19f20081df059fef87e14c8e953669bd173dd7f1/src/backend/utils/errcodes.txt","record_count":247,"release":"11.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"8518be6de92ae135765e295c631c5f525120ca2b132453404b620f9aa595cab4","size":31453,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_11_0","url":"https://github.com/postgres/postgres/blob/19f20081df059fef87e14c8e953669bd173dd7f1/src/backend/utils/errcodes.txt","version":"11.0"},{"blob_id":"sha256:943259f3e36af1343dd0f090f7c7cec0e8c762b038d68c178aaa9b1b11999bfb","channel":"formal","code_count":257,"commit":"ad1f2885b8c82e0c2d56d7974f012cbecce17a17","id":"postgresql:REL_12_0:src/backend/utils/errcodes.txt","major":"12","parsed_path":"raw/definitions/REL_12_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_12_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/ad1f2885b8c82e0c2d56d7974f012cbecce17a17/src/backend/utils/errcodes.txt","record_count":263,"release":"12.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"943259f3e36af1343dd0f090f7c7cec0e8c762b038d68c178aaa9b1b11999bfb","size":33114,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_12_0","url":"https://github.com/postgres/postgres/blob/ad1f2885b8c82e0c2d56d7974f012cbecce17a17/src/backend/utils/errcodes.txt","version":"12.0"},{"blob_id":"sha256:9a464a3c3c99d2488782d4cdd0d46ce261085a944cb0c21e2d884586fbc8204d","channel":"formal","code_count":258,"commit":"29be9983a64c011eac0b9ee29895cce71e15ea77","id":"postgresql:REL_13_0:src/backend/utils/errcodes.txt","major":"13","parsed_path":"raw/definitions/REL_13_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_13_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/29be9983a64c011eac0b9ee29895cce71e15ea77/src/backend/utils/errcodes.txt","record_count":264,"release":"13.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"9a464a3c3c99d2488782d4cdd0d46ce261085a944cb0c21e2d884586fbc8204d","size":33239,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_13_0","url":"https://github.com/postgres/postgres/blob/29be9983a64c011eac0b9ee29895cce71e15ea77/src/backend/utils/errcodes.txt","version":"13.0"},{"blob_id":"sha256:c3c967fa20577f7ded946cb99e1a4706b85bb2476fd32d7e4a133c971a603552","channel":"formal","code_count":259,"commit":"86a4dc1e6f29d1992a2afa3fac1a0b0a6e84568c","id":"postgresql:REL_14_0:src/backend/utils/errcodes.txt","major":"14","parsed_path":"raw/definitions/REL_14_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_14_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/86a4dc1e6f29d1992a2afa3fac1a0b0a6e84568c/src/backend/utils/errcodes.txt","record_count":265,"release":"14.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"c3c967fa20577f7ded946cb99e1a4706b85bb2476fd32d7e4a133c971a603552","size":33337,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_14_0","url":"https://github.com/postgres/postgres/blob/86a4dc1e6f29d1992a2afa3fac1a0b0a6e84568c/src/backend/utils/errcodes.txt","version":"14.0"},{"blob_id":"sha256:a34b5fccd8a27c92817314dd942b79e76896cd1d9a8d4be21c81b02227850b4a","channel":"formal","code_count":260,"commit":"2a7ce2e2ce474504a707ec03e128fde66cfb8b48","id":"postgresql:REL_15_0:src/backend/utils/errcodes.txt","major":"15","parsed_path":"raw/definitions/REL_15_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_15_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/2a7ce2e2ce474504a707ec03e128fde66cfb8b48/src/backend/utils/errcodes.txt","record_count":266,"release":"15.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"a34b5fccd8a27c92817314dd942b79e76896cd1d9a8d4be21c81b02227850b4a","size":33458,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_15_0","url":"https://github.com/postgres/postgres/blob/2a7ce2e2ce474504a707ec03e128fde66cfb8b48/src/backend/utils/errcodes.txt","version":"15.0"},{"blob_id":"sha256:1d1d741b7b7c6dfd8275287e31c79befed75f3b9349e1a42ef0ca147c429ff88","channel":"formal","code_count":260,"commit":"c372fbbd8e911f2412b80a8c39d7079366565d67","id":"postgresql:REL_16_0:src/backend/utils/errcodes.txt","major":"16","parsed_path":"raw/definitions/REL_16_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_16_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/c372fbbd8e911f2412b80a8c39d7079366565d67/src/backend/utils/errcodes.txt","record_count":266,"release":"16.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"1d1d741b7b7c6dfd8275287e31c79befed75f3b9349e1a42ef0ca147c429ff88","size":33458,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_16_0","url":"https://github.com/postgres/postgres/blob/c372fbbd8e911f2412b80a8c39d7079366565d67/src/backend/utils/errcodes.txt","version":"16.0"}],"sqlstate":"72000","status":"removed","usage_evidence":[{"evidence_ids":["postgresql:REL9_6_0:src/backend/utils/errcodes.txt","postgresql:REL9_6_10:src/backend/utils/errcodes.txt","postgresql:REL9_6_11:src/backend/utils/errcodes.txt","postgresql:REL9_6_12:src/backend/utils/errcodes.txt","postgresql:REL9_6_13:src/backend/utils/errcodes.txt","postgresql:REL9_6_14:src/backend/utils/errcodes.txt","postgresql:REL9_6_15:src/backend/utils/errcodes.txt","postgresql:REL9_6_16:src/backend/utils/errcodes.txt","postgresql:REL9_6_17:src/backend/utils/errcodes.txt","postgresql:REL9_6_18:src/backend/utils/errcodes.txt","postgresql:REL9_6_19:src/backend/utils/errcodes.txt","postgresql:REL9_6_1:src/backend/utils/errcodes.txt","postgresql:REL9_6_20:src/backend/utils/errcodes.txt","postgresql:REL9_6_21:src/backend/utils/errcodes.txt","postgresql:REL9_6_22:src/backend/utils/errcodes.txt","postgresql:REL9_6_23:src/backend/utils/errcodes.txt","postgresql:REL9_6_24:src/backend/utils/errcodes.txt","postgresql:REL9_6_2:src/backend/utils/errcodes.txt","postgresql:REL9_6_3:src/backend/utils/errcodes.txt","postgresql:REL9_6_4:src/backend/utils/errcodes.txt","postgresql:REL9_6_5:src/backend/utils/errcodes.txt","postgresql:REL9_6_6:src/backend/utils/errcodes.txt","postgresql:REL9_6_7:src/backend/utils/errcodes.txt","postgresql:REL9_6_8:src/backend/utils/errcodes.txt","postgresql:REL9_6_9:src/backend/utils/errcodes.txt","postgresql:REL_10_0:src/backend/utils/errcodes.txt","postgresql:REL_10_10:src/backend/utils/errcodes.txt","postgresql:REL_10_11:src/backend/utils/errcodes.txt","postgresql:REL_10_12:src/backend/utils/errcodes.txt","postgresql:REL_10_13:src/backend/utils/errcodes.txt","postgresql:REL_10_14:src/backend/utils/errcodes.txt","postgresql:REL_10_15:src/backend/utils/errcodes.txt","postgresql:REL_10_16:src/backend/utils/errcodes.txt","postgresql:REL_10_17:src/backend/utils/errcodes.txt","postgresql:REL_10_18:src/backend/utils/errcodes.txt","postgresql:REL_10_19:src/backend/utils/errcodes.txt","postgresql:REL_10_1:src/backend/utils/errcodes.txt","postgresql:REL_10_20:src/backend/utils/errcodes.txt","postgresql:REL_10_21:src/backend/utils/errcodes.txt","postgresql:REL_10_22:src/backend/utils/errcodes.txt","postgresql:REL_10_23:src/backend/utils/errcodes.txt","postgresql:REL_10_2:src/backend/utils/errcodes.txt","postgresql:REL_10_3:src/backend/utils/errcodes.txt","postgresql:REL_10_4:src/backend/utils/errcodes.txt","postgresql:REL_10_5:src/backend/utils/errcodes.txt","postgresql:REL_10_6:src/backend/utils/errcodes.txt","postgresql:REL_10_7:src/backend/utils/errcodes.txt","postgresql:REL_10_8:src/backend/utils/errcodes.txt","postgresql:REL_10_9:src/backend/utils/errcodes.txt","postgresql:REL_11_0:src/backend/utils/errcodes.txt","postgresql:REL_11_10:src/backend/utils/errcodes.txt","postgresql:REL_11_11:src/backend/utils/errcodes.txt","postgresql:REL_11_12:src/backend/utils/errcodes.txt","postgresql:REL_11_13:src/backend/utils/errcodes.txt","postgresql:REL_11_14:src/backend/utils/errcodes.txt","postgresql:REL_11_15:src/backend/utils/errcodes.txt","postgresql:REL_11_16:src/backend/utils/errcodes.txt","postgresql:REL_11_17:src/backend/utils/errcodes.txt","postgresql:REL_11_18:src/backend/utils/errcodes.txt","postgresql:REL_11_19:src/backend/utils/errcodes.txt","postgresql:REL_11_1:src/backend/utils/errcodes.txt","postgresql:REL_11_20:src/backend/utils/errcodes.txt","postgresql:REL_11_21:src/backend/utils/errcodes.txt","postgresql:REL_11_22:src/backend/utils/errcodes.txt","postgresql:REL_11_2:src/backend/utils/errcodes.txt","postgresql:REL_11_3:src/backend/utils/errcodes.txt","postgresql:REL_11_4:src/backend/utils/errcodes.txt","postgresql:REL_11_5:src/backend/utils/errcodes.txt","postgresql:REL_11_6:src/backend/utils/errcodes.txt","postgresql:REL_11_7:src/backend/utils/errcodes.txt","postgresql:REL_11_8:src/backend/utils/errcodes.txt","postgresql:REL_11_9:src/backend/utils/errcodes.txt","postgresql:REL_12_0:src/backend/utils/errcodes.txt","postgresql:REL_12_10:src/backend/utils/errcodes.txt","postgresql:REL_12_11:src/backend/utils/errcodes.txt","postgresql:REL_12_12:src/backend/utils/errcodes.txt","postgresql:REL_12_13:src/backend/utils/errcodes.txt","postgresql:REL_12_14:src/backend/utils/errcodes.txt","postgresql:REL_12_15:src/backend/utils/errcodes.txt","postgresql:REL_12_16:src/backend/utils/errcodes.txt","postgresql:REL_12_17:src/backend/utils/errcodes.txt","postgresql:REL_12_18:src/backend/utils/errcodes.txt","postgresql:REL_12_19:src/backend/utils/errcodes.txt","postgresql:REL_12_1:src/backend/utils/errcodes.txt","postgresql:REL_12_20:src/backend/utils/errcodes.txt","postgresql:REL_12_21:src/backend/utils/errcodes.txt","postgresql:REL_12_22:src/backend/utils/errcodes.txt","postgresql:REL_12_2:src/backend/utils/errcodes.txt","postgresql:REL_12_3:src/backend/utils/errcodes.txt","postgresql:REL_12_4:src/backend/utils/errcodes.txt","postgresql:REL_12_5:src/backend/utils/errcodes.txt","postgresql:REL_12_6:src/backend/utils/errcodes.txt","postgresql:REL_12_7:src/backend/utils/errcodes.txt","postgresql:REL_12_8:src/backend/utils/errcodes.txt","postgresql:REL_12_9:src/backend/utils/errcodes.txt","postgresql:REL_13_0:src/backend/utils/errcodes.txt","postgresql:REL_13_10:src/backend/utils/errcodes.txt","postgresql:REL_13_11:src/backend/utils/errcodes.txt","postgresql:REL_13_12:src/backend/utils/errcodes.txt","postgresql:REL_13_13:src/backend/utils/errcodes.txt","postgresql:REL_13_14:src/backend/utils/errcodes.txt","postgresql:REL_13_15:src/backend/utils/errcodes.txt","postgresql:REL_13_16:src/backend/utils/errcodes.txt","postgresql:REL_13_17:src/backend/utils/errcodes.txt","postgresql:REL_13_18:src/backend/utils/errcodes.txt","postgresql:REL_13_19:src/backend/utils/errcodes.txt","postgresql:REL_13_1:src/backend/utils/errcodes.txt","postgresql:REL_13_20:src/backend/utils/errcodes.txt","postgresql:REL_13_21:src/backend/utils/errcodes.txt","postgresql:REL_13_22:src/backend/utils/errcodes.txt","postgresql:REL_13_23:src/backend/utils/errcodes.txt","postgresql:REL_13_2:src/backend/utils/errcodes.txt","postgresql:REL_13_3:src/backend/utils/errcodes.txt","postgresql:REL_13_4:src/backend/utils/errcodes.txt","postgresql:REL_13_5:src/backend/utils/errcodes.txt","postgresql:REL_13_6:src/backend/utils/errcodes.txt","postgresql:REL_13_7:src/backend/utils/errcodes.txt","postgresql:REL_13_8:src/backend/utils/errcodes.txt","postgresql:REL_13_9:src/backend/utils/errcodes.txt","postgresql:REL_14_0:src/backend/utils/errcodes.txt","postgresql:REL_14_10:src/backend/utils/errcodes.txt","postgresql:REL_14_11:src/backend/utils/errcodes.txt","postgresql:REL_14_12:src/backend/utils/errcodes.txt","postgresql:REL_14_13:src/backend/utils/errcodes.txt","postgresql:REL_14_14:src/backend/utils/errcodes.txt","postgresql:REL_14_15:src/backend/utils/errcodes.txt","postgresql:REL_14_16:src/backend/utils/errcodes.txt","postgresql:REL_14_17:src/backend/utils/errcodes.txt","postgresql:REL_14_18:src/backend/utils/errcodes.txt","postgresql:REL_14_19:src/backend/utils/errcodes.txt","postgresql:REL_14_1:src/backend/utils/errcodes.txt","postgresql:REL_14_20:src/backend/utils/errcodes.txt","postgresql:REL_14_21:src/backend/utils/errcodes.txt","postgresql:REL_14_22:src/backend/utils/errcodes.txt","postgresql:REL_14_23:src/backend/utils/errcodes.txt","postgresql:REL_14_24:src/backend/utils/errcodes.txt","postgresql:REL_14_2:src/backend/utils/errcodes.txt","postgresql:REL_14_3:src/backend/utils/errcodes.txt","postgresql:REL_14_4:src/backend/utils/errcodes.txt","postgresql:REL_14_5:src/backend/utils/errcodes.txt","postgresql:REL_14_6:src/backend/utils/errcodes.txt","postgresql:REL_14_7:src/backend/utils/errcodes.txt","postgresql:REL_14_8:src/backend/utils/errcodes.txt","postgresql:REL_14_9:src/backend/utils/errcodes.txt","postgresql:REL_15_0:src/backend/utils/errcodes.txt","postgresql:REL_15_10:src/backend/utils/errcodes.txt","postgresql:REL_15_11:src/backend/utils/errcodes.txt","postgresql:REL_15_12:src/backend/utils/errcodes.txt","postgresql:REL_15_13:src/backend/utils/errcodes.txt","postgresql:REL_15_14:src/backend/utils/errcodes.txt","postgresql:REL_15_15:src/backend/utils/errcodes.txt","postgresql:REL_15_16:src/backend/utils/errcodes.txt","postgresql:REL_15_17:src/backend/utils/errcodes.txt","postgresql:REL_15_18:src/backend/utils/errcodes.txt","postgresql:REL_15_19:src/backend/utils/errcodes.txt","postgresql:REL_15_1:src/backend/utils/errcodes.txt","postgresql:REL_15_2:src/backend/utils/errcodes.txt","postgresql:REL_15_3:src/backend/utils/errcodes.txt","postgresql:REL_15_4:src/backend/utils/errcodes.txt","postgresql:REL_15_5:src/backend/utils/errcodes.txt","postgresql:REL_15_6:src/backend/utils/errcodes.txt","postgresql:REL_15_7:src/backend/utils/errcodes.txt","postgresql:REL_15_8:src/backend/utils/errcodes.txt","postgresql:REL_15_9:src/backend/utils/errcodes.txt","postgresql:REL_16_0:src/backend/utils/errcodes.txt","postgresql:REL_16_10:src/backend/utils/errcodes.txt","postgresql:REL_16_11:src/backend/utils/errcodes.txt","postgresql:REL_16_12:src/backend/utils/errcodes.txt","postgresql:REL_16_13:src/backend/utils/errcodes.txt","postgresql:REL_16_14:src/backend/utils/errcodes.txt","postgresql:REL_16_15:src/backend/utils/errcodes.txt","postgresql:REL_16_1:src/backend/utils/errcodes.txt","postgresql:REL_16_2:src/backend/utils/errcodes.txt","postgresql:REL_16_3:src/backend/utils/errcodes.txt","postgresql:REL_16_4:src/backend/utils/errcodes.txt","postgresql:REL_16_5:src/backend/utils/errcodes.txt","postgresql:REL_16_6:src/backend/utils/errcodes.txt","postgresql:REL_16_7:src/backend/utils/errcodes.txt","postgresql:REL_16_8:src/backend/utils/errcodes.txt","postgresql:REL_16_9:src/backend/utils/errcodes.txt"],"notes":"Presence in a PostgreSQL release definition file is established; runtime throw/use scanning is maintained separately.","scope":"release-definition-catalogue","status":"definition_only"},{"evidence_ids":[],"notes":"No occurrence was found in the locked 7.4..8.4 definition files; 7.0..7.3 source gaps remain explicit.","scope":"pre9-definition-history","status":"unknown"}]},"Evidence":[{"Kind":"claims","Ordinal":0,"ID":"identity","ServerVersion":null,"Status":null,"Payload":{"claim_id":"identity","limits":"","method":"Read locked historical definition snapshot.","position":0,"runtime":[],"sources":["src.definition.rel16.artifact"],"statement":"72000 is snapshot_too_old in SQLSTATE Class 72 in the locked REL_16_15 definition artifact."}},{"Kind":"claims","Ordinal":1,"ID":"resolved-paths","ServerVersion":null,"Status":null,"Payload":{"claim_id":"resolved-paths","limits":"Source confirmation is not natural runtime.","method":"Read the inline guard, implementation, and threshold mapping contexts.","position":1,"runtime":[],"sources":["src.path.0","src.path.1","src.path.2"],"statement":"The PG16.15 guard checks snapshot type, LSN/page ordering, relation eligibility, and threshold timestamp before raising ERROR 72000 with snapshot too old."}},{"Kind":"claims","Ordinal":2,"ID":"configuration-and-history","ServerVersion":null,"Status":null,"Payload":{"claim_id":"configuration-and-history","limits":"","method":"Read fixed GUC and documentation plus locked version membership.","position":2,"runtime":[],"sources":["src.path.3","src.path.4","src.definition.rel16.artifact"],"statement":"old_snapshot_threshold is a PGC_POSTMASTER setting, disabled by -1, and the PG16.15 documentation describes the vacuum/read conditions; the catalogue boundary places removal in the PG17 major line."}},{"Kind":"claims","Ordinal":3,"ID":"history","ServerVersion":null,"Status":null,"Payload":{"claim_id":"history","limits":"","method":"Compare locked version snapshots.","position":3,"runtime":[],"sources":["src.definition.rel16.artifact"],"statement":"The locked definition artifact records 72000 through 16.15 and absent from PG17/18 snapshots; it does not assert a replacement SQLSTATE."}},{"Kind":"messages","Ordinal":0,"ID":"message.0","ServerVersion":null,"Status":null,"Payload":{"limits":"","message_id":"message.0","path":"","position":0,"raw":{"id":"message.0","primary_template":"snapshot too old","severity_source":"ERROR","sources":["src.path.0"],"sqlstate":"72000"},"severity":"ERROR","sources":["src.path.0"],"templates":[{"kind":"primary","literal":"snapshot too old","position":0,"role":"","template":"snapshot too old"}]}},{"Kind":"sources","Ordinal":0,"ID":"src.definition.rel16.artifact","ServerVersion":null,"Status":null,"Payload":{"commit":"","docs_url":"","kind":"local_artifact","location":"","path":"raw/definitions/REL_16_15.txt","position":0,"sha256":"1d1d741b7b7c6dfd8275287e31c79befed75f3b9349e1a42ef0ca147c429ff88","source_id":"src.definition.rel16.artifact","tag":"REL_16_15","url":""}},{"Kind":"sources","Ordinal":1,"ID":"src.path.0","ServerVersion":null,"Status":null,"Payload":{"commit":"7d3e000c5961a544302072058a1184e9a588837b","docs_url":"","kind":"upstream_source","location":"","path":"src/backend/storage/buffer/bufmgr.c","position":1,"sha256":"dd070e7dfee25fa7beabd63abf35d3116105f0517e83dd0743a9c73d8f50cfec","source_id":"src.path.0","tag":"REL_16_15","url":"https://github.com/postgres/postgres/blob/7d3e000c5961a544302072058a1184e9a588837b/src/backend/storage/buffer/bufmgr.c#L5663"}},{"Kind":"sources","Ordinal":2,"ID":"src.path.1","ServerVersion":null,"Status":null,"Payload":{"commit":"7d3e000c5961a544302072058a1184e9a588837b","docs_url":"","kind":"upstream_source","location":"","path":"src/include/storage/bufmgr.h","position":2,"sha256":"9068c40143d84d3827bae5275bf13f6890d6b232a08922088187b0019ea94587","source_id":"src.path.1","tag":"REL_16_15","url":"https://github.com/postgres/postgres/blob/7d3e000c5961a544302072058a1184e9a588837b/src/include/storage/bufmgr.h#L363"}},{"Kind":"sources","Ordinal":3,"ID":"src.path.2","ServerVersion":null,"Status":null,"Payload":{"commit":"7d3e000c5961a544302072058a1184e9a588837b","docs_url":"","kind":"upstream_source","location":"","path":"src/backend/utils/time/snapmgr.c","position":3,"sha256":"7d87a04c85bd146f639bc4280bbb643f1000af231737f6055cbd4c35984f502c","source_id":"src.path.2","tag":"REL_16_15","url":"https://github.com/postgres/postgres/blob/7d3e000c5961a544302072058a1184e9a588837b/src/backend/utils/time/snapmgr.c#L1697"}},{"Kind":"sources","Ordinal":4,"ID":"src.path.3","ServerVersion":null,"Status":null,"Payload":{"commit":"7d3e000c5961a544302072058a1184e9a588837b","docs_url":"","kind":"upstream_source","location":"","path":"src/backend/utils/misc/guc_tables.c","position":4,"sha256":"2e3efa81095d9fbc77afe7c3c0960f3440f33be768a1ac02461596161cf95468","source_id":"src.path.3","tag":"REL_16_15","url":"https://github.com/postgres/postgres/blob/7d3e000c5961a544302072058a1184e9a588837b/src/backend/utils/misc/guc_tables.c#L3295"}},{"Kind":"sources","Ordinal":5,"ID":"src.path.4","ServerVersion":null,"Status":null,"Payload":{"commit":"7d3e000c5961a544302072058a1184e9a588837b","docs_url":"","kind":"upstream_source","location":"","path":"doc/src/sgml/config.sgml","position":5,"sha256":"b256738f2425571a921f176e6e6d4b936a8164a0c79381c4c216d26c9749514c","source_id":"src.path.4","tag":"REL_16_15","url":"https://github.com/postgres/postgres/blob/7d3e000c5961a544302072058a1184e9a588837b/doc/src/sgml/config.sgml#L2827"}}]}
