2200D
Read PG 18 manual ↗invalid_escape_octet
- SQLSTATE
- 2200D
- Condition name
- invalid_escape_octet
- Class
- Data Exception
- Source macro
- ERRCODE_INVALID_ESCAPE_OCTET
- Evidence
- Definition only
English SQLSTATE atlas: authored explanations and source/runtime evidence are separate from the manual definitions. View source ↗
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
This condition classifies an escape octet that the consuming parser cannot accept; its owner must be identified from the real message.
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
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
The locked catalogue records this condition from 7.4; fixed source coverage is PostgreSQL 18.6.
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.
Source evidence
Evidence belongs to the frozen source and runtime versions listed here. It is not a runtime verification of the selected manual version.
No fixed PostgreSQL 18.6 emitting path was resolved for 2200D in the bounded source scan.
Method: Search fixed call records for the macro.
Limits: A bounded scan does not prove that no extension, client, or historical path exists.
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.
Method: Separate code identity from emitter evidence.
Limits: Do not substitute the regexp 2200C message.
The locked catalogue records 2200D from 7.4 without proving an exact implementation introduction date.
Method: Use catalogue boundary.
- src/backend/utils/errcodes.txt · REL_18_6 ·
724edf9bde9d356724ad384a2e196edc3c9f80f7 raw/calls/REL_18_6.jsonl· ·
Message templates
No extracted message template is attached to this condition.
Reproduction & repair cases
No reproduction case is attached to this condition.
Recorded runtime evidence
No runtime observation is attached to this entry.
Definition snapshot: english-manuals:86252e1dde3750b93027a798725… · English manual source