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
|
Список | 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 по дате отправления: