With the all the excitement surrounding Postgres, I have heard
speculation about why Postgres has become such a big success. Many point to our exemplary community structure, while others point to our
technical rigor. One item of particular scrutiny has been our extensibility — I was asked about this twice at the recent
New York City PGDay.
Postgres (named as post-Ingres) was designed to be
extensible, meaning not only can users create server-side functions, but
also custom data types, operators, index types, aggregates, and languages. This extensibility is used by our
contrib extensions, PostGIS, and many others.
Someone said it was like Postgres developed the SQL language, then laid the data types on top. Will Leinweber, in his
NYC presentation, described Postgres as a “data platform rather than a database”, and his
use of hstore,
PLV8 illustrated the point well.
Extensibility certainly isn’t the only reason for Postgres’s success, but it is part of a larger set of ideal circumstances that allows
Postgres to thrive in an environment where many other relational databases are struggling.