Skip to main content

Craig Kerstiens

The biggest mistake Postgres ever made

Postgres has experienced a long and great run. It is over 20 years old and has a track record of being safe and reliable (which is the top thing I care about in a database). In recent years it has become more cool with things like JSONB, JIT support, and a powerful extension ecosystem. But, Postgres has made some mistakes along the way, the most notable being the name.

Postgres gets its name from Ingress. Ingress was one of the first databases and was lead by Michael Stonebreaker who won a Turing award for Postgres and other works. Ingress began in the early 70s at UC Berkeley, which is still to this day known as a top university when it comes to databases. Out of Ingress came a number of databases you’ll still know today such as SQL Server and Sybase. It also as you may have guessed by now spawned Postgres which means Post-Ingress.

In the early days of Postgres there was no SQL. No not NoSQL, there was not SQL. Postgres had its own query language. It wasn’t until 1995 that Postgres received SQL support, and with its addition of SQL support it updated its name to PostgreSQL.

You see, with Postgres becoming PostgreSQL we began a journey of Postgres being mispronounced for its forseeable future and it is still currently the case. Is it really that big of an issue? Well it’s big enough that the PostgreSQL website has a FAQ including “How to pronounce PostgreSQL”. As it stands today there are two generally accepted names:

  • post-GRES-que-ell
  • Postgres

With one of the above there is far less confusion. And in fact I’m not the only one to share this opinion. Tom Lane is a major contributor to every Postgres release for more than the last decade. He’s one of the top 10 contributors to open source in general having worked on the JPEG/PNG/TIFF image formats before coming over to database land. Tom has this classic email in the PostgreSQL mailing list:

    [>> Can i get data in postgre from non-postgre db?
      > The name is PostgreSQL or Postgres, not postgre.

    It might help to explain that the pronunciation is "post-gres" or
    "post-gres-cue-ell", not "post-gray-something".

    I heard people making this same mistake in presentations at this
    past weekend's Postgres Anniversary Conference :-(  Arguably,
    the 1996 decision to call it PostgreSQL instead of reverting to
    plain Postgres was the single worst mistake this project ever made.
    It seems far too late to change now, though.

			regards, tom lane

The best part is this was mail was 2006, when it was arguably too late to change the name, and here we are in 2018 with the same issue.

Personally I may start calling it Postgre just to emphasize a point, but for the rest of you just going with Postgres is probably a safe choice.

If you’re looking for a deeper resource on Postgres I recommend the book The Art of PostgreSQL. It is by a personal friend that has aimed to create the definitive guide to Postgres, from a developer perspective. If you use code CRAIG15 you’ll receive 15% off as well.