<HTML ><HEAD ><TITLE >PostgreSQL 7.3.2 Developer's Guide</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.73 "><LINK REV="MADE" HREF="mailto:pgsql-docs@postgresql.org"><LINK REL="HOME" TITLE="PostgreSQL 7.3.2 Documentation" HREF="index.html"><LINK REL="PREVIOUS" TITLE="postmaster" HREF="app-postmaster.html"><LINK REL="NEXT" TITLE="PostgreSQL Source Code" HREF="source.html"><LINK REL="STYLESHEET" TYPE="text/css" HREF="stylesheet.css"><META NAME="creation" CONTENT="2003-02-03T20:17:34"></HEAD ><BODY CLASS="BOOK" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="BOOK" ><A NAME="DEVELOPER" ></A ><DIV CLASS="TITLEPAGE" ><H1 CLASS="TITLE" ><A NAME="DEVELOPER" >PostgreSQL 7.3.2 Developer's Guide</A ></H1 ><H3 CLASS="CORPAUTHOR" >The PostgreSQL Global Development Group</H3 ><P CLASS="COPYRIGHT" ><A HREF="ln51864.html" >Copyright</A > © 1996-2002 by The PostgreSQL Global Development Group</P ><DIV ><DIV CLASS="ABSTRACT" ><A NAME="AEN51874" ></A ><P ></P ><P > This document contains assorted information that can be of use to <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > developers. </P ><P ></P ></DIV ></DIV ><HR></DIV ><DIV CLASS="TOC" ><DL ><DT ><B >Table of Contents</B ></DT ><DT >1. <A HREF="source.html" >PostgreSQL Source Code</A ></DT ><DD ><DL ><DT >1.1. <A HREF="source.html#SOURCE-FORMAT" >Formatting</A ></DT ></DL ></DD ><DT >2. <A HREF="overview.html" >Overview of PostgreSQL Internals</A ></DT ><DD ><DL ><DT >2.1. <A HREF="overview.html#QUERY-PATH" >The Path of a Query</A ></DT ><DT >2.2. <A HREF="connect-estab.html" >How Connections are Established</A ></DT ><DT >2.3. <A HREF="parser-stage.html" >The Parser Stage</A ></DT ><DD ><DL ><DT >2.3.1. <A HREF="parser-stage.html#AEN51982" >Parser</A ></DT ><DT >2.3.2. <A HREF="parser-stage.html#AEN52067" >Transformation Process</A ></DT ></DL ></DD ><DT >2.4. <A HREF="rule-system.html" >The <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > Rule System</A ></DT ><DD ><DL ><DT >2.4.1. <A HREF="rule-system.html#AEN52119" >The Rewrite System</A ></DT ></DL ></DD ><DT >2.5. <A HREF="planner-optimizer.html" >Planner/Optimizer</A ></DT ><DD ><DL ><DT >2.5.1. <A HREF="planner-optimizer.html#AEN52156" >Generating Possible Plans</A ></DT ><DT >2.5.2. <A HREF="planner-optimizer.html#AEN52174" >Data Structure of the Plan</A ></DT ></DL ></DD ><DT >2.6. <A HREF="executor.html" >Executor</A ></DT ></DL ></DD ><DT >3. <A HREF="catalogs.html" >System Catalogs</A ></DT ><DD ><DL ><DT >3.1. <A HREF="catalogs.html#CATALOGS-OVERVIEW" >Overview</A ></DT ><DT >3.2. <A HREF="catalog-pg-aggregate.html" >pg_aggregate</A ></DT ><DT >3.3. <A HREF="catalog-pg-am.html" >pg_am</A ></DT ><DT >3.4. <A HREF="catalog-pg-amop.html" >pg_amop</A ></DT ><DT >3.5. <A HREF="catalog-pg-amproc.html" >pg_amproc</A ></DT ><DT >3.6. <A HREF="catalog-pg-attrdef.html" >pg_attrdef</A ></DT ><DT >3.7. <A HREF="catalog-pg-attribute.html" >pg_attribute</A ></DT ><DT >3.8. <A HREF="catalog-pg-cast.html" >pg_cast</A ></DT ><DT >3.9. <A HREF="catalog-pg-class.html" >pg_class</A ></DT ><DT >3.10. <A HREF="catalog-pg-constraint.html" >pg_constraint</A ></DT ><DT >3.11. <A HREF="catalog-pg-conversion.html" >pg_conversion</A ></DT ><DT >3.12. <A HREF="catalog-pg-database.html" >pg_database</A ></DT ><DT >3.13. <A HREF="catalog-pg-depend.html" >pg_depend</A ></DT ><DT >3.14. <A HREF="catalog-pg-description.html" >pg_description</A ></DT ><DT >3.15. <A HREF="catalog-pg-group.html" >pg_group</A ></DT ><DT >3.16. <A HREF="catalog-pg-index.html" >pg_index</A ></DT ><DT >3.17. <A HREF="catalog-pg-inherits.html" >pg_inherits</A ></DT ><DT >3.18. <A HREF="catalog-pg-language.html" >pg_language</A ></DT ><DT >3.19. <A HREF="catalog-pg-largeobject.html" >pg_largeobject</A ></DT ><DT >3.20. <A HREF="catalog-pg-listener.html" >pg_listener</A ></DT ><DT >3.21. <A HREF="catalog-pg-namespace.html" >pg_namespace</A ></DT ><DT >3.22. <A HREF="catalog-pg-opclass.html" >pg_opclass</A ></DT ><DT >3.23. <A HREF="catalog-pg-operator.html" >pg_operator</A ></DT ><DT >3.24. <A HREF="catalog-pg-proc.html" >pg_proc</A ></DT ><DT >3.25. <A HREF="catalog-pg-rewrite.html" >pg_rewrite</A ></DT ><DT >3.26. <A HREF="catalog-pg-shadow.html" >pg_shadow</A ></DT ><DT >3.27. <A HREF="catalog-pg-statistic.html" >pg_statistic</A ></DT ><DT >3.28. <A HREF="catalog-pg-trigger.html" >pg_trigger</A ></DT ><DT >3.29. <A HREF="catalog-pg-type.html" >pg_type</A ></DT ></DL ></DD ><DT >4. <A HREF="protocol.html" >Frontend/Backend Protocol</A ></DT ><DD ><DL ><DT >4.1. <A HREF="protocol.html#PROTOCOL-OVERVIEW" >Overview</A ></DT ><DT >4.2. <A HREF="protocol-protocol.html" >Protocol</A ></DT ><DD ><DL ><DT >4.2.1. <A HREF="protocol-protocol.html#AEN54600" >Start-up</A ></DT ><DT >4.2.2. <A HREF="protocol-protocol.html#AEN54657" >Query</A ></DT ><DT >4.2.3. <A HREF="protocol-protocol.html#AEN54724" >Function Call</A ></DT ><DT >4.2.4. <A HREF="protocol-protocol.html#AEN54751" >Notification Responses</A ></DT ><DT >4.2.5. <A HREF="protocol-protocol.html#AEN54765" >Cancelling Requests in Progress</A ></DT ><DT >4.2.6. <A HREF="protocol-protocol.html#AEN54773" >Termination</A ></DT ><DT >4.2.7. <A HREF="protocol-protocol.html#AEN54780" >SSL Session Encryption</A ></DT ></DL ></DD ><DT >4.3. <A HREF="protocol-message-types.html" >Message Data Types</A ></DT ><DT >4.4. <A HREF="protocol-message-formats.html" >Message Formats</A ></DT ></DL ></DD ><DT >5. <A HREF="compiler.html" ><SPAN CLASS="APPLICATION" >gcc</SPAN > Default Optimizations</A ></DT ><DT >6. <A HREF="bki.html" ><SPAN CLASS="ACRONYM" >BKI</SPAN > Backend Interface</A ></DT ><DD ><DL ><DT >6.1. <A HREF="bki.html#BKI-FORMAT" ><SPAN CLASS="ACRONYM" >BKI</SPAN > File Format</A ></DT ><DT >6.2. <A HREF="bki-commands.html" ><SPAN CLASS="ACRONYM" >BKI</SPAN > Commands</A ></DT ><DT >6.3. <A HREF="bki-example.html" >Example</A ></DT ></DL ></DD ><DT >7. <A HREF="page.html" >Page Files</A ></DT ><DT >8. <A HREF="geqo.html" >Genetic Query Optimization</A ></DT ><DD ><DL ><DT >8.1. <A HREF="geqo.html#GEQO-INTRO" >Query Handling as a Complex Optimization Problem</A ></DT ><DT >8.2. <A HREF="geqo-intro2.html" >Genetic Algorithms</A ></DT ><DT >8.3. <A HREF="geqo-pg-intro.html" >Genetic Query Optimization (<SPAN CLASS="ACRONYM" >GEQO</SPAN >) in PostgreSQL</A ></DT ><DD ><DL ><DT >8.3.1. <A HREF="geqo-pg-intro.html#GEQO-FUTURE" >Future Implementation Tasks for <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > <SPAN CLASS="ACRONYM" >GEQO</SPAN ></A ></DT ></DL ></DD ><DT >8.4. <A HREF="geqo-biblio.html" >Further Readings</A ></DT ></DL ></DD ><DT >9. <A HREF="gist.html" >GiST Indexes</A ></DT ><DT >10. <A HREF="nls.html" >Native Language Support</A ></DT ><DD ><DL ><DT >10.1. <A HREF="nls.html#NLS-TRANSLATOR" >For the Translator</A ></DT ><DD ><DL ><DT >10.1.1. <A HREF="nls.html#AEN55844" >Requirements</A ></DT ><DT >10.1.2. <A HREF="nls.html#AEN55854" >Concepts</A ></DT ><DT >10.1.3. <A HREF="nls.html#AEN55872" >Creating and maintaining message catalogs</A ></DT ><DT >10.1.4. <A HREF="nls.html#AEN55906" >Editing the PO files</A ></DT ></DL ></DD ><DT >10.2. <A HREF="nls-programmer.html" >For the Programmer</A ></DT ></DL ></DD ><DT >A. <A HREF="cvs.html" >The <SPAN CLASS="PRODUCTNAME" >CVS</SPAN > Repository</A ></DT ><DD ><DL ><DT >A.1. <A HREF="cvs.html#ANONCVS" >Getting The Source Via Anonymous <SPAN CLASS="PRODUCTNAME" >CVS</SPAN ></A ></DT ><DT >A.2. <A HREF="cvs-tree.html" ><SPAN CLASS="PRODUCTNAME" >CVS</SPAN > Tree Organization</A ></DT ><DT >A.3. <A HREF="cvsup.html" >Getting The Source Via <SPAN CLASS="PRODUCTNAME" >CVSup</SPAN ></A ></DT ><DD ><DL ><DT >A.3.1. <A HREF="cvsup.html#AEN56120" >Preparing A <SPAN CLASS="PRODUCTNAME" >CVSup</SPAN > Client System</A ></DT ><DT >A.3.2. <A HREF="cvsup.html#AEN56144" >Running a <SPAN CLASS="PRODUCTNAME" >CVSup</SPAN > Client</A ></DT ><DT >A.3.3. <A HREF="cvsup.html#AEN56169" >Installing <SPAN CLASS="PRODUCTNAME" >CVSup</SPAN ></A ></DT ><DT >A.3.4. <A HREF="cvsup.html#AEN56211" >Installation from Sources</A ></DT ></DL ></DD ></DL ></DD ><DT >B. <A HREF="docguide.html" >Documentation</A ></DT ><DD ><DL ><DT >B.1. <A HREF="docguide.html#AEN56287" >DocBook</A ></DT ><DT >B.2. <A HREF="doc-toolsets.html" >Tool Sets</A ></DT ><DD ><DL ><DT >B.2.1. <A HREF="doc-toolsets.html#AEN56350" ><SPAN CLASS="PRODUCTNAME" >Linux</SPAN > <SPAN CLASS="ACRONYM" >RPM</SPAN > Installation</A ></DT ><DT >B.2.2. <A HREF="doc-toolsets.html#AEN56363" >FreeBSD Installation</A ></DT ><DT >B.2.3. <A HREF="doc-toolsets.html#AEN56392" >Debian Packages</A ></DT ><DT >B.2.4. <A HREF="doc-toolsets.html#AEN56397" >Manual Installation from Source</A ></DT ></DL ></DD ><DT >B.3. <A HREF="doc-build.html" >Building The Documentation</A ></DT ><DD ><DL ><DT >B.3.1. <A HREF="doc-build.html#AEN56582" >HTML</A ></DT ><DT >B.3.2. <A HREF="doc-build.html#DOC-MANPAGES" >Manpages</A ></DT ><DT >B.3.3. <A HREF="doc-build.html#DOC-HARDCOPY" >Hardcopy Generation</A ></DT ><DT >B.3.4. <A HREF="doc-build.html#AEN56724" >Plain Text Files</A ></DT ></DL ></DD ><DT >B.4. <A HREF="doc-sources.html" >Documentation Authoring</A ></DT ><DD ><DL ><DT >B.4.1. <A HREF="doc-sources.html#AEN56749" >Emacs/PSGML</A ></DT ><DT >B.4.2. <A HREF="doc-sources.html#AEN56784" >Other Emacs modes</A ></DT ></DL ></DD ><DT >B.5. <A HREF="doc-style.html" >Style Guide</A ></DT ><DD ><DL ><DT >B.5.1. <A HREF="doc-style.html#AEN56793" >Reference Pages</A ></DT ></DL ></DD ></DL ></DD ></DL ></DIV ><DIV CLASS="LOT" ><DL CLASS="LOT" ><DT ><B >List of Tables</B ></DT ><DT >3-1. <A HREF="catalogs.html#AEN52242" >System Catalogs</A ></DT ><DT >3-2. <A HREF="catalog-pg-aggregate.html#AEN52398" >pg_aggregate Columns</A ></DT ><DT >3-3. <A HREF="catalog-pg-am.html#AEN52445" >pg_am Columns</A ></DT ><DT >3-4. <A HREF="catalog-pg-amop.html#AEN52585" >pg_amop Columns</A ></DT ><DT >3-5. <A HREF="catalog-pg-amproc.html#AEN52623" >pg_amproc Columns</A ></DT ><DT >3-6. <A HREF="catalog-pg-attrdef.html#AEN52655" >pg_attrdef Columns</A ></DT ><DT >3-7. <A HREF="catalog-pg-attribute.html#AEN52696" >pg_attribute Columns</A ></DT ><DT >3-8. <A HREF="catalog-pg-cast.html#AEN52840" >pg_cast Columns</A ></DT ><DT >3-9. <A HREF="catalog-pg-class.html#AEN52886" >pg_class Columns</A ></DT ><DT >3-10. <A HREF="catalog-pg-constraint.html#AEN53067" >pg_constraint Columns</A ></DT ><DT >3-11. <A HREF="catalog-pg-conversion.html#AEN53175" >pg_conversion Columns</A ></DT ><DT >3-12. <A HREF="catalog-pg-database.html#AEN53236" >pg_database Columns</A ></DT ><DT >3-13. <A HREF="catalog-pg-depend.html#AEN53323" >pg_depend Columns</A ></DT ><DT >3-14. <A HREF="catalog-pg-description.html#AEN53393" >pg_description Columns</A ></DT ><DT >3-15. <A HREF="catalog-pg-group.html#AEN53435" >pg_group Columns</A ></DT ><DT >3-16. <A HREF="catalog-pg-index.html#AEN53468" >pg_index Columns</A ></DT ><DT >3-17. <A HREF="catalog-pg-inherits.html#AEN53545" >pg_inherits Columns</A ></DT ><DT >3-18. <A HREF="catalog-pg-language.html#AEN53579" >pg_language Columns</A ></DT ><DT >3-19. <A HREF="catalog-pg-largeobject.html#AEN53636" >pg_largeobject Columns</A ></DT ><DT >3-20. <A HREF="catalog-pg-listener.html#AEN53674" >pg_listener Columns</A ></DT ><DT >3-21. <A HREF="catalog-pg-namespace.html#AEN53706" >pg_namespace Columns</A ></DT ><DT >3-22. <A HREF="catalog-pg-opclass.html#AEN53740" >pg_opclass Columns</A ></DT ><DT >3-23. <A HREF="catalog-pg-operator.html#AEN53803" >pg_operator Columns</A ></DT ><DT >3-24. <A HREF="catalog-pg-proc.html#AEN53931" >pg_proc Columns</A ></DT ><DT >3-25. <A HREF="catalog-pg-rewrite.html#AEN54046" >pg_rewrite Columns</A ></DT ><DT >3-26. <A HREF="catalog-pg-shadow.html#AEN54113" >pg_shadow Columns</A ></DT ><DT >3-27. <A HREF="catalog-pg-statistic.html#AEN54187" >pg_statistic Columns</A ></DT ><DT >3-28. <A HREF="catalog-pg-trigger.html#AEN54261" >pg_trigger Columns</A ></DT ><DT >3-29. <A HREF="catalog-pg-type.html#AEN54360" >pg_type Columns</A ></DT ><DT >7-1. <A HREF="page.html#PAGE-TABLE" >Sample Page Layout</A ></DT ><DT >7-2. <A HREF="page.html#PAGEHEADERDATA-TABLE" >PageHeaderData Layout</A ></DT ><DT >7-3. <A HREF="page.html#HEAPTUPLEHEADERDATA-TABLE" >HeapTupleHeaderData Layout</A ></DT ><DT >B-1. <A HREF="doc-build.html#AEN56653" >Indent Formatting for Table of Contents</A ></DT ></DL ></DIV ><DIV CLASS="LOT" ><DL CLASS="LOT" ><DT ><B >List of Figures</B ></DT ><DT >8-1. <A HREF="geqo-intro2.html#GEQO-DIAGRAM" >Structured Diagram of a Genetic Algorithm</A ></DT ></DL ></DIV ><DIV CLASS="LOT" ><DL CLASS="LOT" ><DT ><B >List of Examples</B ></DT ><DT >2-1. <A HREF="parser-stage.html#SIMPLE-SELECT" >A Simple Select</A ></DT ></DL ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="app-postmaster.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="source.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><SPAN CLASS="APPLICATION" >postmaster</SPAN ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" > </TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >PostgreSQL Source Code</TD ></TR ></TABLE ></DIV ></BODY ></HTML >