OK, new outline, updated to show subsection detail, with suggested
changes made.

-- 
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026
...................................................................

The attached document is in both web page and text formats.
View the one which looks best.




PostgreSQL Book Proposal











PostgreSQL Book Proposal
Bruce Momjian


Preface



1.
Introduction


(a)
History of POSTGRESQL


i.
UNIVERSITY OF CALIFORNIA AT BERKELEY
ii.
MICHAEL STONEBRAKER
iii.
JOLLY CHEN and ANDREW YU
iv.
POSTGRESQL GLOBAL DEVELOPMENT TEAM
(b)
Open source software



i.
development methods
ii.
peer review
iii.
release process
iv.
problem reporting
v.
support
(c)
When to use a database



i.
large volume
ii.
rapid retrieval
iii.
frequent modification
iv.
reporting
2.
Issuing database commands



(a)
Starting a database session


i.
choosing an access method
ii.
choosing a database
iii.
starting a session
(b)
Controlling a session



i.
typing in the query buffer
ii.
displaying the query buffer
iii.
editing the query buffer
iv.
erasing the query buffer
(c)
Sendinging queries
(d)
Getting help
(e)
Requesting server information
3.
Introduction to SQL



(a)
Relational Databases


i.
tables, rows, and columns
ii.
column types
iii.
column selection
iv.
row restriction
(b)
Creating tables



i.
naming columns
ii.
column types
(c)
Adding data with INSERT


i.
target columns
ii.
column types
iii.
missing values
(d)
Viewing data with SELECT


i.
target columns
ii.
FROM clause
(e)
Removing data with DELETE
(f)
Modifying data with UPDATE
(g)
Restricting with WHERE
(h)
Sorting data with ORDER BY
(i)
Using NULL values
4.
Advanced SQL Commands



(a)
Inserting data using 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)
UPDATE with FROM
(i)
Subqueries


i.
returning a single row
ii.
returning multiple rows
iii.
correlated Subqueries
(j)
Transactions



i.
BEGIN...END
ii.
ABORT transaction
(k)
Cursors



i.
DECLARE
ii.
FETCH
iii.
CLOSE
(l)
Indexing



i.
usage
ii.
types
iii.
definition
iv.
functional indexes
(m)
Column defaults
(n)
Referential integrity



i.
primary keys
ii.
foreign keys
(o)
AND/OR usage
(p)
Pattern matching



i.
LIKE clause
ii.
regular expressions
(q)
Temporary tables
(r)
Importing data



i.
COPY
ii.
DELIMITERS
iii.
BINARY
iv.
frontend COPY
5.
POSTGRESQL'S Unique Features



(a)
Object ID'S (OID'S)


i.
unique row assignment
ii.
join usage
(b)
Multi-Version Concurrency Control



i.
write locks 
ii.
read locks
iii.
concurrency
iv.
solutions
(c)
Locking and deadlocks



i.
need for locking
ii.
deadlocks
(d)
Vacuum



i.
scheduling
ii.
ANALYZE
(e)
Views



i.
creation
ii.
limitations
(f)
Rules



i.
creation
ii.
limitations
(g)
Sequences



i.
purpose
ii.
creation
iii.
management
(h)
Triggers



i.
purpose
ii.
creation
(i)
Large objects(BLOBS)



i.
applications
ii.
creation
iii.
management
(j)
Adding user-defined functions



i.
purpose
ii.
creation
iii.
examples
(k)
Adding user-defined operators



i.
arithmetic processing
ii.
creation
(l)
Adding user-defined types



i.
purpose
ii.
creation
iii.
indexing
(m)
Exotic pre-installed types



i.
date/time
ii.
geometric
iii.
character string
iv.
internet
v.
internal
(n)
Arrays



i.
creation
ii.
access
(o)
Inheritance



i.
purpose
ii.
creation
iii.
examples
6.
Interfacing to the POSTGRESQL Database



(a)
C Language API (LIBPQ)
(b)
Embedded C (ECPG)
(c)
C++ (LIBPQ++)
(d)
JAVA (JDBC)
(e)
ODBC
(f)
PERL (PGSQL_PERL5)
(g)
TCL/TK (LIBPGTCL)
(h)
PYTHON (PYGRESQL)
(i)
Web access (PHP)
(j)
Server-side programming


i.
PLPGSQL 
ii.
SPI
7.
POSTGRESQL Administration



(a)
Creating users and databases
(b)
Backup and restore
(c)
Performance
(d)
Troubleshooting
(e)
Customization
(f)
Access configuration


i.
server access
ii.
database access
iii.
table access
(g)
Internationalization 



i.
national character encodings
ii.
date formats
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


i.
FTP
ii.
web
iii.
CDROM
(b)
Compiling



i.
compiler
ii.
RPM
(c)
Initialization
(d)
Starting the server
(e)
Creating a database
10.
Annotated Bibliography






                          PostgreSQL Book Proposal
                                      
                               Bruce Momjian
   
   Preface
   
   1.
          Introduction
        (a)
               History of POSTGRESQL
             i.
                    UNIVERSITY OF CALIFORNIA AT BERKELEY
             ii.
                    MICHAEL STONEBRAKER
             iii.
                    JOLLY CHEN and ANDREW YU
             iv.
                    POSTGRESQL GLOBAL DEVELOPMENT TEAM
        (b)
               Open source software
             i.
                    development methods
             ii.
                    peer review
             iii.
                    release process
             iv.
                    problem reporting
             v.
                    support
        (c)
               When to use a database
             i.
                    large volume
             ii.
                    rapid retrieval
             iii.
                    frequent modification
             iv.
                    reporting
   2.
          Issuing database commands
        (a)
               Starting a database session
             i.
                    choosing an access method
             ii.
                    choosing a database
             iii.
                    starting a session
        (b)
               Controlling a session
             i.
                    typing in the query buffer
             ii.
                    displaying the query buffer
             iii.
                    editing the query buffer
             iv.
                    erasing the query buffer
        (c)
               Sendinging queries
        (d)
               Getting help
        (e)
               Requesting server information
   3.
          Introduction to SQL
        (a)
               Relational Databases
             i.
                    tables, rows, and columns
             ii.
                    column types
             iii.
                    column selection
             iv.
                    row restriction
        (b)
               Creating tables
             i.
                    naming columns
             ii.
                    column types
        (c)
               Adding data with INSERT
             i.
                    target columns
             ii.
                    column types
             iii.
                    missing values
        (d)
               Viewing data with SELECT
             i.
                    target columns
             ii.
                    FROM clause
        (e)
               Removing data with DELETE
        (f)
               Modifying data with UPDATE
        (g)
               Restricting with WHERE
        (h)
               Sorting data with ORDER BY
        (i)
               Using NULL values
   4.
          Advanced SQL Commands
        (a)
               Inserting data using 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)
               UPDATE with FROM
        (i)
               Subqueries
             i.
                    returning a single row
             ii.
                    returning multiple rows
             iii.
                    correlated Subqueries
        (j)
               Transactions
             i.
                    BEGIN...END
             ii.
                    ABORT transaction
        (k)
               Cursors
             i.
                    DECLARE
             ii.
                    FETCH
             iii.
                    CLOSE
        (l)
               Indexing
             i.
                    usage
             ii.
                    types
             iii.
                    definition
             iv.
                    functional indexes
        (m)
               Column defaults
        (n)
               Referential integrity
             i.
                    primary keys
             ii.
                    foreign keys
        (o)
               AND/OR usage
        (p)
               Pattern matching
             i.
                    LIKE clause
             ii.
                    regular expressions
        (q)
               Temporary tables
        (r)
               Importing data
             i.
                    COPY
             ii.
                    DELIMITERS
             iii.
                    BINARY
             iv.
                    frontend COPY
   5.
          POSTGRESQL'S Unique Features
        (a)
               Object ID'S (OID'S)
             i.
                    unique row assignment
             ii.
                    join usage
        (b)
               Multi-Version Concurrency Control
             i.
                    write locks
             ii.
                    read locks
             iii.
                    concurrency
             iv.
                    solutions
        (c)
               Locking and deadlocks
             i.
                    need for locking
             ii.
                    deadlocks
        (d)
               Vacuum
             i.
                    scheduling
             ii.
                    ANALYZE
        (e)
               Views
             i.
                    creation
             ii.
                    limitations
        (f)
               Rules
             i.
                    creation
             ii.
                    limitations
        (g)
               Sequences
             i.
                    purpose
             ii.
                    creation
             iii.
                    management
        (h)
               Triggers
             i.
                    purpose
             ii.
                    creation
        (i)
               Large objects(BLOBS)
             i.
                    applications
             ii.
                    creation
             iii.
                    management
        (j)
               Adding user-defined functions
             i.
                    purpose
             ii.
                    creation
             iii.
                    examples
        (k)
               Adding user-defined operators
             i.
                    arithmetic processing
             ii.
                    creation
        (l)
               Adding user-defined types
             i.
                    purpose
             ii.
                    creation
             iii.
                    indexing
        (m)
               Exotic pre-installed types
             i.
                    date/time
             ii.
                    geometric
             iii.
                    character string
             iv.
                    internet
             v.
                    internal
        (n)
               Arrays
             i.
                    creation
             ii.
                    access
        (o)
               Inheritance
             i.
                    purpose
             ii.
                    creation
             iii.
                    examples
   6.
          Interfacing to the POSTGRESQL Database
        (a)
               C Language API (LIBPQ)
        (b)
               Embedded C (ECPG)
        (c)
               C++ (LIBPQ++)
        (d)
               JAVA (JDBC)
        (e)
               ODBC
        (f)
               PERL (PGSQL_PERL5)
        (g)
               TCL/TK (LIBPGTCL)
        (h)
               PYTHON (PYGRESQL)
        (i)
               Web access (PHP)
        (j)
               Server-side programming
             i.
                    PLPGSQL
             ii.
                    SPI
   7.
          POSTGRESQL Administration
        (a)
               Creating users and databases
        (b)
               Backup and restore
        (c)
               Performance
        (d)
               Troubleshooting
        (e)
               Customization
        (f)
               Access configuration
             i.
                    server access
             ii.
                    database access
             iii.
                    table access
        (g)
               Internationalization
             i.
                    national character encodings
             ii.
                    date formats
   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
             i.
                    FTP
             ii.
                    web
             iii.
                    CDROM
        (b)
               Compiling
             i.
                    compiler
             ii.
                    RPM
        (c)
               Initialization
        (d)
               Starting the server
        (e)
               Creating a database
   10.
          Annotated Bibliography
Tue, 12 Oct 1999 22:46:28 -0400 (EDT)
Bruce Momjian <maillist@candle.pha.pa.us>
Updated book outline
I know this is probably the wrong group for this, but it's the only one
I'm subscribed to -- where the heck in the build tree is the Win32 client
stuff???  How do I build it?  Or can I use that 6.4.something client in
the bindist on FTP against my spiffy new 6.5.1 Solaris postmaster?

This line of inquiry started out as an innocent attempt to play around,
and here I am back in that learning curve morass.  Sigh.



Tue, 12 Oct 1999 23:15:56 -0500 (EST)
"J. Michael Roberts" <mirobert@cs.indiana.edu>
Win32 client...
Add a subsection on chapter 1 with title:

(d) PostgreSQL Known Limitation
(i) Maximum record
(ii) Maximum field
(iii) Maximum file size
etc....

Regards
Chairudin


> Bruce Momjian wrote:
> 
> OK, new outline, updated to show subsection detail, with suggested
> changes made.
> 
> 
>                        PostgreSQL Book Proposal
> 
>                              Bruce Momjian
> 
> Preface
> 
> 1.   Introduction
> 
>      (a)  History of POSTGRESQL
> 
>           i.   UNIVERSITY OF CALIFORNIA AT BERKELEY
>           ii.  MICHAEL STONEBRAKER
>           iii.
>                JOLLY CHEN and ANDREW YU
>           iv.  POSTGRESQL GLOBAL DEVELOPMENT TEAM
>      (b)  Open source software
> 
>           i.   development methods
>           ii.  peer review
>           iii.
>                release process
>           iv.  problem reporting
>           v.   support
>      (c)  When to use a database
> 
>           i.   large volume
>           ii.  rapid retrieval
>           iii.
>                frequent modification
>           iv.  reporting

Wed, 13 Oct 1999 17:01:42 +0700
Chairudin Sentosa Harjo <chai@prima.net.id>
Re: [HACKERS] Updated book outline
> Add a subsection on chapter 1 with title:
> 
> (d) PostgreSQL Known Limitation
> (i) Maximum record
> (ii) Maximum field
> (iii) Maximum file size
> etc....

I will get those in there somewhere.

-- 
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Wed, 13 Oct 1999 07:34:50 -0400 (EDT)
Bruce Momjian <maillist@candle.pha.pa.us>
Re: [HACKERS] Updated book outline