~vcs-imports/mammoth-replicator/trunk

« back to all changes in this revision

Viewing changes to doc/src/sgml/docguide.sgml

  • Committer: alvherre
  • Date: 2005-12-16 21:24:52 UTC
  • Revision ID: svn-v4:db760fc0-0f08-0410-9d63-cc6633f64896:trunk:1
Initial import of the REL8_0_3 sources from the Pgsql CVS repository.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!-- $PostgreSQL: pgsql/doc/src/sgml/docguide.sgml,v 1.51 2004-11-15 06:32:13 neilc Exp $ -->
 
2
 
 
3
<appendix id="docguide">
 
4
 <title>Documentation</title>
 
5
 
 
6
 <para>
 
7
  <productname>PostgreSQL</productname> has four primary documentation
 
8
  formats:
 
9
 
 
10
  <itemizedlist>
 
11
   <listitem>
 
12
    <para>
 
13
     Plain text, for pre-installation information
 
14
    </para>
 
15
   </listitem>
 
16
   <listitem>
 
17
    <para>
 
18
     <acronym>HTML</acronym>, for on-line browsing and reference
 
19
    </para>
 
20
   </listitem>
 
21
   <listitem>
 
22
    <para>
 
23
     PDF or Postscript, for printing
 
24
    </para>
 
25
   </listitem>
 
26
   <listitem>
 
27
    <para>
 
28
     man pages, for quick reference.
 
29
    </para>
 
30
   </listitem>
 
31
  </itemizedlist>
 
32
 
 
33
  Additionally, a number of plain-text <filename>README</filename> files can
 
34
  be found throughout the <productname>PostgreSQL</productname> source tree,
 
35
  documenting various implementation issues.
 
36
 </para>
 
37
 
 
38
 <para>
 
39
  <acronym>HTML</acronym> documentation and man pages are part of a
 
40
  standard distribution and are installed by default.  PDF and
 
41
  Postscript format documentation is available separately for
 
42
  download.
 
43
 </para>
 
44
 
 
45
 <sect1 id="docguide-docbook">
 
46
  <title>DocBook</title>
 
47
  <para>
 
48
   The documentation sources are written in
 
49
   <firstterm>DocBook</firstterm>, which is a markup language
 
50
   superficially similar to <acronym>HTML</acronym>.  Both of these
 
51
   languages are applications of the <firstterm>Standard Generalized
 
52
   Markup Language</firstterm>, <acronym>SGML</acronym>, which is
 
53
   essentially a language for describing other languages.  In what
 
54
   follows, the terms DocBook and <acronym>SGML</acronym> are both
 
55
   used, but technically they are not interchangeable.
 
56
  </para>
 
57
 
 
58
  <para>
 
59
  <productname>DocBook</productname> allows an author to specify the
 
60
   structure and content of a technical document without worrying
 
61
   about presentation details.  A document style defines how that
 
62
   content is rendered into one of several final forms.  DocBook is
 
63
   maintained by the <ulink
 
64
   url="http://www.oasis-open.org">OASIS</ulink> group.  The <ulink
 
65
   url="http://www.oasis-open.org/docbook">official DocBook
 
66
   site</ulink> has good introductory and reference documentation and
 
67
   a complete O'Reilly book for your online reading pleasure.  The
 
68
   <ulink url="http://www.freebsd.org/docproj/docproj.html">FreeBSD
 
69
   Documentation Project</ulink> also uses DocBook and has some good
 
70
   information, including a number of style guidelines that might be
 
71
   worth considering.
 
72
  </para>
 
73
 </sect1>
 
74
 
 
75
 
 
76
 <sect1 id="docguide-toolsets">
 
77
  <title>Tool Sets</title>
 
78
 
 
79
  <para>
 
80
   The following tools are used to process the documentation.  Some
 
81
   may be optional, as noted.
 
82
 
 
83
   <variablelist>
 
84
    <varlistentry>
 
85
     <term><ulink url="http://www.oasis-open.org/docbook/sgml/">DocBook DTD</ulink></term>
 
86
     <listitem>
 
87
      <para>
 
88
       This is the definition of DocBook itself.  We currently use
 
89
       version 4.2; you cannot use later or earlier versions.  Note
 
90
       that there is also an <acronym>XML</acronym> version of DocBook
 
91
       &mdash; do not use that.
 
92
      </para>
 
93
     </listitem>
 
94
    </varlistentry>
 
95
 
 
96
    <varlistentry>
 
97
     <term><ulink url="http://www.oasis-open.org/cover/ISOEnts.zip">ISO 8879 character entities</ulink></term>
 
98
     <listitem>
 
99
      <para>
 
100
       These are required by DocBook but are distributed separately
 
101
       because they are maintained by ISO.
 
102
      </para>
 
103
     </listitem>
 
104
    </varlistentry>
 
105
 
 
106
    <varlistentry>
 
107
     <term><ulink url="http://openjade.sourceforge.net">OpenJade</ulink></term>
 
108
     <listitem>
 
109
      <para>
 
110
       This is the base package of <acronym>SGML</acronym> processing.
 
111
       It contains an <acronym>SGML</acronym> parser, a
 
112
       <acronym>DSSSL</acronym> processor (that is, a program to
 
113
       convert <acronym>SGML</acronym> to other formats using
 
114
       <acronym>DSSSL</acronym> stylesheets), as well as a number of
 
115
       related tools.  <productname>Jade</productname> is now being
 
116
       maintained by the OpenJade group, no longer by James Clark.
 
117
      </para>
 
118
     </listitem>
 
119
    </varlistentry>
 
120
 
 
121
    <varlistentry>
 
122
     <term><ulink url="http://docbook.sourceforge.net/projects/dsssl/index.html">DocBook DSSSL Stylesheets</ulink></term>
 
123
     <listitem>
 
124
      <para>
 
125
       These contain the processing instructions for converting the
 
126
       DocBook sources to other formats, such as
 
127
       <acronym>HTML</acronym>.
 
128
      </para>
 
129
     </listitem>
 
130
    </varlistentry>
 
131
 
 
132
    <varlistentry>
 
133
     <term><ulink url="http://docbook2x.sourceforge.net">DocBook2X tools</ulink></term>
 
134
     <listitem>
 
135
      <para>
 
136
       This optional package is used to create man pages.  It has a
 
137
       number of prerequisite packages of its own.  Check the web
 
138
       site.
 
139
      </para>
 
140
     </listitem>
 
141
    </varlistentry>
 
142
 
 
143
    <varlistentry>
 
144
     <term><ulink url="http://jadetex.sourceforge.net">JadeTeX</ulink></term>
 
145
     <listitem>
 
146
      <para>
 
147
       If you want to, you can also install
 
148
       <productname>JadeTeX</productname> to use
 
149
       <productname>TeX</productname> as a formatting backend for
 
150
       <productname>Jade</productname>.
 
151
       <application>JadeTeX</application> can create Postscript or
 
152
       <acronym>PDF</acronym> files (the latter with bookmarks).
 
153
      </para>
 
154
 
 
155
      <para>
 
156
       However, the output from <application>JadeTeX</application> is
 
157
       inferior to what you get from the <acronym>RTF</acronym>
 
158
       backend.  Particular problem areas are tables and various
 
159
       artifacts of vertical and horizontal spacing.  Also, there is
 
160
       no opportunity to manually polish the results.
 
161
      </para>
 
162
     </listitem>
 
163
    </varlistentry>
 
164
   </variablelist>
 
165
  </para>
 
166
 
 
167
  <para>
 
168
   We have documented experience with several installation methods for
 
169
   the various tools that are needed to process the documentation.
 
170
   These will be described below.  There may be some other packaged
 
171
   distributions for these tools. Please report package status to the
 
172
   documentation mailing list, and we will include that information
 
173
   here.
 
174
  </para>
 
175
 
 
176
  <sect2>
 
177
   <title><productname>Linux</productname> <acronym>RPM</acronym> Installation</title>
 
178
 
 
179
   <para>
 
180
    Most vendors provide a complete RPM set for DocBook processing in
 
181
    their distribution.  Look for an <quote>SGML</quote> option while
 
182
    installing, or the following packages:
 
183
    <filename>sgml-common</filename>, <filename>docbook</filename>,
 
184
    <filename>stylesheets</filename>, <filename>openjade</filename>
 
185
    (or <filename>jade</filename>).  Possibly
 
186
    <filename>sgml-tools</filename> will be needed as well.  If your
 
187
    distributor does not provide these then you should be able to make
 
188
    use of the packages from some other, reasonably compatible vendor.
 
189
   </para>
 
190
  </sect2>
 
191
 
 
192
  <sect2>
 
193
   <title>FreeBSD Installation</title>
 
194
 
 
195
   <para>
 
196
    The FreeBSD Documentation Project is itself a heavy user of
 
197
    DocBook, so it comes as no surprise that there is a full set of
 
198
    <quote>ports</quote> of the documentation tools available on
 
199
    FreeBSD.  The following ports need to be installed to build the
 
200
    documentation on FreeBSD.
 
201
    <itemizedlist>
 
202
     <listitem>
 
203
      <para><filename>textproc/sp</filename></para>
 
204
     </listitem>
 
205
     <listitem>
 
206
      <para><filename>textproc/openjade</filename></para>
 
207
     </listitem>
 
208
     <listitem>
 
209
      <para><filename>textproc/iso8879</filename></para>
 
210
     </listitem>
 
211
     <listitem>
 
212
      <para><filename>textproc/dsssl-docbook-modular</filename></para>
 
213
     </listitem>
 
214
    </itemizedlist>
 
215
    Apparently, there is no port for the DocBook V4.2 SGML DTD
 
216
    available right now.  You will need to install it manually.
 
217
   </para>
 
218
 
 
219
   <para>
 
220
    A number of things from <filename>/usr/ports/print</filename>
 
221
    (<filename>tex</filename>, <filename>jadetex</filename>) might
 
222
    also be of interest.
 
223
   </para>
 
224
 
 
225
   <para>
 
226
    It's possible that the ports do not update the main catalog file
 
227
    in <filename>/usr/local/share/sgml/catalog</filename>.  Be sure to
 
228
    have the following line in there:
 
229
<programlisting>
 
230
CATALOG "/usr/local/share/sgml/docbook/4.2/docbook.cat"
 
231
</programlisting>
 
232
    If you do not want to edit the file you can also set the
 
233
    environment variable <envar>SGML_CATALOG_FILES</envar> to a
 
234
    colon-separated list of catalog files (such as the one above).
 
235
   </para>
 
236
 
 
237
   <para>
 
238
    More information about the FreeBSD documentation tools can be
 
239
    found in the <ulink
 
240
    url="http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/tools.html">FreeBSD
 
241
    Documentation Project's instructions</ulink>.
 
242
   </para>
 
243
  </sect2>
 
244
 
 
245
  <sect2>
 
246
   <title>Debian Packages</title>
 
247
 
 
248
   <para>
 
249
    There is a full set of packages of the documentation tools
 
250
    available for <productname>Debian GNU/Linux</productname>.
 
251
    To install, simply use:
 
252
<programlisting>
 
253
apt-get install jade
 
254
apt-get install docbook
 
255
apt-get install docbook-stylesheets
 
256
</programlisting>
 
257
   </para>
 
258
  </sect2>
 
259
 
 
260
  <sect2>
 
261
   <title>Manual Installation from Source</title>
 
262
 
 
263
   <para>
 
264
    The manual installation process of the DocBook tools is somewhat
 
265
    complex, so if you have pre-built packages available, use them.
 
266
    We describe here only a standard setup, with reasonably standard
 
267
    installation paths, and no <quote>fancy</quote> features.  For
 
268
    details, you should study the documentation of the respective
 
269
    package, and read <acronym>SGML</acronym> introductory material.
 
270
   </para>
 
271
 
 
272
   <sect3>
 
273
    <title>Installing OpenJade</title>
 
274
 
 
275
    <procedure>
 
276
      <step>
 
277
       <para>
 
278
        The installation of OpenJade offers a GNU-style
 
279
        <literal>./configure; make; make install</literal> build
 
280
        process.  Details can be found in the OpenJade source
 
281
        distribution. In a nutshell:
 
282
<synopsis>
 
283
./configure --enable-default-catalog=/usr/local/share/sgml/catalog
 
284
make
 
285
make install
 
286
</synopsis>
 
287
        Be sure to remember where you put the <quote>default
 
288
        catalog</quote>; you will need it below.  You can also leave
 
289
        it off, but then you will have to set the environment variable
 
290
        <envar>SGML_CATALOG_FILES</envar> to point to the file
 
291
        whenever you use <application>jade</application> later on.
 
292
        (This method is also an option if OpenJade is already
 
293
        installed and you want to install the rest of the toolchain
 
294
        locally.)
 
295
       </para>
 
296
      </step>
 
297
 
 
298
      <step id="doc-openjade-install">
 
299
       <para>
 
300
        Additionally, you should install the files
 
301
        <filename>dsssl.dtd</filename>, <filename>fot.dtd</filename>,
 
302
        <filename>style-sheet.dtd</filename>, and
 
303
        <filename>catalog</filename> from the
 
304
        <filename>dsssl</filename> directory somewhere, perhaps into
 
305
        <filename>/usr/local/share/sgml/dsssl</filename>.  It's
 
306
        probably easiest to copy the entire directory:
 
307
<synopsis>
 
308
cp -R dsssl /usr/local/share/sgml
 
309
</synopsis>
 
310
       </para>
 
311
      </step>
 
312
 
 
313
      <step>
 
314
       <para>
 
315
        Finally, create the file
 
316
        <filename>/usr/local/share/sgml/catalog</filename> and add
 
317
        this line to it:
 
318
<programlisting>
 
319
CATALOG "dsssl/catalog"
 
320
</programlisting>
 
321
        (This is a relative path reference to the file installed in
 
322
        <xref linkend="doc-openjade-install">.  Be sure to adjust it
 
323
        if you chose your installation layout differently.)
 
324
       </para>
 
325
      </step>
 
326
     </procedure>
 
327
   </sect3>
 
328
 
 
329
   <sect3>
 
330
    <title>Installing the <productname>DocBook</productname> <acronym>DTD</acronym> Kit</title>
 
331
 
 
332
    <procedure>
 
333
     <step>
 
334
      <para>
 
335
       Obtain the <ulink
 
336
       url="http://www.docbook.org/sgml/4.2/docbook-4.2.zip">DocBook
 
337
       V4.2</ulink> distribution.
 
338
      </para>
 
339
     </step>
 
340
 
 
341
     <step>
 
342
      <para>
 
343
       Create the directory
 
344
       <filename>/usr/local/share/sgml/docbook-4.2</filename> and change
 
345
       to it. (The exact location is irrelevant, but this one is
 
346
       reasonable within the layout we are following here.)
 
347
<screen>
 
348
<prompt>$ </prompt><userinput>mkdir /usr/local/share/sgml/docbook-4.2</userinput>
 
349
<prompt>$ </prompt><userinput>cd /usr/local/share/sgml/docbook-4.2</userinput>
 
350
</screen>
 
351
      </para>
 
352
     </step>
 
353
 
 
354
     <step>
 
355
      <para>
 
356
       Unpack the archive.
 
357
<screen>
 
358
<prompt>$ </prompt><userinput>unzip -a ...../docbook-4.2.zip</userinput>
 
359
</screen>
 
360
       (The archive will unpack its files into the current directory.)
 
361
      </para>
 
362
     </step>
 
363
 
 
364
     <step>
 
365
      <para>
 
366
       Edit the file
 
367
       <filename>/usr/local/share/sgml/catalog</filename> (or whatever
 
368
       you told jade during installation) and put a line like this
 
369
       into it:
 
370
<programlisting>
 
371
CATALOG "docbook-4.2/docbook.cat"
 
372
</programlisting>
 
373
      </para>
 
374
     </step>
 
375
 
 
376
     <step>
 
377
      <para>
 
378
       Download the <ulink
 
379
       url="http://www.oasis-open.org/cover/ISOEnts.zip">ISO 8879
 
380
       character entities</ulink> archive, unpack it, and put the
 
381
       files in the same directory you put the DocBook files in.
 
382
<screen>
 
383
<prompt>$ </prompt><userinput>cd /usr/local/share/sgml/docbook-4.2</userinput>
 
384
<prompt>$ </prompt><userinput>unzip ...../ISOEnts.zip</userinput>
 
385
</screen>
 
386
      </para>
 
387
     </step>
 
388
 
 
389
     <step>
 
390
      <para>
 
391
       Run the following command in the directory with the DocBook and ISO files:
 
392
<programlisting>
 
393
perl -pi -e 's/iso-(.*).gml/ISO\1/g' docbook.cat
 
394
</programlisting>
 
395
       (This fixes a mixup between the names used in the DocBook
 
396
       catalog file and the actual names of the ISO character entity
 
397
       files.)
 
398
      </para>
 
399
     </step>
 
400
    </procedure>
 
401
   </sect3>
 
402
 
 
403
   <sect3>
 
404
    <title>Installing the DocBook <acronym>DSSSL</acronym> Style Sheets</title>
 
405
 
 
406
    <para>
 
407
     To install the style sheets, unzip and untar the distribution and
 
408
     move it to a suitable place, for example
 
409
     <filename>/usr/local/share/sgml</filename>.  (The archive will
 
410
     automatically create a subdirectory.)
 
411
<screen>
 
412
<prompt>$</prompt> <userinput>gunzip docbook-dsssl-1.<replaceable>xx</>.tar.gz</userinput>
 
413
<prompt>$</prompt> <userinput>tar -C /usr/local/share/sgml -xf docbook-dsssl-1.<replaceable>xx</>.tar</userinput>
 
414
</screen>
 
415
    </para>
 
416
 
 
417
    <para>
 
418
     The usual catalog entry in
 
419
     <filename>/usr/local/share/sgml/catalog</filename> can also be
 
420
     made:
 
421
<programlisting>
 
422
CATALOG "docbook-dsssl-1.<replaceable>xx</>/catalog
 
423
</programlisting>
 
424
     Because stylesheets change rather often, and it's sometimes
 
425
     beneficial to try out alternative versions,
 
426
     <productname>PostgreSQL</productname> doesn't use this catalog
 
427
     entry.  See <xref linkend="docguide-toolsets-configure"> for
 
428
     information about how to select the stylesheets instead.
 
429
    </para>
 
430
   </sect3>
 
431
 
 
432
   <sect3>
 
433
    <title>Installing <productname>JadeTeX</productname></title>
 
434
 
 
435
    <para>
 
436
     To install and use <productname>JadeTeX</productname>, you will
 
437
     need a working installation of <productname>TeX</productname> and
 
438
     <productname>LaTeX2e</productname>, including the supported
 
439
     <productname>tools</productname> and
 
440
     <productname>graphics</productname> packages,
 
441
     <productname>Babel</productname>,
 
442
     <productname><acronym>AMS</acronym> fonts</productname> and
 
443
     <productname>AMS-LaTeX</productname>, the
 
444
     <productname><acronym>PSNFSS</acronym></productname> extension
 
445
     and companion kit of <quote>the 35 fonts</quote>, the
 
446
     <productname>dvips</productname> program for generating
 
447
     <productname>PostScript</productname>, the macro packages
 
448
     <productname>fancyhdr</productname>,
 
449
     <productname>hyperref</productname>,
 
450
     <productname>minitoc</productname>,
 
451
     <productname>url</productname> and
 
452
     <productname>ot2enc</productname>.  All of these can be found on
 
453
     your friendly neighborhood <ulink
 
454
     url="http://www.ctan.org"><acronym>CTAN</acronym></ulink> site.
 
455
     The installation of the <application>TeX</application> base
 
456
     system is far beyond the scope of this introduction.  Binary
 
457
     packages should be available for any system that can run
 
458
     <application>TeX</application>.
 
459
    </para>
 
460
 
 
461
    <para>
 
462
     Before you can use <application>JadeTeX</application> with the
 
463
     <productname>PostgreSQL</productname> documentation sources, you
 
464
     will need to increase the size of
 
465
     <application>TeX</application>'s internal data structures.
 
466
     Details on this can be found in the <application>JadeTeX</application>
 
467
     installation instructions.
 
468
    </para>
 
469
 
 
470
    <para>
 
471
     Once that is finished you can install <application>JadeTeX</application>:
 
472
<screen>
 
473
<prompt>$</prompt> <userinput>gunzip jadetex-<replaceable>xxx</replaceable>.tar.gz</userinput>
 
474
<prompt>$</prompt> <userinput>tar xf jadetex-<replaceable>xxx</replaceable>.tar</userinput>
 
475
<prompt>$</prompt> <userinput>cd jadetex</userinput>
 
476
<prompt>$</prompt> <userinput>make install</userinput>
 
477
<prompt>$</prompt> <userinput>mktexlsr</userinput>
 
478
</screen>
 
479
     The last two need to be done as <systemitem>root</systemitem>.
 
480
    </para>
 
481
 
 
482
   </sect3>
 
483
 
 
484
  </sect2>
 
485
 
 
486
  <sect2 id="docguide-toolsets-configure">
 
487
   <title>Detection by <command>configure</command></title>
 
488
 
 
489
  <para>
 
490
   Before you can build the documentation you need to run the
 
491
   <filename>configure</filename> script as you would when building
 
492
   the <productname>PostgreSQL</productname> programs themselves.
 
493
   Check the output near the end of the run, it should look something
 
494
   like this:
 
495
<screen>
 
496
<computeroutput>
 
497
checking for onsgmls... onsgmls
 
498
checking for openjade... openjade
 
499
checking for DocBook V4.2... yes
 
500
checking for DocBook stylesheets... /usr/lib/sgml/stylesheets/nwalsh-modular
 
501
checking for sgmlspl... sgmlspl
 
502
</computeroutput>
 
503
</screen>
 
504
   If neither <filename>onsgmls</filename> nor
 
505
   <filename>nsgmls</filename> were found then you will not see the
 
506
   remaining 4 lines.  <filename>nsgmls</filename> is part of the Jade
 
507
   package.  If <quote>DocBook V4.2</quote> was not found then you did
 
508
   not install the DocBook DTD kit in a place where jade can find it,
 
509
   or you have not set up the catalog files correctly.  See the
 
510
   installation hints above.  The DocBook stylesheets are looked for
 
511
   in a number of relatively standard places, but if you have them
 
512
   some other place then you should set the environment variable
 
513
   <envar>DOCBOOKSTYLE</envar> to the location and rerun
 
514
   <filename>configure</filename> afterwards.
 
515
  </para>
 
516
 
 
517
  </sect2>
 
518
 </sect1>
 
519
 
 
520
 <sect1 id="docguide-build">
 
521
  <title>Building The Documentation</title>
 
522
 
 
523
  <para>
 
524
   Once you have everything set up, change to the directory
 
525
   <filename>doc/src/sgml</filename> and run one of the commands
 
526
   described in the following subsections to build the
 
527
   documentation. (Remember to use GNU make.)
 
528
  </para>
 
529
 
 
530
  <sect2>
 
531
   <title>HTML</title>
 
532
 
 
533
   <para>
 
534
    To build the <acronym>HTML</acronym> version of the documentation:
 
535
<screen>
 
536
<prompt>doc/src/sgml$ </prompt><userinput>gmake html</userinput>
 
537
</screen>
 
538
    This is also the default target.
 
539
   </para>
 
540
 
 
541
   <para>
 
542
    When the HTML documentation is built, the process also generates
 
543
    the linking information for the index entries.  Thus, if you want
 
544
    your documentation to have a concept index at the end, you need to
 
545
    build the HTML documentation once, and then build the
 
546
    documentation again in whatever format you like.
 
547
   </para>
 
548
 
 
549
   <para>
 
550
    To allow for easier handling in the final distribution, the files
 
551
    comprising the HTML documentation are stored in a tar archive that
 
552
    is unpacked at installation time.  To create the
 
553
    <acronym>HTML</acronym> documentation package, use the commands
 
554
<programlisting>
 
555
cd doc/src
 
556
gmake postgres.tar.gz
 
557
</programlisting>
 
558
    In the distribution, these archives live in the
 
559
    <filename>doc</filename> directory and are installed by default
 
560
    with <command>gmake install</command>.
 
561
  </para>
 
562
 </sect2>
 
563
 
 
564
 <sect2>
 
565
  <title>Manpages</title>
 
566
 
 
567
  <para>
 
568
   We use the <application>docbook2man</application> utility to
 
569
   convert <productname>DocBook</productname>
 
570
   <sgmltag>refentry</sgmltag> pages to *roff output suitable for man
 
571
   pages.  The man pages are also distributed as a tar archive,
 
572
   similar to the <acronym>HTML</acronym> version.  To create the man
 
573
   page package, use the commands
 
574
<programlisting>
 
575
cd doc/src
 
576
gmake man.tar.gz
 
577
</programlisting>
 
578
   which will result in a tar file being generated in the
 
579
   <filename>doc/src</filename> directory.
 
580
  </para>
 
581
 
 
582
  <para>
 
583
   To generate quality man pages, it might be necessary to use a
 
584
   hacked version of the conversion utility or do some manual
 
585
   postprocessing.  All man pages should be manually inspected before
 
586
   distribution.
 
587
  </para>
 
588
 </sect2>
 
589
 
 
590
  <sect2>
 
591
   <title>Print Output via <application>JadeTex</application></title>
 
592
 
 
593
   <para>
 
594
    If you want to use <application>JadeTex</application> to produce a
 
595
    printable rendition of the documentation, you can use one of the
 
596
    following commands:
 
597
 
 
598
    <itemizedlist>
 
599
     <listitem>
 
600
      <para>
 
601
       To make a <acronym>DVI</acronym> version:
 
602
<screen>
 
603
<prompt>doc/src/sgml$ </prompt><userinput>gmake postgres.dvi</userinput>
 
604
</screen>
 
605
      </para>
 
606
     </listitem>
 
607
 
 
608
     <listitem>
 
609
      <para>
 
610
       To generate Postscript from the <acronym>DVI</acronym>:
 
611
<screen>
 
612
<prompt>doc/src/sgml$ </prompt><userinput>gmake postgres.ps</userinput>
 
613
</screen>
 
614
      </para>
 
615
     </listitem>
 
616
  
 
617
     <listitem>
 
618
      <para>
 
619
       To make a <acronym>PDF</acronym>:
 
620
<screen>
 
621
<prompt>doc/src/sgml$ </prompt><userinput>gmake postgres.pdf</userinput>
 
622
</screen>
 
623
       (Of course you can also make a <acronym>PDF</acronym> version
 
624
       from the Postscript, but if you generate <acronym>PDF</acronym>
 
625
       directly, it will have hyperlinks and other enhanced features.)
 
626
      </para>
 
627
     </listitem>
 
628
    </itemizedlist>
 
629
   </para>
 
630
  </sect2>
 
631
 
 
632
  <sect2>
 
633
   <title>Print Output via <acronym>RTF</acronym></title>
 
634
 
 
635
   <para>
 
636
    You can also create a printable version of the <productname>PostgreSQL</productname>
 
637
    documentation by converting it to <acronym>RTF</acronym> and
 
638
    applying minor formatting corrections using an office suite.
 
639
    Depending on the capabilities of the particular office suite, you
 
640
    can then convert the documentation to Postscript of
 
641
    <acronym>PDF</acronym>.  The procedure below illustrates this
 
642
    process using <productname>Applixware</productname>.
 
643
   </para>
 
644
 
 
645
   <note>
 
646
    <para>
 
647
     It appears that current versions of the <productname>PostgreSQL</productname> documentation
 
648
     trigger some bug in or exceed the size limit of OpenJade.  If the
 
649
     build process of the <acronym>RTF</acronym> version hangs for a
 
650
     long time and the output file still has size 0, then you may have
 
651
     hit that problem.  (But keep in mind that a normal build takes 5
 
652
     to 10 minutes, so don't abort too soon.)
 
653
    </para>
 
654
   </note>
 
655
 
 
656
   <procedure>
 
657
    <title><productname>Applixware</productname> <acronym>RTF</acronym> Cleanup</title>
 
658
 
 
659
    <para>
 
660
     <application>OpenJade</application> omits specifying a default
 
661
     style for body text. In the past, this undiagnosed problem led to
 
662
     a long process of table of contents generation. However, with
 
663
     great help from the <productname>Applixware</productname> folks
 
664
     the symptom was diagnosed and a workaround is available.
 
665
    </para>
 
666
 
 
667
    <step performance="required">
 
668
     <para>
 
669
      Generate the <acronym>RTF</acronym> version by typing:
 
670
<screen>
 
671
<prompt>doc/src/sgml$ </prompt><userinput>gmake postgres.rtf</userinput>
 
672
</screen>
 
673
     </para>
 
674
    </step>
 
675
 
 
676
    <step performance="required">
 
677
     <para>
 
678
      Repair the RTF file to correctly specify all styles, in
 
679
      particular the default style. If the document contains
 
680
      <sgmltag>refentry</sgmltag> sections, one must also replace
 
681
      formatting hints which tie a preceding paragraph to the current
 
682
      paragraph, and instead tie the current paragraph to the
 
683
      following one. A utility, <command>fixrtf</command>, is
 
684
      available in <filename>doc/src/sgml</filename> to accomplish
 
685
      these repairs:
 
686
 
 
687
<screen>
 
688
<prompt>doc/src/sgml$ </prompt><userinput>./fixrtf --refentry postgres.rtf</userinput>
 
689
</screen>
 
690
     </para>
 
691
 
 
692
     <para>
 
693
      The script adds <literal>{\s0 Normal;}</literal> as the zeroth
 
694
      style in the document. According to
 
695
      <productname>Applixware</productname>, the RTF standard would
 
696
      prohibit adding an implicit zeroth style, though Microsoft Word
 
697
      happens to handle this case. For repairing
 
698
      <sgmltag>refentry</sgmltag> sections, the script replaces
 
699
      <literal>\keepn</literal> tags with <literal>\keep</literal>.
 
700
     </para>
 
701
    </step>
 
702
 
 
703
    <step performance="required">
 
704
     <para>
 
705
      Open a new document in <productname>Applixware Words</productname> and
 
706
      then import the <acronym>RTF</acronym> file.
 
707
     </para>
 
708
    </step>
 
709
 
 
710
    <step performance="required">
 
711
     <para>
 
712
      Generate a new table of contents (ToC) using
 
713
      <productname>Applixware</productname>.
 
714
     </para>
 
715
 
 
716
     <substeps>
 
717
      <step>
 
718
       <para>
 
719
        Select the existing ToC lines, from the beginning of the first
 
720
        character on the first line to the last character of the last
 
721
        line.
 
722
       </para>
 
723
      </step>
 
724
 
 
725
      <step>
 
726
       <para>
 
727
        Build a new ToC using
 
728
        <menuchoice><guimenu>Tools</guimenu><guisubmenu>Book
 
729
        Building</guisubmenu><guimenuitem>Create Table of
 
730
        Contents</guimenuitem></menuchoice>. Select the first three
 
731
        levels of headers for inclusion in the ToC. This will replace
 
732
        the existing lines imported in the RTF with a native
 
733
        <productname>Applixware</productname> ToC.
 
734
       </para>
 
735
      </step>
 
736
 
 
737
      <step>
 
738
       <para>
 
739
        Adjust the ToC formatting by using
 
740
        <menuchoice><guimenu>Format</guimenu><guimenuitem>Style</guimenuitem></menuchoice>,
 
741
        selecting each of the three ToC styles, and adjusting the
 
742
        indents for <literal>First</literal> and
 
743
        <literal>Left</literal>. Use the following values:
 
744
 
 
745
        <informaltable>
 
746
         <tgroup cols="3">
 
747
          <thead>
 
748
           <row>
 
749
            <entry>Style</entry>
 
750
            <entry>First Indent (inches)</entry>
 
751
            <entry>Left Indent (inches)</entry>
 
752
           </row>
 
753
          </thead>
 
754
 
 
755
          <tbody>
 
756
           <row>
 
757
            <entry><literal>TOC-Heading 1</literal></entry>
 
758
            <entry><literal>0.4</literal></entry>
 
759
            <entry><literal>0.4</literal></entry>
 
760
           </row>
 
761
 
 
762
           <row>
 
763
            <entry><literal>TOC-Heading 2</literal></entry>
 
764
            <entry><literal>0.8</literal></entry>
 
765
            <entry><literal>0.8</literal></entry>
 
766
           </row>
 
767
 
 
768
           <row>
 
769
            <entry><literal>TOC-Heading 3</literal></entry>
 
770
            <entry><literal>1.2</literal></entry>
 
771
            <entry><literal>1.2</literal></entry>
 
772
           </row>
 
773
          </tbody>
 
774
         </tgroup>
 
775
        </informaltable>
 
776
       </para>
 
777
      </step>
 
778
     </substeps>
 
779
    </step>
 
780
 
 
781
    <step performance="required">
 
782
     <para>
 
783
      Work through the document to:
 
784
 
 
785
      <itemizedlist>
 
786
       <listitem>
 
787
        <para>
 
788
         Adjust page breaks.
 
789
        </para>
 
790
       </listitem>
 
791
 
 
792
       <listitem>
 
793
        <para>
 
794
         Adjust table column widths.
 
795
        </para>
 
796
       </listitem>
 
797
      </itemizedlist>
 
798
     </para>
 
799
    </step>
 
800
 
 
801
    <step performance="required">
 
802
     <para>
 
803
      Replace the right-justified page numbers in the Examples and
 
804
      Figures portions of the ToC with correct values. This only takes
 
805
      a few minutes.
 
806
     </para>
 
807
    </step>
 
808
 
 
809
    <step performance="optional">
 
810
     <para>
 
811
       Delete the index section from the document if it is empty.
 
812
     </para>
 
813
    </step>
 
814
 
 
815
    <step performance="required">
 
816
     <para>
 
817
       Regenerate and adjust the table of contents.
 
818
     </para>
 
819
 
 
820
      <substeps>
 
821
       <step>
 
822
        <para>
 
823
         Select the ToC field.
 
824
        </para>
 
825
       </step>
 
826
 
 
827
       <step>
 
828
        <para>
 
829
         Select <menuchoice><guimenu>Tools</guimenu><guisubmenu>Book
 
830
         Building</guisubmenu><guimenuitem>Create Table of
 
831
         Contents</guimenuitem></menuchoice>.
 
832
        </para>
 
833
       </step>
 
834
 
 
835
       <step>
 
836
        <para>
 
837
         Unbind the ToC by selecting
 
838
         <menuchoice><guimenu>Tools</guimenu><guisubmenu>Field
 
839
         Editing</guisubmenu><guimenuitem>Unprotect</guimenuitem></menuchoice>.
 
840
        </para>
 
841
       </step>
 
842
 
 
843
       <step>
 
844
        <para>
 
845
         Delete the first line in the ToC, which is an entry for the
 
846
         ToC itself.
 
847
        </para>
 
848
       </step>
 
849
      </substeps>
 
850
    </step>
 
851
 
 
852
    <step performance="required">
 
853
     <para>
 
854
      Save the document as native <productname>Applixware
 
855
      Words</productname> format to allow easier last minute editing
 
856
      later.
 
857
     </para>
 
858
    </step>
 
859
 
 
860
    <step performance="required">
 
861
     <para>
 
862
      <quote>Print</quote> the document
 
863
      to a file in Postscript format.
 
864
     </para>
 
865
    </step>
 
866
   </procedure>
 
867
  </sect2>
 
868
 
 
869
  <sect2>
 
870
   <title>Plain Text Files</title>
 
871
 
 
872
   <para>
 
873
    Several files are distributed as plain text, for reading during
 
874
    the installation process. The <filename>INSTALL</filename> file
 
875
    corresponds to <xref linkend="installation">, with some minor
 
876
    changes to account for the different context.  To recreate the
 
877
    file, change to the directory <filename>doc/src/sgml</filename>
 
878
    and enter <userinput>gmake INSTALL</userinput>.  This will create
 
879
    a file <filename>INSTALL.html</filename> that can be saved as text
 
880
    with <productname>Netscape Navigator</productname> and put into
 
881
    the place of the existing file.
 
882
    <productname>Netscape</productname> seems to offer the best
 
883
    quality for <acronym>HTML</acronym> to text conversions (over
 
884
    <application>lynx</application> and
 
885
    <application>w3m</application>).
 
886
   </para>
 
887
 
 
888
   <para>
 
889
    The file <filename>HISTORY</filename> can be created similarly,
 
890
    using the command <userinput>gmake HISTORY</userinput>.  For the
 
891
    file <filename>src/test/regress/README</filename> the command is
 
892
    <userinput>gmake regress_README</userinput>.
 
893
   </para>
 
894
  </sect2>
 
895
 
 
896
  <sect2>
 
897
   <title>Syntax Check</title>
 
898
 
 
899
   <para>
 
900
    Building the documentation can take very long.  But there is a
 
901
    method to just check the correct syntax of the documentation
 
902
    files, which only takes a few seconds:
 
903
<screen>
 
904
<prompt>doc/src/sgml$ </prompt><userinput>gmake check</userinput>
 
905
</screen>
 
906
   </para>
 
907
  </sect2>
 
908
 </sect1>
 
909
 
 
910
 
 
911
 <sect1 id="docguide-authoring">
 
912
  <title>Documentation Authoring</title>
 
913
 
 
914
   <para>
 
915
    <acronym>SGML</acronym> and <productname>DocBook</productname> do
 
916
    not suffer from an oversupply of open-source authoring tools. The
 
917
    most common tool set is the
 
918
    <productname>Emacs</productname>/<productname>XEmacs</productname>
 
919
    editor with appropriate editing mode.  On some systems
 
920
    these tools are provided in a typical full installation.
 
921
   </para>
 
922
 
 
923
   <sect2>
 
924
    <title>Emacs/PSGML</title>
 
925
 
 
926
    <para>
 
927
     <productname>PSGML</productname> is the most common and most
 
928
     powerful mode for editing <acronym>SGML</acronym> documents.
 
929
     When properly configured, it will allow you to use
 
930
     <application>Emacs</application> to insert tags and check markup
 
931
     consistency.  You could use it for <acronym>HTML</acronym> as
 
932
     well.  Check the <ulink
 
933
     url="http://www.lysator.liu.se/projects/about_psgml.html">PSGML
 
934
     web site</ulink> for downloads, installation instructions, and
 
935
     detailed documentation.
 
936
    </para>
 
937
 
 
938
    <para>
 
939
     There is one important thing to note with
 
940
     <productname>PSGML</productname>: its author assumed that your
 
941
     main <acronym>SGML</acronym> <acronym>DTD</acronym> directory
 
942
     would be <filename>/usr/local/lib/sgml</filename>.  If, as in the
 
943
     examples in this chapter, you use
 
944
     <filename>/usr/local/share/sgml</filename>, you have to
 
945
     compensate for this, either by setting
 
946
     <envar>SGML_CATALOG_FILES</envar> environment variable, or you
 
947
     can customize your <productname>PSGML</productname> installation
 
948
     (its manual tells you how).
 
949
    </para>
 
950
 
 
951
    <para>
 
952
     Put the following in your <filename>~/.emacs</filename>
 
953
     environment file (adjusting the path names to be appropriate for
 
954
     your system):
 
955
 
 
956
<programlisting>
 
957
; ********** for SGML mode (psgml)
 
958
 
 
959
(setq sgml-omittag t)
 
960
(setq sgml-shorttag t)
 
961
(setq sgml-minimize-attributes nil)
 
962
(setq sgml-always-quote-attributes t)
 
963
(setq sgml-indent-step 1)
 
964
(setq sgml-indent-data t)
 
965
(setq sgml-parent-document nil)
 
966
(setq sgml-default-dtd-file "./reference.ced")
 
967
(setq sgml-exposed-tags nil)
 
968
(setq sgml-catalog-files '("/usr/local/share/sgml/catalog"))
 
969
(setq sgml-ecat-files nil)
 
970
 
 
971
(autoload 'sgml-mode "psgml" "Major mode to edit SGML files." t )
 
972
</programlisting>
 
973
 
 
974
     and in the same file add an entry for <acronym>SGML</acronym>
 
975
     into the (existing) definition for
 
976
     <varname>auto-mode-alist</varname>:
 
977
<programlisting>
 
978
(setq
 
979
  auto-mode-alist
 
980
  '(("\\.sgml$" . sgml-mode)
 
981
   ))
 
982
</programlisting>
 
983
    </para>
 
984
 
 
985
    <para>
 
986
     Currently, each <acronym>SGML</acronym> source file has the
 
987
     following block at the end of the file:
 
988
 
 
989
<programlisting>
 
990
&lt;!-- Keep this comment at the end of the file
 
991
Local variables:
 
992
mode: sgml
 
993
sgml-omittag:t
 
994
sgml-shorttag:t
 
995
sgml-minimize-attributes:nil
 
996
sgml-always-quote-attributes:t
 
997
sgml-indent-step:1
 
998
sgml-indent-data:t
 
999
sgml-parent-document:nil
 
1000
sgml-default-dtd-file:"./reference.ced"
 
1001
sgml-exposed-tags:nil
 
1002
sgml-local-catalogs:("/usr/lib/sgml/catalog")
 
1003
sgml-local-ecat-files:nil
 
1004
End:
 
1005
--&gt;
 
1006
</programlisting>
 
1007
     This will set up a number of editing mode parameters even if you
 
1008
     do not set up your <filename>~/.emacs</filename> file, but it is
 
1009
     a bit unfortunate, since if you followed the installation
 
1010
     instructions above, then the catalog path will not match your
 
1011
     location.  Hence you might need to turn off local variables:
 
1012
<programlisting>
 
1013
(setq inhibit-local-variables t)
 
1014
</programlisting>
 
1015
    </para>
 
1016
 
 
1017
    <para>
 
1018
     The <productname>PostgreSQL</productname> distribution includes a
 
1019
     parsed DTD definitions file <filename>reference.ced</filename>.
 
1020
     You may find that when using <productname>PSGML</productname>, a
 
1021
     comfortable way of working with these separate files of book
 
1022
     parts is to insert a proper <literal>DOCTYPE</literal>
 
1023
     declaration while you're editing them.  If you are working on
 
1024
     this source, for instance, it is an appendix chapter, so you
 
1025
     would specify the document as an <quote>appendix</quote> instance
 
1026
     of a DocBook document by making the first line look like this:
 
1027
 
 
1028
<programlisting>
 
1029
&lt;!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.2//EN"&gt;
 
1030
</programlisting>
 
1031
 
 
1032
     This means that anything and everything that reads
 
1033
     <acronym>SGML</acronym> will get it right, and I can verify the
 
1034
     document with <command>nsgmls -s docguide.sgml</command>.  (But
 
1035
     you need to take out that line before building the entire
 
1036
     documentation set.)
 
1037
    </para>
 
1038
   </sect2>
 
1039
 
 
1040
   <sect2>
 
1041
    <title>Other Emacs modes</title>
 
1042
 
 
1043
    <para>
 
1044
     <productname>GNU Emacs</productname> ships with a different
 
1045
     <acronym>SGML</acronym> mode, which is not quite as powerful as
 
1046
     <productname>PSGML</productname>, but it's less confusing and
 
1047
     lighter weight.  Also, it offers syntax highlighting (font lock),
 
1048
     which can be very helpful.
 
1049
    </para>
 
1050
 
 
1051
    <para>
 
1052
     Norm Walsh offers a major <ulink
 
1053
     url="http://nwalsh.com/emacs/docbookide/index.html">mode
 
1054
     specifically for DocBook</ulink> which also has font-lock and a
 
1055
     number of features to reduce typing.
 
1056
    </para>
 
1057
   </sect2>
 
1058
 
 
1059
 </sect1>
 
1060
 
 
1061
 
 
1062
 <sect1 id="docguide-style">
 
1063
  <title>Style Guide</title>
 
1064
 
 
1065
  <sect2>
 
1066
   <title>Reference Pages</title>
 
1067
 
 
1068
   <para>
 
1069
    Reference pages should follow a standard layout.  This allows
 
1070
    users to find the desired information more quickly, and it also
 
1071
    encourages writers to document all relevant aspects of a command.
 
1072
    Consistency is not only desired among
 
1073
    <productname>PostgreSQL</productname> reference pages, but also
 
1074
    with reference pages provided by the operating system and other
 
1075
    packages.  Hence the following guidelines have been developed.
 
1076
    They are for the most part consistent with similar guidelines
 
1077
    established by various operating systems.
 
1078
   </para>
 
1079
 
 
1080
   <para>
 
1081
    Reference pages that describe executable commands should contain
 
1082
    the following sections, in this order.  Sections that do not apply
 
1083
    may be omitted.  Additional top-level sections should only be used
 
1084
    in special circumstances; often that information belongs in the
 
1085
    <quote>Usage</quote> section.
 
1086
 
 
1087
    <variablelist>
 
1088
     <varlistentry>
 
1089
      <term>Name</term>
 
1090
      <listitem>
 
1091
       <para>
 
1092
        This section is generated automatically.  It contains the
 
1093
        command name and a half-sentence summary of its functionality.
 
1094
       </para>
 
1095
      </listitem>
 
1096
     </varlistentry>
 
1097
 
 
1098
     <varlistentry>
 
1099
      <term>Synopsis</term>
 
1100
      <listitem>
 
1101
       <para>
 
1102
        This section contains the syntax diagram of the command.  The
 
1103
        synopsis should normally not list each command-line option;
 
1104
        that is done below.  Instead, list the major components of the
 
1105
        command line, such as where input and output files go.
 
1106
       </para>
 
1107
      </listitem>
 
1108
     </varlistentry>
 
1109
     
 
1110
     <varlistentry>
 
1111
      <term>Description</term>
 
1112
      <listitem>
 
1113
       <para>
 
1114
        Several paragraphs explaining what the command does.
 
1115
       </para>
 
1116
      </listitem>
 
1117
     </varlistentry>
 
1118
     
 
1119
     <varlistentry>
 
1120
      <term>Options</term>
 
1121
      <listitem>
 
1122
       <para>
 
1123
        A list describing each command-line option.  If there are a
 
1124
        lot of options, subsections may be used.
 
1125
       </para>
 
1126
      </listitem>
 
1127
     </varlistentry>
 
1128
     
 
1129
     <varlistentry>
 
1130
      <term>Exit Status</term>
 
1131
      <listitem>
 
1132
       <para>
 
1133
        If the program uses 0 for success and non-zero for failure,
 
1134
        then you do not need to document it.  If there is a meaning
 
1135
        behind the different non-zero exit codes, list them here.
 
1136
       </para>
 
1137
      </listitem>
 
1138
     </varlistentry>
 
1139
     
 
1140
     <varlistentry>
 
1141
      <term>Usage</term>
 
1142
      <listitem>
 
1143
       <para>
 
1144
        Describe any sublanguage or run-time interface of the program.
 
1145
        If the program is not interactive, this section can usually be
 
1146
        omitted.  Otherwise, this section is a catch-all for
 
1147
        describing run-time features.  Use subsections if appropriate.
 
1148
       </para>
 
1149
      </listitem>
 
1150
     </varlistentry>
 
1151
     
 
1152
     <varlistentry>
 
1153
      <term>Environment</term>
 
1154
      <listitem>
 
1155
       <para>
 
1156
        List all environment variables that the program might use.
 
1157
        Try to be complete; even seemingly trivial variables like
 
1158
        <envar>SHELL</envar> might be of interest to the user.
 
1159
       </para>
 
1160
      </listitem>
 
1161
     </varlistentry>
 
1162
     
 
1163
     <varlistentry>
 
1164
      <term>Files</term>
 
1165
      <listitem>
 
1166
       <para>
 
1167
        List any files that the program might access implicitly.  That
 
1168
        is, do not list input and output files that were specified on
 
1169
        the command line, but list configuration files, etc.
 
1170
       </para>
 
1171
      </listitem>
 
1172
     </varlistentry>
 
1173
     
 
1174
     <varlistentry>
 
1175
      <term>Diagnostics</term>
 
1176
      <listitem>
 
1177
       <para>
 
1178
        Explain any unusual output that the program might create.
 
1179
        Refrain from listing every possible error message.  This is a
 
1180
        lot of work and has little use in practice.  But if, say, the
 
1181
        error messages have a standard format that the user can parse,
 
1182
        this would be the place to explain it.
 
1183
       </para>
 
1184
      </listitem>
 
1185
     </varlistentry>
 
1186
     
 
1187
     <varlistentry>
 
1188
      <term>Notes</term>
 
1189
      <listitem>
 
1190
       <para>
 
1191
        Anything that doesn't fit elsewhere, but in particular bugs,
 
1192
        implementation flaws, security considerations, compatibility
 
1193
        issues.
 
1194
       </para>
 
1195
      </listitem>
 
1196
     </varlistentry>
 
1197
     
 
1198
     <varlistentry>
 
1199
      <term>Examples</term>
 
1200
      <listitem>
 
1201
       <para>
 
1202
        Examples
 
1203
       </para>
 
1204
      </listitem>
 
1205
     </varlistentry>
 
1206
     
 
1207
     <varlistentry>
 
1208
      <term>History</term>
 
1209
      <listitem>
 
1210
       <para>
 
1211
        If there were some major milestones in the history of the
 
1212
        program, they might be listed here.  Usually, this section can
 
1213
        be omitted.
 
1214
       </para>
 
1215
      </listitem>
 
1216
     </varlistentry>
 
1217
     
 
1218
     <varlistentry>
 
1219
      <term>See Also</term>
 
1220
      <listitem>
 
1221
       <para>
 
1222
        Cross-references, listed in the following order: other
 
1223
        <productname>PostgreSQL</productname> command reference pages,
 
1224
        <productname>PostgreSQL</productname> SQL command reference
 
1225
        pages, citation of <productname>PostgreSQL</productname>
 
1226
        manuals, other reference pages (e.g., operating system, other
 
1227
        packages), other documentation.  Items in the same group are
 
1228
        listed alphabetically.
 
1229
       </para>
 
1230
      </listitem>
 
1231
     </varlistentry>
 
1232
 
 
1233
    </variablelist>
 
1234
   </para>
 
1235
 
 
1236
   <para>
 
1237
    Reference pages describing SQL commands should contain the
 
1238
    following sections: Name, Synopsis, Description, Parameters,
 
1239
    Outputs, Notes, Examples, Compatibility, History, See
 
1240
    Also.  The Parameters section is like the Options section, but
 
1241
    there is more freedom about which clauses of the command can be
 
1242
    listed.  The Outputs section is only needed if the command returns
 
1243
    something other than a default command-completion tag.  The Compatibility
 
1244
    section should explain to what extent
 
1245
    this command conforms to the SQL standard(s), or to which other
 
1246
    database system it is compatible.  The See Also section of SQL
 
1247
    commands should list SQL commands before cross-references to
 
1248
    programs.
 
1249
   </para>
 
1250
  </sect2>
 
1251
 
 
1252
 </sect1>
 
1253
</appendix>
 
1254
 
 
1255
<!-- Keep this comment at the end of the file
 
1256
Local variables:
 
1257
mode:sgml
 
1258
sgml-omittag:nil
 
1259
sgml-shorttag:t
 
1260
sgml-minimize-attributes:nil
 
1261
sgml-always-quote-attributes:t
 
1262
sgml-indent-step:1
 
1263
sgml-indent-data:t
 
1264
sgml-parent-document:nil
 
1265
sgml-default-dtd-file:"./reference.ced"
 
1266
sgml-exposed-tags:nil
 
1267
sgml-local-catalogs:("/usr/lib/sgml/catalog")
 
1268
sgml-local-ecat-files:nil
 
1269
End:
 
1270
-->