跳转到主要内容

HV00J — fdw_option_name_not_found

PostgreSQL SQLSTATE HV00J 是 dblink 的选项名称未找到条件,与 postgres_fdw 和 file_fdw 的 FDW 选项验证分开。

HV00J — fdw_option_name_not_found

速览

当 dblink 的连接选项不在接受的 dblink/libpq 选项集合中时,会使用 HV00J。dblink 是独立的 contrib 客户端 API,不是 FDW 回调实现;18.6 核心与 contrib 扫描没有解析出其他 HV00J 报告组。

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

含义与消息

在 dblink 的选项解析路径中,ERROR 的主消息为 invalid option "%s"。只有找到相近名称时才提示 Perhaps you meant the option "%s".;若存在合法选项但没有相近候选,源码不发送 hint;只有不存在任何合法选项时才提示 There are no valid options in this context.。固定的 REL9_6_24 dblink 快照显示较早的动态 Valid options in this context are: %s 提示;这只是有界比较,不代表精确的切换版本。

诊断

确认该选项属于 dblink 连接字符串或选项列表,并查看安装版本对应的 libpq 选项名称。保留确切选项名、dblink/libpq 版本,以及错误是否发生在解析连接定义时。不要把 postgres_fdw 的选项表用于 dblink。

处理

改用 dblink/libpq 支持的名称,或删除该选项,并保留相近名称提示作为线索。重新校验连接定义即可;无效选项名称是确定性的,不需要重试数据库事务。

诊断边界

确认的实现是 dblink 的选项解析器。本批没有运行自然环境实验,源码证据也不表示远端连接已经成功或失败。

版本

该条件从 9.1.0 到 18.6 以及 19 Beta 3 均存在。固定的 18.6 与 REL9_6_24 dblink 快照显示了不同的提示措辞;它们界定已观察版本,但不确定切换版本。解读日志时应匹配实际安装版本。

HV00D 涵盖 file_fdw/postgres_fdw 的选项名称;HV00N 涉及建立连接;HV001 涉及获取 libpq 默认值时的内存分配失败。

来源

  • errcodes.txt — 定义,SHA-256 6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba
  • dblink.c — 18.6 dblink 选项解析器。
  • REL9_6_24 中的 dblink.c — 有界历史提示比较;SHA-256 ff331aac2153e21aa88cc6c4e656ab00b0593744062270849f27281434db3b55。
  • 结构化证据 — 消息、detail 和 hint 的分组。