2200D — invalid_escape_octet
The catalogue condition covers an invalid escape octet. The fixed scan did not resolve a PostgreSQL 18.6 emitting function for this entry, so the condition is useful as a classification boundary rather than proof of one native parser call.
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
- Data Exception
- condition name
- invalid_escape_octet
- lang
- en
- sqlstate
- 2200D
Definition PG 18
2200D
At a glance {#at-a-glance}
The catalogue condition covers an invalid escape octet. The fixed scan did not resolve a PostgreSQL 18.6 emitting function for this entry, so the condition is useful as a classification boundary rather than proof of one native parser call.
Meaning {#meaning}
This condition classifies an escape octet that the consuming parser cannot accept; its owner must be identified from the real message.
Diagnosis {#diagnosis}
Start with the complete server message and the input field named by the surrounding operation. Check byte encoding and the layer that interpreted the escape (SQL literal, regular-expression or extension parser). Do not replace this code with 2200C solely because both names mention escapes; the server’s actual SQLSTATE and message decide the path. No fixed native emitter was confirmed in this scan.
Response {#response}
Preserve the complete diagnostic, identify the parser or wrapper that supplied the invalid octet, and correct the input or encoding at that boundary before retrying.
Versions {#versions}
The locked catalogue records this condition from 7.4; fixed source coverage is PostgreSQL 18.6.
Related {#related}
Sources {#sources}
The fixed definition is confirmed; this bounded scan did not resolve a native emitting function to cite. The structured evidence record retains the definition, message, and scope boundaries. The definition is fixed in errcodes.txt, but implementation ownership and exact message variants remain unknown here. Locate the wrapper or extension named by the real message before changing data or retrying.
Compare versions
SQLSTATE evidence and recorded runtime versions
claims · identity
{
"claim_id": "identity",
"limits": "",
"method": "Read fixed definition.",
"position": 0,
"runtime": [],
"sources": [
"src.errcodes.18.6"
],
"statement": "2200D is invalid_escape_octet in SQLSTATE Class 22."
}claims · bounded-scan
{
"claim_id": "bounded-scan",
"limits": "A bounded scan does not prove that no extension, client, or historical path exists.",
"method": "Search fixed call records for the macro.",
"position": 1,
"runtime": [],
"sources": [
"src.calls.REL_18_6"
],
"statement": "No fixed PostgreSQL 18.6 emitting path was resolved for 2200D in the bounded source scan."
}claims · meaning-boundary
{
"claim_id": "meaning-boundary",
"limits": "Do not substitute the regexp 2200C message.",
"method": "Separate code identity from emitter evidence.",
"position": 2,
"runtime": [],
"sources": [
"src.errcodes.18.6",
"src.calls.REL_18_6"
],
"statement": "The code names an invalid octet at an escape-decoding boundary; the owning parser, byte encoding, primary message, and severity must be captured from the actual diagnostic."
}claims · history
{
"claim_id": "history",
"limits": "",
"method": "Use catalogue boundary.",
"position": 3,
"runtime": [],
"sources": [
"src.errcodes.18.6"
],
"statement": "The locked catalogue records 2200D from 7.4 without proving an exact implementation introduction date."
}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#L181"
}sources · src.calls.REL_18_6
{
"commit": "",
"docs_url": "",
"kind": "local_artifact",
"location": "",
"path": "raw/calls/REL_18_6.jsonl",
"position": 1,
"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:9ac2a56dc35f3f09e1ec30c64581609687190a5ee8293ff415604541321d1786
Text language: en · english-manuals:9ac2a56dc35f3f09e1ec30c64581609687190a5ee8293ff415604541321d1786