PostgreSQL 7.3.1 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_am
3.4. pg_amop
3.5. pg_amproc
3.6. pg_attrdef
3.7. pg_attribute
3.8. pg_cast
3.9. pg_class
3.10. pg_constraint
3.11. pg_conversion
3.12. pg_database
3.13. pg_depend
3.14. pg_description
3.15. pg_group
3.16. pg_index
3.17. pg_inherits
3.18. pg_language
3.19. pg_largeobject
3.20. pg_listener
3.21. pg_namespace
3.22. pg_opclass
3.23. pg_operator
3.24. pg_proc
3.25. pg_rewrite
3.26. pg_shadow
3.27. pg_statistic
3.28. pg_trigger
3.29. 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. GiST Indexes
10. Native Language Support
10.1. For the Translator
10.1.1. Requirements
10.1.2. Concepts
10.1.3. Creating and maintaining message catalogs
10.1.4. Editing the PO files
10.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. Tool Sets
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
B.5. Style Guide
B.5.1. Reference Pages
List of Tables
3-1. System Catalogs
3-2. pg_aggregate Columns
3-3. pg_am Columns
3-4. pg_amop Columns
3-5. pg_amproc Columns
3-6. pg_attrdef Columns
3-7. pg_attribute Columns
3-8. pg_cast Columns
3-9. pg_class Columns
3-10. pg_constraint Columns
3-11. pg_conversion Columns
3-12. pg_database Columns
3-13. pg_depend Columns
3-14. pg_description Columns
3-15. pg_group Columns
3-16. pg_index Columns
3-17. pg_inherits Columns
3-18. pg_language Columns
3-19. pg_largeobject Columns
3-20. pg_listener Columns
3-21. pg_namespace Columns
3-22. pg_opclass Columns
3-23. pg_operator Columns
3-24. pg_proc Columns
3-25. pg_rewrite Columns
3-26. pg_shadow Columns
3-27. pg_statistic Columns
3-28. pg_trigger Columns
3-29. pg_type Columns
7-1. Sample Page Layout
7-2. PageHeaderData Layout
7-3. HeapTupleHeaderData Layout
B-1. Indent Formatting for Table of Contents
List of Figures
8-1. Structured Diagram of a Genetic Algorithm
List of Examples
2-1. A Simple Select