# HV014 — fdw_too_many_handles

> PostgreSQL SQLSTATE HV014 表示 FDW 句柄数量达到限制；资源所有者和限制范围来自实际包装器。
---

# HV014 — fdw_too_many_handles

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

`HV014` 表示 FDW 出现句柄过多条件。锁定的 PostgreSQL 18.6 核心与 contrib 调用扫描没有解析出 `HV014` 报告组，因此不能归因于某个核心句柄限制或消息。

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

| 字段 | 值 |
| --- | --- |
| SQLSTATE | `HV014` |
| 条件名 | `fdw_too_many_handles` |
| 状态 | `有效` |
| 已知存在于 | `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_TOO_MANY_HANDLES` |
| 别名 | `—` |

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

## 含义 {#meaning}

句柄可能是实现管理的连接、游标、结果或执行对象引用。类别定义没有指定句柄类型、限制范围，也没有说明限制属于包装器、驱动还是远端服务。

## 消息与诊断 {#messages}

没有解析出 18.6 核心与 contrib 的直接消息变体。保留完整诊断、句柄类型、若报出的计数或限制、操作阶段、包装器/驱动版本和外部服务器身份。

## 诊断 {#diagnosis}

找到包装器分配或追踪句柄的代码，确认限制是每条语句、会话、进程、服务器还是远端连接级别。检查错误后的句柄是否没有关闭，但仍以包装器自己的所有权规则为准。

## 处理 {#response}

关闭或释放包装器明确指出不再需要的句柄；确认范围后再使用其支持的池化或限制配置。如果失败操作可能已到达远端，应先核实远端状态再重试。

## 版本 {#versions}

`HV014` 在锁定定义快照 9.1.24 至 18.6 以及 19 Beta 3 中存在，`known_present_by` 为 9.1.0。现有 9.1 之前定义资料不足以确定精确引入版本。

## 相关 {#related}

[`HV00B`](../hv00b/) 是无效句柄条件；[`HV00K`](../hv00k/) 涉及回复句柄；[`HV00L`](../hv00l/) 涉及创建执行对象。

## 来源 {#sources}

- [`errcodes.txt`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt#L476) — 定义，SHA-256 `6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba`。
- [`fdwapi.h`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/include/foreign/fdwapi.h#L24-L55) — 通用 FDW 回调接口边界。
- [结构化证据](../../data/evidence/hv014.json) — 18.6 固定来源与有界扫描。
