↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

Wiki / SQLSTATE

01000 — warning(警告)

类别 01 的通用警告,需结合实际严重级别判断。

英文手册覆盖始于 PostgreSQL 8.1. 来源历史与运行验证各自保留独立版本边界。

当前阅读 PG 18·选择有来源记录的版本

aliases
未知
class name
Warning
condition name
warning
lang
en
sqlstate
01000

版本定义 PG 18

速览 {#at-a-glance}

01000 是类别 01 Warning 中的通用警告(warning)条件。它只是目录分类,不对应某一个固定子系统或固定报文。PostgreSQL 源码目录明确说明,不应把这个类别用于失败条件。

这个五字符代码必须和协议严重级别及完整诊断一起读取。在 ErrorResponse 或 NoticeResponse 中,S 是可能经过本地化的严重级别,V 是未本地化的严重级别。因此,当产生消息的代码显式提供了该代码时,SQLSTATE 仍可以是 01000,而消息严重级别可能是 WARNING、NOTICE、INFO 或其他提示级别。

在常见的默认路径中,PostgreSQL 将 ereport(WARNING, ...) 映射为 01000,将不低于 ERROR 的级别映射为 XX000,将更低的级别映射为 00000。显式的 errcode() 可以覆盖这个默认值。因此,目录中的 W 标记有参考价值,但单凭它不能证明线上协议消息一定是实际的 WARNING。

代表性案例 generic_warning_boundary 在 PostgreSQL 18.6 和 10.21 上均通过。它用 PL/pgSQL RAISE WARNING 核验默认的 01000 分发,实际收到 WARNING 提示,并保持自动提交连接可继续使用。它没有实测异步 NOTIFY、hstore、XID 或 MultiXact 警告路径。

锁定目录在 PostgreSQL 7.4 的 pre-9.0 正式源码中已经观察到该代码,并确认它存在于 9.0.23 至 18.6 的每个正式快照及 19 Beta 3 预览快照。pre-9.0 源码扫描覆盖 7.4 至 8.4.22;7.0 至 7.3 仍有候选源码缺口。因此,7.4 是已知存在边界,不是精确引入版本。

含义与触发路径 {#meaning}

锁定的 18.6 定义是在类别 01 下的 01000 W ERRCODE_WARNING warning。默认严重级别映射位于 elog.c:ERROR 或更高级别从 ERRCODE_INTERNAL_ERROR 开始,WARNING 级别从 ERRCODE_WARNING 开始,更低级别从 ERRCODE_SUCCESSFUL_COMPLETION 开始。随后构造错误消息时还可以替换这个初始代码。

若干真实路径会使用通用警告(warning)代码:

  • 异步通知队列会报告 NOTIFY queue is %.0f%% full。如果找到最老的监听事务,还会附带指出 PID 的详细信息,并提示结束该事务。这是队列压力警告,不是数组、权限或约束失败。
  • 事务 ID 和 MultiXact 回卷保护会报告某个数据库必须在剩余多少事务或 MultiXact ID 用完前执行 VACUUM。提示会指向全库 VACUUM,以及旧预备事务或陈旧复制槽。
  • SPI 清理路径会显式提供 ERRCODE_WARNING,报告非空 SPI 栈,并提示检查遗漏的 SPI_finish。这里的代码是显式指定的,即使严重级别同样是 WARNING。

这些源码确认的例子说明,报文、详细信息、提示、源码上下文和操作比单独的 01000 更有行动价值。其他类别 01 条件(如 01003 或 0100C)拥有自己的 SQLSTATE,不应全部折叠成这个通用代码。

报文与诊断 {#messages}

可执行的代表性案例是注册表中的 generic_warning_boundary:

DO $$ BEGIN RAISE WARNING 'calibration warning'; END $$;
SELECT 1;

PostgreSQL 18.6 和 10.21 都通过提示通道送出这条警告,得到 SQLSTATE 01000、严重级别 WARNING 和主报文 calibration warning。后续的 SELECT 1 成功,连接状态为 IDLE。这是实际的 RAISE WARNING 分发核验,不是上面分别列出的 NOTIFY 队列、hstore 兼容、事务 ID 或 MultiXact 路径的运行时证据。

诊断 {#diagnosis}

从驱动或协议中记录 C/sqlstate、S、V、M、D、H,并同时记录语句、数据库、后端 PID 和时间戳。带有提示处理器的客户端还应记录提示,而不只是异常:WARNING 级别的 NoticeResponse 可以在不抛出语句异常的情况下送达。若有 V,请保留本地化严重级别与未本地化值。

当客户端或服务器日志中看不到消息时,检查 SHOW client_min_messages 和 SHOW log_min_messages。这些设置控制送达与记录阈值,不会改变根因。对于重复出现的警告(warning),使用 SQLSTATE 和稳定的报文模板搜索日志,再检查对应子系统:

  • NOTIFY queue ... full 应检查长期存活的监听事务及 DETAIL 中的 PID。
  • XID 或 MultiXact 回收警告应在回卷保护变成真实失败之前检查事务年龄、预备事务和复制槽。
  • 非空 SPI 栈应指向扩展或服务器端 SPI 生命周期管理。

不能仅凭 01000 推断事务已经中止、连接已经损坏或数据已经损坏。代表性警告让会话保持可用,但后续语句可能因独立原因失败,函数或客户端操作也可能施加自己的控制流。

处理 {#response}

以报文中的子系统和提示作为修复目标。结束或修复占住通知队列或旧事务回收边界的事务;检查复制槽和预备事务后执行提示的全库维护;或者修复扩展的 SPI 所有权。调查时保留原始诊断。

实际的 WARNING 或更低级别提示本身不会把显式事务置为中止,通常也会让连接保持可继续使用。应验证下一条命令及事务状态,不要从代码本身猜测结果。如果随后出现 ERROR,请按照那个错误的 SQLSTATE 处理,并根据其事务契约使用 ROLLBACK 或合适的保存点恢复。

提高 client_min_messages 或 log_min_messages 可以减少噪声,但不会修复队列、事务回收边界或 SPI 生命周期。只有理解了底层信号后才应考虑抑制它。

版本 {#versions}

目录记录 01000 存在于锁定的 7.4–8.4.22 pre-9.0 正式源码,以及 9.0.23 至 18.6 的所有正式目录快照和 19 Beta 3 预览快照。同 tag 的 REL8_1_4 errcodes.sgml 表已经用较早的 1000 写法列出条件名 warning,因此至少可以确认 8.1.4 已有该条件名。7.0–7.3 仍有候选源码缺口,因此 7.4 观察结果只是存在边界,不是精确引入版本。18.6 源码快照固定在 commit 724edf9bde9d356724ad384a2e196edc3c9f80f7。

协议严重级别字段以及 client_min_messages/log_min_messages 控制项以 PostgreSQL 18 文档为依据。上面的代表性源码路径是 18.6 观察结果,不表示每个旧版本中的所有报文模板都完全不变。

相关 {#related}

00000 — successful_completion 是低级别完成消息的默认代码。01003 — null_value_eliminated_in_set_function 和 0100C — dynamic_result_sets_returned 是更具体的类别 01 条件。XX000 — internal_error 是没有显式代码的 ERROR 的默认代码,不能与 warning 混用。25P02 — in_failed_sql_transaction 描述的是前一个错误已经中止事务后拒绝后续命令,不能把它当成每个 01000 消息的后果。

来源 {#sources}

本页的结构化证据记录在公开证据 JSON中。源码和文档记录均使用固定 PostgreSQL commit 724edf9bde9d356724ad384a2e196edc3c9f80f7;运行记录保留通过的提示注册表和精确 run ID。

比较版本

SQLSTATE 证据与已记录的运行版本

cases · generic_warning_boundary
{
  "assertions": [
    "The notice handler receives SQLSTATE 01000 and WARNING severity",
    "The warning message is preserved",
    "The session remains IDLE and a follow-up query succeeds",
    "The probe is not presented as the hstore_compat.c natural warning path"
  ],
  "case_id": "generic_warning_boundary",
  "cleanup": "No persistent runtime resources are created.",
  "has_snippet": true,
  "position": 0,
  "preconditions": [
    "A disposable session with a notice handler"
  ],
  "repair": "Treat the warning's message and context as the actionable signal; identify the emitting subsystem before changing data.",
  "trigger": "Execute a PL/pgSQL RAISE WARNING dispatch probe.",
  "versions": [
    "10",
    "18"
  ]
}
claims · identity.class-and-condition
{
  "claim_id": "identity.class-and-condition",
  "limits": "Directory identity does not identify the emitting subsystem or prove a runtime occurrence.",
  "method": "Read the Class 01 section and the 01000 row in the frozen errcodes.txt snapshot.",
  "position": 0,
  "runtime": [],
  "sources": [
    "src.errcodes.18.6"
  ],
  "statement": "01000 is the generic warning condition in Class 01, and the directory comment says not to use Class 01 for failure conditions."
}
claims · dispatch.default-severity-map
{
  "claim_id": "dispatch.default-severity-map",
  "limits": "An explicit errcode in the ereport construction can replace this initial value; the mapping does not classify every notice by message text.",
  "method": "Read the default sqlerrcode selection in errstart() in the fixed 18.6 source.",
  "position": 1,
  "runtime": [],
  "sources": [
    "src.elog.18.6"
  ],
  "statement": "Without a later explicit errcode, PostgreSQL initializes ERROR and higher levels as XX000, WARNING as 01000, and lower levels as 00000."
}
claims · mechanism.notify-queue
{
  "claim_id": "mechanism.notify-queue",
  "limits": "The warning is rate-limited and conditional on queue usage and an identifiable old listener; the source path is not a promise that every installation will observe it.",
  "method": "Read asyncQueueFillWarning() and its ereport(WARNING) construction.",
  "position": 2,
  "runtime": [],
  "sources": [
    "src.async.18.6"
  ],
  "statement": "The asynchronous notification queue emits a WARNING with SQLSTATE 01000 by default when its usage reaches the warning path, with conditional PID detail and a hint to end the oldest transaction."
}
claims · mechanism.wraparound-warnings
{
  "claim_id": "mechanism.wraparound-warnings",
  "limits": "These are source-confirmed paths; their conditions and remaining-count values depend on live transaction state.",
  "method": "Read the ereport(WARNING) branches and their VACUUM, prepared-transaction, and replication-slot hints.",
  "position": 3,
  "runtime": [],
  "sources": [
    "src.varsup.18.6",
    "src.multixact.18.6"
  ],
  "statement": "Transaction ID and MultiXact horizon checks emit warning messages and maintenance hints for a database approaching its configured horizon."
}
claims · mechanism.spi-explicit-code
{
  "claim_id": "mechanism.spi-explicit-code",
  "limits": "This warning requires an SPI lifecycle defect; it is not a generic SQL warning trigger.",
  "method": "Read the commit cleanup branch at lines 467-472 in the fixed source.",
  "position": 4,
  "runtime": [],
  "sources": [
    "src.spi.18.6"
  ],
  "statement": "The SPI cleanup path explicitly supplies ERRCODE_WARNING for a non-empty SPI stack and reports a missing SPI_finish hint."
}
claims · protocol.severity-fields
{
  "claim_id": "protocol.severity-fields",
  "limits": "The fields describe the wire message; they do not change the SQLSTATE directory row.",
  "method": "Read the official Error and Notice Message Fields table in the PostgreSQL 18 documentation.",
  "position": 5,
  "runtime": [],
  "sources": [
    "doc.protocol.18"
  ],
  "statement": "The protocol carries localized S and nonlocalized V severity fields; error messages use ERROR/FATAL/PANIC while notice messages can use WARNING, NOTICE, DEBUG, INFO, or LOG."
}
claims · delivery.logging-thresholds
{
  "claim_id": "delivery.logging-thresholds",
  "limits": "Thresholds affect visibility, not the underlying emitting condition, and configuration can differ between sessions and servers.",
  "method": "Read the PostgreSQL 18 runtime logging configuration entries.",
  "position": 6,
  "runtime": [],
  "sources": [
    "doc.logging.18"
  ],
  "statement": "client_min_messages and log_min_messages control which messages are delivered to clients or written to the server log."
}
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; observed presence is not an asserted introduction version.",
  "method": "Read the manifest snapshots and the same-tag REL8_1_4 errcodes.sgml row for the 01000 definition; the per-code history file is a derived view of these locked records.",
  "position": 7,
  "runtime": [],
  "sources": [
    "manifest.01000",
    "doc.errcodes.8.1.4"
  ],
  "statement": "The catalogue records 01000 in the locked 7.4–8.4.22 pre-9.0 formal sources and every listed formal snapshot from 9.0.23 through 18.6 and 19beta3. The same-tag REL8_1_4 errcodes.sgml row already lists the older 1000 spelling with condition name warning, confirming that condition-name observation by 8.1.4. Candidate source gaps remain for 7.0–7.3, so 7.4 is a presence boundary rather than an exact introduction version."
}
claims · runtime.representative-warning
{
  "claim_id": "runtime.representative-warning",
  "limits": "This runtime result covers the PL/pgSQL RAISE WARNING dispatch probe only; it is not runtime evidence for the separate NOTIFY queue, hstore, XID, or MultiXact paths.",
  "method": "Read the stable case and ordered snippet registry, then compare the warning notice, SQLSTATE, severity, followup, and IDLE status in both final run summaries and raw records.",
  "position": 8,
  "runtime": [],
  "sources": [
    "case-manifest.01000",
    "snippet-registry.01000.final",
    "runtime.01000-warning-dispatch-final-20260909.latest",
    "runtime.01000-warning-dispatch-final-20260909.pg10"
  ],
  "statement": "The generic_warning_boundary case delivered an observed WARNING with SQLSTATE 01000 and the calibration warning message on PostgreSQL 18.6 and 10.21; the autocommit connection remained IDLE and accepted SELECT 1."
}
messages · message.notify-queue
{
  "limits": "DETAIL and HINT are conditional on finding an oldest listener process.",
  "message_id": "message.notify-queue",
  "path": "",
  "position": 0,
  "raw": {
    "detail_template": "The server process with PID %d is among those with the oldest transactions.",
    "hint_template": "The NOTIFY queue cannot be emptied until that process ends its current transaction.",
    "id": "message.notify-queue",
    "limits": "DETAIL and HINT are conditional on finding an oldest listener process.",
    "primary_template": "NOTIFY queue is %.0f%% full",
    "severity_source": "default_by_severity WARNING",
    "sources": [
      "src.async.18.6"
    ],
    "sqlstate": "01000"
  },
  "severity": "default_by_severity WARNING",
  "sources": [
    "src.async.18.6"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "NOTIFY queue is %.0f%% full",
      "position": 0,
      "role": "",
      "template": "NOTIFY queue is %.0f%% full"
    },
    {
      "kind": "detail",
      "literal": "The server process with PID is among those with the oldest transactions.",
      "position": 1,
      "role": "",
      "template": "The server process with PID %d is among those with the oldest transactions."
    },
    {
      "kind": "hint",
      "literal": "The NOTIFY queue cannot be emptied until that process ends its current transaction.",
      "position": 2,
      "role": "",
      "template": "The NOTIFY queue cannot be emptied until that process ends its current transaction."
    }
  ]
}
messages · message.xid-wraparound
{
  "limits": "The remaining count and optional follow-up text are calculated from live transaction state.",
  "message_id": "message.xid-wraparound",
  "path": "",
  "position": 1,
  "raw": {
    "hint_template": "To avoid transaction ID assignment failures, execute a database-wide VACUUM in that database.\nYou might also need to commit or roll back old prepared transactions, or drop stale replication slots.",
    "id": "message.xid-wraparound",
    "limits": "The remaining count and optional follow-up text are calculated from live transaction state.",
    "primary_template": "database \"%s\" must be vacuumed within %u transactions",
    "severity_source": "default_by_severity WARNING",
    "sources": [
      "src.varsup.18.6"
    ],
    "sqlstate": "01000",
    "template_type": "singular"
  },
  "severity": "default_by_severity WARNING",
  "sources": [
    "src.varsup.18.6"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "database \" \" must be vacuumed within transactions",
      "position": 0,
      "role": "",
      "template": "database \"%s\" must be vacuumed within %u transactions"
    },
    {
      "kind": "hint",
      "literal": "To avoid transaction ID assignment failures, execute a database-wide VACUUM in that database. You might also need to commit or roll back old prepared transactions, or drop stale replication slots.",
      "position": 1,
      "role": "",
      "template": "To avoid transaction ID assignment failures, execute a database-wide VACUUM in that database.\nYou might also need to commit or roll back old prepared transactions, or drop stale replication slots."
    }
  ]
}
messages · message.multixact-wraparound
{
  "limits": "The singular/plural selection and remaining count depend on live MultiXact state.",
  "message_id": "message.multixact-wraparound",
  "path": "",
  "position": 2,
  "raw": {
    "hint_template": "Execute a database-wide VACUUM in that database.\nYou might also need to commit or roll back old prepared transactions.",
    "id": "message.multixact-wraparound",
    "limits": "The singular/plural selection and remaining count depend on live MultiXact state.",
    "primary_template_plural": "database \"%s\" must be vacuumed before %u more MultiXactIds are used",
    "primary_template_singular": "database \"%s\" must be vacuumed before %u more MultiXactId is used",
    "severity_source": "default_by_severity WARNING",
    "sources": [
      "src.multixact.18.6"
    ],
    "sqlstate": "01000",
    "template_type": "plural"
  },
  "severity": "default_by_severity WARNING",
  "sources": [
    "src.multixact.18.6"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "database \" \" must be vacuumed before more MultiXactId is used",
      "position": 0,
      "role": "singular",
      "template": "database \"%s\" must be vacuumed before %u more MultiXactId is used"
    },
    {
      "kind": "primary",
      "literal": "database \" \" must be vacuumed before more MultiXactIds are used",
      "position": 1,
      "role": "plural",
      "template": "database \"%s\" must be vacuumed before %u more MultiXactIds are used"
    },
    {
      "kind": "hint",
      "literal": "Execute a database-wide VACUUM in that database. You might also need to commit or roll back old prepared transactions.",
      "position": 2,
      "role": "",
      "template": "Execute a database-wide VACUUM in that database.\nYou might also need to commit or roll back old prepared transactions."
    }
  ]
}
messages · message.spi-stack
{
  "limits": "This template belongs to SPI cleanup and does not describe every 01000 path.",
  "message_id": "message.spi-stack",
  "path": "",
  "position": 3,
  "raw": {
    "hint_template": "Check for missing \"SPI_finish\" calls.",
    "id": "message.spi-stack",
    "limits": "This template belongs to SPI cleanup and does not describe every 01000 path.",
    "primary_template": "transaction left non-empty SPI stack",
    "severity_source": "explicit ERRCODE_WARNING at WARNING",
    "sources": [
      "src.spi.18.6"
    ],
    "sqlstate": "01000"
  },
  "severity": "explicit ERRCODE_WARNING at WARNING",
  "sources": [
    "src.spi.18.6"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "transaction left non-empty SPI stack",
      "position": 0,
      "role": "",
      "template": "transaction left non-empty SPI stack"
    },
    {
      "kind": "hint",
      "literal": "Check for missing \"SPI_finish\" calls.",
      "position": 1,
      "role": "",
      "template": "Check for missing \"SPI_finish\" calls."
    }
  ]
}
messages · message.runtime-warning
{
  "limits": "This message is supplied by the representative probe and is not a built-in template for the NOTIFY, hstore, XID, or MultiXact paths.",
  "message_id": "message.runtime-warning",
  "path": "",
  "position": 4,
  "raw": {
    "id": "message.runtime-warning",
    "limits": "This message is supplied by the representative probe and is not a built-in template for the NOTIFY, hstore, XID, or MultiXact paths.",
    "primary_template": "calibration warning",
    "severity_source": "observed WARNING notice",
    "sources": [
      "runtime.01000-warning-dispatch-final-20260909.latest",
      "runtime.01000-warning-dispatch-final-20260909.pg10"
    ],
    "sqlstate": "01000"
  },
  "severity": "observed WARNING notice",
  "sources": [
    "runtime.01000-warning-dispatch-final-20260909.latest",
    "runtime.01000-warning-dispatch-final-20260909.pg10"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "calibration warning",
      "position": 0,
      "role": "",
      "template": "calibration warning"
    }
  ]
}
runtimes · runtime.01000-warning-dispatch-final-20260909.latest · 18.6 (Homebrew) · passed
{
  "cases": [
    "generic_warning_boundary"
  ],
  "limits": "The run verifies default RAISE WARNING dispatch, not the separate NOTIFY queue, hstore, XID, or MultiXact warning paths.",
  "position": 0,
  "raw": {
    "cases": [
      "generic_warning_boundary"
    ],
    "id": "runtime.01000-warning-dispatch-final-20260909.latest",
    "limits": "The run verifies default RAISE WARNING dispatch, not the separate NOTIFY queue, hstore, XID, or MultiXact warning paths.",
    "observed": {
      "followup": 1,
      "message_primary": "calibration warning",
      "scope": "PL/pgSQL RAISE WARNING dispatch probe; does not represent the hstore_compat.c warning path",
      "severity": "WARNING",
      "sqlstate": "01000",
      "status_after_probe": "IDLE"
    },
    "raw": "verify/results/01000-warning-dispatch-final-20260909/latest/raw.jsonl",
    "raw_sha256": "754dfce792e831725220e08cd071d0b86642003c774794979d211eb5b5882a84",
    "run_id": "01000-warning-dispatch-final-20260909",
    "server_version": "18.6 (Homebrew)",
    "server_version_num": 180006,
    "snippet_registry": {
      "path": "verify/cases/01000/snippets.json",
      "sha256": "4c8a6418ae49f45ade9dd68c04d13ef1c300f472b2816c9ff57455776153ac58"
    },
    "status": "passed",
    "summary": "verify/results/01000-warning-dispatch-final-20260909/latest/summary.json",
    "summary_sha256": "aa77c0684de9e5f8e257416ba32f10550ebb2362bf8ce083ff6c4fd4242b2565",
    "target": "latest"
  },
  "run_id": "01000-warning-dispatch-final-20260909",
  "runtime_id": "runtime.01000-warning-dispatch-final-20260909.latest",
  "server_version": "18.6 (Homebrew)",
  "status": "passed",
  "target": "latest"
}
runtimes · runtime.01000-warning-dispatch-final-20260909.pg10 · 10.21 (Debian 10.21-1.pgdg90+1) · passed
{
  "cases": [
    "generic_warning_boundary"
  ],
  "limits": "The run verifies default RAISE WARNING dispatch, not the separate NOTIFY queue, hstore, XID, or MultiXact warning paths.",
  "position": 1,
  "raw": {
    "cases": [
      "generic_warning_boundary"
    ],
    "id": "runtime.01000-warning-dispatch-final-20260909.pg10",
    "image": "postgres@sha256:b2baf8998630663d21370da06387c950e587071bdd307ee34e661cdcc7442bcc",
    "limits": "The run verifies default RAISE WARNING dispatch, not the separate NOTIFY queue, hstore, XID, or MultiXact warning paths.",
    "observed": {
      "followup": 1,
      "message_primary": "calibration warning",
      "scope": "PL/pgSQL RAISE WARNING dispatch probe; does not represent the hstore_compat.c warning path",
      "severity": "WARNING",
      "sqlstate": "01000",
      "status_after_probe": "IDLE"
    },
    "raw": "verify/results/01000-warning-dispatch-final-20260909/pg10/raw.jsonl",
    "raw_sha256": "471efe14b8234036ed5d978f816b08b2f577eab6c79b56b1259ade338983251d",
    "run_id": "01000-warning-dispatch-final-20260909",
    "server_version": "10.21 (Debian 10.21-1.pgdg90+1)",
    "server_version_num": 100021,
    "snippet_registry": {
      "path": "verify/cases/01000/snippets.json",
      "sha256": "4c8a6418ae49f45ade9dd68c04d13ef1c300f472b2816c9ff57455776153ac58"
    },
    "status": "passed",
    "summary": "verify/results/01000-warning-dispatch-final-20260909/pg10/summary.json",
    "summary_sha256": "ee813797dd39ee66307ce1016bc7840730fa1e919afdbc9a44d8cb75f38129af",
    "target": "pg10"
  },
  "run_id": "01000-warning-dispatch-final-20260909",
  "runtime_id": "runtime.01000-warning-dispatch-final-20260909.pg10",
  "server_version": "10.21 (Debian 10.21-1.pgdg90+1)",
  "status": "passed",
  "target": "pg10"
}
sources · src.errcodes.18.6
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "",
  "location": "lines 81-84",
  "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.async.18.6
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "",
  "location": "lines 1518-1559",
  "path": "src/backend/commands/async.c",
  "position": 2,
  "sha256": "61818f28cd0364a7ada65d4efa94db0ef1a441064621b26314bb7a13816c24e1",
  "source_id": "src.async.18.6",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/commands/async.c#L1518-L1559"
}
sources · src.varsup.18.6
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "",
  "location": "lines 168-179",
  "path": "src/backend/access/transam/varsup.c",
  "position": 3,
  "sha256": "63525c51e70b9daa5a3544fae19537aa3065a62f8b5506a78cd646648d228a02",
  "source_id": "src.varsup.18.6",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/access/transam/varsup.c#L168-L179"
}
sources · src.multixact.18.6
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "",
  "location": "lines 1287-1300",
  "path": "src/backend/access/transam/multixact.c",
  "position": 4,
  "sha256": "cf6634f5dc84f2938623bc0e8f8c19c1a37331160810815c169a5b3b5e22cd5f",
  "source_id": "src.multixact.18.6",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/access/transam/multixact.c#L1287-L1300"
}
sources · src.spi.18.6
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "",
  "location": "lines 467-472",
  "path": "src/backend/executor/spi.c",
  "position": 5,
  "sha256": "7244b45f632583c72530832df901b788fe403c8857425dd13edb49d9f84b0c78",
  "source_id": "src.spi.18.6",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/executor/spi.c#L467-L472"
}
sources · doc.protocol.18
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "",
  "location": "lines 6254-6290, ErrorResponse/NoticeResponse severity fields",
  "path": "doc/src/sgml/protocol.sgml",
  "position": 6,
  "sha256": "745339e07ebbc2bb67d98b258e25772ada644ef26011e3cd6b3fcbb435235f89",
  "source_id": "doc.protocol.18",
  "tag": "PG18-docs",
  "url": "https://www.postgresql.org/docs/18/protocol-error-fields.html"
}
sources · doc.logging.18
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "",
  "location": "lines 7142-7190 and 9721-9760, message logging thresholds",
  "path": "doc/src/sgml/config.sgml",
  "position": 7,
  "sha256": "ffca322c15315ba670733d6b320f23cbba7374db0d18937298ffc07b58799ef6",
  "source_id": "doc.logging.18",
  "tag": "PG18-docs",
  "url": "https://www.postgresql.org/docs/18/runtime-config-logging.html"
}
sources · doc.errcodes.8.1.4
{
  "commit": "313a720f95a3f41b59f853786b184f38f82172d9",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "REL8_1_4 table rows 93-95; the older table renders 01000 as 1000",
  "path": "doc/src/sgml/errcodes.sgml",
  "position": 8,
  "sha256": "fdd6f5470b19970d3b60219a44e66b33193647975d346adfe2a98178f706b776",
  "source_id": "doc.errcodes.8.1.4",
  "tag": "",
  "url": "https://github.com/postgres/postgres/blob/313a720f95a3f41b59f853786b184f38f82172d9/doc/src/sgml/errcodes.sgml#L93-L95"
}
sources · manifest.01000
{
  "commit": "",
  "docs_url": "",
  "kind": "local_artifact",
  "location": "snapshots and definition_blobs entries for the 01000 definition",
  "path": "sources/manifest.lock.json",
  "position": 9,
  "sha256": "1727a275f336988ff96b4f9990a4ca253080f73fc5d316e7def165c8cf3708a8",
  "source_id": "manifest.01000",
  "tag": "",
  "url": "../sources/manifest.lock.json"
}
sources · case-manifest.01000
{
  "commit": "",
  "docs_url": "",
  "kind": "local_artifact",
  "location": "generic_warning_boundary",
  "path": "verify/cases/01000/cases.json",
  "position": 10,
  "sha256": "4d3c6cf00c5ec99a0ecee396fbc66aee86c0fd9297f05a143bb0e0eb0c6c87ef",
  "source_id": "case-manifest.01000",
  "tag": "",
  "url": "../verify/cases/01000/cases.json"
}
sources · snippet-registry.01000.final
{
  "commit": "",
  "docs_url": "",
  "kind": "local_artifact",
  "location": "generic_warning_boundary ordered probe and followup",
  "path": "verify/cases/01000/snippets.json",
  "position": 11,
  "sha256": "4c8a6418ae49f45ade9dd68c04d13ef1c300f472b2816c9ff57455776153ac58",
  "source_id": "snippet-registry.01000.final",
  "tag": "",
  "url": "../verify/cases/01000/snippets.json"
}

来源引用

完整定义与证据 JSON

定义来源

center · PostgreSQL 18 · english-manuals:d58eaf6df5e23be53ba773628bd149e53e124fb05f00582aff97ff2406afb3b4

正文语言: zh-Hans · english-manuals:d58eaf6df5e23be53ba773628bd149e53e124fb05f00582aff97ff2406afb3b4