Commit da814903 authored by Bruce Momjian's avatar Bruce Momjian

SGML improvements.

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