Re: obtaining ARRAY position for a given match

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: obtaining ARRAY position for a given match
Дата
Msg-id 162867790911191102i509e6f3dg174891a5abe71452@mail.gmail.com
обсуждение исходный текст
Ответ на Re: obtaining ARRAY position for a given match  (Pavel Stehule <pavel.stehule@gmail.com>)
Список pgsql-general
>
> CREATE OR REPLACE FUNCTION idx(anyarray, anyelement)
> RETURNS int AS $$
> SELECT i
>   FROM (SELECT generate_subscripts($1) as i, unnest($1) as v) s
>  WHERE v = $2
>  LIMIT 1;
> $$ LANGUAGE sql;
>

there is bug

correct is

create or replace function idx(anyarray, anyelement)
returns int as $$
select i
   from (select generate_subscripts($1,1) i, unnest($1) v) s
  where v = $2
  limit 1
$$ language sql;

and it is 5% faster than older version

on integer array on my eeepc

Regards
Pavel

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

Предыдущее
От: Sam Mason
Дата:
Сообщение: Re: obtaining ARRAY position for a given match
Следующее
От: Pavel Stehule
Дата:
Сообщение: Re: Possible bug with array_agg