{"Entry":{"collection":"sqlstate","key":"22038","name":"22038","aliases":[],"metadata":{"aliases":[],"case_count":0,"class_code":"22","condition_name":"singleton_sql_json_item_required","condition_names":["singleton_sql_json_item_required"],"content_hash":"7dc61ff1f3e48437354247571e25ba55a85f8e873295e62f5c432656810bc18f","depth":"reference","editorial_review":"reviewed","evidence_tier":"source_path_confirmed","imported_at":"2026-09-30T17:45:27.10653+08:00","introduced":null,"known_present_by":"12.0","macros":["ERRCODE_SINGLETON_SQL_JSON_ITEM_REQUIRED"],"name_zh":"","present_in":["12","13","14","15","16","17","18","19"],"preview_in":["19"],"primary_macro":"ERRCODE_SINGLETON_SQL_JSON_ITEM_REQUIRED","removed":null,"runtime_verification":"not_run","severity_classes":["E"],"snippet_count":0,"source_rev":"english-manuals:5b84e8967d81c30953c66bad5e88ad21e0de7a2f7c203bfd6a8737eaa1a6c1ef","sqlstate":"22038","status":"active","summary_zh":"SQL/JSON 路径要求单一指定类型的结果。"}},"Definition":{"Collection":"sqlstate","Key":"22038","SourceDatabase":"center","Version":"18","SourceTable":"sqlstate","SourceKey":"22038","SourceRevision":"english-manuals:5b84e8967d81c30953c66bad5e88ad21e0de7a2f7c203bfd6a8737eaa1a6c1ef","Facts":{"aliases":[],"class_name":"Data Exception","condition_name":"singleton_sql_json_item_required","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"56dacf78e618ff0fd8c533e05db597b80d7ebbad7f8e512a888217d0640aa328","slug":"18"},"lang":"en","sqlstate":"22038"},"ManualEvidence":{"doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"56dacf78e618ff0fd8c533e05db597b80d7ebbad7f8e512a888217d0640aa328","slug":"18"}},"MeasuredEvidence":{}},"Text":{"Collection":"sqlstate","Key":"22038","SourceDatabase":"center","Version":"","Locale":"en","Title":"22038 — singleton_sql_json_item_required","Summary":"A SQL/JSON path operation expected one result of a required type, but received another cardinality or type. The fixed paths cover a singleton boolean result and the two numeric operands of binary jsonpath arithmetic; the SQL function and the @@ operator have different default silent behavior.","BodyHTML":"\u003ch1\u003e22038\u003c/h1\u003e\n\u003ch2\u003eAt a glance {#at-a-glance}\u003c/h2\u003e\n\u003cp\u003eA SQL/JSON path operation expected one result of a required type, but received another cardinality or type. The fixed paths cover a singleton boolean result and the two numeric operands of binary jsonpath arithmetic; the SQL function and the \u003ccode\u003e@@\u003c/code\u003e operator have different default silent behavior.\u003c/p\u003e\n\u003ch2\u003eMessages {#messages}\u003c/h2\u003e\n\u003cp\u003eRepresentative primary texts are:\u003c/p\u003e\n\u003cp\u003e| Guard | Primary |\n| --- | --- |\n| Non-singleton or non-boolean \u003ccode\u003ejsonb_path_match\u003c/code\u003e result in throwing mode | \u003ccode\u003esingle boolean result is expected\u003c/code\u003e |\n| Left binary arithmetic operand is not one numeric item | \u003ccode\u003eleft operand of jsonpath operator %s is not a single numeric value\u003c/code\u003e |\n| Right binary arithmetic operand is not one numeric item | \u003ccode\u003eright operand of jsonpath operator %s is not a single numeric value\u003c/code\u003e |\u003c/p\u003e\n\u003ch2\u003eMeaning {#meaning}\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003ejsonb_path_match_internal\u003c/code\u003e treats exactly two C arguments as the \u003ccode\u003e@@\u003c/code\u003e operator path: \u003ccode\u003ejsonb_path_match_opr\u003c/code\u003e leaves \u003ccode\u003esilent=true\u003c/code\u003e, so a non-singleton or non-boolean result becomes NULL. The SQL function is declared as \u003ccode\u003ejsonb_path_match(target, path, vars DEFAULT \u0026#39;{}\u0026#39;, silent DEFAULT false)\u003c/code\u003e; even a call written with two SQL arguments is expanded with both defaults, so it is non-silent and can raise 22038 unless the caller supplies \u003ccode\u003esilent=true\u003c/code\u003e. A four-argument call follows its supplied \u003ccode\u003esilent\u003c/code\u003e value. A single JSON null returns SQL NULL. Binary arithmetic separately evaluates each operand sequence, and both sides must contain exactly one numeric item. The shared evaluator may unwrap arrays in lax mode before this singleton check.\u003c/p\u003e\n\u003ch2\u003eDiagnosis {#diagnosis}\u003c/h2\u003e\n\u003cp\u003eIdentify whether the syntax is the \u003ccode\u003e@@\u003c/code\u003e operator or the \u003ccode\u003ejsonb_path_match\u003c/code\u003e function, and inspect the actual argument/default expansion before interpreting a NULL result. A path that yields several values, a non-boolean match result, or a left/right item that is not numeric belongs to this singleton/type boundary. Distinguish it from 22034 JSON_QUERY/JSON_VALUE cardinality, 2203F scalar-type enforcement, and 22036 numeric item-method conversion.\u003c/p\u003e\n\u003ch2\u003eResponse {#response}\u003c/h2\u003e\n\u003cp\u003eNarrow the path or select one item explicitly. For binary arithmetic, make both operands resolve to one numeric item. Choose \u003ccode\u003e@@\u003c/code\u003e when its suppressing behavior is intended, or call \u003ccode\u003ejsonb_path_match(..., false)\u003c/code\u003e when a mismatch should remain an ERROR; use \u003ccode\u003esilent=true\u003c/code\u003e only when NULL is the intended result. 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 match and binary-arithmetic 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/22034/\" rel=\"nofollow\"\u003e\u003ccode\u003e22034\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sqlstate/2203F/\" rel=\"nofollow\"\u003e\u003ccode\u003e2203F\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sqlstate/22036/\" rel=\"nofollow\"\u003e\u003ccode\u003e22036\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSources {#sources}\u003c/h2\u003e\n\u003cp\u003eThe match wrapper and singleton guard are \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L453\" rel=\"nofollow\"\u003e\u003ccode\u003ejsonpath_exec.c#L453-491\u003c/code\u003e\u003c/a\u003e; binary arithmetic singleton checks are \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L2087\" rel=\"nofollow\"\u003e\u003ccode\u003e#L2087-2155\u003c/code\u003e\u003c/a\u003e; the shared 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 SQL defaults are fixed in \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/catalog/system_functions.sql#L539\" rel=\"nofollow\"\u003e\u003ccode\u003esystem_functions.sql#L539-544\u003c/code\u003e\u003c/a\u003e, the direct function and \u003ccode\u003e@@\u003c/code\u003e implementation signatures in \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/include/catalog/pg_proc.dat#L10520\" rel=\"nofollow\"\u003e\u003ccode\u003epg_proc.dat#L10520-10522\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/include/catalog/pg_proc.dat#L10547\" rel=\"nofollow\"\u003e\u003ccode\u003e#L10547-10549\u003c/code\u003e\u003c/a\u003e, and the operator binding in \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/include/catalog/pg_operator.dat#L3262\" rel=\"nofollow\"\u003e\u003ccode\u003epg_operator.dat#L3262-3264\u003c/code\u003e\u003c/a\u003e. The structured \u003ca href=\"#sources\" rel=\"nofollow\"\u003eevidence record\u003c/a\u003e keeps both paths and exact primaries; no natural runtime was run.\u003c/p\u003e\n","SourceRevision":"english-manuals:5b84e8967d81c30953c66bad5e88ad21e0de7a2f7c203bfd6a8737eaa1a6c1ef","ContentHash":"78980f84cb26d63d7e0d8c8da4dfb4a6da5618ea1e9f5116dd8281ef2f8392fc","Payload":{"body_md":"# 22038\n\n## At a glance {#at-a-glance}\nA SQL/JSON path operation expected one result of a required type, but received another cardinality or type. The fixed paths cover a singleton boolean result and the two numeric operands of binary jsonpath arithmetic; the SQL function and the `@@` operator have different default silent behavior.\n\n\n## Messages {#messages}\nRepresentative primary texts are:\n\n| Guard | Primary |\n| --- | --- |\n| Non-singleton or non-boolean `jsonb_path_match` result in throwing mode | `single boolean result is expected` |\n| Left binary arithmetic operand is not one numeric item | `left operand of jsonpath operator %s is not a single numeric value` |\n| Right binary arithmetic operand is not one numeric item | `right operand of jsonpath operator %s is not a single numeric value` |\n\n## Meaning {#meaning}\n`jsonb_path_match_internal` treats exactly two C arguments as the `@@` operator path: `jsonb_path_match_opr` leaves `silent=true`, so a non-singleton or non-boolean result becomes NULL. The SQL function is declared as `jsonb_path_match(target, path, vars DEFAULT '{}', silent DEFAULT false)`; even a call written with two SQL arguments is expanded with both defaults, so it is non-silent and can raise 22038 unless the caller supplies `silent=true`. A four-argument call follows its supplied `silent` value. A single JSON null returns SQL NULL. Binary arithmetic separately evaluates each operand sequence, and both sides must contain exactly one numeric item. The shared evaluator may unwrap arrays in lax mode before this singleton check.\n\n## Diagnosis {#diagnosis}\nIdentify whether the syntax is the `@@` operator or the `jsonb_path_match` function, and inspect the actual argument/default expansion before interpreting a NULL result. A path that yields several values, a non-boolean match result, or a left/right item that is not numeric belongs to this singleton/type boundary. Distinguish it from 22034 JSON_QUERY/JSON_VALUE cardinality, 2203F scalar-type enforcement, and 22036 numeric item-method conversion.\n\n## Response {#response}\nNarrow the path or select one item explicitly. For binary arithmetic, make both operands resolve to one numeric item. Choose `@@` when its suppressing behavior is intended, or call `jsonb_path_match(..., false)` when a mismatch should remain an ERROR; use `silent=true` only when NULL is the intended result. 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 match and binary-arithmetic paths are PostgreSQL 18.6. No natural runtime observation is claimed for this page.\n\n## Related {#related}\n[`22034`](/wiki/sqlstate/22034/), [`2203F`](/wiki/sqlstate/2203F/), [`22036`](/wiki/sqlstate/22036/)\n\n## Sources {#sources}\nThe match wrapper and singleton guard are [`jsonpath_exec.c#L453-491`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L453); binary arithmetic singleton checks are [`#L2087-2155`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L2087); the shared 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 SQL defaults are fixed in [`system_functions.sql#L539-544`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/catalog/system_functions.sql#L539), the direct function and `@@` implementation signatures in [`pg_proc.dat#L10520-10522`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/include/catalog/pg_proc.dat#L10520) and [`#L10547-10549`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/include/catalog/pg_proc.dat#L10547), and the operator binding in [`pg_operator.dat#L3262-3264`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/include/catalog/pg_operator.dat#L3262). The structured [evidence record](#sources) keeps both paths and exact primaries; no natural runtime was run.\n\n","description":"Source-backed reference for PostgreSQL SQLSTATE 22038.","is_stale":false,"name":"","sections":[{"anchor":"","heading":"","html":"\u0026lt;h1\u0026gt;22038\u0026lt;/h1\u0026gt;"},{"anchor":"at-a-glance","heading":"At a glance","html":"\u003cp\u003eA SQL/JSON path operation expected one result of a required type, but received another cardinality or type. The fixed paths cover a singleton boolean result and the two numeric operands of binary jsonpath arithmetic; the SQL function and the \u003ccode\u003e@@\u003c/code\u003e operator have different default silent behavior.\u003c/p\u003e"},{"anchor":"messages","heading":"Messages","html":"\u003cp\u003eRepresentative primary texts 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\u003eNon-singleton or non-boolean \u003ccode\u003ejsonb_path_match\u003c/code\u003e result in throwing mode\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003esingle boolean result is expected\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eLeft binary arithmetic operand is not one numeric item\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eleft operand of jsonpath operator %s is not a single numeric value\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eRight binary arithmetic operand is not one numeric item\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eright operand of jsonpath operator %s is not a single numeric 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\u003e\u003ccode\u003ejsonb_path_match_internal\u003c/code\u003e treats exactly two C arguments as the \u003ccode\u003e@@\u003c/code\u003e operator path: \u003ccode\u003ejsonb_path_match_opr\u003c/code\u003e leaves \u003ccode\u003esilent=true\u003c/code\u003e, so a non-singleton or non-boolean result becomes NULL. The SQL function is declared as \u003ccode\u003ejsonb_path_match(target, path, vars DEFAULT '{}', silent DEFAULT false)\u003c/code\u003e; even a call written with two SQL arguments is expanded with both defaults, so it is non-silent and can raise 22038 unless the caller supplies \u003ccode\u003esilent=true\u003c/code\u003e. A four-argument call follows its supplied \u003ccode\u003esilent\u003c/code\u003e value. A single JSON null returns SQL NULL. Binary arithmetic separately evaluates each operand sequence, and both sides must contain exactly one numeric item. The shared evaluator may unwrap arrays in lax mode before this singleton check.\u003c/p\u003e"},{"anchor":"diagnosis","heading":"Diagnosis","html":"\u003cp\u003eIdentify whether the syntax is the \u003ccode\u003e@@\u003c/code\u003e operator or the \u003ccode\u003ejsonb_path_match\u003c/code\u003e function, and inspect the actual argument/default expansion before interpreting a NULL result. A path that yields several values, a non-boolean match result, or a left/right item that is not numeric belongs to this singleton/type boundary. Distinguish it from 22034 JSON_QUERY/JSON_VALUE cardinality, 2203F scalar-type enforcement, and 22036 numeric item-method conversion.\u003c/p\u003e"},{"anchor":"response","heading":"Response","html":"\u003cp\u003eNarrow the path or select one item explicitly. For binary arithmetic, make both operands resolve to one numeric item. Choose \u003ccode\u003e@@\u003c/code\u003e when its suppressing behavior is intended, or call \u003ccode\u003ejsonb_path_match(..., false)\u003c/code\u003e when a mismatch should remain an ERROR; use \u003ccode\u003esilent=true\u003c/code\u003e only when NULL is the intended result. 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 match and binary-arithmetic 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/22034/\"\u003e\u003ccode\u003e22034\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sqlstate/2203F/\"\u003e\u003ccode\u003e2203F\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sqlstate/22036/\"\u003e\u003ccode\u003e22036\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e"},{"anchor":"sources","heading":"Sources","html":"\u003cp\u003eThe match wrapper and singleton guard are \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L453\"\u003e\u003ccode\u003ejsonpath_exec.c#L453-491\u003c/code\u003e\u003c/a\u003e; binary arithmetic singleton checks are \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L2087\"\u003e\u003ccode\u003e#L2087-2155\u003c/code\u003e\u003c/a\u003e; the shared 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 SQL defaults are fixed in \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/catalog/system_functions.sql#L539\"\u003e\u003ccode\u003esystem_functions.sql#L539-544\u003c/code\u003e\u003c/a\u003e, the direct function and \u003ccode\u003e@@\u003c/code\u003e implementation signatures in \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/include/catalog/pg_proc.dat#L10520\"\u003e\u003ccode\u003epg_proc.dat#L10520-10522\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/include/catalog/pg_proc.dat#L10547\"\u003e\u003ccode\u003e#L10547-10549\u003c/code\u003e\u003c/a\u003e, and the operator binding in \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/include/catalog/pg_operator.dat#L3262\"\u003e\u003ccode\u003epg_operator.dat#L3262-3264\u003c/code\u003e\u003c/a\u003e. The structured \u003ca href=\"#sources\"\u003eevidence record\u003c/a\u003e keeps both paths and exact primaries; no natural runtime was run.\u003c/p\u003e"}],"summary":"A SQL/JSON path operation expected one result of a required type, but received another cardinality or type. The fixed paths cover a singleton boolean result and the two numeric operands of binary jsonpath arithmetic; the SQL function and the @@ operator have different default silent behavior.","title":"22038 — singleton_sql_json_item_required","translation_source_rev":"62d52e69f4d4fb2be0acccd9c3a5fb3818f7a117ac7d57dede4deb2a8b118000"}},"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":"singleton_sql_json_item_required","condition_names":["singleton_sql_json_item_required"],"definition_changes":[],"english_manuals":{"12":{"aliases":[],"class_name":"Data Exception","condition_name":"singleton_sql_json_item_required","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"1444bd6a138537cd75be88a220ee9472ac528f0cfc58758e49636d85455efe98","slug":"12"},"lang":"en","sqlstate":"22038"},"13":{"aliases":[],"class_name":"Data Exception","condition_name":"singleton_sql_json_item_required","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"4a3ef8af218e5736dfde8660ba609e84233b6b3bac7e0210ff8724cf1b27b2db","slug":"13"},"lang":"en","sqlstate":"22038"},"14":{"aliases":[],"class_name":"Data Exception","condition_name":"singleton_sql_json_item_required","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"1c12e83304e0f4ff64c9d98ca5e3007df6756932ed19867a4fa0e0650f6c5751","slug":"14"},"lang":"en","sqlstate":"22038"},"15":{"aliases":[],"class_name":"Data Exception","condition_name":"singleton_sql_json_item_required","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"2161f58f6e87f6535b3b1f3d4661427bb6765f4f6b074fcc16fac97594b50599","slug":"15"},"lang":"en","sqlstate":"22038"},"16":{"aliases":[],"class_name":"Data Exception","condition_name":"singleton_sql_json_item_required","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"928e705933d7c3d018ae3fba9d800b34e6325746d157339dce878473c519d100","slug":"16"},"lang":"en","sqlstate":"22038"},"17":{"aliases":[],"class_name":"Data Exception","condition_name":"singleton_sql_json_item_required","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"868135520af87351e3ea1ba42656111cbd2d157d98e1fef05ea158ac5729d8b1","slug":"17"},"lang":"en","sqlstate":"22038"},"18":{"aliases":[],"class_name":"Data Exception","condition_name":"singleton_sql_json_item_required","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"56dacf78e618ff0fd8c533e05db597b80d7ebbad7f8e512a888217d0640aa328","slug":"18"},"lang":"en","sqlstate":"22038"},"19":{"aliases":[],"class_name":"Data Exception","condition_name":"singleton_sql_json_item_required","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"63fb8d1aa9f494eeab9d0f8542a2b673f7746ee41ae2689d19403cb3cc425a5c","slug":"19"},"lang":"en","sqlstate":"22038"},"20":{"aliases":[],"class_name":"Data Exception","condition_name":"singleton_sql_json_item_required","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"0d3f602127cd137cf343b32d5fa78f175eeb6cdcb6353b1f6f998ede6cb7b911","slug":"devel"},"lang":"en","sqlstate":"22038"}},"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_SINGLETON_SQL_JSON_ITEM_REQUIRED"],"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_SINGLETON_SQL_JSON_ITEM_REQUIRED","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":"22038","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":"22038 is singleton_sql_json_item_required 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 jsonb_path_match_internal together with system function defaults, pg_proc signatures, the @@ operator binding, and the shared jsonpath evaluator.","position":1,"runtime":[],"sources":["src.jsonpath.match-singleton","src.jsonpath.binary-arithmetic-singleton","src.jsonpath.context-flags","src.jsonpath.execute-context","src.catalog.system-functions","src.catalog.pg-proc-match","src.catalog.pg-proc-match-opr","src.catalog.pg-operator-match"],"statement":"The fixed jsonb_path_match_internal path treats exactly two C arguments as the @@ operator call: jsonb_path_match_opr leaves silent=true, so a non-singleton or non-boolean result is suppressed to NULL. The SQL function jsonb_path_match has vars DEFAULT '{}' and silent DEFAULT false; even a call written with two SQL arguments is expanded with both defaults, so it is non-silent unless silent=true is explicitly supplied. Binary jsonpath arithmetic independently requires each operand sequence to contain exactly one numeric item; lax unwrapping is performed by the shared evaluator."}},{"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 22038 from 12.0 without proving exact implementation introduction."}},{"Kind":"messages","Ordinal":0,"ID":"message.boolean-singleton","ServerVersion":null,"Status":null,"Payload":{"limits":"","message_id":"message.boolean-singleton","path":"","position":0,"raw":{"id":"message.boolean-singleton","primary_template":"single boolean result is expected","severity_source":"ERROR","sources":["src.jsonpath.match-singleton"],"sqlstate":"22038"},"severity":"ERROR","sources":["src.jsonpath.match-singleton"],"templates":[{"kind":"primary","literal":"single boolean result is expected","position":0,"role":"","template":"single boolean result is expected"}]}},{"Kind":"messages","Ordinal":1,"ID":"message.left-numeric-singleton","ServerVersion":null,"Status":null,"Payload":{"limits":"","message_id":"message.left-numeric-singleton","path":"","position":1,"raw":{"id":"message.left-numeric-singleton","primary_template":"left operand of jsonpath operator %s is not a single numeric value","severity_source":"ERROR","sources":["src.jsonpath.binary-arithmetic-singleton"],"sqlstate":"22038"},"severity":"ERROR","sources":["src.jsonpath.binary-arithmetic-singleton"],"templates":[{"kind":"primary","literal":"left operand of jsonpath operator is not a single numeric value","position":0,"role":"","template":"left operand of jsonpath operator %s is not a single numeric value"}]}},{"Kind":"messages","Ordinal":2,"ID":"message.right-numeric-singleton","ServerVersion":null,"Status":null,"Payload":{"limits":"","message_id":"message.right-numeric-singleton","path":"","position":2,"raw":{"id":"message.right-numeric-singleton","primary_template":"right operand of jsonpath operator %s is not a single numeric value","severity_source":"ERROR","sources":["src.jsonpath.binary-arithmetic-singleton"],"sqlstate":"22038"},"severity":"ERROR","sources":["src.jsonpath.binary-arithmetic-singleton"],"templates":[{"kind":"primary","literal":"right operand of jsonpath operator is not a single numeric value","position":0,"role":"","template":"right operand of jsonpath operator %s is not a single numeric 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#L223"}},{"Kind":"sources","Ordinal":1,"ID":"src.jsonpath.match-singleton","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.match-singleton","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L453"}},{"Kind":"sources","Ordinal":2,"ID":"src.jsonpath.binary-arithmetic-singleton","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.binary-arithmetic-singleton","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/jsonpath_exec.c#L2087"}},{"Kind":"sources","Ordinal":3,"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":3,"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":4,"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":4,"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"}},{"Kind":"sources","Ordinal":5,"ID":"src.catalog.system-functions","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"upstream_source","location":"","path":"src/backend/catalog/system_functions.sql","position":5,"sha256":"e5b61e70663b9dd55e2e6397ecb1ff3084f4f9afbf12907529b6e565a75f254f","source_id":"src.catalog.system-functions","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/catalog/system_functions.sql#L539"}},{"Kind":"sources","Ordinal":6,"ID":"src.catalog.pg-proc-match","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"upstream_source","location":"","path":"src/include/catalog/pg_proc.dat","position":6,"sha256":"1f934ce80d460159dda137714374a35f9896315ea2476709cbb4da13b38ef95a","source_id":"src.catalog.pg-proc-match","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/include/catalog/pg_proc.dat#L10520"}},{"Kind":"sources","Ordinal":7,"ID":"src.catalog.pg-proc-match-opr","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"upstream_source","location":"","path":"src/include/catalog/pg_proc.dat","position":7,"sha256":"1f934ce80d460159dda137714374a35f9896315ea2476709cbb4da13b38ef95a","source_id":"src.catalog.pg-proc-match-opr","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/include/catalog/pg_proc.dat#L10547"}},{"Kind":"sources","Ordinal":8,"ID":"src.catalog.pg-operator-match","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"upstream_source","location":"","path":"src/include/catalog/pg_operator.dat","position":8,"sha256":"5d35b9b2ef5f9797cc815263927ef8a12367fedace53e828b4e8b320e2a7f703","source_id":"src.catalog.pg-operator-match","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/include/catalog/pg_operator.dat#L3262"}}]}
