pgsql: postgres_fdw: Push down partition-wise aggregation.

Started by Robert Haasabout 8 years ago4 messagescomitters
Jump to latest
#1Robert Haas
robertmhaas@gmail.com

postgres_fdw: Push down partition-wise aggregation.

Since commit 7012b132d07c2b4ea15b0b3cb1ea9f3278801d98, postgres_fdw
has been able to push down the toplevel aggregation operation to the
remote server. Commit e2f1eb0ee30d144628ab523432320f174a2c8966 made
it possible to break down the toplevel aggregation into one
aggregate per partition. This commit lets postgres_fdw push down
aggregation in that case just as it does at the top level.

In order to make this work, this commit adds an additional argument
to the GetForeignUpperPaths FDW API. A matching argument is added
to the signature for create_upper_paths_hook. Third-party code using
either of these will need to be updated.

Also adjust create_foreignscan_plan() so that it picks up the correct
set of relids in this case.

Jeevan Chalke, reviewed by Ashutosh Bapat and by me and with some
adjustments by me. The larger patch series of which this patch is a
part was also reviewed and tested by Antonin Houska, Rajkumar
Raghuwanshi, David Rowley, Dilip Kumar, Konstantin Knizhnik, Pascal
Legrand, and Rafia Sabih.

Discussion: /messages/by-id/CAM2+6=V64_xhstVHie0Rz=KPEQnLJMZt_e314P0jaT_oJ9MR8A@mail.gmail.com
Discussion: /messages/by-id/CAM2+6=XPWujjmj5zUaBTGDoB38CemwcPmjkRy0qOcsQj_V+2sQ@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/7e0d64c7a57e28fbcf093b6da9310a38367c1d75

Modified Files
--------------
contrib/postgres_fdw/expected/postgres_fdw.out | 132 +++++++++++++++++++++++++
contrib/postgres_fdw/postgres_fdw.c | 53 +++++++---
contrib/postgres_fdw/sql/postgres_fdw.sql | 51 ++++++++++
doc/src/sgml/fdwhandler.sgml | 9 +-
src/backend/optimizer/plan/createplan.c | 2 +-
src/backend/optimizer/plan/planner.c | 29 +++---
src/backend/optimizer/prep/prepunion.c | 2 +-
src/include/foreign/fdwapi.h | 3 +-
src/include/optimizer/planner.h | 3 +-
9 files changed, 251 insertions(+), 33 deletions(-)

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#1)
Re: pgsql: postgres_fdw: Push down partition-wise aggregation.

Robert Haas <rhaas@postgresql.org> writes:

postgres_fdw: Push down partition-wise aggregation.

Seems to have broken the docs build.

regards, tom lane

#3Peter Eisentraut
peter_e@gmx.net
In reply to: Tom Lane (#2)
Re: pgsql: postgres_fdw: Push down partition-wise aggregation.

On 4/2/18 13:49, Tom Lane wrote:

Robert Haas <rhaas@postgresql.org> writes:

postgres_fdw: Push down partition-wise aggregation.

Seems to have broken the docs build.

fixed

--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#4Robert Haas
robertmhaas@gmail.com
In reply to: Peter Eisentraut (#3)
Re: pgsql: postgres_fdw: Push down partition-wise aggregation.

On Mon, Apr 2, 2018 at 1:57 PM, Peter Eisentraut
<peter.eisentraut@2ndquadrant.com> wrote:

On 4/2/18 13:49, Tom Lane wrote:

Robert Haas <rhaas@postgresql.org> writes:

postgres_fdw: Push down partition-wise aggregation.

Seems to have broken the docs build.

fixed

Thanks.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company