XX000 — internal_error(内部错误)
内部错误,也是未显式指定代码的 ERROR 默认码。
英文手册覆盖始于 PostgreSQL 8.1. 来源历史与运行验证各自保留独立版本边界。
当前阅读 PG 18·选择有来源记录的版本
- aliases
- 未知
- class name
- Internal Error
- condition name
- internal_error
- lang
- en
- sqlstate
- XX000
版本定义 PG 18
速览 {#at-a-glance}
XX000 是类别 XX Internal Error 中的 internal_error 条件。PostgreSQL 源码目录把这个类别描述为“本不应发生”的条件和软件缺陷。它是通用的诊断边界,不能据此断言数据库已经损坏。
这个代码也有机械的默认来源。在错误栈初始化时,没有后续显式代码的 ERROR 或更高级别会先使用 ERRCODE_INTERNAL_ERROR;WARNING 级别从 ERRCODE_WARNING(01000)开始;低于 WARNING 的级别若没有自己的代码则从 00000 开始。显式 errcode() 可以选择其他 SQLSTATE。因此,XX000 可能来自没有显式 SQLSTATE 的默认 elog(ERROR, ...) 路径,也可能来自主动报告内部错误的路径。
严重级别和连接后果取决于具体路径。ERROR、FATAL 和 PANIC 是不同的协议严重级别;扩展测试代码甚至可以在 NOTICE 中显式携带 XX000。应把严重级别、事务状态、连接状态、源码位置和完整诊断放在一起读取。
代表性案例 internal_error_safety_boundary 只做源码核验,未实测自然触发路径。由于强行制造内部损坏或故障会越过安全的临时数据库边界,PostgreSQL 18.6 和 10.21 上均记录为 not_applicable,也没有用手写 RAISE 冒充服务器内部失败。
含义与触发路径 {#meaning}
18.6 的定义是在类别 XX 下的 XX000 E ERRCODE_INTERNAL_ERROR internal_error。这个类别注释有意保持宽泛。对于数据损坏(XX001)和索引损坏(XX002)还有更具体的代码;选用 XX000 不会自动把通用内部报文升级成这两种诊断。
需要区分两种源码模式:
- 默认内部代码。 后端路径调用没有显式 SQLSTATE 的
elog(ERROR, ...),或以同样方式到达ereport(ERROR, ...)。elog.c会把这个错误初始化为XX000,但报文和源码函数仍能指出所属子系统。 - 显式内部代码。 某条路径调用
errcode(ERRCODE_INTERNAL_ERROR),因为某个不变量或操作系统/服务结果被视为不可能或不可用。18.6 中的例子包括 B-tree 重检时无法重新找到索引元组、动态共享内存控制段无效、尝试重新定义非占位配置参数,以及 UUID 生成无法取得强随机字节。
显式代码不会强制唯一的严重级别。共享内存路径报告 FATAL,而 B-tree、GUC 和 UUID 例子报告 ERROR。一个访问控制测试钩子还会在 NOTICE 中显式报告 ERRCODE_INTERNAL_ERROR,说明 SQLSTATE 与严重级别是分开的字段。这个钩子只是源码例子,不是普通生产提示表示内部故障的证据。
报文与诊断 {#messages}
XX000 没有统一的主报文。源码中可见的代表性模板包括:
failed to re-find tuple within index "%s",并提示索引表达式可能不是不可变的(nbtinsert.c)。dynamic shared memory control segment is not valid,出现在FATAL初始化路径(dsm.c)。attempt to redefine parameter "%s"(guc.c)和could not generate random values(uuid.c)。- 默认
elog(ERROR, ...)路径中的invalid page pd_lower %u pd_upper %u pd_special %u(bufmask.c);没有其他显式代码替换时,默认映射会提供XX000。
这些都是具体路径的诊断模板。应记录 SQLSTATE、两种严重级别字段、主报文、详细信息、提示、上下文、源码文件、函数、行号、后端 PID、数据库和服务器版本。本地化文本和模板措辞可能变化;源码路径和结构化字段比报文子串更稳定。
诊断 {#diagnosis}
在重试或重启前保留完整的客户端错误和对应服务器日志。先按协议严重级别分类:
ERROR通常会中止当前显式事务,但回滚后后端连接仍可使用。FATAL会结束后端会话,客户端需要建立新连接才能继续。PANIC是影响服务器的紧急路径,进程和连接后果必须根据服务器日志和进程监管状态确认。- 显式携带
XX000的WARNING或NOTICE具有不同控制流,单凭它既不能证明内部故障,也不能断言事务中止。
随后按源码函数和子系统归类。检查是否有先发生的 I/O、内存、扩展、索引、配置或并发故障;比对确切服务器构建和固定源码版本;寻找是否重复出现。只有当诊断指向相关对象时,才使用只读的目录、索引或页面检查。不能仅凭类别名推断损坏,也不要用手写 RAISE EXCEPTION 来制造复现:那默认测试的是 P0001,不是服务器内部路径。
处理 {#response}
按照严重级别和子系统处理。ERROR 要先回滚事务再发无关命令;FATAL 后重新建立连接;PANIC 后遵循服务器重启和事故流程。内部错误若源码指向不变量、存储、索引或共享内存边界,不应盲目重试。
收集服务器版本、确切 SQL、后端和服务器日志、源码位置、关系对象或其他对象身份,以及近期配置和扩展变化。如果证据指向损坏,应根据事故流程在适当时停止写入,保留副本或快照,并使用 PostgreSQL 文档化的恢复与支持流程。如果证据指向没有损坏迹象的软件或扩展缺陷,则隔离可复现条件并比较受支持的版本。正确处理取决于这些证据,而不是 XX000 本身。
版本 {#versions}
目录记录 XX000 存在于锁定的 7.4–8.4.22 pre-9.0 正式源码、9.0.23 至 18.6 的全部正式快照及 19 Beta 3 预览快照。同 tag 的 REL8_1_4 errcodes.sgml 表已经列出 XX000 和条件名 internal_error,因此至少可以确认 8.1.4 已有该条件名。9.0 头文件视图中的类标题为 Internal Error (PostgreSQL-specific error class),到 9.1 的文本定义变为 Internal Error。7.0–7.3 仍有候选源码缺口;这些是目录观察边界,不是确切实现引入日期的断言。
18.6 固定源码 commit 为 724edf9bde9d356724ad384a2e196edc3c9f80f7。默认严重级别到代码的映射以及上面的源码路径均有 18.6 证据。代表性运行案例没有接受确定且安全的 SQL 触发方式,因此两个目标的运行时状态均保持 not_applicable。
相关 {#related}
XX001 — data_corrupted 和 XX002 — index_corrupted 是更具体的损坏条件。P0001 — raise_exception 是没有代码的 PL/pgSQL RAISE EXCEPTION 的通常默认值。57P01 — admin_shutdown 是不同类别的服务器连接事件。25P02 — in_failed_sql_transaction 是前一个错误导致的后续事务状态,不是 XX000 的同义词。
来源 {#sources}
结构化证据记录在公开证据 JSON中。源码记录固定到 PostgreSQL commit 724edf9bde9d356724ad384a2e196edc3c9f80f7;运行时记录保留精确的源码边界案例 ID 和两个目标摘要。
src.errcodes.18.6—errcodes.txtsrc.elog.18.6—elog.csrc.nbtinsert.18.6、src.dsm.18.6、src.guc.18.6、src.uuid.18.6与src.bufmask.18.6— 源码确认的内部路径src.oat-hooks.18.6— 在NOTICE中显式提供内部代码doc.protocol.18— Error and Notice Message Fields
比较版本
SQLSTATE 证据与已记录的运行版本
cases · internal_error_safety_boundary
{
"assertions": [
"The directory and source paths are recorded",
"The batch marks the natural runtime trigger not applicable rather than fabricating one"
],
"case_id": "internal_error_safety_boundary",
"cleanup": "No runtime resources are created.",
"has_snippet": false,
"position": 0,
"preconditions": [
"A source-confirmed internal error path"
],
"repair": "Preserve diagnostics, stop treating the session as healthy when appropriate, and investigate the exact server path with supportable evidence.",
"trigger": "No deterministic safe SQL trigger is used; forcing internal corruption would violate the disposable-case safety boundary.",
"versions": [
"10",
"18"
]
}claims · identity.class-and-condition
{
"claim_id": "identity.class-and-condition",
"limits": "The generic class identity does not prove corruption or identify the subsystem.",
"method": "Read the Class XX section, comment, and XX000 row in the frozen errcodes.txt snapshot.",
"position": 0,
"runtime": [],
"sources": [
"src.errcodes.18.6"
],
"statement": "XX000 is the internal_error condition in Class XX, Internal Error, whose source comment covers can't-happen conditions and software bugs."
}claims · dispatch.default-internal
{
"claim_id": "dispatch.default-internal",
"limits": "Later errcode() construction can replace the initial value; the mapping is not a diagnosis of corruption.",
"method": "Read the default sqlerrcode selection in errstart() in the fixed source.",
"position": 1,
"runtime": [],
"sources": [
"src.elog.18.6"
],
"statement": "Without a later explicit code, an ERROR or higher level is initialized with ERRCODE_INTERNAL_ERROR, while WARNING starts with ERRCODE_WARNING and lower levels with ERRCODE_SUCCESSFUL_COMPLETION."
}claims · paths.explicit-internal
{
"claim_id": "paths.explicit-internal",
"limits": "These are distinct source paths with different preconditions and severities; they do not establish that a generic XX000 occurrence came from any one of them.",
"method": "Read each errcode(ERRCODE_INTERNAL_ERROR) branch and its surrounding invariant or service diagnostic.",
"position": 2,
"runtime": [],
"sources": [
"src.nbtinsert.18.6",
"src.dsm.18.6",
"src.guc.18.6",
"src.uuid.18.6"
],
"statement": "The fixed 18.6 source contains explicit XX000 paths for btree tuple rechecking, invalid dynamic shared-memory control state, configuration parameter redefinition, and strong-random UUID generation failure."
}claims · paths.default-elog
{
"claim_id": "paths.default-elog",
"limits": "The source example is a diagnostic invariant check; a real occurrence requires the exact runtime path and environment.",
"method": "Read the bufmask elog call and the error-stack default mapping.",
"position": 3,
"runtime": [],
"sources": [
"src.bufmask.18.6",
"src.elog.18.6"
],
"statement": "A default elog(ERROR, ...) path such as the invalid-page check starts with XX000 through the generic severity mapping when it supplies no explicit SQLSTATE."
}claims · paths.severity-separation
{
"claim_id": "paths.severity-separation",
"limits": "The OAT hook is test-module code and does not represent normal production internal-error behavior.",
"method": "Read each ereport level alongside its explicit errcode and compare the protocol severity contract.",
"position": 4,
"runtime": [],
"sources": [
"src.dsm.18.6",
"src.nbtinsert.18.6",
"src.guc.18.6",
"src.uuid.18.6",
"src.oat-hooks.18.6"
],
"statement": "An explicit XX000 does not force one wire severity: the shared-memory path is FATAL, several paths are ERROR, and the access-control hook can carry XX000 at NOTICE."
}claims · protocol.severity-fields
{
"claim_id": "protocol.severity-fields",
"limits": "Severity is a wire property and must be interpreted with transaction and connection state.",
"method": "Read the official PostgreSQL 18 Error and Notice Message Fields table.",
"position": 5,
"runtime": [],
"sources": [
"doc.protocol.18"
],
"statement": "The protocol distinguishes ERROR/FATAL/PANIC severities in error messages from WARNING/NOTICE/DEBUG/INFO/LOG severities in notice messages, with localized S and nonlocalized V fields."
}claims · diagnosis.no-corruption-inference
{
"claim_id": "diagnosis.no-corruption-inference",
"limits": "This is an evidence boundary, not a claim that corruption is impossible when XX000 occurs.",
"method": "Compare the broad Class XX comment and the distinct source paths and messages.",
"position": 6,
"runtime": [],
"sources": [
"src.errcodes.18.6",
"src.nbtinsert.18.6",
"src.bufmask.18.6",
"src.dsm.18.6"
],
"statement": "XX000 alone is insufficient to diagnose data or index corruption; the exact message, source path, severity, and surrounding evidence are required."
}claims · runtime.safety-boundary
{
"claim_id": "runtime.safety-boundary",
"limits": "This is not runtime proof of an XX000 occurrence; it records that fault or corruption injection was outside the accepted test boundary.",
"method": "Read the stable case contract and both target summaries/raw records, retaining source_confirmed_only and not_applicable.",
"position": 7,
"runtime": [],
"sources": [
"case-manifest.XX000",
"runtime-raw.XX000.latest",
"runtime.XX000-debug-latest.latest",
"runtime.XX000-debug-pg10.pg10"
],
"statement": "The internal_error_safety_boundary case is recorded as not_applicable on PostgreSQL 18.6 and 10.21 because no safe deterministic SQL trigger was used."
}claims · versions.catalogue-boundary
{
"claim_id": "versions.catalogue-boundary",
"limits": "The pre-9.0 source set is locked through 8.4.22 but candidate source gaps remain for 7.0–7.3; the observed condition-name and class-title changes are not exact implementation introduction dates.",
"method": "Read the manifest snapshot and the same-tag REL8_1_4 errcodes.sgml row for the code; the generated per-code record is derived from those entries.",
"position": 8,
"runtime": [],
"sources": [
"manifest.XX000",
"doc.errcodes.8.1.4"
],
"statement": "The locked catalogue records XX000 in the 7.4–8.4.22 pre-9.0 formal sources, every listed formal snapshot from 9.0.23 through 18.6, and 19beta3. The same-tag REL8_1_4 errcodes.sgml row already lists XX000 as internal_error, confirming that condition-name observation by 8.1.4. The class title changes between the 9.0 header and 9.1 text definitions; candidate source gaps remain for 7.0–7.3. These are presence boundaries, not exact implementation introduction dates."
}messages · message.index-refind
{
"limits": "The message belongs to the UNIQUE_CHECK_EXISTING btree path and carries a relation/constraint context.",
"message_id": "message.index-refind",
"path": "",
"position": 0,
"raw": {
"hint_template": "This may be because of a non-immutable index expression.",
"id": "message.index-refind",
"limits": "The message belongs to the UNIQUE_CHECK_EXISTING btree path and carries a relation/constraint context.",
"primary_template": "failed to re-find tuple within index \"%s\"",
"severity_source": "explicit ERROR",
"sources": [
"src.nbtinsert.18.6"
],
"sqlstate": "XX000"
},
"severity": "explicit ERROR",
"sources": [
"src.nbtinsert.18.6"
],
"templates": [
{
"kind": "primary",
"literal": "failed to re-find tuple within index \" \"",
"position": 0,
"role": "",
"template": "failed to re-find tuple within index \"%s\""
},
{
"kind": "hint",
"literal": "This may be because of a non-immutable index expression.",
"position": 1,
"role": "",
"template": "This may be because of a non-immutable index expression."
}
]
}messages · message.dsm-fatal
{
"limits": "This path terminates the backend session; it is not a generic client-side error template.",
"message_id": "message.dsm-fatal",
"path": "",
"position": 1,
"raw": {
"id": "message.dsm-fatal",
"limits": "This path terminates the backend session; it is not a generic client-side error template.",
"primary_template": "dynamic shared memory control segment is not valid",
"severity_source": "explicit FATAL",
"sources": [
"src.dsm.18.6"
],
"sqlstate": "XX000"
},
"severity": "explicit FATAL",
"sources": [
"src.dsm.18.6"
],
"templates": [
{
"kind": "primary",
"literal": "dynamic shared memory control segment is not valid",
"position": 0,
"role": "",
"template": "dynamic shared memory control segment is not valid"
}
]
}messages · message.guc
{
"limits": "The template belongs to the custom GUC placeholder invariant path.",
"message_id": "message.guc",
"path": "",
"position": 2,
"raw": {
"id": "message.guc",
"limits": "The template belongs to the custom GUC placeholder invariant path.",
"primary_template": "attempt to redefine parameter \"%s\"",
"severity_source": "explicit ERROR",
"sources": [
"src.guc.18.6"
],
"sqlstate": "XX000"
},
"severity": "explicit ERROR",
"sources": [
"src.guc.18.6"
],
"templates": [
{
"kind": "primary",
"literal": "attempt to redefine parameter \" \"",
"position": 0,
"role": "",
"template": "attempt to redefine parameter \"%s\""
}
]
}messages · message.uuid
{
"limits": "The message reports failure of the strong-random provider in the UUID path.",
"message_id": "message.uuid",
"path": "",
"position": 3,
"raw": {
"id": "message.uuid",
"limits": "The message reports failure of the strong-random provider in the UUID path.",
"primary_template": "could not generate random values",
"severity_source": "explicit ERROR",
"sources": [
"src.uuid.18.6"
],
"sqlstate": "XX000"
},
"severity": "explicit ERROR",
"sources": [
"src.uuid.18.6"
],
"templates": [
{
"kind": "primary",
"literal": "could not generate random values",
"position": 0,
"role": "",
"template": "could not generate random values"
}
]
}messages · message.bufmask-default
{
"limits": "The XX000 code is supplied by the default mapping because this elog call has no explicit errcode.",
"message_id": "message.bufmask-default",
"path": "",
"position": 4,
"raw": {
"id": "message.bufmask-default",
"limits": "The XX000 code is supplied by the default mapping because this elog call has no explicit errcode.",
"primary_template": "invalid page pd_lower %u pd_upper %u pd_special %u",
"severity_source": "default elog(ERROR)",
"sources": [
"src.bufmask.18.6",
"src.elog.18.6"
],
"sqlstate": "XX000"
},
"severity": "default elog(ERROR)",
"sources": [
"src.bufmask.18.6",
"src.elog.18.6"
],
"templates": [
{
"kind": "primary",
"literal": "invalid page pd_lower pd_upper pd_special",
"position": 0,
"role": "",
"template": "invalid page pd_lower %u pd_upper %u pd_special %u"
}
]
}messages · message.oat-notice
{
"limits": "This is a test-module hook diagnostic demonstrating severity/code separation, not a production internal-error occurrence.",
"message_id": "message.oat-notice",
"path": "",
"position": 5,
"raw": {
"id": "message.oat-notice",
"limits": "This is a test-module hook diagnostic demonstrating severity/code separation, not a production internal-error occurrence.",
"primary_template": "in %s: %s %s %s [%s]",
"severity_source": "explicit NOTICE",
"sources": [
"src.oat-hooks.18.6"
],
"sqlstate": "XX000"
},
"severity": "explicit NOTICE",
"sources": [
"src.oat-hooks.18.6"
],
"templates": [
{
"kind": "primary",
"literal": "in : [ ]",
"position": 0,
"role": "",
"template": "in %s: %s %s %s [%s]"
}
]
}runtimes · runtime.XX000-debug-latest.latest · 18.6 (Homebrew) · not_applicable
{
"cases": [
"internal_error_safety_boundary"
],
"limits": "No internal-error path was executed.",
"position": 0,
"raw": {
"cases": [
"internal_error_safety_boundary"
],
"id": "runtime.XX000-debug-latest.latest",
"limits": "No internal-error path was executed.",
"raw": "verify/results/XX000-debug-latest/latest/raw.jsonl",
"reason": "source_confirmed_only",
"run_id": "XX000-debug-latest",
"server_version": "18.6 (Homebrew)",
"server_version_num": 180006,
"status": "not_applicable",
"summary": "verify/results/XX000-debug-latest/latest/summary.json",
"target": "latest"
},
"run_id": "XX000-debug-latest",
"runtime_id": "runtime.XX000-debug-latest.latest",
"server_version": "18.6 (Homebrew)",
"status": "not_applicable",
"target": "latest"
}runtimes · runtime.XX000-debug-pg10.pg10 · 10.21 (Debian 10.21-1.pgdg90+1) · not_applicable
{
"cases": [
"internal_error_safety_boundary"
],
"limits": "No internal-error path was executed.",
"position": 1,
"raw": {
"cases": [
"internal_error_safety_boundary"
],
"id": "runtime.XX000-debug-pg10.pg10",
"image": "postgres@sha256:b2baf8998630663d21370da06387c950e587071bdd307ee34e661cdcc7442bcc",
"limits": "No internal-error path was executed.",
"raw": "verify/results/XX000-debug-pg10/pg10/raw.jsonl",
"reason": "source_confirmed_only",
"run_id": "XX000-debug-pg10",
"server_version": "10.21 (Debian 10.21-1.pgdg90+1)",
"server_version_num": 100021,
"status": "not_applicable",
"summary": "verify/results/XX000-debug-pg10/pg10/summary.json",
"target": "pg10"
},
"run_id": "XX000-debug-pg10",
"runtime_id": "runtime.XX000-debug-pg10.pg10",
"server_version": "10.21 (Debian 10.21-1.pgdg90+1)",
"status": "not_applicable",
"target": "pg10"
}sources · src.errcodes.18.6
{
"commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
"docs_url": "",
"kind": "",
"location": "lines 496-502",
"path": "src/backend/utils/errcodes.txt",
"position": 0,
"sha256": "6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba",
"source_id": "src.errcodes.18.6",
"tag": "REL_18_6",
"url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt"
}sources · src.elog.18.6
{
"commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
"docs_url": "",
"kind": "",
"location": "lines 442-454",
"path": "src/backend/utils/error/elog.c",
"position": 1,
"sha256": "766d30a426ba1d9597657bd46fb890da3e37e4ae53a83d1245bf082ed9433c33",
"source_id": "src.elog.18.6",
"tag": "REL_18_6",
"url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/error/elog.c#L442-L454"
}sources · src.nbtinsert.18.6
{
"commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
"docs_url": "",
"kind": "",
"location": "lines 754-766",
"path": "src/backend/access/nbtree/nbtinsert.c",
"position": 2,
"sha256": "199671bec6b07b80100ea41632cef4b03a9525df75a2ede2b8fe155b637dcba7",
"source_id": "src.nbtinsert.18.6",
"tag": "REL_18_6",
"url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/access/nbtree/nbtinsert.c#L754-L766"
}sources · src.dsm.18.6
{
"commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
"docs_url": "",
"kind": "",
"location": "lines 436-445",
"path": "src/backend/storage/ipc/dsm.c",
"position": 3,
"sha256": "3ff99695b25e65764b6d0d2d5ddd8865984af6a434f9e903bcc33f0b7fc1dde8",
"source_id": "src.dsm.18.6",
"tag": "REL_18_6",
"url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/storage/ipc/dsm.c#L436-L445"
}sources · src.guc.18.6
{
"commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
"docs_url": "",
"kind": "",
"location": "lines 4964-4970",
"path": "src/backend/utils/misc/guc.c",
"position": 4,
"sha256": "3021d40bb4e920a56fbc5e9452e32903a7364d7ce0aece65be70aa3c34c1274e",
"source_id": "src.guc.18.6",
"tag": "REL_18_6",
"url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/misc/guc.c#L4964-L4970"
}sources · src.uuid.18.6
{
"commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
"docs_url": "",
"kind": "",
"location": "lines 544-552",
"path": "src/backend/utils/adt/uuid.c",
"position": 5,
"sha256": "64d3e8d22a87375b2b2b339bc9aec74f14f9b4996727c306ba1a0418e3fe0ffc",
"source_id": "src.uuid.18.6",
"tag": "REL_18_6",
"url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/uuid.c#L544-L552"
}sources · src.bufmask.18.6
{
"commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
"docs_url": "",
"kind": "",
"location": "lines 70-85",
"path": "src/backend/access/common/bufmask.c",
"position": 6,
"sha256": "174b9f096b1c4b8f0cb75f45640b8c5cc94f101b21450e647e83e02f8e78d23d",
"source_id": "src.bufmask.18.6",
"tag": "REL_18_6",
"url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/access/common/bufmask.c#L70-L85"
}sources · src.oat-hooks.18.6
{
"commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
"docs_url": "",
"kind": "",
"location": "lines 238-248",
"path": "src/test/modules/test_oat_hooks/test_oat_hooks.c",
"position": 7,
"sha256": "8ee72c7930931969a7f447f55432f58b710f0949d6cfb2c1514f68fcdfb88438",
"source_id": "src.oat-hooks.18.6",
"tag": "REL_18_6",
"url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/test/modules/test_oat_hooks/test_oat_hooks.c#L238-L248"
}sources · doc.protocol.18
{
"commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
"docs_url": "",
"kind": "",
"location": "lines 6254-6290, severity fields",
"path": "doc/src/sgml/protocol.sgml",
"position": 8,
"sha256": "745339e07ebbc2bb67d98b258e25772ada644ef26011e3cd6b3fcbb435235f89",
"source_id": "doc.protocol.18",
"tag": "PG18-docs",
"url": "https://www.postgresql.org/docs/18/protocol-error-fields.html"
}sources · doc.errcodes.8.1.4
{
"commit": "313a720f95a3f41b59f853786b184f38f82172d9",
"docs_url": "",
"kind": "upstream_source",
"location": "REL8_1_4 table rows 1313-1318",
"path": "doc/src/sgml/errcodes.sgml",
"position": 9,
"sha256": "fdd6f5470b19970d3b60219a44e66b33193647975d346adfe2a98178f706b776",
"source_id": "doc.errcodes.8.1.4",
"tag": "",
"url": "https://github.com/postgres/postgres/blob/313a720f95a3f41b59f853786b184f38f82172d9/doc/src/sgml/errcodes.sgml#L1313-L1318"
}sources · manifest.XX000
{
"commit": "",
"docs_url": "",
"kind": "local_artifact",
"location": "snapshots and definition_blobs entries for the XX000 definition",
"path": "sources/manifest.lock.json",
"position": 10,
"sha256": "1727a275f336988ff96b4f9990a4ca253080f73fc5d316e7def165c8cf3708a8",
"source_id": "manifest.XX000",
"tag": "",
"url": "../sources/manifest.lock.json"
}sources · case-manifest.XX000
{
"commit": "",
"docs_url": "",
"kind": "local_artifact",
"location": "internal_error_safety_boundary",
"path": "verify/cases/XX000/cases.json",
"position": 11,
"sha256": "a3de1ad0d567c50db83967e9756adfb4b7dcdefb3a54efc2a9248191886fb325",
"source_id": "case-manifest.XX000",
"tag": "",
"url": "../verify/cases/XX000/cases.json"
}sources · runtime-raw.XX000.latest
{
"commit": "",
"docs_url": "",
"kind": "local_artifact",
"location": "case_result for internal_error_safety_boundary",
"path": "verify/results/XX000-debug-latest/latest/raw.jsonl",
"position": 12,
"sha256": "e7515f758483b38a16ce01952f7a09c978008d380d1ba93d7ecb63ea212caede",
"source_id": "runtime-raw.XX000.latest",
"tag": "",
"url": "../verify/results/XX000-debug-latest/latest/raw.jsonl"
}来源引用
定义来源
center · PostgreSQL 18 · english-manuals:e1cf957b27ee00962ed761abc4cfb75b52de58b2b6ed8b2542eafb44748db95c
正文语言: zh-Hans · english-manuals:e1cf957b27ee00962ed761abc4cfb75b52de58b2b6ed8b2542eafb44748db95c