Change Postgres95 to PostgreSQL. Update CLUSTER manual page.
This commit is contained in:
parent
12429af027
commit
3674ccdf95
@ -4,8 +4,8 @@
|
|||||||
#
|
#
|
||||||
PGINTERFACE = pginterface.o halt.o
|
PGINTERFACE = pginterface.o halt.o
|
||||||
TARGET = pginsert pgwordcount pgnulltest
|
TARGET = pginsert pgwordcount pgnulltest
|
||||||
CFLAGS = -g -Wall -I/u/postgres95/include
|
CFLAGS = -g -Wall -I/usr/local/pgsql/include
|
||||||
LDFLAGS = -L/u/postgres95/lib -lpq
|
LDFLAGS = -L/usr/local/pgsql/lib -lpq
|
||||||
|
|
||||||
all : $(TARGET)
|
all : $(TARGET)
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
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
|
backends. PgTcl does not use the libpq library but communicates to
|
||||||
the backend directly via the frontend-backend protocol. Thus, it is
|
the backend directly via the frontend-backend protocol. Thus, it is
|
||||||
more efficient than previous postgres->tcl bindings which are layered
|
more efficient than previous postgres->tcl bindings which are layered
|
||||||
|
@ -11,9 +11,9 @@ To build:
|
|||||||
|
|
||||||
% gmake clean install
|
% 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
|
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:
|
How to use pg_dump:
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* 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
|
* Modifications - 6/10/96 - dave@bensoft.com - version 1.13.dhb
|
||||||
*
|
*
|
||||||
@ -2681,7 +2681,7 @@ dumpIndices(FILE *fout, IndInfo *indinfo, int numIndices,
|
|||||||
*
|
*
|
||||||
* We only need to do this for POSTGRES 4.2 databases since the
|
* 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
|
* 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
|
* the attrmap passed in tells how to map the attributes copied in to the
|
||||||
* attributes copied out
|
* attributes copied out
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 1994, Regents of the University of California
|
* 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
|
* Modifications - 6/12/96 - dave@bensoft.com - version 1.13.dhb.2
|
||||||
*
|
*
|
||||||
@ -176,7 +176,7 @@ extern char g_opaque_type[10]; /* name for the opaque type */
|
|||||||
|
|
||||||
/* pg_dump is really two programs in one
|
/* pg_dump is really two programs in one
|
||||||
one version works with postgres v4r2
|
one version works with postgres v4r2
|
||||||
and the other works with postgres95
|
and the other works with postgreSQL
|
||||||
the common routines are declared here
|
the common routines are declared here
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
libpgtcl is a library that implements Tcl commands for front-end
|
libpgtcl is a library that implements Tcl commands for front-end clients
|
||||||
clients to interact with the Postgres95 backend. See libpgtcl.doc for
|
to interact with the PostgreSQL backend. See libpgtcl.doc for details.
|
||||||
details.
|
|
||||||
|
|
||||||
For an example of how to build a new tclsh to use libpgtcl, see the
|
For an example of how to build a new tclsh to use libpgtcl, see the
|
||||||
directory ../bin/pgtclsh
|
directory ../bin/pgtclsh
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
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
|
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++.
|
before using libpq++.
|
||||||
|
|
||||||
The initial version of this implementation was done by William Wanders
|
The initial version of this implementation was done by William Wanders
|
||||||
@ -8,8 +8,8 @@ The initial version of this implementation was done by William Wanders
|
|||||||
|
|
||||||
This is only a preliminary attempt at providing something useful for
|
This is only a preliminary attempt at providing something useful for
|
||||||
people who would like to use C++ to build frontend applications to
|
people who would like to use C++ to build frontend applications to
|
||||||
postgres95. The API provided herein is subject to change in later
|
PostgreSQL. The API provided herein is subject to change in later
|
||||||
versions of postgres95.
|
versions of PostgreSQL.
|
||||||
|
|
||||||
For details on how to to use libpq++, see the man page in the man/
|
For details on how to to use libpq++, see the man page in the man/
|
||||||
subdirectory and the test programs in the examples/ subdirectory.
|
subdirectory and the test programs in the examples/ subdirectory.
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#! /usr/local/bin/python
|
#! /usr/local/bin/python
|
||||||
# basics.py - basic SQL commands tutorial
|
# basics.py - basic SQL commands tutorial
|
||||||
# inspired from the Postgres95 tutorial
|
# inspired from the PostgreSQL tutorial
|
||||||
# adapted to Python 1995 by Pascal ANDRE
|
# adapted to Python 1995 by Pascal ANDRE
|
||||||
|
|
||||||
print "__________________________________________________________________"
|
print "__________________________________________________________________"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
.\" This is -*-nroff-*-
|
.\" This is -*-nroff-*-
|
||||||
.\" XXX standard disclaimer belongs here....
|
.\" 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
|
.TH CLUSTER SQL 01/23/93 PostgreSQL PostgreSQL
|
||||||
.SH NAME
|
.SH NAME
|
||||||
cluster - give storage clustering advice to Postgres
|
cluster - give storage clustering advice to Postgres
|
||||||
@ -17,14 +17,42 @@ The index must already have been defined on
|
|||||||
.IR classname.
|
.IR classname.
|
||||||
.PP
|
.PP
|
||||||
When a class is clustered, it is physically reordered based on the index
|
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
|
information. The clustering is static. In other words, as the class is
|
||||||
updated, it may become unclustered. No attempt is made to keep new
|
updated, the changes are not clusterd. No attempt is made to keep new
|
||||||
instances or updated tuples clustered. If desired, the user can
|
instances or updated tuples clustered. If desired, the user can
|
||||||
recluster manually by issuing the command again.
|
recluster manually by issuing the command again.
|
||||||
.PP
|
.PP
|
||||||
The table is actually copied to temporary table in index order,
|
The table is actually copied to temporary table in index order, then
|
||||||
then renamed back to the original name. For this reason, all
|
renamed back to the original name. For this reason, all grant
|
||||||
grant permissions and other indexes are lost when cluster is performed.
|
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
|
.SH EXAMPLE
|
||||||
.nf
|
.nf
|
||||||
/*
|
/*
|
||||||
@ -34,4 +62,3 @@ create index emp_ind on emp using btree (salary int4_ops);
|
|||||||
|
|
||||||
cluster emp_ind on emp
|
cluster emp_ind on emp
|
||||||
.fi
|
.fi
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ CREATE INDEX bt_f8_index ON bt_f8_heap USING btree (seqno float8_ops);
|
|||||||
|
|
||||||
--
|
--
|
||||||
-- BTREE partial indices
|
-- 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)
|
--CREATE INDEX onek2_u1_prtl ON onek2 USING btree(unique1 int4_ops)
|
||||||
-- where onek2.unique1 < 20 or onek2.unique1 > 980;
|
-- where onek2.unique1 < 20 or onek2.unique1 > 980;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user