PostgreSQL 7.2 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. Postgres 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 Postgres 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_operator
3.13. pg_proc
3.14. pg_relcheck
3.15. pg_shadow
3.16. pg_statistic
3.17. 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.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 (GA)
8.3. Genetic Query Optimization (GEQO) in Postgres
8.3.1. Future Implementation Tasks for PostgreSQL GEQO
References
DG1. The CVS Repository
DG1.1. Getting The Source Via Anonymous CVS
DG1.2. CVS Tree Organization
DG1.3. Getting The Source Via CVSup
DG1.3.1. Preparing A CVSup Client System
DG1.3.2. Running a CVSup Client
DG1.3.3. Installing CVSup
DG1.3.4. Installation from Sources
DG2. Documentation
DG2.1. DocBook
DG2.2. Toolsets
DG2.2.1. Linux RPM Installation
DG2.2.2. FreeBSD Installation
DG2.2.3. Debian Packages
DG2.2.4. Manual Installation from Source
DG2.3. Building The Documentation
DG2.3.1. HTML
DG2.3.2. Manpages
DG2.3.3. Hardcopy Generation
DG2.3.4. Plain Text Files
DG2.4. Documentation Authoring
DG2.4.1. Emacs/PSGML
DG2.4.2. Other Emacs modes
List of Tables
3-1. System Catalogs
3-2. pg_aggregate Columns
3-3. pg_attrdef Columns
3-4. pg_attribute Columns
3-5. pg_class Columns
3-6. pg_database Columns
3-7. pg_description Columns
3-8. pg_group Columns
3-9. pg_index Columns
3-10. pg_inherits Columns
3-11. pg_language Columns
3-12. pg_operator Columns
3-13. pg_proc Columns
3-14. pg_relcheck Columns
3-15. pg_shadow Columns
3-16. pg_statistic Columns
3-17. pg_type Columns
7-1. Sample Page Layout
DG2-1. Indent Formatting for Table of Contents
List of Examples
2-1. A Simple Select