Commit f363b317 authored by Bruce Momjian's avatar Bruce Momjian

Remove LIMIT #,# and suggest LIMIT # OFFSET #, per mailing list discussion.

parent 424d9389
...@@ -38,9 +38,8 @@ Migration to 7.2 ...@@ -38,9 +38,8 @@ Migration to 7.2
A dump/restore using pg_dump is required for those wishing to migrate A dump/restore using pg_dump is required for those wishing to migrate
data from any previous release. One significant change is that data from any previous release. One significant change is that
SELECT ... LIMIT 10,20 now uses the 10 as the OFFSET and the 20 as the SELECT ... LIMIT 10,20 syntax is no longer supported. You must
the LIMIT. Previous versions had this reversed. This change was now use LIMIT 10 OFFSET 20 to accomplish the same thing.
made for MySQL compatibility.
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/select.sgml,v 1.47 2001/09/23 03:39:01 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/select.sgml,v 1.48 2001/10/20 02:55:38 momjian Exp $
Postgres documentation Postgres documentation
--> -->
...@@ -29,7 +29,7 @@ SELECT [ ALL | DISTINCT [ ON ( <replaceable class="PARAMETER">expression</replac ...@@ -29,7 +29,7 @@ SELECT [ ALL | DISTINCT [ ON ( <replaceable class="PARAMETER">expression</replac
[ { UNION | INTERSECT | EXCEPT [ ALL ] } <replaceable class="PARAMETER">select</replaceable> ] [ { UNION | INTERSECT | EXCEPT [ ALL ] } <replaceable class="PARAMETER">select</replaceable> ]
[ ORDER BY <replaceable class="PARAMETER">expression</replaceable> [ ASC | DESC | USING <replaceable class="PARAMETER">operator</replaceable> ] [, ...] ] [ ORDER BY <replaceable class="PARAMETER">expression</replaceable> [ ASC | DESC | USING <replaceable class="PARAMETER">operator</replaceable> ] [, ...] ]
[ FOR UPDATE [ OF <replaceable class="PARAMETER">tablename</replaceable> [, ...] ] ] [ FOR UPDATE [ OF <replaceable class="PARAMETER">tablename</replaceable> [, ...] ] ]
[ LIMIT [ <replaceable class="PARAMETER">start</replaceable> , ] { <replaceable class="PARAMETER">count</replaceable> | ALL } ] [ LIMIT { <replaceable class="PARAMETER">count</replaceable> | ALL } ]
[ OFFSET <replaceable class="PARAMETER">start</replaceable> ] [ OFFSET <replaceable class="PARAMETER">start</replaceable> ]
where <replaceable class="PARAMETER">from_item</replaceable> can be: where <replaceable class="PARAMETER">from_item</replaceable> can be:
...@@ -614,7 +614,7 @@ SELECT name FROM distributors ORDER BY code; ...@@ -614,7 +614,7 @@ SELECT name FROM distributors ORDER BY code;
<synopsis> <synopsis>
<replaceable class="PARAMETER">table_query</replaceable> UNION [ ALL ] <replaceable class="PARAMETER">table_query</replaceable> <replaceable class="PARAMETER">table_query</replaceable> UNION [ ALL ] <replaceable class="PARAMETER">table_query</replaceable>
[ ORDER BY <replaceable class="PARAMETER">expression</replaceable> [ ASC | DESC | USING <replaceable class="PARAMETER">operator</replaceable> ] [, ...] ] [ ORDER BY <replaceable class="PARAMETER">expression</replaceable> [ ASC | DESC | USING <replaceable class="PARAMETER">operator</replaceable> ] [, ...] ]
[ LIMIT [ <replaceable class="PARAMETER">start</replaceable> , ] { <replaceable class="PARAMETER">count</replaceable> | ALL } ] [ LIMIT { <replaceable class="PARAMETER">count</replaceable> | ALL } ]
[ OFFSET <replaceable class="PARAMETER">start</replaceable> ] [ OFFSET <replaceable class="PARAMETER">start</replaceable> ]
</synopsis> </synopsis>
...@@ -664,7 +664,7 @@ SELECT name FROM distributors ORDER BY code; ...@@ -664,7 +664,7 @@ SELECT name FROM distributors ORDER BY code;
<synopsis> <synopsis>
<replaceable class="PARAMETER">table_query</replaceable> INTERSECT [ ALL ] <replaceable class="PARAMETER">table_query</replaceable> <replaceable class="PARAMETER">table_query</replaceable> INTERSECT [ ALL ] <replaceable class="PARAMETER">table_query</replaceable>
[ ORDER BY <replaceable class="PARAMETER">expression</replaceable> [ ASC | DESC | USING <replaceable class="PARAMETER">operator</replaceable> ] [, ...] ] [ ORDER BY <replaceable class="PARAMETER">expression</replaceable> [ ASC | DESC | USING <replaceable class="PARAMETER">operator</replaceable> ] [, ...] ]
[ LIMIT [ <replaceable class="PARAMETER">start</replaceable> , ] { <replaceable class="PARAMETER">count</replaceable> | ALL } ] [ LIMIT { <replaceable class="PARAMETER">count</replaceable> | ALL } ]
[ OFFSET <replaceable class="PARAMETER">start</replaceable> ] [ OFFSET <replaceable class="PARAMETER">start</replaceable> ]
</synopsis> </synopsis>
...@@ -705,7 +705,7 @@ SELECT name FROM distributors ORDER BY code; ...@@ -705,7 +705,7 @@ SELECT name FROM distributors ORDER BY code;
<synopsis> <synopsis>
<replaceable class="PARAMETER">table_query</replaceable> EXCEPT [ ALL ] <replaceable class="PARAMETER">table_query</replaceable> <replaceable class="PARAMETER">table_query</replaceable> EXCEPT [ ALL ] <replaceable class="PARAMETER">table_query</replaceable>
[ ORDER BY <replaceable class="PARAMETER">expression</replaceable> [ ASC | DESC | USING <replaceable class="PARAMETER">operator</replaceable> ] [, ...] ] [ ORDER BY <replaceable class="PARAMETER">expression</replaceable> [ ASC | DESC | USING <replaceable class="PARAMETER">operator</replaceable> ] [, ...] ]
[ LIMIT [ <replaceable class="PARAMETER">start</replaceable> , ] { <replaceable class="PARAMETER">count</replaceable> | ALL } ] [ LIMIT { <replaceable class="PARAMETER">count</replaceable> | ALL } ]
[ OFFSET <replaceable class="PARAMETER">start</replaceable> ] [ OFFSET <replaceable class="PARAMETER">start</replaceable> ]
</synopsis> </synopsis>
...@@ -742,7 +742,7 @@ SELECT name FROM distributors ORDER BY code; ...@@ -742,7 +742,7 @@ SELECT name FROM distributors ORDER BY code;
</title> </title>
<para> <para>
<synopsis> <synopsis>
LIMIT [ <replaceable class="PARAMETER">start</replaceable> , ] { <replaceable class="PARAMETER">count</replaceable> | ALL } LIMIT { <replaceable class="PARAMETER">count</replaceable> | ALL }
OFFSET <replaceable class="PARAMETER">start</replaceable> OFFSET <replaceable class="PARAMETER">start</replaceable>
</synopsis> </synopsis>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/sql.sgml,v 1.22 2001/09/23 03:39:01 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/sql.sgml,v 1.23 2001/10/20 02:55:38 momjian Exp $
--> -->
<chapter id="sql"> <chapter id="sql">
...@@ -864,7 +864,7 @@ SELECT [ ALL | DISTINCT [ ON ( <replaceable class="PARAMETER">expression</replac ...@@ -864,7 +864,7 @@ SELECT [ ALL | DISTINCT [ ON ( <replaceable class="PARAMETER">expression</replac
[ { UNION | INTERSECT | EXCEPT [ ALL ] } <replaceable class="PARAMETER">select</replaceable> ] [ { UNION | INTERSECT | EXCEPT [ ALL ] } <replaceable class="PARAMETER">select</replaceable> ]
[ ORDER BY <replaceable class="PARAMETER">expression</replaceable> [ ASC | DESC | USING <replaceable class="PARAMETER">operator</replaceable> ] [, ...] ] [ ORDER BY <replaceable class="PARAMETER">expression</replaceable> [ ASC | DESC | USING <replaceable class="PARAMETER">operator</replaceable> ] [, ...] ]
[ FOR UPDATE [ OF <replaceable class="PARAMETER">class_name</replaceable> [, ...] ] ] [ FOR UPDATE [ OF <replaceable class="PARAMETER">class_name</replaceable> [, ...] ] ]
[ LIMIT [ <replaceable class="PARAMETER">start</replaceable> , ] { <replaceable class="PARAMETER">count</replaceable> | ALL } ] [ LIMIT { <replaceable class="PARAMETER">count</replaceable> | ALL } ]
[ OFFSET <replaceable class="PARAMETER">start</replaceable> ] [ OFFSET <replaceable class="PARAMETER">start</replaceable> ]
</synopsis> </synopsis>
</para> </para>
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.265 2001/10/20 01:02:14 thomas Exp $ * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.266 2001/10/20 02:55:39 momjian Exp $
* *
* HISTORY * HISTORY
* AUTHOR DATE MAJOR EVENT * AUTHOR DATE MAJOR EVENT
...@@ -3648,7 +3648,7 @@ OptUseOp: USING all_Op { $$ = $2; } ...@@ -3648,7 +3648,7 @@ OptUseOp: USING all_Op { $$ = $2; }
select_limit: LIMIT select_offset_value ',' select_limit_value select_limit: LIMIT select_offset_value ',' select_limit_value
{ $$ = makeList2($2, $4); } { elog(ERROR,"LIMIT #,# syntax no longer supported. Use LIMIT # OFFSET #."); }
| LIMIT select_limit_value OFFSET select_offset_value | LIMIT select_limit_value OFFSET select_offset_value
{ $$ = makeList2($4, $2); } { $$ = makeList2($4, $2); }
| LIMIT select_limit_value | LIMIT select_limit_value
......
...@@ -98,7 +98,7 @@ SELECT ''::text AS five, unique1, unique2, stringu1 ...@@ -98,7 +98,7 @@ SELECT ''::text AS five, unique1, unique2, stringu1
SELECT ''::text AS five, unique1, unique2, stringu1 SELECT ''::text AS five, unique1, unique2, stringu1
FROM onek FROM onek
ORDER BY unique1 LIMIT 900, 5; ORDER BY unique1 LIMIT 5 OFFSET 900;
five | unique1 | unique2 | stringu1 five | unique1 | unique2 | stringu1
------+---------+---------+---------- ------+---------+---------+----------
| 900 | 913 | QIAAAA | 900 | 913 | QIAAAA
......
...@@ -29,4 +29,4 @@ SELECT ''::text AS five, unique1, unique2, stringu1 ...@@ -29,4 +29,4 @@ SELECT ''::text AS five, unique1, unique2, stringu1
ORDER BY unique1 OFFSET 990 LIMIT 5; ORDER BY unique1 OFFSET 990 LIMIT 5;
SELECT ''::text AS five, unique1, unique2, stringu1 SELECT ''::text AS five, unique1, unique2, stringu1
FROM onek FROM onek
ORDER BY unique1 LIMIT 900, 5; ORDER BY unique1 LIMIT 5 OFFSET 900;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment