mirror of
https://github.com/postgres/postgres.git
synced 2025-06-03 00:02:26 -04:00
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.
This commit is contained in:
parent
eec9511f0a
commit
2475e87481
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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">
|
||||
@ -215,7 +215,7 @@ UPDATE branches SET balance = balance + 100.00
|
||||
</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
|
||||
<command>BEGIN</> and <command>COMMIT</> commands. So our banking
|
||||
transaction would actually look like
|
||||
@ -233,7 +233,7 @@ COMMIT;
|
||||
</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</>
|
||||
command,
|
||||
then each individual statement has an implicit <command>BEGIN</> and
|
||||
@ -316,7 +316,7 @@ CREATE TABLE capitals (
|
||||
<structfield>population</>, and <structfield>altitude</>) from its
|
||||
<firstterm>parent</firstterm>, <classname>cities</classname>. The
|
||||
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
|
||||
an extra column, state, that shows their state. In
|
||||
<productname>PostgreSQL</productname>, a table can inherit from
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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">
|
||||
@ -17,11 +17,11 @@ $Header: /cvsroot/pgsql/doc/src/sgml/arch-dev.sgml,v 2.15 2001/11/08 23:34:33 pe
|
||||
|
||||
<para>
|
||||
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
|
||||
should have an idea of how a query is processed. Don't expect a
|
||||
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
|
||||
pages!). This chapter is intended to help understanding the general
|
||||
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
|
||||
<procedure>
|
||||
<step>
|
||||
<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
|
||||
query to the server and receives the results sent back by the server.
|
||||
</para>
|
||||
@ -109,7 +109,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/arch-dev.sgml,v 2.15 2001/11/08 23:34:33 pe
|
||||
|
||||
<para>
|
||||
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.
|
||||
</para>
|
||||
</sect1>
|
||||
@ -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>
|
||||
|
||||
<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>
|
||||
connected to exactly one <firstterm>server process</firstterm>.
|
||||
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
|
||||
interactive SQL queries) or any user application implemented using
|
||||
the <filename>libpg</filename> library. Note that applications implemented using
|
||||
<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.
|
||||
</para>
|
||||
|
||||
@ -236,7 +236,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/arch-dev.sgml,v 2.15 2001/11/08 23:34:33 pe
|
||||
<para>
|
||||
The mentioned transformations and compilations are normally done
|
||||
automatically using the <firstterm>makefiles</firstterm>
|
||||
shipped with the <productname>Postgres</productname>
|
||||
shipped with the <productname>PostgreSQL</productname>
|
||||
source distribution.
|
||||
</para>
|
||||
</note>
|
||||
@ -255,7 +255,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/arch-dev.sgml,v 2.15 2001/11/08 23:34:33 pe
|
||||
|
||||
<para>
|
||||
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
|
||||
changes made to these data structures in every stage.
|
||||
This example contains the following simple query that will be used in
|
||||
@ -443,13 +443,13 @@ current context are performed.
|
||||
</sect1>
|
||||
|
||||
<sect1 id="rule-system">
|
||||
<title>The <productname>Postgres</productname> Rule System</title>
|
||||
<title>The <productname>PostgreSQL</productname> Rule System</title>
|
||||
|
||||
<para>
|
||||
<productname>Postgres</productname> supports a powerful
|
||||
<productname>PostgreSQL</productname> supports a powerful
|
||||
<firstterm>rule system</firstterm> for the specification
|
||||
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:
|
||||
|
||||
<itemizedlist>
|
||||
@ -459,7 +459,7 @@ current context are performed.
|
||||
implemented deep in the <firstterm>executor</firstterm>. The rule system was
|
||||
called whenever an individual tuple had been accessed. This
|
||||
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>.
|
||||
</para>
|
||||
</listitem>
|
||||
@ -478,7 +478,7 @@ current context are performed.
|
||||
|
||||
<para>
|
||||
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>.
|
||||
</para>
|
||||
|
||||
@ -700,7 +700,7 @@ current context are performed.
|
||||
Another task performed by the planner/optimizer is fixing the
|
||||
<firstterm>operator ids</firstterm> in the <literal>Expr</literal>
|
||||
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
|
||||
the huge amount of functions and operators it is necessary to store
|
||||
them in a system table. Each function and operator gets a unique
|
||||
@ -1181,7 +1181,7 @@ transformInsertStmt()} above have been added here as well.
|
||||
\subsubsection{The Rewrite System}
|
||||
|
||||
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
|
||||
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
|
||||
every single source line here and therefore we will not discuss
|
||||
detailed questions like "Why has the variable {\tt varno} to be
|
||||
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
|
||||
only those described here. The fact important for us is to make sure,
|
||||
that whatever is applied to the {\it targetlist} and the data
|
||||
@ -1538,7 +1538,7 @@ examined.
|
||||
%
|
||||
<step> {\tt QueryRewrite()} \\
|
||||
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
|
||||
processed. Therefore the function {\tt QueryRewriteSubLink()} is
|
||||
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
|
||||
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}
|
||||
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: \\
|
||||
\\
|
||||
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.
|
||||
\subsection{How Intersect, Except and Union Work Together}
|
||||
|
||||
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
|
||||
implementation of {\it intersect} and {\it except} statements (and
|
||||
statements involving all {\it set operators}) we choose a different approach
|
||||
@ -3039,7 +3039,7 @@ file {\tt $\ldots$/src/backend/parser/keywords.c}:
|
||||
};
|
||||
\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 (that can easily be printed to the screen (for
|
||||
debugging purposes) or be stored in a file) and vice versa. These
|
||||
@ -3629,7 +3629,7 @@ troubles in the {\it transforming logic}.
|
||||
\end{figure}
|
||||
%
|
||||
<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
|
||||
transformation into CNF (conjunctive normal form). So we can easily
|
||||
make use of this function when we exchange every {\tt OR} with an {\tt
|
||||
|
@ -2,15 +2,15 @@
|
||||
<TITLE>Architecture</TITLE>
|
||||
|
||||
<Sect1 id="arch-pg-concepts">
|
||||
<Title><ProductName>Postgres</ProductName> Architectural Concepts</Title>
|
||||
<Title><ProductName>PostgreSQL</ProductName> Architectural Concepts</Title>
|
||||
|
||||
<Para>
|
||||
Before we begin, you should understand the basic
|
||||
<ProductName>Postgres</ProductName> system architecture. Understanding how the
|
||||
parts of <ProductName>Postgres</ProductName> interact will make the next chapter
|
||||
<ProductName>PostgreSQL</ProductName> system architecture. Understanding how the
|
||||
parts of <ProductName>PostgreSQL</ProductName> interact will make the next chapter
|
||||
somewhat clearer.
|
||||
In database jargon, <ProductName>Postgres</ProductName> uses a simple "process
|
||||
per-user" client/server model. A <ProductName>Postgres</ProductName> session
|
||||
In database jargon, <ProductName>PostgreSQL</ProductName> uses a simple "process
|
||||
per-user" client/server model. A <ProductName>PostgreSQL</ProductName> session
|
||||
consists of the following cooperating Unix processes (programs):
|
||||
|
||||
<ItemizedList>
|
||||
@ -80,15 +80,15 @@ From that point on, the frontend process and the backend
|
||||
</Para>
|
||||
|
||||
<Para>
|
||||
You should also be aware that the <Application>postmaster</Application> and
|
||||
postgres servers run with the user-id of the <ProductName>Postgres</ProductName>
|
||||
You should also be aware that the <Application>postmaster</Application> and
|
||||
postgres servers run with the user-id of the <ProductName>PostgreSQL</ProductName>
|
||||
<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
|
||||
<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>!
|
||||
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
|
||||
concerned.
|
||||
In any case, all files relating to a database should belong to
|
||||
@ -96,3 +96,21 @@ concerned.
|
||||
</Para>
|
||||
</sect1>
|
||||
</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:
|
||||
-->
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $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">
|
||||
<title>Arrays</title>
|
||||
@ -8,7 +8,7 @@
|
||||
</indexterm>
|
||||
|
||||
<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
|
||||
built-in type or user-defined type can be created. To illustrate
|
||||
their use, we create this table:
|
||||
@ -66,7 +66,7 @@ SELECT name FROM sal_emp WHERE pay_by_quarter[1] <> pay_by_quarter[2];
|
||||
</programlisting>
|
||||
|
||||
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,
|
||||
an array of n elements starts with <literal>array[1]</literal> and
|
||||
ends with <literal>array[n]</literal>.
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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">
|
||||
<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
|
||||
<indexterm zone="backup"><primary>backup</></>
|
||||
|
||||
<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
|
||||
essentially simple, it is important to have a basic understanding of
|
||||
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
|
||||
|
||||
<para>
|
||||
There are two fundamentally different approaches to backing up
|
||||
<productname>Postgres</> data:
|
||||
<productname>PostgreSQL</> data:
|
||||
<itemizedlist>
|
||||
<listitem><para><acronym>SQL</> dump</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
|
||||
The idea behind this method is to generate a text file with SQL
|
||||
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.
|
||||
<productname>Postgres</> provides the utility program
|
||||
<productname>PostgreSQL</> provides the utility program
|
||||
<application>pg_dump</> for this purpose. The basic usage of this
|
||||
command is:
|
||||
<synopsis>
|
||||
@ -40,7 +40,7 @@ pg_dump <replaceable class="parameter">dbname</replaceable> > <replaceable cl
|
||||
</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
|
||||
that you can do this backup procedure from any remote host that has
|
||||
access to the database. But remember that <application>pg_dump</>
|
||||
@ -62,7 +62,7 @@ pg_dump <replaceable class="parameter">dbname</replaceable> > <replaceable cl
|
||||
</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
|
||||
user name that is equal to the current Unix user name. To override
|
||||
this, either specify the <option>-U</option> option or set the
|
||||
@ -182,7 +182,7 @@ pg_dumpall > <replaceable>outfile</>
|
||||
</note>
|
||||
|
||||
<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
|
||||
to dump the table to a file, since the resulting file will likely
|
||||
be larger than the maximum size allowed by your system. As
|
||||
@ -242,7 +242,7 @@ cat <replaceable class="parameter">filename</replaceable>* | psql <replaceable c
|
||||
<formalpara>
|
||||
<title>Use the custom dump format.</title>
|
||||
<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
|
||||
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
|
||||
@ -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
|
||||
<application>pg_dump</>. See the reference pages for details.
|
||||
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.
|
||||
</para>
|
||||
|
||||
@ -303,7 +303,7 @@ pg_dump -Fc <replaceable class="parameter">dbname</replaceable> > <replaceable c
|
||||
|
||||
<para>
|
||||
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
|
||||
are located, but you have probably found them already if you are
|
||||
interested in this method. You can use whatever method you prefer
|
||||
@ -373,7 +373,7 @@ tar -cf backup.tar /usr/local/pgsql/data
|
||||
|
||||
<para>
|
||||
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
|
||||
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
|
||||
@ -440,3 +440,21 @@ psql < backup
|
||||
</note>
|
||||
</sect1>
|
||||
</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:
|
||||
-->
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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">
|
||||
@ -7,7 +7,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/biblio.sgml,v 1.15 2001/11/08 23:34:33 pete
|
||||
|
||||
<para>
|
||||
Selected references and readings for <acronym>SQL</acronym>
|
||||
and <productname>Postgres</productname>.
|
||||
and <productname>PostgreSQL</productname>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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">
|
||||
@ -8,7 +8,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/bki.sgml,v 1.7 2001/06/12 05:55:48 tgl Exp
|
||||
<para>
|
||||
Backend Interface (<acronym>BKI</acronym>) files are scripts in a
|
||||
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
|
||||
functions without a database system already existing.
|
||||
<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
|
||||
<application>initdb</application> uses a <acronym>BKI</acronym> file
|
||||
to do part of its job when creating a new database cluster. The
|
||||
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
|
||||
specially formatted C header files in the source tree. The created
|
||||
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
|
||||
<title><acronym>BKI</acronym> File Format</title>
|
||||
|
||||
<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
|
||||
will be easier to understand if the <filename>postgres.bki</filename>
|
||||
file is at hand as an example. You should also study the source
|
||||
|
@ -1,6 +1,6 @@
|
||||
<!--
|
||||
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">
|
||||
@ -2300,7 +2300,8 @@
|
||||
routines pass a value of this type by value or by reference.
|
||||
Only <type>char</type>, <type>short</type>, and
|
||||
<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
|
||||
<structfield>typbyval</structfield> had better be false.
|
||||
Variable-length types are always passed by reference. Note that
|
||||
@ -2415,7 +2416,8 @@
|
||||
<structfield>typalign</structfield> is the alignment required
|
||||
when storing a value of this type. It applies to storage on
|
||||
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
|
||||
inserted before a datum of this type so that it begins on the
|
||||
specified boundary. The alignment reference is the beginning
|
||||
@ -2493,7 +2495,23 @@
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
</sect1>
|
||||
|
||||
</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:
|
||||
-->
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $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">
|
||||
<title>Localization</>
|
||||
@ -11,7 +11,7 @@
|
||||
</abstract>
|
||||
|
||||
<para>
|
||||
<productname>Postgres</productname> supports localization with
|
||||
<productname>PostgreSQL</productname> supports localization with
|
||||
three approaches:
|
||||
|
||||
<itemizedlist>
|
||||
@ -26,7 +26,7 @@
|
||||
<listitem>
|
||||
<para>
|
||||
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,
|
||||
and to provide character set recoding between client and server.
|
||||
The number of supported character sets is fixed at the time the
|
||||
@ -174,7 +174,7 @@ export LANG=sv_SE
|
||||
The <envar>LC_COLLATE</> and <envar>LC_CTYPE</> variables affect the
|
||||
sort order of indexes. Therefore, these values must be kept fixed
|
||||
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</>
|
||||
that are seen by <application>initdb</>. The server automatically adopts
|
||||
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").
|
||||
|
||||
<para>
|
||||
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
|
||||
Mule internal code. With <acronym>MB</acronym> enabled you can use multibyte
|
||||
character sets in regular expressions (regexp), LIKE, and some
|
||||
other functions. The default
|
||||
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
|
||||
overridden when you create a database using
|
||||
<application>createdb</application> or by using the SQL command
|
||||
@ -471,14 +471,15 @@ perl: warning: Falling back to the standard locale ("C").
|
||||
</para>
|
||||
|
||||
<para>
|
||||
CAUTION2: Not all API supports encodings listed above. For example,
|
||||
PostgreSQL JDBC driver does not support MULE_INTERNAL, LATIN6,
|
||||
LATIN8 and LATIN10.
|
||||
CAUTION2: Not all API supports encodings listed above. For example,
|
||||
<productname>PostgreSQL</>
|
||||
JDBC driver does not support MULE_INTERNAL, LATIN6,
|
||||
LATIN8 and LATIN10.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
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:
|
||||
|
||||
<programlisting>
|
||||
@ -497,7 +498,7 @@ perl: warning: Falling back to the standard locale ("C").
|
||||
|
||||
<para>
|
||||
<application>initdb</application> defines the default encoding
|
||||
for a <productname>Postgres</productname> installation. For example:
|
||||
for a <productname>PostgreSQL</productname> installation. For example:
|
||||
|
||||
<programlisting>
|
||||
% initdb -E EUC_JP
|
||||
@ -554,7 +555,7 @@ $ psql -l
|
||||
frontend</title>
|
||||
|
||||
<para>
|
||||
<productname>Postgres</productname> supports an automatic
|
||||
<productname>PostgreSQL</productname> supports an automatic
|
||||
encoding translation between backend
|
||||
and frontend for some encodings.
|
||||
|
||||
@ -727,7 +728,7 @@ $ psql -l
|
||||
|
||||
<para>
|
||||
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
|
||||
several ways to accomplish this.
|
||||
|
||||
@ -827,8 +828,8 @@ RESET CLIENT_ENCODING;
|
||||
|
||||
<para>
|
||||
An automatic encoding translation between Unicode and other
|
||||
encodings has been supported since PostgreSQL 7.1.
|
||||
For 7.1 it's not enabled by default.
|
||||
encodings has been supported since <productname>PostgreSQL</> 7.1.
|
||||
For 7.1 it was not enabled by default.
|
||||
To enable this feature, run configure with the
|
||||
<option>--enable-unicode-conversion</option> option. Note that this requires
|
||||
the <option>--enable-multibyte</option> option also.
|
||||
@ -972,7 +973,7 @@ April 21, 1998 some enhancements/fixes
|
||||
* fix problem in regress/regress.sh in case of System V
|
||||
* 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
|
||||
* add regression test for EUC_JP, EUC_CN and MULE_INTERNAL
|
||||
@ -995,7 +996,7 @@ Version: 0.91 for PgSQL 6.5
|
||||
Author: Pavel Behal
|
||||
Revised by: Tatsuo Ishii
|
||||
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 :-)
|
||||
|
||||
@ -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
|
||||
with <productname>Postgres</productname> with locale support
|
||||
with <productname>PostgreSQL</productname> with locale support
|
||||
enabled.
|
||||
</para>
|
||||
|
||||
@ -1080,7 +1081,7 @@ Sorry for my Eglish and C code, I'm not native :-)
|
||||
<title>WIN1250 on Windows/ODBC</title>
|
||||
<step>
|
||||
<para>
|
||||
Compile <productname>Postgres</productname> with locale enabled
|
||||
Compile <productname>PostgreSQL</productname> with locale enabled
|
||||
and the multibyte encoding set to <literal>LATIN2</literal>.
|
||||
</para>
|
||||
</step>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $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">
|
||||
<title>Client Authentication</title>
|
||||
@ -9,7 +9,7 @@
|
||||
|
||||
<para>
|
||||
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.
|
||||
Within the SQL environment the active
|
||||
database user name determines access privileges to database
|
||||
@ -27,14 +27,14 @@
|
||||
</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
|
||||
on the basis of (client) host and database; some authentication methods
|
||||
allow you to restrict by user name as well.
|
||||
</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
|
||||
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
|
||||
@ -136,7 +136,7 @@ hostssl <replaceable>database</replaceable> <replaceable>IP-address</replaceable
|
||||
<literal>all</literal> specifies that it applies to all
|
||||
databases, while the value <literal>sameuser</> identifies the
|
||||
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.
|
||||
</para>
|
||||
</listitem>
|
||||
@ -152,7 +152,7 @@ hostssl <replaceable>database</replaceable> <replaceable>IP-address</replaceable
|
||||
record applies, based on their IP
|
||||
address. (Of course IP addresses can be spoofed but this
|
||||
consideration is beyond the scope of
|
||||
<productname>Postgres</productname>.) The precise logic is that
|
||||
<productname>PostgreSQL</productname>.) The precise logic is that
|
||||
<blockquote>
|
||||
<informalfigure>
|
||||
<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
|
||||
<para>
|
||||
The connection is allowed unconditionally. This method allows
|
||||
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>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@ -277,7 +277,7 @@ hostssl <replaceable>database</replaceable> <replaceable>IP-address</replaceable
|
||||
<listitem>
|
||||
<para>
|
||||
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
|
||||
is allowed to connect as the requested database user.
|
||||
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
|
||||
|
||||
# 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"
|
||||
# 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
|
||||
# says "bryanh" is allowed to connect as "guest1":
|
||||
|
||||
@ -451,7 +451,7 @@ local all md5 admins
|
||||
</indexterm>
|
||||
|
||||
<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
|
||||
database user is stored in the pg_shadow system catalog table.
|
||||
Passwords can be managed with the query language commands
|
||||
@ -486,7 +486,7 @@ local all md5 admins
|
||||
ignored. The password is expected to be encrypted using the
|
||||
system's <function>crypt()</function> function. The utility
|
||||
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.
|
||||
</para>
|
||||
|
||||
@ -546,7 +546,7 @@ local all md5 admins
|
||||
</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
|
||||
<replaceable>servicename/hostname@realm</>, where
|
||||
<replaceable>servicename</> is <literal>postgres</literal>
|
||||
@ -558,18 +558,19 @@ local all md5 admins
|
||||
</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
|
||||
<replaceable>pgusername/otherstuff@realm</>.
|
||||
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
|
||||
in any realm that can communicate with yours will be accepted.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
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
|
||||
is specified with the <varname>krb_server_keyfile</> run time
|
||||
configuration parameter. (See also <xref linkend="runtime-config">.)
|
||||
@ -621,7 +622,7 @@ local all md5 admins
|
||||
is to answer questions like <quote>What user initiated the
|
||||
connection that goes out of your port <replaceable>X</replaceable>
|
||||
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
|
||||
can interrogate the ident server on the host of the connecting
|
||||
client and could theoretically determine the operating system user
|
||||
@ -657,7 +658,7 @@ local all md5 admins
|
||||
<para>
|
||||
When using ident-based authentication, after having determined the
|
||||
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.
|
||||
This is controlled by the ident map
|
||||
argument that follows the <literal>ident</> keyword in the
|
||||
@ -707,7 +708,8 @@ local all md5 admins
|
||||
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.
|
||||
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
|
||||
<systemitem>ann</>. User <systemitem>bryanh</> would be allowed to connect as either
|
||||
<systemitem>bryanh</> himself or as <systemitem>guest1</>.
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
<!--
|
||||
<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,
|
||||
and the mailing lists themselves.
|
||||
</Para>
|
||||
@ -13,7 +13,7 @@ and the mailing lists themselves.
|
||||
|
||||
<Para>
|
||||
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.
|
||||
</Para>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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
|
||||
Thomas Lockhart
|
||||
-->
|
||||
@ -26,7 +26,7 @@ Thomas Lockhart
|
||||
<title>The <productname>CVS</productname> Repository</title>
|
||||
|
||||
<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.
|
||||
</para>
|
||||
|
||||
@ -34,7 +34,7 @@ Thomas Lockhart
|
||||
At least two methods,
|
||||
anonymous CVS and <productname>CVSup</productname>,
|
||||
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>
|
||||
|
||||
<sect1 id="anoncvs">
|
||||
@ -78,12 +78,12 @@ $ cvs -d :pserver:anoncvs@anoncvs.postgresql.org:/projects/cvsroot login
|
||||
|
||||
<step>
|
||||
<para>
|
||||
Fetch the <productname>Postgres</productname> sources:
|
||||
Fetch the <productname>PostgreSQL</productname> sources:
|
||||
<programlisting>
|
||||
cvs -z3 -d :pserver:anoncvs@anoncvs.postgresql.org:/projects/cvsroot co -P pgsql
|
||||
</programlisting>
|
||||
|
||||
which installs the <productname>Postgres</productname> sources into a
|
||||
which installs the <productname>PostgreSQL</productname> sources into a
|
||||
subdirectory <filename>pgsql</filename>
|
||||
of the directory you are currently in.
|
||||
|
||||
@ -160,7 +160,7 @@ $ chmod -R go-w pgsql
|
||||
<para>
|
||||
<productname>CVS</productname> can do a lot of other things,
|
||||
such as fetching prior revisions
|
||||
of the <productname>Postgres</productname> sources
|
||||
of the <productname>PostgreSQL</productname> sources
|
||||
rather than the latest development version.
|
||||
For more info consult the manual that comes with
|
||||
<productname>CVS</productname>, or see the online
|
||||
@ -292,7 +292,7 @@ cvs commit
|
||||
|
||||
<para>
|
||||
An alternative to using anonymous CVS for retrieving
|
||||
the <productname>Postgres</productname> source tree
|
||||
the <productname>PostgreSQL</productname> source tree
|
||||
is <productname>CVSup</productname>.
|
||||
<productname>CVSup</productname> was developed by
|
||||
John Polstra (<email>jdp@polstra.com</email>) to
|
||||
@ -306,7 +306,7 @@ cvs commit
|
||||
replicate the <emphasis>entire</emphasis> CVS repository on your local system,
|
||||
allowing fast local access to cvs operations such as <option>log</option>
|
||||
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.
|
||||
</para>
|
||||
|
||||
@ -327,7 +327,7 @@ cvs commit
|
||||
<productname>CVS</productname> repository. On one of our systems we
|
||||
recently set up a repository in <filename>/home/cvs/</filename>,
|
||||
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
|
||||
repository in <filename>/home/cvs/</filename>, then put
|
||||
|
||||
@ -393,7 +393,7 @@ $ cvsup -L 2 <replaceable class="parameter">postgres.cvsup</replaceable>
|
||||
|
||||
<programlisting>
|
||||
# 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
|
||||
# - Point to my local snapshot source tree
|
||||
# - Pull the full CVS repository, not just the latest snapshot
|
||||
@ -430,12 +430,12 @@ pgsql
|
||||
|
||||
<para>
|
||||
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:
|
||||
|
||||
<programlisting>
|
||||
# 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
|
||||
*default host=cvsup.postgresql.org
|
||||
@ -479,7 +479,7 @@ pgsql
|
||||
You can use pre-built binaries
|
||||
if you have a platform for which binaries
|
||||
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
|
||||
<productname>CVSup</productname> is available as a port.
|
||||
|
||||
@ -520,7 +520,7 @@ pgsql
|
||||
<step performance="optional">
|
||||
<para>
|
||||
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>
|
||||
</step>
|
||||
</substeps>
|
||||
@ -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
|
||||
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...
|
||||
|
||||
Great! I'll do my best to help make sure you don't regret it.
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/datatype.sgml,v 1.73 2001/11/21 03:17:22 momjian Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/datatype.sgml,v 1.74 2001/11/21 05:53:40 thomas Exp $
|
||||
-->
|
||||
|
||||
<chapter id="datatype">
|
||||
@ -15,9 +15,9 @@ $Header: /cvsroot/pgsql/doc/src/sgml/datatype.sgml,v 1.73 2001/11/21 03:17:22 mo
|
||||
</indexterm>
|
||||
|
||||
<para>
|
||||
<productname>Postgres</productname> has a rich set of native data
|
||||
<productname>PostgreSQL</productname> has a rich set of native data
|
||||
types available to users.
|
||||
Users may add new types to <productname>Postgres</productname> using the
|
||||
Users may add new types to <productname>PostgreSQL</productname> using the
|
||||
<command>CREATE TYPE</command> command.
|
||||
</para>
|
||||
|
||||
@ -26,12 +26,12 @@ $Header: /cvsroot/pgsql/doc/src/sgml/datatype.sgml,v 1.73 2001/11/21 03:17:22 mo
|
||||
included in the standard distribution. Most of the alternative names
|
||||
listed in the
|
||||
<quote>Aliases</quote> column are the names used internally by
|
||||
<productname>Postgres</productname> for historical reasons. In
|
||||
<productname>PostgreSQL</productname> for historical reasons. In
|
||||
addition, some internally used or deprecated types are available,
|
||||
but they are not listed here.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<para>
|
||||
<table id="datatype-table">
|
||||
<title>Data Types</title>
|
||||
<tgroup cols="3">
|
||||
@ -264,7 +264,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/datatype.sgml,v 1.73 2001/11/21 03:17:22 mo
|
||||
Each data type has an external representation determined by its input
|
||||
and output functions. Many of the built-in types have
|
||||
obvious external formats. However, several types are either unique
|
||||
to <productname>Postgres</productname>, such as open and closed
|
||||
to <productname>PostgreSQL</productname>, such as open and closed
|
||||
paths, or have several possibilities for formats, such as the date
|
||||
and time types.
|
||||
Most of the input and output functions corresponding to the
|
||||
@ -486,7 +486,8 @@ $Header: /cvsroot/pgsql/doc/src/sgml/datatype.sgml,v 1.73 2001/11/21 03:17:22 mo
|
||||
... WHERE smallint_column = 42
|
||||
</programlisting>
|
||||
will not use an index, because the system assigns type
|
||||
<type>integer</type> to the constant 42, and PostgreSQL currently
|
||||
<type>integer</type> to the constant 42, and
|
||||
<productname>PostgreSQL</productname> currently
|
||||
cannot use an index when two different data types are involved. A
|
||||
workaround is to single-quote the constant, thus:
|
||||
<programlisting>
|
||||
@ -731,7 +732,7 @@ CREATE TABLE <replaceable class="parameter">tablename</replaceable> (<replaceabl
|
||||
<para>
|
||||
The <type>money</type> type stores U.S.-style currency with fixed
|
||||
decimal point representation. If
|
||||
<productname>Postgres</productname> is compiled with locale
|
||||
<productname>PostgreSQL</productname> is compiled with locale
|
||||
support then the <type>money</type> type uses locale-specific
|
||||
output formatting.
|
||||
</para>
|
||||
@ -831,7 +832,7 @@ CREATE TABLE <replaceable class="parameter">tablename</replaceable> (<replaceabl
|
||||
|
||||
<note>
|
||||
<para>
|
||||
Prior to PostgreSQL 7.2, strings that were too long were silently
|
||||
Prior to <productname>PostgreSQL</> 7.2, strings that were too long were silently
|
||||
truncated, no error was raised.
|
||||
</para>
|
||||
</note>
|
||||
@ -844,7 +845,7 @@ CREATE TABLE <replaceable class="parameter">tablename</replaceable> (<replaceabl
|
||||
respectively. <type>character</type> without length specifier is
|
||||
equivalent to <type>character(1)</type>; if <type>character
|
||||
varying</type> is used without length specifier, the type accepts
|
||||
strings of any size. The latter is a PostgreSQL extension.
|
||||
strings of any size. The latter is a <productname>PostgreSQL</> extension.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -924,7 +925,7 @@ SELECT b, char_length(b) FROM test2;
|
||||
|
||||
<para>
|
||||
There are two other fixed-length character types in
|
||||
<productname>Postgres</productname>. The <type>name</type> type
|
||||
<productname>PostgreSQL</productname>. The <type>name</type> type
|
||||
exists <emphasis>only</emphasis> for storage of internal catalog
|
||||
names and is not intended for use by the general user. Its length
|
||||
is currently defined as 32 bytes (31 usable characters plus terminator)
|
||||
@ -1262,7 +1263,7 @@ SELECT b, char_length(b) FROM test2;
|
||||
<title>Date/Time Types</title>
|
||||
|
||||
<para>
|
||||
<productname>Postgres</productname> supports the full set of
|
||||
<productname>PostgreSQL</productname> supports the full set of
|
||||
<acronym>SQL</acronym> date and time types.
|
||||
</para>
|
||||
|
||||
@ -1352,7 +1353,7 @@ SELECT b, char_length(b) FROM test2;
|
||||
</para>
|
||||
|
||||
<para>
|
||||
To ensure compatibility to earlier versions of <productname>Postgres</productname>
|
||||
To ensure compatibility to earlier versions of <productname>PostgreSQL</productname>
|
||||
we also continue to provide <type>datetime</type>
|
||||
(equivalent to <type>timestamp</type>) and
|
||||
<type>timespan</type> (equivalent to <type>interval</type>),
|
||||
@ -1373,7 +1374,7 @@ SELECT b, char_length(b) FROM test2;
|
||||
<para>
|
||||
Date and time input is accepted in almost any reasonable format, including
|
||||
<acronym>ISO-8601</acronym>, <acronym>SQL</acronym>-compatible,
|
||||
traditional <productname>Postgres</productname>, and others.
|
||||
traditional <productname>PostgreSQL</productname>, and others.
|
||||
The ordering of month and day in date input can be ambiguous, therefore a setting
|
||||
exists to specify how it should be interpreted in ambiguous cases. The command
|
||||
<literal>SET DateStyle TO 'US'</literal> or <literal>SET DateStyle TO 'NonEuropean'</literal>
|
||||
@ -1396,7 +1397,7 @@ SELECT b, char_length(b) FROM test2;
|
||||
<synopsis>
|
||||
<replaceable>type</replaceable> '<replaceable>value</replaceable>'
|
||||
</synopsis>
|
||||
but <productname>Postgres</productname> is more flexible.
|
||||
but <productname>PostgreSQL</productname> is more flexible.
|
||||
</para>
|
||||
|
||||
<sect3>
|
||||
@ -1848,80 +1849,94 @@ January 8 04:05:06 1999 PST
|
||||
|
||||
<indexterm>
|
||||
<primary>time</primary>
|
||||
<secondary>current</secondary>
|
||||
<secondary>constants</secondary>
|
||||
</indexterm>
|
||||
|
||||
<indexterm>
|
||||
<primary>date</primary>
|
||||
<secondary>current</secondary>
|
||||
<secondary>constants</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>
|
||||
The following <acronym>SQL</acronym>-compatible functions can be used as date or time
|
||||
The following <acronym>SQL</acronym>-compatible functions can be
|
||||
used as date or time
|
||||
input for the corresponding data type: <literal>CURRENT_DATE</literal>,
|
||||
<literal>CURRENT_TIME</literal>, <literal>CURRENT_TIMESTAMP</literal>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<productname>Postgres</productname> also supports several special constants for
|
||||
convenience.
|
||||
<productname>PostgreSQL</productname> also supports several
|
||||
special constants for convenience.
|
||||
|
||||
<table tocentry="1">
|
||||
<title>Special Date/Time Constants</title>
|
||||
<tgroup cols="2">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Constant</entry>
|
||||
<entry>Description</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!--
|
||||
<row>
|
||||
<entry>current</entry>
|
||||
<entry>Current transaction time, deferred</entry>
|
||||
</row>
|
||||
-->
|
||||
<row>
|
||||
<entry>epoch</entry>
|
||||
<entry>1970-01-01 00:00:00+00 (Unix system time zero)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>infinity</entry>
|
||||
<entry>Later than other valid times</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>-infinity</entry>
|
||||
<entry>Earlier than other valid times</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>invalid</entry>
|
||||
<entry>Illegal entry</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>now</entry>
|
||||
<entry>Current transaction time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>today</entry>
|
||||
<entry>Midnight today</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>tomorrow</entry>
|
||||
<entry>Midnight tomorrow</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>yesterday</entry>
|
||||
<entry>Midnight yesterday</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
</para>
|
||||
<table tocentry="1">
|
||||
<title>Special Date/Time Constants</title>
|
||||
<tgroup cols="2">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Constant</entry>
|
||||
<entry>Description</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>epoch</entry>
|
||||
<entry>1970-01-01 00:00:00+00 (Unix system time zero)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>infinity</entry>
|
||||
<entry>Later than other valid times</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>-infinity</entry>
|
||||
<entry>Earlier than other valid times</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>invalid</entry>
|
||||
<entry>Illegal entry</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>now</entry>
|
||||
<entry>Current transaction time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>today</entry>
|
||||
<entry>Midnight today</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>tomorrow</entry>
|
||||
<entry>Midnight tomorrow</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>yesterday</entry>
|
||||
<entry>Midnight yesterday</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>zulu, allballs, z</entry>
|
||||
<entry>00:00:00.00 GMT</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<literal>'now'</literal> is
|
||||
evaluated when the value is first interpreted.
|
||||
|
||||
<caution>
|
||||
<para>
|
||||
As of <productname>PostgreSQL</> version 7.2,
|
||||
<literal>'current'</literal> is no longer supported as a
|
||||
date/time constant.
|
||||
Previously,
|
||||
<literal>'current'</literal> was stored as a special value,
|
||||
and evaluated to <literal>'now'</literal> only when
|
||||
used in a math operation or type
|
||||
conversion.
|
||||
</para>
|
||||
</caution>
|
||||
</para>
|
||||
</sect3>
|
||||
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2 id="datatype-datetime-output">
|
||||
<title>Date/Time Output</title>
|
||||
|
||||
@ -1940,7 +1955,7 @@ January 8 04:05:06 1999 PST
|
||||
<para>
|
||||
Output formats can be set to one of the four styles
|
||||
ISO-8601, <acronym>SQL</acronym> (Ingres), traditional
|
||||
Postgres, and German, using the <command>SET DateStyle</command>.
|
||||
PostgreSQL, and German, using the <command>SET DateStyle</command>.
|
||||
The default is the <acronym>ISO</acronym> format.
|
||||
|
||||
<table tocentry="1">
|
||||
@ -1965,7 +1980,7 @@ January 8 04:05:06 1999 PST
|
||||
<entry>12/17/1997 07:37:16.00 PST</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>'Postgres'</entry>
|
||||
<entry>'PostgreSQL'</entry>
|
||||
<entry>Original style</entry>
|
||||
<entry>Wed Dec 17 07:37:16 1997 PST</entry>
|
||||
</row>
|
||||
@ -1980,14 +1995,18 @@ January 8 04:05:06 1999 PST
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The output of the <type>date</type> and <type>time</type> types is of course
|
||||
The output of the <type>date</type> and <type>time</type> styles
|
||||
is of course
|
||||
only the date or time part in accordance with the above examples.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The <acronym>SQL</acronym> style has European and non-European (US) variants,
|
||||
which determines whether month follows day or vice versa. (See also above
|
||||
at Date/Time Input, how this setting affects interpretation of input values.)
|
||||
The <acronym>SQL</acronym> style has European and non-European
|
||||
(US) variants,
|
||||
which determines whether month follows day or vice versa. (See
|
||||
also <xref linkend="datatype-datetime-input">
|
||||
for how this setting affects interpretation of
|
||||
input values.)
|
||||
|
||||
<table tocentry="1">
|
||||
<title>Date Order Conventions</title>
|
||||
@ -2059,7 +2078,7 @@ January 8 04:05:06 1999 PST
|
||||
</indexterm>
|
||||
|
||||
<para>
|
||||
<productname>Postgres</productname> endeavors to be compatible with
|
||||
<productname>PostgreSQL</productname> endeavors to be compatible with
|
||||
<acronym>SQL92</acronym> definitions for typical usage.
|
||||
However, the <acronym>SQL92</acronym> standard has an odd mix of date and
|
||||
time types and capabilities. Two obvious problems are:
|
||||
@ -2094,9 +2113,9 @@ January 8 04:05:06 1999 PST
|
||||
types that contain both date and time when using time zones. We
|
||||
recommend <emphasis>not</emphasis> using the SQL92 type TIME
|
||||
WITH TIME ZONE (though it is supported by
|
||||
<productname>Postgres</productname> for legacy applications and
|
||||
<productname>PostgreSQL</productname> for legacy applications and
|
||||
for compatibility with other RDBMS implementations).
|
||||
<productname>Postgres</productname>
|
||||
<productname>PostgreSQL</productname>
|
||||
assumes local time for any type containing only
|
||||
date or time. Further, time zone support is derived from
|
||||
the underlying operating system
|
||||
@ -2105,7 +2124,7 @@ January 8 04:05:06 1999 PST
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<productname>Postgres</productname> obtains time zone support
|
||||
<productname>PostgreSQL</productname> obtains time zone support
|
||||
from the underlying operating system for dates between 1902 and
|
||||
2038 (near the typical date limits for Unix-style
|
||||
systems). Outside of this range, all dates are assumed to be
|
||||
@ -2178,7 +2197,7 @@ January 8 04:05:06 1999 PST
|
||||
<title>Internals</title>
|
||||
|
||||
<para>
|
||||
<productname>Postgres</productname> uses Julian dates
|
||||
<productname>PostgreSQL</productname> uses Julian dates
|
||||
for all date/time calculations. They have the nice property of correctly
|
||||
predicting/calculating any date more recent than 4713BC
|
||||
to far into the future, using the assumption that the length of the
|
||||
@ -2210,7 +2229,7 @@ January 8 04:05:06 1999 PST
|
||||
</indexterm>
|
||||
|
||||
<para>
|
||||
<productname>Postgres</productname> provides the
|
||||
<productname>PostgreSQL</productname> provides the
|
||||
<acronym>SQL99</acronym> type <type>boolean</type>.
|
||||
<type>boolean</type> can have one of only two states:
|
||||
<quote>true</quote> or <quote>false</quote>. A third state,
|
||||
@ -2649,7 +2668,7 @@ SELECT * FROM test1 WHERE a;
|
||||
</indexterm>
|
||||
|
||||
<para>
|
||||
<productname>Postgres</> offers data types to store IP and MAC
|
||||
<productname>PostgreSQL</> offers data types to store IP and MAC
|
||||
addresses. It is preferable to use these types over plain text
|
||||
types, because these types offer input error checking and several
|
||||
specialized operators and functions.
|
||||
@ -2914,7 +2933,7 @@ SELECT * FROM test1 WHERE a;
|
||||
|
||||
<note>
|
||||
<para>
|
||||
Prior to PostgreSQL 7.2, <type>BIT</type> type data was
|
||||
Prior to <productname>PostgreSQL</> 7.2, <type>BIT</type> type data was
|
||||
zero-padded on the right. This was changed to comply with the
|
||||
SQL standard. To implement zero-padded bit strings, a
|
||||
combination of the concatenation operator and the
|
||||
@ -2956,11 +2975,12 @@ 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/lib/sgml/catalog")
|
||||
sgml-local-catalogs:("/usr/share/sgml/catalog")
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
-->
|
||||
|
@ -1,412 +1,475 @@
|
||||
<!--
|
||||
$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
|
||||
-->
|
||||
|
||||
<appendix id="datetime-appendix">
|
||||
<title id="datetime-appendix-title">Date/Time Support</title>
|
||||
<appendix id="datetime-appendix">
|
||||
<title id="datetime-appendix-title">Date/Time Support</title>
|
||||
|
||||
<sect1 id="timezones">
|
||||
<title>Time Zones</title>
|
||||
<sect1 id="timezones">
|
||||
<title>Time Zones</title>
|
||||
|
||||
<indexterm zone="timezones">
|
||||
<primary>time zones</primary>
|
||||
</indexterm>
|
||||
<indexterm zone="timezones">
|
||||
<primary>time zones</primary>
|
||||
</indexterm>
|
||||
|
||||
<para>
|
||||
<productname>Postgres</productname> contains internal tabular
|
||||
information for time zone decoding, since there is no *nix standard
|
||||
system interface to provide access to general, cross-timezone
|
||||
information. The underlying OS <emphasis>is</emphasis> used to
|
||||
provide time zone information for <emphasis>output</emphasis>, however.
|
||||
<para>
|
||||
<productname>PostgreSQL</productname> contains internal tabular
|
||||
information for time zone decoding, since there is no *nix standard
|
||||
system interface to provide access to general, cross-timezone
|
||||
information. The underlying OS <emphasis>is</emphasis> used to
|
||||
provide time zone information for <emphasis>output</emphasis>, however.
|
||||
|
||||
<table tocentry="1">
|
||||
<title><productname>Postgres</productname> Recognized Time Zones</title>
|
||||
<titleabbrev>Time Zones</titleabbrev>
|
||||
<tgroup cols="3">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Time Zone</entry>
|
||||
<entry>Offset from UTC</entry>
|
||||
<entry>Description</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>NZDT</entry>
|
||||
<entry>+13:00</entry>
|
||||
<entry>New Zealand Daylight Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>IDLE</entry>
|
||||
<entry>+12:00</entry>
|
||||
<entry>International Date Line, East</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>NZST</entry>
|
||||
<entry>+12:00</entry>
|
||||
<entry>New Zealand Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>NZT</entry>
|
||||
<entry>+12:00</entry>
|
||||
<entry>New Zealand Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>AESST</entry>
|
||||
<entry>+11:00 </entry>
|
||||
<entry>Australia Eastern Summer Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>ACSST</entry>
|
||||
<entry>+10:30 </entry>
|
||||
<entry>Central Australia Summer Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>CADT</entry>
|
||||
<entry>+10:30 </entry>
|
||||
<entry>Central Australia Daylight Savings Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>SADT</entry>
|
||||
<entry>+10:30</entry>
|
||||
<entry>South Australian Daylight Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>AEST</entry>
|
||||
<entry>+10:00 </entry>
|
||||
<entry>Australia Eastern Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>EAST</entry>
|
||||
<entry>+10:00 </entry>
|
||||
<entry>East Australian Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>GST</entry>
|
||||
<entry>+10:00</entry>
|
||||
<entry>Guam Standard Time, USSR Zone 9</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>LIGT</entry>
|
||||
<entry>+10:00</entry>
|
||||
<entry>Melbourne, Australia</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>ACST</entry>
|
||||
<entry>+09:30 </entry>
|
||||
<entry>Central Australia Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>SAST</entry>
|
||||
<entry>+09:30 </entry>
|
||||
<entry>South Australia Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>CAST</entry>
|
||||
<entry>+09:30 </entry>
|
||||
<entry>Central Australia Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>AWSST</entry>
|
||||
<entry>+9:00 </entry>
|
||||
<entry>Australia Western Summer Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>JST</entry>
|
||||
<entry>+9:00</entry>
|
||||
<entry>Japan Standard Time,USSR Zone 8</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>KST</entry>
|
||||
<entry>+9:00</entry>
|
||||
<entry>Korea Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>WDT</entry>
|
||||
<entry>+9:00</entry>
|
||||
<entry>West Australian Daylight Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>MT</entry>
|
||||
<entry>+8:30</entry>
|
||||
<entry>Moluccas Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>AWST</entry>
|
||||
<entry>+8:00 </entry>
|
||||
<entry>Australia Western Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>CCT</entry>
|
||||
<entry>+8:00 </entry>
|
||||
<entry>China Coastal Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>WADT</entry>
|
||||
<entry>+8:00</entry>
|
||||
<entry>West Australian Daylight Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>WST</entry>
|
||||
<entry>+8:00</entry>
|
||||
<entry>West Australian Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>JT</entry>
|
||||
<entry>+7:30</entry>
|
||||
<entry>Java Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>WAST</entry>
|
||||
<entry>+7:00</entry>
|
||||
<entry>West Australian Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>IT</entry>
|
||||
<entry>+3:30</entry>
|
||||
<entry>Iran Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>BT</entry>
|
||||
<entry>+3:00 </entry>
|
||||
<entry>Baghdad Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>EETDST</entry>
|
||||
<entry>+3:00 </entry>
|
||||
<entry>Eastern Europe Daylight Savings Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>CETDST</entry>
|
||||
<entry>+2:00 </entry>
|
||||
<entry>Central European Daylight Savings Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>EET</entry>
|
||||
<entry>+2:00 </entry>
|
||||
<entry>Eastern Europe, USSR Zone 1</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>FWT</entry>
|
||||
<entry>+2:00</entry>
|
||||
<entry>French Winter Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>IST</entry>
|
||||
<entry>+2:00</entry>
|
||||
<entry>Israel Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>MEST</entry>
|
||||
<entry>+2:00</entry>
|
||||
<entry>Middle Europe Summer Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>METDST</entry>
|
||||
<entry>+2:00</entry>
|
||||
<entry>Middle Europe Daylight Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>SST</entry>
|
||||
<entry>+2:00</entry>
|
||||
<entry>Swedish Summer Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>BST</entry>
|
||||
<entry>+1:00 </entry>
|
||||
<entry>British Summer Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>CET</entry>
|
||||
<entry>+1:00 </entry>
|
||||
<entry>Central European Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>DNT</entry>
|
||||
<entry>+1:00 </entry>
|
||||
<entry><foreignphrase>Dansk Normal Tid</foreignphrase></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>FST</entry>
|
||||
<entry>+1:00 </entry>
|
||||
<entry>French Summer Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>MET</entry>
|
||||
<entry>+1:00</entry>
|
||||
<entry>Middle Europe Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>MEWT</entry>
|
||||
<entry>+1:00</entry>
|
||||
<entry>Middle Europe Winter Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>MEZ</entry>
|
||||
<entry>+1:00</entry>
|
||||
<entry>Middle Europe Zone</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>NOR</entry>
|
||||
<entry>+1:00</entry>
|
||||
<entry>Norway Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>SET</entry>
|
||||
<entry>+1:00</entry>
|
||||
<entry>Seychelles Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>SWT</entry>
|
||||
<entry>+1:00</entry>
|
||||
<entry>Swedish Winter Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>WETDST</entry>
|
||||
<entry>+1:00</entry>
|
||||
<entry>Western Europe Daylight Savings Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>GMT</entry>
|
||||
<entry>0:00</entry>
|
||||
<entry>Greenwich Mean Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>WET</entry>
|
||||
<entry>0:00</entry>
|
||||
<entry>Western Europe</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>WAT</entry>
|
||||
<entry>-1:00</entry>
|
||||
<entry>West Africa Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>NDT</entry>
|
||||
<entry>-2:30</entry>
|
||||
<entry>Newfoundland Daylight Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>ADT</entry>
|
||||
<entry>-03:00 </entry>
|
||||
<entry>Atlantic Daylight Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>NFT</entry>
|
||||
<entry>-3:30</entry>
|
||||
<entry>Newfoundland Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>NST</entry>
|
||||
<entry>-3:30</entry>
|
||||
<entry>Newfoundland Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>AST</entry>
|
||||
<entry>-4:00 </entry>
|
||||
<entry>Atlantic Standard Time (Canada)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>EDT</entry>
|
||||
<entry>-4:00 </entry>
|
||||
<entry>Eastern Daylight Time</entry>
|
||||
</row>
|
||||
<table tocentry="1">
|
||||
<title><productname>PostgreSQL</productname> Recognized Time Zones</title>
|
||||
<titleabbrev>Time Zones</titleabbrev>
|
||||
<tgroup cols="3">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Time Zone</entry>
|
||||
<entry>Offset from UTC</entry>
|
||||
<entry>Description</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>NZDT</entry>
|
||||
<entry>+13:00</entry>
|
||||
<entry>New Zealand Daylight Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>IDLE</entry>
|
||||
<entry>+12:00</entry>
|
||||
<entry>International Date Line, East</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>NZST</entry>
|
||||
<entry>+12:00</entry>
|
||||
<entry>New Zealand Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>NZT</entry>
|
||||
<entry>+12:00</entry>
|
||||
<entry>New Zealand Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>AESST</entry>
|
||||
<entry>+11:00 </entry>
|
||||
<entry>Australia Eastern Summer Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>ACSST</entry>
|
||||
<entry>+10:30 </entry>
|
||||
<entry>Central Australia Summer Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>CADT</entry>
|
||||
<entry>+10:30 </entry>
|
||||
<entry>Central Australia Daylight Savings Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>SADT</entry>
|
||||
<entry>+10:30</entry>
|
||||
<entry>South Australian Daylight Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>AEST</entry>
|
||||
<entry>+10:00 </entry>
|
||||
<entry>Australia Eastern Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>EAST</entry>
|
||||
<entry>+10:00 </entry>
|
||||
<entry>East Australian Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>GST</entry>
|
||||
<entry>+10:00</entry>
|
||||
<entry>Guam Standard Time, USSR Zone 9</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>LIGT</entry>
|
||||
<entry>+10:00</entry>
|
||||
<entry>Melbourne, Australia</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>ACST</entry>
|
||||
<entry>+09:30 </entry>
|
||||
<entry>Central Australia Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>SAST</entry>
|
||||
<entry>+09:30 </entry>
|
||||
<entry>South Australia Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>CAST</entry>
|
||||
<entry>+09:30 </entry>
|
||||
<entry>Central Australia Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>AWSST</entry>
|
||||
<entry>+9:00 </entry>
|
||||
<entry>Australia Western Summer Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>JST</entry>
|
||||
<entry>+9:00</entry>
|
||||
<entry>Japan Standard Time,USSR Zone 8</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>KST</entry>
|
||||
<entry>+9:00</entry>
|
||||
<entry>Korea Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>WDT</entry>
|
||||
<entry>+9:00</entry>
|
||||
<entry>West Australian Daylight Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>MT</entry>
|
||||
<entry>+8:30</entry>
|
||||
<entry>Moluccas Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>AWST</entry>
|
||||
<entry>+8:00 </entry>
|
||||
<entry>Australia Western Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>CCT</entry>
|
||||
<entry>+8:00 </entry>
|
||||
<entry>China Coastal Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>WADT</entry>
|
||||
<entry>+8:00</entry>
|
||||
<entry>West Australian Daylight Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>WST</entry>
|
||||
<entry>+8:00</entry>
|
||||
<entry>West Australian Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>JT</entry>
|
||||
<entry>+7:30</entry>
|
||||
<entry>Java Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>WAST</entry>
|
||||
<entry>+7:00</entry>
|
||||
<entry>West Australian Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>CXT</entry>
|
||||
<entry>+7:00</entry>
|
||||
<entry>Christmas (Island) Time</entry>
|
||||
</row>
|
||||
<!--
|
||||
<row>
|
||||
<entry>ZP4</entry>
|
||||
<entry>-4:00</entry>
|
||||
<entry>GMT +4 hours</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>
|
||||
<entry>IT</entry>
|
||||
<entry>+3:30</entry>
|
||||
<entry>Iran Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>EAT</entry>
|
||||
<entry>+3:00</entry>
|
||||
<entry>Antananarivo, Comoro Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>BT</entry>
|
||||
<entry>+3:00 </entry>
|
||||
<entry>Baghdad Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>EETDST</entry>
|
||||
<entry>+3:00 </entry>
|
||||
<entry>Eastern Europe Daylight Savings Time</entry>
|
||||
</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>
|
||||
<entry>CETDST</entry>
|
||||
<entry>+2:00 </entry>
|
||||
<entry>Central European Daylight Savings Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>EET</entry>
|
||||
<entry>+2:00 </entry>
|
||||
<entry>Eastern Europe, USSR Zone 1</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>FWT</entry>
|
||||
<entry>+2:00</entry>
|
||||
<entry>French Winter Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>IST</entry>
|
||||
<entry>+2:00</entry>
|
||||
<entry>Israel Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>MEST</entry>
|
||||
<entry>+2:00</entry>
|
||||
<entry>Middle Europe Summer Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>METDST</entry>
|
||||
<entry>+2:00</entry>
|
||||
<entry>Middle Europe Daylight Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>SST</entry>
|
||||
<entry>+2:00</entry>
|
||||
<entry>Swedish Summer Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>BST</entry>
|
||||
<entry>+1:00 </entry>
|
||||
<entry>British Summer Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>CET</entry>
|
||||
<entry>+1:00 </entry>
|
||||
<entry>Central European Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>DNT</entry>
|
||||
<entry>+1:00 </entry>
|
||||
<entry><foreignphrase>Dansk Normal Tid</foreignphrase></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>FST</entry>
|
||||
<entry>+1:00 </entry>
|
||||
<entry>French Summer Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>MET</entry>
|
||||
<entry>+1:00</entry>
|
||||
<entry>Middle Europe Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>MEWT</entry>
|
||||
<entry>+1:00</entry>
|
||||
<entry>Middle Europe Winter Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>MEZ</entry>
|
||||
<entry>+1:00</entry>
|
||||
<entry>Middle Europe Zone</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>NOR</entry>
|
||||
<entry>+1:00</entry>
|
||||
<entry>Norway Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>SET</entry>
|
||||
<entry>+1:00</entry>
|
||||
<entry>Seychelles Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>SWT</entry>
|
||||
<entry>+1:00</entry>
|
||||
<entry>Swedish Winter Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>WETDST</entry>
|
||||
<entry>+1:00</entry>
|
||||
<entry>Western Europe Daylight Savings Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>GMT</entry>
|
||||
<entry>0:00</entry>
|
||||
<entry>Greenwich Mean Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>WET</entry>
|
||||
<entry>0:00</entry>
|
||||
<entry>Western Europe</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>WAT</entry>
|
||||
<entry>-1:00</entry>
|
||||
<entry>West Africa Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>NDT</entry>
|
||||
<entry>-2:30</entry>
|
||||
<entry>Newfoundland Daylight Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>ADT</entry>
|
||||
<entry>-03:00 </entry>
|
||||
<entry>Atlantic Daylight Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>NFT</entry>
|
||||
<entry>-3:30</entry>
|
||||
<entry>Newfoundland Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>NST</entry>
|
||||
<entry>-3:30</entry>
|
||||
<entry>Newfoundland Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>AST</entry>
|
||||
<entry>-4:00 </entry>
|
||||
<entry>Atlantic Standard Time (Canada)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>EDT</entry>
|
||||
<entry>-4:00 </entry>
|
||||
<entry>Eastern Daylight Time</entry>
|
||||
</row>
|
||||
<!--
|
||||
<row>
|
||||
<entry>CDT</entry>
|
||||
<entry>-5:00 </entry>
|
||||
<entry>Central Daylight Time</entry>
|
||||
<entry>ZP4</entry>
|
||||
<entry>-4:00</entry>
|
||||
<entry>GMT +4 hours</entry>
|
||||
</row>
|
||||
-->
|
||||
<row>
|
||||
<entry>CDT</entry>
|
||||
<entry>-5:00 </entry>
|
||||
<entry>Central Daylight Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>EST</entry>
|
||||
<entry>-5:00 </entry>
|
||||
<entry>Eastern Standard Time</entry>
|
||||
</row>
|
||||
<!--
|
||||
<row>
|
||||
<entry>EST</entry>
|
||||
<entry>-5:00 </entry>
|
||||
<entry>Eastern Standard Time</entry>
|
||||
<entry>ZP5</entry>
|
||||
<entry>-5:00</entry>
|
||||
<entry>GMT +5 hours</entry>
|
||||
</row>
|
||||
<!--
|
||||
-->
|
||||
<row>
|
||||
<entry>CST</entry>
|
||||
<entry>-6:00 </entry>
|
||||
<entry>Central Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>MDT</entry>
|
||||
<entry>-6:00</entry>
|
||||
<entry>Mountain Daylight Time</entry>
|
||||
</row>
|
||||
<!--
|
||||
<row>
|
||||
<entry>ZP5</entry>
|
||||
<entry>-5:00</entry>
|
||||
<entry>GMT +5 hours</entry>
|
||||
<entry>ZP6</entry>
|
||||
<entry>-6:00</entry>
|
||||
<entry>GMT +6 hours</entry>
|
||||
</row>
|
||||
-->
|
||||
<row>
|
||||
<entry>CST</entry>
|
||||
<entry>-6:00 </entry>
|
||||
<entry>Central Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>MDT</entry>
|
||||
<entry>-6:00</entry>
|
||||
<entry>Mountain Daylight Time</entry>
|
||||
</row>
|
||||
<!--
|
||||
<row>
|
||||
<entry>ZP6</entry>
|
||||
<entry>-6:00</entry>
|
||||
<entry>GMT +6 hours</entry>
|
||||
</row>
|
||||
-->
|
||||
<row>
|
||||
<entry>MST</entry>
|
||||
<entry>-7:00</entry>
|
||||
<entry>Mountain Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>PDT</entry>
|
||||
<entry>-7:00</entry>
|
||||
<entry>Pacific Daylight Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>PST</entry>
|
||||
<entry>-8:00</entry>
|
||||
<entry>Pacific Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>YDT</entry>
|
||||
<entry>-8:00</entry>
|
||||
<entry>Yukon Daylight Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>HDT</entry>
|
||||
<entry>-9:00</entry>
|
||||
<entry>Hawaii/Alaska Daylight Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>YST</entry>
|
||||
<entry>-9:00</entry>
|
||||
<entry>Yukon Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>AHST</entry>
|
||||
<entry>-10:00 </entry>
|
||||
<entry>Alaska-Hawaii Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>CAT</entry>
|
||||
<entry>-10:00 </entry>
|
||||
<entry>Central Alaska Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>NT</entry>
|
||||
<entry>-11:00</entry>
|
||||
<entry>Nome Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>IDLW</entry>
|
||||
<entry>-12:00</entry>
|
||||
<entry>International Date Line, West</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
</para>
|
||||
-->
|
||||
<row>
|
||||
<entry>MST</entry>
|
||||
<entry>-7:00</entry>
|
||||
<entry>Mountain Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>PDT</entry>
|
||||
<entry>-7:00</entry>
|
||||
<entry>Pacific Daylight Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>PST</entry>
|
||||
<entry>-8:00</entry>
|
||||
<entry>Pacific Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>YDT</entry>
|
||||
<entry>-8:00</entry>
|
||||
<entry>Yukon Daylight Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>HDT</entry>
|
||||
<entry>-9:00</entry>
|
||||
<entry>Hawaii/Alaska Daylight Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>YST</entry>
|
||||
<entry>-9:00</entry>
|
||||
<entry>Yukon Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>AHST</entry>
|
||||
<entry>-10:00 </entry>
|
||||
<entry>Alaska-Hawaii Standard Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>CAT</entry>
|
||||
<entry>-10:00 </entry>
|
||||
<entry>Central Alaska Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>NT</entry>
|
||||
<entry>-11:00</entry>
|
||||
<entry>Nome Time</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>IDLW</entry>
|
||||
<entry>-12:00</entry>
|
||||
<entry>International Date Line, West</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
</para>
|
||||
|
||||
<sect2>
|
||||
<title>Australian Time Zones</title>
|
||||
@ -414,7 +477,7 @@ Date/time details
|
||||
<para>
|
||||
Australian time zones and their naming variants
|
||||
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
|
||||
in the United States, <literal>CST</literal> and <literal>EST</literal>.
|
||||
</para>
|
||||
@ -429,7 +492,7 @@ Date/time details
|
||||
noise word indicating <literal>Saturday</literal>.
|
||||
|
||||
<table tocentry="1">
|
||||
<title><productname>Postgres</productname> Australian Time Zones</title>
|
||||
<title><productname>PostgreSQL</productname> Australian Time Zones</title>
|
||||
<titleabbrev>Australian Time Zones</titleabbrev>
|
||||
<tgroup cols="3">
|
||||
<thead>
|
||||
@ -626,7 +689,7 @@ Date/time details
|
||||
<para>
|
||||
Gregorian years 1-99AD may be entered by using 4 digits with leading
|
||||
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
|
||||
been tightened up to reduce the possibility of ambiguity.
|
||||
</para>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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">
|
||||
@ -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
|
||||
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.
|
||||
-->
|
||||
|
||||
@ -272,7 +273,7 @@ gcc -shared -o foo.so foo.o
|
||||
|
||||
<para>
|
||||
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
|
||||
the name of the shared library file, not the intermediate object file.
|
||||
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
|
||||
-bI:.../lib/postgres.exp -bE:foo.exp foo.o \e
|
||||
-lm -lc 2>/dev/null
|
||||
.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.
|
||||
|
||||
-->
|
||||
@ -318,11 +320,12 @@ 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/lib/sgml/catalog")
|
||||
sgml-local-catalogs:("/usr/share/sgml/catalog")
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
-->
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $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">
|
||||
<title>Documentation</title>
|
||||
@ -68,7 +68,7 @@
|
||||
<listitem>
|
||||
<para>
|
||||
<citetitle>Developer's Guide</citetitle>: assorted information
|
||||
for developers of PostgreSQL proper
|
||||
for developers of <productname>PostgreSQL</> proper
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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">
|
||||
@ -32,11 +32,11 @@ $Header: /cvsroot/pgsql/doc/src/sgml/ecpg.sgml,v 1.30 2001/11/12 19:19:39 petere
|
||||
|
||||
<para>
|
||||
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
|
||||
Linus Tolke (<email>linus@epact.se</email>) and Michael Meskes
|
||||
(<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>
|
||||
|
||||
<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
|
||||
should work. <application>ecpg</application> was designed to match
|
||||
this standard as much as possible. It is possible to port embedded
|
||||
<acronym>SQL</acronym> programs written for other
|
||||
<acronym>RDBMS</acronym> to <productname>Postgres</productname>.
|
||||
<acronym>RDBMS</acronym> to <productname>PostgreSQL</productname>.
|
||||
</para>
|
||||
</sect1>
|
||||
|
||||
@ -99,7 +99,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/ecpg.sgml,v 1.30 2001/11/12 19:19:39 petere
|
||||
|
||||
<para>
|
||||
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.
|
||||
</para>
|
||||
</sect2>
|
||||
@ -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>.
|
||||
Additionally, the library uses the <filename>libpq</filename>
|
||||
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>.
|
||||
</para>
|
||||
|
||||
@ -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
|
||||
all <acronym>SQL</acronym> statements with both the expanded
|
||||
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
|
||||
your <acronym>SQL</acronym> statements.
|
||||
</para>
|
||||
@ -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>
|
||||
|
||||
<para>
|
||||
To detect errors from the <productname>Postgres</productname>
|
||||
To detect errors from the <productname>PostgreSQL</productname>
|
||||
server, include a line like:
|
||||
<programlisting>
|
||||
exec sql include sqlca;
|
||||
@ -241,7 +241,7 @@ struct sqlca
|
||||
<term><computeroutput>-201 (ECPG_TOO_MANY_ARGUMENTS): Too many arguments line %d.</computeroutput></term>
|
||||
<listitem>
|
||||
<para>
|
||||
This means that <productname>Postgres</productname> has
|
||||
This means that <productname>PostgreSQL</productname> has
|
||||
returned more arguments than we have matching variables.
|
||||
Perhaps you have forgotten a couple of the host variables in
|
||||
the <command>INTO :var1,:var2</command>-list.
|
||||
@ -253,7 +253,7 @@ struct sqlca
|
||||
<term><computeroutput>-202 (ECPG_TOO_FEW_ARGUMENTS): Too few arguments line %d.</computeroutput></term>
|
||||
<listitem>
|
||||
<para>
|
||||
This means that <productname>Postgres</productname> has
|
||||
This means that <productname>PostgreSQL</productname> has
|
||||
returned fewer arguments than we have host variables. Perhaps
|
||||
you have too many host variables in the <command>INTO
|
||||
:var1,:var2</command>-list.
|
||||
@ -277,7 +277,7 @@ struct sqlca
|
||||
<listitem>
|
||||
<para>
|
||||
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
|
||||
interpreted as an <type>int</type>. The library uses
|
||||
<function>strtol()</function> for this conversion.
|
||||
@ -291,7 +291,7 @@ struct sqlca
|
||||
<para>
|
||||
This means the host variable is of type <type>unsigned
|
||||
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
|
||||
<type>unsigned int</type>. The library uses
|
||||
<function>strtoul()</function> for this conversion.
|
||||
@ -304,7 +304,7 @@ struct sqlca
|
||||
<listitem>
|
||||
<para>
|
||||
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
|
||||
interpreted as a <type>float</type>. The library uses
|
||||
<function>strtod()</function> for this conversion.
|
||||
@ -317,7 +317,7 @@ struct sqlca
|
||||
<listitem>
|
||||
<para>
|
||||
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'</>.
|
||||
</para>
|
||||
</listitem>
|
||||
@ -327,7 +327,7 @@ struct sqlca
|
||||
<term><computeroutput>-208 (ECPG_EMPTY): Empty query line %d.</computeroutput></term>
|
||||
<listitem>
|
||||
<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.
|
||||
</para>
|
||||
</listitem>
|
||||
@ -337,7 +337,7 @@ struct sqlca
|
||||
<term><computeroutput>-209 (ECPG_MISSING_INDICATOR): NULL value without indicator in line %d.</computeroutput></term>
|
||||
<listitem>
|
||||
<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.
|
||||
</para>
|
||||
</listitem>
|
||||
@ -347,7 +347,7 @@ struct sqlca
|
||||
<term><computeroutput>-210 (ECPG_NO_ARRAY): Variable is not an array in line %d.</computeroutput></term>
|
||||
<listitem>
|
||||
<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
|
||||
an array.
|
||||
</para>
|
||||
@ -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>
|
||||
<listitem>
|
||||
<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
|
||||
that requires array value.
|
||||
</para>
|
||||
@ -444,9 +444,9 @@ struct sqlca
|
||||
<term><computeroutput>-400 (ECPG_PGSQL): Postgres error: %s line %d.</computeroutput></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Some <productname>Postgres</productname> error.
|
||||
Some <productname>PostgreSQL</productname> error.
|
||||
The message contains the error message from the
|
||||
<productname>Postgres</productname> backend.
|
||||
<productname>PostgreSQL</productname> backend.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@ -455,7 +455,7 @@ struct sqlca
|
||||
<term><computeroutput>-401 (ECPG_TRANS): Error in transaction processing line %d.</computeroutput></term>
|
||||
<listitem>
|
||||
<para>
|
||||
<productname>Postgres</productname> signaled that we cannot start,
|
||||
<productname>PostgreSQL</productname> signaled that we cannot start,
|
||||
commit or rollback the transaction.
|
||||
</para>
|
||||
</listitem>
|
||||
@ -506,7 +506,7 @@ struct sqlca
|
||||
|
||||
<para>
|
||||
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.
|
||||
</para>
|
||||
</listitem>
|
||||
@ -581,7 +581,7 @@ struct sqlca
|
||||
<listitem>
|
||||
<para>
|
||||
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.
|
||||
</para>
|
||||
</listitem>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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">
|
||||
@ -7,7 +7,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.13 2001/09/30 16:05:54 pete
|
||||
|
||||
<para>
|
||||
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:
|
||||
|
||||
<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
|
||||
<title>How Extensibility Works</title>
|
||||
|
||||
<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
|
||||
relational systems, you know that they store information
|
||||
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
|
||||
this the data dictionary). The catalogs appear to the
|
||||
user as tables like any other, but the <acronym>DBMS</acronym> stores
|
||||
its internal bookkeeping in them. One key difference
|
||||
between <productname>Postgres</productname> and standard relational systems is
|
||||
that <productname>Postgres</productname> stores much more information in its
|
||||
between <productname>PostgreSQL</productname> and standard relational systems is
|
||||
that <productname>PostgreSQL</productname> stores much more information in its
|
||||
catalogs -- not only information about tables and columns,
|
||||
but also information about its types, functions, access
|
||||
methods, and so on. These tables can be modified by
|
||||
the user, and since <productname>Postgres</productname> bases its internal operation
|
||||
on these tables, this means that <productname>Postgres</productname> can be
|
||||
the user, and since <productname>PostgreSQL</productname> bases its internal operation
|
||||
on these tables, this means that <productname>PostgreSQL</productname> can be
|
||||
extended by users. By comparison, conventional
|
||||
database systems can only be extended by changing hardcoded
|
||||
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
|
||||
</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
|
||||
itself through dynamic loading. That is, the user can
|
||||
specify an object code file (e.g., a compiled .o file
|
||||
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.
|
||||
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.
|
||||
</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="type-system">
|
||||
<title>The <productname>Postgres</productname> Type System</title>
|
||||
<title>The <productname>PostgreSQL</productname> Type System</title>
|
||||
|
||||
<para>
|
||||
The <productname>Postgres</productname> type system
|
||||
The <productname>PostgreSQL</productname> type system
|
||||
can be broken down in several ways.
|
||||
Types are divided into base types and composite types.
|
||||
Base types are those, like <firstterm>int4</firstterm>, that are implemented
|
||||
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
|
||||
by the user and only understands the behavior of such
|
||||
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
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<productname>Postgres</productname> stores these types
|
||||
<productname>PostgreSQL</productname> stores these types
|
||||
in only one way (within the
|
||||
file that stores all rows of a table) but the
|
||||
user can <quote>look inside</quote> at the attributes of these types
|
||||
from the query language and optimize their retrieval by
|
||||
(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
|
||||
types and user-defined types. Built-in types (like
|
||||
<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
|
||||
</sect1>
|
||||
|
||||
<sect1 id="pg-system-catalogs">
|
||||
<title>About the <productname>Postgres</productname> System Catalogs</title>
|
||||
<title>About the <productname>PostgreSQL</productname> System Catalogs</title>
|
||||
|
||||
<para>
|
||||
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
|
||||
them directly.)
|
||||
|
||||
<table tocentry="1">
|
||||
<title>Postgres System Catalogs</title>
|
||||
<title>PostgreSQL System Catalogs</title>
|
||||
<titleabbrev>Catalogs</titleabbrev>
|
||||
<tgroup cols="2">
|
||||
<thead>
|
||||
@ -190,7 +190,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.13 2001/09/30 16:05:54 pete
|
||||
|
||||
<para>
|
||||
<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>
|
||||
<imageobject>
|
||||
<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
|
||||
|
||||
Nearly every catalog contains some reference to
|
||||
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
|
||||
identify unique rows of other catalogs.
|
||||
</para>
|
||||
|
@ -1,6 +1,6 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/func.sgml,v 1.83 2001/11/20 15:42:44 momjian Exp $
|
||||
Postgres documentation
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/func.sgml,v 1.84 2001/11/21 05:53:41 thomas Exp $
|
||||
PostgreSQL documentation
|
||||
-->
|
||||
|
||||
<chapter id="functions">
|
||||
@ -15,7 +15,7 @@ Postgres documentation
|
||||
</indexterm>
|
||||
|
||||
<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
|
||||
define their own functions and operators, as described in the
|
||||
<citetitle>Programmer's Guide</citetitle>. The
|
||||
@ -1349,7 +1349,7 @@ Postgres documentation
|
||||
|
||||
<para>
|
||||
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
|
||||
<acronym>POSIX</acronym>-style regular expressions.
|
||||
</para>
|
||||
@ -1446,7 +1446,7 @@ Postgres documentation
|
||||
The keyword <token>ILIKE</token> can be used instead of
|
||||
<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
|
||||
<productname>Postgres</productname> extension.
|
||||
<productname>PostgreSQL</productname> extension.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -1456,7 +1456,7 @@ Postgres documentation
|
||||
<literal>!~~</literal> and <literal>!~~*</literal> operators that
|
||||
represent <function>NOT LIKE</function> and <function>NOT
|
||||
ILIKE</function>. All of these operators are
|
||||
<productname>Postgres</productname>-specific.
|
||||
<productname>PostgreSQL</productname>-specific.
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
@ -1537,7 +1537,7 @@ Postgres documentation
|
||||
<command>egrep</command>; 1003.2 calls these
|
||||
<quote>extended</quote> REs) and obsolete REs (roughly those of
|
||||
<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>
|
||||
@ -1786,7 +1786,7 @@ Postgres documentation
|
||||
</note>
|
||||
|
||||
<para>
|
||||
The <productname>Postgres</productname> formatting functions
|
||||
The <productname>PostgreSQL</productname> formatting functions
|
||||
provide a powerful set of tools for converting various data types
|
||||
(date/time, integer, floating point, numeric) to formatted strings
|
||||
and for converting from formatted strings to specific data types.
|
||||
@ -2137,7 +2137,7 @@ Postgres documentation
|
||||
in a string constant, a double backslash
|
||||
(<quote><literal>\\</literal></quote>) must be entered; 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>
|
||||
</listitem>
|
||||
|
||||
@ -2311,7 +2311,7 @@ Postgres documentation
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>PL</literal>, <literal>SG</literal>, and
|
||||
<literal>TH</literal> are <productname>Postgres</productname>
|
||||
<literal>TH</literal> are <productname>PostgreSQL</productname>
|
||||
extensions.
|
||||
</para>
|
||||
</listitem>
|
||||
@ -3217,7 +3217,7 @@ SELECT CURRENT_TIMESTAMP;
|
||||
|
||||
<para>
|
||||
The function <function>now()</function> is the traditional
|
||||
<productname>Postgres</productname> equivalent to
|
||||
<productname>PostgreSQL</productname> equivalent to
|
||||
<function>CURRENT_TIMESTAMP</function>.
|
||||
</para>
|
||||
|
||||
@ -3889,7 +3889,7 @@ SELECT TIMESTAMP 'now';
|
||||
</table>
|
||||
|
||||
<para>
|
||||
This section describes <productname>Postgres</productname>'s functions
|
||||
This section describes <productname>PostgreSQL</productname>'s functions
|
||||
for operating on <firstterm>sequence objects</>.
|
||||
Sequence objects (also called sequence generators or
|
||||
just sequences) are special single-row tables created with
|
||||
@ -4013,7 +4013,7 @@ SELECT setval('foo', 42, false); <lineannotation>Next nextval() will return 4
|
||||
|
||||
<para>
|
||||
This section describes the <acronym>SQL</acronym>-compliant conditional expressions
|
||||
available in <productname>Postgres</productname>.
|
||||
available in <productname>PostgreSQL</productname>.
|
||||
</para>
|
||||
|
||||
<tip>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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
|
||||
-->
|
||||
|
||||
@ -49,14 +49,14 @@ Genetic Optimizer
|
||||
grows exponentially with the number of joins included in it. Further
|
||||
optimization effort is caused by the support of a variety of
|
||||
<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
|
||||
<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>
|
||||
The current <productname>Postgres</productname> optimizer
|
||||
The current <productname>PostgreSQL</productname> optimizer
|
||||
implementation performs a <firstterm>near-exhaustive search</firstterm>
|
||||
over the space of alternative strategies. This query
|
||||
optimization technique is inadequate to support database application
|
||||
@ -67,7 +67,7 @@ Genetic Optimizer
|
||||
<para>
|
||||
The Institute of Automatic Control at the University of Mining and
|
||||
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
|
||||
power grid. The DBMS needed to handle large join queries for the
|
||||
inference machine of the knowledge based system.
|
||||
@ -166,7 +166,7 @@ Genetic Optimizer
|
||||
</sect1>
|
||||
|
||||
<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>
|
||||
The <acronym>GEQO</acronym> module is intended for the solution of the query
|
||||
@ -183,7 +183,7 @@ Genetic Optimizer
|
||||
is encoded by the integer string '4-1-3-2',
|
||||
which means, first join relation '4' and '1', then '3', and
|
||||
then '2', where 1, 2, 3, 4 are relids within the
|
||||
<productname>Postgres</productname> optimizer.
|
||||
<productname>PostgreSQL</productname> optimizer.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -193,7 +193,7 @@ Genetic Optimizer
|
||||
|
||||
<para>
|
||||
Specific characteristics of the <acronym>GEQO</acronym>
|
||||
implementation in <productname>Postgres</productname>
|
||||
implementation in <productname>PostgreSQL</productname>
|
||||
are:
|
||||
|
||||
<itemizedlist spacing="compact" mark="bullet">
|
||||
@ -226,7 +226,7 @@ Genetic Optimizer
|
||||
|
||||
<para>
|
||||
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
|
||||
non-exhaustive search.
|
||||
</para>
|
||||
|
@ -96,7 +96,7 @@ A few notes on the sources:
|
||||
</ProgramListing>
|
||||
|
||||
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
|
||||
the postmaster in about ten minutes.
|
||||
</para>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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">
|
||||
@ -28,7 +28,8 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/indexcost.sgml,v 2.9 2001/09/13 15:55
|
||||
|
||||
<note>
|
||||
<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.
|
||||
</para>
|
||||
</note>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $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">
|
||||
<title id="indexes-title">Indexes</title>
|
||||
@ -105,7 +105,7 @@ CREATE INDEX test1_id_index ON test1 (id);
|
||||
<title>Index Types</title>
|
||||
|
||||
<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
|
||||
a particular query type because of the algorithm it uses.
|
||||
<indexterm>
|
||||
@ -119,7 +119,7 @@ CREATE INDEX test1_id_index ON test1 (id);
|
||||
By
|
||||
default, the <command>CREATE INDEX</command> command will create a
|
||||
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
|
||||
involved in a comparison using one of these operators:
|
||||
|
||||
@ -146,7 +146,7 @@ CREATE INDEX test1_id_index ON test1 (id);
|
||||
<synopsis>
|
||||
CREATE INDEX <replaceable>name</replaceable> ON <replaceable>table</replaceable> USING RTREE (<replaceable>column</replaceable>);
|
||||
</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
|
||||
involved in a comparison using one of these operators:
|
||||
|
||||
@ -238,7 +238,7 @@ CREATE INDEX test2_mm_idx ON test2 (major, minor);
|
||||
<para>
|
||||
Currently, only the B-tree and GiST implementations support multicolumn
|
||||
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>.)
|
||||
</para>
|
||||
|
||||
@ -546,7 +546,7 @@ Subject: Re: [QUESTIONS] PRIMARY KEY | UNIQUE
|
||||
must understand that indexes are implementation-dependent.
|
||||
<acronym>SQL</acronym> does not
|
||||
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
|
||||
used to enforce <acronym>SQL</acronym> keys are always unique.
|
||||
</para>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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">
|
||||
@ -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
|
||||
the developers. Consult the <ulink
|
||||
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>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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">
|
||||
@ -25,11 +25,11 @@ CREATE TABLE capitals (
|
||||
In this case, a row of capitals <firstterm>inherits</firstterm> all
|
||||
attributes (name, population, and altitude) from its
|
||||
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
|
||||
<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
|
||||
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,
|
||||
and a query can reference either all rows of a
|
||||
table or all rows of a table plus all of its
|
||||
@ -150,7 +150,7 @@ SELECT name, altitude
|
||||
<note>
|
||||
<title>Deprecated</title>
|
||||
<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
|
||||
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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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">
|
||||
@ -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>.
|
||||
However, as mentioned, this simplicity often makes the
|
||||
implementation of certain applications very difficult.
|
||||
<productname>Postgres</productname> offers substantial additional
|
||||
<productname>PostgreSQL</productname> offers substantial additional
|
||||
power by incorporating the following additional
|
||||
concepts in such a way that users can easily
|
||||
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
|
||||
</para>
|
||||
|
||||
<para>
|
||||
These features put <productname>Postgres</productname> into the
|
||||
These features put <productname>PostgreSQL</productname> into the
|
||||
category of databases referred to as
|
||||
<firstterm>object-relational</firstterm>. Note that this is distinct
|
||||
from those referred to as <firstterm>object-oriented</firstterm>,
|
||||
which in general are not as well suited to supporting the
|
||||
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
|
||||
world. In fact, some commercial databases have recently
|
||||
incorporated features pioneered by <productname>Postgres</productname>.
|
||||
incorporated features pioneered by <productname>PostgreSQL</productname>.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/jdbc.sgml,v 1.27 2001/10/25 22:00:31 barry Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/jdbc.sgml,v 1.28 2001/11/21 05:53:41 thomas Exp $
|
||||
-->
|
||||
|
||||
<chapter id="jdbc">
|
||||
@ -20,7 +20,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/jdbc.sgml,v 1.27 2001/10/25 22:00:31
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<application>Postgres</application> provides a <firstterm>type
|
||||
<productname>PostgreSQL</> provides a <firstterm>type
|
||||
4</firstterm> <acronym>JDBC</acronym> Driver. Type 4 indicates
|
||||
that the driver is written in Pure Java, and communicates in the
|
||||
database system's own network protocol. Because of this, the driver
|
||||
@ -225,7 +225,7 @@ import java.sql.*;
|
||||
<para>
|
||||
In the first method, your code implicitly loads the driver using the
|
||||
<function>Class.forName()</function> method.
|
||||
For <application>Postgres</application>, you would use:
|
||||
For <productname>PostgreSQL</>, you would use:
|
||||
|
||||
<programlisting>
|
||||
Class.forName("org.postgresql.Driver");
|
||||
@ -245,9 +245,9 @@ Class.forName("org.postgresql.Driver");
|
||||
|
||||
<para>
|
||||
This is the most common method to use, but restricts your code to
|
||||
use just <productname>Postgres</productname>. If your code may
|
||||
use just <productname>PostgreSQL</productname>. If your code may
|
||||
access another database system in the future, and you do not use
|
||||
any <productname>Postgres</productname>-specific extensions, then
|
||||
any <productname>PostgreSQL</productname>-specific extensions, then
|
||||
the second method is advisable.
|
||||
</para>
|
||||
|
||||
@ -285,7 +285,7 @@ java -Djdbc.drivers=org.postgresql.Driver example.ImageViewer
|
||||
<para>
|
||||
With <acronym>JDBC</acronym>, a database is represented by a
|
||||
<acronym>URL</acronym> (Uniform Resource Locator). With
|
||||
<application>Postgres</application>, this takes one of the
|
||||
<application>PostgreSQL</application>, this takes one of the
|
||||
following forms:
|
||||
|
||||
<itemizedlist>
|
||||
@ -329,7 +329,7 @@ jdbc:postgresql://<replaceable class="parameter">host</replaceable>:<replaceable
|
||||
<listitem>
|
||||
<para>
|
||||
The port number the server is listening on. Defaults to the
|
||||
Postgres standard port number (5432).
|
||||
<productname>PostgreSQL</productname> standard port number (5432).
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@ -465,7 +465,7 @@ st.close();
|
||||
Under the <acronym>JDBC</acronym> specification, you should
|
||||
access a field only once. It is safest to stick to this rule,
|
||||
although at the current time, the
|
||||
<productname>Postgres</productname> driver will allow you to
|
||||
<productname>PostgreSQL</productname> driver will allow you to
|
||||
access a field as many times as you want.
|
||||
</para>
|
||||
</listitem>
|
||||
@ -509,7 +509,7 @@ st.executeUpdate("CREATE TABLE basic (a int, b int)");
|
||||
<title>Using Large Objects</title>
|
||||
|
||||
<para>
|
||||
In <application>Postgres</application>, <firstterm>Large
|
||||
In <application>PostgreSQL</application>, <firstterm>Large
|
||||
Objects</firstterm> (also known as <acronym>BLOB</acronym>s) are
|
||||
used to hold data in the database that cannot be stored in a normal
|
||||
SQL table. They are stored in a separate table in a special format,
|
||||
@ -518,7 +518,7 @@ st.executeUpdate("CREATE TABLE basic (a int, b int)");
|
||||
|
||||
<important>
|
||||
<para>
|
||||
For <productname>Postgres</productname>, you must access Large
|
||||
For <productname>PostgreSQL</productname>, you must access Large
|
||||
Objects within an <acronym>SQL</acronym> transaction. You would
|
||||
open a transaction by using the
|
||||
<function>setAutoCommit()</function> method with an input
|
||||
@ -631,10 +631,10 @@ ps.close();
|
||||
<acronym>JDBC</acronym> <acronym>API</acronym></title>
|
||||
|
||||
<para>
|
||||
<productname>Postgres</productname> is an extensible database
|
||||
<productname>PostgreSQL</productname> is an extensible database
|
||||
system. You can add your own functions to the backend, which can
|
||||
then be called from queries, or even add your own data types. As
|
||||
these are facilities unique to <productname>Postgres</productname>,
|
||||
these are facilities unique to <productname>PostgreSQL</productname>,
|
||||
we support them from Java, with a set of extension
|
||||
<acronym>API</acronym>'s. Some features within the core of the
|
||||
standard driver actually use these extensions to implement Large
|
||||
@ -756,7 +756,7 @@ LargeObjectManager lo = ((org.postgresql.Connection)myconn).getLargeObjectAPI();
|
||||
public void addDataType(String type, String name)
|
||||
</synopsis>
|
||||
This allows client code to add a handler for one of
|
||||
PostgreSQL's more unique data types. Normally, a data type not
|
||||
<productname>PostgreSQL</productname>'s more unique data types. Normally, a data type not
|
||||
known by the driver is returned by <literal>ResultSet.getObject()</literal> as a
|
||||
<classname>PGobject</> instance. This method allows you to write a class
|
||||
that extends <classname>PGobject</>, and tell the driver the type name, and
|
||||
@ -841,7 +841,7 @@ public Object fastpath(int fnid,
|
||||
FastpathArg args[]) throws SQLException
|
||||
</synopsis>
|
||||
<para>
|
||||
Send a function call to the PostgreSQL backend.
|
||||
Send a function call to the <productname>PostgreSQL</productname> backend.
|
||||
</para>
|
||||
|
||||
<formalpara>
|
||||
@ -871,7 +871,7 @@ public Object fastpath(String name,
|
||||
FastpathArg args[]) throws SQLException
|
||||
</synopsis>
|
||||
<para>
|
||||
Send a function call to the PostgreSQL backend by name.
|
||||
Send a function call to the <productname>PostgreSQL</productname> backend by name.
|
||||
</para>
|
||||
|
||||
<note>
|
||||
@ -1005,7 +1005,7 @@ public void addFunctions(ResultSet rs) throws SQLException
|
||||
<title>Implementation note about function name look-ups</title>
|
||||
|
||||
<para>
|
||||
PostgreSQL stores the function id's and their corresponding
|
||||
<productname>PostgreSQL</productname> stores the function id's and their corresponding
|
||||
names in the <classname>pg_proc</> table. To speed things up locally,
|
||||
instead of querying each function from that table when
|
||||
required, a <classname>Hashtable</classname> is used. Also, only the function's
|
||||
@ -1227,7 +1227,7 @@ Constructors
|
||||
public PGbox(String s) throws SQLException
|
||||
|
||||
Parameters:
|
||||
s - Box definition in PostgreSQL syntax
|
||||
s - Box definition in <productname>PostgreSQL</productname> syntax
|
||||
|
||||
Throws: SQLException
|
||||
if definition is invalid
|
||||
@ -1324,7 +1324,7 @@ Constructors
|
||||
public PGcircle(String s) throws SQLException
|
||||
|
||||
Parameters:
|
||||
s - definition of the circle in PostgreSQL's syntax.
|
||||
s - definition of the circle in <productname>PostgreSQL</productname>'s syntax.
|
||||
|
||||
Throws: SQLException
|
||||
on conversion failure
|
||||
@ -1338,7 +1338,7 @@ Methods
|
||||
public void setValue(String s) throws SQLException
|
||||
|
||||
Parameters:
|
||||
s - definition of the circle in PostgreSQL's syntax.
|
||||
s - definition of the circle in <productname>PostgreSQL</productname>'s syntax.
|
||||
|
||||
Throws: SQLException
|
||||
on conversion failure
|
||||
@ -1417,7 +1417,7 @@ Constructors
|
||||
public PGline(String s) throws SQLException
|
||||
|
||||
Parameters:
|
||||
s - definition of the line in PostgreSQL's syntax.
|
||||
s - definition of the line in <productname>PostgreSQL</productname>'s syntax.
|
||||
|
||||
Throws: SQLException
|
||||
on conversion failure
|
||||
@ -1431,7 +1431,7 @@ Methods
|
||||
public void setValue(String s) throws SQLException
|
||||
|
||||
Parameters:
|
||||
s - Definition of the line segment in PostgreSQL's
|
||||
s - Definition of the line segment in <productname>PostgreSQL</productname>'s
|
||||
syntax
|
||||
|
||||
Throws: SQLException
|
||||
@ -1510,7 +1510,7 @@ Constructors
|
||||
public PGlseg(String s) throws SQLException
|
||||
|
||||
Parameters:
|
||||
s - Definition of the line segment in PostgreSQL's syntax.
|
||||
s - Definition of the line segment in <productname>PostgreSQL</productname>'s syntax.
|
||||
|
||||
Throws: SQLException
|
||||
on conversion failure
|
||||
@ -1524,7 +1524,7 @@ Methods
|
||||
public void setValue(String s) throws SQLException
|
||||
|
||||
Parameters:
|
||||
s - Definition of the line segment in PostgreSQL's
|
||||
s - Definition of the line segment in <productname>PostgreSQL</productname>'s
|
||||
syntax
|
||||
|
||||
Throws: SQLException
|
||||
@ -1600,7 +1600,7 @@ Constructors
|
||||
public PGpath(String s) throws SQLException
|
||||
|
||||
Parameters:
|
||||
s - definition of the path in PostgreSQL's syntax.
|
||||
s - definition of the path in <productname>PostgreSQL</productname>'s syntax.
|
||||
|
||||
Throws: SQLException
|
||||
on conversion failure
|
||||
@ -1610,7 +1610,7 @@ Methods
|
||||
public void setValue(String s) throws SQLException
|
||||
|
||||
Parameters:
|
||||
s - Definition of the path in PostgreSQL's syntax
|
||||
s - Definition of the path in <productname>PostgreSQL</productname>'s syntax
|
||||
|
||||
Throws: SQLException
|
||||
on conversion failure
|
||||
@ -1702,7 +1702,7 @@ Constructors
|
||||
point is embedded within their definition.
|
||||
|
||||
Parameters:
|
||||
value - Definition of this point in PostgreSQL's
|
||||
value - Definition of this point in <productname>PostgreSQL</productname>'s
|
||||
syntax
|
||||
|
||||
public PGpoint()
|
||||
@ -1714,7 +1714,7 @@ Methods
|
||||
public void setValue(String s) throws SQLException
|
||||
|
||||
Parameters:
|
||||
s - Definition of this point in PostgreSQL's syntax
|
||||
s - Definition of this point in <productname>PostgreSQL</productname>'s syntax
|
||||
|
||||
Throws: SQLException
|
||||
on conversion failure
|
||||
@ -1820,7 +1820,7 @@ java.lang.Object
|
||||
public class PGpolygon extends PGobject implements Serializable,
|
||||
Cloneable
|
||||
|
||||
This implements the polygon data type within PostgreSQL.
|
||||
This implements the polygon data type within <productname>PostgreSQL</productname>.
|
||||
|
||||
Variables
|
||||
|
||||
@ -1840,7 +1840,7 @@ Constructors
|
||||
public PGpolygon(String s) throws SQLException
|
||||
|
||||
Parameters:
|
||||
s - definition of the polygon in PostgreSQL's syntax.
|
||||
s - definition of the polygon in <productname>PostgreSQL</productname>'s syntax.
|
||||
|
||||
Throws: SQLException
|
||||
on conversion failure
|
||||
@ -1854,7 +1854,7 @@ Methods
|
||||
public void setValue(String s) throws SQLException
|
||||
|
||||
Parameters:
|
||||
s - Definition of the polygon in PostgreSQL's syntax
|
||||
s - Definition of the polygon in <productname>PostgreSQL</productname>'s syntax
|
||||
|
||||
Throws: SQLException
|
||||
on conversion failure
|
||||
@ -1897,7 +1897,7 @@ Methods
|
||||
<para>
|
||||
Large objects are supported in the standard
|
||||
<acronym>JDBC</acronym> specification. However, that interface is
|
||||
limited, and the <acronym>API</acronym> provided by PostgreSQL allows for random
|
||||
limited, and the <acronym>API</acronym> provided by <productname>PostgreSQL</productname> allows for random
|
||||
access to the objects contents, as if it was a local file.
|
||||
</para>
|
||||
|
||||
@ -2429,7 +2429,7 @@ java.lang.Object
|
||||
|
||||
public class Serialize extends Object
|
||||
|
||||
This class uses PostgreSQL's object oriented features to store Java
|
||||
This class uses <productname>PostgreSQL</productname>'s object oriented features to store Java
|
||||
Objects. It does this by mapping a Java Class name to a table in the
|
||||
database. Each entry in this new table then represents a Serialized
|
||||
instance of this class. As each entry has an OID (Object IDentifier),
|
||||
@ -2442,7 +2442,7 @@ Constructors
|
||||
String type) throws SQLException
|
||||
|
||||
This creates an instance that can be used to serialize
|
||||
or deserialize a Java object from a PostgreSQL table.
|
||||
or deserialize a Java object from a <productname>PostgreSQL</productname> table.
|
||||
|
||||
Methods
|
||||
|
||||
@ -2518,13 +2518,13 @@ serializing any objects.
|
||||
|
||||
Another limitation, is that the entire class name (including
|
||||
packages) cannot be longer than 31 characters (a limit
|
||||
forced by PostgreSQL).
|
||||
forced by <productname>PostgreSQL</productname>).
|
||||
|
||||
Parameters:
|
||||
name - Class name
|
||||
|
||||
Returns:
|
||||
PostgreSQL table name
|
||||
<productname>PostgreSQL</productname> table name
|
||||
|
||||
Throws: SQLException
|
||||
on error
|
||||
@ -2535,7 +2535,7 @@ forced by PostgreSQL).
|
||||
replacing _ with .
|
||||
|
||||
Parameters:
|
||||
name - PostgreSQL table name
|
||||
name - <productname>PostgreSQL</productname> table name
|
||||
|
||||
Returns:
|
||||
Class name
|
||||
@ -2559,7 +2559,7 @@ java.lang.Object
|
||||
public class PGmoney extends PGobject implements Serializable,
|
||||
Cloneable
|
||||
|
||||
This implements a class that handles the PostgreSQL money type
|
||||
This implements a class that handles the <productname>PostgreSQL</productname> money type
|
||||
|
||||
Variables
|
||||
|
||||
@ -2579,7 +2579,7 @@ Constructors
|
||||
Create a money.
|
||||
|
||||
Parameters:
|
||||
value - Definition of this money in PostgreSQL's
|
||||
value - Definition of this money in <productname>PostgreSQL</productname>'s
|
||||
syntax
|
||||
|
||||
public PGmoney()
|
||||
@ -2591,7 +2591,7 @@ Methods
|
||||
public void setValue(String s) throws SQLException
|
||||
|
||||
Parameters:
|
||||
s - Definition of this money in PostgreSQL's syntax
|
||||
s - Definition of this money in <productname>PostgreSQL</productname>'s syntax
|
||||
|
||||
Throws: SQLException
|
||||
on conversion failure
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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>
|
||||
@ -56,14 +56,15 @@ There is no legal requirement to make trademark acknowledgements in
|
||||
references to third party products that happen to have trademarked
|
||||
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
|
||||
case of UNIX and Java).
|
||||
|
||||
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.
|
||||
E.g., "the PostgreSQL UNIX database system" would probably be illegal,
|
||||
whereas "PostgreSQL, which runs on many UNIX computer systems" is
|
||||
could lead people to believe that they label <productname>PostgreSQL</> products.
|
||||
E.g., "the <productname>PostgreSQL</> UNIX database system" would probably be illegal,
|
||||
whereas "<productname>PostgreSQL</>, which runs on many UNIX computer systems" is
|
||||
fine. This is independent of whether a trademark acknowledgement is
|
||||
made.
|
||||
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
<Para>
|
||||
<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
|
||||
Tcl scripts.
|
||||
</Para>
|
||||
@ -114,7 +114,7 @@ These commands are described further on subsequent pages.
|
||||
|
||||
<Para>
|
||||
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 standard Unix file system interface.
|
||||
The pg_lo* routines should be used within a BEGIN/END transaction
|
||||
@ -293,7 +293,7 @@ Handles start with the prefix <literal>pgsql</literal>.
|
||||
<TITLE>Description
|
||||
</TITLE>
|
||||
<PARA><FUNCTION>pg_connect</FUNCTION> opens a connection to the
|
||||
<ProductName>Postgres</ProductName> backend.
|
||||
<ProductName>PostgreSQL</ProductName> backend.
|
||||
</Para>
|
||||
|
||||
<para>
|
||||
@ -379,7 +379,7 @@ pg_disconnect <REPLACEABLE CLASS="PARAMETER">dbHandle</REPLACEABLE>
|
||||
</REFSECT1INFO>
|
||||
<TITLE>Description
|
||||
</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>
|
||||
</REFSECT1>
|
||||
|
||||
@ -553,7 +553,7 @@ to obtain the results of the query.
|
||||
<TITLE>Description
|
||||
</TITLE>
|
||||
<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
|
||||
and a result number.
|
||||
@ -896,7 +896,7 @@ pg_select <REPLACEABLE CLASS="PARAMETER">dbHandle</REPLACEABLE> <REPLACEABLE CLA
|
||||
</TITLE>
|
||||
<PARA>
|
||||
<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.
|
||||
The <REPLACEABLE CLASS="PARAMETER">queryString</REPLACEABLE>
|
||||
must be a SELECT statement. Anything else returns an error.
|
||||
@ -1015,7 +1015,7 @@ when a matching notification arrives.
|
||||
</TITLE>
|
||||
<PARA><FUNCTION>pg_listen</FUNCTION> creates, changes, or cancels a request
|
||||
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
|
||||
existing request is replaced. With no <parameter>callbackCommand</> parameter, a prior
|
||||
request is canceled.
|
||||
@ -1025,7 +1025,7 @@ request is canceled.
|
||||
After a <FUNCTION>pg_listen</FUNCTION> request is established,
|
||||
the specified command string is executed whenever a NOTIFY message bearing
|
||||
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,
|
||||
that of an existing relation in the database.)
|
||||
The command string is executed from the Tcl idle loop. That is the normal
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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">
|
||||
@ -7,23 +7,23 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.34 2001/11/19 03:58:
|
||||
|
||||
<para>
|
||||
<filename>libpq++</filename> is the C++ API to
|
||||
<productname>Postgres</productname>.
|
||||
<productname>PostgreSQL</productname>.
|
||||
<filename>libpq++</filename> is a set of classes that allow
|
||||
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.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
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.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The Large Object Class is intended for manipulating a large object
|
||||
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
|
||||
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
|
||||
@ -91,13 +91,13 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.34 2001/11/19 03:58:
|
||||
<para>
|
||||
<envar>PGPORT</envar> sets the default TCP port number or Unix-domain
|
||||
socket file extension for communicating with the
|
||||
<productname>Postgres</productname> backend.
|
||||
<productname>PostgreSQL</productname> backend.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<envar>PGDATABASE</envar> sets the default
|
||||
<productname>Postgres</productname> database name.
|
||||
<productname>PostgreSQL</productname> database name.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
@ -115,9 +115,9 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.34 2001/11/19 03:58:
|
||||
<listitem>
|
||||
<para>
|
||||
<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
|
||||
<envar>PGREALM</envar> is set, <productname>Postgres</productname>
|
||||
<envar>PGREALM</envar> is set, <productname>PostgreSQL</productname>
|
||||
applications will attempt
|
||||
authentication with servers for this realm and use
|
||||
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:
|
||||
<listitem>
|
||||
<para>
|
||||
<envar>PGOPTIONS</envar> sets additional runtime options for
|
||||
the <productname>Postgres</productname> backend.
|
||||
the <productname>PostgreSQL</productname> backend.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
@ -142,7 +142,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.34 2001/11/19 03:58:
|
||||
|
||||
<para>
|
||||
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>
|
||||
<listitem>
|
||||
@ -162,7 +162,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.34 2001/11/19 03:58:
|
||||
|
||||
<para>
|
||||
The following environment variables can be used to specify default internal
|
||||
behavior for every Postgres session:
|
||||
behavior for every <productname>PostgreSQL</productname> session:
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
@ -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>
|
||||
|
||||
<para>
|
||||
<productname>Postgres</productname> supports asynchronous notification
|
||||
<productname>PostgreSQL</productname> supports asynchronous notification
|
||||
via the <command>LISTEN</command> and <command>NOTIFY</command>
|
||||
commands. A backend registers its interest in a particular semaphore
|
||||
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:
|
||||
<title>Functions Associated with the COPY Command</title>
|
||||
|
||||
<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
|
||||
connection used by <filename>libpq++</filename>.
|
||||
Therefore, functions are necessary to
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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">
|
||||
@ -892,7 +892,7 @@ undefined. A call to <function>PQescapeString</> writes an escaped
|
||||
version of the <parameter>from</> string to the <parameter>to</>
|
||||
buffer, replacing special characters so that they cannot cause any
|
||||
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.
|
||||
</para>
|
||||
<para>
|
||||
@ -2152,7 +2152,7 @@ foo.c:95: `PGRES_TUPLES_OK' undeclared (first use in this function)
|
||||
|
||||
<listitem>
|
||||
<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
|
||||
<literal>-I<replaceable>directory</replaceable></literal> option
|
||||
to your compiler. (In some cases the compiler will look into
|
||||
@ -2239,7 +2239,7 @@ testlibpq.o(.text+0xa4): undefined reference to `PQerrorMessage'
|
||||
<indexterm><primary>libpq-int.h</></>
|
||||
If your codes references the header file
|
||||
<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>,
|
||||
so you need to add the appropriate <option>-I</option> option to
|
||||
your compiler command line.
|
||||
@ -2258,7 +2258,7 @@ testlibpq.o(.text+0xa4): undefined reference to `PQerrorMessage'
|
||||
/*
|
||||
* testlibpq.c
|
||||
*
|
||||
* Test the C version of libpq, the PostgreSQL frontend
|
||||
* Test the C version of libpq, the <productname>PostgreSQL</> frontend
|
||||
* library.
|
||||
*/
|
||||
#include <stdio.h>
|
||||
@ -2509,7 +2509,7 @@ main()
|
||||
|
||||
<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
|
||||
*
|
||||
*
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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">
|
||||
@ -393,7 +393,7 @@ VACUUM
|
||||
<para>
|
||||
The simplest production-grade approach to managing log output is to send it
|
||||
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
|
||||
<literal>syslog</> to 2
|
||||
(log to syslog only) in <filename>postgresql.conf</>.
|
||||
@ -415,7 +415,7 @@ VACUUM
|
||||
<userinput>pg_ctl start | logrotate</userinput>
|
||||
</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;
|
||||
one is included in the Apache distribution, for example.
|
||||
</para>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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">
|
||||
@ -30,7 +30,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/manage-ag.sgml,v 2.18 2001/11/18 00:38:00 t
|
||||
</note>
|
||||
|
||||
<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
|
||||
linkend="postmaster-start">).
|
||||
</para>
|
||||
@ -123,7 +123,8 @@ createdb <replaceable class="parameter">dbname</replaceable>
|
||||
There is a second standard system database named <literal>template0</>.
|
||||
This database contains the same data as the initial contents of
|
||||
<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
|
||||
copy <literal>template0</> instead of <literal>template1</>, you can
|
||||
create a <quote>virgin</> user database that contains none of the
|
||||
@ -283,7 +284,7 @@ CREATE DATABASE <replaceable>name</> WITH LOCATION = '<replaceable>location</>'
|
||||
It can also be possible to specify absolute paths directly to the
|
||||
<command>CREATE DATABASE</> command without defining environment
|
||||
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</>
|
||||
defined. One way to do this is to run the compilation step like
|
||||
this:
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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">
|
||||
@ -13,13 +13,13 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/manage.sgml,v 1.19 2001/11/19 03:58:2
|
||||
|
||||
<Para>
|
||||
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,
|
||||
designated the <FirstTerm>database administrator</FirstTerm>.
|
||||
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 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.
|
||||
</Para>
|
||||
|
||||
@ -34,14 +34,14 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/manage.sgml,v 1.19 2001/11/19 03:58:2
|
||||
<Para>
|
||||
Databases are created by the <Command>CREATE DATABASE</Command>
|
||||
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
|
||||
Unix command line.
|
||||
</Para>
|
||||
|
||||
<Para>
|
||||
The <ProductName>Postgres</ProductName> backend must be running for either method
|
||||
to succeed, and the user issuing the command must be the <ProductName>Postgres</ProductName>
|
||||
The <ProductName>PostgreSQL</ProductName> backend must be running for either method
|
||||
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
|
||||
superuser.
|
||||
</Para>
|
||||
@ -71,7 +71,7 @@ ERROR: CREATE DATABASE: Permission denied.
|
||||
database administrator of the database you just created.
|
||||
Database names must have an alphabetic first
|
||||
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.
|
||||
</Para>
|
||||
|
||||
@ -157,7 +157,7 @@ mydb=> \h
|
||||
|
||||
Once you have finished entering your queries into the
|
||||
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>
|
||||
mydb=> \g
|
||||
</ProgramListing>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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">
|
||||
@ -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
|
||||
multi-user environment.
|
||||
Vadim Mikheev (<email>vadim@krs.ru</email>) provided
|
||||
the implementation for <productname>Postgres</productname>.
|
||||
the implementation for <productname>PostgreSQL</productname>.
|
||||
</para>
|
||||
</abstract>
|
||||
|
||||
@ -25,7 +25,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.19 2001/10/09 18:46:00 petere
|
||||
|
||||
<para>
|
||||
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.
|
||||
This means that while querying a database each transaction sees
|
||||
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
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<productname>Postgres</productname>
|
||||
<productname>PostgreSQL</productname>
|
||||
offers the read committed and serializable isolation levels.
|
||||
</para>
|
||||
</sect1>
|
||||
@ -206,7 +206,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.19 2001/10/09 18:46:00 petere
|
||||
|
||||
<para>
|
||||
<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,
|
||||
a <command>SELECT</command> query sees only data committed before the
|
||||
query began and never sees either uncommitted data or changes committed
|
||||
@ -324,7 +324,7 @@ ERROR: Can't serialize access due to concurrent update
|
||||
<title>Data consistency checks at the application level</title>
|
||||
|
||||
<para>
|
||||
Because readers in <productname>Postgres</productname>
|
||||
Because readers in <productname>PostgreSQL</productname>
|
||||
don't lock data, regardless of
|
||||
transaction isolation level, data read by one transaction can be
|
||||
overwritten by another concurrent transaction. In other words,
|
||||
@ -354,15 +354,15 @@ ERROR: Can't serialize access due to concurrent update
|
||||
concurrent updates, while <command>LOCK TABLE</command> protects the
|
||||
whole table.)
|
||||
This should be taken into account when porting applications to
|
||||
<productname>Postgres</productname> from other environments.
|
||||
<productname>PostgreSQL</productname> from other environments.
|
||||
|
||||
<note>
|
||||
<para>
|
||||
Before version 6.5 <productname>Postgres</productname>
|
||||
Before version 6.5 <productname>PostgreSQL</productname>
|
||||
used read-locks and so the
|
||||
above consideration is also the case
|
||||
when upgrading to 6.5 (or higher) from previous
|
||||
<productname>Postgres</productname> versions.
|
||||
<productname>PostgreSQL</productname> versions.
|
||||
</para>
|
||||
</note>
|
||||
</para>
|
||||
@ -376,10 +376,10 @@ ERROR: Can't serialize access due to concurrent update
|
||||
</indexterm>
|
||||
|
||||
<para>
|
||||
<productname>Postgres</productname>
|
||||
<productname>PostgreSQL</productname>
|
||||
provides various lock modes to control concurrent
|
||||
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
|
||||
provided to be used by applications. All lock modes acquired in a
|
||||
transaction are held for the duration
|
||||
@ -559,7 +559,7 @@ ERROR: Can't serialize access due to concurrent update
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<productname>Postgres</productname>
|
||||
<productname>PostgreSQL</productname>
|
||||
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,
|
||||
locking a row may cause a disk write; thus, for example,
|
||||
@ -581,11 +581,11 @@ ERROR: Can't serialize access due to concurrent update
|
||||
<title>Locking and Indexes</title>
|
||||
|
||||
<para>
|
||||
Though <productname>Postgres</productname>
|
||||
Though <productname>PostgreSQL</productname>
|
||||
provides nonblocking read/write access to table
|
||||
data, nonblocking read/write access is not currently offered for every
|
||||
index access method implemented
|
||||
in <productname>Postgres</productname>.
|
||||
in <productname>PostgreSQL</productname>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $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">
|
||||
<docinfo>
|
||||
@ -14,11 +14,13 @@
|
||||
<title>For the Translator</title>
|
||||
|
||||
<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.
|
||||
Creating and maintaining translated message sets needs the help of
|
||||
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.
|
||||
</para>
|
||||
|
||||
@ -300,7 +302,8 @@ msgstr "Die Datei %2$s hat %1$u Zeichen."
|
||||
|
||||
<para>
|
||||
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.
|
||||
</para>
|
||||
|
||||
|
@ -1,12 +1,12 @@
|
||||
<!--
|
||||
$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">
|
||||
<title>Terminology and Notation</title>
|
||||
|
||||
<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
|
||||
documentation.
|
||||
</para>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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">
|
||||
@ -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
|
||||
on the backend to an <acronym>ODBC</acronym>-compatible data source.
|
||||
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>
|
||||
@ -68,7 +68,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/odbc.sgml,v 1.27 2001/11/12 19:19:39
|
||||
|
||||
<para>
|
||||
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>,
|
||||
your Windows application would make exactly the
|
||||
same calls and the back end data source would look the same (to the Windows
|
||||
@ -195,9 +195,9 @@ Port=5432
|
||||
|
||||
<tip>
|
||||
<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.
|
||||
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.
|
||||
</para>
|
||||
</tip>
|
||||
@ -287,9 +287,9 @@ InstallDir = /opt/applix/axdata/axshlib
|
||||
|
||||
<para>
|
||||
<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
|
||||
to the <productname>Postgres</productname> server,
|
||||
to the <productname>PostgreSQL</productname> server,
|
||||
or is that only when another database program
|
||||
like MS SQL Server or Access needs to access the data?
|
||||
</quote>
|
||||
@ -335,9 +335,9 @@ InstallDir = /opt/applix/axdata/axshlib
|
||||
<acronym>ODBC</acronym> database interface
|
||||
supported on at least some platforms.
|
||||
<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>
|
||||
driver contained in the <productname>Postgres</productname> distribution.
|
||||
driver contained in the <productname>PostgreSQL</productname> distribution.
|
||||
</para>
|
||||
|
||||
<sect2>
|
||||
@ -346,7 +346,7 @@ InstallDir = /opt/applix/axdata/axshlib
|
||||
<para>
|
||||
<productname>ApplixWare</productname> must be configured correctly
|
||||
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.
|
||||
</para>
|
||||
|
||||
@ -434,7 +434,7 @@ TextAsLongVarchar=0
|
||||
|
||||
<step performance="required">
|
||||
<para>
|
||||
Select the <productname>Postgres</productname> database of interest.
|
||||
Select the <productname>PostgreSQL</productname> database of interest.
|
||||
</para>
|
||||
|
||||
<substeps>
|
||||
@ -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
|
||||
create the tables tries to use a NULL condition
|
||||
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>
|
||||
To get around this problem, you can do the following:
|
||||
|
@ -9,7 +9,7 @@ A description of the database file default page format.
|
||||
</abstract>
|
||||
|
||||
<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.
|
||||
</para>
|
||||
|
||||
@ -18,12 +18,12 @@ In the following explanation, a
|
||||
<firstterm>byte</firstterm>
|
||||
is assumed to contain 8 bits. In addition, the term
|
||||
<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>
|
||||
<xref linkend="page-table"> shows how pages in both normal <productname>Postgres</productname> tables
|
||||
and <productname>Postgres</productname> indexes
|
||||
<xref linkend="page-table"> shows how pages in both normal <productname>PostgreSQL</productname> tables
|
||||
and <productname>PostgreSQL</productname> indexes
|
||||
(e.g., a B-tree index) are structured.
|
||||
</para>
|
||||
|
||||
@ -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
|
||||
a page. In fact, every pointer to an item
|
||||
(<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
|
||||
an item, its length in bytes, and a set of attribute bits which affect
|
||||
its interpretation.
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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">
|
||||
@ -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
|
||||
be manipulated by the user, while others are fundamental to the underlying
|
||||
design of the system. This chapter provides some hints about understanding
|
||||
and tuning <productname>Postgres</productname> performance.
|
||||
and tuning <productname>PostgreSQL</productname> performance.
|
||||
</para>
|
||||
|
||||
<sect1 id="using-explain">
|
||||
<title>Using <command>EXPLAIN</command></title>
|
||||
|
||||
<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 to match the query structure and the properties of the data
|
||||
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
|
||||
regression=#
|
||||
</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>:
|
||||
</para>
|
||||
|
||||
@ -513,7 +513,7 @@ regression=#
|
||||
<title>Controlling the Planner with Explicit JOINs</title>
|
||||
|
||||
<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
|
||||
syntax. To see why this matters, we first need some background.
|
||||
</para>
|
||||
@ -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
|
||||
to be formed, there being no applicable WHERE clause to allow optimization
|
||||
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
|
||||
or another of these fashions.) The important point is that these different
|
||||
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;
|
||||
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
|
||||
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
|
||||
through a limited number of possibilities. (The switch-over threshold is
|
||||
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);
|
||||
</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
|
||||
it is not logically necessary to make such a constraint for inner
|
||||
joins. Therefore, although all of these queries give the same result:
|
||||
@ -639,7 +639,7 @@ SELECT * FROM d LEFT JOIN
|
||||
libraries may do this behind your back, in which case you need to
|
||||
make sure the library does it when you want it done.)
|
||||
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.
|
||||
</para>
|
||||
</sect2>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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">
|
||||
@ -16,7 +16,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/plperl.sgml,v 2.10 2001/09/10 21:58:47 pete
|
||||
<para>
|
||||
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
|
||||
<productname>Postgres</productname>.
|
||||
<productname>PostgreSQL</productname>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -41,7 +41,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/plperl.sgml,v 2.10 2001/09/10 21:58:47 pete
|
||||
|
||||
<para>
|
||||
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
|
||||
<indexterm><primary><filename>configure</filename></primary></indexterm>
|
||||
<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
|
||||
When you want to retry to build PL/Perl after having reinstalled
|
||||
Perl, then change to the directory
|
||||
<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>
|
||||
gmake clean
|
||||
gmake all
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $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">
|
||||
<title>PL/Python - Python Procedural Language</title>
|
||||
@ -72,7 +72,7 @@ def __plpython_procedure_myfunc_23456():
|
||||
</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>
|
||||
example, <varname>args[0]</> contains whatever was passed in as the text
|
||||
argument. For <literal>myfunc2(text, integer)</literal>, <varname>args[0]</>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/plsql.sgml,v 2.49 2001/11/16 00:40:11 tgl Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/plsql.sgml,v 2.50 2001/11/21 05:53:41 thomas Exp $
|
||||
-->
|
||||
|
||||
<chapter id="plpgsql">
|
||||
@ -11,7 +11,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/plsql.sgml,v 2.49 2001/11/16 00:40:11
|
||||
|
||||
<para>
|
||||
<application>PL/pgSQL</application> is a loadable procedural language for the
|
||||
<productname>Postgres</productname> database system.
|
||||
<productname>PostgreSQL</productname> database system.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -151,7 +151,7 @@ END;
|
||||
<title>Better Performance</title>
|
||||
|
||||
<para>
|
||||
<acronym>SQL</acronym> is the language PostgreSQL (and
|
||||
<acronym>SQL</acronym> is the language <productname>PostgreSQL</> (and
|
||||
most other Relational Databases) use as query
|
||||
language. It's portable and easy to learn. But every
|
||||
<acronym>SQL</acronym> statement must be executed
|
||||
@ -194,8 +194,8 @@ END;
|
||||
<title>Portability</title>
|
||||
|
||||
<para>
|
||||
Because <application>PL/pgSQL</application> functions run inside PostgreSQL, these
|
||||
functions will run on any platform where PostgreSQL
|
||||
Because <application>PL/pgSQL</application> functions run inside <productname>PostgreSQL</>, these
|
||||
functions will run on any platform where <productname>PostgreSQL</>
|
||||
runs. Thus you can reuse code and have less development costs.
|
||||
</para>
|
||||
</sect3>
|
||||
@ -219,7 +219,7 @@ END;
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Using PostgreSQL's GUI Tool: <application>PgAccess</>
|
||||
Using <productname>PostgreSQL</>'s GUI Tool: <application>PgAccess</>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
@ -319,7 +319,7 @@ END;
|
||||
they do not start or end a transaction. Functions and trigger procedures
|
||||
are always executed within a transaction established by an outer query
|
||||
--- they cannot start or commit transactions, since
|
||||
<productname>Postgres</productname> does not have nested transactions.
|
||||
<productname>PostgreSQL</productname> does not have nested transactions.
|
||||
</para>
|
||||
|
||||
<sect2>
|
||||
@ -643,7 +643,7 @@ SELECT <replaceable>expression</replaceable>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The evaluation done by the <productname>Postgres</productname>
|
||||
The evaluation done by the <productname>PostgreSQL</productname>
|
||||
main parser has some side
|
||||
effects on the interpretation of constant values. In detail there
|
||||
is a difference between what these two functions do:
|
||||
@ -675,7 +675,7 @@ CREATE FUNCTION logfunc2 (TEXT) RETURNS TIMESTAMP AS '
|
||||
</programlisting>
|
||||
|
||||
In the case of <function>logfunc1()</function>, the
|
||||
<productname>Postgres</productname> main parser knows when
|
||||
<productname>PostgreSQL</productname> main parser knows when
|
||||
preparing the plan for the INSERT, that the string
|
||||
<literal>'now'</literal> should be interpreted as
|
||||
<type>timestamp</type> because the target field of <classname>logtable</classname>
|
||||
@ -688,7 +688,7 @@ CREATE FUNCTION logfunc2 (TEXT) RETURNS TIMESTAMP AS '
|
||||
|
||||
<para>
|
||||
In the case of <function>logfunc2()</function>, the
|
||||
<productname>Postgres</productname> main parser does not know
|
||||
<productname>PostgreSQL</productname> main parser does not know
|
||||
what type <literal>'now'</literal> should become and therefore
|
||||
it returns a data value of type <type>text</type> containing the string
|
||||
<literal>'now'</literal>. During the ensuing assignment
|
||||
@ -779,7 +779,7 @@ SELECT INTO <replaceable>target</replaceable> <replaceable>expressions</replacea
|
||||
where <replaceable>target</replaceable> can be a record variable, a row
|
||||
variable, or a comma-separated list of simple variables and
|
||||
record/row fields. Note that this is quite different from
|
||||
Postgres' normal interpretation of SELECT INTO, which is that the
|
||||
<productname>PostgreSQL</>'s normal interpretation of SELECT INTO, which is that the
|
||||
INTO target is a newly created table. (If you want to create a
|
||||
table from a SELECT result inside a <application>PL/pgSQL</application> function, use the
|
||||
syntax <command>CREATE TABLE ... AS SELECT</command>.)
|
||||
@ -1675,7 +1675,7 @@ RAISE EXCEPTION ''Inexistent ID --> %'',user_id;
|
||||
<title>Exceptions</title>
|
||||
|
||||
<para>
|
||||
<productname>Postgres</productname> does not have a very smart
|
||||
<productname>PostgreSQL</productname> does not have a very smart
|
||||
exception handling model. Whenever the parser, planner/optimizer
|
||||
or executor decide that a statement cannot be processed any longer,
|
||||
the whole transaction gets aborted and the system jumps back
|
||||
@ -1914,7 +1914,7 @@ CREATE TRIGGER emp_stamp BEFORE INSERT OR UPDATE ON emp
|
||||
either doubled or quoted with a backslash. We are still looking for
|
||||
an elegant alternative. In the meantime, doubling the single quotes
|
||||
as in the examples below should be used. Any solution for this
|
||||
in future versions of <productname>Postgres</productname> will be
|
||||
in future versions of <productname>PostgreSQL</productname> will be
|
||||
forward compatible.
|
||||
</para>
|
||||
|
||||
@ -2036,11 +2036,11 @@ CREATE FUNCTION c_overpaid (EMP, INTEGER) RETURNS BOOLEAN AS '
|
||||
|
||||
<para>
|
||||
This section explains differences between Oracle's PL/SQL and
|
||||
PostgreSQL's <application>PL/pgSQL</application> languages in the hopes of helping developers
|
||||
port applications from Oracle to PostgreSQL. Most of the code here
|
||||
<productname>PostgreSQL</>'s <application>PL/pgSQL</application> languages in the hopes of helping developers
|
||||
port applications from Oracle to <productname>PostgreSQL</>. Most of the code here
|
||||
is from the <ulink url="http://www.arsdigita.com">ArsDigita</ulink>
|
||||
<ulink url="http://www.arsdigita.com/asj/clickstream">Clickstream
|
||||
module</ulink> that I ported to PostgreSQL when I took an
|
||||
module</ulink> that I ported to <productname>PostgreSQL</> when I took an
|
||||
internship with <ulink url="http://www.openforce.net">OpenForce
|
||||
Inc.</ulink> in the Summer of 2000.
|
||||
</para>
|
||||
@ -2048,7 +2048,7 @@ CREATE FUNCTION c_overpaid (EMP, INTEGER) RETURNS BOOLEAN AS '
|
||||
<para>
|
||||
<application>PL/pgSQL</application> is similar to PL/SQL in many aspects. It is a block
|
||||
structured, imperative language (all variables have to be
|
||||
declared). PL/SQL has many more features than its PostgreSQL
|
||||
declared). PL/SQL has many more features than its <productname>PostgreSQL</>
|
||||
counterpart, but <application>PL/pgSQL</application> allows for a great deal of functionality
|
||||
and it is being improved constantly.
|
||||
</para>
|
||||
@ -2057,18 +2057,18 @@ CREATE FUNCTION c_overpaid (EMP, INTEGER) RETURNS BOOLEAN AS '
|
||||
<title>Main Differences</title>
|
||||
|
||||
<para>
|
||||
Some things you should keep in mind when porting from Oracle to PostgreSQL:
|
||||
Some things you should keep in mind when porting from Oracle to <productname>PostgreSQL</>:
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
No default parameters in PostgreSQL.
|
||||
No default parameters in <productname>PostgreSQL</>.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
You can overload functions in PostgreSQL. This is often used to work
|
||||
You can overload functions in <productname>PostgreSQL</>. This is often used to work
|
||||
around the lack of default parameters.
|
||||
</para>
|
||||
</listitem>
|
||||
@ -2081,14 +2081,14 @@ CREATE FUNCTION c_overpaid (EMP, INTEGER) RETURNS BOOLEAN AS '
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
No need for cursors in PostgreSQL, just put the query in the FOR
|
||||
No need for cursors in <productname>PostgreSQL</>, just put the query in the FOR
|
||||
statement (see example below)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
In PostgreSQL you <emphasis>need</emphasis> to escape single
|
||||
In <productname>PostgreSQL</> you <emphasis>need</emphasis> to escape single
|
||||
quotes. See <xref linkend="plpgsql-quote">.
|
||||
</para>
|
||||
</listitem>
|
||||
@ -2099,7 +2099,7 @@ CREATE FUNCTION c_overpaid (EMP, INTEGER) RETURNS BOOLEAN AS '
|
||||
<title>Quote Me on That: Escaping Single Quotes</title>
|
||||
|
||||
<para>
|
||||
In PostgreSQL you need to escape single quotes inside your
|
||||
In <productname>PostgreSQL</> you need to escape single quotes inside your
|
||||
function definition. This can lead to quite amusing code at
|
||||
times, especially if you are creating a function that generates
|
||||
other function(s), as in
|
||||
@ -2246,7 +2246,7 @@ SHOW ERRORS;
|
||||
Oracle can have <literal>IN</literal>, <literal>OUT</literal>,
|
||||
and <literal>INOUT</literal> parameters passed to functions.
|
||||
The <literal>INOUT</literal>, for example, means that the
|
||||
parameter will receive a value and return another. PostgreSQL
|
||||
parameter will receive a value and return another. <productname>PostgreSQL</>
|
||||
only has <quote>IN</quote> parameters and functions can return
|
||||
only a single value.
|
||||
</para>
|
||||
@ -2256,13 +2256,13 @@ SHOW ERRORS;
|
||||
<para>
|
||||
The <literal>RETURN</literal> key word in the function
|
||||
prototype (not the function body) becomes
|
||||
<literal>RETURNS</literal> in PostgreSQL.
|
||||
<literal>RETURNS</literal> in <productname>PostgreSQL</>.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
On PostgreSQL functions are created using single quotes as
|
||||
On <productname>PostgreSQL</> functions are created using single quotes as
|
||||
delimiters, so you have to escape single quotes inside your
|
||||
functions (which can be quite annoying at times; see <xref
|
||||
linkend="plpgsql-quote">).
|
||||
@ -2272,7 +2272,7 @@ SHOW ERRORS;
|
||||
<listitem>
|
||||
<para>
|
||||
The <literal>/show errors</literal> command does not exist in
|
||||
PostgreSQL.
|
||||
<productname>PostgreSQL</>.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
@ -2280,7 +2280,7 @@ SHOW ERRORS;
|
||||
|
||||
<para>
|
||||
So let's see how this function would look when ported to
|
||||
PostgreSQL:
|
||||
<productname>PostgreSQL</>:
|
||||
|
||||
<programlisting>
|
||||
CREATE OR REPLACE FUNCTION cs_fmt_browser_version(VARCHAR, VARCHAR)
|
||||
@ -2310,7 +2310,7 @@ END;
|
||||
with the results in <literal>IF</literal> statements, for the
|
||||
sake of efficiency. Notice particularly the differences in
|
||||
cursors, <literal>FOR</literal> loops, and the need to escape
|
||||
single quotes in PostgreSQL.
|
||||
single quotes in <productname>PostgreSQL</>.
|
||||
|
||||
<programlisting>
|
||||
CREATE OR REPLACE PROCEDURE cs_update_referrer_type_proc IS
|
||||
@ -2338,7 +2338,7 @@ show errors
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Here is how this function would end up in PostgreSQL:
|
||||
Here is how this function would end up in <productname>PostgreSQL</>:
|
||||
|
||||
<programlisting>
|
||||
CREATE FUNCTION cs_update_referrer_type_proc() RETURNS INTEGER AS '
|
||||
@ -2387,7 +2387,7 @@ END;
|
||||
return several elements (host, path and query). It is an
|
||||
procedure because in <application>PL/pgSQL</application> functions only one value can be returned
|
||||
(see <xref linkend="plpgsql-porting-procedures">). In
|
||||
PostgreSQL, one way to work around this is to split the procedure
|
||||
<productname>PostgreSQL</>, one way to work around this is to split the procedure
|
||||
in three different functions: one to return the host, another for
|
||||
the path and another for the query.
|
||||
</para>
|
||||
@ -2405,7 +2405,7 @@ begin
|
||||
v_host := NULL;
|
||||
v_path := NULL;
|
||||
v_query := NULL;
|
||||
a_pos1 := instr(v_url, '//'); -- PostgreSQL doesn't have an instr function
|
||||
a_pos1 := instr(v_url, '//'); -- <productname>PostgreSQL</> doesn't have an instr function
|
||||
|
||||
IF a_pos1 = 0 THEN
|
||||
RETURN;
|
||||
@ -2433,7 +2433,7 @@ show errors;
|
||||
</programlisting>
|
||||
|
||||
<para>
|
||||
Here is how this procedure could be translated for PostgreSQL:
|
||||
Here is how this procedure could be translated for <productname>PostgreSQL</>:
|
||||
|
||||
<programlisting>
|
||||
CREATE OR REPLACE FUNCTION cs_parse_url_host(VARCHAR) RETURNS VARCHAR AS '
|
||||
@ -2469,7 +2469,7 @@ END;
|
||||
|
||||
<note>
|
||||
<para>
|
||||
PostgreSQL does not have an <function>instr</function> function,
|
||||
<productname>PostgreSQL</> does not have an <function>instr</function> function,
|
||||
so you can work around it using a combination of other functions.
|
||||
I got tired of doing this and created my own
|
||||
<function>instr</function> functions that behave exactly like
|
||||
@ -2524,14 +2524,14 @@ show errors
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Procedures like this can be easily converted into PostgreSQL
|
||||
Procedures like this can be easily converted into <productname>PostgreSQL</>
|
||||
functions returning an <type>INTEGER</type>. This procedure in
|
||||
particular is interesting because it can teach us some things:
|
||||
|
||||
<calloutlist>
|
||||
<callout arearefs="co.plpgsql-porting-pragma">
|
||||
<para>
|
||||
There is no <literal>pragma</literal> statement in PostgreSQL.
|
||||
There is no <literal>pragma</literal> statement in <productname>PostgreSQL</>.
|
||||
</para>
|
||||
</callout>
|
||||
|
||||
@ -2546,7 +2546,7 @@ show errors
|
||||
<para>
|
||||
You also cannot have transactions in <application>PL/pgSQL</application> procedures. The
|
||||
entire function (and other functions called from therein) is
|
||||
executed in a transaction and PostgreSQL rolls back the results if
|
||||
executed in a transaction and <productname>PostgreSQL</> rolls back the results if
|
||||
something goes wrong. Therefore only one
|
||||
<literal>BEGIN</literal> statement is allowed.
|
||||
</para>
|
||||
@ -2659,10 +2659,10 @@ show errors
|
||||
</para>
|
||||
|
||||
<para>
|
||||
We port this to PostgreSQL by creating the different objects of
|
||||
We port this to <productname>PostgreSQL</> by creating the different objects of
|
||||
the Oracle package as functions with a standard naming
|
||||
convention. We have to pay attention to some other details, like
|
||||
the lack of default parameters in PostgreSQL functions. The above
|
||||
the lack of default parameters in <productname>PostgreSQL</> functions. The above
|
||||
package would become something like this:
|
||||
|
||||
<programlisting>
|
||||
@ -2697,7 +2697,7 @@ END;
|
||||
<title>EXECUTE</title>
|
||||
|
||||
<para>
|
||||
The PostgreSQL version of <literal>EXECUTE</literal> works
|
||||
The <productname>PostgreSQL</> version of <literal>EXECUTE</literal> works
|
||||
nicely, but you have to remember to use
|
||||
<function>quote_literal(TEXT)</function> and
|
||||
<function>quote_string(TEXT)</function> as described in <xref
|
||||
@ -2711,7 +2711,7 @@ END;
|
||||
<title>Optimizing <application>PL/pgSQL</application> Functions</title>
|
||||
|
||||
<para>
|
||||
PostgreSQL gives you two function creation modifiers to optimize
|
||||
<productname>PostgreSQL</> gives you two function creation modifiers to optimize
|
||||
execution: <literal>iscachable</literal> (function always returns
|
||||
the same result when given the same arguments) and
|
||||
<literal>isstrict</literal> (function returns NULL if any
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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">
|
||||
@ -15,7 +15,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/pltcl.sgml,v 2.16 2001/11/19 03:58:24 tgl E
|
||||
|
||||
<para>
|
||||
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
|
||||
trigger procedures.
|
||||
</para>
|
||||
@ -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
|
||||
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
|
||||
<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
|
||||
permitted to use this language.
|
||||
</para>
|
||||
@ -62,7 +62,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/pltcl.sgml,v 2.16 2001/11/19 03:58:24 tgl E
|
||||
<para>
|
||||
The shared object for the PL/Tcl and PL/TclU call handlers is
|
||||
automatically built and installed in the
|
||||
<productname>Postgres</productname>
|
||||
<productname>PostgreSQL</productname>
|
||||
library directory if Tcl/Tk support is specified
|
||||
in the configuration step of the installation procedure. To install
|
||||
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
|
||||
<title>Description</title>
|
||||
|
||||
<sect2>
|
||||
<title><productname>Postgres</productname> Functions and Tcl Procedure Names</title>
|
||||
<title><productname>PostgreSQL</productname> Functions and Tcl Procedure Names</title>
|
||||
|
||||
<para>
|
||||
In <productname>Postgres</productname>, one and the
|
||||
In <productname>PostgreSQL</productname>, one and the
|
||||
same function name can be used for
|
||||
different functions as long as the number of arguments or their types
|
||||
differ. This would collide with Tcl procedure names. To offer the same
|
||||
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
|
||||
argtype versions of the same <productname>Postgres</productname>
|
||||
argtype versions of the same <productname>PostgreSQL</productname>
|
||||
function are different for Tcl too.
|
||||
</para>
|
||||
|
||||
@ -128,7 +128,7 @@ CREATE FUNCTION tcl_max (int4, int4) RETURNS int4 AS '
|
||||
type. If an attribute in the actual row
|
||||
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
|
||||
older <productname>Postgres</productname> documentation) in PL/Tcl
|
||||
older <productname>PostgreSQL</productname> documentation) in PL/Tcl
|
||||
|
||||
<programlisting>
|
||||
CREATE FUNCTION overpaid_2 (EMP) RETURNS bool AS '
|
||||
@ -175,7 +175,7 @@ CREATE FUNCTION overpaid_2 (EMP) RETURNS bool AS '
|
||||
</indexterm>
|
||||
|
||||
<para>
|
||||
Trigger procedures are defined in <productname>Postgres</productname>
|
||||
Trigger procedures are defined in <productname>PostgreSQL</productname>
|
||||
as functions without
|
||||
arguments and a return type of opaque. And so are they in the PL/Tcl
|
||||
language.
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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" [
|
||||
@ -47,11 +47,12 @@ 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/lib/sgml/catalog")
|
||||
sgml-local-catalogs:("/usr/share/sgml/catalog")
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
-->
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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">
|
||||
@ -8,8 +8,10 @@ $Header: /cvsroot/pgsql/doc/src/sgml/problems.sgml,v 2.10 2001/11/18 07:14:49 tg
|
||||
<para>
|
||||
When you find a bug in <productname>PostgreSQL</productname> we want to
|
||||
hear about it. Your bug reports play an important part in making
|
||||
<productname>PostgreSQL</productname> more reliable, because even the utmost
|
||||
care cannot guarantee that every part of PostgreSQL will work on every
|
||||
<productname>PostgreSQL</productname> more reliable because even the utmost
|
||||
care cannot guarantee that every part of
|
||||
<productname>PostgreSQL</productname>
|
||||
will work on every
|
||||
platform under every circumstance.
|
||||
</para>
|
||||
|
||||
@ -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>,
|
||||
sometimes <quote>Postgres</quote> for short. If you
|
||||
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
|
||||
<quote>postmaster</> process; please don't say <quote>the postmaster
|
||||
crashed</> when you mean a single backend went down, nor vice versa.
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $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">
|
||||
<title>Frontend/Backend Protocol</title>
|
||||
@ -57,7 +57,8 @@
|
||||
normally create a new child process to handle each incoming
|
||||
connection. However, this is not required. In the current
|
||||
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
|
||||
authentication confirmation message.
|
||||
</para>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $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">
|
||||
<title><application>PyGreSQL</application> - <application>Python</application> Interface</title>
|
||||
@ -384,7 +384,7 @@ make && make install
|
||||
<listitem>
|
||||
<para>
|
||||
<classname>pglargeobject</classname>, which handles all the accesses
|
||||
to <productname>Postgres</productname> large objects, and
|
||||
to <productname>PostgreSQL</productname> large objects, and
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $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">
|
||||
<title>Queries</title>
|
||||
@ -342,7 +342,7 @@ FROM <replaceable>table_reference</replaceable> AS <replaceable>alias</replaceab
|
||||
SELECT * FROM my_table AS m WHERE my_table.a > 5;
|
||||
</programlisting>
|
||||
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
|
||||
table reference is added to the FROM clause, so the query is
|
||||
processed as if it were written as
|
||||
@ -586,7 +586,7 @@ SELECT pid, p.name, (sum(s.units) * p.price) AS sales
|
||||
|
||||
<para>
|
||||
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
|
||||
expressions instead of simple column names is also allowed.
|
||||
</para>
|
||||
@ -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
|
||||
certain groups are of interest, the HAVING clause can be used,
|
||||
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
|
||||
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
|
||||
@ -865,7 +865,7 @@ SELECT a, sum(b) FROM table1 GROUP BY a ORDER BY 1;
|
||||
</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:
|
||||
<programlisting>
|
||||
SELECT a, b FROM table1 ORDER BY a + b;
|
||||
|
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user