PostgreSQL extension compatibility with PostgreSQL major versions
Which major versions of PostgreSQL a popular server extension supports, taken from that extension's own documentation, README or changelog -- not from any one cloud vendor's managed-service certification list. Before upgrading a self-hosted PostgreSQL server, an operator running several extensions has to check every extension's supported range separately, because dropping support for an old PostgreSQL version and adding support for a new one happen on each extension's own schedule, not in step with Postgres itself or with each other. Cloud vendors (Azure, AWS/Aurora, DigitalOcean, Alibaba) each publish their own extension-by-version table, but that shows what the vendor has certified for its managed service, which lags or diverges from what the extension's own maintainers say it supports; no vendor-neutral page was found that cites each extension's own documentation. Some projects state a range in one sentence; others state only that a particular release added or dropped a PostgreSQL version, and the range has to be read off those entries. Both are recorded here, and which one a record rests on is visible from its quote.
The data
| Extension | Oldest PostgreSQL version supported | Newest PostgreSQL version supported | Extension version this applies to | Supported PostgreSQL versions |
|---|---|---|---|---|
| Citus | 16 | 18 | citus v14.0.0 | |
| HypoPG | 9.2 | PostgreSQL 9.2 and above | ||
| pg_cron | 10 | PostgreSQL (10 or higher) | ||
| pg_partman | 14 | PostgreSQL >= 14 | ||
| pgAudit | 14 | 19 | PostgreSQL 14 or greater | |
| pgvector | 13 | supports Postgres 13+ | ||
| PostGIS | 12 | 18 | PostGIS 3.5.8dev | PostgreSQL versions 12 - 18 |
| TimescaleDB | 16 | 2.29.0 | ||
| wal2json | 9.4 | PostgreSQL 9.4+ |
Where this came from
Every record above links the page it was taken from and quotes the sentence that states it. These are the 9 sources this dataset was assembled from.
- raw.githubusercontent.comhttps://raw.githubusercontent.com/citusdata/citus/main/CHANGELOG.md
- raw.githubusercontent.comhttps://raw.githubusercontent.com/HypoPG/hypopg/master/README.md
- raw.githubusercontent.comhttps://raw.githubusercontent.com/citusdata/pg_cron/main/README.md
- raw.githubusercontent.comhttps://raw.githubusercontent.com/pgpartman/pg_partman/master/README.md
- raw.githubusercontent.comhttps://raw.githubusercontent.com/pgaudit/pgaudit/master/README.md
- github.comhttps://github.com/pgvector/pgvector
- postgis.nethttps://www.postgis.net/docs/manual-3.5/postgis_installation.html
- docs.timescale.comhttps://docs.timescale.com/self-hosted/latest/upgrades/upgrade-pg/
- raw.githubusercontent.comhttps://raw.githubusercontent.com/eulerto/wal2json/master/README.md
Machine-readable
- data.jsonThe whole dataset — every record with its source URL and source quote.
- Open Knowledge Format bundleOne JSON object per line — every record's frontmatter and quoted span exactly as it is held here, in one fetch.
- data.csvThe same records as one flat table, for a spreadsheet or a dataframe. The last four columns are the source URL, the quoted sentence it was read from, the date we last checked it, and which columns are our reading rather than the page's words.
- How this is made and checkedWhat "verified against source" does and does not mean.
From your own code
Same records, same quotes, without scraping the page: refsource is on PyPI and npm. Each value comes back carrying the URL it was read from and the sentence on that page that states it — .source and .quote sit on the value itself rather than in a side channel, so the checking step is available instead of skipped.
pip install refsource
refsource lookup postgres-extension-postgresql-version-compatibility extension_name=Citus
npx -y refsource lookup postgres-extension-postgresql-version-compatibility extension_name=Citus
Set your AI assistant up to use this
Two files and no account. Put this in .mcp.json at the root of your project — Claude Code, Cursor, Windsurf, VS Code and Codex all read that file — and your assistant can look this dataset up instead of recalling it. The server is remote, keyless and read-only.
{
"mcpServers": {
"referencesource": {
"type": "http",
"url": "https://referencesource.org/mcp"
}
}
}Add to Cursor · or, on the command line: claude mcp add --transport http referencesource https://referencesource.org/mcp --scope project
Then one line in the project's CLAUDE.md or AGENTS.md, so the assistant knows when to reach for it:
When a question needs "PostgreSQL extension compatibility with PostgreSQL major versions", call the referencesource MCP server at https://referencesource.org/mcp (tool `search_records`, dataset_slug `postgres-extension-postgresql-version-compatibility`) instead of answering from memory — every record it returns carries its source URL and a verbatim quote from that page.What each tool does, and the servers built over single registers: Connect your AI assistant.