# HV00P — fdw_no_schemas

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

# HV00P — fdw_no_schemas

## 速览 {#at-a-glance}

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

<!-- BEGIN SQLSTATE FACTS: generated by scripts/generate.py; do not edit -->

| 字段 | 值 |
| --- | --- |
| 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` |
| 别名 | `—` |

<!-- source facts: data/errcodes/HV00P.json -->
<!-- END SQLSTATE FACTS -->

## 含义与消息 {#meaning}

当 `fdw_routine->ImportForeignSchema` 为空时，核心路径以 `ERROR: foreign-data wrapper "%s" does not support IMPORT FOREIGN SCHEMA` 报告。包装器名称是动态字段；此时未必已经查询远端模式。

## 诊断 {#diagnosis}

确认 `SERVER` 子句中的 FDW，并检查其 handler 是否实现 `ImportForeignSchema`。将这种能力缺失与 [`HV00Q`](../hv00q/) 区分开；后者是 `postgres_fdw` 支持导入却找不到请求的远端模式。

## 处理 {#response}

使用显式的 `CREATE FOREIGN TABLE` 定义，改用实现了模式导入的包装器，或为包装器增加受支持的回调。对同一个 handler 重复执行相同的 `IMPORT FOREIGN SCHEMA` 只会得到同一能力错误。

## 消息与诊断 {#messages}

确认的严重级别为 `ERROR`，该调用组没有 detail 或 hint。保留 `fdwname`、服务器身份和 handler 扩展版本。

## 版本 {#versions}

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

## 相关 {#related}

[`HV00Q`](../hv00q/) 是 `postgres_fdw` 找不到远端模式；[`HV00D`](../hv00d/) 是无效选项名称；[`HV000`](../hv000/) 是一般 FDW 错误。

## 来源 {#sources}

- [`errcodes.txt`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt#L478) — 定义，SHA-256 `6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba`。
- [`foreigncmds.c`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/commands/foreigncmds.c#L1524-L1530) — 回调检查与消息。
- [`fdwapi.h`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/include/foreign/fdwapi.h#L259-L260) — `ImportForeignSchema` 回调定义；SHA-256 `572ba892e6435ca92d3b3bc84dde5bbd3160cc3a082693daab8daa835c4d2cd7`。
- [REL9_5_0 快照中的 `foreigncmds.c`](https://github.com/postgres/postgres/blob/cdd4ed5449bf317cc71b45a8deee0173822e7592/src/backend/commands/foreigncmds.c#L1509-L1542) — 命令及回调的功能边界；SHA-256 `d2ab3a8883ed1e27c38a0a7ff83f0fc9d493c488d7e30f56eef7d1ae449f9a16`。
- [结构化证据](../../data/evidence/hv00p.json) — 来源路径和有界运行范围。
