# HV090 — fdw_invalid_string_length_or_buffer_length

> PostgreSQL SQLSTATE HV090 表示 FDW 字符串或缓冲区长度条件；缓冲区所有者和有效边界来自实际包装器或驱动。
---

# HV090 — fdw_invalid_string_length_or_buffer_length

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

`HV090` 表示 FDW 边界上的字符串长度或缓冲区长度无效。锁定的 18.6 核心与 contrib 调用扫描没有解析出 `HV090` 报告组，因此不能确认核心缓冲区检查或消息。

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

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

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

## 含义 {#meaning}

该条件可能涉及字符串长度、目标缓冲区或包装器定义的长度字段。定义没有说明无效值来自远端响应、驱动还是本地包装器代码。

## 消息与诊断 {#messages}

没有解析出 18.6 核心与 contrib 的直接消息变体。保留完整诊断、其中披露的长度和缓冲区上下文、编码或类型上下文、回调阶段及包装器/驱动版本。

## 诊断 {#diagnosis}

追踪包装器进行长度验证和分配的边界。按该实现使用的单位和边界比较值；只有源码或诊断支持时，才区分字节与字符。

## 处理 {#response}

修正提供无效长度的生产者或选项，或使用包装器支持的缓冲区/编码路径。不要盲目截断值；先确认包装器契约和远端请求是否已发出。

## 版本 {#versions}

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

## 相关 {#related}

[`HV024`](../hv024/) 涉及无效属性值；[`HV00A`](../hv00a/) 涉及无效字符串格式；[`HV091`](../hv091/) 涉及描述符字段标识符。

## 来源 {#sources}

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