# Preface

This book is the official documentation of Postgres Pro. It has been written by the Postgres Pro developers and other volunteers in parallel to the development of the Postgres Pro software. It describes all the functionality that the current version of Postgres Pro officially supports.

To make the large amount of information about Postgres Pro manageable, this book has been organized in several parts. Each part is targeted at a different class of users, or at users in different stages of their Postgres Pro experience:

- Part I, “Tutorial” is an informal introduction for new users.

- Part II, “The SQL Language” documents the SQL query language environment, including data types and functions, as well as user-level performance tuning. Every Postgres Pro user should read this.

- Part III, “Server Administration” describes the installation and administration of the server. Everyone who runs a Postgres Pro server, be it for private use or for others, should read this part.

- Part IV, “Client Interfaces” describes the programming interfaces for Postgres Pro client programs.

- Part V, “Server Programming” contains information for advanced users about the extensibility capabilities of the server. Topics include user-defined data types and functions.

- Part VI, “Reference” contains reference information about SQL commands, client and server programs. This part supports the other parts with structured information sorted by command or program.

- Part VII, “Internals” contains assorted information that might be of use to Postgres Pro developers.

## 1. What is Postgres Pro?

Postgres Pro is an object-relational database management system (ORDBMS), developed by Postgres Professional on the base ofPostgreSQL, which is in turn based on POSTGRES, Version 4.2, developed at the University of California at Berkeley Computer Science Department. POSTGRES pioneered many concepts that only became available in some commercial database systems much later.

PostgreSQL is an open-source descendant of this original Berkeley code. It supports a large part of the SQL standard and offers many modern features:

- complex queries
- foreign keys
- triggers
- updatable views
- transactional integrity
- multiversion concurrency control

Also, Postgres Pro, as well as PostgreSQL, can be extended by the user in many ways, for example by adding new

- data types
- functions
- operators
- aggregate functions
- index methods
- procedural languages

And because of the liberal license, Postgres Pro and PostgreSQL can be used, modified, and distributed by anyone free of charge for any purpose, be it private, commercial, or academic.