{"Entry":{"collection":"sqlstate","key":"P0001","name":"P0001","aliases":[],"metadata":{"aliases":[],"case_count":1,"class_code":"P0","condition_name":"raise_exception","condition_names":["raise_exception"],"content_hash":"847bbd38473805fd3393431c4b186043c4aef7d312514dd23c858a4f14d3d66a","depth":"full","editorial_review":"reviewed","evidence_tier":"observed_runtime","imported_at":"2026-09-30T17:45:28.138012+08:00","introduced":null,"known_present_by":"8.0.0","macros":["ERRCODE_RAISE_EXCEPTION"],"name_zh":"引发异常","present_in":["9.0","9.1","9.2","9.3","9.4","9.5","9.6","10","11","12","13","14","15","16","17","18","19"],"preview_in":["19"],"primary_macro":"ERRCODE_RAISE_EXCEPTION","removed":null,"runtime_verification":"passed","severity_classes":["E"],"snippet_count":1,"source_rev":"english-manuals:0407dc4e5a74bde39aa00848c070b44f4cbf5c40b84ac0bccb5f9be3e53e3a62","sqlstate":"P0001","status":"active","summary_zh":"RAISE EXCEPTION 未指定条件名或代码时的默认码。"}},"Definition":{"Collection":"sqlstate","Key":"P0001","SourceDatabase":"center","Version":"18","SourceTable":"sqlstate","SourceKey":"P0001","SourceRevision":"english-manuals:0407dc4e5a74bde39aa00848c070b44f4cbf5c40b84ac0bccb5f9be3e53e3a62","Facts":{"aliases":[],"class_name":"PL/pgSQL Error","condition_name":"raise_exception","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"56dacf78e618ff0fd8c533e05db597b80d7ebbad7f8e512a888217d0640aa328","slug":"18"},"lang":"en","sqlstate":"P0001"},"ManualEvidence":{"doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"56dacf78e618ff0fd8c533e05db597b80d7ebbad7f8e512a888217d0640aa328","slug":"18"}},"MeasuredEvidence":{}},"Text":{"Collection":"sqlstate","Key":"P0001","SourceDatabase":"center","Version":"","Locale":"en","Title":"P0001 — raise_exception","Summary":"P0001 is the raise_exception condition in PostgreSQL's PL/pgSQL-specific Class P0. A RAISE EXCEPTION statement with no condition name and no explicit SQLSTATE defaults to this code. The message is supplied by the function author, so P0001 is usually an application or procedure control signal rather than a diagnosis of one server subsystem.","BodyHTML":"\u003ch2\u003eAt a glance {#at-a-glance}\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eP0001\u003c/code\u003e is the \u003ccode\u003eraise_exception\u003c/code\u003e condition in PostgreSQL\u0026#39;s PL/pgSQL-specific Class P0. A \u003ccode\u003eRAISE EXCEPTION\u003c/code\u003e statement with no condition name and no explicit SQLSTATE defaults to this code. The message is supplied by the function author, so \u003ccode\u003eP0001\u003c/code\u003e is usually an application or procedure control signal rather than a diagnosis of one server subsystem.\u003c/p\u003e\n\u003cp\u003eThe level and code are separate choices. \u003ccode\u003eEXCEPTION\u003c/code\u003e is the default \u003ccode\u003eRAISE\u003c/code\u003e level and normally aborts the current transaction. \u003ccode\u003eNOTICE\u003c/code\u003e, \u003ccode\u003eWARNING\u003c/code\u003e, \u003ccode\u003eINFO\u003c/code\u003e, \u003ccode\u003eLOG\u003c/code\u003e, and \u003ccode\u003eDEBUG\u003c/code\u003e generate messages without that exception behavior; an explicit \u003ccode\u003eERRCODE\u003c/code\u003e can also choose a different SQLSTATE. Always capture the severity and SQLSTATE together.\u003c/p\u003e\n\u003cp\u003eThe representative case \u003ccode\u003eplpgsql_raise_exception\u003c/code\u003e creates a function containing \u003ccode\u003eRAISE EXCEPTION \u0026#39;calibration exception\u0026#39;\u003c/code\u003e, calls it, and then runs \u003ccode\u003eSELECT 1\u003c/code\u003e on the same autocommit connection. PostgreSQL 18.6 and 10.21 both returned \u003ccode\u003eP0001\u003c/code\u003e, preserved the message, left the connection \u003ccode\u003eIDLE\u003c/code\u003e, and accepted the follow-up query. The SQL excerpt below is the complete ordered function, call, and follow-up from the shared snippet registry; the runner owns the schema-qualified name and cleanup.\u003c/p\u003e\n\u003ch2\u003eMeaning and trigger paths {#meaning}\u003c/h2\u003e\n\u003cp\u003eThe 18.6 directory places \u003ccode\u003eP0001\u003c/code\u003e in Class P0, \u003ccode\u003ePL/pgSQL Error\u003c/code\u003e, and names it \u003ccode\u003eraise_exception\u003c/code\u003e. The class is PostgreSQL-specific. In the PL/pgSQL executor, the default code is assigned only when no code was supplied and the level is at least \u003ccode\u003eERROR\u003c/code\u003e; the executor then reports the caller\u0026#39;s message and optional detail, hint, and object fields.\u003c/p\u003e\n\u003cp\u003eThe syntax supports several distinct paths:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eRAISE EXCEPTION \u0026#39;message\u0026#39;\u003c/code\u003e uses \u003ccode\u003eP0001\u003c/code\u003e by default.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRAISE EXCEPTION condition_name\u003c/code\u003e uses the condition\u0026#39;s SQLSTATE, so it need not be \u003ccode\u003eP0001\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRAISE EXCEPTION SQLSTATE \u0026#39;5-character-code\u0026#39;\u003c/code\u003e or \u003ccode\u003eRAISE ... USING ERRCODE = ...\u003c/code\u003e lets a procedure expose a domain-specific contract. PostgreSQL permits user-chosen five-character codes other than \u003ccode\u003e00000\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eA lower level such as \u003ccode\u003eRAISE WARNING \u0026#39;message\u0026#39;\u003c/code\u003e emits a message at that priority. It is not the same transaction event as \u003ccode\u003eRAISE EXCEPTION\u003c/code\u003e, even if the caller chooses an explicit error code.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe no-argument \u003ccode\u003eRAISE;\u003c/code\u003e form is re-raise control inside an active exception handler. Its behavior and SQLSTATE are determined by the exception being re-raised; it is not a new default \u003ccode\u003eP0001\u003c/code\u003e event.\u003c/p\u003e\n\u003ch2\u003eMessages and diagnostics {#messages}\u003c/h2\u003e\n\u003cp\u003eThe representative registry operation is:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eCREATE FUNCTION raise_exception_case() RETURNS void\nLANGUAGE plpgsql AS $$\nBEGIN\n    RAISE EXCEPTION \u0026#39;calibration exception\u0026#39;;\nEND\n$$;\nSELECT raise_exception_case();\nSELECT 1;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe function name is schema-qualified and generated by the test executor in the actual run. The observed 18.6 diagnostic was:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSQLSTATE: P0001\nseverity: ERROR\nmessage_primary: calibration exception\ncontext: PL/pgSQL function ...raise_exception_case() line 3 at RAISE\nsource: pl_exec.c / exec_stmt_raise / line 3923\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThere is no universal English primary message for \u003ccode\u003eP0001\u003c/code\u003e; the function supplies it. \u003ccode\u003eUSING MESSAGE\u003c/code\u003e, \u003ccode\u003eDETAIL\u003c/code\u003e, \u003ccode\u003eHINT\u003c/code\u003e, \u003ccode\u003eCOLUMN\u003c/code\u003e, \u003ccode\u003eCONSTRAINT\u003c/code\u003e, \u003ccode\u003eDATATYPE\u003c/code\u003e, \u003ccode\u003eTABLE\u003c/code\u003e, and \u003ccode\u003eSCHEMA\u003c/code\u003e can add structured diagnostics. Localized message text can change while SQLSTATE remains stable, so branch on \u003ccode\u003eP0001\u003c/code\u003e and inspect the structured fields rather than parsing the primary string.\u003c/p\u003e\n\u003ch2\u003eDiagnosis {#diagnosis}\u003c/h2\u003e\n\u003cp\u003eFirst determine whether the code came from an intentional \u003ccode\u003eRAISE EXCEPTION\u003c/code\u003e or from a different domain condition that the function explicitly selected. Record SQLSTATE, localized and nonlocalized severity, primary message, detail, hint, context, source location, and the statement that called the function. In a PL/pgSQL handler, \u003ccode\u003eSQLSTATE\u003c/code\u003e and \u003ccode\u003eSQLERRM\u003c/code\u003e identify the active exception, while \u003ccode\u003eGET STACKED DIAGNOSTICS\u003c/code\u003e retrieves its fields.\u003c/p\u003e\n\u003cp\u003eThen locate the function branch and its transaction context. A failed call in autocommit ends that statement and leaves the connection ready for another command, as the representative case shows. A call inside an explicit transaction normally leaves the transaction aborted until the client issues \u003ccode\u003eROLLBACK\u003c/code\u003e or rolls back to a savepoint. The server connection is not necessarily terminated.\u003c/p\u003e\n\u003cp\u003eAn \u003ccode\u003eEXCEPTION\u003c/code\u003e clause changes the boundary. The protected body runs in a subtransaction; when it errors, persistent changes made by that body are rolled back before the first matching condition handler runs, while changes made outside it remain. \u003ccode\u003eWHEN OTHERS\u003c/code\u003e matches every error except \u003ccode\u003eQUERY_CANCELED\u003c/code\u003e and \u003ccode\u003eASSERT_FAILURE\u003c/code\u003e; it is broad and should not be used as a substitute for identifying the intended \u003ccode\u003eP0001\u003c/code\u003e path.\u003c/p\u003e\n\u003ch2\u003eResponse {#response}\u003c/h2\u003e\n\u003cp\u003eUse \u003ccode\u003eP0001\u003c/code\u003e when the procedure intentionally exposes the generic PL/pgSQL raise contract. If callers need to distinguish validation, conflict, quota, or another business outcome, choose and document an appropriate SQLSTATE and add \u003ccode\u003eDETAIL\u003c/code\u003e or \u003ccode\u003eHINT\u003c/code\u003e that helps the caller act. Do not turn unrelated server errors into \u003ccode\u003eP0001\u003c/code\u003e merely to simplify application code.\u003c/p\u003e\n\u003cp\u003eAt the client boundary, roll back an explicit transaction before issuing unrelated commands, or use a savepoint when the caller can safely isolate the function call. In PL/pgSQL, prefer a narrow handler such as \u003ccode\u003eWHEN raise_exception\u003c/code\u003e or \u003ccode\u003eWHEN SQLSTATE \u0026#39;P0001\u0026#39;\u003c/code\u003e when the recovery is specific. If a broad handler is required, preserve \u003ccode\u003eRETURNED_SQLSTATE\u003c/code\u003e, \u003ccode\u003eMESSAGE_TEXT\u003c/code\u003e, \u003ccode\u003ePG_EXCEPTION_DETAIL\u003c/code\u003e, \u003ccode\u003ePG_EXCEPTION_HINT\u003c/code\u003e, and context before deciding whether to continue or re-raise.\u003c/p\u003e\n\u003cp\u003eThe natural \u003ccode\u003eRAISE EXCEPTION\u003c/code\u003e case is safe to demonstrate because it exercises the intended PL/pgSQL mechanism. That does not make \u003ccode\u003eP0001\u003c/code\u003e evidence of a server fault; it is an explicit exception raised by the function.\u003c/p\u003e\n\u003ch2\u003eVersions {#versions}\u003c/h2\u003e\n\u003cp\u003eThe catalogue records \u003ccode\u003eP0001\u003c/code\u003e in the locked 8.0.0–8.4.22 pre-9.0 formal sources, every formal snapshot from 9.0.23 through 18.6, and the 19 Beta 3 preview. The same-tag \u003ccode\u003eREL8_1_4\u003c/code\u003e \u003ccode\u003eerrcodes.sgml\u003c/code\u003e table already lists \u003ccode\u003eP0001\u003c/code\u003e as \u003ccode\u003eraise_exception\u003c/code\u003e, confirming that condition-name observation by 8.1.4. The class title is \u003ccode\u003ePL/pgSQL Error (PostgreSQL-specific error class)\u003c/code\u003e in the 9.0 header view and changes to \u003ccode\u003ePL/pgSQL Error\u003c/code\u003e in the 9.1 text definition. Candidate source gaps remain for 7.0–7.3; these are observed catalogue boundaries, not asserted implementation introduction dates.\u003c/p\u003e\n\u003cp\u003eThe fixed 18.6 source commit is \u003ccode\u003e724edf9bde9d356724ad384a2e196edc3c9f80f7\u003c/code\u003e. The default \u003ccode\u003eRAISE EXCEPTION\u003c/code\u003e rule is documented for PostgreSQL 18 and source-confirmed in the 18.6 executor. The representative case passed on PostgreSQL 18.6 and 10.21; it does not test every custom code, handler, or transaction mode.\u003c/p\u003e\n\u003ch2\u003eRelated {#related}\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/wiki/sqlstate/P0000/\" rel=\"nofollow\"\u003e\u003ccode\u003eP0000\u003c/code\u003e — \u003ccode\u003eplpgsql_error\u003c/code\u003e\u003c/a\u003e is the broader PL/pgSQL-specific class condition. \u003ca href=\"/wiki/sqlstate/P0002/\" rel=\"nofollow\"\u003e\u003ccode\u003eP0002\u003c/code\u003e — \u003ccode\u003eno_data_found\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sqlstate/P0003/\" rel=\"nofollow\"\u003e\u003ccode\u003eP0003\u003c/code\u003e — \u003ccode\u003etoo_many_rows\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"/wiki/sqlstate/P0004/\" rel=\"nofollow\"\u003e\u003ccode\u003eP0004\u003c/code\u003e — \u003ccode\u003eassert_failure\u003c/code\u003e\u003c/a\u003e are distinct P0 conditions. \u003ca href=\"/wiki/sqlstate/25P02/\" rel=\"nofollow\"\u003e\u003ccode\u003e25P02\u003c/code\u003e — \u003ccode\u003ein_failed_sql_transaction\u003c/code\u003e\u003c/a\u003e describes the follow-on state after an unhandled exception aborts an explicit transaction. \u003ca href=\"/wiki/sqlstate/XX000/\" rel=\"nofollow\"\u003e\u003ccode\u003eXX000\u003c/code\u003e — \u003ccode\u003einternal_error\u003c/code\u003e\u003c/a\u003e is a server internal-error code and should not be used as a synonym for an intentional \u003ccode\u003eRAISE\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003eSources {#sources}\u003c/h2\u003e\n\u003cp\u003eThe structured evidence is recorded in the \u003ca href=\"#sources\" rel=\"nofollow\"\u003epublic evidence JSON\u003c/a\u003e. Source records are pinned to PostgreSQL commit \u003ccode\u003e724edf9bde9d356724ad384a2e196edc3c9f80f7\u003c/code\u003e; runtime records retain the shared snippet registry, both target summaries, and run \u003ccode\u003eP0001-snippet-registry-final-20260909\u003c/code\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esrc.errcodes.18.6\u003c/code\u003e — \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt#L487-L494\" rel=\"nofollow\"\u003e\u003ccode\u003eerrcodes.txt\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esrc.pl-exec.18.6\u003c/code\u003e — \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/pl/plpgsql/src/pl_exec.c#L3889-L3923\" rel=\"nofollow\"\u003e\u003ccode\u003epl_exec.c\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edoc.plpgsql.18\u003c/code\u003e — \u003ca href=\"/docs/18/plpgsql-errors-and-messages.html\" rel=\"nofollow\"\u003eErrors and Messages\u003c/a\u003e and \u003ca href=\"/docs/18/plpgsql-control-structures.html\" rel=\"nofollow\"\u003eError Trapping\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edoc.protocol.18\u003c/code\u003e — \u003ca href=\"/docs/18/protocol-error-fields.html\" rel=\"nofollow\"\u003eError and Notice Message Fields\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edoc.transactions.18\u003c/code\u003e — \u003ca href=\"/docs/18/tutorial-transactions.html\" rel=\"nofollow\"\u003eTransactions\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n","SourceRevision":"english-manuals:0407dc4e5a74bde39aa00848c070b44f4cbf5c40b84ac0bccb5f9be3e53e3a62","ContentHash":"c992a4c9aa0fbf0afb90c720bf8673b6e5fba14c30bf4ec569431cd2819b40f9","Payload":{"body_md":"\n## At a glance {#at-a-glance}\n\n`P0001` is the `raise_exception` condition in PostgreSQL's PL/pgSQL-specific Class P0. A `RAISE EXCEPTION` statement with no condition name and no explicit SQLSTATE defaults to this code. The message is supplied by the function author, so `P0001` is usually an application or procedure control signal rather than a diagnosis of one server subsystem.\n\nThe level and code are separate choices. `EXCEPTION` is the default `RAISE` level and normally aborts the current transaction. `NOTICE`, `WARNING`, `INFO`, `LOG`, and `DEBUG` generate messages without that exception behavior; an explicit `ERRCODE` can also choose a different SQLSTATE. Always capture the severity and SQLSTATE together.\n\nThe representative case `plpgsql_raise_exception` creates a function containing `RAISE EXCEPTION 'calibration exception'`, calls it, and then runs `SELECT 1` on the same autocommit connection. PostgreSQL 18.6 and 10.21 both returned `P0001`, preserved the message, left the connection `IDLE`, and accepted the follow-up query. The SQL excerpt below is the complete ordered function, call, and follow-up from the shared snippet registry; the runner owns the schema-qualified name and cleanup.\n\n\n## Meaning and trigger paths {#meaning}\n\nThe 18.6 directory places `P0001` in Class P0, `PL/pgSQL Error`, and names it `raise_exception`. The class is PostgreSQL-specific. In the PL/pgSQL executor, the default code is assigned only when no code was supplied and the level is at least `ERROR`; the executor then reports the caller's message and optional detail, hint, and object fields.\n\nThe syntax supports several distinct paths:\n\n- `RAISE EXCEPTION 'message'` uses `P0001` by default.\n- `RAISE EXCEPTION condition_name` uses the condition's SQLSTATE, so it need not be `P0001`.\n- `RAISE EXCEPTION SQLSTATE '5-character-code'` or `RAISE ... USING ERRCODE = ...` lets a procedure expose a domain-specific contract. PostgreSQL permits user-chosen five-character codes other than `00000`.\n- A lower level such as `RAISE WARNING 'message'` emits a message at that priority. It is not the same transaction event as `RAISE EXCEPTION`, even if the caller chooses an explicit error code.\n\nThe no-argument `RAISE;` form is re-raise control inside an active exception handler. Its behavior and SQLSTATE are determined by the exception being re-raised; it is not a new default `P0001` event.\n\n## Messages and diagnostics {#messages}\n\nThe representative registry operation is:\n\n```sql\nCREATE FUNCTION raise_exception_case() RETURNS void\nLANGUAGE plpgsql AS $$\nBEGIN\n    RAISE EXCEPTION 'calibration exception';\nEND\n$$;\nSELECT raise_exception_case();\nSELECT 1;\n```\n\nThe function name is schema-qualified and generated by the test executor in the actual run. The observed 18.6 diagnostic was:\n\n```text\nSQLSTATE: P0001\nseverity: ERROR\nmessage_primary: calibration exception\ncontext: PL/pgSQL function ...raise_exception_case() line 3 at RAISE\nsource: pl_exec.c / exec_stmt_raise / line 3923\n```\n\nThere is no universal English primary message for `P0001`; the function supplies it. `USING MESSAGE`, `DETAIL`, `HINT`, `COLUMN`, `CONSTRAINT`, `DATATYPE`, `TABLE`, and `SCHEMA` can add structured diagnostics. Localized message text can change while SQLSTATE remains stable, so branch on `P0001` and inspect the structured fields rather than parsing the primary string.\n\n## Diagnosis {#diagnosis}\n\nFirst determine whether the code came from an intentional `RAISE EXCEPTION` or from a different domain condition that the function explicitly selected. Record SQLSTATE, localized and nonlocalized severity, primary message, detail, hint, context, source location, and the statement that called the function. In a PL/pgSQL handler, `SQLSTATE` and `SQLERRM` identify the active exception, while `GET STACKED DIAGNOSTICS` retrieves its fields.\n\nThen locate the function branch and its transaction context. A failed call in autocommit ends that statement and leaves the connection ready for another command, as the representative case shows. A call inside an explicit transaction normally leaves the transaction aborted until the client issues `ROLLBACK` or rolls back to a savepoint. The server connection is not necessarily terminated.\n\nAn `EXCEPTION` clause changes the boundary. The protected body runs in a subtransaction; when it errors, persistent changes made by that body are rolled back before the first matching condition handler runs, while changes made outside it remain. `WHEN OTHERS` matches every error except `QUERY_CANCELED` and `ASSERT_FAILURE`; it is broad and should not be used as a substitute for identifying the intended `P0001` path.\n\n## Response {#response}\n\nUse `P0001` when the procedure intentionally exposes the generic PL/pgSQL raise contract. If callers need to distinguish validation, conflict, quota, or another business outcome, choose and document an appropriate SQLSTATE and add `DETAIL` or `HINT` that helps the caller act. Do not turn unrelated server errors into `P0001` merely to simplify application code.\n\nAt the client boundary, roll back an explicit transaction before issuing unrelated commands, or use a savepoint when the caller can safely isolate the function call. In PL/pgSQL, prefer a narrow handler such as `WHEN raise_exception` or `WHEN SQLSTATE 'P0001'` when the recovery is specific. If a broad handler is required, preserve `RETURNED_SQLSTATE`, `MESSAGE_TEXT`, `PG_EXCEPTION_DETAIL`, `PG_EXCEPTION_HINT`, and context before deciding whether to continue or re-raise.\n\nThe natural `RAISE EXCEPTION` case is safe to demonstrate because it exercises the intended PL/pgSQL mechanism. That does not make `P0001` evidence of a server fault; it is an explicit exception raised by the function.\n\n## Versions {#versions}\n\nThe catalogue records `P0001` in the locked 8.0.0–8.4.22 pre-9.0 formal sources, every formal snapshot from 9.0.23 through 18.6, and the 19 Beta 3 preview. The same-tag `REL8_1_4` `errcodes.sgml` table already lists `P0001` as `raise_exception`, confirming that condition-name observation by 8.1.4. The class title is `PL/pgSQL Error (PostgreSQL-specific error class)` in the 9.0 header view and changes to `PL/pgSQL Error` in the 9.1 text definition. Candidate source gaps remain for 7.0–7.3; these are observed catalogue boundaries, not asserted implementation introduction dates.\n\nThe fixed 18.6 source commit is `724edf9bde9d356724ad384a2e196edc3c9f80f7`. The default `RAISE EXCEPTION` rule is documented for PostgreSQL 18 and source-confirmed in the 18.6 executor. The representative case passed on PostgreSQL 18.6 and 10.21; it does not test every custom code, handler, or transaction mode.\n\n## Related {#related}\n\n[`P0000` — `plpgsql_error`](/wiki/sqlstate/P0000/) is the broader PL/pgSQL-specific class condition. [`P0002` — `no_data_found`](/wiki/sqlstate/P0002/), [`P0003` — `too_many_rows`](/wiki/sqlstate/P0003/), and [`P0004` — `assert_failure`](/wiki/sqlstate/P0004/) are distinct P0 conditions. [`25P02` — `in_failed_sql_transaction`](/wiki/sqlstate/25P02/) describes the follow-on state after an unhandled exception aborts an explicit transaction. [`XX000` — `internal_error`](/wiki/sqlstate/XX000/) is a server internal-error code and should not be used as a synonym for an intentional `RAISE`.\n\n## Sources {#sources}\n\nThe structured evidence is recorded in the [public evidence JSON](#sources). Source records are pinned to PostgreSQL commit `724edf9bde9d356724ad384a2e196edc3c9f80f7`; runtime records retain the shared snippet registry, both target summaries, and run `P0001-snippet-registry-final-20260909`.\n\n- `src.errcodes.18.6` — [`errcodes.txt`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt#L487-L494)\n- `src.pl-exec.18.6` — [`pl_exec.c`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/pl/plpgsql/src/pl_exec.c#L3889-L3923)\n- `doc.plpgsql.18` — [Errors and Messages](/docs/18/plpgsql-errors-and-messages.html) and [Error Trapping](/docs/18/plpgsql-control-structures.html)\n- `doc.protocol.18` — [Error and Notice Message Fields](/docs/18/protocol-error-fields.html)\n- `doc.transactions.18` — [Transactions](/docs/18/tutorial-transactions.html)\n","description":"PostgreSQL uses SQLSTATE P0001 for a PL/pgSQL RAISE EXCEPTION with no explicit condition or SQLSTATE. Diagnose the application control flow and recover at the correct transaction boundary.","is_stale":false,"name":"","sections":[{"anchor":"at-a-glance","heading":"At a glance","html":"\u003cp\u003e\u003ccode\u003eP0001\u003c/code\u003e is the \u003ccode\u003eraise_exception\u003c/code\u003e condition in PostgreSQL's PL/pgSQL-specific Class P0. A \u003ccode\u003eRAISE EXCEPTION\u003c/code\u003e statement with no condition name and no explicit SQLSTATE defaults to this code. The message is supplied by the function author, so \u003ccode\u003eP0001\u003c/code\u003e is usually an application or procedure control signal rather than a diagnosis of one server subsystem.\u003c/p\u003e\n\u003cp\u003eThe level and code are separate choices. \u003ccode\u003eEXCEPTION\u003c/code\u003e is the default \u003ccode\u003eRAISE\u003c/code\u003e level and normally aborts the current transaction. \u003ccode\u003eNOTICE\u003c/code\u003e, \u003ccode\u003eWARNING\u003c/code\u003e, \u003ccode\u003eINFO\u003c/code\u003e, \u003ccode\u003eLOG\u003c/code\u003e, and \u003ccode\u003eDEBUG\u003c/code\u003e generate messages without that exception behavior; an explicit \u003ccode\u003eERRCODE\u003c/code\u003e can also choose a different SQLSTATE. Always capture the severity and SQLSTATE together.\u003c/p\u003e\n\u003cp\u003eThe representative case \u003ccode\u003eplpgsql_raise_exception\u003c/code\u003e creates a function containing \u003ccode\u003eRAISE EXCEPTION 'calibration exception'\u003c/code\u003e, calls it, and then runs \u003ccode\u003eSELECT 1\u003c/code\u003e on the same autocommit connection. PostgreSQL 18.6 and 10.21 both returned \u003ccode\u003eP0001\u003c/code\u003e, preserved the message, left the connection \u003ccode\u003eIDLE\u003c/code\u003e, and accepted the follow-up query. The SQL excerpt below is the complete ordered function, call, and follow-up from the shared snippet registry; the runner owns the schema-qualified name and cleanup.\u003c/p\u003e"},{"anchor":"meaning","heading":"Meaning and trigger paths","html":"\u003cp\u003eThe 18.6 directory places \u003ccode\u003eP0001\u003c/code\u003e in Class P0, \u003ccode\u003ePL/pgSQL Error\u003c/code\u003e, and names it \u003ccode\u003eraise_exception\u003c/code\u003e. The class is PostgreSQL-specific. In the PL/pgSQL executor, the default code is assigned only when no code was supplied and the level is at least \u003ccode\u003eERROR\u003c/code\u003e; the executor then reports the caller's message and optional detail, hint, and object fields.\u003c/p\u003e\n\u003cp\u003eThe syntax supports several distinct paths:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eRAISE EXCEPTION 'message'\u003c/code\u003e uses \u003ccode\u003eP0001\u003c/code\u003e by default.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRAISE EXCEPTION condition_name\u003c/code\u003e uses the condition's SQLSTATE, so it need not be \u003ccode\u003eP0001\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRAISE EXCEPTION SQLSTATE '5-character-code'\u003c/code\u003e or \u003ccode\u003eRAISE ... USING ERRCODE = ...\u003c/code\u003e lets a procedure expose a domain-specific contract. PostgreSQL permits user-chosen five-character codes other than \u003ccode\u003e00000\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eA lower level such as \u003ccode\u003eRAISE WARNING 'message'\u003c/code\u003e emits a message at that priority. It is not the same transaction event as \u003ccode\u003eRAISE EXCEPTION\u003c/code\u003e, even if the caller chooses an explicit error code.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe no-argument \u003ccode\u003eRAISE;\u003c/code\u003e form is re-raise control inside an active exception handler. Its behavior and SQLSTATE are determined by the exception being re-raised; it is not a new default \u003ccode\u003eP0001\u003c/code\u003e event.\u003c/p\u003e"},{"anchor":"messages","heading":"Messages and diagnostics","html":"\u003cp\u003eThe representative registry operation is:\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"language-sql\"\u003eCREATE FUNCTION raise_exception_case() RETURNS void\nLANGUAGE plpgsql AS $$\nBEGIN\n    RAISE EXCEPTION 'calibration exception';\nEND\n$$;\nSELECT raise_exception_case();\nSELECT 1;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe function name is schema-qualified and generated by the test executor in the actual run. The observed 18.6 diagnostic was:\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"language-text\"\u003eSQLSTATE: P0001\nseverity: ERROR\nmessage_primary: calibration exception\ncontext: PL/pgSQL function ...raise_exception_case() line 3 at RAISE\nsource: pl_exec.c / exec_stmt_raise / line 3923\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThere is no universal English primary message for \u003ccode\u003eP0001\u003c/code\u003e; the function supplies it. \u003ccode\u003eUSING MESSAGE\u003c/code\u003e, \u003ccode\u003eDETAIL\u003c/code\u003e, \u003ccode\u003eHINT\u003c/code\u003e, \u003ccode\u003eCOLUMN\u003c/code\u003e, \u003ccode\u003eCONSTRAINT\u003c/code\u003e, \u003ccode\u003eDATATYPE\u003c/code\u003e, \u003ccode\u003eTABLE\u003c/code\u003e, and \u003ccode\u003eSCHEMA\u003c/code\u003e can add structured diagnostics. Localized message text can change while SQLSTATE remains stable, so branch on \u003ccode\u003eP0001\u003c/code\u003e and inspect the structured fields rather than parsing the primary string.\u003c/p\u003e"},{"anchor":"diagnosis","heading":"Diagnosis","html":"\u003cp\u003eFirst determine whether the code came from an intentional \u003ccode\u003eRAISE EXCEPTION\u003c/code\u003e or from a different domain condition that the function explicitly selected. Record SQLSTATE, localized and nonlocalized severity, primary message, detail, hint, context, source location, and the statement that called the function. In a PL/pgSQL handler, \u003ccode\u003eSQLSTATE\u003c/code\u003e and \u003ccode\u003eSQLERRM\u003c/code\u003e identify the active exception, while \u003ccode\u003eGET STACKED DIAGNOSTICS\u003c/code\u003e retrieves its fields.\u003c/p\u003e\n\u003cp\u003eThen locate the function branch and its transaction context. A failed call in autocommit ends that statement and leaves the connection ready for another command, as the representative case shows. A call inside an explicit transaction normally leaves the transaction aborted until the client issues \u003ccode\u003eROLLBACK\u003c/code\u003e or rolls back to a savepoint. The server connection is not necessarily terminated.\u003c/p\u003e\n\u003cp\u003eAn \u003ccode\u003eEXCEPTION\u003c/code\u003e clause changes the boundary. The protected body runs in a subtransaction; when it errors, persistent changes made by that body are rolled back before the first matching condition handler runs, while changes made outside it remain. \u003ccode\u003eWHEN OTHERS\u003c/code\u003e matches every error except \u003ccode\u003eQUERY_CANCELED\u003c/code\u003e and \u003ccode\u003eASSERT_FAILURE\u003c/code\u003e; it is broad and should not be used as a substitute for identifying the intended \u003ccode\u003eP0001\u003c/code\u003e path.\u003c/p\u003e"},{"anchor":"response","heading":"Response","html":"\u003cp\u003eUse \u003ccode\u003eP0001\u003c/code\u003e when the procedure intentionally exposes the generic PL/pgSQL raise contract. If callers need to distinguish validation, conflict, quota, or another business outcome, choose and document an appropriate SQLSTATE and add \u003ccode\u003eDETAIL\u003c/code\u003e or \u003ccode\u003eHINT\u003c/code\u003e that helps the caller act. Do not turn unrelated server errors into \u003ccode\u003eP0001\u003c/code\u003e merely to simplify application code.\u003c/p\u003e\n\u003cp\u003eAt the client boundary, roll back an explicit transaction before issuing unrelated commands, or use a savepoint when the caller can safely isolate the function call. In PL/pgSQL, prefer a narrow handler such as \u003ccode\u003eWHEN raise_exception\u003c/code\u003e or \u003ccode\u003eWHEN SQLSTATE 'P0001'\u003c/code\u003e when the recovery is specific. If a broad handler is required, preserve \u003ccode\u003eRETURNED_SQLSTATE\u003c/code\u003e, \u003ccode\u003eMESSAGE_TEXT\u003c/code\u003e, \u003ccode\u003ePG_EXCEPTION_DETAIL\u003c/code\u003e, \u003ccode\u003ePG_EXCEPTION_HINT\u003c/code\u003e, and context before deciding whether to continue or re-raise.\u003c/p\u003e\n\u003cp\u003eThe natural \u003ccode\u003eRAISE EXCEPTION\u003c/code\u003e case is safe to demonstrate because it exercises the intended PL/pgSQL mechanism. That does not make \u003ccode\u003eP0001\u003c/code\u003e evidence of a server fault; it is an explicit exception raised by the function.\u003c/p\u003e"},{"anchor":"versions","heading":"Versions","html":"\u003cp\u003eThe catalogue records \u003ccode\u003eP0001\u003c/code\u003e in the locked 8.0.0–8.4.22 pre-9.0 formal sources, every formal snapshot from 9.0.23 through 18.6, and the 19 Beta 3 preview. The same-tag \u003ccode\u003eREL8_1_4\u003c/code\u003e \u003ccode\u003eerrcodes.sgml\u003c/code\u003e table already lists \u003ccode\u003eP0001\u003c/code\u003e as \u003ccode\u003eraise_exception\u003c/code\u003e, confirming that condition-name observation by 8.1.4. The class title is \u003ccode\u003ePL/pgSQL Error (PostgreSQL-specific error class)\u003c/code\u003e in the 9.0 header view and changes to \u003ccode\u003ePL/pgSQL Error\u003c/code\u003e in the 9.1 text definition. Candidate source gaps remain for 7.0–7.3; these are observed catalogue boundaries, not asserted implementation introduction dates.\u003c/p\u003e\n\u003cp\u003eThe fixed 18.6 source commit is \u003ccode\u003e724edf9bde9d356724ad384a2e196edc3c9f80f7\u003c/code\u003e. The default \u003ccode\u003eRAISE EXCEPTION\u003c/code\u003e rule is documented for PostgreSQL 18 and source-confirmed in the 18.6 executor. The representative case passed on PostgreSQL 18.6 and 10.21; it does not test every custom code, handler, or transaction mode.\u003c/p\u003e"},{"anchor":"related","heading":"Related","html":"\u003cp\u003e\u003ca href=\"/wiki/sqlstate/P0000/\"\u003e\u003ccode\u003eP0000\u003c/code\u003e — \u003ccode\u003eplpgsql_error\u003c/code\u003e\u003c/a\u003e is the broader PL/pgSQL-specific class condition. \u003ca href=\"/wiki/sqlstate/P0002/\"\u003e\u003ccode\u003eP0002\u003c/code\u003e — \u003ccode\u003eno_data_found\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sqlstate/P0003/\"\u003e\u003ccode\u003eP0003\u003c/code\u003e — \u003ccode\u003etoo_many_rows\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"/wiki/sqlstate/P0004/\"\u003e\u003ccode\u003eP0004\u003c/code\u003e — \u003ccode\u003eassert_failure\u003c/code\u003e\u003c/a\u003e are distinct P0 conditions. \u003ca href=\"/wiki/sqlstate/25P02/\"\u003e\u003ccode\u003e25P02\u003c/code\u003e — \u003ccode\u003ein_failed_sql_transaction\u003c/code\u003e\u003c/a\u003e describes the follow-on state after an unhandled exception aborts an explicit transaction. \u003ca href=\"/wiki/sqlstate/XX000/\"\u003e\u003ccode\u003eXX000\u003c/code\u003e — \u003ccode\u003einternal_error\u003c/code\u003e\u003c/a\u003e is a server internal-error code and should not be used as a synonym for an intentional \u003ccode\u003eRAISE\u003c/code\u003e.\u003c/p\u003e"},{"anchor":"sources","heading":"Sources","html":"\u003cp\u003eThe structured evidence is recorded in the \u003ca href=\"#sources\"\u003epublic evidence JSON\u003c/a\u003e. Source records are pinned to PostgreSQL commit \u003ccode\u003e724edf9bde9d356724ad384a2e196edc3c9f80f7\u003c/code\u003e; runtime records retain the shared snippet registry, both target summaries, and run \u003ccode\u003eP0001-snippet-registry-final-20260909\u003c/code\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esrc.errcodes.18.6\u003c/code\u003e — \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt#L487-L494\"\u003e\u003ccode\u003eerrcodes.txt\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esrc.pl-exec.18.6\u003c/code\u003e — \u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/pl/plpgsql/src/pl_exec.c#L3889-L3923\"\u003e\u003ccode\u003epl_exec.c\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edoc.plpgsql.18\u003c/code\u003e — \u003ca href=\"/docs/18/plpgsql-errors-and-messages.html\"\u003eErrors and Messages\u003c/a\u003e and \u003ca href=\"/docs/18/plpgsql-control-structures.html\"\u003eError Trapping\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edoc.protocol.18\u003c/code\u003e — \u003ca href=\"/docs/18/protocol-error-fields.html\"\u003eError and Notice Message Fields\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edoc.transactions.18\u003c/code\u003e — \u003ca href=\"/docs/18/tutorial-transactions.html\"\u003eTransactions\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e"}],"summary":"P0001 is the raise_exception condition in PostgreSQL's PL/pgSQL-specific Class P0. A RAISE EXCEPTION statement with no condition name and no explicit SQLSTATE defaults to this code. The message is supplied by the function author, so P0001 is usually an application or procedure control signal rather than a diagnosis of one server subsystem.","title":"P0001 — raise_exception","translation_source_rev":"1040c711270493d70416785addb185d56c6593c4c1375cc61dab62714a69f79c"}},"RequestedLocale":"en","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20","8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":{"aliases":[],"catalogue_notes":{"earliest_observed":"8.0.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":"present","preview_scope":["19beta3"]},"class":"P0","class_name":"PL/pgSQL Error","condition_name":"raise_exception","condition_names":["raise_exception"],"definition_changes":[{"evidence_refs":["postgresql:REL9_0_23:src/include/utils/errcodes.h","postgresql:REL9_1_0:src/backend/utils/errcodes.txt"],"first_observed":"9.1.0","from":["PL/pgSQL Error (PostgreSQL-specific error class)"],"kind":"class_title","notes":"Observed definition change between fixed release snapshots; exact commit introduction may precede the first release tag.","to":["PL/pgSQL Error"]}],"english_manuals":{"10":{"aliases":[],"class_name":"PL/pgSQL Error","condition_name":"raise_exception","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"9607b57e9f639b61785677ba4d226f5889fe1d19c8bf55a3337691899a9073cd","slug":"10"},"lang":"en","sqlstate":"P0001"},"11":{"aliases":[],"class_name":"PL/pgSQL Error","condition_name":"raise_exception","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"3a024e38263ad77de228eed7930b842b42dc1d5cab9ca3727be8eed872ec9539","slug":"11"},"lang":"en","sqlstate":"P0001"},"12":{"aliases":[],"class_name":"PL/pgSQL Error","condition_name":"raise_exception","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"1444bd6a138537cd75be88a220ee9472ac528f0cfc58758e49636d85455efe98","slug":"12"},"lang":"en","sqlstate":"P0001"},"13":{"aliases":[],"class_name":"PL/pgSQL Error","condition_name":"raise_exception","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"4a3ef8af218e5736dfde8660ba609e84233b6b3bac7e0210ff8724cf1b27b2db","slug":"13"},"lang":"en","sqlstate":"P0001"},"14":{"aliases":[],"class_name":"PL/pgSQL Error","condition_name":"raise_exception","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"1c12e83304e0f4ff64c9d98ca5e3007df6756932ed19867a4fa0e0650f6c5751","slug":"14"},"lang":"en","sqlstate":"P0001"},"15":{"aliases":[],"class_name":"PL/pgSQL Error","condition_name":"raise_exception","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"2161f58f6e87f6535b3b1f3d4661427bb6765f4f6b074fcc16fac97594b50599","slug":"15"},"lang":"en","sqlstate":"P0001"},"16":{"aliases":[],"class_name":"PL/pgSQL Error","condition_name":"raise_exception","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"928e705933d7c3d018ae3fba9d800b34e6325746d157339dce878473c519d100","slug":"16"},"lang":"en","sqlstate":"P0001"},"17":{"aliases":[],"class_name":"PL/pgSQL Error","condition_name":"raise_exception","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"868135520af87351e3ea1ba42656111cbd2d157d98e1fef05ea158ac5729d8b1","slug":"17"},"lang":"en","sqlstate":"P0001"},"18":{"aliases":[],"class_name":"PL/pgSQL Error","condition_name":"raise_exception","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"56dacf78e618ff0fd8c533e05db597b80d7ebbad7f8e512a888217d0640aa328","slug":"18"},"lang":"en","sqlstate":"P0001"},"19":{"aliases":[],"class_name":"PL/pgSQL Error","condition_name":"raise_exception","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"63fb8d1aa9f494eeab9d0f8542a2b673f7746ee41ae2689d19403cb3cc425a5c","slug":"19"},"lang":"en","sqlstate":"P0001"},"20":{"aliases":[],"class_name":"PL/pgSQL Error","condition_name":"raise_exception","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"0d3f602127cd137cf343b32d5fa78f175eeb6cdcb6353b1f6f998ede6cb7b911","slug":"devel"},"lang":"en","sqlstate":"P0001"},"8.1":{"aliases":[],"class_name":"PL/pgSQL Error","condition_name":"raise_exception","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"0177b8818643540dec7bbef1fe92b60a3961debd52a68412301647ca146c7f2d","slug":"8.1"},"lang":"en","sqlstate":"P0001"},"8.2":{"aliases":[],"class_name":"PL/pgSQL Error","condition_name":"raise_exception","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"d65bf7cff5958c304352c974e477183e21efe9bd68e03786001874653bf66963","slug":"8.2"},"lang":"en","sqlstate":"P0001"},"8.3":{"aliases":[],"class_name":"PL/pgSQL Error","condition_name":"raise_exception","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"118059002973cdec5466ed3cabe7c9370b4c93d8ab542b8661d0eeb50cf6950d","slug":"8.3"},"lang":"en","sqlstate":"P0001"},"8.4":{"aliases":[],"class_name":"PL/pgSQL Error","condition_name":"raise_exception","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"d63b10001be0581484022e33b78124a36bb3bd68d3ebe022cd7dfb375233432f","slug":"8.4"},"lang":"en","sqlstate":"P0001"},"9.0":{"aliases":[],"class_name":"PL/pgSQL Error","condition_name":"raise_exception","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"658fc09c4c10eed7ac7dea4ed3e3eff8cc5791eb5af26b7b4a31b0f863b316db","slug":"9.0"},"lang":"en","sqlstate":"P0001"},"9.1":{"aliases":[],"class_name":"PL/pgSQL Error","condition_name":"raise_exception","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"2d118b06c3b644c28b3ddefe9e4bef99a180321582209332372a5318f5bf8d1c","slug":"9.1"},"lang":"en","sqlstate":"P0001"},"9.2":{"aliases":[],"class_name":"PL/pgSQL Error","condition_name":"raise_exception","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"2a37575b39c858d37c58fc4de6a16109554fd3306602294180d78faa1170d2cd","slug":"9.2"},"lang":"en","sqlstate":"P0001"},"9.3":{"aliases":[],"class_name":"PL/pgSQL Error","condition_name":"raise_exception","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"2214b6869d764f7fba7221aefcdf1ab049b55ad51d63aa52054f3cd2c2533ae9","slug":"9.3"},"lang":"en","sqlstate":"P0001"},"9.4":{"aliases":[],"class_name":"PL/pgSQL Error","condition_name":"raise_exception","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"7243e2d653befe88733222ede67958f0c4b7fae967b58eb97807aeb3f32b4096","slug":"9.4"},"lang":"en","sqlstate":"P0001"},"9.5":{"aliases":[],"class_name":"PL/pgSQL Error","condition_name":"raise_exception","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"d40bc67cb331f1e4ccc0821ff57832c6c230edb0dce3ba4249defd21ae7ea29d","slug":"9.5"},"lang":"en","sqlstate":"P0001"},"9.6":{"aliases":[],"class_name":"PL/pgSQL Error","condition_name":"raise_exception","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"2ab55e487571c8998ec39b3d1bbae29ac6fc5c310875bee422d9a7b8b3fde5b3","slug":"9.6"},"lang":"en","sqlstate":"P0001"}},"history_boundary":{"earliest_observed":"8.0.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":"8.0.0","known_lower_bound":"8.0.0 or earlier","last_observed":"8.4.22","notes":"Observed in the locked pre-9 formal release source; the label is a proven presence bound, not an exact introduction commit. Candidate source gaps remain for majors 7.0, 7.1, 7.2, 7.3.","scanned_formal_release_count":153,"scanned_source_scope":"7.4..8.4 definition files; 7.0..7.3 candidate-path source gap probes","source_gap_majors":["7.0","7.1","7.2","7.3"],"status":"partially_scanned"},"preview_snapshots":["19beta3"],"scanned_from":"9.0.0","scanned_to":"18.6"},"introduced":null,"known_present_by":"8.0.0","macros":["ERRCODE_RAISE_EXCEPTION"],"manual_presence":["8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6","10","11","12","13","14","15","16","17","18","19","20"],"pre9_first_observed":"8.0.0","pre9_introduction_boundary":null,"pre9_last_observed":"8.4.22","pre9_presence_intervals":[{"end":"8.0.26","end_major":"8.0","end_tag":"REL8_0_26","evidence_count":27,"position":0,"start":"8.0.0","start_major":"8.0","start_tag":"REL8_0_0"},{"end":"8.1.23","end_major":"8.1","end_tag":"REL8_1_23","evidence_count":24,"position":1,"start":"8.1.0","start_major":"8.1","start_tag":"REL8_1_0"},{"end":"8.2.23","end_major":"8.2","end_tag":"REL8_2_23","evidence_count":24,"position":2,"start":"8.2.0","start_major":"8.2","start_tag":"REL8_2_0"},{"end":"8.3.23","end_major":"8.3","end_tag":"REL8_3_23","evidence_count":24,"position":3,"start":"8.3.0","start_major":"8.3","start_tag":"REL8_3_0"},{"end":"8.4.22","end_major":"8.4","end_tag":"REL8_4_22","evidence_count":23,"position":4,"start":"8.4.0","start_major":"8.4","start_tag":"REL8_4_0"}],"pre9_status":"present","presence_intervals":[{"end":"9.0.23","end_major":"9.0","end_tag":"REL9_0_23","evidence_count":24,"position":0,"start":"9.0.0","start_major":"9.0","start_tag":"REL9_0_0"},{"end":"9.1.24","end_major":"9.1","end_tag":"REL9_1_24","evidence_count":25,"position":1,"start":"9.1.0","start_major":"9.1","start_tag":"REL9_1_0"},{"end":"9.2.24","end_major":"9.2","end_tag":"REL9_2_24","evidence_count":25,"position":2,"start":"9.2.0","start_major":"9.2","start_tag":"REL9_2_0"},{"end":"9.3.25","end_major":"9.3","end_tag":"REL9_3_25","evidence_count":26,"position":3,"start":"9.3.0","start_major":"9.3","start_tag":"REL9_3_0"},{"end":"9.4.26","end_major":"9.4","end_tag":"REL9_4_26","evidence_count":27,"position":4,"start":"9.4.0","start_major":"9.4","start_tag":"REL9_4_0"},{"end":"9.5.25","end_major":"9.5","end_tag":"REL9_5_25","evidence_count":26,"position":5,"start":"9.5.0","start_major":"9.5","start_tag":"REL9_5_0"},{"end":"9.6.24","end_major":"9.6","end_tag":"REL9_6_24","evidence_count":25,"position":6,"start":"9.6.0","start_major":"9.6","start_tag":"REL9_6_0"},{"end":"10.23","end_major":"10","end_tag":"REL_10_23","evidence_count":24,"position":7,"start":"10.0","start_major":"10","start_tag":"REL_10_0"},{"end":"11.22","end_major":"11","end_tag":"REL_11_22","evidence_count":23,"position":8,"start":"11.0","start_major":"11","start_tag":"REL_11_0"},{"end":"12.22","end_major":"12","end_tag":"REL_12_22","evidence_count":23,"position":9,"start":"12.0","start_major":"12","start_tag":"REL_12_0"},{"end":"13.23","end_major":"13","end_tag":"REL_13_23","evidence_count":24,"position":10,"start":"13.0","start_major":"13","start_tag":"REL_13_0"},{"end":"14.24","end_major":"14","end_tag":"REL_14_24","evidence_count":25,"position":11,"start":"14.0","start_major":"14","start_tag":"REL_14_0"},{"end":"15.19","end_major":"15","end_tag":"REL_15_19","evidence_count":20,"position":12,"start":"15.0","start_major":"15","start_tag":"REL_15_0"},{"end":"16.15","end_major":"16","end_tag":"REL_16_15","evidence_count":16,"position":13,"start":"16.0","start_major":"16","start_tag":"REL_16_0"},{"end":"17.11","end_major":"17","end_tag":"REL_17_11","evidence_count":12,"position":14,"start":"17.0","start_major":"17","start_tag":"REL_17_0"},{"end":"18.4","end_major":"18","end_tag":"REL_18_4","evidence_count":5,"position":15,"start":"18.0","start_major":"18","start_tag":"REL_18_0"},{"end":"18.6","end_major":"18","end_tag":"REL_18_6","evidence_count":1,"position":16,"start":"18.6","start_major":"18","start_tag":"REL_18_6"}],"present_in_snapshots":["9.0.23","9.1.24","9.2.24","9.3.25","9.4.26","9.5.25","9.6.24","10.23","11.22","12.22","13.23","14.24","15.19","16.15","17.11","18.6","19beta3"],"preview_in_snapshots":["19beta3"],"primary_macro":"ERRCODE_RAISE_EXCEPTION","removed":null,"schema_version":2,"severity_classes":["E"],"sources":[{"channel":"formal","code_count":0,"commit":"c22b7eccd368754ea96865c046764382ab05db4b","id":"postgresql:REL8_0_0:src/include/utils/errcodes.h","major":"8.0","path":"src/include/utils/errcodes.h","raw_path":".cache/catalogue/pre9/raw/definition/REL8_0_0.h","raw_url":"https://raw.githubusercontent.com/postgres/postgres/c22b7eccd368754ea96865c046764382ab05db4b/src/include/utils/errcodes.h","record_count":0,"release":"8.0.0","repository":"https://github.com/postgres/postgres.git","sha256":"8b928e18943235ff0543eab22189ade1a018de43d72275f28b79df7d14e47849","size":20020,"source_format":"errcodes.h","source_role":"primary_definition","tag":"REL8_0_0","url":"https://github.com/postgres/postgres/blob/c22b7eccd368754ea96865c046764382ab05db4b/src/include/utils/errcodes.h","version":"8.0.0"},{"channel":"formal","code_count":0,"commit":"2a80c3c4dc56a44a26805c889ef71b614e769266","id":"postgresql:REL8_1_0:src/include/utils/errcodes.h","major":"8.1","path":"src/include/utils/errcodes.h","raw_path":".cache/catalogue/pre9/raw/definition/REL8_1_0.h","raw_url":"https://raw.githubusercontent.com/postgres/postgres/2a80c3c4dc56a44a26805c889ef71b614e769266/src/include/utils/errcodes.h","record_count":0,"release":"8.1.0","repository":"https://github.com/postgres/postgres.git","sha256":"52cab83d60a3b5fec10786b65bbfba39ef7404bc0e4599f6c239f2b56ad6a8ed","size":20109,"source_format":"errcodes.h","source_role":"primary_definition","tag":"REL8_1_0","url":"https://github.com/postgres/postgres/blob/2a80c3c4dc56a44a26805c889ef71b614e769266/src/include/utils/errcodes.h","version":"8.1.0"},{"channel":"formal","code_count":0,"commit":"2f52d7260ceac8e57613516d82a7404fbf3d137b","id":"postgresql:REL8_2_0:src/include/utils/errcodes.h","major":"8.2","path":"src/include/utils/errcodes.h","raw_path":".cache/catalogue/pre9/raw/definition/REL8_2_0.h","raw_url":"https://raw.githubusercontent.com/postgres/postgres/2f52d7260ceac8e57613516d82a7404fbf3d137b/src/include/utils/errcodes.h","record_count":0,"release":"8.2.0","repository":"https://github.com/postgres/postgres.git","sha256":"1f13bd962e663bf5222198a4b30fb016f1f21141b2c4ed2be351595ecf04f269","size":20247,"source_format":"errcodes.h","source_role":"primary_definition","tag":"REL8_2_0","url":"https://github.com/postgres/postgres/blob/2f52d7260ceac8e57613516d82a7404fbf3d137b/src/include/utils/errcodes.h","version":"8.2.0"},{"channel":"formal","code_count":0,"commit":"9e647a13872a5f34dc0009566925c5c352463780","id":"postgresql:REL8_3_0:src/include/utils/errcodes.h","major":"8.3","path":"src/include/utils/errcodes.h","raw_path":".cache/catalogue/pre9/raw/definition/REL8_3_0.h","raw_url":"https://raw.githubusercontent.com/postgres/postgres/9e647a13872a5f34dc0009566925c5c352463780/src/include/utils/errcodes.h","record_count":0,"release":"8.3.0","repository":"https://github.com/postgres/postgres.git","sha256":"8df5862003e7906ea11cf626431a426d1c7ae65d4fb85e526a46e29059b8e346","size":20650,"source_format":"errcodes.h","source_role":"primary_definition","tag":"REL8_3_0","url":"https://github.com/postgres/postgres/blob/9e647a13872a5f34dc0009566925c5c352463780/src/include/utils/errcodes.h","version":"8.3.0"},{"channel":"formal","code_count":0,"commit":"4d53a2f9699547bdc12831d2860c9d44c465e805","id":"postgresql:REL8_4_0:src/include/utils/errcodes.h","major":"8.4","path":"src/include/utils/errcodes.h","raw_path":".cache/catalogue/pre9/raw/definition/REL8_4_0.h","raw_url":"https://raw.githubusercontent.com/postgres/postgres/4d53a2f9699547bdc12831d2860c9d44c465e805/src/include/utils/errcodes.h","record_count":0,"release":"8.4.0","repository":"https://github.com/postgres/postgres.git","sha256":"b1a08b6c8e85631fe7a849d531841247a641bb799bca739c929a78e6702d3ab4","size":21169,"source_format":"errcodes.h","source_role":"primary_definition","tag":"REL8_4_0","url":"https://github.com/postgres/postgres/blob/4d53a2f9699547bdc12831d2860c9d44c465e805/src/include/utils/errcodes.h","version":"8.4.0"},{"channel":"formal","code_count":0,"commit":"8dd387500abe58a684c559f20c26ac08884b0c5d","id":"postgresql:REL8_4_22:src/include/utils/errcodes.h","major":"8.4","path":"src/include/utils/errcodes.h","raw_path":".cache/catalogue/pre9/raw/definition/REL8_4_22.h","raw_url":"https://raw.githubusercontent.com/postgres/postgres/8dd387500abe58a684c559f20c26ac08884b0c5d/src/include/utils/errcodes.h","record_count":0,"release":"8.4.22","repository":"https://github.com/postgres/postgres.git","sha256":"43fd9924243ff5bb5f51b5e7a5e5d8a011458beb5bb669b1d5b6122dac515936","size":21170,"source_format":"errcodes.h","source_role":"primary_definition","tag":"REL8_4_22","url":"https://github.com/postgres/postgres/blob/8dd387500abe58a684c559f20c26ac08884b0c5d/src/include/utils/errcodes.h","version":"8.4.22"},{"blob_id":"sha256:c814fbe5a5d2a61abe5bcf5c7754a9d339664aa4ee73f46fa11ed14966ff6713","channel":"formal","code_count":198,"commit":"861861edcc04a6e3ebdfe363311f122e2b226196","id":"postgresql:REL9_0_0:src/include/utils/errcodes.h","major":"9.0","parsed_path":"raw/definitions/REL9_0_0.parsed.json","path":"src/include/utils/errcodes.h","raw_path":"raw/definitions/REL9_0_0.h","raw_url":"https://raw.githubusercontent.com/postgres/postgres/861861edcc04a6e3ebdfe363311f122e2b226196/src/include/utils/errcodes.h","record_count":204,"release":"9.0.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"c814fbe5a5d2a61abe5bcf5c7754a9d339664aa4ee73f46fa11ed14966ff6713","size":21313,"source_format":"errcodes.h","source_role":"primary_definition","tag":"REL9_0_0","url":"https://github.com/postgres/postgres/blob/861861edcc04a6e3ebdfe363311f122e2b226196/src/include/utils/errcodes.h","version":"9.0.0"},{"blob_id":"sha256:e23d5129578249fc242f2737be2a577d6714b57917aad9deaf5ec156cadc52fd","channel":"formal","code_count":199,"commit":"ffb39e1aedcdd7b77ec920221b27ab02c40ddbfc","id":"postgresql:REL9_0_4:src/include/utils/errcodes.h","major":"9.0","parsed_path":"raw/definitions/REL9_0_4.parsed.json","path":"src/include/utils/errcodes.h","raw_path":"raw/definitions/REL9_0_4.h","raw_url":"https://raw.githubusercontent.com/postgres/postgres/ffb39e1aedcdd7b77ec920221b27ab02c40ddbfc/src/include/utils/errcodes.h","record_count":205,"release":"9.0.4","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"e23d5129578249fc242f2737be2a577d6714b57917aad9deaf5ec156cadc52fd","size":21384,"source_format":"errcodes.h","source_role":"primary_definition","tag":"REL9_0_4","url":"https://github.com/postgres/postgres/blob/ffb39e1aedcdd7b77ec920221b27ab02c40ddbfc/src/include/utils/errcodes.h","version":"9.0.4"},{"blob_id":"sha256:5b77881aab6f0d659fb3295e1adf53799a02c3d5680200bb10ff9f15d741f924","channel":"formal","code_count":199,"commit":"391aa8aac11fe78f3b2f5743b56e78b0ad6a5d84","id":"postgresql:REL9_0_18:src/include/utils/errcodes.h","major":"9.0","parsed_path":"raw/definitions/REL9_0_18.parsed.json","path":"src/include/utils/errcodes.h","raw_path":"raw/definitions/REL9_0_18.h","raw_url":"https://raw.githubusercontent.com/postgres/postgres/391aa8aac11fe78f3b2f5743b56e78b0ad6a5d84/src/include/utils/errcodes.h","record_count":205,"release":"9.0.18","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"5b77881aab6f0d659fb3295e1adf53799a02c3d5680200bb10ff9f15d741f924","size":21385,"source_format":"errcodes.h","source_role":"primary_definition","tag":"REL9_0_18","url":"https://github.com/postgres/postgres/blob/391aa8aac11fe78f3b2f5743b56e78b0ad6a5d84/src/include/utils/errcodes.h","version":"9.0.18"},{"blob_id":"sha256:2b1d71c453a82488c4e95df84a9ee18dc8fdcb2532a7c56f44f1e8c4265a8132","channel":"formal","code_count":228,"commit":"1f43001424a9da624a89b213d0be606a8212a50a","id":"postgresql:REL9_1_0:src/backend/utils/errcodes.txt","major":"9.1","parsed_path":"raw/definitions/REL9_1_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL9_1_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/1f43001424a9da624a89b213d0be606a8212a50a/src/backend/utils/errcodes.txt","record_count":234,"release":"9.1.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"2b1d71c453a82488c4e95df84a9ee18dc8fdcb2532a7c56f44f1e8c4265a8132","size":29355,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL9_1_0","url":"https://github.com/postgres/postgres/blob/1f43001424a9da624a89b213d0be606a8212a50a/src/backend/utils/errcodes.txt","version":"9.1.0"},{"blob_id":"sha256:271a522fcd18ec45ebe4c1235af0e27a0e9bf0376fda4073b9f4a9c0a00fc711","channel":"formal","code_count":232,"commit":"ef47adb414e46099155c34529a2a5caeea02fc41","id":"postgresql:REL9_2_0:src/backend/utils/errcodes.txt","major":"9.2","parsed_path":"raw/definitions/REL9_2_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL9_2_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/ef47adb414e46099155c34529a2a5caeea02fc41/src/backend/utils/errcodes.txt","record_count":238,"release":"9.2.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"271a522fcd18ec45ebe4c1235af0e27a0e9bf0376fda4073b9f4a9c0a00fc711","size":30387,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL9_2_0","url":"https://github.com/postgres/postgres/blob/ef47adb414e46099155c34529a2a5caeea02fc41/src/backend/utils/errcodes.txt","version":"9.2.0"},{"blob_id":"sha256:f90d801e724191c84e94ae33483e71b4e3c4de5730474d316df4c722a149897d","channel":"formal","code_count":232,"commit":"da645b3a73580ac30cf02e932b42d06157b98229","id":"postgresql:REL9_3_0:src/backend/utils/errcodes.txt","major":"9.3","parsed_path":"raw/definitions/REL9_3_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL9_3_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/da645b3a73580ac30cf02e932b42d06157b98229/src/backend/utils/errcodes.txt","record_count":238,"release":"9.3.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"f90d801e724191c84e94ae33483e71b4e3c4de5730474d316df4c722a149897d","size":30387,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL9_3_0","url":"https://github.com/postgres/postgres/blob/da645b3a73580ac30cf02e932b42d06157b98229/src/backend/utils/errcodes.txt","version":"9.3.0"},{"blob_id":"sha256:1695ec274fb29f0b0875ff674405e775334243835a6f6008e007dfe3a8260bf5","channel":"formal","code_count":232,"commit":"8ca336f4ac3f08a5f23e76c6e9a5f2c8064f5883","id":"postgresql:REL9_4_0:src/backend/utils/errcodes.txt","major":"9.4","parsed_path":"raw/definitions/REL9_4_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL9_4_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/8ca336f4ac3f08a5f23e76c6e9a5f2c8064f5883/src/backend/utils/errcodes.txt","record_count":238,"release":"9.4.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"1695ec274fb29f0b0875ff674405e775334243835a6f6008e007dfe3a8260bf5","size":30387,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL9_4_0","url":"https://github.com/postgres/postgres/blob/8ca336f4ac3f08a5f23e76c6e9a5f2c8064f5883/src/backend/utils/errcodes.txt","version":"9.4.0"},{"blob_id":"sha256:37f728a7e034ef0b05b060a4b82c7dd95c900e4a5501c80bfefd8d679889253b","channel":"formal","code_count":236,"commit":"cdd4ed5449bf317cc71b45a8deee0173822e7592","id":"postgresql:REL9_5_0:src/backend/utils/errcodes.txt","major":"9.5","parsed_path":"raw/definitions/REL9_5_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL9_5_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/cdd4ed5449bf317cc71b45a8deee0173822e7592/src/backend/utils/errcodes.txt","record_count":242,"release":"9.5.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"37f728a7e034ef0b05b060a4b82c7dd95c900e4a5501c80bfefd8d679889253b","size":30798,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL9_5_0","url":"https://github.com/postgres/postgres/blob/cdd4ed5449bf317cc71b45a8deee0173822e7592/src/backend/utils/errcodes.txt","version":"9.5.0"},{"blob_id":"sha256:bf4d94d84c7cfe695cb80e8f009872444574719a80a72e347eb66ef3686b86ef","channel":"formal","code_count":238,"commit":"a721a1ba9cf6c86cb52f1bf325d5a27b64e870d6","id":"postgresql:REL9_6_0:src/backend/utils/errcodes.txt","major":"9.6","parsed_path":"raw/definitions/REL9_6_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL9_6_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/a721a1ba9cf6c86cb52f1bf325d5a27b64e870d6/src/backend/utils/errcodes.txt","record_count":244,"release":"9.6.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"bf4d94d84c7cfe695cb80e8f009872444574719a80a72e347eb66ef3686b86ef","size":31135,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL9_6_0","url":"https://github.com/postgres/postgres/blob/a721a1ba9cf6c86cb52f1bf325d5a27b64e870d6/src/backend/utils/errcodes.txt","version":"9.6.0"},{"blob_id":"sha256:e5d829b24fe63aa69429fa1deb9675051fc8ffd4a8a4651861907a8f12ccb144","channel":"formal","code_count":240,"commit":"5df0e99bea1c3e5fbffa7fbd0982da88ea149bb6","id":"postgresql:REL_10_0:src/backend/utils/errcodes.txt","major":"10","parsed_path":"raw/definitions/REL_10_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_10_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/5df0e99bea1c3e5fbffa7fbd0982da88ea149bb6/src/backend/utils/errcodes.txt","record_count":246,"release":"10.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"e5d829b24fe63aa69429fa1deb9675051fc8ffd4a8a4651861907a8f12ccb144","size":31340,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_10_0","url":"https://github.com/postgres/postgres/blob/5df0e99bea1c3e5fbffa7fbd0982da88ea149bb6/src/backend/utils/errcodes.txt","version":"10.0"},{"blob_id":"sha256:8518be6de92ae135765e295c631c5f525120ca2b132453404b620f9aa595cab4","channel":"formal","code_count":241,"commit":"19f20081df059fef87e14c8e953669bd173dd7f1","id":"postgresql:REL_11_0:src/backend/utils/errcodes.txt","major":"11","parsed_path":"raw/definitions/REL_11_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_11_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/19f20081df059fef87e14c8e953669bd173dd7f1/src/backend/utils/errcodes.txt","record_count":247,"release":"11.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"8518be6de92ae135765e295c631c5f525120ca2b132453404b620f9aa595cab4","size":31453,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_11_0","url":"https://github.com/postgres/postgres/blob/19f20081df059fef87e14c8e953669bd173dd7f1/src/backend/utils/errcodes.txt","version":"11.0"},{"blob_id":"sha256:943259f3e36af1343dd0f090f7c7cec0e8c762b038d68c178aaa9b1b11999bfb","channel":"formal","code_count":257,"commit":"ad1f2885b8c82e0c2d56d7974f012cbecce17a17","id":"postgresql:REL_12_0:src/backend/utils/errcodes.txt","major":"12","parsed_path":"raw/definitions/REL_12_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_12_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/ad1f2885b8c82e0c2d56d7974f012cbecce17a17/src/backend/utils/errcodes.txt","record_count":263,"release":"12.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"943259f3e36af1343dd0f090f7c7cec0e8c762b038d68c178aaa9b1b11999bfb","size":33114,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_12_0","url":"https://github.com/postgres/postgres/blob/ad1f2885b8c82e0c2d56d7974f012cbecce17a17/src/backend/utils/errcodes.txt","version":"12.0"},{"blob_id":"sha256:9a464a3c3c99d2488782d4cdd0d46ce261085a944cb0c21e2d884586fbc8204d","channel":"formal","code_count":258,"commit":"29be9983a64c011eac0b9ee29895cce71e15ea77","id":"postgresql:REL_13_0:src/backend/utils/errcodes.txt","major":"13","parsed_path":"raw/definitions/REL_13_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_13_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/29be9983a64c011eac0b9ee29895cce71e15ea77/src/backend/utils/errcodes.txt","record_count":264,"release":"13.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"9a464a3c3c99d2488782d4cdd0d46ce261085a944cb0c21e2d884586fbc8204d","size":33239,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_13_0","url":"https://github.com/postgres/postgres/blob/29be9983a64c011eac0b9ee29895cce71e15ea77/src/backend/utils/errcodes.txt","version":"13.0"},{"blob_id":"sha256:c3c967fa20577f7ded946cb99e1a4706b85bb2476fd32d7e4a133c971a603552","channel":"formal","code_count":259,"commit":"86a4dc1e6f29d1992a2afa3fac1a0b0a6e84568c","id":"postgresql:REL_14_0:src/backend/utils/errcodes.txt","major":"14","parsed_path":"raw/definitions/REL_14_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_14_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/86a4dc1e6f29d1992a2afa3fac1a0b0a6e84568c/src/backend/utils/errcodes.txt","record_count":265,"release":"14.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"c3c967fa20577f7ded946cb99e1a4706b85bb2476fd32d7e4a133c971a603552","size":33337,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_14_0","url":"https://github.com/postgres/postgres/blob/86a4dc1e6f29d1992a2afa3fac1a0b0a6e84568c/src/backend/utils/errcodes.txt","version":"14.0"},{"blob_id":"sha256:a34b5fccd8a27c92817314dd942b79e76896cd1d9a8d4be21c81b02227850b4a","channel":"formal","code_count":260,"commit":"2a7ce2e2ce474504a707ec03e128fde66cfb8b48","id":"postgresql:REL_15_0:src/backend/utils/errcodes.txt","major":"15","parsed_path":"raw/definitions/REL_15_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_15_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/2a7ce2e2ce474504a707ec03e128fde66cfb8b48/src/backend/utils/errcodes.txt","record_count":266,"release":"15.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"a34b5fccd8a27c92817314dd942b79e76896cd1d9a8d4be21c81b02227850b4a","size":33458,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_15_0","url":"https://github.com/postgres/postgres/blob/2a7ce2e2ce474504a707ec03e128fde66cfb8b48/src/backend/utils/errcodes.txt","version":"15.0"},{"blob_id":"sha256:1d1d741b7b7c6dfd8275287e31c79befed75f3b9349e1a42ef0ca147c429ff88","channel":"formal","code_count":260,"commit":"c372fbbd8e911f2412b80a8c39d7079366565d67","id":"postgresql:REL_16_0:src/backend/utils/errcodes.txt","major":"16","parsed_path":"raw/definitions/REL_16_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_16_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/c372fbbd8e911f2412b80a8c39d7079366565d67/src/backend/utils/errcodes.txt","record_count":266,"release":"16.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"1d1d741b7b7c6dfd8275287e31c79befed75f3b9349e1a42ef0ca147c429ff88","size":33458,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_16_0","url":"https://github.com/postgres/postgres/blob/c372fbbd8e911f2412b80a8c39d7079366565d67/src/backend/utils/errcodes.txt","version":"16.0"},{"blob_id":"sha256:bb53279934510355eb4135a807c90d989f07650bd90f87026a4441f11d3296b1","channel":"formal","code_count":260,"commit":"d7ec59a63d745ba74fba0e280bbf85dc6d1caa3e","id":"postgresql:REL_17_0:src/backend/utils/errcodes.txt","major":"17","parsed_path":"raw/definitions/REL_17_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_17_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/d7ec59a63d745ba74fba0e280bbf85dc6d1caa3e/src/backend/utils/errcodes.txt","record_count":266,"release":"17.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"bb53279934510355eb4135a807c90d989f07650bd90f87026a4441f11d3296b1","size":33392,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_17_0","url":"https://github.com/postgres/postgres/blob/d7ec59a63d745ba74fba0e280bbf85dc6d1caa3e/src/backend/utils/errcodes.txt","version":"17.0"},{"blob_id":"sha256:6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba","channel":"formal","code_count":262,"commit":"3d6a828938a5fa0444275d3d2f67b64ec3199eb7","id":"postgresql:REL_18_0:src/backend/utils/errcodes.txt","major":"18","parsed_path":"raw/definitions/REL_18_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_18_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/3d6a828938a5fa0444275d3d2f67b64ec3199eb7/src/backend/utils/errcodes.txt","record_count":268,"release":"18.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba","size":33739,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_18_0","url":"https://github.com/postgres/postgres/blob/3d6a828938a5fa0444275d3d2f67b64ec3199eb7/src/backend/utils/errcodes.txt","version":"18.0"},{"blob_id":"sha256:cadb9e83cde9a8699a7e74448891ca623af8579ccc8e11c7e533fb47cbc42f89","channel":"preview","code_count":262,"commit":"3638289fb57bdabec00deda98ee9624a35f5d66a","id":"postgresql:REL_19_BETA3:src/backend/utils/errcodes.txt","major":"19","parsed_path":"raw/definitions/REL_19_BETA3.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_19_BETA3.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/3638289fb57bdabec00deda98ee9624a35f5d66a/src/backend/utils/errcodes.txt","record_count":268,"release":"19beta3","release_date":"2026-08-13","repository":"https://github.com/postgres/postgres.git","sha256":"cadb9e83cde9a8699a7e74448891ca623af8579ccc8e11c7e533fb47cbc42f89","size":33739,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_19_BETA3","url":"https://github.com/postgres/postgres/blob/3638289fb57bdabec00deda98ee9624a35f5d66a/src/backend/utils/errcodes.txt","version":"19beta3"}],"sqlstate":"P0001","status":"active","usage_evidence":[{"evidence_ids":["postgresql:REL8_0_0:src/include/utils/errcodes.h","postgresql:REL8_0_10:src/include/utils/errcodes.h","postgresql:REL8_0_11:src/include/utils/errcodes.h","postgresql:REL8_0_12:src/include/utils/errcodes.h","postgresql:REL8_0_13:src/include/utils/errcodes.h","postgresql:REL8_0_14:src/include/utils/errcodes.h","postgresql:REL8_0_15:src/include/utils/errcodes.h","postgresql:REL8_0_16:src/include/utils/errcodes.h","postgresql:REL8_0_17:src/include/utils/errcodes.h","postgresql:REL8_0_18:src/include/utils/errcodes.h","postgresql:REL8_0_19:src/include/utils/errcodes.h","postgresql:REL8_0_1:src/include/utils/errcodes.h","postgresql:REL8_0_20:src/include/utils/errcodes.h","postgresql:REL8_0_21:src/include/utils/errcodes.h","postgresql:REL8_0_22:src/include/utils/errcodes.h","postgresql:REL8_0_23:src/include/utils/errcodes.h","postgresql:REL8_0_24:src/include/utils/errcodes.h","postgresql:REL8_0_25:src/include/utils/errcodes.h","postgresql:REL8_0_26:src/include/utils/errcodes.h","postgresql:REL8_0_2:src/include/utils/errcodes.h","postgresql:REL8_0_3:src/include/utils/errcodes.h","postgresql:REL8_0_4:src/include/utils/errcodes.h","postgresql:REL8_0_5:src/include/utils/errcodes.h","postgresql:REL8_0_6:src/include/utils/errcodes.h","postgresql:REL8_0_7:src/include/utils/errcodes.h","postgresql:REL8_0_8:src/include/utils/errcodes.h","postgresql:REL8_0_9:src/include/utils/errcodes.h","postgresql:REL8_1_0:src/include/utils/errcodes.h","postgresql:REL8_1_10:src/include/utils/errcodes.h","postgresql:REL8_1_11:src/include/utils/errcodes.h","postgresql:REL8_1_12:src/include/utils/errcodes.h","postgresql:REL8_1_13:src/include/utils/errcodes.h","postgresql:REL8_1_14:src/include/utils/errcodes.h","postgresql:REL8_1_15:src/include/utils/errcodes.h","postgresql:REL8_1_16:src/include/utils/errcodes.h","postgresql:REL8_1_17:src/include/utils/errcodes.h","postgresql:REL8_1_18:src/include/utils/errcodes.h","postgresql:REL8_1_19:src/include/utils/errcodes.h","postgresql:REL8_1_1:src/include/utils/errcodes.h","postgresql:REL8_1_20:src/include/utils/errcodes.h","postgresql:REL8_1_21:src/include/utils/errcodes.h","postgresql:REL8_1_22:src/include/utils/errcodes.h","postgresql:REL8_1_23:src/include/utils/errcodes.h","postgresql:REL8_1_2:src/include/utils/errcodes.h","postgresql:REL8_1_3:src/include/utils/errcodes.h","postgresql:REL8_1_4:src/include/utils/errcodes.h","postgresql:REL8_1_5:src/include/utils/errcodes.h","postgresql:REL8_1_6:src/include/utils/errcodes.h","postgresql:REL8_1_7:src/include/utils/errcodes.h","postgresql:REL8_1_8:src/include/utils/errcodes.h","postgresql:REL8_1_9:src/include/utils/errcodes.h","postgresql:REL8_2_0:src/include/utils/errcodes.h","postgresql:REL8_2_10:src/include/utils/errcodes.h","postgresql:REL8_2_11:src/include/utils/errcodes.h","postgresql:REL8_2_12:src/include/utils/errcodes.h","postgresql:REL8_2_13:src/include/utils/errcodes.h","postgresql:REL8_2_14:src/include/utils/errcodes.h","postgresql:REL8_2_15:src/include/utils/errcodes.h","postgresql:REL8_2_16:src/include/utils/errcodes.h","postgresql:REL8_2_17:src/include/utils/errcodes.h","postgresql:REL8_2_18:src/include/utils/errcodes.h","postgresql:REL8_2_19:src/include/utils/errcodes.h","postgresql:REL8_2_1:src/include/utils/errcodes.h","postgresql:REL8_2_20:src/include/utils/errcodes.h","postgresql:REL8_2_21:src/include/utils/errcodes.h","postgresql:REL8_2_22:src/include/utils/errcodes.h","postgresql:REL8_2_23:src/include/utils/errcodes.h","postgresql:REL8_2_2:src/include/utils/errcodes.h","postgresql:REL8_2_3:src/include/utils/errcodes.h","postgresql:REL8_2_4:src/include/utils/errcodes.h","postgresql:REL8_2_5:src/include/utils/errcodes.h","postgresql:REL8_2_6:src/include/utils/errcodes.h","postgresql:REL8_2_7:src/include/utils/errcodes.h","postgresql:REL8_2_8:src/include/utils/errcodes.h","postgresql:REL8_2_9:src/include/utils/errcodes.h","postgresql:REL8_3_0:src/include/utils/errcodes.h","postgresql:REL8_3_10:src/include/utils/errcodes.h","postgresql:REL8_3_11:src/include/utils/errcodes.h","postgresql:REL8_3_12:src/include/utils/errcodes.h","postgresql:REL8_3_13:src/include/utils/errcodes.h","postgresql:REL8_3_14:src/include/utils/errcodes.h","postgresql:REL8_3_15:src/include/utils/errcodes.h","postgresql:REL8_3_16:src/include/utils/errcodes.h","postgresql:REL8_3_17:src/include/utils/errcodes.h","postgresql:REL8_3_18:src/include/utils/errcodes.h","postgresql:REL8_3_19:src/include/utils/errcodes.h","postgresql:REL8_3_1:src/include/utils/errcodes.h","postgresql:REL8_3_20:src/include/utils/errcodes.h","postgresql:REL8_3_21:src/include/utils/errcodes.h","postgresql:REL8_3_22:src/include/utils/errcodes.h","postgresql:REL8_3_23:src/include/utils/errcodes.h","postgresql:REL8_3_2:src/include/utils/errcodes.h","postgresql:REL8_3_3:src/include/utils/errcodes.h","postgresql:REL8_3_4:src/include/utils/errcodes.h","postgresql:REL8_3_5:src/include/utils/errcodes.h","postgresql:REL8_3_6:src/include/utils/errcodes.h","postgresql:REL8_3_7:src/include/utils/errcodes.h","postgresql:REL8_3_8:src/include/utils/errcodes.h","postgresql:REL8_3_9:src/include/utils/errcodes.h","postgresql:REL8_4_0:src/include/utils/errcodes.h","postgresql:REL8_4_10:src/include/utils/errcodes.h","postgresql:REL8_4_11:src/include/utils/errcodes.h","postgresql:REL8_4_12:src/include/utils/errcodes.h","postgresql:REL8_4_13:src/include/utils/errcodes.h","postgresql:REL8_4_14:src/include/utils/errcodes.h","postgresql:REL8_4_15:src/include/utils/errcodes.h","postgresql:REL8_4_16:src/include/utils/errcodes.h","postgresql:REL8_4_17:src/include/utils/errcodes.h","postgresql:REL8_4_18:src/include/utils/errcodes.h","postgresql:REL8_4_19:src/include/utils/errcodes.h","postgresql:REL8_4_1:src/include/utils/errcodes.h","postgresql:REL8_4_20:src/include/utils/errcodes.h","postgresql:REL8_4_21:src/include/utils/errcodes.h","postgresql:REL8_4_22:src/include/utils/errcodes.h","postgresql:REL8_4_2:src/include/utils/errcodes.h","postgresql:REL8_4_3:src/include/utils/errcodes.h","postgresql:REL8_4_4:src/include/utils/errcodes.h","postgresql:REL8_4_5:src/include/utils/errcodes.h","postgresql:REL8_4_6:src/include/utils/errcodes.h","postgresql:REL8_4_7:src/include/utils/errcodes.h","postgresql:REL8_4_8:src/include/utils/errcodes.h","postgresql:REL8_4_9:src/include/utils/errcodes.h","postgresql:REL9_0_0:src/include/utils/errcodes.h","postgresql:REL9_0_10:src/include/utils/errcodes.h","postgresql:REL9_0_11:src/include/utils/errcodes.h","postgresql:REL9_0_12:src/include/utils/errcodes.h","postgresql:REL9_0_13:src/include/utils/errcodes.h","postgresql:REL9_0_14:src/include/utils/errcodes.h","postgresql:REL9_0_15:src/include/utils/errcodes.h","postgresql:REL9_0_16:src/include/utils/errcodes.h","postgresql:REL9_0_17:src/include/utils/errcodes.h","postgresql:REL9_0_18:src/include/utils/errcodes.h","postgresql:REL9_0_19:src/include/utils/errcodes.h","postgresql:REL9_0_1:src/include/utils/errcodes.h","postgresql:REL9_0_20:src/include/utils/errcodes.h","postgresql:REL9_0_21:src/include/utils/errcodes.h","postgresql:REL9_0_22:src/include/utils/errcodes.h","postgresql:REL9_0_23:src/include/utils/errcodes.h","postgresql:REL9_0_2:src/include/utils/errcodes.h","postgresql:REL9_0_3:src/include/utils/errcodes.h","postgresql:REL9_0_4:src/include/utils/errcodes.h","postgresql:REL9_0_5:src/include/utils/errcodes.h","postgresql:REL9_0_6:src/include/utils/errcodes.h","postgresql:REL9_0_7:src/include/utils/errcodes.h","postgresql:REL9_0_8:src/include/utils/errcodes.h","postgresql:REL9_0_9:src/include/utils/errcodes.h","postgresql:REL9_1_0:src/backend/utils/errcodes.txt","postgresql:REL9_1_10:src/backend/utils/errcodes.txt","postgresql:REL9_1_11:src/backend/utils/errcodes.txt","postgresql:REL9_1_12:src/backend/utils/errcodes.txt","postgresql:REL9_1_13:src/backend/utils/errcodes.txt","postgresql:REL9_1_14:src/backend/utils/errcodes.txt","postgresql:REL9_1_15:src/backend/utils/errcodes.txt","postgresql:REL9_1_16:src/backend/utils/errcodes.txt","postgresql:REL9_1_17:src/backend/utils/errcodes.txt","postgresql:REL9_1_18:src/backend/utils/errcodes.txt","postgresql:REL9_1_19:src/backend/utils/errcodes.txt","postgresql:REL9_1_1:src/backend/utils/errcodes.txt","postgresql:REL9_1_20:src/backend/utils/errcodes.txt","postgresql:REL9_1_21:src/backend/utils/errcodes.txt","postgresql:REL9_1_22:src/backend/utils/errcodes.txt","postgresql:REL9_1_23:src/backend/utils/errcodes.txt","postgresql:REL9_1_24:src/backend/utils/errcodes.txt","postgresql:REL9_1_2:src/backend/utils/errcodes.txt","postgresql:REL9_1_3:src/backend/utils/errcodes.txt","postgresql:REL9_1_4:src/backend/utils/errcodes.txt","postgresql:REL9_1_5:src/backend/utils/errcodes.txt","postgresql:REL9_1_6:src/backend/utils/errcodes.txt","postgresql:REL9_1_7:src/backend/utils/errcodes.txt","postgresql:REL9_1_8:src/backend/utils/errcodes.txt","postgresql:REL9_1_9:src/backend/utils/errcodes.txt","postgresql:REL9_2_0:src/backend/utils/errcodes.txt","postgresql:REL9_2_10:src/backend/utils/errcodes.txt","postgresql:REL9_2_11:src/backend/utils/errcodes.txt","postgresql:REL9_2_12:src/backend/utils/errcodes.txt","postgresql:REL9_2_13:src/backend/utils/errcodes.txt","postgresql:REL9_2_14:src/backend/utils/errcodes.txt","postgresql:REL9_2_15:src/backend/utils/errcodes.txt","postgresql:REL9_2_16:src/backend/utils/errcodes.txt","postgresql:REL9_2_17:src/backend/utils/errcodes.txt","postgresql:REL9_2_18:src/backend/utils/errcodes.txt","postgresql:REL9_2_19:src/backend/utils/errcodes.txt","postgresql:REL9_2_1:src/backend/utils/errcodes.txt","postgresql:REL9_2_20:src/backend/utils/errcodes.txt","postgresql:REL9_2_21:src/backend/utils/errcodes.txt","postgresql:REL9_2_22:src/backend/utils/errcodes.txt","postgresql:REL9_2_23:src/backend/utils/errcodes.txt","postgresql:REL9_2_24:src/backend/utils/errcodes.txt","postgresql:REL9_2_2:src/backend/utils/errcodes.txt","postgresql:REL9_2_3:src/backend/utils/errcodes.txt","postgresql:REL9_2_4:src/backend/utils/errcodes.txt","postgresql:REL9_2_5:src/backend/utils/errcodes.txt","postgresql:REL9_2_6:src/backend/utils/errcodes.txt","postgresql:REL9_2_7:src/backend/utils/errcodes.txt","postgresql:REL9_2_8:src/backend/utils/errcodes.txt","postgresql:REL9_2_9:src/backend/utils/errcodes.txt","postgresql:REL9_3_0:src/backend/utils/errcodes.txt","postgresql:REL9_3_10:src/backend/utils/errcodes.txt","postgresql:REL9_3_11:src/backend/utils/errcodes.txt","postgresql:REL9_3_12:src/backend/utils/errcodes.txt","postgresql:REL9_3_13:src/backend/utils/errcodes.txt","postgresql:REL9_3_14:src/backend/utils/errcodes.txt","postgresql:REL9_3_15:src/backend/utils/errcodes.txt","postgresql:REL9_3_16:src/backend/utils/errcodes.txt","postgresql:REL9_3_17:src/backend/utils/errcodes.txt","postgresql:REL9_3_18:src/backend/utils/errcodes.txt","postgresql:REL9_3_19:src/backend/utils/errcodes.txt","postgresql:REL9_3_1:src/backend/utils/errcodes.txt","postgresql:REL9_3_20:src/backend/utils/errcodes.txt","postgresql:REL9_3_21:src/backend/utils/errcodes.txt","postgresql:REL9_3_22:src/backend/utils/errcodes.txt","postgresql:REL9_3_23:src/backend/utils/errcodes.txt","postgresql:REL9_3_24:src/backend/utils/errcodes.txt","postgresql:REL9_3_25:src/backend/utils/errcodes.txt","postgresql:REL9_3_2:src/backend/utils/errcodes.txt","postgresql:REL9_3_3:src/backend/utils/errcodes.txt","postgresql:REL9_3_4:src/backend/utils/errcodes.txt","postgresql:REL9_3_5:src/backend/utils/errcodes.txt","postgresql:REL9_3_6:src/backend/utils/errcodes.txt","postgresql:REL9_3_7:src/backend/utils/errcodes.txt","postgresql:REL9_3_8:src/backend/utils/errcodes.txt","postgresql:REL9_3_9:src/backend/utils/errcodes.txt","postgresql:REL9_4_0:src/backend/utils/errcodes.txt","postgresql:REL9_4_10:src/backend/utils/errcodes.txt","postgresql:REL9_4_11:src/backend/utils/errcodes.txt","postgresql:REL9_4_12:src/backend/utils/errcodes.txt","postgresql:REL9_4_13:src/backend/utils/errcodes.txt","postgresql:REL9_4_14:src/backend/utils/errcodes.txt","postgresql:REL9_4_15:src/backend/utils/errcodes.txt","postgresql:REL9_4_16:src/backend/utils/errcodes.txt","postgresql:REL9_4_17:src/backend/utils/errcodes.txt","postgresql:REL9_4_18:src/backend/utils/errcodes.txt","postgresql:REL9_4_19:src/backend/utils/errcodes.txt","postgresql:REL9_4_1:src/backend/utils/errcodes.txt","postgresql:REL9_4_20:src/backend/utils/errcodes.txt","postgresql:REL9_4_21:src/backend/utils/errcodes.txt","postgresql:REL9_4_22:src/backend/utils/errcodes.txt","postgresql:REL9_4_23:src/backend/utils/errcodes.txt","postgresql:REL9_4_24:src/backend/utils/errcodes.txt","postgresql:REL9_4_25:src/backend/utils/errcodes.txt","postgresql:REL9_4_26:src/backend/utils/errcodes.txt","postgresql:REL9_4_2:src/backend/utils/errcodes.txt","postgresql:REL9_4_3:src/backend/utils/errcodes.txt","postgresql:REL9_4_4:src/backend/utils/errcodes.txt","postgresql:REL9_4_5:src/backend/utils/errcodes.txt","postgresql:REL9_4_6:src/backend/utils/errcodes.txt","postgresql:REL9_4_7:src/backend/utils/errcodes.txt","postgresql:REL9_4_8:src/backend/utils/errcodes.txt","postgresql:REL9_4_9:src/backend/utils/errcodes.txt","postgresql:REL9_5_0:src/backend/utils/errcodes.txt","postgresql:REL9_5_10:src/backend/utils/errcodes.txt","postgresql:REL9_5_11:src/backend/utils/errcodes.txt","postgresql:REL9_5_12:src/backend/utils/errcodes.txt","postgresql:REL9_5_13:src/backend/utils/errcodes.txt","postgresql:REL9_5_14:src/backend/utils/errcodes.txt","postgresql:REL9_5_15:src/backend/utils/errcodes.txt","postgresql:REL9_5_16:src/backend/utils/errcodes.txt","postgresql:REL9_5_17:src/backend/utils/errcodes.txt","postgresql:REL9_5_18:src/backend/utils/errcodes.txt","postgresql:REL9_5_19:src/backend/utils/errcodes.txt","postgresql:REL9_5_1:src/backend/utils/errcodes.txt","postgresql:REL9_5_20:src/backend/utils/errcodes.txt","postgresql:REL9_5_21:src/backend/utils/errcodes.txt","postgresql:REL9_5_22:src/backend/utils/errcodes.txt","postgresql:REL9_5_23:src/backend/utils/errcodes.txt","postgresql:REL9_5_24:src/backend/utils/errcodes.txt","postgresql:REL9_5_25:src/backend/utils/errcodes.txt","postgresql:REL9_5_2:src/backend/utils/errcodes.txt","postgresql:REL9_5_3:src/backend/utils/errcodes.txt","postgresql:REL9_5_4:src/backend/utils/errcodes.txt","postgresql:REL9_5_5:src/backend/utils/errcodes.txt","postgresql:REL9_5_6:src/backend/utils/errcodes.txt","postgresql:REL9_5_7:src/backend/utils/errcodes.txt","postgresql:REL9_5_8:src/backend/utils/errcodes.txt","postgresql:REL9_5_9:src/backend/utils/errcodes.txt","postgresql:REL9_6_0:src/backend/utils/errcodes.txt","postgresql:REL9_6_10:src/backend/utils/errcodes.txt","postgresql:REL9_6_11:src/backend/utils/errcodes.txt","postgresql:REL9_6_12:src/backend/utils/errcodes.txt","postgresql:REL9_6_13:src/backend/utils/errcodes.txt","postgresql:REL9_6_14:src/backend/utils/errcodes.txt","postgresql:REL9_6_15:src/backend/utils/errcodes.txt","postgresql:REL9_6_16:src/backend/utils/errcodes.txt","postgresql:REL9_6_17:src/backend/utils/errcodes.txt","postgresql:REL9_6_18:src/backend/utils/errcodes.txt","postgresql:REL9_6_19:src/backend/utils/errcodes.txt","postgresql:REL9_6_1:src/backend/utils/errcodes.txt","postgresql:REL9_6_20:src/backend/utils/errcodes.txt","postgresql:REL9_6_21:src/backend/utils/errcodes.txt","postgresql:REL9_6_22:src/backend/utils/errcodes.txt","postgresql:REL9_6_23:src/backend/utils/errcodes.txt","postgresql:REL9_6_24:src/backend/utils/errcodes.txt","postgresql:REL9_6_2:src/backend/utils/errcodes.txt","postgresql:REL9_6_3:src/backend/utils/errcodes.txt","postgresql:REL9_6_4:src/backend/utils/errcodes.txt","postgresql:REL9_6_5:src/backend/utils/errcodes.txt","postgresql:REL9_6_6:src/backend/utils/errcodes.txt","postgresql:REL9_6_7:src/backend/utils/errcodes.txt","postgresql:REL9_6_8:src/backend/utils/errcodes.txt","postgresql:REL9_6_9:src/backend/utils/errcodes.txt","postgresql:REL_10_0:src/backend/utils/errcodes.txt","postgresql:REL_10_10:src/backend/utils/errcodes.txt","postgresql:REL_10_11:src/backend/utils/errcodes.txt","postgresql:REL_10_12:src/backend/utils/errcodes.txt","postgresql:REL_10_13:src/backend/utils/errcodes.txt","postgresql:REL_10_14:src/backend/utils/errcodes.txt","postgresql:REL_10_15:src/backend/utils/errcodes.txt","postgresql:REL_10_16:src/backend/utils/errcodes.txt","postgresql:REL_10_17:src/backend/utils/errcodes.txt","postgresql:REL_10_18:src/backend/utils/errcodes.txt","postgresql:REL_10_19:src/backend/utils/errcodes.txt","postgresql:REL_10_1:src/backend/utils/errcodes.txt","postgresql:REL_10_20:src/backend/utils/errcodes.txt","postgresql:REL_10_21:src/backend/utils/errcodes.txt","postgresql:REL_10_22:src/backend/utils/errcodes.txt","postgresql:REL_10_23:src/backend/utils/errcodes.txt","postgresql:REL_10_2:src/backend/utils/errcodes.txt","postgresql:REL_10_3:src/backend/utils/errcodes.txt","postgresql:REL_10_4:src/backend/utils/errcodes.txt","postgresql:REL_10_5:src/backend/utils/errcodes.txt","postgresql:REL_10_6:src/backend/utils/errcodes.txt","postgresql:REL_10_7:src/backend/utils/errcodes.txt","postgresql:REL_10_8:src/backend/utils/errcodes.txt","postgresql:REL_10_9:src/backend/utils/errcodes.txt","postgresql:REL_11_0:src/backend/utils/errcodes.txt","postgresql:REL_11_10:src/backend/utils/errcodes.txt","postgresql:REL_11_11:src/backend/utils/errcodes.txt","postgresql:REL_11_12:src/backend/utils/errcodes.txt","postgresql:REL_11_13:src/backend/utils/errcodes.txt","postgresql:REL_11_14:src/backend/utils/errcodes.txt","postgresql:REL_11_15:src/backend/utils/errcodes.txt","postgresql:REL_11_16:src/backend/utils/errcodes.txt","postgresql:REL_11_17:src/backend/utils/errcodes.txt","postgresql:REL_11_18:src/backend/utils/errcodes.txt","postgresql:REL_11_19:src/backend/utils/errcodes.txt","postgresql:REL_11_1:src/backend/utils/errcodes.txt","postgresql:REL_11_20:src/backend/utils/errcodes.txt","postgresql:REL_11_21:src/backend/utils/errcodes.txt","postgresql:REL_11_22:src/backend/utils/errcodes.txt","postgresql:REL_11_2:src/backend/utils/errcodes.txt","postgresql:REL_11_3:src/backend/utils/errcodes.txt","postgresql:REL_11_4:src/backend/utils/errcodes.txt","postgresql:REL_11_5:src/backend/utils/errcodes.txt","postgresql:REL_11_6:src/backend/utils/errcodes.txt","postgresql:REL_11_7:src/backend/utils/errcodes.txt","postgresql:REL_11_8:src/backend/utils/errcodes.txt","postgresql:REL_11_9:src/backend/utils/errcodes.txt","postgresql:REL_12_0:src/backend/utils/errcodes.txt","postgresql:REL_12_10:src/backend/utils/errcodes.txt","postgresql:REL_12_11:src/backend/utils/errcodes.txt","postgresql:REL_12_12:src/backend/utils/errcodes.txt","postgresql:REL_12_13:src/backend/utils/errcodes.txt","postgresql:REL_12_14:src/backend/utils/errcodes.txt","postgresql:REL_12_15:src/backend/utils/errcodes.txt","postgresql:REL_12_16:src/backend/utils/errcodes.txt","postgresql:REL_12_17:src/backend/utils/errcodes.txt","postgresql:REL_12_18:src/backend/utils/errcodes.txt","postgresql:REL_12_19:src/backend/utils/errcodes.txt","postgresql:REL_12_1:src/backend/utils/errcodes.txt","postgresql:REL_12_20:src/backend/utils/errcodes.txt","postgresql:REL_12_21:src/backend/utils/errcodes.txt","postgresql:REL_12_22:src/backend/utils/errcodes.txt","postgresql:REL_12_2:src/backend/utils/errcodes.txt","postgresql:REL_12_3:src/backend/utils/errcodes.txt","postgresql:REL_12_4:src/backend/utils/errcodes.txt","postgresql:REL_12_5:src/backend/utils/errcodes.txt","postgresql:REL_12_6:src/backend/utils/errcodes.txt","postgresql:REL_12_7:src/backend/utils/errcodes.txt","postgresql:REL_12_8:src/backend/utils/errcodes.txt","postgresql:REL_12_9:src/backend/utils/errcodes.txt","postgresql:REL_13_0:src/backend/utils/errcodes.txt","postgresql:REL_13_10:src/backend/utils/errcodes.txt","postgresql:REL_13_11:src/backend/utils/errcodes.txt","postgresql:REL_13_12:src/backend/utils/errcodes.txt","postgresql:REL_13_13:src/backend/utils/errcodes.txt","postgresql:REL_13_14:src/backend/utils/errcodes.txt","postgresql:REL_13_15:src/backend/utils/errcodes.txt","postgresql:REL_13_16:src/backend/utils/errcodes.txt","postgresql:REL_13_17:src/backend/utils/errcodes.txt","postgresql:REL_13_18:src/backend/utils/errcodes.txt","postgresql:REL_13_19:src/backend/utils/errcodes.txt","postgresql:REL_13_1:src/backend/utils/errcodes.txt","postgresql:REL_13_20:src/backend/utils/errcodes.txt","postgresql:REL_13_21:src/backend/utils/errcodes.txt","postgresql:REL_13_22:src/backend/utils/errcodes.txt","postgresql:REL_13_23:src/backend/utils/errcodes.txt","postgresql:REL_13_2:src/backend/utils/errcodes.txt","postgresql:REL_13_3:src/backend/utils/errcodes.txt","postgresql:REL_13_4:src/backend/utils/errcodes.txt","postgresql:REL_13_5:src/backend/utils/errcodes.txt","postgresql:REL_13_6:src/backend/utils/errcodes.txt","postgresql:REL_13_7:src/backend/utils/errcodes.txt","postgresql:REL_13_8:src/backend/utils/errcodes.txt","postgresql:REL_13_9:src/backend/utils/errcodes.txt","postgresql:REL_14_0:src/backend/utils/errcodes.txt","postgresql:REL_14_10:src/backend/utils/errcodes.txt","postgresql:REL_14_11:src/backend/utils/errcodes.txt","postgresql:REL_14_12:src/backend/utils/errcodes.txt","postgresql:REL_14_13:src/backend/utils/errcodes.txt","postgresql:REL_14_14:src/backend/utils/errcodes.txt","postgresql:REL_14_15:src/backend/utils/errcodes.txt","postgresql:REL_14_16:src/backend/utils/errcodes.txt","postgresql:REL_14_17:src/backend/utils/errcodes.txt","postgresql:REL_14_18:src/backend/utils/errcodes.txt","postgresql:REL_14_19:src/backend/utils/errcodes.txt","postgresql:REL_14_1:src/backend/utils/errcodes.txt","postgresql:REL_14_20:src/backend/utils/errcodes.txt","postgresql:REL_14_21:src/backend/utils/errcodes.txt","postgresql:REL_14_22:src/backend/utils/errcodes.txt","postgresql:REL_14_23:src/backend/utils/errcodes.txt","postgresql:REL_14_24:src/backend/utils/errcodes.txt","postgresql:REL_14_2:src/backend/utils/errcodes.txt","postgresql:REL_14_3:src/backend/utils/errcodes.txt","postgresql:REL_14_4:src/backend/utils/errcodes.txt","postgresql:REL_14_5:src/backend/utils/errcodes.txt","postgresql:REL_14_6:src/backend/utils/errcodes.txt","postgresql:REL_14_7:src/backend/utils/errcodes.txt","postgresql:REL_14_8:src/backend/utils/errcodes.txt","postgresql:REL_14_9:src/backend/utils/errcodes.txt","postgresql:REL_15_0:src/backend/utils/errcodes.txt","postgresql:REL_15_10:src/backend/utils/errcodes.txt","postgresql:REL_15_11:src/backend/utils/errcodes.txt","postgresql:REL_15_12:src/backend/utils/errcodes.txt","postgresql:REL_15_13:src/backend/utils/errcodes.txt","postgresql:REL_15_14:src/backend/utils/errcodes.txt","postgresql:REL_15_15:src/backend/utils/errcodes.txt","postgresql:REL_15_16:src/backend/utils/errcodes.txt","postgresql:REL_15_17:src/backend/utils/errcodes.txt","postgresql:REL_15_18:src/backend/utils/errcodes.txt","postgresql:REL_15_19:src/backend/utils/errcodes.txt","postgresql:REL_15_1:src/backend/utils/errcodes.txt","postgresql:REL_15_2:src/backend/utils/errcodes.txt","postgresql:REL_15_3:src/backend/utils/errcodes.txt","postgresql:REL_15_4:src/backend/utils/errcodes.txt","postgresql:REL_15_5:src/backend/utils/errcodes.txt","postgresql:REL_15_6:src/backend/utils/errcodes.txt","postgresql:REL_15_7:src/backend/utils/errcodes.txt","postgresql:REL_15_8:src/backend/utils/errcodes.txt","postgresql:REL_15_9:src/backend/utils/errcodes.txt","postgresql:REL_16_0:src/backend/utils/errcodes.txt","postgresql:REL_16_10:src/backend/utils/errcodes.txt","postgresql:REL_16_11:src/backend/utils/errcodes.txt","postgresql:REL_16_12:src/backend/utils/errcodes.txt","postgresql:REL_16_13:src/backend/utils/errcodes.txt","postgresql:REL_16_14:src/backend/utils/errcodes.txt","postgresql:REL_16_15:src/backend/utils/errcodes.txt","postgresql:REL_16_1:src/backend/utils/errcodes.txt","postgresql:REL_16_2:src/backend/utils/errcodes.txt","postgresql:REL_16_3:src/backend/utils/errcodes.txt","postgresql:REL_16_4:src/backend/utils/errcodes.txt","postgresql:REL_16_5:src/backend/utils/errcodes.txt","postgresql:REL_16_6:src/backend/utils/errcodes.txt","postgresql:REL_16_7:src/backend/utils/errcodes.txt","postgresql:REL_16_8:src/backend/utils/errcodes.txt","postgresql:REL_16_9:src/backend/utils/errcodes.txt","postgresql:REL_17_0:src/backend/utils/errcodes.txt","postgresql:REL_17_10:src/backend/utils/errcodes.txt","postgresql:REL_17_11:src/backend/utils/errcodes.txt","postgresql:REL_17_1:src/backend/utils/errcodes.txt","postgresql:REL_17_2:src/backend/utils/errcodes.txt","postgresql:REL_17_3:src/backend/utils/errcodes.txt","postgresql:REL_17_4:src/backend/utils/errcodes.txt","postgresql:REL_17_5:src/backend/utils/errcodes.txt","postgresql:REL_17_6:src/backend/utils/errcodes.txt","postgresql:REL_17_7:src/backend/utils/errcodes.txt","postgresql:REL_17_8:src/backend/utils/errcodes.txt","postgresql:REL_17_9:src/backend/utils/errcodes.txt","postgresql:REL_18_0:src/backend/utils/errcodes.txt","postgresql:REL_18_1:src/backend/utils/errcodes.txt","postgresql:REL_18_2:src/backend/utils/errcodes.txt","postgresql:REL_18_3:src/backend/utils/errcodes.txt","postgresql:REL_18_4:src/backend/utils/errcodes.txt","postgresql:REL_18_6:src/backend/utils/errcodes.txt","postgresql:REL_19_BETA3:src/backend/utils/errcodes.txt"],"notes":"Presence in a PostgreSQL release definition file is established; runtime throw/use scanning is maintained separately.","scope":"release-definition-catalogue","status":"definition_only"},{"evidence_ids":["postgresql:REL8_0_0:src/include/utils/errcodes.h","postgresql:REL8_0_10:src/include/utils/errcodes.h","postgresql:REL8_0_11:src/include/utils/errcodes.h","postgresql:REL8_0_12:src/include/utils/errcodes.h","postgresql:REL8_0_13:src/include/utils/errcodes.h","postgresql:REL8_0_14:src/include/utils/errcodes.h","postgresql:REL8_0_15:src/include/utils/errcodes.h","postgresql:REL8_0_16:src/include/utils/errcodes.h","postgresql:REL8_0_17:src/include/utils/errcodes.h","postgresql:REL8_0_18:src/include/utils/errcodes.h","postgresql:REL8_0_19:src/include/utils/errcodes.h","postgresql:REL8_0_1:src/include/utils/errcodes.h","postgresql:REL8_0_20:src/include/utils/errcodes.h","postgresql:REL8_0_21:src/include/utils/errcodes.h","postgresql:REL8_0_22:src/include/utils/errcodes.h","postgresql:REL8_0_23:src/include/utils/errcodes.h","postgresql:REL8_0_24:src/include/utils/errcodes.h","postgresql:REL8_0_25:src/include/utils/errcodes.h","postgresql:REL8_0_26:src/include/utils/errcodes.h","postgresql:REL8_0_2:src/include/utils/errcodes.h","postgresql:REL8_0_3:src/include/utils/errcodes.h","postgresql:REL8_0_4:src/include/utils/errcodes.h","postgresql:REL8_0_5:src/include/utils/errcodes.h","postgresql:REL8_0_6:src/include/utils/errcodes.h","postgresql:REL8_0_7:src/include/utils/errcodes.h","postgresql:REL8_0_8:src/include/utils/errcodes.h","postgresql:REL8_0_9:src/include/utils/errcodes.h","postgresql:REL8_1_0:src/include/utils/errcodes.h","postgresql:REL8_1_10:src/include/utils/errcodes.h","postgresql:REL8_1_11:src/include/utils/errcodes.h","postgresql:REL8_1_12:src/include/utils/errcodes.h","postgresql:REL8_1_13:src/include/utils/errcodes.h","postgresql:REL8_1_14:src/include/utils/errcodes.h","postgresql:REL8_1_15:src/include/utils/errcodes.h","postgresql:REL8_1_16:src/include/utils/errcodes.h","postgresql:REL8_1_17:src/include/utils/errcodes.h","postgresql:REL8_1_18:src/include/utils/errcodes.h","postgresql:REL8_1_19:src/include/utils/errcodes.h","postgresql:REL8_1_1:src/include/utils/errcodes.h","postgresql:REL8_1_20:src/include/utils/errcodes.h","postgresql:REL8_1_21:src/include/utils/errcodes.h","postgresql:REL8_1_22:src/include/utils/errcodes.h","postgresql:REL8_1_23:src/include/utils/errcodes.h","postgresql:REL8_1_2:src/include/utils/errcodes.h","postgresql:REL8_1_3:src/include/utils/errcodes.h","postgresql:REL8_1_4:src/include/utils/errcodes.h","postgresql:REL8_1_5:src/include/utils/errcodes.h","postgresql:REL8_1_6:src/include/utils/errcodes.h","postgresql:REL8_1_7:src/include/utils/errcodes.h","postgresql:REL8_1_8:src/include/utils/errcodes.h","postgresql:REL8_1_9:src/include/utils/errcodes.h","postgresql:REL8_2_0:src/include/utils/errcodes.h","postgresql:REL8_2_10:src/include/utils/errcodes.h","postgresql:REL8_2_11:src/include/utils/errcodes.h","postgresql:REL8_2_12:src/include/utils/errcodes.h","postgresql:REL8_2_13:src/include/utils/errcodes.h","postgresql:REL8_2_14:src/include/utils/errcodes.h","postgresql:REL8_2_15:src/include/utils/errcodes.h","postgresql:REL8_2_16:src/include/utils/errcodes.h","postgresql:REL8_2_17:src/include/utils/errcodes.h","postgresql:REL8_2_18:src/include/utils/errcodes.h","postgresql:REL8_2_19:src/include/utils/errcodes.h","postgresql:REL8_2_1:src/include/utils/errcodes.h","postgresql:REL8_2_20:src/include/utils/errcodes.h","postgresql:REL8_2_21:src/include/utils/errcodes.h","postgresql:REL8_2_22:src/include/utils/errcodes.h","postgresql:REL8_2_23:src/include/utils/errcodes.h","postgresql:REL8_2_2:src/include/utils/errcodes.h","postgresql:REL8_2_3:src/include/utils/errcodes.h","postgresql:REL8_2_4:src/include/utils/errcodes.h","postgresql:REL8_2_5:src/include/utils/errcodes.h","postgresql:REL8_2_6:src/include/utils/errcodes.h","postgresql:REL8_2_7:src/include/utils/errcodes.h","postgresql:REL8_2_8:src/include/utils/errcodes.h","postgresql:REL8_2_9:src/include/utils/errcodes.h","postgresql:REL8_3_0:src/include/utils/errcodes.h","postgresql:REL8_3_10:src/include/utils/errcodes.h","postgresql:REL8_3_11:src/include/utils/errcodes.h","postgresql:REL8_3_12:src/include/utils/errcodes.h","postgresql:REL8_3_13:src/include/utils/errcodes.h","postgresql:REL8_3_14:src/include/utils/errcodes.h","postgresql:REL8_3_15:src/include/utils/errcodes.h","postgresql:REL8_3_16:src/include/utils/errcodes.h","postgresql:REL8_3_17:src/include/utils/errcodes.h","postgresql:REL8_3_18:src/include/utils/errcodes.h","postgresql:REL8_3_19:src/include/utils/errcodes.h","postgresql:REL8_3_1:src/include/utils/errcodes.h","postgresql:REL8_3_20:src/include/utils/errcodes.h","postgresql:REL8_3_21:src/include/utils/errcodes.h","postgresql:REL8_3_22:src/include/utils/errcodes.h","postgresql:REL8_3_23:src/include/utils/errcodes.h","postgresql:REL8_3_2:src/include/utils/errcodes.h","postgresql:REL8_3_3:src/include/utils/errcodes.h","postgresql:REL8_3_4:src/include/utils/errcodes.h","postgresql:REL8_3_5:src/include/utils/errcodes.h","postgresql:REL8_3_6:src/include/utils/errcodes.h","postgresql:REL8_3_7:src/include/utils/errcodes.h","postgresql:REL8_3_8:src/include/utils/errcodes.h","postgresql:REL8_3_9:src/include/utils/errcodes.h","postgresql:REL8_4_0:src/include/utils/errcodes.h","postgresql:REL8_4_10:src/include/utils/errcodes.h","postgresql:REL8_4_11:src/include/utils/errcodes.h","postgresql:REL8_4_12:src/include/utils/errcodes.h","postgresql:REL8_4_13:src/include/utils/errcodes.h","postgresql:REL8_4_14:src/include/utils/errcodes.h","postgresql:REL8_4_15:src/include/utils/errcodes.h","postgresql:REL8_4_16:src/include/utils/errcodes.h","postgresql:REL8_4_17:src/include/utils/errcodes.h","postgresql:REL8_4_18:src/include/utils/errcodes.h","postgresql:REL8_4_19:src/include/utils/errcodes.h","postgresql:REL8_4_1:src/include/utils/errcodes.h","postgresql:REL8_4_20:src/include/utils/errcodes.h","postgresql:REL8_4_21:src/include/utils/errcodes.h","postgresql:REL8_4_22:src/include/utils/errcodes.h","postgresql:REL8_4_2:src/include/utils/errcodes.h","postgresql:REL8_4_3:src/include/utils/errcodes.h","postgresql:REL8_4_4:src/include/utils/errcodes.h","postgresql:REL8_4_5:src/include/utils/errcodes.h","postgresql:REL8_4_6:src/include/utils/errcodes.h","postgresql:REL8_4_7:src/include/utils/errcodes.h","postgresql:REL8_4_8:src/include/utils/errcodes.h","postgresql:REL8_4_9:src/include/utils/errcodes.h"],"notes":"The old definition path and same-tag documentation were locked for the observed 7.4..8.4 tags; this is a definition presence bound, not a runtime path or precise introducing commit.","scope":"pre9-definition-history","status":"definition_only"}]},"Evidence":[{"Kind":"cases","Ordinal":0,"ID":"plpgsql_raise_exception","ServerVersion":null,"Status":null,"Payload":{"assertions":["SQLSTATE is P0001","The custom message is preserved","The failed call is isolated to its transaction"],"case_id":"plpgsql_raise_exception","cleanup":"Drop the function and case schema.","has_snippet":true,"position":0,"preconditions":["PL/pgSQL is available"],"repair":"Use a domain-specific SQLSTATE only when the caller contract requires it; catch and handle the exception at the correct transaction boundary.","trigger":"Execute a function containing RAISE EXCEPTION without an explicit SQLSTATE.","versions":["10","18"]}},{"Kind":"claims","Ordinal":0,"ID":"identity.class-and-condition","ServerVersion":null,"Status":null,"Payload":{"claim_id":"identity.class-and-condition","limits":"The directory identifies the condition; it does not say that every application error should use P0001.","method":"Read the Class P0 section and P0001 row in the frozen errcodes.txt snapshot.","position":0,"runtime":[],"sources":["src.errcodes.18.6"],"statement":"P0001 is the raise_exception condition in PostgreSQL-specific Class P0, PL/pgSQL Error."}},{"Kind":"claims","Ordinal":1,"ID":"raise.default-code","ServerVersion":null,"Status":null,"Payload":{"claim_id":"raise.default-code","limits":"An explicit condition, SQLSTATE, or ERRCODE selects another code; the default applies to an EXCEPTION-level raise.","method":"Read the executor's default err_code branch and the official RAISE documentation.","position":1,"runtime":[],"sources":["src.pl-exec.18.6","doc.plpgsql.18"],"statement":"A RAISE EXCEPTION with no condition name and no SQLSTATE defaults to raise_exception, P0001."}},{"Kind":"claims","Ordinal":2,"ID":"raise.levels-and-fields","ServerVersion":null,"Status":null,"Payload":{"claim_id":"raise.levels-and-fields","limits":"Client and server visibility also depends on message configuration; an explicit SQLSTATE can accompany a lower level.","method":"Read the RAISE syntax, level behavior, USING options, and ereport construction.","position":2,"runtime":[],"sources":["doc.plpgsql.18","src.pl-exec.18.6"],"statement":"RAISE supports DEBUG, LOG, INFO, NOTICE, WARNING, and EXCEPTION levels; EXCEPTION normally aborts the current transaction, while lower levels generate messages, and USING can supply structured fields."}},{"Kind":"claims","Ordinal":3,"ID":"raise.handler-subtransaction","ServerVersion":null,"Status":null,"Payload":{"claim_id":"raise.handler-subtransaction","limits":"The handler's own errors propagate outward, and local variables follow PL/pgSQL's documented handler rules.","method":"Read the official error-trapping and subtransaction descriptions.","position":3,"runtime":[],"sources":["doc.plpgsql.18"],"statement":"A PL/pgSQL block with an EXCEPTION clause runs its protected body in a subtransaction; persistent changes made by the body are rolled back before the matching handler runs."}},{"Kind":"claims","Ordinal":4,"ID":"raise.others-boundary","ServerVersion":null,"Status":null,"Payload":{"claim_id":"raise.others-boundary","limits":"OTHERS is a broad handler; this claim does not recommend swallowing all errors.","method":"Read the condition matching and handler propagation paragraphs.","position":4,"runtime":[],"sources":["doc.plpgsql.18"],"statement":"OTHERS matches every error type except QUERY_CANCELED and ASSERT_FAILURE, and a new error raised by the selected handler is not caught by that same clause."}},{"Kind":"claims","Ordinal":5,"ID":"raise.diagnostics","ServerVersion":null,"Status":null,"Payload":{"claim_id":"raise.diagnostics","limits":"The exact fields present depend on the raised condition and the client interface.","method":"Read the PL/pgSQL exception diagnostics section and the protocol field reference.","position":5,"runtime":[],"sources":["doc.plpgsql.18","doc.protocol.18"],"statement":"Inside an exception handler, SQLSTATE and SQLERRM identify the active exception and GET STACKED DIAGNOSTICS can retrieve its fields."}},{"Kind":"claims","Ordinal":6,"ID":"runtime.raise-case","ServerVersion":null,"Status":null,"Payload":{"claim_id":"runtime.raise-case","limits":"This is an intentional PL/pgSQL exception case; it does not test custom SQLSTATEs, explicit transactions, or handler recovery.","method":"Read the stable case and ordered snippet registry, then compare the case_result diagnostics and follow-up status in both final target summaries and raw records.","position":6,"runtime":[],"sources":["case-manifest.P0001","snippet-registry.P0001.final","runtime.P0001-snippet-registry-final-20260909.latest","runtime.P0001-snippet-registry-final-20260909.pg10"],"statement":"plpgsql_raise_exception returned P0001 with the caller-supplied calibration exception message on PostgreSQL 18.6 and 10.21; both autocommit connections remained IDLE and accepted SELECT 1."}},{"Kind":"claims","Ordinal":7,"ID":"runtime.transaction-context","ServerVersion":null,"Status":null,"Payload":{"claim_id":"runtime.transaction-context","limits":"No explicit transaction was run in this P0001 case; handler blocks have the separate subtransaction contract above.","method":"Read the transaction contract and compare it with the observed IDLE/follow-up result.","position":7,"runtime":[],"sources":["doc.transactions.18","runtime.P0001-snippet-registry-final-20260909.latest","runtime.P0001-snippet-registry-final-20260909.pg10"],"statement":"An unhandled EXCEPTION in an explicit transaction normally requires rollback before unrelated commands, while the representative autocommit call leaves the connection usable."}},{"Kind":"claims","Ordinal":8,"ID":"versions.catalogue-boundary","ServerVersion":null,"Status":null,"Payload":{"claim_id":"versions.catalogue-boundary","limits":"The pre-9.0 source set is locked through 8.4.22 but candidate source gaps remain for 7.0–7.3; the observed condition-name and class-title changes are not exact implementation introduction dates.","method":"Read the manifest snapshot and the same-tag REL8_1_4 errcodes.sgml row for the code; the generated per-code history is a derived view.","position":8,"runtime":[],"sources":["manifest.P0001","doc.errcodes.8.1.4"],"statement":"The locked catalogue records P0001 in the 8.0.0–8.4.22 pre-9.0 formal sources, every listed formal snapshot from 9.0.23 through 18.6, and 19beta3. The same-tag REL8_1_4 errcodes.sgml row already lists P0001 as raise_exception, confirming that condition-name observation by 8.1.4. The class title changes between the 9.0 header and 9.1 text definitions; candidate source gaps remain for 7.0–7.3. These are presence boundaries, not asserted implementation introduction dates."}},{"Kind":"messages","Ordinal":0,"ID":"message.raise-user","ServerVersion":null,"Status":null,"Payload":{"limits":"There is no universal P0001 primary text; the default message when no text is supplied is the condition name or SQLSTATE.","message_id":"message.raise-user","path":"","position":0,"raw":{"id":"message.raise-user","limits":"There is no universal P0001 primary text; the default message when no text is supplied is the condition name or SQLSTATE.","primary_template":"caller-supplied RAISE format, condition, or MESSAGE expression","severity_source":"default EXCEPTION level","sources":["src.pl-exec.18.6","doc.plpgsql.18"],"sqlstate":"P0001"},"severity":"default EXCEPTION level","sources":["src.pl-exec.18.6","doc.plpgsql.18"],"templates":[{"kind":"primary","literal":"caller-supplied RAISE format, condition, or MESSAGE expression","position":0,"role":"","template":"caller-supplied RAISE format, condition, or MESSAGE expression"}]}},{"Kind":"messages","Ordinal":1,"ID":"message.runtime-calibration","ServerVersion":null,"Status":null,"Payload":{"limits":"This literal is specific to the representative function and is not a built-in P0001 message template.","message_id":"message.runtime-calibration","path":"","position":1,"raw":{"id":"message.runtime-calibration","limits":"This literal is specific to the representative function and is not a built-in P0001 message template.","primary_template":"calibration exception","severity_source":"EXCEPTION","sources":["runtime.P0001-snippet-registry-final-20260909.latest","runtime.P0001-snippet-registry-final-20260909.pg10"],"sqlstate":"P0001"},"severity":"EXCEPTION","sources":["runtime.P0001-snippet-registry-final-20260909.latest","runtime.P0001-snippet-registry-final-20260909.pg10"],"templates":[{"kind":"primary","literal":"calibration exception","position":0,"role":"","template":"calibration exception"}]}},{"Kind":"runtimes","Ordinal":0,"ID":"runtime.P0001-snippet-registry-final-20260909.latest","ServerVersion":"18.6 (Homebrew)","Status":"passed","Payload":{"cases":["plpgsql_raise_exception"],"limits":"","position":0,"raw":{"cases":["plpgsql_raise_exception"],"id":"runtime.P0001-snippet-registry-final-20260909.latest","observed":{"followup":1,"message_primary":"calibration exception","severity":"ERROR","source_file":"pl_exec.c","source_function":"exec_stmt_raise","source_line":"3923","sqlstate":"P0001","status_after_error":"IDLE"},"raw":"verify/results/P0001-snippet-registry-final-20260909/latest/raw.jsonl","raw_sha256":"f0ce5f0fcbeaeba978fbb959a418c24eac2ec1db2b0393b9bc15f24d3936ed1b","run_id":"P0001-snippet-registry-final-20260909","server_version":"18.6 (Homebrew)","server_version_num":180006,"snippet_registry":{"path":"verify/cases/P0001/snippets.json","sha256":"1728525c9f6f073807ce34df0d9a4ee60f1c8bce5179c8bca91c92ca79aa795a"},"status":"passed","summary":"verify/results/P0001-snippet-registry-final-20260909/latest/summary.json","summary_sha256":"6c298799062a8c47fd2eee07194afc0a6e53d7e1ef87639c9f996951f4de3c9b","target":"latest"},"run_id":"P0001-snippet-registry-final-20260909","runtime_id":"runtime.P0001-snippet-registry-final-20260909.latest","server_version":"18.6 (Homebrew)","status":"passed","target":"latest"}},{"Kind":"runtimes","Ordinal":1,"ID":"runtime.P0001-snippet-registry-final-20260909.pg10","ServerVersion":"10.21 (Debian 10.21-1.pgdg90+1)","Status":"passed","Payload":{"cases":["plpgsql_raise_exception"],"limits":"","position":1,"raw":{"cases":["plpgsql_raise_exception"],"id":"runtime.P0001-snippet-registry-final-20260909.pg10","image":"postgres@sha256:b2baf8998630663d21370da06387c950e587071bdd307ee34e661cdcc7442bcc","observed":{"followup":1,"message_primary":"calibration exception","severity":"ERROR","source_file":"pl_exec.c","source_function":"exec_stmt_raise","source_line":"3337","sqlstate":"P0001","status_after_error":"IDLE"},"raw":"verify/results/P0001-snippet-registry-final-20260909/pg10/raw.jsonl","raw_sha256":"4308e016521aed455b575094b061162077e06f83884e53e96074db1d7b144dac","run_id":"P0001-snippet-registry-final-20260909","server_version":"10.21 (Debian 10.21-1.pgdg90+1)","server_version_num":100021,"snippet_registry":{"path":"verify/cases/P0001/snippets.json","sha256":"1728525c9f6f073807ce34df0d9a4ee60f1c8bce5179c8bca91c92ca79aa795a"},"status":"passed","summary":"verify/results/P0001-snippet-registry-final-20260909/pg10/summary.json","summary_sha256":"5fe9b2e2a9147aebe3bd43af67cd60ff768dddbbe10ae92bb0a5a6d9dcad230c","target":"pg10"},"run_id":"P0001-snippet-registry-final-20260909","runtime_id":"runtime.P0001-snippet-registry-final-20260909.pg10","server_version":"10.21 (Debian 10.21-1.pgdg90+1)","status":"passed","target":"pg10"}},{"Kind":"sources","Ordinal":0,"ID":"src.errcodes.18.6","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"","location":"lines 487-494","path":"src/backend/utils/errcodes.txt","position":0,"sha256":"6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba","source_id":"src.errcodes.18.6","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt"}},{"Kind":"sources","Ordinal":1,"ID":"src.pl-exec.18.6","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"","location":"lines 3889-3923, exec_stmt_raise default and ereport","path":"src/pl/plpgsql/src/pl_exec.c","position":1,"sha256":"0df3c70a6bccf6dddf443fb99e152a16a67009827c44a820597e98e585cb8b20","source_id":"src.pl-exec.18.6","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/pl/plpgsql/src/pl_exec.c#L3889-L3923"}},{"Kind":"sources","Ordinal":2,"ID":"doc.plpgsql.18","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"","location":"lines 2815-2860, 2957-2968, 3768-3775, 3836-3858, 4008-4013","path":"doc/src/sgml/plpgsql.sgml","position":2,"sha256":"43d705adbded343336341fd3e34ea8940432e8a8211f737d36ba3041ad0a4a51","source_id":"doc.plpgsql.18","tag":"PG18-docs","url":"https://www.postgresql.org/docs/18/plpgsql-errors-and-messages.html"}},{"Kind":"sources","Ordinal":3,"ID":"doc.protocol.18","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"","location":"lines 6254-6290, severity and diagnostic fields","path":"doc/src/sgml/protocol.sgml","position":3,"sha256":"745339e07ebbc2bb67d98b258e25772ada644ef26011e3cd6b3fcbb435235f89","source_id":"doc.protocol.18","tag":"PG18-docs","url":"https://www.postgresql.org/docs/18/protocol-error-fields.html"}},{"Kind":"sources","Ordinal":4,"ID":"doc.transactions.18","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"","location":"transaction rollback and savepoint behavior","path":"doc/src/sgml/xact.sgml","position":4,"sha256":"b48fbe8bd02ce3d1181a350c88c8baa6e11c73edc90a936e77b180daef328c5c","source_id":"doc.transactions.18","tag":"PG18-docs","url":"https://www.postgresql.org/docs/18/tutorial-transactions.html"}},{"Kind":"sources","Ordinal":5,"ID":"doc.errcodes.8.1.4","ServerVersion":null,"Status":null,"Payload":{"commit":"313a720f95a3f41b59f853786b184f38f82172d9","docs_url":"","kind":"upstream_source","location":"REL8_1_4 table rows 1303-1308","path":"doc/src/sgml/errcodes.sgml","position":5,"sha256":"fdd6f5470b19970d3b60219a44e66b33193647975d346adfe2a98178f706b776","source_id":"doc.errcodes.8.1.4","tag":"","url":"https://github.com/postgres/postgres/blob/313a720f95a3f41b59f853786b184f38f82172d9/doc/src/sgml/errcodes.sgml#L1303-L1308"}},{"Kind":"sources","Ordinal":6,"ID":"manifest.P0001","ServerVersion":null,"Status":null,"Payload":{"commit":"","docs_url":"","kind":"local_artifact","location":"snapshots and definition_blobs entries for the P0001 definition","path":"sources/manifest.lock.json","position":6,"sha256":"1727a275f336988ff96b4f9990a4ca253080f73fc5d316e7def165c8cf3708a8","source_id":"manifest.P0001","tag":"","url":"../sources/manifest.lock.json"}},{"Kind":"sources","Ordinal":7,"ID":"case-manifest.P0001","ServerVersion":null,"Status":null,"Payload":{"commit":"","docs_url":"","kind":"local_artifact","location":"plpgsql_raise_exception","path":"verify/cases/P0001/cases.json","position":7,"sha256":"0976d6bce923e005cd20d0b74ffb82b98793c2136497e4f9b281c9168f3fc2f9","source_id":"case-manifest.P0001","tag":"","url":"../verify/cases/P0001/cases.json"}},{"Kind":"sources","Ordinal":8,"ID":"snippet-registry.P0001.final","ServerVersion":null,"Status":null,"Payload":{"commit":"","docs_url":"","kind":"local_artifact","location":"plpgsql_raise_exception ordered function, call, and followup","path":"verify/cases/P0001/snippets.json","position":8,"sha256":"1728525c9f6f073807ce34df0d9a4ee60f1c8bce5179c8bca91c92ca79aa795a","source_id":"snippet-registry.P0001.final","tag":"","url":"../verify/cases/P0001/snippets.json"}}]}
