跳转到主要内容

HV004 — fdw_invalid_data_type(外部数据包装器数据类型无效)

PostgreSQL SQLSTATE HV004 表示 FDW 数据类型不匹配。应确认包装器类型映射和外部表定义。

HV004 — fdw_invalid_data_type

速览

HV004 表示 FDW 无法使用某个数据类型。18.6 核心及 contrib 调用扫描没有解析出直接报告组,因此不能指定自带包装器报文或自然 SQL 触发器。

字段
SQLSTATE HV004
条件名 fdw_invalid_data_type
状态 有效
已知存在于 9.1.0
锁定快照 9.1.24, 9.2.24, 9.3.25, 9.4.26, 9.5.25, 9.6.24, 10.23, 11.22, 12.22, 13.23, 14.24, 15.19, 16.15, 17.11, 18.6, 19beta3
ERRCODE_FDW_INVALID_DATA_TYPE
别名

含义

包装器可能拒绝本地列类型、远端类型映射或值转换。FDW 文档说明,类型不匹配时可以报告错误,但没有规定统一映射或报文;不能把每个类型转换失败都归为此码。

报文与诊断

没有确认的 18.6 核心报文。保留 M/D/H、源码函数、操作阶段、本地列类型、远端类型和包装器版本;远端服务器的类型错误要和包装器本地 SQLSTATE 区分。

诊断

确认列和转换方向,查看固定版本包装器的校验器、deparser 与元组转换代码,并比较本地目录类型、必要的 typmod/collation 和远端元数据。不要从通用 cast 或 22xxx 推断 HV004

处理

选择包装器支持的类型映射,或在确认数据兼容后修改外部表定义。若转换由外部扩展实现,应按兼容契约升级或配置;相同元数据下错误是确定性的,不能靠重试解决。

版本

目录从 9.1.0 观察到该码,延续到 18.6 与 19 Beta 3;pre-9 定义扫描未观察到它,精确引入版本未知。

HV006 是类型描述符不一致;HV007 是列名无效;42804 是核心类型不匹配,边界不同。

来源