From: | Etsuro Fujita <etsuro(dot)fujita(at)gmail(dot)com> |
---|---|
To: | Andrey Lepikhov <a(dot)lepikhov(at)postgrespro(dot)ru> |
Cc: | Alexey Kondratov <a(dot)kondratov(at)postgrespro(dot)ru>, Ashutosh Bapat <ashutosh(dot)bapat(dot)oss(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Partitioning and postgres_fdw optimisations for multi-tenancy |
Date: | 2020-07-16 16:35:11 |
Message-ID: | CAPmGK15EoA_yHycO9bXgNRze0WbiSLKjz_5jd0Xwg4PVycHmzA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Thu, Jul 16, 2020 at 8:56 PM Andrey Lepikhov
<a(dot)lepikhov(at)postgrespro(dot)ru> wrote:
> On 7/16/20 9:55 AM, Etsuro Fujita wrote:
> >>>> On Tue, Jul 14, 2020 at 12:48 AM Alexey Kondratov
> >>>> <a(dot)kondratov(at)postgrespro(dot)ru> wrote:
> >>>>> Some real-life test queries show, that all single-node queries aren't
> >>>>> pushed-down to the required node. For example:
> >>>>>
> >>>>> SELECT
> >>>>> *
> >>>>> FROM
> >>>>> documents
> >>>>> INNER JOIN users ON documents.user_id = users.id
> >>>>> WHERE
> >>>>> documents.company_id = 5
> >>>>> AND users.company_id = 5;
> > PWJ cannot be applied
> > to the join due to the limitation of the PWJ matching logic. See the
> > discussion started in [1]. I think the patch in [2] would address
> > this issue as well, though the patch is under review.
> I think, discussion [1] is little relevant to the current task. Here we
> join not on partition attribute and PWJ can't be used at all.
The main point of the discussion is to determine whether PWJ can be
used for a join between partitioned tables, based on
EquivalenceClasses, not just join clauses created by
build_joinrel_restrictlist(). For the above join, for example, the
patch in [2] would derive a join clause "documents.company_id =
users.company_id" from an EquivalenceClass that recorded the knowledge
"documents.company_id = 5" and "users.company_id = 5", and then the
planner would consider from it that PWJ can be used for the join.
Best regards,
Etsuro Fujita
From | Date | Subject | |
---|---|---|---|
Next Message | Alexey Kondratov | 2020-07-16 16:40:05 | Re: Partitioning and postgres_fdw optimisations for multi-tenancy |
Previous Message | Tom Lane | 2020-07-16 16:17:15 | Re: renaming configure.in to configure.ac |