incorrect syntax for offset
Hi.
Our current docs says that we support the following syntax (i'm
putting just the lines that disturbes me) inside a SELECT statement
"""
[ LIMIT { count | ALL } ]
[ OFFSET start [ ROW | ROWS ] ]
[ FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY ]
"""
i read that as allow me to use the ROWS in an OFFSET clause whatever i
use LIMIT or FETCH for limiting results but seems like we try hard to
make a distinguish from old syntax and new (sql standard) syntax
pruebas=# select * from tab1 limit 3 offset 2 rows;
ERROR: syntax error at or near "rows"
LINE 1: select * from tab1 limit 3 offset 2 rows;
^
pruebas=# select * from tab1 offset 2 fetch next 3 rows only;
ERROR: syntax error at or near "fetch"
LINE 1: select * from tab1 offset 2 fetch next 3 rows only;
^
--
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Asesoría y desarrollo de sistemas
Guayaquil - Ecuador
Cel. +59387171157
Jaime Casanova <jcasanov@systemguards.com.ec> writes:
i read that as allow me to use the ROWS in an OFFSET clause whatever i
use LIMIT or FETCH for limiting results but seems like we try hard to
make a distinguish from old syntax and new (sql standard) syntax
pruebas=# select * from tab1 limit 3 offset 2 rows;
ERROR: syntax error at or near "rows"
LINE 1: select * from tab1 limit 3 offset 2 rows;
^
pruebas=# select * from tab1 offset 2 fetch next 3 rows only;
ERROR: syntax error at or near "fetch"
LINE 1: select * from tab1 offset 2 fetch next 3 rows only;
Hmm. Seems like we could refactor the select_limit production so it
actually allows all the reasonable combinations. Let me have a look...
regards, tom lane
Jaime Casanova wrote:
Hi.
Our current docs says that we support the following syntax (i'm
putting just the lines that disturbes me) inside a SELECT statement
"""
[ LIMIT { count | ALL } ]
[ OFFSET start [ ROW | ROWS ] ]
[ FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY ]
"""i read that as allow me to use the ROWS in an OFFSET clause whatever i
use LIMIT or FETCH for limiting results but seems like we try hard to
make a distinguish from old syntax and new (sql standard) syntaxpruebas=# select * from tab1 limit 3 offset 2 rows;
ERROR: syntax error at or near "rows"
LINE 1: select * from tab1 limit 3 offset 2 rows;
^
pruebas=# select * from tab1 offset 2 fetch next 3 rows only;
ERROR: syntax error at or near "fetch"
LINE 1: select * from tab1 offset 2 fetch next 3 rows only;
FYI, this is fixed in 9.0:
test=> select * from tab1 limit 3 offset 2 rows;
x
---
(0 rows)
--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com
PG East: http://www.enterprisedb.com/community/nav-pg-east-2010.do
+ If your life is a hard drive, Christ can be your backup. +