*** postgresql-6.4.2.orig/doc/src/sgml/ref/copy.sgml	Thu Jan 28 16:11:12 1999
--- postgresql-6.4.2/doc/src/sgml/ref/copy.sgml	Thu Jan 28 16:10:22 1999
***************
*** 390,396 ****
   </refsect1>
   
   <refsect1 ID="R1-SQL-COPY-5">
!   <title>Bugs</title>
    <para>
     <command>COPY</command> stops operation at the first error.  This
     should not lead to problems in the event of
--- 390,400 ----
   </refsect1>
   
   <refsect1 ID="R1-SQL-COPY-5">
!   <title>Bugs and features</title>
!   <para>
!    <command>COPY</command> neither invokes rules nor acts on column defaults.
!    It does invoke triggers, however.
!   </para>
    <para>
     <command>COPY</command> stops operation at the first error.  This
     should not lead to problems in the event of
*** postgresql-6.4.2.orig/doc/src/sgml/ref/select.sgml	Thu Jan 28 16:11:12 1999
--- postgresql-6.4.2/doc/src/sgml/ref/select.sgml	Thu Jan 28 16:16:35 1999
***************
*** 190,198 ****
     Description
    </title>
    <para>
!    <command>SELECT</command> will get all rows which satisfy the
!  WHERE condition
!    or all rows of a table if WHERE is omitted.</para>
     
    <para>
     The GROUP BY clause allows a user to divide a table
--- 190,204 ----
     Description
    </title>
    <para>
!    <command>SELECT</command> will return rows from one or more tables.
!    Candidates for selection are rows which satisfy the WHERE condition;
!    if WHERE is omitted, all rows are candidates.</para>
!   <para>
!    <command>DISTINCT</command> will eliminate all duplicate rows from the
!    selection.
!    <command>DISTINCT ON <replaceable class="PARAMETER">column</replaceable></command> will eliminate all duplicates in the specified column; this is
! equivalent to using <command>GROUP BY <replaceable class="PARAMETER">column</replaceable></command>.  <command>ALL</command> will return all candidate rows,
! including duplicates.
     
    <para>
     The GROUP BY clause allows a user to divide a table
***************
*** 232,239 ****
      </synopsis>
      
      where <replaceable class="PARAMETER">cond_op</replaceable> can be
!     one of: =, &lt;, &lt;=, &gt;, &gt;=, &lt;&gt;
!     or a conditional operator like ALL, ANY, IN, LIKE, et cetera
      and <replaceable class="PARAMETER">log_op</replaceable> can be one 
      of: AND, OR, NOT.
      The comparison returns either TRUE or FALSE and all
--- 238,246 ----
      </synopsis>
      
      where <replaceable class="PARAMETER">cond_op</replaceable> can be
!     one of: =, &lt;, &lt;=, &gt;, &gt;= or &lt;&gt;,
!     a conditional operator like ALL, ANY, IN, LIKE, et cetera or a
!     locally-defined operator, 
      and <replaceable class="PARAMETER">log_op</replaceable> can be one 
      of: AND, OR, NOT.
      The comparison returns either TRUE or FALSE and all
***************
*** 251,260 ****
     </title>
     <para>
      GROUP BY specifies a grouped table derived by the application
!     of the this clause:
      <synopsis>
  GROUP BY <replaceable class="PARAMETER">column</replaceable> [, ...]
!     </synopsis></para></refsect2>
      
    <refsect2 id="R2-SQL-HAVING-2">
     <refsect2info>
--- 258,273 ----
     </title>
     <para>
      GROUP BY specifies a grouped table derived by the application
!     of this clause:
      <synopsis>
  GROUP BY <replaceable class="PARAMETER">column</replaceable> [, ...]
!     </synopsis></para>
!     <para>
!      GROUP BY will condense into a single row all rows that share the same values for the
!      grouped columns; aggregates return values derived from all rows that make up the group.  The value returned for an ungrouped
!      and unaggregated column is dependent on the order in which rows happen to be read from the database.
!     </para>
! </refsect2>
      
    <refsect2 id="R2-SQL-HAVING-2">
     <refsect2info>
***************
*** 312,319 ****
      </programlisting></para>
      
     <para>
!     The columns in the ORDER BY must appear in the SELECT clause.
!     Thus the following statement is illegal:
      <programlisting>
  SELECT name FROM distributors ORDER BY code;
      </programlisting></para>
--- 325,332 ----
      </programlisting></para>
      
     <para>
!     From release 6.4 of PostgreSQL, the columns in the ORDER BY clause do not need to appear in the SELECT clause.
!     Thus the following statement is now legal:
      <programlisting>
  SELECT name FROM distributors ORDER BY code;
      </programlisting></para>
***************
*** 394,400 ****
    </programlisting>
    <para>
     To sum the column <literal>len</literal> of all films and group
!    the reults by <literal>kind</literal>:
    </para>
    <programlisting>
  SELECT kind, SUM(len) AS total FROM films GROUP BY kind;
--- 407,413 ----
    </programlisting>
    <para>
     To sum the column <literal>len</literal> of all films and group
!    the results by <literal>kind</literal>:
    </para>
    <programlisting>
  SELECT kind, SUM(len) AS total FROM films GROUP BY kind;
***************
*** 410,416 ****
  
    <para>
     To sum the column <literal>len</literal> of all films, group
!    the reults by <literal>kind</literal> and show those group totals
     that are less than 5 hours:
    </para>
    <programlisting>
--- 423,429 ----
  
    <para>
     To sum the column <literal>len</literal> of all films, group
!    the results by <literal>kind</literal> and show those group totals
     that are less than 5 hours:
    </para>
    <programlisting>
***************
*** 525,530 ****
--- 538,547 ----
       "AS" clause may be referenced in GROUP BY and HAVING clauses.
       This is not currently
       allowed in <productname>Postgres</productname>.
+     </para>
+      
+     <para>
+      The DISTINCT ON phrase is not part of <acronym>SQL92</acronym>.
      </para>
     </refsect3>
  
