array_agg and array_accum (patch)

Поиск
Список
Период
Сортировка
От Jeff Davis
Тема array_agg and array_accum (patch)
Дата
Msg-id 1225045937.4434.21.camel@localhost.localdomain
обсуждение исходный текст
Ответы Re: array_agg and array_accum (patch)  ("Ian Caulfield" <ian.caulfield@gmail.com>)
Re: array_agg and array_accum (patch)  (Stephen Frost <sfrost@snowman.net>)
Re: array_agg and array_accum (patch)  (Jeff Davis <pgsql@j-davis.com>)
Список pgsql-hackers
Here is a patch to support two aggregate functions:

1) ARRAY_AGG() -- SQL 2008 standard behavior, returns NULL on no input,
and skips NULL inputs.

2) ARRAY_ACCUM() -- Returns empty array on no input, and includes NULL
inputs.

These accumulate the result in a memory context that lives across calls
to the state function, so it's reasonably efficient. On my old laptop it
takes about 5s to generate an array of 1M elements -- not great, but at
least it's linear.

Although array_agg is the standard behavior, array_accum is important
because otherwise you always lose the NULLs, and that's difficult to
work around even with COALESCE.

I added them as new native functions because ARRAY_AGG is in the
standard, but if others think they should live elsewhere that's fine. I
think that they are generally pretty useful functions for people using
arrays.

This patch is contributed by Truviso.

Regards,
    Jeff Davis


Вложения

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: new correlation metric
Следующее
От: Tom Lane
Дата:
Сообщение: Re: BufferAccessStrategy for bulk insert