diff --git a/doc/src/graphics/catalogs.gif b/doc/src/graphics/catalogs.gif
new file mode 100644
index 0000000000000000000000000000000000000000..494a2cf3d41a1752abadc39cf552df80d0f4c1e6
Binary files /dev/null and b/doc/src/graphics/catalogs.gif differ
diff --git a/doc/src/graphics/clientserver.ag b/doc/src/graphics/clientserver.ag
new file mode 100644
index 0000000000000000000000000000000000000000..74e8f07cee0c63fa8fdf98fc94346c5536e58b50
--- /dev/null
+++ b/doc/src/graphics/clientserver.ag
@@ -0,0 +1,99 @@
+*BEGIN GRAPHICS VERSION=430/420 ENCODING=7BIT
+** "Creator" tgl
+** "Creation Date" Tue Feb 10 03:30:09 1998
+** "Revisor" tgl
+** "Last Modified" Thu Feb 19 16:51:48 1998
+
+SESSION
+ WIN_SIZE <7500 5500>
+ SLIDE_STYLE <0 -1 1>
+ R_ARROW 1
+ REZ <0 2000 2000 0 0>
+END SESSION
+
+SLIDE_INFO
+ SLIDE_STYLE <0 -1 1>
+END SLIDE_INFO
+PICTURE
+.ELL AT (2526,191)
+ R_ARROW 0
+ V_SPACE <0 139 0>
+ SIZE 100000 L_SPACE 139 MARGINS <69 69 139 34>
+ PNTS (1594,1154)(0,1154)(0,0)(1594,0)(1594,1154)
+.RECT AT (2766,453)
+ XYRAD <220 68>
+ PNTS (1139,0)(0,0)(0,273)(1139,273)(1139,0)
+.TXT AT (2887,548)
+ BACKFILL <1 0 5 1000 0 0 0>
+ THICKNESS 0 MARGINS <0 0 0 0>
+ TXTXYOFF <-2 94>
+ T_PNTS (0,94)(0,0)(900,0)(900,97)(0,97)(0,94)(900,94)
+ .STR
+  L_SPACE 250
+  "POSTMASTER"
+.RECT AT (2774,832)
+ BACKFILL <1 0 0 0 0 0 0>
+ THICKNESS 1 L_SPACE 139 MARGINS <69 69 139 34>
+ PNTS (1139,0)(0,0)(0,273)(1139,273)(1139,0)
+.TXT AT (3074,919)
+ BACKFILL <1 0 5 1000 0 0 0>
+ THICKNESS 0 MARGINS <0 0 0 0>
+ TXTXYOFF <-6 94>
+ T_PNTS (0,94)(0,0)(527,0)(527,97)(0,97)(0,94)(527,94)
+ .STR
+  L_SPACE 250
+  "SERVER"
+.ELL AT (2509,533)
+ BACKFILL <1 0 0 0 0 0 0>
+ THICKNESS 1 L_SPACE 139 MARGINS <69 69 139 34>
+ PNTS (0,0)(119,0)(119,119)(0,119)(0,0)
+.LINE AT (2615,593)
+ PNTS (146,0)(0,0)
+.TXT AT (3040,1164)
+ BACKFILL <1 0 5 1000 0 0 0>
+ THICKNESS 0 MARGINS <0 0 0 0>
+ TXTXYOFF <-7 95>
+ T_PNTS (0,95)(0,0)(599,0)(599,98)(0,98)(0,95)(599,95)
+ .STR
+  L_SPACE 250
+  "server host"
+.TXT AT (1051,1170)
+ L_SPACE 139
+ TXTXYOFF <-3 95>
+ T_PNTS (0,95)(0,0)(574,0)(574,97)(0,97)(0,95)(574,95)
+ .STR
+  L_SPACE 250
+  "client host"
+.RECT AT (786,612)
+ BACKFILL <1 0 0 0 0 0 0>
+ THICKNESS 1 L_SPACE 139 MARGINS <69 69 139 34>
+ PNTS (1139,0)(0,0)(0,273)(1139,273)(1139,0)
+.ELL AT (544,191)
+ PNTS (1594,1154)(0,1154)(0,0)(1594,0)(1594,1154)
+.TXT AT (987,614)
+ BACKFILL <1 0 5 1000 0 0 0>
+ THICKNESS 0 MARGINS <0 0 0 0>
+ TXTXYOFF <0 92>
+ T_PNTS (0,92)(0,0)(264,0)(264,262)(0,262)(0,92)(264,92)
+ .STR
+  L_SPACE 250
+  "User\nApp"
+.TXT AT (1489,692)
+ L_SPACE 139
+ TXTXYOFF <-2 94>
+ T_PNTS (0,94)(0,0)(397,0)(397,120)(0,120)(0,94)(397,94)
+ .STR
+  L_SPACE 250
+  "LIBPQ"
+.LINE AT (1413,613)
+ BACKFILL <1 0 0 0 0 0 0>
+ THICKNESS 1
+ V_SPACE <0 250 0>
+ SIZE 180000 MARGINS <125 125 250 62>
+ PNTS (0,0)(0,266)
+.LINE AT (1926,606)
+ R_ARROW 1
+ PNTS (0,153)(574,0)
+END PICTURE
+
+*END GRAPHICS
diff --git a/doc/src/graphics/clientserver.gif b/doc/src/graphics/clientserver.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5ee9c7d1eb450d95f1ed83caf9f22f268ec9455d
Binary files /dev/null and b/doc/src/graphics/clientserver.gif differ
diff --git a/doc/src/graphics/connections.ag b/doc/src/graphics/connections.ag
new file mode 100644
index 0000000000000000000000000000000000000000..86e089ee1e52a6ad8263190231760e4a8f0949b1
--- /dev/null
+++ b/doc/src/graphics/connections.ag
@@ -0,0 +1,486 @@
+*BEGIN GRAPHICS VERSION=430/420 ENCODING=7BIT
+** "Creator" tgl
+** "Creation Date" Tue Feb 10 03:30:09 1998
+** "Revisor" tgl
+** "Last Modified" Fri Feb 20 14:31:20 1998
+
+SESSION
+ WIN_SIZE <8067 10307>
+ SLIDE_STYLE <0 -1 1>
+ R_ARROW 3
+ REZ <0 2000 2000 70 0>
+END SESSION
+
+SLIDE_INFO
+ SLIDE_STYLE <0 -1 1>
+END SLIDE_INFO
+PICTURE
+.TXT AT (142,1073)
+ BACKFILL <1 0 5 1000 0 0 0>
+ THICKNESS 0 R_ARROW 0
+ V_SPACE <0 139 0>
+ SIZE 100000 L_SPACE 139 MARGINS <0 0 0 0>
+ TXTXYOFF <0 95>
+ T_PNTS (0,95)(0,0)(2219,0)(2219,237)(0,237)(0,95)(2219,95)
+ .STR
+  L_SPACE 250
+  "(a) frontend sends request to postmaster\n      via well-known 
+ network socket"
+.GRP
+ BACKFILL <1 0 0 0 0 0 0>
+ THICKNESS 1
+ V_SPACE <0 250 0>
+ SIZE 180000 MARGINS <125 125 250 62>
+ .GRP
+  .ELL AT (2264,2818)
+   V_SPACE <0 139 0>
+   SIZE 100000 L_SPACE 139 MARGINS <69 69 139 34>
+   PNTS (1594,1154)(0,1154)(0,0)(1594,0)(1594,1154)
+  .RECT AT (2504,3080)
+   XYRAD <220 68>
+   PNTS (1139,0)(0,0)(0,273)(1139,273)(1139,0)
+  .TXT AT (2625,3175)
+   BACKFILL <1 0 5 1000 0 0 0>
+   THICKNESS 0 MARGINS <0 0 0 0>
+   TXTXYOFF <-2 94>
+   T_PNTS (0,94)(0,0)(900,0)(900,97)(0,97)(0,94)(900,94)
+   .STR
+    L_SPACE 250
+    "POSTMASTER"
+  .RECT AT (2512,3459)
+   BACKFILL <1 0 0 0 0 0 0>
+   THICKNESS 1 L_SPACE 139 MARGINS <69 69 139 34>
+   PNTS (1139,0)(0,0)(0,273)(1139,273)(1139,0)
+  .TXT AT (2812,3546)
+   BACKFILL <1 0 5 1000 0 0 0>
+   THICKNESS 0 MARGINS <0 0 0 0>
+   TXTXYOFF <-6 94>
+   T_PNTS (0,94)(0,0)(527,0)(527,97)(0,97)(0,94)(527,94)
+   .STR
+    L_SPACE 250
+    "SERVER"
+  .ELL AT (2247,3160)
+   BACKFILL <1 0 0 0 0 0 0>
+   THICKNESS 1 L_SPACE 139 MARGINS <69 69 139 34>
+   PNTS (0,0)(119,0)(119,119)(0,119)(0,0)
+  .LINE AT (2353,3220)
+   PNTS (146,0)(0,0)
+  .TXT AT (2778,3791)
+   BACKFILL <1 0 5 1000 0 0 0>
+   THICKNESS 0 MARGINS <0 0 0 0>
+   TXTXYOFF <-7 95>
+   T_PNTS (0,95)(0,0)(599,0)(599,98)(0,98)(0,95)(599,95)
+   .STR
+    L_SPACE 250
+    "server host"
+ END .GRP
+ .GRP
+  BACKFILL <1 0 0 0 0 0 0>
+  THICKNESS 1
+  V_SPACE <0 250 0>
+  SIZE 180000 MARGINS <125 125 250 62>
+  .TXT AT (681,3409)
+   BACKFILL <1 0 5 1000 0 0 0>
+   THICKNESS 0
+   V_SPACE <0 139 0>
+   SIZE 100000 L_SPACE 139 MARGINS <0 0 0 0>
+   TXTXYOFF <-3 95>
+   T_PNTS (0,95)(0,0)(574,0)(574,97)(0,97)(0,95)(574,95)
+   .STR
+    L_SPACE 250
+    "client host"
+  .ELL AT (121,2817)
+   BACKFILL <1 0 0 0 0 0 0>
+   THICKNESS 1 L_SPACE 139 MARGINS <69 69 139 34>
+   PNTS (1594,848)(0,848)(0,0)(1594,0)(1594,848)
+  .GRP
+   V_SPACE <0 250 0>
+   SIZE 180000 L_SPACE 250 MARGINS <125 125 250 62>
+   .RECT AT (363,3025)
+    V_SPACE <0 139 0>
+    SIZE 100000 L_SPACE 139 MARGINS <69 69 139 34>
+    PNTS (1139,0)(0,0)(0,273)(1139,273)(1139,0)
+   .TXT AT (564,3027)
+    BACKFILL <1 0 5 1000 0 0 0>
+    THICKNESS 0 MARGINS <0 0 0 0>
+    TXTXYOFF <0 92>
+    T_PNTS (0,92)(0,0)(264,0)(264,262)(0,262)(0,92)(264,92)
+    .STR
+     L_SPACE 250
+     "User\nApp"
+   .TXT AT (1066,3105)
+    L_SPACE 139
+    TXTXYOFF <-2 94>
+    T_PNTS (0,94)(0,0)(397,0)(397,120)(0,120)(0,94)(397,94)
+    .STR
+     L_SPACE 250
+     "LIBPQ"
+   .LINE AT (990,3026)
+    BACKFILL <1 0 0 0 0 0 0>
+    THICKNESS 1
+    V_SPACE <0 250 0>
+    SIZE 180000 MARGINS <125 125 250 62>
+    PNTS (0,0)(0,266)
+  END .GRP
+ END .GRP
+END .GRP
+.GRP
+ .ELL AT (2258,4158)
+  V_SPACE <0 139 0>
+  SIZE 100000 L_SPACE 139 MARGINS <69 69 139 34>
+  PNTS (1594,1154)(0,1154)(0,0)(1594,0)(1594,1154)
+ .RECT AT (2498,4420)
+  PNTS (1139,0)(0,0)(0,273)(1139,273)(1139,0)
+ .TXT AT (2619,4515)
+  BACKFILL <1 0 5 1000 0 0 0>
+  THICKNESS 0 MARGINS <0 0 0 0>
+  T_PNTS (0,94)(0,0)(900,0)(900,97)(0,97)(0,94)(900,94)
+  .STR
+   L_SPACE 250
+   "POSTMASTER"
+ .RECT AT (2506,4799)
+  BACKFILL <1 0 0 0 0 0 0>
+  THICKNESS 1 L_SPACE 139 MARGINS <69 69 139 34>
+  PNTS (1139,0)(0,0)(0,273)(1139,273)(1139,0)
+ .TXT AT (2806,4886)
+  BACKFILL <1 0 5 1000 0 0 0>
+  THICKNESS 0 MARGINS <0 0 0 0>
+  TXTXYOFF <-6 94>
+  T_PNTS (0,94)(0,0)(527,0)(527,97)(0,97)(0,94)(527,94)
+  .STR
+   L_SPACE 250
+   "SERVER"
+ .ELL AT (2241,4500)
+  BACKFILL <1 0 0 0 0 0 0>
+  THICKNESS 1 L_SPACE 139 MARGINS <69 69 139 34>
+  PNTS (0,0)(119,0)(119,119)(0,119)(0,0)
+ .LINE AT (2347,4560)
+  PNTS (146,0)(0,0)
+ .TXT AT (2772,5131)
+  BACKFILL <1 0 5 1000 0 0 0>
+  THICKNESS 0 MARGINS <0 0 0 0>
+  TXTXYOFF <-7 95>
+  T_PNTS (0,95)(0,0)(599,0)(599,98)(0,98)(0,95)(599,95)
+  .STR
+   L_SPACE 250
+   "server host"
+END .GRP
+.GRP
+ BACKFILL <1 0 0 0 0 0 0>
+ THICKNESS 1
+ V_SPACE <0 250 0>
+ SIZE 180000 MARGINS <125 125 250 62>
+ .TXT AT (682,5401)
+  BACKFILL <1 0 5 1000 0 0 0>
+  THICKNESS 0
+  V_SPACE <0 139 0>
+  SIZE 100000 L_SPACE 139 MARGINS <0 0 0 0>
+  TXTXYOFF <-3 95>
+  T_PNTS (0,95)(0,0)(574,0)(574,97)(0,97)(0,95)(574,95)
+  .STR
+   L_SPACE 250
+   "client host"
+ .ELL AT (122,4809)
+  BACKFILL <1 0 0 0 0 0 0>
+  THICKNESS 1 L_SPACE 139 MARGINS <69 69 139 34>
+  PNTS (1594,848)(0,848)(0,0)(1594,0)(1594,848)
+ .GRP
+  V_SPACE <0 250 0>
+  SIZE 180000 L_SPACE 250 MARGINS <125 125 250 62>
+  .RECT AT (364,5017)
+   V_SPACE <0 139 0>
+   SIZE 100000 L_SPACE 139 MARGINS <69 69 139 34>
+   PNTS (1139,0)(0,0)(0,273)(1139,273)(1139,0)
+  .TXT AT (565,5019)
+   BACKFILL <1 0 5 1000 0 0 0>
+   THICKNESS 0 MARGINS <0 0 0 0>
+   TXTXYOFF <0 92>
+   T_PNTS (0,92)(0,0)(264,0)(264,262)(0,262)(0,92)(264,92)
+   .STR
+    L_SPACE 250
+    "User\nApp"
+  .TXT AT (1067,5097)
+   L_SPACE 139
+   TXTXYOFF <-2 94>
+   T_PNTS (0,94)(0,0)(397,0)(397,120)(0,120)(0,94)(397,94)
+   .STR
+    L_SPACE 250
+    "LIBPQ"
+  .LINE AT (991,5018)
+   BACKFILL <1 0 0 0 0 0 0>
+   THICKNESS 1
+   V_SPACE <0 250 0>
+   SIZE 180000 MARGINS <125 125 250 62>
+   PNTS (0,0)(0,266)
+ END .GRP
+END .GRP
+.GRP
+ .GRP
+  .ELL AT (2271,1504)
+   V_SPACE <0 139 0>
+   SIZE 100000 L_SPACE 139 MARGINS <69 69 139 34>
+   PNTS (1594,1154)(0,1154)(0,0)(1594,0)(1594,1154)
+  .RECT AT (2511,1766)
+   PNTS (1139,0)(0,0)(0,273)(1139,273)(1139,0)
+  .TXT AT (2632,1861)
+   BACKFILL <1 0 5 1000 0 0 0>
+   THICKNESS 0 MARGINS <0 0 0 0>
+   T_PNTS (0,94)(0,0)(900,0)(900,97)(0,97)(0,94)(900,94)
+   .STR
+    L_SPACE 250
+    "POSTMASTER"
+  .RECT AT (2519,2145)
+   BACKFILL <1 0 0 0 0 0 0>
+   THICKNESS 1 L_SPACE 139 MARGINS <69 69 139 34>
+   PNTS (1139,0)(0,0)(0,273)(1139,273)(1139,0)
+  .TXT AT (2819,2232)
+   BACKFILL <1 0 5 1000 0 0 0>
+   THICKNESS 0 MARGINS <0 0 0 0>
+   TXTXYOFF <-6 94>
+   T_PNTS (0,94)(0,0)(527,0)(527,97)(0,97)(0,94)(527,94)
+   .STR
+    L_SPACE 250
+    "SERVER"
+  .ELL AT (2254,1846)
+   BACKFILL <1 0 0 0 0 0 0>
+   THICKNESS 1 L_SPACE 139 MARGINS <69 69 139 34>
+   PNTS (0,0)(119,0)(119,119)(0,119)(0,0)
+  .LINE AT (2360,1906)
+   PNTS (146,0)(0,0)
+  .TXT AT (2785,2477)
+   BACKFILL <1 0 5 1000 0 0 0>
+   THICKNESS 0 MARGINS <0 0 0 0>
+   TXTXYOFF <-7 95>
+   T_PNTS (0,95)(0,0)(599,0)(599,98)(0,98)(0,95)(599,95)
+   .STR
+    L_SPACE 250
+    "server host"
+ END .GRP
+ .GRP
+  BACKFILL <1 0 0 0 0 0 0>
+  THICKNESS 1
+  V_SPACE <0 250 0>
+  SIZE 180000 MARGINS <125 125 250 62>
+  .TXT AT (688,2095)
+   BACKFILL <1 0 5 1000 0 0 0>
+   THICKNESS 0
+   V_SPACE <0 139 0>
+   SIZE 100000 L_SPACE 139 MARGINS <0 0 0 0>
+   TXTXYOFF <-3 95>
+   T_PNTS (0,95)(0,0)(574,0)(574,97)(0,97)(0,95)(574,95)
+   .STR
+    L_SPACE 250
+    "client host"
+  .ELL AT (128,1503)
+   BACKFILL <1 0 0 0 0 0 0>
+   THICKNESS 1 L_SPACE 139 MARGINS <69 69 139 34>
+   PNTS (1594,848)(0,848)(0,0)(1594,0)(1594,848)
+  .GRP
+   V_SPACE <0 250 0>
+   SIZE 180000 L_SPACE 250 MARGINS <125 125 250 62>
+   .RECT AT (370,1711)
+    V_SPACE <0 139 0>
+    SIZE 100000 L_SPACE 139 MARGINS <69 69 139 34>
+    PNTS (1139,0)(0,0)(0,273)(1139,273)(1139,0)
+   .TXT AT (571,1713)
+    BACKFILL <1 0 5 1000 0 0 0>
+    THICKNESS 0 MARGINS <0 0 0 0>
+    TXTXYOFF <0 92>
+    T_PNTS (0,92)(0,0)(264,0)(264,262)(0,262)(0,92)(264,92)
+    .STR
+     L_SPACE 250
+     "User\nApp"
+   .TXT AT (1073,1791)
+    L_SPACE 139
+    TXTXYOFF <-2 94>
+    T_PNTS (0,94)(0,0)(397,0)(397,120)(0,120)(0,94)(397,94)
+    .STR
+     L_SPACE 250
+     "LIBPQ"
+   .LINE AT (997,1712)
+    BACKFILL <1 0 0 0 0 0 0>
+    THICKNESS 1
+    V_SPACE <0 250 0>
+    SIZE 180000 MARGINS <125 125 250 62>
+    PNTS (0,0)(0,266)
+  END .GRP
+ END .GRP
+END .GRP
+.GRP
+ .GRP
+  .ELL AT (2255,126)
+   V_SPACE <0 139 0>
+   SIZE 100000 L_SPACE 139 MARGINS <69 69 139 34>
+   PNTS (1594,1154)(0,1154)(0,0)(1594,0)(1594,1154)
+  .RECT AT (2495,388)
+   PNTS (1139,0)(0,0)(0,273)(1139,273)(1139,0)
+  .TXT AT (2616,483)
+   BACKFILL <1 0 5 1000 0 0 0>
+   THICKNESS 0 MARGINS <0 0 0 0>
+   T_PNTS (0,94)(0,0)(901,0)(901,97)(0,97)(0,94)(901,94)
+   .STR
+    L_SPACE 250
+    "POSTMASTER"
+  .ELL AT (2238,468)
+   BACKFILL <1 0 0 0 0 0 0>
+   THICKNESS 1 L_SPACE 139 MARGINS <69 69 139 34>
+   PNTS (0,0)(119,0)(119,119)(0,119)(0,0)
+  .LINE AT (2344,528)
+   PNTS (146,0)(0,0)
+  .TXT AT (2769,1099)
+   BACKFILL <1 0 5 1000 0 0 0>
+   THICKNESS 0 MARGINS <0 0 0 0>
+   TXTXYOFF <-7 95>
+   T_PNTS (0,95)(0,0)(600,0)(600,98)(0,98)(0,95)(600,95)
+   .STR
+    L_SPACE 250
+    "server host"
+ END .GRP
+ .GRP
+  BACKFILL <1 0 0 0 0 0 0>
+  THICKNESS 1
+  V_SPACE <0 250 0>
+  SIZE 180000 MARGINS <125 125 250 62>
+  .TXT AT (672,717)
+   BACKFILL <1 0 5 1000 0 0 0>
+   THICKNESS 0
+   V_SPACE <0 139 0>
+   SIZE 100000 L_SPACE 139 MARGINS <0 0 0 0>
+   TXTXYOFF <-3 95>
+   T_PNTS (0,95)(0,0)(572,0)(572,97)(0,97)(0,95)(572,95)
+   .STR
+    L_SPACE 250
+    "client host"
+  .ELL AT (112,125)
+   BACKFILL <1 0 0 0 0 0 0>
+   THICKNESS 1 L_SPACE 139 MARGINS <69 69 139 34>
+   PNTS (1594,848)(0,848)(0,0)(1594,0)(1594,848)
+  .GRP
+   V_SPACE <0 250 0>
+   SIZE 180000 L_SPACE 250 MARGINS <125 125 250 62>
+   .RECT AT (354,333)
+    V_SPACE <0 139 0>
+    SIZE 100000 L_SPACE 139 MARGINS <69 69 139 34>
+    PNTS (1139,0)(0,0)(0,273)(1139,273)(1139,0)
+   .TXT AT (555,335)
+    BACKFILL <1 0 5 1000 0 0 0>
+    THICKNESS 0 MARGINS <0 0 0 0>
+    TXTXYOFF <0 92>
+    T_PNTS (0,92)(0,0)(263,0)(263,262)(0,262)(0,92)(263,92)
+    .STR
+     L_SPACE 250
+     "User\nApp"
+   .TXT AT (1056,413)
+    L_SPACE 139
+    TXTXYOFF <-1 94>
+    T_PNTS (0,94)(0,0)(398,0)(398,119)(0,119)(0,94)(398,94)
+    .STR
+     L_SPACE 250
+     "LIBPQ"
+   .LINE AT (981,334)
+    BACKFILL <1 0 0 0 0 0 0>
+    THICKNESS 1
+    V_SPACE <0 250 0>
+    SIZE 180000 MARGINS <125 125 250 62>
+    PNTS (0,0)(0,266)
+  END .GRP
+ END .GRP
+END .GRP
+.LINE AT (1496,476)
+ R_ARROW 3
+ PNTS (0,0)(747,46)
+.TXT AT (129,2424)
+ BACKFILL <1 0 5 1000 0 0 0>
+ THICKNESS 0 R_ARROW 0
+ V_SPACE <0 139 0>
+ SIZE 100000 L_SPACE 139 MARGINS <0 0 0 0>
+ TXTXYOFF <-6 95>
+ T_PNTS (0,95)(0,0)(2084,0)(2084,126)(0,126)(0,95)(2084,95)
+ .STR
+  L_SPACE 250
+  "(b) postmaster creates backend server"
+.TXT AT (130,3778)
+ L_SPACE 139
+ T_PNTS (0,95)(0,0)(2265,0)(2265,120)(0,120)(0,95)(2265,95)
+ .STR
+  L_SPACE 250
+  "(c) frontend connected to backend server"
+.GRP
+ BACKFILL <1 0 0 0 0 0 0>
+ THICKNESS 1
+ V_SPACE <0 250 0>
+ SIZE 180000 MARGINS <125 125 250 62>
+ .ELL AT (2265,5432)
+  V_SPACE <0 139 0>
+  SIZE 100000 L_SPACE 139 MARGINS <69 69 139 34>
+  PNTS (1594,1154)(0,1154)(0,0)(1594,0)(1594,1154)
+ .RECT AT (2505,5694)
+  PNTS (1139,0)(0,0)(0,273)(1139,273)(1139,0)
+ .TXT AT (2626,5789)
+  BACKFILL <1 0 5 1000 0 0 0>
+  THICKNESS 0 MARGINS <0 0 0 0>
+  TXTXYOFF <-2 94>
+  T_PNTS (0,94)(0,0)(900,0)(900,97)(0,97)(0,94)(900,94)
+  .STR
+   L_SPACE 250
+   "POSTMASTER"
+ .RECT AT (2513,6073)
+  BACKFILL <1 0 0 0 0 0 0>
+  THICKNESS 1 L_SPACE 139 MARGINS <69 69 139 34>
+  PNTS (1139,0)(0,0)(0,273)(1139,273)(1139,0)
+ .TXT AT (2813,6160)
+  BACKFILL <1 0 5 1000 0 0 0>
+  THICKNESS 0 MARGINS <0 0 0 0>
+  TXTXYOFF <-6 94>
+  T_PNTS (0,94)(0,0)(527,0)(527,97)(0,97)(0,94)(527,94)
+  .STR
+   L_SPACE 250
+   "SERVER"
+ .ELL AT (2248,5774)
+  BACKFILL <1 0 0 0 0 0 0>
+  THICKNESS 1 L_SPACE 139 MARGINS <69 69 139 34>
+  PNTS (0,0)(119,0)(119,119)(0,119)(0,0)
+ .LINE AT (2354,5834)
+  PNTS (146,0)(0,0)
+ .TXT AT (2779,6405)
+  BACKFILL <1 0 5 1000 0 0 0>
+  THICKNESS 0 MARGINS <0 0 0 0>
+  TXTXYOFF <-7 95>
+  T_PNTS (0,95)(0,0)(599,0)(599,98)(0,98)(0,95)(599,95)
+  .STR
+   L_SPACE 250
+   "server host"
+END .GRP
+.TXT AT (154,6070)
+ L_SPACE 139
+ TXTXYOFF <0 95>
+ T_PNTS (0,95)(0,0)(1732,0)(1732,265)(0,265)(0,95)(1732,95)
+ .STR
+  L_SPACE 250
+  "(d) frontend connected\n      to multiple backend servers"
+.LINE AT (1513,1853)
+ BACKFILL <1 0 0 0 0 0 0>
+ THICKNESS 1 R_ARROW 3
+ V_SPACE <0 250 0>
+ SIZE 180000 MARGINS <125 125 250 62>
+ PNTS (0,0)(747,46)
+.LINE AT (3079,1967)
+ PNTS (0,0)(7,239)
+.LINE AT (1507,3166)
+ PNTS (0,0)(993,418)
+.LINE AT (1491,5185)
+ PNTS (0,0)(1027,1043)
+.LINE AT (1513,4923)
+ PNTS (0,213)(993,0)
+.TXT AT (171,4321)
+ BACKFILL <1 0 5 1000 0 0 0>
+ THICKNESS 0 R_ARROW 0
+ V_SPACE <0 139 0>
+ SIZE 100000 L_SPACE 139 MARGINS <0 0 0 0>
+ T_PNTS (0,95)(0,0)(1429,0)(1429,236)(0,236)(0,95)(1429,95)
+ .STR
+  L_SPACE 250
+  "And multiple connections\ncan be established..."
+END PICTURE
+
+*END GRAPHICS
diff --git a/doc/src/graphics/connections.gif b/doc/src/graphics/connections.gif
new file mode 100644
index 0000000000000000000000000000000000000000..007e3bd09a9674cbf3031198490c624295a47ef7
Binary files /dev/null and b/doc/src/graphics/connections.gif differ
diff --git a/doc/src/graphics/layout.ag b/doc/src/graphics/layout.ag
new file mode 100644
index 0000000000000000000000000000000000000000..e075b5b1b484cd471947077d514668a761896e08
--- /dev/null
+++ b/doc/src/graphics/layout.ag
@@ -0,0 +1,349 @@
+*BEGIN GRAPHICS VERSION=430/420 ENCODING=7BIT
+** "Creator" tgl
+** "Creation Date" Fri Feb 20 14:37:06 1998
+** "Revisor" tgl
+** "Last Modified" Fri Feb 27 14:03:01 1998
+
+SESSION
+ WIN_SIZE <12827 10814>
+ VIEW <0 0 0 1 1 0>
+ SLIDE_STYLE <0 -1 1>
+ STYLE 5
+ V_SPACE <0 167 0>
+ SIZE 120000 L_SPACE 167 MARGINS <83 83 167 41>
+ REZ <0 2000 2000 0 0>
+END SESSION
+
+SLIDE_INFO
+ SLIDE_STYLE <0 -1 1>
+END SLIDE_INFO
+PICTURE
+.TXT AT (375,1501)
+ BACKFILL <1 0 5 1000 0 0 0>
+ THICKNESS 0 STYLE 0 BOLD ON MARGINS <0 0 0 0>
+ TXTXYOFF <-3 112>
+ T_PNTS (0,112)(0,0)(374,0)(374,147)(0,147)(0,112)(374,112)
+ .STR
+  L_SPACE 250
+  "pgsql"
+.TXT AT (1280,446)
+ L_SPACE 167
+ TXTXYOFF <-3 115>
+ T_PNTS (0,115)(0,0)(227,0)(227,118)(0,118)(0,115)(227,115)
+ .STR
+  L_SPACE 250
+  "bin"
+.TXT AT (1277,1190)
+ L_SPACE 167
+ T_PNTS (0,115)(0,0)(177,0)(177,118)(0,118)(0,115)(177,115)
+ .STR
+  L_SPACE 250
+  "lib"
+.TXT AT (1235,3500)
+ L_SPACE 167
+ TXTXYOFF <-2 115>
+ T_PNTS (0,115)(0,0)(514,0)(514,118)(0,118)(0,115)(514,115)
+ .STR
+  L_SPACE 250
+  "include"
+.TXT AT (2027,3210)
+ L_SPACE 167
+ TXTXYOFF <-4 79>
+ T_PNTS (0,79)(0,0)(208,0)(208,82)(0,82)(0,79)(208,79)
+ .STR
+  L_SPACE 250
+  "src"
+.TXT AT (1291,2677)
+ L_SPACE 167
+ TXTXYOFF <-4 113>
+ T_PNTS (0,113)(0,0)(245,0)(245,116)(0,116)(0,113)(245,113)
+ .STR
+  L_SPACE 250
+  "doc"
+.TXT AT (1276,1932)
+ L_SPACE 167
+ T_PNTS (0,113)(0,0)(310,0)(310,116)(0,116)(0,113)(310,113)
+ .STR
+  L_SPACE 250
+  "data"
+.TXT AT (2000,250)
+ BOLD OFF L_SPACE 167
+ TXTXYOFF <-1 114>
+ T_PNTS (0,114)(0,0)(275,0)(275,151)(0,151)(0,114)(275,114)
+ .STR
+  L_SPACE 250
+  "psql"
+.TXT AT (2000,499)
+ L_SPACE 167
+ TXTXYOFF <-1 97>
+ T_PNTS (0,97)(0,0)(722,0)(722,134)(0,134)(0,97)(722,97)
+ .STR
+  L_SPACE 250
+  "postmaster"
+.TXT AT (2000,2249)
+ BOLD ON L_SPACE 167
+ TXTXYOFF <-3 113>
+ T_PNTS (0,113)(0,0)(310,0)(310,116)(0,116)(0,113)(310,113)
+ .STR
+  L_SPACE 250
+  "base"
+.TXT AT (1998,1748)
+ BOLD OFF L_SPACE 167
+ TXTXYOFF <-1 114>
+ T_PNTS (0,114)(0,0)(819,0)(819,151)(0,151)(0,114)(819,114)
+ .STR
+  L_SPACE 250
+  "pg_database"
+.TXT AT (2005,2008)
+ L_SPACE 167
+ TXTXYOFF <-12 17>
+ T_PNTS (0,17)(0,0)(103,0)(103,20)(0,20)(0,17)(103,17)
+ .STR
+  L_SPACE 250
+  "..."
+.TXT AT (2770,1927)
+ BOLD ON L_SPACE 167
+ TXTXYOFF <-3 115>
+ T_PNTS (0,115)(0,0)(693,0)(693,150)(0,150)(0,115)(693,115)
+ .STR
+  L_SPACE 250
+  "template1"
+.TXT AT (2786,2197)
+ L_SPACE 167
+ TXTXYOFF <-3 113>
+ T_PNTS (0,113)(0,0)(400,0)(400,148)(0,148)(0,113)(400,113)
+ .STR
+  L_SPACE 250
+  "mydb"
+.TXT AT (2807,2499)
+ L_SPACE 167
+ TXTXYOFF <-7 26>
+ T_PNTS (0,26)(0,0)(113,0)(113,29)(0,29)(0,26)(113,26)
+ .STR
+  L_SPACE 250
+  "..."
+.TXT AT (4000,1749)
+ BOLD OFF L_SPACE 167
+ TXTXYOFF <-1 114>
+ T_PNTS (0,114)(0,0)(566,0)(566,151)(0,151)(0,114)(566,114)
+ .STR
+  L_SPACE 250
+  "pg_class"
+.LINE AT (1000,500)
+ BACKFILL <1 0 0 0 0 0 0>
+ THICKNESS 1 BOLD ON L_SPACE 167 MARGINS <83 83 167 41>
+ PNTS (0,0)(0,3750)
+.LINE AT (1750,250)
+ PNTS (0,0)(0,500)
+.LINE AT (1750,1749)
+ PNTS (0,0)(0,499)
+.LINE AT (2500,1999)
+ PNTS (0,0)(0,500)
+.LINE AT (3807,1749)
+ PNTS (0,0)(0,500)
+.LINE AT (2250,2249)
+ PNTS (0,0)(250,0)
+.LINE AT (1547,500)
+ PNTS (0,0)(203,0)
+.LINE AT (1615,1999)
+ PNTS (0,0)(135,0)
+.LINE AT (750,1750)
+ PNTS (0,0)(250,0)
+.LINE AT (1000,500)
+ PNTS (0,0)(250,0)
+.LINE AT (1000,4000)
+ PNTS (0,0)(250,0)
+.LINE AT (2500,1999)
+ PNTS (0,0)(250,0)
+.LINE AT (3557,1999)
+ PNTS (0,0)(250,0)
+.LINE AT (2250,3250)
+ PNTS (0,0)(250,0)
+.LINE AT (1000,1999)
+ PNTS (0,0)(250,0)
+.LINE AT (2500,3000)
+ PNTS (0,0)(250,0)
+.TXT AT (5000,750)
+ BACKFILL <1 0 5 1000 0 0 0>
+ THICKNESS 0 MARGINS <0 0 0 0>
+ TXTXYOFF <-3 113>
+ T_PNTS (0,113)(0,0)(845,0)(845,116)(0,116)(0,113)(845,113)
+ .STR
+  L_SPACE 250
+  "Executables"
+.TXT AT (5000,3750)
+ L_SPACE 167
+ TXTXYOFF <-2 113>
+ T_PNTS (0,113)(0,0)(933,0)(933,148)(0,148)(0,113)(933,113)
+ .STR
+  L_SPACE 250
+  "Development"
+.TXT AT (5000,2000)
+ L_SPACE 167
+ T_PNTS (0,113)(0,0)(339,0)(339,116)(0,116)(0,113)(339,113)
+ .STR
+  L_SPACE 250
+  "Data"
+.LINE AT (2500,2499)
+ BACKFILL <1 0 0 0 0 0 0>
+ THICKNESS 1 L_SPACE 167 MARGINS <83 83 167 41>
+ PNTS (0,0)(250,0)
+.LINE AT (2500,2249)
+ PNTS (0,0)(250,0)
+.LINE AT (1750,2249)
+ PNTS (0,0)(250,0)
+.LINE AT (1000,1250)
+ PNTS (0,0)(250,0)
+.LINE AT (1000,2750)
+ PNTS (0,0)(250,0)
+.LINE AT (1750,3250)
+ PNTS (0,0)(250,0)
+.LINE AT (1750,2638)
+ BOLD OFF
+ PNTS (0,0)(0,612)
+.TXT AT (1277,3960)
+ BACKFILL <1 0 5 1000 0 0 0>
+ THICKNESS 0 BOLD ON MARGINS <0 0 0 0>
+ TXTXYOFF <-4 79>
+ T_PNTS (0,79)(0,0)(208,0)(208,82)(0,82)(0,79)(208,79)
+ .STR
+  L_SPACE 250
+  "src"
+.LINE AT (1500,4000)
+ BACKFILL <1 0 0 0 0 0 0>
+ THICKNESS 1 BOLD OFF L_SPACE 167 MARGINS <83 83 167 41>
+ PNTS (0,0)(250,0)
+.LINE AT (1750,3750)
+ PNTS (0,0)(0,999)
+.LINE AT (1750,3750)
+ PNTS (0,0)(250,0)
+.LINE AT (1750,4000)
+ PNTS (0,0)(250,0)
+.LINE AT (1750,4250)
+ PNTS (0,0)(250,0)
+.LINE AT (1750,4500)
+ PNTS (0,0)(250,0)
+.LINE AT (1560,2750)
+ BOLD ON
+ PNTS (0,0)(189,0)
+.TXT AT (1918,2732)
+ BACKFILL <1 0 5 1000 0 0 0>
+ THICKNESS 0 BOLD OFF MARGINS <0 0 0 0>
+ TXTXYOFF <-3 112>
+ T_PNTS (0,112)(0,0)(699,0)(699,113)(0,113)(0,112)(699,112)
+ .STR
+  L_SPACE 250
+  "README"
+.TXT AT (2030,3686)
+ BOLD ON L_SPACE 167
+ TXTXYOFF <-3 113>
+ T_PNTS (0,113)(0,0)(597,0)(597,116)(0,116)(0,113)(597,113)
+ .STR
+  L_SPACE 139
+  "backend"
+.TXT AT (2029,4454)
+ L_SPACE 167
+ TXTXYOFF <-3 105>
+ T_PNTS (0,105)(0,0)(248,0)(248,108)(0,108)(0,105)(248,105)
+ .STR
+  L_SPACE 139
+  "test"
+.TXT AT (2028,3934)
+ L_SPACE 167
+ TXTXYOFF <-3 115>
+ T_PNTS (0,115)(0,0)(688,0)(688,118)(0,118)(0,115)(688,115)
+ .STR
+  L_SPACE 139
+  "interfaces"
+.TXT AT (2027,4184)
+ L_SPACE 167
+ T_PNTS (0,115)(0,0)(514,0)(514,118)(0,118)(0,115)(514,115)
+ .STR
+  L_SPACE 139
+  "include"
+.GRP
+ BACKFILL <1 0 0 0 0 0 0>
+ THICKNESS 1 STYLE 5
+ V_SPACE <0 139 0>
+ SIZE 100000 BOLD OFF MARGINS <69 69 139 34>
+ .LINE AT (4813,250)
+  THICKNESS 28 STYLE 1
+  V_SPACE <0 167 0>
+  SIZE 120000 L_SPACE 167 MARGINS <83 83 167 41>
+  PNTS (0,0)(0,1250)
+ .LINE AT (4750,250)
+  PNTS (0,0)(0,1250)
+END .GRP
+.GRP
+ THICKNESS 1 STYLE 5
+ V_SPACE <0 139 0>
+ SIZE 100000 L_SPACE 139 MARGINS <69 69 139 34>
+ .LINE AT (4813,2750)
+  THICKNESS 28 STYLE 1
+  V_SPACE <0 167 0>
+  SIZE 120000 L_SPACE 167 MARGINS <83 83 167 41>
+  PNTS (0,0)(0,1999)
+ .LINE AT (4750,2750)
+  PNTS (0,0)(0,1999)
+END .GRP
+.GRP
+ THICKNESS 1 STYLE 5
+ V_SPACE <0 139 0>
+ SIZE 100000 L_SPACE 139 MARGINS <69 69 139 34>
+ .LINE AT (4813,1500)
+  THICKNESS 28 STYLE 0
+  V_SPACE <0 167 0>
+  SIZE 120000 L_SPACE 167 MARGINS <83 83 167 41>
+  PNTS (0,0)(0,1250)
+ .LINE AT (4750,1500)
+  PNTS (0,0)(0,1250)
+END .GRP
+.TXT AT (4025,2019)
+ BACKFILL <1 0 5 1000 0 0 0>
+ THICKNESS 0 STYLE 5 MARGINS <0 0 0 0>
+ TXTXYOFF <-12 17>
+ T_PNTS (0,17)(0,0)(103,0)(103,20)(0,20)(0,17)(103,17)
+ .STR
+  L_SPACE 139
+  "..."
+.LINE AT (2500,3000)
+ BACKFILL <1 0 0 0 0 0 0>
+ THICKNESS 1 STYLE 0 BOLD ON L_SPACE 167 MARGINS <83 83 167 41>
+ PNTS (0,0)(0,500)
+.TXT AT (2790,2939)
+ BACKFILL <1 0 5 1000 0 0 0>
+ THICKNESS 0 STYLE 5 MARGINS <0 0 0 0>
+ TXTXYOFF <-4 113>
+ T_PNTS (0,113)(0,0)(327,0)(327,148)(0,148)(0,113)(327,113)
+ .STR
+  L_SPACE 139
+  "sgml"
+.TXT AT (2000,750)
+ BOLD OFF L_SPACE 167
+ TXTXYOFF <-12 17>
+ T_PNTS (0,17)(0,0)(103,0)(103,20)(0,20)(0,17)(103,17)
+ .STR
+  L_SPACE 139
+  "..."
+.LINE AT (1750,1000)
+ BACKFILL <1 0 0 0 0 0 0>
+ THICKNESS 1 STYLE 0 BOLD ON L_SPACE 167 MARGINS <83 83 167 41>
+ PNTS (0,0)(0,500)
+.LINE AT (1500,1250)
+ PNTS (0,0)(250,0)
+.TXT AT (2000,1000)
+ BACKFILL <1 0 5 1000 0 0 0>
+ THICKNESS 0 STYLE 5 BOLD OFF MARGINS <0 0 0 0>
+ TXTXYOFF <-3 114>
+ T_PNTS (0,114)(0,0)(455,0)(455,151)(0,151)(0,114)(455,114)
+ .STR
+  "libpq.a"
+.TXT AT (2000,1250)
+ TXTXYOFF <-12 17>
+ T_PNTS (0,17)(0,0)(103,0)(103,20)(0,20)(0,17)(103,17)
+ .STR
+  L_SPACE 139
+  "..."
+END PICTURE
+
+*END GRAPHICS
diff --git a/doc/src/graphics/layout.gif b/doc/src/graphics/layout.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9ff7d4b06141179423cc66c1f6cbd03505a3b4d9
Binary files /dev/null and b/doc/src/graphics/layout.gif differ