summaryrefslogtreecommitdiffstats
path: root/doc/src/sgml/postgres.sgml
blob: 2e271862fc1800086a64a94b2173ea21142a1628 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
<!-- doc/src/sgml/postgres.sgml -->

<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
          "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
[

<!ENTITY % version SYSTEM "version.sgml">
%version;
<!ENTITY % filelist SYSTEM "filelist.sgml">
%filelist;

<!ENTITY reference  SYSTEM "reference.sgml">

<!--
Zero-width space.  Use this to allow line breaks at desirable places in
table cells, examples, etc. without causing an unwanted space when the
break is not needed in a wider output rendering.
-->
<!ENTITY zwsp "&#x200B;">

]>

<book id="postgres">
 <title>PostgreSQL &version; Documentation</title>

 <bookinfo>
  <corpauthor>The PostgreSQL Global Development Group</corpauthor>
  <productname>PostgreSQL</productname>
  <productnumber>&version;</productnumber>
  &legal;
 </bookinfo>

 &intro;

 <part id="tutorial">
  <title>Tutorial</title>

  <partintro>
   <para>
    Welcome to the <productname>PostgreSQL</productname> Tutorial.  The
    following few chapters are intended to give a simple introduction
    to <productname>PostgreSQL</productname>, relational database
    concepts, and the SQL language to those who are new to any one of
    these aspects.  We only assume some general knowledge about how to
    use computers.  No particular Unix or programming experience is
    required.  This part is mainly intended to give you some hands-on
    experience with important aspects of the
    <productname>PostgreSQL</productname> system.  It makes no attempt
    to be a complete or thorough treatment of the topics it covers.
   </para>

   <para>
    After you have worked through this tutorial you might want to move
    on to reading <xref linkend="sql"/> to gain a more formal knowledge
    of the SQL language, or <xref linkend="client-interfaces"/> for
    information about developing applications for
    <productname>PostgreSQL</productname>.  Those who set up and
    manage their own server should also read <xref linkend="admin"/>.
   </para>
  </partintro>

  &start;
  &query;
  &advanced;

 </part>

 <part id="sql">
  <title>The SQL Language</title>

  <partintro>
   <para>
    This part describes the use of the <acronym>SQL</acronym> language
    in <productname>PostgreSQL</productname>.  We start with
    describing the general syntax of <acronym>SQL</acronym>, then
    explain how to create the structures to hold data, how to populate
    the database, and how to query it.  The middle part lists the
    available data types and functions for use in
    <acronym>SQL</acronym> commands.  The rest treats several
    aspects that are important for tuning a database for optimal
    performance.
   </para>

   <para>
    The information in this part is arranged so that a novice user can
    follow it start to end to gain a full understanding of the topics
    without having to refer forward too many times.  The chapters are
    intended to be self-contained, so that advanced users can read the
    chapters individually as they choose.  The information in this
    part is presented in a narrative fashion in topical units.
    Readers looking for a complete description of a particular command
    should see <xref linkend="reference"/>.
   </para>

   <para>
    Readers of this part should know how to connect to a
    <productname>PostgreSQL</productname> database and issue
    <acronym>SQL</acronym> commands.  Readers that are unfamiliar with
    these issues are encouraged to read <xref linkend="tutorial"/>
    first.  <acronym>SQL</acronym> commands are typically entered
    using the <productname>PostgreSQL</productname> interactive terminal
    <application>psql</application>, but other programs that have
    similar functionality can be used as well.
   </para>
  </partintro>

  &syntax;
  &ddl;
  &dml;
  &queries;
  &datatype;
  &func;
  &typeconv;
  &indices;
  &textsearch;
  &mvcc;
  &perform;
  &parallel;

 </part>

 <part id="admin">
  <title>Server Administration</title>

  <partintro>
   <para>
    This part covers topics that are of interest to a
    <productname>PostgreSQL</productname> database administrator.  This includes
    installation of the software, set up and configuration of the
    server, management of users and databases, and maintenance tasks.
    Anyone who runs a <productname>PostgreSQL</productname> server, even for
    personal use, but especially in production, should be familiar
    with the topics covered in this part.
   </para>

   <para>
    The information in this part is arranged approximately in the
    order in which a new user should read it.  But the chapters are
    self-contained and can be read individually as desired.  The
    information in this part is presented in a narrative fashion in
    topical units.  Readers looking for a complete description of a
    particular command should see <xref linkend="reference"/>.
   </para>

   <para>
    The first few chapters are written so they can be understood
    without prerequisite knowledge, so new users who need to set
    up their own server can begin their exploration with this part.
    The rest of this part is about tuning and management; that material
    assumes that the reader is familiar with the general use of
    the <productname>PostgreSQL</productname> database system.  Readers are
    encouraged to look at <xref linkend="tutorial"/> and <xref
    linkend="sql"/> for additional information.
   </para>
  </partintro>

  &installbin;
  &installation;
  &installw;
  &runtime;
  &config;
  &client-auth;
  &user-manag;
  &manage-ag;
  &charset;
  &maintenance;
  &backup;
  &high-availability;
  &monitoring;
  &diskusage;
  &wal;
  &logical-replication;
  &jit;
  &regress;

 </part>

 <part id="client-interfaces">
  <title>Client Interfaces</title>

  <partintro>
   <para>
    This part describes the client programming interfaces distributed
    with <productname>PostgreSQL</productname>.  Each of these chapters can be
    read independently.  Note that there are many other programming
    interfaces for client programs that are distributed separately and
    contain their own documentation (<xref linkend="external-projects"/>
    lists some of the more popular ones).  Readers of this part should be
    familiar with using <acronym>SQL</acronym> commands to manipulate
    and query the database (see <xref linkend="sql"/>) and of course
    with the programming language that the interface uses.
   </para>
  </partintro>

  &libpq;
  &lobj;
  &ecpg;
  &infoschema;

 </part>

 <part id="server-programming">
  <title>Server Programming</title>

  <partintro>
   <para>
    This part is about extending the server functionality with
    user-defined functions, data types, triggers, etc.  These are
    advanced topics which should probably be approached only after all
    the other user documentation about <productname>PostgreSQL</productname> has
    been understood.  Later chapters in this part describe the server-side
    programming languages available in the
    <productname>PostgreSQL</productname> distribution as well as
    general issues concerning server-side programming languages.  It
    is essential to read at least the earlier sections of <xref
    linkend="extend"/> (covering functions) before diving into the
    material about server-side programming languages.
   </para>
  </partintro>

  &extend;
  &trigger;
  &event-trigger;
  &rules;

  &xplang;
  &plsql;
  &pltcl;
  &plperl;
  &plpython;

  &spi;
  &bgworker;
  &logicaldecoding;
  &replication-origins;
  &archive-modules;

 </part>

 &reference;

 <part id="internals">
  <title>Internals</title>

  <partintro>
   <para>
    This part contains assorted information that might be of use to
    <productname>PostgreSQL</productname> developers.
   </para>
  </partintro>

  &arch-dev;
  &catalogs;
  &system-views;
  &protocol;
  &sources;
  &nls;
  &plhandler;
  &fdwhandler;
  &tablesample-method;
  &custom-scan;
  &geqo;
  &tableam;
  &indexam;
  &generic-wal;
  &custom-rmgr;
  &btree;
  &gist;
  &spgist;
  &gin;
  &brin;
  &hash;
  &storage;
  &transaction;
  &bki;
  &planstats;
  &backup-manifest;

 </part>

 <part id="appendixes">
  <title>Appendixes</title>

  &errcodes;
  &datetime;
  &keywords;
  &features;
  &release;
  &contrib;
  &external-projects;
  &sourcerepo;
  &docguide;
  &limits;
  &acronyms;
  &glossary;
  &color;
  &obsolete;

 </part>

 &biblio;
 <index id="bookindex"></index>

</book>