]> granicus.if.org Git - postgresql/commitdiff
Update obsolete examples of error messages; various other minor editing.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 12 Sep 2003 22:17:24 +0000 (22:17 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 12 Sep 2003 22:17:24 +0000 (22:17 +0000)
20 files changed:
doc/src/sgml/advanced.sgml
doc/src/sgml/catalogs.sgml
doc/src/sgml/client-auth.sgml
doc/src/sgml/datatype.sgml
doc/src/sgml/ddl.sgml
doc/src/sgml/docguide.sgml
doc/src/sgml/func.sgml
doc/src/sgml/info.sgml
doc/src/sgml/maintenance.sgml
doc/src/sgml/mvcc.sgml
doc/src/sgml/notation.sgml
doc/src/sgml/plpgsql.sgml
doc/src/sgml/plpython.sgml
doc/src/sgml/postgres.sgml
doc/src/sgml/queries.sgml
doc/src/sgml/regress.sgml
doc/src/sgml/runtime.sgml
doc/src/sgml/start.sgml
doc/src/sgml/typeconv.sgml
doc/src/sgml/xfunc.sgml

index c26e15b6f024e744d6de56aa475e16776332807e..98d8803a4c5c00246d909db696b628e68fc61140 100644 (file)
@@ -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:  &lt;unnamed&gt; 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>
 
index 777bdd9291f47302f1e710c5cb5479007e657f62..f918e6f1bf2ee51a6d245386fe0b7b8ae49b703a 100644 (file)
@@ -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">
      <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>
 
      <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>
 
      <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
index 481957e4ee17b09fb06c329ff027b883cc62e3af..23d90e9d4fae43574b4ba260eb2ee2ba6c9bb450 100644 (file)
@@ -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>
index cb399f5ee8519a45b5b1707a245dd98dd967fa97..5a5cb6af7939c08cbd64f707ee78271cfb51bbac 100644 (file)
@@ -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;
index 551ca05e9aa29f56a40bfed91662d0777e780e57..4b15809993d8063e86877c0de46f9b6147d8e3cf 100644 (file)
@@ -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>
 
index 892a8ac72ac4fa67aa900026c9719ef2d0acdf7a..6dd0d233a89f313914373cd1100bb8f542ec4f05 100644 (file)
@@ -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
index f2818eb0c8913ca803da102059782804441a779f..617f51f095e33561bf0a785505c880807c6fa4ee 100644 (file)
@@ -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 &lt;&gt; 0 THEN y/x &gt; 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>
index 73e1d854d8ef009162b207d6d60c2b933f5bd943..0422d9b3713d4378046982adf09559821691e918 100644 (file)
@@ -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>
index dfa2e259ffc1ef6f5c942e765ef6c037917e7011..1affca872a76bcfad28840d7c8cdaf980491c45f 100644 (file)
@@ -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>
 
index 12833a36e32de18d9f1f5e7d3c6214313cc357fe..b74d03804c5a7e83939a7df731f17d72696dbec8 100644 (file)
@@ -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
index dff64bca1004972e4036406732f901cfa570a6ca..4b44be83621dc9287d96c3cfc6b5b0fd5aea5568 100644 (file)
@@ -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>
index 99966c1d1e6c9a100bc91f3ee5af8229b9b5cdd5..d665b8986df97f5bba8806bd3b502134d0f74bd6 100644 (file)
@@ -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>
 
index 2f854a3a83de0b1af90e685100ba74de9c230748..802ea6bfc43ed03df1e5da0fb907cd98912b2ba0 100644 (file)
@@ -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>
index 9f9fa36ecded6613d7000c212f58dd06ab9c5414..9c2cba1b1a6c9e63fea13282d21b5f0164220865 100644 (file)
@@ -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.
index b717ad445a0be4005361fcb2c17dfaeffebaa535..2528154288c6af0fe6e96a9137a7654a4eb4b05b 100644 (file)
@@ -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>&lt;</literal> operator.  Similarly, descending order is
    determined with the <literal>&gt;</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>&lt;</literal> and
+      <literal>&gt;</literal> operators correspond to this sort ordering,
+      but a user-defined datatype's designer could choose to do something
+      different.
+     </para>
+    </footnote>
   </para>
 
   <para>
index d6b0de87f1da50810b6c9540351adcf72d3efdbd..768f0cf6ea05871bd32e314bdb0c8fbeacc740b0 100644 (file)
@@ -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>
index fa222c1a068c780319868cad8ffb7ed0cfb6499c..853126c9812ce94b25e6b126e550c1c083fbcdc4 100644 (file)
@@ -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>
index 2aafe7813e421890f25274054e861c15bd241968..e71fd8439530512997772b030cad8517a367962b 100644 (file)
@@ -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=&gt;</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=&gt;</prompt> <userinput>SELECT current_date;</userinput>
index d93a91b5ed6d85bfb474a11022c5059390dba367..5f723a12bef4c09a59033caf2046aedffe6b70e0 100644 (file)
@@ -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
index ea446c9258fbd6b09df92d671865d538c2e96d7f..f570ce89fd42346d3585329fd499127f33601f95 100644 (file)
@@ -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>