跳转到主要内容

方法

SQLSTATE 大典的范围、来源锁定、证据状态和翻译维护方法。

范围与锁定输入

大典从 PostgreSQL 发布定义开始,分开记录目录身份、源码实现、官方文档和本地运行观察。锁定 manifest 包含 351 个正式 tag、一个 PostgreSQL 19 Beta 3 预览、19 个定义 blob、263 个代码并集和 44 个类别。公开版本展示矩阵更小,只含 16 个正式大版本快照(9.0–18)和该预览;不能把它当成完整 tag 历史。PostgreSQL 18.6 固定为 REL_18_6 commit 724edf9bde9d356724ad384a2e196edc3c9f80f7,定义路径是 src/backend/utils/errcodes.txt;PostgreSQL 19 Beta 3 是独立预览,固定在 3638289fb57bdabec00deda98ee9624a35f5d66a

正式历史存在 18.4→18.6 的 tag 缺口。pre-9 收集覆盖 7.0 至 8.4.22 的 191 个 tag,其中 7.4–8.4 有定义文件,7.0–7.3 只有候选路径探测。旧路径缺失是来源缺口,不是代码不存在的证明。known_present_by 是存在边界;只有相邻源码同时证明两侧时才记录精确引入或移除。

证据状态

每条结论都记录所支持的源码路径和固定发布版、tag 或 commit。definition_only 只证明目录身份和历史,不证明报告该码的路径;source_path_confirmed 指向具体调用或实现上下文;observed_runtime 必须有真实运行记录、适用的通过断言和实际 SQLSTATE,源码扫描与跳过案例不能自动升级为运行覆盖。unknown 表示范围尚未解析,不表示绝对缺失。

词法源码候选在采纳前必须回到 C 上下文阅读。私有调用扫描是有界研究输入,不是面向读者的证明。core、contrib、extension、自定义函数、ECPG、driver 和远端服务器路径分开记录。ECPG 或客户端可以复用 PostgreSQL 定义的代码,FDW 或驱动也可能转发远端代码,但这不能证明 server core 在同一操作中报告该代码;反过来,core 路径也不能证明每个 wrapper 或客户端都暴露全部字段。

官方 PO 文本可以确认固定 commit、消息 domain 和占位符边界,但不能证明中文运行输出。locale、driver 行为、服务器版本和消息送达必须分别观察。内部消息和动态字段保留源码条件;翻译或格式化后的字符串永远不是稳定协议键。

运行与恢复边界

运行观察使用隔离的版本化目标,并保留足以识别案例和版本的环境与结构化结果。通过的观察只覆盖所断言的案例和版本;not_runnot_applicable、source-only 以及 driver 为 null 的 SQLSTATE 都明确保留。启动认证或资源失败发生在 SQL 事务之外;即使启动异常没有 driver SQLSTATE,服务器日志也可能记录 SQLSTATE。显式事务中,根错误和后续 25P02 是两条观察;保存点处理器、PL/pgSQL 异常块和完整事务重试具有不同范围。

PL/pgSQL 故意抛出的自定义代码可以展示协议送达和处理器匹配,却不能证明 core、contrib、FDW、ECPG 或 driver 自然报告同一代码。这类观察应标明是故意行为,不应当作自然子系统行为。

翻译与维护

英文是源页面。每个中文页面保留锚点、SQLSTATE 身份、事实、引用、诊断字段和恢复边界,并用自然中文完整传达。中文 front matter 保存英文页面规范化 {title, description, body} 的确定性 UTF-8 SHA-256;英文标题、描述或正文变化后,中文页会过期,直到完成翻译并刷新 revision。生成事实块有明确边界,可从 data/errcodes 刷新;作者正文和证据分开维护。

有价值的维护变更应同时更新固定源码引用、证据状态和两种语言页面。不能从改名的条件、旧 PO 条目、通用 API 签名或客户端 wrapper 推断新的运行机制。公开目录和证据视图只是已接受记录的展示层,不是证据生产过程。

主要记录

公开的版本矩阵目录证据索引运行案例索引展示已接受的投影。维护者使用 reports/CATALOGUE.mdreports/SOURCE-SCAN.mdreports/RUNTIME-BOUNDARIES.mdreports/RUNTIME.md 查阅底层记录;这些报告路径是仓库位置,不是公开页面链接。来源 manifest lock 为 sources/manifest.lock.json(SHA-256 1727a275f336988ff96b4f9990a4ca253080f73fc5d316e7def165c8cf3708a8);pre-9 lock 为 sources/pre9-manifest.lock.json(SHA-256 77bedf102d109972e91ff1b61841d78a38da7c7c049e428782392761a4ce7cd6)。