Random copy-editing.

This commit is contained in:
Peter Eisentraut 2003-11-04 09:55:39 +00:00
parent c119c554ed
commit 1d27de4cf4
21 changed files with 571 additions and 588 deletions

View File

@ -1,4 +1,4 @@
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/array.sgml,v 1.32 2003/11/01 01:56:28 petere Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/array.sgml,v 1.33 2003/11/04 09:55:38 petere Exp $ -->
<sect1 id="arrays"> <sect1 id="arrays">
<title>Arrays</title> <title>Arrays</title>
@ -76,13 +76,45 @@ CREATE TABLE tictactoe (
<sect2> <sect2>
<title>Array Value Input</title> <title>Array Value Input</title>
<para> <indexterm>
Now we can show some <command>INSERT</command> statements. To write an array <primary>array</primary>
value as a literal constant, we enclose the element values within curly <secondary>constant</secondary>
braces and separate them by commas. (If you know C, this is not unlike the </indexterm>
C syntax for initializing structures.) We may put double quotes around any
element value, and must do so if it contains commas or curly braces. <para>
(More details appear below.) To write an array value as a literal constant, enclose the element
values within curly braces and separate them by commas. (If you
know C, this is not unlike the C syntax for initializing
structures.) You may put double quotes around any element value,
and must do so if it contains commas or curly braces. (More
details appear below.) Thus, the general format of an array
constant is the following:
<synopsis>
'{ <replaceable>val1</replaceable> <replaceable>delim</replaceable> <replaceable>val2</replaceable> <replaceable>delim</replaceable> ... }'
</synopsis>
where <replaceable>delim</replaceable> is the delimiter character
for the type, as recorded in its <literal>pg_type</literal> entry.
(For all built-in types, this is the comma character
<quote><literal>,</literal></>.) Each
<replaceable>val</replaceable> is either a constant of the array
element type, or a subarray. An example of an array constant is
<programlisting>
'{{1,2,3},{4,5,6},{7,8,9}}'
</programlisting>
This constant is a two-dimensional, 3-by-3 array consisting of
three subarrays of integers.
</para>
<para>
(These kinds of array constants are actually only a special case of
the generic type constants discussed in <xref
linkend="sql-syntax-constants-generic">. The constant is initially
treated as a string and passed to the array input conversion
routine. An explicit type specification might be necessary.)
</para>
<para>
Now we can show some <command>INSERT</command> statements.
<programlisting> <programlisting>
INSERT INTO sal_emp INSERT INTO sal_emp
@ -95,14 +127,15 @@ INSERT INTO sal_emp
'{20000, 25000, 25000, 25000}', '{20000, 25000, 25000, 25000}',
'{{"talk", "consult"}, {"meeting"}}'); '{{"talk", "consult"}, {"meeting"}}');
</programlisting> </programlisting>
</para> </para>
<para>
A limitation of the present array implementation is that individual
elements of an array cannot be SQL null values. The entire array
can be set to null, but you can't have an array with some elements
null and some not.
</para>
<para>
A limitation of the present array implementation is that individual
elements of an array cannot be SQL null values. The entire array can be set
to null, but you can't have an array with some elements null and some
not.
</para>
<para> <para>
This can lead to surprising results. For example, the result of the This can lead to surprising results. For example, the result of the
previous two inserts looks like this: previous two inserts looks like this:

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/backup.sgml,v 2.30 2003/08/31 17:32:18 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/backup.sgml,v 2.31 2003/11/04 09:55:38 petere Exp $
--> -->
<chapter id="backup"> <chapter id="backup">
<title>Backup and Restore</title> <title>Backup and Restore</title>
@ -155,8 +155,9 @@ pg_dump -h <replaceable>host1</> <replaceable>dbname</> | psql -h <replaceable>h
<tip> <tip>
<para> <para>
Restore performance can be improved by increasing <literal>SORT_MEM</> Restore performance can be improved by increasing the
(see <xref linkend="runtime-config-resource-memory">). configuration parameter <varname>sort_mem</varname> (see <xref
linkend="runtime-config-resource-memory">).
</para> </para>
</tip> </tip>
</sect2> </sect2>
@ -333,12 +334,9 @@ tar -cf backup.tar /usr/local/pgsql/data
going on. For this reason it is also not advisable to trust file going on. For this reason it is also not advisable to trust file
systems that claim to support <quote>consistent systems that claim to support <quote>consistent
snapshots</quote>. Information about stopping the server can be snapshots</quote>. Information about stopping the server can be
found in <xref linkend="postmaster-shutdown">. found in <xref linkend="postmaster-shutdown">. Needless to say
</para> that you also need to shut down the server before restoring the
data.
<para>
Needless to say that you also need to shut down the server
before restoring the data.
</para> </para>
</listitem> </listitem>
@ -362,7 +360,18 @@ tar -cf backup.tar /usr/local/pgsql/data
</para> </para>
<para> <para>
Also note that the file system backup will not necessarily be An alternative file-system backup approach is to make a
<quote>consistent snapshot</quote> of the data directory, if the
file system supports that functionality. Such a snapshot will save
the database files in a state where the database server was not
properly shut down; therefore, when you start the database server
on this backed up directory, it will think the server had crashed
and replay the WAL log. This is not a problem, just be aware of
it.
</para>
<para>
Note that the file system backup will not necessarily be
smaller than an SQL dump. On the contrary, it will most likely be smaller than an SQL dump. On the contrary, it will most likely be
larger. (<application>pg_dump</application> does not need to dump larger. (<application>pg_dump</application> does not need to dump
the contents of indexes for example, just the commands to recreate the contents of indexes for example, just the commands to recreate
@ -372,7 +381,7 @@ tar -cf backup.tar /usr/local/pgsql/data
</sect1> </sect1>
<sect1 id="migration"> <sect1 id="migration">
<title>Migration between releases</title> <title>Migration Between Releases</title>
<indexterm zone="migration"> <indexterm zone="migration">
<primary>upgrading</primary> <primary>upgrading</primary>
@ -385,17 +394,20 @@ tar -cf backup.tar /usr/local/pgsql/data
<para> <para>
As a general rule, the internal data storage format is subject to As a general rule, the internal data storage format is subject to
change between releases of <productname>PostgreSQL</>. This does not change between major releases of <productname>PostgreSQL</> (where
apply to different <quote>patch levels</quote>, these always have the number after the first dot changes). This does not apply to
compatible storage formats. For example, releases 7.0.1, 7.1.2, and different minor releases under the same major release (where the
7.2 are not compatible, whereas 7.1.1 and 7.1.2 are. When you number of the second dot changes); these always have compatible
update between compatible versions, then you can simply reuse the storage formats. For example, releases 7.0.1, 7.1.2, and 7.2 are
data area in disk by the new executables. Otherwise you need to not compatible, whereas 7.1.1 and 7.1.2 are. When you update
between compatible versions, then you can simply reuse the data
area in disk by the new executables. Otherwise you need to
<quote>back up</> your data and <quote>restore</> it on the new <quote>back up</> your data and <quote>restore</> it on the new
server, using <application>pg_dump</>. (There are checks in place server, using <application>pg_dump</>. (There are checks in place
that prevent you from doing the wrong thing, so no harm can be done that prevent you from doing the wrong thing, so no harm can be done
by confusing these things.) The precise installation procedure is by confusing these things.) The precise installation procedure is
not subject of this section; these details are in <xref linkend="installation">. not subject of this section; these details are in <xref
linkend="installation">.
</para> </para>
<para> <para>

View File

@ -1,4 +1,4 @@
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/charset.sgml,v 2.39 2003/09/11 18:30:38 momjian Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/charset.sgml,v 2.40 2003/11/04 09:55:38 petere Exp $ -->
<chapter id="charset"> <chapter id="charset">
<title>Localization</> <title>Localization</>
@ -248,12 +248,9 @@ initdb --locale=sv_SE
<para> <para>
Client applications that handle server-side errors by parsing the Client applications that handle server-side errors by parsing the
text of the error message will obviously have problems when the text of the error message will obviously have problems when the
server's messages are in a different language. If you create such server's messages are in a different language. Authors of such
an application you need to devise a plan to cope with this applications are advised to make use of the error code scheme
situation. The embedded SQL interface (<application>ECPG</>) is instead.
also affected by this problem. It is currently recommended that
servers interfacing with <application>ECPG</> applications be
configured to send messages in English.
</para> </para>
<para> <para>
@ -430,7 +427,7 @@ initdb --locale=sv_SE
mistakenly meant ISO 8859-5. From 7.2 on, <literal>LATIN5</> mistakenly meant ISO 8859-5. From 7.2 on, <literal>LATIN5</>
means ISO 8859-9. If you have a <literal>LATIN5</> database means ISO 8859-9. If you have a <literal>LATIN5</> database
created on 7.1 or earlier and want to migrate to 7.2 or later, created on 7.1 or earlier and want to migrate to 7.2 or later,
you should be very careful about this change. you should be careful about this change.
</para> </para>
</important> </important>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/client-auth.sgml,v 1.59 2003/09/13 16:43:38 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/client-auth.sgml,v 1.60 2003/11/04 09:55:38 petere Exp $
--> -->
<chapter id="client-authentication"> <chapter id="client-authentication">
@ -85,13 +85,13 @@ $Header: /cvsroot/pgsql/doc/src/sgml/client-auth.sgml,v 1.59 2003/09/13 16:43:38
<para> <para>
A record may have one of the seven formats A record may have one of the seven formats
<synopsis> <synopsis>
local <replaceable>database</replaceable> <replaceable>user</replaceable> <replaceable>authentication-method</replaceable> <optional><replaceable>authentication-option</replaceable></optional> local <replaceable>database</replaceable> <replaceable>user</replaceable> <replaceable>authentication-method</replaceable> <optional><replaceable>authentication-option</replaceable></optional>
host <replaceable>database</replaceable> <replaceable>user</replaceable> <replaceable>IP-address</replaceable> <replaceable>IP-mask</replaceable> <replaceable>authentication-method</replaceable> <optional><replaceable>authentication-option</replaceable></optional> host <replaceable>database</replaceable> <replaceable>user</replaceable> <replaceable>IP-address</replaceable> <replaceable>IP-mask</replaceable> <replaceable>authentication-method</replaceable> <optional><replaceable>authentication-option</replaceable></optional>
hostssl <replaceable>database</replaceable> <replaceable>user</replaceable> <replaceable>IP-address</replaceable> <replaceable>IP-mask</replaceable> <replaceable>authentication-method</replaceable> <optional><replaceable>authentication-option</replaceable></optional> hostssl <replaceable>database</replaceable> <replaceable>user</replaceable> <replaceable>IP-address</replaceable> <replaceable>IP-mask</replaceable> <replaceable>authentication-method</replaceable> <optional><replaceable>authentication-option</replaceable></optional>
hostnossl <replaceable>database</replaceable> <replaceable>user</replaceable> <replaceable>IP-address</replaceable> <replaceable>IP-mask</replaceable> <replaceable>authentication-method</replaceable> <optional><replaceable>authentication-option</replaceable></optional> hostnossl <replaceable>database</replaceable> <replaceable>user</replaceable> <replaceable>IP-address</replaceable> <replaceable>IP-mask</replaceable> <replaceable>authentication-method</replaceable> <optional><replaceable>authentication-option</replaceable></optional>
host <replaceable>database</replaceable> <replaceable>user</replaceable> <replaceable>IP-address</replaceable>/<replaceable>CIDR-mask</replaceable> <replaceable>authentication-method</replaceable> <optional><replaceable>authentication-option</replaceable></optional> host <replaceable>database</replaceable> <replaceable>user</replaceable> <replaceable>IP-address</replaceable>/<replaceable>IP-masklen</replaceable> <replaceable>authentication-method</replaceable> <optional><replaceable>authentication-option</replaceable></optional>
hostssl <replaceable>database</replaceable> <replaceable>user</replaceable> <replaceable>IP-address</replaceable>/<replaceable>CIDR-mask</replaceable> <replaceable>authentication-method</replaceable> <optional><replaceable>authentication-option</replaceable></optional> hostssl <replaceable>database</replaceable> <replaceable>user</replaceable> <replaceable>IP-address</replaceable>/<replaceable>IP-masklen</replaceable> <replaceable>authentication-method</replaceable> <optional><replaceable>authentication-option</replaceable></optional>
hostnossl <replaceable>database</replaceable> <replaceable>user</replaceable> <replaceable>IP-address</replaceable>/<replaceable>CIDR-mask</replaceable> <replaceable>authentication-method</replaceable> <optional><replaceable>authentication-option</replaceable></optional> hostnossl <replaceable>database</replaceable> <replaceable>user</replaceable> <replaceable>IP-address</replaceable>/<replaceable>IP-masklen</replaceable> <replaceable>authentication-method</replaceable> <optional><replaceable>authentication-option</replaceable></optional>
</synopsis> </synopsis>
The meaning of the fields is as follows: The meaning of the fields is as follows:
@ -220,25 +220,26 @@ hostnossl <replaceable>database</replaceable> <replaceable>user</replaceable>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><replaceable>CIDR-mask</replaceable></term> <term><replaceable>IP-masklen</replaceable></term>
<listitem> <listitem>
<para> <para>
This field may be used as an alternative to the This field may be used as an alternative to the
<replaceable>IP-mask</replaceable> notation. It is an <replaceable>IP-mask</replaceable> notation. It is an integer
integer specifying the number of high-order bits specifying the number of high-order bits to set in the mask.
to set in the mask. The number must The number must be between 0 and 32 (in the case of an IPv4
be between 0 and 32 (in the case of an IPv4 address) or 128 address) or 128 (in the case of an IPv6 address) inclusive. 0
(in the case of an IPv6 address) inclusive. 0 will match any will match any address, while 32 (or 128, respectively) will
address, while 32/128 will match only the exact host specified. match only the exact host specified. The same matching logic
The same matching logic is used as for a dotted notation is used as for a dotted notation
<replaceable>IP-Mask</replaceable>. <replaceable>IP-mask</replaceable>.
</para> </para>
<para> <para>
There must be no white space between the <replaceable>IP-address</replaceable> There must be no white space between the
and the <literal>/</literal> or the <literal>/</literal> and the <replaceable>IP-address</replaceable> and the
<replaceable>CIDR-mask</replaceable>, or the file will not be parsed <literal>/</literal> or the <literal>/</literal> and the
correctly. <replaceable>IP-masklen</replaceable>, or the file will not be
parsed correctly.
</para> </para>
<para> <para>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/datatype.sgml,v 1.128 2003/11/01 01:56:29 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/datatype.sgml,v 1.129 2003/11/04 09:55:38 petere Exp $
--> -->
<chapter id="datatype"> <chapter id="datatype">
@ -917,10 +917,10 @@ CREATE TABLE <replaceable class="parameter">tablename</replaceable> (
<para> <para>
In addition, <productname>PostgreSQL</productname> provides the In addition, <productname>PostgreSQL</productname> provides the
<type>text</type> type, which stores strings of any <type>text</type> type, which stores strings of any length.
length. Although the type <type>text</type> is not in the Although the type <type>text</type> is not in the
<acronym>SQL</acronym> standard, several other SQL database products <acronym>SQL</acronym> standard, several other SQL database
have it as well. management systems have it as well.
</para> </para>
<para> <para>
@ -1464,7 +1464,7 @@ SELECT b, char_length(b) FROM test2;
</row> </row>
<row> <row>
<entry>1999-01-08</entry> <entry>1999-01-08</entry>
<entry>ISO-8601, January 8 in any mode <entry>ISO 8601, January 8 in any mode
(recommended format)</entry> (recommended format)</entry>
</row> </row>
<row> <row>
@ -1486,11 +1486,11 @@ SELECT b, char_length(b) FROM test2;
</row> </row>
<row> <row>
<entry>19990108</entry> <entry>19990108</entry>
<entry>ISO-8601; January 8, 1999 in any mode</entry> <entry>ISO 8601; January 8, 1999 in any mode</entry>
</row> </row>
<row> <row>
<entry>990108</entry> <entry>990108</entry>
<entry>ISO-8601; January 8, 1999 in any mode</entry> <entry>ISO 8601; January 8, 1999 in any mode</entry>
</row> </row>
<row> <row>
<entry>1999.008</entry> <entry>1999.008</entry>

View File

@ -1,4 +1,4 @@
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ddl.sgml,v 1.21 2003/11/01 01:56:29 petere Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/ddl.sgml,v 1.22 2003/11/04 09:55:38 petere Exp $ -->
<chapter id="ddl"> <chapter id="ddl">
<title>Data Definition</title> <title>Data Definition</title>
@ -318,12 +318,12 @@ DROP TABLE products;
</para> </para>
<para> <para>
Transaction identifiers are also 32-bit quantities. In a long-lived Transaction identifiers are also 32-bit quantities. In a
database it is possible for transaction IDs to wrap around. This long-lived database it is possible for transaction IDs to wrap
is not a fatal problem given appropriate maintenance procedures; around. This is not a fatal problem given appropriate maintenance
see <xref linkend="maintenance"> for details. However, it is procedures; see <xref linkend="maintenance"> for details. It is
unwise to depend on uniqueness of transaction IDs over the long term unwise, however, to depend on the uniqueness of transaction IDs
(more than one billion transactions). over the long term (more than one billion transactions).
</para> </para>
<para> <para>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/features.sgml,v 2.20 2003/09/20 20:12:04 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/features.sgml,v 2.21 2003/11/04 09:55:38 petere Exp $
--> -->
<appendix id="features"> <appendix id="features">
@ -30,7 +30,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/features.sgml,v 2.20 2003/09/20 20:12:04 tg
<para> <para>
<acronym>SQL92</acronym> defined three feature sets for conformance: <acronym>SQL92</acronym> defined three feature sets for conformance:
Entry, Intermediate, and Full. Most database products claiming Entry, Intermediate, and Full. Most database management systems claiming
<acronym>SQL</acronym> standard conformance were conforming at only <acronym>SQL</acronym> standard conformance were conforming at only
the Entry level, since the entire set of features in the the Entry level, since the entire set of features in the
Intermediate and Full levels was either too voluminous or in Intermediate and Full levels was either too voluminous or in

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/func.sgml,v 1.177 2003/11/01 01:56:29 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/func.sgml,v 1.178 2003/11/04 09:55:38 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -29,10 +29,10 @@ PostgreSQL documentation
the functions and operators described in this chapter, with the the functions and operators described in this chapter, with the
exception of the most trivial arithmetic and comparison operators exception of the most trivial arithmetic and comparison operators
and some explicitly marked functions, are not specified by the and some explicitly marked functions, are not specified by the
<acronym>SQL</acronym> <acronym>SQL</acronym> standard. Some of the extended functionality
standard. Some of the extended functionality is present in other is present in other <acronym>SQL</acronym> database management
<acronym>SQL</acronym> implementations, and in many cases this systems, and in many cases this functionality is compatible and
functionality is compatible and consistent between various products. consistent between the various implementations.
</para> </para>
@ -7176,7 +7176,7 @@ SELECT pg_type_is_visible('myschema.widget'::regtype);
</sect1> </sect1>
<sect1 id="functions-array"> <sect1 id="functions-array">
<title>Array Functions</title> <title>Array Functions and Operators</title>
<para> <para>
<xref linkend="array-operators-table"> shows the operators <xref linkend="array-operators-table"> shows the operators
@ -7578,22 +7578,23 @@ SELECT pg_type_is_visible('myschema.widget'::regtype);
<note> <note>
<para> <para>
Users accustomed to working with other RDBMS products may be Users accustomed to working with other SQL database management
surprised by the performance characteristics of certain aggregate systems may be surprised by the performance characteristics of
functions in <productname>PostgreSQL</productname> when the certain aggregate functions in
aggregate is applied to the entire table (in other words, no <productname>PostgreSQL</productname> when the aggregate is
<literal>WHERE</literal> clause is specified). In particular, applied to the entire table (in other words, no
a query like <literal>WHERE</literal> clause is specified). In particular, a
query like
<programlisting> <programlisting>
SELECT min(col) FROM sometable; SELECT min(col) FROM sometable;
</programlisting> </programlisting>
will be executed by <productname>PostgreSQL</productname> using a will be executed by <productname>PostgreSQL</productname> using a
sequential scan of the entire table. Other database systems may sequential scan of the entire table. Other database systems may
optimize queries of this form to use an index on the column, if one optimize queries of this form to use an index on the column, if
is available. Similarly, the aggregate functions one is available. Similarly, the aggregate functions
<function>max()</function> and <function>count()</function> always <function>max()</function> and <function>count()</function> always
require a sequential scan if applied to the entire table in require a sequential scan if applied to the entire table in
<productname>PostgreSQL</productname>. <productname>PostgreSQL</productname>.
</para> </para>
<para> <para>
@ -7602,8 +7603,8 @@ SELECT min(col) FROM sometable;
queries. Since <function>min()</function>, queries. Since <function>min()</function>,
<function>max()</function>, and <function>count()</function> are <function>max()</function>, and <function>count()</function> are
defined using a generic API for aggregate functions, there is no defined using a generic API for aggregate functions, there is no
provision for <quote>special-casing</quote> the execution of these provision for special-casing the execution of these functions
functions under certain circumstances. under certain circumstances.
</para> </para>
<para> <para>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/install-win32.sgml,v 1.14 2003/09/30 01:26:29 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/install-win32.sgml,v 1.15 2003/11/04 09:55:38 petere Exp $
--> -->
<chapter id="install-win32"> <chapter id="install-win32">
@ -109,27 +109,27 @@ $Header: /cvsroot/pgsql/doc/src/sgml/install-win32.sgml,v 1.14 2003/09/30 01:26:
<para> <para>
<application>psql</application> is compiled as a <quote>console <application>psql</application> is compiled as a <quote>console
application</>. As application</>. As the Win32 console windows use a different
the Win32 console windows use a different encoding than the rest of the encoding than the rest of the system, you must take special care
system, you must take special care when using 8-bit characters (eg. German when using 8-bit characters at the <application>psql</application>
umlauts) at the <application>psql</application> prompt. When prompt. When <application>psql</application> detects a problematic
<application>psql</application> detects a problematic console codepage, it console code page, it will warn you at startup. To change the
will warn you at startup. To change the console codepage, two things are console code page, two things are neccessary:
neccessary:
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para> <para>
Set the codepage with <userinput>cmd.exe /c chcp 1252</userinput> Set the code page by entering <userinput>cmd.exe /c chcp
(1252 is the German value, replace it with your value). If you are using 1252</userinput>. (1252 is a code page that is appropriate for
cygwin, you can put this command in <filename>/etc/profile</filename>. German; replace it with your value.) If you are using Cygwin,
you can put this command in <filename>/etc/profile</filename>.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Set the console font to <quote>Lucida Console</>, because the raster font Set the console font to <quote>Lucida Console</>, because the
does not work with the ANSI codepage. raster font does not work with the ANSI code page.
</para> </para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>

View File

@ -1,4 +1,4 @@
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/installation.sgml,v 1.177 2003/11/02 12:57:48 petere Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/installation.sgml,v 1.178 2003/11/04 09:55:38 petere Exp $ -->
<chapter id="installation"> <chapter id="installation">
<title><![%standalone-include[<productname>PostgreSQL</>]]> <title><![%standalone-include[<productname>PostgreSQL</>]]>
@ -333,7 +333,7 @@ JAVACMD=$JAVA_HOME/bin/java
<para> <para>
The <productname>PostgreSQL</> &version; sources can be obtained by The <productname>PostgreSQL</> &version; sources can be obtained by
anonymous FTP from <ulink anonymous FTP from <ulink
url="ftp://ftp.postgresql.org/pub/postgresql-&version;.tar.gz"></ulink>. url="ftp://ftp.postgresql.org/pub/source/v&version;/postgresql-&version;.tar.gz"></ulink>.
Use a mirror if possible. After you have obtained the file, unpack it: Use a mirror if possible. After you have obtained the file, unpack it:
<screen> <screen>
<userinput>gunzip postgresql-&version;.tar.gz</userinput> <userinput>gunzip postgresql-&version;.tar.gz</userinput>
@ -637,7 +637,7 @@ JAVACMD=$JAVA_HOME/bin/java
<note> <note>
<para> <para>
Care has been taken to make it possible to install Care has been taken to make it possible to install
<productname>PostgreSQL</> <productname>PostgreSQL</>
into shared installation locations (such as into shared installation locations (such as
<filename>/usr/local/include</filename>) without interfering <filename>/usr/local/include</filename>) without interfering
with the namespace of the rest of the system. First, the with the namespace of the rest of the system. First, the
@ -674,7 +674,7 @@ JAVACMD=$JAVA_HOME/bin/java
directories that will be added to the list the compiler directories that will be added to the list the compiler
searches for header files. If you have optional packages searches for header files. If you have optional packages
(such as GNU <application>Readline</>) installed in a non-standard (such as GNU <application>Readline</>) installed in a non-standard
location, location,
you have to use this option and probably also the corresponding you have to use this option and probably also the corresponding
<option>--with-libraries</> option. <option>--with-libraries</> option.
</para> </para>
@ -732,8 +732,8 @@ JAVACMD=$JAVA_HOME/bin/java
be changed later on, but if you specify it here then both be changed later on, but if you specify it here then both
server and clients will have the same default compiled in, server and clients will have the same default compiled in,
which can be very convenient. Usually the only good reason which can be very convenient. Usually the only good reason
to select a non-default value is if you intend to run multiple to select a non-default value is if you intend to run multiple
<productname>PostgreSQL</> servers on the same machine. <productname>PostgreSQL</> servers on the same machine.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -873,8 +873,8 @@ JAVACMD=$JAVA_HOME/bin/java
<term><option>--with-pam</option></term> <term><option>--with-pam</option></term>
<listitem> <listitem>
<para> <para>
Build with <acronym>PAM</><indexterm><primary>PAM</></> Build with <acronym>PAM</><indexterm><primary>PAM</></>
(Pluggable Authentication Modules) support. (Pluggable Authentication Modules) support.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -894,7 +894,7 @@ JAVACMD=$JAVA_HOME/bin/java
<term><option>--with-rendezvous</option></term> <term><option>--with-rendezvous</option></term>
<listitem> <listitem>
<para> <para>
Build with Rendezvous support. Build with Rendezvous support.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -903,10 +903,11 @@ JAVACMD=$JAVA_HOME/bin/java
<term><option>--disable-spinlocks</option></term> <term><option>--disable-spinlocks</option></term>
<listitem> <listitem>
<para> <para>
Allows source builds to succeed without CPU spinlock support. Allow the builds to succeed even if PostgreSQL has no CPU
Lack of spinlock support will produce poor performance. spinlock support for the platform. The lack of spinlock
This option is to be used only by platforms lacking support will result in poor performance; therefore, this
spinlock support. option should only be used if the build aborts and informs
you that the platform lacks spinlock support.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -915,9 +916,10 @@ JAVACMD=$JAVA_HOME/bin/java
<term><option>--enable-thread-safety</option></term> <term><option>--enable-thread-safety</option></term>
<listitem> <listitem>
<para> <para>
Allow separate threads in <application>libpq</application> Make the client libraries thread-safe. This allows
and <application>ECPG</application> programs to safely concurrent threads in <application>libpq</application> and
control their private connection handles. <application>ECPG</application> programs to safely control
their private connection handles.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -941,13 +943,13 @@ JAVACMD=$JAVA_HOME/bin/java
Compiles all programs and libraries with debugging symbols. Compiles all programs and libraries with debugging symbols.
This means that you can run the programs through a debugger This means that you can run the programs through a debugger
to analyze problems. This enlarges the size of the installed to analyze problems. This enlarges the size of the installed
executables considerably, and on non-GCC compilers it usually executables considerably, and on non-GCC compilers it usually
also disables compiler optimization, causing slowdowns. However, also disables compiler optimization, causing slowdowns. However,
having the symbols available is extremely helpful for dealing having the symbols available is extremely helpful for dealing
with any problems that may arise. Currently, this option is with any problems that may arise. Currently, this option is
recommended for production installations only if you use GCC. recommended for production installations only if you use GCC.
But you should always have it on if you are doing development work But you should always have it on if you are doing development work
or running a beta version. or running a beta version.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -956,16 +958,16 @@ JAVACMD=$JAVA_HOME/bin/java
<term><option>--enable-cassert</option></term> <term><option>--enable-cassert</option></term>
<listitem> <listitem>
<para> <para>
Enables <firstterm>assertion</> checks in the server, which test for Enables <firstterm>assertion</> checks in the server, which test for
many <quote>can't happen</> conditions. This is invaluable for many <quote>can't happen</> conditions. This is invaluable for
code development purposes, but the tests slow things down a little. code development purposes, but the tests slow things down a little.
Also, having the tests turned on won't necessarily enhance the Also, having the tests turned on won't necessarily enhance the
stability of your server! The assertion checks are not categorized stability of your server! The assertion checks are not categorized
for severity, and so what might be a relatively harmless bug will for severity, and so what might be a relatively harmless bug will
still lead to server restarts if it triggers an assertion still lead to server restarts if it triggers an assertion
failure. Currently, this option is not recommended for failure. Currently, this option is not recommended for
production use, but you should have it on for development work production use, but you should have it on for development work
or when running a beta version. or when running a beta version.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -974,12 +976,12 @@ JAVACMD=$JAVA_HOME/bin/java
<term><option>--enable-depend</option></term> <term><option>--enable-depend</option></term>
<listitem> <listitem>
<para> <para>
Enables automatic dependency tracking. With this option, the Enables automatic dependency tracking. With this option, the
makefiles are set up so that all affected object files will makefiles are set up so that all affected object files will
be rebuilt when any header file is changed. This is useful be rebuilt when any header file is changed. This is useful
if you are doing development work, but is just wasted overhead if you are doing development work, but is just wasted overhead
if you intend only to compile once and install. At present, if you intend only to compile once and install. At present,
this option will work only if you use GCC. this option will work only if you use GCC.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -1040,8 +1042,6 @@ All of PostgreSQL is successfully made. Ready to install.
<userinput>gmake check</userinput> <userinput>gmake check</userinput>
</screen> </screen>
(This won't work as root; do it as an unprivileged user.) (This won't work as root; do it as an unprivileged user.)
It is possible that some tests fail, due to differences in error
message wording or floating point results.
<![%standalone-include[The file <![%standalone-include[The file
<filename>src/test/regress/README</> and the <filename>src/test/regress/README</> and the
documentation contain]]> documentation contain]]>
@ -1156,28 +1156,6 @@ All of PostgreSQL is successfully made. Ready to install.
<sect1 id="install-post"> <sect1 id="install-post">
<title>Post-Installation Setup</title> <title>Post-Installation Setup</title>
<sect2>
<title>Tuning</title>
<indexterm>
<primary>tuning</primary>
</indexterm>
<para>
By default, <productname>PostgreSQL</> is configured to run on minimal
hardware. This allows it to start up with almost any hardware
configuration. However, the default configuration is not designed for
optimum performance. To achieve optimum performance, several server
variables must be adjusted, the two most common being
<varname>shared_buffers</varname> and <varname> sort_mem</varname>
mentioned in <![%standalone-include[the documentation]]>
<![%standalone-ignore[<xref linkend="runtime-config-resource-memory">]]>.
Other parameters in <![%standalone-include[the documentation]]>
<![%standalone-ignore[<xref linkend="runtime-config-resource">]]>
also affect performance.
</para>
</sect2>
<sect2> <sect2>
<title>Shared Libraries</title> <title>Shared Libraries</title>
@ -1458,39 +1436,28 @@ kill `cat /usr/local/pgsql/data/postmaster.pid`
<listitem> <listitem>
<para> <para>
Run the regression tests against the installed server (using the Run the regression tests against the installed server (using
sequential test method). If you didn't run the tests before <command>gmake installcheck</command>). If you didn't run the
installation, you should definitely do it now. This is also tests before installation, you should definitely do it now. This
explained in the documentation. is also explained in the documentation.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
By default, <productname>PostgreSQL</> is configured to run on
minimal hardware. This allows it to start up with almost any
hardware configuration. The default configuration is, however,
not designed for optimum performance. To achieve optimum
performance, several server parameters must be adjusted, the two
most common being <varname>shared_buffers</varname> and
<varname> sort_mem</varname> mentioned in the documentation.
Other parameters mentioned in the documentation also affect
performance.
</para>
</listitem>
</itemizedlist> </itemizedlist>
</para> </para>
<!-- do we still ship this? -->
<!--
<para>
The documentation is also available in Postscript format. If you
have a Postscript printer, or have your machine already set up to
accept Postscript files using a print filter, then to print, the
documentation simply type
<programlisting>
cd /usr/local/pgsql/doc
gunzip -c postgres.ps.gz | lpr
</programlisting>
Here is how you might do it if you have <productname>Ghostscript</>
installed on your system and are writing to a Laserjet printer.
<programlisting>
gunzip -c postgres.ps.gz \
| gs -sDEVICE=laserjet -r300 -q -dNOPAUSE -sOutputFile=- \
| lpr
</programlisting>
Printer setups can vary wildly from system to system. If in doubt,
consult your manuals or your local expert.
</para>
-->
</sect1> </sect1>
]]> ]]>
@ -1519,194 +1486,186 @@ gunzip -c postgres.ps.gz \
<tgroup cols="5"> <tgroup cols="5">
<thead> <thead>
<row> <row>
<entry><acronym>OS</acronym></entry> <entry><acronym>OS</acronym></entry>
<entry>Processor</entry> <entry>Processor</entry>
<entry>Version</entry> <entry>Version</entry>
<entry>Reported</entry> <entry>Reported</entry>
<entry>Remarks</entry> <entry>Remarks</entry>
</row> </row>
</thead> </thead>
<tbody> <tbody>
<row> <row>
<entry><systemitem class="osname">AIX</></entry> <entry><systemitem class="osname">AIX</></entry>
<entry><systemitem>RS6000</></entry> <entry><systemitem>RS6000</></entry>
<entry>7.4</entry> <entry>7.4</entry>
<entry>2003-10-25, <entry>2003-10-25,
Hans-J&uuml;rgen Sch&ouml;nig (<email>hs@cybertec.at</email>)</entry> Hans-J&uuml;rgen Sch&ouml;nig (<email>hs@cybertec.at</email>)</entry>
<entry>see also <filename>doc/FAQ_AIX</filename></entry> <entry>see also <filename>doc/FAQ_AIX</filename></entry>
</row> </row>
<row> <row>
<entry><systemitem class="osname">BSD/OS</></entry> <entry><systemitem class="osname">BSD/OS</></entry>
<entry><systemitem>x86</></entry> <entry><systemitem>x86</></entry>
<entry>7.4</entry> <entry>7.4</entry>
<entry>2003-10-24, <entry>2003-10-24,
Bruce Momjian (<email>pgman@candle.pha.pa.us</email>)</entry> Bruce Momjian (<email>pgman@candle.pha.pa.us</email>)</entry>
<entry>4.3</entry> <entry>4.3</entry>
</row> </row>
<row> <row>
<entry><systemitem class="osname">FreeBSD</></entry> <entry><systemitem class="osname">FreeBSD</></entry>
<entry><systemitem>Alpha</></entry> <entry><systemitem>Alpha</></entry>
<entry>7.4</entry> <entry>7.4</entry>
<entry>2003-10-25, <entry>2003-10-25,
Peter Eisentraut (<email>peter_e@gmx.net</email>)</entry> Peter Eisentraut (<email>peter_e@gmx.net</email>)</entry>
<entry>4.8</entry> <entry>4.8</entry>
</row> </row>
<row> <row>
<entry><systemitem class="osname">FreeBSD</></entry> <entry><systemitem class="osname">FreeBSD</></entry>
<entry><systemitem>x86</></entry> <entry><systemitem>x86</></entry>
<entry>7.4</entry> <entry>7.4</entry>
<entry>2003-10-24, <entry>2003-10-24,
Peter Eisentraut (<email>peter_e@gmx.net</email>)</entry> Peter Eisentraut (<email>peter_e@gmx.net</email>)</entry>
<entry>4.9</entry> <entry>4.9</entry>
</row> </row>
<row> <row>
<entry><systemitem class="osname">HP-UX</></entry> <entry><systemitem class="osname">HP-UX</></entry>
<entry><systemitem>PA-RISC</></entry> <entry><systemitem>PA-RISC</></entry>
<entry>7.4</entry> <entry>7.4</entry>
<entry>2003-10-31, <entry>2003-10-31,
10.20 Tom Lane (<email>tgl@sss.pgh.pa.us</email>) 10.20 Tom Lane (<email>tgl@sss.pgh.pa.us</email>)
</entry> </entry>
<entry><command>gcc</> and <command>cc</>; see also <filename>doc/FAQ_HPUX</filename></entry> <entry><command>gcc</> and <command>cc</>; see also <filename>doc/FAQ_HPUX</filename></entry>
</row> </row>
<row> <row>
<entry><systemitem class="osname">IRIX</></entry> <entry><systemitem class="osname">IRIX</></entry>
<entry><systemitem>MIPS</></entry> <entry><systemitem>MIPS</></entry>
<entry>7.3</entry> <entry>7.3</entry>
<entry>2002-10-27, <entry>2002-10-27,
Ian Barwick (<email>barwick@gmx.net</email>)</entry> Ian Barwick (<email>barwick@gmx.net</email>)</entry>
<entry>Irix64 Komma 6.5</entry> <entry>Irix64 Komma 6.5</entry>
</row> </row>
<row> <row>
<entry><systemitem class="osname">Linux</></entry> <entry><systemitem class="osname">Linux</></entry>
<entry><systemitem>Alpha</></entry> <entry><systemitem>Alpha</></entry>
<entry>7.4</entry> <entry>7.4</entry>
<entry>2003-10-25, <entry>2003-10-25,
No&egrave;l K&ouml;the (<email>noel@debian.org</email>)</entry> No&egrave;l K&ouml;the (<email>noel@debian.org</email>)</entry>
<entry>2.4</entry> <entry>2.4</entry>
</row> </row>
<row> <row>
<entry><systemitem class="osname">Linux</></entry> <entry><systemitem class="osname">Linux</></entry>
<entry><systemitem>arm41</></entry> <entry><systemitem>arm41</></entry>
<entry>7.4</entry> <entry>7.4</entry>
<entry>2003-10-25, <entry>2003-10-25,
No&egrave;l K&ouml;the (<email>noel@debian.org</email>)</entry> No&egrave;l K&ouml;the (<email>noel@debian.org</email>)</entry>
<entry>2.4</entry> <entry>2.4</entry>
</row> </row>
<row> <row>
<entry><systemitem class="osname">Linux</></entry> <entry><systemitem class="osname">Linux</></entry>
<entry><systemitem>Itanium</></entry> <entry><systemitem>Itanium</></entry>
<entry>7.4</entry> <entry>7.4</entry>
<entry>2003-10-25, <entry>2003-10-25,
No&egrave;l K&ouml;the (<email>noel@debian.org</email>)</entry> No&egrave;l K&ouml;the (<email>noel@debian.org</email>)</entry>
<entry>2.4</entry> <entry>2.4</entry>
</row> </row>
<row> <row>
<entry><systemitem class="osname">Linux</></entry> <entry><systemitem class="osname">Linux</></entry>
<entry><systemitem>m68k</></entry> <entry><systemitem>m68k</></entry>
<entry>7.4</entry> <entry>7.4</entry>
<entry>2003-10-25, <entry>2003-10-25,
No&egrave;l K&ouml;the (<email>noel@debian.org</email>)</entry> No&egrave;l K&ouml;the (<email>noel@debian.org</email>)</entry>
<entry>2.4</entry> <entry>2.4</entry>
</row> </row>
<row> <row>
<entry><systemitem class="osname">Linux</></entry> <entry><systemitem class="osname">Linux</></entry>
<entry><systemitem>MIPS</></entry> <entry><systemitem>MIPS</></entry>
<entry>7.4</entry> <entry>7.4</entry>
<entry>2003-10-25, <entry>2003-10-25,
No&egrave;l K&ouml;the (<email>noel@debian.org</email>)</entry> No&egrave;l K&ouml;the (<email>noel@debian.org</email>)</entry>
<entry>2.4</entry> <entry>2.4</entry>
</row> </row>
<row> <row>
<entry><systemitem class="osname">Linux</></entry> <entry><systemitem class="osname">Linux</></entry>
<entry><systemitem>Opteron</></entry> <entry><systemitem>Opteron</></entry>
<entry>7.4</entry> <entry>7.4</entry>
<entry>2003-11-01, <entry>2003-11-01,
Jani Averbach (<email>jaa@cc.jyu.fi</email>)</entry> Jani Averbach (<email>jaa@cc.jyu.fi</email>)</entry>
<entry>2.6</entry> <entry>2.6</entry>
</row> </row>
<row> <row>
<entry><systemitem class="osname">Linux</></entry> <entry><systemitem class="osname">Linux</></entry>
<entry><systemitem>PlayStation 2</></entry> <entry><systemitem>PPC</></entry>
<entry>7.3</entry> <entry>7.4</entry>
<entry>2002-11-19, <entry>2003-10-25,
Permaine Cheung <email>pcheung@redhat.com</email>)</entry> No&egrave;l K&ouml;the (<email>noel@debian.org</email>)</entry>
<entry><literal>#undef HAS_TEST_AND_SET</>, remove <type>slock_t</> <literal>typedef</></entry> <entry></entry>
</row> </row>
<row> <row>
<entry><systemitem class="osname">Linux</></entry> <entry><systemitem class="osname">Linux</></entry>
<entry><systemitem>PPC</></entry> <entry><systemitem>S/390</></entry>
<entry>7.4</entry> <entry>7.4</entry>
<entry>2003-10-25, <entry>2003-10-25,
No&egrave;l K&ouml;the (<email>noel@debian.org</email>)</entry> No&egrave;l K&ouml;the (<email>noel@debian.org</email>)</entry>
<entry></entry> <entry>2.4</entry>
</row> </row>
<row> <row>
<entry><systemitem class="osname">Linux</></entry> <entry><systemitem class="osname">Linux</></entry>
<entry><systemitem>S/390</></entry> <entry><systemitem>Sparc</></entry>
<entry>7.4</entry> <entry>7.4</entry>
<entry>2003-10-25, <entry>2003-10-24,
No&egrave;l K&ouml;the (<email>noel@debian.org</email>)</entry> Peter Eisentraut (<email>peter_e@gmx.net</email>)</entry>
<entry>2.4</entry> <entry>2.4, 32-bit</entry>
</row> </row>
<row> <row>
<entry><systemitem class="osname">Linux</></entry> <entry><systemitem class="osname">Linux</></entry>
<entry><systemitem>Sparc</></entry> <entry><systemitem>x86</></entry>
<entry>7.4</entry> <entry>7.4</entry>
<entry>2003-10-24, <entry>2003-10-24,
Peter Eisentraut (<email>peter_e@gmx.net</email>)</entry> Peter Eisentraut (<email>peter_e@gmx.net</email>)</entry>
<entry>2.4, 32-bit</entry> <entry>2.4</entry>
</row> </row>
<row> <row>
<entry><systemitem class="osname">Linux</></entry> <entry><systemitem class="osname">MacOS X</></entry>
<entry><systemitem>x86</></entry> <entry><systemitem>PPC</></entry>
<entry>7.4</entry> <entry>7.4</entry>
<entry>2003-10-24, <entry>2003-10-24,
Peter Eisentraut (<email>peter_e@gmx.net</email>)</entry> 10.2.8, Adam Witney (<email>awitney@sghms.ac.uk</email>),
<entry>2.4</entry> 10.3, Marko Karppinen (<email>marko@karppinen.fi</email>)</entry>
<entry></entry>
</row> </row>
<row> <row>
<entry><systemitem class="osname">MacOS X</></entry> <entry><systemitem class="osname">NetBSD</></entry>
<entry><systemitem>PPC</></entry> <entry><systemitem>arm32</></entry>
<entry>7.4</entry> <entry>7.3</entry>
<entry>2003-10-24, <entry>2002-11-19,
10.2.8, Adam Witney (<email>awitney@sghms.ac.uk</email>), Patrick Welche (<email>prlw1@newn.cam.ac.uk</email>)</entry>
10.3, Marko Karppinen (<email>marko@karppinen.fi</email>)</entry> <entry>1.6</entry>
<entry></entry>
</row> </row>
<row> <row>
<entry><systemitem class="osname">NetBSD</></entry> <entry><systemitem class="osname">NetBSD</></entry>
<entry><systemitem>arm32</></entry> <entry><systemitem>x86</></entry>
<entry>7.3</entry> <entry>7.4</entry>
<entry>2002-11-19, <entry>2003-10-24,
Patrick Welche (<email>prlw1@newn.cam.ac.uk</email>)</entry> Peter Eisentraut (<email>peter_e@gmx.net</email>)</entry>
<entry>1.6</entry> <entry>1.6</entry>
</row> </row>
<row> <row>
<entry><systemitem class="osname">NetBSD</></entry> <entry><systemitem class="osname">OpenBSD</></entry>
<entry><systemitem>x86</></entry> <entry><systemitem>Sparc</></entry>
<entry>7.4</entry> <entry>7.4</entry>
<entry>2003-10-24, <entry>2003-11-01,
Peter Eisentraut (<email>peter_e@gmx.net</email>)</entry> Peter Eisentraut (<email>peter_e@gmx.net</email>)</entry>
<entry>1.6</entry>
</row>
<row>
<entry><systemitem class="osname">OpenBSD</></entry>
<entry><systemitem>Sparc</></entry>
<entry>7.4</entry>
<entry>2003-11-01,
Peter Eisentraut (<email>peter_e@gmx.net</email>)</entry>
<entry>3.4</entry> <entry>3.4</entry>
</row> </row>
<row> <row>
<entry><systemitem class="osname">OpenBSD</></entry> <entry><systemitem class="osname">OpenBSD</></entry>
<entry><systemitem>x86</></entry> <entry><systemitem>x86</></entry>
<entry>7.4</entry> <entry>7.4</entry>
<entry>2003-10-24, <entry>2003-10-24,
Peter Eisentraut (<email>peter_e@gmx.net</email>)</entry> Peter Eisentraut (<email>peter_e@gmx.net</email>)</entry>
<entry>3.2</entry> <entry>3.2</entry>
</row> </row>
<row> <row>
<entry><systemitem class="osname">SCO OpenServer 5</></entry> <entry><systemitem class="osname">SCO OpenServer</></entry>
<entry><systemitem>x86</></entry> <entry><systemitem>x86</></entry>
<entry>7.3.1</entry> <entry>7.3.1</entry>
<entry>2002-12-11, <entry>2002-12-11,
@ -1714,45 +1673,45 @@ gunzip -c postgres.ps.gz \
<entry>5.0.4, <command>gcc</>; see also <filename>doc/FAQ_SCO</filename></entry> <entry>5.0.4, <command>gcc</>; see also <filename>doc/FAQ_SCO</filename></entry>
</row> </row>
<row> <row>
<entry><systemitem class="osname">Solaris</></entry> <entry><systemitem class="osname">Solaris</></entry>
<entry><systemitem>Sparc</></entry> <entry><systemitem>Sparc</></entry>
<entry>7.4</entry> <entry>7.4</entry>
<entry>2003-10-26, <entry>2003-10-26,
Christopher Browne (<email>cbbrowne@libertyrms.info</email>)</entry> Christopher Browne (<email>cbbrowne@libertyrms.info</email>)</entry>
<entry>2.8; see also <filename>doc/FAQ_Solaris</filename></entry> <entry>2.8; see also <filename>doc/FAQ_Solaris</filename></entry>
</row> </row>
<row> <row>
<entry><systemitem class="osname">Solaris</></entry> <entry><systemitem class="osname">Solaris</></entry>
<entry><systemitem>x86</></entry> <entry><systemitem>x86</></entry>
<entry>7.4</entry> <entry>7.4</entry>
<entry>2003-10-26, <entry>2003-10-26,
Kurt Roeckx (<email>Q@ping.be</email>)</entry> Kurt Roeckx (<email>Q@ping.be</email>)</entry>
<entry>2.6 see also <filename>doc/FAQ_Solaris</filename></entry> <entry>2.6 see also <filename>doc/FAQ_Solaris</filename></entry>
</row> </row>
<row> <row>
<entry><systemitem class="osname">Tru64 UNIX</></entry> <entry><systemitem class="osname">Tru64 UNIX</></entry>
<entry><systemitem>Alpha</></entry> <entry><systemitem>Alpha</></entry>
<entry>7.4</entry> <entry>7.4</entry>
<entry>2003-10-25, <entry>2003-10-25,
5.1b Peter Eisentraut (<email>peter_e@gmx.net</email>), 5.1b Peter Eisentraut (<email>peter_e@gmx.net</email>),
4.0g Alessio Bragadini (<email>alessio@albourne.com</email>)</entry> 4.0g Alessio Bragadini (<email>alessio@albourne.com</email>)</entry>
<entry></entry> <entry></entry>
</row> </row>
<row> <row>
<entry><systemitem class="osname">UnixWare</></entry> <entry><systemitem class="osname">UnixWare</></entry>
<entry><systemitem>x86</></entry> <entry><systemitem>x86</></entry>
<entry>7.3</entry> <entry>7.3</entry>
<entry>2002-11-01, <entry>2002-11-01,
7.1.3 Larry Rosenman (<email>ler@lerctr.org</email>), 7.1.3 Larry Rosenman (<email>ler@lerctr.org</email>),
7.1.1 and 7.1.2(8.0.0) Olivier Prenant (<email>ohp@pyrenet.fr</email>)</entry> 7.1.1 and 7.1.2(8.0.0) Olivier Prenant (<email>ohp@pyrenet.fr</email>)</entry>
<entry>see also <filename>doc/FAQ_SCO</filename></entry> <entry>see also <filename>doc/FAQ_SCO</filename></entry>
</row> </row>
<row> <row>
<entry><systemitem class="osname">Windows with <application>Cygwin</application></></entry> <entry><systemitem class="osname">Windows with <application>Cygwin</application></></entry>
<entry><systemitem>x86</></entry> <entry><systemitem>x86</></entry>
<entry>7.4</entry> <entry>7.4</entry>
<entry>2003-10-24, <entry>2003-10-24,
Peter Eisentraut (<email>peter_e@gmx.net</email>)</entry> Peter Eisentraut (<email>peter_e@gmx.net</email>)</entry>
<entry>see <filename>doc/FAQ_MSWIN</filename></entry> <entry>see <filename>doc/FAQ_MSWIN</filename></entry>
</row> </row>
<row> <row>
@ -1804,6 +1763,26 @@ gunzip -c postgres.ps.gz \
Cyril Velter (<email>cyril.velter@libertysurf.fr</email>)</entry> Cyril Velter (<email>cyril.velter@libertysurf.fr</email>)</entry>
<entry>needs updates to semaphore code</entry> <entry>needs updates to semaphore code</entry>
</row> </row>
<row>
<entry><systemitem class="osname">Linux</></entry>
<entry><systemitem>PlayStation 2</></entry>
<entry>7.4</entry>
<entry>2003-11-02,
Peter Eisentraut <email>peter_e@gmx.net</email>)</entry>
<entry>
needs new <filename>config.guess</filename>,
<option>--disable-spinlock</option>, <literal>#undef
HAS_TEST_AND_SET</>, disable <function>tas_dummy()</>
</entry>
</row>
<row>
<entry><systemitem class="osname">Linux</></entry>
<entry><systemitem>PA-RISC</></entry>
<entry>7.4</entry>
<entry>2003-10-25,
No&egrave;l K&ouml;the (<email>noel@debian.org</email>)</entry>
<entry>needs <option>--disable-spinlock</option>, otherwise OK</entry>
</row>
<row> <row>
<entry><systemitem class="osname">NetBSD</></entry> <entry><systemitem class="osname">NetBSD</></entry>
<entry><systemitem>Alpha</></entry> <entry><systemitem>Alpha</></entry>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/maintenance.sgml,v 1.27 2003/11/01 01:56:29 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/maintenance.sgml,v 1.28 2003/11/04 09:55:38 petere Exp $
--> -->
<chapter id="maintenance"> <chapter id="maintenance">
@ -40,10 +40,10 @@ $Header: /cvsroot/pgsql/doc/src/sgml/maintenance.sgml,v 1.27 2003/11/01 01:56:29
</para> </para>
<para> <para>
<productname>PostgreSQL</productname> is low-maintenance compared to <productname>PostgreSQL</productname> is low-maintenance compared
some other database products. Nonetheless, appropriate attention to to some other database management systems. Nonetheless,
these tasks will go far towards ensuring a pleasant and productive appropriate attention to these tasks will go far towards ensuring a
experience with the system. pleasant and productive experience with the system.
</para> </para>
<sect1 id="routine-vacuuming"> <sect1 id="routine-vacuuming">

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/monitoring.sgml,v 1.23 2003/11/01 01:56:29 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/monitoring.sgml,v 1.24 2003/11/04 09:55:38 petere Exp $
--> -->
<chapter id="monitoring"> <chapter id="monitoring">
@ -367,12 +367,13 @@ postgres: <replaceable>user</> <replaceable>database</> <replaceable>host</> <re
queries that use the same underlying statistics access functions as queries that use the same underlying statistics access functions as
these standard views do. These functions are listed in <xref these standard views do. These functions are listed in <xref
linkend="monitoring-stats-funcs-table">. The per-database access linkend="monitoring-stats-funcs-table">. The per-database access
functions take a database OID as argument to identify which database to functions take a database OID as argument to identify which
report on. The per-table and per-index functions take a table or database to report on. The per-table and per-index functions take
index OID. (Note that only tables and indexes in the current a table or index OID. (Note that only tables and indexes in the
database can be seen with these functions.) The per-backend access current database can be seen with these functions.) The
functions take a backend ID number, which ranges from one to the per-backend process access functions take a backend process ID
number of currently active backend processes. number, which ranges from one to the number of currently active
backend processes.
</para> </para>
<table id="monitoring-stats-funcs-table"> <table id="monitoring-stats-funcs-table">

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.39 2003/10/17 22:38:20 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.40 2003/11/04 09:55:38 petere Exp $
--> -->
<chapter id="mvcc"> <chapter id="mvcc">
@ -770,22 +770,17 @@ UPDATE accounts SET balance = balance - 100.00 WHERE acctnum = 22222;
<para> <para>
To ensure the current validity of a row and protect it against To ensure the current validity of a row and protect it against
concurrent updates one must use <command>SELECT FOR UPDATE</command> or concurrent updates one must use <command>SELECT FOR
an appropriate <command>LOCK TABLE</command> statement. UPDATE</command> or an appropriate <command>LOCK TABLE</command>
(<command>SELECT FOR UPDATE</command> locks just the returned rows against statement. (<command>SELECT FOR UPDATE</command> locks just the
concurrent updates, while <command>LOCK TABLE</command> locks the returned rows against concurrent updates, while <command>LOCK
whole table.) TABLE</command> locks the whole table.) This should be taken into
This should be taken into account when porting applications to account when porting applications to
<productname>PostgreSQL</productname> from other environments. <productname>PostgreSQL</productname> from other environments.
(Before version 6.5 <productname>PostgreSQL</productname> used
<note> read locks, and so this above consideration is also relevant when
<para> upgrading from <productname>PostgreSQL</productname> versions
Before version 6.5 <productname>PostgreSQL</productname> used prior to 6.5.)
read locks, and so the above consideration is also the case when
upgrading from <productname>PostgreSQL</productname> versions
prior to 6.5.
</para>
</note>
</para> </para>
<para> <para>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/postgres.sgml,v 1.59 2003/10/23 13:58:43 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/postgres.sgml,v 1.60 2003/11/04 09:55:38 petere Exp $
--> -->
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [ <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
@ -84,7 +84,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/postgres.sgml,v 1.59 2003/10/23 13:58:43 tg
</para> </para>
<para> <para>
Readers of this book should know how to connect to a Readers of this part should know how to connect to a
<productname>PostgreSQL</> database and issue <productname>PostgreSQL</> database and issue
<acronym>SQL</acronym> commands. Readers that are unfamiliar with <acronym>SQL</acronym> commands. Readers that are unfamiliar with
these issues are encouraged to read <xref linkend="tutorial"> these issues are encouraged to read <xref linkend="tutorial">

View File

@ -1,4 +1,4 @@
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/queries.sgml,v 1.25 2003/11/01 01:56:29 petere Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/queries.sgml,v 1.26 2003/11/04 09:55:38 petere Exp $ -->
<chapter id="queries"> <chapter id="queries">
<title>Queries</title> <title>Queries</title>
@ -105,7 +105,7 @@ SELECT random();
</para> </para>
<sect2 id="queries-from"> <sect2 id="queries-from">
<title>The FROM Clause</title> <title>The <literal>FROM</literal> Clause</title>
<para> <para>
The <literal>FROM</> clause derives a table from one or more other The <literal>FROM</> clause derives a table from one or more other
@ -670,7 +670,7 @@ SELECT *
</sect2> </sect2>
<sect2 id="queries-where"> <sect2 id="queries-where">
<title>The WHERE Clause</title> <title>The <literal>WHERE</literal> Clause</title>
<indexterm zone="queries-where"> <indexterm zone="queries-where">
<primary>WHERE</primary> <primary>WHERE</primary>
@ -716,7 +716,7 @@ FROM a NATURAL JOIN b WHERE b.val &gt; 5
</programlisting> </programlisting>
Which one of these you use is mainly a matter of style. The Which one of these you use is mainly a matter of style. The
<literal>JOIN</> syntax in the <literal>FROM</> clause is <literal>JOIN</> syntax in the <literal>FROM</> clause is
probably not as portable to other SQL database products. For probably not as portable to other SQL database management systems. For
outer joins there is no choice in any case: they must be done in outer joins there is no choice in any case: they must be done in
the <literal>FROM</> clause. An <literal>ON</>/<literal>USING</> the <literal>FROM</> clause. An <literal>ON</>/<literal>USING</>
clause of an outer join is <emphasis>not</> equivalent to a clause of an outer join is <emphasis>not</> equivalent to a
@ -758,7 +758,7 @@ SELECT ... FROM fdt WHERE EXISTS (SELECT c1 FROM t2 WHERE c2 > fdt.c1)
<sect2 id="queries-group"> <sect2 id="queries-group">
<title>The GROUP BY and HAVING Clauses</title> <title>The <literal>GROUP BY</literal> and <literal>HAVING</literal> Clauses</title>
<indexterm zone="queries-group"> <indexterm zone="queries-group">
<primary>GROUP BY</primary> <primary>GROUP BY</primary>
@ -1040,7 +1040,7 @@ SELECT a AS value, b + c AS sum FROM ...
</sect2> </sect2>
<sect2 id="queries-distinct"> <sect2 id="queries-distinct">
<title>DISTINCT</title> <title><literal>DISTINCT</literal></title>
<indexterm zone="queries-distinct"> <indexterm zone="queries-distinct">
<primary>DISTINCT</primary> <primary>DISTINCT</primary>
@ -1264,7 +1264,7 @@ SELECT a AS b FROM table1 ORDER BY a;
<sect1 id="queries-limit"> <sect1 id="queries-limit">
<title>LIMIT and OFFSET</title> <title><literal>LIMIT</literal> and <literal>OFFSET</literal></title>
<indexterm zone="queries-limit"> <indexterm zone="queries-limit">
<primary>LIMIT</primary> <primary>LIMIT</primary>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_dump.sgml,v 1.65 2003/09/23 22:48:53 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_dump.sgml,v 1.66 2003/11/04 09:55:39 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -177,7 +177,7 @@ PostgreSQL documentation
Dump data as <command>INSERT</command> commands (rather Dump data as <command>INSERT</command> commands (rather
than <command>COPY</command>). This will make restoration very than <command>COPY</command>). This will make restoration very
slow, but it makes the archives more portable to other SQL database slow, but it makes the archives more portable to other SQL database
packages. management systems.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_dumpall.sgml,v 1.41 2003/11/02 12:58:39 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_dumpall.sgml,v 1.42 2003/11/04 09:55:39 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -112,7 +112,7 @@ PostgreSQL documentation
Dump data as <command>INSERT</command> commands (rather Dump data as <command>INSERT</command> commands (rather
than <command>COPY</command>). This will make restoration very than <command>COPY</command>). This will make restoration very
slow, but it makes the output more portable to other SQL database slow, but it makes the output more portable to other SQL database
packages. management systems.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>

View File

@ -1,4 +1,4 @@
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/regress.sgml,v 1.35 2003/11/02 21:56:14 tgl Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/regress.sgml,v 1.36 2003/11/04 09:55:38 petere Exp $ -->
<chapter id="regress"> <chapter id="regress">
<title id="regress-title">Regression Tests</title> <title id="regress-title">Regression Tests</title>
@ -60,7 +60,6 @@ gmake check
linkend="regress-evaluation"> below for more. linkend="regress-evaluation"> below for more.
</para> </para>
<note>
<para> <para>
Because this test method runs a temporary server, it will not work Because this test method runs a temporary server, it will not work
when you are the root user (since the server will not start as root). when you are the root user (since the server will not start as root).
@ -82,9 +81,7 @@ gmake check
<para> <para>
Alternatively, run the tests after installation. Alternatively, run the tests after installation.
</para> </para>
</note>
<tip>
<para> <para>
The parallel regression test starts quite a few processes under your The parallel regression test starts quite a few processes under your
user ID. Presently, the maximum concurrency is twenty parallel test user ID. Presently, the maximum concurrency is twenty parallel test
@ -101,9 +98,7 @@ gmake MAX_CONNECTIONS=10 check
</screen> </screen>
runs no more than ten tests concurrently. runs no more than ten tests concurrently.
</para> </para>
</tip>
<tip>
<para> <para>
On some systems, the default Bourne-compatible shell On some systems, the default Bourne-compatible shell
(<filename>/bin/sh</filename>) gets confused when it has to manage (<filename>/bin/sh</filename>) gets confused when it has to manage
@ -116,7 +111,6 @@ gmake SHELL=/bin/ksh check
If no non-broken shell is available, you may be able to work around the If no non-broken shell is available, you may be able to work around the
problem by limiting the number of connections, as shown above. problem by limiting the number of connections, as shown above.
</para> </para>
</tip>
<para> <para>
To run the tests after installation<![%standalone-ignore;[ (see <xref linkend="installation">)]]>, To run the tests after installation<![%standalone-ignore;[ (see <xref linkend="installation">)]]>,
@ -223,9 +217,9 @@ gmake installcheck
<note> <note>
<para> <para>
Because USA daylight-saving rules are used, this problem always Because USA daylight-saving time rules are used, this problem always
occurs on the first Sunday of April, the last Sunday of October, occurs on the first Sunday of April, the last Sunday of October,
and their following Mondays, regardless of when daylight-saving and their following Mondays, regardless of when daylight-saving time
is in effect where you live. Also note that the problem appears or is in effect where you live. Also note that the problem appears or
disappears at midnight Pacific time (UTC-7 or UTC-8), not midnight disappears at midnight Pacific time (UTC-7 or UTC-8), not midnight
your local time. Thus the failure may appear late on Saturday or your local time. Thus the failure may appear late on Saturday or

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.215 2003/11/01 01:56:29 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.216 2003/11/04 09:55:38 petere Exp $
--> -->
<Chapter Id="runtime"> <Chapter Id="runtime">
@ -174,7 +174,7 @@ $ <userinput>postmaster -D /usr/local/pgsql/data</userinput>
To start the <command>postmaster</command> in the To start the <command>postmaster</command> in the
background, use the usual shell syntax: background, use the usual shell syntax:
<screen> <screen>
$ <userinput>postmaster -D /usr/local/pgsql/data &gt; logfile 2&gt;&amp;1 &amp;</userinput> $ <userinput>postmaster -D /usr/local/pgsql/data &gt;logfile 2&gt;&amp;1 &amp;</userinput>
</screen> </screen>
It is an important to store the server's <systemitem>stdout</> and It is an important to store the server's <systemitem>stdout</> and
<systemitem>stderr</> output somewhere, as shown above. It will help <systemitem>stderr</> output somewhere, as shown above. It will help
@ -344,7 +344,7 @@ FATAL: could not create TCP/IP listen socket
A message like A message like
<screen> <screen>
FATAL: could not create shared memory segment: Invalid argument FATAL: could not create shared memory segment: Invalid argument
DETAIL: Failed syscall was shmget(key=5440001, size=4011376640, 03600). DETAIL: Failed system call was shmget(key=5440001, size=4011376640, 03600).
</screen> </screen>
probably means your kernel's limit on the size of shared memory is probably means your kernel's limit on the size of shared memory is
smaller than the work area <productname>PostgreSQL</productname> smaller than the work area <productname>PostgreSQL</productname>
@ -363,7 +363,7 @@ DETAIL: Failed syscall was shmget(key=5440001, size=4011376640, 03600).
An error like An error like
<screen> <screen>
FATAL: could not create semaphores: No space left on device FATAL: could not create semaphores: No space left on device
DETAIL: Failed syscall was semget(5440126, 17, 03600). DETAIL: Failed system call was semget(5440126, 17, 03600).
</screen> </screen>
does <emphasis>not</emphasis> mean you've run out of disk does <emphasis>not</emphasis> mean you've run out of disk
space. It means your kernel's limit on the number of <systemitem space. It means your kernel's limit on the number of <systemitem
@ -1119,8 +1119,8 @@ SET ENABLE_SEQSCAN TO OFF;
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><varname>commit_delay</varname> (<type>integer</type>)</term> <term><varname>commit_delay</varname> (<type>integer</type>)</term>
<listitem> <listitem>
@ -1572,7 +1572,7 @@ SET ENABLE_SEQSCAN TO OFF;
<listitem> <listitem>
<para> <para>
Controls which message levels are written to the server log. Controls which message levels are written to the server log.
Valid values are <literal>DEBUG5</>, <literal>DEBUG4</>, Valid values are <literal>DEBUG5</>, <literal>DEBUG4</>,
<literal>DEBUG3</>, <literal>DEBUG2</>, <literal>DEBUG1</>, <literal>DEBUG3</>, <literal>DEBUG2</>, <literal>DEBUG1</>,
<literal>INFO</>, <literal>NOTICE</>, <literal>WARNING</>, <literal>INFO</>, <literal>NOTICE</>, <literal>WARNING</>,
<literal>ERROR</>, <literal>LOG</>, <literal>FATAL</>, and <literal>ERROR</>, <literal>LOG</>, <literal>FATAL</>, and
@ -1591,9 +1591,9 @@ SET ENABLE_SEQSCAN TO OFF;
<listitem> <listitem>
<para> <para>
Controls the amount of detail written in the server log for each Controls the amount of detail written in the server log for each
message that is logged. Valid values are <literal>TERSE</>, message that is logged. Valid values are <literal>TERSE</>,
<literal>DEFAULT</>, and <literal>VERBOSE</>, each adding more <literal>DEFAULT</>, and <literal>VERBOSE</>, each adding more
fields to displayed messages. fields to displayed messages.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -1660,7 +1660,7 @@ SET ENABLE_SEQSCAN TO OFF;
<para> <para>
Here is a list of the various message severity levels used in Here is a list of the various message severity levels used in
these settings: these settings:
<variablelist> <variablelist>
<varlistentry> <varlistentry>
<term><literal>DEBUG[1-5]</literal></term> <term><literal>DEBUG[1-5]</literal></term>
@ -2028,9 +2028,9 @@ SET ENABLE_SEQSCAN TO OFF;
<listitem> <listitem>
<para> <para>
This parameter is normally true. When set false, it disables This parameter is normally true. When set false, it disables
validation of the function body string in <command>CREATE FUNCTION</>. validation of the function body string in <command>CREATE FUNCTION</>.
Disabling validation is occasionally useful to avoid problems such as Disabling validation is occasionally useful to avoid problems such as
forward references when restoring function definitions from a dump. forward references when restoring function definitions from a dump.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -2100,15 +2100,15 @@ SET ENABLE_SEQSCAN TO OFF;
<para> <para>
Sets the display format for date and time values, as well as Sets the display format for date and time values, as well as
the rules for interpreting ambiguous date input values. the rules for interpreting ambiguous date input values.
For historical reasons, this variable contains two independent For historical reasons, this variable contains two independent
components: the output format specification (<literal>ISO</>, components: the output format specification (<literal>ISO</>,
<literal>Postgres</>, <literal>SQL</>, or <literal>German</>) and <literal>Postgres</>, <literal>SQL</>, or <literal>German</>) and
the date field order specification (<literal>DMY</>, <literal>MDY</>, the date field order specification (<literal>DMY</>, <literal>MDY</>,
or <literal>YMD</>). These can be set separately or together. or <literal>YMD</>). These can be set separately or together.
The keywords <literal>Euro</> and <literal>European</> are synonyms The keywords <literal>Euro</> and <literal>European</> are synonyms
for <literal>DMY</>; the keywords <literal>US</>, <literal>NonEuro</>, for <literal>DMY</>; the keywords <literal>US</>, <literal>NonEuro</>,
and <literal>NonEuropean</> are synonyms for <literal>MDY</>. and <literal>NonEuropean</> are synonyms for <literal>MDY</>.
See <xref linkend="datatype-datetime"> for more information. The See <xref linkend="datatype-datetime"> for more information. The
default is <literal>ISO, MDY</>. default is <literal>ISO, MDY</>.
</para> </para>
</listitem> </listitem>
@ -2390,13 +2390,13 @@ dynamic_library_path = '/usr/local/lib/postgresql:/home/my_project/lib:$libdir'
<listitem> <listitem>
<para> <para>
When <literal>true</>, tables that are referenced by a query will be When <literal>true</>, tables that are referenced by a query will be
automatically added to the <literal>FROM</> clause if not already automatically added to the <literal>FROM</> clause if not already
present. The default is <literal>true</> for compatibility with present. The default is <literal>true</> for compatibility with
previous releases of <productname>PostgreSQL</>. However, this previous releases of <productname>PostgreSQL</>. However, this
behavior is not SQL-standard, and many people dislike it because it behavior is not SQL-standard, and many people dislike it because it
can mask mistakes. Set to <literal>false</> for the SQL-standard can mask mistakes. Set to <literal>false</> for the SQL-standard
behavior of rejecting references to tables that are not listed in behavior of rejecting references to tables that are not listed in
<literal>FROM</>. <literal>FROM</>.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -2521,10 +2521,10 @@ dynamic_library_path = '/usr/local/lib/postgresql:/home/my_project/lib:$libdir'
<listitem> <listitem>
<para> <para>
If nonzero, a delay of this many seconds occurs just after a new If nonzero, a delay of this many seconds occurs just after a new
server process is forked, before it conducts the authentication server process is forked, before it conducts the authentication
process. This is intended to give an opportunity to attach to the process. This is intended to give an opportunity to attach to the
server process with a debugger to trace down misbehavior in server process with a debugger to trace down misbehavior in
authentication. authentication.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -2993,9 +2993,10 @@ options SEMMAP=256
<literal>option</literal> singular.) <literal>option</literal> singular.)
</para> </para>
<para> <para>
You might also want to use the <command>sysctl</> setting to You might also want to configure your kernel to lock shared
lock shared memory into RAM and prevent it from being paged out memory into RAM and prevent it from being paged out to swap.
to swap, e.g. <literal>kern.ipc.shm_use_phys</>. Use the <command>sysctl</> setting
<literal>kern.ipc.shm_use_phys</>.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -3059,65 +3060,6 @@ kernel.shmmax = 134217728
<filename>/usr/src/linux/include/asm-<replaceable>xxx</>/shmpara <filename>/usr/src/linux/include/asm-<replaceable>xxx</>/shmpara
m.h</> and <filename>/usr/src/linux/include/linux/sem.h</>. m.h</> and <filename>/usr/src/linux/include/linux/sem.h</>.
</para> </para>
<para>
Linux kernel version 2.4.* has poor default memory overcommit
behavior, which can result in the postmaster being killed by the
kernel due to memory demands by another process if the system
runs out of memory.
</para>
<para>
The symptom of this occurring is a kernel message looking like
this (consult your system documentation and configuration on
where to look for such a message):
<programlisting>
Out of Memory: Killed process 12345 (postmaster).
</programlisting>
</para>
<para>
To avoid this situation, run <productname>PostgreSQL</productname>
on a machine where you
can be sure that other processes will not run the machine out
of memory. If your kernel supports strict and/or paranoid modes
of overcommit handling, you can also relieve this problem by
altering the system's default behaviour. This can be determined
by examining the function <function>vm_enough_memory</>
in the file <filename>mm/mmap.c</> in the kernel source.
If this file reveals that strict and/or paranoid modes are
supported by your kernel, turn one of these modes on by using
<programlisting>
sysctl -w vm.overcommit_memory=2
</programlisting>
for strict mode or
<programlisting>
sysctl -w vm.overcommit_memory=3
</programlisting>
for paranoid mode, or placing an equivalent entry in
<filename>/etc/sysctl.conf</>.
</para>
<note>
<para>
Warning: using these settings in a kernel which does not support
these modes will almost certainly increase the danger of the
kernel killing the postmaster, rather than reducing it.
If in any doubt, consult a kernel expert or your kernel vendor.
</para>
</note>
<para>
These modes are expected to be supported in all 2.6 and later
kernels. Some vendor 2.4 kernels may also support these modes.
However, it is known that some vendor documents suggest that
they support them while examination of the kernel source reveals
that they do not.
</para>
<para>
Note, you will need enough swap space to cover all your memory needs.
</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -3319,6 +3261,71 @@ default:\
</para> </para>
</sect2> </sect2>
<sect2>
<title>Linux Memory Overcommit</title>
<para>
Linux kernels of version 2.4.* have a poor default memory
overcommit behavior, which can result in the PostgreSQL server
(<filename>postmaster</filename> process) being killed by the
kernel if the memory demands of another process cause the system
to run out of memory.
</para>
<para>
If this happens, you will see a kernel message looking like this
(consult your system documentation and configuration on where to
look for such a message):
<programlisting>
Out of Memory: Killed process 12345 (postmaster).
</programlisting>
And, of course, you will find that your database server has
disappeared.
</para>
<para>
To avoid this situation, run <productname>PostgreSQL</productname>
on a machine where you can be sure that other processes will not
run the machine out of memory. If your kernel supports the strict
and/or paranoid modes of overcommit handling, you can also relieve
this problem by altering the system's default behaviour. This can
be determined by examining the function
<function>vm_enough_memory</> in the file <filename>mm/mmap.c</>
in the kernel source. If this file reveals that the strict and/or
paranoid modes are supported by your kernel, turn one of these
modes on by using
<programlisting>
sysctl -w vm.overcommit_memory=2
</programlisting>
for strict mode, or
<programlisting>
sysctl -w vm.overcommit_memory=3
</programlisting>
for paranoid mode, or placing an equivalent entry in
<filename>/etc/sysctl.conf</>.
</para>
<caution>
<para>
Using these settings in a kernel which does not support these
modes will almost certainly increase the danger of the kernel
killing the database server, rather than reducing it. If in any
doubt, consult a kernel expert or your kernel vendor.
</para>
</caution>
<para>
These modes are expected to be supported in all 2.6 and later
kernels. Some vendor 2.4 kernels may also support these modes. It
is, however, known that some vendor documents suggest that they
support them while examination of the kernel source reveals that
they do not.
</para>
<para>
Note, you will need enough swap space to cover all your memory needs.
</para>
</sect2>
</sect1> </sect1>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/syntax.sgml,v 1.85 2003/11/01 01:56:29 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/syntax.sgml,v 1.86 2003/11/04 09:55:39 petere Exp $
--> -->
<chapter id="sql-syntax"> <chapter id="sql-syntax">
@ -196,20 +196,16 @@ UPDATE "my_table" SET "a" = 5;
unquoted names are always folded to lower case. For example, the unquoted names are always folded to lower case. For example, the
identifiers <literal>FOO</literal>, <literal>foo</literal>, and identifiers <literal>FOO</literal>, <literal>foo</literal>, and
<literal>"foo"</literal> are considered the same by <literal>"foo"</literal> are considered the same by
<productname>PostgreSQL</productname>, but <literal>"Foo"</literal> <productname>PostgreSQL</productname>, but
and <literal>"FOO"</literal> are different from these three and <literal>"Foo"</literal> and <literal>"FOO"</literal> are
each other. different from these three and each other. (The folding of
<footnote> unquoted names to lower case in <productname>PostgreSQL</> is
<para> incompatible with the SQL standard, which says that unquoted names
The folding of unquoted names to lower case in <productname>PostgreSQL</> should be folded to upper case. Thus, <literal>foo</literal>
is incompatible with the SQL standard, which says that unquoted should be equivalent to <literal>"FOO"</literal> not
names should be folded to upper case. Thus, <literal>foo</literal> <literal>"foo"</literal> according to the standard. If you want
should be equivalent to <literal>"FOO"</literal> not to write portable applications you are advised to always quote a
<literal>"foo"</literal> according to the standard. If you want to particular name or never quote it.
write portable applications you are advised to always quote a particular
name or never quote it.
</para>
</footnote>
</para> </para>
</sect2> </sect2>
@ -260,10 +256,12 @@ UPDATE "my_table" SET "a" = 5;
form feed, <literal>\n</literal> is a newline, form feed, <literal>\n</literal> is a newline,
<literal>\r</literal> is a carriage return, <literal>\t</literal> <literal>\r</literal> is a carriage return, <literal>\t</literal>
is a tab, and <literal>\<replaceable>xxx</replaceable></literal>, is a tab, and <literal>\<replaceable>xxx</replaceable></literal>,
where <replaceable>xxx</replaceable> is an octal number, is the where <replaceable>xxx</replaceable> is an octal number, is a
character with the corresponding ASCII code. Any other character byte with the corresponding code. (It is your responsibility
following a backslash is taken literally. Thus, to include a that the byte sequences you create are valid characters in the
backslash in a string constant, type two backslashes. server character set encoding.) Any other character following a
backslash is taken literally. Thus, to include a backslash in a
string constant, type two backslashes.
</para> </para>
<para> <para>
@ -440,44 +438,8 @@ CAST ( '<replaceable>string</replaceable>' AS <replaceable>type</replaceable> )
or <literal>CAST()</literal> to specify the type of an array constant. or <literal>CAST()</literal> to specify the type of an array constant.
</para> </para>
</sect3> </sect3>
<sect3>
<title>Array constants</title>
<indexterm>
<primary>array</primary>
<secondary>constant</secondary>
</indexterm>
<para>
The general format of an array constant is the following:
<synopsis>
'{ <replaceable>val1</replaceable> <replaceable>delim</replaceable> <replaceable>val2</replaceable> <replaceable>delim</replaceable> ... }'
</synopsis>
where <replaceable>delim</replaceable> is the delimiter character
for the type, as recorded in its <literal>pg_type</literal>
entry. (For all built-in types, this is the comma character
<quote><literal>,</literal></>.) Each <replaceable>val</replaceable> is either a constant
of the array element type, or a subarray. An example of an
array constant is
<programlisting>
'{{1,2,3},{4,5,6},{7,8,9}}'
</programlisting>
This constant is a two-dimensional, 3-by-3 array consisting of three
subarrays of integers. For more information see <xref linkend="arrays">.
</para>
<para>
(Array constants are actually only a special case of the generic
type constants discussed in the previous section. The constant
is initially treated as a string and passed to the array input
conversion routine. An explicit type specification might be
necessary.)
</para>
</sect3>
</sect2> </sect2>
<sect2 id="sql-syntax-operators"> <sect2 id="sql-syntax-operators">
<title>Operators</title> <title>Operators</title>
@ -622,7 +584,7 @@ CAST ( '<replaceable>string</replaceable>' AS <replaceable>type</replaceable> )
A comment is an arbitrary sequence of characters beginning with A comment is an arbitrary sequence of characters beginning with
double dashes and extending to the end of the line, e.g.: double dashes and extending to the end of the line, e.g.:
<programlisting> <programlisting>
-- This is a standard SQL92 comment -- This is a standard SQL comment
</programlisting> </programlisting>
</para> </para>
@ -635,7 +597,7 @@ CAST ( '<replaceable>string</replaceable>' AS <replaceable>type</replaceable> )
</programlisting> </programlisting>
where the comment begins with <literal>/*</literal> and extends to where the comment begins with <literal>/*</literal> and extends to
the matching occurrence of <literal>*/</literal>. These block the matching occurrence of <literal>*/</literal>. These block
comments nest, as specified in SQL99 but unlike C, so that one can comments nest, as specified in the SQL standard but unlike C, so that one can
comment out larger blocks of code that may contain existing block comment out larger blocks of code that may contain existing block
comments. comments.
</para> </para>
@ -1267,7 +1229,7 @@ CAST ( <replaceable>expression</replaceable> AS <replaceable>type</replaceable>
there is no error; the scalar result is taken to be null.) there is no error; the scalar result is taken to be null.)
The subquery can refer to variables from the surrounding query, The subquery can refer to variables from the surrounding query,
which will act as constants during any one evaluation of the subquery. which will act as constants during any one evaluation of the subquery.
See also <xref linkend="functions-subquery">. See also <xref linkend="functions-subquery"> for other expressions involving subqueries.
</para> </para>
<para> <para>
@ -1289,7 +1251,7 @@ SELECT name, (SELECT max(pop) FROM cities WHERE cities.state = states.name)
</indexterm> </indexterm>
<para> <para>
An <firstterm>array constructor</> is an expression that builds an An array constructor is an expression that builds an
array value from values for its member elements. A simple array array value from values for its member elements. A simple array
constructor constructor
consists of the key word <literal>ARRAY</literal>, a left square bracket consists of the key word <literal>ARRAY</literal>, a left square bracket
@ -1337,11 +1299,11 @@ SELECT ARRAY[[1,2],[3,4]];
an array of the proper kind, not only a sub-<literal>ARRAY</> construct. an array of the proper kind, not only a sub-<literal>ARRAY</> construct.
For example: For example:
<programlisting> <programlisting>
create table arr(f1 int[], f2 int[]); CREATE TABLE arr(f1 int[], f2 int[]);
CREATE TABLE
insert into arr values (ARRAY[[1,2],[3,4]],ARRAY[[5,6],[7,8]]); INSERT INTO arr VALUES (ARRAY[[1,2],[3,4]], ARRAY[[5,6],[7,8]]);
INSERT 2635544 1
select ARRAY[f1, f2, '{{9,10},{11,12}}'::int[]] from arr; SELECT ARRAY[f1, f2, '{{9,10},{11,12}}'::int[]] FROM arr;
array array
------------------------------------------------ ------------------------------------------------
{{{1,2},{3,4}},{{5,6},{7,8}},{{9,10},{11,12}}} {{{1,2},{3,4}},{{5,6},{7,8}},{{9,10},{11,12}}}
@ -1361,10 +1323,10 @@ SELECT ARRAY(SELECT oid FROM pg_proc WHERE proname LIKE 'bytea%');
{2011,1954,1948,1952,1951,1244,1950,2005,1949,1953,2006,31} {2011,1954,1948,1952,1951,1244,1950,2005,1949,1953,2006,31}
(1 row) (1 row)
</programlisting> </programlisting>
The subquery must return a single column. The The subquery must return a single column. The resulting
resulting one-dimensional array will have an element for each row in the one-dimensional array will have an element for each row in the
subquery result, with an element type matching that of the subquery's subquery result, with an element type matching that of the
output column. subquery's output column.
</para> </para>
<para> <para>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/typeconv.sgml,v 1.36 2003/11/01 01:56:29 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/typeconv.sgml,v 1.37 2003/11/04 09:55:39 petere Exp $
--> -->
<chapter Id="typeconv"> <chapter Id="typeconv">
@ -794,13 +794,14 @@ padding spaces.
</indexterm> </indexterm>
<para> <para>
SQL <literal>UNION</> constructs must match up possibly dissimilar types to SQL <literal>UNION</> constructs must match up possibly dissimilar
become a single result set. The resolution algorithm is applied separately types to become a single result set. The resolution algorithm is
to each output column of a union query. The <literal>INTERSECT</> and applied separately to each output column of a union query. The
<literal>EXCEPT</> constructs resolve dissimilar types in the same way as <literal>INTERSECT</> and <literal>EXCEPT</> constructs resolve
<literal>UNION</>. dissimilar types in the same way as <literal>UNION</>. The
A <literal>CASE</> construct uses the identical algorithm to match up its <literal>CASE</> and <literal>ARRAY</> constructs use the identical
component expressions and select a result data type, as does <literal>ARRAY</>. algorithm to match up their component expressions and select a result
data type.
</para> </para>
<procedure> <procedure>