Part 0 · 1 chapters · ~8 min

History and Philosophy

Ingres to Postgres to PostgreSQL, the extensibility thesis that makes types, operators and index methods first-class, the release cadence and community without a company, the heap-first design contrasted with MySQL's clustered index, and the forks and derivatives built on it.

1

Ingres to PostgreSQL, and the extensibility thesis

Postgres was designed to be extended. In most databases, a new data type or index structure means changing the server. In Postgres, types, functions, operators, operator classes, index access methods, languages and even table storage are catalogue entries that extensions add at runtime. PostGIS, pgvector, TimescaleDB and Citus all exist because of that decision.

PostgreSQLMySQL InnoDB
table storageheap: rows in insertion order, indexes point at (page, item)clustered: the table is the primary key B+tree
MVCCold versions stay in the heap; vacuum removes themold versions in undo logs; purge removes them
connectionsa process eacha thread each
secondary index lookupindex → heap tuple directlyindex → primary key → clustered index
extensibilitytypes, operators, index methods, FDWsstorage engine API, plugins

Forks and derivatives: Citus (distributed tables), TimescaleDB (time series), Neon (separated storage and compute), Amazon Aurora PostgreSQL (a log-structured storage layer), and the Postgres wire compatibility of CockroachDB and YugabyteDB. The community has no owning company: development happens on the pgsql-hackers list and commitfests, with yearly majors supported for five years.

FROM INGRES TO POSTGRESQL 18
forty years of one extensible database
1974Ingres atBerkeley
swipe the figure sideways, or tap expand for full screen
1/5
Ingres
Michael Stonebraker's Ingres project at Berkeley was one of the first relational systems. Its commercial spin-off and its code fed Sybase and, later, SQL Server.
Stonebraker, Berkeley, the first relational systemsIngres lineage includes Sybase and SQL Server