跳转到主要内容

HV00P — fdw_no_schemas

PostgreSQL SQLSTATE HV00P 表示 FDW 不支持 IMPORT FOREIGN SCHEMA;核心命令直接检查包装器回调。

HV00P — fdw_no_schemas

速览

当选定的 FDW 没有 ImportForeignSchema 回调时,核心的 IMPORT FOREIGN SCHEMA 命令会产生 HV00P。它表示包装器不支持该导入机制,不表示远端模式为空。

字段
SQLSTATE HV00P
条件名 fdw_no_schemas
状态 有效
已知存在于 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_NO_SCHEMAS
别名

含义与消息

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 扩展版本。

版本

锁定的 9.1.0 及后续快照中已有 HV00P 条件定义,但这不表示 IMPORT FOREIGN SCHEMA 在 9.1 已存在。固定的 PostgreSQL 9.5.0 源码快照已经包含该命令及其 ImportForeignSchema 回调;上面的 18.6 路径是本文确认的当前消息实现。没有可用的 9.1 之前定义观察资料。

HV00Qpostgres_fdw 找不到远端模式;HV00D 是无效选项名称;HV000 是一般 FDW 错误。

来源

  • errcodes.txt — 定义,SHA-256 6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba
  • foreigncmds.c — 回调检查与消息。
  • fdwapi.hImportForeignSchema 回调定义;SHA-256 572ba892e6435ca92d3b3bc84dde5bbd3160cc3a082693daab8daa835c4d2cd7
  • REL9_5_0 快照中的 foreigncmds.c — 命令及回调的功能边界;SHA-256 d2ab3a8883ed1e27c38a0a7ff83f0fc9d493c488d7e30f56eef7d1ae449f9a16
  • 结构化证据 — 来源路径和有界运行范围。