1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-17 06:41:09 +03:00

Clarify documentation about SQL:2008 variant of LIMIT/OFFSET syntax.

The point that you need parentheses for non-constant expressions apparently
needs to be brought out a bit more clearly, per bug #6315.
This commit is contained in:
Tom Lane
2011-12-01 16:39:07 -05:00
parent 698bb4ec4f
commit da1eacb8d2

View File

@ -1056,17 +1056,19 @@ OFFSET <replaceable class="parameter">start</replaceable>
OFFSET <replaceable class="parameter">start</replaceable> { ROW | ROWS } OFFSET <replaceable class="parameter">start</replaceable> { ROW | ROWS }
FETCH { FIRST | NEXT } [ <replaceable class="parameter">count</replaceable> ] { ROW | ROWS } ONLY FETCH { FIRST | NEXT } [ <replaceable class="parameter">count</replaceable> ] { ROW | ROWS } ONLY
</synopsis> </synopsis>
According to the standard, the <literal>OFFSET</literal> clause must come In this syntax, to write anything except a simple integer constant for
before the <literal>FETCH</literal> clause if both are present; but <replaceable class="parameter">start</> or <replaceable
<productname>PostgreSQL</> is laxer and allows either order. class="parameter">count</replaceable>, you must write parentheses
around it.
If <replaceable class="parameter">count</> is
omitted in a <literal>FETCH</> clause, it defaults to 1.
<literal>ROW</literal> <literal>ROW</literal>
and <literal>ROWS</literal> as well as <literal>FIRST</literal> and <literal>ROWS</literal> as well as <literal>FIRST</literal>
and <literal>NEXT</literal> are noise words that don't influence and <literal>NEXT</literal> are noise words that don't influence
the effects of these clauses. In this syntax, when using expressions the effects of these clauses.
other than simple constants for <replaceable class="parameter">start</> According to the standard, the <literal>OFFSET</literal> clause must come
or <replaceable class="parameter">count</replaceable>, parentheses will be before the <literal>FETCH</literal> clause if both are present; but
necessary in most cases. If <replaceable class="parameter">count</> is <productname>PostgreSQL</> is laxer and allows either order.
omitted in <literal>FETCH</>, it defaults to 1.
</para> </para>
<para> <para>