PostgreSQL 13

13 released 24 September 2020, latest 13.23.

PostgreSQL 13 reached end of life on 13 November 2025.

What changed

PostgreSQL 13 improved performance and administration over PostgreSQL 12. It added incremental sort, allowing some queries to reuse an existing partial ordering rather than sorting all rows again. B-tree indexes gained deduplication of duplicate keys, which can reduce index size and improve cache efficiency for workloads with many repeated indexed values. VACUUM gained the ability to process indexes in parallel, reducing maintenance time for tables with multiple indexes. The release also improved partitioning and logical replication behavior, added richer extended statistics for better planner estimates, and expanded operational tooling, including compression options for pg_basebackup and more detailed progress reporting for maintenance commands.

What staying costs

PostgreSQL 13 has reached end of life, so it no longer receives upstream fixes for security vulnerabilities, data-corruption defects, reliability problems, or newly discovered compatibility issues. Continuing to run it leaves the organization responsible for accepting, mitigating, or independently patching those risks. The practical impact grows when operating-system packages, client libraries, extensions, backup tooling, and managed-service offerings move their testing and support to maintained PostgreSQL releases. Staying on 13 also postpones planner, replication, vacuum, observability, SQL, and operational improvements available in later major versions, while making the eventual upgrade a larger and less familiar change.

What to do

Plan a move from PostgreSQL 13 to a currently maintained major release. Inventory databases, extensions, custom types, collations, authentication settings, replication topology, backup and restore procedures, monitoring integrations, and application drivers before choosing an upgrade path. Test the target version against production-like data and workload patterns, with particular attention to extension compatibility, query-plan changes, collation behavior, logical replication, and performance-sensitive SQL. Use pg_upgrade when its prerequisites and downtime profile fit the environment, or use dump and restore or logical replication when a staged migration, platform change, or lower application cutover risk is required. Rehearse rollback, validate backups with restores, compare data and application behavior after migration, and update operational runbooks before production cutover.

We can tell you what moving off PostgreSQL 13 involves.

What it takes to move off PostgreSQL 13 depends on what you built on it — the version you are on, how much depends on it, and how much of the work is mechanical. Leave your email with this version and we can tell you what that looks like for you.

Not sure yet? Get my plan