HV00D — fdw_invalid_option_name
HV00D is raised when an FDW option name is not valid in the current wrapper context. PostgreSQL 18.6 has direct paths in filefdw, postgresfdw, and the postgres_fdw import option parser.
English manual coverage begins with PostgreSQL 8.1. Source history and runtime observations have their own recorded version boundaries.
Reading PG 18·Select a recorded version
- aliases
- Unknown
- class name
- Foreign Data Wrapper Error (SQL/MED)
- condition name
- fdw_invalid_option_name
- lang
- en
- sqlstate
- HV00D
Definition PG 18
HV00D — fdw_invalid_option_name
At a glance {#at-a-glance}
HV00D is raised when an FDW option name is not valid in the current wrapper context. PostgreSQL 18.6 has direct paths in file_fdw, postgres_fdw, and the postgres_fdw import option parser.
Meaning and messages {#meaning}
The option is checked against the wrapper's valid options for its context: FDW, server, foreign table, user mapping, or import. The 18.6 primary template is invalid option "%s". file_fdw and postgres_fdw/option.c add Perhaps you meant the option "%s". only when a close match exists; if valid options exist but no close match is found, the source emits no hint, and There are no valid options in this context. is used only when no valid option exists. The postgres_fdw import parser has only the primary message.
Diagnosis {#diagnosis}
Record the object being altered and the wrapper version, then read that wrapper's validator and option list. Check whether an option belongs on the foreign server, foreign table, or user mapping; identical names can be valid in one scope and invalid in another. Preserve the hint's close match instead of guessing from a different wrapper.
Response {#response}
Use the option name and scope accepted by the installed wrapper, or remove the unsupported option. If the option was introduced by a newer extension, align the extension and server versions after confirming that is the cause. Retrying the same definition cannot change validation.
Messages and diagnostics {#messages}
The fixed 18.6 call groups are file_fdw/file_fdw.c:248-253, postgres_fdw/option.c:110-116, and postgres_fdw/postgres_fdw.c:5491-5493; all are ERROR. Their %s values are dynamic option names and close matches.
Versions {#versions}
HV00D is present from 9.1.0 through 18.6 and 19 Beta 3. A fixed REL9_6_24 snapshot of the file_fdw and postgres_fdw validators uses the older Valid options in this context are: %s hint, while the fixed 18.6 paths use the closest-match/no-valid-options branches. These two snapshots bound the wording; they do not establish the exact transition release, so match the installed version when comparing logs.
Related {#related}
HV00C concerns an option index, HV00J is dblink's option-name-not-found code, and HV00A concerns string format rather than option identity.
Sources {#sources}
errcodes.txt— definition, SHA-2566e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba.- file_fdw.c, postgres_fdw/option.c, postgres_fdw.c — 18.6 validators.
- file_fdw.c in REL9_6_24 and postgres_fdw/option.c in REL9_6_24 — bounded historical hint comparison; SHA-256 1745225d449f44e9b384e372e8e13d5f5fe141e53d49526760fc1df8a1bf6211 and d7da1cf22cd61619ef2f0cb7ce1a741d4ecb9a03636766e097e2183acdf21d48.
- Structured evidence — exact message roles and source hashes.
Compare versions
SQLSTATE evidence and recorded runtime versions
claims · identity
{
"claim_id": "identity",
"limits": "",
"method": "Read the fixed definition row and macro.",
"position": 0,
"runtime": [],
"sources": [
"src.errcodes.18.6"
],
"statement": "HV00D is fdw_invalid_option_name in SQL/MED Class HV."
}claims · option-validators
{
"claim_id": "option-validators",
"limits": "",
"method": "Read each fixed error branch and its option context.",
"position": 1,
"runtime": [],
"sources": [
"src.file_fdw.18.6",
"src.postgres_fdw.option.18.6",
"src.postgres_fdw.main.18.6"
],
"statement": "file_fdw and postgres_fdw validate option names in their object-specific contexts; the postgres_fdw import parser uses the same condition for an invalid import option."
}claims · historical-hint-boundary
{
"claim_id": "historical-hint-boundary",
"limits": "The two fixed wrapper snapshots establish their own wording only; they do not date the transition or describe every wrapper.",
"method": "Read the fixed REL9_6_24 error branches at file_fdw.c:240-246 and postgres_fdw/option.c:99-103.",
"position": 2,
"runtime": [],
"sources": [
"src.file_fdw.9.6.24",
"src.postgres_fdw.option.9.6.24"
],
"statement": "Fixed REL9_6_24 snapshots of file_fdw and postgres_fdw/option.c use the older dynamic hint 'Valid options in this context are: %s' with the same invalid-option ERROR; this is a bounded snapshot comparison, not an exact transition release."
}messages · hv00d_invalid_option
{
"limits": "When valid options exist but no close match is found, the source emits no hint; the no-valid-options hint is only used when no valid option exists.",
"message_id": "hv00d_invalid_option",
"path": "contrib/file_fdw/file_fdw.c:247-253",
"position": 0,
"raw": {
"hint_variants": [
"Perhaps you meant the option \"%s\".",
"There are no valid options in this context."
],
"id": "hv00d_invalid_option",
"limits": "When valid options exist but no close match is found, the source emits no hint; the no-valid-options hint is only used when no valid option exists.",
"message": "invalid option \"%s\"",
"path": "contrib/file_fdw/file_fdw.c:247-253",
"severity": "ERROR",
"source_ids": [
"src.file_fdw.18.6"
],
"sqlstate": "HV00D"
},
"severity": "ERROR",
"sources": [
"src.file_fdw.18.6"
],
"templates": [
{
"kind": "hint",
"literal": "Perhaps you meant the option \" \".",
"position": 0,
"role": "",
"template": "Perhaps you meant the option \"%s\"."
},
{
"kind": "hint",
"literal": "There are no valid options in this context.",
"position": 1,
"role": "",
"template": "There are no valid options in this context."
},
{
"kind": "primary",
"literal": "invalid option \" \"",
"position": 2,
"role": "observed",
"template": "invalid option \"%s\""
}
]
}messages · hv00d_postgres_option
{
"limits": "When valid options exist but no close match is found, the source emits no hint; the no-valid-options hint is only used when no valid option exists.",
"message_id": "hv00d_postgres_option",
"path": "contrib/postgres_fdw/option.c:110-116",
"position": 1,
"raw": {
"hint_variants": [
"Perhaps you meant the option \"%s\".",
"There are no valid options in this context."
],
"id": "hv00d_postgres_option",
"limits": "When valid options exist but no close match is found, the source emits no hint; the no-valid-options hint is only used when no valid option exists.",
"message": "invalid option \"%s\"",
"path": "contrib/postgres_fdw/option.c:110-116",
"severity": "ERROR",
"source_ids": [
"src.postgres_fdw.option.18.6"
],
"sqlstate": "HV00D"
},
"severity": "ERROR",
"sources": [
"src.postgres_fdw.option.18.6"
],
"templates": [
{
"kind": "hint",
"literal": "Perhaps you meant the option \" \".",
"position": 0,
"role": "",
"template": "Perhaps you meant the option \"%s\"."
},
{
"kind": "hint",
"literal": "There are no valid options in this context.",
"position": 1,
"role": "",
"template": "There are no valid options in this context."
},
{
"kind": "primary",
"literal": "invalid option \" \"",
"position": 2,
"role": "observed",
"template": "invalid option \"%s\""
}
]
}messages · hv00d_import_option
{
"limits": "This import-option parser has only the primary message in the fixed 18.6 path; it does not use the validator close-match or no-valid-options hint branches.",
"message_id": "hv00d_import_option",
"path": "contrib/postgres_fdw/postgres_fdw.c:5491-5493",
"position": 2,
"raw": {
"id": "hv00d_import_option",
"limits": "This import-option parser has only the primary message in the fixed 18.6 path; it does not use the validator close-match or no-valid-options hint branches.",
"message": "invalid option \"%s\"",
"path": "contrib/postgres_fdw/postgres_fdw.c:5491-5493",
"severity": "ERROR",
"source_ids": [
"src.postgres_fdw.main.18.6"
],
"sqlstate": "HV00D"
},
"severity": "ERROR",
"sources": [
"src.postgres_fdw.main.18.6"
],
"templates": [
{
"kind": "primary",
"literal": "invalid option \" \"",
"position": 0,
"role": "observed",
"template": "invalid option \"%s\""
}
]
}messages · hv00d_file_fdw_historical_hint
{
"limits": "",
"message_id": "hv00d_file_fdw_historical_hint",
"path": "contrib/file_fdw/file_fdw.c:240-246",
"position": 3,
"raw": {
"hint_variants": [
"Valid options in this context are: %s"
],
"id": "hv00d_file_fdw_historical_hint",
"message": "invalid option \"%s\"",
"path": "contrib/file_fdw/file_fdw.c:240-246",
"severity": "ERROR",
"source_ids": [
"src.file_fdw.9.6.24"
],
"sqlstate": "HV00D"
},
"severity": "ERROR",
"sources": [
"src.file_fdw.9.6.24"
],
"templates": [
{
"kind": "hint",
"literal": "Valid options in this context are:",
"position": 0,
"role": "",
"template": "Valid options in this context are: %s"
},
{
"kind": "primary",
"literal": "invalid option \" \"",
"position": 1,
"role": "observed",
"template": "invalid option \"%s\""
}
]
}messages · hv00d_postgres_option_historical_hint
{
"limits": "",
"message_id": "hv00d_postgres_option_historical_hint",
"path": "contrib/postgres_fdw/option.c:99-103",
"position": 4,
"raw": {
"hint_variants": [
"Valid options in this context are: %s"
],
"id": "hv00d_postgres_option_historical_hint",
"message": "invalid option \"%s\"",
"path": "contrib/postgres_fdw/option.c:99-103",
"severity": "ERROR",
"source_ids": [
"src.postgres_fdw.option.9.6.24"
],
"sqlstate": "HV00D"
},
"severity": "ERROR",
"sources": [
"src.postgres_fdw.option.9.6.24"
],
"templates": [
{
"kind": "hint",
"literal": "Valid options in this context are:",
"position": 0,
"role": "",
"template": "Valid options in this context are: %s"
},
{
"kind": "primary",
"literal": "invalid option \" \"",
"position": 1,
"role": "observed",
"template": "invalid option \"%s\""
}
]
}sources · src.errcodes.18.6
{
"commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
"docs_url": "",
"kind": "upstream_source",
"location": "",
"path": "src/backend/utils/errcodes.txt",
"position": 0,
"sha256": "6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba",
"source_id": "src.errcodes.18.6",
"tag": "REL_18_6",
"url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt"
}sources · src.file_fdw.18.6
{
"commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
"docs_url": "",
"kind": "upstream_source",
"location": "",
"path": "contrib/file_fdw/file_fdw.c",
"position": 1,
"sha256": "d79ec21c08be6a806b0710aab09698678ddb24103d3470702e66ee1523432125",
"source_id": "src.file_fdw.18.6",
"tag": "REL_18_6",
"url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/contrib/file_fdw/file_fdw.c"
}sources · src.postgres_fdw.option.18.6
{
"commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
"docs_url": "",
"kind": "upstream_source",
"location": "",
"path": "contrib/postgres_fdw/option.c",
"position": 2,
"sha256": "880fd16c3e5cbc56733d1292ffdcc9b0f6cb1e17e72c90e9afa4e359239dc314",
"source_id": "src.postgres_fdw.option.18.6",
"tag": "REL_18_6",
"url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/contrib/postgres_fdw/option.c"
}sources · src.postgres_fdw.main.18.6
{
"commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
"docs_url": "",
"kind": "upstream_source",
"location": "",
"path": "contrib/postgres_fdw/postgres_fdw.c",
"position": 3,
"sha256": "5f61f89fc1f9d67a204c47fd993db575b2d619449e5238b536b9fb1877037db6",
"source_id": "src.postgres_fdw.main.18.6",
"tag": "REL_18_6",
"url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/contrib/postgres_fdw/postgres_fdw.c"
}sources · src.file_fdw.9.6.24
{
"commit": "a4116b8d5a4f68803452d8f1aa3f74f302049a90",
"docs_url": "",
"kind": "upstream_source",
"location": "",
"path": "contrib/file_fdw/file_fdw.c",
"position": 4,
"sha256": "1745225d449f44e9b384e372e8e13d5f5fe141e53d49526760fc1df8a1bf6211",
"source_id": "src.file_fdw.9.6.24",
"tag": "REL9_6_24",
"url": "https://github.com/postgres/postgres/blob/a4116b8d5a4f68803452d8f1aa3f74f302049a90/contrib/file_fdw/file_fdw.c#L240-L246"
}sources · src.postgres_fdw.option.9.6.24
{
"commit": "a4116b8d5a4f68803452d8f1aa3f74f302049a90",
"docs_url": "",
"kind": "upstream_source",
"location": "",
"path": "contrib/postgres_fdw/option.c",
"position": 5,
"sha256": "d7da1cf22cd61619ef2f0cb7ce1a741d4ecb9a03636766e097e2183acdf21d48",
"source_id": "src.postgres_fdw.option.9.6.24",
"tag": "REL9_6_24",
"url": "https://github.com/postgres/postgres/blob/a4116b8d5a4f68803452d8f1aa3f74f302049a90/contrib/postgres_fdw/option.c#L99-L103"
}sources · src.calls.REL_18_6
{
"commit": "",
"docs_url": "",
"kind": "local_artifact",
"location": "",
"path": "raw/calls/REL_18_6.jsonl",
"position": 6,
"sha256": "9ee8a0e81d8f0825c5c1ae45583439859a26e602bdd4ce2f2a62aa278867ccbf",
"source_id": "src.calls.REL_18_6",
"tag": "",
"url": ""
}Source references
Full definition and evidence JSON
Definition sources
center · PostgreSQL 18 · english-manuals:a71f7d2244cb699e5efe4634733fc2b8dd856bfda03651a4bc5acc51ad24222e
Text language: en · english-manuals:a71f7d2244cb699e5efe4634733fc2b8dd856bfda03651a4bc5acc51ad24222e