文档 / SQL 状态码 / Class HV 外部数据包装器错误
HV000 fdw_error
外部数据包装器错误
ERROR 仅定义 参考 未实测
- 条件名
fdw_error- 宏名称
ERRCODE_FDW_ERROR- 启用版本
- 9.1
- 状态
- 活跃
版本覆盖
速览
HV000 是 SQL/MED 外部数据包装器(FDW)的通用错误条件,只说明错误位于 FDW 边界,不对应某一种远端故障、回调或重试策略。PostgreSQL 18.6 核心/contrib 扫描没有解析出直接的 ERRCODE_FDW_ERROR 报告组,具体触发方式取决于安装的实现。
包装器回调可以报告自己的 SQLSTATE,访问另一系统的包装器也可能转发远端诊断。解释 HV000 前,应保留完整诊断、外部表、外部服务器、包装器名称与版本以及操作阶段。
含义与范围
18.6 定义为 SQL/MED 专用 Class HV 中的 HV000 E ERRCODE_FDW_ERROR fdw_error。FDW API 提供规划、扫描、修改、导入和解释回调;执行器通过安装的包装器提供的 FDW routine 调用这些回调。条件集中定义而具体实现位于扩展,正是这个边界的结果。
postgres_fdw、file_fdw 和第三方 FDW 实现 FDW 回调 API。dblink 是独立的 contrib 客户端 API,访问另一 PostgreSQL 服务器时也可能使用 Class HV 代码,但它不是 FDW 回调实现。远端 SQLSTATE、libpq 连接错误和包装器本地错误可能出现在一次操作中,但不能互相替代。
报文与诊断
归档的 18.6 调用扫描没有解析出 HV000 的稳定核心报文变体。尽可能保留 C/SQLSTATE、S、V、M、D、H、W、F、L、R,以及包装器回调或远端命令;不能用“FDW error”概括实际报文。
诊断
先确定阶段:规划、扫描初始化、取数、增删改、提交/回滚、模式导入或 EXPLAIN。再检查外部表和服务器选项、用户映射、包装器版本及远端日志。若是远端 PostgreSQL 包装器,要分别记录远端和本地 SQLSTATE;它们描述的是同一故障的不同层。
本次扫描覆盖 PostgreSQL 18.6 核心及自带 contrib 源码,不覆盖所有外部包装器、驱动、远端数据库或用户回调。
处理
根据已确认的层次修复外部服务器或用户映射、包装器选项/回调契约、远端操作,或安装兼容的包装器版本。只有确认包装器是否已访问远端以及写操作是否可能提交后才重试;单独的 HV000 不能证明这两点。
版本
锁定目录在 9.1.0 已观察到 HV000,并存在于截至 18.6 的正式快照及 19 Beta 3 预览快照。pre-9 扫描的 7.4–8.4 定义文件未观察到它,这只是资料边界,不是精确引入版本。
来源
证据
断言
每条断言都写明了是怎么核实的,以及它不覆盖什么。这一层是核验时留下的原始英文记录,照原样呈现,未经翻译。
-
HV000 is fdw_error in SQL/MED Class HV.
-
The core FDW API dispatches installed wrapper callbacks; dblink is a separate contrib client API.
-
The locked 18.6 resolved core/contrib call scan contains no direct HV000 report group.
同类 SQL 状态码
| 状态码 | 条件名 | 宏名称 | 严重等级 | 版本 |
|---|---|---|---|---|
| HV000 | fdw_error | ERRCODE_FDW_ERROR |
ERROR | 9.1 |
| 外部数据包装器的通用错误,需看包装器诊断。 | 活跃 | |||
| HV001 | fdw_out_of_memory | ERRCODE_FDW_OUT_OF_MEMORY |
ERROR | 9.1 |
| 包装器分配内存失败,如获取 libpq 默认选项时。 | 活跃 | |||
| HV002 | fdw_dynamic_parameter_value_needed | ERRCODE_FDW_DYNAMIC_PARAMETER_VALUE_NEEDED |
ERROR | 9.1 |
| 包装器缺少必需的参数值,如未给 filename。 | 活跃 | |||
| HV004 | fdw_invalid_data_type | ERRCODE_FDW_INVALID_DATA_TYPE |
ERROR | 9.1 |
| 包装器无法使用该数据类型,类型映射不匹配。 | 活跃 | |||
| HV005 | fdw_column_name_not_found | ERRCODE_FDW_COLUMN_NAME_NOT_FOUND |
ERROR | 9.1 |
| 包装器在远端或描述符中找不到该外部列名。 | 活跃 | |||
| HV006 | fdw_invalid_data_type_descriptors | ERRCODE_FDW_INVALID_DATA_TYPE_DESCRIPTORS |
ERROR | 9.1 |
| 包装器的数据类型描述符不一致或不可用。 | 活跃 | |||
| HV007 | fdw_invalid_column_name | ERRCODE_FDW_INVALID_COLUMN_NAME |
ERROR | 9.1 |
| 传给包装器的列名无效,不符合命名规则。 | 活跃 | |||
| HV008 | fdw_invalid_column_number | ERRCODE_FDW_INVALID_COLUMN_NUMBER |
ERROR | 9.1 |
| 包装器描述符收到超出范围的列序号。 | 活跃 | |||
| HV009 | fdw_invalid_use_of_null_pointer | ERRCODE_FDW_INVALID_USE_OF_NULL_POINTER |
ERROR | 9.1 |
| 包装器边界上非法使用了空指针。 | 活跃 | |||
| HV00A | fdw_invalid_string_format | ERRCODE_FDW_INVALID_STRING_FORMAT |
ERROR | 9.1 |
| 包装器无法接受该字符串的格式。 | 活跃 | |||
| HV00B | fdw_invalid_handle | ERRCODE_FDW_INVALID_HANDLE |
ERROR | 9.1 |
| 包装器收到未知、已关闭或无效的句柄。 | 活跃 | |||
| HV00C | fdw_invalid_option_index | ERRCODE_FDW_INVALID_OPTION_INDEX |
ERROR | 9.1 |
| 包装器处理自身选项数组时收到无效索引。 | 活跃 | |||
| HV00D | fdw_invalid_option_name | ERRCODE_FDW_INVALID_OPTION_NAME |
ERROR | 9.1 |
| 当前上下文不接受该外部数据包装器选项名。 | 活跃 | |||
| HV00J | fdw_option_name_not_found | ERRCODE_FDW_OPTION_NAME_NOT_FOUND |
ERROR | 9.1 |
| dblink 连接选项不在接受的选项集合中。 | 活跃 | |||
| HV00K | fdw_reply_handle | ERRCODE_FDW_REPLY_HANDLE |
ERROR | 9.1 |
| 包装器读取回复时收到无效的回复句柄。 | 活跃 | |||
| HV00L | fdw_unable_to_create_execution | ERRCODE_FDW_UNABLE_TO_CREATE_EXECUTION |
ERROR | 9.1 |
| 包装器准备执行时无法创建执行对象。 | 活跃 | |||
| HV00M | fdw_unable_to_create_reply | ERRCODE_FDW_UNABLE_TO_CREATE_REPLY |
ERROR | 9.1 |
| 包装器无法创建存放结果的回复对象。 | 活跃 | |||
| HV00N | fdw_unable_to_establish_connection | ERRCODE_FDW_UNABLE_TO_ESTABLISH_CONNECTION |
ERROR | 9.1 |
| 包装器无法与外部数据源建立连接。 | 活跃 | |||
| HV00P | fdw_no_schemas | ERRCODE_FDW_NO_SCHEMAS |
ERROR | 9.1 |
| 包装器不支持 IMPORT FOREIGN SCHEMA 导入。 | 活跃 | |||
| HV00Q | fdw_schema_not_found | ERRCODE_FDW_SCHEMA_NOT_FOUND |
ERROR | 9.1 |
| IMPORT FOREIGN SCHEMA 找不到请求的远端模式。 | 活跃 | |||
| HV00R | fdw_table_not_found | ERRCODE_FDW_TABLE_NOT_FOUND |
ERROR | 9.1 |
| 包装器在外部数据源中找不到请求的表。 | 活跃 | |||
| HV010 | fdw_function_sequence_error | ERRCODE_FDW_FUNCTION_SEQUENCE_ERROR |
ERROR | 9.1 |
| 包装器的函数被以无效的顺序调用。 | 活跃 | |||
| HV014 | fdw_too_many_handles | ERRCODE_FDW_TOO_MANY_HANDLES |
ERROR | 9.1 |
| 包装器的句柄数量达到上限。 | 活跃 | |||
| HV021 | fdw_inconsistent_descriptor_information | ERRCODE_FDW_INCONSISTENT_DESCRIPTOR_INFORMATION |
ERROR | 9.1 |
| 包装器描述符中的信息互相不一致。 | 活跃 | |||
| HV024 | fdw_invalid_attribute_value | ERRCODE_FDW_INVALID_ATTRIBUTE_VALUE |
ERROR | 9.1 |
| 包装器拒绝了某个属性值,取值无效。 | 活跃 | |||
| HV090 | fdw_invalid_string_length_or_buffer_length | ERRCODE_FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH |
ERROR | 9.1 |
| 包装器边界的字符串或缓冲区长度无效。 | 活跃 | |||
| HV091 | fdw_invalid_descriptor_field_identifier | ERRCODE_FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER |
ERROR | 9.1 |
| 包装器无法使用该描述符字段标识符。 | 活跃 | |||