# P0000 — plpgsql_error

> Source-backed reference for PostgreSQL SQLSTATE P0000.
---

# P0000

## At a glance {#at-a-glance}

P0000 is the PL/pgSQL Error category entry. The bounded PostgreSQL 18.6 call archive has no resolved report group for the category code itself, so member-code paths remain separate.

<!-- BEGIN SQLSTATE FACTS: generated by scripts/generate.py; do not edit -->

| Field | Value |
| --- | --- |
| SQLSTATE | `P0000` |
| Condition | `plpgsql_error` |
| Status | `active` |
| Known present by | `8.0.0` |
| Locked 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` |
| Macros | `ERRCODE_PLPGSQL_ERROR` |
| Aliases | `—` |

<!-- source facts: data/errcodes/P0000.json -->
<!-- END SQLSTATE FACTS -->

## Meaning {#meaning}

This is a category identity for PL/pgSQL errors. More specific members such as P0002, P0003, and P0004 have their own paths.

## Diagnosis {#diagnosis}

Use the actual SQLSTATE in the ErrorResponse and inspect the concrete PL/pgSQL path; do not assign a member error to the category code.

## Response {#response}

Handle the concrete member SQLSTATE and its documented PL/pgSQL operation. Category identity alone is not enough for a narrower repair.

## Versions {#versions}

The locked catalogue records this condition from 8.0.0 in the listed formal snapshots and 19beta3; fixed source coverage is PostgreSQL 18.6.

## Related {#related}

[`P0002`](../p0002/), [`P0003`](../p0003/), [`P0004`](../p0004/)

## Sources {#sources}

See the fixed source links, message templates, and scope limits in the structured [evidence record](../data/evidence/p0000.json).
