Re: Partitioning and postgres_fdw optimisations for multi-tenancy - Mailing list pgsql-hackers

From Etsuro Fujita
Subject Re: Partitioning and postgres_fdw optimisations for multi-tenancy
Date
Msg-id CAPmGK17HXqVx3SWYmOY+seCW_=VEDi-WUxmSCUGxt-2VfZBfFg@mail.gmail.com
Whole thread Raw
In response to Re: Partitioning and postgres_fdw optimisations for multi-tenancy  (Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>)
Responses Re: Partitioning and postgres_fdw optimisations for multi-tenancy
List pgsql-hackers
On Sat, Jul 18, 2020 at 12:44 AM Ashutosh Bapat
<ashutosh.bapat.oss@gmail.com> wrote:
> On Fri, Jul 17, 2020 at 8:24 PM Etsuro Fujita <etsuro.fujita@gmail.com> wrote:
> > On Fri, Jul 17, 2020 at 1:56 AM Alexey Kondratov
> > <a.kondratov@postgrespro.ru> wrote:
> > > However, there is an issue with aggregates as well. For a query like:
> > >
> > > SELECT
> > >      count(*)
> > > FROM
> > >      documents
> > > WHERE
> > >      company_id = 5;
> > >
> > > It would be great to teach planner to understand, that it's a
> > > partition-wise aggregate as well, even without GROUP BY company_id,
> > > which doesn't always help as well. I'll try to look closer on this
> > > problem, but if you have any thoughts about it, then I'd be glad to
> > > know.
> >
> > The reason why the aggregation count(*) isn't pushed down to the
> > remote side is: 1) we allow the FDW to push the aggregation down only
> > when the input relation to the aggregation is a foreign (base or join)
> > relation (see create_grouping_paths()), but 2) for your case the input
> > relation would be an append relation that contains the foreign
> > partition as only one child relation, NOT just the foreign partition.
> > The resulting Append path would be removed in the postprocessing (see
> > [1]), but that would be too late for the FDW to do the push-down work.
> > I have no idea what to do about this issue.
>
> Won't partitionwise aggregate push aggregate down to partition and
> then from there to the foreign server through FDW?

Sorry, my words were not clear.  The aggregation above is count(*)
*without GROUP BY*, so we can’t apply PWA to it.

Best regards,
Etsuro Fujita



pgsql-hackers by date:

Previous
From: "David G. Johnston"
Date:
Subject: Re: Error during make, second install
Next
From: Fujii Masao
Date:
Subject: Re: Transactions involving multiple postgres foreign servers, take 2