# PostgreSQL versions

> Compare SQLSTATE definitions and documented changes across releases.
---

The generated table distinguishes formal PostgreSQL releases from the latest preview snapshot. Presence means the definition was found in the locked source; it does not by itself prove a runtime path or an exact introduction release.

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

| Version | Channel | Codes | Evidence |
| --- | --- | ---: | --- |
| [`9.0.23`](9.0/) | `formal` | 199 | [locked source](https://github.com/postgres/postgres/blob/9a42e8514f7e42737992bb09bd93540dd9630a9a/src/include/utils/errcodes.h) |
| [`9.1.24`](9.1/) | `formal` | 228 | [locked source](https://github.com/postgres/postgres/blob/e85493559c4678f54d30b6b4e04b17c03a3192d7/src/backend/utils/errcodes.txt) |
| [`9.2.24`](9.2/) | `formal` | 232 | [locked source](https://github.com/postgres/postgres/blob/8786f783ab2398468a8c4d8eac937fc6533d16e3/src/backend/utils/errcodes.txt) |
| [`9.3.25`](9.3/) | `formal` | 232 | [locked source](https://github.com/postgres/postgres/blob/c10bb239d29017ba66eca88a24b84a1d4db36a6c/src/backend/utils/errcodes.txt) |
| [`9.4.26`](9.4/) | `formal` | 232 | [locked source](https://github.com/postgres/postgres/blob/30ffdd24d7222bc01183a56d536c236240674516/src/backend/utils/errcodes.txt) |
| [`9.5.25`](9.5/) | `formal` | 236 | [locked source](https://github.com/postgres/postgres/blob/202c587e2f28bc295f6935d044e20680b627e7a1/src/backend/utils/errcodes.txt) |
| [`9.6.24`](9.6/) | `formal` | 238 | [locked source](https://github.com/postgres/postgres/blob/a4116b8d5a4f68803452d8f1aa3f74f302049a90/src/backend/utils/errcodes.txt) |
| [`10.23`](10/) | `formal` | 240 | [locked source](https://github.com/postgres/postgres/blob/02991e79f8f58bc208f05dcc8af0c62dbe0a6ea4/src/backend/utils/errcodes.txt) |
| [`11.22`](11/) | `formal` | 241 | [locked source](https://github.com/postgres/postgres/blob/fd851f9e4a13d81cccc4ac5d6059d732c7518111/src/backend/utils/errcodes.txt) |
| [`12.22`](12/) | `formal` | 257 | [locked source](https://github.com/postgres/postgres/blob/498f30a8b7025a2a7bd3715acc1d1692122ba542/src/backend/utils/errcodes.txt) |
| [`13.23`](13/) | `formal` | 258 | [locked source](https://github.com/postgres/postgres/blob/89df812eb890814b105d871185935b580478e660/src/backend/utils/errcodes.txt) |
| [`14.24`](14/) | `formal` | 259 | [locked source](https://github.com/postgres/postgres/blob/6b3806732b7c5df06bdd0ed150e8a07b4ad62315/src/backend/utils/errcodes.txt) |
| [`15.19`](15/) | `formal` | 260 | [locked source](https://github.com/postgres/postgres/blob/2ff1375b5dd8bf09d8cb0e795974528180fd75ca/src/backend/utils/errcodes.txt) |
| [`16.15`](16/) | `formal` | 260 | [locked source](https://github.com/postgres/postgres/blob/7d3e000c5961a544302072058a1184e9a588837b/src/backend/utils/errcodes.txt) |
| [`17.11`](17/) | `formal` | 260 | [locked source](https://github.com/postgres/postgres/blob/083ac033419f690758508e08c1736089384bbee8/src/backend/utils/errcodes.txt) |
| [`18.6`](18/) | `formal` | 262 | [locked source](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt) |
| [`19beta3`](19/) | `preview` | 262 | [locked source](https://github.com/postgres/postgres/blob/3638289fb57bdabec00deda98ee9624a35f5d66a/src/backend/utils/errcodes.txt) |

<!-- END SQLSTATE INDEX -->

---

Backlinks:

- [SQLSTATE Atlas](/)
