Update obsolete examples of error messages; various other minor editing.
This commit is contained in:
parent
8b43e325eb
commit
6e59122490
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/advanced.sgml,v 1.35 2003/08/31 17:32:18 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/advanced.sgml,v 1.36 2003/09/12 22:17:18 tgl Exp $
|
||||
-->
|
||||
|
||||
<chapter id="tutorial-advanced">
|
||||
@ -123,7 +123,8 @@ INSERT INTO weather VALUES ('Berkeley', 45, 53, 0.0, '1994-11-28');
|
||||
</programlisting>
|
||||
|
||||
<screen>
|
||||
ERROR: <unnamed> referential integrity violation - key referenced from weather not found in cities
|
||||
ERROR: insert or update on "weather" violates foreign key constraint "$1"
|
||||
DETAIL: Key (city)=(Berkeley) is not present in "cities".
|
||||
</screen>
|
||||
</para>
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
<!--
|
||||
Documentation of the system catalogs, directed toward PostgreSQL developers
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/catalogs.sgml,v 2.73 2003/06/25 01:14:37 momjian Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/catalogs.sgml,v 2.74 2003/09/12 22:17:19 tgl Exp $
|
||||
-->
|
||||
|
||||
<chapter id="catalogs">
|
||||
@ -622,7 +622,7 @@
|
||||
<row>
|
||||
<entry><structfield>adnum</structfield></entry>
|
||||
<entry><type>int2</type></entry>
|
||||
<entry><literal>pg_attribute.attnum</literal></entry>
|
||||
<entry><literal><link linkend="catalog-pg-attribute"><structname>pg_attribute</structname></link>.attnum</literal></entry>
|
||||
<entry>The number of the column</entry>
|
||||
</row>
|
||||
|
||||
@ -1650,7 +1650,7 @@
|
||||
<row>
|
||||
<entry><structfield>refclassid</structfield></entry>
|
||||
<entry><type>oid</type></entry>
|
||||
<entry><literal>pg_class.oid</literal></entry>
|
||||
<entry><literal><link linkend="catalog-pg-class"><structname>pg_class</structname></link>.oid</literal></entry>
|
||||
<entry>The OID of the system catalog the referenced object is in</entry>
|
||||
</row>
|
||||
|
||||
@ -3579,7 +3579,7 @@
|
||||
<row>
|
||||
<entry><structfield>typbasetype</structfield></entry>
|
||||
<entry><type>oid</type></entry>
|
||||
<entry><literal>pg_type.oid</literal></entry>
|
||||
<entry><literal><link linkend="catalog-pg-type"><structname>pg_type</structname></link>.oid</literal></entry>
|
||||
<entry><para>
|
||||
If this is a derived type (see <structfield>typtype</structfield>),
|
||||
then <structfield>typbasetype</structfield> identifies
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/client-auth.sgml,v 1.57 2003/09/05 20:31:35 tgl Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/client-auth.sgml,v 1.58 2003/09/12 22:17:22 tgl Exp $
|
||||
-->
|
||||
|
||||
<chapter id="client-authentication">
|
||||
@ -130,7 +130,7 @@ hostnossl <replaceable>database</replaceable> <replaceable>user</replaceable>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
To be able make use of this option the server must be built
|
||||
To make use of this option the server must be built
|
||||
with SSL support enabled. Furthermore, SSL must be enabled by
|
||||
enabling the <varname>ssl</varname> configuration parameter
|
||||
(see <xref linkend="runtime-config"> for more information).
|
||||
@ -901,7 +901,7 @@ omicron bryanh guest1
|
||||
|
||||
<para>
|
||||
<ProgramListing>
|
||||
No pg_hba.conf entry for host 123.123.123.123, user andym, database testdb
|
||||
FATAL: no pg_hba.conf entry for host "123.123.123.123", user "andym", database "testdb"
|
||||
</ProgramListing>
|
||||
This is what you are most likely to get if you succeed in contacting
|
||||
the server, but it does not want to talk to you. As the message
|
||||
@ -912,7 +912,7 @@ No pg_hba.conf entry for host 123.123.123.123, user andym, database testdb
|
||||
|
||||
<para>
|
||||
<ProgramListing>
|
||||
Password authentication failed for user 'andym'
|
||||
FATAL: Password authentication failed for user "andym"
|
||||
</ProgramListing>
|
||||
Messages like this indicate that you contacted the server, and it is
|
||||
willing to talk to you, but not until you pass the authorization
|
||||
@ -924,25 +924,27 @@ Password authentication failed for user 'andym'
|
||||
|
||||
<para>
|
||||
<ProgramListing>
|
||||
FATAL 1: user "andym" does not exist
|
||||
FATAL: user "andym" does not exist
|
||||
</ProgramListing>
|
||||
The indicated user name was not found.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<ProgramListing>
|
||||
FATAL 1: Database "testdb" does not exist in the system catalog.
|
||||
FATAL: database "testdb" does not exist
|
||||
</ProgramListing>
|
||||
The database you are trying to connect to does not exist. Note that
|
||||
if you do not specify a database name, it defaults to the database
|
||||
user name, which may or may not be the right thing.
|
||||
</para>
|
||||
|
||||
<tip>
|
||||
<para>
|
||||
Note that the server log may contain more information about an
|
||||
The server log may contain more information about an
|
||||
authentication failure than is reported to the client. If you are
|
||||
confused about the reason for a failure, check the log.
|
||||
</para>
|
||||
</tip>
|
||||
</sect1>
|
||||
|
||||
</chapter>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/datatype.sgml,v 1.123 2003/08/31 17:32:18 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/datatype.sgml,v 1.124 2003/09/12 22:17:22 tgl Exp $
|
||||
-->
|
||||
|
||||
<chapter id="datatype">
|
||||
@ -2821,7 +2821,7 @@ CREATE TABLE test (a BIT(3), b BIT VARYING(5));
|
||||
INSERT INTO test VALUES (B'101', B'00');
|
||||
INSERT INTO test VALUES (B'10', B'101');
|
||||
<computeroutput>
|
||||
ERROR: Bit string length 2 does not match type BIT(3)
|
||||
ERROR: bit string length 2 does not match type bit(3)
|
||||
</computeroutput>
|
||||
INSERT INTO test VALUES (B'10'::bit(3), B'101');
|
||||
SELECT * FROM test;
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ddl.sgml,v 1.18 2003/08/31 17:32:18 petere Exp $ -->
|
||||
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ddl.sgml,v 1.19 2003/09/12 22:17:22 tgl Exp $ -->
|
||||
|
||||
<chapter id="ddl">
|
||||
<title>Data Definition</title>
|
||||
@ -1939,8 +1939,8 @@ REVOKE CREATE ON SCHEMA public FROM PUBLIC;
|
||||
DROP TABLE products;
|
||||
|
||||
NOTICE: constraint $1 on table orders depends on table products
|
||||
ERROR: Cannot drop table products because other objects depend on it
|
||||
Use DROP ... CASCADE to drop the dependent objects too
|
||||
ERROR: cannot drop table products because other objects depend on it
|
||||
HINT: Use DROP ... CASCADE to drop the dependent objects too.
|
||||
</screen>
|
||||
The error message contains a useful hint: if you do not want to
|
||||
bother deleting all the dependent objects individually, you can run
|
||||
@ -1958,7 +1958,7 @@ DROP TABLE products CASCADE;
|
||||
specifying <literal>CASCADE</literal>. Of course, the nature of
|
||||
the possible dependencies varies with the type of the object. You
|
||||
can also write <literal>RESTRICT</literal> instead of
|
||||
<literal>CASCADE</literal> to get the default behavior which is to
|
||||
<literal>CASCADE</literal> to get the default behavior, which is to
|
||||
prevent drops of objects that other objects depend on.
|
||||
</para>
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/docguide.sgml,v 1.45 2003/09/11 21:42:19 momjian Exp $ -->
|
||||
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/docguide.sgml,v 1.46 2003/09/12 22:17:22 tgl Exp $ -->
|
||||
|
||||
<appendix id="docguide">
|
||||
<title>Documentation</title>
|
||||
@ -30,8 +30,8 @@
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
Additionally, a number of plain-text README-type files can be found
|
||||
throughout the <productname>PostgreSQL</productname> source tree,
|
||||
Additionally, a number of plain-text <filename>README</filename> files can
|
||||
be found throughout the <productname>PostgreSQL</productname> source tree,
|
||||
documenting various implementation issues.
|
||||
</para>
|
||||
|
||||
@ -1244,10 +1244,12 @@ End:
|
||||
<para>
|
||||
Reference pages describing SQL commands should contain the
|
||||
following sections: Name, Synopsis, Description, Parameters,
|
||||
Usage, Diagnostics, Notes, Examples, Compatibility, History, See
|
||||
Outputs, Notes, Examples, Compatibility, History, See
|
||||
Also. The Parameters section is like the Options section, but
|
||||
there is more freedom about which clauses of the command can be
|
||||
listed. The Compatibility section should explain to what extent
|
||||
listed. The Outputs section is only needed if the command returns
|
||||
something other than a default command-completion tag. The Compatibility
|
||||
section should explain to what extent
|
||||
this command conforms to the SQL standard(s), or to which other
|
||||
database system it is compatible. The See Also section of SQL
|
||||
commands should list SQL commands before cross-references to
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/func.sgml,v 1.172 2003/09/11 18:30:38 momjian Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/func.sgml,v 1.173 2003/09/12 22:17:22 tgl Exp $
|
||||
PostgreSQL documentation
|
||||
-->
|
||||
|
||||
@ -3890,8 +3890,8 @@ substring('foobar' from 'o(.)b') <lineannotation>o</lineannotation>
|
||||
</table>
|
||||
|
||||
<para>
|
||||
Warning. <literal><function>to_char</function>(<type>interval</type>, <type>text</type>)</literal>
|
||||
is deprecated and should not be used in newly-written code. Will be removed in the next version.
|
||||
Warning: <literal><function>to_char</function>(<type>interval</type>, <type>text</type>)</literal>
|
||||
is deprecated and should not be used in newly-written code. It will be removed in the next version.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -6402,7 +6402,16 @@ SELECT a,
|
||||
2 | two
|
||||
3 | other
|
||||
</screen>
|
||||
</para>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
A <token>CASE</token> expression does not evaluate any subexpressions
|
||||
that are not needed to determine the result. For example, this is a
|
||||
possible way of avoiding a division-by-zero failure:
|
||||
<programlisting>
|
||||
SELECT ... WHERE CASE WHEN x <> 0 THEN y/x > 1.5 ELSE false END;
|
||||
</programlisting>
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
@ -6418,13 +6427,21 @@ SELECT a,
|
||||
|
||||
<para>
|
||||
The <function>COALESCE</function> function returns the first of its
|
||||
arguments that is not null. This is often useful to substitute a
|
||||
arguments that is not null. Null is returned only if all arguments
|
||||
are null. This is often useful to substitute a
|
||||
default value for null values when data is retrieved for display,
|
||||
for example:
|
||||
<programlisting>
|
||||
SELECT COALESCE(description, short_description, '(none)') ...
|
||||
</programlisting>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Like a <token>CASE</token> expression, <function>COALESCE</function> will
|
||||
not evaluate arguments that are not needed to determine the result;
|
||||
that is, arguments to the right of the first non-null argument are
|
||||
not evaluated.
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
@ -7277,6 +7294,21 @@ SELECT pg_type_is_visible('myschema.widget'::regtype);
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>
|
||||
<literal>
|
||||
<function>array_cat</function>
|
||||
(<type>anyarray</type>, <type>anyarray</type>)
|
||||
</literal>
|
||||
</entry>
|
||||
<entry><type>anyarray</type></entry>
|
||||
<entry>
|
||||
concatenate two arrays, returning <literal>NULL</literal>
|
||||
for <literal>NULL</literal> inputs
|
||||
</entry>
|
||||
<entry><literal>array_cat(ARRAY[1,2,3], ARRAY[4,5])</literal></entry>
|
||||
<entry><literal>{1,2,3,4,5}</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
<literal>
|
||||
<function>array_append</function>
|
||||
(<type>anyarray</type>, <type>anyelement</type>)
|
||||
@ -7293,17 +7325,17 @@ SELECT pg_type_is_visible('myschema.widget'::regtype);
|
||||
<row>
|
||||
<entry>
|
||||
<literal>
|
||||
<function>array_cat</function>
|
||||
(<type>anyarray</type>, <type>anyarray</type>)
|
||||
<function>array_prepend</function>
|
||||
(<type>anyelement</type>, <type>anyarray</type>)
|
||||
</literal>
|
||||
</entry>
|
||||
<entry><type>anyarray</type></entry>
|
||||
<entry>
|
||||
concatenate two arrays, returning <literal>NULL</literal>
|
||||
for <literal>NULL</literal> inputs
|
||||
append an element to the beginning of an array, returning
|
||||
<literal>NULL</literal> for <literal>NULL</literal> inputs
|
||||
</entry>
|
||||
<entry><literal>array_cat(ARRAY[1,2,3], ARRAY[4,5,6])</literal></entry>
|
||||
<entry><literal>{1,2,3,4,5,6}</literal></entry>
|
||||
<entry><literal>array_prepend(1, ARRAY[2,3])</literal></entry>
|
||||
<entry><literal>{1,2,3}</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
@ -7317,7 +7349,7 @@ SELECT pg_type_is_visible('myschema.widget'::regtype);
|
||||
returns a text representation of array dimension lower and upper bounds,
|
||||
generating an ERROR for <literal>NULL</literal> inputs
|
||||
</entry>
|
||||
<entry><literal>array_dims(array[[1,2,3],[4,5,6]])</literal></entry>
|
||||
<entry><literal>array_dims(array[[1,2,3], [4,5,6]])</literal></entry>
|
||||
<entry><literal>[1:2][1:3]</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
@ -7338,17 +7370,17 @@ SELECT pg_type_is_visible('myschema.widget'::regtype);
|
||||
<row>
|
||||
<entry>
|
||||
<literal>
|
||||
<function>array_prepend</function>
|
||||
(<type>anyelement</type>, <type>anyarray</type>)
|
||||
<function>array_upper</function>
|
||||
(<type>anyarray</type>, <type>integer</type>)
|
||||
</literal>
|
||||
</entry>
|
||||
<entry><type>anyarray</type></entry>
|
||||
<entry><type>integer</type></entry>
|
||||
<entry>
|
||||
append an element to the beginning of an array, returning
|
||||
returns upper bound of the requested array dimension, returning
|
||||
<literal>NULL</literal> for <literal>NULL</literal> inputs
|
||||
</entry>
|
||||
<entry><literal>array_prepend(1, ARRAY[2,3])</literal></entry>
|
||||
<entry><literal>{1,2,3}</literal></entry>
|
||||
<entry><literal>array_upper(ARRAY[1,2,3,4], 1)</literal></entry>
|
||||
<entry><literal>4</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
@ -7362,23 +7394,8 @@ SELECT pg_type_is_visible('myschema.widget'::regtype);
|
||||
concatenates array elements using provided delimiter, returning
|
||||
<literal>NULL</literal> for <literal>NULL</literal> inputs
|
||||
</entry>
|
||||
<entry><literal>array_to_string(array[1.1,2.2,3.3]::numeric(4,2)[],'~^~')</literal></entry>
|
||||
<entry><literal>1.10~^~2.20~^~3.30</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
<literal>
|
||||
<function>array_upper</function>
|
||||
(<type>anyarray</type>, <type>integer</type>)
|
||||
</literal>
|
||||
</entry>
|
||||
<entry><type>integer</type></entry>
|
||||
<entry>
|
||||
returns upper bound of the requested array dimension, returning
|
||||
<literal>NULL</literal> for <literal>NULL</literal> inputs
|
||||
</entry>
|
||||
<entry><literal>array_upper(array_append(ARRAY[1,2,3], 4), 1)</literal></entry>
|
||||
<entry><literal>4</literal></entry>
|
||||
<entry><literal>array_to_string(array[1, 2, 3], '~^~')</literal></entry>
|
||||
<entry><literal>1~^~2~^~3</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
@ -7392,8 +7409,8 @@ SELECT pg_type_is_visible('myschema.widget'::regtype);
|
||||
splits string into array elements using provided delimiter, returning
|
||||
<literal>NULL</literal> for <literal>NULL</literal> inputs
|
||||
</entry>
|
||||
<entry><literal>string_to_array('1.10~^~2.20~^~3.30','~^~')::float8[]</literal></entry>
|
||||
<entry><literal>{1.1,2.2,3.3}</literal></entry>
|
||||
<entry><literal>string_to_array( 'xx~^~yy~^~zz', '~^~')</literal></entry>
|
||||
<entry><literal>{xx,yy,zz}</literal></entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/info.sgml,v 1.19 2003/09/08 23:02:28 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/info.sgml,v 1.20 2003/09/12 22:17:23 tgl Exp $
|
||||
-->
|
||||
|
||||
<sect1 id="resources">
|
||||
@ -24,7 +24,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/info.sgml,v 1.19 2003/09/08 23:02:28 petere
|
||||
<term>READMEs</term>
|
||||
<listitem>
|
||||
<para>
|
||||
<filename>README</filename> files are available for some
|
||||
<filename>README</filename> files are available for most
|
||||
contributed packages.
|
||||
</para>
|
||||
</listitem>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/maintenance.sgml,v 1.24 2003/08/31 17:32:19 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/maintenance.sgml,v 1.25 2003/09/12 22:17:23 tgl Exp $
|
||||
-->
|
||||
|
||||
<chapter id="maintenance">
|
||||
@ -347,9 +347,8 @@ SELECT datname, age(datfrozenxid) FROM pg_database;
|
||||
|
||||
<programlisting>
|
||||
play=# VACUUM;
|
||||
WARNING: Some databases have not been vacuumed in 1613770184 transactions.
|
||||
Better vacuum them within 533713463 transactions,
|
||||
or you may have a wraparound failure.
|
||||
WARNING: some databases have not been vacuumed in 1613770184 transactions
|
||||
HINT: Better vacuum them within 533713463 transactions, or you may have a wraparound failure.
|
||||
VACUUM
|
||||
</programlisting>
|
||||
</para>
|
||||
@ -387,20 +386,11 @@ VACUUM
|
||||
</indexterm>
|
||||
|
||||
<para>
|
||||
<productname>PostgreSQL</productname> is unable to reuse B-tree index
|
||||
pages in certain cases. The problem is that if indexed rows are
|
||||
deleted, those index pages can only be reused by rows with similar
|
||||
values. For example, if indexed rows are deleted and newly
|
||||
inserted/updated rows have much higher values, the new rows can't use
|
||||
the index space made available by the deleted rows. Instead, such
|
||||
new rows must be placed on new index pages. In such cases, disk
|
||||
space used by the index will grow indefinitely, even if
|
||||
<command>VACUUM</> is run frequently.
|
||||
</para>
|
||||
<para>
|
||||
As a solution, you can use the <command>REINDEX</> command
|
||||
periodically to discard pages used by deleted rows. There is also
|
||||
<filename>contrib/reindexdb</> which can reindex an entire database.
|
||||
In some situations it is worthwhile to rebuild indexes periodically
|
||||
with the <command>REINDEX</> command. (There is also
|
||||
<filename>contrib/reindexdb</> which can reindex an entire database.)
|
||||
However, <productname>PostgreSQL</> 7.4 has substantially reduced the need
|
||||
for this activity compared to earlier releases.
|
||||
</para>
|
||||
</sect1>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.36 2003/08/31 17:32:19 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.37 2003/09/12 22:17:23 tgl Exp $
|
||||
-->
|
||||
|
||||
<chapter id="mvcc">
|
||||
@ -344,7 +344,7 @@ COMMIT;
|
||||
then the serializable transaction will be rolled back with the message
|
||||
|
||||
<screen>
|
||||
ERROR: Can't serialize access due to concurrent update
|
||||
ERROR: could not serialize access due to concurrent update
|
||||
</screen>
|
||||
|
||||
because a serializable transaction cannot modify rows changed by
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/notation.sgml,v 1.24 2003/09/08 23:17:15 tgl Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/notation.sgml,v 1.25 2003/09/12 22:17:23 tgl Exp $
|
||||
-->
|
||||
|
||||
<sect1 id="notation">
|
||||
@ -41,7 +41,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/notation.sgml,v 1.24 2003/09/08 23:17:15 tg
|
||||
in charge of installing and running the server. A <firstterm>user</firstterm>
|
||||
could be anyone who is using, or wants to use, any part of the
|
||||
<productname>PostgreSQL</productname> system. These terms should not
|
||||
be interpreted too narrowly; this documentation set does not have fixed
|
||||
be interpreted too narrowly; this book does not have fixed
|
||||
presumptions about system administration procedures.
|
||||
</para>
|
||||
</sect1>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/plpgsql.sgml,v 1.25 2003/09/11 21:42:20 momjian Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/plpgsql.sgml,v 1.26 2003/09/12 22:17:23 tgl Exp $
|
||||
-->
|
||||
|
||||
<chapter id="plpgsql">
|
||||
@ -2047,14 +2047,14 @@ COMMIT;
|
||||
RAISE <replaceable class="parameter">level</replaceable> '<replaceable class="parameter">format</replaceable>' <optional>, <replaceable class="parameter">variable</replaceable> <optional>, ...</optional></optional>;
|
||||
</synopsis>
|
||||
|
||||
Possible levels are <literal>DEBUG</literal> (write the message to
|
||||
the server log), <literal>LOG</literal> (write the message to the
|
||||
server log with a higher priority), <literal>INFO</literal>,
|
||||
<literal>NOTICE</literal> and <literal>WARNING</literal> (write
|
||||
the message to the server log and send it to the client, with
|
||||
respectively higher priorities), and <literal>EXCEPTION</literal>
|
||||
(raise an error and abort the current transaction). Whether
|
||||
messages of a particular priority are reported to the client,
|
||||
Possible levels are <literal>DEBUG</literal>,
|
||||
<literal>LOG</literal>, <literal>INFO</literal>,
|
||||
<literal>NOTICE</literal>, <literal>WARNING</literal>,
|
||||
and <literal>EXCEPTION</literal>.
|
||||
<literal>EXCEPTION</literal> raises an error and aborts the current
|
||||
transaction; the other levels only generate messages of different
|
||||
priority levels.
|
||||
Whether messages of a particular priority are reported to the client,
|
||||
written to the server log, or both is controlled by the
|
||||
<varname>log_min_messages</varname> and
|
||||
<varname>client_min_messages</varname> configuration
|
||||
@ -2078,14 +2078,14 @@ RAISE <replaceable class="parameter">level</replaceable> '<replaceable class="pa
|
||||
|
||||
<para>
|
||||
In this example, the value of <literal>v_job_id</> will replace the
|
||||
<literal>%</literal> in the string.
|
||||
<literal>%</literal> in the string:
|
||||
<programlisting>
|
||||
RAISE NOTICE ''Calling cs_create_job(%)'', v_job_id;
|
||||
</programlisting>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This example will abort the transaction with the given error message.
|
||||
This example will abort the transaction with the given error message:
|
||||
<programlisting>
|
||||
RAISE EXCEPTION ''Inexistent ID --> %'', user_id;
|
||||
</programlisting>
|
||||
@ -2111,10 +2111,9 @@ RAISE EXCEPTION ''Inexistent ID --> %'', user_id;
|
||||
<para>
|
||||
Thus, the only thing <application>PL/pgSQL</application>
|
||||
currently does when it encounters an abort during execution of a
|
||||
function or trigger procedure is to write some additional
|
||||
<literal>NOTICE</literal> level log messages telling in which
|
||||
function and where (line number and type of statement) this
|
||||
happened. The error always stops execution of the function.
|
||||
function or trigger procedure is to add some fields to the message
|
||||
telling in which function and where (line number and type of statement)
|
||||
the error happened. The error always stops execution of the function.
|
||||
</para>
|
||||
</sect1>
|
||||
|
||||
@ -2365,8 +2364,8 @@ CREATE TRIGGER emp_stamp BEFORE INSERT OR UPDATE ON emp
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
You can overload functions in <productname>PostgreSQL</>. This is often used to work
|
||||
around the lack of default parameters.
|
||||
You can overload function names in <productname>PostgreSQL</>. This is
|
||||
often used to work around the lack of default parameters.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/plpython.sgml,v 1.19 2003/08/31 17:32:19 petere Exp $ -->
|
||||
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/plpython.sgml,v 1.20 2003/09/12 22:17:23 tgl Exp $ -->
|
||||
|
||||
<chapter id="plpython">
|
||||
<title>PL/Python - Python Procedural Language</title>
|
||||
@ -63,7 +63,7 @@ def __plpython_procedure_myfunc_23456():
|
||||
return args[0]
|
||||
</programlisting>
|
||||
|
||||
where 23456 is the OID of the function.
|
||||
assuming that 23456 is the OID of the function.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/postgres.sgml,v 1.55 2003/09/08 23:02:28 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/postgres.sgml,v 1.56 2003/09/12 22:17:23 tgl Exp $
|
||||
-->
|
||||
|
||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
|
||||
@ -28,13 +28,13 @@ $Header: /cvsroot/pgsql/doc/src/sgml/postgres.sgml,v 1.55 2003/09/08 23:02:28 pe
|
||||
|
||||
<partintro>
|
||||
<para>
|
||||
Welcome to <productname>PostgreSQL</productname> Tutorial. The
|
||||
Welcome to the <productname>PostgreSQL</productname> Tutorial. The
|
||||
following few chapters are intended to give a simple introduction
|
||||
to <productname>PostgreSQL</productname>, relational database
|
||||
concepts, and the SQL language to those who are new to any one of
|
||||
these aspects. We only assume some general knowledge about how to
|
||||
use computers. No particular Unix or programming experience is
|
||||
required. This part is mainly intended to give you a hands-on
|
||||
required. This part is mainly intended to give you some hands-on
|
||||
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.
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/queries.sgml,v 1.23 2003/08/31 17:32:19 petere Exp $ -->
|
||||
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/queries.sgml,v 1.24 2003/09/12 22:17:23 tgl Exp $ -->
|
||||
|
||||
<chapter id="queries">
|
||||
<title>Queries</title>
|
||||
@ -981,6 +981,11 @@ SELECT a, b, c FROM ...
|
||||
name must also be given, as in
|
||||
<programlisting>
|
||||
SELECT tbl1.a, tbl2.a, tbl1.b FROM ...
|
||||
</programlisting>
|
||||
When working with multiple tables, it can also be useful to ask for
|
||||
all the columns of a particular table:
|
||||
<programlisting>
|
||||
SELECT tbl1.*, tbl2.a FROM ...
|
||||
</programlisting>
|
||||
(See also <xref linkend="queries-where">.)
|
||||
</para>
|
||||
@ -1237,6 +1242,17 @@ SELECT a AS b FROM table1 ORDER BY a;
|
||||
<quote>smaller</quote> is defined in terms of the
|
||||
<literal><</literal> operator. Similarly, descending order is
|
||||
determined with the <literal>></literal> operator.
|
||||
<footnote>
|
||||
<para>
|
||||
Actually, <productname>PostgreSQL</> uses the <firstterm>default btree
|
||||
operator class</> for the column's datatype to determine the sort
|
||||
ordering for <literal>ASC</> and <literal>DESC</>. Conventionally,
|
||||
datatypes will be set up so that the <literal><</literal> and
|
||||
<literal>></literal> operators correspond to this sort ordering,
|
||||
but a user-defined datatype's designer could choose to do something
|
||||
different.
|
||||
</para>
|
||||
</footnote>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/regress.sgml,v 1.33 2003/08/31 17:32:19 petere Exp $ -->
|
||||
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/regress.sgml,v 1.34 2003/09/12 22:17:23 tgl Exp $ -->
|
||||
|
||||
<chapter id="regress">
|
||||
<title id="regress-title">Regression Tests</title>
|
||||
@ -392,13 +392,14 @@ testname/platformpattern=comparisonfilename
|
||||
Therefore, we provide a variant comparison file,
|
||||
<filename>horology-no-DST-before-1970.out</filename>, which includes
|
||||
the results to be expected on these systems. To silence the bogus
|
||||
<quote>failure</quote> message on <systemitem>HPPA</systemitem> platforms, <filename>resultmap</filename>
|
||||
includes
|
||||
<quote>failure</quote> message on <systemitem>HPUX</systemitem> platforms,
|
||||
<filename>resultmap</filename> includes
|
||||
<programlisting>
|
||||
horology/hppa=horology-no-DST-before-1970
|
||||
horology/.*-hpux=horology-no-DST-before-1970
|
||||
</programlisting>
|
||||
which will trigger on any machine for which the output of <command>config.guess</command>
|
||||
begins with <literal>hppa</literal>. Other lines
|
||||
which will trigger on any machine for which the output of
|
||||
<command>config.guess</command> includes <literal>-hpux</literal>.
|
||||
Other lines
|
||||
in <filename>resultmap</> select the variant comparison file for other
|
||||
platforms where it's appropriate.
|
||||
</para>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.207 2003/09/11 21:42:20 momjian Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.208 2003/09/12 22:17:23 tgl Exp $
|
||||
-->
|
||||
|
||||
<Chapter Id="runtime">
|
||||
@ -322,9 +322,9 @@ su - postgres -c "/usr/local/pgsql/bin/pg_ctl start -l logfile -D /usr/local/pgs
|
||||
|
||||
<para>
|
||||
<screen>
|
||||
FATAL: StreamServerPort: bind() failed: Address already in use
|
||||
Is another postmaster already running on port 5432?
|
||||
If not, wait a few seconds an retry.
|
||||
LOG: could not bind IPv4 socket: Address already in use
|
||||
HINT: Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
|
||||
FATAL: could not create TCP/IP listen socket
|
||||
</screen>
|
||||
This usually means just what it suggests: you tried to start
|
||||
another <command>postmaster</command> on the same port where one is already running.
|
||||
@ -334,35 +334,36 @@ FATAL: StreamServerPort: bind() failed: Address already in use
|
||||
on a reserved port number may draw something like:
|
||||
<screen>
|
||||
$ <userinput>postmaster -i -p 666</userinput>
|
||||
FATAL: StreamServerPort: bind() failed: Permission denied
|
||||
Is another postmaster already running on port 666?
|
||||
If not, wait a few seconds an retry.
|
||||
LOG: could not bind IPv4 socket: Permission denied
|
||||
HINT: Is another postmaster already running on port 666? If not, wait a few seconds and retry.
|
||||
FATAL: could not create TCP/IP listen socket
|
||||
</screen>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
A message like
|
||||
<screen>
|
||||
IpcMemoryCreate: shmget(key=5440001, size=83918612, 01600) failed: Invalid argument
|
||||
FATAL 1: ShmemCreate: cannot create region
|
||||
FATAL: could not create shared memory segment: Invalid argument
|
||||
DETAIL: Failed syscall was shmget(key=5440001, size=4011376640, 03600).
|
||||
</screen>
|
||||
probably means your kernel's limit on the size of shared memory is
|
||||
smaller than the buffer area <productname>PostgreSQL</productname>
|
||||
is trying to create (83918612 bytes in this example). Or it could
|
||||
smaller than the work area <productname>PostgreSQL</productname>
|
||||
is trying to create (4011376640 bytes in this example). Or it could
|
||||
mean that you do not have System-V-style shared memory support
|
||||
configured into your kernel at all. As a temporary workaround, you
|
||||
can try starting the server with a smaller-than-normal number
|
||||
of buffers (<option>-B</option> switch). You will eventually want
|
||||
to reconfigure your kernel to increase the allowed shared memory
|
||||
size. You may also see this message when trying to start multiple
|
||||
servers on the same machine if their total space requested
|
||||
servers on the same machine, if their total space requested
|
||||
exceeds the kernel limit.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
An error like
|
||||
<screen>
|
||||
IpcSemaphoreCreate: semget(key=5440026, num=16, 01600) failed: No space left on device
|
||||
FATAL: could not create semaphores: No space left on device
|
||||
DETAIL: Failed syscall was semget(5440126, 17, 03600).
|
||||
</screen>
|
||||
does <emphasis>not</emphasis> mean you've run out of disk
|
||||
space. It means your kernel's limit on the number of <systemitem
|
||||
@ -401,7 +402,7 @@ IpcSemaphoreCreate: semget(key=5440026, num=16, 01600) failed: No space left on
|
||||
<para>
|
||||
<screen>
|
||||
psql: could not connect to server: Connection refused
|
||||
Is the server running on host server.joe.com and accepting
|
||||
Is the server running on host "server.joe.com" and accepting
|
||||
TCP/IP connections on port 5432?
|
||||
</screen>
|
||||
This is the generic <quote>I couldn't find a server to talk
|
||||
@ -414,7 +415,7 @@ psql: could not connect to server: Connection refused
|
||||
Alternatively, you'll get this when attempting Unix-domain socket
|
||||
communication to a local server:
|
||||
<screen>
|
||||
psql: could not connect to server: Connection refused
|
||||
psql: could not connect to server: No such file or directory
|
||||
Is the server running locally and accepting
|
||||
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
|
||||
</screen>
|
||||
@ -546,7 +547,7 @@ SET ENABLE_SEQSCAN TO OFF;
|
||||
The virtual table <structname>pg_settings</structname> allows
|
||||
displaying and updating session run-time parameters. It contains one
|
||||
row for each configuration parameter; the columns are shown in
|
||||
<xref linkend="runtime-pgsettings-table">. This form allows the
|
||||
<xref linkend="runtime-pgsettings-table">. This table allows the
|
||||
configuration data to be joined with other tables and have a
|
||||
selection criteria applied.
|
||||
</para>
|
||||
@ -3381,8 +3382,9 @@ default:\
|
||||
|
||||
<para>
|
||||
There are several ways to shut down the database server. You control
|
||||
the type of shutdown by sending different signals to the server
|
||||
process.
|
||||
the type of shutdown by sending different signals to the
|
||||
<command>postmaster</command> process.
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><systemitem>SIGTERM</systemitem><indexterm><primary>SIGTERM</></></term>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/start.sgml,v 1.31 2003/08/10 01:20:34 tgl Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/start.sgml,v 1.32 2003/09/12 22:17:24 tgl Exp $
|
||||
-->
|
||||
|
||||
<chapter id="tutorial-start">
|
||||
@ -183,10 +183,10 @@ createdb: command not found
|
||||
<para>
|
||||
Another response could be this:
|
||||
<screen>
|
||||
psql: could not connect to server: Connection refused
|
||||
createdb: could not connect to database template1: could not connect to server:
|
||||
No such file or directory
|
||||
Is the server running locally and accepting
|
||||
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
|
||||
createdb: database creation failed
|
||||
</screen>
|
||||
This means that the server was not started, or it was not started
|
||||
where <command>createdb</command> expected it. Again, check the
|
||||
@ -197,8 +197,7 @@ createdb: database creation failed
|
||||
If you do not have the privileges required to create a database,
|
||||
you will see the following:
|
||||
<screen>
|
||||
ERROR: CREATE DATABASE: permission denied
|
||||
createdb: database creation failed
|
||||
createdb: database creation failed: ERROR: permission denied to create database
|
||||
</screen>
|
||||
Not every user has authorization to create new databases. If
|
||||
<productname>PostgreSQL</productname> refuses to create databases
|
||||
@ -358,7 +357,7 @@ mydb=#
|
||||
<prompt>mydb=></prompt> <userinput>SELECT version();</userinput>
|
||||
version
|
||||
----------------------------------------------------------------
|
||||
PostgreSQL 7.3devel on i586-pc-linux-gnu, compiled by GCC 2.96
|
||||
PostgreSQL &version; on i586-pc-linux-gnu, compiled by GCC 2.96
|
||||
(1 row)
|
||||
|
||||
<prompt>mydb=></prompt> <userinput>SELECT current_date;</userinput>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/typeconv.sgml,v 1.33 2003/08/31 17:32:20 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/typeconv.sgml,v 1.34 2003/09/12 22:17:24 tgl Exp $
|
||||
-->
|
||||
|
||||
<chapter Id="typeconv">
|
||||
@ -434,7 +434,7 @@ not some other type was used:
|
||||
<screen>
|
||||
SELECT @ '-4.5e500' AS "abs";
|
||||
|
||||
ERROR: Input '-4.5e500' is out of range for float8
|
||||
ERROR: "-4.5e500" is out of range for float8
|
||||
</screen>
|
||||
</para>
|
||||
|
||||
@ -445,8 +445,9 @@ try a similar case with <literal>!</>, we get:
|
||||
<screen>
|
||||
SELECT '20' ! AS "factorial";
|
||||
|
||||
ERROR: Unable to identify a postfix operator '!' for type 'text'
|
||||
You may need to add parentheses or an explicit cast
|
||||
ERROR: operator is not unique: "unknown" !
|
||||
HINT: Could not choose a best candidate operator. You may need to add explicit
|
||||
typecasts.
|
||||
</screen>
|
||||
This happens because the system can't decide which of the several
|
||||
possible <literal>!</> operators should be preferred. We can help
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/xfunc.sgml,v 1.74 2003/09/11 21:42:20 momjian Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/xfunc.sgml,v 1.75 2003/09/12 22:17:24 tgl Exp $
|
||||
-->
|
||||
|
||||
<sect1 id="xfunc">
|
||||
@ -272,7 +272,14 @@ SELECT name, double_salary(emp) AS dream
|
||||
Notice the use of the syntax <literal>$1.salary</literal>
|
||||
to select one field of the argument row value. Also notice
|
||||
how the calling <command>SELECT</> command uses a table name to denote
|
||||
the entire current row of that table as a composite value.
|
||||
the entire current row of that table as a composite value. The table
|
||||
row can alternatively be referenced like this:
|
||||
<screen>
|
||||
SELECT name, double_salary(emp.*) AS dream
|
||||
FROM emp
|
||||
WHERE emp.cubicle ~= point '(2,1)';
|
||||
</screen>
|
||||
which emphasizes its row nature.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
Loading…
x
Reference in New Issue
Block a user