aboutsummaryrefslogtreecommitdiff
path: root/src/tools/backend/backend_dirs.html
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/backend/backend_dirs.html')
-rw-r--r--src/tools/backend/backend_dirs.html272
1 files changed, 139 insertions, 133 deletions
diff --git a/src/tools/backend/backend_dirs.html b/src/tools/backend/backend_dirs.html
index c5bd3a52fe2..63b4a3421aa 100644
--- a/src/tools/backend/backend_dirs.html
+++ b/src/tools/backend/backend_dirs.html
@@ -8,15 +8,16 @@ PostgreSQL Backend Directories
</H1>
<H2 ALIGN=CENTER>
by Bruce Momjian
-</H2 ALIGN=CENTER>
+</H2>
<P>
<P>
+<HR>
<EM>Click on any of the section headings to see the source code for that section.
</EM>
<P>
<H2>
-<A NAME="bootstrap">
-<A HREF="../../backend/bootstrap">bootstrap</A></A>
+<A NAME="bootstrap"></A>
+<A HREF="../../backend/bootstrap">bootstrap</A>
- creates initial template database via initdb
</H2>
<P>
@@ -29,8 +30,8 @@ This code <I>jams</I> the data directly into tables using a
special syntax used only by the bootstrap procedure.
</P>
<H2>
-<A NAME="main">
-<A HREF="../../backend/main">main</A></A>
+<A NAME="main"></A>
+<A HREF="../../backend/main">main</A>
- passes control to postmaster or postgres
</H2>
<P>
@@ -38,8 +39,8 @@ This checks the process name(argv[0]) and various flags, and passes
control to the postmaster or postgres backend code.
</P>
<H2>
-<A NAME="postmaster">
-<A HREF="../../backend/postmaster">postmaster</A></A>
+<A NAME="postmaster"></A>
+<A HREF="../../backend/postmaster">postmaster</A>
- controls postgres server startup/termination
</H2>
<P>
@@ -49,16 +50,16 @@ When a connection request arrives, a <I>postgres</I> backend is started,
and the connection is passed to it.
</P>
<H2>
-<A NAME="libpq">
-<A HREF="../../backend/libpq">libpq</A></A>
+<A NAME="libpq"></A>
+<A HREF="../../backend/libpq">libpq</A>
- backend libpq library routines
</H2>
<P>
This handles communication to the client processes.
</P>
<H2>
-<A NAME="tcop">
-<A HREF="../../backend/tcop">tcop</A></A>
+<A NAME="tcop"></A>
+<A HREF="../../backend/tcop">tcop</A>
- traffic cop, dispatches request to proper module
</H2>
<P>
@@ -67,8 +68,8 @@ code that makes calls to the parser, optimizer, executor, and
<I>/commands</I> functions.
</P>
<H2>
-<A NAME="parser">
-<A HREF="../../backend/parser">parser</A></A>
+<A NAME="parser"></A>
+<A HREF="../../backend/parser">parser</A>
- converts SQL query to query tree
</H2>
<P>
@@ -84,19 +85,19 @@ 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 NAME="optimizer">
-<A HREF="../../backend/optimizer">optimizer</A></A>
+<A NAME="optimizer"></A>
+<A HREF="../../backend/optimizer">optimizer</A>
- creates path and plan
</H2>
<P>
This uses the parser output to generate an optimal plan for the
executor.
</P>
-<H4>
-<A NAME="optimizer/path">
-<A HREF="../../backend/optimizer/path">optimizer/path</A></A>
+<H3>
+<A NAME="optimizer/path"></A>
+<A HREF="../../backend/optimizer/path">optimizer/path</A>
- creates path from parser output
-</H4>
+</H3>
<P>
This takes the parser query output, and generates all possible methods of
executing the request.
@@ -104,11 +105,11 @@ It examines table join order, <I>where</I> clause restrictions,
and optimizer table statistics to evaluate each possible execution
method, and assigns a cost to each.
</P>
-<H4>
-<A NAME="optimizer/geqo">
-<A HREF="../../backend/optimizer/geqo">optimizer/geqo</A></A>
+<H3>
+<A NAME="optimizer/geqo"></A>
+<A HREF="../../backend/optimizer/geqo">optimizer/geqo</A>
- genetic query optimizer
-</H4>
+</H3>
<P>
<I>optimizer/path</I> evaluates all possible ways to join the requested tables.
When the number of tables becomes great, the number of tests made
@@ -119,34 +120,34 @@ For a few tables, this method takes longer, but for a large number of
tables, it is faster.
There is an option to control when this feature is used.
</P>
-<H4>
-<A NAME="optimizer/plan">
-<A HREF="../../backend/optimizer/plan">optimizer/plan</A></A>
+<H3>
+<A NAME="optimizer/plan"></A>
+<A HREF="../../backend/optimizer/plan">optimizer/plan</A>
- optimizes path output
-</H4>
+</H3>
<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 NAME="optimizer/prep">
-<A HREF="../../backend/optimizer/prep">optimizer/prep</A></A>
+<H3>
+<A NAME="optimizer/prep"></A>
+<A HREF="../../backend/optimizer/prep">optimizer/prep</A>
- handle special plan cases
-</H4>
+</H3>
<P>
This does special plan processing.
</P>
-<H4>
-<A NAME="optimizer/util">
-<A HREF="../../backend/optimizer/util">optimizer/util</A></A>
+<H3>
+<A NAME="optimizer/util"></A>
+<A HREF="../../backend/optimizer/util">optimizer/util</A>
- optimizer support routines
-</H4>
+</H3>
<P>
This contains support routines used by other parts of the optimizer.
</P>
<H2>
-<A NAME="executor">
-<A HREF="../../backend/executor">executor</A></A>
+<A NAME="executor"></A>
+<A HREF="../../backend/executor">executor</A>
- executes complex node plans from optimizer
</H2>
<P>
@@ -156,8 +157,8 @@ heap scans, index scans, sorting, joining tables, grouping, aggregates,
and uniqueness.
</P>
<H2>
-<A NAME="commands">
-<A HREF="../../backend/commands">commands</A></A>
+<A NAME="commands"></A>
+<A HREF="../../backend/commands">commands</A>
- commands that do not require the executor
</H2>
<P>
@@ -169,8 +170,8 @@ Most of the routines do some processing, then call lower-level functions
in the catalog directory to do the actual work.
</P>
<H2>
-<A NAME="catalog">
-<A HREF="../../backend/catalog">catalog</A></A>
+<A NAME="catalog"></A>
+<A HREF="../../backend/catalog">catalog</A>
- system catalog manipulation
</H2>
<P>
@@ -181,47 +182,47 @@ These are low-level routines, and are usually called by upper routines
that pre-format user requests into a predefined format.
</P>
<H2>
-<A NAME="storage">
-<A HREF="../../backend/storage">storage</A></A>
+<A NAME="storage"></A>
+<A HREF="../../backend/storage">storage</A>
- manages various storage systems
</H2>
<P>
These allow uniform resource access by the backend.
<BR>
<BR>
-<A NAME="storage/buffer">
-<A HREF="../../backend/storage/buffer">storage/buffer</A></A>
+<A NAME="storage/buffer"></A>
+<A HREF="../../backend/storage/buffer">storage/buffer</A>
- shared buffer pool manager
<BR>
-<A NAME="storage/file">
-<A HREF="../../backend/storage/file">storage/file</A></A>
+<A NAME="storage/file"></A>
+<A HREF="../../backend/storage/file">storage/file</A>
- file manager
<BR>
-<A NAME="storage/ipc">
-<A HREF="../../backend/storage/ipc">storage/ipc</A></A>
+<A NAME="storage/ipc"></A>
+<A HREF="../../backend/storage/ipc">storage/ipc</A>
- semaphores and shared memory
<BR>
-<A NAME="storage/large_object">
-<A HREF="../../backend/storage/large_object">storage/large_object</A></A>
+<A NAME="storage/large_object"></A>
+<A HREF="../../backend/storage/large_object">storage/large_object</A>
- large objects
<BR>
-<A NAME="storage/lmgr">
-<A HREF="../../backend/storage/lmgr">storage/lmgr</A></A>
+<A NAME="storage/lmgr"></A>
+<A HREF="../../backend/storage/lmgr">storage/lmgr</A>
- lock manager
<BR>
-<A NAME="storage/page">
-<A HREF="../../backend/storage/page">storage/page</A></A>
+<A NAME="storage/page"></A>
+<A HREF="../../backend/storage/page">storage/page</A>
- page manager
<BR>
-<A NAME="storage/smgr">
-<A HREF="../../backend/storage/smgr">storage/smgr</A></A>
+<A NAME="storage/smgr"></A>
+<A HREF="../../backend/storage/smgr">storage/smgr</A>
- storage/disk manager
<BR>
<BR>
</P>
<H2>
-<A NAME="access">
-<A HREF="../../backend/access">access</A></A>
+<A NAME="access"></A>
+<A HREF="../../backend/access">access</A>
- various data access methods
</H2>
<P>
@@ -229,43 +230,43 @@ These control the way data is accessed in heap, indexes, and
transactions.
<BR>
<BR>
-<A NAME="access/common">
-<A HREF="../../backend/access/common">access/common</A></A>
+<A NAME="access/common"></A>
+<A HREF="../../backend/access/common">access/common</A>
- common access routines
<BR>
-<A NAME="access/gist">
-<A HREF="../../backend/access/gist">access/gist</A></A>
+<A NAME="access/gist"></A>
+<A HREF="../../backend/access/gist">access/gist</A>
- easy-to-define access method system
<BR>
-<A NAME="access/hash">
-<A HREF="../../backend/access/hash">access/hash</A></A>
+<A NAME="access/hash"></A>
+<A HREF="../../backend/access/hash">access/hash</A>
- hash
<BR>
-<A NAME="access/heap">
-<A HREF="../../backend/access/heap">access/heap</A></A>
+<A NAME="access/heap"></A>
+<A HREF="../../backend/access/heap">access/heap</A>
- heap is use to store data rows
<BR>
-<A NAME="access/index">
-<A HREF="../../backend/access/index">access/index</A></A>
+<A NAME="access/index"></A>
+<A HREF="../../backend/access/index">access/index</A>
- used by all index types
<BR>
-<A NAME="access/nbtree">
-<A HREF="../../backend/access/nbtree">access/nbtree</A></A>
+<A NAME="access/nbtree"></A>
+<A HREF="../../backend/access/nbtree">access/nbtree</A>
- Lehman and Yao's btree management algorithm
<BR>
-<A NAME="access/rtree">
-<A HREF="../../backend/access/rtree">access/rtree</A></A>
+<A NAME="access/rtree"></A>
+<A HREF="../../backend/access/rtree">access/rtree</A>
- used for indexing of 2-dimensional data
<BR>
-<A NAME="access/transam">
-<A HREF="../../backend/access/transam">access/transam</A></A>
+<A NAME="access/transam"></A>
+<A HREF="../../backend/access/transam">access/transam</A>
- transaction manager (BEGIN/ABORT/COMMIT)
<BR>
<BR>
</P>
<H2>
-<A NAME="nodes">
-<A HREF="../../backend/nodes">nodes</A></A>
+<A NAME="nodes"></A>
+<A HREF="../../backend/nodes">nodes</A>
- creation/manipulation of nodes and lists
</H2>
<P>
@@ -283,23 +284,23 @@ These are used extensively in the parser, optimizer, and executor to
store requests and data.
</P>
<H2>
-<A NAME="utils">
-<A HREF="../../backend/utils">utils</A></A>
+<A NAME="utils"></A>
+<A HREF="../../backend/utils">utils</A>
- support routines
</H2>
-<H4>
-<A NAME="utils/adt">
-<A HREF="../../backend/utils/adt">utils/adt</A></A>
+<H3>
+<A NAME="utils/adt"></A>
+<A HREF="../../backend/utils/adt">utils/adt</A>
- built-in data type routines
-</H4>
+</H3>
<P>
This contains all the PostgreSQL builtin data types.
</P>
-<H4>
-<A NAME="utils/cache">
-<A HREF="../../backend/utils/cache">utils/cache</A></A>
+<H3>
+<A NAME="utils/cache"></A>
+<A HREF="../../backend/utils/cache">utils/cache</A>
- system/relation/function cache routines
-</H4>
+</H3>
<P>
PostgreSQL supports arbitrary data types, so no data types are hard-coded
into the core backend routines.
@@ -312,48 +313,48 @@ information cache.
This last cache maintains information about all recently-accessed
tables, not just system ones.
</P>
-<H4>
-<A NAME="utils/error">
-<A HREF="../../backend/utils/error">utils/error</A></A>
+<H3>
+<A NAME="utils/error"></A>
+<A HREF="../../backend/utils/error">utils/error</A>
- error reporting routines
-</H4>
+</H3>
<P>
Reports backend errors to the front end.
</P>
-<H4>
-<A NAME="utils/fmgr">
-<A HREF="../../backend/utils/fmgr">utils/fmgr</A></A>
+<H3>
+<A NAME="utils/fmgr"></A>
+<A HREF="../../backend/utils/fmgr">utils/fmgr</A>
- function manager
-</H4>
+</H3>
<P>
This handles the calling of dynamically-loaded functions, and the calling
of functions defined in the system tables.
</P>
-<H4>
-<A NAME="utils/hash">
-<A HREF="../../backend/utils/hash">utils/hash</A></A>
+<H3>
+<A NAME="utils/hash"></A>
+<A HREF="../../backend/utils/hash">utils/hash</A>
- hash routines for internal algorithms
-</H4>
+</H3>
<P>
These hash routines are used by the cache and memory-manager routines to
do quick lookups of dynamic data storage structures maintained by the
backend.
</P>
-<H4>
-<A NAME="utils/init">
-<A HREF="../../backend/utils/init">utils/init</A></A>
+<H3>
+<A NAME="utils/init"></A>
+<A HREF="../../backend/utils/init">utils/init</A>
- various initialization stuff
-</H4>
-<H4>
-<A NAME="utils/misc">
-<A HREF="../../backend/utils/misc">utils/misc</A></A>
+</H3>
+<H3>
+<A NAME="utils/misc"></A>
+<A HREF="../../backend/utils/misc">utils/misc</A>
- miscellaneous stuff
-</H4>
-<H4>
-<A NAME="utils/mmgr">
-<A HREF="../../backend/utils/mmgr">utils/mmgr</A></A>
+</H3>
+<H3>
+<A NAME="utils/mmgr"></A>
+<A HREF="../../backend/utils/mmgr">utils/mmgr</A>
- memory manager(process-local memory)
-</H4>
+</H3>
<P>
When PostgreSQL allocates memory, it does so in an explicit context.
Contexts can be statement-specific, transaction-specific, or
@@ -361,65 +362,70 @@ persistent/global.
By doing this, the backend can easily free memory once a statement or
transaction completes.
</P>
-<H4>
-<A NAME="utils/sort">
-<A HREF="../../backend/utils/sort">utils/sort</A></A>
+<H3>
+<A NAME="utils/sort"></A>
+<A HREF="../../backend/utils/sort">utils/sort</A>
- sort routines for internal algorithms
-</H4>
+</H3>
<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 NAME="utils/time">
-<A HREF="../../backend/utils/time">utils/time</A></A>
+<H3>
+<A NAME="utils/time"></A>
+<A HREF="../../backend/utils/time">utils/time</A>
- transaction time qualification routines
-</H4>
+</H3>
<P>
These routines do checking of tuple internal columns to determine if the
current row is still valid, or is part of a non-committed transaction or
superseded by a new row.
</P>
<H2>
-<A NAME="include">
-<A HREF="../../backend/include">include</A></A>
+<A NAME="include"></A>
+<A HREF="../../backend/include">include</A>
- include files
</H2>
<P>
There are include directories for each subsystem.
</P>
<H2>
-<A NAME="lib">
-<A HREF="../../backend/lib">lib</A></A>
+<A NAME="lib"></A>
+<A HREF="../../backend/lib">lib</A>
- support library
</H2>
<P>
This houses several generic routines.
</P>
<H2>
-<A NAME="regex">
-<A HREF="../../backend/regex">regex</A></A>
+<A NAME="regex"></A>
+<A HREF="../../backend/regex">regex</A>
- regular expression library
</H2>
<P>
This is used for regular expression handling in the backend, i.e. '~'.
</P>
<H2>
-<A NAME="rewrite">
-<A HREF="../../backend/rewrite">rewrite</A></A>
+<A NAME="rewrite"></A>
+<A HREF="../../backend/rewrite">rewrite</A>
- rules system
</H2>
<P>
This does processing for the rules system.
</P>
<H2>
-<A NAME="tioga">
-<A HREF="../../backend/tioga">tioga</A></A>
+<A NAME="tioga"></A>
+<A HREF="../../backend/tioga">tioga</A>
- unused (array handling?)
</H2>
-<HR>
+<BR>
+<HR SIZE="2" NOSHADE>
+<SMALL>
<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
+Maintainer: Bruce Momjian (<A
+HREF="mailto:maillist@candle.pha.pa.us">maillist@candle.pha.pa.us</A>)<BR>
+Last updated: Tue Dec 9 17:56:08 EST 1997
</ADDRESS>
+</SMALL>
+</BODY>
+</HTML>