选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / 错误代码 / Class 22 数据异常

2200S invalid_xml_comment

ERROR 源码确认 参考 未实测

类别
Class 22 数据异常
严重等级
ERROR
条件名
invalid_xml_comment
宏名称
ERRCODE_INVALID_XML_COMMENT
启用版本
8.3
状态
活跃

版本覆盖

速览

XML 注释无效。PostgreSQL 18.6 的 xmlcomment 路径在注释文本含有被禁止的 -- 序列或以 - 结尾时报告 invalid XML comment;周围源码检查的是注释专属的 XML 语法,而不是一般文档失败。

含义

本成员专用于 XML 注释语法,不涵盖所有 XML 文档失败。在 USE_LIBXML 下,xmlcomment 在构造 `` 之前扫描输入;任意位置的双连字符或末尾连字符都会被拒绝。

报文

该 guard 以 ERROR 严重性报告 primary:invalid XML comment。引用分支没有独立 DETAIL 或 HINT。未启用 USE_LIBXML 时函数走独立的 XML 支持路径(0A000),因此源码存在本身不能证明所有服务器构建都提供此功能。

报文模板

源码里的格式串,不是某一次运行的输出。%s 之类是占位符,实际报文会填入对象名与取值。适用范围一栏是核验时留下的原始英文记录,未经翻译。

主消息 invalid XML comment

来源:src/backend/utils/adt/xml.c @ REL_18_6

诊断

检查报文指出的注释文本和 XML 上下文。XML 注释不能包含被禁止的双连字符形式,也不能以连字符结尾;在保留周围标记的前提下修正该注释。若解析器实际指出处理指令或非文档内容,应按报出的 2200T 或 2200L/N 处理。

处理

在保留周围 XML 的前提下修正注释文本,依据注释专属报文处理,而不是套用一般文档修复。

该分支抛出 ERROR 时,显式事务应先用 ROLLBACK 恢复,或对语句前已建立的保存点执行 ROLLBACK TO SAVEPOINT,再重试;自动提交下只在失败语句结束后重试修正后的动作。事务边界规则见事务与重试指南。

版本

锁定目录从 8.3.0 起记录该条件;固定源码覆盖 PostgreSQL 18.6。

来源

证据

断言

每条断言都写明了是怎么核实的,以及它不覆盖什么。这一层是核验时留下的原始英文记录,照原样呈现,未经翻译。

  • 2200S is invalid_xml_comment in SQLSTATE Class 22.

    核实方式Read fixed definition.

    来源src/backend/utils/errcodes.txt

  • xmlcomment rejects a comment containing -- or ending in - and emits 2200S with invalid XML comment.

    核实方式Read the complete comment validation loop.

    不覆盖The branch is guarded by USE_LIBXML; without XML support the function follows the separate 0A000 path.

    来源src/backend/utils/adt/xml.c

  • The locked catalogue records 2200S from 8.3.0 without proving an exact implementation introduction date.

    核实方式Use catalogue boundary.

    来源src/backend/utils/errcodes.txt

同类错误代码

Class 22 数据异常 下的其他成员。