Introduction to PostgreSQL Extensions
Understand the foundational design principles of PostgreSQL focusing on its extensible data types and user-defined extensions. Learn how these features contribute to its flexibility and performance, reflecting the original system goals outlined by its creators.
We'll cover the following...
Uniqueness of PostgreSQL
PostgreSQL is unique in its approach to data types. The initial design of Postgres can be read in the document entitled The Design Of Postgres, authored by Michael Stonebraker and Lawrence A. Rowe.
“This paper presents the preliminary design of a new database management system called POSTGRES, which is the successor to the INGRES relational database system. The main design goals of the new system are to:
- Provide better support for complex objects
- Provide user extendibility for data types, operators, and access methods
- Provide facilities for active databases (i.e., alerts and triggers) and inferencing, including forward- and backward-chaining
- Simplify the DBMS code for crash recovery
- Produce a design that can take advantage of optical disks, workstations composed of multiple tightly-coupled processors, and custom-designed VLSI chips
- Make as few changes as possible (preferably none) to the relational model
The paper describes the query language, programming language interface, system architecture, query processing strategy, and storage system for the new system.”
Improving the system
The current modern version of PostgreSQL still follows several of the same design rules. The development team managed to improve the many facets of the system, including adding a full implementation of the SQL standard, without having to change the extensibility foundations of Postgres.