SGML improvements.
Neil Conway
This commit is contained in:
parent
8bc717cb88
commit
da8149032a
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/admin.sgml,v 1.40 2002/10/24 17:48:54 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/admin.sgml,v 1.41 2002/11/15 03:11:15 momjian Exp $
|
||||
-->
|
||||
|
||||
<book id="admin">
|
||||
@ -25,13 +25,13 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/admin.sgml,v 1.40 2002/10/24 17:48:54
|
||||
<title>What's In This Book</title>
|
||||
|
||||
<para>
|
||||
This book covers topics that are of interest to a PostgreSQL
|
||||
database administrator. This includes installation of the
|
||||
software, set up and configuration of the server, management of
|
||||
users and databases, and maintenance tasks. Anyone who runs a
|
||||
PostgreSQL server, either for personal use, but especially in
|
||||
production, should be familiar with the topics covered in this
|
||||
book.
|
||||
This book covers topics that are of interest to a
|
||||
<productname>PostgreSQL</> database administrator. This includes
|
||||
installation of the software, set up and configuration of the
|
||||
server, management of users and databases, and maintenance tasks.
|
||||
Anyone who runs a <productname>PostgreSQL</> server, either for
|
||||
personal use, but especially in production, should be familiar
|
||||
with the topics covered in this book.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -49,9 +49,9 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/admin.sgml,v 1.40 2002/10/24 17:48:54
|
||||
up their own server can begin their exploration with this book.
|
||||
The rest of this book which is about tuning and management
|
||||
presupposes that the reader is familiar with the general use of
|
||||
the PostgreSQL database system. Readers are encouraged to look at
|
||||
the &cite-tutorial; and the &cite-user; for additional
|
||||
information.
|
||||
the <productname>PostgreSQL</> database system. Readers are
|
||||
encouraged to look at the &cite-tutorial; and the &cite-user; for
|
||||
additional information.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/charset.sgml,v 2.29 2002/09/21 18:32:52 petere Exp $ -->
|
||||
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/charset.sgml,v 2.30 2002/11/15 03:11:15 momjian Exp $ -->
|
||||
|
||||
<chapter id="charset">
|
||||
<title>Localization</>
|
||||
@ -351,7 +351,8 @@ perl: warning: Falling back to the standard locale ("C").
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Multibyte support is enabled by default since PostgreSQL version 7.3.
|
||||
Multibyte support is enabled by default since
|
||||
<productname>PostgreSQL</> version 7.3.
|
||||
</para>
|
||||
|
||||
<sect2>
|
||||
@ -574,7 +575,7 @@ $ <userinput>psql -l</userinput>
|
||||
encoding conversion between server and client for some
|
||||
encodings. The conversion info is stored in <literal>pg_conversion</> system
|
||||
catalog. You can create a new conversion by using <command>CREATE
|
||||
CONVERSION</command>. PostgreSQL comes with some predefined
|
||||
CONVERSION</command>. <productname>PostgreSQL</> comes with some predefined
|
||||
conversions. They are listed in <xref
|
||||
linkend="multibyte-translation-table">.
|
||||
</para>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/client-auth.sgml,v 1.40 2002/11/11 20:14:02 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/client-auth.sgml,v 1.41 2002/11/15 03:11:15 momjian Exp $
|
||||
-->
|
||||
|
||||
<chapter id="client-authentication">
|
||||
@ -160,9 +160,9 @@ hostssl <replaceable>database</replaceable> <replaceable>user</replaceable> <
|
||||
<term><replaceable>user</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Specifies which PostgreSQL users this record matches. The value
|
||||
<literal>all</literal> specifies that it matches all users.
|
||||
Otherwise, this is the name of a specific
|
||||
Specifies which <productname>PostgreSQL</> users this record
|
||||
matches. The value <literal>all</literal> specifies that it
|
||||
matches all users. Otherwise, this is the name of a specific
|
||||
<productname>PostgreSQL</productname> user. Multiple user names
|
||||
can be supplied by separating them with commas. Group names can
|
||||
be specified by preceding the group name with <literal>+</>. A
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/datatype.sgml,v 1.107 2002/11/11 20:14:02 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/datatype.sgml,v 1.108 2002/11/15 03:11:15 momjian Exp $
|
||||
-->
|
||||
|
||||
<chapter id="datatype">
|
||||
@ -245,14 +245,15 @@ $Header: /cvsroot/pgsql/doc/src/sgml/datatype.sgml,v 1.107 2002/11/11 20:14:02 p
|
||||
<note>
|
||||
<title>Compatibility</title>
|
||||
<para>
|
||||
The following types (or spellings thereof) are specified by SQL:
|
||||
<type>bit</type>, <type>bit varying</type>, <type>boolean</type>,
|
||||
<type>char</type>, <type>character</type>, <type>character
|
||||
varying</type>, <type>varchar</type>, <type>date</type>,
|
||||
<type>double precision</type>, <type>integer</type>,
|
||||
<type>interval</type>, <type>numeric</type>, <type>decimal</type>,
|
||||
<type>real</type>, <type>smallint</type>, <type>time</type>,
|
||||
<type>timestamp</type> (both with or without time zone).
|
||||
The following types (or spellings thereof) are specified by
|
||||
<acronym>SQL</acronym>: <type>bit</type>, <type>bit
|
||||
varying</type>, <type>boolean</type>, <type>char</type>,
|
||||
<type>character</type>, <type>character varying</type>,
|
||||
<type>varchar</type>, <type>date</type>, <type>double
|
||||
precision</type>, <type>integer</type>, <type>interval</type>,
|
||||
<type>numeric</type>, <type>decimal</type>, <type>real</type>,
|
||||
<type>smallint</type>, <type>time</type>, <type>timestamp</type>
|
||||
(both with or without time zone).
|
||||
</para>
|
||||
</note>
|
||||
|
||||
@ -464,11 +465,12 @@ $Header: /cvsroot/pgsql/doc/src/sgml/datatype.sgml,v 1.107 2002/11/11 20:14:02 p
|
||||
</para>
|
||||
|
||||
<para>
|
||||
SQL only specifies the integer types <type>integer</type> (or
|
||||
<type>int</type>) and <type>smallint</type>. The type
|
||||
<type>bigint</type>, and the type names <type>int2</type>,
|
||||
<type>int4</type>, and <type>int8</type> are extensions, which
|
||||
are shared with various other SQL database systems.
|
||||
<acronym>SQL</acronym> only specifies the integer types
|
||||
<type>integer</type> (or <type>int</type>) and
|
||||
<type>smallint</type>. The type <type>bigint</type>, and the
|
||||
type names <type>int2</type>, <type>int4</type>, and
|
||||
<type>int8</type> are extensions, which are shared with various
|
||||
other <acronym>SQL</acronym> database systems.
|
||||
</para>
|
||||
|
||||
<note>
|
||||
@ -536,13 +538,15 @@ NUMERIC(<replaceable>precision</replaceable>)
|
||||
NUMERIC
|
||||
</programlisting>
|
||||
without any precision or scale creates a column in which numeric
|
||||
values of any precision and scale can be stored, up to the implementation
|
||||
limit on precision. A column of this kind will not coerce input
|
||||
values to any particular scale, whereas <type>numeric</type> columns
|
||||
with a declared scale will coerce input values to that scale.
|
||||
(The SQL standard requires a default scale of 0, i.e., coercion to
|
||||
integer precision. We find this a bit useless. If you're concerned about
|
||||
portability, always specify the precision and scale explicitly.)
|
||||
values of any precision and scale can be stored, up to the
|
||||
implementation limit on precision. A column of this kind will
|
||||
not coerce input values to any particular scale, whereas
|
||||
<type>numeric</type> columns with a declared scale will coerce
|
||||
input values to that scale. (The <acronym>SQL</acronym> standard
|
||||
requires a default scale of 0, i.e., coercion to integer
|
||||
precision. We find this a bit useless. If you're concerned
|
||||
about portability, always specify the precision and scale
|
||||
explicitly.)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -554,7 +558,8 @@ NUMERIC
|
||||
|
||||
<para>
|
||||
The types <type>decimal</type> and <type>numeric</type> are
|
||||
equivalent. Both types are part of the SQL standard.
|
||||
equivalent. Both types are part of the <acronym>SQL</acronym>
|
||||
standard.
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
@ -806,7 +811,8 @@ CREATE TABLE <replaceable class="parameter">tablename</replaceable> (
|
||||
|
||||
<para>
|
||||
<xref linkend="datatype-character-table"> shows the
|
||||
general-purpose character types available in PostgreSQL.
|
||||
general-purpose character types available in
|
||||
<productname>PostgreSQL</productname>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -818,11 +824,12 @@ CREATE TABLE <replaceable class="parameter">tablename</replaceable> (
|
||||
longer string into a column of these types will result in an
|
||||
error, unless the excess characters are all spaces, in which case
|
||||
the string will be truncated to the maximum length. (This
|
||||
somewhat bizarre exception is required by the SQL standard.) If
|
||||
the string to be stored is shorter than the declared length,
|
||||
values of type <type>character</type> will be space-padded; values
|
||||
of type <type>character varying</type> will simply store the
|
||||
shorter string.
|
||||
somewhat bizarre exception is required by the
|
||||
<acronym>SQL</acronym> standard.) If the string to be stored is
|
||||
shorter than the declared length, values of type
|
||||
<type>character</type> will be space-padded; values of type
|
||||
<type>character varying</type> will simply store the shorter
|
||||
string.
|
||||
</para>
|
||||
|
||||
<note>
|
||||
@ -831,7 +838,8 @@ CREATE TABLE <replaceable class="parameter">tablename</replaceable> (
|
||||
<type>character(<replaceable>n</>)</type> or <type>character
|
||||
varying(<replaceable>n</>)</type>, then an overlength value will
|
||||
be truncated to <replaceable>n</> characters without raising an
|
||||
error. (This too is required by the SQL standard.)
|
||||
error. (This too is required by the <acronym>SQL</acronym>
|
||||
standard.)
|
||||
</para>
|
||||
</note>
|
||||
|
||||
@ -859,8 +867,9 @@ CREATE TABLE <replaceable class="parameter">tablename</replaceable> (
|
||||
more general <type>text</type> type, which stores strings of any
|
||||
length. Unlike <type>character varying</type>, <type>text</type>
|
||||
does not require an explicit declared upper limit on the size of
|
||||
the string. Although the type <type>text</type> is not in the SQL
|
||||
standard, many other RDBMS packages have it as well.
|
||||
the string. Although the type <type>text</type> is not in the
|
||||
<acronym>SQL</acronym> standard, many other RDBMS packages have it
|
||||
as well.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -1125,12 +1134,12 @@ SELECT b, char_length(b) FROM test2;
|
||||
|
||||
<para>
|
||||
To use the <type>bytea</type> escaped octet notation, string
|
||||
literals (input strings) must contain two backslashes due because
|
||||
they must pass through two parsers in the PostgreSQL server. The
|
||||
first backslash is interpreted as an escape character by the
|
||||
string-literal parser, and therefore is consumed, leaving the
|
||||
characters that follow. The remaining backslash is recognized by
|
||||
the <type>bytea</type> input function as the prefix of a three
|
||||
literals (input strings) must contain two backslashes because they
|
||||
must pass through two parsers in the <productname>PostgreSQL</>
|
||||
server. The first backslash is interpreted as an escape character
|
||||
by the string-literal parser, and therefore is consumed, leaving
|
||||
the characters that follow. The remaining backslash is recognized
|
||||
by the <type>bytea</type> input function as the prefix of a three
|
||||
digit octal value. For example, a string literal passed to the
|
||||
backend as <literal>'\\001'</literal> becomes
|
||||
<literal>'\001'</literal> after passing through the string-literal
|
||||
@ -1170,21 +1179,22 @@ SELECT b, char_length(b) FROM test2;
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Depending on the front end to PostgreSQL you use, you may have
|
||||
additional work to do in terms of escaping and unescaping
|
||||
<type>bytea</type> strings. For example, you may also have to escape
|
||||
line feeds and carriage returns if your interface automatically
|
||||
translates these. Or you may have to double up on backslashes if
|
||||
the parser for your language or choice also treats them as an
|
||||
escape character.
|
||||
Depending on the front end to <productname>PostgreSQL</> you use,
|
||||
you may have additional work to do in terms of escaping and
|
||||
unescaping <type>bytea</type> strings. For example, you may also
|
||||
have to escape line feeds and carriage returns if your interface
|
||||
automatically translates these. Or you may have to double up on
|
||||
backslashes if the parser for your language or choice also treats
|
||||
them as an escape character.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The SQL standard defines a different binary string type, called
|
||||
<type>BLOB</type> or <type>BINARY LARGE OBJECT</type>. The input
|
||||
format is different compared to <type>bytea</type>, but the
|
||||
provided functions and operators are mostly the same.
|
||||
</para>
|
||||
<para>
|
||||
The <acronym>SQL</acronym> standard defines a different binary
|
||||
string type, called <type>BLOB</type> or <type>BINARY LARGE
|
||||
OBJECT</type>. The input format is different compared to
|
||||
<type>bytea</type>, but the provided functions and operators are
|
||||
mostly the same.
|
||||
</para>
|
||||
</sect1>
|
||||
|
||||
|
||||
@ -1781,11 +1791,12 @@ January 8 04:05:06 1999 PST
|
||||
Output formats can be set to one of the four styles ISO 8601,
|
||||
<acronym>SQL</acronym> (Ingres), traditional PostgreSQL, and
|
||||
German, using the <command>SET DateStyle</command>. The default
|
||||
is the <acronym>ISO</acronym> format. (The SQL standard requires
|
||||
the use of the ISO 8601 format. The name of the
|
||||
<quote>SQL</quote> output format is a historical accident.)
|
||||
<xref linkend="datatype-datetime-output-table"> shows examples of
|
||||
each output style. The output of the <type>date</type> and
|
||||
is the <acronym>ISO</acronym> format. (The
|
||||
<acronym>SQL</acronym> standard requires the use of the ISO 8601
|
||||
format. The name of the <quote>SQL</quote> output format is a
|
||||
historical accident.) <xref
|
||||
linkend="datatype-datetime-output-table"> shows examples of each
|
||||
output style. The output of the <type>date</type> and
|
||||
<type>time</type> types is of course only the date or time part
|
||||
in accordance with the given examples.
|
||||
</para>
|
||||
@ -1920,34 +1931,34 @@ January 8 04:05:06 1999 PST
|
||||
</para>
|
||||
|
||||
<para>
|
||||
To address these difficulties, we recommend using date/time
|
||||
types that contain both date and time when using time zones. We
|
||||
recommend <emphasis>not</emphasis> using the type <type>time
|
||||
with time zone</type> (though it is supported by
|
||||
To address these difficulties, we recommend using date/time types
|
||||
that contain both date and time when using time zones. We
|
||||
recommend <emphasis>not</emphasis> using the type <type>time with
|
||||
time zone</type> (though it is supported by
|
||||
<productname>PostgreSQL</productname> for legacy applications and
|
||||
for compatibility with other SQL implementations).
|
||||
<productname>PostgreSQL</productname>
|
||||
assumes your local time zone for any type containing only
|
||||
date or time. Further, time zone support is derived from
|
||||
the underlying operating system
|
||||
time-zone capabilities, and hence can handle daylight-saving time
|
||||
and other expected behavior.
|
||||
for compatibility with other <acronym>SQL</acronym>
|
||||
implementations). <productname>PostgreSQL</productname> assumes
|
||||
your local time zone for any type containing only date or
|
||||
time. Further, time zone support is derived from the underlying
|
||||
operating system time-zone capabilities, and hence can handle
|
||||
daylight-saving time and other expected behavior.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<productname>PostgreSQL</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
|
||||
specified and used in Universal Coordinated Time (UTC).
|
||||
specified and used in Universal Coordinated Time
|
||||
(<acronym>UTC</acronym>).
|
||||
</para>
|
||||
|
||||
<para>
|
||||
All dates and times are stored internally in UTC,
|
||||
traditionally known as Greenwich Mean Time (GMT).
|
||||
Times are converted to local time on the database server before being
|
||||
sent to the client frontend, hence by default are in the server
|
||||
time zone.
|
||||
All dates and times are stored internally in
|
||||
<acronym>UTC</acronym>, traditionally known as Greenwich Mean
|
||||
Time (<acronym>GMT</acronym>). Times are converted to local time
|
||||
on the database server before being sent to the client frontend,
|
||||
hence by default are in the server time zone.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -1993,8 +2004,8 @@ January 8 04:05:06 1999 PST
|
||||
|
||||
<note>
|
||||
<para>
|
||||
If an invalid time zone is specified,
|
||||
the time zone becomes GMT (on most systems anyway).
|
||||
If an invalid time zone is specified, the time zone becomes
|
||||
<acronym>UTC</acronym> (on most systems anyway).
|
||||
</para>
|
||||
</note>
|
||||
|
||||
@ -2124,8 +2135,9 @@ SELECT * FROM test1 WHERE a;
|
||||
<para>
|
||||
Geometric data types represent two-dimensional spatial
|
||||
objects. <xref linkend="datatype-geo-table"> shows the geometric
|
||||
types available in PostgreSQL. The most fundamental type, the
|
||||
point, forms the basis for all of the other types.
|
||||
types available in <productname>PostgreSQL</productname>. The
|
||||
most fundamental type, the point, forms the basis for all of the
|
||||
other types.
|
||||
</para>
|
||||
|
||||
<table id="datatype-geo-table">
|
||||
@ -2746,9 +2758,10 @@ SELECT * FROM test1 WHERE a;
|
||||
|
||||
<note>
|
||||
<para>
|
||||
Prior to <productname>PostgreSQL</> 7.2, <type>BIT</type> data was
|
||||
always silently truncated or zero-padded on the right, with or without an
|
||||
explicit cast. This was changed to comply with the SQL standard.
|
||||
Prior to <productname>PostgreSQL</> 7.2, <type>BIT</type> data
|
||||
was always silently truncated or zero-padded on the right, with
|
||||
or without an explicit cast. This was changed to comply with the
|
||||
<acronym>SQL</acronym> standard.
|
||||
</para>
|
||||
</note>
|
||||
|
||||
@ -2978,14 +2991,14 @@ SELECT * FROM test;
|
||||
</para>
|
||||
|
||||
<para>
|
||||
A third identifier type used by the system is <type>cid</>, or command
|
||||
identifier. This is the data type of the system columns
|
||||
<structfield>cmin</> and <structfield>cmax</>.
|
||||
Command identifiers are also 32-bit quantities. This creates a hard
|
||||
limit of 2<superscript>32</> (4 billion) SQL commands within a single
|
||||
transaction.
|
||||
In practice this limit is not a problem --- note that the limit is on
|
||||
number of SQL commands, not number of tuples processed.
|
||||
A third identifier type used by the system is <type>cid</>, or
|
||||
command identifier. This is the data type of the system columns
|
||||
<structfield>cmin</> and <structfield>cmax</>. Command
|
||||
identifiers are also 32-bit quantities. This creates a hard limit
|
||||
of 2<superscript>32</> (4 billion) <acronym>SQL</acronym> commands
|
||||
within a single transaction. In practice this limit is not a
|
||||
problem --- note that the limit is on number of
|
||||
<acronym>SQL</acronym> commands, not number of tuples processed.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -3044,9 +3057,10 @@ SELECT * FROM test;
|
||||
column data type, but it can be used to declare a function's
|
||||
argument or result type. Each of the available pseudo-types is
|
||||
useful in situations where a function's behavior does not
|
||||
correspond to simply taking or returning a value of a specific SQL
|
||||
data type. <xref linkend="datatype-pseudotypes-table"> lists the
|
||||
existing pseudo-types.
|
||||
correspond to simply taking or returning a value of a specific
|
||||
<acronym>SQL</acronym> data type. <xref
|
||||
linkend="datatype-pseudotypes-table"> lists the existing
|
||||
pseudo-types.
|
||||
</para>
|
||||
|
||||
<table id="datatype-pseudotypes-table">
|
||||
@ -3126,14 +3140,15 @@ SELECT * FROM test;
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The <type>internal</> pseudo-type is used to declare functions that are
|
||||
meant only to be called internally by the database system, and not by
|
||||
direct invocation in a SQL query. If a function has at least one
|
||||
<type>internal</>-type argument then it cannot be called from SQL.
|
||||
To preserve the type safety of this restriction it is important to
|
||||
follow this coding rule: do not create any function that is declared
|
||||
to return <type>internal</> unless it has at least one <type>internal</>
|
||||
argument.
|
||||
The <type>internal</> pseudo-type is used to declare functions
|
||||
that are meant only to be called internally by the database
|
||||
system, and not by direct invocation in a <acronym>SQL</acronym>
|
||||
query. If a function has at least one <type>internal</>-type
|
||||
argument then it cannot be called from <acronym>SQL</acronym>. To
|
||||
preserve the type safety of this restriction it is important to
|
||||
follow this coding rule: do not create any function that is
|
||||
declared to return <type>internal</> unless it has at least one
|
||||
<type>internal</> argument.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ddl.sgml,v 1.9 2002/11/11 20:14:02 petere Exp $ -->
|
||||
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ddl.sgml,v 1.10 2002/11/15 03:11:15 momjian Exp $ -->
|
||||
|
||||
<chapter id="ddl">
|
||||
<title>Data Definition</title>
|
||||
@ -1103,9 +1103,9 @@ ALTER TABLE products ALTER COLUMN price SET DEFAULT 7.77;
|
||||
ALTER TABLE products ALTER COLUMN price DROP DEFAULT;
|
||||
</programlisting>
|
||||
This is equivalent to setting the default to null, at least in
|
||||
PostgreSQL. As a consequence, it is not an error to drop a
|
||||
default where one hadn't been defined, because the default is
|
||||
implicitly the null value.
|
||||
<productname>PostgreSQL</>. As a consequence, it is not an error
|
||||
to drop a default where one hadn't been defined, because the
|
||||
default is implicitly the null value.
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
@ -1609,8 +1609,8 @@ REVOKE CREATE ON public FROM PUBLIC;
|
||||
standard. Therefore, many users consider qualified names to
|
||||
really consist of
|
||||
<literal><replaceable>username</>.<replaceable>tablename</></literal>.
|
||||
This is how PostgreSQL will effectively behave if you create a per-user
|
||||
schema for every user.
|
||||
This is how <productname>PostgreSQL</productname> will effectively
|
||||
behave if you create a per-user schema for every user.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
@ -1,16 +1,17 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/diskusage.sgml,v 1.7 2002/11/11 20:14:02 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/diskusage.sgml,v 1.8 2002/11/15 03:11:16 momjian Exp $
|
||||
-->
|
||||
|
||||
<chapter id="diskusage">
|
||||
<title>Monitoring Disk Usage</title>
|
||||
|
||||
<para>
|
||||
This chapter discusses how to monitor the disk usage of a PostgreSQL
|
||||
database system. In the current release, the database administrator
|
||||
does not have much control over the on-disk storage layout, so this
|
||||
chapter is mostly informative and can give you some ideas how to
|
||||
manage the disk usage with operating system tools.
|
||||
This chapter discusses how to monitor the disk usage of a
|
||||
<productname>PostgreSQL</> database system. In the current
|
||||
release, the database administrator does not have much control over
|
||||
the on-disk storage layout, so this chapter is mostly informative
|
||||
and can give you some ideas how to manage the disk usage with
|
||||
operating system tools.
|
||||
</para>
|
||||
|
||||
<sect1 id="disk-usage">
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ecpg.sgml,v 1.39 2002/10/24 17:48:54 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ecpg.sgml,v 1.40 2002/11/15 03:11:16 momjian Exp $
|
||||
-->
|
||||
|
||||
<chapter id="ecpg">
|
||||
@ -38,26 +38,29 @@ $Header: /cvsroot/pgsql/doc/src/sgml/ecpg.sgml,v 1.39 2002/10/24 17:48:54 petere
|
||||
for handling <acronym>SQL</acronym> commands from C code. First, it
|
||||
takes care of the tedious passing of information to and from
|
||||
variables in your <acronym>C</acronym> program. Secondly, embedded
|
||||
SQL in C is defined in the SQL standard and supported by many other
|
||||
SQL databases. The PostgreSQL implementation is designed to match
|
||||
this standard as much as possible, and it is usually possible to
|
||||
port embedded <acronym>SQL</acronym> programs written for other
|
||||
<acronym>SQL</acronym> in C is defined in the
|
||||
<acronym>SQL</acronym> standard and supported by many other
|
||||
<acronym>SQL</acronym> databases. The <productname>PostgreSQL</>
|
||||
implementation is designed to match this standard as much as
|
||||
possible, and it is usually possible to port embedded
|
||||
<acronym>SQL</acronym> programs written for other
|
||||
<acronym>RDBMS</acronym> to <productname>PostgreSQL</productname>
|
||||
with relative ease.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
As indicated, programs written for the embedded SQL interface are
|
||||
normal C programs with special code inserted to perform
|
||||
database-related actions. This special code always has the form
|
||||
As indicated, programs written for the embedded
|
||||
<acronym>SQL</acronym> interface are normal C programs with special
|
||||
code inserted to perform database-related actions. This special
|
||||
code always has the form
|
||||
<programlisting>
|
||||
EXEC SQL ...;
|
||||
</programlisting>
|
||||
These statements syntactically take the place of a C statement.
|
||||
Depending on the particular statement, they may appear in the
|
||||
global context or within a function. Embedded SQL statements
|
||||
follow the case-sensitivity rules of normal SQL code, and not those
|
||||
of C.
|
||||
global context or within a function. Embedded
|
||||
<acronym>SQL</acronym> statements follow the case-sensitivity rules
|
||||
of normal <acronym>SQL</acronym> code, and not those of C.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -748,8 +751,8 @@ EXEC SQL INCLUDE <replaceable>filename</replaceable>;
|
||||
|
||||
<para>
|
||||
The preprocessor program is called <filename>ecpg</filename> and is
|
||||
included in a normal PostgreSQL installation. Embedded SQL
|
||||
programs are typically named with an extension
|
||||
included in a normal <productname>PostgreSQL</> installation.
|
||||
Embedded SQL programs are typically named with an extension
|
||||
<filename>.pgc</filename>. If you have a program file called
|
||||
<filename>prog1.pgc</filename>, you can preprocess it by simply
|
||||
calling
|
||||
@ -768,10 +771,11 @@ ecpg prog1.pgc
|
||||
cc -c prog1.c
|
||||
</programlisting>
|
||||
The generated C source files include headers files from the
|
||||
PostgreSQL installation, so if you installed PostgreSQL in a
|
||||
location that is not searched by default, you have to add an option
|
||||
such as <literal>-I/usr/local/pgsql/include</literal> to the
|
||||
compilation command line.
|
||||
<productname>PostgreSQL</> installation, so if you installed
|
||||
<productname>PostgreSQL</> in a location that is not searched by
|
||||
default, you have to add an option such as
|
||||
<literal>-I/usr/local/pgsql/include</literal> to the compilation
|
||||
command line.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/features.sgml,v 2.7 2002/09/21 18:32:53 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/features.sgml,v 2.8 2002/11/15 03:11:16 momjian Exp $
|
||||
-->
|
||||
|
||||
<appendix id="features">
|
||||
@ -15,11 +15,12 @@ $Header: /cvsroot/pgsql/doc/src/sgml/features.sgml,v 2.7 2002/09/21 18:32:53 pet
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<acronym>SQL99</acronym> defines a large set of individual
|
||||
features rather than the ineffectively broad three levels found in
|
||||
<acronym>SQL99</acronym> defines a large set of individual features
|
||||
rather than the ineffectively broad three levels found in
|
||||
<acronym>SQL92</acronym>. We provide a list of supported features,
|
||||
followed by a list of the features defined in SQL99 which are not
|
||||
yet supported in PostgreSQL.
|
||||
followed by a list of the features defined in
|
||||
<acronym>SQL99</acronym> which are not yet supported in
|
||||
<productname>PostgreSQL</>.
|
||||
</para>
|
||||
|
||||
<sect1 id="features-sql99">
|
||||
|
@ -1,12 +1,13 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/info.sgml,v 1.16 2002/10/24 17:48:54 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/info.sgml,v 1.17 2002/11/15 03:11:16 momjian Exp $
|
||||
-->
|
||||
|
||||
<sect1 id="resources">
|
||||
<title>Overview of Documentation Resources</title>
|
||||
|
||||
<para>
|
||||
The PostgreSQL documentation is organized into several books:
|
||||
The <productname>PostgreSQL</> documentation is organized into
|
||||
several books:
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
@ -22,9 +23,10 @@ $Header: /cvsroot/pgsql/doc/src/sgml/info.sgml,v 1.16 2002/10/24 17:48:54 petere
|
||||
<term>&cite-user;</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Documents the SQL query language environment, including data
|
||||
types and functions, as well as user-level performance tuning.
|
||||
Every PostgreSQL user should read this.
|
||||
Documents the <acronym>SQL</acronym> query language environment,
|
||||
including data types and functions, as well as user-level
|
||||
performance tuning. Every <productname>PostgreSQL</> user
|
||||
should read this.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@ -34,8 +36,8 @@ $Header: /cvsroot/pgsql/doc/src/sgml/info.sgml,v 1.16 2002/10/24 17:48:54 petere
|
||||
<listitem>
|
||||
<para>
|
||||
Installation and server management information. Everyone who
|
||||
runs a PostgreSQL server, either for personal use or for other
|
||||
users, needs to read this.
|
||||
runs a <productname>PostgreSQL</> server, either for personal
|
||||
use or for other users, needs to read this.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@ -55,9 +57,9 @@ $Header: /cvsroot/pgsql/doc/src/sgml/info.sgml,v 1.16 2002/10/24 17:48:54 petere
|
||||
<term>&cite-reference;</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Reference pages for SQL command syntax, and client and server
|
||||
programs. This book is auxiliary to the User's,
|
||||
Administrator's, and Programmer's Guides.
|
||||
Reference pages for <acronym>SQL</acronym> command syntax, and
|
||||
client and server programs. This book is auxiliary to the
|
||||
User's, Administrator's, and Programmer's Guides.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/installation.sgml,v 1.118 2002/11/14 18:39:43 momjian Exp $ -->
|
||||
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/installation.sgml,v 1.119 2002/11/15 03:11:16 momjian Exp $ -->
|
||||
|
||||
<chapter id="installation">
|
||||
<title><![%standalone-include[<productname>PostgreSQL</>]]>
|
||||
@ -68,9 +68,10 @@ su - postgres
|
||||
<application>make</> programs will <emphasis>not</> work.
|
||||
<acronym>GNU</> <application>make</> is often installed under
|
||||
the name <filename>gmake</filename>; this document will always
|
||||
refer to it by that name. (On some systems GNU make is the
|
||||
default tool with the name <filename>make</>.) To test for
|
||||
<acronym>GNU</acronym> <application>make</application> enter
|
||||
refer to it by that name. (On some systems
|
||||
<acronym>GNU</acronym> make is the default tool with the name
|
||||
<filename>make</>.) To test for <acronym>GNU</acronym>
|
||||
<application>make</application> enter
|
||||
<screen>
|
||||
<userinput>gmake --version</userinput>
|
||||
</screen>
|
||||
@ -137,9 +138,10 @@ su - postgres
|
||||
<listitem>
|
||||
<para>
|
||||
To build the server programming language PL/Perl you need a full
|
||||
Perl installation, including the <filename>libperl</filename>
|
||||
library and the header files. Since PL/Perl will be a shared
|
||||
library, the <indexterm><primary>libperl</primary></indexterm>
|
||||
<productname>Perl</productname> installation, including the
|
||||
<filename>libperl</filename> library and the header files.
|
||||
Since PL/Perl will be a shared library, the
|
||||
<indexterm><primary>libperl</primary></indexterm>
|
||||
<filename>libperl</filename> library must be a shared library
|
||||
also on most platforms. This appears to be the default in
|
||||
recent Perl versions, but it was not in earlier versions, and in
|
||||
@ -198,8 +200,8 @@ su - postgres
|
||||
url="http://www.python.org/doc/FAQ.html#3.30">Python FAQ
|
||||
3.30</ulink>. On some operating systems you don't really have
|
||||
to build a shared library, but then you will have to convince
|
||||
the PostgreSQL build system of this. Consult the
|
||||
<filename>Makefile</filename> in the
|
||||
the <productname>PostgreSQL</> build system of this. Consult
|
||||
the <filename>Makefile</filename> in the
|
||||
<filename>src/pl/plpython</filename> directory for details.
|
||||
</para>
|
||||
</listitem>
|
||||
@ -250,18 +252,18 @@ JAVACMD=$JAVA_HOME/bin/java
|
||||
<para>
|
||||
To enable Native Language Support (<acronym>NLS</acronym>), that
|
||||
is, the ability to display a program's messages in a language
|
||||
other than English, you need an implementation of the <application>Gettext</>
|
||||
<acronym>API</acronym>. Some operating systems have this
|
||||
built-in (e.g., <systemitem class="osname">Linux</>, <systemitem
|
||||
class="osname">NetBSD</>, <systemitem
|
||||
class="osname">Solaris</>), for other systems you can download
|
||||
an add-on package from here: <ulink
|
||||
other than English, you need an implementation of the
|
||||
<application>Gettext</> <acronym>API</acronym>. Some operating
|
||||
systems have this built-in (e.g., <systemitem
|
||||
class="osname">Linux</>, <systemitem class="osname">NetBSD</>,
|
||||
<systemitem class="osname">Solaris</>), for other systems you
|
||||
can download an add-on package from here: <ulink
|
||||
url="http://www.postgresql.org/~petere/gettext.html" ></ulink>.
|
||||
If you are using the <application>gettext</> implementation in
|
||||
the GNU C library then you will additionally need the
|
||||
<productname>GNU Gettext</productname> package for some utility
|
||||
programs. For any of the other implementations you will not
|
||||
need it.
|
||||
the <acronym>GNU</acronym> C library then you will additionally
|
||||
need the <productname>GNU Gettext</productname> package for some
|
||||
utility programs. For any of the other implementations you will
|
||||
not need it.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
@ -276,9 +278,9 @@ JAVACMD=$JAVA_HOME/bin/java
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If you are build from a CVS tree instead of using a released source
|
||||
package, or if you want to do development, you also need the
|
||||
following packages:
|
||||
If you are build from a <acronym>CVS</acronym> tree instead of
|
||||
using a released source package, or if you want to do development,
|
||||
you also need the following packages:
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
@ -1257,8 +1259,8 @@ libpq.so.2.1: cannot open shared object file: No such file or directory
|
||||
add <filename>/usr/local/pgsql/bin</> (or whatever you set
|
||||
<option><literal>--bindir</></> to in <xref linkend="configure">)
|
||||
into your <envar>PATH</>. Strictly speaking, this is not
|
||||
necessary, but it will make the use of PostgreSQL much more
|
||||
convenient.
|
||||
necessary, but it will make the use of <productname>PostgreSQL</>
|
||||
much more convenient.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/jdbc.sgml,v 1.40 2002/11/11 07:31:28 barry Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/jdbc.sgml,v 1.41 2002/11/15 03:11:16 momjian Exp $
|
||||
-->
|
||||
|
||||
<chapter id="jdbc">
|
||||
@ -51,16 +51,17 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/jdbc.sgml,v 1.40 2002/11/11 07:31:28
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Alternatively you can build the driver from source, but you
|
||||
should only need to do this if you are making changes to the
|
||||
source code. For details, refer to the PostgreSQL installation
|
||||
Alternatively you can build the driver from source, but you should
|
||||
only need to do this if you are making changes to the source code.
|
||||
For details, refer to the <productname>PostgreSQL</> installation
|
||||
instructions. After installation, the driver should be found in
|
||||
<filename><replaceable>PREFIX</>/share/java/postgresql.jar</filename>.
|
||||
The resulting driver will be built for the version of Java you are
|
||||
running. If you build with a 1.1 <acronym>JDK</> you will build a version
|
||||
that supports the JDBC 1 specification, if you build with a Java 2
|
||||
<acronym>JDK</> (e.g., <acronym>JDK</> 1.2 or <acronym>JDK</> 1.3) you will build a version that
|
||||
supports the JDBC 2 specification.
|
||||
running. If you build with a 1.1 <acronym>JDK</> you will build a
|
||||
version that supports the JDBC 1 specification, if you build with
|
||||
a Java 2 <acronym>JDK</> (e.g., <acronym>JDK</> 1.2 or
|
||||
<acronym>JDK</> 1.3) you will build a version that supports the
|
||||
JDBC 2 specification.
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
|
@ -1112,7 +1112,8 @@ The number of tuples affected or returned by the query.
|
||||
<TITLE>Description
|
||||
</TITLE>
|
||||
<PARA>
|
||||
<FUNCTION>pg_execute</FUNCTION> submits a query to the PostgreSQL backend.
|
||||
<FUNCTION>pg_execute</FUNCTION> submits a query to the
|
||||
<PRODUCTNAME>PostgreSQL</> backend.
|
||||
</PARA>
|
||||
<PARA>
|
||||
If the query is not a SELECT statement, the query is executed and the
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/libpq.sgml,v 1.101 2002/11/11 20:14:03 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/libpq.sgml,v 1.102 2002/11/15 03:11:17 momjian Exp $
|
||||
-->
|
||||
|
||||
<chapter id="libpq">
|
||||
@ -957,12 +957,14 @@ strings overlap.
|
||||
|
||||
<para>
|
||||
<function>PQescapeBytea</> returns an escaped version of the
|
||||
<parameter>from</parameter> parameter binary string, to a caller-provided
|
||||
buffer. The return string has all special characters replaced
|
||||
so that they can be properly processed by the PostgreSQL string literal
|
||||
parser, and the <type>bytea</type> input function. A terminating zero
|
||||
byte is also added. The single quotes that must surround
|
||||
PostgreSQL string literals are not part of the result string.
|
||||
<parameter>from</parameter> parameter binary string, to a
|
||||
caller-provided buffer. The return string has all special
|
||||
characters replaced so that they can be properly processed by the
|
||||
<productname>PostgreSQL</> string literal parser, and the
|
||||
<type>bytea</type> input function. A terminating zero byte is also
|
||||
added. The single quotes that must surround
|
||||
<productname>PostgreSQL</> string literals are not part of the
|
||||
result string.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/manage-ag.sgml,v 2.23 2002/11/11 20:14:03 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/manage-ag.sgml,v 2.24 2002/11/15 03:11:17 momjian Exp $
|
||||
-->
|
||||
|
||||
<chapter id="managing-databases">
|
||||
@ -8,25 +8,26 @@ $Header: /cvsroot/pgsql/doc/src/sgml/manage-ag.sgml,v 2.23 2002/11/11 20:14:03 p
|
||||
<indexterm zone="managing-databases"><primary>database</></>
|
||||
|
||||
<para>
|
||||
Every instance of a running PostgreSQL server manages one or more
|
||||
databases. Databases are therefore the topmost hierarchical level
|
||||
for organizing SQL objects (<quote>database objects</quote>). This
|
||||
chapter describes the properties of databases, and how to create,
|
||||
manage, and destroy them.
|
||||
Every instance of a running <productname>PostgreSQL</productname>
|
||||
server manages one or more databases. Databases are therefore the
|
||||
topmost hierarchical level for organizing <acronym>SQL</acronym>
|
||||
objects (<quote>database objects</quote>). This chapter describes
|
||||
the properties of databases, and how to create, manage, and destroy
|
||||
them.
|
||||
</para>
|
||||
|
||||
<sect1>
|
||||
<title>Overview</title>
|
||||
|
||||
<para>
|
||||
A database is a named collection of SQL objects (<quote>database
|
||||
objects</quote>). Generally, every database object (tables,
|
||||
functions, etc.) belongs to one and only one database. (But there
|
||||
are a few system catalogs, for example <literal>pg_database</>,
|
||||
that belong to a whole installation and are accessible from each
|
||||
database within the installation.) More accurately, a database is
|
||||
a collection of schemas and the schemas contain the tables,
|
||||
functions, etc. So the full hierarchy is:
|
||||
A database is a named collection of <acronym>SQL</acronym> objects
|
||||
(<quote>database objects</quote>). Generally, every database
|
||||
object (tables, functions, etc.) belongs to one and only one
|
||||
database. (But there are a few system catalogs, for example
|
||||
<literal>pg_database</>, that belong to a whole installation and
|
||||
are accessible from each database within the installation.) More
|
||||
accurately, a database is a collection of schemas and the schemas
|
||||
contain the tables, functions, etc. So the full hierarchy is:
|
||||
server, database, schema, table (or something else instead of a
|
||||
table).
|
||||
</para>
|
||||
@ -41,13 +42,14 @@ $Header: /cvsroot/pgsql/doc/src/sgml/manage-ag.sgml,v 2.23 2002/11/11 20:14:03 p
|
||||
connection. Schemas are a purely logical structure and who can
|
||||
access what is managed by the privilege system. Databases are
|
||||
physically separated and access control is managed at the
|
||||
connection level. If one PostgreSQL server instance is to house
|
||||
projects or users that should be separate and for the most part
|
||||
unaware of each other, it is therefore recommendable to put them
|
||||
into separate databases. If the projects or users are interrelated
|
||||
and should be able to use each other's resources they should be put
|
||||
in the same databases but possibly into separate schemas. More
|
||||
information about managing schemas is in the &cite-user;.
|
||||
connection level. If one <productname>PostgreSQL</> server
|
||||
instance is to house projects or users that should be separate and
|
||||
for the most part unaware of each other, it is therefore
|
||||
recommendable to put them into separate databases. If the projects
|
||||
or users are interrelated and should be able to use each other's
|
||||
resources they should be put in the same databases but possibly
|
||||
into separate schemas. More information about managing schemas is
|
||||
in the &cite-user;.
|
||||
</para>
|
||||
|
||||
<note>
|
||||
@ -73,11 +75,11 @@ $Header: /cvsroot/pgsql/doc/src/sgml/manage-ag.sgml,v 2.23 2002/11/11 20:14:03 p
|
||||
<synopsis>
|
||||
CREATE DATABASE <replaceable>name</>
|
||||
</synopsis>
|
||||
where <replaceable>name</> follows the usual rules for SQL identifiers.
|
||||
The current user automatically becomes
|
||||
the owner of the new database. It is the privilege of the owner of
|
||||
a database to remove it later on (which also removes all the
|
||||
objects in it, even if they have a different owner).
|
||||
where <replaceable>name</> follows the usual rules for
|
||||
<acronym>SQL</acronym> identifiers. The current user automatically
|
||||
becomes the owner of the new database. It is the privilege of the
|
||||
owner of a database to remove it later on (which also removes all
|
||||
the objects in it, even if they have a different owner).
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -262,10 +264,10 @@ createdb -T template0 <replaceable>dbname</>
|
||||
<title>Database Configuration</title>
|
||||
|
||||
<para>
|
||||
Recall from <xref linkend="runtime-config"> that the PostgreSQL
|
||||
server provides a large number of run-time configuration variables.
|
||||
You can set database-specific default values for many of these
|
||||
settings.
|
||||
Recall from <xref linkend="runtime-config"> that the
|
||||
<productname>PostgreSQL</> server provides a large number of
|
||||
run-time configuration variables. You can set database-specific
|
||||
default values for many of these settings.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.29 2002/11/11 20:14:03 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.30 2002/11/15 03:11:17 momjian Exp $
|
||||
-->
|
||||
|
||||
<chapter id="mvcc">
|
||||
@ -10,12 +10,13 @@ $Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.29 2002/11/11 20:14:03 petere
|
||||
</indexterm>
|
||||
|
||||
<para>
|
||||
This chapter describes the behavior of the PostgreSQL database
|
||||
system when two or more sessions try to access the same data at the
|
||||
same time. The goals in that situation are to allow efficient
|
||||
access for all sessions while maintaining strict data integrity.
|
||||
Every developer of database applications should be familiar with
|
||||
the topics covered in this chapter.
|
||||
This chapter describes the behavior of the
|
||||
<productname>PostgreSQL</productname> database system when two or
|
||||
more sessions try to access the same data at the same time. The
|
||||
goals in that situation are to allow efficient access for all
|
||||
sessions while maintaining strict data integrity. Every developer
|
||||
of database applications should be familiar with the topics covered
|
||||
in this chapter.
|
||||
</para>
|
||||
|
||||
<sect1 id="mvcc-intro">
|
||||
@ -38,16 +39,17 @@ $Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.29 2002/11/11 20:14:03 petere
|
||||
|
||||
<para>
|
||||
The main difference between multiversion and lock models is that
|
||||
in MVCC locks acquired for querying (reading) data don't conflict
|
||||
with locks acquired for writing data, and so reading never blocks
|
||||
writing and writing never blocks reading.
|
||||
in <acronym>MVCC</acronym> locks acquired for querying (reading)
|
||||
data don't conflict with locks acquired for writing data, and so
|
||||
reading never blocks writing and writing never blocks reading.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Table- and row-level locking facilities are also available in
|
||||
<productname>PostgreSQL</productname> for applications that cannot
|
||||
adapt easily to MVCC behavior. However, proper use of MVCC will
|
||||
generally provide better performance than locks.
|
||||
adapt easily to <acronym>MVCC</acronym> behavior. However, proper
|
||||
use of <acronym>MVCC</acronym> will generally provide better
|
||||
performance than locks.
|
||||
</para>
|
||||
</sect1>
|
||||
|
||||
@ -380,14 +382,14 @@ ERROR: Can't serialize access due to concurrent update
|
||||
|
||||
<para>
|
||||
<productname>PostgreSQL</productname> provides various lock modes
|
||||
to control concurrent access to data in tables. These modes can be
|
||||
used for application-controlled locking in situations where MVCC
|
||||
does not give the desired behavior. Also, most
|
||||
<productname>PostgreSQL</productname> commands automatically
|
||||
acquire locks of appropriate modes to ensure that referenced tables
|
||||
are not dropped or modified in incompatible ways while the command
|
||||
executes. (For example, <command>ALTER TABLE</> cannot be executed
|
||||
concurrently with other operations on the same table.)
|
||||
to control concurrent access to data in tables. These modes can
|
||||
be used for application-controlled locking in situations where
|
||||
<acronym>MVCC</acronym> does not give the desired behavior. Also,
|
||||
most <productname>PostgreSQL</productname> commands automatically
|
||||
acquire locks of appropriate modes to ensure that referenced
|
||||
tables are not dropped or modified in incompatible ways while the
|
||||
command executes. (For example, <command>ALTER TABLE</> cannot be
|
||||
executed concurrently with other operations on the same table.)
|
||||
</para>
|
||||
|
||||
<sect2 id="locking-tables">
|
||||
@ -725,7 +727,7 @@ ERROR: Can't serialize access due to concurrent update
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Global validity checks require extra thought under MVCC. For
|
||||
Global validity checks require extra thought under <acronym>MVCC</acronym>. For
|
||||
example, a banking application might wish to check that the sum of
|
||||
all credits in one table equals the sum of debits in another table,
|
||||
when both tables are being actively updated. Comparing the results of two
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/programmer.sgml,v 1.43 2002/10/24 17:48:54 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/programmer.sgml,v 1.44 2002/11/15 03:11:17 momjian Exp $
|
||||
|
||||
PostgreSQL Programmer's Guide.
|
||||
-->
|
||||
@ -24,18 +24,20 @@ PostgreSQL Programmer's Guide.
|
||||
<title>What's In This Book</title>
|
||||
|
||||
<para>
|
||||
This book is for PostgreSQL application programmers. It is divided into three parts.
|
||||
This book is for <productname>PostgreSQL</> application
|
||||
programmers. It is divided into three parts.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The first part of this book describes the client programming
|
||||
interfaces distributed with PostgreSQL. Each of these chapters
|
||||
can be read independently. Note that there are many other
|
||||
programming interfaces for client programs that are distributed
|
||||
separately and contain their own documentation. Readers of the
|
||||
first part should be familiar with using SQL commands to
|
||||
manipulate and query the database (see the &cite-user;) and of
|
||||
course with the programming language that the interface uses.
|
||||
interfaces distributed with <productname>PostgreSQL</>. Each of
|
||||
these chapters can be read independently. Note that there are
|
||||
many other programming interfaces for client programs that are
|
||||
distributed separately and contain their own documentation.
|
||||
Readers of the first part should be familiar with using
|
||||
<acronym>SQL</acronym> commands to manipulate and query the
|
||||
database (see the &cite-user;) and of course with the programming
|
||||
language that the interface uses.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -43,7 +45,7 @@ PostgreSQL Programmer's Guide.
|
||||
functionality with user-defined functions, data types, triggers,
|
||||
etc. These are advanced topics which should probably be
|
||||
approached only after all the other user documentation about
|
||||
PostgreSQL has been understood.
|
||||
<productname>PostgreSQL</> has been understood.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_cast.sgml,v 1.6 2002/10/04 22:08:44 tgl Exp $ -->
|
||||
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_cast.sgml,v 1.7 2002/11/15 03:11:17 momjian Exp $ -->
|
||||
|
||||
<refentry id="SQL-CREATECAST">
|
||||
<refmeta>
|
||||
@ -196,14 +196,14 @@ SELECT 'The time is ' || CAST(now() AS text);
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Prior to PostgreSQL 7.3, every function that had the same name as a
|
||||
data type, returned that data type, and took one argument of a
|
||||
different type was automatically a cast function. This convention has
|
||||
been abandoned in face of the introduction of schemas and to be
|
||||
able to represent binary compatible casts in the catalogs. (The built-in
|
||||
cast functions
|
||||
still follow this naming scheme, but they have to be shown as
|
||||
casts in <literal>pg_cast</> now.)
|
||||
Prior to <productname>PostgreSQL</> 7.3, every function that had
|
||||
the same name as a data type, returned that data type, and took one
|
||||
argument of a different type was automatically a cast function.
|
||||
This convention has been abandoned in face of the introduction of
|
||||
schemas and to be able to represent binary compatible casts in the
|
||||
catalogs. (The built-in cast functions still follow this naming
|
||||
scheme, but they have to be shown as casts in <literal>pg_cast</>
|
||||
now.)
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_database.sgml,v 1.29 2002/09/21 18:32:54 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_database.sgml,v 1.30 2002/11/15 03:11:17 momjian Exp $
|
||||
PostgreSQL documentation
|
||||
-->
|
||||
|
||||
@ -217,7 +217,7 @@ CREATE DATABASE <replaceable class="PARAMETER">name</replaceable>
|
||||
<replaceable class="parameter">name</replaceable>. In particular,
|
||||
by writing <literal>TEMPLATE = template0</>, you can create a virgin
|
||||
database containing only the standard objects predefined by your
|
||||
version of <application>PostgreSQL</application>. This is useful
|
||||
version of <productname>PostgreSQL</productname>. This is useful
|
||||
if you wish to avoid copying
|
||||
any installation-local objects that may have been added to
|
||||
<literal>template1</>.
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/ecpg-ref.sgml,v 1.22 2002/10/24 17:48:54 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/ecpg-ref.sgml,v 1.23 2002/11/15 03:11:18 momjian Exp $
|
||||
PostgreSQL documentation
|
||||
-->
|
||||
|
||||
@ -157,9 +157,9 @@ PostgreSQL documentation
|
||||
<para>
|
||||
When compiling the preprocessed C code files, the compiler needs to
|
||||
be able to find the <application>ECPG</> header files in the
|
||||
PostgreSQL include directory. Therefore, one might have to use the
|
||||
<option>-I</> option when invoking the compiler (e.g.,
|
||||
<literal>-I/usr/local/pgsql/include</literal>).
|
||||
<productname>PostgreSQL</> include directory. Therefore, one might
|
||||
have to use the <option>-I</> option when invoking the compiler
|
||||
(e.g., <literal>-I/usr/local/pgsql/include</literal>).
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/explain.sgml,v 1.20 2002/04/21 19:02:39 thomas Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/explain.sgml,v 1.21 2002/11/15 03:11:18 momjian Exp $
|
||||
PostgreSQL documentation
|
||||
-->
|
||||
|
||||
@ -87,7 +87,7 @@ EXPLAIN [ ANALYZE ] [ VERBOSE ] <replaceable class="PARAMETER">query</replaceabl
|
||||
|
||||
<note>
|
||||
<para>
|
||||
Prior to <application>PostgreSQL</application> 7.3, the query plan
|
||||
Prior to <productname>PostgreSQL</productname> 7.3, the query plan
|
||||
was emitted in the form of a NOTICE message. Now it appears as a
|
||||
query result (formatted like a table with a single text column).
|
||||
</para>
|
||||
@ -105,12 +105,12 @@ EXPLAIN [ ANALYZE ] [ VERBOSE ] <replaceable class="PARAMETER">query</replaceabl
|
||||
|
||||
<para>
|
||||
This command displays the execution plan that the
|
||||
<application>PostgreSQL</application> planner
|
||||
generates for the supplied query. The execution plan shows how
|
||||
the table(s) referenced by the query will be scanned---by plain
|
||||
sequential scan, index scan, etc.---and if multiple tables are
|
||||
referenced, what join algorithms will be used to bring together
|
||||
the required tuples from each input table.
|
||||
<productname>PostgreSQL</productname> planner generates for the
|
||||
supplied query. The execution plan shows how the table(s)
|
||||
referenced by the query will be scanned---by plain sequential scan,
|
||||
index scan, etc.---and if multiple tables are referenced, what join
|
||||
algorithms will be used to bring together the required tuples from
|
||||
each input table.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -156,7 +156,7 @@ ROLLBACK;
|
||||
The VERBOSE option emits the full internal representation of the plan tree,
|
||||
rather than just a summary.
|
||||
Usually this option is only useful for debugging
|
||||
<application>PostgreSQL</application>. The VERBOSE dump is either
|
||||
<productname>PostgreSQL</productname>. The VERBOSE dump is either
|
||||
pretty-printed or not, depending on the setting of the
|
||||
<option>EXPLAIN_PRETTY_PRINT</option> configuration parameter.
|
||||
</para>
|
||||
@ -232,7 +232,7 @@ EXPLAIN SELECT sum(i) FROM foo WHERE i < 10;
|
||||
|
||||
<para>
|
||||
Note that the specific numbers shown, and even the selected query
|
||||
strategy, may vary between <application>PostgreSQL</application>
|
||||
strategy, may vary between <productname>PostgreSQL</productname>
|
||||
releases due to planner improvements.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/load.sgml,v 1.12 2002/01/20 22:19:57 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/load.sgml,v 1.13 2002/11/15 03:11:18 momjian Exp $
|
||||
-->
|
||||
|
||||
<refentry id="SQL-LOAD">
|
||||
@ -23,13 +23,14 @@ LOAD '<replaceable class="PARAMETER">filename</replaceable>'
|
||||
<title>Description</title>
|
||||
|
||||
<para>
|
||||
Loads a shared library file into the PostgreSQL backend's address
|
||||
space. If the file had been loaded previously, it is first
|
||||
unloaded. This command is primarily useful to unload and reload a
|
||||
shared library file that has been changed since the backend first
|
||||
loaded it. To make use of the
|
||||
shared library, function(s) in it need to be declared using the <xref
|
||||
linkend="sql-createfunction" endterm="sql-createfunction-title"> command.
|
||||
Loads a shared library file into the <productname>PostgreSQL</>
|
||||
backend's address space. If the file had been loaded previously,
|
||||
it is first unloaded. This command is primarily useful to unload
|
||||
and reload a shared library file that has been changed since the
|
||||
backend first loaded it. To make use of the shared library,
|
||||
function(s) in it need to be declared using the <xref
|
||||
linkend="sql-createfunction" endterm="sql-createfunction-title">
|
||||
command.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_config-ref.sgml,v 1.11 2002/10/11 23:03:48 petere Exp $ -->
|
||||
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_config-ref.sgml,v 1.12 2002/11/15 03:11:18 momjian Exp $ -->
|
||||
|
||||
<refentry id="app-pgconfig">
|
||||
<refmeta>
|
||||
@ -131,7 +131,7 @@
|
||||
|
||||
<para>
|
||||
The option <option>--includedir-server</option> is new in
|
||||
PostgreSQL 7.2. In prior releases, the server include files were
|
||||
<productname>PostgreSQL</> 7.2. In prior releases, the server include files were
|
||||
installed in the same location as the client headers, which could
|
||||
be queried with the <option>--includedir</option>. To make your
|
||||
package handle both cases, try the newer option first and test the
|
||||
@ -139,7 +139,7 @@
|
||||
</para>
|
||||
|
||||
<para>
|
||||
In releases prior to PostgreSQL 7.1, before the
|
||||
In releases prior to <productname>PostgreSQL</> 7.1, before the
|
||||
<command>pg_config</command> came to be, a method for finding the
|
||||
equivalent configuration information did not exist.
|
||||
</para>
|
||||
@ -150,7 +150,8 @@
|
||||
<title>History</title>
|
||||
|
||||
<para>
|
||||
The <command>pg_config</command> utility first appeared in PostgreSQL 7.1.
|
||||
The <command>pg_config</command> utility first appeared in
|
||||
<productname>PostgreSQL</> 7.1.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_dump.sgml,v 1.52 2002/10/11 23:03:48 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_dump.sgml,v 1.53 2002/11/15 03:11:18 momjian Exp $
|
||||
PostgreSQL documentation
|
||||
-->
|
||||
|
||||
@ -274,11 +274,11 @@ PostgreSQL documentation
|
||||
|
||||
<para>
|
||||
<application>pg_dump</application> can handle databases from
|
||||
previous releases of PostgreSQL, but very old versions are not
|
||||
supported anymore (currently prior to 7.0). Use this option
|
||||
if you need to override the version check (and if
|
||||
<application>pg_dump</application> then fails, don't say you
|
||||
weren't warned).
|
||||
previous releases of <productname>PostgreSQL</>, but very old
|
||||
versions are not supported anymore (currently prior to 7.0).
|
||||
Use this option if you need to override the version check (and
|
||||
if <application>pg_dump</application> then fails, don't say
|
||||
you weren't warned).
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@ -289,7 +289,7 @@ PostgreSQL documentation
|
||||
<listitem>
|
||||
<para>
|
||||
Dump object identifiers (<acronym>OID</acronym>s) for every
|
||||
table. Use this option if your application references the OID
|
||||
table. Use this option if your application references the <acronym>OID</>
|
||||
columns in some way (e.g., in a foreign key constraint).
|
||||
Otherwise, this option should not be used.
|
||||
</para>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_dumpall.sgml,v 1.34 2002/09/07 16:14:33 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_dumpall.sgml,v 1.35 2002/11/15 03:11:18 momjian Exp $
|
||||
PostgreSQL documentation
|
||||
-->
|
||||
|
||||
@ -27,13 +27,13 @@ PostgreSQL documentation
|
||||
|
||||
<para>
|
||||
<application>pg_dumpall</application> is a utility for writing out
|
||||
(<quote>dumping</quote>) all PostgreSQL databases of a cluster into
|
||||
one script file. The script file contains SQL commands that can be
|
||||
used as input to <xref linkend="app-psql">
|
||||
to restore the databases. It does this by calling <xref
|
||||
linkend="app-pgdump"> for each database
|
||||
in a cluster. <application>pg_dumpall</application> also dumps
|
||||
global objects that are common to all databases.
|
||||
(<quote>dumping</quote>) all <productname>PostgreSQL</> databases
|
||||
of a cluster into one script file. The script file contains
|
||||
<acronym>SQL</acronym> commands that can be used as input to <xref
|
||||
linkend="app-psql"> to restore the databases. It does this by
|
||||
calling <xref linkend="app-pgdump"> for each database in a cluster.
|
||||
<application>pg_dumpall</application> also dumps global objects
|
||||
that are common to all databases.
|
||||
(<application>pg_dump</application> does not save these objects.)
|
||||
This currently includes the information about database users and
|
||||
groups.
|
||||
@ -139,11 +139,11 @@ PostgreSQL documentation
|
||||
|
||||
<para>
|
||||
<application>pg_dumpall</application> can handle databases
|
||||
from previous releases of PostgreSQL, but very old versions
|
||||
are not supported anymore (currently prior to 7.0). Use this
|
||||
option if you need to override the version check (and if
|
||||
<application>pg_dumpall</application> then fails, don't say
|
||||
you weren't warned).
|
||||
from previous releases of <productname>PostgreSQL</>, but very
|
||||
old versions are not supported anymore (currently prior to
|
||||
7.0). Use this option if you need to override the version
|
||||
check (and if <application>pg_dumpall</application> then
|
||||
fails, don't say you weren't warned).
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_restore.sgml,v 1.31 2002/10/11 23:03:48 petere Exp $ -->
|
||||
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_restore.sgml,v 1.32 2002/11/15 03:11:18 momjian Exp $ -->
|
||||
|
||||
<refentry id="APP-PGRESTORE">
|
||||
<docinfo>
|
||||
@ -417,11 +417,12 @@
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Presently, the commands emitted for <option>--disable-triggers</>
|
||||
must be done as superuser. So, you should also specify
|
||||
a superuser name with <option>-S</>, or preferably specify
|
||||
<option>--use-set-session-authorization</> and run
|
||||
<application>pg_restore</application> as a PostgreSQL superuser.
|
||||
Presently, the commands emitted for
|
||||
<option>--disable-triggers</> must be done as superuser. So, you
|
||||
should also specify a superuser name with <option>-S</>, or
|
||||
preferably specify <option>--use-set-session-authorization</> and
|
||||
run <application>pg_restore</application> as a
|
||||
<productname>PostgreSQL</> superuser.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@ -522,12 +523,12 @@ connectDBStart() -- connect() failed: No such file or directory
|
||||
<msgexplan>
|
||||
<para>
|
||||
<application>pg_restore</application> could not attach to the
|
||||
PostgreSQL server
|
||||
process on the specified host and port. If you see this message,
|
||||
ensure that the server
|
||||
is running on the proper host and that you have specified the proper
|
||||
port. If your site uses an authentication system, ensure that you
|
||||
have obtained the required authentication credentials.
|
||||
<productname>PostgreSQL</> server process on the specified
|
||||
host and port. If you see this message, ensure that the
|
||||
server is running on the proper host and that you have
|
||||
specified the proper port. If your site uses an
|
||||
authentication system, ensure that you have obtained the
|
||||
required authentication credentials.
|
||||
</para>
|
||||
</msgexplan>
|
||||
</msgentry>
|
||||
@ -537,7 +538,7 @@ connectDBStart() -- connect() failed: No such file or directory
|
||||
<para>
|
||||
When a direct database connection is specified using the -d
|
||||
option, <application>pg_restore</application> internally executes
|
||||
SQL statements. If you have problems running
|
||||
<acronym>SQL</acronym> statements. If you have problems running
|
||||
<application>pg_restore</application>, make sure you are able to select
|
||||
information from the database using, for example,
|
||||
<application>psql</application>.
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/syntax.sgml,v 1.73 2002/11/11 20:14:04 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/syntax.sgml,v 1.74 2002/11/15 03:11:17 momjian Exp $
|
||||
-->
|
||||
|
||||
<chapter id="sql-syntax">
|
||||
@ -120,8 +120,8 @@ INSERT INTO MY_TABLE VALUES (3, 'hi there');
|
||||
The system uses no more than <symbol>NAMEDATALEN</symbol>-1
|
||||
characters of an identifier; longer names can be written in
|
||||
commands, but they will be truncated. By default,
|
||||
<symbol>NAMEDATALEN</symbol> is 64 so the maximum identifier length
|
||||
is 63 (but at the time PostgreSQL is built,
|
||||
<symbol>NAMEDATALEN</symbol> is 64 so the maximum identifier
|
||||
length is 63 (but at the time <productname>PostgreSQL</> is built,
|
||||
<symbol>NAMEDATALEN</symbol> can be changed in
|
||||
<filename>src/include/postgres_ext.h</filename>).
|
||||
</para>
|
||||
@ -652,15 +652,15 @@ CAST ( '<replaceable>string</replaceable>' AS <replaceable>type</replaceable> )
|
||||
|
||||
<para>
|
||||
<xref linkend="sql-precedence-table"> shows the precedence and
|
||||
associativity of the operators in PostgreSQL. Most operators have
|
||||
the same precedence and are left-associative. The precedence and
|
||||
associativity of the operators is hard-wired into the parser.
|
||||
This may lead to non-intuitive behavior; for example the Boolean
|
||||
operators <literal><</> and <literal>></> have a different
|
||||
precedence than the Boolean operators <literal><=</> and
|
||||
<literal>>=</>. Also, you will sometimes need to add
|
||||
parentheses when using combinations of binary and unary operators.
|
||||
For instance
|
||||
associativity of the operators in <productname>PostgreSQL</>.
|
||||
Most operators have the same precedence and are left-associative.
|
||||
The precedence and associativity of the operators is hard-wired
|
||||
into the parser. This may lead to non-intuitive behavior; for
|
||||
example the Boolean operators <literal><</> and
|
||||
<literal>></> have a different precedence than the Boolean
|
||||
operators <literal><=</> and <literal>>=</>. Also, you will
|
||||
sometimes need to add parentheses when using combinations of
|
||||
binary and unary operators. For instance
|
||||
<programlisting>
|
||||
SELECT 5 ! - 6;
|
||||
</programlisting>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/tutorial.sgml,v 1.17 2002/10/24 17:48:54 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/tutorial.sgml,v 1.18 2002/11/15 03:11:17 momjian Exp $
|
||||
-->
|
||||
|
||||
<book id="tutorial">
|
||||
@ -30,9 +30,9 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/tutorial.sgml,v 1.17 2002/10/24 17:48
|
||||
these aspects. We only assume some general knowledge about how to
|
||||
use computers. No particular Unix or programming experience is
|
||||
required. This book is mainly intended to give you a hands-on
|
||||
experience with important aspects of the PostgreSQL system. It
|
||||
makes no attempt to be a complete or thorough treatment of the
|
||||
topics it covers.
|
||||
experience with important aspects of the
|
||||
<productname>PostgreSQL</productname> system. It makes no attempt
|
||||
to be a complete or thorough treatment of the topics it covers.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/user.sgml,v 1.34 2002/11/11 20:14:04 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/user.sgml,v 1.35 2002/11/15 03:11:17 momjian Exp $
|
||||
-->
|
||||
|
||||
<book id="user">
|
||||
@ -23,13 +23,15 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/user.sgml,v 1.34 2002/11/11 20:14:04
|
||||
<title>What's In This Book</title>
|
||||
|
||||
<para>
|
||||
This book describes the use of the SQL language in PostgreSQL. We
|
||||
start with describing the general syntax of SQL, then explain how
|
||||
to create the structures to hold data, how to populate the
|
||||
database, and how to query it. The middle part lists the
|
||||
available data types and functions for use in SQL data commands.
|
||||
The rest of the book treats several aspects that are important for
|
||||
tuning a database for optimal performance.
|
||||
This book describes the use of the <acronym>SQL</acronym> language
|
||||
in <productname>PostgreSQL</productname>. We start with
|
||||
describing the general syntax of <acronym>SQL</acronym>, then
|
||||
explain how to create the structures to hold data, how to populate
|
||||
the database, and how to query it. The middle part lists the
|
||||
available data types and functions for use in
|
||||
<acronym>SQL</acronym> data commands. The rest of the book treats
|
||||
several aspects that are important for tuning a database for
|
||||
optimal performance.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -44,10 +46,10 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/user.sgml,v 1.34 2002/11/11 20:14:04
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Readers of this book should know how to connect to a PostgreSQL
|
||||
database and issue SQL commands. Readers that are unfamiliar with
|
||||
these issues are encouraged to read the &cite-tutorial; first. SQL
|
||||
commands are typically entered using the PostgreSQL interactive
|
||||
Readers of this book should know how to connect to a <productname>PostgreSQL</>
|
||||
database and issue <acronym>SQL</acronym> commands. Readers that are unfamiliar with
|
||||
these issues are encouraged to read the &cite-tutorial; first. <acronym>SQL</acronym>
|
||||
commands are typically entered using the <productname>PostgreSQL</> interactive
|
||||
terminal <application>psql</application>, but other programs that
|
||||
have similar functionality can be used as well.
|
||||
</para>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/xfunc.sgml,v 1.61 2002/09/21 18:32:54 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/xfunc.sgml,v 1.62 2002/11/15 03:11:17 momjian Exp $
|
||||
-->
|
||||
|
||||
<chapter id="xfunc">
|
||||
@ -674,7 +674,7 @@ CREATE FUNCTION square_root(double precision) RETURNS double precision
|
||||
|
||||
<note>
|
||||
<para>
|
||||
The user ID the <application>PostgreSQL</application> server runs
|
||||
The user ID the <productname>PostgreSQL</productname> server runs
|
||||
as must be able to traverse the path to the file you intend to
|
||||
load. Making the file or a higher-level directory not readable
|
||||
and/or not executable by the <systemitem>postgres</systemitem> user is a
|
||||
@ -691,7 +691,7 @@ CREATE FUNCTION square_root(double precision) RETURNS double precision
|
||||
|
||||
<note>
|
||||
<para>
|
||||
<application>PostgreSQL</application> will not compile a C function
|
||||
<productname>PostgreSQL</productname> will not compile a C function
|
||||
automatically. The object file must be compiled before it is referenced
|
||||
in a <command>CREATE
|
||||
FUNCTION</> command. See <xref linkend="dfunc"> for additional
|
||||
@ -721,7 +721,7 @@ CREATE FUNCTION square_root(double precision) RETURNS double precision
|
||||
|
||||
<note>
|
||||
<para>
|
||||
Before <application>PostgreSQL</application> release 7.2, only exact
|
||||
Before <productname>PostgreSQL</productname> release 7.2, only exact
|
||||
absolute paths to object files could be specified in <command>CREATE
|
||||
FUNCTION</>. This approach is now deprecated since it makes the
|
||||
function definition unnecessarily unportable. It's best to specify
|
||||
|
Loading…
Reference in New Issue
Block a user