Re: shortcut for select * where id in (arrayvar)

Поиск
Список
Период
Сортировка
От brian
Тема Re: shortcut for select * where id in (arrayvar)
Дата
Msg-id 47F01EBC.6020507@zijn-digital.com
обсуждение исходный текст
Ответ на shortcut for select * where id in (arrayvar)  (Ivan Sergio Borgonovo <mail@webthatworks.it>)
Список pgsql-general
Ivan Sergio Borgonovo wrote:
> I'm still investigating on how to return array elements.
>
> I came out with something like:
>
> create or replace function auz(out _errcode int, out _errmsg text)
> returns setof record as $$
> declare
>     errcode int[];
>     errmsg text[];
>     _row record;
> begin
>     errcode[1]:=1;
>     errmsg[1]:='pota pota';
>     errcode[2]:=3;
>     errmsg[2]:='bau bau';
>     for i IN coalesce(array_lower(errcode,1),0) ..
>            coalesce(array_upper(errcode,1),-1)
>          loop _errcode:=errcode[i];
>         _errmsg:=errmsg[i]; return next;
>     end loop;
>     return;
> end;
> $$ language plpgsql;
>
> I'd like to avoid to hard code error messages in the function so I
> was thinking about adding a table with error_id, error_messages and
> change the for loop with something similar to
>
> for _row in
>     select err, msg from errortable where err in (errcode)
>
> where errcode is an array.
> That syntax doesn't work... is there any alternative syntax to keep
> stuff short and not error prone?
>

How about something like:

select err, msg from errortable
where err in (array_to_string(errcode, ','))

b

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

Предыдущее
От: Dragan Zubac
Дата:
Сообщение: Re: database 1.2G, pg_dump 73M?!
Следующее
От: Tom Lane
Дата:
Сообщение: Re: shortcut for select * where id in (arrayvar)