Timeline of PostgreSQL

PostgreSQL’s evolution from Berkeley’s POSTGRES research project in 1986 to a community database with replication, extensibility, document storage, and asynchronous reads in 2025.

Category
Engineering & Technology
Tag
computing
Events
21 events 1986 – 2025
Generated
by gpt-6
  1. 1986: Berkeley begins the POSTGRES project

    Michael Stonebraker’s team at the University of California, Berkeley began implementing POSTGRES as a successor to Ingres. The research explored richer data types, extensibility, and rules beyond the capabilities of conventional relational systems.

    https://en.wikipedia.org/wiki/PostgreSQL
  2. 1989: POSTGRES reaches external users

    The Berkeley team released POSTGRES version 1 to a small group of outside users. The research prototype became a system that others could evaluate and use, beginning the path from university experiment to a wider database community.

    https://en.wikipedia.org/wiki/PostgreSQL
  3. 1995: Postgres95 brings SQL to the project

    Andrew Yu and Jolly Chen released Postgres95 after replacing the original POSTQUEL interpreter with support for Structured Query Language (SQL). The release also introduced the psql interactive client and opened a new phase of development outside the original research project.

    https://en.wikipedia.org/wiki/PostgreSQL
  4. 1996: Community developers adopt the PostgreSQL name

    A growing group of contributors took responsibility for the Berkeley-derived code and adopted the name PostgreSQL. The name reflected its Structured Query Language support while preserving its connection to POSTGRES.

    https://en.wikipedia.org/wiki/PostgreSQL
  5. 1997: PostgreSQL 6.0 begins the new release line

    PostgreSQL 6.0 became the first release under the new name. A distributed contributor community continued improving the inherited database rather than rebuilding it as a proprietary product.

    https://en.wikipedia.org/wiki/PostgreSQL
  6. 1999: Multiversion concurrency reduces reader-writer blocking

    PostgreSQL 6.5 introduced multiversion concurrency control. Keeping multiple row versions let transactions read consistent snapshots while other transactions changed data, reducing the need for readers and writers to block one another.

    https://en.wikipedia.org/wiki/Multiversion_concurrency_control
  7. 2000: Foreign keys strengthen relational integrity

    PostgreSQL 7.0 added foreign-key constraints. Applications could ask the database to enforce relationships between tables, reducing dependence on application code to prevent references to nonexistent records.

    https://en.wikipedia.org/wiki/Foreign_key
  8. 2001: Write-ahead logging changes crash recovery

    PostgreSQL 7.1 introduced write-ahead logging, recording changes in a log before affected data pages were written. Flushing the log at commit instead of every changed data page reduced the performance cost of crash safety and laid a foundation for later backup and replication capabilities.

    https://en.wikipedia.org/wiki/Write-ahead_logging
  9. 2001: PostGIS adds geographic data support

    Refractions Research released PostGIS as an extension for PostgreSQL. Geographic objects and spatial operations made the database useful for mapping and location-based applications while demonstrating the value of its extensibility.

    https://en.wikipedia.org/wiki/PostGIS
  10. 2005: PostgreSQL gains native Windows support

    PostgreSQL 8.0 added a native Windows server alongside savepoints and point-in-time recovery. Native support expanded deployment options, while recovery from archived logs gave administrators more control over restoring a database.

    https://en.wikipedia.org/wiki/PostgreSQL
  11. 2008: Full-text search enters the core

    PostgreSQL 8.3 integrated full-text search previously available through the tsearch2 module. Applications could index and search natural-language documents using database-managed dictionaries, ranking, and text-search data types.

    https://en.wikipedia.org/wiki/Full-text_search
  12. 2009: Recursive and window queries arrive

    PostgreSQL 8.4 added recursive common table expressions and window functions. Hierarchical traversal and calculations across related rows could be expressed directly in queries rather than reconstructed with application-side loops.

    https://en.wikipedia.org/wiki/PostgreSQL
  13. 2010: Streaming replication supports readable standbys

    PostgreSQL 9.0 introduced streaming replication and hot standby. Log records could be sent continuously to replicas, and standby servers could answer read-only queries while replaying changes from the primary.

    https://en.wikipedia.org/wiki/PostgreSQL
  14. 2011: Extensions gain a managed installation system

    PostgreSQL 9.1 introduced a formal extension mechanism, querying through foreign tables, and synchronous replication. Packaging database additions as extensions made installing and updating capabilities such as PostGIS easier to manage.

    https://en.wikipedia.org/wiki/PostgreSQL
  15. 2012: JSON becomes a native data type

    PostgreSQL 9.2 added a type for JavaScript Object Notation (JSON) and functions for producing it from relational data. The database could validate stored JSON documents while applications continued to use tables and transactions.

    https://en.wikipedia.org/wiki/PostgreSQL
  16. 2014: JSONB supports indexed document queries

    PostgreSQL 9.4 introduced JSONB, a decomposed representation of JavaScript Object Notation documents with indexing support. The release also added logical decoding, exposing database changes for replication and integration tools.

    https://en.wikipedia.org/wiki/PostgreSQL
  17. 2016: Conflict handling and parallel queries arrive

    PostgreSQL 9.5 introduced INSERT ON CONFLICT for handling competing inserts. Later in the year, PostgreSQL 9.6 added initial parallel-query support, allowing eligible scans, joins, and aggregations to use multiple worker processes.

    https://en.wikipedia.org/wiki/PostgreSQL
  18. 2017: Logical replication and declarative partitioning ship

    PostgreSQL 10 added built-in publication-and-subscription logical replication and declarative table partitioning. These features simplified selective data replication and managing large tables divided into smaller physical pieces.

    https://en.wikipedia.org/wiki/PostgreSQL
  19. 2018: Query execution gains optional compilation

    PostgreSQL 11 introduced optional just-in-time compilation using LLVM, along with stored procedures and expanded partitioning support. Compilation could accelerate expression evaluation in suitable long-running queries, with a preparation cost that made it less useful for some short queries.

    https://en.wikipedia.org/wiki/PostgreSQL
  20. 2022: MERGE joins the query language

    PostgreSQL 15 introduced the MERGE command, letting one statement conditionally insert, update, or delete rows based on a source relation. The release also improved sorting and logical replication.

    https://en.wikipedia.org/wiki/Merge_(SQL)
  21. 2025: Asynchronous reads reshape storage access

    PostgreSQL 18 introduced an asynchronous input/output subsystem for supported operations. The release also added virtual generated columns and preserved planner statistics during upgrades, improving both query execution and the transition between major versions.

    https://en.wikipedia.org/wiki/PostgreSQL