Variable LIMIT and OFFSET in SELECTs

Поиск
Список
Период
Сортировка
От Reg Me Please
Тема Variable LIMIT and OFFSET in SELECTs
Дата
Msg-id 200711150221.08096.regmeplease@gmail.com
обсуждение исходный текст
Ответы Re: Variable LIMIT and OFFSET in SELECTs
Re: Variable LIMIT and OFFSET in SELECTs
Список pgsql-general
Hi all.

I'd need to implement a "parametric windowed select" over a table
called "atable". The idea is to have a one row table to maintain
the LIMIT and the OFFSET for the selects. If I try this:

create table limoff( l int, o int );
insert into limoff values ( 10,2 );
select a.* from atable a,limoff limit l offset o;

I get "ERROR:  argument of OFFSET must not contain variables".
(You get the error also on LIMIT if you put a constant as the offset).

But I can do the following:

create or replace function f_limoff_1( l int, o int )
returns setof atable as $$
select * from atable limit $1 offset $2
$$ language sql;

create or replace function f_limoff()
returns setof atable as $$
select * from f_limoff_1( (select l from limoff),(select i from limoff) );
$$ language sql;

Of course, in my opinion at least, there's no real reason for the above
syntax limitation, as the sematics is not.

Wouldn't it be a nice enhacement to allow variable LIMIT and OFFSET in
SELECTs?

--
Reg me Please

В списке pgsql-general по дате отправления:

Предыдущее
От: "Merlin Moncure"
Дата:
Сообщение: Re: Path to top of tree
Следующее
От: Alvaro Herrera
Дата:
Сообщение: Re: stripping HTML, SQL injections ...