This document is the programmer's manual for the PostgreSQL database management system, originally developed at the University of California at Berkeley. PostgreSQL is based on Postgres release 4.2. The Postgres project, led by Professor Michael Stonebraker, has been sponsored by the Defense Advanced Research Projects Agency (DARPA), the Army Research Office (ARO), the National Science Foundation (NSF), and ESL, Inc.
The first part of this manual explains the Postgres approach to extensibility and describe how users can extend Postgres by adding user-defined types, operators, aggregates, and both query language and programming language functions. After a discussion of the Postgres rule system, we discuss the trigger and SPI interfaces. The manual concludes with a detailed description of the programming interfaces and support libraries for various languages.
We assume proficiency with UNIX and C programming.
This manual set is organized into several parts:
An introduction for new users. Does not cover advanced features.
General information for users, including available commands and data types.
Advanced information for application programmers. Topics include type and function extensibility, library interfaces, and application design issues.
Installation and management information. List of supported machines.
Information for Postgres developers. This is intended for those who are contributing to the Postgres project; application development information should appear in the Programmer's Guide. Currently included in the Programmer's Guide.
Detailed reference information on command syntax. Currently included in the User's Guide.
In addition to this manual set, there are other resources to help you with Postgres installation and use:
The man pages have general information on command syntax.
The Frequently Asked Questions (FAQ) documents address both general issues and some platform-specific issues.
README files are available for some contributed packages.
The Postgres web site has some information not appearing in the distribution. There is a mhonarc catalog of mailing list traffic which is a rich resource for many topics.
The Postgres Questions mailing list is a good place to have user questions answered. Other mailing lists are available; consult the web page for details.
Postgres is an open source product. As such, it depends on the user community for ongoing support. As you begin to use Postgres, you will rely on others for help, either through the documentation or through the mailing lists. Consider contributing your knowledge back. If you learn something which is not in the documentation, write it up and contribute it. If you add features to the code, contribute it. Even those without a lot of experience can provide corrections and minor changes in the documentation, and that is a good way to start. The Postgres Documentation mailing list is the place to get going.