#
PGINTERFACE = pginterface.o halt.o
TARGET = pginsert pgwordcount pgnulltest
-CFLAGS = -g -Wall -I/u/postgres95/include
-LDFLAGS = -L/u/postgres95/lib -lpq
+CFLAGS = -g -Wall -I/usr/local/pgsql/include
+LDFLAGS = -L/usr/local/pgsql/lib -lpq
all : $(TARGET)
-pgtcl is a tcl package for front-end programs to interface with Postgres95
+pgtcl is a tcl package for front-end programs to interface with PostgreSQL
backends. PgTcl does not use the libpq library but communicates to
the backend directly via the frontend-backend protocol. Thus, it is
more efficient than previous postgres->tcl bindings which are layered
% gmake clean install
-This version of the program will read in your postgres95 database and
+This version of the program will read in your postgreSQL database and
output the schema and the data tuples in SQL. The dumps are useful
-for moving from one postgres95 installation to another.
+for moving from one postgreSQL installation to another.
How to use pg_dump:
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.64 1998/02/26 04:38:54 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.65 1998/03/14 21:57:22 momjian Exp $
*
* Modifications - 6/10/96 - dave@bensoft.com - version 1.13.dhb
*
*
* We only need to do this for POSTGRES 4.2 databases since the
* COPY TO statment doesn't escape newlines properly. It's been fixed
- * in Postgres95.
+ * in PostgreSQL.
*
* the attrmap passed in tells how to map the attributes copied in to the
* attributes copied out
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: pg_dump.h,v 1.30 1998/02/26 04:39:01 momjian Exp $
+ * $Id: pg_dump.h,v 1.31 1998/03/14 21:57:26 momjian Exp $
*
* Modifications - 6/12/96 - dave@bensoft.com - version 1.13.dhb.2
*
/* pg_dump is really two programs in one
one version works with postgres v4r2
- and the other works with postgres95
+ and the other works with postgreSQL
the common routines are declared here
*/
/*
-libpgtcl is a library that implements Tcl commands for front-end
-clients to interact with the Postgres95 backend. See libpgtcl.doc for
-details.
+libpgtcl is a library that implements Tcl commands for front-end clients
+to interact with the PostgreSQL backend. See libpgtcl.doc for details.
For an example of how to build a new tclsh to use libpgtcl, see the
directory ../bin/pgtclsh
-This directory contains libpq++, the C++ language interface to POSTGRES95.
+This directory contains libpq++, the C++ language interface to POSTGRESQL.
libpq++ is implemented on of the libpq library. Users would benefit
-from reading the chapter on libpq in the postgres95 users manual
+from reading the chapter on libpq in the PostgreSQL users manual
before using libpq++.
The initial version of this implementation was done by William Wanders
This is only a preliminary attempt at providing something useful for
people who would like to use C++ to build frontend applications to
-postgres95. The API provided herein is subject to change in later
-versions of postgres95.
+PostgreSQL. The API provided herein is subject to change in later
+versions of PostgreSQL.
For details on how to to use libpq++, see the man page in the man/
subdirectory and the test programs in the examples/ subdirectory.
#! /usr/local/bin/python
# basics.py - basic SQL commands tutorial
-# inspired from the Postgres95 tutorial
+# inspired from the PostgreSQL tutorial
# adapted to Python 1995 by Pascal ANDRE
print "__________________________________________________________________"
.\" This is -*-nroff-*-
.\" XXX standard disclaimer belongs here....
-.\" $Header: /cvsroot/pgsql/src/man/Attic/cluster.l,v 1.4 1998/01/11 22:17:10 momjian Exp $
+.\" $Header: /cvsroot/pgsql/src/man/Attic/cluster.l,v 1.5 1998/03/14 21:57:56 momjian Exp $
.TH CLUSTER SQL 01/23/93 PostgreSQL PostgreSQL
.SH NAME
cluster - give storage clustering advice to Postgres
.IR classname.
.PP
When a class is clustered, it is physically reordered based on the index
-information. The clustering is static. In other words, if the class is
-updated, it may become unclustered. No attempt is made to keep new
+information. The clustering is static. In other words, as the class is
+updated, the changes are not clusterd. No attempt is made to keep new
instances or updated tuples clustered. If desired, the user can
recluster manually by issuing the command again.
.PP
-The table is actually copied to temporary table in index order,
-then renamed back to the original name. For this reason, all
-grant permissions and other indexes are lost when cluster is performed.
+The table is actually copied to temporary table in index order, then
+renamed back to the original name. For this reason, all grant
+permissions and other indexes are lost when cluster is performed.
+.PP
+In cases where you are accessing single rows randomly within a table,
+the actual order of the data in the heap table unimportant. However, if
+you tend to access some data more than others, and there is an index
+that groups them together, you will benefit from using the CLUSTER
+command.
+.PP
+Another place CLUSTER is good is in cases where you use an index to pull
+out several rows from a table. If you are requesting a range of indexed
+values from a table, or a single indexed value that has multiple rows
+that match, CLUSTER will help because once the index identifies the heap
+page for the first row that matches, all other rows that match are
+probably already on the same heap page, saving disk accesses and speeding up
+the query.
+.PP
+There are two ways to cluster data. The first is with the CLUSTER
+command, which reoreders the original table with the ordering of the
+index you specify. This can be slow on large tables because the rows
+are fetched from the heap in index order, and if the heap table is
+unordered, the entries are on random pages, so there is one disk page
+retrieved for every row moved. PostgreSQL has a cache, but the majority
+of a big table will not fit in the cache.
+.PP
+Another way is to use SELECT ... INTO TABLE temp FROM ... This uses the
+PostgreSQL sorting code, and is much faster for unordered data. You
+then drop the old table, use ALTER TABLE RENAME to rename 'temp' to the
+old name, and recreate the indexes. From then on, CLUSTER should be
+fast because most of the heap data is ordered.
.SH EXAMPLE
.nf
/*
cluster emp_ind on emp
.fi
-
--
-- BTREE partial indices
--- partial indices are not supported in postgres95
+-- partial indices are not supported in PostgreSQL
--
--CREATE INDEX onek2_u1_prtl ON onek2 USING btree(unique1 int4_ops)
-- where onek2.unique1 < 20 or onek2.unique1 > 980;