PostgreSQL Book Proposal

Bruce Momjian

1.
Introduction

(a)
History of POSTGRESQL
(b)
Open source software
(c)
When to use a database
2.
Issuing database commands

(a)
Starting a database session
(b)
Controlling a session
(c)
Sending queries
(d)
Getting help
3.
Introduction to SQL

(a)
Creating tables
(b)
Adding data with INSERT
(c)
Viewing data with SELECT
(d)
Removing data with DELETE
(e)
Modifying data with UPDATE
(f)
Restricting with WHERE
(g)
Sorting data with ORDER BY
(h)
Using NULL values
4.
Advanced SQL Commands

(a)
Inserting data from a SELECT
(b)
Aggregates: COUNT, SUM, ...
(c)
GROUP BY with aggregates
(d)
HAVING with aggregates
(e)
Joining tables
(f)
Using table aliases
(g)
UNION clause
(h)
Subqueries
(i)
Transactions
(j)
Cursors
(k)
Indexing
(l)
Column defaults
(m)
Primary/foreign keys
(n)
AND/OR usage
(o)
LIKE clause usage
(p)
Temporary tables
(q)
Importing data
5.
POSTGRESQL'S Unique Features

(a)
Object ID'S (OID'S)
(b)
Multi-Version Concurrency Control
(c)
Locking and deadlocks
(d)
Vacuum
(e)
Views
(f)
Rules
(g)
Sequences
(h)
Triggers
(i)
Large objects(BLOBS)
(j)
Adding user-defined functions
(k)
Adding user-defined operators
(l)
Adding user-defined types
(m)
Exotic pre-installed types
(n)
Arrays
(o)
Inheritance
6.
Interfacing to the POSTGRESQL Database

(a)
C Language API
(b)
Embedded C
(c)
C++
(d)
JAVA
(e)
ODBC
(f)
PERL
(g)
TCL/TK
(h)
PYTHON
(i)
Web access (PHP)
(j)
Server-side programming (PLPGSQL and SPI)
7.
POSTGRESQL Administration

(a)
Creating users and databases
(b)
Backup and restore
(c)
Performance
(d)
Troubleshooting
(e)
Customization
(f)
Setting access permissions
(g)
International character encodings
8.
Additional Resources

(a)
Frequently Asked Questions (FAQ'S)
(b)
Mailing list support
(c)
Supplied documentation
(d)
Commercial support
(e)
Modifying the source code
9.
Appendix: Installation

(a)
Getting POSTGRESQL
(b)
Compiling
(c)
Initialization
(d)
Starting the server
(e)
Creating a database
10.
Annotated Bibliography