Re: cache type info in json_agg and friends

Поиск
Список
Период
Сортировка
От Teodor Sigaev
Тема Re: cache type info in json_agg and friends
Дата
Msg-id 55F7230E.3090804@sigaev.ru
обсуждение исходный текст
Ответ на cache type info in json_agg and friends  (Andrew Dunstan <andrew@dunslane.net>)
Ответы Re: cache type info in json_agg and friends  (Andrew Dunstan <andrew@dunslane.net>)
Список pgsql-hackers
> Currently, json_agg, jsonb_agg, json_object_agg and jsonb_object_agg do
> type classification on their arguments on each call to the transition
> function. This is quite unnecessary, as the argument types won't change.
> This patch remedies the defect by caching the necessary values in the
> aggregate state object.
+1

>
> While this doesn't change the performance much, since these functions
> are essentially dominated by other bits of the processing, I think it is
> nevertheless worth doing.
Agree

After quick observation of your patch, why don't you use FmgrInfo 
instead of  JsonAggState.val_output_func/JsonAggState.key_category? 
FmgrInfo could be filled by fmgr_info_cxt() in aggcontext memory 
context. Suppose, direct usage of FmgrInfo with FunctionCall a bit 
faster than OidFunctionCall.
-- 
Teodor Sigaev                      E-mail: teodor@sigaev.ru                                      WWW:
http://www.sigaev.ru/



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

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: Re: cache type info in json_agg and friends
Следующее
От: Paul Jungwirth
Дата:
Сообщение: Re: Review: GiST support for UUIDs