Re: Parameters don't work in FETCH NEXT clause?
От | Tom Lane |
---|---|
Тема | Re: Parameters don't work in FETCH NEXT clause? |
Дата | |
Msg-id | 1281.1463501589@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Parameters don't work in FETCH NEXT clause? (Shay Rojansky <roji@roji.org>) |
Ответы |
Re: Parameters don't work in FETCH NEXT clause?
|
Список | pgsql-hackers |
Shay Rojansky <roji@roji.org> writes: > A user of mine just raised a strange issue... While it is possible to use a > parameter in a LIMIT clause, PostgreSQL does not seem to allow using one in > a FETCH NEXT clause. In other words, while the following works: > SELECT 1 LIMIT $1; > The following generates a syntax error: > SELECT 1 FETCH NEXT $1 ROWS ONLY; > Since LIMIT and FETCH NEXT are supposed to be equivalent this behavior is > odd. Per the SELECT reference page: SQL:2008 introduced a different syntax to achieve the same result, which PostgreSQL also supports. It is: OFFSET start { ROW | ROWS } FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY In this syntax, to write anything except a simple integer constant for start or count, you must write parentheses aroundit. The comments about this in gram.y are informative: * Allowing full expressions without parentheses causes various parsing* problems with the trailing ROW/ROWS key words. SQLonly calls for* constants, so we allow the rest only with parentheses. If omitted,* default to 1. regards, tom lane
В списке pgsql-hackers по дате отправления: