-<!-- $PostgreSQL: pgsql/doc/src/sgml/errcodes.sgml,v 1.7 2004/07/31 23:04:54 tgl Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/errcodes.sgml,v 1.8 2004/08/24 00:06:50 neilc Exp $ -->
<appendix id="errcodes-appendix">
<title><productname>PostgreSQL</productname> Error Codes</title>
<row>
<entry>Class 58</entry>
-<entry>System Error (errors external to PostgreSQL itself)</entry>
+<entry>System Error (errors external to <productname>PostgreSQL</> itself)</entry>
</row>
<row>
<!--
-$PostgreSQL: pgsql/doc/src/sgml/problems.sgml,v 2.18 2004/03/09 16:57:46 neilc Exp $
+$PostgreSQL: pgsql/doc/src/sgml/problems.sgml,v 2.19 2004/08/24 00:06:50 neilc Exp $
-->
<sect1 id="bug-reporting">
<productname>PostgreSQL</productname> more reliable because even the utmost
care cannot guarantee that every part of
<productname>PostgreSQL</productname>
- will work on every
- platform under every circumstance.
+ will work on every platform under every circumstance.
</para>
<para>
in each new release, so it is quite possible that a bug you have
encountered in an older release of <productname>PostgreSQL</>
has already been fixed. We can only provide limited support for
- sites using older releases of PostgreSQL; if you require more
- than we can provide, consider acquiring a commercial support
- contract.
+ sites using older releases of <productname>PostgreSQL</>; if you
+ require more than we can provide, consider acquiring a
+ commercial support contract.
</para>
<para>
</para>
<!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/alter_index.sgml,v 1.3 2004/08/21 16:16:04 tgl Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/alter_index.sgml,v 1.4 2004/08/24 00:06:51 neilc Exp $
PostgreSQL documentation
-->
<title>Compatibility</title>
<para>
- <literal>ALTER INDEX</> is a PostgreSQL extension.
+ <command>ALTER INDEX</> is a <productname>PostgreSQL</productname>
+ extension.
</para>
</refsect1>
</refentry>
<!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/alter_sequence.sgml,v 1.7 2003/11/29 19:51:38 pgsql Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/alter_sequence.sgml,v 1.8 2004/08/24 00:06:51 neilc Exp $
PostgreSQL documentation
-->
ALTER SEQUENCE
</refname>
<refpurpose>
- alter the definition of a sequence generator
+ change the definition of a sequence generator
</refpurpose>
</refnamediv>
<!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/create_table_as.sgml,v 1.22 2004/08/04 21:33:42 tgl Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/create_table_as.sgml,v 1.23 2004/08/24 00:06:51 neilc Exp $
PostgreSQL documentation
-->
<refnamediv>
<refname>CREATE TABLE AS</refname>
- <refpurpose>create a new table from the results of a query</refpurpose>
+ <refpurpose>define a new table from the results of a query</refpurpose>
</refnamediv>
<indexterm zone="sql-createtableas">
<!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/create_tablespace.sgml,v 1.3 2004/08/02 04:25:37 tgl Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/create_tablespace.sgml,v 1.4 2004/08/24 00:06:51 neilc Exp $
PostgreSQL documentation
-->
</para>
<para>
- A tablespace allows superusers to define an alternative location on the
- file system where the data files representing database objects
+ A tablespace allows superusers to define an alternative location on
+ the file system where the data files containing database objects
(such as tables and indexes) may reside.
</para>
<!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.120 2004/08/14 23:49:07 tgl Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.121 2004/08/24 00:06:51 neilc Exp $
PostgreSQL documentation
-->
<listitem>
<para>
Shows the copyright and distribution terms of
- <application>PostgreSQL</application>.
+ <productname>PostgreSQL</productname>.
</para>
</listitem>
</varlistentry>
<!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/release_savepoint.sgml,v 1.1 2004/08/12 19:12:21 tgl Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/release_savepoint.sgml,v 1.2 2004/08/24 00:06:51 neilc Exp $
PostgreSQL documentation
-->
<para>
It is not possible to release a savepoint when the transaction is in
- aborted state.
+ an aborted state.
</para>
<para>
<title>Compatibility</title>
<para>
- The SQL2003 standard specifies that the keyword SAVEPOINT is mandatory.
- <productname>PostgreSQL</productname> allows the SAVEPOINT keyword to be
- omitted. Otherwise, this command is fully conforming.
+ The SQL2003 standard specifies that the keyword
+ <literal>SAVEPOINT</literal> is mandatory.
+ <productname>PostgreSQL</productname> allows the
+ <literal>SAVEPOINT</literal> keyword to be omitted. Otherwise, this
+ command is fully conforming.
</para>
</refsect1>
<!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/rollback_to.sgml,v 1.2 2004/08/12 19:12:21 tgl Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/rollback_to.sgml,v 1.3 2004/08/24 00:06:51 neilc Exp $
PostgreSQL documentation
-->
<title>Compatibility</title>
<para>
- The SQL2003 standard specifies that the keyword SAVEPOINT is mandatory.
- <productname>PostgreSQL</productname> and <productname>Oracle</productname>
- allow the SAVEPOINT keyword to be omitted. SQL2003 allows only
- WORK, not TRANSACTION, as a noise word after ROLLBACK. Also, SQL2003
- has an optional clause AND [ NO ] CHAIN which is not currently supported
- by <productname>PostgreSQL</productname>. Otherwise, this command is
- fully conforming.
+ The SQL2003 standard specifies that the keyword
+ <literal>SAVEPOINT</> is mandatory. <productname>PostgreSQL</> and
+ <productname>Oracle</> allow the <literal>SAVEPOINT</literal>
+ keyword to be omitted. SQL2003 allows only <literal>WORK</>, not
+ <literal>TRANSACTION</>, as a noise word after
+ <literal>ROLLBACK</>. Also, SQL2003 has an optional clause
+ <literal>AND [ NO ] CHAIN</> which is not currently supported by
+ <productname>PostgreSQL</>. Otherwise, this command is fully
+ conforming.
</para>
</refsect1>
<!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/select_into.sgml,v 1.29 2004/08/04 21:33:42 tgl Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/select_into.sgml,v 1.30 2004/08/24 00:06:51 neilc Exp $
PostgreSQL documentation
-->
<refnamediv>
<refname>SELECT INTO</refname>
- <refpurpose>create a new table from the results of a query</refpurpose>
+ <refpurpose>define a new table from the results of a query</refpurpose>
</refnamediv>
<indexterm zone="sql-selectinto">
<!--
-$PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.287 2004/08/21 03:25:34 momjian Exp $
+$PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.288 2004/08/24 00:06:50 neilc Exp $
-->
<appendix id="release">
<listitem>
<para>
- This is the first PostgreSQL release to natively run on Microsoft
- Windows as a server. It can run as a Windows service. This release
- supports NT-based Windows releases like Win2000, XP, Win2003.
- Older releases like Windows 95, 98, and ME are not supported because
- these operating systems do not have the infrastructure to
- support PostgreSQL. A separate installer project has been created
- to ease installation on Windows:
+ This is the first <productname>PostgreSQL</productname>
+ release to natively run on Microsoft Windows as a server. It
+ can run as a Windows service. This release supports NT-based
+ Windows releases like Win2000, XP, Win2003. Older releases
+ like Windows 95, 98, and ME are not supported because these
+ operating systems do not have the infrastructure to support
+ <productname>PostgreSQL</productname>. A separate installer
+ project has been created to ease installation on Windows:
<ulink url="http://pgfoundry.org/projects/pginstaller">
- http://pgfoundry.org/projects/pginstaller</ulink>.
+ http://pgfoundry.org/projects/pginstaller</ulink>.
</para>
<para>
Previous releases required the Unix emulation toolkit Cygwin for
- Win32 server support. PostgreSQL has always supported clients on Win32.
+ Win32 server support. <productname>PostgreSQL</productname>
+ has always supported clients on Win32.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
- Savepoints Improve Transaction Control
+ Savepoints
</term>
<listitem>
<para>
Savepoints allow specific parts of a transaction to be aborted
without affecting the remainder of the transaction. Prior
- releases had no such capability; there was no way to recover from
- a statement failure within a transaction except by aborting the whole
- transaction. This feature is valuable
- for application writers who require error recovery within a
- complex transaction.
+ releases had no such capability; there was no way to recover
+ from a statement failure within a transaction except by
+ aborting the whole transaction. This feature is valuable for
+ application writers who require error recovery within a
+ complex transaction.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
- Point-In-Time Recovery Increases Reliability
+ Point-In-Time Recovery
</term>
<listitem>
<para>
- Though PostgreSQL is very reliable, in previous releases there
- was no way to recover from disk drive failure except to restore
- from a previous backup or use a standby replication server.
- Point-in-time recovery allows continuous backup of the server.
- You can recover either to the point of failure or to some
- transaction in the past.
+ Though <productname>PostgreSQL</productname> is very reliable,
+ in previous releases there was no way to recover from disk
+ drive failure except to restore from a previous backup or use
+ a standby replication server. Point-in-time recovery allows
+ continuous backup of the server. You can recover either to
+ the point of failure or to some transaction in the past.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
- Tablespaces Simplify Disk Layout
+ Tablespaces
</term>
<listitem>
<para>
- Tablespaces allow administrators
- to select the file systems used for storage of databases,
- schemas, tables, or indexes. This improves performance and
- control over disk space usage. Prior releases used
- <literal>initlocation</> and manual symlink management for such tasks.
+ Tablespaces allow administrators to select the file systems
+ used for storage of databases, schemas, tables, or
+ indexes. This improves performance and control over disk space
+ usage. Prior releases used <application>initlocation</> and
+ manual symlink management for such tasks.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
- Improved Buffer Management, CHECKPOINT, VACUUM
+ Improved Buffer Management, <command>CHECKPOINT</command>,
+ <command>VACUUM</command>
</term>
<listitem>
<listitem>
<para>
- A column's data type can now be changed with ALTER TABLE.
+ A column's data type can now be changed with <command>ALTER
+ TABLE</command>.
</para>
</listitem>
</varlistentry>
<listitem>
<para>
A new version of the <application>plperl</> server-side language now
- supports a persistent shared storage area, triggers, returning records
- and arrays of records, and SPI calls to access the database.
+ supports a persistent shared storage area, triggers, returning records
+ and arrays of records, and SPI calls to access the database.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
- COPY Handles Comma-Separated-Value Files
+ CSV support in <command>COPY</command>
</term>
<listitem>
<para>
- COPY can now read and write comma-separated-value (CSV) files. It
- has the flexibility to interpret non-standard quoting and
- separation characters too.
+ <command>COPY</command> can now read and write
+ comma-separated-value (CSV) files. It has the flexibility to
+ interpret non-standard quoting and separation characters too.
</para>
</listitem>
</varlistentry>
<listitem>
<para>
Server configuration parameters <varname>SortMem</> and
- <varname>VacuumMem</> have been renamed to <varname>work_mem</> and
- <varname>maintenance_work_mem</> to better reflect their use. The
- original names are still supported in SET and SHOW.
+ <varname>VacuumMem</> have been renamed to <varname>work_mem</>
+ and <varname>maintenance_work_mem</> to better reflect their
+ use. The original names are still supported in
+ <command>SET</command> and <command>SHOW</command>.
</para>
</listitem>
<listitem>
<para>
- The server now warns of empty strings passed to oid/float4/float8
- data types. In the next major release, doing this will generate an
+ The server now warns of empty strings passed to
+ <type>oid</type>/<type>float4</type>/<type>float8</type> data
+ types. In the next major release, doing this will generate an
error.
</para>
</listitem>
<listitem>
<para>
- EXECUTE now returns a completion tag that matches the executed
- statement.
+ <command>EXECUTE</command> now returns a completion tag that
+ matches the executed statement.
</para>
</listitem>
<listitem>
<para>
- Now that tablespaces have been implemented, initlocation has been
- removed.
+ Now that tablespaces have been implemented,
+ <application>initlocation</> has been removed.
</para>
</listitem>
ignored as well as leading whitespace (which has always been ignored).
</para>
</listitem>
-
- <listitem>
- <para>
- The 8.1 release will remove the function <literal>to_char(interval)
- </literal>.
- </para>
- </listitem>
</itemizedlist>
</para>
</sect2>
<sect2>
+ <title>Deprecated Features</title>
+
+ <para>
+ Some aspects of <productname>PostgreSQL</productname>'s behavior
+ have been determined to be suboptimal. For the sake of backward
+ compatibility these have not been removed in 8.0, but they are
+ considered deprecated and will be removed in the next major
+ release.
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ The 8.1 release will remove the function
+ <literal>to_char(interval)</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ By default, tables in <productname>PostgreSQL</productname> 8.0
+ and earlier are created with OIDs. In the next release, this
+ will <emphasis>not</emphasis> be the case: to create a table
+ that contains OIDs, the <literal>WITH OIDS</literal> clause must
+ be specified or the <varname>default_with_oids</varname>
+ configuration parameter must be enabled. Users are encouraged to
+ explicitely specify <literal>WITH OIDS</literal> if their tables
+ require OIDs for compatibility with future releases of
+ <productname>PostgreSQL</productname>.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
<title>Changes</title>
<para>
Add ability to prolong vacuum to reduce performance impact (Jan)
</para>
<para>
- On busy systems, VACUUM performs many I/O requests which can hurt
- performance for other users. This release allows you to slow down
- VACUUM to reduce its impact on other users, though this increases the
- total duration of VACUUM.
+ On busy systems, <command>VACUUM</command> performs many I/O
+ requests which can hurt performance for other users. This
+ release allows you to slow down <command>VACUUM</command> to
+ reduce its impact on other users, though this increases the
+ total duration of <command>VACUUM</command>.
</para>
</listitem>
<listitem>
<para>
- Add type-specific ANALYZE statistics capability (Mark Cave-Ayland)
+ Add type-specific <command>ANALYZE</command> statistics
+ capability (Mark Cave-Ayland)
</para>
<para>
This feature allows more flexibility in generating statistics
<listitem>
<para>
- Allow collection of ANALYZE statistics for expression indexes (Tom)
+ Allow collection of <command>ANALYZE</command> statistics for
+ expression indexes (Tom)
</para>
<para>
Expression indexes (also called functional indexes) allow users to
<listitem>
<para>
- New two-stage sampling method for ANALYZE (Manfred Koizar)
+ New two-stage sampling method for <command>ANALYZE</command>
+ (Manfred Koizar)
</para>
<para>
This gives better statistics for asymmetric data distributions.
<listitem>
<para>
- Speed up TRUNCATE (Tom)
+ Speed up <command>TRUNCATE</command> (Tom)
</para>
<para>
This buys back some of the performance loss observed in 7.4, while still
- keeping TRUNCATE transaction-safe.
+ keeping <command>TRUNCATE</command> transaction-safe.
</para>
</listitem>
<listitem>
<para>
- Allow DECLARE CURSOR to take parameters (Oliver Jowett)
+ Allow <command>DECLARE CURSOR</command> to take parameters
+ (Oliver Jowett)
</para>
<para>
- It is now useful to issue DECLARE CURSOR in a Parse message with
- parameters. The parameter values sent at Bind time will be substituted
- into the execution of the cursor's query.
+ It is now useful to issue <command>DECLARE CURSOR</command> in a
+ Parse message with parameters. The parameter values sent at
+ Bind time will be substituted into the execution of the cursor's
+ query.
</para>
</listitem>
<listitem>
<para>
- Fix hash joins and aggregates of INET and CIDR data types (Tom)
+ Fix hash joins and aggregates of <type>inet</type> and
+ <type>cidr</type> data types (Tom)
</para>
<para>
- Release 7.4 handled hashing of mixed INET and CIDR values incorrectly.
- (This bug did not exist in prior releases because they wouldn't try
- to hash either datatype.)
+ Release 7.4 handled hashing of mixed <type>inet</type> and
+ <type>cidr</type> values incorrectly. (This bug did not exist
+ in prior releases because they wouldn't try to hash either
+ datatype.)
</para>
</listitem>
<listitem>
<para>
- Allow BEGIN WORK to specify transaction isolation levels like START
- TRANSACTION (Bruce)
+ Allow <command>BEGIN WORK</command> to specify transaction
+ isolation levels like <command>START TRANSACTION</command> does
+ (Bruce)
</para>
</listitem>
<listitem>
<para>
- Change EXECUTE to return a completion tag matching the executed statement
- (Kris Jurka)
+ Change <command>EXECUTE</command> to return a completion tag
+ matching the executed statement (Kris Jurka)
</para>
<para>
- Previous releases return an EXECUTE tag for any EXECUTE call. In
- this release, the tag returned will reflect the command executed.
+ Previous releases return an <command>EXECUTE</command> tag for
+ any <command>EXECUTE</command> call. In this release, the tag
+ returned will reflect the command executed.
</para>
</listitem>
control whether tables are created with OIDs by default (Neil)
</para>
<para>
- This allows administrators to default all CREATE TABLE commands to
- create tables without OID columns.
+ This allows administrators to default all <command>CREATE
+ TABLE</command> commands to create tables without OID columns.
</para>
</listitem>
<listitem>
<para>
- Add WITH / WITHOUT OIDS clause to CREATE TABLE AS (Neil)
+ Add WITH / WITHOUT OIDS clause to <command>CREATE TABLE
+ AS</command> (Neil)
</para>
</listitem>
<listitem>
<para>
- Allow multiple ALTER actions in a single ALTER TABLE command (Rod)
+ Allow multiple ALTER actions in a single <command>ALTER
+ TABLE</command> command (Rod)
</para>
<para>
This is particularly useful for ALTER commands that rewrite the
<listitem>
<para>
- Allow ALTER TABLE to add SERIAL columns (Tom)
+ Allow <command>ALTER TABLE</command> to add <type>serial</type>
+ columns (Tom)
</para>
<para>
This is related to the new capability of adding defaults for new
<listitem>
<para>
- Allow CREATE SCHEMA to create triggers, indexes, and sequences (Neil)
+ Allow <command>CREATE SCHEMA</command> to create triggers,
+ indexes, and sequences (Neil)
</para>
</listitem>
<listitem>
<para>
- Add ALSO keyword to CREATE RULE (Fabien Coelho)
+ Add ALSO keyword to <command>CREATE RULE</command> (Fabien
+ Coelho)
</para>
<para>
This allows ALSO to be added to rule creation to contrast it with
<listitem>
<para>
- Add NOWAIT option to LOCK command (Tatsuo)
+ Add NOWAIT option to <command>LOCK</command> (Tatsuo)
</para>
<para>
- This allows the LOCK command to fail if it would have to wait for
- the requested lock.
+ This allows the <command>LOCK</command> command to fail if it
+ would have to wait for the requested lock.
</para>
</listitem>
<listitem>
<para>
- Allow COPY to read and write comma-separated-value (CSV) files (Andrew, Bruce)
+ Allow <command>COPY</command> to read and write
+ comma-separated-value (CSV) files (Andrew, Bruce)
</para>
</listitem>
<listitem>
<para>
- Generate error if the COPY delimiter and NULL string conflict (Bruce)
+ Generate error if the <command>COPY</command> delimiter and NULL
+ string conflict (Bruce)
</para>
</listitem>
<listitem>
<para>
- Avoid locking conflict between CREATE INDEX and CHECKPOINT (Tom)
+ Avoid locking conflict between <command>CREATE INDEX</command>
+ and <command>CHECKPOINT</command> (Tom)
</para>
<para>
In 7.3 and 7.4, a long-running btree index build could block concurrent
<listitem>
<para>
- Database-wide ANALYZE does not hold locks across tables (Tom)
+ Database-wide <command>ANALYZE</command> does not hold locks
+ across tables (Tom)
</para>
<para>
- This reduces the potential for deadlocks against other backends that
- want exclusive locks on tables. To get the benefit of this change,
- do not execute database-wide ANALYZE inside a transaction block
- (BEGIN block); it must be able to commit and start a new transaction
- for each table.
+ This reduces the potential for deadlocks against other backends
+ that want exclusive locks on tables. To get the benefit of this
+ change, do not execute database-wide <command>ANALYZE</command>
+ inside a transaction block (<command>BEGIN</command> block); it
+ must be able to commit and start a new transaction for each
+ table.
</para>
</listitem>
Erase MD5 user passwords when a user is renamed (Bruce)
</para>
<para>
- PostgreSQL uses the user name as salt when encrypting passwords
- via MD5. When a user name is changed, their salt no longer matches
- the stored MD5 password, so the stored password becomes useless.
- In this release a notice is generated and the password
- is cleared. A new password must then be assigned.
+ <productname>PostgreSQL</productname> uses the user name as salt
+ when encrypting passwords via MD5. When a user name is changed,
+ their salt no longer matches the stored MD5 password, so the
+ stored password becomes useless. In this release a notice is
+ generated and the password is cleared. A new password must then
+ be assigned.
</para>
</listitem>
Reject non-rectangular array literals as erroneous (Joe)
</para>
<para>
- Formerly, array_in would silently build a surprising result.
+ Formerly, <literal>array_in</literal> would silently build a
+ surprising result.
</para>
</listitem>
<listitem>
<para>
- Change factorial function to return NUMERIC (Gavin)
+ Change factorial function to return <type>numeric</type> (Gavin)
</para>
<para>
- Returning NUMERIC allows the factorial function to work for a wider
- range of input values.
+ Returning <type>numeric</type> allows the factorial function to
+ work for a wider range of input values.
</para>
</listitem>
<listitem>
<para>
- Better support for IEEE Infinity and NaN values in float4, float8 (Neil)
+ Better support for IEEE Infinity and NaN values in
+ <type>float4</type>, <type>float8</type> (Neil)
</para>
<para>
These should now work on all platforms that support IEEE-compliant
<listitem>
<para>
- Make psql \copy match COPY command syntax fully (Tom)
+ Make psql \copy match <command>COPY</command> command syntax
+ fully (Tom)
</para>
</listitem>
<listitem>
<para>
- Add CLUSTER information to psql \d display (Bruce)
+ Add <command>CLUSTER</command> information to psql \d display
+ (Bruce)
</para>
</listitem>
<listitem>
<para>
- Add global psql config file, psqlrc.sample (Bruce)
+ Add global psql config file, <filename>psqlrc.sample</filename>
+ (Bruce)
</para>
<para>
This allows a central file where global psql startup commands can
<listitem>
<para>
- Allow PQoidValue(), PQcmdTuples(), and PQoidStatus() to work
- on EXECUTE commands (Neil)
+ Allow PQoidValue(), PQcmdTuples(), and PQoidStatus() to work on
+ <command>EXECUTE</command> commands (Neil)
</para>
</listitem>
New "PostgreSQL" CVS tag (Marc)
</para>
<para>
- This was done to make it easier for organizations to manage their own
- copies of the PostgreSQL CVS repository. File version stamps from the
- master repository will not get munged by checking into or out of
- a copied repository.
+ This was done to make it easier for organizations to manage
+ their own copies of the <productname>PostgreSQL</productname>
+ CVS repository. File version stamps from the master repository
+ will not get munged by checking into or out of a copied
+ repository.
</para>
</listitem>
<listitem>
<para>
- New /contrib/trgm, trigram matching for PostgreSQL (Teodor)
+ New /contrib/trgm, trigram matching for
+ <productname>PostgreSQL</productname> (Teodor)
</para>
</listitem>
<para>
This fixes a difficult-to-exploit security hole.
</para></listitem>
-<listitem><para>Avoid locking conflict between ANALYZE and LISTEN/NOTIFY</para></listitem>
+<listitem><para>Avoid locking conflict between <command>ANALYZE</command> and <command>LISTEN</command>/<command>NOTIFY</command></para></listitem>
<listitem><para>Numerous translation updates (various contributors)</para></listitem>
</itemizedlist>
<!--
-$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.278 2004/08/16 02:12:29 tgl Exp $
+$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.279 2004/08/24 00:06:50 neilc Exp $
-->
<Chapter Id="runtime">
<listitem>
<para>
Specifies the delay between activity rounds for the
- background writer. In each round the writer issues writes for some
- number of dirty buffers (controllable by the following parameters).
- The selected buffers will always be the
- least recently used ones among the currently dirty buffers.
- It then sleeps for <varname>bgwriter_delay</varname> milliseconds,
- and repeats.
- Note that on many systems, the effective resolution
- of sleep delays is 10 milliseconds; setting
- <varname>bgwriter_delay</varname> to a value that is
- not a multiple of 10 may have the same results as setting it
- to the next higher multiple of 10.
+ background writer. In each round the writer issues writes
+ for some number of dirty buffers (controllable by the
+ following parameters). The selected buffers will always be
+ the least recently used ones among the currently dirty
+ buffers. It then sleeps for <varname>bgwriter_delay</>
+ milliseconds, and repeats. The default value is 200. Note
+ that on many systems, the effective resolution of sleep
+ delays is 10 milliseconds; setting <varname>bgwriter_delay</>
+ to a value that is not a multiple of 10 may have the same
+ results as setting it to the next higher multiple of 10.
This option can only be set at server start or in the
<filename>postgresql.conf</filename> file.
</para>
<term><varname>bgwriter_percent</varname> (<type>integer</type>)</term>
<listitem>
<para>
- In each round, no more than this percentage of the currently dirty
- buffers will be written (rounding up any fraction to the next whole
- number of buffers).
- This option can only be set at server start or in the
+ In each round, no more than this percentage of the currently
+ dirty buffers will be written (rounding up any fraction to
+ the next whole number of buffers). The default value is
+ 1. This option can only be set at server start or in the
<filename>postgresql.conf</filename> file.
</para>
</listitem>
<term><varname>bgwriter_maxpages</varname> (<type>integer</type>)</term>
<listitem>
<para>
- In each round, no more than this many dirty buffers will be written.
- This option can only be set at server start or in the
+ In each round, no more than this many dirty buffers will be
+ written. The default value is 100. This option can only be
+ set at server start or in the
<filename>postgresql.conf</filename> file.
</para>
</listitem>
<para>
Smaller values of <varname>bgwriter_percent</varname> and
- <varname>bgwriter_maxpages</varname> reduce the extra I/O load caused by
- the background writer, but leave more work to be done at checkpoint
- time. To reduce load spikes at checkpoints, increase the values.
+ <varname>bgwriter_maxpages</varname> reduce the extra I/O load
+ caused by the background writer, but leave more work to be done
+ at checkpoint time. To reduce load spikes at checkpoints,
+ increase the values.
</para>
</sect3>
</para>
<para>
It is important for the command to return a zero exit status only if
- it succeeds. Examples:
+ it succeeds. Examples:
<programlisting>
archive_command = 'cp "%p" /mnt/server/archivedir/"%f"'
archive_command = 'copy "%p" /mnt/server/archivedir/"%f"' # Win32
<term><varname>log_destination</varname> (<type>string</type>)</term>
<listitem>
<para>
- <productname>PostgreSQL</productname> supports several methods
- for logging server messages, including
- <systemitem>stderr</systemitem> and
- <systemitem>syslog</systemitem>. On Windows,
- <systemitem>eventlog</systemitem> is also supported. Set this
- option to a list of desired log destinations separated by
- commas. The default is to log to <systemitem>stderr</systemitem>
- only.
+ <productname>PostgreSQL</productname> supports several methods
+ for logging server messages, including
+ <systemitem>stderr</systemitem> and
+ <systemitem>syslog</systemitem>. On Windows,
+ <systemitem>eventlog</systemitem> is also supported. Set this
+ option to a list of desired log destinations separated by
+ commas. The default is to log to <systemitem>stderr</systemitem>
+ only.
This option can only be set at server start or in the
<filename>postgresql.conf</filename> configuration file.
</para>
<term><varname>redirect_stderr</varname> (<type>boolean</type>)</term>
<listitem>
<para>
- This option allows messages sent to <application>stderr</> to be
- captured and redirected into log files.
- This option, in combination with logging to <application>stderr</>,
- is often more useful than
- logging to <application>syslog</>, since some types of messages
- may not appear in <application>syslog</> output (a common example
- is dynamic-linker failure messages).
- This option can only be set at server start.
+ This option allows messages sent to <application>stderr</> to be
+ captured and redirected into log files.
+ This option, in combination with logging to <application>stderr</>,
+ is often more useful than
+ logging to <application>syslog</>, since some types of messages
+ may not appear in <application>syslog</> output (a common example
+ is dynamic-linker failure messages).
+ This option can only be set at server start.
</para>
</listitem>
</varlistentry>
<term><varname>log_directory</varname> (<type>string</type>)</term>
<listitem>
<para>
- When <varname>redirect_stderr</> is enabled, this option
+ When <varname>redirect_stderr</> is enabled, this option
determines the directory in which log files will be created.
- It may be specified as an absolute path, or relative to the
- cluster data directory.
+ It may be specified as an absolute path, or relative to the
+ cluster data directory.
This option can only be set at server start or in the
<filename>postgresql.conf</filename> configuration file.
</para>
<term><varname>log_filename_prefix</varname> (<type>string</type>)</term>
<listitem>
<para>
- When <varname>redirect_stderr</> is enabled, this option
+ When <varname>redirect_stderr</> is enabled, this option
sets the prefix of the file names of the created log files.
- The postmaster PID and the current time are appended to this
- prefix to form an exact log file name.
+ The postmaster PID and the current time are appended to this
+ prefix to form an exact log file name.
This option can only be set at server start or in the
<filename>postgresql.conf</filename> configuration file.
</para>
<term><varname>log_rotation_age</varname> (<type>integer</type>)</term>
<listitem>
<para>
- When <varname>redirect_stderr</> is enabled, this option
- determines the maximum lifetime of an individual log file.
- After this many minutes have elapsed, a new log file will
- be created. Set to zero to disable time-based creation of
- new log files.
+ When <varname>redirect_stderr</> is enabled, this option
+ determines the maximum lifetime of an individual log file.
+ After this many minutes have elapsed, a new log file will
+ be created. Set to zero to disable time-based creation of
+ new log files.
This option can only be set at server start or in the
<filename>postgresql.conf</filename> configuration file.
</para>
<term><varname>log_rotation_size</varname> (<type>integer</type>)</term>
<listitem>
<para>
- When <varname>redirect_stderr</> is enabled, this option
- determines the maximum size of an individual log file.
- After this many kilobytes have been emitted into a log file,
- a new log file will be created. Set to zero to disable size-based
- creation of new log files.
+ When <varname>redirect_stderr</> is enabled, this option
+ determines the maximum size of an individual log file.
+ After this many kilobytes have been emitted into a log file,
+ a new log file will be created. Set to zero to disable size-based
+ creation of new log files.
This option can only be set at server start or in the
<filename>postgresql.conf</filename> configuration file.
</para>
the default is <literal>LOCAL0</>. See also the
documentation of your system's
<application>syslog</application> daemon.
- This option can only be set at server start.
+ This option can only be set at server start.
</para>
</listitem>
</varlistentry>
<productname>PostgreSQL</productname> messages in
<application>syslog</application> logs. The default is
<literal>postgres</literal>.
- This option can only be set at server start.
+ This option can only be set at server start.
</para>
</listitem>
</varlistentry>
terminals are disassociated (same effect as
<command>postmaster</>'s <option>-S</option> option).
The server's standard output and standard error are redirected
- to <literal>/dev/null</>, so any messages sent to them will be lost.
- Unless <application>syslog</> logging is selected or
- <varname>redirect_stderr</> is enabled, using this option
+ to <literal>/dev/null</>, so any messages sent to them will be lost.
+ Unless <application>syslog</> logging is selected or
+ <varname>redirect_stderr</> is enabled, using this option
is discouraged because it makes it impossible to see error messages.
</para>
</listitem>
<term><varname>log_line_prefix</varname> (<type>string</type>)</term>
<listitem>
<para>
- This is a <function>printf</>-style string that is output at the
- beginning of each log line. The default is an empty string.
- Each recognized escape is replaced as outlined
- below - anything else that looks like an escape is ignored. Other
- characters are copied straight to the log line. Some escapes are
- only recognised by session processes, and do not apply to
- background processes such as the postmaster. <application>Syslog</>
+ This is a <function>printf</>-style string that is output at the
+ beginning of each log line. The default is an empty string.
+ Each recognized escape is replaced as outlined
+ below - anything else that looks like an escape is ignored. Other
+ characters are copied straight to the log line. Some escapes are
+ only recognised by session processes, and do not apply to
+ background processes such as the postmaster. <application>Syslog</>
produces its own
- timestamp and process ID information, so you probably do not want to
- use those escapes if you are using <application>syslog</>.
- This option can only be set at server start or in the
+ timestamp and process ID information, so you probably do not want to
+ use those escapes if you are using <application>syslog</>.
+ This option can only be set at server start or in the
<filename>postgresql.conf</filename> configuration file.
- <informaltable>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>Escape</entry>
- <entry>Effect</entry>
- <entry>Session only</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><literal>%u</literal></entry>
- <entry>User Name</entry>
- <entry>Yes</entry>
- </row>
- <row>
- <entry><literal>%d</literal></entry>
- <entry>Database Name</entry>
- <entry>Yes</entry>
- </row>
- <row>
- <entry><literal>%r</literal></entry>
- <entry>Remote Hostname or IP address, and Remote Port</entry>
- <entry>Yes</entry>
- </row>
- <row>
- <entry><literal>%p</literal></entry>
- <entry>Process ID</entry>
- <entry>No</entry>
- </row>
- <row>
- <entry><literal>%t</literal></entry>
- <entry>Timestamp</entry>
- <entry>No</entry>
- </row>
- <row>
- <entry><literal>%i</literal></entry>
- <entry>Command Tag. This is the command which generated the log
- line.</entry>
- <entry>Yes</entry>
- </row>
- <row>
- <entry><literal>%c</literal></entry>
- <entry>Session ID. A unique identifier for each session.
- It is 2 4-byte hexadecimal numbers (without leading zeros)
+ <informaltable>
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>Escape</entry>
+ <entry>Effect</entry>
+ <entry>Session only</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><literal>%u</literal></entry>
+ <entry>User Name</entry>
+ <entry>Yes</entry>
+ </row>
+ <row>
+ <entry><literal>%d</literal></entry>
+ <entry>Database Name</entry>
+ <entry>Yes</entry>
+ </row>
+ <row>
+ <entry><literal>%r</literal></entry>
+ <entry>Remote Hostname or IP address, and Remote Port</entry>
+ <entry>Yes</entry>
+ </row>
+ <row>
+ <entry><literal>%p</literal></entry>
+ <entry>Process ID</entry>
+ <entry>No</entry>
+ </row>
+ <row>
+ <entry><literal>%t</literal></entry>
+ <entry>Timestamp</entry>
+ <entry>No</entry>
+ </row>
+ <row>
+ <entry><literal>%i</literal></entry>
+ <entry>Command Tag. This is the command which generated the log
+ line.</entry>
+ <entry>Yes</entry>
+ </row>
+ <row>
+ <entry><literal>%c</literal></entry>
+ <entry>Session ID. A unique identifier for each session.
+ It is 2 4-byte hexadecimal numbers (without leading zeros)
separated by a dot. The numbers
- are the Session Start Time and the Process ID, so this can also
- be used as a space saving way of printing these items.</entry>
- <entry>Yes</entry>
- </row>
- <row>
- <entry><literal>%l</literal></entry>
- <entry>Number of the log line for each process,
- starting at 1</entry>
- <entry>No</entry>
- </row>
- <row>
- <entry><literal>%s</literal></entry>
- <entry>Session Start Timestamp</entry>
- <entry>Yes</entry>
- </row>
- <row>
- <entry><literal>%x</literal></entry>
- <entry>Does not produce any output, but tells non-session
- processes to stop at this point in the string. Ignored by
- session processes.</entry>
- <entry>No</entry>
- </row>
- <row>
- <entry><literal>%%</literal></entry>
- <entry>Literal <literal>%</></entry>
- <entry>No</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
+ are the Session Start Time and the Process ID, so this can also
+ be used as a space saving way of printing these items.</entry>
+ <entry>Yes</entry>
+ </row>
+ <row>
+ <entry><literal>%l</literal></entry>
+ <entry>Number of the log line for each process,
+ starting at 1</entry>
+ <entry>No</entry>
+ </row>
+ <row>
+ <entry><literal>%s</literal></entry>
+ <entry>Session Start Timestamp</entry>
+ <entry>Yes</entry>
+ </row>
+ <row>
+ <entry><literal>%x</literal></entry>
+ <entry>Does not produce any output, but tells non-session
+ processes to stop at this point in the string. Ignored by
+ session processes.</entry>
+ <entry>No</entry>
+ </row>
+ <row>
+ <entry><literal>%%</literal></entry>
+ <entry>Literal <literal>%</></entry>
+ <entry>No</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
</para>
</listitem>
</varlistentry>
<para>
The value for <varname>dynamic_library_path</varname> has to be a
list of absolute directory paths separated by colons (or semi-colons
- on Windows). If a list element starts
+ on Windows). If a list element starts
with the special string <literal>$libdir</literal>, the
compiled-in <productname>PostgreSQL</productname> package
library directory is substituted for <literal>$libdir</literal>. This
<listitem>
<para>
Shows the locale in which sorting of textual data is done.
- See <xref linkend="locale"> for more information.
- The value is determined when the database cluster is initialized.
+ See <xref linkend="locale"> for more information.
+ The value is determined when the database cluster is initialized.
</para>
</listitem>
</varlistentry>
<listitem>
<para>
Shows the locale that determines character classifications.
- See <xref linkend="locale"> for more information.
- The value is determined when the database cluster is initialized.
- Ordinarily this will be the same as <varname>lc_collate</varname>,
- but for special applications it might be set differently.
+ See <xref linkend="locale"> for more information.
+ The value is determined when the database cluster is initialized.
+ Ordinarily this will be the same as <varname>lc_collate</varname>,
+ but for special applications it might be set differently.
</para>
</listitem>
</varlistentry>
variable is a variable not normally known
to <productname>PostgreSQL</productname> proper but used by some
add-on module. Such variables must have names consisting of a class
- name, a dot, and a variable name. <varname>custom_variable_classes</>
+ name, a dot, and a variable name. <varname>custom_variable_classes</>
specifies all the class names in use in a particular installation.
This option can only be set at server start or in the
<filename>postgresql.conf</filename> configuration file.
<!--
-$PostgreSQL: pgsql/doc/src/sgml/xfunc.sgml,v 1.85 2004/07/30 12:26:39 petere Exp $
+$PostgreSQL: pgsql/doc/src/sgml/xfunc.sgml,v 1.86 2004/08/24 00:06:50 neilc Exp $
-->
<sect1 id="xfunc">
</indexterm>
<para>
- If you are thinking about distributing your PostgreSQL extension
- modules, setting up a portable build system for them can be fairly
- difficult. Therefore the PostgreSQL installation provides a build
+ If you are thinking about distributing your
+ <productname>PostgreSQL</> extension modules, setting up a
+ portable build system for them can be fairly difficult. Therefore
+ the <productname>PostgreSQL</> installation provides a build
infrastructure for extensions, called <acronym>PGXS</acronym>, so
that simple extension modules can be built simply against an
already installed server. Note that this infrastructure is not
intended to be a universal build system framework that can be used
- to build all software interfacing to PostgreSQL; it simply
- automates common build rules for simple server extension modules.
- For more complicated packages, you need to write your own build
- system.
+ to build all software interfacing to <productname>PostgreSQL</>;
+ it simply automates common build rules for simple server extension
+ modules. For more complicated packages, you need to write your
+ own build system.
</para>
<para>
<title>Composite-Type Arguments in C-Language Functions</title>
<para>
- Composite types do not have a fixed layout like C
- structures. Instances of a composite type may contain
- null fields. In addition, composite types that are
- part of an inheritance hierarchy may have different
- fields than other members of the same inheritance hierarchy.
- Therefore, <productname>PostgreSQL</productname> provides
- a function interface for accessing fields of composite types
- from C.
+ Composite types do not have a fixed layout like C structures.
+ Instances of a composite type may contain null fields. In
+ addition, composite types that are part of an inheritance
+ hierarchy may have different fields than other members of the
+ same inheritance hierarchy. Therefore,
+ <productname>PostgreSQL</productname> provides a function
+ interface for accessing fields of composite types from C.
</para>
<para>