September 26, 2024: PostgreSQL 17 Released!
Unsupported versions: 7.3 / 7.2 / 7.1
This documentation is for an unsupported version of PostgreSQL.
You may want to view the same page for the current version, or one of the other supported versions listed above instead.

PostgreSQL 7.2.8 Developer's Guide

The PostgreSQL Global Development Group

This document contains assorted information that can be of use to PostgreSQL developers.


Table of Contents
1. PostgreSQL Source Code
1.1. Formatting
2. Overview of PostgreSQL Internals
2.1. The Path of a Query
2.2. How Connections are Established
2.3. The Parser Stage
2.3.1. Parser
2.3.2. Transformation Process
2.4. The PostgreSQL Rule System
2.4.1. The Rewrite System
2.5. Planner/Optimizer
2.5.1. Generating Possible Plans
2.5.2. Data Structure of the Plan
2.6. Executor
3. System Catalogs
3.1. Overview
3.2. pg_aggregate
3.3. pg_attrdef
3.4. pg_attribute
3.5. pg_class
3.6. pg_database
3.7. pg_description
3.8. pg_group
3.9. pg_index
3.10. pg_inherits
3.11. pg_language
3.12. pg_largeobject
3.13. pg_listener
3.14. pg_operator
3.15. pg_proc
3.16. pg_relcheck
3.17. pg_rewrite
3.18. pg_shadow
3.19. pg_statistic
3.20. pg_trigger
3.21. pg_type
4. Frontend/Backend Protocol
4.1. Overview
4.2. Protocol
4.2.1. Start-up
4.2.2. Query
4.2.3. Function Call
4.2.4. Notification Responses
4.2.5. Cancelling Requests in Progress
4.2.6. Termination
4.2.7. SSL Session Encryption
4.3. Message Data Types
4.4. Message Formats
5. gcc Default Optimizations
6. BKI Backend Interface
6.1. BKI File Format
6.2. BKI Commands
6.3. Example
7. Page Files
8. Genetic Query Optimization
8.1. Query Handling as a Complex Optimization Problem
8.2. Genetic Algorithms
8.3. Genetic Query Optimization (GEQO) in PostgreSQL
8.3.1. Future Implementation Tasks for PostgreSQL GEQO
8.4. Further Readings
9. Native Language Support
9.1. For the Translator
9.1.1. Requirements
9.1.2. Concepts
9.1.3. Creating and maintaining message catalogs
9.1.4. Editing the PO files
9.2. For the Programmer
A. The CVS Repository
A.1. Getting The Source Via Anonymous CVS
A.2. CVS Tree Organization
A.3. Getting The Source Via CVSup
A.3.1. Preparing A CVSup Client System
A.3.2. Running a CVSup Client
A.3.3. Installing CVSup
A.3.4. Installation from Sources
B. Documentation
B.1. DocBook
B.2. Toolsets
B.2.1. Linux RPM Installation
B.2.2. FreeBSD Installation
B.2.3. Debian Packages
B.2.4. Manual Installation from Source
B.3. Building The Documentation
B.3.1. HTML
B.3.2. Manpages
B.3.3. Hardcopy Generation
B.3.4. Plain Text Files
B.4. Documentation Authoring
B.4.1. Emacs/PSGML
B.4.2. Other Emacs modes
List of Examples
2-1. A Simple Select