Attached is the patch which adds support to push down aggregation and grouping to the foreign server for postgres_fdw. Performing aggregation on foreign server results into fetching fewer rows from foreign side as compared to fetching all the rows and aggregating/grouping locally. Performing grouping on foreign server may use indexes if available. So pushing down aggregates/ grouping on foreign server performs better than doing that locally. (Attached EXPLAIN output for few simple grouping queries, with and without push down).
is it work without FDW too?. It can be pretty interesting too.
No. Aggrgate push down is supported through the GetForeignUpperPaths() hook added for postgres_fdw. Thus it works only with postgres_fdw.
Do you mean whether this works with any extensions via implementing create_upper_paths_hook() function? The answer is No. This patch does not touch this hook.
It is pity - lot of performance issues are related to this missing feature.
Regards
Pavel
Regards
Pavel
Thanks
--
Jeevan B Chalke Principal Software Engineer, Product Development EnterpriseDB Corporation The Enterprise PostgreSQL Company