22024 — unterminated_c_string
The catalogue condition names a C-style string that ended before its required terminator. The bounded PostgreSQL 18.6 source review confirms the definition but does not bind a native emitting report group.
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
- unterminated_c_string
- lang
- en
- sqlstate
- 22024
Definition PG 18
22024
At a glance {#at-a-glance}
The catalogue condition names a C-style string that ended before its required terminator. The bounded PostgreSQL 18.6 source review confirms the definition but does not bind a native emitting report group.
Meaning {#meaning}
22024 describes an unterminated C-style string or escape sequence at the interface/parser layer, but the fixed source scope here does not identify which PostgreSQL component emits it. The condition name alone is insufficient to assign a SQL text, ECPG, client, primary message, or recovery path.
Diagnosis {#diagnosis}
Use the complete diagnostic and the parser or interface that produced it. Check where the quoted string or escape token should terminate and preserve the original input; do not infer that a client truncation or an arbitrary SQL quote problem necessarily maps to 22024.
Response {#response}
Terminate or re-encode the string at the owning parser boundary and follow that layer’s documented recovery. Because no emitter was resolved in this bounded review, transaction and severity behavior remain unknown here.
Versions {#versions}
The locked catalogue records this condition from 7.4; only the PostgreSQL 18.6 definition and bounded source scope are confirmed. No natural runtime observation is claimed for this page.
Related {#related}
Sources {#sources}
The fixed catalogue definition is recorded in the structured evidence record. Its bounded-scan claim deliberately leaves the native emitter, primary text, severity, and transaction behavior unknown; no natural runtime was run.
Compare versions
SQLSTATE evidence and recorded runtime versions
claims · identity
{
"claim_id": "identity",
"limits": "",
"method": "Read the fixed errcodes row and macro.",
"position": 0,
"runtime": [],
"sources": [
"src.errcodes.18.6"
],
"statement": "22024 is unterminated_c_string 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": "Retain definition evidence without inventing an SQL, ECPG, client, or parser emitter.",
"position": 1,
"runtime": [],
"sources": [
"src.errcodes.18.6"
],
"statement": "No fixed PostgreSQL 18.6 emitting report group was resolved for 22024 in the bounded source review."
}claims · history
{
"claim_id": "history",
"limits": "",
"method": "Use catalogue presence and history boundaries.",
"position": 2,
"runtime": [],
"sources": [
"src.errcodes.18.6"
],
"statement": "The locked catalogue records 22024 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#L203"
}Source references
Full definition and evidence JSON
Definition sources
center · PostgreSQL 18 · english-manuals:b81ef5f2fa1c3794b21ea51505376515b59ac625626bb23df0e206abe8bc6567
Text language: en · english-manuals:b81ef5f2fa1c3794b21ea51505376515b59ac625626bb23df0e206abe8bc6567