Skip to content

Supported Postgres versions

Alcuin supports Postgres 14, 15, 16, 17 and 18. Hosted Postgres counts too, so long as it runs one of those versions.

  • Each pull request runs every catalog query against Postgres 14, 15, 16, 17 and 18.
  • The unit, interface and end-to-end tests run against Postgres 18.
  • Each night, the tests for SSH tunnels and dropped connections run against Postgres 18.
  • Each night, a suite runs through PgBouncer in transaction mode. It can also run against hosted Postgres (Amazon RDS, Supabase, Neon and Cloud SQL), for each provider set up to receive it.

The status bar shows the server’s version once you connect, for example Connected · PostgreSQL 17.4.

Most of Alcuin works the same on every supported version. Some features need a newer one; the table gives examples. On an older server, Alcuin doesn’t offer them and says why where they would be:

Needs Features
Postgres 15 Unique indexes with NULLS NOT DISTINCT, CREATE DATABASE … STRATEGY, views with security_invoker
Postgres 16 Explaining with a generic plan
Postgres 17 EXPLAIN (SERIALIZE)
Postgres 18 Virtual generated columns, cloning a database with file_copy_method, uuidv7()

The reason reads like Needs PostgreSQL 16. Explaining with Generic plan on an older server fails with A generic plan needs PostgreSQL 16. (ALC-9001).

Two extensions add features when the database has them:

  • pg_stat_statements: Top statements, and better ranking in completion.
  • HypoPG: trying an index in a plan without building it.

A server newer than Postgres 18, such as Postgres 19, connects as usual. The status bar adds that the version is untested: Connected · PostgreSQL 19.0 · untested version. Nothing is blocked. If something doesn’t work, open an issue with the version.

Postgres 13 and older are not supported, but they are not blocked either. Alcuin connects with no warning, and reads the catalog with the queries written for Postgres 14. Some of those may fail on an older server, so the object tree, the Structure tab or other views can show errors. Alcuin makes no promise about how much works.

Upgrade to Postgres 14 or later to use Alcuin. Postgres 13 has also reached the end of its life with the Postgres project: see the versioning policy.