{"Entry":{"collection":"sqlstate","key":"22013","name":"22013","aliases":[],"metadata":{"aliases":[],"case_count":0,"class_code":"22","condition_name":"invalid_preceding_or_following_size","condition_names":["invalid_preceding_or_following_size"],"content_hash":"493f64cddf30a01098ac931aaea2c4efbc4d904823a1facf610edb1664c861ad","depth":"reference","editorial_review":"reviewed","evidence_tier":"source_path_confirmed","imported_at":"2026-09-30T17:45:26.956164+08:00","introduced":null,"known_present_by":"11.0","macros":["ERRCODE_INVALID_PRECEDING_OR_FOLLOWING_SIZE"],"name_zh":"","present_in":["11","12","13","14","15","16","17","18","19"],"preview_in":["19"],"primary_macro":"ERRCODE_INVALID_PRECEDING_OR_FOLLOWING_SIZE","removed":null,"runtime_verification":"not_run","severity_classes":["E"],"snippet_count":0,"source_rev":"english-manuals:31787642ffd2219efb1ef4b28cca420c766afabbfb87f486cc29d6b66092efe4","sqlstate":"22013","status":"active","summary_zh":"窗口帧的 PRECEDING/FOLLOWING 偏移为负。"}},"Definition":{"Collection":"sqlstate","Key":"22013","SourceDatabase":"center","Version":"18","SourceTable":"sqlstate","SourceKey":"22013","SourceRevision":"english-manuals:31787642ffd2219efb1ef4b28cca420c766afabbfb87f486cc29d6b66092efe4","Facts":{"aliases":[],"class_name":"Data Exception","condition_name":"invalid_preceding_or_following_size","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"56dacf78e618ff0fd8c533e05db597b80d7ebbad7f8e512a888217d0640aa328","slug":"18"},"lang":"en","sqlstate":"22013"},"ManualEvidence":{"doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"56dacf78e618ff0fd8c533e05db597b80d7ebbad7f8e512a888217d0640aa328","slug":"18"}},"MeasuredEvidence":{}},"Text":{"Collection":"sqlstate","Key":"22013","SourceDatabase":"center","Version":"","Locale":"en","Title":"22013 — invalid_preceding_or_following_size","Summary":"A window-frame offset is negative in a fixed ROWS or GROUPS executor path. PostgreSQL 18.6 reports either frame starting offset must not be negative or frame ending offset must not be negative with SQLSTATE 22013.","BodyHTML":"\u003ch2\u003eAt a glance {#at-a-glance}\u003c/h2\u003e\n\u003cp\u003eA window-frame offset is negative in a fixed \u003ccode\u003eROWS\u003c/code\u003e or \u003ccode\u003eGROUPS\u003c/code\u003e executor path. PostgreSQL 18.6 reports either \u003ccode\u003eframe starting offset must not be negative\u003c/code\u003e or \u003ccode\u003eframe ending offset must not be negative\u003c/code\u003e with SQLSTATE \u003ccode\u003e22013\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003eMeaning {#meaning}\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003ecalculate_frame_offsets\u003c/code\u003e evaluates the start and end expressions once for a window scan. After a non-NULL value is copied, the \u003ccode\u003eROWS\u003c/code\u003e and \u003ccode\u003eGROUPS\u003c/code\u003e branches interpret it as an \u003ccode\u003eint8\u003c/code\u003e offset and reject a negative value with \u003ccode\u003e22013\u003c/code\u003e. The NULL guards use \u003ccode\u003e22004\u003c/code\u003e and different primary messages. \u003ccode\u003eRANGE\u003c/code\u003e frames use type-specific \u003ccode\u003ein_range\u003c/code\u003e helpers: the integer helper rejects a negative offset, numeric rejects NaN, negative infinity, or a negative value, the float helper rejects NaN or a negative value, and the timestamp-with-interval helper rejects a negative interval. These helpers use the same \u003ccode\u003e22013\u003c/code\u003e primary, so the frame mode and resolved offset type are part of the diagnosis.\u003c/p\u003e\n\u003ch2\u003eDiagnosis {#diagnosis}\u003c/h2\u003e\n\u003cp\u003eRead the frame mode, endpoint named by the primary, and the evaluated offset expression. A negative start or end in \u003ccode\u003eROWS\u003c/code\u003e/\u003ccode\u003eGROUPS\u003c/code\u003e is this condition. In \u003ccode\u003eRANGE\u003c/code\u003e, inspect the resolved offset type: a negative integer or interval, or the rejected NaN/negative numeric and float values, reaches the same code. A NULL start or end is \u003ccode\u003e22004\u003c/code\u003e, not \u003ccode\u003e22013\u003c/code\u003e. This is a frame-boundary validation failure, not a generic arithmetic overflow.\u003c/p\u003e\n\u003ch2\u003eResponse {#response}\u003c/h2\u003e\n\u003cp\u003eFor a \u003ccode\u003eROWS\u003c/code\u003e or \u003ccode\u003eGROUPS\u003c/code\u003e endpoint, provide a non-negative \u003ccode\u003eint8\u003c/code\u003e-compatible offset; for \u003ccode\u003eRANGE\u003c/code\u003e, provide a value accepted by the resolved type-specific \u003ccode\u003ein_range\u003c/code\u003e helper. Provide a non-NULL value when NULL was the actual issue. Because the cited guard raises \u003ccode\u003eERROR\u003c/code\u003e, roll back or roll back to an existing savepoint in an explicit transaction before retrying; autocommit can retry only the corrected statement.\u003c/p\u003e\n\u003ch2\u003eMessages {#messages}\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePrimary, \u003ccode\u003eERROR\u003c/code\u003e: \u003ccode\u003eframe starting offset must not be negative\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003ePrimary, \u003ccode\u003eERROR\u003c/code\u003e: \u003ccode\u003eframe ending offset must not be negative\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003ePrimary, \u003ccode\u003eERROR\u003c/code\u003e: \u003ccode\u003einvalid preceding or following size in window function\u003c/code\u003e for the cited type-specific \u003ccode\u003eRANGE\u003c/code\u003e offset guards.\u003c/li\u003e\n\u003cli\u003eThe cited guards add no DETAIL or HINT. NULL endpoints use SQLSTATE \u003ccode\u003e22004\u003c/code\u003e with \u003ccode\u003eframe starting offset must not be null\u003c/code\u003e or \u003ccode\u003eframe ending offset must not be null\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersions {#versions}\u003c/h2\u003e\n\u003cp\u003eThe locked catalogue records this condition from 11.0; fixed source coverage is PostgreSQL 18.6. The cited executor guard covers \u003ccode\u003eROWS\u003c/code\u003e/\u003ccode\u003eGROUPS\u003c/code\u003e; the cited type-specific \u003ccode\u003ein_range\u003c/code\u003e helpers cover representative \u003ccode\u003eRANGE\u003c/code\u003e offsets.\u003c/p\u003e\n\u003ch2\u003eRelated {#related}\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/wiki/sqlstate/22004/\" rel=\"nofollow\"\u003e\u003ccode\u003e22004\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sqlstate/22012/\" rel=\"nofollow\"\u003e\u003ccode\u003e22012\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sqlstate/22003/\" rel=\"nofollow\"\u003e\u003ccode\u003e22003\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSources {#sources}\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/executor/nodeWindowAgg.c#L2144-L2210\" rel=\"nofollow\"\u003e\u003ccode\u003esrc/backend/executor/nodeWindowAgg.c#L2144-L2210\u003c/code\u003e\u003c/a\u003e contains the start/end expression evaluation, NULL \u003ccode\u003e22004\u003c/code\u003e guards, and negative \u003ccode\u003eROWS\u003c/code\u003e/\u003ccode\u003eGROUPS\u003c/code\u003e offset \u003ccode\u003e22013\u003c/code\u003e guards.\u003c/li\u003e\n\u003cli\u003eRepresentative \u003ccode\u003eRANGE\u003c/code\u003e helpers use the same primary: \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/int8.c#L400-L420\" rel=\"nofollow\"\u003e\u003ccode\u003eint8.c#L400-L420\u003c/code\u003e\u003c/a\u003e rejects negative integer offsets; \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/numeric.c#L2690-L2715\" rel=\"nofollow\"\u003e\u003ccode\u003enumeric.c#L2690-L2715\u003c/code\u003e\u003c/a\u003e rejects NaN, negative infinity, and negative numeric offsets; \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/float.c#L1105-L1125\" rel=\"nofollow\"\u003e\u003ccode\u003efloat.c#L1105-L1125\u003c/code\u003e\u003c/a\u003e rejects NaN or negative float offsets; and \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/timestamp.c#L3860-L3885\" rel=\"nofollow\"\u003e\u003ccode\u003etimestamp.c#L3860-L3885\u003c/code\u003e\u003c/a\u003e rejects negative interval offsets.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRuntime verification is \u003ccode\u003enot_run\u003c/code\u003e; this source evidence is not a runtime observation. The structured \u003ca href=\"#sources\" rel=\"nofollow\"\u003eevidence record\u003c/a\u003e retains the two endpoint variants, the generic \u003ccode\u003eRANGE\u003c/code\u003e primary, and their scope.\u003c/p\u003e\n","SourceRevision":"english-manuals:31787642ffd2219efb1ef4b28cca420c766afabbfb87f486cc29d6b66092efe4","ContentHash":"10f5498bd7ec7ef5673950b3bc275877f24ab7d02b7de280442339db3a96d638","Payload":{"body_md":"## At a glance {#at-a-glance}\nA window-frame offset is negative in a fixed `ROWS` or `GROUPS` executor path. PostgreSQL 18.6 reports either `frame starting offset must not be negative` or `frame ending offset must not be negative` with SQLSTATE `22013`.\n\n\n## Meaning {#meaning}\n`calculate_frame_offsets` evaluates the start and end expressions once for a window scan. After a non-NULL value is copied, the `ROWS` and `GROUPS` branches interpret it as an `int8` offset and reject a negative value with `22013`. The NULL guards use `22004` and different primary messages. `RANGE` frames use type-specific `in_range` helpers: the integer helper rejects a negative offset, numeric rejects NaN, negative infinity, or a negative value, the float helper rejects NaN or a negative value, and the timestamp-with-interval helper rejects a negative interval. These helpers use the same `22013` primary, so the frame mode and resolved offset type are part of the diagnosis.\n\n## Diagnosis {#diagnosis}\nRead the frame mode, endpoint named by the primary, and the evaluated offset expression. A negative start or end in `ROWS`/`GROUPS` is this condition. In `RANGE`, inspect the resolved offset type: a negative integer or interval, or the rejected NaN/negative numeric and float values, reaches the same code. A NULL start or end is `22004`, not `22013`. This is a frame-boundary validation failure, not a generic arithmetic overflow.\n\n## Response {#response}\nFor a `ROWS` or `GROUPS` endpoint, provide a non-negative `int8`-compatible offset; for `RANGE`, provide a value accepted by the resolved type-specific `in_range` helper. Provide a non-NULL value when NULL was the actual issue. Because the cited guard raises `ERROR`, roll back or roll back to an existing savepoint in an explicit transaction before retrying; autocommit can retry only the corrected statement.\n\n## Messages {#messages}\n- Primary, `ERROR`: `frame starting offset must not be negative`.\n- Primary, `ERROR`: `frame ending offset must not be negative`.\n- Primary, `ERROR`: `invalid preceding or following size in window function` for the cited type-specific `RANGE` offset guards.\n- The cited guards add no DETAIL or HINT. NULL endpoints use SQLSTATE `22004` with `frame starting offset must not be null` or `frame ending offset must not be null`.\n\n## Versions {#versions}\nThe locked catalogue records this condition from 11.0; fixed source coverage is PostgreSQL 18.6. The cited executor guard covers `ROWS`/`GROUPS`; the cited type-specific `in_range` helpers cover representative `RANGE` offsets.\n\n## Related {#related}\n[`22004`](/wiki/sqlstate/22004/), [`22012`](/wiki/sqlstate/22012/), [`22003`](/wiki/sqlstate/22003/)\n\n## Sources {#sources}\n- [`src/backend/executor/nodeWindowAgg.c#L2144-L2210`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/executor/nodeWindowAgg.c#L2144-L2210) contains the start/end expression evaluation, NULL `22004` guards, and negative `ROWS`/`GROUPS` offset `22013` guards.\n- Representative `RANGE` helpers use the same primary: [`int8.c#L400-L420`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/int8.c#L400-L420) rejects negative integer offsets; [`numeric.c#L2690-L2715`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/numeric.c#L2690-L2715) rejects NaN, negative infinity, and negative numeric offsets; [`float.c#L1105-L1125`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/float.c#L1105-L1125) rejects NaN or negative float offsets; and [`timestamp.c#L3860-L3885`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/timestamp.c#L3860-L3885) rejects negative interval offsets.\n\nRuntime verification is `not_run`; this source evidence is not a runtime observation. The structured [evidence record](#sources) retains the two endpoint variants, the generic `RANGE` primary, and their scope.\n","description":"Source-backed reference for PostgreSQL SQLSTATE 22013.","is_stale":false,"name":"","sections":[{"anchor":"at-a-glance","heading":"At a glance","html":"\u003cp\u003eA window-frame offset is negative in a fixed \u003ccode\u003eROWS\u003c/code\u003e or \u003ccode\u003eGROUPS\u003c/code\u003e executor path. PostgreSQL 18.6 reports either \u003ccode\u003eframe starting offset must not be negative\u003c/code\u003e or \u003ccode\u003eframe ending offset must not be negative\u003c/code\u003e with SQLSTATE \u003ccode\u003e22013\u003c/code\u003e.\u003c/p\u003e"},{"anchor":"meaning","heading":"Meaning","html":"\u003cp\u003e\u003ccode\u003ecalculate_frame_offsets\u003c/code\u003e evaluates the start and end expressions once for a window scan. After a non-NULL value is copied, the \u003ccode\u003eROWS\u003c/code\u003e and \u003ccode\u003eGROUPS\u003c/code\u003e branches interpret it as an \u003ccode\u003eint8\u003c/code\u003e offset and reject a negative value with \u003ccode\u003e22013\u003c/code\u003e. The NULL guards use \u003ccode\u003e22004\u003c/code\u003e and different primary messages. \u003ccode\u003eRANGE\u003c/code\u003e frames use type-specific \u003ccode\u003ein_range\u003c/code\u003e helpers: the integer helper rejects a negative offset, numeric rejects NaN, negative infinity, or a negative value, the float helper rejects NaN or a negative value, and the timestamp-with-interval helper rejects a negative interval. These helpers use the same \u003ccode\u003e22013\u003c/code\u003e primary, so the frame mode and resolved offset type are part of the diagnosis.\u003c/p\u003e"},{"anchor":"diagnosis","heading":"Diagnosis","html":"\u003cp\u003eRead the frame mode, endpoint named by the primary, and the evaluated offset expression. A negative start or end in \u003ccode\u003eROWS\u003c/code\u003e/\u003ccode\u003eGROUPS\u003c/code\u003e is this condition. In \u003ccode\u003eRANGE\u003c/code\u003e, inspect the resolved offset type: a negative integer or interval, or the rejected NaN/negative numeric and float values, reaches the same code. A NULL start or end is \u003ccode\u003e22004\u003c/code\u003e, not \u003ccode\u003e22013\u003c/code\u003e. This is a frame-boundary validation failure, not a generic arithmetic overflow.\u003c/p\u003e"},{"anchor":"response","heading":"Response","html":"\u003cp\u003eFor a \u003ccode\u003eROWS\u003c/code\u003e or \u003ccode\u003eGROUPS\u003c/code\u003e endpoint, provide a non-negative \u003ccode\u003eint8\u003c/code\u003e-compatible offset; for \u003ccode\u003eRANGE\u003c/code\u003e, provide a value accepted by the resolved type-specific \u003ccode\u003ein_range\u003c/code\u003e helper. Provide a non-NULL value when NULL was the actual issue. Because the cited guard raises \u003ccode\u003eERROR\u003c/code\u003e, roll back or roll back to an existing savepoint in an explicit transaction before retrying; autocommit can retry only the corrected statement.\u003c/p\u003e"},{"anchor":"messages","heading":"Messages","html":"\u003cul\u003e\n\u003cli\u003ePrimary, \u003ccode\u003eERROR\u003c/code\u003e: \u003ccode\u003eframe starting offset must not be negative\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003ePrimary, \u003ccode\u003eERROR\u003c/code\u003e: \u003ccode\u003eframe ending offset must not be negative\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003ePrimary, \u003ccode\u003eERROR\u003c/code\u003e: \u003ccode\u003einvalid preceding or following size in window function\u003c/code\u003e for the cited type-specific \u003ccode\u003eRANGE\u003c/code\u003e offset guards.\u003c/li\u003e\n\u003cli\u003eThe cited guards add no DETAIL or HINT. NULL endpoints use SQLSTATE \u003ccode\u003e22004\u003c/code\u003e with \u003ccode\u003eframe starting offset must not be null\u003c/code\u003e or \u003ccode\u003eframe ending offset must not be null\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e"},{"anchor":"versions","heading":"Versions","html":"\u003cp\u003eThe locked catalogue records this condition from 11.0; fixed source coverage is PostgreSQL 18.6. The cited executor guard covers \u003ccode\u003eROWS\u003c/code\u003e/\u003ccode\u003eGROUPS\u003c/code\u003e; the cited type-specific \u003ccode\u003ein_range\u003c/code\u003e helpers cover representative \u003ccode\u003eRANGE\u003c/code\u003e offsets.\u003c/p\u003e"},{"anchor":"related","heading":"Related","html":"\u003cp\u003e\u003ca href=\"/wiki/sqlstate/22004/\"\u003e\u003ccode\u003e22004\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sqlstate/22012/\"\u003e\u003ccode\u003e22012\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sqlstate/22003/\"\u003e\u003ccode\u003e22003\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e"},{"anchor":"sources","heading":"Sources","html":"\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/executor/nodeWindowAgg.c#L2144-L2210\"\u003e\u003ccode\u003esrc/backend/executor/nodeWindowAgg.c#L2144-L2210\u003c/code\u003e\u003c/a\u003e contains the start/end expression evaluation, NULL \u003ccode\u003e22004\u003c/code\u003e guards, and negative \u003ccode\u003eROWS\u003c/code\u003e/\u003ccode\u003eGROUPS\u003c/code\u003e offset \u003ccode\u003e22013\u003c/code\u003e guards.\u003c/li\u003e\n\u003cli\u003eRepresentative \u003ccode\u003eRANGE\u003c/code\u003e helpers use the same primary: \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/int8.c#L400-L420\"\u003e\u003ccode\u003eint8.c#L400-L420\u003c/code\u003e\u003c/a\u003e rejects negative integer offsets; \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/numeric.c#L2690-L2715\"\u003e\u003ccode\u003enumeric.c#L2690-L2715\u003c/code\u003e\u003c/a\u003e rejects NaN, negative infinity, and negative numeric offsets; \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/float.c#L1105-L1125\"\u003e\u003ccode\u003efloat.c#L1105-L1125\u003c/code\u003e\u003c/a\u003e rejects NaN or negative float offsets; and \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/timestamp.c#L3860-L3885\"\u003e\u003ccode\u003etimestamp.c#L3860-L3885\u003c/code\u003e\u003c/a\u003e rejects negative interval offsets.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRuntime verification is \u003ccode\u003enot_run\u003c/code\u003e; this source evidence is not a runtime observation. The structured \u003ca href=\"#sources\"\u003eevidence record\u003c/a\u003e retains the two endpoint variants, the generic \u003ccode\u003eRANGE\u003c/code\u003e primary, and their scope.\u003c/p\u003e"}],"summary":"A window-frame offset is negative in a fixed ROWS or GROUPS executor path. PostgreSQL 18.6 reports either frame starting offset must not be negative or frame ending offset must not be negative with SQLSTATE 22013.","title":"22013 — invalid_preceding_or_following_size","translation_source_rev":"8152914e6d5f76c98a0b4cf5fef0e611601c710f284f2f558f966108834a8225"}},"RequestedLocale":"en","Fallback":false,"Versions":["11","12","13","14","15","16","17","18","19","20"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":{"aliases":[],"catalogue_notes":{"earliest_observed":"11.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":"invalid_preceding_or_following_size","condition_names":["invalid_preceding_or_following_size"],"definition_changes":[],"english_manuals":{"11":{"aliases":[],"class_name":"Data Exception","condition_name":"invalid_preceding_or_following_size","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"3a024e38263ad77de228eed7930b842b42dc1d5cab9ca3727be8eed872ec9539","slug":"11"},"lang":"en","sqlstate":"22013"},"12":{"aliases":[],"class_name":"Data Exception","condition_name":"invalid_preceding_or_following_size","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"1444bd6a138537cd75be88a220ee9472ac528f0cfc58758e49636d85455efe98","slug":"12"},"lang":"en","sqlstate":"22013"},"13":{"aliases":[],"class_name":"Data Exception","condition_name":"invalid_preceding_or_following_size","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"4a3ef8af218e5736dfde8660ba609e84233b6b3bac7e0210ff8724cf1b27b2db","slug":"13"},"lang":"en","sqlstate":"22013"},"14":{"aliases":[],"class_name":"Data Exception","condition_name":"invalid_preceding_or_following_size","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"1c12e83304e0f4ff64c9d98ca5e3007df6756932ed19867a4fa0e0650f6c5751","slug":"14"},"lang":"en","sqlstate":"22013"},"15":{"aliases":[],"class_name":"Data Exception","condition_name":"invalid_preceding_or_following_size","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"2161f58f6e87f6535b3b1f3d4661427bb6765f4f6b074fcc16fac97594b50599","slug":"15"},"lang":"en","sqlstate":"22013"},"16":{"aliases":[],"class_name":"Data Exception","condition_name":"invalid_preceding_or_following_size","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"928e705933d7c3d018ae3fba9d800b34e6325746d157339dce878473c519d100","slug":"16"},"lang":"en","sqlstate":"22013"},"17":{"aliases":[],"class_name":"Data Exception","condition_name":"invalid_preceding_or_following_size","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"868135520af87351e3ea1ba42656111cbd2d157d98e1fef05ea158ac5729d8b1","slug":"17"},"lang":"en","sqlstate":"22013"},"18":{"aliases":[],"class_name":"Data Exception","condition_name":"invalid_preceding_or_following_size","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"56dacf78e618ff0fd8c533e05db597b80d7ebbad7f8e512a888217d0640aa328","slug":"18"},"lang":"en","sqlstate":"22013"},"19":{"aliases":[],"class_name":"Data Exception","condition_name":"invalid_preceding_or_following_size","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"63fb8d1aa9f494eeab9d0f8542a2b673f7746ee41ae2689d19403cb3cc425a5c","slug":"19"},"lang":"en","sqlstate":"22013"},"20":{"aliases":[],"class_name":"Data Exception","condition_name":"invalid_preceding_or_following_size","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"0d3f602127cd137cf343b32d5fa78f175eeb6cdcb6353b1f6f998ede6cb7b911","slug":"devel"},"lang":"en","sqlstate":"22013"}},"history_boundary":{"earliest_observed":"11.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":"11.0","macros":["ERRCODE_INVALID_PRECEDING_OR_FOLLOWING_SIZE"],"manual_presence":["11","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":"11.22","end_major":"11","end_tag":"REL_11_22","evidence_count":23,"position":0,"start":"11.0","start_major":"11","start_tag":"REL_11_0"},{"end":"12.22","end_major":"12","end_tag":"REL_12_22","evidence_count":23,"position":1,"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":2,"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":3,"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":4,"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":5,"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":6,"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":7,"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":8,"start":"18.6","start_major":"18","start_tag":"REL_18_6"}],"present_in_snapshots":["11.22","12.22","13.23","14.24","15.19","16.15","17.11","18.6","19beta3"],"preview_in_snapshots":["19beta3"],"primary_macro":"ERRCODE_INVALID_PRECEDING_OR_FOLLOWING_SIZE","removed":null,"schema_version":2,"severity_classes":["E"],"sources":[{"blob_id":"sha256:8518be6de92ae135765e295c631c5f525120ca2b132453404b620f9aa595cab4","channel":"formal","code_count":241,"commit":"19f20081df059fef87e14c8e953669bd173dd7f1","id":"postgresql:REL_11_0:src/backend/utils/errcodes.txt","major":"11","parsed_path":"raw/definitions/REL_11_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_11_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/19f20081df059fef87e14c8e953669bd173dd7f1/src/backend/utils/errcodes.txt","record_count":247,"release":"11.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"8518be6de92ae135765e295c631c5f525120ca2b132453404b620f9aa595cab4","size":31453,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_11_0","url":"https://github.com/postgres/postgres/blob/19f20081df059fef87e14c8e953669bd173dd7f1/src/backend/utils/errcodes.txt","version":"11.0"},{"blob_id":"sha256:943259f3e36af1343dd0f090f7c7cec0e8c762b038d68c178aaa9b1b11999bfb","channel":"formal","code_count":257,"commit":"ad1f2885b8c82e0c2d56d7974f012cbecce17a17","id":"postgresql:REL_12_0:src/backend/utils/errcodes.txt","major":"12","parsed_path":"raw/definitions/REL_12_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_12_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/ad1f2885b8c82e0c2d56d7974f012cbecce17a17/src/backend/utils/errcodes.txt","record_count":263,"release":"12.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"943259f3e36af1343dd0f090f7c7cec0e8c762b038d68c178aaa9b1b11999bfb","size":33114,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_12_0","url":"https://github.com/postgres/postgres/blob/ad1f2885b8c82e0c2d56d7974f012cbecce17a17/src/backend/utils/errcodes.txt","version":"12.0"},{"blob_id":"sha256:9a464a3c3c99d2488782d4cdd0d46ce261085a944cb0c21e2d884586fbc8204d","channel":"formal","code_count":258,"commit":"29be9983a64c011eac0b9ee29895cce71e15ea77","id":"postgresql:REL_13_0:src/backend/utils/errcodes.txt","major":"13","parsed_path":"raw/definitions/REL_13_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_13_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/29be9983a64c011eac0b9ee29895cce71e15ea77/src/backend/utils/errcodes.txt","record_count":264,"release":"13.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"9a464a3c3c99d2488782d4cdd0d46ce261085a944cb0c21e2d884586fbc8204d","size":33239,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_13_0","url":"https://github.com/postgres/postgres/blob/29be9983a64c011eac0b9ee29895cce71e15ea77/src/backend/utils/errcodes.txt","version":"13.0"},{"blob_id":"sha256:c3c967fa20577f7ded946cb99e1a4706b85bb2476fd32d7e4a133c971a603552","channel":"formal","code_count":259,"commit":"86a4dc1e6f29d1992a2afa3fac1a0b0a6e84568c","id":"postgresql:REL_14_0:src/backend/utils/errcodes.txt","major":"14","parsed_path":"raw/definitions/REL_14_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_14_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/86a4dc1e6f29d1992a2afa3fac1a0b0a6e84568c/src/backend/utils/errcodes.txt","record_count":265,"release":"14.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"c3c967fa20577f7ded946cb99e1a4706b85bb2476fd32d7e4a133c971a603552","size":33337,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_14_0","url":"https://github.com/postgres/postgres/blob/86a4dc1e6f29d1992a2afa3fac1a0b0a6e84568c/src/backend/utils/errcodes.txt","version":"14.0"},{"blob_id":"sha256:a34b5fccd8a27c92817314dd942b79e76896cd1d9a8d4be21c81b02227850b4a","channel":"formal","code_count":260,"commit":"2a7ce2e2ce474504a707ec03e128fde66cfb8b48","id":"postgresql:REL_15_0:src/backend/utils/errcodes.txt","major":"15","parsed_path":"raw/definitions/REL_15_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_15_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/2a7ce2e2ce474504a707ec03e128fde66cfb8b48/src/backend/utils/errcodes.txt","record_count":266,"release":"15.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"a34b5fccd8a27c92817314dd942b79e76896cd1d9a8d4be21c81b02227850b4a","size":33458,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_15_0","url":"https://github.com/postgres/postgres/blob/2a7ce2e2ce474504a707ec03e128fde66cfb8b48/src/backend/utils/errcodes.txt","version":"15.0"},{"blob_id":"sha256:1d1d741b7b7c6dfd8275287e31c79befed75f3b9349e1a42ef0ca147c429ff88","channel":"formal","code_count":260,"commit":"c372fbbd8e911f2412b80a8c39d7079366565d67","id":"postgresql:REL_16_0:src/backend/utils/errcodes.txt","major":"16","parsed_path":"raw/definitions/REL_16_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_16_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/c372fbbd8e911f2412b80a8c39d7079366565d67/src/backend/utils/errcodes.txt","record_count":266,"release":"16.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"1d1d741b7b7c6dfd8275287e31c79befed75f3b9349e1a42ef0ca147c429ff88","size":33458,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_16_0","url":"https://github.com/postgres/postgres/blob/c372fbbd8e911f2412b80a8c39d7079366565d67/src/backend/utils/errcodes.txt","version":"16.0"},{"blob_id":"sha256:bb53279934510355eb4135a807c90d989f07650bd90f87026a4441f11d3296b1","channel":"formal","code_count":260,"commit":"d7ec59a63d745ba74fba0e280bbf85dc6d1caa3e","id":"postgresql:REL_17_0:src/backend/utils/errcodes.txt","major":"17","parsed_path":"raw/definitions/REL_17_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_17_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/d7ec59a63d745ba74fba0e280bbf85dc6d1caa3e/src/backend/utils/errcodes.txt","record_count":266,"release":"17.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"bb53279934510355eb4135a807c90d989f07650bd90f87026a4441f11d3296b1","size":33392,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_17_0","url":"https://github.com/postgres/postgres/blob/d7ec59a63d745ba74fba0e280bbf85dc6d1caa3e/src/backend/utils/errcodes.txt","version":"17.0"},{"blob_id":"sha256:6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba","channel":"formal","code_count":262,"commit":"3d6a828938a5fa0444275d3d2f67b64ec3199eb7","id":"postgresql:REL_18_0:src/backend/utils/errcodes.txt","major":"18","parsed_path":"raw/definitions/REL_18_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_18_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/3d6a828938a5fa0444275d3d2f67b64ec3199eb7/src/backend/utils/errcodes.txt","record_count":268,"release":"18.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba","size":33739,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_18_0","url":"https://github.com/postgres/postgres/blob/3d6a828938a5fa0444275d3d2f67b64ec3199eb7/src/backend/utils/errcodes.txt","version":"18.0"},{"blob_id":"sha256:cadb9e83cde9a8699a7e74448891ca623af8579ccc8e11c7e533fb47cbc42f89","channel":"preview","code_count":262,"commit":"3638289fb57bdabec00deda98ee9624a35f5d66a","id":"postgresql:REL_19_BETA3:src/backend/utils/errcodes.txt","major":"19","parsed_path":"raw/definitions/REL_19_BETA3.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_19_BETA3.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/3638289fb57bdabec00deda98ee9624a35f5d66a/src/backend/utils/errcodes.txt","record_count":268,"release":"19beta3","release_date":"2026-08-13","repository":"https://github.com/postgres/postgres.git","sha256":"cadb9e83cde9a8699a7e74448891ca623af8579ccc8e11c7e533fb47cbc42f89","size":33739,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_19_BETA3","url":"https://github.com/postgres/postgres/blob/3638289fb57bdabec00deda98ee9624a35f5d66a/src/backend/utils/errcodes.txt","version":"19beta3"}],"sqlstate":"22013","status":"active","usage_evidence":[{"evidence_ids":["postgresql:REL_11_0:src/backend/utils/errcodes.txt","postgresql:REL_11_10:src/backend/utils/errcodes.txt","postgresql:REL_11_11:src/backend/utils/errcodes.txt","postgresql:REL_11_12:src/backend/utils/errcodes.txt","postgresql:REL_11_13:src/backend/utils/errcodes.txt","postgresql:REL_11_14:src/backend/utils/errcodes.txt","postgresql:REL_11_15:src/backend/utils/errcodes.txt","postgresql:REL_11_16:src/backend/utils/errcodes.txt","postgresql:REL_11_17:src/backend/utils/errcodes.txt","postgresql:REL_11_18:src/backend/utils/errcodes.txt","postgresql:REL_11_19:src/backend/utils/errcodes.txt","postgresql:REL_11_1:src/backend/utils/errcodes.txt","postgresql:REL_11_20:src/backend/utils/errcodes.txt","postgresql:REL_11_21:src/backend/utils/errcodes.txt","postgresql:REL_11_22:src/backend/utils/errcodes.txt","postgresql:REL_11_2:src/backend/utils/errcodes.txt","postgresql:REL_11_3:src/backend/utils/errcodes.txt","postgresql:REL_11_4:src/backend/utils/errcodes.txt","postgresql:REL_11_5:src/backend/utils/errcodes.txt","postgresql:REL_11_6:src/backend/utils/errcodes.txt","postgresql:REL_11_7:src/backend/utils/errcodes.txt","postgresql:REL_11_8:src/backend/utils/errcodes.txt","postgresql:REL_11_9:src/backend/utils/errcodes.txt","postgresql:REL_12_0:src/backend/utils/errcodes.txt","postgresql:REL_12_10:src/backend/utils/errcodes.txt","postgresql:REL_12_11:src/backend/utils/errcodes.txt","postgresql:REL_12_12:src/backend/utils/errcodes.txt","postgresql:REL_12_13:src/backend/utils/errcodes.txt","postgresql:REL_12_14:src/backend/utils/errcodes.txt","postgresql:REL_12_15:src/backend/utils/errcodes.txt","postgresql:REL_12_16:src/backend/utils/errcodes.txt","postgresql:REL_12_17:src/backend/utils/errcodes.txt","postgresql:REL_12_18:src/backend/utils/errcodes.txt","postgresql:REL_12_19:src/backend/utils/errcodes.txt","postgresql:REL_12_1:src/backend/utils/errcodes.txt","postgresql:REL_12_20:src/backend/utils/errcodes.txt","postgresql:REL_12_21:src/backend/utils/errcodes.txt","postgresql:REL_12_22:src/backend/utils/errcodes.txt","postgresql:REL_12_2:src/backend/utils/errcodes.txt","postgresql:REL_12_3:src/backend/utils/errcodes.txt","postgresql:REL_12_4:src/backend/utils/errcodes.txt","postgresql:REL_12_5:src/backend/utils/errcodes.txt","postgresql:REL_12_6:src/backend/utils/errcodes.txt","postgresql:REL_12_7:src/backend/utils/errcodes.txt","postgresql:REL_12_8:src/backend/utils/errcodes.txt","postgresql:REL_12_9:src/backend/utils/errcodes.txt","postgresql:REL_13_0:src/backend/utils/errcodes.txt","postgresql:REL_13_10:src/backend/utils/errcodes.txt","postgresql:REL_13_11:src/backend/utils/errcodes.txt","postgresql:REL_13_12:src/backend/utils/errcodes.txt","postgresql:REL_13_13:src/backend/utils/errcodes.txt","postgresql:REL_13_14:src/backend/utils/errcodes.txt","postgresql:REL_13_15:src/backend/utils/errcodes.txt","postgresql:REL_13_16:src/backend/utils/errcodes.txt","postgresql:REL_13_17:src/backend/utils/errcodes.txt","postgresql:REL_13_18:src/backend/utils/errcodes.txt","postgresql:REL_13_19:src/backend/utils/errcodes.txt","postgresql:REL_13_1:src/backend/utils/errcodes.txt","postgresql:REL_13_20:src/backend/utils/errcodes.txt","postgresql:REL_13_21:src/backend/utils/errcodes.txt","postgresql:REL_13_22:src/backend/utils/errcodes.txt","postgresql:REL_13_23:src/backend/utils/errcodes.txt","postgresql:REL_13_2:src/backend/utils/errcodes.txt","postgresql:REL_13_3:src/backend/utils/errcodes.txt","postgresql:REL_13_4:src/backend/utils/errcodes.txt","postgresql:REL_13_5:src/backend/utils/errcodes.txt","postgresql:REL_13_6:src/backend/utils/errcodes.txt","postgresql:REL_13_7:src/backend/utils/errcodes.txt","postgresql:REL_13_8:src/backend/utils/errcodes.txt","postgresql:REL_13_9:src/backend/utils/errcodes.txt","postgresql:REL_14_0:src/backend/utils/errcodes.txt","postgresql:REL_14_10:src/backend/utils/errcodes.txt","postgresql:REL_14_11:src/backend/utils/errcodes.txt","postgresql:REL_14_12:src/backend/utils/errcodes.txt","postgresql:REL_14_13:src/backend/utils/errcodes.txt","postgresql:REL_14_14:src/backend/utils/errcodes.txt","postgresql:REL_14_15:src/backend/utils/errcodes.txt","postgresql:REL_14_16:src/backend/utils/errcodes.txt","postgresql:REL_14_17:src/backend/utils/errcodes.txt","postgresql:REL_14_18:src/backend/utils/errcodes.txt","postgresql:REL_14_19:src/backend/utils/errcodes.txt","postgresql:REL_14_1:src/backend/utils/errcodes.txt","postgresql:REL_14_20:src/backend/utils/errcodes.txt","postgresql:REL_14_21:src/backend/utils/errcodes.txt","postgresql:REL_14_22:src/backend/utils/errcodes.txt","postgresql:REL_14_23:src/backend/utils/errcodes.txt","postgresql:REL_14_24:src/backend/utils/errcodes.txt","postgresql:REL_14_2:src/backend/utils/errcodes.txt","postgresql:REL_14_3:src/backend/utils/errcodes.txt","postgresql:REL_14_4:src/backend/utils/errcodes.txt","postgresql:REL_14_5:src/backend/utils/errcodes.txt","postgresql:REL_14_6:src/backend/utils/errcodes.txt","postgresql:REL_14_7:src/backend/utils/errcodes.txt","postgresql:REL_14_8:src/backend/utils/errcodes.txt","postgresql:REL_14_9:src/backend/utils/errcodes.txt","postgresql:REL_15_0:src/backend/utils/errcodes.txt","postgresql:REL_15_10:src/backend/utils/errcodes.txt","postgresql:REL_15_11:src/backend/utils/errcodes.txt","postgresql:REL_15_12:src/backend/utils/errcodes.txt","postgresql:REL_15_13:src/backend/utils/errcodes.txt","postgresql:REL_15_14:src/backend/utils/errcodes.txt","postgresql:REL_15_15:src/backend/utils/errcodes.txt","postgresql:REL_15_16:src/backend/utils/errcodes.txt","postgresql:REL_15_17:src/backend/utils/errcodes.txt","postgresql:REL_15_18:src/backend/utils/errcodes.txt","postgresql:REL_15_19:src/backend/utils/errcodes.txt","postgresql:REL_15_1:src/backend/utils/errcodes.txt","postgresql:REL_15_2:src/backend/utils/errcodes.txt","postgresql:REL_15_3:src/backend/utils/errcodes.txt","postgresql:REL_15_4:src/backend/utils/errcodes.txt","postgresql:REL_15_5:src/backend/utils/errcodes.txt","postgresql:REL_15_6:src/backend/utils/errcodes.txt","postgresql:REL_15_7:src/backend/utils/errcodes.txt","postgresql:REL_15_8:src/backend/utils/errcodes.txt","postgresql:REL_15_9:src/backend/utils/errcodes.txt","postgresql:REL_16_0:src/backend/utils/errcodes.txt","postgresql:REL_16_10:src/backend/utils/errcodes.txt","postgresql:REL_16_11:src/backend/utils/errcodes.txt","postgresql:REL_16_12:src/backend/utils/errcodes.txt","postgresql:REL_16_13:src/backend/utils/errcodes.txt","postgresql:REL_16_14:src/backend/utils/errcodes.txt","postgresql:REL_16_15:src/backend/utils/errcodes.txt","postgresql:REL_16_1:src/backend/utils/errcodes.txt","postgresql:REL_16_2:src/backend/utils/errcodes.txt","postgresql:REL_16_3:src/backend/utils/errcodes.txt","postgresql:REL_16_4:src/backend/utils/errcodes.txt","postgresql:REL_16_5:src/backend/utils/errcodes.txt","postgresql:REL_16_6:src/backend/utils/errcodes.txt","postgresql:REL_16_7:src/backend/utils/errcodes.txt","postgresql:REL_16_8:src/backend/utils/errcodes.txt","postgresql:REL_16_9:src/backend/utils/errcodes.txt","postgresql:REL_17_0:src/backend/utils/errcodes.txt","postgresql:REL_17_10:src/backend/utils/errcodes.txt","postgresql:REL_17_11:src/backend/utils/errcodes.txt","postgresql:REL_17_1:src/backend/utils/errcodes.txt","postgresql:REL_17_2:src/backend/utils/errcodes.txt","postgresql:REL_17_3:src/backend/utils/errcodes.txt","postgresql:REL_17_4:src/backend/utils/errcodes.txt","postgresql:REL_17_5:src/backend/utils/errcodes.txt","postgresql:REL_17_6:src/backend/utils/errcodes.txt","postgresql:REL_17_7:src/backend/utils/errcodes.txt","postgresql:REL_17_8:src/backend/utils/errcodes.txt","postgresql:REL_17_9:src/backend/utils/errcodes.txt","postgresql:REL_18_0:src/backend/utils/errcodes.txt","postgresql:REL_18_1:src/backend/utils/errcodes.txt","postgresql:REL_18_2:src/backend/utils/errcodes.txt","postgresql:REL_18_3:src/backend/utils/errcodes.txt","postgresql:REL_18_4:src/backend/utils/errcodes.txt","postgresql:REL_18_6:src/backend/utils/errcodes.txt","postgresql:REL_19_BETA3:src/backend/utils/errcodes.txt"],"notes":"Presence in a PostgreSQL release definition file is established; runtime throw/use scanning is maintained separately.","scope":"release-definition-catalogue","status":"definition_only"},{"evidence_ids":[],"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 the fixed errcodes row and macro.","position":0,"runtime":[],"sources":["src.errcodes.18.6"],"statement":"22013 is invalid_preceding_or_following_size in SQLSTATE Class 22."}},{"Kind":"claims","Ordinal":1,"ID":"resolved-rows-groups-path","ServerVersion":null,"Status":null,"Payload":{"claim_id":"resolved-rows-groups-path","limits":"This source path is limited to ROWS/GROUPS.","method":"Read the complete calculate_frame_offsets branches.","position":1,"runtime":[],"sources":["src.window-executor.18.6"],"statement":"The window executor rejects negative ROWS/GROUPS start or end offsets with endpoint-specific 22013 primaries; NULL endpoints use 22004."}},{"Kind":"claims","Ordinal":2,"ID":"resolved-range-path","ServerVersion":null,"Status":null,"Payload":{"claim_id":"resolved-range-path","limits":"The cited helpers are representative, not an exhaustive list of every range-capable type.","method":"Read the representative type-specific in_range guards.","position":2,"runtime":[],"sources":["src.range-int8.18.6","src.range-numeric.18.6","src.range-float.18.6","src.range-timestamp.18.6"],"statement":"Representative RANGE in_range helpers reject negative integer or interval offsets and reject the specified NaN/negative numeric and float offsets with the generic 22013 primary."}},{"Kind":"claims","Ordinal":3,"ID":"history","ServerVersion":null,"Status":null,"Payload":{"claim_id":"history","limits":"","method":"Use catalogue presence and history boundaries.","position":3,"runtime":[],"sources":["src.errcodes.18.6"],"statement":"The locked catalogue records 22013 from 11.0 without proving an exact implementation introduction date."}},{"Kind":"messages","Ordinal":0,"ID":"message.start-negative","ServerVersion":null,"Status":null,"Payload":{"limits":"","message_id":"message.start-negative","path":"","position":0,"raw":{"id":"message.start-negative","primary_template":"frame starting offset must not be negative","severity_source":"ERROR","sources":["src.window-executor.18.6"],"sqlstate":"22013"},"severity":"ERROR","sources":["src.window-executor.18.6"],"templates":[{"kind":"primary","literal":"frame starting offset must not be negative","position":0,"role":"","template":"frame starting offset must not be negative"}]}},{"Kind":"messages","Ordinal":1,"ID":"message.end-negative","ServerVersion":null,"Status":null,"Payload":{"limits":"","message_id":"message.end-negative","path":"","position":1,"raw":{"id":"message.end-negative","primary_template":"frame ending offset must not be negative","severity_source":"ERROR","sources":["src.window-executor.18.6"],"sqlstate":"22013"},"severity":"ERROR","sources":["src.window-executor.18.6"],"templates":[{"kind":"primary","literal":"frame ending offset must not be negative","position":0,"role":"","template":"frame ending offset must not be negative"}]}},{"Kind":"messages","Ordinal":2,"ID":"message.range-generic","ServerVersion":null,"Status":null,"Payload":{"limits":"","message_id":"message.range-generic","path":"","position":2,"raw":{"id":"message.range-generic","primary_template":"invalid preceding or following size in window function","severity_source":"ERROR","sources":["src.range-int8.18.6","src.range-numeric.18.6","src.range-float.18.6","src.range-timestamp.18.6"],"sqlstate":"22013"},"severity":"ERROR","sources":["src.range-int8.18.6","src.range-numeric.18.6","src.range-float.18.6","src.range-timestamp.18.6"],"templates":[{"kind":"primary","literal":"invalid preceding or following size in window function","position":0,"role":"","template":"invalid preceding or following size in window function"}]}},{"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#L183"}},{"Kind":"sources","Ordinal":1,"ID":"src.window-executor.18.6","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"upstream_source","location":"","path":"src/backend/executor/nodeWindowAgg.c","position":1,"sha256":"c365e6750bc77a89562254903d099c3e5914e001d3aae418322ccffc1d535d17","source_id":"src.window-executor.18.6","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/executor/nodeWindowAgg.c#L2144-2210"}},{"Kind":"sources","Ordinal":2,"ID":"src.range-int8.18.6","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"upstream_source","location":"","path":"src/backend/utils/adt/int8.c","position":2,"sha256":"da4d3688c0b037346f25419ea31020af9fec54021f182370234dcbf70b748f36","source_id":"src.range-int8.18.6","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/int8.c#L400-420"}},{"Kind":"sources","Ordinal":3,"ID":"src.range-numeric.18.6","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"upstream_source","location":"","path":"src/backend/utils/adt/numeric.c","position":3,"sha256":"6cde7cd60b3330b83be35d1f014045f5fb5fe737f3c5db4c8ed4080b99f2b666","source_id":"src.range-numeric.18.6","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/numeric.c#L2690-2715"}},{"Kind":"sources","Ordinal":4,"ID":"src.range-float.18.6","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"upstream_source","location":"","path":"src/backend/utils/adt/float.c","position":4,"sha256":"58914ae93c06c281e581a4bb2dcf2280e4ae1619f3ceb8f801f50beca87eecd8","source_id":"src.range-float.18.6","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/float.c#L1105-1125"}},{"Kind":"sources","Ordinal":5,"ID":"src.range-timestamp.18.6","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"upstream_source","location":"","path":"src/backend/utils/adt/timestamp.c","position":5,"sha256":"2614ccd2182fa904b4cac9bef43039e90a1af578d2d1c6803d49a07420d168f2","source_id":"src.range-timestamp.18.6","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/timestamp.c#L3860-3885"}}]}
