{"Entry":{"collection":"sqlstate","key":"22036","name":"22036","aliases":[],"metadata":{"aliases":[],"case_count":0,"class_code":"22","condition_name":"non_numeric_sql_json_item","condition_names":["non_numeric_sql_json_item"],"content_hash":"a7f1ce96f2265e7ce628cb177d77b9bf20dd8eaa5fc16d553d51127e5069203e","depth":"reference","editorial_review":"reviewed","evidence_tier":"source_path_confirmed","imported_at":"2026-09-30T17:45:27.101081+08:00","introduced":null,"known_present_by":"12.0","macros":["ERRCODE_NON_NUMERIC_SQL_JSON_ITEM"],"name_zh":"","present_in":["12","13","14","15","16","17","18","19"],"preview_in":["19"],"primary_macro":"ERRCODE_NON_NUMERIC_SQL_JSON_ITEM","removed":null,"runtime_verification":"not_run","severity_classes":["E"],"snippet_count":0,"source_rev":"english-manuals:86fe9299120780201087bfc35bb47250ad772b29dc742a1baac2aa5c43ff15ef","sqlstate":"22036","status":"active","summary_zh":"JSON 路径项方法收到非数值的项。"}},"Definition":{"Collection":"sqlstate","Key":"22036","SourceDatabase":"center","Version":"18","SourceTable":"sqlstate","SourceKey":"22036","SourceRevision":"english-manuals:86fe9299120780201087bfc35bb47250ad772b29dc742a1baac2aa5c43ff15ef","Facts":{"aliases":[],"class_name":"Data Exception","condition_name":"non_numeric_sql_json_item","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"56dacf78e618ff0fd8c533e05db597b80d7ebbad7f8e512a888217d0640aa328","slug":"18"},"lang":"en","sqlstate":"22036"},"ManualEvidence":{"doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"56dacf78e618ff0fd8c533e05db597b80d7ebbad7f8e512a888217d0640aa328","slug":"18"}},"MeasuredEvidence":{}},"Text":{"Collection":"sqlstate","Key":"22036","SourceDatabase":"center","Version":"","Locale":"zh-Hans","Title":"22036 — non_numeric_sql_json_item","Summary":"JSON 路径项方法收到非数值的项。","BodyHTML":"\u003ch1\u003e22036\u003c/h1\u003e\n\u003ch2\u003e速览 {#at-a-glance}\u003c/h2\u003e\n\u003cp\u003eJSON 路径项方法收到的值不满足数值或转换约束。固定路径覆盖 \u003ccode\u003e.number()\u003c/code\u003e、\u003ccode\u003e.decimal()\u003c/code\u003e、\u003ccode\u003e.integer()\u003c/code\u003e、\u003ccode\u003e.bigint()\u003c/code\u003e、\u003ccode\u003e.double()\u003c/code\u003e、\u003ccode\u003e.boolean()\u003c/code\u003e、\u003ccode\u003e.abs()\u003c/code\u003e、\u003ccode\u003e.floor()\u003c/code\u003e、\u003ccode\u003e.ceiling()\u003c/code\u003e，以及 \u003ccode\u003e.string()\u003c/code\u003e 的相应类型检查。\u003c/p\u003e\n\u003ch2\u003e报文 {#messages}\u003c/h2\u003e\n\u003cp\u003e固定 jsonpath 方法的代表性首要报文如下：\u003c/p\u003e\n\u003cp\u003e| 触发条件 | 首要报文 |\n| --- | --- |\n| \u003ccode\u003e.abs()\u003c/code\u003e、\u003ccode\u003e.floor()\u003c/code\u003e 或 \u003ccode\u003e.ceiling()\u003c/code\u003e 收到非数值项 | \u003ccode\u003ejsonpath item method .%s() can only be applied to a numeric value\u003c/code\u003e |\n| 转换方法收到的既不是字符串也不是数值项 | \u003ccode\u003ejsonpath item method .%s() can only be applied to a string or numeric value\u003c/code\u003e |\n| \u003ccode\u003e.boolean()\u003c/code\u003e 收到不支持的项 | \u003ccode\u003ejsonpath item method .%s() can only be applied to a boolean, string, or numeric value\u003c/code\u003e |\n| 字符串或数值不能转换为目标类型 | \u003ccode\u003eargument \u0026#34;%s\u0026#34; of jsonpath item method .%s() is invalid for type %s\u003c/code\u003e |\n| 数值转换得到 NaN 或 Infinity | \u003ccode\u003eNaN or Infinity is not allowed for jsonpath item method .%s()\u003c/code\u003e |\n| \u003ccode\u003e.string()\u003c/code\u003e 收到不支持的项 | \u003ccode\u003ejsonpath item method .%s() can only be applied to a boolean, string, numeric, or datetime value\u003c/code\u003e |\u003c/p\u003e\n\u003ch2\u003e含义 {#meaning}\u003c/h2\u003e\n\u003cp\u003ejsonpath 执行器会按输入类型分派各项方法。\u003ccode\u003e.integer()\u003c/code\u003e、\u003ccode\u003e.bigint()\u003c/code\u003e、\u003ccode\u003e.double()\u003c/code\u003e 以及 \u003ccode\u003e.number()\u003c/code\u003e/\u003ccode\u003e.decimal()\u003c/code\u003e 处理字符串输入时，会使用目标输入例程或数值解析，并通过 \u003ccode\u003eErrorSaveContext\u003c/code\u003e 或显式错误标志记录失败。已有数值项走各自分支：\u003ccode\u003e.number()\u003c/code\u003e 可直接保留数值，\u003ccode\u003e.integer()\u003c/code\u003e 和 \u003ccode\u003e.bigint()\u003c/code\u003e 使用 \u003ccode\u003enumeric_int4_opt_error\u003c/code\u003e/\u003ccode\u003enumeric_int8_opt_error\u003c/code\u003e，\u003ccode\u003e.decimal()\u003c/code\u003e 再应用精度/小数位 typmod。\u003ccode\u003e.boolean()\u003c/code\u003e 直接接受布尔值，用 \u003ccode\u003eint4in\u003c/code\u003e 转换数值，用 \u003ccode\u003eparse_bool\u003c/code\u003e 解析字符串；\u003ccode\u003e.abs()\u003c/code\u003e、\u003ccode\u003e.floor()\u003c/code\u003e 和 \u003ccode\u003e.ceiling()\u003c/code\u003e 要求数值标量。数值和 double 路径拒绝 NaN 或 Infinity。\u003ccode\u003e.string()\u003c/code\u003e 的约束更宽，可接受布尔、字符串、数值或日期时间项；只有路径模式允许时才会解包数组。\u003c/p\u003e\n\u003ch2\u003e诊断 {#diagnosis}\u003c/h2\u003e\n\u003cp\u003e查看首要报文中的方法名、项类型和值。区分字符串解析和已有数值项：\u003ccode\u003e.number()\u003c/code\u003e 可直接处理已有数值，\u003ccode\u003e.integer()\u003c/code\u003e/\u003ccode\u003e.bigint()\u003c/code\u003e 做数值范围检查，\u003ccode\u003e.decimal()\u003c/code\u003e 可能应用精度/小数位 typmod，\u003ccode\u003e.boolean()\u003c/code\u003e 有直接、数值和 \u003ccode\u003eparse_bool\u003c/code\u003e 分支。对象、数组或不支持的项属于类型问题。若方法拒绝非有限数值，应在调用前移除或拦截它。不要把 \u003ccode\u003emake_numeric_typmod_safe\u003c/code\u003e 的所有底层精度/小数位诊断都归为 22036，只保留已展示的 jsonpath 报错分支。不要把本码与一元算术操作数检查条件 2203B，或 JSON 路径日期时间方法 22031 混淆。\u003c/p\u003e\n\u003ch2\u003e处理 {#response}\u003c/h2\u003e\n\u003cp\u003e修改路径以选中预期标量，在转换前规范化文档，或改用符合该值输入约束的方法。若源数据可能变化，应在调用方法前验证数值文本和有限性。如果 ERROR 发生在显式事务中，应先 ROLLBACK 或回滚到既有保存点再重试；自动提交可重试修正后的动作。\u003c/p\u003e\n\u003ch2\u003e版本 {#versions}\u003c/h2\u003e\n\u003cp\u003e锁定目录从 12.0 起记录该条件；固定的转换和项方法路径来自 PostgreSQL 18.6。本页未声称有自然运行观察。\u003c/p\u003e\n\u003ch2\u003e相关 {#related}\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/wiki/sqlstate/2203B/\" rel=\"nofollow\"\u003e\u003ccode\u003e2203B\u003c/code\u003e\u003c/a\u003e、\u003ca href=\"/wiki/sqlstate/22031/\" rel=\"nofollow\"\u003e\u003ccode\u003e22031\u003c/code\u003e\u003c/a\u003e、\u003ca href=\"/wiki/sqlstate/22038/\" rel=\"nofollow\"\u003e\u003ccode\u003e22038\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e来源 {#sources}\u003c/h2\u003e\n\u003cp\u003e数值项方法检查条件见 \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L1129\" rel=\"nofollow\"\u003e\u003ccode\u003ejsonpath_exec.c#L1129-1588\u003c/code\u003e\u003c/a\u003e，\u003ccode\u003e.string()\u003c/code\u003e 类型约束见 \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L1592\" rel=\"nofollow\"\u003e\u003ccode\u003e#L1592-1647\u003c/code\u003e\u003c/a\u003e，只接受数值的方法见 \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L2280\" rel=\"nofollow\"\u003e\u003ccode\u003e#L2280-2310\u003c/code\u003e\u003c/a\u003e。strict/lax 与抛出/返回宏见 \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L235\" rel=\"nofollow\"\u003e\u003ccode\u003e#L235-249\u003c/code\u003e\u003c/a\u003e。结构化\u003ca href=\"#sources\" rel=\"nofollow\"\u003e证据记录\u003c/a\u003e绑定这些检查条件和报文；本页未运行自然案例。\u003c/p\u003e\n","SourceRevision":"english-manuals:86fe9299120780201087bfc35bb47250ad772b29dc742a1baac2aa5c43ff15ef","ContentHash":"78a259584f5651acab915f432c78cf4a02a3f6ec603d2d060e9e3fcbee5da8c9","Payload":{"body_md":"# 22036\n\n## 速览 {#at-a-glance}\nJSON 路径项方法收到的值不满足数值或转换约束。固定路径覆盖 `.number()`、`.decimal()`、`.integer()`、`.bigint()`、`.double()`、`.boolean()`、`.abs()`、`.floor()`、`.ceiling()`，以及 `.string()` 的相应类型检查。\n\n\n## 报文 {#messages}\n固定 jsonpath 方法的代表性首要报文如下：\n\n| 触发条件 | 首要报文 |\n| --- | --- |\n| `.abs()`、`.floor()` 或 `.ceiling()` 收到非数值项 | `jsonpath item method .%s() can only be applied to a numeric value` |\n| 转换方法收到的既不是字符串也不是数值项 | `jsonpath item method .%s() can only be applied to a string or numeric value` |\n| `.boolean()` 收到不支持的项 | `jsonpath item method .%s() can only be applied to a boolean, string, or numeric value` |\n| 字符串或数值不能转换为目标类型 | `argument \"%s\" of jsonpath item method .%s() is invalid for type %s` |\n| 数值转换得到 NaN 或 Infinity | `NaN or Infinity is not allowed for jsonpath item method .%s()` |\n| `.string()` 收到不支持的项 | `jsonpath item method .%s() can only be applied to a boolean, string, numeric, or datetime value` |\n\n## 含义 {#meaning}\njsonpath 执行器会按输入类型分派各项方法。`.integer()`、`.bigint()`、`.double()` 以及 `.number()`/`.decimal()` 处理字符串输入时，会使用目标输入例程或数值解析，并通过 `ErrorSaveContext` 或显式错误标志记录失败。已有数值项走各自分支：`.number()` 可直接保留数值，`.integer()` 和 `.bigint()` 使用 `numeric_int4_opt_error`/`numeric_int8_opt_error`，`.decimal()` 再应用精度/小数位 typmod。`.boolean()` 直接接受布尔值，用 `int4in` 转换数值，用 `parse_bool` 解析字符串；`.abs()`、`.floor()` 和 `.ceiling()` 要求数值标量。数值和 double 路径拒绝 NaN 或 Infinity。`.string()` 的约束更宽，可接受布尔、字符串、数值或日期时间项；只有路径模式允许时才会解包数组。\n\n## 诊断 {#diagnosis}\n查看首要报文中的方法名、项类型和值。区分字符串解析和已有数值项：`.number()` 可直接处理已有数值，`.integer()`/`.bigint()` 做数值范围检查，`.decimal()` 可能应用精度/小数位 typmod，`.boolean()` 有直接、数值和 `parse_bool` 分支。对象、数组或不支持的项属于类型问题。若方法拒绝非有限数值，应在调用前移除或拦截它。不要把 `make_numeric_typmod_safe` 的所有底层精度/小数位诊断都归为 22036，只保留已展示的 jsonpath 报错分支。不要把本码与一元算术操作数检查条件 2203B，或 JSON 路径日期时间方法 22031 混淆。\n\n## 处理 {#response}\n修改路径以选中预期标量，在转换前规范化文档，或改用符合该值输入约束的方法。若源数据可能变化，应在调用方法前验证数值文本和有限性。如果 ERROR 发生在显式事务中，应先 ROLLBACK 或回滚到既有保存点再重试；自动提交可重试修正后的动作。\n\n## 版本 {#versions}\n锁定目录从 12.0 起记录该条件；固定的转换和项方法路径来自 PostgreSQL 18.6。本页未声称有自然运行观察。\n\n## 相关 {#related}\n[`2203B`](/wiki/sqlstate/2203B/)、[`22031`](/wiki/sqlstate/22031/)、[`22038`](/wiki/sqlstate/22038/)\n\n## 来源 {#sources}\n数值项方法检查条件见 [`jsonpath_exec.c#L1129-1588`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L1129)，`.string()` 类型约束见 [`#L1592-1647`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L1592)，只接受数值的方法见 [`#L2280-2310`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L2280)。strict/lax 与抛出/返回宏见 [`#L235-249`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L235)。结构化[证据记录](#sources)绑定这些检查条件和报文；本页未运行自然案例。\n\n","description":"PostgreSQL SQLSTATE 22036 的来源与诊断参考。","is_stale":false,"name":"","sections":[{"anchor":"","heading":"","html":"\u0026lt;h1\u0026gt;22036\u0026lt;/h1\u0026gt;"},{"anchor":"at-a-glance","heading":"速览","html":"\u003cp\u003eJSON 路径项方法收到的值不满足数值或转换约束。固定路径覆盖 \u003ccode\u003e.number()\u003c/code\u003e、\u003ccode\u003e.decimal()\u003c/code\u003e、\u003ccode\u003e.integer()\u003c/code\u003e、\u003ccode\u003e.bigint()\u003c/code\u003e、\u003ccode\u003e.double()\u003c/code\u003e、\u003ccode\u003e.boolean()\u003c/code\u003e、\u003ccode\u003e.abs()\u003c/code\u003e、\u003ccode\u003e.floor()\u003c/code\u003e、\u003ccode\u003e.ceiling()\u003c/code\u003e，以及 \u003ccode\u003e.string()\u003c/code\u003e 的相应类型检查。\u003c/p\u003e"},{"anchor":"messages","heading":"报文","html":"\u003cp\u003e固定 jsonpath 方法的代表性首要报文如下：\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003e触发条件\u003c/th\u003e\n\u003cth\u003e首要报文\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e.abs()\u003c/code\u003e、\u003ccode\u003e.floor()\u003c/code\u003e 或 \u003ccode\u003e.ceiling()\u003c/code\u003e 收到非数值项\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ejsonpath item method .%s() can only be applied to a numeric value\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e转换方法收到的既不是字符串也不是数值项\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ejsonpath item method .%s() can only be applied to a string or numeric value\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e.boolean()\u003c/code\u003e 收到不支持的项\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ejsonpath item method .%s() can only be applied to a boolean, string, or numeric value\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e字符串或数值不能转换为目标类型\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eargument \"%s\" of jsonpath item method .%s() is invalid for type %s\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e数值转换得到 NaN 或 Infinity\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eNaN or Infinity is not allowed for jsonpath item method .%s()\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e.string()\u003c/code\u003e 收到不支持的项\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ejsonpath item method .%s() can only be applied to a boolean, string, numeric, or datetime value\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"},{"anchor":"meaning","heading":"含义","html":"\u003cp\u003ejsonpath 执行器会按输入类型分派各项方法。\u003ccode\u003e.integer()\u003c/code\u003e、\u003ccode\u003e.bigint()\u003c/code\u003e、\u003ccode\u003e.double()\u003c/code\u003e 以及 \u003ccode\u003e.number()\u003c/code\u003e/\u003ccode\u003e.decimal()\u003c/code\u003e 处理字符串输入时，会使用目标输入例程或数值解析，并通过 \u003ccode\u003eErrorSaveContext\u003c/code\u003e 或显式错误标志记录失败。已有数值项走各自分支：\u003ccode\u003e.number()\u003c/code\u003e 可直接保留数值，\u003ccode\u003e.integer()\u003c/code\u003e 和 \u003ccode\u003e.bigint()\u003c/code\u003e 使用 \u003ccode\u003enumeric_int4_opt_error\u003c/code\u003e/\u003ccode\u003enumeric_int8_opt_error\u003c/code\u003e，\u003ccode\u003e.decimal()\u003c/code\u003e 再应用精度/小数位 typmod。\u003ccode\u003e.boolean()\u003c/code\u003e 直接接受布尔值，用 \u003ccode\u003eint4in\u003c/code\u003e 转换数值，用 \u003ccode\u003eparse_bool\u003c/code\u003e 解析字符串；\u003ccode\u003e.abs()\u003c/code\u003e、\u003ccode\u003e.floor()\u003c/code\u003e 和 \u003ccode\u003e.ceiling()\u003c/code\u003e 要求数值标量。数值和 double 路径拒绝 NaN 或 Infinity。\u003ccode\u003e.string()\u003c/code\u003e 的约束更宽，可接受布尔、字符串、数值或日期时间项；只有路径模式允许时才会解包数组。\u003c/p\u003e"},{"anchor":"diagnosis","heading":"诊断","html":"\u003cp\u003e查看首要报文中的方法名、项类型和值。区分字符串解析和已有数值项：\u003ccode\u003e.number()\u003c/code\u003e 可直接处理已有数值，\u003ccode\u003e.integer()\u003c/code\u003e/\u003ccode\u003e.bigint()\u003c/code\u003e 做数值范围检查，\u003ccode\u003e.decimal()\u003c/code\u003e 可能应用精度/小数位 typmod，\u003ccode\u003e.boolean()\u003c/code\u003e 有直接、数值和 \u003ccode\u003eparse_bool\u003c/code\u003e 分支。对象、数组或不支持的项属于类型问题。若方法拒绝非有限数值，应在调用前移除或拦截它。不要把 \u003ccode\u003emake_numeric_typmod_safe\u003c/code\u003e 的所有底层精度/小数位诊断都归为 22036，只保留已展示的 jsonpath 报错分支。不要把本码与一元算术操作数检查条件 2203B，或 JSON 路径日期时间方法 22031 混淆。\u003c/p\u003e"},{"anchor":"response","heading":"处理","html":"\u003cp\u003e修改路径以选中预期标量，在转换前规范化文档，或改用符合该值输入约束的方法。若源数据可能变化，应在调用方法前验证数值文本和有限性。如果 ERROR 发生在显式事务中，应先 ROLLBACK 或回滚到既有保存点再重试；自动提交可重试修正后的动作。\u003c/p\u003e"},{"anchor":"versions","heading":"版本","html":"\u003cp\u003e锁定目录从 12.0 起记录该条件；固定的转换和项方法路径来自 PostgreSQL 18.6。本页未声称有自然运行观察。\u003c/p\u003e"},{"anchor":"related","heading":"相关","html":"\u003cp\u003e\u003ca href=\"/wiki/sqlstate/2203B/\"\u003e\u003ccode\u003e2203B\u003c/code\u003e\u003c/a\u003e、\u003ca href=\"/wiki/sqlstate/22031/\"\u003e\u003ccode\u003e22031\u003c/code\u003e\u003c/a\u003e、\u003ca href=\"/wiki/sqlstate/22038/\"\u003e\u003ccode\u003e22038\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e"},{"anchor":"sources","heading":"来源","html":"\u003cp\u003e数值项方法检查条件见 \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L1129\"\u003e\u003ccode\u003ejsonpath_exec.c#L1129-1588\u003c/code\u003e\u003c/a\u003e，\u003ccode\u003e.string()\u003c/code\u003e 类型约束见 \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L1592\"\u003e\u003ccode\u003e#L1592-1647\u003c/code\u003e\u003c/a\u003e，只接受数值的方法见 \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L2280\"\u003e\u003ccode\u003e#L2280-2310\u003c/code\u003e\u003c/a\u003e。strict/lax 与抛出/返回宏见 \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L235\"\u003e\u003ccode\u003e#L235-249\u003c/code\u003e\u003c/a\u003e。结构化\u003ca href=\"#sources\"\u003e证据记录\u003c/a\u003e绑定这些检查条件和报文；本页未运行自然案例。\u003c/p\u003e"}],"summary":"JSON 路径项方法收到非数值的项。","title":"22036 — non_numeric_sql_json_item","translation_source_rev":"20b97104fc31ba815da6460e7d8d44cd3f6bba454ba97768d84545320ee2a17a"}},"RequestedLocale":"zh-Hans","Fallback":false,"Versions":["12","13","14","15","16","17","18","19","20"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":{"aliases":[],"catalogue_notes":{"earliest_observed":"12.0","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":"not_observed","preview_scope":["19beta3"]},"class":"22","class_name":"Data Exception","condition_name":"non_numeric_sql_json_item","condition_names":["non_numeric_sql_json_item"],"definition_changes":[],"english_manuals":{"12":{"aliases":[],"class_name":"Data Exception","condition_name":"non_numeric_sql_json_item","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"1444bd6a138537cd75be88a220ee9472ac528f0cfc58758e49636d85455efe98","slug":"12"},"lang":"en","sqlstate":"22036"},"13":{"aliases":[],"class_name":"Data Exception","condition_name":"non_numeric_sql_json_item","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"4a3ef8af218e5736dfde8660ba609e84233b6b3bac7e0210ff8724cf1b27b2db","slug":"13"},"lang":"en","sqlstate":"22036"},"14":{"aliases":[],"class_name":"Data Exception","condition_name":"non_numeric_sql_json_item","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"1c12e83304e0f4ff64c9d98ca5e3007df6756932ed19867a4fa0e0650f6c5751","slug":"14"},"lang":"en","sqlstate":"22036"},"15":{"aliases":[],"class_name":"Data Exception","condition_name":"non_numeric_sql_json_item","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"2161f58f6e87f6535b3b1f3d4661427bb6765f4f6b074fcc16fac97594b50599","slug":"15"},"lang":"en","sqlstate":"22036"},"16":{"aliases":[],"class_name":"Data Exception","condition_name":"non_numeric_sql_json_item","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"928e705933d7c3d018ae3fba9d800b34e6325746d157339dce878473c519d100","slug":"16"},"lang":"en","sqlstate":"22036"},"17":{"aliases":[],"class_name":"Data Exception","condition_name":"non_numeric_sql_json_item","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"868135520af87351e3ea1ba42656111cbd2d157d98e1fef05ea158ac5729d8b1","slug":"17"},"lang":"en","sqlstate":"22036"},"18":{"aliases":[],"class_name":"Data Exception","condition_name":"non_numeric_sql_json_item","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"56dacf78e618ff0fd8c533e05db597b80d7ebbad7f8e512a888217d0640aa328","slug":"18"},"lang":"en","sqlstate":"22036"},"19":{"aliases":[],"class_name":"Data Exception","condition_name":"non_numeric_sql_json_item","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"63fb8d1aa9f494eeab9d0f8542a2b673f7746ee41ae2689d19403cb3cc425a5c","slug":"19"},"lang":"en","sqlstate":"22036"},"20":{"aliases":[],"class_name":"Data Exception","condition_name":"non_numeric_sql_json_item","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"0d3f602127cd137cf343b32d5fa78f175eeb6cdcb6353b1f6f998ede6cb7b911","slug":"devel"},"lang":"en","sqlstate":"22036"}},"history_boundary":{"earliest_observed":"12.0","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":null,"known_lower_bound":null,"last_observed":null,"notes":"No occurrence was observed in the locked 7.4..8.4 definition files. Source gaps for 7.0..7.3 prevent a claim that the code was absent before 7.4.","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":"12.0","macros":["ERRCODE_NON_NUMERIC_SQL_JSON_ITEM"],"manual_presence":["12","13","14","15","16","17","18","19","20"],"pre9_first_observed":null,"pre9_introduction_boundary":null,"pre9_last_observed":null,"pre9_presence_intervals":[],"pre9_status":"not_observed","presence_intervals":[{"end":"12.22","end_major":"12","end_tag":"REL_12_22","evidence_count":23,"position":0,"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":1,"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":2,"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":3,"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":4,"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":5,"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":6,"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":7,"start":"18.6","start_major":"18","start_tag":"REL_18_6"}],"present_in_snapshots":["12.22","13.23","14.24","15.19","16.15","17.11","18.6","19beta3"],"preview_in_snapshots":["19beta3"],"primary_macro":"ERRCODE_NON_NUMERIC_SQL_JSON_ITEM","removed":null,"schema_version":2,"severity_classes":["E"],"sources":[{"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":"22036","status":"active","usage_evidence":[{"evidence_ids":["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":[],"notes":"No occurrence was found in the locked 7.4..8.4 definition files; 7.0..7.3 source gaps remain explicit.","scope":"pre9-definition-history","status":"unknown"}]},"Evidence":[{"Kind":"claims","Ordinal":0,"ID":"identity","ServerVersion":null,"Status":null,"Payload":{"claim_id":"identity","limits":"","method":"Read fixed definition.","position":0,"runtime":[],"sources":["src.errcodes.18.6"],"statement":"22036 is non_numeric_sql_json_item in SQLSTATE Class 22."}},{"Kind":"claims","Ordinal":1,"ID":"resolved-path","ServerVersion":null,"Status":null,"Payload":{"claim_id":"resolved-path","limits":"Source confirmation is not a natural runtime observation.","method":"Read the complete representative numeric, string, and unary numeric item-method guards.","position":1,"runtime":[],"sources":["src.jsonpath.numeric-methods","src.jsonpath.string-method","src.jsonpath.numeric-unary-method","src.jsonpath.context-flags","src.jsonpath.execute-context"],"statement":"The fixed jsonpath numeric item-method branches dispatch by input type. String inputs for .integer(), .bigint(), .double(), and the string side of .number()/.decimal() use target input or numeric parsing with ErrorSaveContext or an explicit error flag. Existing numeric items use method-specific paths: .number() can keep the numeric value, .integer() and .bigint() use numeric_int4_opt_error/numeric_int8_opt_error, and .decimal() applies its precision/scale typmod. .boolean() accepts a boolean directly, converts numeric input through int4in, and parses strings with parse_bool. Numeric-only methods reject nonnumeric items; .string() accepts boolean, string, numeric, or datetime items. Non-finite values are rejected by the shown numeric/double branches. Source confirmation is not a natural runtime observation."}},{"Kind":"claims","Ordinal":2,"ID":"history","ServerVersion":null,"Status":null,"Payload":{"claim_id":"history","limits":"","method":"Use catalogue boundary.","position":2,"runtime":[],"sources":["src.errcodes.18.6"],"statement":"The locked catalogue records 22036 from 12.0 without proving exact implementation introduction."}},{"Kind":"messages","Ordinal":0,"ID":"message.numeric-only","ServerVersion":null,"Status":null,"Payload":{"limits":"","message_id":"message.numeric-only","path":"","position":0,"raw":{"id":"message.numeric-only","primary_template":"jsonpath item method .%s() can only be applied to a numeric value","severity_source":"ERROR","sources":["src.jsonpath.numeric-unary-method"],"sqlstate":"22036"},"severity":"ERROR","sources":["src.jsonpath.numeric-unary-method"],"templates":[{"kind":"primary","literal":"jsonpath item method . () can only be applied to a numeric value","position":0,"role":"","template":"jsonpath item method .%s() can only be applied to a numeric value"}]}},{"Kind":"messages","Ordinal":1,"ID":"message.string-or-numeric","ServerVersion":null,"Status":null,"Payload":{"limits":"","message_id":"message.string-or-numeric","path":"","position":1,"raw":{"id":"message.string-or-numeric","primary_template":"jsonpath item method .%s() can only be applied to a string or numeric value","severity_source":"ERROR","sources":["src.jsonpath.numeric-methods"],"sqlstate":"22036"},"severity":"ERROR","sources":["src.jsonpath.numeric-methods"],"templates":[{"kind":"primary","literal":"jsonpath item method . () can only be applied to a string or numeric value","position":0,"role":"","template":"jsonpath item method .%s() can only be applied to a string or numeric value"}]}},{"Kind":"messages","Ordinal":2,"ID":"message.boolean-method","ServerVersion":null,"Status":null,"Payload":{"limits":"","message_id":"message.boolean-method","path":"","position":2,"raw":{"id":"message.boolean-method","primary_template":"jsonpath item method .%s() can only be applied to a boolean, string, or numeric value","severity_source":"ERROR","sources":["src.jsonpath.numeric-methods"],"sqlstate":"22036"},"severity":"ERROR","sources":["src.jsonpath.numeric-methods"],"templates":[{"kind":"primary","literal":"jsonpath item method . () can only be applied to a boolean, string, or numeric value","position":0,"role":"","template":"jsonpath item method .%s() can only be applied to a boolean, string, or numeric value"}]}},{"Kind":"messages","Ordinal":3,"ID":"message.invalid-type","ServerVersion":null,"Status":null,"Payload":{"limits":"","message_id":"message.invalid-type","path":"","position":3,"raw":{"id":"message.invalid-type","primary_template":"argument \"%s\" of jsonpath item method .%s() is invalid for type %s","severity_source":"ERROR","sources":["src.jsonpath.numeric-methods"],"sqlstate":"22036"},"severity":"ERROR","sources":["src.jsonpath.numeric-methods"],"templates":[{"kind":"primary","literal":"argument \" \" of jsonpath item method . () is invalid for type","position":0,"role":"","template":"argument \"%s\" of jsonpath item method .%s() is invalid for type %s"}]}},{"Kind":"messages","Ordinal":4,"ID":"message.nan-infinity","ServerVersion":null,"Status":null,"Payload":{"limits":"","message_id":"message.nan-infinity","path":"","position":4,"raw":{"id":"message.nan-infinity","primary_template":"NaN or Infinity is not allowed for jsonpath item method .%s()","severity_source":"ERROR","sources":["src.jsonpath.numeric-methods"],"sqlstate":"22036"},"severity":"ERROR","sources":["src.jsonpath.numeric-methods"],"templates":[{"kind":"primary","literal":"NaN or Infinity is not allowed for jsonpath item method . ()","position":0,"role":"","template":"NaN or Infinity is not allowed for jsonpath item method .%s()"}]}},{"Kind":"messages","Ordinal":5,"ID":"message.string-method","ServerVersion":null,"Status":null,"Payload":{"limits":"","message_id":"message.string-method","path":"","position":5,"raw":{"id":"message.string-method","primary_template":"jsonpath item method .%s() can only be applied to a boolean, string, numeric, or datetime value","severity_source":"ERROR","sources":["src.jsonpath.string-method"],"sqlstate":"22036"},"severity":"ERROR","sources":["src.jsonpath.string-method"],"templates":[{"kind":"primary","literal":"jsonpath item method . () can only be applied to a boolean, string, numeric, or datetime value","position":0,"role":"","template":"jsonpath item method .%s() can only be applied to a boolean, string, numeric, or datetime value"}]}},{"Kind":"sources","Ordinal":0,"ID":"src.errcodes.18.6","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"upstream_source","location":"","path":"src/backend/utils/errcodes.txt","position":0,"sha256":"6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba","source_id":"src.errcodes.18.6","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt#L221"}},{"Kind":"sources","Ordinal":1,"ID":"src.jsonpath.numeric-methods","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"upstream_source","location":"","path":"src/backend/utils/adt/jsonpath_exec.c","position":1,"sha256":"678cb8947f0b5e6ad14524f1863987ab99641cfb5f81121fc5c5006af0319d02","source_id":"src.jsonpath.numeric-methods","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L1129"}},{"Kind":"sources","Ordinal":2,"ID":"src.jsonpath.string-method","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"upstream_source","location":"","path":"src/backend/utils/adt/jsonpath_exec.c","position":2,"sha256":"678cb8947f0b5e6ad14524f1863987ab99641cfb5f81121fc5c5006af0319d02","source_id":"src.jsonpath.string-method","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L1592"}},{"Kind":"sources","Ordinal":3,"ID":"src.jsonpath.numeric-unary-method","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"upstream_source","location":"","path":"src/backend/utils/adt/jsonpath_exec.c","position":3,"sha256":"678cb8947f0b5e6ad14524f1863987ab99641cfb5f81121fc5c5006af0319d02","source_id":"src.jsonpath.numeric-unary-method","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L2280"}},{"Kind":"sources","Ordinal":4,"ID":"src.jsonpath.context-flags","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"upstream_source","location":"","path":"src/backend/utils/adt/jsonpath_exec.c","position":4,"sha256":"678cb8947f0b5e6ad14524f1863987ab99641cfb5f81121fc5c5006af0319d02","source_id":"src.jsonpath.context-flags","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L235"}},{"Kind":"sources","Ordinal":5,"ID":"src.jsonpath.execute-context","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"upstream_source","location":"","path":"src/backend/utils/adt/jsonpath_exec.c","position":5,"sha256":"678cb8947f0b5e6ad14524f1863987ab99641cfb5f81121fc5c5006af0319d02","source_id":"src.jsonpath.execute-context","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L654"}}]}
