PostgreSQL

No release history is available yet.

What it is

PostgreSQL is an open-source relational database management system. It stores data in tables and supports SQL for querying, defining schemas, controlling access, and managing transactions. It is commonly used for application databases, analytical workloads, geospatial data, and systems that need strong correctness guarantees. Its design includes transactional consistency, concurrent access through multiversion concurrency control, extensibility through custom types and functions, and support for features such as JSON documents, full-text search, partitioning, replication, and procedural languages. Although it can handle document-like data, it remains fundamentally a relational database whose query planning, constraints, and transactional behavior are central to its operating model.

History

PostgreSQL originated as a research successor to an earlier database project at the University of California, Berkeley. It was designed to explore extensible database concepts, including user-defined data types, operators, and query capabilities. A community-led open-source project later adopted and developed the codebase under the PostgreSQL name. Over time, it evolved from a research-oriented system into a widely deployed production database, adding more complete SQL support, improved reliability and recovery, replication options, performance work, operational tooling, and features aimed at both conventional relational applications and newer semi-structured data use cases. Development is coordinated by a global open-source community rather than a single commercial vendor, with many companies offering hosted services, support, and PostgreSQL-compatible products.

Migration notes

Migrations to PostgreSQL are often straightforward at the relational-model level but complicated by differences in SQL dialects, type systems, procedural code, and operational assumptions. Source databases may use nonstandard SQL syntax, different identifier casing rules, distinct rules for empty strings and null values, or implicit type conversions that PostgreSQL does not permit. Auto-incrementing key implementations, date and time handling, binary and large-object storage, collations, character encodings, and boolean representations should be reviewed explicitly. Stored procedures, triggers, scheduled jobs, proprietary packages, and database-side application logic frequently need redesign or translation rather than direct conversion. Query behavior and performance can also change because PostgreSQL has its own optimizer, indexing options, statistics model, locking semantics, and transaction isolation behavior. Applications that depend on a source system's optimizer hints, read-consistency behavior, permissive grouping rules, or vendor-specific functions may require code changes and query tuning. Migrating from PostgreSQL has similar concerns, particularly where applications rely on PostgreSQL-specific capabilities such as rich data types, arrays, JSON operators, range types, extensions, custom operators, full-text search, or procedural functions. Operational migration planning should account for role and privilege mapping, extensions, replication or change-data-capture strategy, data validation, sequence synchronization, maintenance routines, backup and restore practices, and the effect of long-running transactions on cutover and rollback plans.

Version support status

PostgreSQL version support status by cycle
CycleStatusDate
PostgreSQL 18SupportedNo support end date published
PostgreSQL 17SupportedNo support end date published
PostgreSQL 16SupportedNo support end date published
PostgreSQL 15SupportedNo support end date published
PostgreSQL 14SupportedNo support end date published
PostgreSQL 13End of lifeEOL 13 November 2025
PostgreSQL 12End of lifeEOL 21 November 2024
PostgreSQL 11End of lifeEOL 9 November 2023
PostgreSQL 10End of lifeEOL 10 November 2022
PostgreSQL 9.6End of lifeEOL 11 November 2021