Re: Review: listagg aggregate

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: Review: listagg aggregate
Дата
Msg-id 162867791001280038y4361e0b6qb35196904749bc85@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Review: listagg aggregate  ("David E. Wheeler" <david@kineticode.com>)
Ответы Re: Review: listagg aggregate  (Pavel Stehule <pavel.stehule@gmail.com>)
Список pgsql-hackers
2010/1/28 David E. Wheeler <david@kineticode.com>:
> On Jan 27, 2010, at 6:47 PM, Takahiro Itagaki wrote:
>
>> * I think we cannot cache the delimiter at the first call.
>>  For example,
>>    SELECT string_agg(elem, delim)
>>      FROM (VALUES('A', ','), ('B', '+'), ('C', '*')) t(elem, delim);
>>  should return 'A+B*C' rather than 'A,B,C'.
>
> Ooh, nice.
>
>> * Can we use StringInfo directly as the aggregate context instead of
>>  StringAggState? For the first reason, we need to drop 'delimiter' field
>>  from struct StringAggState. Now it has only StringInfo field.
>
> Makes sense.

no, has not.

Pavel

>
>> * We'd better avoiding to call text_to_cstring() for delimitors and elements
>>  for performance reason. We can use appendBinaryStringInfo() here.
>>
>> My proposal patch attached.
>>
>> Also, I've not changed it yet, but it might be considerable:
>>
>> * Do we need better names for string_agg1_transfn and string_agg2_transfn?
>>  They are almost "internal names", but we could have more
>>  like string_agg_with_sep_transfn.
>
> Yes please.
>
>> Comments?
>
> Patch looks great, thank you!
>
> David
>
>
>


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

Предыдущее
От: Pavel Stehule
Дата:
Сообщение: Re: Review: listagg aggregate
Следующее
От: Pavel Stehule
Дата:
Сообщение: Re: Review: listagg aggregate