Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
39dfbe57
Commit
39dfbe57
authored
Nov 04, 2005
by
Peter Eisentraut
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Spellchecking run, final cleanups
parent
1630571a
Changes
34
Show whitespace changes
Inline
Side-by-side
Showing
34 changed files
with
248 additions
and
261 deletions
+248
-261
doc/src/sgml/array.sgml
doc/src/sgml/array.sgml
+2
-2
doc/src/sgml/backup.sgml
doc/src/sgml/backup.sgml
+3
-3
doc/src/sgml/catalogs.sgml
doc/src/sgml/catalogs.sgml
+2
-2
doc/src/sgml/charset.sgml
doc/src/sgml/charset.sgml
+2
-2
doc/src/sgml/client-auth.sgml
doc/src/sgml/client-auth.sgml
+2
-2
doc/src/sgml/config.sgml
doc/src/sgml/config.sgml
+15
-15
doc/src/sgml/cvs.sgml
doc/src/sgml/cvs.sgml
+63
-82
doc/src/sgml/ddl.sgml
doc/src/sgml/ddl.sgml
+15
-15
doc/src/sgml/ecpg.sgml
doc/src/sgml/ecpg.sgml
+3
-3
doc/src/sgml/func.sgml
doc/src/sgml/func.sgml
+17
-17
doc/src/sgml/gist.sgml
doc/src/sgml/gist.sgml
+4
-4
doc/src/sgml/indexam.sgml
doc/src/sgml/indexam.sgml
+10
-10
doc/src/sgml/indices.sgml
doc/src/sgml/indices.sgml
+3
-3
doc/src/sgml/libpq.sgml
doc/src/sgml/libpq.sgml
+3
-3
doc/src/sgml/maintenance.sgml
doc/src/sgml/maintenance.sgml
+6
-6
doc/src/sgml/nls.sgml
doc/src/sgml/nls.sgml
+2
-2
doc/src/sgml/perform.sgml
doc/src/sgml/perform.sgml
+2
-2
doc/src/sgml/planstats.sgml
doc/src/sgml/planstats.sgml
+2
-2
doc/src/sgml/plperl.sgml
doc/src/sgml/plperl.sgml
+5
-5
doc/src/sgml/plpgsql.sgml
doc/src/sgml/plpgsql.sgml
+2
-2
doc/src/sgml/ref/create_aggregate.sgml
doc/src/sgml/ref/create_aggregate.sgml
+5
-5
doc/src/sgml/ref/create_domain.sgml
doc/src/sgml/ref/create_domain.sgml
+2
-2
doc/src/sgml/ref/pg_ctl-ref.sgml
doc/src/sgml/ref/pg_ctl-ref.sgml
+2
-2
doc/src/sgml/ref/pg_resetxlog.sgml
doc/src/sgml/ref/pg_resetxlog.sgml
+6
-6
doc/src/sgml/ref/psql-ref.sgml
doc/src/sgml/ref/psql-ref.sgml
+2
-2
doc/src/sgml/release.sgml
doc/src/sgml/release.sgml
+19
-18
doc/src/sgml/rowtypes.sgml
doc/src/sgml/rowtypes.sgml
+2
-2
doc/src/sgml/runtime.sgml
doc/src/sgml/runtime.sgml
+7
-7
doc/src/sgml/storage.sgml
doc/src/sgml/storage.sgml
+4
-4
doc/src/sgml/syntax.sgml
doc/src/sgml/syntax.sgml
+3
-3
doc/src/sgml/trigger.sgml
doc/src/sgml/trigger.sgml
+2
-2
doc/src/sgml/typeconv.sgml
doc/src/sgml/typeconv.sgml
+2
-2
doc/src/sgml/wal.sgml
doc/src/sgml/wal.sgml
+26
-21
doc/src/sgml/xoper.sgml
doc/src/sgml/xoper.sgml
+3
-3
No files found.
doc/src/sgml/array.sgml
View file @
39dfbe57
<!-- $PostgreSQL: pgsql/doc/src/sgml/array.sgml,v 1.4
5 2005/11/04 02:56:30 tgl
Exp $ -->
<!-- $PostgreSQL: pgsql/doc/src/sgml/array.sgml,v 1.4
6 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 (
...
@@ -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>
...
...
doc/src/sgml/backup.sgml
View file @
39dfbe57
<!--
<!--
$PostgreSQL: pgsql/doc/src/sgml/backup.sgml,v 2.7
4 2005/10/26 20:42:35 tgl
Exp $
$PostgreSQL: pgsql/doc/src/sgml/backup.sgml,v 2.7
5 2005/11/04 23:13:59 petere
Exp $
-->
-->
<chapter id="backup">
<chapter id="backup">
<title>Backup and Restore</title>
<title>Backup and Restore</title>
...
@@ -598,7 +598,7 @@ archive_command = 'test ! -f .../%f && cp %p .../%f'
...
@@ -598,7 +598,7 @@ archive_command = 'test ! -f .../%f && cp %p .../%f'
</para>
</para>
<para>
<para>
In writing your archive command, you should assume that the filenames to
In writing your archive command, you should assume that the file
names to
be archived may be up to 64 characters long and may contain any
be archived may be up to 64 characters long and may contain any
combination of ASCII letters, digits, and dots. It is not necessary to
combination of ASCII letters, digits, and dots. It is not necessary to
remember the original full path (<literal>%p</>) but it is necessary to
remember the original full path (<literal>%p</>) but it is necessary to
...
@@ -1173,7 +1173,7 @@ restore_command = 'copy /mnt/server/archivedir/%f "%p"' # Windows
...
@@ -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
...
...
doc/src/sgml/catalogs.sgml
View file @
39dfbe57
<!--
<!--
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.11
4 2005/09/13 01:51:18 alvher
re Exp $
$PostgreSQL: pgsql/doc/src/sgml/catalogs.sgml,v 2.11
5 2005/11/04 23:13:59 pete
re Exp $
-->
-->
<chapter id="catalogs">
<chapter id="catalogs">
...
@@ -5416,7 +5416,7 @@
...
@@ -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>
...
...
doc/src/sgml/charset.sgml
View file @
39dfbe57
<!-- $PostgreSQL: pgsql/doc/src/sgml/charset.sgml,v 2.7
4 2005/10/13 21:43:43 tgl
Exp $ -->
<!-- $PostgreSQL: pgsql/doc/src/sgml/charset.sgml,v 2.7
5 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
...
@@ -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>
...
...
doc/src/sgml/client-auth.sgml
View file @
39dfbe57
<!--
<!--
$PostgreSQL: pgsql/doc/src/sgml/client-auth.sgml,v 1.8
5 2005/10/24 15:49:54 momjian
Exp $
$PostgreSQL: pgsql/doc/src/sgml/client-auth.sgml,v 1.8
6 2005/11/04 23:13:59 petere
Exp $
-->
-->
<chapter id="client-authentication">
<chapter id="client-authentication">
...
@@ -901,7 +901,7 @@ omicron bryanh guest1
...
@@ -901,7 +901,7 @@ omicron bryanh guest1
default PAM service name is <literal>postgresql</literal>. You can
default PAM service name is <literal>postgresql</literal>. You can
optionally supply your own service name after the <literal>pam</>
optionally supply your own service name after the <literal>pam</>
key word in the file <filename>pg_hba.conf</filename>.
key word in the file <filename>pg_hba.conf</filename>.
PAM is used only to validate username/password pairs.
PAM is used only to validate user
name/password pairs.
Therefore the user must already exist in the database before PAM
Therefore the user must already exist in the database before PAM
can be used for authentication. For more information about
can be used for authentication. For more information about
PAM, please read the <ulink url="http://www.kernel.org/pub/linux/libs/pam/">
PAM, please read the <ulink url="http://www.kernel.org/pub/linux/libs/pam/">
...
...
doc/src/sgml/config.sgml
View file @
39dfbe57
<!--
<!--
$PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.3
4 2005/11/01 23:19:05 neilc
Exp $
$PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.3
5 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
...
@@ -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:
b
oolean, integer, floating point,
value of one of four types:
B
oolean, 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;
...
@@ -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;
...
@@ -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;
...
@@ -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>
...
@@ -590,13 +590,13 @@ SET ENABLE_SEQSCAN TO OFF;
...
@@ -590,13 +590,13 @@ SET ENABLE_SEQSCAN TO OFF;
</indexterm>
</indexterm>
<listitem>
<listitem>
<para>
<para>
Sets the hostname part of the service principal.
Sets the host
name part of the service principal.
This, combined with <varname>krb_srvname</>, is used to generate
This, combined with <varname>krb_srvname</>, is used to generate
the complete service principal, that is
the complete service principal, that is
<varname>krb_srvname</><literal>/</><varname>krb_server_hostname</><literal>@</>REALM.
<varname>krb_srvname</><literal>/</><varname>krb_server_hostname</><literal>@</>REALM.
</para>
</para>
<para>
<para>
If not set, the default is the server hostname. See <xref linkend="kerberos-auth">
If not set, the default is the server host
name. See <xref linkend="kerberos-auth">
for details. This parameter can only be set at server start.
for details. This parameter can only be set at server start.
</para>
</para>
</listitem>
</listitem>
...
@@ -609,7 +609,7 @@ SET ENABLE_SEQSCAN TO OFF;
...
@@ -609,7 +609,7 @@ SET ENABLE_SEQSCAN TO OFF;
</indexterm>
</indexterm>
<listitem>
<listitem>
<para>
<para>
Sets whether Kerberos usernames should be treated case-insensitively.
Sets whether Kerberos user
names should be treated case-insensitively.
The default is <literal>off</> (case sensitive). This parameter
The default is <literal>off</> (case sensitive). This parameter
can only be set at server start.
can only be set at server start.
</para>
</para>
...
@@ -2258,8 +2258,8 @@ SELECT * FROM parent WHERE key = 2400;
...
@@ -2258,8 +2258,8 @@ SELECT * FROM parent WHERE key = 2400;
<varname>log_rotation_age</varname> to <literal>60</literal>, and
<varname>log_rotation_age</varname> to <literal>60</literal>, and
<varname>log_rotation_size</varname> to <literal>1000000</literal>.
<varname>log_rotation_size</varname> to <literal>1000000</literal>.
Including <literal>%M</> in <varname>log_filename</varname> allows
Including <literal>%M</> in <varname>log_filename</varname> allows
any size-driven rotations that may occur to select a filename
any size-driven rotations that may occur to select a file
name
different from the hour's initial filename.
different from the hour's initial file
name.
</para>
</para>
</listitem>
</listitem>
</varlistentry>
</varlistentry>
...
@@ -2663,7 +2663,7 @@ SELECT * FROM parent WHERE key = 2400;
...
@@ -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
Host
name 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;
...
@@ -2794,7 +2794,7 @@ SELECT * FROM parent WHERE key = 2400;
</sect1>
</sect1>
<sect1 id="runtime-config-statistics">
<sect1 id="runtime-config-statistics">
<title>Run
t
ime Statistics</title>
<title>Run
-T
ime Statistics</title>
<sect2 id="runtime-config-statistics-monitor">
<sect2 id="runtime-config-statistics-monitor">
<title>Statistics Monitoring</title>
<title>Statistics Monitoring</title>
...
...
doc/src/sgml/cvs.sgml
View file @
39dfbe57
<!--
<!--
$PostgreSQL: pgsql/doc/src/sgml/cvs.sgml,v 1.3
5 2005/10/15 20:15:48 neilc
Exp $
$PostgreSQL: pgsql/doc/src/sgml/cvs.sgml,v 1.3
6 2005/11/04 23:13:59 petere
Exp $
-->
-->
<appendix id="cvs">
<appendix id="cvs">
...
@@ -64,9 +64,9 @@ $PostgreSQL: pgsql/doc/src/sgml/cvs.sgml,v 1.35 2005/10/15 20:15:48 neilc Exp $
...
@@ -64,9 +64,9 @@ $PostgreSQL: pgsql/doc/src/sgml/cvs.sgml,v 1.35 2005/10/15 20:15:48 neilc Exp $
<para>
<para>
Do an initial login to the <productname>CVS</productname> server:
Do an initial login to the <productname>CVS</productname> server:
<programlisting>
<programlisting>
cvs -d :pserver:anoncvs@anoncvs.postgresql.org:/projects/cvsroot login
cvs -d :pserver:anoncvs@anoncvs.postgresql.org:/projects/cvsroot login
</programlisting>
</programlisting>
You will be prompted for a password; you can enter anything except
You will be prompted for a password; you can enter anything except
an empty string.
an empty string.
...
@@ -81,9 +81,9 @@ cvs -d :pserver:anoncvs@anoncvs.postgresql.org:/projects/cvsroot login
...
@@ -81,9 +81,9 @@ cvs -d :pserver:anoncvs@anoncvs.postgresql.org:/projects/cvsroot login
<step>
<step>
<para>
<para>
Fetch the <productname>PostgreSQL</productname> sources:
Fetch the <productname>PostgreSQL</productname> sources:
<programlisting>
<programlisting>
cvs -z3 -d :pserver:anoncvs@anoncvs.postgresql.org:/projects/cvsroot co -P pgsql
cvs -z3 -d :pserver:anoncvs@anoncvs.postgresql.org:/projects/cvsroot co -P pgsql
</programlisting>
</programlisting>
This installs the <productname>PostgreSQL</productname> sources into a
This installs the <productname>PostgreSQL</productname> sources into a
subdirectory <filename>pgsql</filename>
subdirectory <filename>pgsql</filename>
...
@@ -113,9 +113,9 @@ cvs -z3 -d :pserver:anoncvs@anoncvs.postgresql.org:/projects/cvsroot co -P pgsql
...
@@ -113,9 +113,9 @@ cvs -z3 -d :pserver:anoncvs@anoncvs.postgresql.org:/projects/cvsroot co -P pgsql
Whenever you want to update to the latest <productname>CVS</productname> sources,
Whenever you want to update to the latest <productname>CVS</productname> sources,
<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.
You can update in just a couple of minutes, typically, even over
You can update in just a couple of minutes, typically, even over
...
@@ -128,17 +128,17 @@ $ cvs -z3 update -d -P
...
@@ -128,17 +128,17 @@ $ cvs -z3 update -d -P
You can save yourself some typing by making a file <filename>.cvsrc</filename>
You can save yourself some typing by making a file <filename>.cvsrc</filename>
in your home directory that contains
in your home directory that contains
<programlisting>
<programlisting>
cvs -z3
cvs -z3
update -d -P
update -d -P
</programlisting>
</programlisting>
This supplies the <option>-z3</option> option to all cvs commands, and the
This supplies the <option>-z3</option> option to all cvs commands, and the
<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.
</para>
</para>
...
@@ -150,9 +150,9 @@ $ cvs update
...
@@ -150,9 +150,9 @@ $ cvs update
Some older versions of <productname>CVS</productname> have a bug that
Some older versions of <productname>CVS</productname> have a bug that
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
<productname>CVS</productname> version 1.9.28.
<productname>CVS</productname> version 1.9.28.
...
@@ -191,9 +191,9 @@ $ chmod -R go-w pgsql
...
@@ -191,9 +191,9 @@ $ chmod -R go-w pgsql
sources that make up release 6_4 of the module `tc' at any time in the
sources that make up release 6_4 of the module `tc' at any time in the
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
that release, but you cannot find the bug in the current working copy.
that release, but you cannot find the bug in the current working copy.
...
@@ -236,10 +236,10 @@ $ cvs checkout -r REL6_4 tc
...
@@ -236,10 +236,10 @@ $ cvs checkout -r REL6_4 tc
So, to create the 6.4 release
So, to create the 6.4 release
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.
</para>
</para>
...
@@ -250,12 +250,12 @@ $ cvs tag -b REL6_4
...
@@ -250,12 +250,12 @@ $ cvs tag -b REL6_4
First, create two subdirectories, RELEASE and CURRENT, so that you don't
First, create two subdirectories, RELEASE and CURRENT, so that you don't
mix up the two. Then do:
mix up the two. Then do:
<programlisting>
<programlisting>
cd RELEASE
cd RELEASE
cvs checkout -P -r REL6_4 pgsql
cvs checkout -P -r REL6_4 pgsql
cd ../CURRENT
cd ../CURRENT
cvs checkout -P pgsql
cvs checkout -P pgsql
</programlisting>
</programlisting>
which results in two directory trees, <filename>RELEASE/pgsql</filename> and
which results in two directory trees, <filename>RELEASE/pgsql</filename> and
<filename>CURRENT/pgsql</filename>. From that point on,
<filename>CURRENT/pgsql</filename>. From that point on,
...
@@ -273,16 +273,16 @@ cvs checkout -P pgsql
...
@@ -273,16 +273,16 @@ cvs checkout -P pgsql
<para>
<para>
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
branch. If you apply a patch to that directory structure and do a
branch. If you apply a patch to that directory structure and do a
<programlisting>
<programlisting>
cvs commit
cvs commit
</programlisting>
</programlisting>
while inside of it, the patch is applied to the branch and
while inside of it, the patch is applied to the branch and
<emphasis>only</emphasis> the branch.
<emphasis>only</emphasis> the branch.
...
@@ -333,9 +333,9 @@ cvs commit
...
@@ -333,9 +333,9 @@ cvs commit
<filename>/opt/postgres/cvs/</filename>. If you intend to keep your
<filename>/opt/postgres/cvs/</filename>. If you intend to keep your
repository in <filename>/home/cvs/</filename>, then put
repository in <filename>/home/cvs/</filename>, then put
<programlisting>
<programlisting>
setenv CVSROOT /home/cvs
setenv CVSROOT /home/cvs
</programlisting>
</programlisting>
in your <filename>.cshrc</filename> file, or a similar line in
in your <filename>.cshrc</filename> file, or a similar line in
your <filename>.bashrc</filename> or
your <filename>.bashrc</filename> or
...
@@ -347,18 +347,18 @@ setenv CVSROOT /home/cvs
...
@@ -347,18 +347,18 @@ setenv CVSROOT /home/cvs
Once <envar>CVSROOT</envar> is set, then this can be done with a
Once <envar>CVSROOT</envar> is set, then this can be done with a
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
<filename>CVSROOT</filename> when listing the
<filename>CVSROOT</filename> when listing the
<envar>CVSROOT</envar> directory:
<envar>CVSROOT</envar> directory:
<programlisting>
<programlisting>
$ ls $CVSROOT
$ ls $CVSROOT
CVSROOT/
CVSROOT/
</programlisting>
</programlisting>
</para>
</para>
</sect2>
</sect2>
...
@@ -370,16 +370,16 @@ CVSROOT/
...
@@ -370,16 +370,16 @@ CVSROOT/
<application>cvsup</application> is in your path; on most systems
<application>cvsup</application> is in your path; on most systems
you can do this by typing
you can do this by typing
<programlisting>
<programlisting>
which cvsup
which cvsup
</programlisting>
</programlisting>
Then, simply run
Then, simply run
<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
can monitor the progress of the update,
can monitor the progress of the update,
...
@@ -393,7 +393,7 @@ $ cvsup -L 2 <replaceable class="parameter">postgres.cvsup</replaceable>
...
@@ -393,7 +393,7 @@ $ cvsup -L 2 <replaceable class="parameter">postgres.cvsup</replaceable>
modified for a specific installation, and which maintains a full
modified for a specific installation, and which maintains a full
local <productname>CVS</productname> repository:
local <productname>CVS</productname> repository:
<programlisting>
<programlisting>
# This file represents the standard CVSup distribution file
# This file represents the standard CVSup distribution file
# for the <productname>PostgreSQL</> ORDBMS project
# for the <productname>PostgreSQL</> ORDBMS project
# Modified by lockhart@fourpalms.org 1997-08-28
# Modified by lockhart@fourpalms.org 1997-08-28
...
@@ -426,8 +426,7 @@ pgsql
...
@@ -426,8 +426,7 @@ pgsql
# pgsql-doc
# pgsql-doc
# pgsql-perl5
# pgsql-perl5
# pgsql-src
# pgsql-src
</programlisting>
</programlisting>
</para>
</para>
<para>
<para>
...
@@ -454,7 +453,7 @@ CVSROOT/loginfo*
...
@@ -454,7 +453,7 @@ CVSROOT/loginfo*
ftp site</ulink>
ftp site</ulink>
which will fetch the current snapshot only:
which will fetch the current snapshot only:
<programlisting>
<programlisting>
# This file represents the standard CVSup distribution file
# This file represents the standard CVSup distribution file
# for the <productname>PostgreSQL</> ORDBMS project
# for the <productname>PostgreSQL</> ORDBMS project
#
#
...
@@ -478,8 +477,7 @@ pgsql
...
@@ -478,8 +477,7 @@ pgsql
# pgsql-doc
# pgsql-doc
# pgsql-perl5
# pgsql-perl5
# pgsql-src
# pgsql-src
</programlisting>
</programlisting>
</para>
</para>
</sect2>
</sect2>
...
@@ -563,11 +561,11 @@ pgsql
...
@@ -563,11 +561,11 @@ pgsql
If the binary is in the top level of the tar file, then simply
If the binary is in the top level of the tar file, then simply
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>
...
@@ -585,13 +583,13 @@ $ mv cvsup.1 ../doc/man/man1/
...
@@ -585,13 +583,13 @@ $ mv cvsup.1 ../doc/man/man1/
<para>
<para>
Ensure that the new binaries are in your path.
Ensure that the new binaries are in your path.
<programlisting>
<programlisting>
$ rehash
$ rehash
$ which cvsup
$ which cvsup
$ set path=(<replaceable>path to cvsup</replaceable> $path)
$ set path=(<replaceable>path to cvsup</replaceable> $path)
$ which cvsup
$ which cvsup
/usr/local/bin/cvsup
/usr/local/bin/cvsup
</programlisting>
</programlisting>
</para>
</para>
</step>
</step>
</procedure>
</procedure>
...
@@ -651,9 +649,9 @@ $ which cvsup
...
@@ -651,9 +649,9 @@ $ which cvsup
<para>
<para>
Install the Modula-3 rpms:
Install the Modula-3 rpms:
<programlisting>
<programlisting>
# rpm -Uvh pm3*.rpm
# rpm -Uvh pm3*.rpm
</programlisting>
</programlisting>
</para>
</para>
</step>
</step>
</substeps>
</substeps>
...
@@ -663,10 +661,10 @@ $ which cvsup
...
@@ -663,10 +661,10 @@ $ which cvsup
<para>
<para>
Unpack the cvsup distribution:
Unpack the cvsup distribution:
<programlisting>
<programlisting>
# cd /usr/local/src
# cd /usr/local/src
# tar zxf cvsup-16.0.tar.gz
# tar zxf cvsup-16.0.tar.gz
</programlisting>
</programlisting>
</para>
</para>
</step>
</step>
...
@@ -675,16 +673,16 @@ $ which cvsup
...
@@ -675,16 +673,16 @@ $ which cvsup
Build the cvsup distribution, suppressing the GUI interface
Build the cvsup distribution, suppressing the GUI interface
feature to avoid requiring X11 libraries:
feature to avoid requiring X11 libraries:
<programlisting>
<programlisting>
# make M3FLAGS="-DNOGUI"
# make M3FLAGS="-DNOGUI"
</programlisting>
</programlisting>
and if you want to build a static binary to move to systems
and if you want to build a static binary to move to systems
that may not have Modula-3 installed, try:
that may not have Modula-3 installed, try:
<programlisting>
<programlisting>
# make M3FLAGS="-DNOGUI -DSTATIC"
# make M3FLAGS="-DNOGUI -DSTATIC"
</programlisting>
</programlisting>
</para>
</para>
</step>
</step>
...
@@ -692,29 +690,12 @@ $ which cvsup
...
@@ -692,29 +690,12 @@ $ which cvsup
<para>
<para>
Install the built binary:
Install the built binary:
<programlisting>
<programlisting>
# make M3FLAGS="-DNOGUI -DSTATIC" install
# make M3FLAGS="-DNOGUI -DSTATIC" install
</programlisting>
</programlisting>
</para>
</para>
</step>
</step>
</procedure>
</procedure>
</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:
-->
doc/src/sgml/ddl.sgml
View file @
39dfbe57
<
!-- $PostgreSQL: pgsql/doc/src/sgml/ddl.sgml,v 1.4
8 2005/11/04 02:56:30 tgl
Exp $ -->
<
!-- $PostgreSQL: pgsql/doc/src/sgml/ddl.sgml,v 1.4
9 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 (
...
@@ -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
...
@@ -1157,7 +1157,7 @@ SELECT name, altitude
</
note
>
</
note
>
<
para
>
<
para
>
Inheritance
does
not
automatically
prop
o
gate
data
from
Inheritance
does
not
automatically
prop
a
gate
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
:
...
@@ -1221,12 +1221,12 @@ WHERE c.altitude > 500 and c.tableoid = p.oid;
...
@@ -1221,12 +1221,12 @@ WHERE c.altitude > 500 and c.tableoid = p.oid;
<
para
>
<
para
>
As
shown
above
,
a
child
table
may
locally
define
columns
as
well
as
As
shown
above
,
a
child
table
may
locally
define
columns
as
well
as
inheriting
them
from
their
parents
.
However
,
a
locally
defined
inheriting
them
from
their
parents
.
However
,
a
locally
defined
column
cannot
override
the
datatype
of
an
inherited
column
of
the
column
cannot
override
the
data
type
of
an
inherited
column
of
the
same
name
.
A
table
can
inherit
from
a
table
that
has
itself
same
name
.
A
table
can
inherit
from
a
table
that
has
itself
inherited
from
other
tables
.
A
table
can
also
inherit
from
more
inherited
from
other
tables
.
A
table
can
also
inherit
from
more
than
one
parent
table
,
in
which
case
it
inherits
the
union
of
the
than
one
parent
table
,
in
which
case
it
inherits
the
union
of
the
columns
defined
by
the
parent
tables
.
Inherited
columns
with
columns
defined
by
the
parent
tables
.
Inherited
columns
with
duplicate
names
and
datatypes
will
be
merged
so
that
only
a
single
duplicate
names
and
data
types
will
be
merged
so
that
only
a
single
column
is
stored
.
column
is
stored
.
</
para
>
</
para
>
...
@@ -1498,7 +1498,7 @@ CHECK ( county IN ( 'Oxfordshire','Buckinghamshire','Warwickshire' ))
...
@@ -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
b
oolean operators
These can be linked together with the
B
oolean 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
...
@@ -1722,10 +1722,10 @@ DO INSTEAD
...
@@ -1722,10 +1722,10 @@ DO INSTEAD
<listitem>
<listitem>
<para>
<para>
For some datatypes you must explicitly coerce the constant
For some data
types you must explicitly coerce the constant
values into the datatype of the column. The following constraint
values into the data
type of the column. The following constraint
will work if <varname>x</varname> is an <type>integer</type>
will work if <varname>x</varname> is an <type>integer</type>
datatype, but not if <varname>x</varname> is a
data
type, but not if <varname>x</varname> is a
<type>bigint</type>:
<type>bigint</type>:
<programlisting>
<programlisting>
CHECK ( x = 1 )
CHECK ( x = 1 )
...
@@ -1734,9 +1734,9 @@ CHECK ( x = 1 )
...
@@ -1734,9 +1734,9 @@ CHECK ( x = 1 )
<programlisting>
<programlisting>
CHECK ( x = 1::bigint )
CHECK ( x = 1::bigint )
</programlisting>
</programlisting>
The problem is not limited to the <type>bigint</type> datatype
The problem is not limited to the <type>bigint</type> data
type
— it can occur whenever the default datatype of the
— it can occur whenever the default data
type of the
constant does not match the datatype of the column to which it
constant does not match the data
type of the column to which it
is being compared.
is being compared.
</para>
</para>
</listitem>
</listitem>
...
@@ -1849,7 +1849,7 @@ ANALYZE measurement;
...
@@ -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
parameteri
s
ed
query
will
not
a
constant
.
A
constant
bound
to
a
parameteri
z
ed
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;
...
@@ -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
>
...
...
doc/src/sgml/ecpg.sgml
View file @
39dfbe57
<!--
<!--
$PostgreSQL: pgsql/doc/src/sgml/ecpg.sgml,v 1.7
0 2005/11/04 02:56:30 tgl
Exp $
$PostgreSQL: pgsql/doc/src/sgml/ecpg.sgml,v 1.7
1 2005/11/04 23:13:59 petere
Exp $
-->
-->
<chapter id="ecpg">
<chapter id="ecpg">
...
@@ -1609,11 +1609,11 @@ ECPG = ecpg
...
@@ -1609,11 +1609,11 @@ ECPG = ecpg
</para>
</para>
<note>
<note>
<para>
<para>
On Win
32
, if the <application>ecpg</> libraries and an application are
On Win
dows
, 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>
...
...
doc/src/sgml/func.sgml
View file @
39dfbe57
<!--
<!--
$PostgreSQL: pgsql/doc/src/sgml/func.sgml,v 1.29
0 2005/11/04 02:56:30 tgl
Exp $
$PostgreSQL: pgsql/doc/src/sgml/func.sgml,v 1.29
1 2005/11/04 23:13:59 petere
Exp $
PostgreSQL documentation
PostgreSQL documentation
-->
-->
...
@@ -3430,7 +3430,7 @@ regexp_replace('foobarbaz', 'b(..)', 'X\\1Y', 'g')
...
@@ -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')
...
@@ -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')
...
@@ -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')
...
@@ -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>
...
@@ -5954,7 +5954,7 @@ SELECT date_trunc('year', TIMESTAMP '2001-02-16 20:38:40');
...
@@ -5954,7 +5954,7 @@ SELECT date_trunc('year', TIMESTAMP '2001-02-16 20:38:40');
<literal><type>timestamp without time zone</type> AT TIME ZONE <replaceable>zone</></literal>
<literal><type>timestamp without time zone</type> AT TIME ZONE <replaceable>zone</></literal>
</entry>
</entry>
<entry><type>timestamp with time zone</type></entry>
<entry><type>timestamp with time zone</type></entry>
<entry>Treat given timestamp <emphasis>without time zone</> as located in the specified time zone</entry>
<entry>Treat given time
stamp <emphasis>without time zone</> as located in the specified time zone</entry>
</row>
</row>
<row>
<row>
...
@@ -5962,7 +5962,7 @@ SELECT date_trunc('year', TIMESTAMP '2001-02-16 20:38:40');
...
@@ -5962,7 +5962,7 @@ SELECT date_trunc('year', TIMESTAMP '2001-02-16 20:38:40');
<literal><type>timestamp with time zone</type> AT TIME ZONE <replaceable>zone</></literal>
<literal><type>timestamp with time zone</type> AT TIME ZONE <replaceable>zone</></literal>
</entry>
</entry>
<entry><type>timestamp without time zone</type></entry>
<entry><type>timestamp without time zone</type></entry>
<entry>Convert given timestamp <emphasis>with time zone</> to the new time zone</entry>
<entry>Convert given time
stamp <emphasis>with time zone</> to the new time zone</entry>
</row>
</row>
<row>
<row>
...
@@ -6568,7 +6568,7 @@ SELECT TIMESTAMP 'now'; -- incorrect for use with DEFAULT
...
@@ -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 l
seg
</entry>
<entry>center of l
ine 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>
...
@@ -6929,7 +6929,7 @@ SELECT TIMESTAMP 'now'; -- incorrect for use with DEFAULT
...
@@ -6929,7 +6929,7 @@ SELECT TIMESTAMP 'now'; -- incorrect for use with DEFAULT
The sequence to be operated on by a sequence-function call is specified by
The sequence to be operated on by a sequence-function call is specified by
a <type>regclass</> argument, which is just the OID of the sequence in the
a <type>regclass</> argument, which is just the OID of the sequence in the
<structname>pg_class</> system catalog. You do not have to look up the
<structname>pg_class</> system catalog. You do not have to look up the
OID by hand, however, since the <type>regclass</> datatype's input
OID by hand, however, since the <type>regclass</> data
type's input
converter will do the work for you. Just write the sequence name enclosed
converter will do the work for you. Just write the sequence name enclosed
in single quotes, so that it looks like a literal constant. To
in single quotes, so that it looks like a literal constant. To
achieve some compatibility with the handling of ordinary
achieve some compatibility with the handling of ordinary
...
@@ -6955,7 +6955,7 @@ nextval('foo') <lineannotation>searches search path for <literal>fo
...
@@ -6955,7 +6955,7 @@ nextval('foo') <lineannotation>searches search path for <literal>fo
Before <productname>PostgreSQL</productname> 8.1, the arguments of the
Before <productname>PostgreSQL</productname> 8.1, the arguments of the
sequence functions were of type <type>text</>, not <type>regclass</>, and
sequence functions were of type <type>text</>, not <type>regclass</>, and
the above-described conversion from a text string to an OID value would
the above-described conversion from a text string to an OID value would
happen at runtime during each call. For backwards compatibility, this
happen at run
time during each call. For backwards compatibility, this
facility still exists, but internally it is now handled as an implicit
facility still exists, but internally it is now handled as an implicit
coercion from <type>text</> to <type>regclass</> before the function is
coercion from <type>text</> to <type>regclass</> before the function is
invoked.
invoked.
...
@@ -6969,7 +6969,7 @@ nextval('foo') <lineannotation>searches search path for <literal>fo
...
@@ -6969,7 +6969,7 @@ nextval('foo') <lineannotation>searches search path for <literal>fo
etc. This <quote>early binding</> behavior is usually desirable for
etc. This <quote>early binding</> behavior is usually desirable for
sequence references in column defaults and views. But sometimes you will
sequence references in column defaults and views. But sometimes you will
want <quote>late binding</> where the sequence reference is resolved
want <quote>late binding</> where the sequence reference is resolved
at runtime. To get late-binding behavior, force the constant to be
at run
time. To get late-binding behavior, force the constant to be
stored as a <type>text</> constant instead of <type>regclass</>:
stored as a <type>text</> constant instead of <type>regclass</>:
<programlisting>
<programlisting>
nextval('foo'::text) <lineannotation><literal>foo</literal> is looked up at runtime</>
nextval('foo'::text) <lineannotation><literal>foo</literal> is looked up at runtime</>
...
@@ -9444,7 +9444,7 @@ SELECT set_config('log_statement_stats', 'off', false);
...
@@ -9444,7 +9444,7 @@ SELECT set_config('log_statement_stats', 'off', false);
<literal><function>pg_rotate_logfile</function>()</literal>
<literal><function>pg_rotate_logfile</function>()</literal>
</entry>
</entry>
<entry><type>boolean</type></entry>
<entry><type>boolean</type></entry>
<entry>Rotate server's logfile</entry>
<entry>Rotate server's log
file</entry>
</row>
</row>
</tbody>
</tbody>
</tgroup>
</tgroup>
...
@@ -9472,10 +9472,10 @@ SELECT set_config('log_statement_stats', 'off', false);
...
@@ -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">
...
@@ -9757,9 +9757,9 @@ SELECT set_config('log_statement_stats', 'off', false);
...
@@ -9757,9 +9757,9 @@ SELECT set_config('log_statement_stats', 'off', false);
</indexterm>
</indexterm>
<para>
<para>
<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 timestamp (Unix platforms only),
last file status change time
stamp (Unix platforms only),
file creation timestamp (Win
32 only), and a boolean
indicating
file creation timestamp (Win
dows 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');
...
...
doc/src/sgml/gist.sgml
View file @
39dfbe57
<!--
<!--
$PostgreSQL: pgsql/doc/src/sgml/gist.sgml,v 1.2
3 2005/10/21 13:59:05 tgl
Exp $
$PostgreSQL: pgsql/doc/src/sgml/gist.sgml,v 1.2
4 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 $
...
@@ -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 implement
o
r to only implement the semantics of
requiring the access method implement
e
r 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>
...
@@ -187,7 +187,7 @@ $PostgreSQL: pgsql/doc/src/sgml/gist.sgml,v 1.23 2005/10/21 13:59:05 tgl Exp $
...
@@ -187,7 +187,7 @@ $PostgreSQL: pgsql/doc/src/sgml/gist.sgml,v 1.23 2005/10/21 13:59:05 tgl Exp $
The <productname>PostgreSQL</productname> source distribution includes
The <productname>PostgreSQL</productname> source distribution includes
several examples of index methods implemented using
several examples of index methods implemented using
<acronym>GiST</acronym>. The core system currently provides R-Tree
<acronym>GiST</acronym>. The core system currently provides R-Tree
equivalent functionality for some of the built-in geometric datatypes
equivalent functionality for some of the built-in geometric data
types
(see <filename>src/backend/access/gist/gistproc.c</>). The following
(see <filename>src/backend/access/gist/gistproc.c</>). The following
<filename>contrib</> modules also contain <acronym>GiST</acronym>
<filename>contrib</> modules also contain <acronym>GiST</acronym>
operator classes:
operator classes:
...
@@ -197,7 +197,7 @@ $PostgreSQL: pgsql/doc/src/sgml/gist.sgml,v 1.23 2005/10/21 13:59:05 tgl Exp $
...
@@ -197,7 +197,7 @@ $PostgreSQL: pgsql/doc/src/sgml/gist.sgml,v 1.23 2005/10/21 13:59:05 tgl Exp $
<varlistentry>
<varlistentry>
<term>btree_gist</term>
<term>btree_gist</term>
<listitem>
<listitem>
<para>B-Tree equivalent functionality for several datatypes</para>
<para>B-Tree equivalent functionality for several data
types</para>
</listitem>
</listitem>
</varlistentry>
</varlistentry>
...
...
doc/src/sgml/indexam.sgml
View file @
39dfbe57
<!--
<!--
$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 $
...
@@ -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 $
...
@@ -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 $
...
@@ -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
NULL
s:
it is at first sight attractive to not store index entries for
null value
s:
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,
...
@@ -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,11 +291,11 @@ amrescan (IndexScanDesc scan,
...
@@ -291,11 +291,11 @@ 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 nest
ed-
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
of an indexscan as well as rescanning.
of an index
scan as well as rescanning.
</para>
</para>
<para>
<para>
...
@@ -377,7 +377,7 @@ amcostestimate (PlannerInfo *root,
...
@@ -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.
...
@@ -524,7 +524,7 @@ amcostestimate (PlannerInfo *root,
...
@@ -524,7 +524,7 @@ amcostestimate (PlannerInfo *root,
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
For concurrent index types, an indexscan must maintain a pin
For concurrent index types, an index
scan must maintain a pin
on the index page holding the item last returned by
on the index page holding the item last returned by
<function>amgettuple</>, and <function>ambulkdelete</> cannot delete
<function>amgettuple</>, and <function>ambulkdelete</> cannot delete
entries from pages that are pinned by other backends. The need
entries from pages that are pinned by other backends. The need
...
@@ -553,7 +553,7 @@ amcostestimate (PlannerInfo *root,
...
@@ -553,7 +553,7 @@ amcostestimate (PlannerInfo *root,
may still be <quote>in flight</> from the index entry to the matching
may still be <quote>in flight</> from the index entry to the matching
heap entry. Making <function>ambulkdelete</> block on such a pin ensures
heap entry. Making <function>ambulkdelete</> block on such a pin ensures
that <command>VACUUM</> cannot delete the heap entry before the reader
that <command>VACUUM</> cannot delete the heap entry before the reader
is done with it. This solution costs little in runtime, and adds blocking
is done with it. This solution costs little in run
time, and adds blocking
overhead only in the rare cases where there actually is a conflict.
overhead only in the rare cases where there actually is a conflict.
</para>
</para>
...
...
doc/src/sgml/indices.sgml
View file @
39dfbe57
<!-- $PostgreSQL: pgsql/doc/src/sgml/indices.sgml,v 1.5
3 2005/10/21 01:41:28 tgl
Exp $ -->
<!-- $PostgreSQL: pgsql/doc/src/sgml/indices.sgml,v 1.5
4 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>
...
@@ -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.
reindex
ing after a database crash.
</para>
</para>
<para>
<para>
...
@@ -389,7 +389,7 @@ CREATE INDEX test2_mm_idx ON test2 (major, minor);
...
@@ -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
...
...
doc/src/sgml/libpq.sgml
View file @
39dfbe57
<!--
<!--
$PostgreSQL: pgsql/doc/src/sgml/libpq.sgml,v 1.19
8 2005/10/27 13:53:41 momjian
Exp $
$PostgreSQL: pgsql/doc/src/sgml/libpq.sgml,v 1.19
9 2005/11/04 23:14:00 petere
Exp $
-->
-->
<chapter id="libpq">
<chapter id="libpq">
...
@@ -3539,10 +3539,10 @@ void PQtrace(PGconn *conn, FILE *stream);
...
@@ -3539,10 +3539,10 @@ void PQtrace(PGconn *conn, FILE *stream);
</para>
</para>
<note>
<note>
<para>
<para>
On Win
32
, if the <application>libpq</> library and an application are
On Win
dows
, 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>
...
...
doc/src/sgml/maintenance.sgml
View file @
39dfbe57
<!--
<!--
$PostgreSQL: pgsql/doc/src/sgml/maintenance.sgml,v 1.5
0 2005/11/01 21:09:49 tgl
Exp $
$PostgreSQL: pgsql/doc/src/sgml/maintenance.sgml,v 1.5
1 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
...
@@ -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
b
tree 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 — for example, an index on
range of index keys changed over time — for example, an index on
timestamps in a table where old entries are eventually deleted —
timestamps in a table where old entries are eventually deleted —
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
...
@@ -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-
b
tree 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-
b
tree index type.
size when using any non-
B-
tree index type.
</para>
</para>
<para>
<para>
Also, for
b
tree 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-
b
tree 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>
...
...
doc/src/sgml/nls.sgml
View file @
39dfbe57
<!--
<!--
$PostgreSQL: pgsql/doc/src/sgml/nls.sgml,v 1.1
2 2005/04/09 03:52:43 momjian
Exp $
$PostgreSQL: pgsql/doc/src/sgml/nls.sgml,v 1.1
3 2005/11/04 23:14:00 petere
Exp $
-->
-->
<chapter id="nls">
<chapter id="nls">
...
@@ -458,7 +458,7 @@ printf("Files were %s.\n", flag ? "copied" : "removed");
...
@@ -458,7 +458,7 @@ printf("Files were %s.\n", flag ? "copied" : "removed");
fragment, the fragments may not translate well separately. It's
fragment, the fragments may not translate well separately. It's
better to duplicate a little code so that each message to be
better to duplicate a little code so that each message to be
translated is a coherent whole. Only numbers, file names, and
translated is a coherent whole. Only numbers, file names, and
such-like run-time variables should be inserted at runtime into
such-like run-time variables should be inserted at run
time into
a message text.
a message text.
</para>
</para>
</listitem>
</listitem>
...
...
doc/src/sgml/perform.sgml
View file @
39dfbe57
<!--
<!--
$PostgreSQL: pgsql/doc/src/sgml/perform.sgml,v 1.5
3 2005/09/02 03:19:53 tgl
Exp $
$PostgreSQL: pgsql/doc/src/sgml/perform.sgml,v 1.5
4 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;
...
@@ -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>
...
...
doc/src/sgml/planstats.sgml
View file @
39dfbe57
<!--
<!--
$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
...
@@ -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
c
artesian product of the two nodes in the nested-loop, multiplied by the
C
artesian product of the two nodes in the nested-loop, multiplied by the
selectivity:
selectivity:
<programlisting>
<programlisting>
...
...
doc/src/sgml/plperl.sgml
View file @
39dfbe57
<!--
<!--
$PostgreSQL: pgsql/doc/src/sgml/plperl.sgml,v 2.4
8 2005/10/24 15:39:50 adunstan
Exp $
$PostgreSQL: pgsql/doc/src/sgml/plperl.sgml,v 2.4
9 2005/11/04 23:14:00 petere
Exp $
-->
-->
<chapter id="plperl">
<chapter id="plperl">
...
@@ -313,7 +313,7 @@ BEGIN { strict->import(); }
...
@@ -313,7 +313,7 @@ BEGIN { strict->import(); }
<listitem>
<listitem>
<para>
<para>
<literal>spi_exec_query</literal> executes an SQL command and
<literal>spi_exec_query</literal> executes an SQL command and
returns the entire rowset as a reference to an array of hash
returns the entire row
set as a reference to an array of hash
references. <emphasis>You should only use this command when you know
references. <emphasis>You should only use this command when you know
that the result set will be relatively small.</emphasis> Here is an
that the result set will be relatively small.</emphasis> Here is an
example of a query (<command>SELECT</command> command) with the
example of a query (<command>SELECT</command> command) with the
...
@@ -384,7 +384,7 @@ SELECT * FROM test_munge();
...
@@ -384,7 +384,7 @@ SELECT * FROM test_munge();
</para>
</para>
<para>
<para>
<literal>spi_query</literal> and <literal>spi_fetchrow</literal>
<literal>spi_query</literal> and <literal>spi_fetchrow</literal>
work together as a pair for rowsets which may be large, or for cases
work together as a pair for row
sets which may be large, or for cases
where you wish to return rows as they arrive.
where you wish to return rows as they arrive.
<literal>spi_fetchrow</literal> works <emphasis>only</emphasis> with
<literal>spi_fetchrow</literal> works <emphasis>only</emphasis> with
<literal>spi_query</literal>. The following example illustrates how
<literal>spi_query</literal>. The following example illustrates how
...
@@ -687,7 +687,7 @@ $$ LANGUAGE plperl;
...
@@ -687,7 +687,7 @@ $$ LANGUAGE plperl;
<term><literal>@{$_TD->{args}}</literal></term>
<term><literal>@{$_TD->{args}}</literal></term>
<listitem>
<listitem>
<para>
<para>
Arguments of the trigger function. Does not exist if
$_TD->{argc}
is 0.
Arguments of the trigger function. Does not exist if
<literal>$_TD->{argc}</literal>
is 0.
</para>
</para>
</listitem>
</listitem>
</varlistentry>
</varlistentry>
...
@@ -787,7 +787,7 @@ CREATE TRIGGER test_valid_id_trig
...
@@ -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.
...
...
doc/src/sgml/plpgsql.sgml
View file @
39dfbe57
<!--
<!--
$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">
...
@@ -986,7 +986,7 @@ $$ LANGUAGE plpgsql;
...
@@ -986,7 +986,7 @@ $$ LANGUAGE plpgsql;
<application>PL/pgSQL</application> interpreter casts this
<application>PL/pgSQL</application> interpreter casts this
string to the <type>timestamp</type> type by calling the
string to the <type>timestamp</type> type by calling the
<function>text_out</function> and <function>timestamp_in</function>
<function>text_out</function> and <function>timestamp_in</function>
functions for the conversion. So, the computed timestamp is updated
functions for the conversion. So, the computed time
stamp is updated
on each execution as the programmer expects.
on each execution as the programmer expects.
</para>
</para>
...
...
doc/src/sgml/ref/create_aggregate.sgml
View file @
39dfbe57
<!--
<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/create_aggregate.sgml,v 1.3
2 2005/04/12 04:26:15 tgl
Exp $
$PostgreSQL: pgsql/doc/src/sgml/ref/create_aggregate.sgml,v 1.3
3 2005/11/04 23:14:02 petere
Exp $
PostgreSQL documentation
PostgreSQL documentation
-->
-->
...
@@ -143,11 +143,11 @@ SELECT col FROM tab ORDER BY col USING sortop LIMIT 1;
...
@@ -143,11 +143,11 @@ SELECT col FROM tab ORDER BY col USING sortop LIMIT 1;
</programlisting>
</programlisting>
Further assumptions are that the aggregate ignores null inputs, and that
Further assumptions are that the aggregate ignores null inputs, and that
it delivers a null result if and only if there were no non-null inputs.
it delivers a null result if and only if there were no non-null inputs.
Ordinarily, a datatype's <literal><</> operator is the proper sort
Ordinarily, a data
type's <literal><</> operator is the proper sort
operator for <function>MIN</>, and <literal>></> is the proper sort
operator for <function>MIN</>, and <literal>></> 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 op
class.
<quote>greater than</quote> strategy member of a B-tree index operator
class.
</para>
</para>
</refsect1>
</refsect1>
...
@@ -243,7 +243,7 @@ SELECT col FROM tab ORDER BY col USING sortop LIMIT 1;
...
@@ -243,7 +243,7 @@ SELECT col FROM tab ORDER BY col USING sortop LIMIT 1;
The associated sort operator for a <function>MIN</>- or
The associated sort operator for a <function>MIN</>- or
<function>MAX</>-like aggregate.
<function>MAX</>-like aggregate.
This is just an operator name (possibly schema-qualified).
This is just an operator name (possibly schema-qualified).
The operator is assumed to have the same input datatypes as
The operator is assumed to have the same input data
types as
the aggregate.
the aggregate.
</para>
</para>
</listitem>
</listitem>
...
...
doc/src/sgml/ref/create_domain.sgml
View file @
39dfbe57
<!--
<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/create_domain.sgml,v 1.2
5 2005/11/01 21:09:50 tgl
Exp $
$PostgreSQL: pgsql/doc/src/sgml/ref/create_domain.sgml,v 1.2
6 2005/11/04 23:14:02 petere
Exp $
PostgreSQL documentation
PostgreSQL documentation
-->
-->
...
@@ -58,7 +58,7 @@ where <replaceable class="PARAMETER">constraint</replaceable> is:
...
@@ -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
PL
s enforce domain constraints
is pretty dangerous, because none of the
procedural language
s 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
...
...
doc/src/sgml/ref/pg_ctl-ref.sgml
View file @
39dfbe57
<!--
<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/pg_ctl-ref.sgml,v 1.3
1 2005/02/21 02:13:26 neilc
Exp $
$PostgreSQL: pgsql/doc/src/sgml/ref/pg_ctl-ref.sgml,v 1.3
2 2005/11/04 23:14:02 petere
Exp $
PostgreSQL documentation
PostgreSQL documentation
-->
-->
...
@@ -308,7 +308,7 @@ PostgreSQL documentation
...
@@ -308,7 +308,7 @@ PostgreSQL documentation
<term><option>-U <replaceable class="parameter">username</replaceable></option></term>
<term><option>-U <replaceable class="parameter">username</replaceable></option></term>
<listitem>
<listitem>
<para>
<para>
Username for the user to start the service. For domain users, use the
User
name for the user to start the service. For domain users, use the
format <literal>DOMAIN\username</literal>.
format <literal>DOMAIN\username</literal>.
</para>
</para>
</listitem>
</listitem>
...
...
doc/src/sgml/ref/pg_resetxlog.sgml
View file @
39dfbe57
<!--
<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/pg_resetxlog.sgml,v 1.1
1 2005/06/08 15:50:21 tgl
Exp $
$PostgreSQL: pgsql/doc/src/sgml/ref/pg_resetxlog.sgml,v 1.1
2 2005/11/04 23:14:02 petere
Exp $
PostgreSQL documentation
PostgreSQL documentation
-->
-->
...
@@ -61,7 +61,7 @@ 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
...
@@ -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
...
@@ -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
...
@@ -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,
...
...
doc/src/sgml/ref/psql-ref.sgml
View file @
39dfbe57
<!--
<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.15
3 2005/11/01 21:09:50 tgl
Exp $
$PostgreSQL: pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.15
4 2005/11/04 23:14:02 petere
Exp $
PostgreSQL documentation
PostgreSQL documentation
-->
-->
...
@@ -2015,7 +2015,7 @@ bar
...
@@ -2015,7 +2015,7 @@ bar
<term><varname>HISTFILE</varname></term>
<term><varname>HISTFILE</varname></term>
<listitem>
<listitem>
<para>
<para>
The filename that will be used to store the history list. The default
The file
name that will be used to store the history list. The default
value is <filename>~/.psql_history</filename>. For example, putting
value is <filename>~/.psql_history</filename>. For example, putting
<programlisting>
<programlisting>
\set HISTFILE ~/.psql_history- :DBNAME
\set HISTFILE ~/.psql_history- :DBNAME
...
...
doc/src/sgml/release.sgml
View file @
39dfbe57
<!--
<!--
$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>
...
@@ -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>
...
@@ -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
...
@@ -538,7 +539,7 @@ psql -t -f fixseq.sql db1 | psql -e db1
<listitem>
<listitem>
<para>
<para>
Improve GiST and
r
tree 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
...
@@ -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 non
consecutive index columns to be used in a multi
column
index (Tom)
index (Tom)
</para>
</para>
<para>
<para>
...
@@ -733,7 +734,7 @@ psql -t -f fixseq.sql db1 | psql -e db1
...
@@ -733,7 +734,7 @@ psql -t -f fixseq.sql db1 | psql -e db1
<listitem>
<listitem>
<para>
<para>
Add configuration parameter <varname>krb_server_hostname</> so
Add configuration parameter <varname>krb_server_hostname</> so
that the server hostname can be specified as part of service
that the server host
name can be specified as part of service
principal (Todd Kover)
principal (Todd Kover)
</para>
</para>
<para>
<para>
...
@@ -1639,7 +1640,7 @@ psql -t -f fixseq.sql db1 | psql -e db1
...
@@ -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
...
@@ -1962,7 +1963,7 @@ psql -t -f fixseq.sql db1 | psql -e db1
<listitem>
<listitem>
<para>
<para>
Allow IPv6 connections to be used on Win
32
(Andrew)
Allow IPv6 connections to be used on Win
dows
(Andrew)
</para>
</para>
</listitem>
</listitem>
...
@@ -2711,7 +2712,7 @@ typedefs (Michael)</para></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>
...
@@ -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>
...
@@ -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 non
null
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>
...
@@ -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>
...
@@ -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>
...
@@ -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>
...
@@ -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>
...
@@ -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>
...
@@ -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>
...
...
doc/src/sgml/rowtypes.sgml
View file @
39dfbe57
<!-- $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 > 9.99;
...
@@ -175,7 +175,7 @@ SELECT item.name FROM on_hand WHERE item.price > 9.99;
SELECT (item).name FROM on_hand WHERE (item).price > 9.99;
SELECT (item).name FROM on_hand WHERE (item).price > 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>
...
...
doc/src/sgml/runtime.sgml
View file @
39dfbe57
<!--
<!--
$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.35
6 2005/10/26 12:55:07 momjian
Exp $
$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.35
7 2005/11/04 23:14:01 petere
Exp $
-->
-->
<chapter Id="runtime">
<chapter Id="runtime">
...
@@ -854,7 +854,7 @@ options SEMMAP=256
...
@@ -854,7 +854,7 @@ options SEMMAP=256
<para>
<para>
Older distributions may not have the <command>sysctl</command> program,
Older distributions may not have the <command>sysctl</command> program,
but equivalent changes can be made by manipulating the
but equivalent changes can be made by manipulating the
<filename>/proc</filename> filesystem:
<filename>/proc</filename> file
system:
<screen>
<screen>
<prompt>$</prompt> <userinput>echo 134217728 >/proc/sys/kernel/shmmax</userinput>
<prompt>$</prompt> <userinput>echo 134217728 >/proc/sys/kernel/shmmax</userinput>
<prompt>$</prompt> <userinput>echo 2097152 >/proc/sys/kernel/shmall</userinput>
<prompt>$</prompt> <userinput>echo 2097152 >/proc/sys/kernel/shmall</userinput>
...
@@ -1357,19 +1357,19 @@ $ <userinput>kill -INT `head -1 /usr/local/pgsql/data/postmaster.pid`</userinput
...
@@ -1357,19 +1357,19 @@ $ <userinput>kill -INT `head -1 /usr/local/pgsql/data/postmaster.pid`</userinput
<listitem>
<listitem>
<para>
<para>
On Linux, encryption can be layered on top of a filesystem mount
On Linux, encryption can be layered on top of a file
system mount
using a <quote>loopback device</quote>. This allows an entire
using a <quote>loopback device</quote>. This allows an entire
filesystem partition be encrypted on disk, and decrypted by the
file
system partition be encrypted on disk, and decrypted by the
operating system. On FreeBSD, the equivalent facility is called
operating system. On FreeBSD, the equivalent facility is called
GEOM Based Disk Encryption, or <acronym>gbde</acronym>.
GEOM Based Disk Encryption, or <acronym>gbde</acronym>.
</para>
</para>
<para>
<para>
This mechanism prevents unecrypted data from being read from the
This mechanism prevents une
n
crypted 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 filesystem 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 of the data. However, to mount the filesystem, you need some
view of the data. However, to mount the file
system, you need some
way for the encryption key to be passed to the operating system,
way for the encryption key to be passed to the operating system,
and sometimes the key is stored somewhere on the host that mounts
and sometimes the key is stored somewhere on the host that mounts
the disk.
the disk.
...
...
doc/src/sgml/storage.sgml
View file @
39dfbe57
<!--
<!--
$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
...
@@ -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>
...
@@ -331,7 +331,7 @@ more often be done entirely in memory. A little test showed that a table
...
@@ -331,7 +331,7 @@ more often be done entirely in memory. A little test showed that a table
containing typical HTML pages and their URLs was stored in about half of the
containing typical HTML pages and their URLs was stored in about half of the
raw data size including the <acronym>TOAST</> table, and that the main table
raw data size including the <acronym>TOAST</> table, and that the main table
contained only about 10% of the entire data (the URLs and some small HTML
contained only about 10% of the entire data (the URLs and some small HTML
pages). There was no runtime difference compared to an un-<acronym>TOAST</>ed
pages). There was no run
time difference compared to an un-<acronym>TOAST</>ed
comparison table, in which all the HTML pages were cut down to 7Kb to fit.
comparison table, in which all the HTML pages were cut down to 7Kb to fit.
</para>
</para>
...
@@ -663,7 +663,7 @@ data. Empty in ordinary tables.</entry>
...
@@ -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
NULL
s. All this trickery is wrapped up in the functions
null value
s. 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>.
...
...
doc/src/sgml/syntax.sgml
View file @
39dfbe57
<!--
<!--
$PostgreSQL: pgsql/doc/src/sgml/syntax.sgml,v 1.10
4 2005/10/23 19:29:49 tgl
Exp $
$PostgreSQL: pgsql/doc/src/sgml/syntax.sgml,v 1.10
5 2005/11/04 23:14:02 petere
Exp $
-->
-->
<chapter id="sql-syntax">
<chapter id="sql-syntax">
...
@@ -549,7 +549,7 @@ CAST ( '<replaceable>string</replaceable>' AS <replaceable>type</replaceable> )
...
@@ -549,7 +549,7 @@ CAST ( '<replaceable>string</replaceable>' AS <replaceable>type</replaceable> )
The <literal>CAST()</> syntax conforms to SQL. The
The <literal>CAST()</> syntax conforms to SQL. The
<literal><replaceable>type</replaceable> '<replaceable>string</replaceable>'</literal>
<literal><replaceable>type</replaceable> '<replaceable>string</replaceable>'</literal>
syntax is a generalization of the standard: SQL specifies this syntax only
syntax is a generalization of the standard: SQL specifies this syntax only
for a few datatypes, but <productname>PostgreSQL</productname> allows it
for a few data
types, but <productname>PostgreSQL</productname> allows it
for all types. The syntax with
for all types. The syntax with
<literal>::</literal> is historical <productname>PostgreSQL</productname>
<literal>::</literal> is historical <productname>PostgreSQL</productname>
usage, as is the function-call syntax.
usage, as is the function-call syntax.
...
@@ -1148,7 +1148,7 @@ CREATE FUNCTION dept(text) RETURNS dept
...
@@ -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>
...
...
doc/src/sgml/trigger.sgml
View file @
39dfbe57
<!--
<!--
$PostgreSQL: pgsql/doc/src/sgml/trigger.sgml,v 1.4
4 2005/10/13 21:09:38 tgl
Exp $
$PostgreSQL: pgsql/doc/src/sgml/trigger.sgml,v 1.4
5 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
...
@@ -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
...
...
doc/src/sgml/typeconv.sgml
View file @
39dfbe57
<!--
<!--
$PostgreSQL: pgsql/doc/src/sgml/typeconv.sgml,v 1.4
4 2005/06/26 22:05:36 tgl
Exp $
$PostgreSQL: pgsql/doc/src/sgml/typeconv.sgml,v 1.4
5 2005/11/04 23:14:02 petere
Exp $
-->
-->
<chapter Id="typeconv">
<chapter Id="typeconv">
...
@@ -738,7 +738,7 @@ into the destination column. The implementation function for such a cast
...
@@ -738,7 +738,7 @@ into the destination column. The implementation function for such a cast
always takes an extra parameter of type <type>integer</type>, which receives
always takes an extra parameter of type <type>integer</type>, which receives
the destination column's declared length (actually, its
the destination column's declared length (actually, its
<structfield>atttypmod</> value; the interpretation of
<structfield>atttypmod</> value; the interpretation of
<structfield>atttypmod</> varies for different datatypes). The cast function
<structfield>atttypmod</> varies for different data
types). The cast function
is responsible for applying any length-dependent semantics such as size
is responsible for applying any length-dependent semantics such as size
checking or truncation.
checking or truncation.
</para>
</para>
...
...
doc/src/sgml/wal.sgml
View file @
39dfbe57
<!-- $PostgreSQL: pgsql/doc/src/sgml/wal.sgml,v 1.3
7 2005/10/22 21:56:07 tgl
Exp $ -->
<!-- $PostgreSQL: pgsql/doc/src/sgml/wal.sgml,v 1.3
8 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 @@
...
@@ -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">
...
...
doc/src/sgml/xoper.sgml
View file @
39dfbe57
<!--
<!--
$PostgreSQL: pgsql/doc/src/sgml/xoper.sgml,v 1.3
3 2005/01/23 00:30:18 momjian
Exp $
$PostgreSQL: pgsql/doc/src/sgml/xoper.sgml,v 1.3
4 2005/11/04 23:14:02 petere
Exp $
-->
-->
<sect1 id="xoper">
<sect1 id="xoper">
...
@@ -347,7 +347,7 @@ table1.column1 OP table2.column2
...
@@ -347,7 +347,7 @@ table1.column1 OP table2.column2
in a hash index operator class. This is not enforced when you create
in a hash index operator class. This is not enforced when you create
the operator, since of course the referencing operator class couldn't
the operator, since of course the referencing operator class couldn't
exist yet. But attempts to use the operator in hash joins will fail
exist yet. But attempts to use the operator in hash joins will fail
at runtime if no such operator class exists. The system needs the
at run
time if no such operator class exists. The system needs the
operator class to find the data-type-specific hash function for the
operator class to find the data-type-specific hash function for the
operator's input data type. Of course, you must also supply a suitable
operator's input data type. Of course, you must also supply a suitable
hash function before you can create the operator class.
hash function before you can create the operator class.
...
@@ -479,7 +479,7 @@ table1.column1 OP table2.column2
...
@@ -479,7 +479,7 @@ table1.column1 OP table2.column2
<listitem>
<listitem>
<para>
<para>
Bizarre results will ensue at runtime if the four comparison
Bizarre results will ensue at run
time if the four comparison
operators you name do not sort the data values compatibly.
operators you name do not sort the data values compatibly.
</para>
</para>
</listitem>
</listitem>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment