• Robert Haas's avatar
    postgres_fdw: Push down partition-wise aggregation. · 7e0d64c7
    Robert Haas authored
    Since commit 7012b132, postgres_fdw
    has been able to push down the toplevel aggregation operation to the
    remote server.  Commit e2f1eb0e 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: http://postgr.es/m/CAM2+6=V64_xhstVHie0Rz=KPEQnLJMZt_e314P0jaT_oJ9MR8A@mail.gmail.com
    Discussion: http://postgr.es/m/CAM2+6=XPWujjmj5zUaBTGDoB38CemwcPmjkRy0qOcsQj_V+2sQ@mail.gmail.com
    7e0d64c7
postgres_fdw.sql 89 KB