From 97b1bb228135dee3770ea0dd1db39d85e239030c Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Wed, 29 Oct 1997 23:48:18 +0000
Subject: [PATCH] New backend_dir html source.

---
 src/tools/backend/README                      |   3 +
 .../backend_dirs.html}                        | 196 +++++++++++++-----
 src/tools/{ => backend}/flow.fig              |  94 ++++++---
 src/tools/backend/flow.gif                    | Bin 0 -> 674098 bytes
 src/tools/backend/index.html                  |  42 ++++
 src/tools/flow.gif                            | Bin 8444 -> 0 bytes
 6 files changed, 253 insertions(+), 82 deletions(-)
 create mode 100644 src/tools/backend/README
 rename src/tools/{BACKEND_DIRS.html => backend/backend_dirs.html} (56%)
 rename src/tools/{ => backend}/flow.fig (65%)
 create mode 100644 src/tools/backend/flow.gif
 create mode 100644 src/tools/backend/index.html
 delete mode 100644 src/tools/flow.gif

diff --git a/src/tools/backend/README b/src/tools/backend/README
new file mode 100644
index 00000000000..601c66cc4bc
--- /dev/null
+++ b/src/tools/backend/README
@@ -0,0 +1,3 @@
+Just point your browser at the index.html file, and click on the 
+flowchart to see the description and source code.
+
diff --git a/src/tools/BACKEND_DIRS.html b/src/tools/backend/backend_dirs.html
similarity index 56%
rename from src/tools/BACKEND_DIRS.html
rename to src/tools/backend/backend_dirs.html
index 0d9a1bc7d9d..3ef940f0ca1 100644
--- a/src/tools/BACKEND_DIRS.html
+++ b/src/tools/backend/backend_dirs.html
@@ -10,7 +10,9 @@ PostgreSQL Backend Directories
 by Bruce Momjian
 </H2 ALIGN=CENTER>
 <H2>
-<A HREF="../backend//bootstrap">bootstrap</A> - creates initial template database via initdb
+<A NAME="bootstrap">
+<A HREF="../../backend/bootstrap">bootstrap</A></A>
+- creates initial template database via initdb
 </H2>
 <P>
 Because PostgreSQL requires access to system tables for almost every
@@ -22,14 +24,18 @@ This code <I>jams</I> the data directly into tables using a
 special syntax used only by the bootstrap procedure.
 </P>
 <H2>
-<A HREF="../backend//main">main</A> - passes control to postmaster or postgres
+<A NAME="main">
+<A HREF="../../backend/main">main</A></A>
+- passes control to postmaster or postgres
 </H2>
 <P>
 This checks the process name(argv[0]) and various flags, and passes
 control to the postmaster or postgres backend code.
 </P>
 <H2>
-<A HREF="../backend//postmaster">postmaster</A> - controls postgres server startup/termination
+<A NAME="postmaster">
+<A HREF="../../backend/postmaster">postmaster</A></A>
+- controls postgres server startup/termination
 </H2>
 <P>
 This creates shared memory, and then goes into a loop waiting for
@@ -38,13 +44,17 @@ When a connection request arrives, a <I>postgres</I> backend is started,
 and the connection is passed to it.
 </P>
 <H2>
-<A HREF="../backend//libpq">libpq</A> - backend libpq library routines
+<A NAME="libpq">
+<A HREF="../../backend/libpq">libpq</A></A>
+- backend libpq library routines
 </H2>
 <P>
 This handles communication to the client processes.
 </P>
 <H2>
-<A HREF="../backend//tcop">tcop</A> - traffic cop, dispatches request to proper module
+<A NAME="tcop">
+<A HREF="../../backend/tcop">tcop</A></A>
+- traffic cop, dispatches request to proper module
 </H2>
 <P>
 This contains the <I>postgres</I> backend main handler, as well as the
@@ -52,7 +62,9 @@ code that makes calls to the parser, optimizer, executor, and
 <I>/commands</I> functions.
 </P>
 <H2>
-<A HREF="../backend//parser">parser</A> - converts SQL query to query tree
+<A NAME="parser">
+<A HREF="../../backend/parser">parser</A></A>
+- converts SQL query to query tree
 </H2>
 <P>
 This converts SQL queries coming from <I>libpq</I> into command-specific
@@ -67,14 +79,18 @@ The command-specific structures are then broken apart, checked, and passed to
 <I>Nodes</I> to be handled by the optimizer and executor.
 </P>
 <H2>
-<A HREF="../backend//optimizer">optimizer</A> - creates path and plan
+<A NAME="optimizer">
+<A HREF="../../backend/optimizer">optimizer</A></A>
+- creates path and plan
 </H2>
 <P>
 This uses the parser output to generate an optimal plan for the
 executor.
 </P>
 <H4>
-<A HREF="../backend//optimizer/path">optimizer/path</A> - creates path from parser output
+<A NAME="optimizer/path">
+<A HREF="../../backend/optimizer/path">optimizer/path</A></A>
+- creates path from parser output
 </H4>
 <P>
 This takes the parser query output, and generates all possible methods of
@@ -84,7 +100,9 @@ and optimizer table statistics to evaluate each possible execution
 method, and assigns a cost to each.
 </P>
 <H4>
-<A HREF="../backend//optimizer/geqo">optimizer/geqo</A> - genetic query optimizer
+<A NAME="optimizer/geqo">
+<A HREF="../../backend/optimizer/geqo">optimizer/geqo</A></A>
+- genetic query optimizer
 </H4>
 <P>
 <I>optimizer/path</I> evaluates all possible ways to join the requested tables.
@@ -97,26 +115,34 @@ tables, it is faster.
 There is an option to control when this feature is used.
 </P>
 <H4>
-<A HREF="../backend//optimizer/plan">optimizer/plan</A> - optimizes path output
+<A NAME="optimizer/plan">
+<A HREF="../../backend/optimizer/plan">optimizer/plan</A></A>
+- optimizes path output
 </H4>
 <P>
 This takes the <I>optimizer/path</I> output, chooses the path with the
 least cost, and creates a plan for the executor.
 </P>
 <H4>
-<A HREF="../backend//optimizer/prep">optimizer/prep</A> - handle special plan cases
+<A NAME="optimizer/prep">
+<A HREF="../../backend/optimizer/prep">optimizer/prep</A></A>
+- handle special plan cases
 </H4>
 <P>
 This does special plan processing.
 </P>
 <H4>
-<A HREF="../backend//optimizer/util">optimizer/util</A> - optimizer support routines
+<A NAME="optimizer/util">
+<A HREF="../../backend/optimizer/util">optimizer/util</A></A>
+- optimizer support routines
 </H4>
 <P>
 This contains support routines used by other parts of the optimizer.
 </P>
 <H2>
-<A HREF="../backend//executor">executor</A> - executes complex node plans from optimizer
+<A NAME="executor">
+<A HREF="../../backend/executor">executor</A></A>
+- executes complex node plans from optimizer
 </H2>
 <P>
 This handles <I>select, insert, update,</I> and <I>delete</I> statements.
@@ -125,7 +151,9 @@ heap scans, index scans, sorting, joining tables, grouping, aggregates,
 and uniqueness.
 </P>
 <H2>
-<A HREF="../backend//commands">commands</A> - commands that do not require the executor
+<A NAME="commands">
+<A HREF="../../backend/commands">commands</A></A>
+- commands that do not require the executor
 </H2>
 <P>
 These process SQL commands that do not require complex handling.
@@ -136,7 +164,9 @@ Most of the routines do some processing, then call lower-level functions
 in the catalog directory to do the actual work.
 </P>
 <H2>
-<A HREF="../backend//catalog">catalog</A> - system catalog manipulation
+<A NAME="catalog">
+<A HREF="../../backend/catalog">catalog</A></A>
+- system catalog manipulation
 </H2>
 <P>
 This contains functions that manipulate the system tables or catalogs.
@@ -146,56 +176,92 @@ These are low-level routines, and are usually called by upper routines
 that pre-format user requests into a predefined format.
 </P>
 <H2>
-<A HREF="../backend//storage">storage</A> - manages various storage systems
+<A NAME="storage">
+<A HREF="../../backend/storage">storage</A></A>
+- manages various storage systems
 </H2>
 <P>
 These allow uniform resource access by the backend.
 <BR>
 <BR>
-<A HREF="../backend//storage/buffer">storage/buffer</A> - shared buffer pool manager
+<A NAME="storage/buffer">
+<A HREF="../../backend/storage/buffer">storage/buffer</A></A>
+- shared buffer pool manager
 <BR>
-<A HREF="../backend//storage/file">storage/file</A> - file manager
+<A NAME="storage/file">
+<A HREF="../../backend/storage/file">storage/file</A></A>
+- file manager
 <BR>
-<A HREF="../backend//storage/ipc">storage/ipc</A> - semaphores and shared memory
+<A NAME="storage/ipc">
+<A HREF="../../backend/storage/ipc">storage/ipc</A></A>
+- semaphores and shared memory
 <BR>
-<A HREF="../backend//storage/large_object">storage/large_object</A> - large objects
+<A NAME="storage/large_object">
+<A HREF="../../backend/storage/large_object">storage/large_object</A></A>
+- large objects
 <BR>
-<A HREF="../backend//storage/lmgr">storage/lmgr</A> - lock manager
+<A NAME="storage/lmgr">
+<A HREF="../../backend/storage/lmgr">storage/lmgr</A></A>
+- lock manager
 <BR>
-<A HREF="../backend//storage/page">storage/page</A> - page manager
+<A NAME="storage/page">
+<A HREF="../../backend/storage/page">storage/page</A></A>
+- page manager
 <BR>
-<A HREF="../backend//storage/smgr">storage/smgr</A> - storage/disk manager
+<A NAME="storage/smgr">
+<A HREF="../../backend/storage/smgr">storage/smgr</A></A>
+- storage/disk manager
 <BR>
 <BR>
 </P>
 <H2>
-<A HREF="../backend//access">access</A> - various data access methods
+<A NAME="access">
+<A HREF="../../backend/access">access</A></A>
+- various data access methods
 </H2>
 <P>
 These control the way data is accessed in heap, indexes, and
 transactions.
 <BR>
 <BR>
-<A HREF="../backend//access/common">access/common</A> - common access routines
+<A NAME="access/common">
+<A HREF="../../backend/access/common">access/common</A></A>
+- common access routines
 <BR>
-<A HREF="../backend//access/gist">access/gist</A> - easy-to-define access method system
+<A NAME="access/gist">
+<A HREF="../../backend/access/gist">access/gist</A></A>
+- easy-to-define access method system
 <BR>
-<A HREF="../backend//access/hash">access/hash</A> - hash
+<A NAME="access/hash">
+<A HREF="../../backend/access/hash">access/hash</A></A>
+- hash
 <BR>
-<A HREF="../backend//access/heap">access/heap</A> - heap is use to store data rows
+<A NAME="access/heap">
+<A HREF="../../backend/access/heap">access/heap</A></A>
+- heap is use to store data rows
 <BR>
-<A HREF="../backend//access/index">access/index</A> - used by all index types
+<A NAME="access/index">
+<A HREF="../../backend/access/index">access/index</A></A>
+- used by all index types
 <BR>
-<A HREF="../backend//access/nbtree">access/nbtree</A> - Lehman and Yao's btree management algorithm 
+<A NAME="access/nbtree">
+<A HREF="../../backend/access/nbtree">access/nbtree</A></A>
+- Lehman and Yao's btree management algorithm 
 <BR>
-<A HREF="../backend//access/rtree">access/rtree</A> - used for indexing of 2-dimensional data
+<A NAME="access/rtree">
+<A HREF="../../backend/access/rtree">access/rtree</A></A>
+- used for indexing of 2-dimensional data
 <BR>
-<A HREF="../backend//access/transam">access/transam</A> - transaction manager (BEGIN/ABORT/COMMIT)
+<A NAME="access/transam">
+<A HREF="../../backend/access/transam">access/transam</A></A>
+- transaction manager (BEGIN/ABORT/COMMIT)
 <BR>
 <BR>
 </P>
 <H2>
-<A HREF="../backend//nodes">nodes</A> - creation/manipulation of nodes and lists
+<A NAME="nodes">
+<A HREF="../../backend/nodes">nodes</A></A>
+- creation/manipulation of nodes and lists
 </H2>
 <P>
 PostgreSQL stores information about SQL queries in structures called
@@ -212,16 +278,22 @@ These are used extensively in the parser, optimizer, and executor to
 store requests and data.
 </P>
 <H2>
-<A HREF="../backend//utils">utils</A> - support routines
+<A NAME="utils">
+<A HREF="../../backend/utils">utils</A></A>
+- support routines
 </H2>
 <H4>
-<A HREF="../backend//utils/adt">utils/adt</A> - built-in data type routines
+<A NAME="utils/adt">
+<A HREF="../../backend/utils/adt">utils/adt</A></A>
+- built-in data type routines
 </H4>
 <P>
 This contains all the PostgreSQL builtin data types.
 </P>
 <H4>
-<A HREF="../backend//utils/cache">utils/cache</A> - system/relation/function cache routines
+<A NAME="utils/cache">
+<A HREF="../../backend/utils/cache">utils/cache</A></A>
+- system/relation/function cache routines
 </H4>
 <P>
 PostgreSQL supports arbitrary data types, so no data types are hard-coded
@@ -236,20 +308,26 @@ This last cache maintains information about all recently-accessed
 tables, not just system ones.
 </P>
 <H4>
-<A HREF="../backend//utils/error">utils/error</A> - error reporting routines
+<A NAME="utils/error">
+<A HREF="../../backend/utils/error">utils/error</A></A>
+- error reporting routines
 </H4>
 <P>
 Reports backend errors to the front end.
 </P>
 <H4>
-<A HREF="../backend//utils/fmgr">utils/fmgr</A> - function manager
+<A NAME="utils/fmgr">
+<A HREF="../../backend/utils/fmgr">utils/fmgr</A></A>
+- function manager
 </H4>
 <P>
 This handles the calling of dynamically-loaded functions, and the calling
 of functions defined in the system tables.
 </P>
 <H4>
-<A HREF="../backend//utils/hash">utils/hash</A> - hash routines for internal algorithms
+<A NAME="utils/hash">
+<A HREF="../../backend/utils/hash">utils/hash</A></A>
+- hash routines for internal algorithms
 </H4>
 <P>
 These hash routines are used by the cache and memory-manager routines to
@@ -257,13 +335,19 @@ do quick lookups of dynamic data storage structures maintained by the
 backend.
 </P>
 <H4>
-<A HREF="../backend//utils/init">utils/init</A> - various initialization stuff
+<A NAME="utils/init">
+<A HREF="../../backend/utils/init">utils/init</A></A>
+- various initialization stuff
 </H4>
 <H4>
-<A HREF="../backend//utils/misc">utils/misc</A> - miscellaneous stuff
+<A NAME="utils/misc">
+<A HREF="../../backend/utils/misc">utils/misc</A></A>
+- miscellaneous stuff
 </H4>
 <H4>
-<A HREF="../backend//utils/mmgr">utils/mmgr</A> - memory manager(process-local memory)
+<A NAME="utils/mmgr">
+<A HREF="../../backend/utils/mmgr">utils/mmgr</A></A>
+- memory manager(process-local memory)
 </H4>
 <P>
 When PostgreSQL allocates memory, it does so in an explicit context.
@@ -273,14 +357,18 @@ By doing this, the backend can easily free memory once a statement or
 transaction completes.
 </P>
 <H4>
-<A HREF="../backend//utils/sort">utils/sort</A> - sort routines for internal algorithms
+<A NAME="utils/sort">
+<A HREF="../../backend/utils/sort">utils/sort</A></A>
+- sort routines for internal algorithms
 </H4>
 <P>
 When statement output must be sorted as part of a backend operation,
 this code sorts the tuples, either in memory or using disk files.
 </P>
 <H4>
-<A HREF="../backend//utils/time">utils/time</A> - transaction time qualification routines
+<A NAME="utils/time">
+<A HREF="../../backend/utils/time">utils/time</A></A>
+- transaction time qualification routines
 </H4>
 <P>
 These routines do checking of tuple internal columns to determine if the
@@ -288,31 +376,41 @@ current row is still valid, or is part of a non-committed transaction or
 superseded by a new row.
 </P>
 <H2>
-<A HREF="../backend//include">include</A> - include files
+<A NAME="include">
+<A HREF="../../backend/include">include</A></A>
+- include files
 </H2>
 <P>
 There are include directories for each subsystem.
 </P>
 <H2>
-<A HREF="../backend//lib">lib</A> - support library
+<A NAME="lib">
+<A HREF="../../backend/lib">lib</A></A>
+- support library
 </H2>
 <P>
 This houses several generic routines.
 </P>
 <H2>
-<A HREF="../backend//regex">regex</A> - regular expression library
+<A NAME="regex">
+<A HREF="../../backend/regex">regex</A></A>
+- regular expression library
 </H2>
 <P>
 This is used for regular expression handling in the backend, i.e. '~'.
 </P>
 <H2>
-<A HREF="../backend//rewrite">rewrite</A> - rules system
+<A NAME="rewrite">
+<A HREF="../../backend/rewrite">rewrite</A></A>
+- rules system
 </H2>
 <P>
 This does processing for the rules system.
 </P>
 <H2>
-<A HREF="../backend//tioga">tioga</A> - unused (array handling?)
+<A NAME="tioga">
+<A HREF="../../backend/tioga">tioga</A></A>
+- unused (array handling?)
 </H2>
 <HR>
 <ADDRESS>
diff --git a/src/tools/flow.fig b/src/tools/backend/flow.fig
similarity index 65%
rename from src/tools/flow.fig
rename to src/tools/backend/flow.fig
index f609590fe74..265fb28e089 100644
--- a/src/tools/flow.fig
+++ b/src/tools/backend/flow.fig
@@ -20,21 +20,8 @@ Inches
 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
 	0 0 1.00 60.00 120.00
 	 5700 2400 9600 3000
-2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
-	 2700 5100 2700 4500 300 4500 300 5100 2700 5100
-2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
-	0 0 1.00 60.00 120.00
-	 5700 3600 1500 4500
-2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
-	 2700 6300 2700 5700 300 5700 300 6300 2700 6300
-2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
-	0 0 1.00 60.00 120.00
-	 1500 5100 1500 5700
 2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
 	 6900 5100 6900 4500 4500 4500 4500 5100 6900 5100
-2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 6
-	0 0 1.00 60.00 120.00
-	 1500 6300 1500 6600 3900 6600 3900 4200 5700 4200 5700 4500
 2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
 	 6900 6300 6900 5700 4500 5700 4500 6300 6900 6300
 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
@@ -50,58 +37,91 @@ Inches
 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
 	0 0 1.00 60.00 120.00
 	 5700 7500 5700 8100
-2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
-	 6900 9600 6900 9000 4500 9000 4500 9600 6900 9600
 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
 	0 0 1.00 60.00 120.00
-	 5700 8700 5700 9000
+	 5700 8700 5700 9300
 2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
 	 10800 6300 10800 5700 8400 5700 8400 6300 10800 6300
 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
 	0 0 1.00 60.00 120.00
 	 6900 6000 8400 6000
-2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
-	 2700 7500 2700 6900 300 6900 300 7500 2700 7500
-2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
-	 2700 8400 2700 7800 300 7800 300 8400 2700 8400
 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 3
 	0 0 1.00 60.00 120.00
-	 4500 9300 3900 9300 3900 6600
+	 4500 9600 3900 9600 3900 6600
 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 4
 	0 0 1.00 60.00 120.00
 	 10800 6000 11400 6000 11400 4200 5700 4200
-2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
-	 2700 9300 2700 8700 300 8700 300 9300 2700 9300
 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 1
 	 2700 8100
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 1
+	 8475 2175
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 1
+	 8475 2175
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 60.00 120.00
+	 3900 6600 3900 4200
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 60.00 120.00
+	 3900 4200 5700 4200
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 60.00 120.00
+	 5700 4200 5700 4500
+2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
+	 2700 9600 2700 9000 300 9000 300 9600 2700 9600
 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 1 2
 	0 0 1.00 60.00 120.00
 	0 0 1.00 60.00 120.00
-	 2700 7200 3300 7200
+	 2700 9300 3300 9300
+2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
+	 2700 8700 2700 8100 300 8100 300 8700 2700 8700
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 1 2
+	0 0 1.00 60.00 120.00
+	0 0 1.00 60.00 120.00
+	 2700 8400 3300 8400
+2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
+	 2700 7800 2700 7200 300 7200 300 7800 2700 7800
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 1 2
+	0 0 1.00 60.00 120.00
+	0 0 1.00 60.00 120.00
+	 3300 7500 2700 7500
+2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
+	 2700 6900 2700 6300 300 6300 300 6900 2700 6900
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 1 2
+	0 0 1.00 60.00 120.00
+	0 0 1.00 60.00 120.00
+	 3300 6600 2700 6600
+2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
+	 2700 6000 2700 5400 300 5400 300 6000 2700 6000
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 1 2
+	0 0 1.00 60.00 120.00
+	0 0 1.00 60.00 120.00
+	 2700 5700 3300 5700
+2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
+	 6900 9900 6900 9300 4500 9300 4500 9900 6900 9900
+2 4 0 1 -1 7 0 0 -1 0.000 0 0 8 0 0 5
+	 10800 1200 10800 600 8400 600 8400 1200 10800 1200
+2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
+	 10800 2400 10800 1800 8400 1800 8400 2400 10800 2400
 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 1 2
 	0 0 1.00 60.00 120.00
 	0 0 1.00 60.00 120.00
-	 2700 8100 3300 8100
+	 8400 2100 7725 2100
 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 1 2
 	0 0 1.00 60.00 120.00
 	0 0 1.00 60.00 120.00
-	 2700 9000 3300 9000
+	 8325 2175 7725 2550
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 60.00 120.00
+	 5700 3600 5700 4200
 4 1 -1 0 0 28 18 0.0000 4 195 630 5670 990 Main\001
 4 1 -1 0 0 28 18 0.0000 4 195 1470 5685 2190 Postmaster\001
 4 1 -1 0 0 28 18 0.0000 4 240 1110 9585 3375 Postgres\001
 4 1 -1 0 0 28 18 0.0000 4 240 1110 5700 3390 Postgres\001
-4 1 -1 0 0 28 18 0.0000 4 195 1710 1500 4905 Initialization\001
-4 1 -1 0 0 28 18 0.0000 4 195 1215 1470 5940 Attach to\001
-4 1 -1 0 0 28 18 0.0000 4 195 2340 1485 6270 Shared Resources\001
 4 1 -1 0 0 28 18 0.0000 4 240 915 9600 5970 Simple\001
 4 1 -1 0 0 28 18 0.0000 4 195 1980 5685 7455 Generate Paths\001
 4 1 -1 0 0 28 18 0.0000 4 195 1275 5715 7170 Rewrite &\001
 4 1 -1 0 0 28 18 0.0000 4 255 1500 5715 6090 Traffic Cop\001
 4 1 -1 0 0 28 18 0.0000 4 195 825 5685 4875 Parser\001
-4 1 -1 0 0 28 18 0.0000 4 195 1140 5685 9420 Executor\001
-4 1 -1 0 0 28 18 0.0000 4 195 2100 1485 7305 Access Methods\001
-4 1 -1 0 0 28 18 0.0000 4 195 1050 1485 9090 Utilities\001
-4 1 -1 0 0 28 18 0.0000 4 240 2325 1515 8190 Storage Managers\001
 4 1 -1 0 0 28 18 0.0000 4 195 1485 9600 6255 Commands\001
 4 1 -1 0 0 28 18 0.0000 4 195 1830 5715 8670 Generate Plan\001
 4 1 -1 0 0 28 18 0.0000 4 195 1890 5700 8400 Choose Path &\001
@@ -110,3 +130,11 @@ Inches
 4 0 -1 0 0 0 24 0.0000 4 330 1290 600 1470 Program\001
 4 0 -1 0 0 0 24 0.0000 4 255 735 600 1890 Flow\001
 4 0 -1 0 0 0 24 0.0000 4 330 1800 600 1050 PostgreSQL\001
+4 0 -1 0 0 0 18 0.0000 4 255 1095 9000 975 Bootstrap\001
+4 1 -1 0 0 28 18 0.0000 4 240 2325 1515 9390 Storage Managers\001
+4 0 -1 0 0 0 18 0.0000 4 225 1425 750 8475 Nodes / Lists\001
+4 1 -1 0 0 28 18 0.0000 4 195 1050 1485 7590 Utilities\001
+4 1 -1 0 0 28 18 0.0000 4 195 2100 1485 5805 Access Methods\001
+4 1 -1 0 0 28 18 0.0000 4 195 1140 5685 9720 Executor\001
+4 0 -1 0 0 0 18 0.0000 4 255 645 9225 2175 Libpq\001
+4 0 -1 0 0 0 18 0.0000 4 255 840 1050 6675 Catalog\001
diff --git a/src/tools/backend/flow.gif b/src/tools/backend/flow.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1076af06f425fe342007c70de4a5814e19fd44da
GIT binary patch
literal 674098
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

literal 0
HcmV?d00001

diff --git a/src/tools/backend/index.html b/src/tools/backend/index.html
new file mode 100644
index 00000000000..6b5362dff8c
--- /dev/null
+++ b/src/tools/backend/index.html
@@ -0,0 +1,42 @@
+<HTML>
+<HEAD>
+<TITLE>PostgreSQL Backend Flowchart</TITLE>
+</HEAD>
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#FF0000" VLINK="#A00000" ALINK="#0000FF">
+<H1 ALIGN=CENTER>
+PostgreSQL Backend Flowchart
+</H1>
+<H2 ALIGN=CENTER>
+by Bruce Momjian
+</H2 ALIGN=CENTER>
+<CENTER>
+Click on an item to see more detail.
+<BR>
+<BR>
+<IMG src="flow.gif" usemap="#flowmap">
+</CENTER>
+<MAP name="flowmap">
+<AREA COORDS="290,10,450,50" HREF="backend_dirs.html#main">
+<AREA COORDS="550,10,710,50" HREF="backend_dirs.html#bootstrap">
+<AREA COORDS="290,90,450,130," HREF="backend_dirs.html#postmaster">
+<AREA COORDS="550,90,710,130," HREF="backend_dirs.html#libpq">
+<AREA COORDS="290,170,450,210" HREF="backend_dirs.html#tcop">
+<AREA COORDS="550,170,710,210" HREF="backend_dirs.html#tcop">
+<AREA COORDS="290,270,450,310" HREF="backend_dirs.html#parser">
+<AREA COORDS="290,350,450,390" HREF="backend_dirs.html#tcop">
+<AREA COORDS="290,430,450,470" HREF="backend_dirs.html#optimizer">
+<AREA COORDS="290,510,450,550" HREF="backend_dirs.html#optimizer/plan">
+<AREA COORDS="290,570,450,630" HREF="backend_dirs.html#executor">
+<AREA COORDS="550,350,710,390" HREF="backend_dirs.html#commands">
+<AREA COORDS="10,330,170,370" HREF="backend_dirs.html#access">
+<AREA COORDS="10,390,170,430" HREF="backend_dirs.html#catalog">
+<AREA COORDS="10,450,170,490" HREF="backend_dirs.html#utils">
+<AREA COORDS="10,510,170,550" HREF="backend_dirs.html#nodes">
+<AREA COORDS="10,570,170,610" HREF="backend_dirs.html#storage">
+</MAP>
+<HR>
+<ADDRESS>
+Maintainer:	Bruce Momjian<A
+HREF="mailto:maillist@candle.pha.pa.us">maillist@candle.pha.pa.us</a>)<BR>
+Last updated:		Mon Oct 27 11:01:08 EST 1997
+</ADDRESS>
diff --git a/src/tools/flow.gif b/src/tools/flow.gif
deleted file mode 100644
index 5d697a39f069ce69ba72e8913949e553a4549c7e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 8444
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

-- 
GitLab