{"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":"zh-Hans","Title":"2202E — array_subscript_error（数组下标错误）","Summary":"数组下标或维度错误，如拼接维度不兼容。","BodyHTML":"\u003ch2\u003e速览 {#at-a-glance}\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e2202E\u003c/code\u003e 是类别 22 \u003ccode\u003eData Exception\u003c/code\u003e 中的 \u003ccode\u003earray_subscript_error\u003c/code\u003e 条件。目录同时保留 \u003ccode\u003eERRCODE_ARRAY_ELEMENT_ERROR\u003c/code\u003e 这一兼容别名，并使用 \u003ccode\u003eERRCODE_ARRAY_SUBSCRIPT_ERROR\u003c/code\u003e 作为带条件名的宏。两个宏编码的是同一个 SQLSTATE。\u003c/p\u003e\n\u003cp\u003e不要把所有看起来越界的表达式都当成错误。PostgreSQL 文档明确说明，读取当前边界之外的数组下标会返回 \u003ccode\u003eNULL\u003c/code\u003e；提供错误数量的下标同样返回 \u003ccode\u003eNULL\u003c/code\u003e。数组切片还有独立的历史规则：完全位于边界外的切片可以产生空的零维数组，部分重叠的切片则缩减为重叠部分。\u003c/p\u003e\n\u003cp\u003e当其他路径校验形状或下标并拒绝它时才会抛出 \u003ccode\u003e2202E\u003c/code\u003e。核心源码中的这类路径包括数组拼接或构造时维度不兼容、无效切片边界，以及部分带下标赋值检查。诊断时，操作本身和下标数值同样重要。\u003c/p\u003e\n\u003cp\u003e可执行的代表性案例是 \u003ccode\u003eincompatible_array_dimensions\u003c/code\u003e。它在 PostgreSQL 18.6 和 10.21 上均通过：不兼容的拼接抛出 \u003ccode\u003e2202E\u003c/code\u003e，随后同一自动提交连接保持 \u003ccode\u003eIDLE\u003c/code\u003e，并成功执行有效的后续拼接。下面的 SQL 摘录是共享注册表中的完整有序语句对；测试执行器仍是建表和清理的唯一来源。\u003c/p\u003e\n\u003ch2\u003e含义与触发路径 {#meaning}\u003c/h2\u003e\n\u003cp\u003e18.6 目录中的定义是类别 22 下的 \u003ccode\u003e2202E E ERRCODE_ARRAY_SUBSCRIPT_ERROR array_subscript_error\u003c/code\u003e。前面的别名行是 \u003ccode\u003e2202E E ERRCODE_ARRAY_ELEMENT_ERROR\u003c/code\u003e；源码注释解释 SQL99 的 “array element error” 实际上就是数组下标错误。因此，仍使用别名的代码指向同一 SQLSTATE，而不是另一种条件。\u003c/p\u003e\n\u003cp\u003e数组具有秩、每个维度的长度以及下界。PostgreSQL 不要求数组从 1 开始，所以诊断时应读取实际下界，而不是作这个假设。文档中的 \u003ccode\u003earray_ndims\u003c/code\u003e、\u003ccode\u003earray_dims\u003c/code\u003e、\u003ccode\u003earray_lower\u003c/code\u003e、\u003ccode\u003earray_upper\u003c/code\u003e 和 \u003ccode\u003ecardinality\u003c/code\u003e 函数可以查看所需的元数据。需要诊断错误时，应在同一会话中实际调用这些检查函数；它们是检查工具，不代表已经触发了某个特定错误。\u003c/p\u003e\n\u003cp\u003e核心路径主要包括：\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003cstrong\u003e数组元素或切片赋值。\u003c/strong\u003e \u003ccode\u003earrayfuncs.c\u003c/code\u003e 会校验下标和切片边界。一维数组可以通过给新元素赋值来扩展，中间位置填入 \u003ccode\u003eNULL\u003c/code\u003e；多维数组不支持这种扩展。给空数组赋切片时必须提供两个边界。因此，赋值访问当前读取边界之外的位置时，应按赋值操作分析，不能从 \u003ccode\u003eSELECT a[n]\u003c/code\u003e 的结果推断。\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e数组拼接。\u003c/strong\u003e 当同秩数组的非拼接维度的长度或下界不同时，\u003ccode\u003earray_cat\u003c/code\u003e 抛出 \u003ccode\u003e2202E\u003c/code\u003e。代表性案例覆盖的就是这条路径。\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e多维构造。\u003c/strong\u003e 表达式执行器在用于构造多维数组的非空数组表达式维度不兼容时，也会抛出同一条件。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e源码中还存在其他调用方，包括数据类型辅助路径。类别 22 是宽泛的数据异常类别；具体是哪个形状或下标契约失败，要由 \u003ccode\u003e2202E\u003c/code\u003e 条目、源码函数和报文共同确定。\u003c/p\u003e\n\u003ch2\u003e报文与诊断 {#messages}\u003c/h2\u003e\n\u003cp\u003e可执行摘录如下：\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\u003e第一条语句的两个二维数组内层维度不同。PostgreSQL 18.6 报告：\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\u003ePostgreSQL 10.21 的同一案例给出相同的主报文和详细信息文本，历史源码行号是 356。第二条语句返回 \u003ccode\u003e{1,2,3,4}\u003c/code\u003e。这些报文和详细信息属于拼接路径，不是所有 \u003ccode\u003e2202E\u003c/code\u003e 调用方都必然使用的措辞。\u003c/p\u003e\n\u003cp\u003e其他源码确认的模板包括 \u003ccode\u003earray subscript out of range\u003c/code\u003e、\u003ccode\u003earray slice subscript must provide both boundaries\u003c/code\u003e（详细信息会解释给空数组赋值的要求），以及 \u003ccode\u003eupper bound cannot be less than lower bound\u003c/code\u003e。如果驱动程序提供这些字段，请保留 \u003ccode\u003emessage_detail\u003c/code\u003e、\u003ccode\u003emessage_hint\u003c/code\u003e、\u003ccode\u003esource_file\u003c/code\u003e、\u003ccode\u003esource_function\u003c/code\u003e 和 \u003ccode\u003esource_line\u003c/code\u003e；它们往往能区分切片校验与拼接校验。\u003c/p\u003e\n\u003ch2\u003e诊断 {#diagnosis}\u003c/h2\u003e\n\u003cp\u003e先按表达式分类：\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e普通元素读取如 \u003ccode\u003ea[999]\u003c/code\u003e 可以合法返回 \u003ccode\u003eNULL\u003c/code\u003e。在称为服务器错误前，检查数组本身、下标表达式以及存储的边界。\u003c/li\u003e\n\u003cli\u003e切片读取根据文档规则可能返回 \u003ccode\u003eNULL\u003c/code\u003e、空的零维数组或缩减后的重叠部分。没有错误响应时不要把这些值映射成 \u003ccode\u003e2202E\u003c/code\u003e。\u003c/li\u003e\n\u003cli\u003e赋值、数组构造和拼接会执行校验代码。记录数组秩、维度、下界、提供的下标数量，以及语句是否在修改值。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e遇到真实错误时，记录 SQLSTATE、严重级别、主报文、详细信息、提示、语句位置以及关系对象或函数上下文。使用同一个值或源表达式配合 \u003ccode\u003earray_ndims\u003c/code\u003e、\u003ccode\u003earray_dims\u003c/code\u003e、\u003ccode\u003earray_lower\u003c/code\u003e 和 \u003ccode\u003earray_upper\u003c/code\u003e 对照。拼接时比较每一个非拼接维度和下界；切片时检查两个边界及其顺序；构造时检查每个子数组的形状。\u003c/p\u003e\n\u003cp\u003e在 PL/pgSQL 中，处理器可以捕获 \u003ccode\u003earray_subscript_error\u003c/code\u003e 或 \u003ccode\u003eSQLSTATE \u0026#39;2202E\u0026#39;\u003c/code\u003e，但处理器的事务行为取决于代码块。带 \u003ccode\u003eEXCEPTION\u003c/code\u003e 子句的代码块会让受保护主体在子事务中运行；主体出错后，主体内对持久数据库状态的修改会先回滚，再运行处理器。\u003ccode\u003eOTHERS\u003c/code\u003e 也有文档规定的排除项，应用要修复数组操作时应使用具体条件。\u003c/p\u003e\n\u003ch2\u003e处理 {#response}\u003c/h2\u003e\n\u003cp\u003e修复违反形状契约的操作。拼接前统一维度和下界；提供完整且顺序正确的切片边界；只有在确实需要 \u003ccode\u003eNULL\u003c/code\u003e 填充语义时才使用一维扩展；或者使用形状匹配的子数组重新构造多维值。如果读取返回 \u003ccode\u003eNULL\u003c/code\u003e 是合法结果，应先按值处理，不要在判断应用是否需要区分“缺少元素”和“存储的 NULL 元素”前就用 \u003ccode\u003eCOALESCE\u003c/code\u003e 掩盖它。\u003c/p\u003e\n\u003cp\u003e代表性错误在自动提交下运行。失败后连接状态为 \u003ccode\u003eIDLE\u003c/code\u003e，有效拼接成功。在显式事务中，\u003ccode\u003eERROR\u003c/code\u003e 通常会让事务进入中止状态，直到 \u003ccode\u003eROLLBACK\u003c/code\u003e 或回滚到保存点；连接本身不一定需要关闭。带异常子句的 PL/pgSQL 代码块可以让受保护主体在子事务中封装失败，主体内的修改会在处理器运行前回滚。应读取客户端的实际事务状态，不要仅凭 \u003ccode\u003e2202E\u003c/code\u003e 推断连接结局。\u003c/p\u003e\n\u003ch2\u003e版本 {#versions}\u003c/h2\u003e\n\u003cp\u003e目录记录 \u003ccode\u003e2202E\u003c/code\u003e 存在于锁定的 7.4–8.4.22 pre-9.0 正式源码、9.0.23 至 18.6 的全部正式快照及 19 Beta 3 预览快照。同 tag 的 \u003ccode\u003eREL8_1_4\u003c/code\u003e \u003ccode\u003eerrcodes.sgml\u003c/code\u003e 表已经列出 \u003ccode\u003e2202E\u003c/code\u003e 和条件名 \u003ccode\u003earray_subscript_error\u003c/code\u003e，因此至少可以确认 8.1.4 已有该条件名。7.0–7.3 仍有候选源码缺口，因此 7.4 观察结果只是存在边界，不是精确引入版本。18.6 固定源码 commit 为 \u003ccode\u003e724edf9bde9d356724ad384a2e196edc3c9f80f7\u003c/code\u003e；其 \u003ccode\u003eerrcodes.txt\u003c/code\u003e 同时保留别名宏和带条件名的宏。\u003c/p\u003e\n\u003cp\u003e不兼容维度案例在 PostgreSQL 18.6 和 10.21 上均通过，主报文和详细信息文本相同而源码行号不同。这个跨版本结果不保证所有旧小版本或其他 \u003ccode\u003e2202E\u003c/code\u003e 调用路径的措辞都不变。\u003c/p\u003e\n\u003ch2\u003e相关 {#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 是宽泛的类别 22 代码。\u003ca href=\"/wiki/sqlstate/22005/\" rel=\"nofollow\"\u003e\u003ccode\u003e22005\u003c/code\u003e — \u003ccode\u003eerror_in_assignment\u003c/code\u003e\u003c/a\u003e 是不同的赋值条件，不应替代数组专用的 \u003ccode\u003e2202E\u003c/code\u003e。\u003ca href=\"/wiki/sqlstate/22P02/\" rel=\"nofollow\"\u003e\u003ccode\u003e22P02\u003c/code\u003e — \u003ccode\u003einvalid_text_representation\u003c/code\u003e\u003c/a\u003e 处理输入文本解析。\u003ccode\u003e2202E\u003c/code\u003e 也不同于成功的越界读取，后者按数组文档规则返回 \u003ccode\u003eNULL\u003c/code\u003e。\u003c/p\u003e\n\u003ch2\u003e来源 {#sources}\u003c/h2\u003e\n\u003cp\u003e结构化证据记录在\u003ca href=\"#sources\" rel=\"nofollow\"\u003e公开证据 JSON\u003c/a\u003e中。源码记录固定到 PostgreSQL commit \u003ccode\u003e724edf9bde9d356724ad384a2e196edc3c9f80f7\u003c/code\u003e；运行记录保留共享注册表、两个目标版本和 \u003ccode\u003e2202E-snippet-registry-final-20260909\u003c/code\u003e 运行 ID。\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 与 \u003ccode\u003edoc.func.18\u003c/code\u003e — \u003ca href=\"/docs/18/arrays.html\" rel=\"nofollow\"\u003eArrays\u003c/a\u003e 与 \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":"a0f75593fcdb30c181c36789a89f86c20ac717dd15c87965d93c585157001d73","Payload":{"body_md":"\n## 速览 {#at-a-glance}\n\n`2202E` 是类别 22 `Data Exception` 中的 `array_subscript_error` 条件。目录同时保留 `ERRCODE_ARRAY_ELEMENT_ERROR` 这一兼容别名，并使用 `ERRCODE_ARRAY_SUBSCRIPT_ERROR` 作为带条件名的宏。两个宏编码的是同一个 SQLSTATE。\n\n不要把所有看起来越界的表达式都当成错误。PostgreSQL 文档明确说明，读取当前边界之外的数组下标会返回 `NULL`；提供错误数量的下标同样返回 `NULL`。数组切片还有独立的历史规则：完全位于边界外的切片可以产生空的零维数组，部分重叠的切片则缩减为重叠部分。\n\n当其他路径校验形状或下标并拒绝它时才会抛出 `2202E`。核心源码中的这类路径包括数组拼接或构造时维度不兼容、无效切片边界，以及部分带下标赋值检查。诊断时，操作本身和下标数值同样重要。\n\n可执行的代表性案例是 `incompatible_array_dimensions`。它在 PostgreSQL 18.6 和 10.21 上均通过：不兼容的拼接抛出 `2202E`，随后同一自动提交连接保持 `IDLE`，并成功执行有效的后续拼接。下面的 SQL 摘录是共享注册表中的完整有序语句对；测试执行器仍是建表和清理的唯一来源。\n\n\n## 含义与触发路径 {#meaning}\n\n18.6 目录中的定义是类别 22 下的 `2202E E ERRCODE_ARRAY_SUBSCRIPT_ERROR array_subscript_error`。前面的别名行是 `2202E E ERRCODE_ARRAY_ELEMENT_ERROR`；源码注释解释 SQL99 的 “array element error” 实际上就是数组下标错误。因此，仍使用别名的代码指向同一 SQLSTATE，而不是另一种条件。\n\n数组具有秩、每个维度的长度以及下界。PostgreSQL 不要求数组从 1 开始，所以诊断时应读取实际下界，而不是作这个假设。文档中的 `array_ndims`、`array_dims`、`array_lower`、`array_upper` 和 `cardinality` 函数可以查看所需的元数据。需要诊断错误时，应在同一会话中实际调用这些检查函数；它们是检查工具，不代表已经触发了某个特定错误。\n\n核心路径主要包括：\n\n1. **数组元素或切片赋值。** `arrayfuncs.c` 会校验下标和切片边界。一维数组可以通过给新元素赋值来扩展，中间位置填入 `NULL`；多维数组不支持这种扩展。给空数组赋切片时必须提供两个边界。因此，赋值访问当前读取边界之外的位置时，应按赋值操作分析，不能从 `SELECT a[n]` 的结果推断。\n2. **数组拼接。** 当同秩数组的非拼接维度的长度或下界不同时，`array_cat` 抛出 `2202E`。代表性案例覆盖的就是这条路径。\n3. **多维构造。** 表达式执行器在用于构造多维数组的非空数组表达式维度不兼容时，也会抛出同一条件。\n\n源码中还存在其他调用方，包括数据类型辅助路径。类别 22 是宽泛的数据异常类别；具体是哪个形状或下标契约失败，要由 `2202E` 条目、源码函数和报文共同确定。\n\n## 报文与诊断 {#messages}\n\n可执行摘录如下：\n\n```sql\nSELECT ARRAY[[1,2]] || ARRAY[[3]];\nSELECT ARRAY[1,2] || ARRAY[3,4];\n```\n\n第一条语句的两个二维数组内层维度不同。PostgreSQL 18.6 报告：\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\nPostgreSQL 10.21 的同一案例给出相同的主报文和详细信息文本，历史源码行号是 356。第二条语句返回 `{1,2,3,4}`。这些报文和详细信息属于拼接路径，不是所有 `2202E` 调用方都必然使用的措辞。\n\n其他源码确认的模板包括 `array subscript out of range`、`array slice subscript must provide both boundaries`（详细信息会解释给空数组赋值的要求），以及 `upper bound cannot be less than lower bound`。如果驱动程序提供这些字段，请保留 `message_detail`、`message_hint`、`source_file`、`source_function` 和 `source_line`；它们往往能区分切片校验与拼接校验。\n\n## 诊断 {#diagnosis}\n\n先按表达式分类：\n\n- 普通元素读取如 `a[999]` 可以合法返回 `NULL`。在称为服务器错误前，检查数组本身、下标表达式以及存储的边界。\n- 切片读取根据文档规则可能返回 `NULL`、空的零维数组或缩减后的重叠部分。没有错误响应时不要把这些值映射成 `2202E`。\n- 赋值、数组构造和拼接会执行校验代码。记录数组秩、维度、下界、提供的下标数量，以及语句是否在修改值。\n\n遇到真实错误时，记录 SQLSTATE、严重级别、主报文、详细信息、提示、语句位置以及关系对象或函数上下文。使用同一个值或源表达式配合 `array_ndims`、`array_dims`、`array_lower` 和 `array_upper` 对照。拼接时比较每一个非拼接维度和下界；切片时检查两个边界及其顺序；构造时检查每个子数组的形状。\n\n在 PL/pgSQL 中，处理器可以捕获 `array_subscript_error` 或 `SQLSTATE '2202E'`，但处理器的事务行为取决于代码块。带 `EXCEPTION` 子句的代码块会让受保护主体在子事务中运行；主体出错后，主体内对持久数据库状态的修改会先回滚，再运行处理器。`OTHERS` 也有文档规定的排除项，应用要修复数组操作时应使用具体条件。\n\n## 处理 {#response}\n\n修复违反形状契约的操作。拼接前统一维度和下界；提供完整且顺序正确的切片边界；只有在确实需要 `NULL` 填充语义时才使用一维扩展；或者使用形状匹配的子数组重新构造多维值。如果读取返回 `NULL` 是合法结果，应先按值处理，不要在判断应用是否需要区分“缺少元素”和“存储的 NULL 元素”前就用 `COALESCE` 掩盖它。\n\n代表性错误在自动提交下运行。失败后连接状态为 `IDLE`，有效拼接成功。在显式事务中，`ERROR` 通常会让事务进入中止状态，直到 `ROLLBACK` 或回滚到保存点；连接本身不一定需要关闭。带异常子句的 PL/pgSQL 代码块可以让受保护主体在子事务中封装失败，主体内的修改会在处理器运行前回滚。应读取客户端的实际事务状态，不要仅凭 `2202E` 推断连接结局。\n\n## 版本 {#versions}\n\n目录记录 `2202E` 存在于锁定的 7.4–8.4.22 pre-9.0 正式源码、9.0.23 至 18.6 的全部正式快照及 19 Beta 3 预览快照。同 tag 的 `REL8_1_4` `errcodes.sgml` 表已经列出 `2202E` 和条件名 `array_subscript_error`，因此至少可以确认 8.1.4 已有该条件名。7.0–7.3 仍有候选源码缺口，因此 7.4 观察结果只是存在边界，不是精确引入版本。18.6 固定源码 commit 为 `724edf9bde9d356724ad384a2e196edc3c9f80f7`；其 `errcodes.txt` 同时保留别名宏和带条件名的宏。\n\n不兼容维度案例在 PostgreSQL 18.6 和 10.21 上均通过，主报文和详细信息文本相同而源码行号不同。这个跨版本结果不保证所有旧小版本或其他 `2202E` 调用路径的措辞都不变。\n\n## 相关 {#related}\n\n[`22000` — `data_exception`](/wiki/sqlstate/22000/) 是宽泛的类别 22 代码。[`22005` — `error_in_assignment`](/wiki/sqlstate/22005/) 是不同的赋值条件，不应替代数组专用的 `2202E`。[`22P02` — `invalid_text_representation`](/wiki/sqlstate/22P02/) 处理输入文本解析。`2202E` 也不同于成功的越界读取，后者按数组文档规则返回 `NULL`。\n\n## 来源 {#sources}\n\n结构化证据记录在[公开证据 JSON](#sources)中。源码记录固定到 PostgreSQL commit `724edf9bde9d356724ad384a2e196edc3c9f80f7`；运行记录保留共享注册表、两个目标版本和 `2202E-snippet-registry-final-20260909` 运行 ID。\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` 与 `doc.func.18` — [Arrays](/docs/18/arrays.html) 与 [Array Functions and Operators](/docs/18/functions-array.html)\n- `doc.transactions.18` — [Transactions](/docs/18/tutorial-transactions.html)\n","description":"PostgreSQL 使用 SQLSTATE 2202E 表示数组下标或形状错误。应区分越界读取返回 NULL 的情况，以及会校验数组维度的赋值、切片、构造和拼接路径。","is_stale":false,"name":"数组下标错误","sections":[{"anchor":"at-a-glance","heading":"速览","html":"\u003cp\u003e\u003ccode\u003e2202E\u003c/code\u003e 是类别 22 \u003ccode\u003eData Exception\u003c/code\u003e 中的 \u003ccode\u003earray_subscript_error\u003c/code\u003e 条件。目录同时保留 \u003ccode\u003eERRCODE_ARRAY_ELEMENT_ERROR\u003c/code\u003e 这一兼容别名，并使用 \u003ccode\u003eERRCODE_ARRAY_SUBSCRIPT_ERROR\u003c/code\u003e 作为带条件名的宏。两个宏编码的是同一个 SQLSTATE。\u003c/p\u003e\n\u003cp\u003e不要把所有看起来越界的表达式都当成错误。PostgreSQL 文档明确说明，读取当前边界之外的数组下标会返回 \u003ccode\u003eNULL\u003c/code\u003e；提供错误数量的下标同样返回 \u003ccode\u003eNULL\u003c/code\u003e。数组切片还有独立的历史规则：完全位于边界外的切片可以产生空的零维数组，部分重叠的切片则缩减为重叠部分。\u003c/p\u003e\n\u003cp\u003e当其他路径校验形状或下标并拒绝它时才会抛出 \u003ccode\u003e2202E\u003c/code\u003e。核心源码中的这类路径包括数组拼接或构造时维度不兼容、无效切片边界，以及部分带下标赋值检查。诊断时，操作本身和下标数值同样重要。\u003c/p\u003e\n\u003cp\u003e可执行的代表性案例是 \u003ccode\u003eincompatible_array_dimensions\u003c/code\u003e。它在 PostgreSQL 18.6 和 10.21 上均通过：不兼容的拼接抛出 \u003ccode\u003e2202E\u003c/code\u003e，随后同一自动提交连接保持 \u003ccode\u003eIDLE\u003c/code\u003e，并成功执行有效的后续拼接。下面的 SQL 摘录是共享注册表中的完整有序语句对；测试执行器仍是建表和清理的唯一来源。\u003c/p\u003e"},{"anchor":"meaning","heading":"含义与触发路径","html":"\u003cp\u003e18.6 目录中的定义是类别 22 下的 \u003ccode\u003e2202E E ERRCODE_ARRAY_SUBSCRIPT_ERROR array_subscript_error\u003c/code\u003e。前面的别名行是 \u003ccode\u003e2202E E ERRCODE_ARRAY_ELEMENT_ERROR\u003c/code\u003e；源码注释解释 SQL99 的 “array element error” 实际上就是数组下标错误。因此，仍使用别名的代码指向同一 SQLSTATE，而不是另一种条件。\u003c/p\u003e\n\u003cp\u003e数组具有秩、每个维度的长度以及下界。PostgreSQL 不要求数组从 1 开始，所以诊断时应读取实际下界，而不是作这个假设。文档中的 \u003ccode\u003earray_ndims\u003c/code\u003e、\u003ccode\u003earray_dims\u003c/code\u003e、\u003ccode\u003earray_lower\u003c/code\u003e、\u003ccode\u003earray_upper\u003c/code\u003e 和 \u003ccode\u003ecardinality\u003c/code\u003e 函数可以查看所需的元数据。需要诊断错误时，应在同一会话中实际调用这些检查函数；它们是检查工具，不代表已经触发了某个特定错误。\u003c/p\u003e\n\u003cp\u003e核心路径主要包括：\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003cstrong\u003e数组元素或切片赋值。\u003c/strong\u003e \u003ccode\u003earrayfuncs.c\u003c/code\u003e 会校验下标和切片边界。一维数组可以通过给新元素赋值来扩展，中间位置填入 \u003ccode\u003eNULL\u003c/code\u003e；多维数组不支持这种扩展。给空数组赋切片时必须提供两个边界。因此，赋值访问当前读取边界之外的位置时，应按赋值操作分析，不能从 \u003ccode\u003eSELECT a[n]\u003c/code\u003e 的结果推断。\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e数组拼接。\u003c/strong\u003e 当同秩数组的非拼接维度的长度或下界不同时，\u003ccode\u003earray_cat\u003c/code\u003e 抛出 \u003ccode\u003e2202E\u003c/code\u003e。代表性案例覆盖的就是这条路径。\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e多维构造。\u003c/strong\u003e 表达式执行器在用于构造多维数组的非空数组表达式维度不兼容时，也会抛出同一条件。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e源码中还存在其他调用方，包括数据类型辅助路径。类别 22 是宽泛的数据异常类别；具体是哪个形状或下标契约失败，要由 \u003ccode\u003e2202E\u003c/code\u003e 条目、源码函数和报文共同确定。\u003c/p\u003e"},{"anchor":"messages","heading":"报文与诊断","html":"\u003cp\u003e可执行摘录如下：\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\u003e第一条语句的两个二维数组内层维度不同。PostgreSQL 18.6 报告：\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\u003ePostgreSQL 10.21 的同一案例给出相同的主报文和详细信息文本，历史源码行号是 356。第二条语句返回 \u003ccode\u003e{1,2,3,4}\u003c/code\u003e。这些报文和详细信息属于拼接路径，不是所有 \u003ccode\u003e2202E\u003c/code\u003e 调用方都必然使用的措辞。\u003c/p\u003e\n\u003cp\u003e其他源码确认的模板包括 \u003ccode\u003earray subscript out of range\u003c/code\u003e、\u003ccode\u003earray slice subscript must provide both boundaries\u003c/code\u003e（详细信息会解释给空数组赋值的要求），以及 \u003ccode\u003eupper bound cannot be less than lower bound\u003c/code\u003e。如果驱动程序提供这些字段，请保留 \u003ccode\u003emessage_detail\u003c/code\u003e、\u003ccode\u003emessage_hint\u003c/code\u003e、\u003ccode\u003esource_file\u003c/code\u003e、\u003ccode\u003esource_function\u003c/code\u003e 和 \u003ccode\u003esource_line\u003c/code\u003e；它们往往能区分切片校验与拼接校验。\u003c/p\u003e"},{"anchor":"diagnosis","heading":"诊断","html":"\u003cp\u003e先按表达式分类：\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e普通元素读取如 \u003ccode\u003ea[999]\u003c/code\u003e 可以合法返回 \u003ccode\u003eNULL\u003c/code\u003e。在称为服务器错误前，检查数组本身、下标表达式以及存储的边界。\u003c/li\u003e\n\u003cli\u003e切片读取根据文档规则可能返回 \u003ccode\u003eNULL\u003c/code\u003e、空的零维数组或缩减后的重叠部分。没有错误响应时不要把这些值映射成 \u003ccode\u003e2202E\u003c/code\u003e。\u003c/li\u003e\n\u003cli\u003e赋值、数组构造和拼接会执行校验代码。记录数组秩、维度、下界、提供的下标数量，以及语句是否在修改值。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e遇到真实错误时，记录 SQLSTATE、严重级别、主报文、详细信息、提示、语句位置以及关系对象或函数上下文。使用同一个值或源表达式配合 \u003ccode\u003earray_ndims\u003c/code\u003e、\u003ccode\u003earray_dims\u003c/code\u003e、\u003ccode\u003earray_lower\u003c/code\u003e 和 \u003ccode\u003earray_upper\u003c/code\u003e 对照。拼接时比较每一个非拼接维度和下界；切片时检查两个边界及其顺序；构造时检查每个子数组的形状。\u003c/p\u003e\n\u003cp\u003e在 PL/pgSQL 中，处理器可以捕获 \u003ccode\u003earray_subscript_error\u003c/code\u003e 或 \u003ccode\u003eSQLSTATE '2202E'\u003c/code\u003e，但处理器的事务行为取决于代码块。带 \u003ccode\u003eEXCEPTION\u003c/code\u003e 子句的代码块会让受保护主体在子事务中运行；主体出错后，主体内对持久数据库状态的修改会先回滚，再运行处理器。\u003ccode\u003eOTHERS\u003c/code\u003e 也有文档规定的排除项，应用要修复数组操作时应使用具体条件。\u003c/p\u003e"},{"anchor":"response","heading":"处理","html":"\u003cp\u003e修复违反形状契约的操作。拼接前统一维度和下界；提供完整且顺序正确的切片边界；只有在确实需要 \u003ccode\u003eNULL\u003c/code\u003e 填充语义时才使用一维扩展；或者使用形状匹配的子数组重新构造多维值。如果读取返回 \u003ccode\u003eNULL\u003c/code\u003e 是合法结果，应先按值处理，不要在判断应用是否需要区分“缺少元素”和“存储的 NULL 元素”前就用 \u003ccode\u003eCOALESCE\u003c/code\u003e 掩盖它。\u003c/p\u003e\n\u003cp\u003e代表性错误在自动提交下运行。失败后连接状态为 \u003ccode\u003eIDLE\u003c/code\u003e，有效拼接成功。在显式事务中，\u003ccode\u003eERROR\u003c/code\u003e 通常会让事务进入中止状态，直到 \u003ccode\u003eROLLBACK\u003c/code\u003e 或回滚到保存点；连接本身不一定需要关闭。带异常子句的 PL/pgSQL 代码块可以让受保护主体在子事务中封装失败，主体内的修改会在处理器运行前回滚。应读取客户端的实际事务状态，不要仅凭 \u003ccode\u003e2202E\u003c/code\u003e 推断连接结局。\u003c/p\u003e"},{"anchor":"versions","heading":"版本","html":"\u003cp\u003e目录记录 \u003ccode\u003e2202E\u003c/code\u003e 存在于锁定的 7.4–8.4.22 pre-9.0 正式源码、9.0.23 至 18.6 的全部正式快照及 19 Beta 3 预览快照。同 tag 的 \u003ccode\u003eREL8_1_4\u003c/code\u003e \u003ccode\u003eerrcodes.sgml\u003c/code\u003e 表已经列出 \u003ccode\u003e2202E\u003c/code\u003e 和条件名 \u003ccode\u003earray_subscript_error\u003c/code\u003e，因此至少可以确认 8.1.4 已有该条件名。7.0–7.3 仍有候选源码缺口，因此 7.4 观察结果只是存在边界，不是精确引入版本。18.6 固定源码 commit 为 \u003ccode\u003e724edf9bde9d356724ad384a2e196edc3c9f80f7\u003c/code\u003e；其 \u003ccode\u003eerrcodes.txt\u003c/code\u003e 同时保留别名宏和带条件名的宏。\u003c/p\u003e\n\u003cp\u003e不兼容维度案例在 PostgreSQL 18.6 和 10.21 上均通过，主报文和详细信息文本相同而源码行号不同。这个跨版本结果不保证所有旧小版本或其他 \u003ccode\u003e2202E\u003c/code\u003e 调用路径的措辞都不变。\u003c/p\u003e"},{"anchor":"related","heading":"相关","html":"\u003cp\u003e\u003ca href=\"/wiki/sqlstate/22000/\"\u003e\u003ccode\u003e22000\u003c/code\u003e — \u003ccode\u003edata_exception\u003c/code\u003e\u003c/a\u003e 是宽泛的类别 22 代码。\u003ca href=\"/wiki/sqlstate/22005/\"\u003e\u003ccode\u003e22005\u003c/code\u003e — \u003ccode\u003eerror_in_assignment\u003c/code\u003e\u003c/a\u003e 是不同的赋值条件，不应替代数组专用的 \u003ccode\u003e2202E\u003c/code\u003e。\u003ca href=\"/wiki/sqlstate/22P02/\"\u003e\u003ccode\u003e22P02\u003c/code\u003e — \u003ccode\u003einvalid_text_representation\u003c/code\u003e\u003c/a\u003e 处理输入文本解析。\u003ccode\u003e2202E\u003c/code\u003e 也不同于成功的越界读取，后者按数组文档规则返回 \u003ccode\u003eNULL\u003c/code\u003e。\u003c/p\u003e"},{"anchor":"sources","heading":"来源","html":"\u003cp\u003e结构化证据记录在\u003ca href=\"#sources\"\u003e公开证据 JSON\u003c/a\u003e中。源码记录固定到 PostgreSQL commit \u003ccode\u003e724edf9bde9d356724ad384a2e196edc3c9f80f7\u003c/code\u003e；运行记录保留共享注册表、两个目标版本和 \u003ccode\u003e2202E-snippet-registry-final-20260909\u003c/code\u003e 运行 ID。\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 与 \u003ccode\u003edoc.func.18\u003c/code\u003e — \u003ca href=\"/docs/18/arrays.html\"\u003eArrays\u003c/a\u003e 与 \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":"数组下标或维度错误，如拼接维度不兼容。","title":"2202E — array_subscript_error（数组下标错误）","translation_source_rev":"791e71de5b934add1a94a62edd587c3a3b4cb06acafd2c7cefceee28a5f02d74"}},"RequestedLocale":"zh-Hans","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"}}]}
