文档 / SQL 状态码 / Class HV 外部数据包装器错误
HV004 fdw_invalid_data_type
外部数据包装器数据类型无效
ERROR 仅定义 参考 未实测
- 条件名
fdw_invalid_data_type- 宏名称
ERRCODE_FDW_INVALID_DATA_TYPE- 启用版本
- 9.1
- 状态
- 活跃
版本覆盖
速览
HV004 表示 FDW 无法使用某个数据类型。18.6 核心及 contrib 调用扫描没有解析出直接报告组,因此不能指定自带包装器报文或自然 SQL 触发器。
含义
包装器可能拒绝本地列类型、远端类型映射或值转换。FDW 文档说明,类型不匹配时可以报告错误,但没有规定统一映射或报文;不能把每个类型转换失败都归为此码。
报文与诊断
没有确认的 18.6 核心报文。保留 M/D/H、源码函数、操作阶段、本地列类型、远端类型和包装器版本;远端服务器的类型错误要和包装器本地 SQLSTATE 区分。
诊断
确认列和转换方向,查看固定版本包装器的校验器、deparser 与元组转换代码,并比较本地目录类型、必要的 typmod/collation 和远端元数据。不要从通用 cast 或 22xxx 推断 HV004。
处理
选择包装器支持的类型映射,或在确认数据兼容后修改外部表定义。若转换由外部扩展实现,应按兼容契约升级或配置;相同元数据下错误是确定性的,不能靠重试解决。
版本
目录从 9.1.0 观察到该码,延续到 18.6 与 19 Beta 3;pre-9 定义扫描未观察到它,精确引入版本未知。
来源
证据
断言
每条断言都写明了是怎么核实的,以及它不覆盖什么。这一层是核验时留下的原始英文记录,照原样呈现,未经翻译。
-
HV004 is fdw_invalid_data_type in Class HV.
-
The FDW callback contract permits a wrapper to raise an error for a data-type mismatch, but the locked 18.6 core/contrib scan has no direct HV004 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 |
| 包装器无法使用该描述符字段标识符。 | 活跃 | |||