<!--
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/programmer.sgml,v 1.44 2002/11/15 03:11:17 momjian Exp $

PostgreSQL Programmer's Guide.
-->

<book id="programmer">

 <title>PostgreSQL &version; Programmer's Guide</title>
 <bookinfo>
  <corpauthor>The PostgreSQL Global Development Group</corpauthor>
  &legal;
 </bookinfo>

 <preface id="programmer-preface">
  <title>Preface</title>

<![%single-book;[
  &intro;
  &history;
]]>

  <sect1 id="programmer-preface-thisbook">
   <title>What's In This Book</title>

   <para>
    This book is for <productname>PostgreSQL</> application
    programmers.  It is divided into three parts.
   </para>

   <para>
    The first part of this book describes the client programming
    interfaces distributed with <productname>PostgreSQL</>.  Each of
    these chapters can be read independently.  Note that there are
    many other programming interfaces for client programs that are
    distributed separately and contain their own documentation.
    Readers of the first part should be familiar with using
    <acronym>SQL</acronym> commands to manipulate and query the
    database (see the &cite-user;) and of course with the programming
    language that the interface uses.
   </para>

   <para>
    The second part of this book is about extending the server
    functionality with user-defined functions, data types, triggers,
    etc.  These are advanced topics which should probably be
    approached only after all the other user documentation about
    <productname>PostgreSQL</> has been understood.
   </para>

   <para>
    The third part of this book described the available server-side
    programming languages.  This information is related to the second
    part and is only useful to readers that have read at least the
    first few chapters thereof.
   </para>

   <para>
    This book covers <productname>PostgreSQL &version;</productname>
    only.  For information on other versions, please read the
    documentation that accompanies that release.
   </para>
  </sect1>

<![%single-book[
  &info;
  &notation;
  &problems;
]]>
 </preface>

 <part id="programmer-client">
  <title>Client Interfaces</title>

  <partintro>
   <para>
    This part of the manual is the description of the client-side
    programming interfaces and support libraries for various
    languages.
   </para>
  </partintro>

  &libpq;
  &lobj;
  &libpgtcl;
  &ecpg;
  &jdbc;
  &pygresql;
 </part>

 <part id="programmer-server">
  <title>Server Programming</title>

  <partintro>
   <para>
    This second part of the manual explains the
    <productname>PostgreSQL</productname> approach to extensibility
    and describe how users can extend
    <productname>PostgreSQL</productname> by adding user-defined
    types, operators, aggregates, and both query language and
    programming language functions.  After a discussion of the
    <productname>PostgreSQL</productname> rule system, we discuss the
    trigger and SPI interfaces.
   </para>
  </partintro>

  &arch-pg;
  &extend;
  &xfunc;
  &xtypes;
  &xoper;
  &xaggr;
  &rules;
  &xindex;
  &indexcost;
  &trigger;
  &spi;
 </part>

 <part id="programmer-pl">
  <title>Procedural Languages</title>

  <partintro>
   <para>
    This part documents the procedural languages available in the
    <productname>PostgreSQL</productname> distribution as well as
    general issues concerning procedural languages.
   </para>
  </partintro>

  &xplang;
  &plsql;
  &pltcl;
  &plperl;
  &plpython;
 </part>

<![%single-book;[
 &biblio;
 &bookindex;
]]>

</book>

<!-- Keep this comment at the end of the file
Local variables:
mode:sgml
sgml-omittag:nil
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"./reference.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:("/usr/lib/sgml/catalog")
sgml-local-ecat-files:nil
End:
-->
