{"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":"en","Title":"22036 — non_numeric_sql_json_item","Summary":"A JSON path item method received a value that cannot satisfy its numeric or conversion contract. The fixed paths cover .number(), .decimal(), .integer(), .bigint(), .double(), .boolean(), .abs(), .floor(), .ceiling(), and the corresponding type checks in .string().","BodyHTML":"\u003ch1\u003e22036\u003c/h1\u003e\n\u003ch2\u003eAt a glance {#at-a-glance}\u003c/h2\u003e\n\u003cp\u003eA JSON path item method received a value that cannot satisfy its numeric or conversion contract. The fixed paths cover \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, and the corresponding type checks in \u003ccode\u003e.string()\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003eMessages {#messages}\u003c/h2\u003e\n\u003cp\u003eRepresentative primary texts from the fixed jsonpath methods are:\u003c/p\u003e\n\u003cp\u003e| Guard | Primary |\n| --- | --- |\n| \u003ccode\u003e.abs()\u003c/code\u003e, \u003ccode\u003e.floor()\u003c/code\u003e, or \u003ccode\u003e.ceiling()\u003c/code\u003e receives a non-numeric item | \u003ccode\u003ejsonpath item method .%s() can only be applied to a numeric value\u003c/code\u003e |\n| A conversion method receives neither a string nor numeric item | \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 receives an unsupported item | \u003ccode\u003ejsonpath item method .%s() can only be applied to a boolean, string, or numeric value\u003c/code\u003e |\n| A string or numeric value cannot be converted to the target type | \u003ccode\u003eargument \u0026#34;%s\u0026#34; of jsonpath item method .%s() is invalid for type %s\u003c/code\u003e |\n| Numeric conversion produces NaN or Infinity | \u003ccode\u003eNaN or Infinity is not allowed for jsonpath item method .%s()\u003c/code\u003e |\n| \u003ccode\u003e.string()\u003c/code\u003e receives an unsupported item | \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\u003eMeaning {#meaning}\u003c/h2\u003e\n\u003cp\u003eThe jsonpath executor dispatches each item method according to its input type. String inputs for \u003ccode\u003e.integer()\u003c/code\u003e, \u003ccode\u003e.bigint()\u003c/code\u003e, \u003ccode\u003e.double()\u003c/code\u003e, and the string side of \u003ccode\u003e.number()\u003c/code\u003e/\u003ccode\u003e.decimal()\u003c/code\u003e use their target input or numeric parser with an \u003ccode\u003eErrorSaveContext\u003c/code\u003e or explicit error flag. Existing numeric items take method-specific paths: \u003ccode\u003e.number()\u003c/code\u003e can keep the numeric value, \u003ccode\u003e.integer()\u003c/code\u003e and \u003ccode\u003e.bigint()\u003c/code\u003e use \u003ccode\u003enumeric_int4_opt_error\u003c/code\u003e/\u003ccode\u003enumeric_int8_opt_error\u003c/code\u003e, and \u003ccode\u003e.decimal()\u003c/code\u003e applies its precision/scale typmod. \u003ccode\u003e.boolean()\u003c/code\u003e accepts a boolean directly, converts numeric input through \u003ccode\u003eint4in\u003c/code\u003e, and parses strings with \u003ccode\u003eparse_bool\u003c/code\u003e; \u003ccode\u003e.abs()\u003c/code\u003e, \u003ccode\u003e.floor()\u003c/code\u003e, and \u003ccode\u003e.ceiling()\u003c/code\u003e require a numeric scalar. Numeric and double paths reject NaN or Infinity. \u003ccode\u003e.string()\u003c/code\u003e has a wider contract and accepts boolean, string, numeric, or datetime items; arrays can be unwrapped only when the path mode permits it.\u003c/p\u003e\n\u003ch2\u003eDiagnosis {#diagnosis}\u003c/h2\u003e\n\u003cp\u003eRead the method name, item type, and value in the primary. Separate string parsing from an existing numeric item: \u003ccode\u003e.number()\u003c/code\u003e can pass an existing numeric through, \u003ccode\u003e.integer()\u003c/code\u003e/\u003ccode\u003e.bigint()\u003c/code\u003e use numeric range checks, \u003ccode\u003e.decimal()\u003c/code\u003e may apply precision/scale typmod, and \u003ccode\u003e.boolean()\u003c/code\u003e has direct, numeric, and \u003ccode\u003eparse_bool\u003c/code\u003e branches. An object, array, or unsupported item is an item-type case. Remove or guard non-finite numeric values where the method rejects them. Do not assign every lower-level precision/scale diagnostic from \u003ccode\u003emake_numeric_typmod_safe\u003c/code\u003e to 22036; keep only the shown jsonpath error branches in scope. Keep this condition separate from 2203B, which is the unary arithmetic operand check, and from 22031, which covers JSON path datetime methods.\u003c/p\u003e\n\u003ch2\u003eResponse {#response}\u003c/h2\u003e\n\u003cp\u003eChange the path to select the intended scalar, normalize the document before conversion, or use a method whose input contract matches the value. Validate numeric text and finite values before invoking the method when the source can vary. If an ERROR occurred in an explicit transaction, roll back or roll back to the existing savepoint before retrying; autocommit can retry the corrected action.\u003c/p\u003e\n\u003ch2\u003eVersions {#versions}\u003c/h2\u003e\n\u003cp\u003eThe locked catalogue records this condition from 12.0; the fixed conversion and item-method paths are PostgreSQL 18.6. No natural runtime observation is claimed for this page.\u003c/p\u003e\n\u003ch2\u003eRelated {#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\u003eSources {#sources}\u003c/h2\u003e\n\u003cp\u003eThe numeric item-method checks are \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, the \u003ccode\u003e.string()\u003c/code\u003e type contract is \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, and numeric-only methods are \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. The strict/lax and throw-return macros are \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. The structured \u003ca href=\"#sources\" rel=\"nofollow\"\u003eevidence record\u003c/a\u003e binds these guards and messages; no natural runtime was run.\u003c/p\u003e\n","SourceRevision":"english-manuals:86fe9299120780201087bfc35bb47250ad772b29dc742a1baac2aa5c43ff15ef","ContentHash":"749b24f4feeacd5fb28765ace5271b1947e08bb3f2b70933df7766fe2d9aa1e9","Payload":{"body_md":"# 22036\n\n## At a glance {#at-a-glance}\nA JSON path item method received a value that cannot satisfy its numeric or conversion contract. The fixed paths cover `.number()`, `.decimal()`, `.integer()`, `.bigint()`, `.double()`, `.boolean()`, `.abs()`, `.floor()`, `.ceiling()`, and the corresponding type checks in `.string()`.\n\n\n## Messages {#messages}\nRepresentative primary texts from the fixed jsonpath methods are:\n\n| Guard | Primary |\n| --- | --- |\n| `.abs()`, `.floor()`, or `.ceiling()` receives a non-numeric item | `jsonpath item method .%s() can only be applied to a numeric value` |\n| A conversion method receives neither a string nor numeric item | `jsonpath item method .%s() can only be applied to a string or numeric value` |\n| `.boolean()` receives an unsupported item | `jsonpath item method .%s() can only be applied to a boolean, string, or numeric value` |\n| A string or numeric value cannot be converted to the target type | `argument \"%s\" of jsonpath item method .%s() is invalid for type %s` |\n| Numeric conversion produces NaN or Infinity | `NaN or Infinity is not allowed for jsonpath item method .%s()` |\n| `.string()` receives an unsupported item | `jsonpath item method .%s() can only be applied to a boolean, string, numeric, or datetime value` |\n\n## Meaning {#meaning}\nThe jsonpath executor dispatches each item method according to its input type. String inputs for `.integer()`, `.bigint()`, `.double()`, and the string side of `.number()`/`.decimal()` use their target input or numeric parser with an `ErrorSaveContext` or explicit error flag. Existing numeric items take 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`; `.abs()`, `.floor()`, and `.ceiling()` require a numeric scalar. Numeric and double paths reject NaN or Infinity. `.string()` has a wider contract and accepts boolean, string, numeric, or datetime items; arrays can be unwrapped only when the path mode permits it.\n\n## Diagnosis {#diagnosis}\nRead the method name, item type, and value in the primary. Separate string parsing from an existing numeric item: `.number()` can pass an existing numeric through, `.integer()`/`.bigint()` use numeric range checks, `.decimal()` may apply precision/scale typmod, and `.boolean()` has direct, numeric, and `parse_bool` branches. An object, array, or unsupported item is an item-type case. Remove or guard non-finite numeric values where the method rejects them. Do not assign every lower-level precision/scale diagnostic from `make_numeric_typmod_safe` to 22036; keep only the shown jsonpath error branches in scope. Keep this condition separate from 2203B, which is the unary arithmetic operand check, and from 22031, which covers JSON path datetime methods.\n\n## Response {#response}\nChange the path to select the intended scalar, normalize the document before conversion, or use a method whose input contract matches the value. Validate numeric text and finite values before invoking the method when the source can vary. If an ERROR occurred in an explicit transaction, roll back or roll back to the existing savepoint before retrying; autocommit can retry the corrected action.\n\n## Versions {#versions}\nThe locked catalogue records this condition from 12.0; the fixed conversion and item-method paths are PostgreSQL 18.6. No natural runtime observation is claimed for this page.\n\n## Related {#related}\n[`2203B`](/wiki/sqlstate/2203B/), [`22031`](/wiki/sqlstate/22031/), [`22038`](/wiki/sqlstate/22038/)\n\n## Sources {#sources}\nThe numeric item-method checks are [`jsonpath_exec.c#L1129-1588`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L1129), the `.string()` type contract is [`#L1592-1647`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L1592), and numeric-only methods are [`#L2280-2310`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L2280). The strict/lax and throw-return macros are [`#L235-249`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L235). The structured [evidence record](#sources) binds these guards and messages; no natural runtime was run.\n\n","description":"Source-backed reference for PostgreSQL SQLSTATE 22036.","is_stale":false,"name":"","sections":[{"anchor":"","heading":"","html":"\u0026lt;h1\u0026gt;22036\u0026lt;/h1\u0026gt;"},{"anchor":"at-a-glance","heading":"At a glance","html":"\u003cp\u003eA JSON path item method received a value that cannot satisfy its numeric or conversion contract. The fixed paths cover \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, and the corresponding type checks in \u003ccode\u003e.string()\u003c/code\u003e.\u003c/p\u003e"},{"anchor":"messages","heading":"Messages","html":"\u003cp\u003eRepresentative primary texts from the fixed jsonpath methods are:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eGuard\u003c/th\u003e\n\u003cth\u003ePrimary\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, or \u003ccode\u003e.ceiling()\u003c/code\u003e receives a non-numeric item\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\u003eA conversion method receives neither a string nor numeric item\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 receives an unsupported item\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\u003eA string or numeric value cannot be converted to the target type\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\u003eNumeric conversion produces NaN or 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 receives an unsupported item\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":"Meaning","html":"\u003cp\u003eThe jsonpath executor dispatches each item method according to its input type. String inputs for \u003ccode\u003e.integer()\u003c/code\u003e, \u003ccode\u003e.bigint()\u003c/code\u003e, \u003ccode\u003e.double()\u003c/code\u003e, and the string side of \u003ccode\u003e.number()\u003c/code\u003e/\u003ccode\u003e.decimal()\u003c/code\u003e use their target input or numeric parser with an \u003ccode\u003eErrorSaveContext\u003c/code\u003e or explicit error flag. Existing numeric items take method-specific paths: \u003ccode\u003e.number()\u003c/code\u003e can keep the numeric value, \u003ccode\u003e.integer()\u003c/code\u003e and \u003ccode\u003e.bigint()\u003c/code\u003e use \u003ccode\u003enumeric_int4_opt_error\u003c/code\u003e/\u003ccode\u003enumeric_int8_opt_error\u003c/code\u003e, and \u003ccode\u003e.decimal()\u003c/code\u003e applies its precision/scale typmod. \u003ccode\u003e.boolean()\u003c/code\u003e accepts a boolean directly, converts numeric input through \u003ccode\u003eint4in\u003c/code\u003e, and parses strings with \u003ccode\u003eparse_bool\u003c/code\u003e; \u003ccode\u003e.abs()\u003c/code\u003e, \u003ccode\u003e.floor()\u003c/code\u003e, and \u003ccode\u003e.ceiling()\u003c/code\u003e require a numeric scalar. Numeric and double paths reject NaN or Infinity. \u003ccode\u003e.string()\u003c/code\u003e has a wider contract and accepts boolean, string, numeric, or datetime items; arrays can be unwrapped only when the path mode permits it.\u003c/p\u003e"},{"anchor":"diagnosis","heading":"Diagnosis","html":"\u003cp\u003eRead the method name, item type, and value in the primary. Separate string parsing from an existing numeric item: \u003ccode\u003e.number()\u003c/code\u003e can pass an existing numeric through, \u003ccode\u003e.integer()\u003c/code\u003e/\u003ccode\u003e.bigint()\u003c/code\u003e use numeric range checks, \u003ccode\u003e.decimal()\u003c/code\u003e may apply precision/scale typmod, and \u003ccode\u003e.boolean()\u003c/code\u003e has direct, numeric, and \u003ccode\u003eparse_bool\u003c/code\u003e branches. An object, array, or unsupported item is an item-type case. Remove or guard non-finite numeric values where the method rejects them. Do not assign every lower-level precision/scale diagnostic from \u003ccode\u003emake_numeric_typmod_safe\u003c/code\u003e to 22036; keep only the shown jsonpath error branches in scope. Keep this condition separate from 2203B, which is the unary arithmetic operand check, and from 22031, which covers JSON path datetime methods.\u003c/p\u003e"},{"anchor":"response","heading":"Response","html":"\u003cp\u003eChange the path to select the intended scalar, normalize the document before conversion, or use a method whose input contract matches the value. Validate numeric text and finite values before invoking the method when the source can vary. If an ERROR occurred in an explicit transaction, roll back or roll back to the existing savepoint before retrying; autocommit can retry the corrected action.\u003c/p\u003e"},{"anchor":"versions","heading":"Versions","html":"\u003cp\u003eThe locked catalogue records this condition from 12.0; the fixed conversion and item-method paths are PostgreSQL 18.6. No natural runtime observation is claimed for this page.\u003c/p\u003e"},{"anchor":"related","heading":"Related","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":"Sources","html":"\u003cp\u003eThe numeric item-method checks are \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, the \u003ccode\u003e.string()\u003c/code\u003e type contract is \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, and numeric-only methods are \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. The strict/lax and throw-return macros are \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. The structured \u003ca href=\"#sources\"\u003eevidence record\u003c/a\u003e binds these guards and messages; no natural runtime was run.\u003c/p\u003e"}],"summary":"A JSON path item method received a value that cannot satisfy its numeric or conversion contract. The fixed paths cover .number(), .decimal(), .integer(), .bigint(), .double(), .boolean(), .abs(), .floor(), .ceiling(), and the corresponding type checks in .string().","title":"22036 — non_numeric_sql_json_item","translation_source_rev":"20b97104fc31ba815da6460e7d8d44cd3f6bba454ba97768d84545320ee2a17a"}},"RequestedLocale":"en","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"}}]}
