{"Entry":{"collection":"sqlstate","key":"2202E","name":"2202E","aliases":["ERRCODE_ARRAY_ELEMENT_ERROR"],"metadata":{"aliases":["ERRCODE_ARRAY_ELEMENT_ERROR"],"case_count":1,"class_code":"22","condition_name":"array_subscript_error","condition_names":["array_subscript_error"],"content_hash":"f2b1624f3287d115fd08f150763a2f59bc4a210f737bb64b0ba153cb29c205a6","depth":"full","editorial_review":"reviewed","evidence_tier":"observed_runtime","imported_at":"2026-09-30T17:45:27.071148+08:00","introduced":null,"known_present_by":"7.4","macros":["ERRCODE_ARRAY_ELEMENT_ERROR","ERRCODE_ARRAY_SUBSCRIPT_ERROR"],"name_zh":"数组下标错误","present_in":["9.0","9.1","9.2","9.3","9.4","9.5","9.6","10","11","12","13","14","15","16","17","18","19"],"preview_in":["19"],"primary_macro":"ERRCODE_ARRAY_SUBSCRIPT_ERROR","removed":null,"runtime_verification":"passed","severity_classes":["E"],"snippet_count":1,"source_rev":"english-manuals:c2540537867663a348ed74978e2f14d64fb4dc6fbb0f1b5d2eced9085e906c15","sqlstate":"2202E","status":"active","summary_zh":"数组下标或维度错误，如拼接维度不兼容。"}},"Definition":{"Collection":"sqlstate","Key":"2202E","SourceDatabase":"center","Version":"18","SourceTable":"sqlstate","SourceKey":"2202E","SourceRevision":"english-manuals:c2540537867663a348ed74978e2f14d64fb4dc6fbb0f1b5d2eced9085e906c15","Facts":{"aliases":[],"class_name":"Data Exception","condition_name":"array_subscript_error","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"56dacf78e618ff0fd8c533e05db597b80d7ebbad7f8e512a888217d0640aa328","slug":"18"},"lang":"en","sqlstate":"2202E"},"ManualEvidence":{"doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"56dacf78e618ff0fd8c533e05db597b80d7ebbad7f8e512a888217d0640aa328","slug":"18"}},"MeasuredEvidence":{}},"Text":{"Collection":"sqlstate","Key":"2202E","SourceDatabase":"center","Version":"","Locale":"en","Title":"2202E — array_subscript_error","Summary":"2202E is PostgreSQL's arraysubscripterror condition in Class 22, Data Exception. The directory keeps ERRCODEARRAYELEMENTERROR as a compatibility alias and uses ERRCODEARRAYSUBSCRIPTERROR for the named condition. Both macros encode the same SQLSTATE.","BodyHTML":"\u003ch2\u003eAt a glance {#at-a-glance}\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e2202E\u003c/code\u003e is PostgreSQL\u0026#39;s \u003ccode\u003earray_subscript_error\u003c/code\u003e condition in Class 22, \u003ccode\u003eData Exception\u003c/code\u003e. The directory keeps \u003ccode\u003eERRCODE_ARRAY_ELEMENT_ERROR\u003c/code\u003e as a compatibility alias and uses \u003ccode\u003eERRCODE_ARRAY_SUBSCRIPT_ERROR\u003c/code\u003e for the named condition. Both macros encode the same SQLSTATE.\u003c/p\u003e\n\u003cp\u003eDo not treat every out-of-range-looking expression as an error. PostgreSQL documents that an array subscript read outside the current bounds returns \u003ccode\u003eNULL\u003c/code\u003e; a read with the wrong number of subscripts also returns \u003ccode\u003eNULL\u003c/code\u003e. Array slices have their own historical rules: a slice wholly outside the bounds can produce an empty zero-dimensional array, while a partially overlapping slice is reduced to the overlap.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003e2202E\u003c/code\u003e is raised when another path validates a shape or subscript and rejects it. In the core source this includes incompatible dimensions during array concatenation or construction, invalid slice boundaries, and some subscripted assignment checks. The operation matters as much as the index value.\u003c/p\u003e\n\u003cp\u003eThe executable representative case is \u003ccode\u003eincompatible_array_dimensions\u003c/code\u003e. It passed on PostgreSQL 18.6 and 10.21. The case raises \u003ccode\u003e2202E\u003c/code\u003e for an incompatible concatenation, then proves that the same autocommit connection is \u003ccode\u003eIDLE\u003c/code\u003e and can execute a valid follow-up concatenation. The SQL excerpt below is the complete ordered pair from the shared snippet registry; the runner remains the single owner of setup and cleanup.\u003c/p\u003e\n\u003ch2\u003eMeaning and trigger paths {#meaning}\u003c/h2\u003e\n\u003cp\u003eThe 18.6 directory row is \u003ccode\u003e2202E E ERRCODE_ARRAY_SUBSCRIPT_ERROR array_subscript_error\u003c/code\u003e. The preceding alias row is \u003ccode\u003e2202E E ERRCODE_ARRAY_ELEMENT_ERROR\u003c/code\u003e; the source comment explains that SQL99\u0026#39;s “array element error” is the subscript error. Code that still names the alias is therefore referring to this same SQLSTATE, not to a second condition.\u003c/p\u003e\n\u003cp\u003eAn array has a rank, a length for each dimension, and lower bounds. PostgreSQL does not require every array to start at one, so diagnostics should inspect the actual bounds rather than assume them. The documented \u003ccode\u003earray_ndims\u003c/code\u003e, \u003ccode\u003earray_dims\u003c/code\u003e, \u003ccode\u003earray_lower\u003c/code\u003e, \u003ccode\u003earray_upper\u003c/code\u003e, and \u003ccode\u003ecardinality\u003c/code\u003e functions expose the metadata needed to do that. Use them in the same session when an error needs to be diagnosed; they are inspection tools, not evidence that a particular error was triggered.\u003c/p\u003e\n\u003cp\u003eThe main core paths are:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003cstrong\u003eArray element or slice assignment.\u003c/strong\u003e \u003ccode\u003earrayfuncs.c\u003c/code\u003e validates subscripts and slice boundaries. One-dimensional arrays can be enlarged by assigning to a new element, with intervening positions filled by \u003ccode\u003eNULL\u003c/code\u003e; multidimensional enlargement is not supported. A slice assigned to an empty array must provide both boundaries. These rules mean that an assignment outside the current read bounds must be analyzed as an assignment operation, not inferred from \u003ccode\u003eSELECT a[n]\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eArray concatenation.\u003c/strong\u003e \u003ccode\u003earray_cat\u003c/code\u003e raises \u003ccode\u003e2202E\u003c/code\u003e when equal-rank arrays have different lengths or lower bounds on a non-concatenated dimension. This is the path exercised by the representative case.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMultidimensional construction.\u003c/strong\u003e The expression evaluator raises the same condition when non-empty array expressions used to form a multidimensional array have incompatible dimensions.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eThe source tree contains other callers, including data-type helper paths. Class 22 is the broad data-exception class; the \u003ccode\u003e2202E\u003c/code\u003e row and its source function identify when this particular shape or subscript contract failed.\u003c/p\u003e\n\u003ch2\u003eMessages and diagnostics {#messages}\u003c/h2\u003e\n\u003cp\u003eThe canonical executable excerpt is:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSELECT ARRAY[[1,2]] || ARRAY[[3]];\nSELECT ARRAY[1,2] || ARRAY[3,4];\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe first statement has two two-dimensional arrays whose inner dimensions differ. PostgreSQL 18.6 reports:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSQLSTATE: 2202E\nseverity: ERROR\nmessage_primary: cannot concatenate incompatible arrays\nmessage_detail: Arrays with differing element dimensions are not compatible for concatenation.\nsource: array_userfuncs.c / array_cat / line 450\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe same case on PostgreSQL 10.21 reports the same primary and detail text, with the historical \u003ccode\u003earray_userfuncs.c\u003c/code\u003e source line 356. The second statement returns \u003ccode\u003e{1,2,3,4}\u003c/code\u003e. The message and detail are templates from the concatenation path, not a universal wording for every \u003ccode\u003e2202E\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eOther source-confirmed templates include \u003ccode\u003earray subscript out of range\u003c/code\u003e, \u003ccode\u003earray slice subscript must provide both boundaries\u003c/code\u003e with a detail explaining empty-array assignment, and \u003ccode\u003eupper bound cannot be less than lower bound\u003c/code\u003e. Preserve \u003ccode\u003emessage_detail\u003c/code\u003e, \u003ccode\u003emessage_hint\u003c/code\u003e, \u003ccode\u003esource_file\u003c/code\u003e, \u003ccode\u003esource_function\u003c/code\u003e, and \u003ccode\u003esource_line\u003c/code\u003e when the driver exposes them; they often distinguish a slice check from a concatenation check.\u003c/p\u003e\n\u003ch2\u003eDiagnosis {#diagnosis}\u003c/h2\u003e\n\u003cp\u003eStart by classifying the expression:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA plain element read such as \u003ccode\u003ea[999]\u003c/code\u003e can legitimately produce \u003ccode\u003eNULL\u003c/code\u003e. Check \u003ccode\u003ea IS NULL\u003c/code\u003e, the subscript expressions, and the stored bounds before calling it a server error.\u003c/li\u003e\n\u003cli\u003eA slice read can return \u003ccode\u003eNULL\u003c/code\u003e, an empty zero-dimensional array, or a reduced overlap according to the documented slice rules. Do not map those values to \u003ccode\u003e2202E\u003c/code\u003e without an error response.\u003c/li\u003e\n\u003cli\u003eAssignment, array construction, and concatenation execute validation code. Record the array rank, dimensions, lower bounds, number of supplied subscripts, and whether the statement is changing the value.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor a real error, record SQLSTATE, severity, primary message, detail, hint, statement position, and the relation or function context. Compare the failing expression with \u003ccode\u003earray_ndims\u003c/code\u003e, \u003ccode\u003earray_dims\u003c/code\u003e, \u003ccode\u003earray_lower\u003c/code\u003e, and \u003ccode\u003earray_upper\u003c/code\u003e from the same value or source expression. For concatenation, compare every non-concatenated dimension and lower bound. For a slice, verify both boundaries and their order. For construction, inspect every subarray\u0026#39;s shape.\u003c/p\u003e\n\u003cp\u003eIn PL/pgSQL, a handler can catch \u003ccode\u003earray_subscript_error\u003c/code\u003e or \u003ccode\u003eSQLSTATE \u0026#39;2202E\u0026#39;\u003c/code\u003e, but the handler\u0026#39;s transaction behavior depends on the block. A block with an \u003ccode\u003eEXCEPTION\u003c/code\u003e clause runs its protected body in a subtransaction; if the body errors, persistent changes made there are rolled back before the handler runs. A broad \u003ccode\u003eOTHERS\u003c/code\u003e handler also has documented exclusions, so use a specific condition when the application intends to repair an array operation.\u003c/p\u003e\n\u003ch2\u003eResponse {#response}\u003c/h2\u003e\n\u003cp\u003eRepair the operation that violated the shape contract. Normalize dimensions and lower bounds before concatenating; provide complete, ordered slice boundaries; use a one-dimensional expansion only when its \u003ccode\u003eNULL\u003c/code\u003e fill behavior is intended; or rebuild multidimensional values with matching subarrays. If \u003ccode\u003eNULL\u003c/code\u003e is a valid result of a read, handle it as a value and do not “fix” it with \u003ccode\u003eCOALESCE\u003c/code\u003e before deciding whether the application should distinguish an absent element from a stored \u003ccode\u003eNULL\u003c/code\u003e element.\u003c/p\u003e\n\u003cp\u003eThe representative error ran in autocommit. After the failed statement the connection was \u003ccode\u003eIDLE\u003c/code\u003e, and the valid concatenation succeeded. In an explicit transaction, an \u003ccode\u003eERROR\u003c/code\u003e normally aborts the transaction until \u003ccode\u003eROLLBACK\u003c/code\u003e or a rollback to a savepoint; the connection itself need not be closed. A PL/pgSQL block with an exception clause can contain the failure in its protected subtransaction body, rolling back that body\u0026#39;s changes before its handler runs. Verify the actual client transaction status rather than deriving connection fate from \u003ccode\u003e2202E\u003c/code\u003e alone.\u003c/p\u003e\n\u003ch2\u003eVersions {#versions}\u003c/h2\u003e\n\u003cp\u003eThe catalogue records \u003ccode\u003e2202E\u003c/code\u003e in the locked 7.4–8.4.22 pre-9.0 formal sources, every formal snapshot from 9.0.23 through 18.6, and the 19 Beta 3 preview. The same-tag \u003ccode\u003eREL8_1_4\u003c/code\u003e \u003ccode\u003eerrcodes.sgml\u003c/code\u003e table already lists \u003ccode\u003e2202E\u003c/code\u003e as \u003ccode\u003earray_subscript_error\u003c/code\u003e, confirming that condition-name observation by 8.1.4. Candidate source gaps remain for 7.0–7.3, so the 7.4 observation is a presence boundary rather than an exact introduction version. The fixed 18.6 source commit is \u003ccode\u003e724edf9bde9d356724ad384a2e196edc3c9f80f7\u003c/code\u003e; the alias and named macro are both present in its \u003ccode\u003eerrcodes.txt\u003c/code\u003e row.\u003c/p\u003e\n\u003cp\u003eThe incompatible-dimension case passed on PostgreSQL 18.6 and 10.21 with the same primary/detail wording and different source line numbers. That cross-version result does not guarantee unchanged wording for every older minor release or every other \u003ccode\u003e2202E\u003c/code\u003e call path.\u003c/p\u003e\n\u003ch2\u003eRelated {#related}\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/wiki/sqlstate/22000/\" rel=\"nofollow\"\u003e\u003ccode\u003e22000\u003c/code\u003e — \u003ccode\u003edata_exception\u003c/code\u003e\u003c/a\u003e is the broad Class 22 category. \u003ca href=\"/wiki/sqlstate/22005/\" rel=\"nofollow\"\u003e\u003ccode\u003e22005\u003c/code\u003e — \u003ccode\u003eerror_in_assignment\u003c/code\u003e\u003c/a\u003e is a distinct assignment condition and should not be substituted for an array-specific \u003ccode\u003e2202E\u003c/code\u003e path. \u003ca href=\"/wiki/sqlstate/22P02/\" rel=\"nofollow\"\u003e\u003ccode\u003e22P02\u003c/code\u003e — \u003ccode\u003einvalid_text_representation\u003c/code\u003e\u003c/a\u003e concerns input text parsing. \u003ccode\u003e2202E\u003c/code\u003e also differs from a successful out-of-bounds read, which returns \u003ccode\u003eNULL\u003c/code\u003e under the documented array rules.\u003c/p\u003e\n\u003ch2\u003eSources {#sources}\u003c/h2\u003e\n\u003cp\u003eThe structured evidence is recorded in the \u003ca href=\"#sources\" rel=\"nofollow\"\u003epublic evidence JSON\u003c/a\u003e. Source records are pinned to PostgreSQL commit \u003ccode\u003e724edf9bde9d356724ad384a2e196edc3c9f80f7\u003c/code\u003e; runtime records retain the shared snippet registry, both target versions, and run \u003ccode\u003e2202E-snippet-registry-final-20260909\u003c/code\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esrc.errcodes.18.6\u003c/code\u003e — \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt#L159-L164\" rel=\"nofollow\"\u003e\u003ccode\u003eerrcodes.txt\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esrc.array-userfuncs.18.6\u003c/code\u003e — \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/array_userfuncs.c#L443-L450\" rel=\"nofollow\"\u003e\u003ccode\u003earray_userfuncs.c\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esrc.arrayfuncs.18.6\u003c/code\u003e — \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/arrayfuncs.c#L2644-L2653\" rel=\"nofollow\"\u003e\u003ccode\u003earrayfuncs.c\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esrc.exec-expr.18.6\u003c/code\u003e — \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/executor/execExprInterp.c#L3549-L3565\" rel=\"nofollow\"\u003e\u003ccode\u003eexecExprInterp.c\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edoc.array.18\u003c/code\u003e and \u003ccode\u003edoc.func.18\u003c/code\u003e — \u003ca href=\"/docs/18/arrays.html\" rel=\"nofollow\"\u003eArrays\u003c/a\u003e and \u003ca href=\"/docs/18/functions-array.html\" rel=\"nofollow\"\u003eArray Functions and Operators\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edoc.transactions.18\u003c/code\u003e — \u003ca href=\"/docs/18/tutorial-transactions.html\" rel=\"nofollow\"\u003eTransactions\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n","SourceRevision":"english-manuals:c2540537867663a348ed74978e2f14d64fb4dc6fbb0f1b5d2eced9085e906c15","ContentHash":"14791e5f105c4a8cc6dec2b7c9ead87e1459e61da49b6df3b036c39f5340a45a","Payload":{"body_md":"\n## At a glance {#at-a-glance}\n\n`2202E` is PostgreSQL's `array_subscript_error` condition in Class 22, `Data Exception`. The directory keeps `ERRCODE_ARRAY_ELEMENT_ERROR` as a compatibility alias and uses `ERRCODE_ARRAY_SUBSCRIPT_ERROR` for the named condition. Both macros encode the same SQLSTATE.\n\nDo not treat every out-of-range-looking expression as an error. PostgreSQL documents that an array subscript read outside the current bounds returns `NULL`; a read with the wrong number of subscripts also returns `NULL`. Array slices have their own historical rules: a slice wholly outside the bounds can produce an empty zero-dimensional array, while a partially overlapping slice is reduced to the overlap.\n\n`2202E` is raised when another path validates a shape or subscript and rejects it. In the core source this includes incompatible dimensions during array concatenation or construction, invalid slice boundaries, and some subscripted assignment checks. The operation matters as much as the index value.\n\nThe executable representative case is `incompatible_array_dimensions`. It passed on PostgreSQL 18.6 and 10.21. The case raises `2202E` for an incompatible concatenation, then proves that the same autocommit connection is `IDLE` and can execute a valid follow-up concatenation. The SQL excerpt below is the complete ordered pair from the shared snippet registry; the runner remains the single owner of setup and cleanup.\n\n\n## Meaning and trigger paths {#meaning}\n\nThe 18.6 directory row is `2202E E ERRCODE_ARRAY_SUBSCRIPT_ERROR array_subscript_error`. The preceding alias row is `2202E E ERRCODE_ARRAY_ELEMENT_ERROR`; the source comment explains that SQL99's “array element error” is the subscript error. Code that still names the alias is therefore referring to this same SQLSTATE, not to a second condition.\n\nAn array has a rank, a length for each dimension, and lower bounds. PostgreSQL does not require every array to start at one, so diagnostics should inspect the actual bounds rather than assume them. The documented `array_ndims`, `array_dims`, `array_lower`, `array_upper`, and `cardinality` functions expose the metadata needed to do that. Use them in the same session when an error needs to be diagnosed; they are inspection tools, not evidence that a particular error was triggered.\n\nThe main core paths are:\n\n1. **Array element or slice assignment.** `arrayfuncs.c` validates subscripts and slice boundaries. One-dimensional arrays can be enlarged by assigning to a new element, with intervening positions filled by `NULL`; multidimensional enlargement is not supported. A slice assigned to an empty array must provide both boundaries. These rules mean that an assignment outside the current read bounds must be analyzed as an assignment operation, not inferred from `SELECT a[n]`.\n2. **Array concatenation.** `array_cat` raises `2202E` when equal-rank arrays have different lengths or lower bounds on a non-concatenated dimension. This is the path exercised by the representative case.\n3. **Multidimensional construction.** The expression evaluator raises the same condition when non-empty array expressions used to form a multidimensional array have incompatible dimensions.\n\nThe source tree contains other callers, including data-type helper paths. Class 22 is the broad data-exception class; the `2202E` row and its source function identify when this particular shape or subscript contract failed.\n\n## Messages and diagnostics {#messages}\n\nThe canonical executable excerpt is:\n\n```sql\nSELECT ARRAY[[1,2]] || ARRAY[[3]];\nSELECT ARRAY[1,2] || ARRAY[3,4];\n```\n\nThe first statement has two two-dimensional arrays whose inner dimensions differ. PostgreSQL 18.6 reports:\n\n```text\nSQLSTATE: 2202E\nseverity: ERROR\nmessage_primary: cannot concatenate incompatible arrays\nmessage_detail: Arrays with differing element dimensions are not compatible for concatenation.\nsource: array_userfuncs.c / array_cat / line 450\n```\n\nThe same case on PostgreSQL 10.21 reports the same primary and detail text, with the historical `array_userfuncs.c` source line 356. The second statement returns `{1,2,3,4}`. The message and detail are templates from the concatenation path, not a universal wording for every `2202E`.\n\nOther source-confirmed templates include `array subscript out of range`, `array slice subscript must provide both boundaries` with a detail explaining empty-array assignment, and `upper bound cannot be less than lower bound`. Preserve `message_detail`, `message_hint`, `source_file`, `source_function`, and `source_line` when the driver exposes them; they often distinguish a slice check from a concatenation check.\n\n## Diagnosis {#diagnosis}\n\nStart by classifying the expression:\n\n- A plain element read such as `a[999]` can legitimately produce `NULL`. Check `a IS NULL`, the subscript expressions, and the stored bounds before calling it a server error.\n- A slice read can return `NULL`, an empty zero-dimensional array, or a reduced overlap according to the documented slice rules. Do not map those values to `2202E` without an error response.\n- Assignment, array construction, and concatenation execute validation code. Record the array rank, dimensions, lower bounds, number of supplied subscripts, and whether the statement is changing the value.\n\nFor a real error, record SQLSTATE, severity, primary message, detail, hint, statement position, and the relation or function context. Compare the failing expression with `array_ndims`, `array_dims`, `array_lower`, and `array_upper` from the same value or source expression. For concatenation, compare every non-concatenated dimension and lower bound. For a slice, verify both boundaries and their order. For construction, inspect every subarray's shape.\n\nIn PL/pgSQL, a handler can catch `array_subscript_error` or `SQLSTATE '2202E'`, but the handler's transaction behavior depends on the block. A block with an `EXCEPTION` clause runs its protected body in a subtransaction; if the body errors, persistent changes made there are rolled back before the handler runs. A broad `OTHERS` handler also has documented exclusions, so use a specific condition when the application intends to repair an array operation.\n\n## Response {#response}\n\nRepair the operation that violated the shape contract. Normalize dimensions and lower bounds before concatenating; provide complete, ordered slice boundaries; use a one-dimensional expansion only when its `NULL` fill behavior is intended; or rebuild multidimensional values with matching subarrays. If `NULL` is a valid result of a read, handle it as a value and do not “fix” it with `COALESCE` before deciding whether the application should distinguish an absent element from a stored `NULL` element.\n\nThe representative error ran in autocommit. After the failed statement the connection was `IDLE`, and the valid concatenation succeeded. In an explicit transaction, an `ERROR` normally aborts the transaction until `ROLLBACK` or a rollback to a savepoint; the connection itself need not be closed. A PL/pgSQL block with an exception clause can contain the failure in its protected subtransaction body, rolling back that body's changes before its handler runs. Verify the actual client transaction status rather than deriving connection fate from `2202E` alone.\n\n## Versions {#versions}\n\nThe catalogue records `2202E` in the locked 7.4–8.4.22 pre-9.0 formal sources, every formal snapshot from 9.0.23 through 18.6, and the 19 Beta 3 preview. The same-tag `REL8_1_4` `errcodes.sgml` table already lists `2202E` as `array_subscript_error`, confirming that condition-name observation by 8.1.4. Candidate source gaps remain for 7.0–7.3, so the 7.4 observation is a presence boundary rather than an exact introduction version. The fixed 18.6 source commit is `724edf9bde9d356724ad384a2e196edc3c9f80f7`; the alias and named macro are both present in its `errcodes.txt` row.\n\nThe incompatible-dimension case passed on PostgreSQL 18.6 and 10.21 with the same primary/detail wording and different source line numbers. That cross-version result does not guarantee unchanged wording for every older minor release or every other `2202E` call path.\n\n## Related {#related}\n\n[`22000` — `data_exception`](/wiki/sqlstate/22000/) is the broad Class 22 category. [`22005` — `error_in_assignment`](/wiki/sqlstate/22005/) is a distinct assignment condition and should not be substituted for an array-specific `2202E` path. [`22P02` — `invalid_text_representation`](/wiki/sqlstate/22P02/) concerns input text parsing. `2202E` also differs from a successful out-of-bounds read, which returns `NULL` under the documented array rules.\n\n## Sources {#sources}\n\nThe structured evidence is recorded in the [public evidence JSON](#sources). Source records are pinned to PostgreSQL commit `724edf9bde9d356724ad384a2e196edc3c9f80f7`; runtime records retain the shared snippet registry, both target versions, and run `2202E-snippet-registry-final-20260909`.\n\n- `src.errcodes.18.6` — [`errcodes.txt`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt#L159-L164)\n- `src.array-userfuncs.18.6` — [`array_userfuncs.c`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/array_userfuncs.c#L443-L450)\n- `src.arrayfuncs.18.6` — [`arrayfuncs.c`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/arrayfuncs.c#L2644-L2653)\n- `src.exec-expr.18.6` — [`execExprInterp.c`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/executor/execExprInterp.c#L3549-L3565)\n- `doc.array.18` and `doc.func.18` — [Arrays](/docs/18/arrays.html) and [Array Functions and Operators](/docs/18/functions-array.html)\n- `doc.transactions.18` — [Transactions](/docs/18/tutorial-transactions.html)\n","description":"PostgreSQL uses SQLSTATE 2202E for array subscript and shape errors. Separate an out-of-bounds read that returns NULL from assignment, slice, constructor, and concatenation paths that validate array dimensions.","is_stale":false,"name":"","sections":[{"anchor":"at-a-glance","heading":"At a glance","html":"\u003cp\u003e\u003ccode\u003e2202E\u003c/code\u003e is PostgreSQL's \u003ccode\u003earray_subscript_error\u003c/code\u003e condition in Class 22, \u003ccode\u003eData Exception\u003c/code\u003e. The directory keeps \u003ccode\u003eERRCODE_ARRAY_ELEMENT_ERROR\u003c/code\u003e as a compatibility alias and uses \u003ccode\u003eERRCODE_ARRAY_SUBSCRIPT_ERROR\u003c/code\u003e for the named condition. Both macros encode the same SQLSTATE.\u003c/p\u003e\n\u003cp\u003eDo not treat every out-of-range-looking expression as an error. PostgreSQL documents that an array subscript read outside the current bounds returns \u003ccode\u003eNULL\u003c/code\u003e; a read with the wrong number of subscripts also returns \u003ccode\u003eNULL\u003c/code\u003e. Array slices have their own historical rules: a slice wholly outside the bounds can produce an empty zero-dimensional array, while a partially overlapping slice is reduced to the overlap.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003e2202E\u003c/code\u003e is raised when another path validates a shape or subscript and rejects it. In the core source this includes incompatible dimensions during array concatenation or construction, invalid slice boundaries, and some subscripted assignment checks. The operation matters as much as the index value.\u003c/p\u003e\n\u003cp\u003eThe executable representative case is \u003ccode\u003eincompatible_array_dimensions\u003c/code\u003e. It passed on PostgreSQL 18.6 and 10.21. The case raises \u003ccode\u003e2202E\u003c/code\u003e for an incompatible concatenation, then proves that the same autocommit connection is \u003ccode\u003eIDLE\u003c/code\u003e and can execute a valid follow-up concatenation. The SQL excerpt below is the complete ordered pair from the shared snippet registry; the runner remains the single owner of setup and cleanup.\u003c/p\u003e"},{"anchor":"meaning","heading":"Meaning and trigger paths","html":"\u003cp\u003eThe 18.6 directory row is \u003ccode\u003e2202E E ERRCODE_ARRAY_SUBSCRIPT_ERROR array_subscript_error\u003c/code\u003e. The preceding alias row is \u003ccode\u003e2202E E ERRCODE_ARRAY_ELEMENT_ERROR\u003c/code\u003e; the source comment explains that SQL99's “array element error” is the subscript error. Code that still names the alias is therefore referring to this same SQLSTATE, not to a second condition.\u003c/p\u003e\n\u003cp\u003eAn array has a rank, a length for each dimension, and lower bounds. PostgreSQL does not require every array to start at one, so diagnostics should inspect the actual bounds rather than assume them. The documented \u003ccode\u003earray_ndims\u003c/code\u003e, \u003ccode\u003earray_dims\u003c/code\u003e, \u003ccode\u003earray_lower\u003c/code\u003e, \u003ccode\u003earray_upper\u003c/code\u003e, and \u003ccode\u003ecardinality\u003c/code\u003e functions expose the metadata needed to do that. Use them in the same session when an error needs to be diagnosed; they are inspection tools, not evidence that a particular error was triggered.\u003c/p\u003e\n\u003cp\u003eThe main core paths are:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003cstrong\u003eArray element or slice assignment.\u003c/strong\u003e \u003ccode\u003earrayfuncs.c\u003c/code\u003e validates subscripts and slice boundaries. One-dimensional arrays can be enlarged by assigning to a new element, with intervening positions filled by \u003ccode\u003eNULL\u003c/code\u003e; multidimensional enlargement is not supported. A slice assigned to an empty array must provide both boundaries. These rules mean that an assignment outside the current read bounds must be analyzed as an assignment operation, not inferred from \u003ccode\u003eSELECT a[n]\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eArray concatenation.\u003c/strong\u003e \u003ccode\u003earray_cat\u003c/code\u003e raises \u003ccode\u003e2202E\u003c/code\u003e when equal-rank arrays have different lengths or lower bounds on a non-concatenated dimension. This is the path exercised by the representative case.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMultidimensional construction.\u003c/strong\u003e The expression evaluator raises the same condition when non-empty array expressions used to form a multidimensional array have incompatible dimensions.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eThe source tree contains other callers, including data-type helper paths. Class 22 is the broad data-exception class; the \u003ccode\u003e2202E\u003c/code\u003e row and its source function identify when this particular shape or subscript contract failed.\u003c/p\u003e"},{"anchor":"messages","heading":"Messages and diagnostics","html":"\u003cp\u003eThe canonical executable excerpt is:\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"language-sql\"\u003eSELECT ARRAY[[1,2]] || ARRAY[[3]];\nSELECT ARRAY[1,2] || ARRAY[3,4];\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe first statement has two two-dimensional arrays whose inner dimensions differ. PostgreSQL 18.6 reports:\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"language-text\"\u003eSQLSTATE: 2202E\nseverity: ERROR\nmessage_primary: cannot concatenate incompatible arrays\nmessage_detail: Arrays with differing element dimensions are not compatible for concatenation.\nsource: array_userfuncs.c / array_cat / line 450\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe same case on PostgreSQL 10.21 reports the same primary and detail text, with the historical \u003ccode\u003earray_userfuncs.c\u003c/code\u003e source line 356. The second statement returns \u003ccode\u003e{1,2,3,4}\u003c/code\u003e. The message and detail are templates from the concatenation path, not a universal wording for every \u003ccode\u003e2202E\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eOther source-confirmed templates include \u003ccode\u003earray subscript out of range\u003c/code\u003e, \u003ccode\u003earray slice subscript must provide both boundaries\u003c/code\u003e with a detail explaining empty-array assignment, and \u003ccode\u003eupper bound cannot be less than lower bound\u003c/code\u003e. Preserve \u003ccode\u003emessage_detail\u003c/code\u003e, \u003ccode\u003emessage_hint\u003c/code\u003e, \u003ccode\u003esource_file\u003c/code\u003e, \u003ccode\u003esource_function\u003c/code\u003e, and \u003ccode\u003esource_line\u003c/code\u003e when the driver exposes them; they often distinguish a slice check from a concatenation check.\u003c/p\u003e"},{"anchor":"diagnosis","heading":"Diagnosis","html":"\u003cp\u003eStart by classifying the expression:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA plain element read such as \u003ccode\u003ea[999]\u003c/code\u003e can legitimately produce \u003ccode\u003eNULL\u003c/code\u003e. Check \u003ccode\u003ea IS NULL\u003c/code\u003e, the subscript expressions, and the stored bounds before calling it a server error.\u003c/li\u003e\n\u003cli\u003eA slice read can return \u003ccode\u003eNULL\u003c/code\u003e, an empty zero-dimensional array, or a reduced overlap according to the documented slice rules. Do not map those values to \u003ccode\u003e2202E\u003c/code\u003e without an error response.\u003c/li\u003e\n\u003cli\u003eAssignment, array construction, and concatenation execute validation code. Record the array rank, dimensions, lower bounds, number of supplied subscripts, and whether the statement is changing the value.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor a real error, record SQLSTATE, severity, primary message, detail, hint, statement position, and the relation or function context. Compare the failing expression with \u003ccode\u003earray_ndims\u003c/code\u003e, \u003ccode\u003earray_dims\u003c/code\u003e, \u003ccode\u003earray_lower\u003c/code\u003e, and \u003ccode\u003earray_upper\u003c/code\u003e from the same value or source expression. For concatenation, compare every non-concatenated dimension and lower bound. For a slice, verify both boundaries and their order. For construction, inspect every subarray's shape.\u003c/p\u003e\n\u003cp\u003eIn PL/pgSQL, a handler can catch \u003ccode\u003earray_subscript_error\u003c/code\u003e or \u003ccode\u003eSQLSTATE '2202E'\u003c/code\u003e, but the handler's transaction behavior depends on the block. A block with an \u003ccode\u003eEXCEPTION\u003c/code\u003e clause runs its protected body in a subtransaction; if the body errors, persistent changes made there are rolled back before the handler runs. A broad \u003ccode\u003eOTHERS\u003c/code\u003e handler also has documented exclusions, so use a specific condition when the application intends to repair an array operation.\u003c/p\u003e"},{"anchor":"response","heading":"Response","html":"\u003cp\u003eRepair the operation that violated the shape contract. Normalize dimensions and lower bounds before concatenating; provide complete, ordered slice boundaries; use a one-dimensional expansion only when its \u003ccode\u003eNULL\u003c/code\u003e fill behavior is intended; or rebuild multidimensional values with matching subarrays. If \u003ccode\u003eNULL\u003c/code\u003e is a valid result of a read, handle it as a value and do not “fix” it with \u003ccode\u003eCOALESCE\u003c/code\u003e before deciding whether the application should distinguish an absent element from a stored \u003ccode\u003eNULL\u003c/code\u003e element.\u003c/p\u003e\n\u003cp\u003eThe representative error ran in autocommit. After the failed statement the connection was \u003ccode\u003eIDLE\u003c/code\u003e, and the valid concatenation succeeded. In an explicit transaction, an \u003ccode\u003eERROR\u003c/code\u003e normally aborts the transaction until \u003ccode\u003eROLLBACK\u003c/code\u003e or a rollback to a savepoint; the connection itself need not be closed. A PL/pgSQL block with an exception clause can contain the failure in its protected subtransaction body, rolling back that body's changes before its handler runs. Verify the actual client transaction status rather than deriving connection fate from \u003ccode\u003e2202E\u003c/code\u003e alone.\u003c/p\u003e"},{"anchor":"versions","heading":"Versions","html":"\u003cp\u003eThe catalogue records \u003ccode\u003e2202E\u003c/code\u003e in the locked 7.4–8.4.22 pre-9.0 formal sources, every formal snapshot from 9.0.23 through 18.6, and the 19 Beta 3 preview. The same-tag \u003ccode\u003eREL8_1_4\u003c/code\u003e \u003ccode\u003eerrcodes.sgml\u003c/code\u003e table already lists \u003ccode\u003e2202E\u003c/code\u003e as \u003ccode\u003earray_subscript_error\u003c/code\u003e, confirming that condition-name observation by 8.1.4. Candidate source gaps remain for 7.0–7.3, so the 7.4 observation is a presence boundary rather than an exact introduction version. The fixed 18.6 source commit is \u003ccode\u003e724edf9bde9d356724ad384a2e196edc3c9f80f7\u003c/code\u003e; the alias and named macro are both present in its \u003ccode\u003eerrcodes.txt\u003c/code\u003e row.\u003c/p\u003e\n\u003cp\u003eThe incompatible-dimension case passed on PostgreSQL 18.6 and 10.21 with the same primary/detail wording and different source line numbers. That cross-version result does not guarantee unchanged wording for every older minor release or every other \u003ccode\u003e2202E\u003c/code\u003e call path.\u003c/p\u003e"},{"anchor":"related","heading":"Related","html":"\u003cp\u003e\u003ca href=\"/wiki/sqlstate/22000/\"\u003e\u003ccode\u003e22000\u003c/code\u003e — \u003ccode\u003edata_exception\u003c/code\u003e\u003c/a\u003e is the broad Class 22 category. \u003ca href=\"/wiki/sqlstate/22005/\"\u003e\u003ccode\u003e22005\u003c/code\u003e — \u003ccode\u003eerror_in_assignment\u003c/code\u003e\u003c/a\u003e is a distinct assignment condition and should not be substituted for an array-specific \u003ccode\u003e2202E\u003c/code\u003e path. \u003ca href=\"/wiki/sqlstate/22P02/\"\u003e\u003ccode\u003e22P02\u003c/code\u003e — \u003ccode\u003einvalid_text_representation\u003c/code\u003e\u003c/a\u003e concerns input text parsing. \u003ccode\u003e2202E\u003c/code\u003e also differs from a successful out-of-bounds read, which returns \u003ccode\u003eNULL\u003c/code\u003e under the documented array rules.\u003c/p\u003e"},{"anchor":"sources","heading":"Sources","html":"\u003cp\u003eThe structured evidence is recorded in the \u003ca href=\"#sources\"\u003epublic evidence JSON\u003c/a\u003e. Source records are pinned to PostgreSQL commit \u003ccode\u003e724edf9bde9d356724ad384a2e196edc3c9f80f7\u003c/code\u003e; runtime records retain the shared snippet registry, both target versions, and run \u003ccode\u003e2202E-snippet-registry-final-20260909\u003c/code\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esrc.errcodes.18.6\u003c/code\u003e — \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt#L159-L164\"\u003e\u003ccode\u003eerrcodes.txt\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esrc.array-userfuncs.18.6\u003c/code\u003e — \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/array_userfuncs.c#L443-L450\"\u003e\u003ccode\u003earray_userfuncs.c\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esrc.arrayfuncs.18.6\u003c/code\u003e — \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/arrayfuncs.c#L2644-L2653\"\u003e\u003ccode\u003earrayfuncs.c\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esrc.exec-expr.18.6\u003c/code\u003e — \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/executor/execExprInterp.c#L3549-L3565\"\u003e\u003ccode\u003eexecExprInterp.c\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edoc.array.18\u003c/code\u003e and \u003ccode\u003edoc.func.18\u003c/code\u003e — \u003ca href=\"/docs/18/arrays.html\"\u003eArrays\u003c/a\u003e and \u003ca href=\"/docs/18/functions-array.html\"\u003eArray Functions and Operators\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edoc.transactions.18\u003c/code\u003e — \u003ca href=\"/docs/18/tutorial-transactions.html\"\u003eTransactions\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e"}],"summary":"2202E is PostgreSQL's arraysubscripterror condition in Class 22, Data Exception. The directory keeps ERRCODEARRAYELEMENTERROR as a compatibility alias and uses ERRCODEARRAYSUBSCRIPTERROR for the named condition. Both macros encode the same SQLSTATE.","title":"2202E — array_subscript_error","translation_source_rev":"791e71de5b934add1a94a62edd587c3a3b4cb06acafd2c7cefceee28a5f02d74"}},"RequestedLocale":"en","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20","8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":{"aliases":["ERRCODE_ARRAY_ELEMENT_ERROR"],"catalogue_notes":{"earliest_observed":"7.4","formal_scope":"9.0.0..18.6","latest_observed":"18.6","matrix_scope":["9.0.23","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"],"pre9_scope":{"formal_tag_count":191,"maximum_release":"8.4.22","minimum_release":"7.0.0","source_definition_count":153,"source_doc_count":153,"source_file_count":306,"source_scope":"7.4..8.4 definition files; 7.0..7.3 candidate-path source gap probes","source_tag_count":153},"pre9_status":"present","preview_scope":["19beta3"]},"class":"22","class_name":"Data Exception","condition_name":"array_subscript_error","condition_names":["array_subscript_error"],"definition_changes":[],"english_manuals":{"10":{"aliases":[],"class_name":"Data Exception","condition_name":"array_subscript_error","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"9607b57e9f639b61785677ba4d226f5889fe1d19c8bf55a3337691899a9073cd","slug":"10"},"lang":"en","sqlstate":"2202E"},"11":{"aliases":[],"class_name":"Data Exception","condition_name":"array_subscript_error","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"3a024e38263ad77de228eed7930b842b42dc1d5cab9ca3727be8eed872ec9539","slug":"11"},"lang":"en","sqlstate":"2202E"},"12":{"aliases":[],"class_name":"Data Exception","condition_name":"array_subscript_error","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"1444bd6a138537cd75be88a220ee9472ac528f0cfc58758e49636d85455efe98","slug":"12"},"lang":"en","sqlstate":"2202E"},"13":{"aliases":[],"class_name":"Data Exception","condition_name":"array_subscript_error","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"4a3ef8af218e5736dfde8660ba609e84233b6b3bac7e0210ff8724cf1b27b2db","slug":"13"},"lang":"en","sqlstate":"2202E"},"14":{"aliases":[],"class_name":"Data Exception","condition_name":"array_subscript_error","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"1c12e83304e0f4ff64c9d98ca5e3007df6756932ed19867a4fa0e0650f6c5751","slug":"14"},"lang":"en","sqlstate":"2202E"},"15":{"aliases":[],"class_name":"Data Exception","condition_name":"array_subscript_error","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"2161f58f6e87f6535b3b1f3d4661427bb6765f4f6b074fcc16fac97594b50599","slug":"15"},"lang":"en","sqlstate":"2202E"},"16":{"aliases":[],"class_name":"Data Exception","condition_name":"array_subscript_error","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"928e705933d7c3d018ae3fba9d800b34e6325746d157339dce878473c519d100","slug":"16"},"lang":"en","sqlstate":"2202E"},"17":{"aliases":[],"class_name":"Data Exception","condition_name":"array_subscript_error","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"868135520af87351e3ea1ba42656111cbd2d157d98e1fef05ea158ac5729d8b1","slug":"17"},"lang":"en","sqlstate":"2202E"},"18":{"aliases":[],"class_name":"Data Exception","condition_name":"array_subscript_error","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"56dacf78e618ff0fd8c533e05db597b80d7ebbad7f8e512a888217d0640aa328","slug":"18"},"lang":"en","sqlstate":"2202E"},"19":{"aliases":[],"class_name":"Data Exception","condition_name":"array_subscript_error","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"63fb8d1aa9f494eeab9d0f8542a2b673f7746ee41ae2689d19403cb3cc425a5c","slug":"19"},"lang":"en","sqlstate":"2202E"},"20":{"aliases":[],"class_name":"Data Exception","condition_name":"array_subscript_error","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"0d3f602127cd137cf343b32d5fa78f175eeb6cdcb6353b1f6f998ede6cb7b911","slug":"devel"},"lang":"en","sqlstate":"2202E"},"8.1":{"aliases":[],"class_name":"Data Exception","condition_name":"array_subscript_error","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"0177b8818643540dec7bbef1fe92b60a3961debd52a68412301647ca146c7f2d","slug":"8.1"},"lang":"en","sqlstate":"2202E"},"8.2":{"aliases":[],"class_name":"Data Exception","condition_name":"array_subscript_error","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"d65bf7cff5958c304352c974e477183e21efe9bd68e03786001874653bf66963","slug":"8.2"},"lang":"en","sqlstate":"2202E"},"8.3":{"aliases":[],"class_name":"Data Exception","condition_name":"array_subscript_error","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"118059002973cdec5466ed3cabe7c9370b4c93d8ab542b8661d0eeb50cf6950d","slug":"8.3"},"lang":"en","sqlstate":"2202E"},"8.4":{"aliases":[],"class_name":"Data Exception","condition_name":"array_subscript_error","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"d63b10001be0581484022e33b78124a36bb3bd68d3ebe022cd7dfb375233432f","slug":"8.4"},"lang":"en","sqlstate":"2202E"},"9.0":{"aliases":[],"class_name":"Data Exception","condition_name":"array_subscript_error","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"658fc09c4c10eed7ac7dea4ed3e3eff8cc5791eb5af26b7b4a31b0f863b316db","slug":"9.0"},"lang":"en","sqlstate":"2202E"},"9.1":{"aliases":[],"class_name":"Data Exception","condition_name":"array_subscript_error","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"2d118b06c3b644c28b3ddefe9e4bef99a180321582209332372a5318f5bf8d1c","slug":"9.1"},"lang":"en","sqlstate":"2202E"},"9.2":{"aliases":[],"class_name":"Data Exception","condition_name":"array_subscript_error","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"2a37575b39c858d37c58fc4de6a16109554fd3306602294180d78faa1170d2cd","slug":"9.2"},"lang":"en","sqlstate":"2202E"},"9.3":{"aliases":[],"class_name":"Data Exception","condition_name":"array_subscript_error","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"2214b6869d764f7fba7221aefcdf1ab049b55ad51d63aa52054f3cd2c2533ae9","slug":"9.3"},"lang":"en","sqlstate":"2202E"},"9.4":{"aliases":[],"class_name":"Data Exception","condition_name":"array_subscript_error","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"7243e2d653befe88733222ede67958f0c4b7fae967b58eb97807aeb3f32b4096","slug":"9.4"},"lang":"en","sqlstate":"2202E"},"9.5":{"aliases":[],"class_name":"Data Exception","condition_name":"array_subscript_error","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"d40bc67cb331f1e4ccc0821ff57832c6c230edb0dce3ba4249defd21ae7ea29d","slug":"9.5"},"lang":"en","sqlstate":"2202E"},"9.6":{"aliases":[],"class_name":"Data Exception","condition_name":"array_subscript_error","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"2ab55e487571c8998ec39b3d1bbae29ac6fc5c310875bee422d9a7b8b3fde5b3","slug":"9.6"},"lang":"en","sqlstate":"2202E"}},"history_boundary":{"earliest_observed":"7.4","formal_tag_count":351,"gaps":[{"after":"18.6","before":"18.4","reason":"Non-adjacent release tags or a source gap; no removal is inferred."}],"latest_observed":"18.6","pre_range":{"first_observed":"7.4","known_lower_bound":"7.4 or earlier","last_observed":"8.4.22","notes":"Observed in the locked pre-9 formal release source; the label is a proven presence bound, not an exact introduction commit. Candidate source gaps remain for majors 7.0, 7.1, 7.2, 7.3.","scanned_formal_release_count":153,"scanned_source_scope":"7.4..8.4 definition files; 7.0..7.3 candidate-path source gap probes","source_gap_majors":["7.0","7.1","7.2","7.3"],"status":"partially_scanned"},"preview_snapshots":["19beta3"],"scanned_from":"9.0.0","scanned_to":"18.6"},"introduced":null,"known_present_by":"7.4","macros":["ERRCODE_ARRAY_ELEMENT_ERROR","ERRCODE_ARRAY_SUBSCRIPT_ERROR"],"manual_presence":["8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6","10","11","12","13","14","15","16","17","18","19","20"],"pre9_first_observed":"7.4","pre9_introduction_boundary":null,"pre9_last_observed":"8.4.22","pre9_presence_intervals":[{"end":"7.4.30","end_major":"7.4","end_tag":"REL7_4_30","evidence_count":31,"position":0,"start":"7.4","start_major":"7.4","start_tag":"REL7_4"},{"end":"8.0.26","end_major":"8.0","end_tag":"REL8_0_26","evidence_count":27,"position":1,"start":"8.0.0","start_major":"8.0","start_tag":"REL8_0_0"},{"end":"8.1.23","end_major":"8.1","end_tag":"REL8_1_23","evidence_count":24,"position":2,"start":"8.1.0","start_major":"8.1","start_tag":"REL8_1_0"},{"end":"8.2.23","end_major":"8.2","end_tag":"REL8_2_23","evidence_count":24,"position":3,"start":"8.2.0","start_major":"8.2","start_tag":"REL8_2_0"},{"end":"8.3.23","end_major":"8.3","end_tag":"REL8_3_23","evidence_count":24,"position":4,"start":"8.3.0","start_major":"8.3","start_tag":"REL8_3_0"},{"end":"8.4.22","end_major":"8.4","end_tag":"REL8_4_22","evidence_count":23,"position":5,"start":"8.4.0","start_major":"8.4","start_tag":"REL8_4_0"}],"pre9_status":"present","presence_intervals":[{"end":"9.0.23","end_major":"9.0","end_tag":"REL9_0_23","evidence_count":24,"position":0,"start":"9.0.0","start_major":"9.0","start_tag":"REL9_0_0"},{"end":"9.1.24","end_major":"9.1","end_tag":"REL9_1_24","evidence_count":25,"position":1,"start":"9.1.0","start_major":"9.1","start_tag":"REL9_1_0"},{"end":"9.2.24","end_major":"9.2","end_tag":"REL9_2_24","evidence_count":25,"position":2,"start":"9.2.0","start_major":"9.2","start_tag":"REL9_2_0"},{"end":"9.3.25","end_major":"9.3","end_tag":"REL9_3_25","evidence_count":26,"position":3,"start":"9.3.0","start_major":"9.3","start_tag":"REL9_3_0"},{"end":"9.4.26","end_major":"9.4","end_tag":"REL9_4_26","evidence_count":27,"position":4,"start":"9.4.0","start_major":"9.4","start_tag":"REL9_4_0"},{"end":"9.5.25","end_major":"9.5","end_tag":"REL9_5_25","evidence_count":26,"position":5,"start":"9.5.0","start_major":"9.5","start_tag":"REL9_5_0"},{"end":"9.6.24","end_major":"9.6","end_tag":"REL9_6_24","evidence_count":25,"position":6,"start":"9.6.0","start_major":"9.6","start_tag":"REL9_6_0"},{"end":"10.23","end_major":"10","end_tag":"REL_10_23","evidence_count":24,"position":7,"start":"10.0","start_major":"10","start_tag":"REL_10_0"},{"end":"11.22","end_major":"11","end_tag":"REL_11_22","evidence_count":23,"position":8,"start":"11.0","start_major":"11","start_tag":"REL_11_0"},{"end":"12.22","end_major":"12","end_tag":"REL_12_22","evidence_count":23,"position":9,"start":"12.0","start_major":"12","start_tag":"REL_12_0"},{"end":"13.23","end_major":"13","end_tag":"REL_13_23","evidence_count":24,"position":10,"start":"13.0","start_major":"13","start_tag":"REL_13_0"},{"end":"14.24","end_major":"14","end_tag":"REL_14_24","evidence_count":25,"position":11,"start":"14.0","start_major":"14","start_tag":"REL_14_0"},{"end":"15.19","end_major":"15","end_tag":"REL_15_19","evidence_count":20,"position":12,"start":"15.0","start_major":"15","start_tag":"REL_15_0"},{"end":"16.15","end_major":"16","end_tag":"REL_16_15","evidence_count":16,"position":13,"start":"16.0","start_major":"16","start_tag":"REL_16_0"},{"end":"17.11","end_major":"17","end_tag":"REL_17_11","evidence_count":12,"position":14,"start":"17.0","start_major":"17","start_tag":"REL_17_0"},{"end":"18.4","end_major":"18","end_tag":"REL_18_4","evidence_count":5,"position":15,"start":"18.0","start_major":"18","start_tag":"REL_18_0"},{"end":"18.6","end_major":"18","end_tag":"REL_18_6","evidence_count":1,"position":16,"start":"18.6","start_major":"18","start_tag":"REL_18_6"}],"present_in_snapshots":["9.0.23","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"],"preview_in_snapshots":["19beta3"],"primary_macro":"ERRCODE_ARRAY_SUBSCRIPT_ERROR","removed":null,"schema_version":2,"severity_classes":["E"],"sources":[{"channel":"formal","code_count":0,"commit":"3f78df10b168b78232fdbefe1d9d84c37f5aaaab","id":"postgresql:REL7_4:src/include/utils/errcodes.h","major":"7.4","path":"src/include/utils/errcodes.h","raw_path":".cache/catalogue/pre9/raw/definition/REL7_4.h","raw_url":"https://raw.githubusercontent.com/postgres/postgres/3f78df10b168b78232fdbefe1d9d84c37f5aaaab/src/include/utils/errcodes.h","record_count":0,"release":"7.4","repository":"https://github.com/postgres/postgres.git","sha256":"85e0d54037f0c49a06c909a4908fa24c19734c08f7f9611e5fbeb1b39745a539","size":18146,"source_format":"errcodes.h","source_role":"primary_definition","tag":"REL7_4","url":"https://github.com/postgres/postgres/blob/3f78df10b168b78232fdbefe1d9d84c37f5aaaab/src/include/utils/errcodes.h","version":"7.4"},{"channel":"formal","code_count":0,"commit":"c22b7eccd368754ea96865c046764382ab05db4b","id":"postgresql:REL8_0_0:src/include/utils/errcodes.h","major":"8.0","path":"src/include/utils/errcodes.h","raw_path":".cache/catalogue/pre9/raw/definition/REL8_0_0.h","raw_url":"https://raw.githubusercontent.com/postgres/postgres/c22b7eccd368754ea96865c046764382ab05db4b/src/include/utils/errcodes.h","record_count":0,"release":"8.0.0","repository":"https://github.com/postgres/postgres.git","sha256":"8b928e18943235ff0543eab22189ade1a018de43d72275f28b79df7d14e47849","size":20020,"source_format":"errcodes.h","source_role":"primary_definition","tag":"REL8_0_0","url":"https://github.com/postgres/postgres/blob/c22b7eccd368754ea96865c046764382ab05db4b/src/include/utils/errcodes.h","version":"8.0.0"},{"channel":"formal","code_count":0,"commit":"2a80c3c4dc56a44a26805c889ef71b614e769266","id":"postgresql:REL8_1_0:src/include/utils/errcodes.h","major":"8.1","path":"src/include/utils/errcodes.h","raw_path":".cache/catalogue/pre9/raw/definition/REL8_1_0.h","raw_url":"https://raw.githubusercontent.com/postgres/postgres/2a80c3c4dc56a44a26805c889ef71b614e769266/src/include/utils/errcodes.h","record_count":0,"release":"8.1.0","repository":"https://github.com/postgres/postgres.git","sha256":"52cab83d60a3b5fec10786b65bbfba39ef7404bc0e4599f6c239f2b56ad6a8ed","size":20109,"source_format":"errcodes.h","source_role":"primary_definition","tag":"REL8_1_0","url":"https://github.com/postgres/postgres/blob/2a80c3c4dc56a44a26805c889ef71b614e769266/src/include/utils/errcodes.h","version":"8.1.0"},{"channel":"formal","code_count":0,"commit":"2f52d7260ceac8e57613516d82a7404fbf3d137b","id":"postgresql:REL8_2_0:src/include/utils/errcodes.h","major":"8.2","path":"src/include/utils/errcodes.h","raw_path":".cache/catalogue/pre9/raw/definition/REL8_2_0.h","raw_url":"https://raw.githubusercontent.com/postgres/postgres/2f52d7260ceac8e57613516d82a7404fbf3d137b/src/include/utils/errcodes.h","record_count":0,"release":"8.2.0","repository":"https://github.com/postgres/postgres.git","sha256":"1f13bd962e663bf5222198a4b30fb016f1f21141b2c4ed2be351595ecf04f269","size":20247,"source_format":"errcodes.h","source_role":"primary_definition","tag":"REL8_2_0","url":"https://github.com/postgres/postgres/blob/2f52d7260ceac8e57613516d82a7404fbf3d137b/src/include/utils/errcodes.h","version":"8.2.0"},{"channel":"formal","code_count":0,"commit":"9e647a13872a5f34dc0009566925c5c352463780","id":"postgresql:REL8_3_0:src/include/utils/errcodes.h","major":"8.3","path":"src/include/utils/errcodes.h","raw_path":".cache/catalogue/pre9/raw/definition/REL8_3_0.h","raw_url":"https://raw.githubusercontent.com/postgres/postgres/9e647a13872a5f34dc0009566925c5c352463780/src/include/utils/errcodes.h","record_count":0,"release":"8.3.0","repository":"https://github.com/postgres/postgres.git","sha256":"8df5862003e7906ea11cf626431a426d1c7ae65d4fb85e526a46e29059b8e346","size":20650,"source_format":"errcodes.h","source_role":"primary_definition","tag":"REL8_3_0","url":"https://github.com/postgres/postgres/blob/9e647a13872a5f34dc0009566925c5c352463780/src/include/utils/errcodes.h","version":"8.3.0"},{"channel":"formal","code_count":0,"commit":"4d53a2f9699547bdc12831d2860c9d44c465e805","id":"postgresql:REL8_4_0:src/include/utils/errcodes.h","major":"8.4","path":"src/include/utils/errcodes.h","raw_path":".cache/catalogue/pre9/raw/definition/REL8_4_0.h","raw_url":"https://raw.githubusercontent.com/postgres/postgres/4d53a2f9699547bdc12831d2860c9d44c465e805/src/include/utils/errcodes.h","record_count":0,"release":"8.4.0","repository":"https://github.com/postgres/postgres.git","sha256":"b1a08b6c8e85631fe7a849d531841247a641bb799bca739c929a78e6702d3ab4","size":21169,"source_format":"errcodes.h","source_role":"primary_definition","tag":"REL8_4_0","url":"https://github.com/postgres/postgres/blob/4d53a2f9699547bdc12831d2860c9d44c465e805/src/include/utils/errcodes.h","version":"8.4.0"},{"channel":"formal","code_count":0,"commit":"8dd387500abe58a684c559f20c26ac08884b0c5d","id":"postgresql:REL8_4_22:src/include/utils/errcodes.h","major":"8.4","path":"src/include/utils/errcodes.h","raw_path":".cache/catalogue/pre9/raw/definition/REL8_4_22.h","raw_url":"https://raw.githubusercontent.com/postgres/postgres/8dd387500abe58a684c559f20c26ac08884b0c5d/src/include/utils/errcodes.h","record_count":0,"release":"8.4.22","repository":"https://github.com/postgres/postgres.git","sha256":"43fd9924243ff5bb5f51b5e7a5e5d8a011458beb5bb669b1d5b6122dac515936","size":21170,"source_format":"errcodes.h","source_role":"primary_definition","tag":"REL8_4_22","url":"https://github.com/postgres/postgres/blob/8dd387500abe58a684c559f20c26ac08884b0c5d/src/include/utils/errcodes.h","version":"8.4.22"},{"blob_id":"sha256:c814fbe5a5d2a61abe5bcf5c7754a9d339664aa4ee73f46fa11ed14966ff6713","channel":"formal","code_count":198,"commit":"861861edcc04a6e3ebdfe363311f122e2b226196","id":"postgresql:REL9_0_0:src/include/utils/errcodes.h","major":"9.0","parsed_path":"raw/definitions/REL9_0_0.parsed.json","path":"src/include/utils/errcodes.h","raw_path":"raw/definitions/REL9_0_0.h","raw_url":"https://raw.githubusercontent.com/postgres/postgres/861861edcc04a6e3ebdfe363311f122e2b226196/src/include/utils/errcodes.h","record_count":204,"release":"9.0.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"c814fbe5a5d2a61abe5bcf5c7754a9d339664aa4ee73f46fa11ed14966ff6713","size":21313,"source_format":"errcodes.h","source_role":"primary_definition","tag":"REL9_0_0","url":"https://github.com/postgres/postgres/blob/861861edcc04a6e3ebdfe363311f122e2b226196/src/include/utils/errcodes.h","version":"9.0.0"},{"blob_id":"sha256:e23d5129578249fc242f2737be2a577d6714b57917aad9deaf5ec156cadc52fd","channel":"formal","code_count":199,"commit":"ffb39e1aedcdd7b77ec920221b27ab02c40ddbfc","id":"postgresql:REL9_0_4:src/include/utils/errcodes.h","major":"9.0","parsed_path":"raw/definitions/REL9_0_4.parsed.json","path":"src/include/utils/errcodes.h","raw_path":"raw/definitions/REL9_0_4.h","raw_url":"https://raw.githubusercontent.com/postgres/postgres/ffb39e1aedcdd7b77ec920221b27ab02c40ddbfc/src/include/utils/errcodes.h","record_count":205,"release":"9.0.4","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"e23d5129578249fc242f2737be2a577d6714b57917aad9deaf5ec156cadc52fd","size":21384,"source_format":"errcodes.h","source_role":"primary_definition","tag":"REL9_0_4","url":"https://github.com/postgres/postgres/blob/ffb39e1aedcdd7b77ec920221b27ab02c40ddbfc/src/include/utils/errcodes.h","version":"9.0.4"},{"blob_id":"sha256:5b77881aab6f0d659fb3295e1adf53799a02c3d5680200bb10ff9f15d741f924","channel":"formal","code_count":199,"commit":"391aa8aac11fe78f3b2f5743b56e78b0ad6a5d84","id":"postgresql:REL9_0_18:src/include/utils/errcodes.h","major":"9.0","parsed_path":"raw/definitions/REL9_0_18.parsed.json","path":"src/include/utils/errcodes.h","raw_path":"raw/definitions/REL9_0_18.h","raw_url":"https://raw.githubusercontent.com/postgres/postgres/391aa8aac11fe78f3b2f5743b56e78b0ad6a5d84/src/include/utils/errcodes.h","record_count":205,"release":"9.0.18","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"5b77881aab6f0d659fb3295e1adf53799a02c3d5680200bb10ff9f15d741f924","size":21385,"source_format":"errcodes.h","source_role":"primary_definition","tag":"REL9_0_18","url":"https://github.com/postgres/postgres/blob/391aa8aac11fe78f3b2f5743b56e78b0ad6a5d84/src/include/utils/errcodes.h","version":"9.0.18"},{"blob_id":"sha256:2b1d71c453a82488c4e95df84a9ee18dc8fdcb2532a7c56f44f1e8c4265a8132","channel":"formal","code_count":228,"commit":"1f43001424a9da624a89b213d0be606a8212a50a","id":"postgresql:REL9_1_0:src/backend/utils/errcodes.txt","major":"9.1","parsed_path":"raw/definitions/REL9_1_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL9_1_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/1f43001424a9da624a89b213d0be606a8212a50a/src/backend/utils/errcodes.txt","record_count":234,"release":"9.1.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"2b1d71c453a82488c4e95df84a9ee18dc8fdcb2532a7c56f44f1e8c4265a8132","size":29355,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL9_1_0","url":"https://github.com/postgres/postgres/blob/1f43001424a9da624a89b213d0be606a8212a50a/src/backend/utils/errcodes.txt","version":"9.1.0"},{"blob_id":"sha256:271a522fcd18ec45ebe4c1235af0e27a0e9bf0376fda4073b9f4a9c0a00fc711","channel":"formal","code_count":232,"commit":"ef47adb414e46099155c34529a2a5caeea02fc41","id":"postgresql:REL9_2_0:src/backend/utils/errcodes.txt","major":"9.2","parsed_path":"raw/definitions/REL9_2_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL9_2_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/ef47adb414e46099155c34529a2a5caeea02fc41/src/backend/utils/errcodes.txt","record_count":238,"release":"9.2.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"271a522fcd18ec45ebe4c1235af0e27a0e9bf0376fda4073b9f4a9c0a00fc711","size":30387,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL9_2_0","url":"https://github.com/postgres/postgres/blob/ef47adb414e46099155c34529a2a5caeea02fc41/src/backend/utils/errcodes.txt","version":"9.2.0"},{"blob_id":"sha256:f90d801e724191c84e94ae33483e71b4e3c4de5730474d316df4c722a149897d","channel":"formal","code_count":232,"commit":"da645b3a73580ac30cf02e932b42d06157b98229","id":"postgresql:REL9_3_0:src/backend/utils/errcodes.txt","major":"9.3","parsed_path":"raw/definitions/REL9_3_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL9_3_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/da645b3a73580ac30cf02e932b42d06157b98229/src/backend/utils/errcodes.txt","record_count":238,"release":"9.3.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"f90d801e724191c84e94ae33483e71b4e3c4de5730474d316df4c722a149897d","size":30387,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL9_3_0","url":"https://github.com/postgres/postgres/blob/da645b3a73580ac30cf02e932b42d06157b98229/src/backend/utils/errcodes.txt","version":"9.3.0"},{"blob_id":"sha256:1695ec274fb29f0b0875ff674405e775334243835a6f6008e007dfe3a8260bf5","channel":"formal","code_count":232,"commit":"8ca336f4ac3f08a5f23e76c6e9a5f2c8064f5883","id":"postgresql:REL9_4_0:src/backend/utils/errcodes.txt","major":"9.4","parsed_path":"raw/definitions/REL9_4_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL9_4_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/8ca336f4ac3f08a5f23e76c6e9a5f2c8064f5883/src/backend/utils/errcodes.txt","record_count":238,"release":"9.4.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"1695ec274fb29f0b0875ff674405e775334243835a6f6008e007dfe3a8260bf5","size":30387,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL9_4_0","url":"https://github.com/postgres/postgres/blob/8ca336f4ac3f08a5f23e76c6e9a5f2c8064f5883/src/backend/utils/errcodes.txt","version":"9.4.0"},{"blob_id":"sha256:37f728a7e034ef0b05b060a4b82c7dd95c900e4a5501c80bfefd8d679889253b","channel":"formal","code_count":236,"commit":"cdd4ed5449bf317cc71b45a8deee0173822e7592","id":"postgresql:REL9_5_0:src/backend/utils/errcodes.txt","major":"9.5","parsed_path":"raw/definitions/REL9_5_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL9_5_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/cdd4ed5449bf317cc71b45a8deee0173822e7592/src/backend/utils/errcodes.txt","record_count":242,"release":"9.5.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"37f728a7e034ef0b05b060a4b82c7dd95c900e4a5501c80bfefd8d679889253b","size":30798,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL9_5_0","url":"https://github.com/postgres/postgres/blob/cdd4ed5449bf317cc71b45a8deee0173822e7592/src/backend/utils/errcodes.txt","version":"9.5.0"},{"blob_id":"sha256:bf4d94d84c7cfe695cb80e8f009872444574719a80a72e347eb66ef3686b86ef","channel":"formal","code_count":238,"commit":"a721a1ba9cf6c86cb52f1bf325d5a27b64e870d6","id":"postgresql:REL9_6_0:src/backend/utils/errcodes.txt","major":"9.6","parsed_path":"raw/definitions/REL9_6_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL9_6_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/a721a1ba9cf6c86cb52f1bf325d5a27b64e870d6/src/backend/utils/errcodes.txt","record_count":244,"release":"9.6.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"bf4d94d84c7cfe695cb80e8f009872444574719a80a72e347eb66ef3686b86ef","size":31135,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL9_6_0","url":"https://github.com/postgres/postgres/blob/a721a1ba9cf6c86cb52f1bf325d5a27b64e870d6/src/backend/utils/errcodes.txt","version":"9.6.0"},{"blob_id":"sha256:e5d829b24fe63aa69429fa1deb9675051fc8ffd4a8a4651861907a8f12ccb144","channel":"formal","code_count":240,"commit":"5df0e99bea1c3e5fbffa7fbd0982da88ea149bb6","id":"postgresql:REL_10_0:src/backend/utils/errcodes.txt","major":"10","parsed_path":"raw/definitions/REL_10_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_10_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/5df0e99bea1c3e5fbffa7fbd0982da88ea149bb6/src/backend/utils/errcodes.txt","record_count":246,"release":"10.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"e5d829b24fe63aa69429fa1deb9675051fc8ffd4a8a4651861907a8f12ccb144","size":31340,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_10_0","url":"https://github.com/postgres/postgres/blob/5df0e99bea1c3e5fbffa7fbd0982da88ea149bb6/src/backend/utils/errcodes.txt","version":"10.0"},{"blob_id":"sha256:8518be6de92ae135765e295c631c5f525120ca2b132453404b620f9aa595cab4","channel":"formal","code_count":241,"commit":"19f20081df059fef87e14c8e953669bd173dd7f1","id":"postgresql:REL_11_0:src/backend/utils/errcodes.txt","major":"11","parsed_path":"raw/definitions/REL_11_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_11_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/19f20081df059fef87e14c8e953669bd173dd7f1/src/backend/utils/errcodes.txt","record_count":247,"release":"11.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"8518be6de92ae135765e295c631c5f525120ca2b132453404b620f9aa595cab4","size":31453,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_11_0","url":"https://github.com/postgres/postgres/blob/19f20081df059fef87e14c8e953669bd173dd7f1/src/backend/utils/errcodes.txt","version":"11.0"},{"blob_id":"sha256:943259f3e36af1343dd0f090f7c7cec0e8c762b038d68c178aaa9b1b11999bfb","channel":"formal","code_count":257,"commit":"ad1f2885b8c82e0c2d56d7974f012cbecce17a17","id":"postgresql:REL_12_0:src/backend/utils/errcodes.txt","major":"12","parsed_path":"raw/definitions/REL_12_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_12_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/ad1f2885b8c82e0c2d56d7974f012cbecce17a17/src/backend/utils/errcodes.txt","record_count":263,"release":"12.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"943259f3e36af1343dd0f090f7c7cec0e8c762b038d68c178aaa9b1b11999bfb","size":33114,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_12_0","url":"https://github.com/postgres/postgres/blob/ad1f2885b8c82e0c2d56d7974f012cbecce17a17/src/backend/utils/errcodes.txt","version":"12.0"},{"blob_id":"sha256:9a464a3c3c99d2488782d4cdd0d46ce261085a944cb0c21e2d884586fbc8204d","channel":"formal","code_count":258,"commit":"29be9983a64c011eac0b9ee29895cce71e15ea77","id":"postgresql:REL_13_0:src/backend/utils/errcodes.txt","major":"13","parsed_path":"raw/definitions/REL_13_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_13_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/29be9983a64c011eac0b9ee29895cce71e15ea77/src/backend/utils/errcodes.txt","record_count":264,"release":"13.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"9a464a3c3c99d2488782d4cdd0d46ce261085a944cb0c21e2d884586fbc8204d","size":33239,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_13_0","url":"https://github.com/postgres/postgres/blob/29be9983a64c011eac0b9ee29895cce71e15ea77/src/backend/utils/errcodes.txt","version":"13.0"},{"blob_id":"sha256:c3c967fa20577f7ded946cb99e1a4706b85bb2476fd32d7e4a133c971a603552","channel":"formal","code_count":259,"commit":"86a4dc1e6f29d1992a2afa3fac1a0b0a6e84568c","id":"postgresql:REL_14_0:src/backend/utils/errcodes.txt","major":"14","parsed_path":"raw/definitions/REL_14_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_14_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/86a4dc1e6f29d1992a2afa3fac1a0b0a6e84568c/src/backend/utils/errcodes.txt","record_count":265,"release":"14.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"c3c967fa20577f7ded946cb99e1a4706b85bb2476fd32d7e4a133c971a603552","size":33337,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_14_0","url":"https://github.com/postgres/postgres/blob/86a4dc1e6f29d1992a2afa3fac1a0b0a6e84568c/src/backend/utils/errcodes.txt","version":"14.0"},{"blob_id":"sha256:a34b5fccd8a27c92817314dd942b79e76896cd1d9a8d4be21c81b02227850b4a","channel":"formal","code_count":260,"commit":"2a7ce2e2ce474504a707ec03e128fde66cfb8b48","id":"postgresql:REL_15_0:src/backend/utils/errcodes.txt","major":"15","parsed_path":"raw/definitions/REL_15_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_15_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/2a7ce2e2ce474504a707ec03e128fde66cfb8b48/src/backend/utils/errcodes.txt","record_count":266,"release":"15.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"a34b5fccd8a27c92817314dd942b79e76896cd1d9a8d4be21c81b02227850b4a","size":33458,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_15_0","url":"https://github.com/postgres/postgres/blob/2a7ce2e2ce474504a707ec03e128fde66cfb8b48/src/backend/utils/errcodes.txt","version":"15.0"},{"blob_id":"sha256:1d1d741b7b7c6dfd8275287e31c79befed75f3b9349e1a42ef0ca147c429ff88","channel":"formal","code_count":260,"commit":"c372fbbd8e911f2412b80a8c39d7079366565d67","id":"postgresql:REL_16_0:src/backend/utils/errcodes.txt","major":"16","parsed_path":"raw/definitions/REL_16_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_16_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/c372fbbd8e911f2412b80a8c39d7079366565d67/src/backend/utils/errcodes.txt","record_count":266,"release":"16.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"1d1d741b7b7c6dfd8275287e31c79befed75f3b9349e1a42ef0ca147c429ff88","size":33458,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_16_0","url":"https://github.com/postgres/postgres/blob/c372fbbd8e911f2412b80a8c39d7079366565d67/src/backend/utils/errcodes.txt","version":"16.0"},{"blob_id":"sha256:bb53279934510355eb4135a807c90d989f07650bd90f87026a4441f11d3296b1","channel":"formal","code_count":260,"commit":"d7ec59a63d745ba74fba0e280bbf85dc6d1caa3e","id":"postgresql:REL_17_0:src/backend/utils/errcodes.txt","major":"17","parsed_path":"raw/definitions/REL_17_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_17_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/d7ec59a63d745ba74fba0e280bbf85dc6d1caa3e/src/backend/utils/errcodes.txt","record_count":266,"release":"17.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"bb53279934510355eb4135a807c90d989f07650bd90f87026a4441f11d3296b1","size":33392,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_17_0","url":"https://github.com/postgres/postgres/blob/d7ec59a63d745ba74fba0e280bbf85dc6d1caa3e/src/backend/utils/errcodes.txt","version":"17.0"},{"blob_id":"sha256:6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba","channel":"formal","code_count":262,"commit":"3d6a828938a5fa0444275d3d2f67b64ec3199eb7","id":"postgresql:REL_18_0:src/backend/utils/errcodes.txt","major":"18","parsed_path":"raw/definitions/REL_18_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_18_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/3d6a828938a5fa0444275d3d2f67b64ec3199eb7/src/backend/utils/errcodes.txt","record_count":268,"release":"18.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba","size":33739,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_18_0","url":"https://github.com/postgres/postgres/blob/3d6a828938a5fa0444275d3d2f67b64ec3199eb7/src/backend/utils/errcodes.txt","version":"18.0"},{"blob_id":"sha256:cadb9e83cde9a8699a7e74448891ca623af8579ccc8e11c7e533fb47cbc42f89","channel":"preview","code_count":262,"commit":"3638289fb57bdabec00deda98ee9624a35f5d66a","id":"postgresql:REL_19_BETA3:src/backend/utils/errcodes.txt","major":"19","parsed_path":"raw/definitions/REL_19_BETA3.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_19_BETA3.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/3638289fb57bdabec00deda98ee9624a35f5d66a/src/backend/utils/errcodes.txt","record_count":268,"release":"19beta3","release_date":"2026-08-13","repository":"https://github.com/postgres/postgres.git","sha256":"cadb9e83cde9a8699a7e74448891ca623af8579ccc8e11c7e533fb47cbc42f89","size":33739,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_19_BETA3","url":"https://github.com/postgres/postgres/blob/3638289fb57bdabec00deda98ee9624a35f5d66a/src/backend/utils/errcodes.txt","version":"19beta3"}],"sqlstate":"2202E","status":"active","usage_evidence":[{"evidence_ids":["postgresql:REL7_4:src/include/utils/errcodes.h","postgresql:REL7_4_10:src/include/utils/errcodes.h","postgresql:REL7_4_11:src/include/utils/errcodes.h","postgresql:REL7_4_12:src/include/utils/errcodes.h","postgresql:REL7_4_13:src/include/utils/errcodes.h","postgresql:REL7_4_14:src/include/utils/errcodes.h","postgresql:REL7_4_15:src/include/utils/errcodes.h","postgresql:REL7_4_16:src/include/utils/errcodes.h","postgresql:REL7_4_17:src/include/utils/errcodes.h","postgresql:REL7_4_18:src/include/utils/errcodes.h","postgresql:REL7_4_19:src/include/utils/errcodes.h","postgresql:REL7_4_1:src/include/utils/errcodes.h","postgresql:REL7_4_20:src/include/utils/errcodes.h","postgresql:REL7_4_21:src/include/utils/errcodes.h","postgresql:REL7_4_22:src/include/utils/errcodes.h","postgresql:REL7_4_23:src/include/utils/errcodes.h","postgresql:REL7_4_24:src/include/utils/errcodes.h","postgresql:REL7_4_25:src/include/utils/errcodes.h","postgresql:REL7_4_26:src/include/utils/errcodes.h","postgresql:REL7_4_27:src/include/utils/errcodes.h","postgresql:REL7_4_28:src/include/utils/errcodes.h","postgresql:REL7_4_29:src/include/utils/errcodes.h","postgresql:REL7_4_2:src/include/utils/errcodes.h","postgresql:REL7_4_30:src/include/utils/errcodes.h","postgresql:REL7_4_3:src/include/utils/errcodes.h","postgresql:REL7_4_4:src/include/utils/errcodes.h","postgresql:REL7_4_5:src/include/utils/errcodes.h","postgresql:REL7_4_6:src/include/utils/errcodes.h","postgresql:REL7_4_7:src/include/utils/errcodes.h","postgresql:REL7_4_8:src/include/utils/errcodes.h","postgresql:REL7_4_9:src/include/utils/errcodes.h","postgresql:REL8_0_0:src/include/utils/errcodes.h","postgresql:REL8_0_10:src/include/utils/errcodes.h","postgresql:REL8_0_11:src/include/utils/errcodes.h","postgresql:REL8_0_12:src/include/utils/errcodes.h","postgresql:REL8_0_13:src/include/utils/errcodes.h","postgresql:REL8_0_14:src/include/utils/errcodes.h","postgresql:REL8_0_15:src/include/utils/errcodes.h","postgresql:REL8_0_16:src/include/utils/errcodes.h","postgresql:REL8_0_17:src/include/utils/errcodes.h","postgresql:REL8_0_18:src/include/utils/errcodes.h","postgresql:REL8_0_19:src/include/utils/errcodes.h","postgresql:REL8_0_1:src/include/utils/errcodes.h","postgresql:REL8_0_20:src/include/utils/errcodes.h","postgresql:REL8_0_21:src/include/utils/errcodes.h","postgresql:REL8_0_22:src/include/utils/errcodes.h","postgresql:REL8_0_23:src/include/utils/errcodes.h","postgresql:REL8_0_24:src/include/utils/errcodes.h","postgresql:REL8_0_25:src/include/utils/errcodes.h","postgresql:REL8_0_26:src/include/utils/errcodes.h","postgresql:REL8_0_2:src/include/utils/errcodes.h","postgresql:REL8_0_3:src/include/utils/errcodes.h","postgresql:REL8_0_4:src/include/utils/errcodes.h","postgresql:REL8_0_5:src/include/utils/errcodes.h","postgresql:REL8_0_6:src/include/utils/errcodes.h","postgresql:REL8_0_7:src/include/utils/errcodes.h","postgresql:REL8_0_8:src/include/utils/errcodes.h","postgresql:REL8_0_9:src/include/utils/errcodes.h","postgresql:REL8_1_0:src/include/utils/errcodes.h","postgresql:REL8_1_10:src/include/utils/errcodes.h","postgresql:REL8_1_11:src/include/utils/errcodes.h","postgresql:REL8_1_12:src/include/utils/errcodes.h","postgresql:REL8_1_13:src/include/utils/errcodes.h","postgresql:REL8_1_14:src/include/utils/errcodes.h","postgresql:REL8_1_15:src/include/utils/errcodes.h","postgresql:REL8_1_16:src/include/utils/errcodes.h","postgresql:REL8_1_17:src/include/utils/errcodes.h","postgresql:REL8_1_18:src/include/utils/errcodes.h","postgresql:REL8_1_19:src/include/utils/errcodes.h","postgresql:REL8_1_1:src/include/utils/errcodes.h","postgresql:REL8_1_20:src/include/utils/errcodes.h","postgresql:REL8_1_21:src/include/utils/errcodes.h","postgresql:REL8_1_22:src/include/utils/errcodes.h","postgresql:REL8_1_23:src/include/utils/errcodes.h","postgresql:REL8_1_2:src/include/utils/errcodes.h","postgresql:REL8_1_3:src/include/utils/errcodes.h","postgresql:REL8_1_4:src/include/utils/errcodes.h","postgresql:REL8_1_5:src/include/utils/errcodes.h","postgresql:REL8_1_6:src/include/utils/errcodes.h","postgresql:REL8_1_7:src/include/utils/errcodes.h","postgresql:REL8_1_8:src/include/utils/errcodes.h","postgresql:REL8_1_9:src/include/utils/errcodes.h","postgresql:REL8_2_0:src/include/utils/errcodes.h","postgresql:REL8_2_10:src/include/utils/errcodes.h","postgresql:REL8_2_11:src/include/utils/errcodes.h","postgresql:REL8_2_12:src/include/utils/errcodes.h","postgresql:REL8_2_13:src/include/utils/errcodes.h","postgresql:REL8_2_14:src/include/utils/errcodes.h","postgresql:REL8_2_15:src/include/utils/errcodes.h","postgresql:REL8_2_16:src/include/utils/errcodes.h","postgresql:REL8_2_17:src/include/utils/errcodes.h","postgresql:REL8_2_18:src/include/utils/errcodes.h","postgresql:REL8_2_19:src/include/utils/errcodes.h","postgresql:REL8_2_1:src/include/utils/errcodes.h","postgresql:REL8_2_20:src/include/utils/errcodes.h","postgresql:REL8_2_21:src/include/utils/errcodes.h","postgresql:REL8_2_22:src/include/utils/errcodes.h","postgresql:REL8_2_23:src/include/utils/errcodes.h","postgresql:REL8_2_2:src/include/utils/errcodes.h","postgresql:REL8_2_3:src/include/utils/errcodes.h","postgresql:REL8_2_4:src/include/utils/errcodes.h","postgresql:REL8_2_5:src/include/utils/errcodes.h","postgresql:REL8_2_6:src/include/utils/errcodes.h","postgresql:REL8_2_7:src/include/utils/errcodes.h","postgresql:REL8_2_8:src/include/utils/errcodes.h","postgresql:REL8_2_9:src/include/utils/errcodes.h","postgresql:REL8_3_0:src/include/utils/errcodes.h","postgresql:REL8_3_10:src/include/utils/errcodes.h","postgresql:REL8_3_11:src/include/utils/errcodes.h","postgresql:REL8_3_12:src/include/utils/errcodes.h","postgresql:REL8_3_13:src/include/utils/errcodes.h","postgresql:REL8_3_14:src/include/utils/errcodes.h","postgresql:REL8_3_15:src/include/utils/errcodes.h","postgresql:REL8_3_16:src/include/utils/errcodes.h","postgresql:REL8_3_17:src/include/utils/errcodes.h","postgresql:REL8_3_18:src/include/utils/errcodes.h","postgresql:REL8_3_19:src/include/utils/errcodes.h","postgresql:REL8_3_1:src/include/utils/errcodes.h","postgresql:REL8_3_20:src/include/utils/errcodes.h","postgresql:REL8_3_21:src/include/utils/errcodes.h","postgresql:REL8_3_22:src/include/utils/errcodes.h","postgresql:REL8_3_23:src/include/utils/errcodes.h","postgresql:REL8_3_2:src/include/utils/errcodes.h","postgresql:REL8_3_3:src/include/utils/errcodes.h","postgresql:REL8_3_4:src/include/utils/errcodes.h","postgresql:REL8_3_5:src/include/utils/errcodes.h","postgresql:REL8_3_6:src/include/utils/errcodes.h","postgresql:REL8_3_7:src/include/utils/errcodes.h","postgresql:REL8_3_8:src/include/utils/errcodes.h","postgresql:REL8_3_9:src/include/utils/errcodes.h","postgresql:REL8_4_0:src/include/utils/errcodes.h","postgresql:REL8_4_10:src/include/utils/errcodes.h","postgresql:REL8_4_11:src/include/utils/errcodes.h","postgresql:REL8_4_12:src/include/utils/errcodes.h","postgresql:REL8_4_13:src/include/utils/errcodes.h","postgresql:REL8_4_14:src/include/utils/errcodes.h","postgresql:REL8_4_15:src/include/utils/errcodes.h","postgresql:REL8_4_16:src/include/utils/errcodes.h","postgresql:REL8_4_17:src/include/utils/errcodes.h","postgresql:REL8_4_18:src/include/utils/errcodes.h","postgresql:REL8_4_19:src/include/utils/errcodes.h","postgresql:REL8_4_1:src/include/utils/errcodes.h","postgresql:REL8_4_20:src/include/utils/errcodes.h","postgresql:REL8_4_21:src/include/utils/errcodes.h","postgresql:REL8_4_22:src/include/utils/errcodes.h","postgresql:REL8_4_2:src/include/utils/errcodes.h","postgresql:REL8_4_3:src/include/utils/errcodes.h","postgresql:REL8_4_4:src/include/utils/errcodes.h","postgresql:REL8_4_5:src/include/utils/errcodes.h","postgresql:REL8_4_6:src/include/utils/errcodes.h","postgresql:REL8_4_7:src/include/utils/errcodes.h","postgresql:REL8_4_8:src/include/utils/errcodes.h","postgresql:REL8_4_9:src/include/utils/errcodes.h","postgresql:REL9_0_0:src/include/utils/errcodes.h","postgresql:REL9_0_10:src/include/utils/errcodes.h","postgresql:REL9_0_11:src/include/utils/errcodes.h","postgresql:REL9_0_12:src/include/utils/errcodes.h","postgresql:REL9_0_13:src/include/utils/errcodes.h","postgresql:REL9_0_14:src/include/utils/errcodes.h","postgresql:REL9_0_15:src/include/utils/errcodes.h","postgresql:REL9_0_16:src/include/utils/errcodes.h","postgresql:REL9_0_17:src/include/utils/errcodes.h","postgresql:REL9_0_18:src/include/utils/errcodes.h","postgresql:REL9_0_19:src/include/utils/errcodes.h","postgresql:REL9_0_1:src/include/utils/errcodes.h","postgresql:REL9_0_20:src/include/utils/errcodes.h","postgresql:REL9_0_21:src/include/utils/errcodes.h","postgresql:REL9_0_22:src/include/utils/errcodes.h","postgresql:REL9_0_23:src/include/utils/errcodes.h","postgresql:REL9_0_2:src/include/utils/errcodes.h","postgresql:REL9_0_3:src/include/utils/errcodes.h","postgresql:REL9_0_4:src/include/utils/errcodes.h","postgresql:REL9_0_5:src/include/utils/errcodes.h","postgresql:REL9_0_6:src/include/utils/errcodes.h","postgresql:REL9_0_7:src/include/utils/errcodes.h","postgresql:REL9_0_8:src/include/utils/errcodes.h","postgresql:REL9_0_9:src/include/utils/errcodes.h","postgresql:REL9_1_0:src/backend/utils/errcodes.txt","postgresql:REL9_1_10:src/backend/utils/errcodes.txt","postgresql:REL9_1_11:src/backend/utils/errcodes.txt","postgresql:REL9_1_12:src/backend/utils/errcodes.txt","postgresql:REL9_1_13:src/backend/utils/errcodes.txt","postgresql:REL9_1_14:src/backend/utils/errcodes.txt","postgresql:REL9_1_15:src/backend/utils/errcodes.txt","postgresql:REL9_1_16:src/backend/utils/errcodes.txt","postgresql:REL9_1_17:src/backend/utils/errcodes.txt","postgresql:REL9_1_18:src/backend/utils/errcodes.txt","postgresql:REL9_1_19:src/backend/utils/errcodes.txt","postgresql:REL9_1_1:src/backend/utils/errcodes.txt","postgresql:REL9_1_20:src/backend/utils/errcodes.txt","postgresql:REL9_1_21:src/backend/utils/errcodes.txt","postgresql:REL9_1_22:src/backend/utils/errcodes.txt","postgresql:REL9_1_23:src/backend/utils/errcodes.txt","postgresql:REL9_1_24:src/backend/utils/errcodes.txt","postgresql:REL9_1_2:src/backend/utils/errcodes.txt","postgresql:REL9_1_3:src/backend/utils/errcodes.txt","postgresql:REL9_1_4:src/backend/utils/errcodes.txt","postgresql:REL9_1_5:src/backend/utils/errcodes.txt","postgresql:REL9_1_6:src/backend/utils/errcodes.txt","postgresql:REL9_1_7:src/backend/utils/errcodes.txt","postgresql:REL9_1_8:src/backend/utils/errcodes.txt","postgresql:REL9_1_9:src/backend/utils/errcodes.txt","postgresql:REL9_2_0:src/backend/utils/errcodes.txt","postgresql:REL9_2_10:src/backend/utils/errcodes.txt","postgresql:REL9_2_11:src/backend/utils/errcodes.txt","postgresql:REL9_2_12:src/backend/utils/errcodes.txt","postgresql:REL9_2_13:src/backend/utils/errcodes.txt","postgresql:REL9_2_14:src/backend/utils/errcodes.txt","postgresql:REL9_2_15:src/backend/utils/errcodes.txt","postgresql:REL9_2_16:src/backend/utils/errcodes.txt","postgresql:REL9_2_17:src/backend/utils/errcodes.txt","postgresql:REL9_2_18:src/backend/utils/errcodes.txt","postgresql:REL9_2_19:src/backend/utils/errcodes.txt","postgresql:REL9_2_1:src/backend/utils/errcodes.txt","postgresql:REL9_2_20:src/backend/utils/errcodes.txt","postgresql:REL9_2_21:src/backend/utils/errcodes.txt","postgresql:REL9_2_22:src/backend/utils/errcodes.txt","postgresql:REL9_2_23:src/backend/utils/errcodes.txt","postgresql:REL9_2_24:src/backend/utils/errcodes.txt","postgresql:REL9_2_2:src/backend/utils/errcodes.txt","postgresql:REL9_2_3:src/backend/utils/errcodes.txt","postgresql:REL9_2_4:src/backend/utils/errcodes.txt","postgresql:REL9_2_5:src/backend/utils/errcodes.txt","postgresql:REL9_2_6:src/backend/utils/errcodes.txt","postgresql:REL9_2_7:src/backend/utils/errcodes.txt","postgresql:REL9_2_8:src/backend/utils/errcodes.txt","postgresql:REL9_2_9:src/backend/utils/errcodes.txt","postgresql:REL9_3_0:src/backend/utils/errcodes.txt","postgresql:REL9_3_10:src/backend/utils/errcodes.txt","postgresql:REL9_3_11:src/backend/utils/errcodes.txt","postgresql:REL9_3_12:src/backend/utils/errcodes.txt","postgresql:REL9_3_13:src/backend/utils/errcodes.txt","postgresql:REL9_3_14:src/backend/utils/errcodes.txt","postgresql:REL9_3_15:src/backend/utils/errcodes.txt","postgresql:REL9_3_16:src/backend/utils/errcodes.txt","postgresql:REL9_3_17:src/backend/utils/errcodes.txt","postgresql:REL9_3_18:src/backend/utils/errcodes.txt","postgresql:REL9_3_19:src/backend/utils/errcodes.txt","postgresql:REL9_3_1:src/backend/utils/errcodes.txt","postgresql:REL9_3_20:src/backend/utils/errcodes.txt","postgresql:REL9_3_21:src/backend/utils/errcodes.txt","postgresql:REL9_3_22:src/backend/utils/errcodes.txt","postgresql:REL9_3_23:src/backend/utils/errcodes.txt","postgresql:REL9_3_24:src/backend/utils/errcodes.txt","postgresql:REL9_3_25:src/backend/utils/errcodes.txt","postgresql:REL9_3_2:src/backend/utils/errcodes.txt","postgresql:REL9_3_3:src/backend/utils/errcodes.txt","postgresql:REL9_3_4:src/backend/utils/errcodes.txt","postgresql:REL9_3_5:src/backend/utils/errcodes.txt","postgresql:REL9_3_6:src/backend/utils/errcodes.txt","postgresql:REL9_3_7:src/backend/utils/errcodes.txt","postgresql:REL9_3_8:src/backend/utils/errcodes.txt","postgresql:REL9_3_9:src/backend/utils/errcodes.txt","postgresql:REL9_4_0:src/backend/utils/errcodes.txt","postgresql:REL9_4_10:src/backend/utils/errcodes.txt","postgresql:REL9_4_11:src/backend/utils/errcodes.txt","postgresql:REL9_4_12:src/backend/utils/errcodes.txt","postgresql:REL9_4_13:src/backend/utils/errcodes.txt","postgresql:REL9_4_14:src/backend/utils/errcodes.txt","postgresql:REL9_4_15:src/backend/utils/errcodes.txt","postgresql:REL9_4_16:src/backend/utils/errcodes.txt","postgresql:REL9_4_17:src/backend/utils/errcodes.txt","postgresql:REL9_4_18:src/backend/utils/errcodes.txt","postgresql:REL9_4_19:src/backend/utils/errcodes.txt","postgresql:REL9_4_1:src/backend/utils/errcodes.txt","postgresql:REL9_4_20:src/backend/utils/errcodes.txt","postgresql:REL9_4_21:src/backend/utils/errcodes.txt","postgresql:REL9_4_22:src/backend/utils/errcodes.txt","postgresql:REL9_4_23:src/backend/utils/errcodes.txt","postgresql:REL9_4_24:src/backend/utils/errcodes.txt","postgresql:REL9_4_25:src/backend/utils/errcodes.txt","postgresql:REL9_4_26:src/backend/utils/errcodes.txt","postgresql:REL9_4_2:src/backend/utils/errcodes.txt","postgresql:REL9_4_3:src/backend/utils/errcodes.txt","postgresql:REL9_4_4:src/backend/utils/errcodes.txt","postgresql:REL9_4_5:src/backend/utils/errcodes.txt","postgresql:REL9_4_6:src/backend/utils/errcodes.txt","postgresql:REL9_4_7:src/backend/utils/errcodes.txt","postgresql:REL9_4_8:src/backend/utils/errcodes.txt","postgresql:REL9_4_9:src/backend/utils/errcodes.txt","postgresql:REL9_5_0:src/backend/utils/errcodes.txt","postgresql:REL9_5_10:src/backend/utils/errcodes.txt","postgresql:REL9_5_11:src/backend/utils/errcodes.txt","postgresql:REL9_5_12:src/backend/utils/errcodes.txt","postgresql:REL9_5_13:src/backend/utils/errcodes.txt","postgresql:REL9_5_14:src/backend/utils/errcodes.txt","postgresql:REL9_5_15:src/backend/utils/errcodes.txt","postgresql:REL9_5_16:src/backend/utils/errcodes.txt","postgresql:REL9_5_17:src/backend/utils/errcodes.txt","postgresql:REL9_5_18:src/backend/utils/errcodes.txt","postgresql:REL9_5_19:src/backend/utils/errcodes.txt","postgresql:REL9_5_1:src/backend/utils/errcodes.txt","postgresql:REL9_5_20:src/backend/utils/errcodes.txt","postgresql:REL9_5_21:src/backend/utils/errcodes.txt","postgresql:REL9_5_22:src/backend/utils/errcodes.txt","postgresql:REL9_5_23:src/backend/utils/errcodes.txt","postgresql:REL9_5_24:src/backend/utils/errcodes.txt","postgresql:REL9_5_25:src/backend/utils/errcodes.txt","postgresql:REL9_5_2:src/backend/utils/errcodes.txt","postgresql:REL9_5_3:src/backend/utils/errcodes.txt","postgresql:REL9_5_4:src/backend/utils/errcodes.txt","postgresql:REL9_5_5:src/backend/utils/errcodes.txt","postgresql:REL9_5_6:src/backend/utils/errcodes.txt","postgresql:REL9_5_7:src/backend/utils/errcodes.txt","postgresql:REL9_5_8:src/backend/utils/errcodes.txt","postgresql:REL9_5_9:src/backend/utils/errcodes.txt","postgresql:REL9_6_0:src/backend/utils/errcodes.txt","postgresql:REL9_6_10:src/backend/utils/errcodes.txt","postgresql:REL9_6_11:src/backend/utils/errcodes.txt","postgresql:REL9_6_12:src/backend/utils/errcodes.txt","postgresql:REL9_6_13:src/backend/utils/errcodes.txt","postgresql:REL9_6_14:src/backend/utils/errcodes.txt","postgresql:REL9_6_15:src/backend/utils/errcodes.txt","postgresql:REL9_6_16:src/backend/utils/errcodes.txt","postgresql:REL9_6_17:src/backend/utils/errcodes.txt","postgresql:REL9_6_18:src/backend/utils/errcodes.txt","postgresql:REL9_6_19:src/backend/utils/errcodes.txt","postgresql:REL9_6_1:src/backend/utils/errcodes.txt","postgresql:REL9_6_20:src/backend/utils/errcodes.txt","postgresql:REL9_6_21:src/backend/utils/errcodes.txt","postgresql:REL9_6_22:src/backend/utils/errcodes.txt","postgresql:REL9_6_23:src/backend/utils/errcodes.txt","postgresql:REL9_6_24:src/backend/utils/errcodes.txt","postgresql:REL9_6_2:src/backend/utils/errcodes.txt","postgresql:REL9_6_3:src/backend/utils/errcodes.txt","postgresql:REL9_6_4:src/backend/utils/errcodes.txt","postgresql:REL9_6_5:src/backend/utils/errcodes.txt","postgresql:REL9_6_6:src/backend/utils/errcodes.txt","postgresql:REL9_6_7:src/backend/utils/errcodes.txt","postgresql:REL9_6_8:src/backend/utils/errcodes.txt","postgresql:REL9_6_9:src/backend/utils/errcodes.txt","postgresql:REL_10_0:src/backend/utils/errcodes.txt","postgresql:REL_10_10:src/backend/utils/errcodes.txt","postgresql:REL_10_11:src/backend/utils/errcodes.txt","postgresql:REL_10_12:src/backend/utils/errcodes.txt","postgresql:REL_10_13:src/backend/utils/errcodes.txt","postgresql:REL_10_14:src/backend/utils/errcodes.txt","postgresql:REL_10_15:src/backend/utils/errcodes.txt","postgresql:REL_10_16:src/backend/utils/errcodes.txt","postgresql:REL_10_17:src/backend/utils/errcodes.txt","postgresql:REL_10_18:src/backend/utils/errcodes.txt","postgresql:REL_10_19:src/backend/utils/errcodes.txt","postgresql:REL_10_1:src/backend/utils/errcodes.txt","postgresql:REL_10_20:src/backend/utils/errcodes.txt","postgresql:REL_10_21:src/backend/utils/errcodes.txt","postgresql:REL_10_22:src/backend/utils/errcodes.txt","postgresql:REL_10_23:src/backend/utils/errcodes.txt","postgresql:REL_10_2:src/backend/utils/errcodes.txt","postgresql:REL_10_3:src/backend/utils/errcodes.txt","postgresql:REL_10_4:src/backend/utils/errcodes.txt","postgresql:REL_10_5:src/backend/utils/errcodes.txt","postgresql:REL_10_6:src/backend/utils/errcodes.txt","postgresql:REL_10_7:src/backend/utils/errcodes.txt","postgresql:REL_10_8:src/backend/utils/errcodes.txt","postgresql:REL_10_9:src/backend/utils/errcodes.txt","postgresql:REL_11_0:src/backend/utils/errcodes.txt","postgresql:REL_11_10:src/backend/utils/errcodes.txt","postgresql:REL_11_11:src/backend/utils/errcodes.txt","postgresql:REL_11_12:src/backend/utils/errcodes.txt","postgresql:REL_11_13:src/backend/utils/errcodes.txt","postgresql:REL_11_14:src/backend/utils/errcodes.txt","postgresql:REL_11_15:src/backend/utils/errcodes.txt","postgresql:REL_11_16:src/backend/utils/errcodes.txt","postgresql:REL_11_17:src/backend/utils/errcodes.txt","postgresql:REL_11_18:src/backend/utils/errcodes.txt","postgresql:REL_11_19:src/backend/utils/errcodes.txt","postgresql:REL_11_1:src/backend/utils/errcodes.txt","postgresql:REL_11_20:src/backend/utils/errcodes.txt","postgresql:REL_11_21:src/backend/utils/errcodes.txt","postgresql:REL_11_22:src/backend/utils/errcodes.txt","postgresql:REL_11_2:src/backend/utils/errcodes.txt","postgresql:REL_11_3:src/backend/utils/errcodes.txt","postgresql:REL_11_4:src/backend/utils/errcodes.txt","postgresql:REL_11_5:src/backend/utils/errcodes.txt","postgresql:REL_11_6:src/backend/utils/errcodes.txt","postgresql:REL_11_7:src/backend/utils/errcodes.txt","postgresql:REL_11_8:src/backend/utils/errcodes.txt","postgresql:REL_11_9:src/backend/utils/errcodes.txt","postgresql:REL_12_0:src/backend/utils/errcodes.txt","postgresql:REL_12_10:src/backend/utils/errcodes.txt","postgresql:REL_12_11:src/backend/utils/errcodes.txt","postgresql:REL_12_12:src/backend/utils/errcodes.txt","postgresql:REL_12_13:src/backend/utils/errcodes.txt","postgresql:REL_12_14:src/backend/utils/errcodes.txt","postgresql:REL_12_15:src/backend/utils/errcodes.txt","postgresql:REL_12_16:src/backend/utils/errcodes.txt","postgresql:REL_12_17:src/backend/utils/errcodes.txt","postgresql:REL_12_18:src/backend/utils/errcodes.txt","postgresql:REL_12_19:src/backend/utils/errcodes.txt","postgresql:REL_12_1:src/backend/utils/errcodes.txt","postgresql:REL_12_20:src/backend/utils/errcodes.txt","postgresql:REL_12_21:src/backend/utils/errcodes.txt","postgresql:REL_12_22:src/backend/utils/errcodes.txt","postgresql:REL_12_2:src/backend/utils/errcodes.txt","postgresql:REL_12_3:src/backend/utils/errcodes.txt","postgresql:REL_12_4:src/backend/utils/errcodes.txt","postgresql:REL_12_5:src/backend/utils/errcodes.txt","postgresql:REL_12_6:src/backend/utils/errcodes.txt","postgresql:REL_12_7:src/backend/utils/errcodes.txt","postgresql:REL_12_8:src/backend/utils/errcodes.txt","postgresql:REL_12_9:src/backend/utils/errcodes.txt","postgresql:REL_13_0:src/backend/utils/errcodes.txt","postgresql:REL_13_10:src/backend/utils/errcodes.txt","postgresql:REL_13_11:src/backend/utils/errcodes.txt","postgresql:REL_13_12:src/backend/utils/errcodes.txt","postgresql:REL_13_13:src/backend/utils/errcodes.txt","postgresql:REL_13_14:src/backend/utils/errcodes.txt","postgresql:REL_13_15:src/backend/utils/errcodes.txt","postgresql:REL_13_16:src/backend/utils/errcodes.txt","postgresql:REL_13_17:src/backend/utils/errcodes.txt","postgresql:REL_13_18:src/backend/utils/errcodes.txt","postgresql:REL_13_19:src/backend/utils/errcodes.txt","postgresql:REL_13_1:src/backend/utils/errcodes.txt","postgresql:REL_13_20:src/backend/utils/errcodes.txt","postgresql:REL_13_21:src/backend/utils/errcodes.txt","postgresql:REL_13_22:src/backend/utils/errcodes.txt","postgresql:REL_13_23:src/backend/utils/errcodes.txt","postgresql:REL_13_2:src/backend/utils/errcodes.txt","postgresql:REL_13_3:src/backend/utils/errcodes.txt","postgresql:REL_13_4:src/backend/utils/errcodes.txt","postgresql:REL_13_5:src/backend/utils/errcodes.txt","postgresql:REL_13_6:src/backend/utils/errcodes.txt","postgresql:REL_13_7:src/backend/utils/errcodes.txt","postgresql:REL_13_8:src/backend/utils/errcodes.txt","postgresql:REL_13_9:src/backend/utils/errcodes.txt","postgresql:REL_14_0:src/backend/utils/errcodes.txt","postgresql:REL_14_10:src/backend/utils/errcodes.txt","postgresql:REL_14_11:src/backend/utils/errcodes.txt","postgresql:REL_14_12:src/backend/utils/errcodes.txt","postgresql:REL_14_13:src/backend/utils/errcodes.txt","postgresql:REL_14_14:src/backend/utils/errcodes.txt","postgresql:REL_14_15:src/backend/utils/errcodes.txt","postgresql:REL_14_16:src/backend/utils/errcodes.txt","postgresql:REL_14_17:src/backend/utils/errcodes.txt","postgresql:REL_14_18:src/backend/utils/errcodes.txt","postgresql:REL_14_19:src/backend/utils/errcodes.txt","postgresql:REL_14_1:src/backend/utils/errcodes.txt","postgresql:REL_14_20:src/backend/utils/errcodes.txt","postgresql:REL_14_21:src/backend/utils/errcodes.txt","postgresql:REL_14_22:src/backend/utils/errcodes.txt","postgresql:REL_14_23:src/backend/utils/errcodes.txt","postgresql:REL_14_24:src/backend/utils/errcodes.txt","postgresql:REL_14_2:src/backend/utils/errcodes.txt","postgresql:REL_14_3:src/backend/utils/errcodes.txt","postgresql:REL_14_4:src/backend/utils/errcodes.txt","postgresql:REL_14_5:src/backend/utils/errcodes.txt","postgresql:REL_14_6:src/backend/utils/errcodes.txt","postgresql:REL_14_7:src/backend/utils/errcodes.txt","postgresql:REL_14_8:src/backend/utils/errcodes.txt","postgresql:REL_14_9:src/backend/utils/errcodes.txt","postgresql:REL_15_0:src/backend/utils/errcodes.txt","postgresql:REL_15_10:src/backend/utils/errcodes.txt","postgresql:REL_15_11:src/backend/utils/errcodes.txt","postgresql:REL_15_12:src/backend/utils/errcodes.txt","postgresql:REL_15_13:src/backend/utils/errcodes.txt","postgresql:REL_15_14:src/backend/utils/errcodes.txt","postgresql:REL_15_15:src/backend/utils/errcodes.txt","postgresql:REL_15_16:src/backend/utils/errcodes.txt","postgresql:REL_15_17:src/backend/utils/errcodes.txt","postgresql:REL_15_18:src/backend/utils/errcodes.txt","postgresql:REL_15_19:src/backend/utils/errcodes.txt","postgresql:REL_15_1:src/backend/utils/errcodes.txt","postgresql:REL_15_2:src/backend/utils/errcodes.txt","postgresql:REL_15_3:src/backend/utils/errcodes.txt","postgresql:REL_15_4:src/backend/utils/errcodes.txt","postgresql:REL_15_5:src/backend/utils/errcodes.txt","postgresql:REL_15_6:src/backend/utils/errcodes.txt","postgresql:REL_15_7:src/backend/utils/errcodes.txt","postgresql:REL_15_8:src/backend/utils/errcodes.txt","postgresql:REL_15_9:src/backend/utils/errcodes.txt","postgresql:REL_16_0:src/backend/utils/errcodes.txt","postgresql:REL_16_10:src/backend/utils/errcodes.txt","postgresql:REL_16_11:src/backend/utils/errcodes.txt","postgresql:REL_16_12:src/backend/utils/errcodes.txt","postgresql:REL_16_13:src/backend/utils/errcodes.txt","postgresql:REL_16_14:src/backend/utils/errcodes.txt","postgresql:REL_16_15:src/backend/utils/errcodes.txt","postgresql:REL_16_1:src/backend/utils/errcodes.txt","postgresql:REL_16_2:src/backend/utils/errcodes.txt","postgresql:REL_16_3:src/backend/utils/errcodes.txt","postgresql:REL_16_4:src/backend/utils/errcodes.txt","postgresql:REL_16_5:src/backend/utils/errcodes.txt","postgresql:REL_16_6:src/backend/utils/errcodes.txt","postgresql:REL_16_7:src/backend/utils/errcodes.txt","postgresql:REL_16_8:src/backend/utils/errcodes.txt","postgresql:REL_16_9:src/backend/utils/errcodes.txt","postgresql:REL_17_0:src/backend/utils/errcodes.txt","postgresql:REL_17_10:src/backend/utils/errcodes.txt","postgresql:REL_17_11:src/backend/utils/errcodes.txt","postgresql:REL_17_1:src/backend/utils/errcodes.txt","postgresql:REL_17_2:src/backend/utils/errcodes.txt","postgresql:REL_17_3:src/backend/utils/errcodes.txt","postgresql:REL_17_4:src/backend/utils/errcodes.txt","postgresql:REL_17_5:src/backend/utils/errcodes.txt","postgresql:REL_17_6:src/backend/utils/errcodes.txt","postgresql:REL_17_7:src/backend/utils/errcodes.txt","postgresql:REL_17_8:src/backend/utils/errcodes.txt","postgresql:REL_17_9:src/backend/utils/errcodes.txt","postgresql:REL_18_0:src/backend/utils/errcodes.txt","postgresql:REL_18_1:src/backend/utils/errcodes.txt","postgresql:REL_18_2:src/backend/utils/errcodes.txt","postgresql:REL_18_3:src/backend/utils/errcodes.txt","postgresql:REL_18_4:src/backend/utils/errcodes.txt","postgresql:REL_18_6:src/backend/utils/errcodes.txt","postgresql:REL_19_BETA3:src/backend/utils/errcodes.txt"],"notes":"Presence in a PostgreSQL release definition file is established; runtime throw/use scanning is maintained separately.","scope":"release-definition-catalogue","status":"definition_only"},{"evidence_ids":["postgresql:REL7_4:src/include/utils/errcodes.h","postgresql:REL7_4_10:src/include/utils/errcodes.h","postgresql:REL7_4_11:src/include/utils/errcodes.h","postgresql:REL7_4_12:src/include/utils/errcodes.h","postgresql:REL7_4_13:src/include/utils/errcodes.h","postgresql:REL7_4_14:src/include/utils/errcodes.h","postgresql:REL7_4_15:src/include/utils/errcodes.h","postgresql:REL7_4_16:src/include/utils/errcodes.h","postgresql:REL7_4_17:src/include/utils/errcodes.h","postgresql:REL7_4_18:src/include/utils/errcodes.h","postgresql:REL7_4_19:src/include/utils/errcodes.h","postgresql:REL7_4_1:src/include/utils/errcodes.h","postgresql:REL7_4_20:src/include/utils/errcodes.h","postgresql:REL7_4_21:src/include/utils/errcodes.h","postgresql:REL7_4_22:src/include/utils/errcodes.h","postgresql:REL7_4_23:src/include/utils/errcodes.h","postgresql:REL7_4_24:src/include/utils/errcodes.h","postgresql:REL7_4_25:src/include/utils/errcodes.h","postgresql:REL7_4_26:src/include/utils/errcodes.h","postgresql:REL7_4_27:src/include/utils/errcodes.h","postgresql:REL7_4_28:src/include/utils/errcodes.h","postgresql:REL7_4_29:src/include/utils/errcodes.h","postgresql:REL7_4_2:src/include/utils/errcodes.h","postgresql:REL7_4_30:src/include/utils/errcodes.h","postgresql:REL7_4_3:src/include/utils/errcodes.h","postgresql:REL7_4_4:src/include/utils/errcodes.h","postgresql:REL7_4_5:src/include/utils/errcodes.h","postgresql:REL7_4_6:src/include/utils/errcodes.h","postgresql:REL7_4_7:src/include/utils/errcodes.h","postgresql:REL7_4_8:src/include/utils/errcodes.h","postgresql:REL7_4_9:src/include/utils/errcodes.h","postgresql:REL8_0_0:src/include/utils/errcodes.h","postgresql:REL8_0_10:src/include/utils/errcodes.h","postgresql:REL8_0_11:src/include/utils/errcodes.h","postgresql:REL8_0_12:src/include/utils/errcodes.h","postgresql:REL8_0_13:src/include/utils/errcodes.h","postgresql:REL8_0_14:src/include/utils/errcodes.h","postgresql:REL8_0_15:src/include/utils/errcodes.h","postgresql:REL8_0_16:src/include/utils/errcodes.h","postgresql:REL8_0_17:src/include/utils/errcodes.h","postgresql:REL8_0_18:src/include/utils/errcodes.h","postgresql:REL8_0_19:src/include/utils/errcodes.h","postgresql:REL8_0_1:src/include/utils/errcodes.h","postgresql:REL8_0_20:src/include/utils/errcodes.h","postgresql:REL8_0_21:src/include/utils/errcodes.h","postgresql:REL8_0_22:src/include/utils/errcodes.h","postgresql:REL8_0_23:src/include/utils/errcodes.h","postgresql:REL8_0_24:src/include/utils/errcodes.h","postgresql:REL8_0_25:src/include/utils/errcodes.h","postgresql:REL8_0_26:src/include/utils/errcodes.h","postgresql:REL8_0_2:src/include/utils/errcodes.h","postgresql:REL8_0_3:src/include/utils/errcodes.h","postgresql:REL8_0_4:src/include/utils/errcodes.h","postgresql:REL8_0_5:src/include/utils/errcodes.h","postgresql:REL8_0_6:src/include/utils/errcodes.h","postgresql:REL8_0_7:src/include/utils/errcodes.h","postgresql:REL8_0_8:src/include/utils/errcodes.h","postgresql:REL8_0_9:src/include/utils/errcodes.h","postgresql:REL8_1_0:src/include/utils/errcodes.h","postgresql:REL8_1_10:src/include/utils/errcodes.h","postgresql:REL8_1_11:src/include/utils/errcodes.h","postgresql:REL8_1_12:src/include/utils/errcodes.h","postgresql:REL8_1_13:src/include/utils/errcodes.h","postgresql:REL8_1_14:src/include/utils/errcodes.h","postgresql:REL8_1_15:src/include/utils/errcodes.h","postgresql:REL8_1_16:src/include/utils/errcodes.h","postgresql:REL8_1_17:src/include/utils/errcodes.h","postgresql:REL8_1_18:src/include/utils/errcodes.h","postgresql:REL8_1_19:src/include/utils/errcodes.h","postgresql:REL8_1_1:src/include/utils/errcodes.h","postgresql:REL8_1_20:src/include/utils/errcodes.h","postgresql:REL8_1_21:src/include/utils/errcodes.h","postgresql:REL8_1_22:src/include/utils/errcodes.h","postgresql:REL8_1_23:src/include/utils/errcodes.h","postgresql:REL8_1_2:src/include/utils/errcodes.h","postgresql:REL8_1_3:src/include/utils/errcodes.h","postgresql:REL8_1_4:src/include/utils/errcodes.h","postgresql:REL8_1_5:src/include/utils/errcodes.h","postgresql:REL8_1_6:src/include/utils/errcodes.h","postgresql:REL8_1_7:src/include/utils/errcodes.h","postgresql:REL8_1_8:src/include/utils/errcodes.h","postgresql:REL8_1_9:src/include/utils/errcodes.h","postgresql:REL8_2_0:src/include/utils/errcodes.h","postgresql:REL8_2_10:src/include/utils/errcodes.h","postgresql:REL8_2_11:src/include/utils/errcodes.h","postgresql:REL8_2_12:src/include/utils/errcodes.h","postgresql:REL8_2_13:src/include/utils/errcodes.h","postgresql:REL8_2_14:src/include/utils/errcodes.h","postgresql:REL8_2_15:src/include/utils/errcodes.h","postgresql:REL8_2_16:src/include/utils/errcodes.h","postgresql:REL8_2_17:src/include/utils/errcodes.h","postgresql:REL8_2_18:src/include/utils/errcodes.h","postgresql:REL8_2_19:src/include/utils/errcodes.h","postgresql:REL8_2_1:src/include/utils/errcodes.h","postgresql:REL8_2_20:src/include/utils/errcodes.h","postgresql:REL8_2_21:src/include/utils/errcodes.h","postgresql:REL8_2_22:src/include/utils/errcodes.h","postgresql:REL8_2_23:src/include/utils/errcodes.h","postgresql:REL8_2_2:src/include/utils/errcodes.h","postgresql:REL8_2_3:src/include/utils/errcodes.h","postgresql:REL8_2_4:src/include/utils/errcodes.h","postgresql:REL8_2_5:src/include/utils/errcodes.h","postgresql:REL8_2_6:src/include/utils/errcodes.h","postgresql:REL8_2_7:src/include/utils/errcodes.h","postgresql:REL8_2_8:src/include/utils/errcodes.h","postgresql:REL8_2_9:src/include/utils/errcodes.h","postgresql:REL8_3_0:src/include/utils/errcodes.h","postgresql:REL8_3_10:src/include/utils/errcodes.h","postgresql:REL8_3_11:src/include/utils/errcodes.h","postgresql:REL8_3_12:src/include/utils/errcodes.h","postgresql:REL8_3_13:src/include/utils/errcodes.h","postgresql:REL8_3_14:src/include/utils/errcodes.h","postgresql:REL8_3_15:src/include/utils/errcodes.h","postgresql:REL8_3_16:src/include/utils/errcodes.h","postgresql:REL8_3_17:src/include/utils/errcodes.h","postgresql:REL8_3_18:src/include/utils/errcodes.h","postgresql:REL8_3_19:src/include/utils/errcodes.h","postgresql:REL8_3_1:src/include/utils/errcodes.h","postgresql:REL8_3_20:src/include/utils/errcodes.h","postgresql:REL8_3_21:src/include/utils/errcodes.h","postgresql:REL8_3_22:src/include/utils/errcodes.h","postgresql:REL8_3_23:src/include/utils/errcodes.h","postgresql:REL8_3_2:src/include/utils/errcodes.h","postgresql:REL8_3_3:src/include/utils/errcodes.h","postgresql:REL8_3_4:src/include/utils/errcodes.h","postgresql:REL8_3_5:src/include/utils/errcodes.h","postgresql:REL8_3_6:src/include/utils/errcodes.h","postgresql:REL8_3_7:src/include/utils/errcodes.h","postgresql:REL8_3_8:src/include/utils/errcodes.h","postgresql:REL8_3_9:src/include/utils/errcodes.h","postgresql:REL8_4_0:src/include/utils/errcodes.h","postgresql:REL8_4_10:src/include/utils/errcodes.h","postgresql:REL8_4_11:src/include/utils/errcodes.h","postgresql:REL8_4_12:src/include/utils/errcodes.h","postgresql:REL8_4_13:src/include/utils/errcodes.h","postgresql:REL8_4_14:src/include/utils/errcodes.h","postgresql:REL8_4_15:src/include/utils/errcodes.h","postgresql:REL8_4_16:src/include/utils/errcodes.h","postgresql:REL8_4_17:src/include/utils/errcodes.h","postgresql:REL8_4_18:src/include/utils/errcodes.h","postgresql:REL8_4_19:src/include/utils/errcodes.h","postgresql:REL8_4_1:src/include/utils/errcodes.h","postgresql:REL8_4_20:src/include/utils/errcodes.h","postgresql:REL8_4_21:src/include/utils/errcodes.h","postgresql:REL8_4_22:src/include/utils/errcodes.h","postgresql:REL8_4_2:src/include/utils/errcodes.h","postgresql:REL8_4_3:src/include/utils/errcodes.h","postgresql:REL8_4_4:src/include/utils/errcodes.h","postgresql:REL8_4_5:src/include/utils/errcodes.h","postgresql:REL8_4_6:src/include/utils/errcodes.h","postgresql:REL8_4_7:src/include/utils/errcodes.h","postgresql:REL8_4_8:src/include/utils/errcodes.h","postgresql:REL8_4_9:src/include/utils/errcodes.h"],"notes":"The old definition path and same-tag documentation were locked for the observed 7.4..8.4 tags; this is a definition presence bound, not a runtime path or precise introducing commit.","scope":"pre9-definition-history","status":"definition_only"}]},"Evidence":[{"Kind":"cases","Ordinal":0,"ID":"incompatible_array_dimensions","ServerVersion":null,"Status":null,"Payload":{"assertions":["SQLSTATE is 2202E","The diagnostic explains the incompatible dimensions","A valid array operation succeeds afterward"],"case_id":"incompatible_array_dimensions","cleanup":"Drop the case schema with an owner connection.","has_snippet":true,"position":0,"preconditions":["A dedicated autocommit connection"],"repair":"Validate rank, bounds, and element dimensions before concatenation or assignment.","trigger":"Concatenate two arrays whose element dimensions are incompatible.","versions":["10","18"]}},{"Kind":"claims","Ordinal":0,"ID":"identity.class-and-condition","ServerVersion":null,"Status":null,"Payload":{"claim_id":"identity.class-and-condition","limits":"The directory identifies the condition but does not imply that every array read outside bounds raises it.","method":"Read the Class 22 section and the named 2202E row in the frozen errcodes.txt snapshot.","position":0,"runtime":[],"sources":["src.errcodes.18.6"],"statement":"2202E is the array_subscript_error condition in Class 22, Data Exception."}},{"Kind":"claims","Ordinal":1,"ID":"identity.alias-macro","ServerVersion":null,"Status":null,"Payload":{"claim_id":"identity.alias-macro","limits":"The alias is a source-level name; the wire value remains the five-character SQLSTATE.","method":"Read the adjacent alias and named macro rows and the SQL99 explanatory comment.","position":1,"runtime":[],"sources":["src.errcodes.18.6"],"statement":"ERRCODE_ARRAY_ELEMENT_ERROR is retained as an alias for the same 2202E SQLSTATE; ERRCODE_ARRAY_SUBSCRIPT_ERROR carries the array_subscript_error condition name."}},{"Kind":"claims","Ordinal":2,"ID":"array.read-outside-bounds","ServerVersion":null,"Status":null,"Payload":{"claim_id":"array.read-outside-bounds","limits":"This claim applies to reads; assignment, slice validation, construction, and concatenation have separate rules.","method":"Read the official array subscript expression rules and examples.","position":2,"runtime":[],"sources":["doc.array.18"],"statement":"An array element read outside the current bounds, or a read with the wrong number of subscripts, returns NULL rather than raising an error."}},{"Kind":"claims","Ordinal":3,"ID":"array.slice-rules","ServerVersion":null,"Status":null,"Payload":{"claim_id":"array.slice-rules","limits":"The result also depends on NULL array or subscript expressions; it is not evidence of a 2202E error.","method":"Read the documented slice behavior immediately following the element subscript rules.","position":3,"runtime":[],"sources":["doc.array.18"],"statement":"A slice completely outside the current bounds can yield an empty zero-dimensional array, while a partially overlapping slice is reduced to the overlap."}},{"Kind":"claims","Ordinal":4,"ID":"array.assignment-rules","ServerVersion":null,"Status":null,"Payload":{"claim_id":"array.assignment-rules","limits":"Whether a particular assignment raises 2202E depends on the array value, dimensions, and exact operation.","method":"Read the official assignment rules and the fixed arrayfuncs validation branches.","position":4,"runtime":[],"sources":["doc.array.18","src.arrayfuncs.18.6"],"statement":"One-dimensional subscript assignment can enlarge an array and fill intervening positions with NULL; multidimensional enlargement is not supported, and empty-array slice assignment requires both boundaries."}},{"Kind":"claims","Ordinal":5,"ID":"mechanism.concat-dimensions","ServerVersion":null,"Status":null,"Payload":{"claim_id":"mechanism.concat-dimensions","limits":"The primary and detail templates are specific to this concatenation path.","method":"Trace the dimension and lower-bound comparison into the errcode and primary/detail construction in array_cat().","position":5,"runtime":[],"sources":["src.array-userfuncs.18.6"],"statement":"array_cat raises 2202E when equal-rank arrays have differing non-concatenated dimensions or lower bounds."}},{"Kind":"claims","Ordinal":6,"ID":"mechanism.multidimensional-construction","ServerVersion":null,"Status":null,"Payload":{"claim_id":"mechanism.multidimensional-construction","limits":"This source path is separate from array_cat and has a different message template.","method":"Read the multidimensional array constructor check and its ERRCODE_ARRAY_SUBSCRIPT_ERROR ereport.","position":6,"runtime":[],"sources":["src.exec-expr.18.6"],"statement":"The expression evaluator raises 2202E when non-empty array expressions used to form a multidimensional array have incompatible dimensions."}},{"Kind":"claims","Ordinal":7,"ID":"diagnosis.metadata-functions","ServerVersion":null,"Status":null,"Payload":{"claim_id":"diagnosis.metadata-functions","limits":"Inspection functions describe the value supplied to them; they do not predict every coercion or operator resolution step.","method":"Read the PostgreSQL 18 array function table entries.","position":7,"runtime":[],"sources":["doc.func.18"],"statement":"array_ndims, array_dims, array_lower, array_upper, and cardinality expose the rank, dimensions, bounds, and item count needed to inspect an array operation."}},{"Kind":"claims","Ordinal":8,"ID":"runtime.concat-case","ServerVersion":null,"Status":null,"Payload":{"claim_id":"runtime.concat-case","limits":"The run is an autocommit concatenation case; it does not test every assignment, slice, constructor, or explicit-transaction path.","method":"Read the stable case and ordered snippet registry, then compare the case_result diagnostics and status in both final target summaries and raw records.","position":8,"runtime":[],"sources":["case-manifest.2202E","snippet-registry.2202E.final","runtime.2202E-snippet-registry-final-20260909.latest","runtime.2202E-snippet-registry-final-20260909.pg10"],"statement":"The incompatible_array_dimensions case returned 2202E with the incompatible concatenation diagnostic and then successfully executed a valid concatenation on the same connection."}},{"Kind":"claims","Ordinal":9,"ID":"runtime.transaction-boundary","ServerVersion":null,"Status":null,"Payload":{"claim_id":"runtime.transaction-boundary","limits":"No explicit transaction or PL/pgSQL exception handler was executed in this 2202E case.","method":"Read the transaction contract and the status/valid-array observations in both runner summaries.","position":9,"runtime":[],"sources":["doc.transactions.18","runtime.2202E-snippet-registry-final-20260909.latest","runtime.2202E-snippet-registry-final-20260909.pg10"],"statement":"The representative 2202E ERROR left the autocommit connection IDLE and the follow-up valid statement succeeded; explicit transaction and PL/pgSQL handler outcomes must be handled at their own boundaries."}},{"Kind":"claims","Ordinal":10,"ID":"versions.catalogue-boundary","ServerVersion":null,"Status":null,"Payload":{"claim_id":"versions.catalogue-boundary","limits":"The pre-9.0 source set is locked through 8.4.22 but candidate source gaps remain for 7.0–7.3; observed presence is not an asserted introduction version.","method":"Read the manifest snapshot and the same-tag REL8_1_4 errcodes.sgml row for the code; the generated data record is a derived view.","position":10,"runtime":[],"sources":["manifest.2202E","doc.errcodes.8.1.4"],"statement":"The locked catalogue records 2202E in the 7.4–8.4.22 pre-9.0 formal sources, every listed formal snapshot from 9.0.23 through 18.6, and 19beta3. The same-tag REL8_1_4 errcodes.sgml row already lists 2202E as array_subscript_error, confirming that condition-name observation by 8.1.4. Candidate source gaps remain for 7.0–7.3, so 7.4 is a presence boundary rather than an exact introduction version."}},{"Kind":"messages","Ordinal":0,"ID":"message.concat","ServerVersion":null,"Status":null,"Payload":{"limits":"The template belongs to array_cat; runtime source lines are 450 on 18.6 and 356 on 10.21.","message_id":"message.concat","path":"","position":0,"raw":{"detail_template":"Arrays with differing element dimensions are not compatible for concatenation.","id":"message.concat","limits":"The template belongs to array_cat; runtime source lines are 450 on 18.6 and 356 on 10.21.","primary_template":"cannot concatenate incompatible arrays","severity_source":"explicit ERROR with ERRCODE_ARRAY_SUBSCRIPT_ERROR","sources":["src.array-userfuncs.18.6","runtime.2202E-snippet-registry-final-20260909.latest","runtime.2202E-snippet-registry-final-20260909.pg10"],"sqlstate":"2202E"},"severity":"explicit ERROR with ERRCODE_ARRAY_SUBSCRIPT_ERROR","sources":["src.array-userfuncs.18.6","runtime.2202E-snippet-registry-final-20260909.latest","runtime.2202E-snippet-registry-final-20260909.pg10"],"templates":[{"kind":"primary","literal":"cannot concatenate incompatible arrays","position":0,"role":"","template":"cannot concatenate incompatible arrays"},{"kind":"detail","literal":"Arrays with differing element dimensions are not compatible for concatenation.","position":1,"role":"","template":"Arrays with differing element dimensions are not compatible for concatenation."}]}},{"Kind":"messages","Ordinal":1,"ID":"message.subscript","ServerVersion":null,"Status":null,"Payload":{"limits":"This template is emitted by validated assignment/slice paths; a plain out-of-bounds read is documented to return NULL.","message_id":"message.subscript","path":"","position":1,"raw":{"id":"message.subscript","limits":"This template is emitted by validated assignment/slice paths; a plain out-of-bounds read is documented to return NULL.","primary_template":"array subscript out of range","severity_source":"explicit ERROR with ERRCODE_ARRAY_SUBSCRIPT_ERROR","sources":["src.arrayfuncs.18.6"],"sqlstate":"2202E"},"severity":"explicit ERROR with ERRCODE_ARRAY_SUBSCRIPT_ERROR","sources":["src.arrayfuncs.18.6"],"templates":[{"kind":"primary","literal":"array subscript out of range","position":0,"role":"","template":"array subscript out of range"}]}},{"Kind":"messages","Ordinal":2,"ID":"message.slice-boundaries","ServerVersion":null,"Status":null,"Payload":{"limits":"This is the empty-array slice assignment path and is not a general read diagnostic.","message_id":"message.slice-boundaries","path":"","position":2,"raw":{"detail_template":"When assigning to a slice of an empty array value, slice boundaries must be fully specified.","id":"message.slice-boundaries","limits":"This is the empty-array slice assignment path and is not a general read diagnostic.","primary_template":"array slice subscript must provide both boundaries","severity_source":"explicit ERROR with ERRCODE_ARRAY_SUBSCRIPT_ERROR","sources":["src.arrayfuncs.18.6"],"sqlstate":"2202E"},"severity":"explicit ERROR with ERRCODE_ARRAY_SUBSCRIPT_ERROR","sources":["src.arrayfuncs.18.6"],"templates":[{"kind":"primary","literal":"array slice subscript must provide both boundaries","position":0,"role":"","template":"array slice subscript must provide both boundaries"},{"kind":"detail","literal":"When assigning to a slice of an empty array value, slice boundaries must be fully specified.","position":1,"role":"","template":"When assigning to a slice of an empty array value, slice boundaries must be fully specified."}]}},{"Kind":"messages","Ordinal":3,"ID":"message.bound-order","ServerVersion":null,"Status":null,"Payload":{"limits":"This template is emitted by the slice boundary validation branch.","message_id":"message.bound-order","path":"","position":3,"raw":{"id":"message.bound-order","limits":"This template is emitted by the slice boundary validation branch.","primary_template":"upper bound cannot be less than lower bound","severity_source":"explicit ERROR with ERRCODE_ARRAY_SUBSCRIPT_ERROR","sources":["src.arrayfuncs.18.6"],"sqlstate":"2202E"},"severity":"explicit ERROR with ERRCODE_ARRAY_SUBSCRIPT_ERROR","sources":["src.arrayfuncs.18.6"],"templates":[{"kind":"primary","literal":"upper bound cannot be less than lower bound","position":0,"role":"","template":"upper bound cannot be less than lower bound"}]}},{"Kind":"runtimes","Ordinal":0,"ID":"runtime.2202E-snippet-registry-final-20260909.latest","ServerVersion":"18.6 (Homebrew)","Status":"passed","Payload":{"cases":["incompatible_array_dimensions"],"limits":"","position":0,"raw":{"cases":["incompatible_array_dimensions"],"id":"runtime.2202E-snippet-registry-final-20260909.latest","observed":{"message_detail":"Arrays with differing element dimensions are not compatible for concatenation.","message_primary":"cannot concatenate incompatible arrays","severity":"ERROR","source_file":"array_userfuncs.c","source_function":"array_cat","source_line":"450","sqlstate":"2202E","status_after_error":"IDLE","valid_array":[1,2,3,4]},"raw":"verify/results/2202E-snippet-registry-final-20260909/latest/raw.jsonl","raw_sha256":"79794b2a9728ec77920b27613121b6697077f2d8820b3f1b0bc66c2d049bcb6f","run_id":"2202E-snippet-registry-final-20260909","server_version":"18.6 (Homebrew)","server_version_num":180006,"snippet_registry":{"path":"verify/cases/2202E/snippets.json","sha256":"f32e131d29c29543cba59be6ac16cc8cdee8d6ac684ff60dec4f58063d0f6e77"},"status":"passed","summary":"verify/results/2202E-snippet-registry-final-20260909/latest/summary.json","summary_sha256":"78a2515555554f99aadfd8586ad58949f2744323e13a71960143da42ee1cc5a3","target":"latest"},"run_id":"2202E-snippet-registry-final-20260909","runtime_id":"runtime.2202E-snippet-registry-final-20260909.latest","server_version":"18.6 (Homebrew)","status":"passed","target":"latest"}},{"Kind":"runtimes","Ordinal":1,"ID":"runtime.2202E-snippet-registry-final-20260909.pg10","ServerVersion":"10.21 (Debian 10.21-1.pgdg90+1)","Status":"passed","Payload":{"cases":["incompatible_array_dimensions"],"limits":"","position":1,"raw":{"cases":["incompatible_array_dimensions"],"id":"runtime.2202E-snippet-registry-final-20260909.pg10","image":"postgres@sha256:b2baf8998630663d21370da06387c950e587071bdd307ee34e661cdcc7442bcc","observed":{"message_detail":"Arrays with differing element dimensions are not compatible for concatenation.","message_primary":"cannot concatenate incompatible arrays","severity":"ERROR","source_file":"array_userfuncs.c","source_function":"array_cat","source_line":"356","sqlstate":"2202E","status_after_error":"IDLE","valid_array":[1,2,3,4]},"raw":"verify/results/2202E-snippet-registry-final-20260909/pg10/raw.jsonl","raw_sha256":"1b6eeb7b7abffd57d9d470d3639df04e7b49affacd25a24cb35e423fcc8d037d","run_id":"2202E-snippet-registry-final-20260909","server_version":"10.21 (Debian 10.21-1.pgdg90+1)","server_version_num":100021,"snippet_registry":{"path":"verify/cases/2202E/snippets.json","sha256":"f32e131d29c29543cba59be6ac16cc8cdee8d6ac684ff60dec4f58063d0f6e77"},"status":"passed","summary":"verify/results/2202E-snippet-registry-final-20260909/pg10/summary.json","summary_sha256":"db9c312891f485e36a017684ba802d9fa6c9ab1508c4b0be292165e3a24fb8d8","target":"pg10"},"run_id":"2202E-snippet-registry-final-20260909","runtime_id":"runtime.2202E-snippet-registry-final-20260909.pg10","server_version":"10.21 (Debian 10.21-1.pgdg90+1)","status":"passed","target":"pg10"}},{"Kind":"sources","Ordinal":0,"ID":"src.errcodes.18.6","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"","location":"lines 159-164","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"}},{"Kind":"sources","Ordinal":1,"ID":"src.array-userfuncs.18.6","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"","location":"lines 443-450, array_cat dimension checks","path":"src/backend/utils/adt/array_userfuncs.c","position":1,"sha256":"dc14f95e12c92360f8b10c7546d8af4a0b41a6a0431efc2a4f5b236155eadb50","source_id":"src.array-userfuncs.18.6","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/array_userfuncs.c#L443-L450"}},{"Kind":"sources","Ordinal":2,"ID":"src.arrayfuncs.18.6","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"","location":"lines 2644-2653, 2881-2888, 2976-2990, 3008-3017","path":"src/backend/utils/adt/arrayfuncs.c","position":2,"sha256":"1f1c9dab1e5f8c936bbfe6c28a3011365b433367e1854166bbec9d2e97341177","source_id":"src.arrayfuncs.18.6","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/arrayfuncs.c#L2644-L2653"}},{"Kind":"sources","Ordinal":3,"ID":"src.exec-expr.18.6","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"","location":"lines 3549-3565, multidimensional constructor checks","path":"src/backend/executor/execExprInterp.c","position":3,"sha256":"05cbc1cdfd1d091b02045ee55b37147f69be8f0fcb23274751820cc09db33564","source_id":"src.exec-expr.18.6","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/executor/execExprInterp.c#L3549-L3565"}},{"Kind":"sources","Ordinal":4,"ID":"doc.array.18","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"","location":"lines 302-321, 403-437, array subscript, slice, and assignment behavior","path":"doc/src/sgml/array.sgml","position":4,"sha256":"a432afb453ba3e4fc99b3b8055794fbd1f1d2980a85b14933ea8bae285dc6ab4","source_id":"doc.array.18","tag":"PG18-docs","url":"https://www.postgresql.org/docs/18/arrays.html"}},{"Kind":"sources","Ordinal":5,"ID":"doc.func.18","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"","location":"lines 20487-20586 and 20810-20842, array metadata functions","path":"doc/src/sgml/func.sgml","position":5,"sha256":"05d03f505dc3c3b4fb2b3a6e8ed3275c425306a8ff20dd9548e838c26bbb968a","source_id":"doc.func.18","tag":"PG18-docs","url":"https://www.postgresql.org/docs/18/functions-array.html"}},{"Kind":"sources","Ordinal":6,"ID":"doc.transactions.18","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"","location":"transaction rollback and savepoint behavior","path":"doc/src/sgml/xact.sgml","position":6,"sha256":"b48fbe8bd02ce3d1181a350c88c8baa6e11c73edc90a936e77b180daef328c5c","source_id":"doc.transactions.18","tag":"PG18-docs","url":"https://www.postgresql.org/docs/18/tutorial-transactions.html"}},{"Kind":"sources","Ordinal":7,"ID":"doc.errcodes.8.1.4","ServerVersion":null,"Status":null,"Payload":{"commit":"313a720f95a3f41b59f853786b184f38f82172d9","docs_url":"","kind":"upstream_source","location":"REL8_1_4 table rows 305-307","path":"doc/src/sgml/errcodes.sgml","position":7,"sha256":"fdd6f5470b19970d3b60219a44e66b33193647975d346adfe2a98178f706b776","source_id":"doc.errcodes.8.1.4","tag":"","url":"https://github.com/postgres/postgres/blob/313a720f95a3f41b59f853786b184f38f82172d9/doc/src/sgml/errcodes.sgml#L305-L307"}},{"Kind":"sources","Ordinal":8,"ID":"manifest.2202E","ServerVersion":null,"Status":null,"Payload":{"commit":"","docs_url":"","kind":"local_artifact","location":"snapshots and definition_blobs entries for the 2202E definition","path":"sources/manifest.lock.json","position":8,"sha256":"1727a275f336988ff96b4f9990a4ca253080f73fc5d316e7def165c8cf3708a8","source_id":"manifest.2202E","tag":"","url":"../sources/manifest.lock.json"}},{"Kind":"sources","Ordinal":9,"ID":"case-manifest.2202E","ServerVersion":null,"Status":null,"Payload":{"commit":"","docs_url":"","kind":"local_artifact","location":"incompatible_array_dimensions","path":"verify/cases/2202E/cases.json","position":9,"sha256":"1d2e960bba60d3df05073ce8e34d185de91f991687256ba49c6840d5d196ff2a","source_id":"case-manifest.2202E","tag":"","url":"../verify/cases/2202E/cases.json"}},{"Kind":"sources","Ordinal":10,"ID":"snippet-registry.2202E.final","ServerVersion":null,"Status":null,"Payload":{"commit":"","docs_url":"","kind":"local_artifact","location":"incompatible_array_dimensions ordered trigger and followup","path":"verify/cases/2202E/snippets.json","position":10,"sha256":"f32e131d29c29543cba59be6ac16cc8cdee8d6ac684ff60dec4f58063d0f6e77","source_id":"snippet-registry.2202E.final","tag":"","url":"../verify/cases/2202E/snippets.json"}}]}
