PostgreSQL 7.1.2 Programmer's Guide

The PostgreSQL Global Development Group


Table of Contents
Organization
I. Client Interfaces
1. libpq - C Library
1.1. Database Connection Functions
1.2. Query Execution Functions
1.3. Asynchronous Query Processing
1.4. Fast Path
1.5. Asynchronous Notification
1.6. Functions Associated with the COPY Command
1.7. libpq Tracing Functions
1.8. libpq Control Functions
1.9. Environment Variables
1.10. Threading Behavior
1.11. Example Programs
2. Large Objects
2.1. Historical Note
2.2. Implementation Features
2.3. Interfaces
2.4. Built in registered functions
2.5. Accessing Large Objects from LIBPQ
2.6. Sample Program
3. libpq++ - C++ Binding Library
3.1. Control and Initialization
3.2. libpq++ Classes
3.3. Database Connection Functions
3.4. Query Execution Functions
3.5. Asynchronous Notification
3.6. Functions Associated with the COPY Command
4. pgtcl - TCL Binding Library
4.1. Commands
4.2. Examples
4.3. pgtcl Command Reference Information
5. libpgeasy - Simplified C Library
6. ecpg - Embedded SQL in C
6.1. Why Embedded SQL?
6.2. The Concept
6.3. How To Use ecpg
6.4. Limitations
6.5. Porting From Other RDBMS Packages
6.6. For the Developer
7. ODBC Interface
7.1. Background
7.2. Installation
7.3. Configuration Files
7.4. Windows Applications
7.5. ApplixWare
8. JDBC Interface
8.1. Setting up the JDBC Driver
8.2. Using the Driver
8.3. Issuing a Query and Processing the Result
8.4. Performing Updates
8.5. Using Large Objects
8.6. PostgreSQL Extensions to the JDBC API
8.7. Using the driver in a multi-threaded or a servlet environment
8.8. Further Reading
9. PyGreSQL - Python Interface
9.1. The pg Module
9.2. pg Module Functions
9.3. Connection object: pgobject
9.4. Database wrapper class: DB
9.5. Query result object: pgqueryobject
9.6. Large Object: pglarge
9.7. DB-API Interface
10. Lisp Programming Interface
II. Server Programming
11. Architecture
11.1. Postgres Architectural Concepts
12. Extending SQL: An Overview
12.1. How Extensibility Works
12.2. The Postgres Type System
12.3. About the Postgres System Catalogs
13. Extending SQL: Functions
13.1. Query Language (SQL) Functions
13.2. Procedural Language Functions
13.3. Internal Functions
13.4. Compiled (C) Language Functions
13.5. Function Overloading
14. Extending SQL: Types
14.1. User-Defined Types
15. Extending SQL: Operators
15.1. Operator Optimization Information
16. Extending SQL: Aggregates
17. The Postgres Rule System
17.1. What is a Querytree?
17.2. Views and the Rule System
17.3. Rules on INSERT, UPDATE and DELETE
17.4. Rules and Permissions
17.5. Rules versus Triggers
18. Interfacing Extensions To Indices
19. Index Cost Estimation Functions
20. GiST Indices
21. Triggers
21.1. Trigger Creation
21.2. Interaction with the Trigger Manager
21.3. Visibility of Data Changes
21.4. Examples
22. Server Programming Interface
22.1. Interface Functions
22.2. Interface Support Functions
22.3. Memory Management
22.4. Visibility of Data Changes
22.5. Examples
III. Procedural Languages
23. Procedural Languages
23.1. Installing Procedural Languages
24. PL/pgSQL - SQL Procedural Language
24.1. Overview
24.2. Description
24.3. Trigger Procedures
24.4. Examples
24.5. Porting from Oracle PL/SQL
25. PL/Tcl - TCL Procedural Language
25.1. Overview
25.2. Description
26. PL/Perl - Perl Procedural Language
26.1. Building and Installing
26.2. Using PL/Perl
List of Tables
4-1. pgtcl Commands
12-1. Postgres System Catalogs
13-1. Equivalent C Types for Built-In Postgres Types
18-1. Index Schema
18-2. B-tree Strategies
24-1. Single Quotes Escaping Chart
List of Figures
11-1. How a connection is established
12-1. The major Postgres system catalogs
List of Examples
1-1. libpq Example Program 1
1-2. libpq Example Program 2
1-3. libpq Example Program 3
8-1. Processing a Simple Query in JDCB
8-2. Using the JDBC Large Object Interface
24-1. A PL/pgSQL Trigger Procedure Example
24-2. A Simple PL/pgSQL Function to Increment an Integer
24-3. A Simple PL/pgSQL Function to Concatenate Text
24-4. A PL/pgSQL Function on Composite Type
24-5. A Simple Function
24-6. A Function that Creates Another Function
24-7. A Procedure with a lot of String Manipulation and OUT Parameters