Spellchecking run, final cleanups

This commit is contained in:
Peter Eisentraut 2005-11-04 23:14:02 +00:00
parent 1630571a04
commit 39dfbe5791
34 changed files with 248 additions and 261 deletions

View File

@ -1,4 +1,4 @@
<!-- $PostgreSQL: pgsql/doc/src/sgml/array.sgml,v 1.45 2005/11/04 02:56:30 tgl Exp $ --> <!-- $PostgreSQL: pgsql/doc/src/sgml/array.sgml,v 1.46 2005/11/04 23:13:59 petere Exp $ -->
<sect1 id="arrays"> <sect1 id="arrays">
<title>Arrays</title> <title>Arrays</title>
@ -59,7 +59,7 @@ CREATE TABLE tictactoe (
all considered to be of the same type, regardless of size or number all considered to be of the same type, regardless of size or number
of dimensions. So, declaring number of dimensions or sizes in of dimensions. So, declaring number of dimensions or sizes in
<command>CREATE TABLE</command> is simply documentation, it does not <command>CREATE TABLE</command> is simply documentation, it does not
affect runtime behavior. affect run-time behavior.
</para> </para>
<para> <para>

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/backup.sgml,v 2.74 2005/10/26 20:42:35 tgl Exp $ $PostgreSQL: pgsql/doc/src/sgml/backup.sgml,v 2.75 2005/11/04 23:13:59 petere Exp $
--> -->
<chapter id="backup"> <chapter id="backup">
<title>Backup and Restore</title> <title>Backup and Restore</title>
@ -1173,7 +1173,7 @@ restore_command = 'copy /mnt/server/archivedir/%f "%p"' # Windows
the total volume of archived logs by turning off page snapshots the total volume of archived logs by turning off page snapshots
using the <xref linkend="guc-full-page-writes"> parameter. using the <xref linkend="guc-full-page-writes"> parameter.
(Read the notes and warnings in (Read the notes and warnings in
<xref linkend="reliability"> before you do so.) <xref linkend="wal"> before you do so.)
Turning off page snapshots does not prevent use of the logs for PITR Turning off page snapshots does not prevent use of the logs for PITR
operations. operations.
An area for future development is to compress archived WAL data by An area for future development is to compress archived WAL data by

View File

@ -1,6 +1,6 @@
<!-- <!--
Documentation of the system catalogs, directed toward PostgreSQL developers Documentation of the system catalogs, directed toward PostgreSQL developers
$PostgreSQL: pgsql/doc/src/sgml/catalogs.sgml,v 2.114 2005/09/13 01:51:18 alvherre Exp $ $PostgreSQL: pgsql/doc/src/sgml/catalogs.sgml,v 2.115 2005/11/04 23:13:59 petere Exp $
--> -->
<chapter id="catalogs"> <chapter id="catalogs">
@ -5416,7 +5416,7 @@
and <structfield>histogram_bounds</> arrays can be set on a and <structfield>histogram_bounds</> arrays can be set on a
column-by-column basis using the <command>ALTER TABLE SET STATISTICS</> column-by-column basis using the <command>ALTER TABLE SET STATISTICS</>
command, or globally by setting the command, or globally by setting the
<xref linkend="guc-default-statistics-target"> runtime parameter. <xref linkend="guc-default-statistics-target"> run-time parameter.
</para> </para>
</sect1> </sect1>

View File

@ -1,4 +1,4 @@
<!-- $PostgreSQL: pgsql/doc/src/sgml/charset.sgml,v 2.74 2005/10/13 21:43:43 tgl Exp $ --> <!-- $PostgreSQL: pgsql/doc/src/sgml/charset.sgml,v 2.75 2005/11/04 23:13:59 petere Exp $ -->
<chapter id="charset"> <chapter id="charset">
<title>Localization</> <title>Localization</>
@ -504,7 +504,7 @@ initdb --locale=sv_SE
<row> <row>
<entry><literal>MULE_INTERNAL</literal></entry> <entry><literal>MULE_INTERNAL</literal></entry>
<entry>Mule internal code</entry> <entry>Mule internal code</entry>
<entry>Multi-lingual Emacs</entry> <entry>Multilingual Emacs</entry>
<entry>1-4</entry> <entry>1-4</entry>
<entry></entry> <entry></entry>
</row> </row>

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/client-auth.sgml,v 1.85 2005/10/24 15:49:54 momjian Exp $ $PostgreSQL: pgsql/doc/src/sgml/client-auth.sgml,v 1.86 2005/11/04 23:13:59 petere Exp $
--> -->
<chapter id="client-authentication"> <chapter id="client-authentication">

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.34 2005/11/01 23:19:05 neilc Exp $ $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.35 2005/11/04 23:13:59 petere Exp $
--> -->
<chapter Id="runtime-config"> <chapter Id="runtime-config">
<title>Server Configuration</title> <title>Server Configuration</title>
@ -21,7 +21,7 @@ $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.34 2005/11/01 23:19:05 neilc Exp
<para> <para>
All parameter names are case-insensitive. Every parameter takes a All parameter names are case-insensitive. Every parameter takes a
value of one of four types: boolean, integer, floating point, value of one of four types: Boolean, integer, floating point,
or string. Boolean values may be written as <literal>ON</literal>, or string. Boolean values may be written as <literal>ON</literal>,
<literal>OFF</literal>, <literal>TRUE</literal>, <literal>OFF</literal>, <literal>TRUE</literal>,
<literal>FALSE</literal>, <literal>YES</literal>, <literal>FALSE</literal>, <literal>YES</literal>,
@ -456,9 +456,9 @@ SET ENABLE_SEQSCAN TO OFF;
</indexterm> </indexterm>
<listitem> <listitem>
<para> <para>
On systems that support the TCP_KEEPIDLE socket option, specifies the On systems that support the <symbol>TCP_KEEPIDLE</symbol> socket option, specifies the
number of seconds between sending keepalives on an otherwise idle number of seconds between sending keepalives on an otherwise idle
connection. A value of 0 uses the system default. If TCP_KEEPIDLE is connection. A value of 0 uses the system default. If <symbol>TCP_KEEPIDLE</symbol> is
not supported, this parameter must be 0. This option is ignored for not supported, this parameter must be 0. This option is ignored for
connections made via a Unix-domain socket. connections made via a Unix-domain socket.
</para> </para>
@ -472,9 +472,9 @@ SET ENABLE_SEQSCAN TO OFF;
</indexterm> </indexterm>
<listitem> <listitem>
<para> <para>
On systems that support the TCP_KEEPINTVL socket option, specifies how On systems that support the <symbol>TCP_KEEPINTVL</symbol> socket option, specifies how
long, in seconds, to wait for a response to a keepalive before long, in seconds, to wait for a response to a keepalive before
retransmitting. A value of 0 uses the system default. If TCP_KEEPINTVL retransmitting. A value of 0 uses the system default. If <symbol>TCP_KEEPINTVL</symbol>
is not supported, this parameter must be 0. This option is ignored is not supported, this parameter must be 0. This option is ignored
for connections made via a Unix-domain socket. for connections made via a Unix-domain socket.
</para> </para>
@ -488,9 +488,9 @@ SET ENABLE_SEQSCAN TO OFF;
</indexterm> </indexterm>
<listitem> <listitem>
<para> <para>
On systems that support the TCP_KEEPCNT socket option, specifies how On systems that support the <symbol>TCP_KEEPCNT</symbol> socket option, specifies how
many keepalives may be lost before the connection is considered dead. many keepalives may be lost before the connection is considered dead.
A value of 0 uses the system default. If TCP_KEEPCNT is not A value of 0 uses the system default. If <symbol>TCP_KEEPCNT</symbol> is not
supported, this parameter must be 0. This option is ignored supported, this parameter must be 0. This option is ignored
for connections made via a Unix-domain socket. for connections made via a Unix-domain socket.
</para> </para>
@ -2663,7 +2663,7 @@ SELECT * FROM parent WHERE key = 2400;
</row> </row>
<row> <row>
<entry><literal>%h</literal></entry> <entry><literal>%h</literal></entry>
<entry>Remote Hostname or IP address</entry> <entry>Remote host name or IP address</entry>
<entry>yes</entry> <entry>yes</entry>
</row> </row>
<row> <row>
@ -2794,7 +2794,7 @@ SELECT * FROM parent WHERE key = 2400;
</sect1> </sect1>
<sect1 id="runtime-config-statistics"> <sect1 id="runtime-config-statistics">
<title>Runtime Statistics</title> <title>Run-Time Statistics</title>
<sect2 id="runtime-config-statistics-monitor"> <sect2 id="runtime-config-statistics-monitor">
<title>Statistics Monitoring</title> <title>Statistics Monitoring</title>

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/cvs.sgml,v 1.35 2005/10/15 20:15:48 neilc Exp $ $PostgreSQL: pgsql/doc/src/sgml/cvs.sgml,v 1.36 2005/11/04 23:13:59 petere Exp $
--> -->
<appendix id="cvs"> <appendix id="cvs">
@ -114,7 +114,7 @@ cvs -z3 -d :pserver:anoncvs@anoncvs.postgresql.org:/projects/cvsroot co -P pgsql
<command>cd</command> into <command>cd</command> into
the <filename>pgsql</filename> subdirectory, and issue the <filename>pgsql</filename> subdirectory, and issue
<programlisting> <programlisting>
$ cvs -z3 update -d -P cvs -z3 update -d -P
</programlisting> </programlisting>
This will fetch only the changes since the last time you updated. This will fetch only the changes since the last time you updated.
@ -137,7 +137,7 @@ update -d -P
<option>-d</option> and <option>-P</option> options to cvs update. Then you just have <option>-d</option> and <option>-P</option> options to cvs update. Then you just have
to say to say
<programlisting> <programlisting>
$ cvs update cvs update
</programlisting> </programlisting>
to update your files. to update your files.
@ -151,7 +151,7 @@ $ cvs update
causes all checked-out files to be stored world-writable in your causes all checked-out files to be stored world-writable in your
directory. If you see that this has happened, you can do something like directory. If you see that this has happened, you can do something like
<programlisting> <programlisting>
$ chmod -R go-w pgsql chmod -R go-w pgsql
</programlisting> </programlisting>
to set the permissions properly. to set the permissions properly.
This bug is fixed as of This bug is fixed as of
@ -192,7 +192,7 @@ $ chmod -R go-w pgsql
future: future:
<programlisting> <programlisting>
$ cvs checkout -r REL6_4 tc cvs checkout -r REL6_4 tc
</programlisting> </programlisting>
This is useful, for instance, if someone claims that there is a bug in This is useful, for instance, if someone claims that there is a bug in
@ -237,8 +237,8 @@ $ cvs checkout -r REL6_4 tc
I did the following: I did the following:
<programlisting> <programlisting>
$ cd pgsql cd pgsql
$ cvs tag -b REL6_4 cvs tag -b REL6_4
</programlisting> </programlisting>
which will create the tag and the branch for the RELEASE tree. which will create the tag and the branch for the RELEASE tree.
@ -274,7 +274,7 @@ cvs checkout -P pgsql
After you've done the initial checkout on a branch After you've done the initial checkout on a branch
<programlisting> <programlisting>
$ cvs checkout -r REL6_4 cvs checkout -r REL6_4
</programlisting> </programlisting>
anything you do within that directory structure is restricted to that anything you do within that directory structure is restricted to that
@ -348,7 +348,7 @@ setenv CVSROOT /home/cvs
single command: single command:
<programlisting> <programlisting>
$ cvs init cvs init
</programlisting> </programlisting>
after which you should see at least a directory named after which you should see at least a directory named
@ -378,7 +378,7 @@ which cvsup
<application>cvsup</application> using: <application>cvsup</application> using:
<programlisting> <programlisting>
$ cvsup -L 2 <replaceable class="parameter">postgres.cvsup</replaceable> cvsup -L 2 <replaceable class="parameter">postgres.cvsup</replaceable>
</programlisting> </programlisting>
where <option>-L 2</option> enables some status messages so you where <option>-L 2</option> enables some status messages so you
@ -426,7 +426,6 @@ pgsql
# pgsql-doc # pgsql-doc
# pgsql-perl5 # pgsql-perl5
# pgsql-src # pgsql-src
</programlisting> </programlisting>
</para> </para>
@ -478,7 +477,6 @@ pgsql
# pgsql-doc # pgsql-doc
# pgsql-perl5 # pgsql-perl5
# pgsql-src # pgsql-src
</programlisting> </programlisting>
</para> </para>
</sect2> </sect2>
@ -564,9 +562,9 @@ pgsql
unpack the tar file into your target directory: unpack the tar file into your target directory:
<programlisting> <programlisting>
$ cd /usr/local/bin cd /usr/local/bin
$ tar zxvf /usr/local/src/cvsup-16.0-linux-i386.tar.gz tar zxvf /usr/local/src/cvsup-16.0-linux-i386.tar.gz
$ mv cvsup.1 ../doc/man/man1/ mv cvsup.1 ../doc/man/man1/
</programlisting> </programlisting>
</para> </para>
</step> </step>
@ -701,20 +699,3 @@ $ which cvsup
</sect2> </sect2>
</sect1> </sect1>
</appendix> </appendix>
<!-- Keep this comment at the end of the file
Local variables:
mode:sgml
sgml-omittag:nil
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"./reference.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:("/usr/lib/sgml/catalog")
sgml-local-ecat-files:nil
End:
-->

View File

@ -1,4 +1,4 @@
<!-- $PostgreSQL: pgsql/doc/src/sgml/ddl.sgml,v 1.48 2005/11/04 02:56:30 tgl Exp $ --> <!-- $PostgreSQL: pgsql/doc/src/sgml/ddl.sgml,v 1.49 2005/11/04 23:13:59 petere Exp $ -->
<chapter id="ddl"> <chapter id="ddl">
<title>Data Definition</title> <title>Data Definition</title>
@ -202,7 +202,7 @@ CREATE TABLE products (
The default value may be an expression, which will be The default value may be an expression, which will be
evaluated whenever the default value is inserted evaluated whenever the default value is inserted
(<emphasis>not</emphasis> when the table is created). A common example (<emphasis>not</emphasis> when the table is created). A common example
is that a timestamp column may have a default of <literal>now()</>, is that a <type>timestamp</type> column may have a default of <literal>now()</>,
so that it gets set to the time of row insertion. Another common so that it gets set to the time of row insertion. Another common
example is generating a <quote>serial number</> for each row. example is generating a <quote>serial number</> for each row.
In <productname>PostgreSQL</productname> this is typically done by In <productname>PostgreSQL</productname> this is typically done by
@ -1157,7 +1157,7 @@ SELECT name, altitude
</note> </note>
<para> <para>
Inheritance does not automatically propogate data from Inheritance does not automatically propagate data from
<command>INSERT</command> or <command>COPY</command> commands to <command>INSERT</command> or <command>COPY</command> commands to
other tables in the inheritance hierarchy. In our example, the other tables in the inheritance hierarchy. In our example, the
following <command>INSERT</command> statement will fail: following <command>INSERT</command> statement will fail:
@ -1498,7 +1498,7 @@ CHECK ( county IN ( 'Oxfordshire','Buckinghamshire','Warwickshire' ))
CHECK ( outletID BETWEEN 1 AND 99 ) CHECK ( outletID BETWEEN 1 AND 99 )
</programlisting> </programlisting>
These can be linked together with the boolean operators These can be linked together with the Boolean operators
<literal>AND</literal> and <literal>OR</literal> to form <literal>AND</literal> and <literal>OR</literal> to form
complex constraints. Note that there is no difference in complex constraints. Note that there is no difference in
syntax between range and list partitioning; those terms are syntax between range and list partitioning; those terms are
@ -1849,7 +1849,7 @@ ANALYZE measurement;
<listitem> <listitem>
<para> <para>
Constraint exclusion only works when the query directly matches Constraint exclusion only works when the query directly matches
a constant. A constant bound to a parameterised query will not a constant. A constant bound to a parameterized query will not
work in the same way since the plan is fixed and would need to work in the same way since the plan is fixed and would need to
vary with each execution. Also, stable constants such as vary with each execution. Also, stable constants such as
<literal>CURRENT_DATE</literal> may not be used, since these are <literal>CURRENT_DATE</literal> may not be used, since these are
@ -1860,8 +1860,8 @@ ANALYZE measurement;
<listitem> <listitem>
<para> <para>
UPDATEs and DELETEs against the master table do not perform <command>UPDATE</command> and <command>DELETE</command> commands
constraint exclusion. against the master table do not perform constraint exclusion.
</para> </para>
</listitem> </listitem>

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/ecpg.sgml,v 1.70 2005/11/04 02:56:30 tgl Exp $ $PostgreSQL: pgsql/doc/src/sgml/ecpg.sgml,v 1.71 2005/11/04 23:13:59 petere Exp $
--> -->
<chapter id="ecpg"> <chapter id="ecpg">
@ -1609,11 +1609,11 @@ ECPG = ecpg
</para> </para>
<note> <note>
<para> <para>
On Win32, if the <application>ecpg</> libraries and an application are On Windows, if the <application>ecpg</> libraries and an application are
compiled with different flags, this function call will crash the compiled with different flags, this function call will crash the
application because the internal representation of the application because the internal representation of the
<literal>FILE</> pointers differ. Specifically, <literal>FILE</> pointers differ. Specifically,
multi-threaded/single-threaded, release/debug, and static/dynamic multithreaded/single-threaded, release/debug, and static/dynamic
flags should be the same for the library and all applications using flags should be the same for the library and all applications using
that library. that library.
</para> </para>

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/func.sgml,v 1.290 2005/11/04 02:56:30 tgl Exp $ $PostgreSQL: pgsql/doc/src/sgml/func.sgml,v 1.291 2005/11/04 23:13:59 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -3430,7 +3430,7 @@ regexp_replace('foobarbaz', 'b(..)', 'X\\1Y', 'g')
<note> <note>
<para> <para>
<productname>PostgreSQL</> currently has no multi-character collating <productname>PostgreSQL</> currently has no multicharacter collating
elements. This information describes possible future behavior. elements. This information describes possible future behavior.
</para> </para>
</note> </note>
@ -3820,7 +3820,7 @@ regexp_replace('foobarbaz', 'b(..)', 'X\\1Y', 'g')
A leading zero always indicates an octal escape. A leading zero always indicates an octal escape.
A single non-zero digit, not followed by another digit, A single non-zero digit, not followed by another digit,
is always taken as a back reference. is always taken as a back reference.
A multi-digit sequence not starting with a zero is taken as a back A multidigit sequence not starting with a zero is taken as a back
reference if it comes after a suitable subexpression reference if it comes after a suitable subexpression
(i.e. the number is in the legal range for a back reference), (i.e. the number is in the legal range for a back reference),
and otherwise is taken as octal. and otherwise is taken as octal.
@ -3970,7 +3970,7 @@ regexp_replace('foobarbaz', 'b(..)', 'X\\1Y', 'g')
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
white space and comments cannot appear within multi-character symbols, white space and comments cannot appear within multicharacter symbols,
such as <literal>(?:</> such as <literal>(?:</>
</para> </para>
</listitem> </listitem>
@ -3986,7 +3986,7 @@ regexp_replace('foobarbaz', 'b(..)', 'X\\1Y', 'g')
(where <replaceable>ttt</> is any text not containing a <literal>)</>) (where <replaceable>ttt</> is any text not containing a <literal>)</>)
is a comment, completely ignored. is a comment, completely ignored.
Again, this is not allowed between the characters of Again, this is not allowed between the characters of
multi-character symbols, like <literal>(?:</>. multicharacter symbols, like <literal>(?:</>.
Such comments are more a historical artifact than a useful facility, Such comments are more a historical artifact than a useful facility,
and their use is deprecated; use the expanded syntax instead. and their use is deprecated; use the expanded syntax instead.
</para> </para>
@ -6568,7 +6568,7 @@ SELECT TIMESTAMP 'now'; -- incorrect for use with DEFAULT
<row> <row>
<entry><literal><function>point</function>(<type>lseg</type>)</literal></entry> <entry><literal><function>point</function>(<type>lseg</type>)</literal></entry>
<entry><type>point</type></entry> <entry><type>point</type></entry>
<entry>center of lseg</entry> <entry>center of line segment</entry>
<entry><literal>point(lseg '((-1,0),(1,0))')</literal></entry> <entry><literal>point(lseg '((-1,0),(1,0))')</literal></entry>
</row> </row>
<row> <row>
@ -9472,10 +9472,10 @@ SELECT set_config('log_statement_stats', 'off', false);
</para> </para>
<para> <para>
<function>pg_rotate_logfile</> signals the logfile manager to switch <function>pg_rotate_logfile</> signals the log-file manager to switch
to a new output file immediately. This works only when to a new output file immediately. This works only when
<varname>redirect_stderr</> is used for logging, since otherwise there <varname>redirect_stderr</> is used for logging, since otherwise there
is no logfile manager subprocess. is no log-file manager subprocess.
</para> </para>
<indexterm zone="functions-admin"> <indexterm zone="functions-admin">
@ -9759,7 +9759,7 @@ SELECT set_config('log_statement_stats', 'off', false);
<function>pg_stat_file</> returns a record containing the file <function>pg_stat_file</> returns a record containing the file
size, last accessed time stamp, last modified time stamp, size, last accessed time stamp, last modified time stamp,
last file status change time stamp (Unix platforms only), last file status change time stamp (Unix platforms only),
file creation timestamp (Win32 only), and a boolean indicating file creation timestamp (Windows only), and a <type>boolean</type> indicating
if it is a directory. Typical usages include: if it is a directory. Typical usages include:
<programlisting> <programlisting>
SELECT * FROM pg_stat_file('filename'); SELECT * FROM pg_stat_file('filename');

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/gist.sgml,v 1.23 2005/10/21 13:59:05 tgl Exp $ $PostgreSQL: pgsql/doc/src/sgml/gist.sgml,v 1.24 2005/11/04 23:14:00 petere Exp $
--> -->
<chapter id="GiST"> <chapter id="GiST">
@ -52,7 +52,7 @@ $PostgreSQL: pgsql/doc/src/sgml/gist.sgml,v 1.23 2005/10/21 13:59:05 tgl Exp $
difficult work. It was necessary to understand the inner workings of the difficult work. It was necessary to understand the inner workings of the
database, such as the lock manager and Write-Ahead Log. The database, such as the lock manager and Write-Ahead Log. The
<acronym>GiST</acronym> interface has a high level of abstraction, <acronym>GiST</acronym> interface has a high level of abstraction,
requiring the access method implementor to only implement the semantics of requiring the access method implementer to only implement the semantics of
the data type being accessed. The <acronym>GiST</acronym> layer itself the data type being accessed. The <acronym>GiST</acronym> layer itself
takes care of concurrency, logging and searching the tree structure. takes care of concurrency, logging and searching the tree structure.
</para> </para>

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/indexam.sgml,v 2.6 2005/06/13 23:14:47 tgl Exp $ $PostgreSQL: pgsql/doc/src/sgml/indexam.sgml,v 2.7 2005/11/04 23:14:00 petere Exp $
--> -->
<chapter id="indexam"> <chapter id="indexam">
@ -56,7 +56,7 @@ $PostgreSQL: pgsql/doc/src/sgml/indexam.sgml,v 2.6 2005/06/13 23:14:47 tgl Exp $
functions supplied by the access method. The APIs for these functions functions supplied by the access method. The APIs for these functions
are defined later in this chapter. In addition, the are defined later in this chapter. In addition, the
<structname>pg_am</structname> row specifies a few fixed properties of <structname>pg_am</structname> row specifies a few fixed properties of
the access method, such as whether it can support multi-column indexes. the access method, such as whether it can support multicolumn indexes.
There is not currently any special support There is not currently any special support
for creating or deleting <structname>pg_am</structname> entries; for creating or deleting <structname>pg_am</structname> entries;
anyone able to write a new access method is expected to be competent anyone able to write a new access method is expected to be competent
@ -99,7 +99,7 @@ $PostgreSQL: pgsql/doc/src/sgml/indexam.sgml,v 2.6 2005/06/13 23:14:47 tgl Exp $
are discussed in <xref linkend="index-unique-checks">, and those of are discussed in <xref linkend="index-unique-checks">, and those of
<structfield>amconcurrent</structfield> in <xref linkend="index-locking">. <structfield>amconcurrent</structfield> in <xref linkend="index-locking">.
The <structfield>amcanmulticol</structfield> flag asserts that the The <structfield>amcanmulticol</structfield> flag asserts that the
access method supports multi-column indexes, while access method supports multicolumn indexes, while
<structfield>amoptionalkey</structfield> asserts that it allows scans <structfield>amoptionalkey</structfield> asserts that it allows scans
where no indexable restriction clause is given for the first index column. where no indexable restriction clause is given for the first index column.
When <structfield>amcanmulticol</structfield> is false, When <structfield>amcanmulticol</structfield> is false,
@ -113,7 +113,7 @@ $PostgreSQL: pgsql/doc/src/sgml/indexam.sgml,v 2.6 2005/06/13 23:14:47 tgl Exp $
<structfield>amindexnulls</structfield> asserts that index entries are <structfield>amindexnulls</structfield> asserts that index entries are
created for NULL key values. Since most indexable operators are created for NULL key values. Since most indexable operators are
strict and hence cannot return TRUE for NULL inputs, strict and hence cannot return TRUE for NULL inputs,
it is at first sight attractive to not store index entries for NULLs: it is at first sight attractive to not store index entries for null values:
they could never be returned by an index scan anyway. However, this they could never be returned by an index scan anyway. However, this
argument fails when an index scan has no restriction clause for a given argument fails when an index scan has no restriction clause for a given
index column. In practice this means that index column. In practice this means that
@ -242,7 +242,7 @@ ambeginscan (Relation indexRelation,
<emphasis>must</> create this struct by calling <emphasis>must</> create this struct by calling
<function>RelationGetIndexScan()</>. In most cases <function>RelationGetIndexScan()</>. In most cases
<function>ambeginscan</> itself does little beyond making that call; <function>ambeginscan</> itself does little beyond making that call;
the interesting parts of indexscan startup are in <function>amrescan</>. the interesting parts of index-scan startup are in <function>amrescan</>.
</para> </para>
<para> <para>
@ -291,7 +291,7 @@ amrescan (IndexScanDesc scan,
Restart the given scan, possibly with new scan keys (to continue using Restart the given scan, possibly with new scan keys (to continue using
the old keys, NULL is passed for <literal>key</>). Note that it is not the old keys, NULL is passed for <literal>key</>). Note that it is not
possible for the number of keys to be changed. In practice the restart possible for the number of keys to be changed. In practice the restart
feature is used when a new outer tuple is selected by a nestloop join feature is used when a new outer tuple is selected by a nested-loop join
and so a new key comparison value is needed, but the scan key structure and so a new key comparison value is needed, but the scan key structure
remains the same. This function is also called by remains the same. This function is also called by
<function>RelationGetIndexScan()</>, so it is used for initial setup <function>RelationGetIndexScan()</>, so it is used for initial setup
@ -377,7 +377,7 @@ amcostestimate (PlannerInfo *root,
The operator class may indicate that the index is <firstterm>lossy</> for a The operator class may indicate that the index is <firstterm>lossy</> for a
particular operator; this implies that the index scan will return all the particular operator; this implies that the index scan will return all the
entries that pass the scan key, plus possibly additional entries that do entries that pass the scan key, plus possibly additional entries that do
not. The core system's indexscan machinery will then apply that operator not. The core system's index-scan machinery will then apply that operator
again to the heap tuple to verify whether or not it really should be again to the heap tuple to verify whether or not it really should be
selected. For non-lossy operators, the index scan must return exactly the selected. For non-lossy operators, the index scan must return exactly the
set of matching entries, as there is no recheck. set of matching entries, as there is no recheck.

View File

@ -1,4 +1,4 @@
<!-- $PostgreSQL: pgsql/doc/src/sgml/indices.sgml,v 1.53 2005/10/21 01:41:28 tgl Exp $ --> <!-- $PostgreSQL: pgsql/doc/src/sgml/indices.sgml,v 1.54 2005/11/04 23:14:00 petere Exp $ -->
<chapter id="indexes"> <chapter id="indexes">
<title id="indexes-title">Indexes</title> <title id="indexes-title">Indexes</title>
@ -235,7 +235,7 @@ CREATE INDEX <replaceable>name</replaceable> ON <replaceable>table</replaceable>
Similarly, R-tree indexes do not seem to have any performance Similarly, R-tree indexes do not seem to have any performance
advantages compared to the equivalent operations of GiST indexes. advantages compared to the equivalent operations of GiST indexes.
Like hash indexes, they are not WAL-logged and may need Like hash indexes, they are not WAL-logged and may need
<command>REINDEX</>ing after a database crash. reindexing after a database crash.
</para> </para>
<para> <para>
@ -389,7 +389,7 @@ CREATE INDEX test2_mm_idx ON test2 (major, minor);
<para> <para>
In all but the simplest applications, there are various combinations of In all but the simplest applications, there are various combinations of
indexes that may be useful, and the database developer must make indexes that may be useful, and the database developer must make
tradeoffs to decide which indexes to provide. Sometimes multicolumn trade-offs to decide which indexes to provide. Sometimes multicolumn
indexes are best, but sometimes it's better to create separate indexes indexes are best, but sometimes it's better to create separate indexes
and rely on the index-combination feature. For example, if your and rely on the index-combination feature. For example, if your
workload includes a mix of queries that sometimes involve only column workload includes a mix of queries that sometimes involve only column

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/libpq.sgml,v 1.198 2005/10/27 13:53:41 momjian Exp $ $PostgreSQL: pgsql/doc/src/sgml/libpq.sgml,v 1.199 2005/11/04 23:14:00 petere Exp $
--> -->
<chapter id="libpq"> <chapter id="libpq">
@ -3539,10 +3539,10 @@ void PQtrace(PGconn *conn, FILE *stream);
</para> </para>
<note> <note>
<para> <para>
On Win32, if the <application>libpq</> library and an application are On Windows, if the <application>libpq</> library and an application are
compiled with different flags, this function call will crash the compiled with different flags, this function call will crash the
application because the internal representation of the <literal>FILE</> application because the internal representation of the <literal>FILE</>
pointers differ. Specifically, multi-threaded/single-threaded, pointers differ. Specifically, multithreaded/single-threaded,
release/debug, and static/dynamic flags should be the same for the release/debug, and static/dynamic flags should be the same for the
library and all applications using that library. library and all applications using that library.
</para> </para>

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/maintenance.sgml,v 1.50 2005/11/01 21:09:49 tgl Exp $ $PostgreSQL: pgsql/doc/src/sgml/maintenance.sgml,v 1.51 2005/11/04 23:14:00 petere Exp $
--> -->
<chapter id="maintenance"> <chapter id="maintenance">
@ -593,7 +593,7 @@ analyze threshold = analyze base threshold + analyze scale factor * number of tu
<para> <para>
In <productname>PostgreSQL</> releases before 7.4, periodic reindexing In <productname>PostgreSQL</> releases before 7.4, periodic reindexing
was frequently necessary to avoid <quote>index bloat</>, due to lack of was frequently necessary to avoid <quote>index bloat</>, due to lack of
internal space reclamation in btree indexes. Any situation in which the internal space reclamation in B-tree indexes. Any situation in which the
range of index keys changed over time &mdash; for example, an index on range of index keys changed over time &mdash; for example, an index on
timestamps in a table where old entries are eventually deleted &mdash; timestamps in a table where old entries are eventually deleted &mdash;
would result in bloat, because index pages for no-longer-needed portions would result in bloat, because index pages for no-longer-needed portions
@ -613,16 +613,16 @@ analyze threshold = analyze base threshold + analyze scale factor * number of tu
</para> </para>
<para> <para>
The potential for bloat in non-btree indexes has not been well The potential for bloat in non-B-tree indexes has not been well
characterized. It is a good idea to keep an eye on the index's physical characterized. It is a good idea to keep an eye on the index's physical
size when using any non-btree index type. size when using any non-B-tree index type.
</para> </para>
<para> <para>
Also, for btree indexes a freshly-constructed index is somewhat faster to Also, for B-tree indexes a freshly-constructed index is somewhat faster to
access than one that has been updated many times, because logically access than one that has been updated many times, because logically
adjacent pages are usually also physically adjacent in a newly built index. adjacent pages are usually also physically adjacent in a newly built index.
(This consideration does not currently apply to non-btree indexes.) It (This consideration does not currently apply to non-B-tree indexes.) It
might be worthwhile to reindex periodically just to improve access speed. might be worthwhile to reindex periodically just to improve access speed.
</para> </para>
</sect1> </sect1>

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/nls.sgml,v 1.12 2005/04/09 03:52:43 momjian Exp $ $PostgreSQL: pgsql/doc/src/sgml/nls.sgml,v 1.13 2005/11/04 23:14:00 petere Exp $
--> -->
<chapter id="nls"> <chapter id="nls">

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/perform.sgml,v 1.53 2005/09/02 03:19:53 tgl Exp $ $PostgreSQL: pgsql/doc/src/sgml/perform.sgml,v 1.54 2005/11/04 23:14:00 petere Exp $
--> -->
<chapter id="performance-tips"> <chapter id="performance-tips">
@ -826,7 +826,7 @@ SELECT * FROM x, y, a, b, c WHERE something AND somethingelse;
Just as with indexes, a foreign key constraint can be checked Just as with indexes, a foreign key constraint can be checked
<quote>in bulk</> more efficiently than row-by-row. So it may be <quote>in bulk</> more efficiently than row-by-row. So it may be
useful to drop foreign key constraints, load data, and re-create useful to drop foreign key constraints, load data, and re-create
the constraints. Again, there is a tradeoff between data load the constraints. Again, there is a trade-off between data load
speed and loss of error checking while the constraint is missing. speed and loss of error checking while the constraint is missing.
</para> </para>
</sect2> </sect2>

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/planstats.sgml,v 1.4 2005/10/15 20:12:32 neilc Exp $ $PostgreSQL: pgsql/doc/src/sgml/planstats.sgml,v 1.5 2005/11/04 23:14:00 petere Exp $
--> -->
<chapter id="planner-stats-details"> <chapter id="planner-stats-details">
@ -327,7 +327,7 @@ selectivity = (1 - null_frac1) * (1 - null_frac2) * min(1/num_distinct1, 1/num_d
This is, subtract the null fraction from one for each of the relations, This is, subtract the null fraction from one for each of the relations,
and divide by the maximum of the two distinct values. The number of rows and divide by the maximum of the two distinct values. The number of rows
that the join is likely to emit is calculated as the cardinality of that the join is likely to emit is calculated as the cardinality of
cartesian product of the two nodes in the nested-loop, multiplied by the Cartesian product of the two nodes in the nested-loop, multiplied by the
selectivity: selectivity:
<programlisting> <programlisting>

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/plperl.sgml,v 2.48 2005/10/24 15:39:50 adunstan Exp $ $PostgreSQL: pgsql/doc/src/sgml/plperl.sgml,v 2.49 2005/11/04 23:14:00 petere Exp $
--> -->
<chapter id="plperl"> <chapter id="plperl">
@ -687,7 +687,7 @@ $$ LANGUAGE plperl;
<term><literal>@{$_TD-&gt;{args}}</literal></term> <term><literal>@{$_TD-&gt;{args}}</literal></term>
<listitem> <listitem>
<para> <para>
Arguments of the trigger function. Does not exist if $_TD-&gt;{argc} is 0. Arguments of the trigger function. Does not exist if <literal>$_TD-&gt;{argc}</literal> is 0.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -787,7 +787,7 @@ CREATE TRIGGER test_valid_id_trig
</para> </para>
<para> <para>
A similar problem occurs if a set-returning function passes a A similar problem occurs if a set-returning function passes a
large set of rows back to postgres via <literal>return</literal>. You large set of rows back to PostgreSQL via <literal>return</literal>. You
can avoid this problem too by instead using can avoid this problem too by instead using
<literal>return_next</literal> for each row returned, as shown <literal>return_next</literal> for each row returned, as shown
previously. previously.

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/plpgsql.sgml,v 1.79 2005/10/21 05:11:23 neilc Exp $ $PostgreSQL: pgsql/doc/src/sgml/plpgsql.sgml,v 1.80 2005/11/04 23:14:00 petere Exp $
--> -->
<chapter id="plpgsql"> <chapter id="plpgsql">

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/ref/create_aggregate.sgml,v 1.32 2005/04/12 04:26:15 tgl Exp $ $PostgreSQL: pgsql/doc/src/sgml/ref/create_aggregate.sgml,v 1.33 2005/11/04 23:14:02 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -146,8 +146,8 @@ SELECT col FROM tab ORDER BY col USING sortop LIMIT 1;
Ordinarily, a data type's <literal>&lt;</> operator is the proper sort Ordinarily, a data type's <literal>&lt;</> operator is the proper sort
operator for <function>MIN</>, and <literal>&gt;</> is the proper sort operator for <function>MIN</>, and <literal>&gt;</> is the proper sort
operator for <function>MAX</>. Note that the optimization will never operator for <function>MAX</>. Note that the optimization will never
actually take effect unless the specified operator is the LessThan or actually take effect unless the specified operator is the <quote>less than</quote> or
GreaterThan strategy member of a btree index opclass. <quote>greater than</quote> strategy member of a B-tree index operator class.
</para> </para>
</refsect1> </refsect1>

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/ref/create_domain.sgml,v 1.25 2005/11/01 21:09:50 tgl Exp $ $PostgreSQL: pgsql/doc/src/sgml/ref/create_domain.sgml,v 1.26 2005/11/04 23:14:02 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -58,7 +58,7 @@ where <replaceable class="PARAMETER">constraint</replaceable> is:
<caution> <caution>
<para> <para>
At present, declaring a function result value as a domain At present, declaring a function result value as a domain
is pretty dangerous, because none of the PLs enforce domain constraints is pretty dangerous, because none of the procedural languages enforce domain constraints
on their results. You'll need to make sure that the function code itself on their results. You'll need to make sure that the function code itself
respects the constraints. In <application>PL/pgSQL</>, one possible respects the constraints. In <application>PL/pgSQL</>, one possible
workaround is to explicitly cast the result value to the domain type workaround is to explicitly cast the result value to the domain type

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/ref/pg_ctl-ref.sgml,v 1.31 2005/02/21 02:13:26 neilc Exp $ $PostgreSQL: pgsql/doc/src/sgml/ref/pg_ctl-ref.sgml,v 1.32 2005/11/04 23:14:02 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/ref/pg_resetxlog.sgml,v 1.11 2005/06/08 15:50:21 tgl Exp $ $PostgreSQL: pgsql/doc/src/sgml/ref/pg_resetxlog.sgml,v 1.12 2005/11/04 23:14:02 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -61,7 +61,7 @@ PostgreSQL documentation
by specifying the <literal>-f</> (force) switch. In this case plausible by specifying the <literal>-f</> (force) switch. In this case plausible
values will be substituted for the missing data. Most of the fields can be values will be substituted for the missing data. Most of the fields can be
expected to match, but manual assistance may be needed for the next OID, expected to match, but manual assistance may be needed for the next OID,
next transaction ID, next multi-transaction ID and offset, next transaction ID, next multitransaction ID and offset,
WAL starting address, and database locale fields. WAL starting address, and database locale fields.
The first five of these can be set using the switches discussed below. The first five of these can be set using the switches discussed below.
<command>pg_resetxlog</command>'s own environment is the source for its <command>pg_resetxlog</command>'s own environment is the source for its
@ -78,8 +78,8 @@ PostgreSQL documentation
<para> <para>
The <literal>-o</>, <literal>-x</>, <literal>-m</>, <literal>-O</>, The <literal>-o</>, <literal>-x</>, <literal>-m</>, <literal>-O</>,
and <literal>-l</> and <literal>-l</>
switches allow the next OID, next transaction ID, next multi-transaction switches allow the next OID, next transaction ID, next multitransaction
ID, next multi-transaction offset, and WAL starting address values to ID, next multitransaction offset, and WAL starting address values to
be set manually. These are only needed when be set manually. These are only needed when
<command>pg_resetxlog</command> is unable to determine appropriate values <command>pg_resetxlog</command> is unable to determine appropriate values
by reading <filename>pg_control</>. Safe values may be determined as by reading <filename>pg_control</>. Safe values may be determined as
@ -102,7 +102,7 @@ PostgreSQL documentation
<listitem> <listitem>
<para> <para>
A safe value for the next multi-transaction ID (<literal>-m</>) A safe value for the next multitransaction ID (<literal>-m</>)
may be determined by looking for the numerically largest may be determined by looking for the numerically largest
file name in the directory <filename>pg_multixact/offsets</> under the file name in the directory <filename>pg_multixact/offsets</> under the
data directory, adding one, and then multiplying by 65536. As above, data directory, adding one, and then multiplying by 65536. As above,
@ -113,7 +113,7 @@ PostgreSQL documentation
<listitem> <listitem>
<para> <para>
A safe value for the next multi-transaction offset (<literal>-O</>) A safe value for the next multitransaction offset (<literal>-O</>)
may be determined by looking for the numerically largest may be determined by looking for the numerically largest
file name in the directory <filename>pg_multixact/members</> under the file name in the directory <filename>pg_multixact/members</> under the
data directory, adding one, and then multiplying by 65536. As above, data directory, adding one, and then multiplying by 65536. As above,

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.153 2005/11/01 21:09:50 tgl Exp $ $PostgreSQL: pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.154 2005/11/04 23:14:02 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.399 2005/11/04 22:21:33 momjian Exp $ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.400 2005/11/04 23:14:00 petere Exp $
Typical markup: Typical markup:
@ -285,7 +285,8 @@ pg_[A-Za-z0-9_] <application>
<listitem> <listitem>
<para> <para>
Cause input of a zero-length string ('') for float4/float8/oid Cause input of a zero-length string (<literal>''</literal>) for
<type>float4</type>/<type>float8</type>/<type>oid</type>
to throw an error, rather than treating it as a zero (Neil) to throw an error, rather than treating it as a zero (Neil)
</para> </para>
<para> <para>
@ -321,7 +322,7 @@ pg_[A-Za-z0-9_] <application>
backslash in a string literal as introducing a special escape sequence, backslash in a string literal as introducing a special escape sequence,
e.g. <literal>\n</> or <literal>\010</>. e.g. <literal>\n</> or <literal>\010</>.
While this allows easy entry of special values, it is While this allows easy entry of special values, it is
non-standard and makes porting of applications from other nonstandard and makes porting of applications from other
databases more difficult. For this reason, the databases more difficult. For this reason, the
<productname>PostgreSQL</productname> project is planning to <productname>PostgreSQL</productname> project is planning to
remove the special meaning of backslashes in strings. For remove the special meaning of backslashes in strings. For
@ -538,7 +539,7 @@ psql -t -f fixseq.sql db1 | psql -e db1
<listitem> <listitem>
<para> <para>
Improve GiST and rtree index performance (Neil) Improve GiST and R-tree index performance (Neil)
</para> </para>
</listitem> </listitem>
@ -579,7 +580,7 @@ psql -t -f fixseq.sql db1 | psql -e db1
<listitem> <listitem>
<para> <para>
Allow non-consecutive index columns to be used in a multi-column Allow nonconsecutive index columns to be used in a multicolumn
index (Tom) index (Tom)
</para> </para>
<para> <para>
@ -1639,7 +1640,7 @@ psql -t -f fixseq.sql db1 | psql -e db1
<listitem> <listitem>
<para> <para>
Allow Perl non-fatal warnings to generate <command>NOTICE</> Allow Perl nonfatal warnings to generate <command>NOTICE</>
messages (Andrew) messages (Andrew)
</para> </para>
</listitem> </listitem>
@ -1962,7 +1963,7 @@ psql -t -f fixseq.sql db1 | psql -e db1
<listitem> <listitem>
<para> <para>
Allow IPv6 connections to be used on Win32 (Andrew) Allow IPv6 connections to be used on Windows (Andrew)
</para> </para>
</listitem> </listitem>
@ -2711,7 +2712,7 @@ typedefs (Michael)</para></listitem>
<para> <para>
<command>COPY</command> can now read and write <command>COPY</command> can now read and write
comma-separated-value files. It has the flexibility to comma-separated-value files. It has the flexibility to
interpret non-standard quoting and separation characters too. interpret nonstandard quoting and separation characters too.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -2756,7 +2757,7 @@ typedefs (Michael)</para></listitem>
<listitem> <listitem>
<para> <para>
Non-deferred <option>AFTER</> triggers are now fired immediately Nondeferred <option>AFTER</> triggers are now fired immediately
after completion of the triggering query, rather than upon after completion of the triggering query, rather than upon
finishing the current interactive command. This makes a finishing the current interactive command. This makes a
difference when the triggering query occurred within a function: difference when the triggering query occurred within a function:
@ -2838,7 +2839,7 @@ typedefs (Michael)</para></listitem>
<listitem> <listitem>
<para> <para>
Updating an element or slice of a NULL array value now produces Updating an element or slice of a NULL array value now produces
a non-NULL array result, namely an array containing a nonnull array result, namely an array containing
just the assigned-to positions. just the assigned-to positions.
</para> </para>
</listitem> </listitem>
@ -2881,7 +2882,7 @@ typedefs (Michael)</para></listitem>
<listitem> <listitem>
<para> <para>
<type>CIDR</> values now must have their non-masked bits be zero. <type>CIDR</> values now must have their nonmasked bits be zero.
For example, we no longer allow For example, we no longer allow
<literal>204.248.199.1/31</literal> as a <type>CIDR</> value. Such <literal>204.248.199.1/31</literal> as a <type>CIDR</> value. Such
values should never have been accepted by values should never have been accepted by
@ -3168,7 +3169,7 @@ typedefs (Michael)</para></listitem>
</para> </para>
<para> <para>
This feature allows more flexibility in generating statistics This feature allows more flexibility in generating statistics
for non-standard data types. for nonstandard data types.
</para> </para>
</listitem> </listitem>
@ -3920,7 +3921,7 @@ typedefs (Michael)</para></listitem>
<listitem> <listitem>
<para> <para>
Reject non-rectangular array values as erroneous (Joe) Reject nonrectangular array values as erroneous (Joe)
</para> </para>
<para> <para>
Formerly, <function>array_in</> would silently build a Formerly, <function>array_in</> would silently build a
@ -4182,7 +4183,7 @@ typedefs (Michael)</para></listitem>
<listitem> <listitem>
<para> <para>
Require <type>CIDR</> values to have all non-masked bits be zero Require <type>CIDR</> values to have all nonmasked bits be zero
(Kevin Brintnall) (Kevin Brintnall)
</para> </para>
</listitem> </listitem>
@ -4219,13 +4220,13 @@ typedefs (Michael)</para></listitem>
<listitem> <listitem>
<para> <para>
Non-deferred <option>AFTER</> triggers are now fired immediately Nondeferred <option>AFTER</> triggers are now fired immediately
after completion of the triggering query, rather than upon after completion of the triggering query, rather than upon
finishing the current interactive command. This makes a difference finishing the current interactive command. This makes a difference
when the triggering query occurred within a function: the trigger when the triggering query occurred within a function: the trigger
is invoked before the function proceeds to its next operation. For is invoked before the function proceeds to its next operation. For
example, if a function inserts a new row into a table, any example, if a function inserts a new row into a table, any
non-deferred foreign key checks occur before proceeding with the nondeferred foreign key checks occur before proceeding with the
function. function.
</para> </para>
</listitem> </listitem>
@ -4758,7 +4759,7 @@ typedefs (Michael)</para></listitem>
backend executables too (Bruce) backend executables too (Bruce)
</para> </para>
<para> <para>
Unixware cannot mix threaded and non-threaded object files in the Unixware cannot mix threaded and nonthreaded object files in the
same executable, so everything must be compiled as threaded. same executable, so everything must be compiled as threaded.
</para> </para>
</listitem> </listitem>

View File

@ -1,4 +1,4 @@
<!-- $PostgreSQL: pgsql/doc/src/sgml/rowtypes.sgml,v 2.5 2005/01/22 22:56:36 momjian Exp $ --> <!-- $PostgreSQL: pgsql/doc/src/sgml/rowtypes.sgml,v 2.6 2005/11/04 23:14:01 petere Exp $ -->
<sect1 id="rowtypes"> <sect1 id="rowtypes">
<title>Composite Types</title> <title>Composite Types</title>
@ -175,7 +175,7 @@ SELECT item.name FROM on_hand WHERE item.price &gt; 9.99;
SELECT (item).name FROM on_hand WHERE (item).price &gt; 9.99; SELECT (item).name FROM on_hand WHERE (item).price &gt; 9.99;
</programlisting> </programlisting>
or if you need to use the table name as well (for instance in a multi-table or if you need to use the table name as well (for instance in a multitable
query), like this: query), like this:
<programlisting> <programlisting>

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.356 2005/10/26 12:55:07 momjian Exp $ $PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.357 2005/11/04 23:14:01 petere Exp $
--> -->
<chapter Id="runtime"> <chapter Id="runtime">
@ -1365,7 +1365,7 @@ $ <userinput>kill -INT `head -1 /usr/local/pgsql/data/postmaster.pid`</userinput
</para> </para>
<para> <para>
This mechanism prevents unecrypted data from being read from the This mechanism prevents unencrypted data from being read from the
drives if the drives or the entire computer is stolen. This does drives if the drives or the entire computer is stolen. This does
not protect against attacks while the file system is mounted, not protect against attacks while the file system is mounted,
because when mounted, the operating system provides an unencrypted because when mounted, the operating system provides an unencrypted

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/storage.sgml,v 1.7 2005/09/01 20:01:53 tgl Exp $ $PostgreSQL: pgsql/doc/src/sgml/storage.sgml,v 1.8 2005/11/04 23:14:02 petere Exp $
--> -->
<chapter id="storage"> <chapter id="storage">
@ -75,7 +75,7 @@ Item
<row> <row>
<entry><filename>pg_multixact</></entry> <entry><filename>pg_multixact</></entry>
<entry>Subdirectory containing multi-transaction status data <entry>Subdirectory containing multitransaction status data
(used for shared row locks)</entry> (used for shared row locks)</entry>
</row> </row>
@ -663,7 +663,7 @@ data. Empty in ordinary tables.</entry>
<structfield>attlen</structfield> and <structfield>attalign</structfield>. <structfield>attlen</structfield> and <structfield>attalign</structfield>.
There is no way to directly get a There is no way to directly get a
particular attribute, except when there are only fixed width fields and no particular attribute, except when there are only fixed width fields and no
NULLs. All this trickery is wrapped up in the functions null values. All this trickery is wrapped up in the functions
<firstterm>heap_getattr</firstterm>, <firstterm>fastgetattr</firstterm> <firstterm>heap_getattr</firstterm>, <firstterm>fastgetattr</firstterm>
and <firstterm>heap_getsysattr</firstterm>. and <firstterm>heap_getsysattr</firstterm>.

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/syntax.sgml,v 1.104 2005/10/23 19:29:49 tgl Exp $ $PostgreSQL: pgsql/doc/src/sgml/syntax.sgml,v 1.105 2005/11/04 23:14:02 petere Exp $
--> -->
<chapter id="sql-syntax"> <chapter id="sql-syntax">
@ -1148,7 +1148,7 @@ CREATE FUNCTION dept(text) RETURNS dept
parenthesized, but the parentheses may be omitted when the expression parenthesized, but the parentheses may be omitted when the expression
to be subscripted is just a column reference or positional parameter. to be subscripted is just a column reference or positional parameter.
Also, multiple subscripts can be concatenated when the original array Also, multiple subscripts can be concatenated when the original array
is multi-dimensional. is multidimensional.
For example, For example,
<programlisting> <programlisting>

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/trigger.sgml,v 1.44 2005/10/13 21:09:38 tgl Exp $ $PostgreSQL: pgsql/doc/src/sgml/trigger.sgml,v 1.45 2005/11/04 23:14:02 petere Exp $
--> -->
<chapter id="triggers"> <chapter id="triggers">
@ -141,7 +141,7 @@ $PostgreSQL: pgsql/doc/src/sgml/trigger.sgml,v 1.44 2005/10/13 21:09:38 tgl Exp
Typically, row before triggers are used for checking or Typically, row before triggers are used for checking or
modifying the data that will be inserted or updated. For example, modifying the data that will be inserted or updated. For example,
a before trigger might be used to insert the current time into a a before trigger might be used to insert the current time into a
timestamp column, or to check that two elements of the row are <type>timestamp</type> column, or to check that two elements of the row are
consistent. Row after triggers are most sensibly consistent. Row after triggers are most sensibly
used to propagate the updates to other tables, or make consistency used to propagate the updates to other tables, or make consistency
checks against other tables. The reason for this division of labor is checks against other tables. The reason for this division of labor is

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/typeconv.sgml,v 1.44 2005/06/26 22:05:36 tgl Exp $ $PostgreSQL: pgsql/doc/src/sgml/typeconv.sgml,v 1.45 2005/11/04 23:14:02 petere Exp $
--> -->
<chapter Id="typeconv"> <chapter Id="typeconv">

View File

@ -1,20 +1,29 @@
<!-- $PostgreSQL: pgsql/doc/src/sgml/wal.sgml,v 1.37 2005/10/22 21:56:07 tgl Exp $ --> <!-- $PostgreSQL: pgsql/doc/src/sgml/wal.sgml,v 1.38 2005/11/04 23:14:02 petere Exp $ -->
<chapter id="reliability"> <chapter id="wal">
<title>Reliability and the Write-Ahead Log</title>
<para>
This chapter explain how the Write-Ahead Log is used to obtain
efficient, reliable operation.
</para>
<sect1 id="wal-reliability">
<title>Reliability</title> <title>Reliability</title>
<para> <para>
Reliability is a major feature of any serious database system, and Reliability is an important property of any serious database
<productname>PostgreSQL</> does everything possible to guarantee system, and <productname>PostgreSQL</> does everything possible to
reliable operation. One aspect of reliable operation is that all data guarantee reliable operation. One aspect of reliable operation is
recorded by a committed transaction should be stored in a non-volatile area that all data recorded by a committed transaction should be stored
that is safe from power loss, operating system failure, and hardware in a nonvolatile area that is safe from power loss, operating
failure (except failure of the non-volatile area itself, of course). system failure, and hardware failure (except failure of the
Successfully writing the data to the computer's permanent storage nonvolatile area itself, of course). Successfully writing the data
(disk drive or equivalent) ordinarily meets this requirement. to the computer's permanent storage (disk drive or equivalent)
In fact, even if a computer is fatally damaged, if ordinarily meets this requirement. In fact, even if a computer is
the disk drives survive they can be moved to another computer with fatally damaged, if the disk drives survive they can be moved to
similar hardware and all committed transactions will remain intact. another computer with similar hardware and all committed
transactions will remain intact.
</para> </para>
<para> <para>
@ -76,17 +85,13 @@
permanent storage <emphasis>before</> modifying the actual page on permanent storage <emphasis>before</> modifying the actual page on
disk. By doing this, during crash recovery <productname>PostgreSQL</> can disk. By doing this, during crash recovery <productname>PostgreSQL</> can
restore partially-written pages. If you have a battery-backed disk restore partially-written pages. If you have a battery-backed disk
controller or filesystem software (e.g., Reiser4) that prevents partial controller or file-system software (e.g., Reiser4) that prevents partial
page writes, you can turn off this page imaging by using the page writes, you can turn off this page imaging by using the
<xref linkend="guc-full-page-writes"> parameter. <xref linkend="guc-full-page-writes"> parameter.
</para> </para>
</sect1>
<para> <sect1 id="wal-intro">
The following sections explain how the Write-Ahead Log is used to
obtain efficient, reliable operation.
</para>
<sect1 id="wal">
<title>Write-Ahead Logging (<acronym>WAL</acronym>)</title> <title>Write-Ahead Logging (<acronym>WAL</acronym>)</title>
<indexterm zone="wal"> <indexterm zone="wal">

View File

@ -1,5 +1,5 @@
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/xoper.sgml,v 1.33 2005/01/23 00:30:18 momjian Exp $ $PostgreSQL: pgsql/doc/src/sgml/xoper.sgml,v 1.34 2005/11/04 23:14:02 petere Exp $
--> -->
<sect1 id="xoper"> <sect1 id="xoper">