T1#open-source#research
Postgres95 Becomes PostgreSQL — Berkeley Postgres Leaves the University
Metadata
- Date
- Decade
- 1990s
- Tier
- T1
- Timelines
- A History of Databases
- Sources
- 08
- Connections
- 00
- Tags
- #open-source#research
At 06:22 UTC on 9 July 1996, Marc Fournier placed the first commit into a newly created repository. The message was eight words: "Postgres95 1.01 Distribution - Virgin Sources". Thirty years later the same repository still carries PostgreSQL's development. What it held was the descendant of the UC Berkeley research project POSTGRES, refashioned through the adoption of SQL and the migration of development to an external community.
Where MySQL took speed and grabbed the web, PostgreSQL took a different road: the uncompromising RDB. Thirty years on, that purism is the reason it now tops Stack Overflow's Developer Survey.
Prehistory — Stonebraker's Two Berkeley Projects
PostgreSQL's ancestors are two Michael Stonebraker projects at UC Berkeley.
The first, Ingres (1973-1985), was among the earliest academic implementations of Codd's relational model. Built around the relational-calculus-style language QUEL, it incubated talent for Oracle, Sybase, and Microsoft SQL Server. Ingres veteran Bob Epstein co-founded Sybase in 1984; Microsoft licensed Sybase's DataServer technology in the late 1980s and shipped it as SQL Server for OS/2. The joint development ended in 1994, with Microsoft keeping the rights to the Windows-side code.
The second, POSTGRES (implementation begun 1986), was Stonebraker's "post-Ingres"—hence the name. It extended the relational model with user-defined types, user-defined functions, inheritance, and a rule system, becoming one of the earliest "object-relational DBMS" implementations. The first "demoware" ran in 1987; Version 1 went to a handful of external users in June 1989, Version 2 in June 1990, Version 3 in 1991. Supporting an external user base consumed the research time it was meant to fund, and the Berkeley project officially ended at Version 4.2.
1994-1996 — Adopting SQL, Opening the Code
In 1994, Berkeley graduate students Andrew Yu and Jolly Chen added an SQL language interpreter to POSTGRES. The result was Postgres95: PostQUEL replaced by SQL, the code rewritten in pure ANSI C and trimmed by 25%, and—per the project's own documentation—30-50% faster than POSTGRES 4.2 on the Wisconsin Benchmark. The interactive client psql also arrived here.
The distribution had left Berkeley, but there was still no repository. That was created on 9 July 1996, with the Postgres95 1.01 sources imported wholesale; Marc Fournier, Bruce Momjian, Vadim Mikheev, and Thomas Lockhart committed against it from then on. Later that year, on the judgement that "Postgres95" would not stand the test of time, the project was renamed PostgreSQL ("Postgres + SQL") and the version numbering was set to 6.0 to resume the sequence Berkeley POSTGRES had carried to 4.2. PostgreSQL 6.0 itself was released on 29 January 1997.
The licence is the PostgreSQL License, which postgresql.org describes as a liberal open-source licence similar to the BSD or MIT licences. It contrasts with MySQL's GPL/commercial dual licence and permits unrestricted use inside commercial products. Heroku, Amazon RDS, Aurora, and Google Cloud SQL can run PostgreSQL inside their commercial services precisely because of that choice.
Design Philosophy — ACID and Extensibility
Three pillars characterise PostgreSQL technically.
Strict ACID compliance. Transactions are atomic; the default isolation level is Read Committed, with Serializable available. Concurrency is implemented with MVCC (Multi-Version Concurrency Control), so readers do not block writers and writers do not block readers (Oracle gets the same property through a different, undo-based mechanism). This was the clear differentiator against pre-InnoDB MySQL.
An extensible type system. Users can add their own types, operators, and index access methods. Inherited from Berkeley Postgres, this design later proved fertile ground for game-changing extensions: PostGIS (geospatial data, 2001), TimescaleDB (time-series, 2017), and pgvector (vector search, 2021-).
Fidelity to the SQL standard. Window functions (8.4, 2009), common table expressions, JSON, arrays, range types, LATERAL JOIN—PostgreSQL implemented the standard's features carefully and faithfully to their semantics. It was not first to them (Oracle 8i shipped analytic functions a decade before 8.4), but when the requirement is "a DB that behaves exactly as the SQL spec says", PostgreSQL is the first choice.
The 2010s — Toward the Most-Used DB
For much of the 2000s, PostgreSQL was described as "MySQL's shadow". Performance tuning was complex, replication was unsophisticated, and GUI tooling thin.
The turning point was PostgreSQL 9.0 on 20 September 2010, which finally brought streaming replication and hot standby into the core. Then 9.4 (18 December 2014) added JSONB and logical decoding, 9.6 (29 September 2016) parallel execution, and 10 (5 October 2017) publish/subscribe logical replication. The "slower than MySQL" reputation became thoroughly outdated.
In Stack Overflow's Developer Survey, PostgreSQL passed MySQL as the most-used database in 2023—45.55% against 41.09%. The same survey put it first among databases for "admired" (71.3%, meaning users who want to keep using it) and for "desired" (42.3%). By the 2025 survey its usage was 55.6% against MySQL's 40.5%, and the survey itself notes that PostgreSQL has ranked highest for both admired and desired since 2023.
| MySQL — 2023 survey | 41.09% | |
|---|---|---|
| PostgreSQL — 2023 survey | 45.55% | |
| MySQL — 2025 survey | 40.5% | |
| PostgreSQL — 2025 survey | 55.6% |
The Cloud and AI Era — PostgreSQL's Second Spring
AWS's Aurora PostgreSQL (GA October 2017), Google's AlloyDB (2022), Microsoft's Azure Database for PostgreSQL, and Supabase (2020) all offer PostgreSQL-compatible managed services. Major cloud providers compete to ship PostgreSQL-flavour managed databases because the PostgreSQL License does not stand in the way of forking and extending the core.
Then there is the pgvector boom from 2023: vector-search functionality for LLM RAG (Retrieval-Augmented Generation) ships as a PostgreSQL extension. That has put a serious question to the industry: do we really need dedicated vector databases (Pinecone, Weaviate) when ordinary PostgreSQL can do the job?
Fifty-six years after Codd's relational-model paper of 1970, PostgreSQL—built on two Berkeley research projects, evolved as open source for thirty years—now stretches into the LLM era's vector search. It is a rare case of an academic project growing up to share the stage with the great commercial RDBs.
Questions this page answers
- Why does PostgreSQL's version numbering start at 6.0?
- The numbering was set to resume the Berkeley sequence. The university project had wound down at Version 4.2, so the first release under the new name was 6.0, which shipped on 29 January 1997.
Sources
TertiaryPostgreSQL — Wikipedia
Last updated: