Commit 2475e874 authored by Thomas G. Lockhart's avatar Thomas G. Lockhart

Deprecate 'current' for date/time input.

Fix up references to "PostgreSQL" rather than "Postgres". Was roughly
 evenly split between the two before. ref/ files not yet done.
parent eec9511f
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/advanced.sgml,v 1.24 2001/11/19 23:17:38 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/advanced.sgml,v 1.25 2001/11/21 05:53:40 thomas Exp $
--> -->
<chapter id="tutorial-advanced"> <chapter id="tutorial-advanced">
...@@ -215,7 +215,7 @@ UPDATE branches SET balance = balance + 100.00 ...@@ -215,7 +215,7 @@ UPDATE branches SET balance = balance + 100.00
</para> </para>
<para> <para>
In <productname>Postgres</>, a transaction is set up by surrounding In <productname>PostgreSQL</>, a transaction is set up by surrounding
the SQL commands of the transaction with the SQL commands of the transaction with
<command>BEGIN</> and <command>COMMIT</> commands. So our banking <command>BEGIN</> and <command>COMMIT</> commands. So our banking
transaction would actually look like transaction would actually look like
...@@ -233,7 +233,7 @@ COMMIT; ...@@ -233,7 +233,7 @@ COMMIT;
</para> </para>
<para> <para>
<productname>Postgres</> actually treats every SQL statement as being <productname>PostgreSQL</> actually treats every SQL statement as being
executed within a transaction. If you don't issue a <command>BEGIN</> executed within a transaction. If you don't issue a <command>BEGIN</>
command, command,
then each individual statement has an implicit <command>BEGIN</> and then each individual statement has an implicit <command>BEGIN</> and
...@@ -316,7 +316,7 @@ CREATE TABLE capitals ( ...@@ -316,7 +316,7 @@ CREATE TABLE capitals (
<structfield>population</>, and <structfield>altitude</>) from its <structfield>population</>, and <structfield>altitude</>) from its
<firstterm>parent</firstterm>, <classname>cities</classname>. The <firstterm>parent</firstterm>, <classname>cities</classname>. The
type of the column <structfield>name</structfield> is type of the column <structfield>name</structfield> is
<type>text</type>, a native <productname>Postgres</productname> <type>text</type>, a native <productname>PostgreSQL</productname>
type for variable length character strings. State capitals have type for variable length character strings. State capitals have
an extra column, state, that shows their state. In an extra column, state, that shows their state. In
<productname>PostgreSQL</productname>, a table can inherit from <productname>PostgreSQL</productname>, a table can inherit from
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/arch-dev.sgml,v 2.15 2001/11/08 23:34:33 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/arch-dev.sgml,v 2.16 2001/11/21 05:53:40 thomas Exp $
--> -->
<chapter id="overview"> <chapter id="overview">
...@@ -17,11 +17,11 @@ $Header: /cvsroot/pgsql/doc/src/sgml/arch-dev.sgml,v 2.15 2001/11/08 23:34:33 pe ...@@ -17,11 +17,11 @@ $Header: /cvsroot/pgsql/doc/src/sgml/arch-dev.sgml,v 2.15 2001/11/08 23:34:33 pe
<para> <para>
This chapter gives an overview of the internal structure of the This chapter gives an overview of the internal structure of the
backend of <productname>Postgres</productname>. backend of <productname>PostgreSQL</productname>.
After having read the following sections you After having read the following sections you
should have an idea of how a query is processed. Don't expect a should have an idea of how a query is processed. Don't expect a
detailed description here (I think such a description dealing with detailed description here (I think such a description dealing with
all data structures and functions used within <productname>Postgres</productname> all data structures and functions used within <productname>PostgreSQL</productname>
would exceed 1000 would exceed 1000
pages!). This chapter is intended to help understanding the general pages!). This chapter is intended to help understanding the general
control and data flow within the backend from receiving a query to control and data flow within the backend from receiving a query to
...@@ -39,7 +39,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/arch-dev.sgml,v 2.15 2001/11/08 23:34:33 pe ...@@ -39,7 +39,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/arch-dev.sgml,v 2.15 2001/11/08 23:34:33 pe
<procedure> <procedure>
<step> <step>
<para> <para>
A connection from an application program to the <productname>Postgres</productname> A connection from an application program to the <productname>PostgreSQL</productname>
server has to be established. The application program transmits a server has to be established. The application program transmits a
query to the server and receives the results sent back by the server. query to the server and receives the results sent back by the server.
</para> </para>
...@@ -109,7 +109,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/arch-dev.sgml,v 2.15 2001/11/08 23:34:33 pe ...@@ -109,7 +109,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/arch-dev.sgml,v 2.15 2001/11/08 23:34:33 pe
<para> <para>
In the following sections we will cover every of the above listed items In the following sections we will cover every of the above listed items
in more detail to give a better understanding on <productname>Postgres</productname>'s internal in more detail to give a better understanding on <productname>PostgreSQL</productname>'s internal
control and data structures. control and data structures.
</para> </para>
</sect1> </sect1>
...@@ -118,7 +118,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/arch-dev.sgml,v 2.15 2001/11/08 23:34:33 pe ...@@ -118,7 +118,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/arch-dev.sgml,v 2.15 2001/11/08 23:34:33 pe
<title>How Connections are Established</title> <title>How Connections are Established</title>
<para> <para>
<productname>Postgres</productname> is implemented using a simple "process per-user" <productname>PostgreSQL</productname> is implemented using a simple "process per-user"
client/server model. In this model there is one <firstterm>client process</firstterm> client/server model. In this model there is one <firstterm>client process</firstterm>
connected to exactly one <firstterm>server process</firstterm>. connected to exactly one <firstterm>server process</firstterm>.
As we don't know <foreignphrase>per se</foreignphrase> As we don't know <foreignphrase>per se</foreignphrase>
...@@ -142,7 +142,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/arch-dev.sgml,v 2.15 2001/11/08 23:34:33 pe ...@@ -142,7 +142,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/arch-dev.sgml,v 2.15 2001/11/08 23:34:33 pe
interactive SQL queries) or any user application implemented using interactive SQL queries) or any user application implemented using
the <filename>libpg</filename> library. Note that applications implemented using the <filename>libpg</filename> library. Note that applications implemented using
<application>ecpg</application> <application>ecpg</application>
(the <productname>Postgres</productname> embedded SQL preprocessor for C) (the <productname>PostgreSQL</productname> embedded SQL preprocessor for C)
also use this library. also use this library.
</para> </para>
...@@ -236,7 +236,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/arch-dev.sgml,v 2.15 2001/11/08 23:34:33 pe ...@@ -236,7 +236,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/arch-dev.sgml,v 2.15 2001/11/08 23:34:33 pe
<para> <para>
The mentioned transformations and compilations are normally done The mentioned transformations and compilations are normally done
automatically using the <firstterm>makefiles</firstterm> automatically using the <firstterm>makefiles</firstterm>
shipped with the <productname>Postgres</productname> shipped with the <productname>PostgreSQL</productname>
source distribution. source distribution.
</para> </para>
</note> </note>
...@@ -255,7 +255,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/arch-dev.sgml,v 2.15 2001/11/08 23:34:33 pe ...@@ -255,7 +255,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/arch-dev.sgml,v 2.15 2001/11/08 23:34:33 pe
<para> <para>
For a better understanding of the data structures used in For a better understanding of the data structures used in
<productname>Postgres</productname> <productname>PostgreSQL</productname>
for the processing of a query we use an example to illustrate the for the processing of a query we use an example to illustrate the
changes made to these data structures in every stage. changes made to these data structures in every stage.
This example contains the following simple query that will be used in This example contains the following simple query that will be used in
...@@ -443,13 +443,13 @@ current context are performed. ...@@ -443,13 +443,13 @@ current context are performed.
</sect1> </sect1>
<sect1 id="rule-system"> <sect1 id="rule-system">
<title>The <productname>Postgres</productname> Rule System</title> <title>The <productname>PostgreSQL</productname> Rule System</title>
<para> <para>
<productname>Postgres</productname> supports a powerful <productname>PostgreSQL</productname> supports a powerful
<firstterm>rule system</firstterm> for the specification <firstterm>rule system</firstterm> for the specification
of <firstterm>views</firstterm> and ambiguous <firstterm>view updates</firstterm>. of <firstterm>views</firstterm> and ambiguous <firstterm>view updates</firstterm>.
Originally the <productname>Postgres</productname> Originally the <productname>PostgreSQL</productname>
rule system consisted of two implementations: rule system consisted of two implementations:
<itemizedlist> <itemizedlist>
...@@ -459,7 +459,7 @@ current context are performed. ...@@ -459,7 +459,7 @@ current context are performed.
implemented deep in the <firstterm>executor</firstterm>. The rule system was implemented deep in the <firstterm>executor</firstterm>. The rule system was
called whenever an individual tuple had been accessed. This called whenever an individual tuple had been accessed. This
implementation was removed in 1995 when the last official release implementation was removed in 1995 when the last official release
of the <productname>Postgres</productname> project was transformed into of the <productname>PostgreSQL</productname> project was transformed into
<productname>Postgres95</productname>. <productname>Postgres95</productname>.
</para> </para>
</listitem> </listitem>
...@@ -478,7 +478,7 @@ current context are performed. ...@@ -478,7 +478,7 @@ current context are performed.
<para> <para>
For information on the syntax and creation of rules in the For information on the syntax and creation of rules in the
<productname>Postgres</productname> system refer to <productname>PostgreSQL</productname> system refer to
<citetitle>The PostgreSQL User's Guide</citetitle>. <citetitle>The PostgreSQL User's Guide</citetitle>.
</para> </para>
...@@ -700,7 +700,7 @@ current context are performed. ...@@ -700,7 +700,7 @@ current context are performed.
Another task performed by the planner/optimizer is fixing the Another task performed by the planner/optimizer is fixing the
<firstterm>operator ids</firstterm> in the <literal>Expr</literal> <firstterm>operator ids</firstterm> in the <literal>Expr</literal>
and <literal>Oper</literal> nodes. As and <literal>Oper</literal> nodes. As
mentioned earlier, <productname>Postgres</productname> supports a variety of different data mentioned earlier, <productname>PostgreSQL</productname> supports a variety of different data
types and even user defined types can be used. To be able to maintain types and even user defined types can be used. To be able to maintain
the huge amount of functions and operators it is necessary to store the huge amount of functions and operators it is necessary to store
them in a system table. Each function and operator gets a unique them in a system table. Each function and operator gets a unique
...@@ -1181,7 +1181,7 @@ transformInsertStmt()} above have been added here as well. ...@@ -1181,7 +1181,7 @@ transformInsertStmt()} above have been added here as well.
\subsubsection{The Rewrite System} \subsubsection{The Rewrite System}
This section describes the changes to the {\it rewrite system} of This section describes the changes to the {\it rewrite system} of
<productname>Postgres</productname> that have been necessary to support the use of {\it views} <productname>PostgreSQL</productname> that have been necessary to support the use of {\it views}
within queries using a {\it having clause} and to support the within queries using a {\it having clause} and to support the
definition of {\it views} by queries using a {\it having clause}. definition of {\it views} by queries using a {\it having clause}.
...@@ -1395,7 +1395,7 @@ items. Note that it is not necessary to understand the meaning of ...@@ -1395,7 +1395,7 @@ items. Note that it is not necessary to understand the meaning of
every single source line here and therefore we will not discuss every single source line here and therefore we will not discuss
detailed questions like "Why has the variable {\tt varno} to be detailed questions like "Why has the variable {\tt varno} to be
increased by 3?". Questions like that belong to a chapter dealing increased by 3?". Questions like that belong to a chapter dealing
with the implementation of {\it views} in <productname>Postgres</productname> and to be able to with the implementation of {\it views} in <productname>PostgreSQL</productname> and to be able to
answer them it would be necessary to know all the functions and not answer them it would be necessary to know all the functions and not
only those described here. The fact important for us is to make sure, only those described here. The fact important for us is to make sure,
that whatever is applied to the {\it targetlist} and the data that whatever is applied to the {\it targetlist} and the data
...@@ -1538,7 +1538,7 @@ examined. ...@@ -1538,7 +1538,7 @@ examined.
% %
<step> {\tt QueryRewrite()} \\ <step> {\tt QueryRewrite()} \\
This function takes the {\it parsetree} of a query and rewrites it This function takes the {\it parsetree} of a query and rewrites it
using <productname>Postgres</productname>'s {\it rewrite system}. Before the query itself can be using <productname>PostgreSQL</productname>'s {\it rewrite system}. Before the query itself can be
rewritten, subqueries that are possibly part of the query have to be rewritten, subqueries that are possibly part of the query have to be
processed. Therefore the function {\tt QueryRewriteSubLink()} is processed. Therefore the function {\tt QueryRewriteSubLink()} is
called for the {\it where clause} and for the {\it having clause}. called for the {\it where clause} and for the {\it having clause}.
...@@ -2750,7 +2750,7 @@ produced by the {\it parser stage} that can be executed by the {\it ...@@ -2750,7 +2750,7 @@ produced by the {\it parser stage} that can be executed by the {\it
executor}. In most cases there are several ways (paths) with different executor}. In most cases there are several ways (paths) with different
cost to get to the same result. It's the {\it planner/optimizer's} cost to get to the same result. It's the {\it planner/optimizer's}
task to find out which path is the cheapest and to create a {\it plan} task to find out which path is the cheapest and to create a {\it plan}
using this path. The implementation of {\it unions} in <productname>Postgres</productname> is using this path. The implementation of {\it unions} in <productname>PostgreSQL</productname> is
based on the following idea: \\ based on the following idea: \\
\\ \\
The set derived by evaluating $A \cup B$ must contain every member of The set derived by evaluating $A \cup B$ must contain every member of
...@@ -2786,7 +2786,7 @@ and the sort is just performed to make its work easier. ...@@ -2786,7 +2786,7 @@ and the sort is just performed to make its work easier.
\subsection{How Intersect, Except and Union Work Together} \subsection{How Intersect, Except and Union Work Together}
The last section showed that every stage ({\it parser stage}, {\it The last section showed that every stage ({\it parser stage}, {\it
planner/optimizer}, {\it executor}) of <productname>Postgres</productname> has to provide planner/optimizer}, {\it executor}) of <productname>PostgreSQL</productname> has to provide
features in order to support {\it union} statements. For the features in order to support {\it union} statements. For the
implementation of {\it intersect} and {\it except} statements (and implementation of {\it intersect} and {\it except} statements (and
statements involving all {\it set operators}) we choose a different approach statements involving all {\it set operators}) we choose a different approach
...@@ -3039,7 +3039,7 @@ file {\tt $\ldots$/src/backend/parser/keywords.c}: ...@@ -3039,7 +3039,7 @@ file {\tt $\ldots$/src/backend/parser/keywords.c}:
}; };
\end{verbatim} \end{verbatim}
% %
<step> <productname>Postgres</productname> contains functions to convert the internal <step> <productname>PostgreSQL</productname> contains functions to convert the internal
representation of a {\it parsetree} or {\it plantree} into an ASCII representation of a {\it parsetree} or {\it plantree} into an ASCII
representation (that can easily be printed to the screen (for representation (that can easily be printed to the screen (for
debugging purposes) or be stored in a file) and vice versa. These debugging purposes) or be stored in a file) and vice versa. These
...@@ -3629,7 +3629,7 @@ troubles in the {\it transforming logic}. ...@@ -3629,7 +3629,7 @@ troubles in the {\it transforming logic}.
\end{figure} \end{figure}
% %
<step> Transform the new {\it operator tree} into DNF (disjunctive normal <step> Transform the new {\it operator tree} into DNF (disjunctive normal
form). <productname>Postgres</productname> does not provide any function for the transformation form). <productname>PostgreSQL</productname> does not provide any function for the transformation
into DNF but it provides a function {\tt cnfify()} that performs a into DNF but it provides a function {\tt cnfify()} that performs a
transformation into CNF (conjunctive normal form). So we can easily transformation into CNF (conjunctive normal form). So we can easily
make use of this function when we exchange every {\tt OR} with an {\tt make use of this function when we exchange every {\tt OR} with an {\tt
......
...@@ -2,15 +2,15 @@ ...@@ -2,15 +2,15 @@
<TITLE>Architecture</TITLE> <TITLE>Architecture</TITLE>
<Sect1 id="arch-pg-concepts"> <Sect1 id="arch-pg-concepts">
<Title><ProductName>Postgres</ProductName> Architectural Concepts</Title> <Title><ProductName>PostgreSQL</ProductName> Architectural Concepts</Title>
<Para> <Para>
Before we begin, you should understand the basic Before we begin, you should understand the basic
<ProductName>Postgres</ProductName> system architecture. Understanding how the <ProductName>PostgreSQL</ProductName> system architecture. Understanding how the
parts of <ProductName>Postgres</ProductName> interact will make the next chapter parts of <ProductName>PostgreSQL</ProductName> interact will make the next chapter
somewhat clearer. somewhat clearer.
In database jargon, <ProductName>Postgres</ProductName> uses a simple "process In database jargon, <ProductName>PostgreSQL</ProductName> uses a simple "process
per-user" client/server model. A <ProductName>Postgres</ProductName> session per-user" client/server model. A <ProductName>PostgreSQL</ProductName> session
consists of the following cooperating Unix processes (programs): consists of the following cooperating Unix processes (programs):
<ItemizedList> <ItemizedList>
...@@ -81,14 +81,14 @@ From that point on, the frontend process and the backend ...@@ -81,14 +81,14 @@ From that point on, the frontend process and the backend
<Para> <Para>
You should also be aware that the <Application>postmaster</Application> and You should also be aware that the <Application>postmaster</Application> and
postgres servers run with the user-id of the <ProductName>Postgres</ProductName> postgres servers run with the user-id of the <ProductName>PostgreSQL</ProductName>
<quote>superuser</>. <quote>superuser</>.
Note that the <ProductName>Postgres</ProductName> superuser does not Note that the <ProductName>PostgreSQL</ProductName> superuser does not
have to be any particular user (e.g., a user named have to be any particular user (e.g., a user named
<literal>postgres</literal>), although many systems are installed that way. <literal>postgres</literal>), although many systems are installed that way.
Furthermore, the <ProductName>Postgres</ProductName> superuser should Furthermore, the <ProductName>PostgreSQL</ProductName> superuser should
definitely not be the Unix superuser, <literal>root</literal>! definitely not be the Unix superuser, <literal>root</literal>!
It is safest if the <ProductName>Postgres</ProductName> superuser is an It is safest if the <ProductName>PostgreSQL</ProductName> superuser is an
ordinary, unprivileged user so far as the surrounding Unix system is ordinary, unprivileged user so far as the surrounding Unix system is
concerned. concerned.
In any case, all files relating to a database should belong to In any case, all files relating to a database should belong to
...@@ -96,3 +96,21 @@ concerned. ...@@ -96,3 +96,21 @@ concerned.
</Para> </Para>
</sect1> </sect1>
</Chapter> </Chapter>
<!-- 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-tabs-mode:nil
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"./reference.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:("/usr/share/sgml/catalog")
sgml-local-ecat-files:nil
End:
-->
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/array.sgml,v 1.15 2001/11/19 09:05:00 tgl Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/array.sgml,v 1.16 2001/11/21 05:53:40 thomas Exp $ -->
<chapter id="arrays"> <chapter id="arrays">
<title>Arrays</title> <title>Arrays</title>
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
</indexterm> </indexterm>
<para> <para>
<productname>Postgres</productname> allows columns of a table to be <productname>PostgreSQL</productname> allows columns of a table to be
defined as variable-length multidimensional arrays. Arrays of any defined as variable-length multidimensional arrays. Arrays of any
built-in type or user-defined type can be created. To illustrate built-in type or user-defined type can be created. To illustrate
their use, we create this table: their use, we create this table:
...@@ -66,7 +66,7 @@ SELECT name FROM sal_emp WHERE pay_by_quarter[1] &lt;&gt; pay_by_quarter[2]; ...@@ -66,7 +66,7 @@ SELECT name FROM sal_emp WHERE pay_by_quarter[1] &lt;&gt; pay_by_quarter[2];
</programlisting> </programlisting>
The array subscript numbers are written within square brackets. The array subscript numbers are written within square brackets.
<productname>Postgres</productname> uses the <productname>PostgreSQL</productname> uses the
<quote>one-based</quote> numbering convention for arrays, that is, <quote>one-based</quote> numbering convention for arrays, that is,
an array of n elements starts with <literal>array[1]</literal> and an array of n elements starts with <literal>array[1]</literal> and
ends with <literal>array[n]</literal>. ends with <literal>array[n]</literal>.
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/backup.sgml,v 2.20 2001/11/18 22:27:00 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/backup.sgml,v 2.21 2001/11/21 05:53:40 thomas Exp $
--> -->
<chapter id="backup"> <chapter id="backup">
<title>Backup and Restore</title> <title>Backup and Restore</title>
...@@ -7,7 +7,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/backup.sgml,v 2.20 2001/11/18 22:27:00 tgl ...@@ -7,7 +7,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/backup.sgml,v 2.20 2001/11/18 22:27:00 tgl
<indexterm zone="backup"><primary>backup</></> <indexterm zone="backup"><primary>backup</></>
<para> <para>
As everything that contains valuable data, <productname>Postgres</> As everything that contains valuable data, <productname>PostgreSQL</>
databases should be backed up regularly. While the procedure is databases should be backed up regularly. While the procedure is
essentially simple, it is important to have a basic understanding of essentially simple, it is important to have a basic understanding of
the underlying techniques and assumptions. the underlying techniques and assumptions.
...@@ -15,7 +15,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/backup.sgml,v 2.20 2001/11/18 22:27:00 tgl ...@@ -15,7 +15,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/backup.sgml,v 2.20 2001/11/18 22:27:00 tgl
<para> <para>
There are two fundamentally different approaches to backing up There are two fundamentally different approaches to backing up
<productname>Postgres</> data: <productname>PostgreSQL</> data:
<itemizedlist> <itemizedlist>
<listitem><para><acronym>SQL</> dump</para></listitem> <listitem><para><acronym>SQL</> dump</para></listitem>
<listitem><para>File system level backup</para></listitem> <listitem><para>File system level backup</para></listitem>
...@@ -29,7 +29,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/backup.sgml,v 2.20 2001/11/18 22:27:00 tgl ...@@ -29,7 +29,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/backup.sgml,v 2.20 2001/11/18 22:27:00 tgl
The idea behind this method is to generate a text file with SQL The idea behind this method is to generate a text file with SQL
commands that, when fed back to the server, will recreate the commands that, when fed back to the server, will recreate the
database in the same state as it was at the time of the dump. database in the same state as it was at the time of the dump.
<productname>Postgres</> provides the utility program <productname>PostgreSQL</> provides the utility program
<application>pg_dump</> for this purpose. The basic usage of this <application>pg_dump</> for this purpose. The basic usage of this
command is: command is:
<synopsis> <synopsis>
...@@ -40,7 +40,7 @@ pg_dump <replaceable class="parameter">dbname</replaceable> &gt; <replaceable cl ...@@ -40,7 +40,7 @@ pg_dump <replaceable class="parameter">dbname</replaceable> &gt; <replaceable cl
</para> </para>
<para> <para>
<application>pg_dump</> is a regular <productname>Postgres</> <application>pg_dump</> is a regular <productname>PostgreSQL</>
client application (albeit a particularly clever one). This means client application (albeit a particularly clever one). This means
that you can do this backup procedure from any remote host that has that you can do this backup procedure from any remote host that has
access to the database. But remember that <application>pg_dump</> access to the database. But remember that <application>pg_dump</>
...@@ -62,7 +62,7 @@ pg_dump <replaceable class="parameter">dbname</replaceable> &gt; <replaceable cl ...@@ -62,7 +62,7 @@ pg_dump <replaceable class="parameter">dbname</replaceable> &gt; <replaceable cl
</para> </para>
<para> <para>
As any other <productname>Postgres</> client application, As any other <productname>PostgreSQL</> client application,
<application>pg_dump</> will by default connect with the database <application>pg_dump</> will by default connect with the database
user name that is equal to the current Unix user name. To override user name that is equal to the current Unix user name. To override
this, either specify the <option>-U</option> option or set the this, either specify the <option>-U</option> option or set the
...@@ -182,7 +182,7 @@ pg_dumpall &gt; <replaceable>outfile</> ...@@ -182,7 +182,7 @@ pg_dumpall &gt; <replaceable>outfile</>
</note> </note>
<para> <para>
Since <productname>Postgres</productname> allows tables larger Since <productname>PostgreSQL</productname> allows tables larger
than the maximum file size on your system, it can be problematic than the maximum file size on your system, it can be problematic
to dump the table to a file, since the resulting file will likely to dump the table to a file, since the resulting file will likely
be larger than the maximum size allowed by your system. As be larger than the maximum size allowed by your system. As
...@@ -242,7 +242,7 @@ cat <replaceable class="parameter">filename</replaceable>* | psql <replaceable c ...@@ -242,7 +242,7 @@ cat <replaceable class="parameter">filename</replaceable>* | psql <replaceable c
<formalpara> <formalpara>
<title>Use the custom dump format.</title> <title>Use the custom dump format.</title>
<para> <para>
If PostgreSQL was built on a system with the <application>zlib</> compression library If <productname>PostgreSQL</productname> was built on a system with the <application>zlib</> compression library
installed, the custom dump format will compress data as it writes it installed, the custom dump format will compress data as it writes it
to the output file. For large databases, this will produce similar dump to the output file. For large databases, this will produce similar dump
sizes to using <command>gzip</command>, but has the added advantage that the tables can be sizes to using <command>gzip</command>, but has the added advantage that the tables can be
...@@ -287,7 +287,7 @@ pg_dump -Fc <replaceable class="parameter">dbname</replaceable> > <replaceable c ...@@ -287,7 +287,7 @@ pg_dump -Fc <replaceable class="parameter">dbname</replaceable> > <replaceable c
either the custom or the TAR output format, and use the -b option in either the custom or the TAR output format, and use the -b option in
<application>pg_dump</>. See the reference pages for details. <application>pg_dump</>. See the reference pages for details.
The directory <filename>contrib/pg_dumplo</> of the The directory <filename>contrib/pg_dumplo</> of the
<productname>Postgres</> source tree also contains a program that can <productname>PostgreSQL</> source tree also contains a program that can
dump large objects. dump large objects.
</para> </para>
...@@ -303,7 +303,7 @@ pg_dump -Fc <replaceable class="parameter">dbname</replaceable> > <replaceable c ...@@ -303,7 +303,7 @@ pg_dump -Fc <replaceable class="parameter">dbname</replaceable> > <replaceable c
<para> <para>
An alternative backup strategy is to directly copy the files that An alternative backup strategy is to directly copy the files that
<productname>Postgres</> uses to store the data in the database. In <productname>PostgreSQL</> uses to store the data in the database. In
<xref linkend="creating-cluster"> it is explained where these files <xref linkend="creating-cluster"> it is explained where these files
are located, but you have probably found them already if you are are located, but you have probably found them already if you are
interested in this method. You can use whatever method you prefer interested in this method. You can use whatever method you prefer
...@@ -373,7 +373,7 @@ tar -cf backup.tar /usr/local/pgsql/data ...@@ -373,7 +373,7 @@ tar -cf backup.tar /usr/local/pgsql/data
<para> <para>
As a general rule, the internal data storage format is subject to As a general rule, the internal data storage format is subject to
change between releases of <productname>Postgres</>. This does not change between releases of <productname>PostgreSQL</>. This does not
apply to different <quote>patch levels</quote>, these always have apply to different <quote>patch levels</quote>, these always have
compatible storage formats. For example, releases 7.0.1, 7.1.2, and compatible storage formats. For example, releases 7.0.1, 7.1.2, and
7.2 are not compatible, whereas &version;.1 and &version;.2 are. When you 7.2 are not compatible, whereas &version;.1 and &version;.2 are. When you
...@@ -440,3 +440,21 @@ psql < backup ...@@ -440,3 +440,21 @@ psql < backup
</note> </note>
</sect1> </sect1>
</chapter> </chapter>
<!-- 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-tabs-mode:nil
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"./reference.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:("/usr/share/sgml/catalog")
sgml-local-ecat-files:nil
End:
-->
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/biblio.sgml,v 1.15 2001/11/08 23:34:33 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/biblio.sgml,v 1.16 2001/11/21 05:53:40 thomas Exp $
--> -->
<bibliography id="biblio"> <bibliography id="biblio">
...@@ -7,7 +7,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/biblio.sgml,v 1.15 2001/11/08 23:34:33 pete ...@@ -7,7 +7,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/biblio.sgml,v 1.15 2001/11/08 23:34:33 pete
<para> <para>
Selected references and readings for <acronym>SQL</acronym> Selected references and readings for <acronym>SQL</acronym>
and <productname>Postgres</productname>. and <productname>PostgreSQL</productname>.
</para> </para>
<para> <para>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/bki.sgml,v 1.7 2001/06/12 05:55:48 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/bki.sgml,v 1.8 2001/11/21 05:53:40 thomas Exp $
--> -->
<chapter id="bki"> <chapter id="bki">
...@@ -8,7 +8,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/bki.sgml,v 1.7 2001/06/12 05:55:48 tgl Exp ...@@ -8,7 +8,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/bki.sgml,v 1.7 2001/06/12 05:55:48 tgl Exp
<para> <para>
Backend Interface (<acronym>BKI</acronym>) files are scripts in a Backend Interface (<acronym>BKI</acronym>) files are scripts in a
special language that are input to the special language that are input to the
<productname>Postgres</productname> backend running in the special <productname>PostgreSQL</productname> backend running in the special
<quote>bootstrap</quote> mode that allows it to perform database <quote>bootstrap</quote> mode that allows it to perform database
functions without a database system already existing. functions without a database system already existing.
<acronym>BKI</acronym> files can therefore be used to create the <acronym>BKI</acronym> files can therefore be used to create the
...@@ -20,7 +20,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/bki.sgml,v 1.7 2001/06/12 05:55:48 tgl Exp ...@@ -20,7 +20,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/bki.sgml,v 1.7 2001/06/12 05:55:48 tgl Exp
<application>initdb</application> uses a <acronym>BKI</acronym> file <application>initdb</application> uses a <acronym>BKI</acronym> file
to do part of its job when creating a new database cluster. The to do part of its job when creating a new database cluster. The
input file used by <application>initdb</application> is created as input file used by <application>initdb</application> is created as
part of building and installing <productname>Postgres</productname> part of building and installing <productname>PostgreSQL</productname>
by a program named <filename>genbki.sh</filename> from some by a program named <filename>genbki.sh</filename> from some
specially formatted C header files in the source tree. The created specially formatted C header files in the source tree. The created
BKI file is called <filename>postgres.bki</filename> and is BKI file is called <filename>postgres.bki</filename> and is
...@@ -37,7 +37,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/bki.sgml,v 1.7 2001/06/12 05:55:48 tgl Exp ...@@ -37,7 +37,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/bki.sgml,v 1.7 2001/06/12 05:55:48 tgl Exp
<title><acronym>BKI</acronym> File Format</title> <title><acronym>BKI</acronym> File Format</title>
<para> <para>
This section describes how the <productname>Postgres</productname> This section describes how the <productname>PostgreSQL</productname>
backend interprets <acronym>BKI</acronym> files. This description backend interprets <acronym>BKI</acronym> files. This description
will be easier to understand if the <filename>postgres.bki</filename> will be easier to understand if the <filename>postgres.bki</filename>
file is at hand as an example. You should also study the source file is at hand as an example. You should also study the source
......
<!-- <!--
Documentation of the system catalogs, directed toward PostgreSQL developers Documentation of the system catalogs, directed toward PostgreSQL developers
$Header: /cvsroot/pgsql/doc/src/sgml/catalogs.sgml,v 2.28 2001/11/08 23:44:01 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/catalogs.sgml,v 2.29 2001/11/21 05:53:40 thomas Exp $
--> -->
<chapter id="catalogs"> <chapter id="catalogs">
...@@ -2300,7 +2300,8 @@ ...@@ -2300,7 +2300,8 @@
routines pass a value of this type by value or by reference. routines pass a value of this type by value or by reference.
Only <type>char</type>, <type>short</type>, and Only <type>char</type>, <type>short</type>, and
<type>int</type> equivalent items can be passed by value, so if <type>int</type> equivalent items can be passed by value, so if
the type is not 1, 2, or 4 bytes long, Postgres does not have the type is not 1, 2, or 4 bytes long,
<productname>PostgreSQL</> does not have
the option of passing by value and so the option of passing by value and so
<structfield>typbyval</structfield> had better be false. <structfield>typbyval</structfield> had better be false.
Variable-length types are always passed by reference. Note that Variable-length types are always passed by reference. Note that
...@@ -2415,7 +2416,8 @@ ...@@ -2415,7 +2416,8 @@
<structfield>typalign</structfield> is the alignment required <structfield>typalign</structfield> is the alignment required
when storing a value of this type. It applies to storage on when storing a value of this type. It applies to storage on
disk as well as most representations of the value inside disk as well as most representations of the value inside
Postgres. When multiple values are stored consecutively, such <productname>PostgreSQL</>.
When multiple values are stored consecutively, such
as in the representation of a complete row on disk, padding is as in the representation of a complete row on disk, padding is
inserted before a datum of this type so that it begins on the inserted before a datum of this type so that it begins on the
specified boundary. The alignment reference is the beginning specified boundary. The alignment reference is the beginning
...@@ -2493,7 +2495,23 @@ ...@@ -2493,7 +2495,23 @@
</tbody> </tbody>
</tgroup> </tgroup>
</table> </table>
</sect1> </sect1>
</chapter> </chapter>
<!-- 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-tabs-mode:nil
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"./reference.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:("/usr/share/sgml/catalog")
sgml-local-ecat-files:nil
End:
-->
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/charset.sgml,v 2.17 2001/11/19 03:58:24 tgl Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/charset.sgml,v 2.18 2001/11/21 05:53:40 thomas Exp $ -->
<chapter id="charset"> <chapter id="charset">
<title>Localization</> <title>Localization</>
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
</abstract> </abstract>
<para> <para>
<productname>Postgres</productname> supports localization with <productname>PostgreSQL</productname> supports localization with
three approaches: three approaches:
<itemizedlist> <itemizedlist>
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
<listitem> <listitem>
<para> <para>
Using explicit multiple-byte character sets defined in the Using explicit multiple-byte character sets defined in the
<productname>Postgres</productname> server to support languages <productname>PostgreSQL</productname> server to support languages
that require more characters than will fit into a single byte, that require more characters than will fit into a single byte,
and to provide character set recoding between client and server. and to provide character set recoding between client and server.
The number of supported character sets is fixed at the time the The number of supported character sets is fixed at the time the
...@@ -174,7 +174,7 @@ export LANG=sv_SE ...@@ -174,7 +174,7 @@ export LANG=sv_SE
The <envar>LC_COLLATE</> and <envar>LC_CTYPE</> variables affect the The <envar>LC_COLLATE</> and <envar>LC_CTYPE</> variables affect the
sort order of indexes. Therefore, these values must be kept fixed sort order of indexes. Therefore, these values must be kept fixed
for any particular database cluster, or indexes on text columns will for any particular database cluster, or indexes on text columns will
become corrupt. <productname>Postgres</productname> enforces this become corrupt. <productname>PostgreSQL</productname> enforces this
by recording the values of <envar>LC_COLLATE</> and <envar>LC_CTYPE</> by recording the values of <envar>LC_COLLATE</> and <envar>LC_CTYPE</>
that are seen by <application>initdb</>. The server automatically adopts that are seen by <application>initdb</>. The server automatically adopts
those two values when it is started; only the other <envar>LC_</> those two values when it is started; only the other <envar>LC_</>
...@@ -316,13 +316,13 @@ perl: warning: Falling back to the standard locale ("C"). ...@@ -316,13 +316,13 @@ perl: warning: Falling back to the standard locale ("C").
<para> <para>
Multibyte (<acronym>MB</acronym>) support is intended to allow Multibyte (<acronym>MB</acronym>) support is intended to allow
<productname>Postgres</productname> to handle <productname>PostgreSQL</productname> to handle
multiple-byte character sets such as <acronym>EUC</> (Extended Unix Code), Unicode and multiple-byte character sets such as <acronym>EUC</> (Extended Unix Code), Unicode and
Mule internal code. With <acronym>MB</acronym> enabled you can use multibyte Mule internal code. With <acronym>MB</acronym> enabled you can use multibyte
character sets in regular expressions (regexp), LIKE, and some character sets in regular expressions (regexp), LIKE, and some
other functions. The default other functions. The default
encoding system is selected while initializing your encoding system is selected while initializing your
<productname>Postgres</productname> installation using <productname>PostgreSQL</productname> installation using
<application>initdb</application>. Note that this can be <application>initdb</application>. Note that this can be
overridden when you create a database using overridden when you create a database using
<application>createdb</application> or by using the SQL command <application>createdb</application> or by using the SQL command
...@@ -472,13 +472,14 @@ perl: warning: Falling back to the standard locale ("C"). ...@@ -472,13 +472,14 @@ perl: warning: Falling back to the standard locale ("C").
<para> <para>
CAUTION2: Not all API supports encodings listed above. For example, CAUTION2: Not all API supports encodings listed above. For example,
PostgreSQL JDBC driver does not support MULE_INTERNAL, LATIN6, <productname>PostgreSQL</>
JDBC driver does not support MULE_INTERNAL, LATIN6,
LATIN8 and LATIN10. LATIN8 and LATIN10.
</para> </para>
<para> <para>
Here is an example of configuring Here is an example of configuring
<productname>Postgres</productname> to use a Japanese encoding by <productname>PostgreSQL</productname> to use a Japanese encoding by
default: default:
<programlisting> <programlisting>
...@@ -497,7 +498,7 @@ perl: warning: Falling back to the standard locale ("C"). ...@@ -497,7 +498,7 @@ perl: warning: Falling back to the standard locale ("C").
<para> <para>
<application>initdb</application> defines the default encoding <application>initdb</application> defines the default encoding
for a <productname>Postgres</productname> installation. For example: for a <productname>PostgreSQL</productname> installation. For example:
<programlisting> <programlisting>
% initdb -E EUC_JP % initdb -E EUC_JP
...@@ -554,7 +555,7 @@ $ psql -l ...@@ -554,7 +555,7 @@ $ psql -l
frontend</title> frontend</title>
<para> <para>
<productname>Postgres</productname> supports an automatic <productname>PostgreSQL</productname> supports an automatic
encoding translation between backend encoding translation between backend
and frontend for some encodings. and frontend for some encodings.
...@@ -727,7 +728,7 @@ $ psql -l ...@@ -727,7 +728,7 @@ $ psql -l
<para> <para>
To enable the automatic encoding translation, you have to tell To enable the automatic encoding translation, you have to tell
<productname>Postgres</productname> the encoding you would like <productname>PostgreSQL</productname> the encoding you would like
to use in frontend. There are to use in frontend. There are
several ways to accomplish this. several ways to accomplish this.
...@@ -827,8 +828,8 @@ RESET CLIENT_ENCODING; ...@@ -827,8 +828,8 @@ RESET CLIENT_ENCODING;
<para> <para>
An automatic encoding translation between Unicode and other An automatic encoding translation between Unicode and other
encodings has been supported since PostgreSQL 7.1. encodings has been supported since <productname>PostgreSQL</> 7.1.
For 7.1 it's not enabled by default. For 7.1 it was not enabled by default.
To enable this feature, run configure with the To enable this feature, run configure with the
<option>--enable-unicode-conversion</option> option. Note that this requires <option>--enable-unicode-conversion</option> option. Note that this requires
the <option>--enable-multibyte</option> option also. the <option>--enable-multibyte</option> option also.
...@@ -972,7 +973,7 @@ April 21, 1998 some enhancements/fixes ...@@ -972,7 +973,7 @@ April 21, 1998 some enhancements/fixes
* fix problem in regress/regress.sh in case of System V * fix problem in regress/regress.sh in case of System V
* fix toupper(), tolower() to handle 8bit chars * fix toupper(), tolower() to handle 8bit chars
Mar 25, 1998 MB PL2 is incorporated into PostgreSQL 6.3.1 Mar 25, 1998 MB PL2 is incorporated into <productname>PostgreSQL</> 6.3.1
Mar 10, 1998 PL2 released Mar 10, 1998 PL2 released
* add regression test for EUC_JP, EUC_CN and MULE_INTERNAL * add regression test for EUC_JP, EUC_CN and MULE_INTERNAL
...@@ -995,7 +996,7 @@ Version: 0.91 for PgSQL 6.5 ...@@ -995,7 +996,7 @@ Version: 0.91 for PgSQL 6.5
Author: Pavel Behal Author: Pavel Behal
Revised by: Tatsuo Ishii Revised by: Tatsuo Ishii
Email: behal@opf.slu.cz Email: behal@opf.slu.cz
Licence: The Same as PostgreSQL License: The Same as <productname>PostgreSQL</>
Sorry for my Eglish and C code, I'm not native :-) Sorry for my Eglish and C code, I'm not native :-)
...@@ -1003,7 +1004,7 @@ Sorry for my Eglish and C code, I'm not native :-) ...@@ -1003,7 +1004,7 @@ Sorry for my Eglish and C code, I'm not native :-)
--> -->
The WIN1250 character set on Windows client platforms can be used The WIN1250 character set on Windows client platforms can be used
with <productname>Postgres</productname> with locale support with <productname>PostgreSQL</productname> with locale support
enabled. enabled.
</para> </para>
...@@ -1080,7 +1081,7 @@ Sorry for my Eglish and C code, I'm not native :-) ...@@ -1080,7 +1081,7 @@ Sorry for my Eglish and C code, I'm not native :-)
<title>WIN1250 on Windows/ODBC</title> <title>WIN1250 on Windows/ODBC</title>
<step> <step>
<para> <para>
Compile <productname>Postgres</productname> with locale enabled Compile <productname>PostgreSQL</productname> with locale enabled
and the multibyte encoding set to <literal>LATIN2</literal>. and the multibyte encoding set to <literal>LATIN2</literal>.
</para> </para>
</step> </step>
......
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/client-auth.sgml,v 1.28 2001/11/19 03:58:24 tgl Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/client-auth.sgml,v 1.29 2001/11/21 05:53:40 thomas Exp $ -->
<chapter id="client-authentication"> <chapter id="client-authentication">
<title>Client Authentication</title> <title>Client Authentication</title>
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<para> <para>
When a client application connects to the database server, it specifies which When a client application connects to the database server, it specifies which
<productname>Postgres</productname> user name it wants to connect as, <productname>PostgreSQL</productname> user name it wants to connect as,
much the same way one logs into a Unix computer as a particular user. much the same way one logs into a Unix computer as a particular user.
Within the SQL environment the active Within the SQL environment the active
database user name determines access privileges to database database user name determines access privileges to database
...@@ -27,14 +27,14 @@ ...@@ -27,14 +27,14 @@
</para> </para>
<para> <para>
<productname>Postgres</productname> offers a number of different <productname>PostgreSQL</productname> offers a number of different
client authentication methods. The method to be used can be selected client authentication methods. The method to be used can be selected
on the basis of (client) host and database; some authentication methods on the basis of (client) host and database; some authentication methods
allow you to restrict by user name as well. allow you to restrict by user name as well.
</para> </para>
<para> <para>
<productname>Postgres</productname> database user names are logically <productname>PostgreSQL</productname> database user names are logically
separate from user names of the operating system in which the server separate from user names of the operating system in which the server
runs. If all the users of a particular server also have accounts on runs. If all the users of a particular server also have accounts on
the server's machine, it makes sense to assign database user names the server's machine, it makes sense to assign database user names
...@@ -136,7 +136,7 @@ hostssl <replaceable>database</replaceable> <replaceable>IP-address</replaceable ...@@ -136,7 +136,7 @@ hostssl <replaceable>database</replaceable> <replaceable>IP-address</replaceable
<literal>all</literal> specifies that it applies to all <literal>all</literal> specifies that it applies to all
databases, while the value <literal>sameuser</> identifies the databases, while the value <literal>sameuser</> identifies the
database with the same name as the connecting user. Otherwise, database with the same name as the connecting user. Otherwise,
this is the name of a specific <productname>Postgres</productname> this is the name of a specific <productname>PostgreSQL</productname>
database. database.
</para> </para>
</listitem> </listitem>
...@@ -152,7 +152,7 @@ hostssl <replaceable>database</replaceable> <replaceable>IP-address</replaceable ...@@ -152,7 +152,7 @@ hostssl <replaceable>database</replaceable> <replaceable>IP-address</replaceable
record applies, based on their IP record applies, based on their IP
address. (Of course IP addresses can be spoofed but this address. (Of course IP addresses can be spoofed but this
consideration is beyond the scope of consideration is beyond the scope of
<productname>Postgres</productname>.) The precise logic is that <productname>PostgreSQL</productname>.) The precise logic is that
<blockquote> <blockquote>
<informalfigure> <informalfigure>
<programlisting>(<replaceable>actual-IP-address</replaceable> xor <replaceable>IP-address-field</replaceable>) and <replaceable>IP-mask-field</replaceable></programlisting> <programlisting>(<replaceable>actual-IP-address</replaceable> xor <replaceable>IP-address-field</replaceable>) and <replaceable>IP-mask-field</replaceable></programlisting>
...@@ -179,7 +179,7 @@ hostssl <replaceable>database</replaceable> <replaceable>IP-address</replaceable ...@@ -179,7 +179,7 @@ hostssl <replaceable>database</replaceable> <replaceable>IP-address</replaceable
<para> <para>
The connection is allowed unconditionally. This method allows The connection is allowed unconditionally. This method allows
any user that has login access to the client host to connect as any user that has login access to the client host to connect as
any <productname>Postgres</productname> user whatsoever. any <productname>PostgreSQL</productname> user whatsoever.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
...@@ -277,7 +277,7 @@ hostssl <replaceable>database</replaceable> <replaceable>IP-address</replaceable ...@@ -277,7 +277,7 @@ hostssl <replaceable>database</replaceable> <replaceable>IP-address</replaceable
<listitem> <listitem>
<para> <para>
The identity of the user as determined on login to the The identity of the user as determined on login to the
operating system is used by <productname>Postgres</productname> operating system is used by <productname>PostgreSQL</productname>
to determine whether the user to determine whether the user
is allowed to connect as the requested database user. is allowed to connect as the requested database user.
For TCP/IP connections the user's identity is determined by For TCP/IP connections the user's identity is determined by
...@@ -413,7 +413,7 @@ host all 0.0.0.0 0.0.0.0 krb5 ...@@ -413,7 +413,7 @@ host all 0.0.0.0 0.0.0.0 krb5
# Allow users from 192.168.x.x hosts to connect to any database, if they # Allow users from 192.168.x.x hosts to connect to any database, if they
# pass the ident check. If, for example, ident says the user is "bryanh" # pass the ident check. If, for example, ident says the user is "bryanh"
# and he requests to connect as PostgreSQL user "guest1", the connection # and he requests to connect as <productname>PostgreSQL</> user "guest1", the connection
# is allowed if there is an entry in pg_ident.conf for map "omicron" that # is allowed if there is an entry in pg_ident.conf for map "omicron" that
# says "bryanh" is allowed to connect as "guest1": # says "bryanh" is allowed to connect as "guest1":
...@@ -451,7 +451,7 @@ local all md5 admins ...@@ -451,7 +451,7 @@ local all md5 admins
</indexterm> </indexterm>
<para> <para>
<productname>Postgres</> database passwords are separate from <productname>PostgreSQL</productname> database passwords are separate from
operating system user passwords. Ordinarily, the password for each operating system user passwords. Ordinarily, the password for each
database user is stored in the pg_shadow system catalog table. database user is stored in the pg_shadow system catalog table.
Passwords can be managed with the query language commands Passwords can be managed with the query language commands
...@@ -486,7 +486,7 @@ local all md5 admins ...@@ -486,7 +486,7 @@ local all md5 admins
ignored. The password is expected to be encrypted using the ignored. The password is expected to be encrypted using the
system's <function>crypt()</function> function. The utility system's <function>crypt()</function> function. The utility
program <application>pg_passwd</application> that is installed program <application>pg_passwd</application> that is installed
with <productname>Postgres</productname> can be used to manage with <productname>PostgreSQL</productname> can be used to manage
these password files. these password files.
</para> </para>
...@@ -546,7 +546,7 @@ local all md5 admins ...@@ -546,7 +546,7 @@ local all md5 admins
</para> </para>
<para> <para>
<productname>Postgres</> operates like a normal Kerberos service. <productname>PostgreSQL</> operates like a normal Kerberos service.
The name of the service principal is The name of the service principal is
<replaceable>servicename/hostname@realm</>, where <replaceable>servicename/hostname@realm</>, where
<replaceable>servicename</> is <literal>postgres</literal> <replaceable>servicename</> is <literal>postgres</literal>
...@@ -558,18 +558,19 @@ local all md5 admins ...@@ -558,18 +558,19 @@ local all md5 admins
</para> </para>
<para> <para>
Client principals must have their <productname>Postgres</> username as Client principals must have their <productname>PostgreSQL</> username as
their first component, for example their first component, for example
<replaceable>pgusername/otherstuff@realm</>. <replaceable>pgusername/otherstuff@realm</>.
At present the realm of the client is not checked by At present the realm of the client is not checked by
<productname>Postgres</>; so <productname>PostgreSQL</>; so
if you have cross-realm authentication enabled, then any principal if you have cross-realm authentication enabled, then any principal
in any realm that can communicate with yours will be accepted. in any realm that can communicate with yours will be accepted.
</para> </para>
<para> <para>
Make sure that your server key file is readable (and Make sure that your server key file is readable (and
preferably only readable) by the Postgres server account (see preferably only readable) by the
<productname>PostgreSQL</productname> server account (see
<xref linkend="postgres-user">). The location of the key file <xref linkend="postgres-user">). The location of the key file
is specified with the <varname>krb_server_keyfile</> run time is specified with the <varname>krb_server_keyfile</> run time
configuration parameter. (See also <xref linkend="runtime-config">.) configuration parameter. (See also <xref linkend="runtime-config">.)
...@@ -621,7 +622,7 @@ local all md5 admins ...@@ -621,7 +622,7 @@ local all md5 admins
is to answer questions like <quote>What user initiated the is to answer questions like <quote>What user initiated the
connection that goes out of your port <replaceable>X</replaceable> connection that goes out of your port <replaceable>X</replaceable>
and connects to my port <replaceable>Y</replaceable>?</quote>. and connects to my port <replaceable>Y</replaceable>?</quote>.
Since <productname>Postgres</> knows both <replaceable>X</> and Since <productname>PostgreSQL</> knows both <replaceable>X</> and
<replaceable>Y</> when a physical connection is established, it <replaceable>Y</> when a physical connection is established, it
can interrogate the ident server on the host of the connecting can interrogate the ident server on the host of the connecting
client and could theoretically determine the operating system user client and could theoretically determine the operating system user
...@@ -657,7 +658,7 @@ local all md5 admins ...@@ -657,7 +658,7 @@ local all md5 admins
<para> <para>
When using ident-based authentication, after having determined the When using ident-based authentication, after having determined the
name of the operating system user that initiated the connection, name of the operating system user that initiated the connection,
<productname>Postgres</productname> checks whether that user is allowed <productname>PostgreSQL</productname> checks whether that user is allowed
to connect as the database user he is requesting to connect as. to connect as the database user he is requesting to connect as.
This is controlled by the ident map This is controlled by the ident map
argument that follows the <literal>ident</> keyword in the argument that follows the <literal>ident</> keyword in the
...@@ -707,7 +708,8 @@ local all md5 admins ...@@ -707,7 +708,8 @@ local all md5 admins
logged in to a machine on the 192.168 network that does not have logged in to a machine on the 192.168 network that does not have
the Unix user name <systemitem>bryanh</>, <systemitem>ann</>, or <systemitem>robert</> would not be granted access. the Unix user name <systemitem>bryanh</>, <systemitem>ann</>, or <systemitem>robert</> would not be granted access.
Unix user <systemitem>robert</> would only be allowed access when he tries to Unix user <systemitem>robert</> would only be allowed access when he tries to
connect as Postgres user <systemitem>bob</>, not as <systemitem>robert</> connect as <productname>PostgreSQL</> user <systemitem>bob</>,
not as <systemitem>robert</>
or anyone else. <systemitem>ann</> would only be allowed to connect as or anyone else. <systemitem>ann</> would only be allowed to connect as
<systemitem>ann</>. User <systemitem>bryanh</> would be allowed to connect as either <systemitem>ann</>. User <systemitem>bryanh</> would be allowed to connect as either
<systemitem>bryanh</> himself or as <systemitem>guest1</>. <systemitem>bryanh</> himself or as <systemitem>guest1</>.
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<!-- <!--
<Para> <Para>
Support for <productname>Postgres</productname> comes primarily from Support for <productname>PostgreSQL</productname> comes primarily from
this printed documentation, the web-based mailing list archives, this printed documentation, the web-based mailing list archives,
and the mailing lists themselves. and the mailing lists themselves.
</Para> </Para>
...@@ -13,7 +13,7 @@ and the mailing lists themselves. ...@@ -13,7 +13,7 @@ and the mailing lists themselves.
<Para> <Para>
Refer to the introduction in this manual or to the Refer to the introduction in this manual or to the
<ulink url="http://www.postgresql.org"><productname>Postgres</productname> web page</ulink> <ulink url="http://www.postgresql.org"><productname>PostgreSQL</productname> web page</ulink>
for subscription information to the no-cost mailing lists. for subscription information to the no-cost mailing lists.
</Para> </Para>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/cvs.sgml,v 1.19 2001/10/09 18:45:59 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/cvs.sgml,v 1.20 2001/11/21 05:53:40 thomas Exp $
CVS code repository CVS code repository
Thomas Lockhart Thomas Lockhart
--> -->
...@@ -26,7 +26,7 @@ Thomas Lockhart ...@@ -26,7 +26,7 @@ Thomas Lockhart
<title>The <productname>CVS</productname> Repository</title> <title>The <productname>CVS</productname> Repository</title>
<para> <para>
The <productname>Postgres</productname> source code is stored and managed using the The <productname>PostgreSQL</productname> source code is stored and managed using the
<productname>CVS</productname> code management system. <productname>CVS</productname> code management system.
</para> </para>
...@@ -34,7 +34,7 @@ Thomas Lockhart ...@@ -34,7 +34,7 @@ Thomas Lockhart
At least two methods, At least two methods,
anonymous CVS and <productname>CVSup</productname>, anonymous CVS and <productname>CVSup</productname>,
are available to pull the <productname>CVS</productname> code tree from the are available to pull the <productname>CVS</productname> code tree from the
<productname>Postgres</productname> server to your local machine. <productname>PostgreSQL</productname> server to your local machine.
</para> </para>
<sect1 id="anoncvs"> <sect1 id="anoncvs">
...@@ -78,12 +78,12 @@ $ cvs -d :pserver:anoncvs@anoncvs.postgresql.org:/projects/cvsroot login ...@@ -78,12 +78,12 @@ $ cvs -d :pserver:anoncvs@anoncvs.postgresql.org:/projects/cvsroot login
<step> <step>
<para> <para>
Fetch the <productname>Postgres</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>
which installs the <productname>Postgres</productname> sources into a which installs the <productname>PostgreSQL</productname> sources into a
subdirectory <filename>pgsql</filename> subdirectory <filename>pgsql</filename>
of the directory you are currently in. of the directory you are currently in.
...@@ -160,7 +160,7 @@ $ chmod -R go-w pgsql ...@@ -160,7 +160,7 @@ $ chmod -R go-w pgsql
<para> <para>
<productname>CVS</productname> can do a lot of other things, <productname>CVS</productname> can do a lot of other things,
such as fetching prior revisions such as fetching prior revisions
of the <productname>Postgres</productname> sources of the <productname>PostgreSQL</productname> sources
rather than the latest development version. rather than the latest development version.
For more info consult the manual that comes with For more info consult the manual that comes with
<productname>CVS</productname>, or see the online <productname>CVS</productname>, or see the online
...@@ -292,7 +292,7 @@ cvs commit ...@@ -292,7 +292,7 @@ cvs commit
<para> <para>
An alternative to using anonymous CVS for retrieving An alternative to using anonymous CVS for retrieving
the <productname>Postgres</productname> source tree the <productname>PostgreSQL</productname> source tree
is <productname>CVSup</productname>. is <productname>CVSup</productname>.
<productname>CVSup</productname> was developed by <productname>CVSup</productname> was developed by
John Polstra (<email>jdp@polstra.com</email>) to John Polstra (<email>jdp@polstra.com</email>) to
...@@ -306,7 +306,7 @@ cvs commit ...@@ -306,7 +306,7 @@ cvs commit
replicate the <emphasis>entire</emphasis> CVS repository on your local system, replicate the <emphasis>entire</emphasis> CVS repository on your local system,
allowing fast local access to cvs operations such as <option>log</option> allowing fast local access to cvs operations such as <option>log</option>
and <option>diff</option>. Other advantages include fast synchronization to and <option>diff</option>. Other advantages include fast synchronization to
the <productname>Postgres</productname> server due to an efficient the <productname>PostgreSQL</productname> server due to an efficient
streaming transfer protocol which only sends the changes since the last update. streaming transfer protocol which only sends the changes since the last update.
</para> </para>
...@@ -327,7 +327,7 @@ cvs commit ...@@ -327,7 +327,7 @@ cvs commit
<productname>CVS</productname> repository. On one of our systems we <productname>CVS</productname> repository. On one of our systems we
recently set up a repository in <filename>/home/cvs/</filename>, recently set up a repository in <filename>/home/cvs/</filename>,
but had formerly kept it under a but had formerly kept it under a
<productname>Postgres</productname> development tree in <productname>PostgreSQL</productname> development tree in
<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
...@@ -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>
<programlisting> <programlisting>
# This file represents the standard CVSup distribution file # This file represents the standard CVSup distribution file
# for the PostgreSQL ORDBMS project # for the <productname>PostgreSQL</> ORDBMS project
# Modified by lockhart@alumni.caltech.edu 1997-08-28 # Modified by lockhart@alumni.caltech.edu 1997-08-28
# - Point to my local snapshot source tree # - Point to my local snapshot source tree
# - Pull the full CVS repository, not just the latest snapshot # - Pull the full CVS repository, not just the latest snapshot
...@@ -430,12 +430,12 @@ pgsql ...@@ -430,12 +430,12 @@ pgsql
<para> <para>
The following is a suggested <productname>CVSup</productname> config file from The following is a suggested <productname>CVSup</productname> config file from
<ulink url="ftp://ftp.postgresql.org/pub/CVSup/README.cvsup">the Postgres ftp site</ulink> <ulink url="ftp://ftp.postgresql.org/pub/CVSup/README.cvsup">the <productname>PostgreSQL</> 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 PostgreSQL ORDBMS project # for the <productname>PostgreSQL</> ORDBMS project
# #
# Defaults that apply to all the collections # Defaults that apply to all the collections
*default host=cvsup.postgresql.org *default host=cvsup.postgresql.org
...@@ -479,7 +479,7 @@ pgsql ...@@ -479,7 +479,7 @@ pgsql
You can use pre-built binaries You can use pre-built binaries
if you have a platform for which binaries if you have a platform for which binaries
are posted on are posted on
<ulink url="ftp://ftp.postgresql.org/pub">the <productname>Postgres</productname> ftp site</ulink>, <ulink url="ftp://ftp.postgresql.org/pub">the <productname>PostgreSQL</productname> ftp site</ulink>,
or if you are running FreeBSD, for which or if you are running FreeBSD, for which
<productname>CVSup</productname> is available as a port. <productname>CVSup</productname> is available as a port.
...@@ -520,7 +520,7 @@ pgsql ...@@ -520,7 +520,7 @@ pgsql
<step performance="optional"> <step performance="optional">
<para> <para>
If you have another platform, check for and download the appropriate binary from If you have another platform, check for and download the appropriate binary from
<ulink url="ftp://ftp.postgresql.org/pub">the <productname>Postgres</productname> ftp site</ulink>. <ulink url="ftp://ftp.postgresql.org/pub">the <productname>PostgreSQL</productname> ftp site</ulink>.
</para> </para>
</step> </step>
</substeps> </substeps>
...@@ -764,7 +764,7 @@ malloc in place, the CVSup system should be rock solid. We have ...@@ -764,7 +764,7 @@ malloc in place, the CVSup system should be rock solid. We have
servers that have been up for weeks and have served many thousands servers that have been up for weeks and have served many thousands
of clients without any observed problems. of clients without any observed problems.
> We hope to have the Postgres tree using CVSup within a month or > We hope to have the PostgreSQL tree using CVSup within a month or
> so, and hope to retire sup in September... > so, and hope to retire sup in September...
Great! I'll do my best to help make sure you don't regret it. Great! I'll do my best to help make sure you don't regret it.
......
This diff is collapsed.
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/datetime.sgml,v 2.22 2001/09/28 08:15:35 thomas Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/datetime.sgml,v 2.23 2001/11/21 05:53:41 thomas Exp $
Date/time details Date/time details
--> -->
<appendix id="datetime-appendix"> <appendix id="datetime-appendix">
<title id="datetime-appendix-title">Date/Time Support</title> <title id="datetime-appendix-title">Date/Time Support</title>
<sect1 id="timezones"> <sect1 id="timezones">
...@@ -14,14 +14,14 @@ Date/time details ...@@ -14,14 +14,14 @@ Date/time details
</indexterm> </indexterm>
<para> <para>
<productname>Postgres</productname> contains internal tabular <productname>PostgreSQL</productname> contains internal tabular
information for time zone decoding, since there is no *nix standard information for time zone decoding, since there is no *nix standard
system interface to provide access to general, cross-timezone system interface to provide access to general, cross-timezone
information. The underlying OS <emphasis>is</emphasis> used to information. The underlying OS <emphasis>is</emphasis> used to
provide time zone information for <emphasis>output</emphasis>, however. provide time zone information for <emphasis>output</emphasis>, however.
<table tocentry="1"> <table tocentry="1">
<title><productname>Postgres</productname> Recognized Time Zones</title> <title><productname>PostgreSQL</productname> Recognized Time Zones</title>
<titleabbrev>Time Zones</titleabbrev> <titleabbrev>Time Zones</titleabbrev>
<tgroup cols="3"> <tgroup cols="3">
<thead> <thead>
...@@ -162,11 +162,64 @@ Date/time details ...@@ -162,11 +162,64 @@ Date/time details
<entry>+7:00</entry> <entry>+7:00</entry>
<entry>West Australian Standard Time</entry> <entry>West Australian Standard Time</entry>
</row> </row>
<row>
<entry>CXT</entry>
<entry>+7:00</entry>
<entry>Christmas (Island) Time</entry>
</row>
<!--
Conflicts with China Coastal Time
<row>
<entry>CCT</entry>
<entry>+6:30 </entry>
<entry>Cocos Island Time</entry>
</row>
-->
<row>
<entry>IOT</entry>
<entry>+5:00</entry>
<entry>Indian Chagos Time</entry>
</row>
<row>
<entry>MVT</entry>
<entry>+5:00</entry>
<entry>Maldives Island Time</entry>
</row>
<row>
<entry>TFT</entry>
<entry>+5:00</entry>
<entry>Kerguelen Time</entry>
</row>
<row>
<entry>EAST</entry>
<entry>+4:00</entry>
<entry>Antananarivo Savings Time</entry>
</row>
<row>
<entry>MUT</entry>
<entry>+4:00</entry>
<entry>Mauritius Island Time</entry>
</row>
<row>
<entry>RET</entry>
<entry>+4:00</entry>
<entry>Reunion Island Time</entry>
</row>
<row>
<entry>SCT</entry>
<entry>+4:00</entry>
<entry>Mahe Island Time</entry>
</row>
<row> <row>
<entry>IT</entry> <entry>IT</entry>
<entry>+3:30</entry> <entry>+3:30</entry>
<entry>Iran Time</entry> <entry>Iran Time</entry>
</row> </row>
<row>
<entry>EAT</entry>
<entry>+3:00</entry>
<entry>Antananarivo, Comoro Time</entry>
</row>
<row> <row>
<entry>BT</entry> <entry>BT</entry>
<entry>+3:00 </entry> <entry>+3:00 </entry>
...@@ -177,6 +230,16 @@ Date/time details ...@@ -177,6 +230,16 @@ Date/time details
<entry>+3:00 </entry> <entry>+3:00 </entry>
<entry>Eastern Europe Daylight Savings Time</entry> <entry>Eastern Europe Daylight Savings Time</entry>
</row> </row>
<row>
<entry>BDST</entry>
<entry>+2:00 </entry>
<entry>British Double Standard Time</entry>
</row>
<row>
<entry>CEST</entry>
<entry>+2:00 </entry>
<entry>Central European Savings Time</entry>
</row>
<row> <row>
<entry>CETDST</entry> <entry>CETDST</entry>
<entry>+2:00 </entry> <entry>+2:00 </entry>
...@@ -312,13 +375,13 @@ Date/time details ...@@ -312,13 +375,13 @@ Date/time details
<entry>-4:00 </entry> <entry>-4:00 </entry>
<entry>Eastern Daylight Time</entry> <entry>Eastern Daylight Time</entry>
</row> </row>
<!-- <!--
<row> <row>
<entry>ZP4</entry> <entry>ZP4</entry>
<entry>-4:00</entry> <entry>-4:00</entry>
<entry>GMT +4 hours</entry> <entry>GMT +4 hours</entry>
</row> </row>
--> -->
<row> <row>
<entry>CDT</entry> <entry>CDT</entry>
<entry>-5:00 </entry> <entry>-5:00 </entry>
...@@ -329,13 +392,13 @@ Date/time details ...@@ -329,13 +392,13 @@ Date/time details
<entry>-5:00 </entry> <entry>-5:00 </entry>
<entry>Eastern Standard Time</entry> <entry>Eastern Standard Time</entry>
</row> </row>
<!-- <!--
<row> <row>
<entry>ZP5</entry> <entry>ZP5</entry>
<entry>-5:00</entry> <entry>-5:00</entry>
<entry>GMT +5 hours</entry> <entry>GMT +5 hours</entry>
</row> </row>
--> -->
<row> <row>
<entry>CST</entry> <entry>CST</entry>
<entry>-6:00 </entry> <entry>-6:00 </entry>
...@@ -346,13 +409,13 @@ Date/time details ...@@ -346,13 +409,13 @@ Date/time details
<entry>-6:00</entry> <entry>-6:00</entry>
<entry>Mountain Daylight Time</entry> <entry>Mountain Daylight Time</entry>
</row> </row>
<!-- <!--
<row> <row>
<entry>ZP6</entry> <entry>ZP6</entry>
<entry>-6:00</entry> <entry>-6:00</entry>
<entry>GMT +6 hours</entry> <entry>GMT +6 hours</entry>
</row> </row>
--> -->
<row> <row>
<entry>MST</entry> <entry>MST</entry>
<entry>-7:00</entry> <entry>-7:00</entry>
...@@ -414,7 +477,7 @@ Date/time details ...@@ -414,7 +477,7 @@ Date/time details
<para> <para>
Australian time zones and their naming variants Australian time zones and their naming variants
account for fully one quarter of all time zones in the account for fully one quarter of all time zones in the
<productname>Postgres</productname> time zone lookup table. <productname>PostgreSQL</productname> time zone lookup table.
There are two naming conflicts with time zones commonly used There are two naming conflicts with time zones commonly used
in the United States, <literal>CST</literal> and <literal>EST</literal>. in the United States, <literal>CST</literal> and <literal>EST</literal>.
</para> </para>
...@@ -429,7 +492,7 @@ Date/time details ...@@ -429,7 +492,7 @@ Date/time details
noise word indicating <literal>Saturday</literal>. noise word indicating <literal>Saturday</literal>.
<table tocentry="1"> <table tocentry="1">
<title><productname>Postgres</productname> Australian Time Zones</title> <title><productname>PostgreSQL</productname> Australian Time Zones</title>
<titleabbrev>Australian Time Zones</titleabbrev> <titleabbrev>Australian Time Zones</titleabbrev>
<tgroup cols="3"> <tgroup cols="3">
<thead> <thead>
...@@ -626,7 +689,7 @@ Date/time details ...@@ -626,7 +689,7 @@ Date/time details
<para> <para>
Gregorian years 1-99AD may be entered by using 4 digits with leading Gregorian years 1-99AD may be entered by using 4 digits with leading
zeros (e.g. 0099 is 99AD). Previous versions of zeros (e.g. 0099 is 99AD). Previous versions of
<productname>Postgres</productname> accepted years with three <productname>PostgreSQL</productname> accepted years with three
digits and with single digits, but as of version 7.0 the rules have digits and with single digits, but as of version 7.0 the rules have
been tightened up to reduce the possibility of ambiguity. been tightened up to reduce the possibility of ambiguity.
</para> </para>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/dfunc.sgml,v 1.16 2001/11/12 19:19:39 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/dfunc.sgml,v 1.17 2001/11/21 05:53:41 thomas Exp $
--> -->
<sect2 id="dfunc"> <sect2 id="dfunc">
...@@ -51,7 +51,8 @@ $Header: /cvsroot/pgsql/doc/src/sgml/dfunc.sgml,v 1.16 2001/11/12 19:19:39 peter ...@@ -51,7 +51,8 @@ $Header: /cvsroot/pgsql/doc/src/sgml/dfunc.sgml,v 1.16 2001/11/12 19:19:39 peter
<!-- <!--
Note: Reading GNU Libtool sources is generally a good way of figuring out Note: Reading GNU Libtool sources is generally a good way of figuring out
this information. The methods used within PostgreSQL source code are not this information. The methods used within
<productname>PostgreSQL</> source code are not
necessarily ideal. necessarily ideal.
--> -->
...@@ -272,7 +273,7 @@ gcc -shared -o foo.so foo.o ...@@ -272,7 +273,7 @@ gcc -shared -o foo.so foo.o
<para> <para>
The resulting shared library file can then be loaded into The resulting shared library file can then be loaded into
<productname>Postgres</productname>. When specifying the file name <productname>PostgreSQL</productname>. When specifying the file name
to the <command>CREATE FUNCTION</command> command, one must give it to the <command>CREATE FUNCTION</command> command, one must give it
the name of the shared library file, not the intermediate object file. the name of the shared library file, not the intermediate object file.
Note that the system's standard shared-library extension (usually Note that the system's standard shared-library extension (usually
...@@ -303,7 +304,8 @@ ld <other flags> -H512 -T512 -o foo.so -e _nostart \e ...@@ -303,7 +304,8 @@ ld <other flags> -H512 -T512 -o foo.so -e _nostart \e
-bI:.../lib/postgres.exp -bE:foo.exp foo.o \e -bI:.../lib/postgres.exp -bE:foo.exp foo.o \e
-lm -lc 2>/dev/null -lm -lc 2>/dev/null
.fi .fi
You should look at the Postgres User's Manual for an explanation of this You should look at the <citetitle>PostgreSQL User's Manual</>
for an explanation of this
procedure. procedure.
--> -->
...@@ -318,11 +320,12 @@ sgml-shorttag:t ...@@ -318,11 +320,12 @@ sgml-shorttag:t
sgml-minimize-attributes:nil sgml-minimize-attributes:nil
sgml-always-quote-attributes:t sgml-always-quote-attributes:t
sgml-indent-step:1 sgml-indent-step:1
sgml-indent-tabs-mode:nil
sgml-indent-data:t sgml-indent-data:t
sgml-parent-document:nil sgml-parent-document:nil
sgml-default-dtd-file:"./reference.ced" sgml-default-dtd-file:"./reference.ced"
sgml-exposed-tags:nil sgml-exposed-tags:nil
sgml-local-catalogs:("/usr/lib/sgml/catalog") sgml-local-catalogs:("/usr/share/sgml/catalog")
sgml-local-ecat-files:nil sgml-local-ecat-files:nil
End: End:
--> -->
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/docguide.sgml,v 1.35 2001/10/09 18:45:59 petere Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/docguide.sgml,v 1.36 2001/11/21 05:53:41 thomas Exp $ -->
<appendix id="docguide"> <appendix id="docguide">
<title>Documentation</title> <title>Documentation</title>
...@@ -68,7 +68,7 @@ ...@@ -68,7 +68,7 @@
<listitem> <listitem>
<para> <para>
<citetitle>Developer's Guide</citetitle>: assorted information <citetitle>Developer's Guide</citetitle>: assorted information
for developers of PostgreSQL proper for developers of <productname>PostgreSQL</> proper
</para> </para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ecpg.sgml,v 1.30 2001/11/12 19:19:39 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ecpg.sgml,v 1.31 2001/11/21 05:53:41 thomas Exp $
--> -->
<chapter id="ecpg"> <chapter id="ecpg">
...@@ -32,11 +32,11 @@ $Header: /cvsroot/pgsql/doc/src/sgml/ecpg.sgml,v 1.30 2001/11/12 19:19:39 petere ...@@ -32,11 +32,11 @@ $Header: /cvsroot/pgsql/doc/src/sgml/ecpg.sgml,v 1.30 2001/11/12 19:19:39 petere
<para> <para>
This describes the embedded <acronym>SQL</acronym> package for This describes the embedded <acronym>SQL</acronym> package for
<productname>Postgres</productname>. It works with <productname>PostgreSQL</productname>. It works with
<acronym>C</acronym> and <acronym>C++</acronym>. It was written by <acronym>C</acronym> and <acronym>C++</acronym>. It was written by
Linus Tolke (<email>linus@epact.se</email>) and Michael Meskes Linus Tolke (<email>linus@epact.se</email>) and Michael Meskes
(<email>meskes@debian.org</email>). The package is installed with the (<email>meskes@debian.org</email>). The package is installed with the
<productname>Postgres</> distribution, and carries a similar license. <productname>PostgreSQL</> distribution, and carries a similar license.
</para> </para>
<sect1 id="ecpg-why"> <sect1 id="ecpg-why">
...@@ -55,7 +55,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/ecpg.sgml,v 1.30 2001/11/12 19:19:39 petere ...@@ -55,7 +55,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/ecpg.sgml,v 1.30 2001/11/12 19:19:39 petere
should work. <application>ecpg</application> was designed to match should work. <application>ecpg</application> was designed to match
this standard as much as possible. It is possible to port embedded this standard as much as possible. It is possible to port embedded
<acronym>SQL</acronym> programs written for other <acronym>SQL</acronym> programs written for other
<acronym>RDBMS</acronym> to <productname>Postgres</productname>. <acronym>RDBMS</acronym> to <productname>PostgreSQL</productname>.
</para> </para>
</sect1> </sect1>
...@@ -99,7 +99,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/ecpg.sgml,v 1.30 2001/11/12 19:19:39 petere ...@@ -99,7 +99,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/ecpg.sgml,v 1.30 2001/11/12 19:19:39 petere
<para> <para>
The preprocessor is called <application>ecpg</application>. After The preprocessor is called <application>ecpg</application>. After
installation it resides in the <productname>Postgres</productname> installation it resides in the <productname>PostgreSQL</productname>
<filename>bin/</filename> directory. <filename>bin/</filename> directory.
</para> </para>
</sect2> </sect2>
...@@ -111,7 +111,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/ecpg.sgml,v 1.30 2001/11/12 19:19:39 petere ...@@ -111,7 +111,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/ecpg.sgml,v 1.30 2001/11/12 19:19:39 petere
<filename>libecpg.a</filename> or <filename>libecpg.so</filename>. <filename>libecpg.a</filename> or <filename>libecpg.so</filename>.
Additionally, the library uses the <filename>libpq</filename> Additionally, the library uses the <filename>libpq</filename>
library for communication to the library for communication to the
<productname>Postgres</productname> server. You will have to link <productname>PostgreSQL</productname> server. You will have to link
your program using <parameter>-lecpg -lpq</parameter>. your program using <parameter>-lecpg -lpq</parameter>.
</para> </para>
...@@ -133,7 +133,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/ecpg.sgml,v 1.30 2001/11/12 19:19:39 petere ...@@ -133,7 +133,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/ecpg.sgml,v 1.30 2001/11/12 19:19:39 petere
The most important function , <function>ECPGdo</function>, logs The most important function , <function>ECPGdo</function>, logs
all <acronym>SQL</acronym> statements with both the expanded all <acronym>SQL</acronym> statements with both the expanded
string, i.e. the string with all the input variables inserted, string, i.e. the string with all the input variables inserted,
and the result from the <productname>Postgres</productname> and the result from the <productname>PostgreSQL</productname>
server. This can be very useful when searching for errors in server. This can be very useful when searching for errors in
your <acronym>SQL</acronym> statements. your <acronym>SQL</acronym> statements.
</para> </para>
...@@ -153,7 +153,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/ecpg.sgml,v 1.30 2001/11/12 19:19:39 petere ...@@ -153,7 +153,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/ecpg.sgml,v 1.30 2001/11/12 19:19:39 petere
<title>Error handling</title> <title>Error handling</title>
<para> <para>
To detect errors from the <productname>Postgres</productname> To detect errors from the <productname>PostgreSQL</productname>
server, include a line like: server, include a line like:
<programlisting> <programlisting>
exec sql include sqlca; exec sql include sqlca;
...@@ -241,7 +241,7 @@ struct sqlca ...@@ -241,7 +241,7 @@ struct sqlca
<term><computeroutput>-201 (ECPG_TOO_MANY_ARGUMENTS): Too many arguments line %d.</computeroutput></term> <term><computeroutput>-201 (ECPG_TOO_MANY_ARGUMENTS): Too many arguments line %d.</computeroutput></term>
<listitem> <listitem>
<para> <para>
This means that <productname>Postgres</productname> has This means that <productname>PostgreSQL</productname> has
returned more arguments than we have matching variables. returned more arguments than we have matching variables.
Perhaps you have forgotten a couple of the host variables in Perhaps you have forgotten a couple of the host variables in
the <command>INTO :var1,:var2</command>-list. the <command>INTO :var1,:var2</command>-list.
...@@ -253,7 +253,7 @@ struct sqlca ...@@ -253,7 +253,7 @@ struct sqlca
<term><computeroutput>-202 (ECPG_TOO_FEW_ARGUMENTS): Too few arguments line %d.</computeroutput></term> <term><computeroutput>-202 (ECPG_TOO_FEW_ARGUMENTS): Too few arguments line %d.</computeroutput></term>
<listitem> <listitem>
<para> <para>
This means that <productname>Postgres</productname> has This means that <productname>PostgreSQL</productname> has
returned fewer arguments than we have host variables. Perhaps returned fewer arguments than we have host variables. Perhaps
you have too many host variables in the <command>INTO you have too many host variables in the <command>INTO
:var1,:var2</command>-list. :var1,:var2</command>-list.
...@@ -277,7 +277,7 @@ struct sqlca ...@@ -277,7 +277,7 @@ struct sqlca
<listitem> <listitem>
<para> <para>
This means the host variable is of type <type>int</type> and This means the host variable is of type <type>int</type> and
the field in the <productname>Postgres</productname> database the field in the <productname>PostgreSQL</productname> database
is of another type and contains a value that cannot be is of another type and contains a value that cannot be
interpreted as an <type>int</type>. The library uses interpreted as an <type>int</type>. The library uses
<function>strtol()</function> for this conversion. <function>strtol()</function> for this conversion.
...@@ -291,7 +291,7 @@ struct sqlca ...@@ -291,7 +291,7 @@ struct sqlca
<para> <para>
This means the host variable is of type <type>unsigned This means the host variable is of type <type>unsigned
int</type> and the field in the int</type> and the field in the
<productname>Postgres</productname> database is of another type <productname>PostgreSQL</productname> database is of another type
and contains a value that cannot be interpreted as an and contains a value that cannot be interpreted as an
<type>unsigned int</type>. The library uses <type>unsigned int</type>. The library uses
<function>strtoul()</function> for this conversion. <function>strtoul()</function> for this conversion.
...@@ -304,7 +304,7 @@ struct sqlca ...@@ -304,7 +304,7 @@ struct sqlca
<listitem> <listitem>
<para> <para>
This means the host variable is of type <type>float</type> and This means the host variable is of type <type>float</type> and
the field in the <productname>Postgres</productname> database the field in the <productname>PostgreSQL</productname> database
is of another type and contains a value that cannot be is of another type and contains a value that cannot be
interpreted as a <type>float</type>. The library uses interpreted as a <type>float</type>. The library uses
<function>strtod()</function> for this conversion. <function>strtod()</function> for this conversion.
...@@ -317,7 +317,7 @@ struct sqlca ...@@ -317,7 +317,7 @@ struct sqlca
<listitem> <listitem>
<para> <para>
This means the host variable is of type <type>bool</type> and This means the host variable is of type <type>bool</type> and
the field in the <productname>Postgres</productname> database the field in the <productname>PostgreSQL</productname> database
is neither <literal>'t'</> nor <literal>'f'</>. is neither <literal>'t'</> nor <literal>'f'</>.
</para> </para>
</listitem> </listitem>
...@@ -327,7 +327,7 @@ struct sqlca ...@@ -327,7 +327,7 @@ struct sqlca
<term><computeroutput>-208 (ECPG_EMPTY): Empty query line %d.</computeroutput></term> <term><computeroutput>-208 (ECPG_EMPTY): Empty query line %d.</computeroutput></term>
<listitem> <listitem>
<para> <para>
<productname>Postgres</productname> returned <symbol>PGRES_EMPTY_QUERY</symbol>, probably <productname>PostgreSQL</productname> returned <symbol>PGRES_EMPTY_QUERY</symbol>, probably
because the query indeed was empty. because the query indeed was empty.
</para> </para>
</listitem> </listitem>
...@@ -337,7 +337,7 @@ struct sqlca ...@@ -337,7 +337,7 @@ struct sqlca
<term><computeroutput>-209 (ECPG_MISSING_INDICATOR): NULL value without indicator in line %d.</computeroutput></term> <term><computeroutput>-209 (ECPG_MISSING_INDICATOR): NULL value without indicator in line %d.</computeroutput></term>
<listitem> <listitem>
<para> <para>
<productname>Postgres</productname> returned <symbol>ECPG_MISSING_INDICATOR</symbol> <productname>PostgreSQL</productname> returned <symbol>ECPG_MISSING_INDICATOR</symbol>
because a NULL was returned and no NULL indicator variable was supplied. because a NULL was returned and no NULL indicator variable was supplied.
</para> </para>
</listitem> </listitem>
...@@ -347,7 +347,7 @@ struct sqlca ...@@ -347,7 +347,7 @@ struct sqlca
<term><computeroutput>-210 (ECPG_NO_ARRAY): Variable is not an array in line %d.</computeroutput></term> <term><computeroutput>-210 (ECPG_NO_ARRAY): Variable is not an array in line %d.</computeroutput></term>
<listitem> <listitem>
<para> <para>
<productname>Postgres</productname> returned <symbol>ECPG_NO_ARRAY</symbol> <productname>PostgreSQL</productname> returned <symbol>ECPG_NO_ARRAY</symbol>
because an ordinary variable was used in a place that requires because an ordinary variable was used in a place that requires
an array. an array.
</para> </para>
...@@ -358,7 +358,7 @@ struct sqlca ...@@ -358,7 +358,7 @@ struct sqlca
<term><computeroutput>-211 (ECPG_DATA_NOT_ARRAY): Data read from backend is not an array in line %d.</computeroutput></term> <term><computeroutput>-211 (ECPG_DATA_NOT_ARRAY): Data read from backend is not an array in line %d.</computeroutput></term>
<listitem> <listitem>
<para> <para>
<productname>Postgres</productname> returned <symbol>ECPG_DATA_NOT_ARRAY</symbol> <productname>PostgreSQL</productname> returned <symbol>ECPG_DATA_NOT_ARRAY</symbol>
because the database returned an ordinary variable in a place because the database returned an ordinary variable in a place
that requires array value. that requires array value.
</para> </para>
...@@ -444,9 +444,9 @@ struct sqlca ...@@ -444,9 +444,9 @@ struct sqlca
<term><computeroutput>-400 (ECPG_PGSQL): Postgres error: %s line %d.</computeroutput></term> <term><computeroutput>-400 (ECPG_PGSQL): Postgres error: %s line %d.</computeroutput></term>
<listitem> <listitem>
<para> <para>
Some <productname>Postgres</productname> error. Some <productname>PostgreSQL</productname> error.
The message contains the error message from the The message contains the error message from the
<productname>Postgres</productname> backend. <productname>PostgreSQL</productname> backend.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
...@@ -455,7 +455,7 @@ struct sqlca ...@@ -455,7 +455,7 @@ struct sqlca
<term><computeroutput>-401 (ECPG_TRANS): Error in transaction processing line %d.</computeroutput></term> <term><computeroutput>-401 (ECPG_TRANS): Error in transaction processing line %d.</computeroutput></term>
<listitem> <listitem>
<para> <para>
<productname>Postgres</productname> signaled that we cannot start, <productname>PostgreSQL</productname> signaled that we cannot start,
commit or rollback the transaction. commit or rollback the transaction.
</para> </para>
</listitem> </listitem>
...@@ -506,7 +506,7 @@ struct sqlca ...@@ -506,7 +506,7 @@ struct sqlca
<para> <para>
This would require a total redesign of the This would require a total redesign of the
<productname>Postgres</productname> access model and the <productname>PostgreSQL</productname> access model and the
performance gain does not justify the effort. performance gain does not justify the effort.
</para> </para>
</listitem> </listitem>
...@@ -581,7 +581,7 @@ struct sqlca ...@@ -581,7 +581,7 @@ struct sqlca
<listitem> <listitem>
<para> <para>
to_date et al. does not exist. However, to_date et al. does not exist. However,
<productname>Postgres</productname> has some good conversion <productname>PostgreSQL</productname> has some good conversion
routines so you probably won't miss them. routines so you probably won't miss them.
</para> </para>
</listitem> </listitem>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.13 2001/09/30 16:05:54 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.14 2001/11/21 05:53:41 thomas Exp $
--> -->
<chapter id="extend"> <chapter id="extend">
...@@ -7,7 +7,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.13 2001/09/30 16:05:54 pete ...@@ -7,7 +7,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.13 2001/09/30 16:05:54 pete
<para> <para>
In the sections that follow, we will discuss how you In the sections that follow, we will discuss how you
can extend the <productname>Postgres</productname> can extend the <productname>PostgreSQL</productname>
<acronym>SQL</acronym> query language by adding: <acronym>SQL</acronym> query language by adding:
<itemizedlist spacing="compact" mark="bullet"> <itemizedlist spacing="compact" mark="bullet">
...@@ -38,7 +38,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.13 2001/09/30 16:05:54 pete ...@@ -38,7 +38,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.13 2001/09/30 16:05:54 pete
<title>How Extensibility Works</title> <title>How Extensibility Works</title>
<para> <para>
<productname>Postgres</productname> is extensible because its operation is <productname>PostgreSQL</productname> is extensible because its operation is
catalog-driven. If you are familiar with standard catalog-driven. If you are familiar with standard
relational systems, you know that they store information relational systems, you know that they store information
about databases, tables, columns, etc., in what are about databases, tables, columns, etc., in what are
...@@ -46,13 +46,13 @@ $Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.13 2001/09/30 16:05:54 pete ...@@ -46,13 +46,13 @@ $Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.13 2001/09/30 16:05:54 pete
this the data dictionary). The catalogs appear to the this the data dictionary). The catalogs appear to the
user as tables like any other, but the <acronym>DBMS</acronym> stores user as tables like any other, but the <acronym>DBMS</acronym> stores
its internal bookkeeping in them. One key difference its internal bookkeeping in them. One key difference
between <productname>Postgres</productname> and standard relational systems is between <productname>PostgreSQL</productname> and standard relational systems is
that <productname>Postgres</productname> stores much more information in its that <productname>PostgreSQL</productname> stores much more information in its
catalogs -- not only information about tables and columns, catalogs -- not only information about tables and columns,
but also information about its types, functions, access but also information about its types, functions, access
methods, and so on. These tables can be modified by methods, and so on. These tables can be modified by
the user, and since <productname>Postgres</productname> bases its internal operation the user, and since <productname>PostgreSQL</productname> bases its internal operation
on these tables, this means that <productname>Postgres</productname> can be on these tables, this means that <productname>PostgreSQL</productname> can be
extended by users. By comparison, conventional extended by users. By comparison, conventional
database systems can only be extended by changing hardcoded database systems can only be extended by changing hardcoded
procedures within the <acronym>DBMS</acronym> or by loading modules procedures within the <acronym>DBMS</acronym> or by loading modules
...@@ -60,29 +60,29 @@ $Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.13 2001/09/30 16:05:54 pete ...@@ -60,29 +60,29 @@ $Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.13 2001/09/30 16:05:54 pete
</para> </para>
<para> <para>
<productname>Postgres</productname> is also unlike most other data managers in <productname>PostgreSQL</productname> is also unlike most other data managers in
that the server can incorporate user-written code into that the server can incorporate user-written code into
itself through dynamic loading. That is, the user can itself through dynamic loading. That is, the user can
specify an object code file (e.g., a compiled .o file specify an object code file (e.g., a compiled .o file
or shared library) that implements a new type or function or shared library) that implements a new type or function
and <productname>Postgres</productname> will load it as required. Code written and <productname>PostgreSQL</productname> will load it as required. Code written
in <acronym>SQL</acronym> are even more trivial to add to the server. in <acronym>SQL</acronym> are even more trivial to add to the server.
This ability to modify its operation <quote>on the fly</quote> makes This ability to modify its operation <quote>on the fly</quote> makes
<productname>Postgres</productname> uniquely suited for rapid prototyping of new <productname>PostgreSQL</productname> uniquely suited for rapid prototyping of new
applications and storage structures. applications and storage structures.
</para> </para>
</sect1> </sect1>
<sect1 id="type-system"> <sect1 id="type-system">
<title>The <productname>Postgres</productname> Type System</title> <title>The <productname>PostgreSQL</productname> Type System</title>
<para> <para>
The <productname>Postgres</productname> type system The <productname>PostgreSQL</productname> type system
can be broken down in several ways. can be broken down in several ways.
Types are divided into base types and composite types. Types are divided into base types and composite types.
Base types are those, like <firstterm>int4</firstterm>, that are implemented Base types are those, like <firstterm>int4</firstterm>, that are implemented
in a language such as <productname>C</productname>. They generally correspond to in a language such as <productname>C</productname>. They generally correspond to
what are often known as <firstterm>abstract data types</firstterm>; <productname>Postgres</productname> what are often known as <firstterm>abstract data types</firstterm>; <productname>PostgreSQL</productname>
can only operate on such types through methods provided can only operate on such types through methods provided
by the user and only understands the behavior of such by the user and only understands the behavior of such
types to the extent that the user describes them. types to the extent that the user describes them.
...@@ -91,13 +91,13 @@ $Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.13 2001/09/30 16:05:54 pete ...@@ -91,13 +91,13 @@ $Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.13 2001/09/30 16:05:54 pete
</para> </para>
<para> <para>
<productname>Postgres</productname> stores these types <productname>PostgreSQL</productname> stores these types
in only one way (within the in only one way (within the
file that stores all rows of a table) but the file that stores all rows of a table) but the
user can <quote>look inside</quote> at the attributes of these types user can <quote>look inside</quote> at the attributes of these types
from the query language and optimize their retrieval by from the query language and optimize their retrieval by
(for example) defining indexes on the attributes. (for example) defining indexes on the attributes.
<productname>Postgres</productname> base types are further <productname>PostgreSQL</productname> base types are further
divided into built-in divided into built-in
types and user-defined types. Built-in types (like types and user-defined types. Built-in types (like
<firstterm>int4</firstterm>) are those that are compiled <firstterm>int4</firstterm>) are those that are compiled
...@@ -108,7 +108,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.13 2001/09/30 16:05:54 pete ...@@ -108,7 +108,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.13 2001/09/30 16:05:54 pete
</sect1> </sect1>
<sect1 id="pg-system-catalogs"> <sect1 id="pg-system-catalogs">
<title>About the <productname>Postgres</productname> System Catalogs</title> <title>About the <productname>PostgreSQL</productname> System Catalogs</title>
<para> <para>
Having introduced the basic extensibility concepts, we Having introduced the basic extensibility concepts, we
...@@ -125,7 +125,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.13 2001/09/30 16:05:54 pete ...@@ -125,7 +125,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.13 2001/09/30 16:05:54 pete
them directly.) them directly.)
<table tocentry="1"> <table tocentry="1">
<title>Postgres System Catalogs</title> <title>PostgreSQL System Catalogs</title>
<titleabbrev>Catalogs</titleabbrev> <titleabbrev>Catalogs</titleabbrev>
<tgroup cols="2"> <tgroup cols="2">
<thead> <thead>
...@@ -190,7 +190,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.13 2001/09/30 16:05:54 pete ...@@ -190,7 +190,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.13 2001/09/30 16:05:54 pete
<para> <para>
<figure float="1" id="EXTEND-CATALOGS"> <figure float="1" id="EXTEND-CATALOGS">
<title>The major <productname>Postgres</productname> system catalogs</title> <title>The major <productname>PostgreSQL</productname> system catalogs</title>
<mediaobject> <mediaobject>
<imageobject> <imageobject>
<imagedata fileref="catalogs" align="center"> <imagedata fileref="catalogs" align="center">
...@@ -246,7 +246,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.13 2001/09/30 16:05:54 pete ...@@ -246,7 +246,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.13 2001/09/30 16:05:54 pete
Nearly every catalog contains some reference to Nearly every catalog contains some reference to
rows in one or both of these tables. For rows in one or both of these tables. For
example, <productname>Postgres</productname> frequently uses type example, <productname>PostgreSQL</productname> frequently uses type
signatures (e.g., of functions and operators) to signatures (e.g., of functions and operators) to
identify unique rows of other catalogs. identify unique rows of other catalogs.
</para> </para>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/func.sgml,v 1.83 2001/11/20 15:42:44 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/func.sgml,v 1.84 2001/11/21 05:53:41 thomas Exp $
Postgres documentation PostgreSQL documentation
--> -->
<chapter id="functions"> <chapter id="functions">
...@@ -15,7 +15,7 @@ Postgres documentation ...@@ -15,7 +15,7 @@ Postgres documentation
</indexterm> </indexterm>
<para> <para>
<productname>Postgres</productname> provides a large number of <productname>PostgreSQL</productname> provides a large number of
functions and operators for the built-in data types. Users can also functions and operators for the built-in data types. Users can also
define their own functions and operators, as described in the define their own functions and operators, as described in the
<citetitle>Programmer's Guide</citetitle>. The <citetitle>Programmer's Guide</citetitle>. The
...@@ -1349,7 +1349,7 @@ Postgres documentation ...@@ -1349,7 +1349,7 @@ Postgres documentation
<para> <para>
There are two separate approaches to pattern matching provided by There are two separate approaches to pattern matching provided by
<productname>Postgres</productname>: the <acronym>SQL</acronym> <productname>PostgreSQL</productname>: the <acronym>SQL</acronym>
<function>LIKE</function> operator and <function>LIKE</function> operator and
<acronym>POSIX</acronym>-style regular expressions. <acronym>POSIX</acronym>-style regular expressions.
</para> </para>
...@@ -1446,7 +1446,7 @@ Postgres documentation ...@@ -1446,7 +1446,7 @@ Postgres documentation
The keyword <token>ILIKE</token> can be used instead of The keyword <token>ILIKE</token> can be used instead of
<token>LIKE</token> to make the match case insensitive according <token>LIKE</token> to make the match case insensitive according
to the active locale. This is not in the <acronym>SQL</acronym> standard but is a to the active locale. This is not in the <acronym>SQL</acronym> standard but is a
<productname>Postgres</productname> extension. <productname>PostgreSQL</productname> extension.
</para> </para>
<para> <para>
...@@ -1456,7 +1456,7 @@ Postgres documentation ...@@ -1456,7 +1456,7 @@ Postgres documentation
<literal>!~~</literal> and <literal>!~~*</literal> operators that <literal>!~~</literal> and <literal>!~~*</literal> operators that
represent <function>NOT LIKE</function> and <function>NOT represent <function>NOT LIKE</function> and <function>NOT
ILIKE</function>. All of these operators are ILIKE</function>. All of these operators are
<productname>Postgres</productname>-specific. <productname>PostgreSQL</productname>-specific.
</para> </para>
</sect2> </sect2>
...@@ -1537,7 +1537,7 @@ Postgres documentation ...@@ -1537,7 +1537,7 @@ Postgres documentation
<command>egrep</command>; 1003.2 calls these <command>egrep</command>; 1003.2 calls these
<quote>extended</quote> REs) and obsolete REs (roughly those of <quote>extended</quote> REs) and obsolete REs (roughly those of
<command>ed</command>; 1003.2 <quote>basic</quote> REs). <command>ed</command>; 1003.2 <quote>basic</quote> REs).
<productname>Postgres</productname> implements the modern form. <productname>PostgreSQL</productname> implements the modern form.
</para> </para>
<para> <para>
...@@ -1786,7 +1786,7 @@ Postgres documentation ...@@ -1786,7 +1786,7 @@ Postgres documentation
</note> </note>
<para> <para>
The <productname>Postgres</productname> formatting functions The <productname>PostgreSQL</productname> formatting functions
provide a powerful set of tools for converting various data types provide a powerful set of tools for converting various data types
(date/time, integer, floating point, numeric) to formatted strings (date/time, integer, floating point, numeric) to formatted strings
and for converting from formatted strings to specific data types. and for converting from formatted strings to specific data types.
...@@ -2137,7 +2137,7 @@ Postgres documentation ...@@ -2137,7 +2137,7 @@ Postgres documentation
in a string constant, a double backslash in a string constant, a double backslash
(<quote><literal>\\</literal></quote>) must be entered; for (<quote><literal>\\</literal></quote>) must be entered; for
example <literal>'\\HH\\MI\\SS'</literal>. This is true for example <literal>'\\HH\\MI\\SS'</literal>. This is true for
any string constant in <productname>Postgres</productname>. any string constant in <productname>PostgreSQL</productname>.
</para> </para>
</listitem> </listitem>
...@@ -2311,7 +2311,7 @@ Postgres documentation ...@@ -2311,7 +2311,7 @@ Postgres documentation
<listitem> <listitem>
<para> <para>
<literal>PL</literal>, <literal>SG</literal>, and <literal>PL</literal>, <literal>SG</literal>, and
<literal>TH</literal> are <productname>Postgres</productname> <literal>TH</literal> are <productname>PostgreSQL</productname>
extensions. extensions.
</para> </para>
</listitem> </listitem>
...@@ -3217,7 +3217,7 @@ SELECT CURRENT_TIMESTAMP; ...@@ -3217,7 +3217,7 @@ SELECT CURRENT_TIMESTAMP;
<para> <para>
The function <function>now()</function> is the traditional The function <function>now()</function> is the traditional
<productname>Postgres</productname> equivalent to <productname>PostgreSQL</productname> equivalent to
<function>CURRENT_TIMESTAMP</function>. <function>CURRENT_TIMESTAMP</function>.
</para> </para>
...@@ -3889,7 +3889,7 @@ SELECT TIMESTAMP 'now'; ...@@ -3889,7 +3889,7 @@ SELECT TIMESTAMP 'now';
</table> </table>
<para> <para>
This section describes <productname>Postgres</productname>'s functions This section describes <productname>PostgreSQL</productname>'s functions
for operating on <firstterm>sequence objects</>. for operating on <firstterm>sequence objects</>.
Sequence objects (also called sequence generators or Sequence objects (also called sequence generators or
just sequences) are special single-row tables created with just sequences) are special single-row tables created with
...@@ -4013,7 +4013,7 @@ SELECT setval('foo', 42, false); <lineannotation>Next nextval() will return 4 ...@@ -4013,7 +4013,7 @@ SELECT setval('foo', 42, false); <lineannotation>Next nextval() will return 4
<para> <para>
This section describes the <acronym>SQL</acronym>-compliant conditional expressions This section describes the <acronym>SQL</acronym>-compliant conditional expressions
available in <productname>Postgres</productname>. available in <productname>PostgreSQL</productname>.
</para> </para>
<tip> <tip>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/geqo.sgml,v 1.19 2001/10/09 18:46:00 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/geqo.sgml,v 1.20 2001/11/21 05:53:41 thomas Exp $
Genetic Optimizer Genetic Optimizer
--> -->
...@@ -49,14 +49,14 @@ Genetic Optimizer ...@@ -49,14 +49,14 @@ Genetic Optimizer
grows exponentially with the number of joins included in it. Further grows exponentially with the number of joins included in it. Further
optimization effort is caused by the support of a variety of optimization effort is caused by the support of a variety of
<firstterm>join methods</firstterm> <firstterm>join methods</firstterm>
(e.g., nested loop, hash join, merge join in <productname>Postgres</productname>) to (e.g., nested loop, hash join, merge join in <productname>PostgreSQL</productname>) to
process individual joins and a diversity of process individual joins and a diversity of
<firstterm>indexes</firstterm> (e.g., R-tree, <firstterm>indexes</firstterm> (e.g., R-tree,
B-tree, hash in <productname>Postgres</productname>) as access paths for relations. B-tree, hash in <productname>PostgreSQL</productname>) as access paths for relations.
</para> </para>
<para> <para>
The current <productname>Postgres</productname> optimizer The current <productname>PostgreSQL</productname> optimizer
implementation performs a <firstterm>near-exhaustive search</firstterm> implementation performs a <firstterm>near-exhaustive search</firstterm>
over the space of alternative strategies. This query over the space of alternative strategies. This query
optimization technique is inadequate to support database application optimization technique is inadequate to support database application
...@@ -67,7 +67,7 @@ Genetic Optimizer ...@@ -67,7 +67,7 @@ Genetic Optimizer
<para> <para>
The Institute of Automatic Control at the University of Mining and The Institute of Automatic Control at the University of Mining and
Technology, in Freiberg, Germany, encountered the described problems as its Technology, in Freiberg, Germany, encountered the described problems as its
folks wanted to take the <productname>Postgres</productname> DBMS as the backend for a decision folks wanted to take the <productname>PostgreSQL</productname> DBMS as the backend for a decision
support knowledge based system for the maintenance of an electrical support knowledge based system for the maintenance of an electrical
power grid. The DBMS needed to handle large join queries for the power grid. The DBMS needed to handle large join queries for the
inference machine of the knowledge based system. inference machine of the knowledge based system.
...@@ -166,7 +166,7 @@ Genetic Optimizer ...@@ -166,7 +166,7 @@ Genetic Optimizer
</sect1> </sect1>
<sect1 id="geqo-pg-intro"> <sect1 id="geqo-pg-intro">
<title>Genetic Query Optimization (<acronym>GEQO</acronym>) in Postgres</title> <title>Genetic Query Optimization (<acronym>GEQO</acronym>) in PostgreSQL</title>
<para> <para>
The <acronym>GEQO</acronym> module is intended for the solution of the query The <acronym>GEQO</acronym> module is intended for the solution of the query
...@@ -183,7 +183,7 @@ Genetic Optimizer ...@@ -183,7 +183,7 @@ Genetic Optimizer
is encoded by the integer string '4-1-3-2', is encoded by the integer string '4-1-3-2',
which means, first join relation '4' and '1', then '3', and which means, first join relation '4' and '1', then '3', and
then '2', where 1, 2, 3, 4 are relids within the then '2', where 1, 2, 3, 4 are relids within the
<productname>Postgres</productname> optimizer. <productname>PostgreSQL</productname> optimizer.
</para> </para>
<para> <para>
...@@ -193,7 +193,7 @@ Genetic Optimizer ...@@ -193,7 +193,7 @@ Genetic Optimizer
<para> <para>
Specific characteristics of the <acronym>GEQO</acronym> Specific characteristics of the <acronym>GEQO</acronym>
implementation in <productname>Postgres</productname> implementation in <productname>PostgreSQL</productname>
are: are:
<itemizedlist spacing="compact" mark="bullet"> <itemizedlist spacing="compact" mark="bullet">
...@@ -226,7 +226,7 @@ Genetic Optimizer ...@@ -226,7 +226,7 @@ Genetic Optimizer
<para> <para>
The <acronym>GEQO</acronym> module allows The <acronym>GEQO</acronym> module allows
the <productname>Postgres</productname> query optimizer to the <productname>PostgreSQL</productname> query optimizer to
support large join queries effectively through support large join queries effectively through
non-exhaustive search. non-exhaustive search.
</para> </para>
......
...@@ -96,7 +96,7 @@ A few notes on the sources: ...@@ -96,7 +96,7 @@ A few notes on the sources:
</ProgramListing> </ProgramListing>
Roger that!! I thought it could be related to a number of Roger that!! I thought it could be related to a number of
<ProductName>Postgres</ProductName> versions <ProductName>PostgreSQL</ProductName> versions
back and tried the query. My system went nuts and I had to shoot down back and tried the query. My system went nuts and I had to shoot down
the postmaster in about ten minutes. the postmaster in about ten minutes.
</para> </para>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/indexcost.sgml,v 2.9 2001/09/13 15:55:22 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/indexcost.sgml,v 2.10 2001/11/21 05:53:41 thomas Exp $
--> -->
<chapter id="indexcost"> <chapter id="indexcost">
...@@ -28,7 +28,8 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/indexcost.sgml,v 2.9 2001/09/13 15:55 ...@@ -28,7 +28,8 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/indexcost.sgml,v 2.9 2001/09/13 15:55
<note> <note>
<para> <para>
Prior to Postgres 7.0, a different scheme was used for registering Prior to <productname>PostgreSQL</productname> 7.0, a different
scheme was used for registering
index-specific cost estimation functions. index-specific cost estimation functions.
</para> </para>
</note> </note>
......
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/indices.sgml,v 1.27 2001/11/19 09:05:01 tgl Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/indices.sgml,v 1.28 2001/11/21 05:53:41 thomas Exp $ -->
<chapter id="indexes"> <chapter id="indexes">
<title id="indexes-title">Indexes</title> <title id="indexes-title">Indexes</title>
...@@ -105,7 +105,7 @@ CREATE INDEX test1_id_index ON test1 (id); ...@@ -105,7 +105,7 @@ CREATE INDEX test1_id_index ON test1 (id);
<title>Index Types</title> <title>Index Types</title>
<para> <para>
<productname>Postgres</productname> provides several index types: <productname>PostgreSQL</productname> provides several index types:
B-tree, R-tree, GiST, and Hash. Each index type is more appropriate for B-tree, R-tree, GiST, and Hash. Each index type is more appropriate for
a particular query type because of the algorithm it uses. a particular query type because of the algorithm it uses.
<indexterm> <indexterm>
...@@ -119,7 +119,7 @@ CREATE INDEX test1_id_index ON test1 (id); ...@@ -119,7 +119,7 @@ CREATE INDEX test1_id_index ON test1 (id);
By By
default, the <command>CREATE INDEX</command> command will create a default, the <command>CREATE INDEX</command> command will create a
B-tree index, which fits the most common situations. In B-tree index, which fits the most common situations. In
particular, the <productname>Postgres</productname> query optimizer particular, the <productname>PostgreSQL</productname> query optimizer
will consider using a B-tree index whenever an indexed column is will consider using a B-tree index whenever an indexed column is
involved in a comparison using one of these operators: involved in a comparison using one of these operators:
...@@ -146,7 +146,7 @@ CREATE INDEX test1_id_index ON test1 (id); ...@@ -146,7 +146,7 @@ CREATE INDEX test1_id_index ON test1 (id);
<synopsis> <synopsis>
CREATE INDEX <replaceable>name</replaceable> ON <replaceable>table</replaceable> USING RTREE (<replaceable>column</replaceable>); CREATE INDEX <replaceable>name</replaceable> ON <replaceable>table</replaceable> USING RTREE (<replaceable>column</replaceable>);
</synopsis> </synopsis>
The <productname>Postgres</productname> query optimizer will The <productname>PostgreSQL</productname> query optimizer will
consider using an R-tree index whenever an indexed column is consider using an R-tree index whenever an indexed column is
involved in a comparison using one of these operators: involved in a comparison using one of these operators:
...@@ -238,7 +238,7 @@ CREATE INDEX test2_mm_idx ON test2 (major, minor); ...@@ -238,7 +238,7 @@ CREATE INDEX test2_mm_idx ON test2 (major, minor);
<para> <para>
Currently, only the B-tree and GiST implementations support multicolumn Currently, only the B-tree and GiST implementations support multicolumn
indexes. Up to 16 columns may be specified. (This limit can be indexes. Up to 16 columns may be specified. (This limit can be
altered when building <productname>Postgres</productname>; see the altered when building <productname>PostgreSQL</productname>; see the
file <filename>pg_config.h</filename>.) file <filename>pg_config.h</filename>.)
</para> </para>
...@@ -546,7 +546,7 @@ Subject: Re: [QUESTIONS] PRIMARY KEY | UNIQUE ...@@ -546,7 +546,7 @@ Subject: Re: [QUESTIONS] PRIMARY KEY | UNIQUE
must understand that indexes are implementation-dependent. must understand that indexes are implementation-dependent.
<acronym>SQL</acronym> does not <acronym>SQL</acronym> does not
define the implementation, merely the relations between data in the define the implementation, merely the relations between data in the
database. <productname>Postgres</productname> does allow database. <productname>PostgreSQL</productname> does allow
non-unique indexes, but indexes non-unique indexes, but indexes
used to enforce <acronym>SQL</acronym> keys are always unique. used to enforce <acronym>SQL</acronym> keys are always unique.
</para> </para>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/info.sgml,v 1.13 2001/11/08 23:37:50 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/info.sgml,v 1.14 2001/11/21 05:53:41 thomas Exp $
--> -->
<sect1 id="resources"> <sect1 id="resources">
...@@ -127,7 +127,8 @@ $Header: /cvsroot/pgsql/doc/src/sgml/info.sgml,v 1.13 2001/11/08 23:37:50 petere ...@@ -127,7 +127,8 @@ $Header: /cvsroot/pgsql/doc/src/sgml/info.sgml,v 1.13 2001/11/08 23:37:50 petere
answered, to share experiences with other users, and to contact answered, to share experiences with other users, and to contact
the developers. Consult the <ulink the developers. Consult the <ulink
url="http://www.postgresql.org/users-lounge/">User's url="http://www.postgresql.org/users-lounge/">User's
Lounge</ulink> section of the PostgreSQL web site for details. Lounge</ulink> section of the <productname>PostgreSQL</>
web site for details.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/inherit.sgml,v 1.16 2001/11/19 03:58:23 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/inherit.sgml,v 1.17 2001/11/21 05:53:41 thomas Exp $
--> -->
<chapter id="inherit"> <chapter id="inherit">
...@@ -25,11 +25,11 @@ CREATE TABLE capitals ( ...@@ -25,11 +25,11 @@ CREATE TABLE capitals (
In this case, a row of capitals <firstterm>inherits</firstterm> all In this case, a row of capitals <firstterm>inherits</firstterm> all
attributes (name, population, and altitude) from its attributes (name, population, and altitude) from its
parent, cities. The type of the attribute name is parent, cities. The type of the attribute name is
<type>text</type>, a native <productname>Postgres</productname> type for variable length <type>text</type>, a native <productname>PostgreSQL</productname> type for variable length
ASCII strings. The type of the attribute population is ASCII strings. The type of the attribute population is
<type>float</type>, a native <productname>Postgres</productname> type for double precision <type>float</type>, a native <productname>PostgreSQL</productname> type for double precision
floating point numbers. State capitals have an extra floating point numbers. State capitals have an extra
attribute, state, that shows their state. In <productname>Postgres</productname>, attribute, state, that shows their state. In <productname>PostgreSQL</productname>,
a table can inherit from zero or more other tables, a table can inherit from zero or more other tables,
and a query can reference either all rows of a and a query can reference either all rows of a
table or all rows of a table plus all of its table or all rows of a table plus all of its
...@@ -150,7 +150,7 @@ SELECT name, altitude ...@@ -150,7 +150,7 @@ SELECT name, altitude
<note> <note>
<title>Deprecated</title> <title>Deprecated</title>
<para> <para>
In previous versions of <productname>Postgres</productname>, the In previous versions of <productname>PostgreSQL</productname>, the
default was not to get access to child tables. This was found to default was not to get access to child tables. This was found to
be error prone and is also in violation of SQL99. Under the old be error prone and is also in violation of SQL99. Under the old
syntax, to get the sub-tables you append <literal>*</literal> to the table name. syntax, to get the sub-tables you append <literal>*</literal> to the table name.
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/intro.sgml,v 1.16 2001/10/09 18:46:00 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/intro.sgml,v 1.17 2001/11/21 05:53:41 thomas Exp $
--> -->
<preface id="preface"> <preface id="preface">
...@@ -44,7 +44,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/intro.sgml,v 1.16 2001/10/09 18:46:00 peter ...@@ -44,7 +44,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/intro.sgml,v 1.16 2001/10/09 18:46:00 peter
models in part because of its <quote>Spartan simplicity</quote>. models in part because of its <quote>Spartan simplicity</quote>.
However, as mentioned, this simplicity often makes the However, as mentioned, this simplicity often makes the
implementation of certain applications very difficult. implementation of certain applications very difficult.
<productname>Postgres</productname> offers substantial additional <productname>PostgreSQL</productname> offers substantial additional
power by incorporating the following additional power by incorporating the following additional
concepts in such a way that users can easily concepts in such a way that users can easily
extend the system: extend the system:
...@@ -82,16 +82,16 @@ $Header: /cvsroot/pgsql/doc/src/sgml/intro.sgml,v 1.16 2001/10/09 18:46:00 peter ...@@ -82,16 +82,16 @@ $Header: /cvsroot/pgsql/doc/src/sgml/intro.sgml,v 1.16 2001/10/09 18:46:00 peter
</para> </para>
<para> <para>
These features put <productname>Postgres</productname> into the These features put <productname>PostgreSQL</productname> into the
category of databases referred to as category of databases referred to as
<firstterm>object-relational</firstterm>. Note that this is distinct <firstterm>object-relational</firstterm>. Note that this is distinct
from those referred to as <firstterm>object-oriented</firstterm>, from those referred to as <firstterm>object-oriented</firstterm>,
which in general are not as well suited to supporting the which in general are not as well suited to supporting the
traditional relational database languages. traditional relational database languages.
So, although <productname>Postgres</productname> has some So, although <productname>PostgreSQL</productname> has some
object-oriented features, it is firmly in the relational database object-oriented features, it is firmly in the relational database
world. In fact, some commercial databases have recently world. In fact, some commercial databases have recently
incorporated features pioneered by <productname>Postgres</productname>. incorporated features pioneered by <productname>PostgreSQL</productname>.
</para> </para>
</sect1> </sect1>
......
This diff is collapsed.
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/legal.sgml,v 1.12 2001/10/04 22:28:44 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/legal.sgml,v 1.13 2001/11/21 05:53:41 thomas Exp $
--> -->
<copyright> <copyright>
...@@ -56,14 +56,15 @@ There is no legal requirement to make trademark acknowledgements in ...@@ -56,14 +56,15 @@ There is no legal requirement to make trademark acknowledgements in
references to third party products that happen to have trademarked references to third party products that happen to have trademarked
names. names.
The exception would be if PostgreSQL were to license a particular The exception would be if <productname>PostgreSQL</>
were to license a particular
trademark and the trademark holder makes this requirement (as in the trademark and the trademark holder makes this requirement (as in the
case of UNIX and Java). case of UNIX and Java).
What is not allowed, however, is to use a trademark name in a way that What is not allowed, however, is to use a trademark name in a way that
could lead people to believe that they label PostgreSQL products. could lead people to believe that they label <productname>PostgreSQL</> products.
E.g., "the PostgreSQL UNIX database system" would probably be illegal, E.g., "the <productname>PostgreSQL</> UNIX database system" would probably be illegal,
whereas "PostgreSQL, which runs on many UNIX computer systems" is whereas "<productname>PostgreSQL</>, which runs on many UNIX computer systems" is
fine. This is independent of whether a trademark acknowledgement is fine. This is independent of whether a trademark acknowledgement is
made. made.
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<Para> <Para>
<literal>pgtcl</literal> is a Tcl package for front-end programs <literal>pgtcl</literal> is a Tcl package for front-end programs
to interface with <ProductName>Postgres</ProductName> to interface with <ProductName>PostgreSQL</ProductName>
backends. It makes most of the functionality of <literal>libpq</literal> available to backends. It makes most of the functionality of <literal>libpq</literal> available to
Tcl scripts. Tcl scripts.
</Para> </Para>
...@@ -114,7 +114,7 @@ These commands are described further on subsequent pages. ...@@ -114,7 +114,7 @@ These commands are described further on subsequent pages.
<Para> <Para>
The pg_lo* routines are interfaces to the Large Object features of The pg_lo* routines are interfaces to the Large Object features of
<ProductName>Postgres</ProductName>. <ProductName>PostgreSQL</ProductName>.
The functions are designed to mimic the analogous file system functions in The functions are designed to mimic the analogous file system functions in
the standard Unix file system interface. the standard Unix file system interface.
The pg_lo* routines should be used within a BEGIN/END transaction The pg_lo* routines should be used within a BEGIN/END transaction
...@@ -293,7 +293,7 @@ Handles start with the prefix <literal>pgsql</literal>. ...@@ -293,7 +293,7 @@ Handles start with the prefix <literal>pgsql</literal>.
<TITLE>Description <TITLE>Description
</TITLE> </TITLE>
<PARA><FUNCTION>pg_connect</FUNCTION> opens a connection to the <PARA><FUNCTION>pg_connect</FUNCTION> opens a connection to the
<ProductName>Postgres</ProductName> backend. <ProductName>PostgreSQL</ProductName> backend.
</Para> </Para>
<para> <para>
...@@ -379,7 +379,7 @@ pg_disconnect <REPLACEABLE CLASS="PARAMETER">dbHandle</REPLACEABLE> ...@@ -379,7 +379,7 @@ pg_disconnect <REPLACEABLE CLASS="PARAMETER">dbHandle</REPLACEABLE>
</REFSECT1INFO> </REFSECT1INFO>
<TITLE>Description <TITLE>Description
</TITLE> </TITLE>
<PARA><FUNCTION>pg_disconnect</FUNCTION> closes a connection to the <ProductName>Postgres</ProductName> backend. <PARA><FUNCTION>pg_disconnect</FUNCTION> closes a connection to the <ProductName>PostgreSQL</ProductName> backend.
</PARA> </PARA>
</REFSECT1> </REFSECT1>
...@@ -553,7 +553,7 @@ to obtain the results of the query. ...@@ -553,7 +553,7 @@ to obtain the results of the query.
<TITLE>Description <TITLE>Description
</TITLE> </TITLE>
<PARA> <PARA>
<FUNCTION>pg_exec</FUNCTION> submits a query to the <ProductName>Postgres</ProductName> backend and returns a result. <FUNCTION>pg_exec</FUNCTION> submits a query to the <ProductName>PostgreSQL</ProductName> backend and returns a result.
Query result handles start with the connection handle and add a period Query result handles start with the connection handle and add a period
and a result number. and a result number.
...@@ -896,7 +896,7 @@ pg_select <REPLACEABLE CLASS="PARAMETER">dbHandle</REPLACEABLE> <REPLACEABLE CLA ...@@ -896,7 +896,7 @@ pg_select <REPLACEABLE CLASS="PARAMETER">dbHandle</REPLACEABLE> <REPLACEABLE CLA
</TITLE> </TITLE>
<PARA> <PARA>
<FUNCTION>pg_select</FUNCTION> submits a SELECT query to the <FUNCTION>pg_select</FUNCTION> submits a SELECT query to the
<ProductName>Postgres</ProductName> backend, and executes a <ProductName>PostgreSQL</ProductName> backend, and executes a
given chunk of code for each tuple in the result. given chunk of code for each tuple in the result.
The <REPLACEABLE CLASS="PARAMETER">queryString</REPLACEABLE> The <REPLACEABLE CLASS="PARAMETER">queryString</REPLACEABLE>
must be a SELECT statement. Anything else returns an error. must be a SELECT statement. Anything else returns an error.
...@@ -1015,7 +1015,7 @@ when a matching notification arrives. ...@@ -1015,7 +1015,7 @@ when a matching notification arrives.
</TITLE> </TITLE>
<PARA><FUNCTION>pg_listen</FUNCTION> creates, changes, or cancels a request <PARA><FUNCTION>pg_listen</FUNCTION> creates, changes, or cancels a request
to listen for asynchronous NOTIFY messages from the to listen for asynchronous NOTIFY messages from the
<ProductName>Postgres</ProductName> backend. With a <parameter>callbackCommand</> <ProductName>PostgreSQL</ProductName> backend. With a <parameter>callbackCommand</>
parameter, the request is established, or the command string of an already parameter, the request is established, or the command string of an already
existing request is replaced. With no <parameter>callbackCommand</> parameter, a prior existing request is replaced. With no <parameter>callbackCommand</> parameter, a prior
request is canceled. request is canceled.
...@@ -1025,7 +1025,7 @@ request is canceled. ...@@ -1025,7 +1025,7 @@ request is canceled.
After a <FUNCTION>pg_listen</FUNCTION> request is established, After a <FUNCTION>pg_listen</FUNCTION> request is established,
the specified command string is executed whenever a NOTIFY message bearing the specified command string is executed whenever a NOTIFY message bearing
the given name arrives from the backend. This occurs when any the given name arrives from the backend. This occurs when any
<ProductName>Postgres</ProductName> client application issues a NOTIFY command <ProductName>PostgreSQL</ProductName> client application issues a NOTIFY command
referencing that name. (Note that the name can be, but does not have to be, referencing that name. (Note that the name can be, but does not have to be,
that of an existing relation in the database.) that of an existing relation in the database.)
The command string is executed from the Tcl idle loop. That is the normal The command string is executed from the Tcl idle loop. That is the normal
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.34 2001/11/19 03:58:24 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.35 2001/11/21 05:53:41 thomas Exp $
--> -->
<chapter id="libpqplusplus"> <chapter id="libpqplusplus">
...@@ -7,23 +7,23 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.34 2001/11/19 03:58: ...@@ -7,23 +7,23 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.34 2001/11/19 03:58:
<para> <para>
<filename>libpq++</filename> is the C++ API to <filename>libpq++</filename> is the C++ API to
<productname>Postgres</productname>. <productname>PostgreSQL</productname>.
<filename>libpq++</filename> is a set of classes that allow <filename>libpq++</filename> is a set of classes that allow
client programs to connect to the client programs to connect to the
<productname>Postgres</productname> backend server. These connections <productname>PostgreSQL</productname> backend server. These connections
come in two forms: a Database Class and a Large Object class. come in two forms: a Database Class and a Large Object class.
</para> </para>
<para> <para>
The Database Class is intended for manipulating a database. You can The Database Class is intended for manipulating a database. You can
send all sorts of SQL queries to the <productname>Postgres</productname> send all sorts of SQL queries to the <productname>PostgreSQL</productname>
backend server and retrieve the responses of the server. backend server and retrieve the responses of the server.
</para> </para>
<para> <para>
The Large Object Class is intended for manipulating a large object The Large Object Class is intended for manipulating a large object
in a database. Although a Large Object instance can send normal in a database. Although a Large Object instance can send normal
queries to the <productname>Postgres</productname> backend server queries to the <productname>PostgreSQL</productname> backend server
it is only intended for simple it is only intended for simple
queries that do not return any data. A large object should be seen queries that do not return any data. A large object should be seen
as a file stream. In the future it should behave much like the C++ file as a file stream. In the future it should behave much like the C++ file
...@@ -91,13 +91,13 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.34 2001/11/19 03:58: ...@@ -91,13 +91,13 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.34 2001/11/19 03:58:
<para> <para>
<envar>PGPORT</envar> sets the default TCP port number or Unix-domain <envar>PGPORT</envar> sets the default TCP port number or Unix-domain
socket file extension for communicating with the socket file extension for communicating with the
<productname>Postgres</productname> backend. <productname>PostgreSQL</productname> backend.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
<envar>PGDATABASE</envar> sets the default <envar>PGDATABASE</envar> sets the default
<productname>Postgres</productname> database name. <productname>PostgreSQL</productname> database name.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
...@@ -115,9 +115,9 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.34 2001/11/19 03:58: ...@@ -115,9 +115,9 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.34 2001/11/19 03:58:
<listitem> <listitem>
<para> <para>
<envar>PGREALM</envar> sets the Kerberos realm to use with <envar>PGREALM</envar> sets the Kerberos realm to use with
<productname>Postgres</productname>, <productname>PostgreSQL</productname>,
if it is different from the local realm. If if it is different from the local realm. If
<envar>PGREALM</envar> is set, <productname>Postgres</productname> <envar>PGREALM</envar> is set, <productname>PostgreSQL</productname>
applications will attempt applications will attempt
authentication with servers for this realm and use authentication with servers for this realm and use
separate ticket files to avoid conflicts with local separate ticket files to avoid conflicts with local
...@@ -128,7 +128,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.34 2001/11/19 03:58: ...@@ -128,7 +128,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.34 2001/11/19 03:58:
<listitem> <listitem>
<para> <para>
<envar>PGOPTIONS</envar> sets additional runtime options for <envar>PGOPTIONS</envar> sets additional runtime options for
the <productname>Postgres</productname> backend. the <productname>PostgreSQL</productname> backend.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
...@@ -142,7 +142,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.34 2001/11/19 03:58: ...@@ -142,7 +142,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.34 2001/11/19 03:58:
<para> <para>
The following environment variables can be used to specify user-level default The following environment variables can be used to specify user-level default
behavior for every Postgres session: behavior for every <productname>PostgreSQL</productname> session:
<itemizedlist> <itemizedlist>
<listitem> <listitem>
...@@ -162,7 +162,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.34 2001/11/19 03:58: ...@@ -162,7 +162,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.34 2001/11/19 03:58:
<para> <para>
The following environment variables can be used to specify default internal The following environment variables can be used to specify default internal
behavior for every Postgres session: behavior for every <productname>PostgreSQL</productname> session:
<itemizedlist> <itemizedlist>
<listitem> <listitem>
...@@ -641,7 +641,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.34 2001/11/19 03:58: ...@@ -641,7 +641,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.34 2001/11/19 03:58:
<title>Asynchronous Notification</title> <title>Asynchronous Notification</title>
<para> <para>
<productname>Postgres</productname> supports asynchronous notification <productname>PostgreSQL</productname> supports asynchronous notification
via the <command>LISTEN</command> and <command>NOTIFY</command> via the <command>LISTEN</command> and <command>NOTIFY</command>
commands. A backend registers its interest in a particular semaphore commands. A backend registers its interest in a particular semaphore
with the <command>LISTEN</command> command. with the <command>LISTEN</command> command.
...@@ -706,7 +706,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.34 2001/11/19 03:58: ...@@ -706,7 +706,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.34 2001/11/19 03:58:
<title>Functions Associated with the COPY Command</title> <title>Functions Associated with the COPY Command</title>
<para> <para>
The <command>copy</command> command in <productname>Postgres</productname> The <command>copy</command> command in <productname>PostgreSQL</productname>
has options to read from or write to the network has options to read from or write to the network
connection used by <filename>libpq++</filename>. connection used by <filename>libpq++</filename>.
Therefore, functions are necessary to Therefore, functions are necessary to
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/libpq.sgml,v 1.78 2001/11/20 20:28:31 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/libpq.sgml,v 1.79 2001/11/21 05:53:41 thomas Exp $
--> -->
<chapter id="libpq"> <chapter id="libpq">
...@@ -892,7 +892,7 @@ undefined. A call to <function>PQescapeString</> writes an escaped ...@@ -892,7 +892,7 @@ undefined. A call to <function>PQescapeString</> writes an escaped
version of the <parameter>from</> string to the <parameter>to</> version of the <parameter>from</> string to the <parameter>to</>
buffer, replacing special characters so that they cannot cause any buffer, replacing special characters so that they cannot cause any
harm, and adding a terminating NUL character. The single quotes that harm, and adding a terminating NUL character. The single quotes that
must surround PostgreSQL string literals are not part of the result must surround <productname>PostgreSQL</> string literals are not part of the result
string. string.
</para> </para>
<para> <para>
...@@ -2152,7 +2152,7 @@ foo.c:95: `PGRES_TUPLES_OK' undeclared (first use in this function) ...@@ -2152,7 +2152,7 @@ foo.c:95: `PGRES_TUPLES_OK' undeclared (first use in this function)
<listitem> <listitem>
<para> <para>
Point your compiler to the directory where the PostgreSQL header Point your compiler to the directory where the <productname>PostgreSQL</> header
files were installed, by supplying the files were installed, by supplying the
<literal>-I<replaceable>directory</replaceable></literal> option <literal>-I<replaceable>directory</replaceable></literal> option
to your compiler. (In some cases the compiler will look into to your compiler. (In some cases the compiler will look into
...@@ -2239,7 +2239,7 @@ testlibpq.o(.text+0xa4): undefined reference to `PQerrorMessage' ...@@ -2239,7 +2239,7 @@ testlibpq.o(.text+0xa4): undefined reference to `PQerrorMessage'
<indexterm><primary>libpq-int.h</></> <indexterm><primary>libpq-int.h</></>
If your codes references the header file If your codes references the header file
<filename>libpq-int.h</filename> and you refuse to fix your code to <filename>libpq-int.h</filename> and you refuse to fix your code to
not use it, starting in PostgreSQL 7.2, this file will be found in not use it, starting in <productname>PostgreSQL</> 7.2, this file will be found in
<filename><replaceable>includedir</replaceable>/postgresql/internal/libpq-int.h</filename>, <filename><replaceable>includedir</replaceable>/postgresql/internal/libpq-int.h</filename>,
so you need to add the appropriate <option>-I</option> option to so you need to add the appropriate <option>-I</option> option to
your compiler command line. your compiler command line.
...@@ -2258,7 +2258,7 @@ testlibpq.o(.text+0xa4): undefined reference to `PQerrorMessage' ...@@ -2258,7 +2258,7 @@ testlibpq.o(.text+0xa4): undefined reference to `PQerrorMessage'
/* /*
* testlibpq.c * testlibpq.c
* *
* Test the C version of libpq, the PostgreSQL frontend * Test the C version of libpq, the <productname>PostgreSQL</> frontend
* library. * library.
*/ */
#include &lt;stdio.h&gt; #include &lt;stdio.h&gt;
...@@ -2509,7 +2509,7 @@ main() ...@@ -2509,7 +2509,7 @@ main()
<programlisting> <programlisting>
/* /*
* testlibpq3.c Test the C version of Libpq, the Postgres frontend * testlibpq3.c Test the C version of Libpq, the <productname>PostgreSQL</> frontend
* library. tests the binary cursor interface * library. tests the binary cursor interface
* *
* *
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/maintenance.sgml,v 1.8 2001/11/20 04:27:49 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/maintenance.sgml,v 1.9 2001/11/21 05:53:41 thomas Exp $
--> -->
<chapter id="maintenance"> <chapter id="maintenance">
...@@ -393,7 +393,7 @@ VACUUM ...@@ -393,7 +393,7 @@ VACUUM
<para> <para>
The simplest production-grade approach to managing log output is to send it The simplest production-grade approach to managing log output is to send it
all to <application>syslog</> and let <application>syslog</> deal with file all to <application>syslog</> and let <application>syslog</> deal with file
rotation. To do this, make sure <productname>Postgres</> was built with rotation. To do this, make sure <productname>PostgreSQL</> was built with
the <option>--enable-syslog</> configure option, and set the <option>--enable-syslog</> configure option, and set
<literal>syslog</> to 2 <literal>syslog</> to 2
(log to syslog only) in <filename>postgresql.conf</>. (log to syslog only) in <filename>postgresql.conf</>.
...@@ -415,7 +415,7 @@ VACUUM ...@@ -415,7 +415,7 @@ VACUUM
<userinput>pg_ctl start | logrotate</userinput> <userinput>pg_ctl start | logrotate</userinput>
</screen> </screen>
The <productname>Postgres</> distribution doesn't include a suitable The <productname>PostgreSQL</> distribution doesn't include a suitable
log rotation program, but there are many available on the net; log rotation program, but there are many available on the net;
one is included in the Apache distribution, for example. one is included in the Apache distribution, for example.
</para> </para>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/manage-ag.sgml,v 2.18 2001/11/18 00:38:00 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/manage-ag.sgml,v 2.19 2001/11/21 05:53:41 thomas Exp $
--> -->
<chapter id="managing-databases"> <chapter id="managing-databases">
...@@ -30,7 +30,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/manage-ag.sgml,v 2.18 2001/11/18 00:38:00 t ...@@ -30,7 +30,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/manage-ag.sgml,v 2.18 2001/11/18 00:38:00 t
</note> </note>
<para> <para>
In order to create or drop databases, the <productname>Postgres</> In order to create or drop databases, the <productname>PostgreSQL</>
<application>postmaster</> must be up and running (see <xref <application>postmaster</> must be up and running (see <xref
linkend="postmaster-start">). linkend="postmaster-start">).
</para> </para>
...@@ -123,7 +123,8 @@ createdb <replaceable class="parameter">dbname</replaceable> ...@@ -123,7 +123,8 @@ createdb <replaceable class="parameter">dbname</replaceable>
There is a second standard system database named <literal>template0</>. There is a second standard system database named <literal>template0</>.
This database contains the same data as the initial contents of This database contains the same data as the initial contents of
<literal>template1</>, that is, only the standard objects predefined by <literal>template1</>, that is, only the standard objects predefined by
your version of Postgres. <literal>template0</> should never be changed your version of <productname>PostgreSQL</productname>.
<literal>template0</> should never be changed
after <literal>initdb</>. By instructing <command>CREATE DATABASE</> to after <literal>initdb</>. By instructing <command>CREATE DATABASE</> to
copy <literal>template0</> instead of <literal>template1</>, you can copy <literal>template0</> instead of <literal>template1</>, you can
create a <quote>virgin</> user database that contains none of the create a <quote>virgin</> user database that contains none of the
...@@ -283,7 +284,7 @@ CREATE DATABASE <replaceable>name</> WITH LOCATION = '<replaceable>location</>' ...@@ -283,7 +284,7 @@ CREATE DATABASE <replaceable>name</> WITH LOCATION = '<replaceable>location</>'
It can also be possible to specify absolute paths directly to the It can also be possible to specify absolute paths directly to the
<command>CREATE DATABASE</> command without defining environment <command>CREATE DATABASE</> command without defining environment
variables. This is disallowed by default because it is a security variables. This is disallowed by default because it is a security
risk. To allow it, you must compile <productname>Postgres</> with risk. To allow it, you must compile <productname>PostgreSQL</> with
the C preprocessor macro <literal>ALLOW_ABSOLUTE_DBPATHS</> the C preprocessor macro <literal>ALLOW_ABSOLUTE_DBPATHS</>
defined. One way to do this is to run the compilation step like defined. One way to do this is to run the compilation step like
this: this:
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/manage.sgml,v 1.19 2001/11/19 03:58:24 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/manage.sgml,v 1.20 2001/11/21 05:53:41 thomas Exp $
--> -->
<Chapter Id="manage"> <Chapter Id="manage">
...@@ -13,13 +13,13 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/manage.sgml,v 1.19 2001/11/19 03:58:2 ...@@ -13,13 +13,13 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/manage.sgml,v 1.19 2001/11/19 03:58:2
<Para> <Para>
Although the <FirstTerm>site administrator</FirstTerm> is responsible for overall management Although the <FirstTerm>site administrator</FirstTerm> is responsible for overall management
of the <ProductName>Postgres</ProductName> installation, some databases within the of the <ProductName>PostgreSQL</ProductName> installation, some databases within the
installation may be managed by another person, installation may be managed by another person,
designated the <FirstTerm>database administrator</FirstTerm>. designated the <FirstTerm>database administrator</FirstTerm>.
This assignment of responsibilities occurs when a database is created. This assignment of responsibilities occurs when a database is created.
A user may be assigned explicit privileges to create databases and/or to create new users. A user may be assigned explicit privileges to create databases and/or to create new users.
A user assigned both privileges can perform most administrative tasks A user assigned both privileges can perform most administrative tasks
within <ProductName>Postgres</ProductName>, but will within <ProductName>PostgreSQL</ProductName>, but will
not by default have the same operating system privileges as the site administrator. not by default have the same operating system privileges as the site administrator.
</Para> </Para>
...@@ -34,14 +34,14 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/manage.sgml,v 1.19 2001/11/19 03:58:2 ...@@ -34,14 +34,14 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/manage.sgml,v 1.19 2001/11/19 03:58:2
<Para> <Para>
Databases are created by the <Command>CREATE DATABASE</Command> Databases are created by the <Command>CREATE DATABASE</Command>
command issued from within command issued from within
<ProductName>Postgres</ProductName>. <Application>createdb</Application> <ProductName>PostgreSQL</ProductName>. <Application>createdb</Application>
is a shell script provided to give the same functionality from the is a shell script provided to give the same functionality from the
Unix command line. Unix command line.
</Para> </Para>
<Para> <Para>
The <ProductName>Postgres</ProductName> backend must be running for either method The <ProductName>PostgreSQL</ProductName> backend must be running for either method
to succeed, and the user issuing the command must be the <ProductName>Postgres</ProductName> to succeed, and the user issuing the command must be the <ProductName>PostgreSQL</ProductName>
<FirstTerm>superuser</FirstTerm> or have been assigned database creation privileges by the <FirstTerm>superuser</FirstTerm> or have been assigned database creation privileges by the
superuser. superuser.
</Para> </Para>
...@@ -71,7 +71,7 @@ ERROR: CREATE DATABASE: Permission denied. ...@@ -71,7 +71,7 @@ ERROR: CREATE DATABASE: Permission denied.
database administrator of the database you just created. database administrator of the database you just created.
Database names must have an alphabetic first Database names must have an alphabetic first
character and are limited to 31 characters in length. character and are limited to 31 characters in length.
<ProductName>Postgres</ProductName> allows you to create any number of <ProductName>PostgreSQL</ProductName> allows you to create any number of
databases at a given site. databases at a given site.
</Para> </Para>
...@@ -157,7 +157,7 @@ mydb=> \h ...@@ -157,7 +157,7 @@ mydb=> \h
Once you have finished entering your queries into the Once you have finished entering your queries into the
workspace, you can pass the contents of the workspace workspace, you can pass the contents of the workspace
to the <ProductName>Postgres</ProductName> server by typing: to the <ProductName>PostgreSQL</ProductName> server by typing:
<ProgramListing> <ProgramListing>
mydb=> \g mydb=> \g
</ProgramListing> </ProgramListing>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.19 2001/10/09 18:46:00 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.20 2001/11/21 05:53:41 thomas Exp $
--> -->
<chapter id="mvcc"> <chapter id="mvcc">
...@@ -16,7 +16,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.19 2001/10/09 18:46:00 petere ...@@ -16,7 +16,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.19 2001/10/09 18:46:00 petere
is an advanced technique for improving database performance in a is an advanced technique for improving database performance in a
multi-user environment. multi-user environment.
Vadim Mikheev (<email>vadim@krs.ru</email>) provided Vadim Mikheev (<email>vadim@krs.ru</email>) provided
the implementation for <productname>Postgres</productname>. the implementation for <productname>PostgreSQL</productname>.
</para> </para>
</abstract> </abstract>
...@@ -25,7 +25,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.19 2001/10/09 18:46:00 petere ...@@ -25,7 +25,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.19 2001/10/09 18:46:00 petere
<para> <para>
Unlike most other database systems which use locks for concurrency control, Unlike most other database systems which use locks for concurrency control,
<productname>Postgres</productname> <productname>PostgreSQL</productname>
maintains data consistency by using a multiversion model. maintains data consistency by using a multiversion model.
This means that while querying a database each transaction sees This means that while querying a database each transaction sees
a snapshot of data (a <firstterm>database version</firstterm>) a snapshot of data (a <firstterm>database version</firstterm>)
...@@ -191,7 +191,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.19 2001/10/09 18:46:00 petere ...@@ -191,7 +191,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.19 2001/10/09 18:46:00 petere
</para> </para>
<para> <para>
<productname>Postgres</productname> <productname>PostgreSQL</productname>
offers the read committed and serializable isolation levels. offers the read committed and serializable isolation levels.
</para> </para>
</sect1> </sect1>
...@@ -206,7 +206,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.19 2001/10/09 18:46:00 petere ...@@ -206,7 +206,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.19 2001/10/09 18:46:00 petere
<para> <para>
<firstterm>Read Committed</firstterm> <firstterm>Read Committed</firstterm>
is the default isolation level in <productname>Postgres</productname>. is the default isolation level in <productname>PostgreSQL</productname>.
When a transaction runs on this isolation level, When a transaction runs on this isolation level,
a <command>SELECT</command> query sees only data committed before the a <command>SELECT</command> query sees only data committed before the
query began and never sees either uncommitted data or changes committed query began and never sees either uncommitted data or changes committed
...@@ -324,7 +324,7 @@ ERROR: Can't serialize access due to concurrent update ...@@ -324,7 +324,7 @@ ERROR: Can't serialize access due to concurrent update
<title>Data consistency checks at the application level</title> <title>Data consistency checks at the application level</title>
<para> <para>
Because readers in <productname>Postgres</productname> Because readers in <productname>PostgreSQL</productname>
don't lock data, regardless of don't lock data, regardless of
transaction isolation level, data read by one transaction can be transaction isolation level, data read by one transaction can be
overwritten by another concurrent transaction. In other words, overwritten by another concurrent transaction. In other words,
...@@ -354,15 +354,15 @@ ERROR: Can't serialize access due to concurrent update ...@@ -354,15 +354,15 @@ ERROR: Can't serialize access due to concurrent update
concurrent updates, while <command>LOCK TABLE</command> protects the concurrent updates, while <command>LOCK TABLE</command> protects the
whole table.) whole table.)
This should be taken into account when porting applications to This should be taken into account when porting applications to
<productname>Postgres</productname> from other environments. <productname>PostgreSQL</productname> from other environments.
<note> <note>
<para> <para>
Before version 6.5 <productname>Postgres</productname> Before version 6.5 <productname>PostgreSQL</productname>
used read-locks and so the used read-locks and so the
above consideration is also the case above consideration is also the case
when upgrading to 6.5 (or higher) from previous when upgrading to 6.5 (or higher) from previous
<productname>Postgres</productname> versions. <productname>PostgreSQL</productname> versions.
</para> </para>
</note> </note>
</para> </para>
...@@ -376,10 +376,10 @@ ERROR: Can't serialize access due to concurrent update ...@@ -376,10 +376,10 @@ ERROR: Can't serialize access due to concurrent update
</indexterm> </indexterm>
<para> <para>
<productname>Postgres</productname> <productname>PostgreSQL</productname>
provides various lock modes to control concurrent provides various lock modes to control concurrent
access to data in tables. Some of these lock modes are acquired by access to data in tables. Some of these lock modes are acquired by
<productname>Postgres</productname> <productname>PostgreSQL</productname>
automatically before statement execution, while others are automatically before statement execution, while others are
provided to be used by applications. All lock modes acquired in a provided to be used by applications. All lock modes acquired in a
transaction are held for the duration transaction are held for the duration
...@@ -559,7 +559,7 @@ ERROR: Can't serialize access due to concurrent update ...@@ -559,7 +559,7 @@ ERROR: Can't serialize access due to concurrent update
</para> </para>
<para> <para>
<productname>Postgres</productname> <productname>PostgreSQL</productname>
doesn't remember any information about modified rows in memory and doesn't remember any information about modified rows in memory and
so has no limit to the number of rows locked at one time. However, so has no limit to the number of rows locked at one time. However,
locking a row may cause a disk write; thus, for example, locking a row may cause a disk write; thus, for example,
...@@ -581,11 +581,11 @@ ERROR: Can't serialize access due to concurrent update ...@@ -581,11 +581,11 @@ ERROR: Can't serialize access due to concurrent update
<title>Locking and Indexes</title> <title>Locking and Indexes</title>
<para> <para>
Though <productname>Postgres</productname> Though <productname>PostgreSQL</productname>
provides nonblocking read/write access to table provides nonblocking read/write access to table
data, nonblocking read/write access is not currently offered for every data, nonblocking read/write access is not currently offered for every
index access method implemented index access method implemented
in <productname>Postgres</productname>. in <productname>PostgreSQL</productname>.
</para> </para>
<para> <para>
......
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/nls.sgml,v 1.1 2001/06/02 18:25:16 petere Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/nls.sgml,v 1.2 2001/11/21 05:53:41 thomas Exp $ -->
<chapter id="nls"> <chapter id="nls">
<docinfo> <docinfo>
...@@ -14,11 +14,13 @@ ...@@ -14,11 +14,13 @@
<title>For the Translator</title> <title>For the Translator</title>
<para> <para>
PostgreSQL programs (server and client) can issue their messages in <productname>PostgreSQL</>
programs (server and client) can issue their messages in
your favorite language -- if the messages have been translated. your favorite language -- if the messages have been translated.
Creating and maintaining translated message sets needs the help of Creating and maintaining translated message sets needs the help of
people who speak their own language well and want to contribute to people who speak their own language well and want to contribute to
the PostgreSQL effort. You do not have to be a programmer at all the <productname>PostgreSQL</> effort. You do not have to be a
programmer at all
to do this. This section explains how to help. to do this. This section explains how to help.
</para> </para>
...@@ -300,7 +302,8 @@ msgstr "Die Datei %2$s hat %1$u Zeichen." ...@@ -300,7 +302,8 @@ msgstr "Die Datei %2$s hat %1$u Zeichen."
<para> <para>
This section describes how to support native language support in a This section describes how to support native language support in a
program or library that is part of the PostgreSQL distribution. program or library that is part of the
<productname>PostgreSQL</> distribution.
Currently, it only applies to C programs. Currently, it only applies to C programs.
</para> </para>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/notation.sgml,v 1.17 2001/10/09 18:46:00 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/notation.sgml,v 1.18 2001/11/21 05:53:41 thomas Exp $
--> -->
<sect1 id="notation"> <sect1 id="notation">
<title>Terminology and Notation</title> <title>Terminology and Notation</title>
<para> <para>
The terms <quote>Postgres</quote> and <quote>PostgreSQL</quote> will be The terms <quote>PostgreSQL</quote> and <quote>Postgres</quote> will be
used interchangeably to refer to the software that accompanies this used interchangeably to refer to the software that accompanies this
documentation. documentation.
</para> </para>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/odbc.sgml,v 1.27 2001/11/12 19:19:39 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/odbc.sgml,v 1.28 2001/11/21 05:53:41 thomas Exp $
--> -->
<chapter id="odbc"> <chapter id="odbc">
...@@ -48,7 +48,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/odbc.sgml,v 1.27 2001/11/12 19:19:39 ...@@ -48,7 +48,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/odbc.sgml,v 1.27 2001/11/12 19:19:39
The <acronym>ODBC</acronym> <acronym>API</acronym> matches up The <acronym>ODBC</acronym> <acronym>API</acronym> matches up
on the backend to an <acronym>ODBC</acronym>-compatible data source. on the backend to an <acronym>ODBC</acronym>-compatible data source.
This could be anything from a text file to an Oracle or This could be anything from a text file to an Oracle or
<productname>Postgres</productname> <acronym>RDBMS</acronym>. <productname>PostgreSQL</productname> <acronym>RDBMS</acronym>.
</para> </para>
<para> <para>
...@@ -68,7 +68,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/odbc.sgml,v 1.27 2001/11/12 19:19:39 ...@@ -68,7 +68,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/odbc.sgml,v 1.27 2001/11/12 19:19:39
<para> <para>
For example. you could have <productname>MS SQL Server</productname> For example. you could have <productname>MS SQL Server</productname>
and <productname>Postgres</productname> servers that have and <productname>PostgreSQL</productname> servers that have
exactly the same data. Using <acronym>ODBC</acronym>, exactly the same data. Using <acronym>ODBC</acronym>,
your Windows application would make exactly the your Windows application would make exactly the
same calls and the back end data source would look the same (to the Windows same calls and the back end data source would look the same (to the Windows
...@@ -195,9 +195,9 @@ Port=5432 ...@@ -195,9 +195,9 @@ Port=5432
<tip> <tip>
<para> <para>
Remember that the <productname>Postgres</productname> database name is Remember that the <productname>PostgreSQL</productname> database name is
usually a single word, without path names of any sort. usually a single word, without path names of any sort.
The <productname>Postgres</productname> server manages the actual access The <productname>PostgreSQL</productname> server manages the actual access
to the database, and you need only specify the name from the client. to the database, and you need only specify the name from the client.
</para> </para>
</tip> </tip>
...@@ -287,9 +287,9 @@ InstallDir = /opt/applix/axdata/axshlib ...@@ -287,9 +287,9 @@ InstallDir = /opt/applix/axdata/axshlib
<para> <para>
<quote> <quote>
If I write an application for <productname>Postgres</productname> If I write an application for <productname>PostgreSQL</productname>
can I write it using <acronym>ODBC</acronym> calls can I write it using <acronym>ODBC</acronym> calls
to the <productname>Postgres</productname> server, to the <productname>PostgreSQL</productname> server,
or is that only when another database program or is that only when another database program
like MS SQL Server or Access needs to access the data? like MS SQL Server or Access needs to access the data?
</quote> </quote>
...@@ -335,9 +335,9 @@ InstallDir = /opt/applix/axdata/axshlib ...@@ -335,9 +335,9 @@ InstallDir = /opt/applix/axdata/axshlib
<acronym>ODBC</acronym> database interface <acronym>ODBC</acronym> database interface
supported on at least some platforms. supported on at least some platforms.
<productname>ApplixWare</productname> 4.4.2 has been <productname>ApplixWare</productname> 4.4.2 has been
demonstrated under Linux with <productname>Postgres</productname> 7.0 demonstrated under Linux with <productname>PostgreSQL</productname> 7.0
using the <productname>psqlODBC</productname> using the <productname>psqlODBC</productname>
driver contained in the <productname>Postgres</productname> distribution. driver contained in the <productname>PostgreSQL</productname> distribution.
</para> </para>
<sect2> <sect2>
...@@ -346,7 +346,7 @@ InstallDir = /opt/applix/axdata/axshlib ...@@ -346,7 +346,7 @@ InstallDir = /opt/applix/axdata/axshlib
<para> <para>
<productname>ApplixWare</productname> must be configured correctly <productname>ApplixWare</productname> must be configured correctly
in order for it to in order for it to
be able to access the <productname>Postgres</productname> be able to access the <productname>PostgreSQL</productname>
<acronym>ODBC</acronym> software drivers. <acronym>ODBC</acronym> software drivers.
</para> </para>
...@@ -434,7 +434,7 @@ TextAsLongVarchar=0 ...@@ -434,7 +434,7 @@ TextAsLongVarchar=0
<step performance="required"> <step performance="required">
<para> <para>
Select the <productname>Postgres</productname> database of interest. Select the <productname>PostgreSQL</productname> database of interest.
</para> </para>
<substeps> <substeps>
...@@ -666,7 +666,7 @@ can't load library 'libodbc.so'\n", 61) = -1 EIO (I/O error) ...@@ -666,7 +666,7 @@ can't load library 'libodbc.so'\n", 61) = -1 EIO (I/O error)
the sample tables that the Tutorial refers to. The ELF Macro used to the sample tables that the Tutorial refers to. The ELF Macro used to
create the tables tries to use a NULL condition create the tables tries to use a NULL condition
on many of the database columns, on many of the database columns,
and <productname>Postgres</productname> does not currently allow this option. and <productname>PostgreSQL</productname> does not currently allow this option.
</para> </para>
<para> <para>
To get around this problem, you can do the following: To get around this problem, you can do the following:
......
...@@ -9,7 +9,7 @@ A description of the database file default page format. ...@@ -9,7 +9,7 @@ A description of the database file default page format.
</abstract> </abstract>
<para> <para>
This section provides an overview of the page format used by <productname>Postgres</productname> This section provides an overview of the page format used by <productname>PostgreSQL</productname>
tables. User-defined access methods need not use this page format. tables. User-defined access methods need not use this page format.
</para> </para>
...@@ -18,12 +18,12 @@ In the following explanation, a ...@@ -18,12 +18,12 @@ In the following explanation, a
<firstterm>byte</firstterm> <firstterm>byte</firstterm>
is assumed to contain 8 bits. In addition, the term is assumed to contain 8 bits. In addition, the term
<firstterm>item</firstterm> <firstterm>item</firstterm>
refers to data that is stored in <productname>Postgres</productname> tables. refers to data that is stored in <productname>PostgreSQL</productname> tables.
</para> </para>
<para> <para>
<xref linkend="page-table"> shows how pages in both normal <productname>Postgres</productname> tables <xref linkend="page-table"> shows how pages in both normal <productname>PostgreSQL</productname> tables
and <productname>Postgres</productname> indexes and <productname>PostgreSQL</productname> indexes
(e.g., a B-tree index) are structured. (e.g., a B-tree index) are structured.
</para> </para>
...@@ -131,7 +131,7 @@ unallocated space. Because an item identifier is never moved until it ...@@ -131,7 +131,7 @@ unallocated space. Because an item identifier is never moved until it
is freed, its index may be used to indicate the location of an item on is freed, its index may be used to indicate the location of an item on
a page. In fact, every pointer to an item a page. In fact, every pointer to an item
(<firstterm>ItemPointer</firstterm>) (<firstterm>ItemPointer</firstterm>)
created by <productname>Postgres</productname> consists of a frame number and an index of an item created by <productname>PostgreSQL</productname> consists of a frame number and an index of an item
identifier. An item identifier contains a byte-offset to the start of identifier. An item identifier contains a byte-offset to the start of
an item, its length in bytes, and a set of attribute bits which affect an item, its length in bytes, and a set of attribute bits which affect
its interpretation. its interpretation.
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/perform.sgml,v 1.13 2001/10/16 01:13:44 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/perform.sgml,v 1.14 2001/11/21 05:53:41 thomas Exp $
--> -->
<chapter id="performance-tips"> <chapter id="performance-tips">
...@@ -9,14 +9,14 @@ $Header: /cvsroot/pgsql/doc/src/sgml/perform.sgml,v 1.13 2001/10/16 01:13:44 tgl ...@@ -9,14 +9,14 @@ $Header: /cvsroot/pgsql/doc/src/sgml/perform.sgml,v 1.13 2001/10/16 01:13:44 tgl
Query performance can be affected by many things. Some of these can Query performance can be affected by many things. Some of these can
be manipulated by the user, while others are fundamental to the underlying be manipulated by the user, while others are fundamental to the underlying
design of the system. This chapter provides some hints about understanding design of the system. This chapter provides some hints about understanding
and tuning <productname>Postgres</productname> performance. and tuning <productname>PostgreSQL</productname> performance.
</para> </para>
<sect1 id="using-explain"> <sect1 id="using-explain">
<title>Using <command>EXPLAIN</command></title> <title>Using <command>EXPLAIN</command></title>
<para> <para>
<productname>Postgres</productname> devises a <firstterm>query <productname>PostgreSQL</productname> devises a <firstterm>query
plan</firstterm> for each query it is given. Choosing the right plan</firstterm> for each query it is given. Choosing the right
plan to match the query structure and the properties of the data plan to match the query structure and the properties of the data
is absolutely critical for good performance. You can use the is absolutely critical for good performance. You can use the
...@@ -398,7 +398,7 @@ regression=# select attname, n_distinct, most_common_vals from pg_stats where ta ...@@ -398,7 +398,7 @@ regression=# select attname, n_distinct, most_common_vals from pg_stats where ta
regression=# regression=#
</screen> </screen>
As of <productname>Postgres</productname> 7.2 the following columns exist As of <productname>PostgreSQL</productname> 7.2 the following columns exist
in <structname>pg_stats</structname>: in <structname>pg_stats</structname>:
</para> </para>
...@@ -513,7 +513,7 @@ regression=# ...@@ -513,7 +513,7 @@ regression=#
<title>Controlling the Planner with Explicit JOINs</title> <title>Controlling the Planner with Explicit JOINs</title>
<para> <para>
Beginning with <productname>Postgres</productname> 7.1 it is possible Beginning with <productname>PostgreSQL</productname> 7.1 it is possible
to control the query planner to some extent by using explicit JOIN to control the query planner to some extent by using explicit JOIN
syntax. To see why this matters, we first need some background. syntax. To see why this matters, we first need some background.
</para> </para>
...@@ -531,7 +531,7 @@ SELECT * FROM a,b,c WHERE a.id = b.id AND b.ref = c.id; ...@@ -531,7 +531,7 @@ SELECT * FROM a,b,c WHERE a.id = b.id AND b.ref = c.id;
be inefficient, since the full Cartesian product of A and C would have be inefficient, since the full Cartesian product of A and C would have
to be formed, there being no applicable WHERE clause to allow optimization to be formed, there being no applicable WHERE clause to allow optimization
of the join. of the join.
(All joins in the <productname>Postgres</productname> executor happen (All joins in the <productname>PostgreSQL</productname> executor happen
between two input tables, so it's necessary to build up the result in one between two input tables, so it's necessary to build up the result in one
or another of these fashions.) The important point is that these different or another of these fashions.) The important point is that these different
join possibilities give semantically equivalent results but may have hugely join possibilities give semantically equivalent results but may have hugely
...@@ -546,7 +546,7 @@ SELECT * FROM a,b,c WHERE a.id = b.id AND b.ref = c.id; ...@@ -546,7 +546,7 @@ SELECT * FROM a,b,c WHERE a.id = b.id AND b.ref = c.id;
tables it's no longer practical to do an exhaustive search of all the tables it's no longer practical to do an exhaustive search of all the
possibilities, and even for six or seven tables planning may take an possibilities, and even for six or seven tables planning may take an
annoyingly long time. When there are too many input tables, the annoyingly long time. When there are too many input tables, the
<productname>Postgres</productname> planner will switch from exhaustive <productname>PostgreSQL</productname> planner will switch from exhaustive
search to a <firstterm>genetic</firstterm> probabilistic search search to a <firstterm>genetic</firstterm> probabilistic search
through a limited number of possibilities. (The switch-over threshold is through a limited number of possibilities. (The switch-over threshold is
set by the <varname>GEQO_THRESHOLD</varname> run-time set by the <varname>GEQO_THRESHOLD</varname> run-time
...@@ -570,7 +570,7 @@ SELECT * FROM a LEFT JOIN (b JOIN c ON (b.ref = c.id)) ON (a.id = b.id); ...@@ -570,7 +570,7 @@ SELECT * FROM a LEFT JOIN (b JOIN c ON (b.ref = c.id)) ON (a.id = b.id);
</para> </para>
<para> <para>
In <productname>Postgres</productname> 7.1, the planner treats all In <productname>PostgreSQL</productname> 7.1, the planner treats all
explicit JOIN syntaxes as constraining the join order, even though explicit JOIN syntaxes as constraining the join order, even though
it is not logically necessary to make such a constraint for inner it is not logically necessary to make such a constraint for inner
joins. Therefore, although all of these queries give the same result: joins. Therefore, although all of these queries give the same result:
...@@ -639,7 +639,7 @@ SELECT * FROM d LEFT JOIN ...@@ -639,7 +639,7 @@ SELECT * FROM d LEFT JOIN
libraries may do this behind your back, in which case you need to libraries may do this behind your back, in which case you need to
make sure the library does it when you want it done.) make sure the library does it when you want it done.)
If you allow each insertion to be committed separately, If you allow each insertion to be committed separately,
<productname>Postgres</productname> is doing a lot of work for each <productname>PostgreSQL</productname> is doing a lot of work for each
record added. record added.
</para> </para>
</sect2> </sect2>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/plperl.sgml,v 2.10 2001/09/10 21:58:47 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/plperl.sgml,v 2.11 2001/11/21 05:53:41 thomas Exp $
--> -->
<chapter id="plperl"> <chapter id="plperl">
...@@ -16,7 +16,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/plperl.sgml,v 2.10 2001/09/10 21:58:47 pete ...@@ -16,7 +16,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/plperl.sgml,v 2.10 2001/09/10 21:58:47 pete
<para> <para>
PL/Perl allows you to write functions in the Perl programming PL/Perl allows you to write functions in the Perl programming
language that may be used in SQL queries as if they were built into language that may be used in SQL queries as if they were built into
<productname>Postgres</productname>. <productname>PostgreSQL</productname>.
</para> </para>
<para> <para>
...@@ -41,7 +41,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/plperl.sgml,v 2.10 2001/09/10 21:58:47 pete ...@@ -41,7 +41,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/plperl.sgml,v 2.10 2001/09/10 21:58:47 pete
<para> <para>
In order to build and install PL/Perl if you are installing In order to build and install PL/Perl if you are installing
<productname>Postgres</productname> from source then the <productname>PostgreSQL</productname> from source then the
<option>--with-perl</option> must be supplied to the <option>--with-perl</option> must be supplied to the
<indexterm><primary><filename>configure</filename></primary></indexterm> <indexterm><primary><filename>configure</filename></primary></indexterm>
<filename>configure</filename> script. PL/Perl requires that, when <filename>configure</filename> script. PL/Perl requires that, when
...@@ -69,7 +69,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/plperl.sgml,v 2.10 2001/09/10 21:58:47 pete ...@@ -69,7 +69,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/plperl.sgml,v 2.10 2001/09/10 21:58:47 pete
When you want to retry to build PL/Perl after having reinstalled When you want to retry to build PL/Perl after having reinstalled
Perl, then change to the directory Perl, then change to the directory
<filename>src/pl/plperl</filename> in the <filename>src/pl/plperl</filename> in the
<productname>Postgres</productname> source tree and issue the commands <productname>PostgreSQL</productname> source tree and issue the commands
<programlisting> <programlisting>
gmake clean gmake clean
gmake all gmake all
......
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/plpython.sgml,v 1.6 2001/11/20 21:09:53 momjian Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/plpython.sgml,v 1.7 2001/11/21 05:53:41 thomas Exp $ -->
<chapter id="plpython"> <chapter id="plpython">
<title>PL/Python - Python Procedural Language</title> <title>PL/Python - Python Procedural Language</title>
...@@ -72,7 +72,7 @@ def __plpython_procedure_myfunc_23456(): ...@@ -72,7 +72,7 @@ def __plpython_procedure_myfunc_23456():
</para> </para>
<para> <para>
PostgreSQL function variables are available in the global <productname>PostgreSQL</> function variables are available in the global
<varname>args</varname> list. In the <function>myfunc</function> <varname>args</varname> list. In the <function>myfunc</function>
example, <varname>args[0]</> contains whatever was passed in as the text example, <varname>args[0]</> contains whatever was passed in as the text
argument. For <literal>myfunc2(text, integer)</literal>, <varname>args[0]</> argument. For <literal>myfunc2(text, integer)</literal>, <varname>args[0]</>
......
This diff is collapsed.
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/pltcl.sgml,v 2.16 2001/11/19 03:58:24 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/pltcl.sgml,v 2.17 2001/11/21 05:53:41 thomas Exp $
--> -->
<chapter id="pltcl"> <chapter id="pltcl">
...@@ -15,7 +15,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/pltcl.sgml,v 2.16 2001/11/19 03:58:24 tgl E ...@@ -15,7 +15,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/pltcl.sgml,v 2.16 2001/11/19 03:58:24 tgl E
<para> <para>
PL/Tcl is a loadable procedural language for the PL/Tcl is a loadable procedural language for the
<productname>Postgres</productname> database system <productname>PostgreSQL</productname> database system
that enables the Tcl language to be used to create functions and that enables the Tcl language to be used to create functions and
trigger procedures. trigger procedures.
</para> </para>
...@@ -39,7 +39,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/pltcl.sgml,v 2.16 2001/11/19 03:58:24 tgl E ...@@ -39,7 +39,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/pltcl.sgml,v 2.16 2001/11/19 03:58:24 tgl E
a few commands are available to access the database via SPI and to raise a few commands are available to access the database via SPI and to raise
messages via <function>elog()</>. There is no way to access internals of the messages via <function>elog()</>. There is no way to access internals of the
database backend or to gain OS-level access under the permissions of the database backend or to gain OS-level access under the permissions of the
<productname>Postgres</productname> user ID, as a C function can do. <productname>PostgreSQL</productname> user ID, as a C function can do.
Thus, any unprivileged database user may be Thus, any unprivileged database user may be
permitted to use this language. permitted to use this language.
</para> </para>
...@@ -62,7 +62,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/pltcl.sgml,v 2.16 2001/11/19 03:58:24 tgl E ...@@ -62,7 +62,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/pltcl.sgml,v 2.16 2001/11/19 03:58:24 tgl E
<para> <para>
The shared object for the PL/Tcl and PL/TclU call handlers is The shared object for the PL/Tcl and PL/TclU call handlers is
automatically built and installed in the automatically built and installed in the
<productname>Postgres</productname> <productname>PostgreSQL</productname>
library directory if Tcl/Tk support is specified library directory if Tcl/Tk support is specified
in the configuration step of the installation procedure. To install in the configuration step of the installation procedure. To install
PL/Tcl and/or PL/TclU in a particular database, use the PL/Tcl and/or PL/TclU in a particular database, use the
...@@ -76,16 +76,16 @@ $Header: /cvsroot/pgsql/doc/src/sgml/pltcl.sgml,v 2.16 2001/11/19 03:58:24 tgl E ...@@ -76,16 +76,16 @@ $Header: /cvsroot/pgsql/doc/src/sgml/pltcl.sgml,v 2.16 2001/11/19 03:58:24 tgl E
<title>Description</title> <title>Description</title>
<sect2> <sect2>
<title><productname>Postgres</productname> Functions and Tcl Procedure Names</title> <title><productname>PostgreSQL</productname> Functions and Tcl Procedure Names</title>
<para> <para>
In <productname>Postgres</productname>, one and the In <productname>PostgreSQL</productname>, one and the
same function name can be used for same function name can be used for
different functions as long as the number of arguments or their types different functions as long as the number of arguments or their types
differ. This would collide with Tcl procedure names. To offer the same differ. This would collide with Tcl procedure names. To offer the same
flexibility in PL/Tcl, the internal Tcl procedure names contain the object flexibility in PL/Tcl, the internal Tcl procedure names contain the object
ID of the procedure's pg_proc row as part of their name. Thus, different ID of the procedure's pg_proc row as part of their name. Thus, different
argtype versions of the same <productname>Postgres</productname> argtype versions of the same <productname>PostgreSQL</productname>
function are different for Tcl too. function are different for Tcl too.
</para> </para>
...@@ -128,7 +128,7 @@ CREATE FUNCTION tcl_max (int4, int4) RETURNS int4 AS ' ...@@ -128,7 +128,7 @@ CREATE FUNCTION tcl_max (int4, int4) RETURNS int4 AS '
type. If an attribute in the actual row type. If an attribute in the actual row
has the NULL value, it will not appear in the array! Here is has the NULL value, it will not appear in the array! Here is
an example that defines the overpaid_2 function (as found in the an example that defines the overpaid_2 function (as found in the
older <productname>Postgres</productname> documentation) in PL/Tcl older <productname>PostgreSQL</productname> documentation) in PL/Tcl
<programlisting> <programlisting>
CREATE FUNCTION overpaid_2 (EMP) RETURNS bool AS ' CREATE FUNCTION overpaid_2 (EMP) RETURNS bool AS '
...@@ -175,7 +175,7 @@ CREATE FUNCTION overpaid_2 (EMP) RETURNS bool AS ' ...@@ -175,7 +175,7 @@ CREATE FUNCTION overpaid_2 (EMP) RETURNS bool AS '
</indexterm> </indexterm>
<para> <para>
Trigger procedures are defined in <productname>Postgres</productname> Trigger procedures are defined in <productname>PostgreSQL</productname>
as functions without as functions without
arguments and a return type of opaque. And so are they in the PL/Tcl arguments and a return type of opaque. And so are they in the PL/Tcl
language. language.
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/postgres.sgml,v 1.46 2001/05/12 22:51:35 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/postgres.sgml,v 1.47 2001/11/21 05:53:41 thomas Exp $
--> -->
<!doctype set PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [ <!doctype set PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
...@@ -47,11 +47,12 @@ sgml-shorttag:t ...@@ -47,11 +47,12 @@ sgml-shorttag:t
sgml-minimize-attributes:nil sgml-minimize-attributes:nil
sgml-always-quote-attributes:t sgml-always-quote-attributes:t
sgml-indent-step:1 sgml-indent-step:1
sgml-indent-tabs-mode:nil
sgml-indent-data:t sgml-indent-data:t
sgml-parent-document:nil sgml-parent-document:nil
sgml-default-dtd-file:"./reference.ced" sgml-default-dtd-file:"./reference.ced"
sgml-exposed-tags:nil sgml-exposed-tags:nil
sgml-local-catalogs:("/usr/lib/sgml/catalog") sgml-local-catalogs:("/usr/share/sgml/catalog")
sgml-local-ecat-files:nil sgml-local-ecat-files:nil
End: End:
--> -->
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/problems.sgml,v 2.10 2001/11/18 07:14:49 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/problems.sgml,v 2.11 2001/11/21 05:53:41 thomas Exp $
--> -->
<sect1 id="bug-reporting"> <sect1 id="bug-reporting">
...@@ -8,8 +8,10 @@ $Header: /cvsroot/pgsql/doc/src/sgml/problems.sgml,v 2.10 2001/11/18 07:14:49 tg ...@@ -8,8 +8,10 @@ $Header: /cvsroot/pgsql/doc/src/sgml/problems.sgml,v 2.10 2001/11/18 07:14:49 tg
<para> <para>
When you find a bug in <productname>PostgreSQL</productname> we want to When you find a bug in <productname>PostgreSQL</productname> we want to
hear about it. Your bug reports play an important part in making hear about it. Your bug reports play an important part in making
<productname>PostgreSQL</productname> more reliable, because even the utmost <productname>PostgreSQL</productname> more reliable because even the utmost
care cannot guarantee that every part of PostgreSQL will work on every care cannot guarantee that every part of
<productname>PostgreSQL</productname>
will work on every
platform under every circumstance. platform under every circumstance.
</para> </para>
...@@ -259,7 +261,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/problems.sgml,v 2.10 2001/11/18 07:14:49 tg ...@@ -259,7 +261,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/problems.sgml,v 2.10 2001/11/18 07:14:49 tg
The software package in total is called <quote>PostgreSQL</quote>, The software package in total is called <quote>PostgreSQL</quote>,
sometimes <quote>Postgres</quote> for short. If you sometimes <quote>Postgres</quote> for short. If you
are specifically talking about the backend server, mention that, do not are specifically talking about the backend server, mention that, do not
just say <quote>Postgres crashes</quote>. A crash of a single just say <quote>PostgreSQL crashes</quote>. A crash of a single
backend server process is quite different from crash of the parent backend server process is quite different from crash of the parent
<quote>postmaster</> process; please don't say <quote>the postmaster <quote>postmaster</> process; please don't say <quote>the postmaster
crashed</> when you mean a single backend went down, nor vice versa. crashed</> when you mean a single backend went down, nor vice versa.
......
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/protocol.sgml,v 1.21 2001/09/21 20:31:42 tgl Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/protocol.sgml,v 1.22 2001/11/21 05:53:41 thomas Exp $ -->
<chapter id="protocol"> <chapter id="protocol">
<title>Frontend/Backend Protocol</title> <title>Frontend/Backend Protocol</title>
...@@ -57,7 +57,8 @@ ...@@ -57,7 +57,8 @@
normally create a new child process to handle each incoming normally create a new child process to handle each incoming
connection. However, this is not required. In the current connection. However, this is not required. In the current
implementation, a new child process is created immediately after an implementation, a new child process is created immediately after an
incoming connection is detected. In earlier versions of PostgreSQL incoming connection is detected. In earlier versions of
<productname>PostgreSQL</>
(7.1 and earlier), the child process was created after sending the (7.1 and earlier), the child process was created after sending the
authentication confirmation message. authentication confirmation message.
</para> </para>
......
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/Attic/pygresql.sgml,v 1.4 2001/11/19 03:58:24 tgl Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/Attic/pygresql.sgml,v 1.5 2001/11/21 05:53:41 thomas Exp $ -->
<chapter id="pygresql"> <chapter id="pygresql">
<title><application>PyGreSQL</application> - <application>Python</application> Interface</title> <title><application>PyGreSQL</application> - <application>Python</application> Interface</title>
...@@ -384,7 +384,7 @@ make && make install ...@@ -384,7 +384,7 @@ make && make install
<listitem> <listitem>
<para> <para>
<classname>pglargeobject</classname>, which handles all the accesses <classname>pglargeobject</classname>, which handles all the accesses
to <productname>Postgres</productname> large objects, and to <productname>PostgreSQL</productname> large objects, and
</para> </para>
</listitem> </listitem>
......
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/queries.sgml,v 1.12 2001/11/19 03:58:24 tgl Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/queries.sgml,v 1.13 2001/11/21 05:53:41 thomas Exp $ -->
<chapter id="queries"> <chapter id="queries">
<title>Queries</title> <title>Queries</title>
...@@ -342,7 +342,7 @@ FROM <replaceable>table_reference</replaceable> AS <replaceable>alias</replaceab ...@@ -342,7 +342,7 @@ FROM <replaceable>table_reference</replaceable> AS <replaceable>alias</replaceab
SELECT * FROM my_table AS m WHERE my_table.a > 5; SELECT * FROM my_table AS m WHERE my_table.a > 5;
</programlisting> </programlisting>
is not valid SQL syntax. What will actually happen (this is a is not valid SQL syntax. What will actually happen (this is a
<productname>Postgres</productname> extension to the standard) <productname>PostgreSQL</productname> extension to the standard)
is that an implicit is that an implicit
table reference is added to the FROM clause, so the query is table reference is added to the FROM clause, so the query is
processed as if it were written as processed as if it were written as
...@@ -586,7 +586,7 @@ SELECT pid, p.name, (sum(s.units) * p.price) AS sales ...@@ -586,7 +586,7 @@ SELECT pid, p.name, (sum(s.units) * p.price) AS sales
<para> <para>
In strict SQL, GROUP BY can only group by columns of the source In strict SQL, GROUP BY can only group by columns of the source
table but Postgres extends this to also allow GROUP BY to group by table but <productname>PostgreSQL</productname> extends this to also allow GROUP BY to group by
select columns in the query select list. Grouping by value select columns in the query select list. Grouping by value
expressions instead of simple column names is also allowed. expressions instead of simple column names is also allowed.
</para> </para>
...@@ -598,7 +598,7 @@ SELECT <replaceable>select_list</replaceable> FROM ... <optional>WHERE ...</opti ...@@ -598,7 +598,7 @@ SELECT <replaceable>select_list</replaceable> FROM ... <optional>WHERE ...</opti
If a table has been grouped using a GROUP BY clause, but then only If a table has been grouped using a GROUP BY clause, but then only
certain groups are of interest, the HAVING clause can be used, certain groups are of interest, the HAVING clause can be used,
much like a WHERE clause, to eliminate groups from a grouped much like a WHERE clause, to eliminate groups from a grouped
table. Postgres allows a HAVING clause to be table. <productname>PostgreSQL</productname> allows a HAVING clause to be
used without a GROUP BY, in which case it acts like another WHERE used without a GROUP BY, in which case it acts like another WHERE
clause, but the point in using HAVING that way is not clear. A good clause, but the point in using HAVING that way is not clear. A good
rule of thumb is that a HAVING condition should refer to the results rule of thumb is that a HAVING condition should refer to the results
...@@ -865,7 +865,7 @@ SELECT a, sum(b) FROM table1 GROUP BY a ORDER BY 1; ...@@ -865,7 +865,7 @@ SELECT a, sum(b) FROM table1 GROUP BY a ORDER BY 1;
</para> </para>
<para> <para>
As an extension to the SQL standard, Postgres also allows ordering As an extension to the SQL standard, <productname>PostgreSQL</productname> also allows ordering
by arbitrary expressions: by arbitrary expressions:
<programlisting> <programlisting>
SELECT a, b FROM table1 ORDER BY a + b; SELECT a, b FROM table1 ORDER BY a + b;
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment