David et al,

How about something like this?

Cheers,

Colin
diff --git a/doc/src/sgml/ref/select.sgml b/doc/src/sgml/ref/select.sgml
index e603b76..a68014b 100644
--- a/doc/src/sgml/ref/select.sgml
+++ b/doc/src/sgml/ref/select.sgml
@@ -33,13 +33,14 @@ PostgreSQL documentation
  <refsynopsisdiv>
 <synopsis>
 [ WITH [ RECURSIVE ] <replaceable class="parameter">with_query</replaceable> 
[, ...] ]
-SELECT [ ALL | DISTINCT [ ON ( <replaceable 
class="parameter">expression</replaceable> [, ...] ) ] ]
+{ SELECT [ ALL | DISTINCT [ ON ( <replaceable 
class="parameter">expression</replaceable> [, ...] ) ] ]
     * | <replaceable class="parameter">expression</replaceable> [ [ AS ] 
<replaceable class="parameter">output_name</replaceable> ] [, ...]
     [ FROM <replaceable class="parameter">from_item</replaceable> [, ...] ]
     [ WHERE <replaceable class="parameter">condition</replaceable> ]
     [ GROUP BY <replaceable class="parameter">expression</replaceable> [, ...] 
]
     [ HAVING <replaceable class="parameter">condition</replaceable> [, ...] ]
     [ WINDOW <replaceable class="parameter">window_name</replaceable> AS ( 
<replaceable class="parameter">window_definition</replaceable> ) [, ...] ]
+| TABLE [ ONLY ] <replaceable class="parameter">table_name</replaceable> [ * ] 
}
     [ { UNION | INTERSECT | EXCEPT } [ ALL | DISTINCT ] <replaceable 
class="parameter">select</replaceable> ]
     [ ORDER BY <replaceable class="parameter">expression</replaceable> [ ASC | 
DESC | USING <replaceable class="parameter">operator</replaceable> ] [ NULLS { 
FIRST | LAST } ] [, ...] ]
     [ LIMIT { <replaceable class="parameter">count</replaceable> | ALL } ]
@@ -60,8 +61,6 @@ SELECT [ ALL | DISTINCT [ ON ( <replaceable 
class="parameter">expression</replac
 <phrase>and <replaceable class="parameter">with_query</replaceable> 
is:</phrase>
 
     <replaceable class="parameter">with_query_name</replaceable> [ ( 
<replaceable class="parameter">column_name</replaceable> [, ...] ) ] AS ( 
<replaceable class="parameter">select</replaceable> | <replaceable 
class="parameter">values</replaceable> | <replaceable 
class="parameter">insert</replaceable> | <replaceable 
class="parameter">update</replaceable> | <replaceable 
class="parameter">delete</replaceable> )
-
-TABLE [ ONLY ] <replaceable class="parameter">table_name</replaceable> [ * ]
 </synopsis>
 
  </refsynopsisdiv>
@@ -198,6 +197,27 @@ TABLE [ ONLY ] <replaceable 
class="parameter">table_name</replaceable> [ * ]
    <literal>UPDATE</literal> privilege as well (for at least one column
    of each table so selected).
   </para>
+
+  <refsect2 id="SQL-TABLE">
+   <title><literal>TABLE</literal> Command</title>
+
+   <para>
+    The command
+<programlisting>
+TABLE <replaceable class="parameter">name</replaceable>
+</programlisting>
+    is equivalent to
+<programlisting>
+SELECT * FROM <replaceable class="parameter">name</replaceable>
+</programlisting>
+    It can be used as a top-level command or as a space-saving syntax
+    variant in parts of complex queries. Only the <literal>WITH</>, 
<literal>ORDER BY</>, <literal>LIMIT</>,
+    and Locking clauses and set operations can be used with <command>TABLE</>; 
the
+    <literal>WHERE</> clause and any form of aggregation cannot be used.
+
+    Note that on this page and other places in the documentation, where 
<command>SELECT</> is mentioned, <command>TABLE</> is also assumed, subject to 
the restrictions mentioned here.
+   </para>
+  </refsect2>
  </refsect1>
 
  <refsect1>
@@ -211,7 +231,7 @@ TABLE [ ONLY ] <replaceable 
class="parameter">table_name</replaceable> [ * ]
     subqueries that can be referenced by name in the primary query.
     The subqueries effectively act as temporary tables or views
     for the duration of the primary query.
-    Each subquery can be a <command>SELECT</command>, 
<command>VALUES</command>,
+    Each subquery can be a <command>SELECT</command>, <command>TABLE</>, 
<command>VALUES</command>,
     <command>INSERT</command>, <command>UPDATE</command> or
     <command>DELETE</command> statement.
     When writing a data-modifying statement (<command>INSERT</command>,
@@ -1437,23 +1457,6 @@ SELECT * FROM (SELECT * FROM mytable FOR UPDATE) ss 
ORDER BY column1;
    </para>
   </caution>
   </refsect2>
-
-  <refsect2 id="SQL-TABLE">
-   <title><literal>TABLE</literal> Command</title>
-
-   <para>
-    The command
-<programlisting>
-TABLE <replaceable class="parameter">name</replaceable>
-</programlisting>
-    is completely equivalent to
-<programlisting>
-SELECT * FROM <replaceable class="parameter">name</replaceable>
-</programlisting>
-    It can be used as a top-level command or as a space-saving syntax
-    variant in parts of complex queries.
-   </para>
-  </refsect2>
  </refsect1>
 
  <refsect1>
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to