OSDN Git Service

Remove LIMIT #,# and suggest LIMIT # OFFSET #, per mailing list discussion.
authorBruce Momjian <bruce@momjian.us>
Sat, 20 Oct 2001 02:55:39 +0000 (02:55 +0000)
committerBruce Momjian <bruce@momjian.us>
Sat, 20 Oct 2001 02:55:39 +0000 (02:55 +0000)
HISTORY
doc/src/sgml/ref/select.sgml
doc/src/sgml/sql.sgml
src/backend/parser/gram.y
src/test/regress/expected/limit.out
src/test/regress/sql/limit.sql

diff --git a/HISTORY b/HISTORY
index 118d564..0b4bf86 100644 (file)
--- a/HISTORY
+++ b/HISTORY
@@ -38,9 +38,8 @@ Migration to 7.2
 
    A dump/restore using pg_dump is required for those wishing to migrate
    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 LIMIT.  Previous versions had this reversed.  This change was
-   made for MySQL compatibility.
+   the SELECT ... LIMIT 10,20 syntax is no longer supported.  You must
+   now use LIMIT 10 OFFSET 20 to accomplish the same thing.
 
 
 
index e8dc024..93a491a 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-$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
 -->
 
@@ -29,7 +29,7 @@ SELECT [ ALL | DISTINCT [ ON ( <replaceable class="PARAMETER">expression</replac
     [ { UNION | INTERSECT | EXCEPT [ ALL ] } <replaceable class="PARAMETER">select</replaceable> ]
     [ ORDER BY <replaceable class="PARAMETER">expression</replaceable> [ ASC | DESC | USING <replaceable class="PARAMETER">operator</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> ]
 
 where <replaceable class="PARAMETER">from_item</replaceable> can be:
@@ -614,7 +614,7 @@ SELECT name FROM distributors ORDER BY code;
     <synopsis>
 <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> ] [, ...] ]
-    [ 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> ]
     </synopsis>
 
@@ -664,7 +664,7 @@ SELECT name FROM distributors ORDER BY code;
     <synopsis>
 <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> ] [, ...] ]
-    [ 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> ]
     </synopsis>
     
@@ -705,7 +705,7 @@ SELECT name FROM distributors ORDER BY code;
     <synopsis>
 <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> ] [, ...] ]
-    [ 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> ]
     </synopsis>
     
@@ -742,7 +742,7 @@ SELECT name FROM distributors ORDER BY code;
    </title>
    <para>
     <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>
     </synopsis>
     
index 223aee1..8ea411f 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-$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">
@@ -864,7 +864,7 @@ SELECT [ ALL | DISTINCT [ ON ( <replaceable class="PARAMETER">expression</replac
     [ { UNION | INTERSECT | EXCEPT [ ALL ] } <replaceable class="PARAMETER">select</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> [, ...] ] ]
-    [ 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> ]
      </synopsis>
     </para>
index 4f5f5d6..0db5bcd 100644 (file)
@@ -11,7 +11,7 @@
  *
  *
  * 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
  *       AUTHOR                        DATE                    MAJOR EVENT
@@ -3648,7 +3648,7 @@ OptUseOp:  USING all_Op                                                   { $$ = $2; }
 
 
 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
                        { $$ = makeList2($4, $2); }
                | LIMIT select_limit_value
index c99e094..f960958 100644 (file)
@@ -98,7 +98,7 @@ SELECT ''::text AS five, unique1, unique2, stringu1
 
 SELECT ''::text AS five, unique1, unique2, stringu1 
                FROM onek
-               ORDER BY unique1 LIMIT 900, 5;
+               ORDER BY unique1 LIMIT 5 OFFSET 900;
  five | unique1 | unique2 | stringu1 
 ------+---------+---------+----------
       |     900 |     913 | QIAAAA
index 99842af..c15a486 100644 (file)
@@ -29,4 +29,4 @@ SELECT ''::text AS five, unique1, unique2, stringu1
                ORDER BY unique1 OFFSET 990 LIMIT 5;
 SELECT ''::text AS five, unique1, unique2, stringu1 
                FROM onek
-               ORDER BY unique1 LIMIT 900, 5;
+               ORDER BY unique1 LIMIT 5 OFFSET 900;