Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
85c165cd
Commit
85c165cd
authored
Aug 11, 1998
by
Bruce Momjian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
New findoidjoins examines oid columns to find join relationships.
parent
ffb120ec
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
1284 additions
and
1 deletion
+1284
-1
contrib/README
contrib/README
+5
-0
contrib/findoidjoins/Makefile
contrib/findoidjoins/Makefile
+20
-0
contrib/findoidjoins/README
contrib/findoidjoins/README
+68
-0
contrib/findoidjoins/findoidjoins.c
contrib/findoidjoins/findoidjoins.c
+93
-0
contrib/pginterface/README
contrib/pginterface/README
+5
-0
contrib/pginterface/pginterface.c
contrib/pginterface/pginterface.c
+71
-1
contrib/pginterface/pginterface.h
contrib/pginterface/pginterface.h
+4
-0
doc/src/graphics/catalogs.ps
doc/src/graphics/catalogs.ps
+1018
-0
No files found.
contrib/README
View file @
85c165cd
...
@@ -18,6 +18,11 @@ earthdistance -
...
@@ -18,6 +18,11 @@ earthdistance -
Operator for computing earth distance for two points
Operator for computing earth distance for two points
by Hal Snyder <hal@vailsys.com>
by Hal Snyder <hal@vailsys.com>
findoidjoins -
Finds the joins used by oid columns by examining the actual
values in the oid columns and row oids.
by Bruce Momjian <root@candle.pha.pa.us>
fulltextindex -
fulltextindex -
Full text indexing using triggers
Full text indexing using triggers
by Maarten Boekhold <maartenb@dutepp0.et.tudelft.nl>
by Maarten Boekhold <maartenb@dutepp0.et.tudelft.nl>
...
...
contrib/findoidjoins/Makefile
0 → 100644
View file @
85c165cd
#
# Makefile, requires pgsql/contrib/pginterface
#
#
PGINTERFACE
=
pginterface.o halt.o
# these have to be in your library search path
TARGET
=
findoidjoins
CFLAGS
=
-g
-Wall
-I
.
-I
../../src/interfaces/libpq
-I
/usr/local/pgsql/include
LDFLAGS
=
-L
/usr/local/pgsql/lib
-lpq
all
:
$(TARGET)
findoidjoins
:
$(PGINTERFACE) findoidjoins.c
gcc
-o
$@
$(CFLAGS)
$@
.c
$(PGINTERFACE)
$(LDFLAGS)
clean
:
rm
-f
*
.o
$(TARGET)
log core
install
:
install
-s
-o
bin
-g
bin
$(TARGET)
/usr/local/pgsql/bin
contrib/findoidjoins/README
0 → 100644
View file @
85c165cd
findoidjoins
This program scans the a database, and prints oid fields, and the tables
they join to. PostgreSQL version 6.3.2 crashes with aggregates on
views, so I have removed the view pg_user from the list of relations to
examine.
Run on am empty database, it returns the system join relationships:
---------------------------------------------------------------------------
Join pg_aggregate.aggfinaltype => pg_proc.oid
Join pg_aggregate.aggfinaltype => pg_type.oid
Join pg_aggregate.aggowner => pg_proc.oid
Join pg_aggregate.aggbasetype => pg_proc.oid
Join pg_aggregate.aggbasetype => pg_type.oid
Join pg_aggregate.aggtranstype1 => pg_proc.oid
Join pg_aggregate.aggtranstype1 => pg_type.oid
Join pg_aggregate.aggtranstype2 => pg_type.oid
Join pg_am.amowner => pg_proc.oid
Join pg_amop.amopid => pg_am.oid
Join pg_amop.amopopr => pg_operator.oid
Join pg_amop.amopclaid => pg_opclass.oid
Join pg_amproc.amproc => pg_operator.oid
Join pg_amproc.amproc => pg_proc.oid
Join pg_amproc.amopclaid => pg_opclass.oid
Join pg_amproc.amopclaid => pg_operator.oid
Join pg_amproc.amopclaid => pg_proc.oid
Join pg_amproc.amid => pg_am.oid
Join pg_attribute.attrelid => pg_class.oid
Join pg_attribute.atttypid => pg_type.oid
Join pg_class.relam => pg_am.oid
Join pg_class.reltype => pg_type.oid
Join pg_class.relowner => pg_proc.oid
Join pg_description.objoid => pg_proc.oid
Join pg_description.objoid => pg_type.oid
Join pg_index.indexrelid => pg_class.oid
Join pg_index.indrelid => pg_class.oid
Join pg_index.indproc => pg_proc.oid
Join pg_opclass.opcdeftype => pg_type.oid
Join pg_operator.oprcom => pg_operator.oid
Join pg_operator.oprrsortop => pg_operator.oid
Join pg_operator.oprlsortop => pg_operator.oid
Join pg_operator.oprnegate => pg_operator.oid
Join pg_operator.oprresult => pg_type.oid
Join pg_operator.oprright => pg_type.oid
Join pg_operator.oprleft => pg_type.oid
Join pg_operator.oprowner => pg_proc.oid
Join pg_parg.partype => pg_type.oid
Join pg_parg.parproid => pg_operator.oid
Join pg_parg.parproid => pg_proc.oid
Join pg_proc.prolang => pg_language.oid
Join pg_proc.prorettype => pg_type.oid
Join pg_proc.proowner => pg_proc.oid
Join pg_rewrite.ev_class => pg_class.oid
Join pg_statistic.starelid => pg_class.oid
Join pg_type.typrelid => pg_class.oid
Join pg_type.typowner => pg_proc.oid
Join pg_type.typelem => pg_operator.oid
Join pg_type.typelem => pg_proc.oid
Join pg_type.typelem => pg_type.oid
---------------------------------------------------------------------------
Bruce Momjian (root@candle.pha.pa.us)
contrib/findoidjoins/findoidjoins.c
0 → 100644
View file @
85c165cd
/*
* findoidjoins.c, required pgsql/contrib/pginterface
*
*/
#include <stdio.h>
#include "halt.h"
#include <libpq-fe.h>
#include "pginterface.h"
PGresult
*
attres
,
*
relres
;
int
main
(
int
argc
,
char
**
argv
)
{
char
query
[
4000
];
char
relname
[
256
];
char
relname2
[
256
];
char
attname
[
256
];
int
count
;
if
(
argc
!=
2
)
halt
(
"Usage: %s database
\n
"
,
argv
[
0
]);
connectdb
(
argv
[
1
],
NULL
,
NULL
,
NULL
,
NULL
);
on_error_continue
();
on_error_stop
();
doquery
(
"BEGIN WORK"
);
doquery
(
"\
DECLARE c_attributes BINARY CURSOR FOR \
SELECT relname, a.attname \
FROM pg_class c, pg_attribute a, pg_type t \
WHERE a.attnum > 0 AND \
relkind = 'r' AND \
typname = 'oid' AND \
a.attrelid = c.oid AND \
a.atttypid = t.oid \
ORDER BY 1; \
"
);
doquery
(
"FETCH ALL IN c_attributes"
);
attres
=
get_result
();
doquery
(
"\
DECLARE c_relations BINARY CURSOR FOR \
SELECT relname \
FROM pg_class c \
WHERE relkind = 'r' AND \
relname != 'pg_user' \
ORDER BY 1; \
"
);
doquery
(
"FETCH ALL IN c_relations"
);
relres
=
get_result
();
set_result
(
attres
);
while
(
fetch
(
relname
,
attname
)
!=
END_OF_TUPLES
)
{
set_result
(
relres
);
reset_fetch
();
while
(
fetch
(
relname2
)
!=
END_OF_TUPLES
)
{
unset_result
(
relres
);
sprintf
(
query
,
"\
DECLARE c_matches BINARY CURSOR FOR \
SELECT count(*)
FROM %s t1, %s t2 \
WHERE t1.%s = t2.oid"
,
relname
,
relname2
,
attname
);
doquery
(
query
);
doquery
(
"FETCH ALL IN c_matches"
);
fetch
(
&
count
);
if
(
count
!=
0
)
printf
(
"Join %s.%s => %s.oid
\n
"
,
relname
,
attname
,
relname2
);
doquery
(
"CLOSE c_matches"
);
set_result
(
relres
);
}
set_result
(
attres
);
}
set_result
(
relres
);
doquery
(
"CLOSE c_relations"
);
PQclear
(
relres
);
set_result
(
attres
);
doquery
(
"CLOSE c_attributes"
);
PQclear
(
attres
);
unset_result
(
attres
);
doquery
(
"COMMIT WORK"
);
disconnectdb
();
return
0
;
}
contrib/pginterface/README
View file @
85c165cd
...
@@ -22,6 +22,11 @@ useful if you are running the query engine on a system with a different
...
@@ -22,6 +22,11 @@ useful if you are running the query engine on a system with a different
architecture than the database server. If you pass a NULL pointer, the
architecture than the database server. If you pass a NULL pointer, the
column is skipped, and you can use libpq to handle it as you wish.
column is skipped, and you can use libpq to handle it as you wish.
There are two functions, get_result() and set_result, that allow you to
handle multiple result sets at the same time.
There is a reset_fetch() that starts the fetch back at the beginning.
There is a demo program called pginsert that demonstrates how the
There is a demo program called pginsert that demonstrates how the
library can be used.
library can be used.
...
...
contrib/pginterface/pginterface.c
View file @
85c165cd
...
@@ -22,6 +22,9 @@ static PGresult *res = NULL;
...
@@ -22,6 +22,9 @@ static PGresult *res = NULL;
static
int
on_error_state
=
ON_ERROR_STOP
;
static
int
on_error_state
=
ON_ERROR_STOP
;
static
in_result_block
=
false
;
static
was_get_unset_result
=
false
;
/* LOCAL VARIABLES */
/* LOCAL VARIABLES */
static
int
tuple
;
static
int
tuple
;
...
@@ -64,9 +67,10 @@ disconnectdb()
...
@@ -64,9 +67,10 @@ disconnectdb()
PGresult
*
PGresult
*
doquery
(
char
*
query
)
doquery
(
char
*
query
)
{
{
if
(
res
!=
NULL
)
if
(
res
!=
NULL
&&
in_result_block
==
false
&&
was_get_unset_result
==
false
)
PQclear
(
res
);
PQclear
(
res
);
was_get_unset_result
=
false
;
res
=
PQexec
(
conn
,
query
);
res
=
PQexec
(
conn
,
query
);
if
(
on_error_state
==
ON_ERROR_STOP
&&
if
(
on_error_state
==
ON_ERROR_STOP
&&
...
@@ -187,3 +191,69 @@ on_error_continue()
...
@@ -187,3 +191,69 @@ on_error_continue()
{
{
on_error_state
=
ON_ERROR_CONTINUE
;
on_error_state
=
ON_ERROR_CONTINUE
;
}
}
/*
**
** get_result
**
*/
PGresult
*
get_result
()
{
was_get_unset_result
=
true
;
/* we have to store the fetch location somewhere */
memcpy
(
&
res
->
cmdStatus
[
CMDSTATUS_LEN
-
sizeof
(
tuple
)],
&
tuple
,
sizeof
(
tuple
));
return
res
;
}
/*
**
** set_result
**
*/
void
set_result
(
PGresult
*
newres
)
{
if
(
newres
==
NULL
)
halt
(
"set_result called with null result pointer
\n
"
);
if
(
res
!=
NULL
&&
was_get_unset_result
==
false
)
if
(
in_result_block
==
false
)
PQclear
(
res
);
else
memcpy
(
&
res
->
cmdStatus
[
CMDSTATUS_LEN
-
sizeof
(
tuple
)],
&
tuple
,
sizeof
(
tuple
));
in_result_block
=
true
;
was_get_unset_result
=
false
;
memcpy
(
&
tuple
,
&
newres
->
cmdStatus
[
CMDSTATUS_LEN
-
sizeof
(
tuple
)],
sizeof
(
tuple
));
res
=
newres
;
}
/*
**
** unset_result
**
*/
void
unset_result
(
PGresult
*
oldres
)
{
if
(
oldres
==
NULL
)
halt
(
"unset_result called with null result pointer
\n
"
);
if
(
in_result_block
==
false
)
halt
(
"Unset of result without being set.
\n
"
);
was_get_unset_result
=
true
;
memcpy
(
&
oldres
->
cmdStatus
[
CMDSTATUS_LEN
-
sizeof
(
tuple
)],
&
tuple
,
sizeof
(
tuple
));
in_result_block
=
false
;
}
/*
**
** reset_fetch
**
*/
void
reset_fetch
()
{
tuple
=
0
;
}
contrib/pginterface/pginterface.h
View file @
85c165cd
...
@@ -10,5 +10,9 @@ int fetch(void *param,...);
...
@@ -10,5 +10,9 @@ int fetch(void *param,...);
int
fetchwithnulls
(
void
*
param
,...);
int
fetchwithnulls
(
void
*
param
,...);
void
on_error_continue
();
void
on_error_continue
();
void
on_error_stop
();
void
on_error_stop
();
PGresult
*
get_result
();
void
set_result
(
PGresult
*
newres
);
void
unset_result
(
PGresult
*
oldres
);
void
reset_fetch
();
#define END_OF_TUPLES (-1)
#define END_OF_TUPLES (-1)
doc/src/graphics/catalogs.ps
0 → 100644
View file @
85c165cd
%!PS-Adobe-3.0
%%Creator: groff version 1.09
%%CreationDate: Sat Feb 24 21:37:20 1996
%%DocumentNeededResources: font Times-Bold
%%+ font Times-Italic
%%+ font Times-Roman
%%+ font Courier
%%+ font Symbol
%%DocumentSuppliedResources: file manual-er.eps
%%+ file manual-files.eps
%%+ file manual-arch.eps
%%+ procset grops 1.09 0
%%Pages: 1
%%PageOrder: Ascend
%%Orientation: Portrait
%%EndComments
%%BeginProlog
%%BeginResource: procset grops 1.09 0
/setpacking where{
pop
currentpacking
true setpacking
}if
/grops 120 dict dup begin
/SC 32 def
/A/show load def
/B{0 SC 3 -1 roll widthshow}bind def
/C{0 exch ashow}bind def
/D{0 exch 0 SC 5 2 roll awidthshow}bind def
/E{0 rmoveto show}bind def
/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
/G{0 rmoveto 0 exch ashow}bind def
/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/I{0 exch rmoveto show}bind def
/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
/K{0 exch rmoveto 0 exch ashow}bind def
/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/M{rmoveto show}bind def
/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
/O{rmoveto 0 exch ashow}bind def
/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/Q{moveto show}bind def
/R{moveto 0 SC 3 -1 roll widthshow}bind def
/S{moveto 0 exch ashow}bind def
/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/SF{
findfont exch
[exch dup 0 exch 0 exch neg 0 0]makefont
dup setfont
[exch/setfont cvx]cvx bind def
}bind def
/MF{
findfont
[5 2 roll
0 3 1 roll
neg 0 0]makefont
dup setfont
[exch/setfont cvx]cvx bind def
}bind def
/level0 0 def
/RES 0 def
/PL 0 def
/LS 0 def
/PLG{
gsave newpath clippath pathbbox grestore
exch pop add exch pop
}bind def
/BP{
/level0 save def
1 setlinecap
1 setlinejoin
72 RES div dup scale
LS{
90 rotate
}{
0 PL translate
}ifelse
1 -1 scale
}bind def
/EP{
level0 restore
showpage
}bind def
/DA{
newpath arcn stroke
}bind def
/SN{
transform
.25 sub exch .25 sub exch
round .25 add exch round .25 add exch
itransform
}bind def
/DL{
SN
moveto
SN
lineto stroke
}bind def
/DC{
newpath 0 360 arc closepath
}bind def
/TM matrix def
/DE{
TM currentmatrix pop
translate scale newpath 0 0 .5 0 360 arc closepath
TM setmatrix
}bind def
/RC/rcurveto load def
/RL/rlineto load def
/ST/stroke load def
/MT/moveto load def
/CL/closepath load def
/FL{
currentgray exch setgray fill setgray
}bind def
/BL/fill load def
/LW/setlinewidth load def
/RE{
findfont
dup maxlength 1 index/FontName known not{1 add}if dict begin
{
1 index/FID ne{def}{ pop pop}ifelse
}forall
/Encoding exch def
dup/FontName exch def
currentdict end definefont pop
}bind def
/DEFS 0 def
/EBEGIN{
moveto
DEFS begin
}bind def
/EEND/end load def
/CNT 0 def
/level1 0 def
/PBEGIN{
/level1 save def
translate
div 3 1 roll div exch scale
neg exch neg exch translate
0 setgray
0 setlinecap
1 setlinewidth
0 setlinejoin
10 setmiterlimit
[] 0 setdash
/setstrokeadjust where{
pop
false setstrokeadjust
}if
/setoverprint where{
pop
false setoverprint
}if
newpath
/CNT countdictstack def
userdict begin
/showpage{} def
}bind def
/PEND{
clear
countdictstack CNT sub{end}repeat
level1 restore
}bind def
end def
/setpacking where{
pop
setpacking
}if
%%EndResource
%%IncludeResource: font Times-Bold
%%IncludeResource: font Times-Italic
%%IncludeResource: font Times-Roman
%%IncludeResource: font Courier
%%IncludeResource: font Symbol
grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
/Courier@0 ENC0/Courier RE/Times-Roman@0 ENC0/Times-Roman RE
/Times-Italic@0 ENC0/Times-Italic RE/Times-Bold@0 ENC0/Times-Bold RE
%%EndProlog
%%Page: 23 1
%%BeginPageSetup
BP
%%EndPageSetup
.44 LW 77.5 109.2 72 109.2 DL 80.5 109.2 75 109.2 DL 86 109.2 80.5 109.2
DL 91.5 109.2 86 109.2 DL 97 109.2 91.5 109.2 DL 102.5 109.2 97 109.2 DL
108 109.2 102.5 109.2 DL 113.5 109.2 108 109.2 DL 119 109.2 113.5 109.2
DL 124.5 109.2 119 109.2 DL 130 109.2 124.5 109.2 DL 135.5 109.2 130
109.2 DL 141 109.2 135.5 109.2 DL 146.5 109.2 141 109.2 DL 152 109.2
146.5 109.2 DL 157.5 109.2 152 109.2 DL 163 109.2 157.5 109.2 DL 168.5
109.2 163 109.2 DL 174 109.2 168.5 109.2 DL 179.5 109.2 174 109.2 DL 185
109.2 179.5 109.2 DL 190.5 109.2 185 109.2 DL 196 109.2 190.5 109.2 DL
201.5 109.2 196 109.2 DL 207 109.2 201.5 109.2 DL 212.5 109.2 207 109.2
DL 218 109.2 212.5 109.2 DL 223.5 109.2 218 109.2 DL 229 109.2 223.5
109.2 DL 234.5 109.2 229 109.2 DL 240 109.2 234.5 109.2 DL 245.5 109.2
240 109.2 DL 251 109.2 245.5 109.2 DL 256.5 109.2 251 109.2 DL 262 109.2
256.5 109.2 DL 267.5 109.2 262 109.2 DL 273 109.2 267.5 109.2 DL 278.5
109.2 273 109.2 DL 284 109.2 278.5 109.2 DL 289.5 109.2 284 109.2 DL 295
109.2 289.5 109.2 DL 300.5 109.2 295 109.2 DL 306 109.2 300.5 109.2 DL
311.5 109.2 306 109.2 DL 317 109.2 311.5 109.2 DL 322.5 109.2 317 109.2
DL 328 109.2 322.5 109.2 DL 333.5 109.2 328 109.2 DL 339 109.2 333.5
109.2 DL 344.5 109.2 339 109.2 DL 350 109.2 344.5 109.2 DL 355.5 109.2
350 109.2 DL 361 109.2 355.5 109.2 DL 366.5 109.2 361 109.2 DL 372 109.2
366.5 109.2 DL 377.5 109.2 372 109.2 DL 383 109.2 377.5 109.2 DL 388.5
109.2 383 109.2 DL 394 109.2 388.5 109.2 DL 399.5 109.2 394 109.2 DL 405
109.2 399.5 109.2 DL 410.5 109.2 405 109.2 DL 416 109.2 410.5 109.2 DL
421.5 109.2 416 109.2 DL 427 109.2 421.5 109.2 DL 432.5 109.2 427 109.2
DL 438 109.2 432.5 109.2 DL 443.5 109.2 438 109.2 DL 449 109.2 443.5
109.2 DL 454.5 109.2 449 109.2 DL 460 109.2 454.5 109.2 DL 465.5 109.2
460 109.2 DL 471 109.2 465.5 109.2 DL 476.5 109.2 471 109.2 DL 482 109.2
476.5 109.2 DL 487.5 109.2 482 109.2 DL 493 109.2 487.5 109.2 DL 498.5
109.2 493 109.2 DL 504 109.2 498.5 109.2 DL 0 0 432 754 -433.278 761 72
568.878 PBEGIN
%%BeginDocument: manual-er.eps
%%Title: stdin
%%Creator: fig2dev Version 3.1 Patchlevel 0
%%CreationDate: Sat Feb 24 21:36:26 1996
%%For: jolly@arcadia.CS.Berkeley.EDU (Jolly Chen,421 Soda,(510) 6421863,540-5955)
%%Orientation: Portrait
%%BoundingBox: 0 0 754 761
%%Pages: 0
%%BeginSetup
%%IncludeFeature: *PageSize Letter
%%EndSetup
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {} def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def
end
save
-30.0 776.0 translate
1 -1 scale
/clp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/l {lineto} bind def
/m {moveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
4 -2 roll mul srgb} bind def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
$F2psBegin
10 setmiterlimit
0.90000 0.90000 sc
0.500 slw
% Polyline
n 194 414 m 259 414 l 259 454 l 274 454 l gs col-1 s gr
% Polyline
n 194 234 m 274 234 l gs col-1 s gr
% Polyline
n 259 134 m 239 134 l 239 394 l 199 394 l gs col-1 s gr
% Polyline
n 259 54 m 219 54 l 219 389 l gs col-1 s gr
% Polyline
n 199 389 m 219 389 l gs col-1 s gr
% Polyline
n 279 254 m 259 254 l 259 399 l 199 399 l gs col-1 s gr
% Polyline
n 179 234 m 199 234 l gs col-1 s gr
% Polyline
n 259 74 m 199 74 l 199 214 l 179 214 l gs col-1 s gr
% Polyline
n 379 294 m 399 294 l gs col-1 s gr
% Polyline
n 384 239 m 459 239 l 459 514 l 499 514 l gs col-1 s gr
% Polyline
n 459 494 m 499 494 l gs col-1 s gr
% Polyline
n 379 274 m 514 274 l gs col-1 s gr
% Polyline
n 379 474 m 439 474 l gs col-1 s gr
% Polyline
n 379 494 m 439 494 l gs col-1 s gr
% Polyline
n 379 514 m 439 514 l gs col-1 s gr
% Polyline
n 379 534 m 439 534 l gs col-1 s gr
% Polyline
n 379 554 m 439 554 l gs col-1 s gr
% Polyline
n 379 574 m 439 574 l gs col-1 s gr
% Polyline
n 379 594 m 439 594 l gs col-1 s gr
% Polyline
n 379 614 m 439 614 l gs col-1 s gr
% Polyline
n 379 634 m 439 634 l gs col-1 s gr
% Polyline
n 379 654 m 439 654 l gs col-1 s gr
% Polyline
n 439 279 m 514 279 l gs col-1 s gr
% Polyline
n 434 439 m 444 449 l gs col-1 s gr
% Polyline
n 404 269 m 414 279 l gs col-1 s gr
% Polyline
n 454 439 m 464 449 l gs col-1 s gr
% Polyline
n 619 634 m 659 634 l gs col-1 s gr
% Polyline
n 634 519 m 644 529 l gs col-1 s gr
% Polyline
n 654 579 m 664 589 l gs col-1 s gr
% Polyline
n 499 494 m 519 494 l gs col-1 s gr
% Polyline
n 499 514 m 519 514 l gs col-1 s gr
% Polyline
n 599 104 m 599 79 l 514 79 l 514 104 l clp gs col-1 s gr
% Polyline
n 624 124 m 624 104 l 514 104 l 514 124 l clp gs col-1 s gr
% Polyline
n 459 534 m 499 534 l gs col-1 s gr
% Polyline
n 499 534 m 519 534 l gs col-1 s gr
% Polyline
n 459 534 m 459 514 l gs col-1 s gr
% Polyline
n 384 229 m 499 229 l 499 314 l 519 314 l gs col-1 s gr
% Polyline
n 624 114 m 639 114 l 639 354 l 619 354 l gs col-1 s gr
% Polyline
n 384 454 m 419 454 l 419 414 l 739 414 l gs col-1 s gr
% Polyline
n 384 449 m 399 449 l 399 399 l 699 399 l 699 54 l 739 54 l gs col-1 s gr
% Polyline
n 624 449 m 719 449 l 719 94 l 739 94 l gs col-1 s gr
% Polyline
n 679 134 m 744 134 l gs col-1 s gr
% Polyline
n 674 159 m 684 169 l gs col-1 s gr
% Polyline
n 839 74 m 859 74 l 859 249 l 844 249 l gs col-1 s gr
% Polyline
n 844 254 m 859 254 l 859 434 l 839 434 l gs col-1 s gr
% Polyline
n 624 269 m 679 269 l 679 114 l 739 114 l gs col-1 s gr
% Polyline
n 624 274 m 679 274 l 679 474 l 739 474 l gs col-1 s gr
% Polyline
n 521 284 m 514 284 514 357 7 arcto 4 {pop} repeat 514 364 617 364 7 arcto 4 {pop} repeat 624 364 624 291 7 arcto 4 {pop} repeat 624 284 521 284 7 arcto 4 {pop} repeat clp gs col-1 s gr
% Polyline
n 179 604 m 179 579 l 74 579 l 74 604 l clp gs col-1 s gr
% Polyline
n 184 704 m 184 679 l 74 679 l 74 704 l clp gs col-1 s gr
% Polyline
n 81 604 m 74 604 74 617 7 arcto 4 {pop} repeat 74 624 177 624 7 arcto 4 {pop} repeat 184 624 184 611 7 arcto 4 {pop} repeat 184 604 81 604 7 arcto 4 {pop} repeat clp gs col-1 s gr
% Polyline
n 184 724 m 184 704 l 74 704 l 74 724 l clp gs col-1 s gr
% Polyline
n 179 614 m 199 614 l 199 714 l 184 714 l gs col-1 s gr
% Polyline
n 184 764 m 184 724 l 74 724 l 74 764 l clp gs col-1 s gr
% Polyline
n 184 784 m 184 764 l 74 764 l 74 784 l clp gs col-1 s gr
% Polyline
n 81 724 m 74 724 74 777 7 arcto 4 {pop} repeat 74 784 177 784 7 arcto 4 {pop} repeat 184 784 184 731 7 arcto 4 {pop} repeat 184 724 81 724 7 arcto 4 {pop} repeat clp gs col-1 s gr
% Polyline
n 166 804 m 159 804 159 812 7 arcto 4 {pop} repeat 159 819 172 819 7 arcto 4 {pop} repeat 179 819 179 811 7 arcto 4 {pop} repeat 179 804 166 804 7 arcto 4 {pop} repeat clp gs col-1 s gr
% Polyline
n 439 654 m 439 279 l gs col-1 s gr
% Polyline
[4.4] 0 setdash
n 359 94 m 419 94 l 419 269 l 514 269 l gs col-1 s gr [] 0 setdash
% Polyline
[4.4] 0 setdash
n 384 234 m 479 234 l 479 334 l 519 334 l gs col-1 s gr [] 0 setdash
% Polyline
[4.4] 0 setdash
n 239 739 m 279 739 l gs col-1 s gr [] 0 setdash
% Polyline
n 239 759 m 279 759 l gs col-1 s gr
% Polyline
[4.4] 0 setdash
n 379 314 m 399 314 l gs col-1 s gr [] 0 setdash
% Polyline
[4.4] 0 setdash
n 379 334 m 399 334 l gs col-1 s gr [] 0 setdash
% Polyline
[4.4] 0 setdash
n 399 294 m 399 334 l gs col-1 s gr [] 0 setdash
% Polyline
n 399 274 m 399 294 l gs col-1 s gr
% Polyline
[4.4] 0 setdash
n 619 614 m 639 614 l gs col-1 s gr [] 0 setdash
% Polyline
[4.4] 0 setdash
n 619 594 m 639 594 l gs col-1 s gr [] 0 setdash
% Polyline
n 521 464 m 514 464 514 677 7 arcto 4 {pop} repeat 514 684 617 684 7 arcto 4 {pop} repeat 624 684 624 471 7 arcto 4 {pop} repeat 624 464 521 464 7 arcto 4 {pop} repeat clp gs col-1 s gr
% Polyline
[4.4] 0 setdash
n 639 594 m 639 614 l gs col-1 s gr [] 0 setdash
% Polyline
[4.4] 0 setdash
n 619 574 m 639 574 l gs col-1 s gr [] 0 setdash
% Polyline
[4.4] 0 setdash
n 619 554 m 639 554 l gs col-1 s gr [] 0 setdash
% Polyline
[4.4] 0 setdash
n 624 454 m 639 454 l 639 594 l gs col-1 s gr [] 0 setdash
% Polyline
[4.4] 0 setdash
n 619 654 m 659 654 l gs col-1 s gr [] 0 setdash
% Polyline
[4.4] 0 setdash
n 619 674 m 659 674 l gs col-1 s gr [] 0 setdash
% Polyline
[4.4] 0 setdash
n 659 674 m 659 654 l gs col-1 s gr [] 0 setdash
% Polyline
n 624 279 m 659 279 l 659 634 l gs col-1 s gr
% Polyline
[4.4] 0 setdash
n 659 634 m 659 654 l gs col-1 s gr [] 0 setdash
% Polyline
n 154 184 m 154 159 l 69 159 l 69 184 l clp gs col-1 s gr
% Polyline
n 76 184 m 69 184 69 237 7 arcto 4 {pop} repeat 69 244 172 244 7 arcto 4 {pop} repeat 179 244 179 191 7 arcto 4 {pop} repeat 179 184 76 184 7 arcto 4 {pop} repeat clp gs col-1 s gr
% Polyline
n 69 224 m 179 224 l gs col-1 s gr
% Polyline
n 174 414 m 194 414 l gs col-1 s gr
% Polyline
n 179 399 m 199 399 l gs col-1 s gr
% Polyline
n 179 394 m 199 394 l gs col-1 s gr
% Polyline
n 179 389 m 199 389 l gs col-1 s gr
% Polyline
n 179 404 m 179 384 l 69 384 l 69 404 l clp gs col-1 s gr
% Polyline
n 154 384 m 154 359 l 69 359 l 69 384 l clp gs col-1 s gr
% Polyline
n 179 424 m 179 404 l 69 404 l 69 424 l clp gs col-1 s gr
% Polyline
n 359 224 m 359 199 l 274 199 l 274 224 l clp gs col-1 s gr
% Polyline
n 384 244 m 384 224 l 274 224 l 274 244 l clp gs col-1 s gr
% Polyline
n 384 344 m 384 244 l 274 244 l 274 344 l clp gs col-1 s gr
% Polyline
n 339 44 m 339 19 l 254 19 l 254 44 l clp gs col-1 s gr
% Polyline
n 261 44 m 254 44 254 137 7 arcto 4 {pop} repeat 254 144 357 144 7 arcto 4 {pop} repeat 364 144 364 51 7 arcto 4 {pop} repeat 364 44 261 44 7 arcto 4 {pop} repeat clp gs col-1 s gr
% Polyline
n 254 124 m 364 124 l gs col-1 s gr
% Polyline
n 819 44 m 819 19 l 734 19 l 734 44 l clp gs col-1 s gr
% Polyline
n 741 44 m 734 44 734 137 7 arcto 4 {pop} repeat 734 144 837 144 7 arcto 4 {pop} repeat 844 144 844 51 7 arcto 4 {pop} repeat 844 44 741 44 7 arcto 4 {pop} repeat clp gs col-1 s gr
% Polyline
n 734 104 m 844 104 l gs col-1 s gr
% Polyline
n 819 244 m 819 219 l 734 219 l 734 244 l clp gs col-1 s gr
% Polyline
n 844 264 m 844 244 l 734 244 l 734 264 l clp gs col-1 s gr
% Polyline
n 599 264 m 599 239 l 514 239 l 514 264 l clp gs col-1 s gr
% Polyline
n 624 284 m 624 264 l 514 264 l 514 284 l clp gs col-1 s gr
% Polyline
n 624 364 m 624 284 l 514 284 l 514 364 l clp gs col-1 s gr
% Polyline
n 514 344 m 624 344 l gs col-1 s gr
% Polyline
n 819 404 m 819 379 l 734 379 l 734 404 l clp gs col-1 s gr
% Polyline
n 741 404 m 734 404 734 477 7 arcto 4 {pop} repeat 734 484 837 484 7 arcto 4 {pop} repeat 844 484 844 411 7 arcto 4 {pop} repeat 844 404 741 404 7 arcto 4 {pop} repeat clp gs col-1 s gr
% Polyline
n 734 464 m 844 464 l gs col-1 s gr
% Polyline
n 599 444 m 599 419 l 514 419 l 514 444 l clp gs col-1 s gr
% Polyline
n 624 464 m 624 444 l 514 444 l 514 464 l clp gs col-1 s gr
% Polyline
n 624 544 m 624 464 l 514 464 l 514 544 l clp gs col-1 s gr
% Polyline
n 624 684 m 624 544 l 514 544 l 514 684 l clp gs col-1 s gr
% Polyline
n 384 464 m 384 444 l 274 444 l 274 464 l clp gs col-1 s gr
% Polyline
n 359 444 m 359 419 l 274 419 l 274 444 l clp gs col-1 s gr
% Polyline
n 384 664 m 384 464 l 274 464 l 274 664 l clp gs col-1 s gr
% Interp Spline
n 219 799 m
219.84 787.54 219.84 782.54 219 779 curveto
217.75 773.72 212.79 763.10 209 759 curveto
205.29 754.99 199.04 751.24 184 744 curveto
gs col-1 s gr
n 190.34 749.27 m 184.00 744.00 l 192.08 745.67 l gs col-1 s gr
/Times-Roman findfont 14.00 scalefont setfont
589 339 m
gs 1 -1 sc ([8]) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
299 79 m
gs 1 -1 sc ([8]) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
119 659 m
gs 1 -1 sc (REFERS-TO) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
79 779 m
gs 1 -1 sc (non-key) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
249 459 m
gs 1 -1 sc (1) col-1 show gr
% Polyline
n 74 194 m 59 194 l 59 394 l 69 394 l gs col-1 s gr
/Times-Roman findfont 14.00 scalefont setfont
184 429 m
gs 1 -1 sc (0:N) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
189 859 m
gs 1 -1 sc (identified by the non-oid primary key in other contexts\).) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
49 399 m
gs 1 -1 sc (1) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
34 189 m
gs 1 -1 sc (13:N) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
264 229 m
gs 1 -1 sc (1) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
184 229 m
gs 1 -1 sc (0:N) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
184 209 m
gs 1 -1 sc (1) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
229 89 m
gs 1 -1 sc (0:N) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
209 379 m
gs 1 -1 sc (1) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
229 379 m
gs 1 -1 sc (1) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
249 379 m
gs 1 -1 sc (1) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
229 129 m
gs 1 -1 sc (0:N) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
229 49 m
gs 1 -1 sc (0:N) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
389 439 m
gs 1 -1 sc (1) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
409 439 m
gs 1 -1 sc (1) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
389 349 m
gs 1 -1 sc (0:N) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
504 264 m
gs 1 -1 sc (1) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
489 349 m
gs 1 -1 sc (0:N) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
489 329 m
gs 1 -1 sc (0:N) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
389 224 m
gs 1 -1 sc (1) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
629 369 m
gs 1 -1 sc (0:N) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
629 109 m
gs 1 -1 sc (1) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
429 669 m
gs 1 -1 sc (0:N) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
504 294 m
gs 1 -1 sc (1) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
369 89 m
gs 1 -1 sc (0:N) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
469 254 m
gs 1 -1 sc (1) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
389 254 m
gs 1 -1 sc (0:1) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
284 739 m
gs 1 -1 sc (optional) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
284 759 m
gs 1 -1 sc (mandatory) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
424 194 m
gs 1 -1 sc (0:1) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
709 49 m
gs 1 -1 sc (0:N) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
709 89 m
gs 1 -1 sc (0:N) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
629 444 m
gs 1 -1 sc (1) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
629 469 m
gs 1 -1 sc (1) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
629 629 m
gs 1 -1 sc (0:N) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
664 639 m
gs 1 -1 sc (0:N) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
649 294 m
gs 1 -1 sc (1) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
629 264 m
gs 1 -1 sc (1) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
669 299 m
gs 1 -1 sc (1) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
709 489 m
gs 1 -1 sc (0:N) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
689 429 m
gs 1 -1 sc (0:N) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
849 449 m
gs 1 -1 sc (0:N) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
849 69 m
gs 1 -1 sc (0:N) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
849 244 m
gs 1 -1 sc (1) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
849 269 m
gs 1 -1 sc (1) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
654 134 m
gs 1 -1 sc (0:N) col-1 show gr
/Times-Roman findfont 18.00 scalefont setfont
39 569 m
gs 1 -1 sc (KEY:) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
74 239 m
gs 1 -1 sc (atttypid) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
279 259 m
gs 1 -1 sc (typrelid) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
279 279 m
gs 1 -1 sc (typinput) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
279 299 m
gs 1 -1 sc (typoutput) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
279 319 m
gs 1 -1 sc (typreceive) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
279 339 m
gs 1 -1 sc (typsend) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
259 139 m
gs 1 -1 sc (indexrelid) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
739 119 m
gs 1 -1 sc (amopselect) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
739 139 m
gs 1 -1 sc (amopnpages) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
519 359 m
gs 1 -1 sc (prolang) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
739 479 m
gs 1 -1 sc (amproc) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
519 559 m
gs 1 -1 sc (oprcom) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
519 579 m
gs 1 -1 sc (oprnegate) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
519 599 m
gs 1 -1 sc (oprlsortop) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
519 619 m
gs 1 -1 sc (oprrsortop) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
519 639 m
gs 1 -1 sc (oprcode) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
519 659 m
gs 1 -1 sc (oprrest) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
519 679 m
gs 1 -1 sc (oprjoin) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
279 479 m
gs 1 -1 sc (amgettuple) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
279 499 m
gs 1 -1 sc (aminsert) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
279 519 m
gs 1 -1 sc (amdelete) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
279 539 m
gs 1 -1 sc (amgetattr) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
279 559 m
gs 1 -1 sc (ambeginscan) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
279 579 m
gs 1 -1 sc (amrescan) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
279 599 m
gs 1 -1 sc (amendscan) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
279 619 m
gs 1 -1 sc (ammarkpos) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
279 639 m
gs 1 -1 sc (amrestrpos) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
279 659 m
gs 1 -1 sc (ambuild) col-1 show gr
/Times-Bold findfont 14.00 scalefont setfont
79 599 m
gs 1 -1 sc (DEPENDENT) col-1 show gr
/Times-Bold findfont 14.00 scalefont setfont
79 699 m
gs 1 -1 sc (INDEPENDENT) col-1 show gr
/Times-Bold findfont 14.00 scalefont setfont
74 179 m
gs 1 -1 sc (pg_attribute) col-1 show gr
/Times-Bold findfont 14.00 scalefont setfont
74 379 m
gs 1 -1 sc (pg_class) col-1 show gr
/Times-Bold findfont 14.00 scalefont setfont
259 39 m
gs 1 -1 sc (pg_index) col-1 show gr
/Times-Bold findfont 14.00 scalefont setfont
279 219 m
gs 1 -1 sc (pg_type) col-1 show gr
/Times-Bold findfont 14.00 scalefont setfont
279 439 m
gs 1 -1 sc (pg_am) col-1 show gr
/Times-Bold findfont 14.00 scalefont setfont
519 259 m
gs 1 -1 sc (pg_proc) col-1 show gr
/Times-Bold findfont 14.00 scalefont setfont
519 99 m
gs 1 -1 sc (pg_language) col-1 show gr
/Times-Bold findfont 14.00 scalefont setfont
739 39 m
gs 1 -1 sc (pg_amop) col-1 show gr
/Times-Bold findfont 14.00 scalefont setfont
739 239 m
gs 1 -1 sc (pg_opclass) col-1 show gr
/Times-Bold findfont 14.00 scalefont setfont
739 399 m
gs 1 -1 sc (pg_amproc) col-1 show gr
/Times-Bold findfont 14.00 scalefont setfont
519 439 m
gs 1 -1 sc (pg_operator) col-1 show gr
/Times-BoldItalic findfont 14.00 scalefont setfont
74 199 m
gs 1 -1 sc (attrelid) col-1 show gr
/Times-BoldItalic findfont 14.00 scalefont setfont
74 219 m
gs 1 -1 sc (attnum) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
74 419 m
gs 1 -1 sc (relam) col-1 show gr
/Times-BoldItalic findfont 14.00 scalefont setfont
74 399 m
gs 1 -1 sc (oid) col-1 show gr
/Times-BoldItalic findfont 14.00 scalefont setfont
259 59 m
gs 1 -1 sc (indrelid) col-1 show gr
/Times-BoldItalic findfont 14.00 scalefont setfont
259 79 m
gs 1 -1 sc (indkey) col-1 show gr
/Times-BoldItalic findfont 14.00 scalefont setfont
259 99 m
gs 1 -1 sc (indproc) col-1 show gr
/Times-BoldItalic findfont 14.00 scalefont setfont
259 119 m
gs 1 -1 sc (indpred) col-1 show gr
/Times-BoldItalic findfont 14.00 scalefont setfont
279 239 m
gs 1 -1 sc (oid) col-1 show gr
/Times-BoldItalic findfont 14.00 scalefont setfont
279 459 m
gs 1 -1 sc (oid) col-1 show gr
/Times-BoldItalic findfont 14.00 scalefont setfont
519 279 m
gs 1 -1 sc (oid) col-1 show gr
/Times-BoldItalic findfont 14.00 scalefont setfont
519 119 m
gs 1 -1 sc (oid) col-1 show gr
/Times-BoldItalic findfont 14.00 scalefont setfont
739 59 m
gs 1 -1 sc (amopid) col-1 show gr
/Times-BoldItalic findfont 14.00 scalefont setfont
739 79 m
gs 1 -1 sc (amopclaid) col-1 show gr
/Times-BoldItalic findfont 14.00 scalefont setfont
739 99 m
gs 1 -1 sc (amopopr) col-1 show gr
/Times-BoldItalic findfont 14.00 scalefont setfont
739 259 m
gs 1 -1 sc (oid) col-1 show gr
/Times-BoldItalic findfont 14.00 scalefont setfont
739 419 m
gs 1 -1 sc (amid) col-1 show gr
/Times-BoldItalic findfont 14.00 scalefont setfont
739 439 m
gs 1 -1 sc (amopclaid) col-1 show gr
/Times-BoldItalic findfont 14.00 scalefont setfont
739 459 m
gs 1 -1 sc (amprocnum) col-1 show gr
/Times-BoldItalic findfont 14.00 scalefont setfont
519 459 m
gs 1 -1 sc (oid) col-1 show gr
/Times-BoldItalic findfont 14.00 scalefont setfont
79 719 m
gs 1 -1 sc (primary key) col-1 show gr
/Times-BoldItalic findfont 14.00 scalefont setfont
79 619 m
gs 1 -1 sc (foreign key) col-1 show gr
/Times-Italic findfont 14.00 scalefont setfont
79 739 m
gs 1 -1 sc (non-oid primary) col-1 show gr
/Times-Italic findfont 14.00 scalefont setfont
84 759 m
gs 1 -1 sc (key \(if any\)) col-1 show gr
/Times-Italic findfont 14.00 scalefont setfont
519 479 m
gs 1 -1 sc (oprname) col-1 show gr
/Times-Italic findfont 14.00 scalefont setfont
519 499 m
gs 1 -1 sc (oprleft) col-1 show gr
/Times-Italic findfont 14.00 scalefont setfont
519 519 m
gs 1 -1 sc (oprright) col-1 show gr
/Times-Italic findfont 14.00 scalefont setfont
519 539 m
gs 1 -1 sc (oprresult) col-1 show gr
/Times-Italic findfont 14.00 scalefont setfont
519 299 m
gs 1 -1 sc (proname) col-1 show gr
/Times-Italic findfont 14.00 scalefont setfont
519 319 m
gs 1 -1 sc (prorettype) col-1 show gr
/Times-Italic findfont 14.00 scalefont setfont
519 339 m
gs 1 -1 sc (proargtypes) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
189 819 m
gs 1 -1 sc (indicates these key values are alternate primary keys) col-1 show gr
/Times-Roman findfont 14.00 scalefont setfont
189 839 m
gs 1 -1 sc (\(i.e., this class is generally identified by oid but may be) col-1 show gr
$F2psEnd
restore
%%EndDocument
end PEND/F0 11/Times-Bold@0 SF(Figur)177.701 595.278 Q 2.75(e3)-.198 G
/F1 11/Times-Roman@0 SF 5.5(.T)-2.75 G(he major)-5.5 E/F2 10
/Times-Roman@0 SF(POSTGRES)2.75 E F1(system catalogs.)2.75 E 77.5
608.478 72 608.478 DL 80.5 608.478 75 608.478 DL 86 608.478 80.5 608.478
DL 91.5 608.478 86 608.478 DL 97 608.478 91.5 608.478 DL 102.5 608.478
97 608.478 DL 108 608.478 102.5 608.478 DL 113.5 608.478 108 608.478 DL
119 608.478 113.5 608.478 DL 124.5 608.478 119 608.478 DL 130 608.478
124.5 608.478 DL 135.5 608.478 130 608.478 DL 141 608.478 135.5 608.478
DL 146.5 608.478 141 608.478 DL 152 608.478 146.5 608.478 DL 157.5
608.478 152 608.478 DL 163 608.478 157.5 608.478 DL 168.5 608.478 163
608.478 DL 174 608.478 168.5 608.478 DL 179.5 608.478 174 608.478 DL 185
608.478 179.5 608.478 DL 190.5 608.478 185 608.478 DL 196 608.478 190.5
608.478 DL 201.5 608.478 196 608.478 DL 207 608.478 201.5 608.478 DL
212.5 608.478 207 608.478 DL 218 608.478 212.5 608.478 DL 223.5 608.478
218 608.478 DL 229 608.478 223.5 608.478 DL 234.5 608.478 229 608.478 DL
240 608.478 234.5 608.478 DL 245.5 608.478 240 608.478 DL 251 608.478
245.5 608.478 DL 256.5 608.478 251 608.478 DL 262 608.478 256.5 608.478
DL 267.5 608.478 262 608.478 DL 273 608.478 267.5 608.478 DL 278.5
608.478 273 608.478 DL 284 608.478 278.5 608.478 DL 289.5 608.478 284
608.478 DL 295 608.478 289.5 608.478 DL 300.5 608.478 295 608.478 DL 306
608.478 300.5 608.478 DL 311.5 608.478 306 608.478 DL 317 608.478 311.5
608.478 DL 322.5 608.478 317 608.478 DL 328 608.478 322.5 608.478 DL
333.5 608.478 328 608.478 DL 339 608.478 333.5 608.478 DL 344.5 608.478
339 608.478 DL 350 608.478 344.5 608.478 DL 355.5 608.478 350 608.478 DL
361 608.478 355.5 608.478 DL 366.5 608.478 361 608.478 DL 372 608.478
366.5 608.478 DL 377.5 608.478 372 608.478 DL 383 608.478 377.5 608.478
DL 388.5 608.478 383 608.478 DL 394 608.478 388.5 608.478 DL 399.5
608.478 394 608.478 DL 405 608.478 399.5 608.478 DL 410.5 608.478 405
608.478 DL 416 608.478 410.5 608.478 DL 421.5 608.478 416 608.478 DL 427
608.478 421.5 608.478 DL 432.5 608.478 427 608.478 DL 438 608.478 432.5
608.478 DL 443.5 608.478 438 608.478 DL 449 608.478 443.5 608.478 DL
454.5 608.478 449 608.478 DL 460 608.478 454.5 608.478 DL 465.5 608.478
460 608.478 DL 471 608.478 465.5 608.478 DL 476.5 608.478 471 608.478 DL
482 608.478 476.5 608.478 DL 487.5 608.478 482 608.478 DL 493 608.478
487.5 608.478 DL 498.5 608.478 493 608.478 DL 504 608.478 498.5 608.478
DL 13.75(\(3\) T)113.5 649.078 R .962(ypes and procedures)-.88 F/F3 8
/Times-Roman@0 SF(6)-4.4 I F1 .961(are central to the schema.)3.712 4.4
N .961(Nearly e)6.461 F -.165(ve)-.275 G .961(ry catalog contains).165 F
.739(some reference to instances in one or both of these classes.)
142.826 662.278 R -.165(Fo)6.239 G 3.489(re).165 G(xample,)-3.654 E F2
(POST)3.489 E(-)-.92 E(GRES)142.826 675.478 Q F1 .182(frequently uses t\
ype signatures \(e.g., of functions and operators\) to identify)2.933 F
.32 LW 76 685.078 72 685.078 DL 80 685.078 76 685.078 DL 84 685.078 80
685.078 DL 88 685.078 84 685.078 DL 92 685.078 88 685.078 DL 96 685.078
92 685.078 DL 100 685.078 96 685.078 DL 104 685.078 100 685.078 DL 108
685.078 104 685.078 DL 112 685.078 108 685.078 DL 116 685.078 112
685.078 DL 120 685.078 116 685.078 DL 124 685.078 120 685.078 DL 128
685.078 124 685.078 DL 132 685.078 128 685.078 DL 136 685.078 132
685.078 DL 140 685.078 136 685.078 DL 144 685.078 140 685.078 DL 148
685.078 144 685.078 DL 152 685.078 148 685.078 DL 156 685.078 152
685.078 DL 160 685.078 156 685.078 DL 164 685.078 160 685.078 DL 168
685.078 164 685.078 DL 172 685.078 168 685.078 DL 176 685.078 172
685.078 DL 180 685.078 176 685.078 DL 184 685.078 180 685.078 DL 188
685.078 184 685.078 DL 192 685.078 188 685.078 DL 196 685.078 192
685.078 DL 200 685.078 196 685.078 DL 204 685.078 200 685.078 DL 208
685.078 204 685.078 DL 212 685.078 208 685.078 DL 216 685.078 212
685.078 DL/F4 5/Times-Roman@0 SF(6)93.6 695.478 Q F3 1.28 -.64(We u)2
3.2 P(se the w).64 E(ords)-.08 E/F5 8/Times-Italic@0 SF(pr)2 E(ocedur)
-.36 E(e)-.296 E F3(and)2 E F5(function)2 E F3(more or less interchang)2
E(ably)-.04 E(.)-.52 E F0(23)282.5 756 Q EP
%%Trailer
end
%%EOF
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment