文档 / SQL 状态码 / Class HV 外部数据包装器错误
HV00P fdw_no_schemas
ERROR 源码确认 参考 未实测
- 条件名
fdw_no_schemas- 宏名称
ERRCODE_FDW_NO_SCHEMAS- 启用版本
- 9.1
- 状态
- 活跃
版本覆盖
速览
当选定的 FDW 没有 ImportForeignSchema 回调时,核心的 IMPORT FOREIGN SCHEMA 命令会产生 HV00P。它表示包装器不支持该导入机制,不表示远端模式为空。
含义与消息
当 fdw_routine->ImportForeignSchema 为空时,核心路径以 ERROR: foreign-data wrapper "%s" does not support IMPORT FOREIGN SCHEMA 报告。包装器名称是动态字段;此时未必已经查询远端模式。
诊断
确认 SERVER 子句中的 FDW,并检查其 handler 是否实现 ImportForeignSchema。将这种能力缺失与 HV00Q 区分开;后者是 postgres_fdw 支持导入却找不到请求的远端模式。
处理
使用显式的 CREATE FOREIGN TABLE 定义,改用实现了模式导入的包装器,或为包装器增加受支持的回调。对同一个 handler 重复执行相同的 IMPORT FOREIGN SCHEMA 只会得到同一能力错误。
消息与诊断
确认的严重级别为 ERROR,该调用组没有 detail 或 hint。保留 fdwname、服务器身份和 handler 扩展版本。
报文模板
源码里的格式串,不是某一次运行的输出。%s 之类是占位符,实际报文会填入对象名与取值。适用范围一栏是核验时留下的原始英文记录,未经翻译。
foreign-data wrapper "%s" does not support IMPORT FOREIGN SCHEMA
版本
锁定的 9.1.0 及后续快照中已有 HV00P 条件定义,但这不表示 IMPORT FOREIGN SCHEMA 在 9.1 已存在。固定的 PostgreSQL 9.5.0 源码快照已经包含该命令及其 ImportForeignSchema 回调;上面的 18.6 路径是本文确认的当前消息实现。没有可用的 9.1 之前定义观察资料。
来源
- 上游源码 src/backend/utils/errcodes.txt
- 上游源码 src/include/foreign/fdwapi.h 第 259–260 行
- 上游源码 src/backend/commands/foreigncmds.c
- 上游源码 src/backend/commands/foreigncmds.c 第 1509–1542 行
- 核验材料 raw/calls/REL_18_6.jsonl
证据
断言
每条断言都写明了是怎么核实的,以及它不覆盖什么。这一层是核验时留下的原始英文记录,照原样呈现,未经翻译。
-
HV00P is fdw_no_schemas in SQL/MED Class HV.
-
The core IMPORT FOREIGN SCHEMA command emits HV00P when the selected FDW handler has no ImportForeignSchema callback.
-
The IMPORT FOREIGN SCHEMA command and its ImportForeignSchema handler callback are present in the fixed PostgreSQL 9.5.0 source snapshot; the 9.1.0 directory observation for HV00P is a condition-definition boundary, not evidence that this command existed in 9.1.
同类 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 |
| 包装器无法使用该描述符字段标识符。 | 活跃 | |||