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 ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers